(57)【要約】      （修正有）【課題】故障を即時かつ確実に検出して不安定な状態で処理し続けることを阻止する。【解決手段】Ａ系プロセッサ２０２からのＡ系情報と、Ｂ系プロセッサ２０３からのＢ系情報とが同一であるか否かを検出するとともに、該検出の結果と、Ａ系プロセッサおよびＢ系プロセッサからの指示とに基づいて、Ａ系あるいはＢ系情報のいずれか一方の情報であるＡ系アクセス情報のメインメモリに対するアクセスを制御するＡ系プロセッサ照合回路２１２を備える。Ａ系情報とＢ系情報とが同一であるときは、予め指示された一方の情報をアクセス情報として、メインメモリへアクセスする。同一でない場合は、メインメモリへのアクセスを禁止する。さらに、Ａ系アクセス情報とＢ系アクセス情報とが同一であるか否かを検出し、このロジック照合回路２１３、２１７での検出結果に基づいて、Ａ系プロセッサあるいはＢ系プロセッサに対して割込みを要求する。【選択図】図３
2011113416.tif 000002
【特許請求の範囲】
【請求項１】
第一および第二プロセッサが所定のプログラムを実行した結果としてそれぞれ出力する第一および第二情報の同一／非同一を検出するとともに、該検出結果が同一ならば、前記第一および第二プロセッサの選択指示に基づいて、前記第一あるいは第二情報のいずれか一方の情報を第一アクセス情報として選択し、該第一アクセス情報でメインメモリにアクセスし、前記検出結果が非同一ならば、前記第一および第二情報の前記メインメモリに対するアクセスを禁止する第一プロセッサ照合回路と、
前記第一および第二情報の同一／非同一を検出するとともに、該検出結果が同一ならば、前記第一および第二プロセッサの選択指示に基づいて、前記第一あるいは第二情報のいずれか一方の情報を第二アクセス情報として選択し、該第二アクセス情報でメインメモリにアクセスし、前記検出結果が非同一ならば、前記第一および第二情報の前記メインメモリに対するアクセスを禁止する第二プロセッサ照合回路と、
前記第一および第二アクセス情報の同一／非同一を検出する第一ロジック照合回路と、
前記第一ロジック照合回路での検出結果が非同一ならば、前記第一プロセッサに対して割込みを要求する第一割込み要求を前記第一プロセッサに出力する第一割込みコントローラと、
前記第一および第二アクセス情報の同一／非同一を検出する第二ロジック照合回路と、
前記第二ロジック照合回路での検出結果が非同一ならば、前記第二プロセッサに対して割込みを要求する第二割込み要求を前記第二プロセッサに出力する第二割込みコントローラと
を備える制御装置。
【請求項２】
前記第一および第二ロジック照合回路は、前記第一および第二割込み要求の同一／非同一をそれぞれ検出する
請求項１に記載の制御装置。
【請求項３】
第一および第二プロセッサが所定のプログラムを実行した結果としてそれぞれ出力する第一および第二情報の同一／非同一を検出するとともに、該検出結果が同一ならば、前記第一および第二プロセッサの選択指示に基づいて、前記第一あるいは第二情報のいずれか一方の情報を第一アクセス情報として選択し、該第一アクセス情報でメインメモリにアクセスし、前記検出結果が非同一ならば、前記第一および第二情報の前記メインメモリに対するアクセスを禁止する第一プロセッサ照合ステップと、
前記第一および第二情報の同一／非同一を検出するとともに、該検出結果が同一ならば、前記第一および第二プロセッサの選択指示に基づいて、前記第一あるいは第二情報のいずれか一方の情報を第二アクセス情報として選択し、該第二アクセス情報でメインメモリにアクセスし、前記検出結果が非同一ならば、前記第一および第二情報の前記メインメモリに対するアクセスを禁止する第二プロセッサ照合ステップと、
前記第一および第二アクセス情報の同一／非同一を検出する第一ロジック照合ステップと、
前記第一ロジック照合ステップでの検出結果が非同一ならば、前記第一プロセッサに対して割込みを要求する第一割込み要求を前記第一プロセッサに出力する第一割込みステップと、
前記第一および第二アクセス情報の同一／非同一を検出する第二ロジック照合ステップと、
前記第二ロジック照合ステップでの検出結果が非同一ならば、前記第二プロセッサに対して割込みを要求する第二割込み要求を前記第二プロセッサに出力する第二割込みステップと
を備える制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラムマブル電子装置に備える制御装置および当該電子装置の制御方法に関する。
【背景技術】
【０００２】
原子力プラントや化学プラントなど潜在的な危険性の高いプロセス設備では、万が一の事態に作業員および周辺環境への影響を低減するため、隔壁等の防護設備による受動的な対策および緊急停止装置等の安全装置を用いる能動的な対策が講じられる。このうち、安全装置等の制御には、従来リレー等の電磁的・機械的な手段により実現されていた。
【０００３】
しかし、近年、プログラマブル電子装置（Programmable Logic Controller：ＰＬＣ)に代表されるプログラム可能な制御機器における技術の発展に伴い、これらを安全制御システムの制御手段として利用するニーズが高まっている。
【０００４】
例えば、ＩＥＣ６１５０８は、そのような動向に対応して発行された国際規格であり、電気的／電子的／プログラム可能な電子的装置を安全制御システムの一部に利用する場合の要件が規定されている（非特許文献１）。
【０００５】
ＩＥＣ６１５０８では、安全制御システムの能力の尺度としてＳＩＬ(Safety Integrity Level）を定義し、１から４までのレベルに対応する水準の要求事項を規定している。ＳＩＬが高いほどプロセス設備の持つ潜在的な危険性を低減できる度合が大きいことを示す。すなわち、プロセス設備の異常を検出した際、どれだけ確実に所定の安全制御を実施できるかを意味する。
【０００６】
安全制御装置は、通常稼働状態で非活性となっていても、プロセス設備の異常発生時には直ちに活性化することを求められる。そのため、常時自己診断を行い、自身の健全性をチェックし続けることが重要となる。また、高いＳＩＬが要求される安全制御システムでは、未検出の故障によりシステムが不動作となる確率を極小とするため、広範囲・高精度な自己診断を実施する必要がある。
【０００７】
ＩＥＣ６１５０８では、安全制御装置を構成する要素部品の種類ごとに、各々適用される自己診断技法を紹介し、それぞれの技法の有効性を診断率という形で示している。診断率は、各構成要素における全故障のうち、その診断技法を採用したとき検出可能な故障の割合を示す。例えば、ＲＡＭの診断技法"ａｂｒａｈａｍ"では、最高９９％の診断率を主張可能であるとされている（特許文献２）。
【０００８】
また、ＰＬＣの構成要素の一つであるプロセッサの故障検出手段として、複数のプロセッサを用いて、相互の出力結果の整合性を監視する方法が有効である。
【０００９】
複数のプロセッサ出力を相互診断する方式としては、各プロセッサが同様の制御処理を同時に実行し、その出力が一致していることを確認しあう手段が効果的である。
【００１０】
例えば、非同期に動作する複数のプロセッサの出力を照合することにより、プロセッサが故障しても即時検出するという技術がある（特許文献１）。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００７−１１６３９号公報
【特許文献２】米国特許第６７７９１２８号明細書
【非特許文献】
【００１２】
【非特許文献１】ＩＥＣ６１５０８−１〜７，“Functional safety of electrical／electronic／programmable electronic safety-related systems”part１〜part７
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１に記載された技術でも、プロセッサ照合手段によりプロセッサの診断ができる。しかしながら、特許文献１に記載のものでは、プロセッサ照合回路で故障が発生した場合に、ハード的な検出手段がないため、ソフトウェアによる故障検出を行わなければならない。
一般に、プロセッサ上のソフトウェアによる故障検出処理は、プロセッサ照合回路に対して、プロセッサ照合で不一致となる異常条件を入力し、プロセッサ照合回路が不一致を検出することを確認するものである。
このソフトウェア処理により、プロセッサ照合回路は、通常時の一致検出と、異常時の不一致検出を検出することが可能である。しかし、このソフトウェア処理では、n回目の故障検出処理とn+1回目の故障検出処理の間の実稼働期間は、故障を検出できないままその動作が継続する、という問題がある。
また、もう一つの課題として、制御装置内の設定情報が1ヵ所にしかないため、プロセッサのソフトウェア異常または、制御装置内のソフトエラー等によって、予期しないタイミングで予期しないデータに書き換わってしまうという問題もあった。
【００１４】
本発明は斯かる点に鑑みてなされたものであり、即時かつ確実に故障を検出して不安定な状態で処理し続けることを阻止できるようにするとともに、設定情報の変更手順を制御することを目的とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため、本発明の制御装置は、第一および第二プロセッサが所定のプログラムを実行した結果としてそれぞれ出力する第一および第二情報の同一／非同一を検出するとともに、該検出結果が同一ならば、第一および第二プロセッサの選択指示に基づいて、第一あるいは第二情報のいずれか一方の情報を第一アクセス情報として選択し、該第一アクセス情報でメインメモリにアクセスし、検出結果が非同一ならば、第一および第二情報の前記メインメモリに対するアクセスを禁止する第一プロセッサ照合回路を備えている。
また、本発明の制御装置は、第一プロセッサ照合回路と同じ機能を持ち、検出結果が同一ならば、第一および第二プロセッサの選択指示に基づいて、第一あるいは第二情報のいずれか一方の情報を第二アクセス情報として選択し、該第二アクセス情報でメインメモリにアクセスし、前記検出結果が非同一ならば、前記第一および第二情報の前記メインメモリに対するアクセスを禁止する第二プロセッサ照合回路を並列に備えている。
さらに、第一および第二アクセス情報の同一／非同一を検出する第一ロジック照合回路と、第一ロジック照合回路での検出結果が非同一ならば、第一プロセッサに対して割込みを要求する第一割込み要求を第一プロセッサに出力する第一割込みコントローラと、第一および第二アクセス情報の同一／非同一を検出する第二ロジック照合回路と、第二ロジック照合回路での検出結果が非同一ならば、第二プロセッサに対して割込みを要求する第二割込み要求を前記第二プロセッサに出力する第二割込みコントローラとを備えている。
【発明の効果】
【００１６】
本発明によれば、プロセッサの健全性を診断するプロセッサ照合回路の診断と、プロセッサ照合回路の診断をするロジック照合回路の診断の両方を実施することが可能となり、ハードウェアの異常発生時に、直ちにその異常検出が可能となるため、制御システムの安全性がより向上する。
また、プロセッサ照合回路を多重化するとともに、設定情報（レジスタデータ）も多重化して、設定変更時の手順を設けることで予期しないタイミングでのデータ変更を防ぎ、信頼性の向上を図ることができる、という効果がある。
【図面の簡単な説明】
【００１７】
【図１】制御システムを示すブロック図である。
【図２】ＣＰＵ装置のモードの遷移を示す状態遷移図である。
【図３】本発明の一実施形態に係る制御装置を適用したＣＰＵ装置を示すブロック図である。
【図４】Ａ系およびＢ系のプロセッサ照合回路有効レジスタの回路構成を示すブロック図である。
【図５】Ａ系およびＢ系のプロセッサ照合回路有効レジスタの同期化の動作を示すタイミングチャートである。
【図６】安全モード時のＣＰＵ装置の動作のタイミングを示すタイミングチャートである。
【発明を実施するための形態】
【００１８】
以下、本発明を実施するための実施形態例について説明する。以下に述べる実施の形態例は、本発明の好適な具体例である。そのため、技術的に好ましい種々の限定が付されている。しかしながら、本発明の範囲は、下記の説明において特に本発明を限定する旨の記載がない限り、これらの形態に限られるものではない。例えば、以下の説明で挙げる各パラメータの数値的条件は好適例に過ぎず、説明に用いた各図における寸法、形状および配置関係も概略的なものである。
【００１９】
以下の手順で説明を行う。
＜本発明の一実施形態例の説明＞
（１）制御システムの構成
（２）ＣＰＵ装置のモード遷移
（３）ＣＰＵ装置の構成
（４）プロセッサ照合回路有効レジスタの同期化回路構成およびその動作（５）ＣＰＵ装置の動作
【００２０】
＜本発明の一実施形態例の説明＞
本発明の第一の実施形態の例を、図１〜図６を参照して説明する。
［１．制御システムの構成］
まず、一実施形態に係る制御システム１０１の構成について図１および図２を参照して説明する。
図１は、発明の一実施形態である制御システム１０１を示すブロック図である。
制御システム１０１は、ＣＰＵ装置１０２と、上位装置１０３と、下位装置１０４と、制御対象１０５よりなる。
【００２１】
上位装置１０３は、様々なプログラムを記憶しており、ＣＰＵ装置１０２とネットワーク１０６で接続されている。
【００２２】
ＣＰＵ装置１０２は、上位装置１０３からネットワーク１０６を介してプログラムをダウンロードし、当該プログラムに基づいて演算を行う。また、ＣＰＵ装置１０２は下位装置１０４ともネットワーク１０６で接続されており、演算結果を当該ネットワークを介して下位装置１０４に出力する。
【００２３】
このＣＰＵ装置１０２は、後述するように複数のプロセッサを備えており、一般モードあるいは安全モードのいずれかで、プログラムに基づいた演算を行う。一般モードは、各プロセッサで独立した演算を行うモードある。また、安全モードは、各プロセッサで同一の演算を行い、その演算結果が同一であるか否かを検証することにより、プロセッサの健全性を確認するモードである。さらに、ＣＰＵ装置１０２は、テストモードで稼動する場合もある。テストモードは、予めＣＰＵ装置１０２に記憶されたテストプログラムに基づいて、ＣＰＵ装置１０２が正常に動作するか否かを検証するモードである。一般モードおよび安全モード時のＣＰＵ装置１０２は基本的に演算結果を下位装置１０４に入力するが、テストモード時のＣＰＵ装置１０２は下位装置１０４になにも出力しない。すなわち、テストモードは、ＣＰＵ装置１０２による下位装置１０４の制御が行われていないときに行われる。なお、一般モード、安全モードおよびテストモードのモード切り替えは、予めＣＰＵ装置１０２に設定されたスケジューラにより行われる。なお、ＣＰＵ装置１０２のモード切り替え（モード遷移）の詳細は図２にて後述する。
【００２４】
下位装置１０４は、制御対象１０５との間で制御情報の入出力を行うインターフェースである。下位装置１０４は、制御対象１０５と接続されており、ＣＰＵ装置１０２から入力される演算結果に基づいて制御対象１０５を動作させる。この制御対象１０５は、制御を行う際に安全性が求められる、例えば原子力プラントや化学プラント等の潜在的な危険性の高いプロセス設備である。
【００２５】
［２．ＣＰＵ装置のモード遷移］
次に、ＣＰＵ装置１０２のモード遷移について図２を参照して説明する。
図２は、ＣＰＵ装置１０２のモードの遷移を示す状態遷移図である。
【００２６】
まず、ＣＰＵ装置１０２が起動されると、当該ＣＰＵ装置１０２はＯＳ立ち上がりモードになる（ステップＳ１）。このとき、ＣＰＵ装置１０２は、上位装置１０３に記憶されたプログラムをネットワーク経由で取得する。
【００２７】
そして、ＣＰＵ装置１０２は、スケジューラにより、前述の一般モード（ステップＳ２）、安全モード（ステップＳ３）あるいはテストモード（ステップＳ４）のいずれかのモードで稼動する。なお、スケジューラにより、モードの変更が行われる場合は、ＯＳ立ち上がりモードに移行する（ステップＳ５、ステップＳ６およびステップＳ７）。
【００２８】
ＣＰＵ装置１０２は、一般モードでの演算中にＣＰＵ装置１０２に異常が発生すると、ＣＰＵ装置１０２は演算を中止する（ステップＳ８）。
また、ＣＰＵ装置１０２は、安全モードでの演算中にＣＰＵ装置１０２に異常が発生すると、ＣＰＵ装置１０２は演算を中止する（ステップＳ９）。同様に、ＣＰＵ装置１０２は、テストモードの実行、すなわちテストプログラムによりＣＰＵ装置１０２を構成する各ブロックおよび各バスの故障を検出すると、当該ＣＰＵ装置１０２を停止する（ステップＳ１０）。
【００２９】
以上に示した各状態のうち、特に、ステップＳ９のエラーを検出するためのＣＰＵ装置１０２の構成および動作を図３から図６を参照して説明する。なお、図３，４に示す本実施形態例の構成は、安全モードでＣＰＵ装置１０２の異常を確実に検出し、異常停止モードに至らせるためのものである。
【００３０】
［３．ＣＰＵ装置の構成］
次に、制御システム１０１を構成するＣＰＵ装置１０２（上述した安全モード時）について図３を参照して説明する。
図３は、ＣＰＵ装置１０２を示すブロック図である。なお、以下に示すＣＰＵ装置１０２は、ＣＰＵ装置１０２が上位装置１０３からダウンロードしたプログラムに基づいて、安全モードで演算を行う場合を想定している。ただし、ＣＰＵ装置１０２が、上位装置１０３からプログラムをダウンロードするときだけは、安全モードとは異なる動作を行う。
【００３１】
まず、ＣＰＵ装置１０２が、上位装置１０３からプログラムをダウンロードするときに使用する構成について説明する。このときＣＰＵ装置１０２において使用される構成は、Ａ系プロセッサ２０２と、Ｂ系プロセッサ２０３と、メインメモリ２０５と、ネットワークコントローラ２０６である。以下、本例では、ＣＰＵ装置１０２を構成するプロセッサがＡ系プロセッサ２０２およびＢ系プロセッサ２０３という２個の場合について説明するが、プロセッサの台数に制限はなく、それにより本発明が制約を受けることはない。
【００３２】
上位装置１０３からのプログラムのダウンロードは、Ａ系プロセッサ２０２あるいはＢ系プロセッサ２０３のいずれか一方により行われる。このとき、ネットワークコントローラ２０６は、ネットワーク１０６を介して上位装置１０３からプログラムである３２ビット幅のデータ列を取得する。ネットワークコントローラ２０６は、図示しないＤＭＡ（Direct Memory Access）コントローラを含んでおり、メインメモリ２０５のどの位置に当該プログラムを書き込むかを決定する。すなわち、アドレスである３２ビット幅のデータ列を生成する。
【００３３】
次に、ＣＰＵ装置１０２が、上位装置１０３からダウンロードしたプログラムに基づいて安全モードで演算を行う際に使用される構成について説明する。このときＣＰＵ装置１０２において使用される構成は、Ａ系プロセッサ２０２と、Ｂ系プロセッサ２０３と、ネットワークコントローラ２０６を除いた制御装置２０４と、メインメモリ２０５である。
【００３４】
Ａ系プロセッサ２０２は、上位装置１０３からダウンロードしたプログラムを実行してタスクを処理する。その際、処理されるタスクによっては、情報のライト／リードが制御装置２０４を介してメインメモリ２０５に対して行われる。
Ａ系プロセッサ２０２は、Ａ系プロセッサバス２０９により制御装置２０４と接続されており、Ａ系プロセッサバス２０９を介して制御装置２０４に情報の入出力を行う。そして、ライト時には、Ａ系プロセッサ２０２は、Ａ系プロセッサバス２０９を介して、アドレス、データおよびコマンドを制御装置２０４に出力する。一方、リード時には、Ａ系プロセッサ２０２は、Ａ系プロセッサバス２０９を介して、アドレスおよびコマンドを制御装置２０４に出力する。
【００３５】
データおよびアドレスは、３２ビット幅のデータ列である。一方、コマンドは、制御装置２０４およびメインメモリ２０５を制御する１ビットのデータである。本例では、制御装置２０４およびメインメモリ２０５は、コマンドが‘１’のときにライトに対応する動作を行い、コマンドが‘０’のときにリード動作を行うものとする。
【００３６】
また、Ｂ系プロセッサ２０３は、Ａ系プロセッサ２０２と同じ機能を備えたものである。つまり、Ｂ系プロセッサ２０３は、上位装置１０３からダウンロードしたプログラムを実行してタスクを処理する際に、当該タスクに応じた情報等のライト／リードを制御装置２０４を介してメインメモリ２０５に対し行うものである。Ｂ系プロセッサ２０３は、Ｂ系プロセッサバス２１０により制御装置２０４と接続されており、Ｂ系プロセッサバス２１０を介して制御装置２０４に情報の入出力を行う。
また、ライト時には、Ｂ系プロセッサ２０３は、Ｂ系プロセッサバス２１０を介して、アドレス、データおよびコマンドを制御装置２０４に出力する。一方、リード時には、Ｂ系プロセッサ２０３は、Ｂ系プロセッサバス２１０を介してアドレスおよびコマンドを制御装置２０４に出力する。
【００３７】
制御装置２０４は、当該制御装置２０４を構成する各ブロックおよびバスと、Ａ系プロセッサ２０２と、Ｂ系プロセッサ２０３に故障があるか否かを検出するものである。なお、本実施形態では詳細な説明は省くが、制御装置２０４は、メインメモリ２０５に故障があるか否かを検出することもできる。
【００３８】
この制御装置２０４は、Ａ系照合回路２０７と、Ｂ系照合回路２０８とを含んで構成される。さらに、制御装置２０４は、ネットワークコントローラ２０６と、出力切替スイッチ２２１を含む。
【００３９】
制御装置２０４のＡ系照合回路２０７と、Ｂ系照合回路２０８は同一構成であり、Ａ系照合回路２０７とＢ系照合回路２０８は、Ａ系プロセッサ２０２のＡ系プロセッサバス２０９と、Ｂ系プロセッサ２０３のＢ系プロセッサバス２１０に接続されて、常時、同一タイミングで同一の入力に基づいて同一の処理を実行し、そして、同一の信号を出力する。
【００４０】
この特徴を利用し、制御装置２０４は、Ａ系照合回路２０７の出力であるＡ系メモリバス２１９と、Ｂ系照合回路２０８の出力であるＢ系メモリバス２２０を比較・照合するとともに、Ａ系割込み報告２２３とＢ系割込み報告２２４を比較・照合することで、Ａ系照合回路２０７とＢ系照合回路２０８の健全性を診断する。
【００４１】
また、Ａ系メモリバス２１９とＢ系メモリバス２２０は、正常動作時には、同一タイミングの同一信号であるため、メインメモリ２０５には、Ａ系メモリバス２１９のみを接続するだけでよい。したがって、Ｂ系メモリバス２２０は接続されていない（図３の×印参照。）。なお、Ａ系メモリバス２１９の代わりにＢ系メモリバス２２０のみをメインメモリ２０５に接続するようにしてもよい。Ａ系メモリバス２１９とＢ系メモリバス２２０のいずれをメインメモリ２０５に接続するかは、Ａ系プロセッサ２０２およびＢ系プロセッサの制御により決定される。
【００４２】
Ａ系照合回路２０７とＢ系照合回路２０８のいずれかに故障が発生した場合、Ａ系照合回路２０７あるいはＢ系照合回路２０８が、Ａ系メモリバス２１９とＢ系メモリバス２２０のデータが異なることを検出する。そして、Ａ系プロセッサ２０２およびＢ系プロセッサ２０３を誤動作させないようにするために、Ａ系プロセッサ２０２にはＡ系照合回路２０７からＡ系割込み報告２２３が供給され、Ｂ系プロセッサ２０３にはＢ系照合回路２０７からＢ系割込み報告２２４が供給されるようになっている。
【００４３】
最初に、Ａ系照合回路２０７の構成と動作について説明する。Ａ系照合回路２０７は、プロセッサ照合回路有効レジスタ２１１と、プロセッサ照合回路２１２と、ロジック照合回路２１３と、割込みコントローラ２１４とを備える。
【００４４】
Ａ系のプロセッサ照合回路有効レジスタ２１１は、Ａ系プロセッサバス２０９を介して、Ａ系プロセッサ２０２と接続され、Ｂ系プロセッサバス２１０を介してＢ系プロセッサ２０３と接続されている。また、Ａ系のプロセッサ照合回路有効レジスタ２１１は、Ａ系のプロセッサ照合回路２１２及びＢ系のプロセッサ照合回路有効レジスタ２１５と接続されている。
【００４５】
このＡ系のプロセッサ照合回路有効レジスタ２１１は、Ａ系プロセッサ２０２およびＢ系プロセッサ２０３からの出力に基づいて、Ａ系のプロセッサ照合回路２１２の有効・無効の設定を可能とする。具体的には、Ａ系のプロセッサ照合回路有効レジスタ２１１は、Ａ系プロセッサ２０２およびＢ系プロセッサ２０３が同じ処理を行うシングルタスクモード（安全モード）動作時には有効（仮に“１”とする）を、前述のマルチタスクモード（安全モード以外のモード）動作時には無効（仮に“０”とする）をＡ系のプロセッサ照合回路２１２に出力する。
【００４６】
このＡ系のプロセッサ照合回路有効レジスタ２１１は、Ａ系のプロセッサ照合回路２１２とＢ系のプロセッサ照合回路２１６の両方が同時に有効あるいは無効に切り替わるように、Ａ系のプロセッサ照合回路有効レジスタ２１１とＢ系のプロセッサ照合回路有効レジスタ２１５とで、同期して有効、無効が切り替わるようにする。なお、この同期して有効、無効が切り替わるためのＡ系およびＢ系のプロセッサ照合回路有効レジスタ２１１，２１５の詳細な構成については、図４に基づいて詳細に説明する。
【００４７】
Ａ系のプロセッサ照合回路２１２は、プロセッサ照合回路有効レジスタ２１１から有効（“１”）が入力された場合に、Ａ系プロセッサバス２０９とＢ系プロセッサバス２１０のデータの比較し、結果が一致した場合のみ、Ａ系メモリバス２１９にＡ系プロセッサバス２０９のデータを出力する。
【００４８】
一方、Ａ系のプロセッサ照合回路有効レジスタ２１１から無効（“０”）が入力された場合には、Ａ系プロセッサ２０２とＢ系プロセッサ２０３とでは異なる処理が行われているので、Ａ系のプロセッサ照合回路２１２は、Ａ系プロセッサバス２０９のデータとＢ系プロセッサバス２１０のデータとの比較を行わない。この場合は、Ａ系メモリバス２１９には、Ａ系プロセッサバス２０９とＢ系プロセッサバス２１０の各データを予め決められた優先順位に従ってＡ系メモリバス２１９に出力する。
【００４９】
また、Ａ系のロジック照合回路２１３は、Ａ系メモリバス２１９を介してＡ系のプロセッサ照合回路２１２と接続され、Ｂ系メモリバス２２０を介してＢ系のプロセッサ照合回路２１６と接続されている。そして、Ａ系のロジック照合回路２１３は、Ａ系の割込みコントローラ２１４を経由してＡ系割込み報告２２３をＡ系プロセッサ２０２に出力する。
【００５０】
Ａ系のロジック照合回路２１３は、Ａ系メモリバス２１９のデータとＢ系メモリバス２２０のデータとを、またＡ系割込み報告２２３とＢ系割込み報告２２４とをそれぞれ比較し、結果が不一致の場合にＡ系の割込みコントローラ２１４に異常を報告し、Ａ系割込み報告２２３を介して、割込み要求をＡ系プロセッサ２０２に対して行う。
【００５１】
以上Ａ系照合回路２０７の構成と動作について説明したが、Ｂ系照合回路２０８についてもＡ系照合回路２０７と同様な構成を備えている。
すなわち、Ｂ系照合回路２０８は、プロセッサ照合回路有効レジスタ２１５と、プロセッサ照合回路２１６と、ロジック照合回路２１７と、割込みコントローラ２１８とを備える。
【００５２】
Ｂ系のプロセッサ照合回路有効レジスタ２１５は、Ａ系のプロセッサ照合回路有効レジスタ２１１と同様に、Ａ系プロセッサバス２０９およびＢ系プロセッサバス２１０を介して、Ａ系プロセッサ２０２およびＢ系プロセッサ２０３と接続されている。また、Ｂ系のプロセッサ照合回路２１６及びＡ系のプロセッサ照合回路有効レジスタ２１１とも接続されている。
【００５３】
このＢ系のプロセッサ照合回路有効レジスタ２１５は、Ａ系プロセッサ２０２およびＢ系プロセッサ２０３からの出力に基づいて、Ｂ系のプロセッサ照合回路２１６の有効・無効の設定を可能とする。そして、Ａ系プロセッサ２０２およびＢ系プロセッサ２０３がシングルタスクモード（安全モード）動作時には有効（“１”）を、前述のマルチタスクモード（安全モード以外のモード）動作時には無効（“０”）をＢ系のプロセッサ照合回路２１６に出力する。
【００５４】
また、Ｂ系のプロセッサ照合回路２１６は、プロセッサ照合回路有効レジスタ２１５から有効（“１”）が入力された場合に、Ａ系プロセッサバス２０９とＢ系プロセッサバス２１０のデータの比較し、結果が一致した場合のみ、Ｂ系メモリバス２２０にＡ系プロセッサバス２０９のデータを出力する。
【００５５】
一方、プロセッサ照合回路有効レジスタ２１５から無効（“０”）が入力された場合には、Ａ系プロセッサバス２０９のデータとＢ系プロセッサバス２１０のデータとの比較は行わずに、Ａ系プロセッサバス２０９とＢ系プロセッサバス２１０からの各データを予め決められた優先順位でＢ系メモリバス２２０に出力する。
【００５６】
Ｂ系のロジック照合回路２１７は、Ａ系メモリバス２１９を介してＡ系のプロセッサ照合回路２１２と接続され、Ｂ系メモリバス２２０を介してＢ系のプロセッサ照合回路２１６とそれぞれ接続されている。そして、Ｂ系のロジック照合回路２１７は、Ｂ系の割込みコントローラ２１８を経由してＢ系割込み報告２２４をＢ系プロセッサ２０３に出力する。
【００５７】
また、Ｂ系のロジック照合回路２１７は、Ａ系メモリバス２１９のデータとＢ系メモリバス２２０のデータを比較するとともに、Ａ系割込み報告２２３とＢ系割込み報告２２４を比較し、いずれかの比較結果において、結果が不一致の場合には、Ｂ系の割込みコントローラ２１８に異常を報告する。Ｂ系の割込みコントローラ２１８は、Ｂ系割込み報告２２４を介して、割込み要求をＢ系プロセッサ２０３に対して行う。
【００５８】
［４．プロセッサ照合回路有効レジスタの同期化回路構成および動作］
次に、Ａ系のプロセッサ照合回路有効レジスタ２１１とＢ系のプロセッサ照合回路有効レジスタ２１５について、図４を参照して構成を説明し、図５を参照して同期方法を説明する。
【００５９】
Ａ系のプロセッサ照合回路有効レジスタ２１１は、有効レジスタ３０１と、タイミング調整フリップフロップ３０３，３０５と、ＡＮＤ回路３０７と、ＮＯＲ回路３０９と、ＲＳ型フリップフロップ３１１とを備える。また、Ｂ系照合回路２０８のＢ系のプロセッサ照合回路有効レジスタ２１５も、Ａ系のプロセッサ照合回路有効レジスタ２１１と同様の構成を有する。
【００６０】
Ａ系の有効レジスタ３０１およびＢ系の有効レジスタ３０２は、Ａ系プロセッサバス２０９を介してＡ系プロセッサ２０２に接続され、Ｂ系プロセッサバス２１０を介してＢ系プロセッサ２０３に接続されている。そのため、Ａ系の有効レジスタ３０１およびＢ系の有効レジスタ３０２は、Ａ系プロセッサ２０２、Ｂ系プロセッサ２０３の両方から有効／無効の設定可能であるが、本例では、Ａ系プロセッサ２０２から設定することにする。
【００６１】
まず、Ａ系のプロセッサ照合回路有効レジスタ２１１およびＢ系のプロセッサ照合回路有効レジスタ２１５からの出力を、両方ともに無効（“０”）から有効（“１”）に変更する場合について、図４を参照して説明する。
【００６２】
Ａ系の有効レジスタ３０１は、Ａ系プロセッサ２０２からの出力が‘０’から‘１’に設定変更されると、タイミング調整フリップフロップ３０３およびタイミング調整フリップフロップ３０６へ出力する信号Ｐ６０１を‘０’から’１’に変更する（図５のＴ７０１）。
【００６３】
タイミング調整フリップフロップ３０３，３０６に入力された信号Ｐ６０１はそれぞれラッチされる。そして、タイミング調整フリップフロップ３０３は、‘１’を示す信号Ｐ６０２をＡＮＤ回路３０７およびＮＯＲ回路３０９に出力する。この出力と同じタイミングで、タイミング調整フリップフロップ３０６は、‘１’を示す信号Ｐ６０７をＡＮＤ回路３０８およびＮＯＲ回路３１０に出力する。
【００６４】
一方、Ｂ系の有効レジスタ３０２も、Ａ系の有効レジスタ３０１と同様に、Ｂ系プロセッサ２０３からの出力が‘０’から‘１’に設定変更されると、タイミング調整フリップフロップ３０４およびタイミング調整フリップフロップ３０５へ出力する信号Ｐ６０５を‘０’から‘１’に変更する（図５のＴ７０２）。
【００６５】
タイミング調整フリップフロップ３０４，３０５に入力された信号Ｐ６０５はそれぞれラッチされる。そして、タイミング調整フリップフロップ３０４は所定のタイミングで‘１’を示す信号Ｐ６０６をＡＮＤ回路３０８およびＮＯＲ回路３１０に出力する。この出力と同じタイミングで、タイミング調整フリップフロップ３０５は、‘１’を示す信号Ｐ６０３をＡＮＤ回路３０７およびＮＯＲ回路３０９に出力する。
【００６６】
ここで、信号Ｐ６０２と信号Ｐ６０３の両方が‘１’となるので、ＡＮＤ回路３０７からＲＳ型フリップフロップ３１１のセット側への入力が‘１’となり、ＮＯＲ回路３０９からＲＳ型フリップフロップ３１１のリセット側への入力が‘１’となる（図５のＴ７０３）。
【００６７】
このタイミングＴ７０３のとき、信号Ｐ６０６と信号Ｐ６０７の両方も‘１’となるので、ＡＮＤ回路３０８からＲＳ型フリップフロップ３１２のセット側への入力が‘１’となり、ＮＯＲ回路３１０からＲＳ型フリップフロップ３１２のリセット側への入力が‘０’となる。
【００６８】
すなわち、タイミングＴ７０３において、Ａ系のプロセッサ照合回路２１２を有効にするための‘１’を示す信号Ｐ６０４が、ＲＳ型フリップフロップ３１１からＡ系のプロセッサ照合回路２１２に入力され、Ｂ系のプロセッサ照合回路２１６を有効にするための‘１’を示す信号Ｐ６０８が、ＲＳ型フリップフロップ３１２からＢ系のプロセッサ照合回路２１６に入力される。このように、Ａ系のプロセッサ照合回路２１２とＢ系のプロセッサ照合回路２１６が同一タイミングで動作を開始することが可能となる。
【００６９】
次に、Ａ系のプロセッサ照合回路有効レジスタ２１１およびＢ系のプロセッサ照合回路有効レジスタ２１５からの出力を、両方ともに有効（“１”）から無効（“０”）に変更する場合について、図４を参照して説明する。
【００７０】
Ａ系の有効レジスタ３０１は、Ａ系プロセッサ２０２からの入力が‘１’から‘０’に設定変更されると、タイミング調整フリップフロップ３０３およびタイミング調整フリップフロップ３０６へ出力する信号Ｐ６０１を‘１’から’０’に変更する（図５のＴ７０５）。
【００７１】
タイミング調整フリップフロップ３０３，３０６に入力された信号Ｐ６０１はそれぞれラッチされる。そして、タイミング調整フリップフロップ３０３は、‘０’を示す信号Ｐ６０２をＡＮＤ回路３０７およびＮＯＲ回路３０９に出力する。この出力と同じタイミングで、タイミング調整フリップフロップ３０６は、‘０’を示す信号Ｐ６０７をＡＮＤ回路３０８およびＮＯＲ回路３１０に出力する。
【００７２】
一方、Ｂ系の有効レジスタ３０２も、Ａ系の有効レジスタ３０１と同様に、Ｂ系プロセッサ２０３からの出力が‘１’から‘０’に設定変更されると、タイミング調整フリップフロップ３０４およびＡ系のプロセッサ照合回路有効レジスタ２１１のタイミング調整フリップフロップ３０５へ出力する信号Ｐ６０５を‘１’から‘０’に変更する（図５のＴ７０６）。
【００７３】
タイミング調整フリップフロップ３０４，３０５に入力された信号Ｐ６０５はそれぞれラッチされる。そして、タイミング調整フリップフロップ３０４は所定のタイミングで‘０’を示す信号Ｐ６０６をＡＮＤ回路３０８およびＮＯＲ回路３１０に出力する。この出力と同じタイミングで、タイミング調整フリップフロップ３０５は、‘０’を示す信号Ｐ６０３をＡＮＤ回路３０７およびＮＯＲ回路３０９に出力する。
【００７４】
ここで、信号Ｐ６０２と信号Ｐ６０３の両方が‘０’となるので、ＡＮＤ回路３０７からＲＳ型フリップフロップ３１１のセット側への入力が‘０’となり、ＮＯＲ回路３０９からＲＳ型フリップフロップ３１１のリセット側への入力が‘１’となる（図５のＴ７０７）。
【００７５】
このタイミングＴ７０７のとき、信号Ｐ６０６と信号Ｐ６０７の両方も‘０’となるので、ＡＮＤ回路３０８からＲＳ型フリップフロップ３１２のセット側への入力が‘０’となり、ＮＯＲ回路３１０からＲＳ型フリップフロップ３１２のリセット側への入力が‘１’となる。
【００７６】
すなわち、タイミングＴ７０７において、Ａ系のプロセッサ照合回路２１２を無効にするための‘０’を示す信号Ｐ６０４が、ＲＳ型フリップフロップ３１１からＡ系のプロセッサ照合回路２１２に入力され、Ｂ系のプロセッサ照合回路２１６を無効にするための‘０’を示す信号Ｐ６０８が、ＲＳ型フリップフロップ３１２からＡ系のプロセッサ照合回路２１６に入力される。このように、Ａ系のプロセッサ照合回路２１２とＢ系のプロセッサ照合回路２１６が同一タイミングで動作を停止することが可能となる。
【００７７】
［５．ＣＰＵ装置の動作]
次に、ＣＰＵ装置１０２の動作を、図６を参照して説明する。
まず、Ａ系のプロセッサ照合回路２１２と、ロジック照合回路２１３と、Ｂ系のプロセッサ照合回路２１６と、ロジック照合回路２１７とが正常に動作している場合のＣＰＵ装置１０２の動作を説明する。
【００７８】
ＣＰＵ装置１０２が安全モードでの動作を開始する（Ｔ８０１）。すると、ＣＰＵ装置１０２を構成する制御装置２０４のＡ系のプロセッサ照合回路有効レジスタ２１１およびＢ系のプロセッサ照合回路有効レジスタ２１５では、このタイミングＴ８０１で、有効を示す‘１’がＡ系のプロセッサ照合回路２１２およびＢ系のプロセッサ照合回路２１６に対してそれぞれ出力される。
【００７９】
ところで、Ａ系プロセッサ２０２からＡ系プロセッサバス２０９を介してＡ系のプロセッサ照合回路２１２にデータが出力されており、Ｂ系プロセッサ２０３からＢ系プロセッサバス２１０を介してＢ系のプロセッサ照合回路２１６にデータが出力されている。なお、Ａ系プロセッサ２０２から出力されるデータおよびＢ系プロセッサ２０３から出力されるデータは同じデータであるものとする。
【００８０】
Ａ系のプロセッサ照合回路２１２では、Ａ系およびＢ系のプロセッサ照合回路２１２，２１６の両方が同期して有効、すなわち‘１’が入力されていることが確認される（Ｔ８０２）。そして、このタイミングＴ８０２で、Ａ系プロセッサバス２０９を介して入力されるデータと、Ｂ系プロセッサバス２１０を介して入力されるデータとの比較が行われる。そして、比較した結果は一致となり、Ａ系プロセッサバス２０９を介してＡ系プロセッサ２０２から出力されたデータがＡ系メモリバス２１９に出力される。
【００８１】
一方、Ｂ系のプロセッサ照合回路２１６においても、Ａ系のプロセッサ照合回路２１２と同様に、タイミングＴ８０２で、Ａ系プロセッサバス２０９のデータとＢ系プロセッサバス２１０のデータとが比較される。比較した結果は一致となり、Ａ系プロセッサバス２０９を介してＡ系プロセッサ２０２から出力されたデータがＢ系メモリバス２２０に出力される。
【００８２】
これらＡ系メモリバス２１９のデータおよびＢ系メモリバス２２０のデータは、Ａ系のロジック照合回路２１３で常時比較されている。この場合、比較結果は一致となり、Ａ系のロジック照合回路２１３では、Ａ系割込み報告２２３が無効を示す‘０’のままとなるように割込みコントローラ２１４が制御される。このとき、割込みコントローラ２１４では、Ａ系プロセッサ２０２への割込み要求はなされない。
【００８３】
一方、Ｂ系のロジック照合回路２１７でも、Ａ系のロジック照合回路２１３と同様に、Ａ系メモリバス２１９のデータおよびＢ系メモリバス２２０のデータが常時比較されている。この場合も、比較結果は一致となり、Ｂ系のロジック照合回路２１７では、Ｂ系割込み報告２２４が無効を示す‘０’のままとなるように割込みコントローラ２１８が制御される。このとき、割込みコントローラ２１８でも、Ｂ系プロセッサ２０３への割込み要求はなされない。
【００８４】
Ａ系プロセッサ２０２およびＢ系プロセッサ２０３の両方に対して割込み要求がなされないので、Ａ系メモリバス２１９がメインメモリ２０５にアクセスし、Ａ系プロセッサ２０２から出力されたデータがメインメモリ２０５に反映される（Ｔ８０３）。
つまり、このアクセス完了となるタイミングＴ８０３で、ＣＰＵ装置１０２が健全であることが確認されたことになり、この結果を受けて、ＣＰＵ装置１０２が現在の安全モードから一般モードに切り換わる。すなわち、前述したように、Ａ系のプロセッサ照合回路２１２およびＢ系のプロセッサ照合回路２１６が同期してネゲートされる。そして、Ａ系のプロセッサ照合回路２１２およびＢ系のプロセッサ照合回路２１６からＡ系メモリバス２１９およびＢ系メモリバス２２０それぞれを介してのメインメモリ２０５へのアクセスが禁止される。
【００８５】
次に、Ｂ系のプロセッサ照合回路２１６において比較結果が常に一致を示すような故障が発生している場合のＣＰＵ装置１０２の動作について説明する。
【００８６】
ＣＰＵ装置１０２が安全モードでの動作を開始する（Ｔ８１１）。すると、ＣＰＵ装置１０２を構成する制御装置２０４のＡ系のプロセッサ照合回路有効レジスタ２１１およびＢ系のプロセッサ照合回路有効レジスタ２１５では、このタイミングＴ８１１で、有効を示す‘１’がＡ系のプロセッサ照合回路２１２およびＢ系のプロセッサ照合回路２１６に対してそれぞれ出力される。
【００８７】
ところで、Ａ系プロセッサ２０２からＡ系プロセッサバス２０９を介してＡ系のプロセッサ照合回路２１２にデータが出力されており、Ｂ系プロセッサ２０３からＢ系プロセッサバス２１０を介してＢ系のプロセッサ照合回路２１６にデータが出力されている。なお、ここでは、Ａ系プロセッサ２０２から出力されたデータと、Ｂ系プロセッサ２０３から出力されたデータは、何らかのエラーにより、不一致を示す異なるデータであるものと想定する。
【００８８】
Ａ系のプロセッサ照合回路２１２では、Ａ系およびＢ系のプロセッサ照合回路２１２，２１６の両方が同期して有効、すなわち‘１’が入力されていることが確認される（Ｔ８１２）。そして、このタイミングＴ８１２で、Ａ系プロセッサバス２０９を介して入力されるデータと、Ｂ系プロセッサバス２１０を介して入力されるデータとの比較が行われる。比較結果は不一致となり、Ａ系プロセッサバス２０９を介してＡ系プロセッサ２０２から出力されたデータのＡ系メモリバス２１９への出力が禁止される。すなわち、Ａ系のプロセッサ照合回路２１２およびＡ系メモリバス２１９を介したメインメモリ２０５へのアクセスが禁止される。
【００８９】
一方、Ｂ系のプロセッサ照合回路２１６においても、Ａ系のプロセッサ照合回路２１２と同様に、タイミングＴ８１２で、Ａ系プロセッサバス２０９のデータとＢ系プロセッサバス２１０のデータとが比較される。Ｂ系のプロセッサ照合回路２１６は故障しているので、比較した結果が一致となり、Ｂ系のプロセッサ照合回路２１６では、Ａ系プロセッサバス２０９を介してＡ系プロセッサ２０２から出力されたデータが、Ｂ系メモリバス２２０に出力される。
【００９０】
これらＡ系メモリバス２１９のデータおよびＢ系メモリバス２２０のデータは、Ａ系のロジック照合回路２１３で常時比較されている。Ａ系のロジック照合回路２１３では、比較結果が不一致となり、Ａ系割込み報告２２３が有効を示す‘１’となるように割込みコントローラ２１４が制御される。そして、割込みコントローラ２１４では、Ａ系プロセッサ２０２への割込み要求がなされる。
【００９１】
Ｂ系のロジック照合回路２１７でも、Ａ系のロジック照合回路２１３と同様に、常時Ａ系メモリバス２１９からの出力とＢ系メモリバス２２０の出力とを比較しており、タイミングＴ８１２で、不一致が検出される。したがって、Ｂ系の割込みコントローラ２１８でも、Ａ系の割込みコントローラ２１４と同様に、Ｂ系プロセッサ２０３への割込み要求がなされる。
【００９２】
次に、Ｂ系のロジック照合回路２１７において比較結果が常に不一致を示すような故障が発生している場合のＣＰＵ装置１０２の動作について説明する。
【００９３】
ＣＰＵ装置１０２が安全モードでの動作を開始する（Ｔ８２１）。すると、ＣＰＵ装置１０２を構成する制御装置２０４のＡ系のプロセッサ照合回路有効レジスタ２１１およびＢ系のプロセッサ照合回路有効レジスタ２１５では、このタイミングＴ８２１で、有効を示す‘１’がＡ系のプロセッサ照合回路２１２およびＢ系のプロセッサ照合回路２１６に対してそれぞれ出力される。
【００９４】
ところで、Ａ系プロセッサ２０２からＡ系プロセッサバス２０９を介してＡ系のプロセッサ照合回路２１２にデータが出力されており、Ｂ系プロセッサ２０３からＢ系プロセッサバス２１０を介してＢ系のプロセッサ照合回路２１６にデータが出力されている。なお、Ａ系プロセッサ２０２から出力されるデータおよびＢ系プロセッサ２０３から出力されるデータは同じデータであるものとする。
【００９５】
Ａ系のプロセッサ照合回路２１２では、Ａ系およびＢ系のプロセッサ照合回路２１２，２１６の両方が同期して有効、すなわち‘１’が入力されていることが確認される（Ｔ８２２）。そして、このタイミングＴ８２２で、Ａ系プロセッサバス２０９を介して入力されるデータと、Ｂ系プロセッサバス２１０を介して入力されるデータとの比較が行われる。そして、比較した結果が一致となり、Ａ系プロセッサバス２０９を介してＡ系プロセッサ２０２から出力されたデータが、Ａ系メモリバス２１９に出力される。
【００９６】
一方、Ｂ系のプロセッサ照合回路２１６においても、Ａ系のプロセッサ照合回路２１２と同様に、タイミングＴ８２２で、Ａ系プロセッサバス２０９のデータとＢ系プロセッサバス２１０のデータとが比較される。比較した結果が一致となり、Ａ系プロセッサバス２０９を介してＡ系プロセッサ２０２から出力されたデータが、Ｂ系メモリバス２２０に出力される。
【００９７】
これらＡ系メモリバス２１９のデータおよびＢ系メモリバス２２０のデータは、Ａ系のロジック照合回路２１３で常時比較されている。比較結果は一致であり、Ａ系のロジック照合回路２１３では、Ａ系割込み報告２２３が無効を示す‘０’のままとなるように割込みコントローラ２１４を制御する。このとき、割込みコントローラ２１４では、Ａ系プロセッサ２０２への割込み要求はなされない。
【００９８】
一方、Ｂ系のロジック照合回路２１７でも、Ａ系のロジック照合回路２１３と同様に、Ａ系メモリバス２１９のデータおよびＢ系メモリバス２２０のデータが常時比較されている。Ｂ系のロジック照合回路２１７は故障しているので、比較結果が不一致となる。そして、Ｂ系のロジック照合回路２１７では、Ｂ系割込み報告２２４が有効を示す‘１’となるように割込みコントローラ２１８が制御される。そして、割込みコントローラ２１８では、Ｂ系プロセッサ２０３への割込み要求がなされる。
【００９９】
ところで、Ａ系のロジック照合回路２１３では、Ａ系割込み報告２２３とＢ系割込み報告２２４との比較も常時行われている。したがって、以上の処理が完了した後、Ａ系のロジック照合回路２１３では、Ａ系割込み報告２２３とＢ系割込み報告２２４とが不一致であることが検出される（Ｔ８２３）。そして、Ａ系割込み報告２２３が有効を示す‘１’となるように割込みコントローラ２１４が制御される。そして、割込みコントローラ２１４では、Ａ系プロセッサ２０２への割込み要求がなされる。
【０１００】
以上説明したように、本実施形態では、複数のプロセッサからの出力を単に比較してそれらの出力の一致／不一致を判定することにより故障を検出するだけではなく、当該比較を行う手段の故障の検出を行えるようにした。そのため、ＣＰＵ装置１０２での処理中（安全モード時）における、当該ＣＰＵ装置１０２を構成する各ブロックおよび各バスの故障をより確実に検出することができる。そして、故障が検出されるとすぐに、実行中の処理を中止するようにした。例えば、潜在的な危険性の高いプロセス設備の制御中に何らかの故障が発生しても、すぐにその制御が中断されるので、安全性をより向上させる、という効果がある。
【０１０１】
また、プロセッサ照合回路を多重化するとともに、設定情報（レジスタデータ）も多重化して、設定変更時の手順を設けることで予期しないタイミングでのデータ変更を防ぎ、信頼性の向上を図ることができる、という効果がある。
【０１０２】
以上、本発明の実施形態の例について説明したが、本発明は上記実施形態例に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含むことはいうまでもない。
【符号の説明】
【０１０３】
１０１…制御システム、１０２…ＣＰＵ装置、１０３…上位装置、１０４…下位装置、１０５…制御対象、１０６…ネットワーク、２０２…Ａ系プロセッサ、２０３…Ｂ系プロセッサ、２０４…制御装置、２０５…メインメモリ、２０６…ネットワークコントローラ、２０７…Ａ系照合回路、２０８…Ｂ系照合回路、２０９…Ａ系プロセッサバス、２１０…Ｂ系プロセッサバス、２１１…プロセッサ照合回路有効レジスタ、２１２…プロセッサ照合回路、２１３…ロジック照合回路、２１４…割込みコントローラ、２１５…プロセッサ照合回路有効レジスタ、２１６…プロセッサ照合回路、２１７…ロジック照合回路、２１８…割込みコントローラ、２１９…Ａ系メモリバス、２２０…Ｂ系メモリバス、２２１…出力切替スイッチ、２２３…Ａ系割込み報告、２２４…Ｂ系割込み報告、３０１…有効レジスタ、３０２…有効レジスタ、３０３〜３０６…タイミング調整フリップフロップ、３０７,３０８…ＡＮＤ回路、３０９,３０９…ＮＯＲ回路、３１１,３１２…ＲＳ型フリップフロップ
【図１】
2011113416.tif 000003
【図２】
2011113416.tif 000004
【図３】
2011113416.tif 000005
【図４】
2011113416.tif 000006
【図５】
2011113416.tif 000007
【図６】
2011113416.tif 000008