JP3713554B2 - フォールトトレラント・コンピュータシステム - Google Patents

フォールトトレラント・コンピュータシステム Download PDF

Info

Publication number
JP3713554B2
JP3713554B2 JP50427394A JP50427394A JP3713554B2 JP 3713554 B2 JP3713554 B2 JP 3713554B2 JP 50427394 A JP50427394 A JP 50427394A JP 50427394 A JP50427394 A JP 50427394A JP 3713554 B2 JP3713554 B2 JP 3713554B2
Authority
JP
Japan
Prior art keywords
bus
cpu
memory
line
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP50427394A
Other languages
English (en)
Other versions
JPH07509088A (ja
Inventor
ウィリアムズ,エムリス・ジョン
リデル,デイビッド・チャールズ
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JPH07509088A publication Critical patent/JPH07509088A/ja
Application granted granted Critical
Publication of JP3713554B2 publication Critical patent/JP3713554B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1654Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1604Error detection or correction of the data by redundancy in hardware where the fault affects the clock signals of a processing unit and the redundancy is at or within the level of clock signal generation hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/165Error detection by comparing the output of redundant processing systems with continued operation after detection of the error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/181Eliminating the failing redundant component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error 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/184Error 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/185Error 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • G06F11/1645Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components and the comparison itself uses redundant hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements

Landscapes

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

Description

技術分野
本発明は、フォールトトレラント(故障許容)コンピュータシステムに関する。
背景技術
システムの信頼性への従来のアプローチは、設計手法の改善、厳しい品質制御、及び外部環境からの影響(例えば、硬化、放射線の遮蔽)からシステム構成要素を防護するための様々な手法を介して故障の発生を防止することを試みている。フォールトトレランス法は、システムの故障が発生すると仮定し、かつかかる故障の存在下で動作し続けるシステムの設計を試みる。別言すれば、フォールトトレラント・システムは、システムの故障を生じることなくその内部構造又は外部環境の好ましくない変化を許容するように設計される。この目的を達成するために、フォールトトレラント・システムには、様々な案が使用されている。一旦故障が検出されると、構造上及び情報の冗長度を様々に組み合わせることによって、これを(例えば、システムエレメントのレプリカ作成を介して)マスクし、又はこれを(例えば、動的システム再構成又は他の何らかの回復処理によって)修正することを可能にする。このようなフォールトトレランス技術に従来の故障防止技術を結合させることによって、システム全体の信頼性をより大幅に向上させることが実現可能である。
発明の開示
本発明によれば、ハードウェアの故障の影響を減少させたフォールトトレラント・コンピュータアーキテクチャが提供される。このアーキテクチャは、従来のコンピュータサブシステムを相互接続するための複数のインタフェーススロットを有する主データバスを使用する。このようなサブシステムには、磁気ディスクサブシステム及びシリアル通信サブシステムを含むことができる。サブシステムの数及び種類は相当に変化させることができるが、本発明を構成する発明要素を包含する中央プロセッササブシステムは常に含まれる。
前記中央プロセッササブシステムは、並行に概ね同期化して動作する複数の中央処理モジュールを使用する。前記中央処理モジュールの中の1個がマスタ中央処理モジュールとして動作し、主データバスからデータを読み出しかつデータを書き込むことができる唯一のモジュールとなる。前記マスタ中央処理モジュールは、前記中央処理モジュールの中から最初に任意に選択される。
各中央処理モジュールは、ハードウェアの故障を示す不一致があるかどうかを決定するために、該モジュールが前記主データバス上のデータを各モジュール内の副バス上のデータと比較し得るようにする手段を備える。このような不一致が検出された場合には、各モジュールは、特定のモジュールが故障のソースである確率を反映する状態出力を発生する。前記主データバスとは別個の同期バスによって前記中央処理モジュールが相互接続され、かつ各モジュールから他の全中央処理モジュールに前記状態出力が送られる。
より詳細に言えば、各中央処理モジュールは、第1のバスインタフェースを介して主データバスに接続された共用データバスからなる。読出し書込み用メモリ、非同期レシーバ/トランスミッタ回路、タイマ回路、複数の制御・状態レジスタ、並びに欠陥のあるコンピュータサブシステム又は存在しないコンピュータサブシステムがある主データバスインタフェーススロットに対応してデータを記憶することを目的とする専用読出し書込み用メモリを含む多数のハードウェア要素が前記共用データバスに接続されている。
各モジュールは更に、前記主データバスのデータを前記共用データバスのデータと比較してそれに応じた状態出力を発生することを目的とする、前記第1バスインタフェースの部分であるコンパレータ回路からなる。また、パリティ検査回路が前記第1バスインタフェースの一部分をなし、前記主データバスのデータ線を監視して、前記コンパレータ回路への入力として使用されるパリティ出力を発生する。
専用データバスが第2のバスインタフェースを介して前記共用データバスに接続されている。また、前記専用データバスは、読出し書込み用メモリ、読出し専用メモリ及び「ダーティ」メモリを含む複数のハードウェア要素に接続されている。前記「ダーティ」メモリの目的は、情報が書込まれている読出し書込み用メモリ内の記憶場所に対応してデータを記憶することにある。後述するように、これによってある中央処理モジュールから別の中央処理モジュールへのデータの複製が容易になる。また、前記専用データバスに接続されかつ各中央処理モジュールの動作を制御する中央処理装置(CPU)があり、他の中央処理モジュールの中央処理装置と概ね同期して動作する。
最後に、各中央処理モジュールは、前記第1及び第2バスインタフェースに接続されかつこれらを制御する制御論理回路を備える。前記制御論理回路は、その入力として各中央処理モジュールの前記コンパレータ回路によって生成された前記状態出力を受け取る。前記回路は、これらの制御信号及び以下に詳細に説明する他の制御信号を用いて、前記中央処理装置に故障が発生しているかどうかを示す制御論理信号を生成する。故障が検出された場合には、各モジュールは、故障の位置を識別し、故障中のモジュール又はサブシステムを使用不能状態にし、かつ前記故障が検出されたときに実行されていた命令に復帰させるルーチンを実行する。
本発明は、その第1の側面によれば、主データバスと、関連する読出し書き込み用メモリをそれぞれ有する複数のプロセッサ手段とからなり、前記各プロセッサ手段が、ローカルデータバスと、前記ローカルデータバスを前記主データバスに相互接続するデータ転送インタフェースとを有し、前記データ転送インタフェースが、前記主データバスに存在するデータ及び/又はアドレスを、前記各ローカルデータバスに存在するデータ及び/又はアドレスと比較するように構成され、かつ更に比較した前記データ及び/又はアドレスに何らかの不整合が検出されると、前記全プロセッサ手段に割込み信号を印加するように構成されたコンパレータ手段からなることを特徴とするフォールトトレラント・コンピュータシステムを提供する。
本発明の第2の側面によれば、関連するメモリを有する処理手段と、前記処理手段に少なくとも1つのデータ処理ハードウェア手段を相互接続するためのデータバスとからなり、前記データバスが、前記データ処理ハードウェア手段から前記処理手段にデータ転送応答信号を搬送するための線を有し、前記処理手段が、(a)データ転送応答信号の受信時、又は(b)所定の時間間隔内にデータ転送応答信号を受信しない場合、又は(c)前記関連するメモリが前記データ転送の試みに関係する前記ハードウェア手段に関して所定の表示を含む場合に、データ転送の試みを終了させるように構成されたコンピュータシステムが提供される。このシステムでは、前記所定の時間間隔を或る決められた時間の間隔とし、又は2つの所定の事象の間隔(時間的に変化することがある)とすることができる。
本発明の第3の側面によれば、関連するメモリを有するプロセッサ手段と、前記プロセッサ手段と前記メモリとの間で動作するアドレス変換手段と、前記アドレス変換手段によって供給される変換されたアドレスに基づいて主メモリに書込みアクセスを記録する書込み記録用メモリとからなるコンピュータシステムが提供される。
本発明の第4の側面によれば、関連するデータメモリをそれぞれ有する複数のプロセッサ手段からなるコンピュータシステムであって、第1のプロセッサ手段の前記データメモリの内容を第2のプロセッサ手段の前記データメモリに複製するように構成され、前記第2のプロセッサ手段が、複写処理が行われている際にそのデータメモリにあらゆる書込みアクセスを記録する書込み記録用メモリを有し、更に、それについて前記書込み記録用メモリが書込みアクセスを記録した前記データメモリのアドレスからデータを複写するように構成されているコンピュータシステムが提供される。
本発明の第5の側面によれば、関連するメモリをそれぞれ有する複数のプロセッサ手段からなり、前記各プロセッサ手段がそのメモリ内に、そのハードウェアの複数のクロック駆動型要素の内容又は状態を記録した後に、前記処理手段を同時にトリガしてリセット状態にするように構成され、前記各プロセッサ手段が、リセット時にそのメモリから前記要素の状態又は内容を復元するように構成されたコンピュータシステムが提供される。
本発明の第6の側面によれば、それぞれクロック信号を必要とする複数のサブシステムと、クロック信号供給源と、前記クロック信号供給源をある前記サブシステム12に又は前記各サブシステムにそれぞれ接続する単一のクロック信号線又は複数のクロック信号線と、ある1つのサブシステムを前記サブシステムに又は他の前記各サブシステムにそれぞれ接続する単一の制御線又は複数の制御線とからなり、前記サブシステム又は他の前記各サブシステムが、電源を投入(パワーアップ)されると、その制御線に信号を印加することによって、そのクロック信号線に前記ある1つのサブシステムによってクロック信号が印加されるようにした電子システムが提供される。
本発明の第7の側面によれば、共通のデータバスに相互接続された複数のプロセッサ手段と、前記複数のプロセッサ手段を相互接続する2本の論理線とからなり、いずれか1つの前記プロセッサ手段がマスタプロセッサとして動作することができ、その場合に他のいずれの前記プロセッサ手段もマスタとして動作しないように前記論理線に論理信号を印加するように構成されたコンピュータシステムが提供される。
本発明の第8の側面によれば、共通のデータバスに相互接続された複数のプロセッサ手段と、前記複数のプロセッサ手段を相互接続する少なくとも1本の線とからなり、いずれか1つの前記プロセッサ手段が、マスタプロセッサとして動作することができ、その場合に他の前記プロセッサ手段をパワーダウンさせる信号を前記線に印加し得るように構成されたコンピュータシステムが提供される。
本発明の第9の側面によれば、共通のデータバスに相互接続された複数のプロセッサ手段からなるコンピュータシステムであって、いずれか1つの前記プロセッサ手段がマスタプロセッサとして動作することができ、その場合に前記プロセッサ手段又は他の前記各プロセッサ手段がチェッカとして動作するように構成され、更に前記全プロセッサ手段に影響を与えるエラー状態の場合には、前記各プロセッサ手段が、それが故障を有する確率を決定するべく自己評価を実行し、かつその確率によって時間遅れを計算し、その時間遅れの終了時に該プロセッサ手段がマスタの役割を引き受けようとするように構成されたコンピュータシステムが提供される。
本発明の第10の側面によれば、少なくとも1個の取外し可能なモジュールを備え、前記モジュールが、電気又は電子回路と、該回路のための電源制御装置と、前記モジュールが組付けられた時にその電源線と適合するコネクタとからなり、更に前記モジュールを所定位置にロックしかつ前記電源制御装置を使用可能にする状態に操作可能な機械式ロック手段を備える電気装置又は電子装置が提供される。
【図面の簡単な説明】
以下に、本発明について添付図面を参照しつつその単なる例示として実施例を用いて詳細に説明する。
第1図は、本発明によるコンピュータシステムを部分的に示すブロック図である。
第2図は、第1図の一部分を構成する中央プロセッサモジュールを示すより詳細なブロック図である。
第3図は、第2図のプロセッサモジュールの一部分を構成するバスインタフェースの動作を示すより詳細なブロック図である。
第4図は、第3図に示すバスインタフェースの動作を示す状態遷移図である。
第5図は、前記バスインタフェースの異なる動作モードを示す第3図と同様の図である。
第6図は、第3図及び第5図のバスインタフェースの動作の「スレーブ」モードを示すブロック図である。
第7図は、第2図の前記中央プロセッサモジュールの一部分を形成するタイムアウト回路及び専用(特定目的)メモリを示すブロック図である。
第8図は、第2図の中央プロセッサモジュールのクロック発信回路を示すブロック図である。
第9図は、前記中央プロセッサモジュールのクロック発信回路を相互接続する同期バスに使用されるプリント回路のレイアウトを示す図である。
第10図は、第2図の中央プロセッサモジュールの一部分を形成するエラー検出回路を示すブロック図である。
第11図は、第2図の中央プロセッサモジュールの一部分を形成するマスタ・アービトレイション(arbitration)回路を示すブロック図である。
第12図は、第2図の中央プロセッサモジュールに具現化された電力分配回路を示すブロック図である。
第13図は、第2図の中央プロセッサモジュールの物理的構成、及び特に2個のインタロックスイッチを示す斜視図である。
第14図は、第13図に示すインタロックスイッチの一方に関連する機構を示す縦断面図である。
第15図は、第2図の中央プロセッサモジュールの一部分を形成する別の専用(特定目的)メモリを示すブロック図である。
第16図は、ソフトウェアの制御下で前記中央プロセッサモジュールのリセットを可能にする回路を示すブロック図である。
第17図は、第16図の回路の動作を示す状態遷移図である。
発明を実施するための最良の形態
第1図に示されるコンピュータシステムは、データ転送バス10によって相互接続された3つのサブシステムからなる。これら3つのサブシステムは、中央プロセッササブシステム12、データを記憶するための磁気ディスクサブシステム14、及びシリアル通信サブシステム16である。この構成が単なる例示に過ぎないことは容易に理解される。中央プロセッササブシステム12はいずれの場合にも存在しなければならないが、他のサブシステムの数及び種類は相当に変化させることができる。各サブシステム(プロセッササブシステム12を除く)とデータ転送バス10との間の接続は、前記データ転送バス上の「スロット」を介して行なわれる。バス10は全部で8個のスロット(第1図に於ける符号18)を有し、従ってプロセッササブシステム12に加えて8個までサブシステムを接続することができる。
スロット18を介して接続されている前記サブシステムは、それらがデータ転送バス10に適正にインタフェースしていることを条件として、全く従来のものであってよい。このため、ディスクサブシステム14及び通信サブシステム16については詳細な説明を省略する。
第1図に示すように、中央プロセッササブシステム12は3つの別個の中央プロセッサモジュール20、22、24からなる。以後、本明細書に於いてこれらのプロセッサモジュールを「cpuセット」と称することにする。データ転送バス10によってcpuセット20、22、24間の主要な相互接続が得られるが、これら3つのcpuセットを相互接続する同期バス26が更に存在する。同期バス26は、プロセッササブシステム12の外部にあるコンピュータのいずれの部分とも接続されていない。
第2図は、cpuセット20、22又は24(3個とも全て同一)の中の1つを詳細に示すブロック図である。前記cpuセット内には、専用バス28と共用バス30との2つのデータ転送バスが存在する。これらのバスの双方にバスインタフェース32が接続され、それによって前記両バス間のデータ転送が可能である。別のバスインタフェース34が共用バス30及び前記コンピュータの主データ転送バス10の双方に接続されている。制御論理回路ブロック36がバスインタフェース32、34双方に接続されて、これらインタフェースの動作を制御する。一般的に言って、専用バス/共用バス・アーキテクチャを用いることは、コンピュータの中央プロセッサ部分の設計に於いて通常行なわれているが、バスインタフェース34の詳細な構造及び動作が新規である。これらを詳細に説明するためには、前記コンピュータの正常な動作時にcpuセット20、22、24が共働して動作する仕組みについて事前に説明する必要がある。
前記各cpuセットは、専用バス28に直接接続された中央処理装置38(以下、CPU38と称する)を有する。本実施例では、前記CPUが1個のモトローラ(Motorola)製68040集積回路であるが、他の型式のCPUを同様に使用することができる。専用バス28に接続されている他のハードウェア要素には、専用読出し書込み用メモリ40、読出し専用メモリ(PROM)42、及び特定目的(専用)読出し書込み用メモリ44が含まれる。CPU38と各メモリ40、42、44間の全てのデータ転用は、常に専用バス28に制限される。読出し書込み用メモリ40及び読出し専用メモリ42は、従来のものであるから詳細な説明は省略する。本明細書の後の部分に於いて、特定目的メモリ44の構成及び使用について詳細に説明する。このメモリ44は、「ダーティ」メモリと称されるが、その理由は後の説明から明らかになる。
3個のcpuセット20、22、24を使用することによって、「三重モジュール冗長度」即ちTMRが得られる。別言すれば、いずれかの前記cpuセットに発生した欠陥は、前記3個のcpuセットの行動を比較することによって検出することができる。正常な動作時には、3個全てのcpuセット20、22、24が全く同じメモリ内容を(そのメモリ40、42、44内に)有し、かつ互いに正確に同期してそれらのメモリから同じ命令を実行することになる。これらの命令によって要求されるデータ転送のみがCPU38と(前記データ転送を実行するCPU38と同じcpuセットの)メモリ40、42、44間に於いて行なわれる場合、cpuセット間に主データ転送バス10を介しての対話はない。
これは、CPU38によって実行される命令が、バスインタフェース34ではなくバスインタフェース32を介して行なわれるデータ転送、別言すればCPU38と共用バス30に接続されたいずれかのハードウェア要素との間のデータ転送を必要とする場合にも同じである。第2図が示すように、各cpuセット20、22、24は、その共用バス30に接続された次の5つのハードウェア要素を有する。即ち、共用読出し書込み用メモリ46、RS−232インタフェースを提供してコンピュータ端末が前記cpuセットに直接接続できるようにする(2692集積回路からなる)非同期レシーバ−トランスミッタ回路48と、(9513集積回路からなる)タイマ回路50と、(後で詳細に説明する)一群の制御・状態レジスタ52と、(同様に後で詳細に説明する)特定目的読出し書込み用メモリ54(このメモリ54は、後の説明から明らかになるように、「スロット応答メモリ」と称される)とである。メモリ40、42、44の場合と同様に、共用バス30に接続された前記全ハードウェア要素は、前記コンピュータの正常動作時には、3個全てのcpuセット20、22、24について全く同じ状態を有する。
CPU38によって実行される他の全ての命令には、直列をなすバスインタフェース32、34の双方が関連する。例えばこのような命令は、CPU38がデータをディスクサブシステム14へに対して又はそれから転送しようとすることを要求する。制御論理回路ブロック36は、2つの信号線を有し、その状態は前記データ転送の試みに於いてバスインタフェース34の行動を制御する際に特に重要である。これらは「master」、(マスタ)線56と「e_state」信号線58とである。いずれの時点に於いても、各cpuセット20、22、24は、以下の表に示すように、そのcpuセットの2つの信号線56、58に於ける論理レベルによって定義される3つの状態のいずれかである。
Figure 0003713554
前記コンピュータの正常動作時には、3つのcpuセット20、22、24のいずれか1つが、信号線56、58に於ける論理レベルによって定義されるような「マスタ」状態にあり、他の2つが「チェッカ」状態にある。いずれの前記cpuセットも、故障が発生しない限り、「エラー」状態にならない。
あるcpuセットが前記「マスタ」状態にあり、かつそのCPU38が、(例えば)ディスクサブシステム14へのまたはそれからのデータ転送を必要とする命令に直面した場合、そのcpuセットのバスインタフェース34は、アドレス信号及び制御信号を概ね従来の手法で主データ転送バス10に駆動して前記データ転送を実行する。このデータ転送が行なわれている間、前記プロセッササブシステムの他の2つのcpuセット(双方とも「チェッカ」状態にあると仮定する)は、その専用バス及び共用バス28に於ける信号が、前記「マスタ」cpuセットの対応する前記バスに於ける信号と全く同じでなければならない。しかし、前記「チェッカ」cpuセットのバスインタフェース34は、前記アドレス信号及び制御信号を主データ転送バス10に通過させない。代わりに、各cpuセットのバスインタフェース34は、単に(そのcpuセットの)共用バス30に於ける信号を前記主データ転送バスに於ける信号と比較するだけである。全く同様の検査処理が、前記「マスタ」cpuセットによって実行される。これらの比較によって全く差が検出されない場合には、中央プロセッササブシステム12は健全であるとみなされ、前記コンピュータの動作が正常に続けられる。差が検出された場合に起こることについては後述する。しかしながら、ここで言えることは、そのような差の結果の1つが、前記cpuセットに於ける「e_state」信号線58が論理「1」レベルに変わる、即ち3個全てのcpuセットが(今のところ)「エラー」状態にあることを意味する。
あるcpuセットが「エラー」状態にある場合、その制御論理36によってそのCPU38は、そのバスインタフェース34を介してデータ転送を全く実行することができない。しかしながら、「エラー」状態にあるcpuセットのバスインタフェース34は、主データ転送バス10に於ける「スレーブ」デバイスとして動作することができる。別言すれば、「マスタ」状態にある別のcpuセットが、「エラー」状態にあるcpuセットの共用バス30に接続されたいずれかのハードウェア要素に対して又はそれからデータを転送することができる。
上述の説明は、3つのcpuセット20、22、24間に於ける共働関係をまとめたものに過ぎない。多くの重要な部分については、第3図乃至第6図に関連して以下に詳細に説明する。これらの図面には(第4図の状態遷移図を除く)、制御論理ブロック36(各cpuセットの一部分を形成する)が記載されている。この論理ブロックは、前記cpuセットの他の多くの部分の動作を調整する任務を有する。前記論理ブロックは、主としてプログラム可能な論理アレー(PAL)からなり、その行動は、入力信号及び出力信号間の関係を定義する一組の論理式によって極めて容易に説明される。前記cpuセットの各部分に関する以下の説明は、明確に該cpuセットの関部分に関連する前記入力信号及び出力信号について言及している。本明細書の最後の部分には、論理方程式の完全なリストが記載されており、論理ブロック36の行動の完全な定義が得られる。
第3図は、cpuセット20、22又は24が、「マスタ」状態にある場合の、そのcpuセットのバスインタフェース34の行動を示している。第3図に示されるように、前記主データ転送バスは、一群のアドレス線60と、一群のデータ線62と、一群の制御線、即ち書込み(WRITE)線64、データストローブ(DS)線66、アドレスストローブ(AS)線68、非同期転送応答(ACK)線70、及び同期転送応答(TA)線72とを有する。バスインタフェース34は、その出力がそれぞれ前記アドレス線、WRITE線、DS線及びAS線に接続されたバッファ74、76、78、80を備える。バッファ74、76の入力が、共用バス30の対応する信号線に接続されているのに対し、バッファ78、80の入力は、論理ブロック36からの2本の出力信号線82、84に接続されている。前記論理方程式では、信号線82、84に於ける信号がそれぞれ「tb_ds」及び「tb_as」である。また、バッファ74、76、78、80は全て、論理ブロック36から別の出力信号線86に接続された「イネーブル」入力を有する。前記論理方程式では、信号線86に於ける信号が「to_buse_a」である。この信号は、「マスタ」状態にあるcpuセットがバスインタフェース34の使用を必要とする命令を実行する毎に表明される。これらの命令を認識するために、前記cpuセットは、専用バス28に接続された専用アドレスデコーダ88を備える。前記専用バスに於けるアドレスが、主データ転送バス10へのアクセスのために割り当てられた所定の範囲内に入っている場合には、前記デコーダは常に、論理ブロック36の入力に接続された信号線90に於ける出力信号を活動化する。論理ブロック36に関する前記論理方程式では、この信号は「bus」である。
また、バスインタフェース34は、前記主データ転送バスのデータ線62と共用バス30の対応する線とを相互接続する1組の双方向性バッファ92を備える。バッファ92は、データ転送の各方向毎に1つずつ、2つの「イネーブル」入力を有する。これら2つの入力は、論理ブロック36からの別の2つの出力信号線94、96に接続されている。前記論理方程式では、信号線94に於ける信号(共用データバス30から主データ転送バス10へのデータ転送を可能にする)は「to_buse_d」であり、信号線96に於ける信号(逆方向へのデータ転送を可能にする)は「from_buse_d」である。一方(かつ一方のみ)の信号線94、96が、信号線90に於ける前記「bus」信号が活動状態になる場合に表明される。
制御論理36に組込まれた制御方程式によって、「書込み」命令に於ける主データ転送バス10へのデータ転送及び「読出し」命令に於ける共用バス30へのデータ転送が、ある特別な場合を除いて可能になる。この特別な場合とは、cpuセットのCPU38が、その共用バス30に接続されたハードウェア要素に対してアクセスする際に、そのアクセスのために使用するアドレスによって次の2つのいずれかの方法を取り得るために生じる。即ち、
(i)信号線90に於ける前記信号「bus」を活動化せず、従ってバスインタフェース34に関係しない純粋な内部アクセス、又は
(ii)バスインタフェース34を通じての自己参照アクセス、即ち前記アクセスのために使用されるアドレスが、信号線90に於ける前記「bus」信号を活動状態にさせる範囲内にあることを意味する。
(ii)の場合には、信号線94(「to_buse_d」に関する)が、データ転送の方向が「読出し」又は「書込み」であるかどうかに拘らず、常に活動状態になる。これは、いずれの転送方向の場合にも、データのソース(CPU38又は共用バス30に接続されたいずれかのハードウェア要素)がバスインタフェース34の共用バス側にあるからである。
このことは、信号線94を活動化させることによって、制御論理36は、転送させるデータが確実に主データ転送バス10のデータ線62に出現するようにすることを意味する。これによって、次に前記「チェッカ」cpuセットはこのデータにアクセスできるようになる。「書込み」データ転送の場合には、このデータに関して「チェッカ」cpuセットが行なうべきことは、これをそれ自身の共用バス30に於けるデータと比較することだけである。しかしながら、「読出し」データ転送の場合には、「チェッカ」cpuセットは実際に前記データを読み込まなければならない。別言すれば、全cpuセット(「エラー」状態にあるものを除く)は同じデータを読込むことになり、従ってそれらの内部状態は完全に歩調が合った状態である。
主データバス10に於けるデータ転送は、DS線66及びAS線68に於ける活動レベルによって知らされる。前記データ転送が正常に進行していると仮定すれば、スロット18に接続されたいずれかの前記サブシステム(又はいずれかのcpuセット20、22、24)が、非同期転送応答(ACK)線70を活動化させることによって、前記データ転送の完了を知らせる。各cpuセットでは、信号線70が、クロック発信回路100から到来するクロック信号に接続されたクロック入力を有するD型フリップフロップ98のD(データ)入力に接続されている。クロック回路100は、前記cpuセットに於いて生成させる全てのクロック信号に応答するようになっており、かつ(前記コンピュータが正常に動作している間)3つ全部のcpuセット20、22、24に於けるクロック回路100が正確に同期して稼動する。フリップフロップ98のQ出力は、バッファ102の入力に接続されており、その出力は同期転送応答(TA)線72に接続されている。また、バッファ102は、「マスタ」線56に接続された「イネーブル」入力を有し、それによって前記「マスタ」cpuセットのみがTA線72を駆動するようになっている。TA線72は、バッファ102及び主データ転送バス10に加えて制御論理36の入力に接続されている。前記制御論理を定義する方程式では、前記TA線からの信号は「rsb_ta」である。同様に前記データ転送が正常に進行していると仮定すれば、前記TA線からの信号の効果は、制御論理36をしてCPU38に接続された出力線104を活動化させることによって、前記データ転送を終了させることである。出力線104は、前記論理方程式に於ける「u_ta」項に対応し、CPU38の「転送応答」ピン(CPU38のピンの名称は、該CPUがモトローラ製68040であることを前提としている)に接続されている。
前記転送応答信号を同期化させるためにフリップフロップ98を用いる理由は、信号線70に於ける非同期信号が前記cpuセットに於ける事象に関連して任意の時点で状態を変化させ得るからであり、それによって、この信号が1個以上の前記cpuセットの行動に影響を直接与え得る場合には、前記cpuセットの動作が継続して完全に歩調を合わせた状態にあることを保証できなくなるからである。この点を説明するために、非同期信号が前記全てのcpuセットによって同時にサンプリングされる場合を考える。前記信号がサンプリングされた正にその時点で状態を変化させるようになっている場合、それはある1個のcpuセットには論理「1」として表れるが、他のcpuセットには論理「0」として表れ、このためにcpuセットの歩調が合わなくなる。他方、フリップフロップ98によって供給される同期信号TAは、「マスタ」cpuセットに於けるクロック信号に関連してある時点でのみ状態を変化させることができる。前記「チェッカ」cpuセットに於けるクロック信号が前記「マスタ」cpuセットに於ける信号と正確に同期して稼動し、従っていずれの前記cpuセットも実際に前記信号を刻時(サンプリング)していない時点で信号TAの活動化が生じることを保証することは不可能である。前記信号の次の刻時は、該信号が実際に変化していない間に起こることを保証できるだけであり、それによって全cpuセットが同じ論理レベルで刻時し、かつ完全に同期してその命令を実行し続ける。
バスインタフェース34が関連するデータ転送の際に生じる前記事象について上述した説明は、異常な行動が全く生じないことを前提としている。しかしながら、このようなデータ転送の際には、前記「マスタ」cpuセットが主データ転送バス10に於ける情報の妥当性を監視する。この監視を実行するために必要なハードウェアが第3図に示されている。これには、コンパレータ回路106及びパリティ検査回路108が含まれる。
コンパレータ回路106は、データ転送を試みる際に別個の2段階の検査を実行する。これら各段階の検査は論理回路ブロック36の部分の行動を示した状態遷移図である第4図に関連して詳細に説明することができる。(制御論理36を定義する前記論理方程式では、対応する方程式が7つの状態S0〜S6の定義であり、かつこれらの状態定義の一部となる論理項が前記論理式によって定義されている。)
第4図の状態図では、状態S0が、バスインタフェース34を介してデータ転送が行なわれていない場合の関連する論理項の状態を定義する「アイドル」状態である。バスインタフェース34が関連する全てのデータ転送は、アドレスデコーダ88からの信号「bus」によって開始される。同時に、また信号「bus」が、上述したように前記バスインタフェースのアドレスバッファ74及びデータバッファ92を使用可能な状態にする。このとき、コンパレータ回路106による第1段階の検査が行なわれる。但し、制御論理36は信号「tb_as」及び「tb_ds」をまだ活動化していない。
コンパレータ回路106は、4つの入力線群を有する。これらの中の2つの入力線群110、112が、共用バス32及び主データ転送バス10のアドレス線にそれぞれ接続されているのに対し、他の2つの入力線群114、116は同様に前記両バスのデータ線に接続されている。コンパレータ回路106内には、2個の別個のコンパレータ(添付図面には明確に図示されていない)があり、一方のコンパレータは信号線110、112の信号を比較し、かつ他方のコンパレータは信号線114、116の信号を比較する。また、前記コンパレータは、共用バス30の前記「書込み」線に接続されかつ前記「tb_as」アドレスストローブ信号(制御論理36からの出力)に接続された別の2本の入力線118、120を有する。コンパレータ回路106内では、信号線118、120及び前記2個のコンパレータからの出力が組合せ論理(第3図には明確に図示されていない)によって一緒にゲートされており、主データ転送バス10の状態が共用バス30の状態と一致するとコンパレータ106が考えるかどうかを示す信号を供給する3本の出力線122、124、126に出力を供給するようになっている。これら3個の出力信号は論理的に同一であり、同期バス26を介して3つのcpuセット20、22、24に分配される。第3図は、この信号の分配を示している。同図に示されるように、各cpuセットは、前記同期バスに接続された3本の入力信号線128、130、132を有する。前記同期バスに於ける相互接続によって、これらの信号線は、確実に前記3個のcpuセットの異なるもののコンパレータ回路106の出力にそれぞれ接続されることになる。信号線128、130、132は、制御論理ブロック36の入力に接続されている。前記論理方程式では、これら信号線に於ける信号は「bus_ok0」、「bus_ok1」、及び「bus_ok2」である。
コンパレータ回路106による第1段階の検査は次のようにして行なわれる。コンパレータ回路106は、前記「tb_as」信号(信号線84、120を介して制御論理36から受信する)がまだ活動状態でないという事実から、これが第1段階の検査であることを識別する。その入力線110、112を介して前記2本のバスのアドレス線から受取る信号を比較する。また、共用バス30の前記「書込み」線が「書込み」サイクルを示している場合には、前記コンパレータはその入力線114、116を介して前記バスのデータ線から受取る信号を比較する。この比較(または「書込み」サイクルの場合にはこれらの比較)によって不一致が示されない場合には、前記コンパレータはその3本の出力信号線122、124、126のそれぞれに「bus_ok」信号を生成する。
前記データ転送が正常に進行するためには、「マスタ」cpuセットに於ける制御論理ブロック36が、それ自身のコンパレータ回路106から、及びそれが前記「チェッカ」状態にあると考える他の2つのcpuセットのいずれか(前記「チェッカ」状態にあるcpuセットの行動については後述する)から「bus_ok」信号を受信しなければならない。「エラー」状態にあると考えるcpuセットからの全ての「bus_ok」信号は無視される。前記論理方程式に関して言えば、この「エラー」状態にあるcpuセットからの信号のマスキングは、論理項「aok」を定義する方程式によって示されている。前記3個の「bus_ok」信号と同様に、この論理項は、制御及び状態レジスタ52(共用バス30に接続されている)からの3本の信号線134、136、138を介して制御論理36が受け取る3つの信号「signif0」、「signif1」、「signif2」に依存する。前記コンピュータが正常に動作している限り、3本の全信号線134、136、138は、3つの全cpuセットが有効な「bus_ok」信号を供給できるとこのcpuセットが考えていることを示す論理「1」レベルを搬送する。しかし、前記「マスタ」cpuセットがその考えを変更すべきである場合には、制御・状態レジスタ52にデータを書込むことによって、信号線134、136、138のいずれか1つ又は複数の線に於ける信号を変更する(ソフトウェアの制御下に於いて)ことができる。
前記「マスタ」cpuセットが、現時点で有効であると思われる全cpuセットからの「bus_ok」信号を受取ると仮定すれば、前記論理方程式に於ける前記「aok」項は活動状態になる。制御論理ブロック36が、現在第4図の状態遷移図に於ける状態S2に到達していることが想起される。この状態から、活動状態にある「aok」信号によって状態を状態S3に変更することができ、その状態では、制御論理ブロック36の出力線82、84(論理項「tb_ds」及び「tb_as」に対応する)が活動状態になる。これら活動状態の信号はバッファ78、80を介して伝搬して主データ転送バス10のデータストローブ線66及びアドレスストローブ線68に到達し、それによってこのバスに於けるデータ転送を開始させる。
1個(又は複数)の期待された「bus_ok」信号が活動状態になり損ねた別の場合には、論理項「aok」が非活動状態のままであり、かつ代わりに制御論理ブロック36が状態S2から状態S5に変化する。状態S5の定義は、論理項「b_dtea」がこの状態に於いて真になることを示しており、この項が次に論理項「u_tea」に影響を与える。制御論理ブロック36は、前記「u_tea」項に直接依存する出力線140を有する。この出力線140は、CPU38の「転送エラー応答」ピン(同様に、このピンの名称はCPU38がモトローラ製68040であることを前提としている)に接続されている。CPU38は、現在のデータ転送サイクルを中止し、かつその制御ソフトウェアに於ける例外ハンドラ・ルーチンに入ることによって、このピンに於ける活動レベルに対して応答する。
また、前記論理項「b_dtea」は、「e_state」出力信号線58が活動状態になるようにし、前記cpuセットをその「エラー」状態にすることによって、前記コンピュータが一時的に「マスタ」cpuセットが無い状態になる。前記コンピュータの全cpuセット(既に「エラー」状態にあるものを除く)が「エラー」状態となり、その例外ハンドラ・ルーチンを実行する。この例外ハンドラ・ルーチンによって実行される動作は、3つの「bus_ok」信号のいずれの信号が活動状態になり損ねたかを識別できるものでなければならず、かつこの情報及び他の情報から、いずれかの前記cpuセットを「マスタ」状態に戻すものでなければならない。この変更をソフトウェアの制御下で行なわれるようにするハードウェアについては後述する。前記ソフトウェア例外ハンドラの他の部分は、前記「b_dtea」信号が活動状態になったときに試みた前記データ転送が、2度目の試みで確実に首尾よく完了し得るようにするために必要な動作に関連する。例えば、必要とされる1つの動作は、制御・状態レジスタ52に書込みを行なって前記「signif」信号を変更することである。
前記例外ハンドラの実行が完了すると、前記「マスタ」cpuセット(先にマスタであったものと同じcpuセットである必要はない)が、前記「b_dtea」信号が活動状態になったときに実行されている命令と同じ命令の実行に戻る。前記例外ハンドラ・ソフトウェアにより行なわれる動作のために、この命令が2度目の試みに於いて首尾よく実行されることを期待できる。別言すれば、前記例外処理によって生じる僅かな遅れは別として、前記ソフトウェア(これがシステムソフトウェア又はアプリケーションソフトウェアを実行するものであろうと)は、前記ハードウェアが何らかの問題を生じているという事実に拘らず、割込みなしに稼動すると思われる。
再び第4図のコンパレータ回路106及び状態遷移図について説明すると、制御論理36が首尾よく状態S3に到達する場合には、信号線72に於けるTA信号が活動状態になるのを待つことになる。この信号は、データ転送に関する前記cpuセットの要求(前記アドレスストローブ信号及びデータストローブ信号によって示される)が確認されていることを示す。この確認は、主データ転送バス10のアドレス線60に於けるアドレス情報によって、サブシステム14又は16(又はcpuセット20、22又は24)のいずれかから到来する。この確認が受信されると、制御論理36は状態S3からS4に変化し、前記コンパレータ回路による第2段階の検査が以下のように行なわれる。
制御論理36が状態S4にある場合、論理項「b_dta」が活動状態になる。「書込み」サイクルの場合には、これによって無条件に論理項「u_ta」が活動状態にされ、従ってCPU38に接続された信号線104が活動状態になって、前記データ転送を正常に終了させる。「読出し」サイクルの場合には、前記「bus_ok」信号(入力信号線128、130、132に於いてコンパレータ回路106から受信)が全て活動状態にある(「エラー」状態にあると思われるcpuセットは別として)ことを前提として、論理項「b_dta」によって同様に論理項「u_ta」が活動状態にされる。そうでない場合には、論理項「u_tea」は、論理項「u_ta」に先立って活動状態になり、それによってCPU38の「転送エラー応答」ピンへの信号線140が活動状態になり、かつコンパレータ回路106によって実行される第1段階の前記検査に関して上述したように、例外処理を開始させる。
「読出し」データ転送サイクルの第2段階では、コンパレータ回路106の前記コンパレータによる検査が全く実行されず、前記データの一貫性に関する検査が、その出力が線142によってコンパレータ回路106に接続されているパリティ検査回路108によって実行される。コンパレータ回路106の出力線122、124、126に於ける前記「bus_ok」信号は、パリティエラーが検出されない場合にのみ活動化される。従って、パリティエラーがいずれかの前記「マスタ」及び「チェッカ」cpuセットについて生じた場合には、上述したように例外処理が開始される。
これから明らかなように、スロット18に接続された全ての前記サブシステムは、パリティ発生回路を備えていなければならず、それによって(ハードウェアの問題が全く存在しない場合には)「読出し」データ転送の際にバス10のデータ線62にパリティエラーが起こらないことになる。
論理制御ブロック36は、主データ転送バス10が関与するデータ転送の際に状態S4に到達した後、自動的に「アイドル」状態S0に戻り、それによって前記バスのデータストローブ線66及びアドレスストローブ線68の双方をその非活動状態に戻す。
バス10が関連するデータ転送が終了できる更に2つの方法がある。これらについては後述する。
本明細書の次の部分は、前記「チェッカ」状態にあるcpuセットの行動に関するものである。第5図は、第3図と類似しているが、「チェッカ」cpuセットについて活動状態にあるバスインタフェース34の部分のみを示している。このようなcpuセットの行動は、多くの点で前記「マスタ」cpuセットの行動に類似しており、従って以下の説明では、最初に「マスタ」の行動と「チェッカ」の行動との差を集中的に説明する。「マスタ」及び「チェッカ」cpuセットのCPU38が正確に同期して全く同じ命令を実行することになる点を忘れてはならない。
「マスタ」cpuセットと「チェッカ」cpuセットとの行動の第1の差は、線86に於ける信号(前記論理方程式に於ける項「to_buse_a」を表す)が、「チェッカ」cpuセットに於いて決して活動状態にならないことである。これは、「チェッカ」cpuセットが主データ転送バス10のアドレス線60、WRITE線64、DS線66、AS線68を決して駆動しようとしないことを意味する。しかしながら、前記「マスタ」cpuセット及び「チェッカ」cpuセットが正確に同期して動作すべきであることから、前記「マスタ」cpuセットがこれらの線に対して駆動する条件は、各「チェッカ」cpuセットの共用バス30の対応する線に於ける条件と正確に整合するべきである。この整合は、コンパレータ回路106によって検査される。前記コンパレータ回路の動作は、「チェッカ」cpuセットに於いて「マスタ」cpuセットに於ける場合と全く同じである。「チェッカ」cpuセットのコンパレータ回路106によって不整合が検出された場合には、前記「マスタ」cpuセットについて上述したと全く同じ事象のシーケンスが起こる。
「マスタ」cpuセットと「チェッカ」cpuセットとの行動に於ける第2の差は、線94に於ける信号(前記論理方程式に於ける項「to_buse_d」を表す)が、「書込み」サイクルが実行されているときに「チェッカ」cpuセットに於いて活動状態にならない。別言すれば、前記「チェッカ」cpuセットは、主データ転送バス10に於いてデータ線62を駆動しないが、アドレス線60に関して、コンパレータ回路106が、バス10の前記データ線に対して駆動する条件を前記「チェッカ」cpuセットの共用バス30の前記データ線への条件と比較する。同様に、不整合から生じる事象のシーケンスは、前記「マスタ」cpuセットについて上述したものと全く同じである。
「チェッカ」cpuセットが「読出し」データ転送をしようとする場合、2本の信号線94、96の行動(前記論理方程式に於ける項「to_buse_d」及び「from_buse_d」に対応する)は、前記「マスタ」cpuセットについて上述した行動から変化しない。これによって、(ハードウェアの故障が存在しない場合)同じデータが主データ転送バス10のデータ線62と全ての「マスタ」cpuセット及び「チェッカ」cpuセットの共用バス30のデータ線とに確実に存在することになる。これら全てのcpuセットについて同じデータが使用可能であることは、それらの読出し書込み用メモリ40(及びその状態が到来するデータに依存する前記cpuセットの他の部分)の内容が全く同じままであって、cpuセットの動作を確実に同期した状態で継続させるために必要である。
大抵の「読出し」データ転送に関して、信号線96(論理項「from_buse_d」に対応)は、各「チェッカ」cpuセットについて活動状態になり、それによって双方向性データバッファ92が主データ転送バス10からデータをcpuセットの共用バス30に転送できるようになる。しかしながら、前記「マスタ」cpuセットによって前記主データ転送バスに配置されたアドレスが、CPU38がいずれかの前記「チェッカ」cpuセットからのデータを読込むことを望んでいることを示す場合には、信号線94(論理項「to_buse_d」に対応)が、代わりに活動化されることになる(しかし、前記データを供給しなければならない当該「チェッカ」cpuセットについてのみである)。この種のデータ転送は、前記「マスタ」cpuセットの動作に関して上述した自己参照アクセスに類似しているが、前記データのソースが前記「マスタ」cpuセットにあるのではなく前記「チェッカ」cpuセットにある点で異なる。
主データ転送バス10が関連する全ての「読出し」データ転送の際に、各「チェッカ」cpuセットのコンパレータ回路106及びパリティ検査回路108は、前記「マスタ」cpuセットについて上述したと全く同じようにして動作する。別言すれば、前記コンピュータの全ての「マスタ」cpuセット及び「チェッカ」cpuセットは、パリティエラーを生じることなくデータを受信しなければならない。そうでない場合には、パリティエラーを検出する前記cpuセットは線122、124、126に於けるその「bus_ok」信号を活動化せず、かつ全ての「マスタ」及び「チェッカ」cpuセットが同時に「エラー」状態に変化しかつ例外処理を開始する。
上述したように、「エラー」状態にあるcpuセットは、主データ転送バス10を通じてデータ転送を全く実行することができないが、前記「マスタ」cpuセットによって実行されるデータ転送に於いて「スレーブ」として参加することができる。第6図は、前記「エラー」状態にある前記cpuセットについて、かかるデータ転送の際に活動状態にあるバスインタフェース34の部分を示している。第6図に示されるいくつかの部分は、先に説明した前記自己参照データ転送についても関連している。
各cpuセットのバスインタフェース34は、主データ転送バス10のアドレス線60に接続されたアドレスデコーダ144を備える。前記デコーダは、制御論理ブロック36の入力に接続された出力信号線146を有する。この信号線の信号は、前記論理方程式に於いて「address_match」として表され、データ転送の際に前記「マスタ」cpuセットによって前記バス10に配置されたアドレスが、このデータ転送を、デコーダ144を含む前記cpuセットへの又はそれからの転送として識別する。デコーダ144によって線146に生成される前記信号は、前記デコーダを含む前記cpuセットが「マスタ」、「チェッカ」又は「エラー」状態のいずれであっても、この意味を有する。
また、バスインタフェース34は、1群のアドレスバッファ148を備え、その入力は前記主データ転送バスのアドレス線60に接続され、かつその出力は前記cpuセットの共用バス30に接続されている(別言すれば、これらのバッファは、前記「マスタ」cpuセットの動作を示す第3図に表されるアドレスバッファ74と逆方向に動作する)。また、バッファ148は、信号線150を介して制御論理ブロック36の出力に接続された「イネーブル」入力を有する。この線は、前記論理方程式に於ける項「from_buse_a」に対応する。cpuセットが前記「エラー」状態にありかつ「スレーブ」としてデータ転送に参加する場合、前記制御論理は信号線150を活動化してバッファ148を使用可能にし、それによって主データ転送バス10のアドレス情報が共用バス30に於いて使用可能となり、共用バス30に接続された様々な項目のいずれが前記データ転送に参加すべきかを識別する。
制御論理ブロック36の動作を記述した前記論理方程式に関して、デコーダ144からの信号「address_match」の効果は、項「bus_access」及び「bus_reply」が真になるようにすることである。「エラー」状態にあるcpuセットの場合、項「bus_owner」も同様に真になる。この項及び項「u_owner」を定義する前記論理方程式によって、CPU38(真である「u_owner」項によって示される)に対して又はバスインタフェース34(真である「bus_owner」項によって示される)に対して共用バス30の所有を割り当てる仲裁(arbitration)機構が完全に定義される。
「エラー」状態にあるcpuセットの場合には、先に説明したばかりの変化が制御論理36の4本の出力信号線を介してバスインタフェース34に影響を与えることになる。これらの中の3本の信号線は線150、94、96(論理項「from_buse_a」、「to_buse_d」及び「from_buse_d」を表す)である。これらの線の第1のものによって、上述したようにアドレスバッファ148が制御される。第2及び第3の線94、96は、双方向性データバッファ92を制御する。これら2本の線のいずれかが、主データ転送バス10のWRITE線64から制御論理36によって受信される信号「rbus_write」によって活動状態にされる。前記「bus_owner」項及び「bus_reply」項に於ける変化によって影響を受ける制御論理36からの残りの出力信号線は、バッファ154を介して主データ転送バス10の非同期転送応答線70(ACK)に接続された線152である。線152の信号出力は、前記論理方程式に於ける項「tbus_ta」を表す。活動状態になるデコーダ144からの出力線146によって開始されるいずれのデータ転送の場合にも、項「tbus_ta」の活動化は、共用バス30及び該バスに接続された前記ハードウェア要素に関連する制御論理ブロック156が前記データ転送を完了し得ることを知らせるまで、生じない。より詳細に言えば、論理ブロック156は、論理ブロック36の入力に接続された出力信号線158を有する。制御論理156は、前記転送が完了し得るようになるとすぐに、この線158に於ける信号を活動化させ、この信号は入力項「p_ta」として制御論理36によって受信される。項「tbus_ta」の前記論理方程式を参照すると、この項の活動化は前記入力「p_ta」が真になるまで起こらないことを示している。
また、注意すべきことは、バスインタフェース34が共用バス30を所有する(「エラー」状態にあるcpuセットが「スレーブ」としてデータ転送に参加する場合)場合のみ、入力「p_ta」が項「tbus_ta」を活動化させる。その代わりに、CPU38が共用バス30を所有する場合には、入力「p_ta」によって制御論理36からの「u_ta」出力が活動化されることによって、この場合、転送応答信号が信号線104のCPU38に送られる。
上述したように、データ転送を終了させる方法が、上述したシーケンスに加えて更に2つある。これらのデータ転送を終了させるための別の方法の第1のものは、前記「マスタ」cpuセットによって転送応答信号が受信されない場合に生じるタイムアウトである。このタイムアウトを実現するために、及び第7図に関して、各cpuセット20、22、24は、クロック入力線162、リセット入力線164、及びタイムアウト出力線166を有するタイマ回路160を備える。クロック入力線162は、一定のクロック信号(一般に、1マイクロ秒の周期で)受信するためのクロック回路100に接続されている。リセット入力線164は、制御論理ブロック36の出力に接続されている。この出力は、論理的に逆転しているが、論理項「real_tip」に対応しており、それによってタイマ回路160は、CPU38がデータ転送の最中でない場合にはリセット状態に戻される。タイマ回路160のタイムアウト出力線166は、入力論理項「timeout_tea」として制御論理ブロック36に接続されている。前記論理方程式を参照することによって、この入力項が、活動状態になる場合には、前記「u_tea」項を活動化させることを示している。
タイマ回路160は、通常128マイクロ秒のタイムアウト周期を有する。CPU38によって実行される全ての正常なデータ転送がこれよりも大幅に少ない時間で完了するようになり、従ってタイマ回路160は通常決してその出力線166を活動化させることはない。しかしながら、CPU38がたまたまミッシング(missing)である又は欠陥を有するようなディスクサブシステム14のようなサブシステムにアクセスしようとした場合、主データ転送バス10に於いて転送応答信号を全く受け取らないことになり、かつ制御論理ブロック36は状態S3のままであることになる。この条件は、タイマ回路160が時間切れとなり、かつその出力信号線166を活動化させるまで持続されることになる。この信号が前記制御論理によって、CPU38の前記「転送エラー応答」ピンに印加される前記「u_tea」信号に変換されるので、前記データ転送は中止され、かつ制御は、コンパレータ回路106の動作に関して上述したと同じソフトウェア例外ハンドラに移される。
タイマ回路160は、原則として従来のものであるが、前記cpuセットのハードウェアの他の部分と同じクロック回路100から刻時されてデジタルタイマとして実施される点に注意すべきである。これは、3つのcpuセット20、22、24に於けるタイマ160が確実に互いに厳格に歩調を合わせた状態に維持されるために必要である。
前記ソフトウェア例外ハンドラの詳細な部分が、前記cpuセットに於いて使用されるCPUの種類に大いに依存することは明らかである。CPU38がモトローラ製68040である本実施例では、前記例外ハンドラが、RTE命令(例外からの復帰)をもって終了することは殆ど確実である。この命令の効果は、前記CPUの内部状態を、最初に前記データ転送が試みられる前の状態に復元し、かつ前記データ転送を再施行することである。試みたデータ転送がミッシングである又は欠陥のあるサブシステムへの又はそれからのものである場合には、これは、第2の転送が第1のものと異なるように行動させる別の動作が行なわれない場合には、再試行が無限に連続して行なわれることになる。「スロット応答メモリ」54(前記cpuセットの共用バス30を介してアクセス可能)は、CPU38が前記無限に連続する再試行から逃れることができるようにするためのハードウェア回路の一部分である。
「スロット応答メモリ」54に関連するハードウェアには、共用バス30に接続されている8本のアドレス入力線168が含まれるが、これらのアドレス線は、前記「スロット応答メモリ」自体に直接接続されていない。その代わりに、これらは、その出力がメモリ54の4個のアドレス入力に接続された4ビットマルチプレクサ170の入力に接続されている。また、マルチプレクサ170は、アドレスデコーダ144の出力に接続された「選択」入力線172を有する。線172の効果は、スロット応答メモリ54への又はそれからの全ての「正常な」データ転送の際に、メモリ54に印加される4ビットアドレスが共用バスの4本の最下位のアドレス線から導出されることによって、メモリ54は16の連続するアドレスを有効に占有する。それ以外では、メモリ54に印加される前記アドレスが、8個のスロット18及び3個のcpuセット20、22、24のいずれが主データ転送バス10に於ける転送の際にアクセスされているかを一意的に識別するのに十分な共用バス30の4つの上位アドレス線から導出される。メモリ54のデータ入力/出力ピン(このメモリのデータ長は1ビットのみである)は、共用バス30に直接接続されていないが、その代わりに、データがメモリ54から読出されている際にのみ使用可能となる双方向性バッファ174を介して接続されている。この構成は、メモリ54の前記入出力ピンが、データが該メモリに書込まれている場合を除いて常に出力に於いて使用可能であることから必要である。この入出力ピンは、信号線176を介して制御論理ブロック36に接続されている。これは、前記論理方程式では「give_ta」として示されている。
制御論理36に於けるこの信号の効果は以下の通りである。CPU38が、主データ転送バス10が関連するデータ転送(スロット18のいずれか又は他の前記cpuセットのいずれかへ又はそれらから)を試みる場合、スロット応答メモリ54に印加されるアドレスは、どのスロット又はcpuセットがアクセスされているかを識別する。このアドレスに応答して線176に表れるデータが「0」である場合には、制御論理36の前記論理方程式に於ける論理項「give_ta」は偽となり、前記データ転送は上述したと全く同様に進行して、バス10に於ける転送応答信号又はタイマ回路160からのタイムアウト信号によって終了する。しかしながら、線176に表れる前記データが「1」である場合には、制御論理36が異なる行動を呈する。即ち、第4図の状態遷移図に於ける状態S2に到達すると、前記「tb_as」項及び「tb_ds」項が主データ転送バス10に於けるデータ転送を開始させるように全く活動化されていないにも拘らず、次に「b_dta」項が活動化される状態S6に移ることになる。前記「b_dta」項を活動化させることによって、例外処理が全く開始されないと言う意味で正常にデータ転送が終了する。しかしながら、前記ソフトウェアは、「読出し」転送に有効なデータが存在しないことを検出することができる。
「スロット応答メモリ」54の通常の使用法は次の通りである。前記コンピュータの正常動作時には、正しく機能しているサブシステムを含むスロットに対応するメモリ54の全ての位置が、「0」のデータを含み、かつメモリ54が主データ転送バス10に於けるデータ転送に支障を生じることはない。しかしながら、いずれかの前記サブシステムが欠陥を有するようになる、または前記コンピュータから取り外された場合には、そのサブシステムにアクセスしようとする次の試みは、タイマ回路160がタイムアウトを生成し、それに続いて前記例外ハンドラが実行される結果になる。前記例外ハンドラによって行なわれる動作の1つは、前記スロット応答メモリの対応する位置にあるデータを「1」に変更し、それによって前記欠陥のあるサブシステム又は不存在のサブシステムにアクセスしようとする後の全ての試みが、タイムアウトなしに、かつ例外処理なしに、前記データ転送の試みを人為的に終了させるようにすることである。
本明細書の説明から明らかなように、タイマ回路160によって終了されるデータ転送の試みは、通常のデータ転送よりも非常に長い時間継続する。前記コンピュータが正常に動作している間は、これは、全てのデータ転送が正常に終了することになるので、全く取るに足らないことである。しかし、前記コンピュータのいずれかのサブシステムが存在ぜず又は欠陥を有する場合には、そのサブシステムに対して又はそれからデータを転送しようと繰り返し試みることは、タイムアウトを繰り返すことにより生じる遅延のために、前記コンピュータの性能に重大な衝撃を与え得る。一般原則として、この遅延を、前記例外ハンドラがソフトウェアのフラグ(flag)を設定して、サブシステムが存在しない又は欠陥を有することを示すソフトウェア技術によって最小にすることは可能であり、前記サブシステム(特に、該サブシステムのデバイスドライバ)にアクセスする前記ソフトウェアの他の全ての部分は、認め得る大きさの全てのデータ転送の間、相当頻繁な間隔でこのフラグの状態を検査しなければならない。(小規模なデータ転送は、その結果生じる遅延がひどいものではないことから、おそらくこの検査なしに進めることができるが、性能の低下を示すことにはなる。)このソフトウェアフラグを用いることは、標準的なデバイスドライバを前記システムソフトウェアに組み込むことを困難にするので、特に好ましい案ではない。他方、「スロット応答メモリ」54を用いることによって、デバイスドライバは、長く連続するタイムアウトの虞れを生じることなく、かつ前記転送の最中に特別の検査を行なうことを必要とせずに、サブシステムへの又はそれからの大規模なデータ転送を試みることが可能になる。前記データ転送が完了した後、「スロット応答メモリ」54は前記転送が成功したかどうかを示す簡単な検査を行なう。
(3個のcpuセット20、22、24のそれぞれについて1個の)クロック回路100は、それぞれそのcpuセットの他の部分から要求される全てのタイミング信号を供給する。これら3つのクロック回路100は、前記3つのcpuセットに於けるタイミング信号が正確に歩調を合わせた状態にあるように、同期バス26によって相互接続されている。クロック回路100及び同期バス26の構成及び動作について、第8図及び第9図に関連して以下に詳細に説明する。
同期バス26は、既に説明した9本の線(「bus_ok」信号を搬送する)に加えて、クロック回路100に接続された6本の線を有する。3本の線178、180、182は、各cpuセット20、22、24がパワーオンされたか即ち電源が入ったかどうかを示す信号を搬送する。3本の線184、186、188は、(少なくとも正常動作時に)前記各cpuセットによってそれぞれ使用するために、同一のクロック信号を搬送する。線178は、線184と対をなすものとみなすことができるが、これらは共にcpuセット20に緊密に関連している(一方が前記cpuセットのパワーオン状態を示すのに対し、他方が該cpuセットにクロック信号を供給する)からである。同様に、線180は線186と対をなし、かつ線182は線188と対をなす。
線178を例にとると、プルアップレジスタ190(同期バス26の一部分を構成する)を介して+5ボルト電源線192に接続されている。また、トランジスタ194(cpuセット20の一部分を構成する)を介して0ボルト(接地)線196に接続されている。cpuセット20の正常動作時には、トランジスタ194によって大地への低抵抗経路が提供され、それによって線178が論理「0」レベルとなる。しかしながら、cpuセットが前記コンピュータシステムから取り外された場合、又はcpuセットが、その動作に必要な電源をもはや受け取らないことを意味する何らかの故障を生じている場合には、トランジスタ194によって低抵抗接地経路が提供されることはなくなり、線178はレジスタ190によって論理「1」レベルに引き上げられることになる。同様にして、線180及び182は、同期バス26のレジスタ198、200に、及びcpuセット22、24のトランジスタ202、204にそれぞれ接続されることによって、これら各線に於ける論理「0」レベルが、対応するcpuセット22又は24が依然として存在しかつ前記システム内に於いて電源が供給されていることを示す。
上述したように、前記コンピュータの正常動作時には、3つのcpuセット20、22、24が正確に同期して稼動することになる。この同期状態は、前記同期バスの3つの線184、186、188によって維持される。これら3本の線は、3つのcpuセット20、22、24によってそれぞれ使用するために通常同一のクロック信号を搬送する。
各cpuセットは、線184、186、188を駆動するために、その信号入力が全て水晶制御発信器208の出力に接続された3つのクロックバッファ206を有する。また、各クロックバッファ206は、3個の2入力ANDゲート210の中の1個の出力に接続されたイネーブル入力を有する。これら各ANDゲートの1個の入力は(論理的に逆転して)前記同期バスのいずれかの線178、180、182に接続され、他方の入力は信号線212を介して「マスタ」信号線56(制御論理ブロック36のいずれかの出力)に接続されている。これは、いずれのクロックバッファ206についても使用可能な状態にするためには、次の条件を双方とも満足しなければならないことを意味する。
(i)現在「マスタ」cpuセットであるcpuセット20、22又は24に前記クロックバッファがなければならないこと(これによって、異なるcpuセット上の2個のクロックバッファが同時に同じクロック線184、186、188を駆動しようとする可能性が完全に排除される)、及び
(ii)線178、180、182のいずれの線であっても、前記クロックバッファによって駆動されている前記クロック線と対になるものは、前記クロック線からクロック信号を受信するcpuセットが存在しかつパワーアップされていることを示す論理「0」レベルでなければならないこと。
この構成によって、前記クロック線は駆動されているが、該クロック線からクロック信号を受信する回路には電源が入っていないような事態が回避される。これは、受信回路がその電源の入っていない状態では低いインピーダンスを示し、かつその結果生じる、クロックバッファ206によって前記回路を介して駆動される電流が、ダメージを生じさせる程度に大きくなることから、好ましい事態ではない。
第8図に示されるクロック回路は、3つの前記cpuセットによって受信されるクロック信号間に生じる虞れがあるスキューの量を最小にするように設計されている。これは、過度のスキューは、コンパレータ回路106が前記cpuセットの動作間の不整合を知らせる結果になるので必要である。前記クロック回路に関連して、前記スキューを最小にするのに役立ついくつかの設計上の特徴がある。これらの特徴に関する以下の説明では、異なる生産バッチから様々なcpuセットモジュール20、22、24が製造されることを忘れてはならない。これは、異なる信号伝搬経路にある類似の構成要素は、その特性を正確に整合させるために、同じ生産バッチから製造されることを条件とするがスキューを最小にするための考えられる設計技術の1つであることから、関連がある。本実施例の場合には、この技術は、整合すべき構成要素が全て同じcpuセットモジュールにあるような場合にのみ適用される。
前記クロック信号間のスキューを最小にするのに役立つ設計上の特徴は次の通りである。
第1に、同期バス26に到達する前に別個にバッファリングされる前記3つのクロック信号が通るステージ(段)の数を最小(即ち、バッファ206によって供給される1段のバッファリング)に維持する。
第2に、クロックバッファ206への信号入力が、その共通の信号ソース(発信器208)に分岐線214によって接続され、その3本の分岐が、前記発信器から前記クロックバッファまで測定して実質的に等しい長さである。
第3に、クロックバッファ206が全て同じ型式のものであり、かついずれのcpuセットに於いても3個全てのバッファ206が同じ生産バッチから作られている。
第4に、クロックバッファ206の出力が、その長さ(前記バッファ出力から前記cpuセットと同期バスとの間のインタフェースまでを測定)が概ね等しい3本の線216によって同期バス26の線184、186、188に接続されている。
第5に、同期バス26の線184、186、188は、線216がクロック信号を同期バス26に注入する位置から、前記信号が前記同期バスから前記cpuセットに戻る位置までを測定した長さができる限り等しくされている。この長さが等しいことは、第8図に図示されている。また、前記同期バスがプリント回路基板上でどのように実現されるかが示す第9図にも図示されている。
第8図及び第9図に示すように、前記同期バスの各クロック線184、186、188は、クロック信号がクロックバッファ206によって注入される3つの位置を有するが、上述した前記回路によって、いずれの時点に於いても、実際には前記「マスタ」cpuセットのみがこれらの線にクロック信号を注入することが保証される。前記クロック信号が注入される3つの位置は、前記線の長さ方向に沿って全て同じ位置である。注入された前記クロック信号は、前記同期バスに沿って両方向に伝搬する。
クロック線184、186、188の(第8図及び第9図に於ける)左側の端部は、前記同期バスの一部分を構成し、かつ前記クロック線とバス26の0ボルト(接地)線221との間に直列に接続されたレジスタ218及びコンデンサ220からなる終了ネットワークにそれぞれ接続されている。レジスタ218の値は、クロック線184、186、188の特性インピーダンスに整合するように選択され、それによって、前記注入位置から左方へ伝搬する前記クロック信号は、前記注入点から反射されない。(これは、前記3個のcpuセットのいずれがクロック信号を注入しているかに拘らず、又は前記コンピュータに於ける他の2つのcpuセットの存在又は不存在に拘らず、同じである。)
分岐線216は、線184、186、188に於ける前記クロック信号の反射のない伝搬を妨害する虞れがある。従って、分岐線216はこの妨害を最小にするように短く維持される。
第8図及び第9図の右側部分には、前記同期バスの3本のクロック線184、186、188がループされ、かつそれぞれその関連するcpuセットのクロック入力線222に接続されている様子が示されている。前記クロック線のこれらループ部分は、考えられる最も短い経路を通ってクロック入力線222に到達するようになっていない。その代わりに、これらは、前記注入位置から、前記信号が前記3個のcpuセットのクロック入力線222に送られる位置まで、前記クロック信号が横断する線路長が等しいように設計されている。左側のcpuセット20のクロック信号を搬送する線184については、左側のcpuセット24によって駆動され得る前記注入位置からcpuセット20に幾分直接的にループして戻るようになっている。中間のcpuセット22のクロック線を搬送する線186は、左側の前記注入点から前記中間のcpuセットまでの線路長を人為的に長くする手段として、ヘアピンループ224を有する。また、線188は、前記右側の注入位置と右側のcpuセット24のクロック入力線222との間に更に長いループ226を有する。
これらの線の長さを等しくすることによって、前記注入点から右側に伝搬する前記クロック信号が、その各cpuセット20、22、24のクロック入力線222に全く同じ伝搬速度で到達するという効果がある。
各cpuセットでは、クロック入力線222が、該線222と0ボルト(接地)線196との間に直列に接続されたレジスタ228及びコンデンサ230からなる終了ネットワークに接続されている。レジスタ218の場合と同様に、レジスタ228の値は、反射の発生を防止するべく、前記線の特性インピーダンスに整合している。
また、クロック入力線222は、バッファリングなしに、フェーズロックドループ(PLL)回路234(本実施例では、この回路はモトローラ製MC88915集積回路を用いて実現される)の基準信号入力に接続されている。また、前記PLL回路は、第2の基準信号入力と、前記2個の参照信号のいずれを聞くべきかを示す「選択」入力とを有する。第2の基準信号入力は、水晶制御発信器208の前記出力を搬送する線214に接続され、PLL回路234の前記「選択」入力は、線236によって制御論理ブロック36の出力に接続されている。この出力は、前記論理方程式に於ける項「use_backplane_clock」に対応する。
同期バス26とPLL回路234の基準信号入力との間にバッファリングを全く設けない理由は、このようなバッファリングを設けた場合、バッファ構成要素が略確実に異なる生産バッチから製造され、従って伝搬遅れが様々になる(例外的に厳格に指定した特性を有する構成要素が使用されない限り)からである。また、PLL回路234によって潜在的なクロックスキューの原因が持ち込まれるが、これらの構成要素によるスキューは元来小さいものである。
同期バス26とPLL回路234との間にバッファリングが存在しないことによって、パワーダウン即ち電源が入っていないcpuセットに通じる線を駆動している全てのクロックバッファ206を不能状態にすることが必要な理由が説明される。MC88915からなる前記PLL回路では、電源の入っていないときに駆動されることは許容されない。(バッファリングを行なうことが許されているような場合には、電源を落とした際に駆動されることを許容し得るようなバッファリング構成要素を選択することが可能である。そして、前記「マスタ」cpuセットの3個全部の前記クロックバッファを永久的に使用可能な状態にすることが可能である。)
前記コンピュータの正常動作時には、前記論理方程式に於ける項「use_backplane_clock」が、前記3個のcpuセットのそれぞれに於いて真になり、同期バス26からその基準信号として受信する前記クロック信号をPLL回路234に使用させる。各PLL234は、そのcpuセットの他の部分が必要とする全クロック信号を(直接的に又は間接的に)供給する。一般に上述した様々な特徴を組み合わせることによって、前記3個のcpuセットの前記PLLは、1ナノ秒より相当良好な同期状態を維持することができる。
前記「マスタ」cpuセットの発信器208からPLL234までの伝搬遅れは、3個のcpuセット20、22、24のいずれが前記「マスタ」cpuセットであるかによって変化することに注意すべきであるが、これは、発信器208の位相が、前記cpuセットの他の全ての部分の動作と直接関連していないことから、重要ではない。
各PLL234は、前記PLLの内部発信器が前記PLLへの基準信号入力と位相同期しているかどうかを示す出力信号を供給する(正常動作時には、「選択」線236の信号「use_backplane_clock」が真であることから、これは同期バス26からのクロック入力線222に於ける基準信号となる)。この出力信号は、線238によって制御論理ブロック36に接続される。これは、前記論理方程式では、入力項「unlocked」として表現される。これは、前記コンピュータの正常動作時には「偽」のままである。しかしながら、同期バス26が何らかのハードウェア故障によって影響を受け、それによってPLL234が位相同期状態を維持することができない(例えば、線222に於ける基準信号が完全に消滅するため)場合には、線238に於ける「unlocked」信号が真になる。前記論理方程式に関して言えば、この変更の効果は、(i)線236に於ける信号「use_backplane_clock」を偽にし、それによって今後はPLL234がその基準信号を前記cpuセットの発信器208から直接受け取ること、及び(ii)線58の「e_state」信号が真になり、それによって前記cpuセットが「エラー」状態になること、であることがわかる。前記「エラー」状態への変化は、CPU38による命令実行のシーケンスに直ちに割込みを生じさせるものではないが、「エラー」状態への前記変化の後に主データ転送バス10に於けるデータ転送を実行しようとする最初の試みは失敗することになる。これは、論理項「aok」が偽のままであり、それによってCPU38が、正にコンパレータ回路106が不整合を検出したかのように、転送エラー応答信号を受け取るからである。より詳細に言えば、この時点で制御論理ブロック36に生じる事象は次の通りである。前記「e_state」信号が現在は真であるので、論理項「goodcycle」は決して真になることができない。そして、これによって前記「aok」項が真になることが直接的に防止される。
プロセッササブシステム12内の問題を検出することができる、更に別の機構がある。この機構を実現するハードウェアが第10図に詳細に記載されている。同図に示すように、同期バス26は各cpuセット20、22、24によってそれぞれ生成される「signature」信号を搬送する別の3本の線240、242、244を有する。より詳細に言えば、各cpuセットは、そのD(データ)入力が線248によってCPU38のTS(転送開始)ピンに接続されたD型フリップフロップ246を備える。フリップフロップ246のクロック入力は、線250によってクロック回路100に接続され、それによって前記フリップフロップは、前記cpuセットの回路の他の部分に同期してクロックされる。(前記3個の異なるcpuセットの)3個のフリップフロップ246のQ出力は、線252を介して前記同期バスの3本の「シグネチャ(signature)」線240、242、244に接続されている。
各CPU38の転送開始ピンは、該CPUによって実行される各データ転送について1個のパルスを生成する。従って、3個のCPUが完全に同期して同一行動(正常動作時)を実行することから、3本のシグネチャ線240、242、244に於けるパルスが全く同時に発生する。
各cpuセットでは、3本のサイン線240、242、244が、バッファ254を介して制御論理ブロック36の3個の入力に接続されている。これら3本の線に於ける信号は、前記論理方程式に於いて、それぞれ「br_sign0」、「br_sign1」、及び「br_sign2」として表される。前記方程式が示すように、制御論理36は、これら3個の信号の同期化バージョン(それぞれ「dbr_sign0」、「dbr_sign1」及び「dbr_sign2」)を生成し、「signif0」、「signif1」及び「signif2」各信号(問題を生じていると考えられるcpuセットから到来する「bus_ok」信号のマスキングに関連して上述した)をもって論理的にANDされる。前記「signif」信号によってマスクされないこれらの「dbr_sign」信号は、「e_state」出力線58を定義する方程式に於いて比較され、それによってこれら信号間のあらゆる差が、前記cpuセットを「エラー」状態に変化させることになる。この変化の効果は、PLL234に影響を与えるクロック故障の結果としてcpuセットを「エラー」状態に変化させる上述した場合と類似している。命令実行は短い時間の間継続されるが、主データ転送バス10に於けるデータ転送を実行しようとする全ての試みは、「転送エラー応答」信号がCPU38に戻ることになり、従って実行が前記ソフトウェア例外ハンドラに渡される。
上述した説明の大部分はコンピュータの「正常」動作(別言すれば、1個のcpuセットが「マスタ」状態でかつ他の2個のcpuセットが「チェッカ」状態で動作する)である場合、及び全く異常な状態が生じていないことを検査する監視機構に関するものである。上述した部分では、異常な状態が検出され、かつそれによってCPU38を(「転送エラー応答」信号の結果として)前記ソフトウェア例外ハンドラに入らせた後に生じる事象について詳細な説明はなされていない。
多くの動作が前記例外ハンドラ内で発生する。これらの全てが上述したハードウェアの特徴に関連するものではないが、それは(「u_tea」について前記論理方程式により示されるように)、「転送エラー応答」信号が前記cpuセットハードウェアの他の部分から発信することが可能だからである。前記例外ハンドラによって行なわれる動作の1つは、制御・状態レジスタ52を介して「e_state」線58の状態を読出すことである。この線が活動状態でない場合には、上述したいずれの特別なハードウェアの機能によっても例外が生じておらず、従来の方法で処理することができる。
「e_state」線58が活動状態にある場合には、これは、前記ハードウェアが上述したいずれかの型の問題、即ち(i)いずれかのコンパレータ回路106に於いて前記コンパレータにより検出される不整合、又は(ii)いずれかのパリティチェッカ108によって検出されるパリティエラー、又は(iii)クロック回路100からの「unlocked」信号を活動状態になるようにするクロック故障、又は(iv)「シグネチャ」線240、242、244間に於ける不整合を検出したことを示している。これらのいずれの場合にも、前記3個のcpuセットに於ける命令実行は既に歩調が合わなくなっており、前記cpuセットが別々の時点で前記例外ハンドラに入る可能性がある。従って、これらのいずれの場合にも、前記例外ハンドラが行なう最初の動作は、「ソフトウェアの同期化」である。この同期化を実行するために、前記「マスタ」cpuセットは、まず3個全てのcpuセットが確実に前記例外ハンドラに入るのに十分な遅延時間を待って、同期バス26に於ける信号線364を活動化させる。(線364及びその関連するハードウェアについては、第16図に関連して後述する。後の説明から明らかになるように、線364は、前記「ソフトウェアの同期化」とは明確に区別される別の機能を有する。)各「チェッカ」cpuセットは、前記例外ハンドラに入り、かつその「e_state」線58が活動状態にあることを決定した後、線364に活動レベルを検出するまで待機する。
線364を活動化させ(「マスタ」cpuセットの場合)、又は線364に活動レベルを検出した(「チェッカ」cpuセットの場合)後、前記cpuセットは前記例外ハンドラの次のステージに進む。このステージでは、各cpuセットが、該cpuセットによる、ハードウェア故障が生じかつそれによって例外が生じている確率の自己評価を表す数を計算する。この評価は、主として読出し書込み用メモリ40、制御・状態レジスタ52、及び自己検査ルーチンの実行から読出すことによって得られた情報に基づく。注意すべきことは、3個全てのcpuセットが同じ例外ハンドラコードを実行しているにも拘らず、これらがもはや全く同期して稼動することは期待できないこと、前記自己検査の結果及び故障のあるcpuセットに於ける状態情報が他の2個のcpuセットに於ける対応する情報と異なることから、各cpuセットが前記コードについて異なる経路をとる可能性があることである。
この計算を実行した後に、各cpuセットのCPU38は、その計算した数に比例する時間で待機する。そして、他の2個のcpuセットのいずれが「マスタ」状態にあるように思われるかを(「マスタ不存在」以外の論理条件が線266、268に存在するかどうかを決定することによって)検査する。そうでない場合には、これは、前記cpuセットが3個の中で最初にその計算した待ち時間が終了すること、従ってハードウェア故障を生じている虞れが最も少ないことを示唆する。この場合には、前記cpuセットがその制御・状態レジスタ52に書込みを行なって前記「signif」信号を変化させ、それによって他の2個のcpuセットから到来する「dus_ok」信号及び「br_sign」信号がもはや制御論理ブロック36の論理方程式に於いて有効であるとみなされなくなる。そして、それ自身を「マスタ」状態に変化させる。最後に、他の2個のcpuセットの読出し書込みメモリ46に「マジックナンバ」を書込み、それが「マスタ」cpuセットとして良好に動作していることを示し、かつ前記例外ハンドラから例外が生じたときに実行されていたコード(システムソフトウェア又はアプリケーションプログラムを作動させる)に戻る。
他方、CPU38が、その計算した待ち時間の終了時に、別のcpuセットが既に「マスタ」状態になっているように思われることを見つけた場合には、最初に、この別のcpuセットが、おそらくその計算した待ち時間がより短いものであったために、前記例外ハンドラの後のステージに進んでいると仮定する。この場合、待ち時間の長いcpuセット(依然として「エラー」状態にある)は、前記「マスタ」cpuセットが既にその読出し書込み用メモリ46に前記「マジックナンバ」を書込んでいると考える。各「エラー」cpuセットは、既に「マスタ」cpuセットが存在することを見つけた後、この「マジックナンバ」の存在を検査する。前記マジックナンバが存在する場合には、前記「マスタ」cpuセットは正しく機能しているものとみなされ、かつ他のcpuセットは単に前記「マスタ」cpuセットが更に何らかの動作(前記例外ハンドラ以外)を行なうまで待って、少なくともいずれかの前記cpuセットが前記「チェッカ」状態に戻るようにする。
他方、「エラー」状態にあるいずれかの前記cpuセットが、「マスタ」cpuセットが存在するように思われるにも拘らず、その読出し書込み用メモリ46内に前記マジックナンバを見つけることができない場合には、前記「マスタ」cpuセットが正しく機能していないとみなす。そして、約100ミリ秒間待って、依然としてそのメモリ46内にマジックナンバが見つからず、かつこの待ち時間を妨害するものがない場合には、このcpuセット(マジックナンバを見つけることができなかったもの)は、「マスタ」状態に変化しようとする。しかし、ハードウェアの設計によって常に唯1個のcpuセットのみしか「マスタ」になることができないので、まず、正しく機能していない前記cpuセットが「マスタ」として行動することを止めさせなければならない。これは、コンピュータの他のcpuセットの両方の電源を落とすことによって行なわれ、それによって「マスタ」cpuセットになるためのハードウェア上の障害がなくなる。この後、「マスタ」状態に変化し、かつその後の行動は、その計算した待ち時間が最初に終了した第1のcpuセットであった場合と全く同じである。
この例外ハンドラを実現できるためにcpuセット20、22、24に於いて必要なハードウェアの特徴について、以下に第11図及び第12図を参照しつつ説明する。
前記cpuセットが前記例外ハンドラに入る別の理由は、主データ転送バス10のスロット18に接続された他のサブシステムの一方が欠陥を有するようになっていること、又は取り外されていることである。これは、そのサブシステムへの又はそれからの全てのデータ転送の試みが、上述したようにタイマ回路160からのタイムアウト信号によって終了する結果となる。前記cpuセットは「エラー」状態に変化しない。この状態では、前記例外ハンドラによって行なわれる主要な動作は、スロット応答メモリ54にデータ「1」を、前記cpuセットがアクセスしようとしている前記サブシステムに対応する位置に書込むことである。そして、制御が前記例外ハンドラから、欠陥のある又は存在しないサブシステムにアクセスしようとしていたコードに戻される。前記cpuセットが「エラー」状態に変わる際に呼び出されている前記例外ハンドラの部分との対話はない。
前記cpuセットが「エラー」状態に変化する(恐らくはハードウェアの問題のために)ような場合には、前記例外ハンドラがプロセッササブシステム12を、いずれかの前記cpuセットが「マスタ」状態にあり、かつ他のcpuセットが「エラー」状態又は電源を落とした状態を維持するようにする。ハードウェアの問題は唯1つの前記cpuセットに影響を与えると考えることができるので、前記システムのソフトウェアは、欠陥のない、マスタでないcpuセットを「チェッカ」状態に戻すようにするべきである。この処理は、「cpuセットのリインテグレーション(再統合)」と称される。前記cpuセットがもはや同期して稼動していないことから、それらのメモリの内容(及び前記ハードウェアの他の部分の状態)は、cpuセットが異なれば異なることになる。これは、前記メモリの内容が、前記「マスタ」cpuセットから再統合されている前記cpuセットに複写されなければならないことを意味する。この複写の大部分は、前記コンピュータのオペレーティングシステムの制御下で稼動するアプリケーションプログラムによって行なうことができる。このアプリケーションプログラムが大部分の前記メモリの内容を複写したとき、前記オペレーティングシステムは一時的に中断され、残りのメモリの内容が複写される。前記cpuセットのクロック回路100は、同期状態に戻される(その前に、再統合されている前記cpuセットは、同期バス26の前記クロック信号とは無関係に稼動していた)。また、前記「マスタ」cpuセットのハードウェアの他の全ての部分の状態は、この状態のメモリイメージに変換され、かつこのメモリイメージは、前記「マスタ」cpuセット及び再統合されている前記cpuセット双方に於いて、メモリ内に配置される。最後に、「マスタ」cpuセットによって「リセット」信号が同期して3個全てのcpuセット20、22、24のCPU38(及び他のハードウェア)に印加される。前記リセット信号は、CPU38をそのPROMメモリ42からのコードを実行するように変化させる。このコードは、前記ハードウェア状態のメモリイメージを用いて、前記ハードウェア(このようなメモリイメージを有する全てのcpuセットに於ける)を、以前に前記「マスタ」cpuセットに存在した状態に戻し、かつその場合に制御が前記オペレーティングシステムに、その動作が中断された位置で戻される。
また同じcpuセット再統合の処理を用いて、故障のあるcpuセットが代わりのcpuセットに置き換えられた後に、その新しいcpuセットを他の2個のcpuセットと同期させる。
前記例外ハンドラコード内で行なわれる動作に関して、このcpuセットの再統合を支援するために多くのハードウェアの特徴が要求される。これらの特徴については、第15図乃至第17図を参照して以下に説明する。
第11図は、常に唯1個のcpuセットのみが「マスタ」状態になり得るようにし、かつソフトウェアの制御下でcpuセットが「マスタ」になり得るようにすることを目的とするハードウェアの部分を示している。
第11図に示されるように、各cpuセットは、そのQ出力がバッファ258を介して前記cpuセットの「マスタ」線56に接続されたD型フリップフロップ256を有する。別言すれば、フリップフロップ256からの出力は、前記cpuセットが「マスタ」状態にあるかどうかを示している。また、この出力は、(線260を介して)制御論理ブロック36の入力(前記論理方程式では「i_am_master」として表される)に、制御・状態レジスタ52(CPU38が前記「マスタ」線が活動状態にあるかどうかを読出すことができるようにする)に、及び2個の3状態バッファ262、264の「イネーブル」入力に接続されている。これらバッファのデータ入力は、論理「1」レベル(+5ボルト供給線232)と論理「0」レベル(0ボルト(接地)線196)とにそれぞれ接続され、それによってこれらは、前記cpuセットが「マスタ」状態にある(バッファが使用可能である)際に前記バッファ出力に表れる論理レベルである。前記cpuセットが「マスタ」状態でない場合には、前記バッファはその高インピーダンス状態にある。
各cpuセットの2個のバッファ262、264の出力は、それぞれ同期バス26の2本の線266、268に接続されている。「マスタ」状態にあるcpuセットがないときにこれらの線に表れる論理レベルを定義するために、同期バス26は更に、線268と+5ボルト線192との間に接続されたプルアップ抵抗270と、線266と0ボルト(接地)線221との間に接続されたプルダウン抵抗272とを有する。別言すれば、これらの線に於ける論理レベルは、いずれかの前記cpuセットのバッファ262、264が使用可能な状態であるときに表現されるものと逆になっている。
それぞれにバイナリ(2進)信号を搬送する2本の線26、268を用いることによって、可能性として4つの信号の組合せが得られる。これらの組合せの2つだけが有効である。論理レベル「0」/「1」は、「マスタcpuセットが存在しない」ことを示し、論理レベル「1」/「0」は、「マスタcpuセットが存在する」ことを示す。「0」/「0」又は「1」/「1」のいずれかの信号の組合せが表れる場合には、これは何らかのハードウェアの故障が生じていることを示す。例えば線266と268との間に於ける短絡回路である。
前記同期バスの2本の線266、268は、cpuセット20、22、24のそれぞれに於いて、制御論理ブロック30の2個の入力に接続されている。これらの線の信号は、前記論理方程式に於いてそれぞれ「rb_tiam_h」及び「rb_tiam_l」として表される。制御論理36は、フリップフロップ256のD(データ)入力に接続された線274に出力信号を生成する。前記論理方程式では、この信号は、少なくとも一方の線266、268に於ける条件が、これらの線を駆動する「マスタ」cpuセットが現在存在しないことを示す場合には、真になる論理項「ok_tbm」に対応する。また、前記項「ok_tbm」は、偽である信号「i_am_master」(フリップフロップ256から直接受信)と、線276を介して制御・状態レジスタ52から受信される入力信号「iwtbm」とに依存する。制御・状態レジスタ52からの別の出力が、線278を介してフリップフロップ256の前記クロック入力に接続されており、従って、cpuセットのCPU38がマスタになるために実行しなければならない動作は次の通りである。即ち、第1に、制御・状態レジスタ52に書込みを行なって、線276に於ける信号「iwtbm」を活動状態にし、かつ次に、再び前記レジスタに書込みを行なって、前記フリップフロップのクロック入力に変化を生じさせる。少なくとも一方の線266又は268が、この変化の時点で「マスタ」cpuセットが存在しないことを示す場合には、前記フリップフロップのD入力(信号「ok_tbm」)が活動状態になり、かつ前記フリップフロップが状態を変化させて、前記cpuセットを「マスタ」状態にする。これは、即座にバッファ262、264を使用可能な状態にする効果を有し、それによって同期バス26の線266及び268が状態を変化させ、かつ他のcpuセットがマスタになることができなくなる。
上述した説明では、前記「e_state」信号の否定が、cpuセットを「エラー」状態から「マスタ」又は「チェッカ」状態に変化させる際に必要なステップであるにも拘らず、記載されていないことが分かる。この否定を達成するのに必要な唯一のハードウェアは、制御論理ブロック36の入力を制御・状態レジスタ52に接続する線280である。前記論理方程式では、この線は論理項「sync」に対応する。「e_state」に関する論理方程式を参照することによって、「e_state」が、一旦表明されると、「sync」が表明されるまで活動状態にあることを示している。このとき、他にエラー状態がないと仮定すると、「e_state」は偽になる。cpuセット再統合処理時には、制御・状態レジスタ52に書込みを行なって「sync」を活動化する動作が、CPU38(前記「マスタ」及び新しい「チェッカ」の双方に於ける)がリセットされた後に行なわれる。別言すれば、前記動作は、前記cpuセットの読出し専用メモリ42内の硬度の制御下で、両方のcpuセットについて同時に行なわれる。
第12図は、前記プロセッササブシステム内に於ける電源供給回路のいくつかの側面を示すブロック図である。これらの回路は、cpuセットが、前記コンピュータの他の部分をパワーダウンさせることなく前記コンピュータから取り外したり、その所定位置に挿入することができるように設計されている。また、これらによっていずれかのcpuセットは、他のcpuセットの一方によって実行されるソフトウェアコマンドの結果として、電源が投入されたり切断されたりすることができる。この対話を可能にするために、前記3個のcpuセットは、2線式「保全バス」282によって相互接続されている。バス282は、I2Cバスとして実現され、そのためのインタフェース装置は市販されているので、詳細な説明は省略する。
電力は、2本の28ボルト電力供給線284、286を介して3個のcpuセット20、22、24(及び前記コンピュータの他のサブシステム)に分配される。2本の線を用いることによって冗長度が得られる。各cpuセットでは、2本の線284、286から受け取る電力が、2個のダイオード288によって1つに共通化され、かつ該cpuセット内の単一の電力線290によって分配される。電力線284、286と電力線290との間にはスイッチング素子が存在しないので、その電力線284、286が既に通電されているコンピュータにcpuセットが挿入されると、電力線290は即座に同様に通電された状態になる。
線290は、前記cpuの3つの項目に接続されている。即ち、リセット制御回路292と、28ボルトの電力供給を降下させて+5ボルトの出力を提供する3端子レギュレータ294と、2本の制御信号線298及び300の双方に於いて活動状態の「イネーブル」信号によって使用可能な状態にされた場合にのみ、+5ボルト出力を供給するDC−DC変換回路296である。後述するような理由によって、前記cpuセットが最初に前記コンピュータ内に挿入されたときに、線298には活動状態の信号が存在しないことになり、そのためにDC−DC変換器296は使用禁止状態のままで、電力供給線290に全く負荷を課すことはない。レギュレータ294の+5ボルト出力は、直列をなす2個のスイッチ302、304を介して+5ボルト分配線306に接続されている。スイッチ302、304は、前記cpuセットが前記システムに挿入される際に両方のスイッチ302、304が必ず開路状態であるようにする機械式のインタロックシステム(第13図及び第14図に関連して後述する)の一部分を形成する。これは、挿入直後に、レギュレータ294によって電力線290に課される唯一の負荷が、その静止電流(一般に5ミリアンペア)であることを意味する。リセット制御回路292は、1ミリアンペア以下の負荷となるTL7705集積回路からなる。従って、前記cpuセットの挿入時に於ける電力供給線290への全負荷は極めて小さいものであるので、前記cpuセットの挿入によって問題を生じることはなく、電力供給線284、286は通電される。
前記cpuセットがコンピュータ内部に挿入された後、2個のインタロックスイッチ302、304を閉じることができる。この動作によって、リセット制御回路292の「センス(sense)」入力に接続された+5ボルト電力供給線306を通電する。この回路の出力は、DC−DC変換器296を使用状態又は使用禁止状態にする制御信号線298に接続されている。リセット制御回路292の前記「センス」入力に電圧が存在しない限り、この回路は線298をその非活動レベルに維持することによって、(上述したように)DC−DC変換器296は前記cpuセットの挿入直後に使用禁止になる。2個のスイッチ302、304が閉じると、リセット制御回路292はある遅延時間の間線298を非活動レベルに維持し、かつその後に活動レベルに変化させることによって、(他の制御線300が活動レベルにされることを条件として)DC−DC変換器296が使用可能になる。
また、+5ボルト供給線306によって、保全バス282に接続されているインタフェース回路のいくつかに電力が供給される。特に、PCF8574集積回路からなる保全バス「スレーブ」インタフェース308に電力を供給する。このインタフェース308の1個の出力は、DC−DC変換器296の制御線300に接続されている。前記PCF8574デバイスの特徴は、その出力線が電源投入時に「活動」状態になり、従ってDC−DC変換器296が、リセット制御回路292によって与えらる遅延時間が終了するとすぐに使用可能になる。変換器296の前記+5ボルト出力は、前記cpuセットに於ける他の全ての論理に供給するように接続され、従って前記cpuセットは完全に電源が入る。
cpuセットを前記コンピュータから取り外した場合、これはDC−DC変換器296が再び使用不能になる結果となる。この場合に発生する事象のシーケンスは、最初にスイッチ302、304が開く(前記cpuセットの取り外しは、これらのスイッチが閉じている場合には物理的に不可能である)。これによって、リセット制御回路292の前記「センス」入力からの+5ボルトの供給が無くなる。この入力に於ける前記電圧が4.7ボルト以下に落ちるとすぐに、回路292は線298の信号を非活動化し、それによってコンバータ296は使用不能になる。この場合、電力供給線290への負荷が前記cpuセットの挿入時と同じ低い値に減少しているので、前記cpuセットを取り外すことは安全である。
また、前記cpuセットは、保全バス282と、前記cpuセットの専用バス28の双方に接続された保全バス「マスタ」インタフェース310を有する。このPCC8584集積回路を用いて実現されるマスタインタフェースによって、前記cpuセットのCPU38が信号を保全バス282に配置することができるようにするチャネルが提供され、他のcpuセット(又はそれ自身さえ)に電源を投入したり落としたりする。
第13図及び第14図は、いずれかのcpuセット20、22、24の機械的構成を示している。特にこれらの図面は、いずれかのインタロックスイッチ302、304の機械的な構成を詳細に示している。
前記cpuセットは、前記2個のインタロックスイッチを除いて該cpuセットの全ての電子技術が実装されたプリント回路基板312からなる。コネクタ314が基板312の後端に装着されて、前記cpuセットと前記各種バス(主データ転送バス10、同期バス26、及び保全バス282)との間の接続を確立しているのに対し、前記cpuセットの前端には、前部バー316が取り付けられている。前部バー316の目的の1つは、前記cpuセットをコンピュータ内の所定位置に保持することである。このために、2個のインジェクタレバー318及びイジェクタレバー320が前記前部バーに、それぞれその上端及び下端近傍に枢着されている。これらレバーのそれぞれと前部バー316との間は、第14図に示されるねじ322によって回転接続されている。また、第14図は、プリント回路基板312の上端のためのチャネル形状をなすガイド328の前端を支持するバー324からなる前記コンピュータの固定構造の一部分を示している。同様のバー及びガイド(第14図には図示せず)によって基板312の下端が支持される。
前記cpuセットがコンピュータ内の所定位置にあるとき、各レバー318、320は、第14図に示されるような位置にある。同図が示すように、前記インジェクタレバー及びイジェクタレバーは、それぞれ端部332に、インジェクタジョー334、イジェクタジョー336、及び両ジョー334、336間ののど部338を有する。固定バー324の外形の一部分がのど部338内に位置することによって、前記cpuセットのコンピュータからの取り外しは、バー324の後面に当接するインジェクタジョー334によって防止される。また、前記各レバーは、そのジョー334、336から遠い方の端部にハンドル部339を有し、それによって前部バー316に向けて又は遠ざかる向きに手で回転させることができる。この回転によって、イジェクタジョー336がバー324の前面と接触し、それによって前記cpuセットがガイド328内を前方へ移動し、コネクタ314が解除されて前記cpuセットを取り外すことができる。
cpuセットのコンピュータへの挿入は、レバー318、320を逆方向に回転させることによって行なわれ、それによって前記レバーのインジェクタジョーがバー324の後面に当接し、それによって前記cpuセットを所定位置に押し込み、このような動作が行なわれる場合に正しくコネクタ314を係合させる。
レバー318及び320が、前記cpuセットをその所定位置にしっかりと維持する第14図に示す位置から不注意に動くことがないように、前記各レバーは、脱落防止した蝶ねじ340を有し、かつ前部バー316は、前記レバーが第14図の位置にあるときに蝶ねじ340と整合する位置にある2個のねじ孔342を有する。前記レバーをこの位置に回転させた後、前記蝶ねじのねじ付き端部を孔342内に係合させ、かつ前記蝶ねじを締め付けることによって、レバー318、320が所定位置に固定される。
また、第14図に示すように、それぞれプランジャ−アクション方式の常時開放型マイクロスイッチである2個のインタロックスイッチ302、304が、前部バー316の後部に、ねじ孔342の背後に取り付けられている。蝶ねじ340の長さは、これらの蝶ねじを完全に締め付けたときに、そのねじ付き端部が2個のインタロックスイッチ302、304のプランジャに接触し、それによってそれらをその閉鎖位置に動かし、かつ第12図に関連して上述したように前記cpuセットに電源が入るように選択される。
第15図は、cpuセットの再統合の際に行なわれるメモリ内容の複写を補助するという特定の目的を有する「ダーティ」メモリ44を詳細に示している。上述したように、この複写処理の大部分は、前記コンピュータのオペレーティングシステムが依然として実行されている状態で行なわれる。これは、読出し書込み用メモリ40(複写されるデータのソース)内の記憶位置の内容が、再統合されている前記cpuセットに複写された後に、前記オペレーティングシステムによって、又は該オペレーティングシステムの制御下で実行される他のプログラムによって変形されることを意味する。このような記憶場所は、前記オペレーティングシステムによって「ダティにされた」即ち「汚されている」と称され、その内容が、先に複写された前記cpuセットに於ける対応する記憶場所ともはや整合しないことを意味する。前記記憶場所を再び「クリーン(清浄)」にするために、その新たな内容を、再統合されているcpuセットに複写しなければならない。
ダーティメモリ44の目的は、メモリ40のどの領域が「ダーティ」でありかつどの領域が「クリーン」であるかを記憶することである。ダーティメモリ44は1ビット長メモリであり、このメモリ内の各ビット位置には、読出し書込み用メモリ40内の連続する一群の記憶場所の状態(「ダーティ」又は「クリーン」)が記憶される。これには、読出し書込み用メモリ40への全ての「書き込み」データ転送が、自動的にダーティメモリ44内の対応するビットが「ダーティ」状態に設定される結果となることが必要である。ダーティメモリ44は、プロセッサ38とメモリ40との間で動作する通常のアドレス変換器39によって供給される変換されたアドレスに基づいて、メモリ40への書込みアクセスを記録する(前記プロセッサの一部分を構成することがある)。
ダーティメモリ44は、読出し書込み用メモリ40に接続されたアドレス線の最上位16に接続された一群の16本のアドレス線334を有する(これらは専用バス28のアドレス線である)。別言すれば、読出し書込み用メモリ40は、65,536の「ページ」に分割されたとみなすことができ、これらのいずれかのページへのアクセスは、ダーティメモリ44のアドレス線344にアドレスが明確に表れる結果となる。また、前記ダーティメモリは、データ線346、「選択」線348、及び「書込みイネーブル」線350を有する。データ線346は双方向性バッファ352を介して専用バス28に接続されている。このバッファは、その2つの伝送方向に「イネーブル」入力354、356を有する。また、データ線346と+5ボルト線232との間にプルアップ抵抗358が接続され、それによってバッファ352又はダーティメモリ44のいずれもが線346を駆動しない場合に、この線が論理「1」レベルになる。このような状況は、読出し書込み用メモリ40へのデータ転送の際に生じる。
「選択」、「書込みイネーブル」、及び「バッファイネーブル」線348、350、354、356は、全て制御論理ブロック36からの出力に接続されている。前記論理方程式に於ける対応する項は、「dirty_cs」、「dirty_we」、「dirty_bwe」、及び「dirty_oe」である。これら各項は、線360を介してアドレスデコーダ88から到来し、ダーティメモリ44への「正常な」アクセスを知らせる制御論理36への「p_dirpy」入力に依存する。しかし、更に、前記「dirty_cs」項及び「dirty_we」項は、読出し書込み用メモリ40への書込みデータ転送の際に活動状態になる(アドレスデコーダ88からの線362に於ける信号「dram」、及びCPU38からの信号「u_ts」及び「u_write」とによって示される)。このような書込みデータ転送の際に前記「dirty_bwe」項が活動状態でないため、データ線346は論理「1」になり、かつこのレベルは、ダーティメモリ44内に読出し書込み用メモリ40のアクセスされているアドレスに対応する位置に書込まれる。
ダーティメモリ44によって供給される前記情報によって、cpuセットの再統合の際に前記メモリの内容を複写するために対話方法を用いることができる。この方法には次のステップが含まれる。まず、前記ダーティメモリの全ビットを「1」に設定する。次にこのメモリの中を走査し、かつ「1」であるビット毎に前記ビットを代わりに「0」に設定し、かつ再統合されている前記cpuセットに読出し書き込み用メモリ40の対応するページを複写する。次に、この走査を繰り返すことによって、新たに汚れた全てのページの新しい内容を複写する。(複写された後に、ページが再び汚れた状態になる確率は、前記コンピュータがマルチタスキング・オペレーティングシステムを有し、かつこの対話式複写方法は、前記コンピュータによって実行されている多数のタスクの中の単に1つに過ぎず、該コンピュータの処理能力をインタリービング式に共用しているので、複写した後にページが再び汚れた状態になる虞れが生じる。)このようにしてダーティメモリ44の走査を何度か繰り返した後、汚れたページの数が相当小さくなり、かつ前記オペレーティングシステムが一時的に中断されて、前記cpuセットの再統合の残りのステージが実行される。
これら再統合の残りのステージは、次のようにまとめられる。
前記cpuセットのハードウェアの幾つか又は全部の状態のメモリイメージ(読出し書込み用メモリ40内)メモリイメージを生成する。例えば、一般にレシーバ/トランスミッタ48、タイマ50、制御レジスタ52、及び制御論理36のレジスタの内容を記録することが必要になる。
「ダーティ」メモリ44によって汚れていると示されるメモリ40の全てのページを前記新しいcpuセットに複写する。この複写は常に、先のステップによってメモリイメージが生成されたばかりのページを含むことになる。
ここで、前記マスタcpuセットが全cpuセット(それ自身を含む)を完全に同期してリセットされる。これによって、前記cpuセットの全ハードウェアが、全cpuセット(リセット後にソフトウェアによって初期状態にされ得るハードウェアの部分があれば、それを除く)について同一である周知の状態になる。
前記リセット後に(全cpuセットに同期して)実行されるソフトウェアの中に、前記セットのハードウェア状態のメモリイメージを含むメモリ40の部分を読出し、かつこのメモリイメージを用いて前記ハードウェアを、前記オペレーティングシステムが中断された時にあった状態に戻すルーチンがある。
最後に、前記オペレーティングシステムは、前記マスタcpuセットが、前記システムが中断した時と全く同じ状態で、かつ新たに再統合されたcpuセットが前記マスタと完全に同期して稼動しつつ、オペレーションを再開できるようになる。
上述した各ステップの中で、第3のステップ(前記cpuセットへの同期リセット処理)には、前記cpuセットが特別のハードウェアの特徴を有することを必要とする。これらの特徴は第16図に示されている。このハードウェアは、同期バス26に線364を有する。各cpuセットに於いて、線364はバッファ366の入力、及びその「イネーブル」入力が「マスタ」線56に接続された3状態バッファ368の出力の双方に接続されており、それによって前記「マスタ」cpuセットのみが線364を駆動することができる。前記「マスタ」cpuセットによる線364の活動化は、実際に前記cpuセットのリセット処理をトリガする事象である。しかし、cpuセットのハードウェアのリセットは、それ自身をリセットすることによって線364の信号に応答するため、ハードウェアコマンドによって「武装」(armed)されていなければならない。
同期バス26の線364の駆動に関連する前記ハードウェアの部分は、制御・状態レジスタ52の出力からD型フリップフロップ372のD(データ)に入力に接続された線370である。このフリップフロップは、そのクロック入力が、クロック回路100からクロック信号を搬送する線374に接続され、それによって前記フリップフロップは前記cpuセットに於ける他の事象と同期して状態を変化させる。前記フリップフロップのQ出力が線376を介してバッファ368のデータに入力に送られることによって、線364を活動化させるのに必要なことは、制御・状態レジスタ52への書き込みだけである。
線364に応答するハードウェアには、その出力が別のD型フリップフロップ378のD入力に接続されたバッファ366が含まれる。このフリップフロップも同様に線374からクロック信号を受け取る。このフリップフロップからのQ出力は、線380によって制御論理ブロック36に接続されている。前記論理方程式に於ける対応する項は、「sb_sr」である。この項は、論理項「sync_arm」と共に(前記制御・状態レジスタから線384を介して制御論理36が受け取る信号に対応する)、出力論理項「syncreset」を制御する。制御論理36からの対応する出力は、cpuセットの再統合を実現するのにリセットを必要する前記cpuセットの全部分に接続された線382に現れる。論理項「sb_sr」、「sync_arm」及び「syncreset」間の関係は、第17図の状態遷移図によって示されている。前記cpuセットの正常動作時には、制御論理36が状態S65になる。ここで、両論理項「sb_sr」及び「sync_arm」が活動状態になる場合には、前記論理が、「syncreset」信号が活動状態になる状態S0に変化する。次に前記論理は、制御論理36から受け取る各クロックパルス毎に1ステップずつ、状態S1からS64へ順に進む。前記「syncreset」項は、状態S63を含めて状態S63まで活動状態のままであるが、前記論理が状態S64に到達すると、前記「syncreset」項は非活動化され、かつ前記cpuセットのハードウェアの他の部分がリセットから抜け出ることによって、CPU38が読出し専用メモリ42からのコードを実行し始める。制御論理36は、CPU38によって実行される最初の動作の1つとなる、前記「sync_arm」項が否定されるまで、状態S64のままである。この後、制御論理36は状態S65に戻る。
「sync_arm」信号の目的は、同期バス26に於ける線364の故障によって不注意にcpuセット20、22、24のリセットを生じさせないようにすることである。このような不注意なリセットが可能な場合には、線364は好ましくない故障の位置を1つ示すことになる。
Figure 0003713554
Figure 0003713554
Figure 0003713554
Figure 0003713554

Claims (19)

  1. 主データバス(10)と複数のプロセッサモジュール(20,22,24)とを備えるフォールトトレラント・コンピュータシステムであって、
    前記各プロセッサモジュールが、中央処理装置(38)と、ローカルデータバス(28,30)と、前記各ローカルデータバス(28,30)を前記主データバス(10)に相互接続するデータ転送インタフェース(34)とをそれぞれ有し、前記各データ転送インタフェースがコンパレータ手段(106)を有し、前記各コンパレータ手段が、前記各ローカルデータバス(28)に存在するデータを前記主データバス(10)に存在するデータと比較し、かつ不一致を検出すると、前記プロセッサモジュール(20,22,24)を制御するために、前記不一致を示す信号を供給するように構成され、
    前記システムが更に、前記中央処理装置(38)への命令を記憶するプログラムメモリと主読出し書き込み用データメモリとを備え、かつ、前記複数のプロセッサモジュール(20,22,24)が互いに同期して動作し、かつ選択されたいずれか1つの前記プロセッサモジュールが前記主データバス(10)との間でデータを転送するマスタとして機能するように構成され、
    前記プログラムメモリが、前記各プロセッサモジュール毎に1つずつ設けた複数のプログラムメモリ(42)からなり、前記プログラムメモリ(42)が同一の命令を保持し、かつそれぞれの前記プロセッサモジュールの前記ローカルデータバス(28,30)とそれぞれ直接接続されており、かつ、前記主読出し書き込み用データメモリが、前記各プロセッサモジュール毎に1つずつ設けた複数の主メモリ(40)からなり、前記主メモリ(40)が通常は同一のデータを保持し、かつそれぞれの前記プロセッサモジュールの前記ローカルデータバス(28,30)とそれぞれ直接接続されていることを特徴とするフォールトトレラント・コンピュータシステム。
  2. 前記各プロセッサモジュール(20,22,24)が、該プロセッサモジュールの前記ローカルデータバスに接続された第1の複数のハードウェア要素を更に有し、前記コンパレータ手段(106)が、前記主データバス(10)上のデータを前記ローカルデータバス上のデータと比較し、かつそれに応答して複数の状態出力信号を生成することを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  3. 前記各プロセッサモジュールが、前記データ転送インタフェース(34)の一部分であるパリティ検査回路(108)を有し、前記パリティ検査回路(108)が、前記主データバス(10)のデータ線を監視し、かつそれに応答してパリティ出力信号(142)を生成し、前記パリティ出力信号(142)が、前記コンパレータ手段(106)への入力信号として使用されることを特徴とする請求項2に記載のフォールトトレラント・コンピュータシステム。
  4. 前記各プロセッサモジュールの前記ローカルデータバスが、前記中央処理装置(38)が接続された専用データバス(28)と、第2のバスインタフェース(32)を介して前記専用データバス(28)に接続された共用データバス(30)とを有し、第2の複数のハードウェア要素が前記専用データバスに接続され、かつ、制御論理回路(36)が、前記データ転送インタフェースである第1のバスインタフェース(34)と前記第2のバスインタフェース(32)とに接続されてそれらを制御し、前記制御論理回路(36)が、他の全ての前記プロセッサモジュールから前記状態出力信号を入力信号として受け取りかつそれに応答して制御論理出力信号を生成し、前記制御論理出力信号が、故障が生じているかどうかを前記プロセッサモジュールに示すことを特徴とする請求項3に記載のフォールトトレラント・コンピュータシステム。
  5. 前記各中央処理装置(38)が、68040集積回路からなることを特徴とする請求項4に記載のフォールトトレラント・コンピュータシステム。
  6. 前記第1の複数のハードウェア要素が、読出し書き込み用メモリ(46)と、非同期レシーバ/トランスミッタ回路(48)と、タイマ回路(50)と、複数の制御・状態レジスタ(52)と、別の読出し書き込み用メモリ(54)とからなることを特徴とする請求項2乃至5のいずれかに記載のフォールトトレラント・コンピュータシステム。
  7. 前記第2の複数のハードウェア要素が、前記主メモリである主読出し書き込み用メモリ(40)と、前記プログラムメモリである読出し専用メモリ(42)と、更に別の読出し書き込み用メモリ(44)とからなることを特徴とする請求項4乃至6のいずれかに記載のフォールトトレラント・コンピュータシステム。
  8. 前記更に別の読出し書き込み用メモリ(44)が、データが書き込まれている前記主読出し書き込み用メモリ(40)内の記憶場所に対応する情報を記憶するように構成され、前記更に別の読出し書き込み用メモリ(44)によって、ある1つのプロセッサモジュールから別のプロセッサモジュールへのデータの複写が容易であることを特徴とする請求項7に記載のフォールトトレラント・コンピュータシステム。
  9. 前記別の読出し書き込み用メモリ(54)が、欠陥を有する又は存在しないコンピュータサブシステムを有する前記主データバス(10)のインタフェーススロット(18)に対応する情報を記憶するように構成されていることを特徴とする請求項6に記載のフォールトトレラント・コンピュータシステム。
  10. 前記非同期レシーバ/トランスミッタ回路が、RS−232インタフェースを提供する2692集積回路(48)からなることを特徴とする請求項6に記載のフォールトトレラント・コンピュータシステム。
  11. 前記タイマ回路(50)が9513集積回路からなることを特徴とする請求項6に記載のフォールトトレラント・コンピュータシステム。
  12. 前記主データバス(10)が、前記システムのデータハンドリングハードウェア手段からマスタとして機能する前記プロセッサモジュールへデータ転送応答信号を搬送するための線(70)を有し、前記プロセッサモジュールがデータ転送の試みを、(a)データ転送応答信号を受け取ったとき、又は(b)事前設定された時間間隔内にデータ転送応答信号を受け取らなかった場合、又は(c)該プロセッサモジュールの関連するメモリが、前記データ転送の試みに関与する前記データハンドリングハードウェア手段に関して事前設定された故障の表示を有する場合に、終了するように構成されていることを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  13. 前記各プロセッサモジュールが、前記プロセッサモジュールとそれに関連する主メモリ(40)との間で動作するアドレス変換手段(39)と、前記アドレス変換手段(39)により供給される変換後のアドレスに基づいて前記主メモリ(40)への書き込みアクセスを記録する読出し書き込み用メモリ(44)とを有することを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  14. 前記システムが、ある1つの前記プロセッサモジュールの主メモリ(40)の内容を第2のプロセッサモジュールの前記主メモリ(40)に複写するように構成され、前記ある1つのプロセッサモジュールが、複写処理の実行中に、前記ある1つのプロセッサモジュールの主メモリ(40)への全ての書き込みアクセスを記録する読出し書込み用メモリ(44)を有し、かつ前記システムが更に、前記主メモリ(40)の、前記読出し書き込み用メモリ(44)が書き込みアクセスを記録しているアドレスからデータを複写するように構成されていることを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  15. 前記システムが、前記プロセッサモジュールを同時にリセット状態へとトリガするのに先立って、前記各プロセッサモジュールがその主メモリ(40)にそのハードウェアの複数のクロック駆動される要素の状態又は内容を記録するように構成され、前記各プロセッサモジュールがリセット時に、そのメモリから前記クロック駆動される要素の状態又は内容を復元するように構成されていることを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  16. 前記システムが更に、クロック信号発生源(100)、前記クロック発生源を前記プロセッサモジュールに接続するクロック信号線(184,186,188)と、前記各プロセッサモジュールを他の前記プロセッサモジュールに接続する制御線(178,180,182)とを備え、前記プロセッサモジュールが、電源を投入したしたとき、該プロセッサモジュールのクロック信号線が、該クロック信号線に前記プロセッサモジュールによって印加されるクロック信号を有するように、該プロセッサモジュールの前記制御線に信号を印加することを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  17. 2本の論理線(266,268)が前記複数のプロセッサモジュールを相互接続し、マスタとして機能する前記プロセッサモジュールが前記論理線に論理信号を印加して、他の全ての前記プロセッサモジュールがマスタとして機能することを防止するように構成されていることを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  18. 全ての前記プロセッサモジュール(20,22,24)に影響を与える故障状態の場合に、前記各プロセッサモジュールが、該プロセッサモジュールが故障を有する確率を計算する自己査定を実行し、かつその確率に従って待ち時間を計算し、その待ち時間の終了時に、プロセッサモジュールがマスタの役割を引き受けることを試みるように構成されていることを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
  19. 前記各プロセッサモジュール(20,22,24)が、ホスト装置により取り外し可能に収容され、前記プロセッサモジュールが、前記ホスト装置に取り付けられたとき、前記ホスト装置の電力線と結合される電気的コネクタ(302,304)を有し、前記ホスト装置が更に、前記プロセッサモジュールを所定位置に固定しかつ前記プロセッサモジュールへの電力制御を可能にする状態へと操作可能な機械的固定手段(318,320)を有することを特徴とする請求項1に記載のフォールトトレラント・コンピュータシステム。
JP50427394A 1992-07-17 1993-07-19 フォールトトレラント・コンピュータシステム Expired - Lifetime JP3713554B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB9215212A GB2268817B (en) 1992-07-17 1992-07-17 A fault-tolerant computer system
GB9215212.3 1992-07-17
PCT/GB1993/001514 WO1994002896A1 (en) 1992-07-17 1993-07-19 A fault-tolerant computer system

Publications (2)

Publication Number Publication Date
JPH07509088A JPH07509088A (ja) 1995-10-05
JP3713554B2 true JP3713554B2 (ja) 2005-11-09

Family

ID=10718868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50427394A Expired - Lifetime JP3713554B2 (ja) 1992-07-17 1993-07-19 フォールトトレラント・コンピュータシステム

Country Status (8)

Country Link
US (12) US5627965A (ja)
EP (1) EP0650615B1 (ja)
JP (1) JP3713554B2 (ja)
AT (1) ATE162898T1 (ja)
AU (1) AU4713493A (ja)
DE (1) DE69316755T2 (ja)
GB (1) GB2268817B (ja)
WO (1) WO1994002896A1 (ja)

Families Citing this family (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
GB2342479B (en) * 1995-07-13 2000-08-09 Fujitsu Ltd Information processing system
JP3502216B2 (ja) * 1995-07-13 2004-03-02 富士通株式会社 情報処理装置
GB2345364B (en) * 1995-07-13 2000-08-16 Fujitsu Ltd Information processing system
DE19529434B4 (de) * 1995-08-10 2009-09-17 Continental Teves Ag & Co. Ohg Microprozessorsystem für sicherheitskritische Regelungen
US5802265A (en) * 1995-12-01 1998-09-01 Stratus Computer, Inc. Transparent fault tolerant computer system
US6141769A (en) 1996-05-16 2000-10-31 Resilience Corporation Triple modular redundant computer system and associated method
US5978938A (en) * 1996-11-19 1999-11-02 International Business Machines Corporation Fault isolation feature for an I/O or system bus
US6338150B1 (en) 1997-05-13 2002-01-08 Micron Technology, Inc. Diagnostic and managing distributed processor system
KR100224965B1 (ko) 1997-07-10 1999-10-15 윤종용 다층 구조의 아이2씨 버스를 이용한 진단/제어 시스템
US6055647A (en) * 1997-08-15 2000-04-25 Compaq Computer Corporation Method and apparatus for determining computer system power supply redundancy level
JP3173648B2 (ja) * 1997-12-18 2001-06-04 日本電気株式会社 故障検出方式
US6138247A (en) * 1998-05-14 2000-10-24 Motorola, Inc. Method for switching between multiple system processors
US6971048B1 (en) 1998-06-15 2005-11-29 Sun Microsystems, Inc. Testing device driver hardening
US6587961B1 (en) * 1998-06-15 2003-07-01 Sun Microsystems, Inc. Multi-processor system bridge with controlled access
US6223230B1 (en) 1998-06-15 2001-04-24 Sun Microsystems, Inc. Direct memory access in a bridge for a multi-processor system
US6148348A (en) * 1998-06-15 2000-11-14 Sun Microsystems, Inc. Bridge interfacing two processing sets operating in a lockstep mode and having a posted write buffer storing write operations upon detection of a lockstep error
US6167477A (en) * 1998-06-15 2000-12-26 Sun Microsystems, Inc. Computer system bridge employing a resource control mechanism with programmable registers to control resource allocation
US6260159B1 (en) * 1998-06-15 2001-07-10 Sun Microsystems, Inc. Tracking memory page modification in a bridge for a multi-processor system
US6141718A (en) * 1998-06-15 2000-10-31 Sun Microsystems, Inc. Processor bridge with dissimilar data registers which is operable to disregard data differences for dissimilar data direct memory accesses
US6173351B1 (en) 1998-06-15 2001-01-09 Sun Microsystems, Inc. Multi-processor system bridge
US6513108B1 (en) 1998-06-29 2003-01-28 Cisco Technology, Inc. Programmable processing engine for efficiently processing transient data
US6119215A (en) * 1998-06-29 2000-09-12 Cisco Technology, Inc. Synchronization and control system for an arrayed processing engine
US6195739B1 (en) 1998-06-29 2001-02-27 Cisco Technology, Inc. Method and apparatus for passing data among processor complex stages of a pipelined processing engine
US6836838B1 (en) 1998-06-29 2004-12-28 Cisco Technology, Inc. Architecture for a processor complex of an arrayed pipelined processing engine
US6101599A (en) * 1998-06-29 2000-08-08 Cisco Technology, Inc. System for context switching between processing elements in a pipeline of processing elements
DE19832060C2 (de) * 1998-07-16 2000-07-06 Siemens Ag Doppelbare Prozessoreinrichtung
US6728839B1 (en) 1998-10-28 2004-04-27 Cisco Technology, Inc. Attribute based memory pre-fetching technique
US6385747B1 (en) 1998-12-14 2002-05-07 Cisco Technology, Inc. Testing of replicated components of electronic device
US6173386B1 (en) 1998-12-14 2001-01-09 Cisco Technology, Inc. Parallel processor with debug capability
US6920562B1 (en) 1998-12-18 2005-07-19 Cisco Technology, Inc. Tightly coupled software protocol decode with hardware data encryption
US6853623B2 (en) 1999-03-05 2005-02-08 Cisco Technology, Inc. Remote monitoring of switch network
US6981176B2 (en) * 1999-05-10 2005-12-27 Delphi Technologies, Inc. Secured microcontroller architecture
DE19947658A1 (de) * 1999-10-04 2001-04-12 Bayerische Motoren Werke Ag Datenbus für mehrere Teilnehmer
US6772367B1 (en) * 1999-10-13 2004-08-03 Board Of Regents, The University Of Texas System Software fault tolerance of concurrent programs using controlled re-execution
DE19950131C1 (de) 1999-10-18 2000-11-02 Siemens Ag Integrierter Schaltkreis mit gedoppelten synchronen und asynchronen Komponenten
JP2003513600A (ja) * 1999-10-28 2003-04-08 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 電源電圧供給装置
US6529983B1 (en) 1999-11-03 2003-03-04 Cisco Technology, Inc. Group and virtual locking mechanism for inter processor synchronization
US6681341B1 (en) 1999-11-03 2004-01-20 Cisco Technology, Inc. Processor isolation method for integrated multi-processor systems
US6496890B1 (en) 1999-12-03 2002-12-17 Michael Joseph Azevedo Bus hang prevention and recovery for data communication systems employing a shared bus interface with multiple bus masters
US6886111B1 (en) * 2000-03-08 2005-04-26 International Business Machines Corporation Method and data processing system for software testing of a device driver
US6892237B1 (en) * 2000-03-28 2005-05-10 Cisco Technology, Inc. Method and apparatus for high-speed parsing of network messages
US6633996B1 (en) 2000-04-13 2003-10-14 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus architecture
US6687851B1 (en) 2000-04-13 2004-02-03 Stratus Technologies Bermuda Ltd. Method and system for upgrading fault-tolerant systems
WO2001080010A2 (en) * 2000-04-13 2001-10-25 Stratus Technologies International, S.A.R.L. Method and system for upgrading fault-tolerant systems
US6735715B1 (en) 2000-04-13 2004-05-11 Stratus Technologies Bermuda Ltd. System and method for operating a SCSI bus with redundant SCSI adaptors
US6708283B1 (en) 2000-04-13 2004-03-16 Stratus Technologies, Bermuda Ltd. System and method for operating a system with redundant peripheral bus controllers
US6820213B1 (en) 2000-04-13 2004-11-16 Stratus Technologies Bermuda, Ltd. Fault-tolerant computer system with voter delay buffer
US6691257B1 (en) 2000-04-13 2004-02-10 Stratus Technologies Bermuda Ltd. Fault-tolerant maintenance bus protocol and method for using the same
US6505269B1 (en) 2000-05-16 2003-01-07 Cisco Technology, Inc. Dynamic addressing mapping to eliminate memory resource contention in a symmetric multiprocessor system
US9800608B2 (en) 2000-09-25 2017-10-24 Symantec Corporation Processing data flows with a data flow processor
US20110213869A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Processing data flows with a data flow processor
US20110214157A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Securing a network with data flow processing
US20070192863A1 (en) * 2005-07-01 2007-08-16 Harsh Kapoor Systems and methods for processing data flows
US9525696B2 (en) 2000-09-25 2016-12-20 Blue Coat Systems, Inc. Systems and methods for processing data flows
US20020165947A1 (en) * 2000-09-25 2002-11-07 Crossbeam Systems, Inc. Network application apparatus
US20110219035A1 (en) * 2000-09-25 2011-09-08 Yevgeny Korsunsky Database security via data flow processing
US8010469B2 (en) * 2000-09-25 2011-08-30 Crossbeam Systems, Inc. Systems and methods for processing data flows
US20100042565A1 (en) * 2000-09-25 2010-02-18 Crossbeam Systems, Inc. Mezzazine in-depth data analysis facility
GB2367646B (en) * 2000-10-03 2002-11-20 Sun Microsystems Inc Resource access control
GB2367648B (en) * 2000-10-03 2002-08-28 Sun Microsystems Inc Multiple trap avoidance mechanism
GB2367647B (en) * 2000-10-03 2002-11-20 Sun Microsystems Inc Resource access control for a processor
GB2367645B (en) * 2000-10-03 2002-11-20 Sun Microsystems Inc Memory access control
US6854072B1 (en) 2000-10-17 2005-02-08 Continuous Computing Corporation High availability file server for providing transparent access to all data before and after component failover
GB2369690B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Enhanced protection for memory modification tracking
GB2369694B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Efficient memory modification tracking
GB2369693B (en) * 2000-11-29 2002-10-16 Sun Microsystems Inc Protection for memory modification tracking
US6785841B2 (en) * 2000-12-14 2004-08-31 International Business Machines Corporation Processor with redundant logic
US7003728B2 (en) * 2000-12-21 2006-02-21 David Berque System for knowledge transfer in a group setting
FR2819598B1 (fr) * 2001-01-16 2003-04-11 Thomson Csf Dispositif de synchronisation tolerant aux pannes pour reseau informatique temps reel
US6845467B1 (en) 2001-02-13 2005-01-18 Cisco Systems Canada Co. System and method of operation of dual redundant controllers
US6766479B2 (en) 2001-02-28 2004-07-20 Stratus Technologies Bermuda, Ltd. Apparatus and methods for identifying bus protocol violations
US7065672B2 (en) * 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
JP3764348B2 (ja) * 2001-04-27 2006-04-05 富士通株式会社 通信制御プログラム,通信制御方法およびデータ処理装置
US6996750B2 (en) * 2001-05-31 2006-02-07 Stratus Technologies Bermuda Ltd. Methods and apparatus for computer bus error termination
US7213211B1 (en) 2001-07-03 2007-05-01 Dynamic Knowledge Transfer, Llc System for knowledge transfer in a group setting
US6938183B2 (en) * 2001-09-21 2005-08-30 The Boeing Company Fault tolerant processing architecture
US7350194B1 (en) 2001-09-24 2008-03-25 Oracle Corporation Techniques for debugging computer programs involving multiple computing machines
DE10150418B4 (de) * 2001-10-11 2004-05-13 Grundig Ag I.Ins. Vorrichtung zum Rücksetzen von an einen Bus angeschlossenen integrierten Schaltungen
US6948079B2 (en) * 2001-12-26 2005-09-20 Intel Corporation Method and apparatus for providing supply voltages for a processor
US20030122429A1 (en) * 2001-12-28 2003-07-03 Zhang Kevin X. Method and apparatus for providing multiple supply voltages for a processor
US20030126477A1 (en) * 2001-12-28 2003-07-03 Zhang Kevin X. Method and apparatus for controlling a supply voltage to a processor
US6816939B2 (en) * 2002-05-09 2004-11-09 International Business Machines Corporation Apparatus for supporting I2C bus masters on a secondary side of an I2C multiplexor
US7117283B2 (en) * 2002-07-24 2006-10-03 Lsi Logic Corporation Multi-master extended I2C protocol
US20040141461A1 (en) * 2003-01-22 2004-07-22 Zimmer Vincent J. Remote reset using a one-time pad
GB0308708D0 (en) * 2003-04-15 2003-05-21 British Telecomm A computer system
US20040250155A1 (en) * 2003-05-19 2004-12-09 Stefan Weichselbaum Aspect based recovery system and method
JP4457581B2 (ja) * 2003-05-28 2010-04-28 日本電気株式会社 耐障害システム、プログラム並列実行方法、耐障害システムの障害検出装置およびプログラム
JP2005128747A (ja) * 2003-10-23 2005-05-19 Fujitsu Ltd シリアル転送バス用の送受信マクロを有する集積回路装置
FR2867325A1 (fr) * 2004-03-02 2005-09-09 St Microelectronics Sa Dispositif de protection contre l'injection d'erreur dans un bloc logique asynchrone d'un module logique elementaire
US7428694B2 (en) * 2004-03-02 2008-09-23 Stmicroelectronics S.A. Device for protection against error injection into a synchronous flip-flop of an elementary logic module
JP4161276B2 (ja) * 2004-12-17 2008-10-08 日本電気株式会社 フォルトトレラントコンピュータ装置およびその同期化方法
US7508354B1 (en) 2004-12-20 2009-03-24 Dynamic Knowledge Transfer, Llc Multi-board presentation system
US7496787B2 (en) 2004-12-27 2009-02-24 Stratus Technologies Bermuda Ltd. Systems and methods for checkpointing
US7587658B1 (en) 2005-01-03 2009-09-08 Sun Microsystems, Inc. ECC encoding for uncorrectable errors
JP2006228121A (ja) * 2005-02-21 2006-08-31 Toshiba Corp 演算処理装置
JP2006259869A (ja) * 2005-03-15 2006-09-28 Fujitsu Ltd マルチプロセッサシステム
US20080229415A1 (en) * 2005-07-01 2008-09-18 Harsh Kapoor Systems and methods for processing data flows
US7979368B2 (en) * 2005-07-01 2011-07-12 Crossbeam Systems, Inc. Systems and methods for processing data flows
TWI261657B (en) * 2005-08-24 2006-09-11 Delta Electronics Inc Controlling apparatus having dual processors
RU2305313C1 (ru) * 2005-12-27 2007-08-27 Яков Аркадьевич Горбадей Способ я.а. горбадея обеспечения надежной работы программного вычислительного средства
US20080047639A1 (en) * 2006-06-27 2008-02-28 Fox Angela O Magnetic golf related devices
US20100049268A1 (en) * 2007-02-20 2010-02-25 Avery Biomedical Devices, Inc. Master/slave processor configuration with fault recovery
US7673188B2 (en) * 2007-08-09 2010-03-02 Globalfoundries Inc. System and method for controlling synchronous functional microprocessor redundancy during test and method for determining results
US7873874B2 (en) * 2007-08-09 2011-01-18 Advanced Micro Devices, Inc. System and method for controlling synchronous functional microprocessor redundancy during test and analysis
US7890662B2 (en) * 2007-08-14 2011-02-15 Cisco Technology, Inc. System and method for providing unified IP presence
US7826455B2 (en) * 2007-11-02 2010-11-02 Cisco Technology, Inc. Providing single point-of-presence across multiple processors
US8036230B2 (en) * 2007-11-05 2011-10-11 Cisco Technology, Inc. System and method for providing single IP tunnel
US8117495B2 (en) * 2007-11-26 2012-02-14 Stratus Technologies Bermuda Ltd Systems and methods of high availability cluster environment failover protection
US7823018B2 (en) * 2008-05-15 2010-10-26 International Business Machines Corporation Methods, systems and computer program products for CPU signaturing to aide in performance analysis
US20090292883A1 (en) * 2008-05-23 2009-11-26 Nokia Corporation Apparatus, Method, and Computer Program Product for Memory Validation Operations in a Memory
US7953914B2 (en) * 2008-06-03 2011-05-31 International Business Machines Corporation Clearing interrupts raised while performing operating system critical tasks
US8195981B2 (en) * 2008-06-03 2012-06-05 International Business Machines Corporation Memory metadata used to handle memory errors without process termination
JP5347414B2 (ja) * 2008-10-03 2013-11-20 富士通株式会社 同期制御装置,情報処理装置及び同期管理方法
US8769360B2 (en) * 2010-10-14 2014-07-01 International Business Machines Corporation Dynamic detection and identification of the functional state of multi-processor cores
US8751736B2 (en) 2011-08-02 2014-06-10 Oracle International Corporation Instructions to set and read memory version information
US8572441B2 (en) 2011-08-05 2013-10-29 Oracle International Corporation Maximizing encodings of version control bits for memory corruption detection
RU2486569C1 (ru) * 2012-05-17 2013-06-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тихоокеанский государственный университет" Способ поиска неисправного блока в дискретной динамической системе
RU2486568C1 (ru) * 2012-05-17 2013-06-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тихоокеанский государственный университет" Способ поиска неисправного блока в непрерывной динамической системе
RU2486570C1 (ru) * 2012-05-18 2013-06-27 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тихоокеанский государственный университет" Способ поиска неисправного блока в дискретной динамической системе
US9043559B2 (en) 2012-10-23 2015-05-26 Oracle International Corporation Block memory engine with memory corruption detection
US9251002B2 (en) 2013-01-15 2016-02-02 Stratus Technologies Bermuda Ltd. System and method for writing checkpointing data
RU2541896C1 (ru) * 2013-10-24 2015-02-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Тихоокеанский государственный университет" Способ поиска неисправного блока в дискретной динамической системе на основе анализа знаков передач сигналов
JP6197585B2 (ja) * 2013-11-01 2017-09-20 富士通株式会社 情報処理装置、及び、情報処理装置の制御方法
EP3090336A1 (en) 2013-12-30 2016-11-09 Paul A. Leveille Checkpointing systems and methods of using data forwarding
US9652338B2 (en) 2013-12-30 2017-05-16 Stratus Technologies Bermuda Ltd. Dynamic checkpointing systems and methods
EP3090345B1 (en) 2013-12-30 2017-11-08 Stratus Technologies Bermuda Ltd. Method of delaying checkpoints by inspecting network packets
US9672298B2 (en) 2014-05-01 2017-06-06 Oracle International Corporation Precise excecution of versioned store instructions
US9195593B1 (en) 2014-09-27 2015-11-24 Oracle International Corporation Hardware assisted object memory migration
US10528501B2 (en) * 2017-05-18 2020-01-07 Linear Technology Holding Llc Coordinated event sequencing
JP6771443B2 (ja) * 2017-09-21 2020-10-21 株式会社東芝 演算処理装置およびその方法
TWI668962B (zh) * 2018-10-02 2019-08-11 新唐科技股份有限公司 時脈調整裝置及其傳輸系統和方法

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3755806A (en) * 1972-05-24 1973-08-28 Bowmar Ali Inc Calculator display circuit
US3800294A (en) * 1973-06-13 1974-03-26 Ibm System for improving the reliability of systems using dirty memories
US4099234A (en) * 1976-11-15 1978-07-04 Honeywell Information Systems Inc. Input/output processing system utilizing locked processors
US4358823A (en) * 1977-03-25 1982-11-09 Trw, Inc. Double redundant processor
US4368512A (en) * 1978-06-30 1983-01-11 Motorola, Inc. Advanced data link controller having a plurality of multi-bit status registers
US4205374A (en) * 1978-10-19 1980-05-27 International Business Machines Corporation Method and means for CPU recovery of non-logged data from a storage subsystem subject to selective resets
US4939643A (en) * 1981-10-01 1990-07-03 Stratus Computer, Inc. Fault tolerant digital data processor with improved bus protocol
IN160140B (ja) * 1981-10-10 1987-06-27 Westinghouse Brake & Signal
IT1151351B (it) * 1982-01-19 1986-12-17 Italtel Spa Disposizione circuitale atta a realizzare lo scambio di dati tra una coppia di elaboratori operanti secondo il principio master-slave
US4747041A (en) * 1983-06-27 1988-05-24 Unisys Corporation Automatic power control system which automatically activates and deactivates power to selected peripheral devices based upon system requirement
US4634110A (en) * 1983-07-28 1987-01-06 Harris Corporation Fault detection and redundancy management system
DE3328405A1 (de) * 1983-08-05 1985-02-21 Siemens AG, 1000 Berlin und 8000 München Steuerorgane eines fehlertoleranten mehrrechnersystems
US4870704A (en) * 1984-10-31 1989-09-26 Flexible Computer Corporation Multicomputer digital processing system
US4686641A (en) * 1985-03-18 1987-08-11 Detroit Edison Company Static programmable powerline carrier channel test structure and method
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
EP0262301B1 (en) * 1986-06-27 1993-03-03 International Business Machines Corporation Paging supervisor
US4837739A (en) * 1986-07-25 1989-06-06 Ford Aerospace & Communications Corporation Telemetry data processor
US4791641A (en) * 1986-09-15 1988-12-13 Thinking Machines Corporation Parallel processor error checking
FR2606184B1 (fr) * 1986-10-31 1991-11-29 Thomson Csf Dispositif de calcul reconfigurable
US4736119A (en) * 1987-02-04 1988-04-05 American Telephone And Telegraph Company, At&T Bell Laboratories Dynamic CMOS current surge control
US4805107A (en) * 1987-04-15 1989-02-14 Allied-Signal Inc. Task scheduler for a fault tolerant multiple node processing system
CH675781A5 (ja) * 1987-04-16 1990-10-31 Bbc Brown Boveri & Cie
US4907228A (en) * 1987-09-04 1990-03-06 Digital Equipment Corporation Dual-rail processor with error checking at single rail interfaces
US5233613A (en) * 1988-03-29 1993-08-03 Advanced Micro Devices, Inc. Reliable watchdog timer
JPH0792764B2 (ja) * 1988-05-25 1995-10-09 日本電気株式会社 マイクロプロセッサ
US4951309A (en) * 1988-10-14 1990-08-21 Compag Computer Corporation Power-down modem
US5084878A (en) * 1988-10-24 1992-01-28 Hitachi, Ltd. Fault tolerant system employing majority voting
US5155824A (en) * 1989-05-15 1992-10-13 Motorola, Inc. System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address
US5119485A (en) * 1989-05-15 1992-06-02 Motorola, Inc. Method for data bus snooping in a data processing system by selective concurrent read and invalidate cache operation
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
JP2789479B2 (ja) * 1989-08-14 1998-08-20 松下電器産業株式会社 処理装置およびマルチプロセッサシステム
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
US5212777A (en) * 1989-11-17 1993-05-18 Texas Instruments Incorporated Multi-processor reconfigurable in single instruction multiple data (SIMD) and multiple instruction multiple data (MIMD) modes and method of operation
EP0432359A3 (en) * 1989-11-21 1993-03-17 International Business Machines Corporation Method and apparatus for performing memory protection operations in a parallel processor system
US5287512A (en) * 1990-08-06 1994-02-15 Ncr Corporation Computer memory system and method for cleaning data elements
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
US5274646A (en) * 1991-04-17 1993-12-28 International Business Machines Corporation Excessive error correction control
US5271023A (en) * 1991-06-03 1993-12-14 Motorola, Inc. Uninterruptable fault tolerant data processor
US5307381A (en) * 1991-12-27 1994-04-26 Intel Corporation Skew-free clock signal distribution network in a microprocessor
US5369311A (en) * 1992-03-06 1994-11-29 Intel Corporation Clock generator control circuit
GB2264794B (en) * 1992-03-06 1995-09-20 Intel Corp Method and apparatus for automatic power management in a high integration floppy disk controller
US5428761A (en) * 1992-03-12 1995-06-27 Digital Equipment Corporation System for achieving atomic non-sequential multi-word operations in shared memory
US5361267A (en) * 1992-04-24 1994-11-01 Digital Equipment Corporation Scheme for error handling in a computer system
US5345583A (en) * 1992-05-13 1994-09-06 Scientific-Atlanta, Inc. Method and apparatus for momentarily interrupting power to a microprocessor to clear a fault state
GB2268817B (en) * 1992-07-17 1996-05-01 Integrated Micro Products Ltd A fault-tolerant computer system
US5758053A (en) * 1992-07-22 1998-05-26 Hitachi, Ltd. Fault handling and recovery for system having plural processors
US5473753A (en) * 1992-10-30 1995-12-05 Intel Corporation Method of managing defects in flash disk memories
US5790776A (en) * 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5675807A (en) * 1992-12-17 1997-10-07 Tandem Computers Incorporated Interrupt message delivery identified by storage location of received interrupt data
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
US5623633A (en) * 1993-07-27 1997-04-22 Dell Usa, L.P. Cache-based computer system employing a snoop control circuit with write-back suppression
EP1016968B1 (en) * 1993-10-15 2002-09-11 Hitachi, Ltd. Logic circuit having error detection function
JP2735479B2 (ja) * 1993-12-29 1998-04-02 株式会社東芝 メモリ・スナップショット方法及びメモリ・スナップショット機能を持つ情報処理装置
US5751995A (en) * 1994-01-04 1998-05-12 Intel Corporation Apparatus and method of maintaining processor ordering in a multiprocessor system which includes one or more processors that execute instructions speculatively
US5630048A (en) * 1994-05-19 1997-05-13 La Joie; Leslie T. Diagnostic system for run-time monitoring of computer operations
US5826093A (en) * 1994-12-22 1998-10-20 Adaptec, Inc. Dual function disk drive integrated circuit for master mode and slave mode operations
US5583449A (en) * 1995-08-04 1996-12-10 Apple Computer, Inc. Cancellation of line reflections in a clock distribution network
US5935742A (en) * 1995-09-25 1999-08-10 Eastman Kodak Company Photographic material having a processed photographic element in a cassette
US5712883A (en) * 1996-01-03 1998-01-27 Credence Systems Corporation Clock signal distribution system
US5799022A (en) * 1996-07-01 1998-08-25 Sun Microsystems, Inc. Faulty module location in a fault tolerant computer system
US5961649A (en) * 1997-12-04 1999-10-05 Intel Corporation Method and apparatus for propagating a signal between synchronous clock domains operating at a non-integer frequency ratio

Also Published As

Publication number Publication date
US6134679A (en) 2000-10-17
US6038684A (en) 2000-03-14
US6173416B1 (en) 2001-01-09
US5889940A (en) 1999-03-30
US5627965A (en) 1997-05-06
AU4713493A (en) 1994-02-14
GB2268817B (en) 1996-05-01
JPH07509088A (ja) 1995-10-05
US6047392A (en) 2000-04-04
EP0650615A1 (en) 1995-05-03
US6170068B1 (en) 2001-01-02
US6134672A (en) 2000-10-17
EP0650615B1 (en) 1998-01-28
GB2268817A (en) 1994-01-19
ATE162898T1 (de) 1998-02-15
WO1994002896A1 (en) 1994-02-03
GB9215212D0 (en) 1992-09-02
US6092218A (en) 2000-07-18
DE69316755T2 (de) 1998-09-10
DE69316755D1 (de) 1998-03-05
US6049893A (en) 2000-04-11
US6141766A (en) 2000-10-31
US6519704B1 (en) 2003-02-11

Similar Documents

Publication Publication Date Title
JP3713554B2 (ja) フォールトトレラント・コンピュータシステム
US5001712A (en) Diagnostic error injection for a synchronous bus system
US4939643A (en) Fault tolerant digital data processor with improved bus protocol
US5153881A (en) Method of handling errors in software
US5185877A (en) Protocol for transfer of DMA data
US5068851A (en) Apparatus and method for documenting faults in computing modules
US5291494A (en) Method of handling errors in software
US5251227A (en) Targeted resets in a data processor including a trace memory to store transactions
JPH02118872A (ja) I/oの読み取りに対するエラーチェック機能を有したデュアルレールプロセッサ
US5065312A (en) Method of converting unique data to system data
JPH01154242A (ja) 二重ゾーンの耐欠陥コンピュータシステム
JPH01154243A (ja) 耐欠陥性でない要素と耐欠陥性システムとのインターフェイス
EP0415552B1 (en) Protocol for read and write transfers
EP0415546A2 (en) Memory device
EP0411805A2 (en) Bulk memory transfer during resync
JP3069585B2 (ja) データ処理装置における目標指定リセット法
JPH03198136A (ja) Dma転送データチェック方式

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040518

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040818

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20041004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041116

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050419

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050519

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050804

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20080902

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20090902

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100902

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110902

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120902

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130902

Year of fee payment: 8

EXPY Cancellation because of completion of term