(57)【要約】【課題】並列処理を行う冗長演算システムにおいて、各演算部のＭＰＵに対して位相同期クロックを供給し、かつ単一点故障箇所が無いようにする。【解決手段】水晶発振器２１１，多数決回路２１２，同期カウンタ２１３およびクロック出力回路２１４で構成するクロック生成回路２１は、複数個に冗長化された演算部２に搭載された水晶発振器２１１の部品固体差：クロック周波数ズレを互いに監視し、多数決の結果より高速なクロックを分周して生成するＭＰＵ動作クロック２４の位相を同期化する。このとき、複数個に冗長化された演算部２，３，４（の内１つに故障及び異常が生じても、残りの正常な演算部の動作クロックの位相を同期した状態で保つことが可能である。【選択図】図２
2008176578.tif 000002
【特許請求の範囲】
【請求項１】
並列処理を行う３つ以上の演算部の演算結果に対する多数決処理を行う冗長演算システムにおける前記演算部それぞれおいて、
周波数Ｆの原振クロックを発生する水晶発振器と、
前記原振クロックを繰り返しカウントして、１からＮまでのカウンタ値を出力し、また第１のカウンタ値のとき‘1’、前記カウンタ値がＮのとき‘0’とするカウント終了フラグを出力する同期カウンタと、
前記カウンタ値がＮ／２のときに‘0’、Ｎのときに‘1’とする周波数Ｆ／Ｎの動作クロックを該演算部の演算プロセッサへ出力するクロック出力回路と、
全ての前記演算部における前記カウント終了フラグを相互比較し当該演算部に異常あるときは当該同期カウンタが出力するカウンタ値をスキップすることにより補正するクロック補正回路を有することを特徴とする演算部。
【請求項２】
前記クロック補正回路は、
第２のカウンタ値のときに全ての演算部における前記カウント終了フラグ（カウント終了フラグ列という）をラッチし異常状態ラッチ１として保持することと、
前記第１のカウンタ値から前記原振クロックを所定数だけ進めた第３のカウンタ値のときに前記カウント終了フラグ列をラッチ・ビット反転し異常状態ラッチ２として保持することと、
前記第１のカウンタ値のときに、入力するカウント終了フラグ列と、保持している前記異常状態ラッチ１と、保持している前記異常状態ラッチ２それぞれのビット対応に論理和演算し、論理和演算の結果（カウント終了状態という）に多数決処理し、その結果を前記同期カウンタへ出力する多数決回路であり、
前記同期カウンタは、前記第１のカウンタ値において、前記多数決処理の結果により‘1’が多数なら前記第３のカウンタ値へカウントアップし、それ以外なら前記第３のカウンタ値まで１つずつカウントアップするクロック生成回路を設けたことを特徴とする請求項１記載の演算部。
【請求項３】
前記第１のカウンタ値は（Ｎ−４）、前記第２のカウンタ値はＮ／２、前記第３のカウンタ値は（Ｎ−２）とすることを特徴とする請求項２記載の演算部。
【請求項４】
前記水晶発振器または前記クロック出力回路の出力周波数を逓倍するＰＬＬを設けたことを特徴とする請求項１ないし請求項３のいずれかに記載の演算部。
【請求項５】
請求項１ないし請求項４記載のいずれかに演算部における前記演算プロセッサの演算結果について多数決処理を行うことを特徴とする冗長演算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長演算システムおよびこれに使用される演算部に関する。
【背景技術】
【０００２】
図８は、並列処理を行う３つの演算部を備えた冗長演算システム（従来例１）を示す（例えば、特許文献１参照）。この冗長演算システムでは、演算部を構成するＭＰＵ，メモリ等の１故障を許容できるシステムであり、一つの故障が発生した場合には、多数決回路によって多数決処理され、外部機器対して正常な動作が行うことができる。
【０００３】
図９は、演算部と１対１対応にＣＬＫ出力回路を設けた冗長演算システム（従来例２）を示す（例えば、特許文献２参照）。この冗長演算システムでは、演算部Ａは、ＣＬＫ出力回路Ａより出力される動作クロックＡの周波数によって動作する。よって処理時間は、動作クロックＡの周波数に依存する。また、演算部Ｂ，Ｃも同様に、動作クロックＢ，Ｃの周波数に依存する。ＣＬＫ出力回路を構成する水晶発振器は、部品固有の周波数であり、同一部品であっても周波数に微小なズレがあることは良く知られている。そのため、演算部の処理時間にも微小なズレがある。このズレ時間について、多数決回路で一定時間待ことにより調整し、多数決処理を行うことでシステムの並列処理を可能としている。
【０００４】
図１０は、ＣＬＫ出力回路を冗長化した冗長演算システム（従来例３）を示す（例えば、特許文献３参照）。この冗長演算システムは、冗長化された演算部の外でＣＬＫ出力回路部の水晶発振器を多重化して演算部に対する動作クロックを切り換える方式である。例えば、図１０に示すように、１つの現用クロックと予備クロックの相互間を位相監視し接点切換により演算部に動作クロックを出力する方法である。現用クロックに異常が発生した場合でも、動作クロックの位相を、異常発生前後でズレが発生しないようにしている。これは、演算部を構成するＭＰＵの内部にＰＬＬが実装されているものが多く、位相にズレが発生するとＭＰＵが正常に動作できないためである。
【０００５】
次に動作を説明する。現用クロックと予備クロックは、それぞれ遅延回路を通り切換回路により選択されて出力される。また、現用クロックと予備クロックは位相同期監視部内にある立上がり検出部に入力され、それぞれのクロックの立上がりで一定のパルスが形成される。立上がり検出部で形成されたパルスは比較回路により、両系のパルスが揃っている時にパルスを出力し、パルス検出回路で比較回路から出力されたパルスを監視する。判定回路では両系クロックの断検出回路と、パルス検出回路からの出力から、クロックを切り換えるか否かを判定する。判定回路は現用クロック断発生時には、パルス比較回路の出力に関わらず、予備クロックの断検出のみにより切換を行い、両系クロックが正常時にはパルス検出回路の出力により判定が行なえるような優先順位を持たせている。
【０００６】
【特許文献１】特開平１０−１３３９００号公報（第頁−第頁、図）
【特許文献２】特開２００１−３０６３４８号公報（第頁−第頁、図）
【特許文献３】特開平５−１３６７６８号公報（第頁−第頁、図）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上述した従来例１の冗長演算システムでは、演算部は冗長化されているが、ＣＬＫ出力回路が冗長化されていないため、ＣＬＫ出力回路の１故障により演算部の動作クロックの停止及び周波数の異常が発生しシステム全体の機能が失われる。従って信頼度が低い冗長演算システムである。
【０００８】
また、従来例２の冗長演算システムでは、水晶発振器、部品固有の周波数ズレによる演算部の処理時間ズレを多数決回路で待つことで解消している。しかし、この待ち時間は、システムとしての機能が停止していることになる。さらに、システムを長時間動作させると、この処理時間のズレが累積され、大きな時間なるとシステムの冗長並列同時処理としての性能が低下してしまうという問題点がある。
【０００９】
また、従来例３の冗長演算システムでは、演算部、水晶発振器は冗長化されているが、切換回路が冗長化されていないため、切換回路部の１故障により、演算部の動作クロックの停止や周波数の異常が発生しシステム全体の機能が失われる。従って信頼度が低い冗長システムである。
【００１０】
そこで、本発明の目的は、１故障発生時において、冗長並列処理の停止および性能低下を起こすことのない冗長演算システムおよびこれに使用される演算部を提供することにある。
【課題を解決するための手段】
【００１１】
本発明の演算部は、並列処理を行う３つ以上の演算部の演算結果に対する多数決処理を行う冗長演算システムにおける前記演算部それぞれおいて、周波数Ｆの原振クロックを発生する水晶発振器（図２の２１１等）と、原振クロックを繰り返しカウントして、１からＮまでのカウンタ値を出力し、また第１のカウンタ値のとき‘1’、カウンタ値がＮのとき‘0’とするカウント終了フラグを出力する同期カウンタ（図２の２１３等）と、カウンタ値がＮ／２のときに‘0’、Ｎのときに‘1’とする周波数Ｆ／Ｎの動作クロックを該演算部の演算プロセッサへ出力するクロック出力回路と、全ての演算部におけるカウント終了フラグを相互比較し当該演算部に異常あるときは当該同期カウンタが出力するカウンタ値をスキップすることにより補正するクロック補正回路（図２の２１２等）を有するクロック生成回路を設けたことを特徴とする。
【００１２】
好ましくは、クロック補正回路（図２の２１２等）は、第２のカウンタ値のときに全ての演算部におけるカウント終了フラグ（カウント終了フラグ列という）をラッチし異常状態ラッチ１として保持することと、第１のカウンタ値から原振クロックを所定数だけ進めた第３のカウンタ値のときにカウント終了フラグ列をラッチ・ビット反転し異常状態ラッチ２として保持することと、第１のカウンタ値のときに、入力するカウント終了フラグ列と、保持している異常状態ラッチ１と、保持している異常状態ラッチ２それぞれのビット対応に論理和演算し、論理和演算の結果（カウント終了状態という）に多数決処理し、その結果を同期カウンタへ出力する多数決回路であり、同期カウンタは、第１のカウンタ値において、多数決処理の結果により‘1’が多数なら第３のカウンタ値へカウントアップし、それ以外なら第３のカウンタ値まで１つずつカウントアップすることを特徴とする。
【００１３】
例えば、第１のカウンタ値は（Ｎ−４）、第２のカウンタ値はＮ／２、第３のカウンタ値は（Ｎ−２）とする。
【００１４】
また、水晶発振器またはクロック出力回路の出力周波数を逓倍するＰＬＬを設けてもよい（図７）。
【００１５】
本発明の冗長演算システムは、上記のいずれかの演算部における演算プロセッサの演算結果について多数決処理を行うことを特徴とする。
【発明の効果】
【００１６】
本発明の冗長演算システムにおける各演算部は、水晶発振器，多数決回路，同期カウンタおよびクロック出力回路を有するクロック生成回路を設け、冗長化された演算部に搭載された水晶発振器の部品固体差とクロック周期ズレを互いに監視し、高速な原振クロックを分周してＭＰＵ動作クロックを生成し、多数決の結果により位相を同期化する。
【００１７】
このとき、複数個の演算部の内、１つに故障または異常が生じても、残りの正常な演算部の動作クロックの位相を同期した状態で保つことが可能である。従って、演算部の１故障が発生した場合でも、残りの正常な演算部によって、システムの冗長並列処理の停止や性能低下を起こすことなく処理継続が可能なため、高信頼性冗長システムを得ることができる。
【発明を実施するための最良の形態】
【００１８】
次に、発明の実施の形態について図面を参照して詳細に説明する。
【実施例１】
【００１９】
［構成の説明］
図１は、本発明の演算部が使用される冗長演算システムの一例を示す。この冗長システム１は、３つの演算部２，３，４と、インタフェース部５で構成されている。演算部２，３，４はインタフェース部５に接続される。演算部２，３，４で得られた演算結果はインタフェース部５の多数決回路部６で比較され、多数決結果により、外部機器７に外部Ｉ／Ｆ信号８を出力する。
【００２０】
演算部２，３，４の詳細な構成を図２に示す。図２において、演算部２，３，４は同一な回路構成、回路機能であり、クロック生成回路２１，３１，４１と、ＭＰＵ２２，３２，４２と、メモリ２３，３３，４３により構成されている。クロック生成回路２１，３１，４１も同構成であって、ＭＰＵ２２，３２，４２の動作クロック２４，３４，４４を生成する機能を有し、原振クロック２１５，３１５，４１５を発生する水晶発振器２１１，３１１，４１１と、クロックの同期状態を保つためにＮ回カウントを行う同期カウンタ２１３，３１３，４１３と、多数決回路２１２，３１２，４１２と、クロック出力回路２１４，３１４，４１４を含んだ構成である。以下、クロック生成回路２１について説明する。
【００２１】
水晶発振器２１１は、周波数Ｆの原振クロック２１５を発生して同期カウンタ２１３に供給している。同期カウンタ２１３は、水晶発振器２１１から入力する原振クロック２１５を繰り返しカウントして、１からＮまでのカウンタ値２１７をクロック出力回路２１４と多数決回路２１２へ出力する。
【００２２】
クロック出力回路２１４は、カウンタ値２１７がＮ／２のときに動作クロック２４を‘0’とし、カウンタ値２１７がＮのときに動作クロック２４を‘1’とする。この結果、周波数Ｆ／Ｎの動作クロック２４をＭＰＵ２２に供給することができる。
【００２３】
同期カウンタ２１３は、カウンタ値２１７が（Ｎ−４）のときカウント終了フラグ２１８として‘1’、カウンタ値２１７がＮのときカウント終了フラグ２１８として‘0’をそれぞれ出力する。カウント終了フラグ２１８は多数決回路２１２の他、クロック生成回路３１の多数決回路３１２およびクロック生成回路４１の多数決回路４１２にも供給される。
【００２４】
また、同期カウンタ２１３は、後述のように、カウンタ値２１７が（Ｎ−４）のとき多数決回路２１２から入力する多数決結果２１６により、‘1’が２つ以上ならカウンタ値２１７＝（Ｎ−２）とし、それ以外ならカウンタ値２１７＝（Ｎ−３）とする。
【００２５】
上述の説明から明らかなように、多数決回路２１２には、クロック生成回路３１の同期カウンタ３１３からカウント終了フラグ３１８と、クロック生成回路４１の同期カウンタ４１３からカウント終了フラグ４１８も供給される。多数決回路２１２は、同期カウンタ２１３から入力するカウンタ値２１７がＮ／２のときにカウント終了フラグ２１８，３１８，４１８（この３ビット列をカウント終了フラグ列という）をラッチする。そして、このときのカウント終了フラグ列を異常状態ラッチ１として保持する。
【００２６】
また、多数決回路２１２は、同期カウンタ２１３から入力するカウンタ値２１７が（Ｎ−２）のときに、カウント終了フラグ列をラッチし、これをビット反転し異常状態ラッチ２として保持する。
【００２７】
また、多数決回路２１２は、説明が前後するが、同期カウンタ２１３から入力するカウンタ値２１７が（Ｎ−４）のときに、入力するカウント終了フラグ列と、保持している異常状態ラッチ１と、保持している異常状態ラッチ２それぞれのビット対応に論理和演算する。この場合の異常状態ラッチ２は前サイクルにおけるものということになる。論理和演算の結果（カウント終了状態という）は多数決結果２１６として同期カウンタ２１３へ出力する。多数決結果２１６は、カウント終了状態において‘1’が２つ以上か否かを示す。
【００２８】
以上に説明した同期カウンタ２１３と多数決回路２１２とクロック出力回路２１４の関係は、図３を参照してする以下の時系列的な説明により明瞭なものとなる。
【００２９】
電源投入後、演算部２内の同期カウンタ２１３は、リセットされカウンタ値＝１（図３のＳ１）となり、水晶発振器２１１は原振クロック２１５を常に出力する。同期カウンタ２１３は、原振クロック２１５によりカウンタ値＝２（図３のＳ２）、３、４・・・Ｎとカウントアップする。また、カウント終了フラグ２１８は‘0’を初期値とする。
【００３０】
同期カウンタ２１３のカウンタ値２１７＝Ｎ／２（図３のＳ３）のとき、クロック出力回路２１４は動作クロック２４を‘0’とする（図３のＳ３−１）。また、多数決回路２１２は、カウント終了フラグ列を異常状態ラッチ１として保持する（図３のＳ３−２）。
【００３１】
この時、すべての演算部が正常であれば、カウント終了フラグ：“000”となり、異常状態ラッチ１：“000”をラッチした状態となる。カウント終了フラグ４１８，３１８，２１８に‘1’を出力している演算部は、異常ケースが発生していると判断でき、異常状態ラッチ１の該当ビットに‘1’がラッチされた状態となる。例えば、演算部２に異常が発生時、異常状態ラッチ１：“001”となる。同期カウンタ２１３のカウンタ値２１７＝（Ｎ−４）（図４のＳ４）のとき、カウント終了フラグ２１８＝‘1’を出力する（図３のＳ４−１）。
【００３２】
同時に、多数決回路２１２で、３ビットで示されるカウント終了状態のビットについて多数決処理し（図３のＳ４−２）、カウント終了状態３ビットの内、１ビット以下が‘1’の場合、カウンタ値２１７＝（Ｎ−３）へカウントアップする（図３のＳ５）。一方、カウント終了状態３ビットの内、２ビット以上が‘1’の場合、カウンタ値２１７＝（Ｎ−２）へ２カウントアップする（図３のＳ６）。
【００３３】
ここで、カウント終了状態とは、カウント終了フラグ列と異常状態ラッチ１（図３のＳ３−２）と異常状態ラッチ２（図３のＳ６−１）それぞれのビット対応について論理和演算した結果を意味する。例えば、カウント終了フラグ列が“100”、異常状態ラッチ１が“001”、異常状態ラッチ２が“000”なら、カウント終了状態は“101”となる。
【００３４】
このカウント終了フラグ２１８出力（図３のＳ４−１）と多数決処理（図３のＳ４−２）は、同時に行われるため、演算部２から出力するカウント終了フラグ２１８‘1’は、演算部２の多数決回路２１２の多数決処理（図３のＳ４−２）では反映されない。
【００３５】
従って、「カウント終了状態３ビットの内、２ビット以上が‘1’」とは、他の演算部３，４からカウント終了フラグ３１８，４１８が出力されている状態であり、同期カウンタ２１３が、他の同期カウンタ３１３，４１３より、１カウント遅れていることになる。  これは、水晶発振器２１１，３１１，４１１の部品固体差による原振クロック２１５，３１５，４１５の周波数（Ｆ２＜Ｆ３，Ｆ２＜Ｆ４）のズレによるものである。このズレを補正するため、「カウント終了状態３ビットの内、２ビット以上が‘1’」のとき、図３のＳ６において、２カウントアップ（カウンタ値：（Ｎ−４）→（Ｎ−２））している。
【００３６】
同期カウンタ２１３のカウンタ値２１７＝（Ｎ−３）（図３のＳ５）のとき、原振クロック２１５により（Ｎ−２）へカウントアップする。同期カウンタ２１３のカウンタ値２１７＝（Ｎ−２）（図３のＳ６）のとき、多数決回路２１２は、カウント終了フラグ列をビット反転させ異常状態ラッチ２として保持する（図３のＳ６−１）。
【００３７】
このとき、すべての演算部が正常であれば、カウント終了フラグ：“111”を反転させ、異常状態ラッチ２として“000”をラッチする。カウント終了フラグ４１８，３１８，２１８として‘0’を出力している演算部は、異常ケースが発生していると判断でき、異常状態ラッチ２の該当ビットに‘1’がラッチされる。例えば、演算部２に異常が発生しているときは、異常状態ラッチ２は“001”となる。
【００３８】
同期カウンタ２１３のカウンタ値２１７＝（Ｎ−１）（図３のＳ７）のとき、原振クロック２１５によりＮへカウントアップする。同期カウンタ２１３のカウンタ値２１７＝Ｎ（図３のＳ８）のとき、クロック出力回路２１４は、動作クロック２４を‘1’とする（図３のＳ８−１）。また、同時にカウント終了フラグ２１８＝‘0’を出力する（図３のＳ８−２）。
【００３９】
［動作の説明］
次に、本クロック生成回路の動作について、タイミングチャートを参照しながら場合に分けて説明する。なお、カウンタ値Ｎ＝１６とする。
【００４０】
（１）水晶発振器の固体差による周波数ズレ（図４）
図４は、原振クロックの位相が、２１５，３１５，４１５の順に進んでいる場合の演算部２，３，４それぞれにおける原振クロック，カウンタ値，カウント終了フラグ，カウント終了フラグ列，異常状態ラッチ１，異常状態ラッチ２，カウント終了状態，動作クロックの波形を示している。
【００４１】
図４のタイミングＡは、演算部４における同期カウンタ４１３のカウンタ値４１７＝（Ｎ−４）（図４のＳ４）の時点である。この時、演算部４のカウンタ値４１７は、図示のように他のカウンタ値２１７，３１７より遅れているため、他のカウント終了フラグ２１８，３１８が既に出力されている状態である。従って、演算部４のカウント終了状態は、“011”であり、多数決回路４１２は多数決結果（図３のＳ４−２において‘1’が２つ以上）により、カウンタ値４１７を２カウントアップ（１２→１４）していることが分かる。これは、他のカウンタ値より１カウント早く進めることにより、この遅れ（ズレ）を補正しているためである。タイミングＣ，Ｄでも同様である。
【００４２】
また、演算部３における同期カウンタ３１３のカウンタ値３１７＝（Ｎ−４）（図４のＳ４）の時点であるタイミングＢも、演算部３のカウンタ値３１７は、他のカウンタ値２１７，４１７より遅れているため、同様に補正している。カウンタ値４１７よりも遅れているのはタイミングＡにおける補正の結果による。
【００４３】
これらの補正を行う際に、動作クロック３４，４４のＬＯＷレベルの期間が、原振クロックの１クロック分短くなり、動作クロック２４，３４，４４間の位相ズレは、原振クロックの２クロックの範囲となる。補正の結果、得られる動作クロック２４，３４，４４は、以下の式を用いて表すことができる。
【００４４】
周波数 ＝ 原振クロック周波数 × カウンタ値Ｎ  （誤差：＋０％、−100/Ｎ％）
位相ズレ時間  ＝  原振クロックの２クロック分（２／Ｆ）以下
上記の２つの式より、高い精度の動作クロックを必要とする場合、カウンタ値Ｎを大きな値をとすることにより、動作クロックの周波数精度を上げること、また、原振クロックの周波数を高くすることにより、位相ズレ時間を小さくできることが容易に分かる。
【００４５】
（２）水晶発振器の故障による原振クロック停止（図５）
異常ケースとして以下の４つが想定される。
（ａ）水晶発振器故障（原振クロック停止）によるカウント終了フラグ出力不能
（ｂ）水晶発振器故障（原振クロック周波数異常）よるカウント終了フラグ出力タイミング異常
（ｃ）同期カウンタ故障によるカウント終了フラグ出力不能及び出力タイミング異常
（ｄ）多数決回路故障によるカウント終了フラグ出力不能及び出力タイミング異常
図５は、演算部４の水晶発振器４１１の故障により、原振クロック４１５が停止した異常ケース（ａ）において、演算部２，３，４それぞれにおける原振クロック，カウンタ値，カウント終了フラグ，カウント終了フラグ列，異常状態ラッチ１，異常状態ラッチ２，カウント終了状態，動作クロックの波形を示している。
【００４６】
図５のタイミングＥ（カウンタ値“15”）で原振クロック４１５が停止し、それ以降は出力されていない。従って、カウンタ値４１７が“16”になることがないため、タイミングＥ以降ではカウント終了フラグ４１８は“1”を維持する。動作クロック４４が‘1’となることもない。この結果、演算部３における同期カウンタ３１３のカウンタ値３１７＝Ｎ／２（図３のＳ３）となる時点であるタイミングＦにおいて、多数決回路３１２は、
カウント終了フラグ列の状態“100”を異常状態ラッチ１：“100”としてラッチする（図３のＳ３−２）。また、やや遅れて演算部２の多数決回路２１２も異常状態ラッチ１：“100”としてラッチする（図３のＳ３−２）。ここで、異常状態ラッチ１：“100”は、演算部４の異常を検知したことを示している。
【００４７】
異常検知以降、演算部２における同期カウンタ２１３のカウンタ値２１７＝（Ｎ−４）（図４のＳ４）の時点であるタイミングＧでは、演算部２のカウンタ値２１７は、演算部３のカウンタ値３１７より遅れているため、演算部３のカウント終了フラグ３１８は既に出力されている状態にある。このときの演算部２のカウント終了状態は、“110”であり、多数決回路２１２の多数決結果（図３のＳ４−２において‘1’が２つ以上）により、カウンタ値２１７を２カウントアップ（１２→１４）し遅れ（ズレ）を補正していることを示している。
【００４８】
このときの演算部２の異常状態ラッチ１，異常状態ラッチ２およびカウント終了状態と、演算部２，演算部３，演算部４のカウント終了フラグを下表に示す。
【００４９】
【表１】
2008176578.tif 000003
【００５０】
また、演算部３における同期カウンタ３１３のカウンタ値３１７＝（Ｎ−４）（図４のＳ４）の時点であるタイミングＨでも、同様に、演算部３のカウンタ値３１７は、演算部２のカウンタ値２１７より遅れているため、補正している状態である。このように、演算部４の原振クロック４１５が停止したことを検知した後は、演算部４をズレの補正対象としないことで、演算部２，３の動作クロック２４，３４の位相同期が可能である。
【００５１】
（３）水晶発振器の故障による原振クロックの周波数低下（図６）
図６は、演算部４の水晶発振器４１１の故障により、原振クロック４１５の周波数が低下した異常ケース（ｂ）において、演算部２，３，４それぞれにおける原振クロック，カウンタ値，カウント終了フラグ，カウント終了フラグ列，異常状態ラッチ１，異常状態ラッチ２，カウント終了状態，動作クロックの波形を示している。
【００５２】
図６のタイミングＩで原振クロック４１５の周波数が低下している。演算部３における同期カウンタ３１３のカウンタ値３１７＝（Ｎ−２）（図３のＳ６）となるタイミングＪのとき多数決回路３１２、やや遅れて演算部２の多数決回路２１２は、カウント終了フラグ列“011”をビット反転させ異常状態ラッチ２：“100”を保持する（図３のＳ６−１）。ここで、異常状態ラッチ２：“100”は、演算部４の異常を検知したことを示している。
【００５３】
異常検知以降、演算部３における同期カウンタ３１３のカウンタ値３１７＝（Ｎ−４）（図４のＳ４）の時点であるタイミングＫのとき、演算部３のカウンタ値３１７は、演算部２のカウンタ値２１７より遅れているため、演算部２のカウント終了フラグ２１８が既に出力されている状態である。このときの演算部３のカウント終了状態は、下表に示すように、“101”であり、多数決回路３１２の多数決結果（図３のＳ４−２、‘1’が２つ以上）により、カウンタ値３１７を２カウントアップ（１２→１４）し遅れ（ズレ）を補正していることを示している。
【００５４】
【表２】
2008176578.tif 000004
【００５５】
演算部４の周波数異常を検知した後、演算部４をズレの補正対象としないことで、演算部２，３の動作クロック２４，３４の位相同期が可能である。異常ケース（ｃ）（ｄ）についても同様の動作を行い動作クロック２４，３４の位相同期が可能である。
【００５６】
以上、上記動作を各演算部２，３，４のクロック生成回路２１、３１、４１が行うことにより、各演算部内で使用しているＭＰＵへの動作クロック２４，３４，４４の位相を同期することができ、演算部で実施するシステムの冗長並列処理の処理ステップを同期することが可能である。また、演算部２，３，４の内、１つが故障した場合でも、残りの演算部でシステムの冗長並列処理を継続して行うことが可能である。
【実施例２】
【００５７】
本発明の実施例２は、その基本的原理は実施例１と変わりがないが、原振クロックの生成方法、動作クロックの出力方法についてさらに工夫し、また、冗長構成数を増やすことで、更なる高信頼度化を得ることを可能としている。
【００５８】
その構成を図７に示す。本図において、ＰＬＬ２１９は、水晶発振器２１１より出力されるクロック（周波数：ｆ）をＭ倍し、原振クロック２１５（周波数：Ｍｆ）を得ることが可能である。また、ＰＬＬ２２０は、クロック出力回路２１４より出力される分周クロック（周波数：Ｍｆ/Ｎ）をＬ倍し、動作クロック２４（周波数：ＬＭｆ/Ｎ）を得ることができる。この２つのＰＬＬ２１９，２２０によって、水晶発振器２１１より出力される比較的低周波数のクロックから、動作クロック２４を容易に得ることを可能としている。
【００５９】
例えば、同期カウンタ２１３（Ｎ＝100カウント）より動作クロック２４（１０ＭＨｚ）を得る場合、Ｍ＝１０のＰＬＬ２１９を使用して、水晶発振器２１１（周波数：１０ＭＨｚ）から、１００ＭＨｚの原振クロック２１５を生成する。同期カウンタ２１３は、１００ＭＨｚ×１００カウントし、クロック出力回路２１４は１ＭＨｚの分周クロックを生成する。この分周クロックをＰＬＬ２２０により１０倍し、１０ＭＨｚの動作クロック２４を容易に得ることが可能である。
【００６０】
ＰＬＬを使用しない場合、水晶発振器２１１の原振クロック２１５（周波数：１ＧＨｚ）×１００カウントし、１０ＭＨｚの動作クロック２４を得ることとなる。これに対して、上述のように、低周波数クロックより、同様の動作クロックを得られることは、ノイズ対策として有効であり、また、回路設計を容易にしていると言える。
【００６１】
図７の実施例では、演算部２，３，４，５，６の冗長構成：５としている。これにより、多数決方法を３／５にすることで、演算部の２故障まで対応可能な高信頼性冗長システムを構成している。さらに、冗長構成：７とすれば、多数決方法を４／７とすることで、３故障まで対応可能なことは、明白である。
【産業上の利用可能性】
【００６２】
本発明の活用例として、高信頼性が要求される宇宙搭載機器を挙げることができる。
【図面の簡単な説明】
【００６３】
【図１】本発明の演算部が使用される冗長演算システムの一例を示すブロック図
【図２】本発明の演算部の実施例１を示すブロック図
【図３】図１の演算部の構成要素の時系列的な関係を示す図
【図４】本発明の動作を説明するための第１のタイミングチャート
【図５】本発明の動作を説明するための第２のタイミングチャート
【図６】本発明の動作を説明するための第３のタイミングチャート
【図７】本発明の演算部の実施例２を示すブロック図
【図８】従来例１の冗長演算システムを示すブロック図
【図９】従来例２の冗長演算システムを示すブロック図
【図１０】従来例３の冗長演算システムを示すブロック図
【符号の説明】
【００６４】
１                      冗長演算システム
２〜４                  演算部
５                      インタフェース部
６                      多数決回路
７                      外部機器
８                      外部Ｉ／Ｆ信号
２１，３１，４１        クロック生成回路
２２，３２，４２        ＭＰＵ
２３，３３，４３        メモリ
２１１，３１１，４１１  水晶発振器
２１２，３１２，４１２  多数決回路
２１３，３１３，４１３  同期カウンタ
２１４，３１４，４１４クロック出力回路
２１５，３１５，４１５  原振クロック
２１６，３１６，４１６多数決結果
２１７，３１７，４１７  カウンタ値
２１８，３１８，４１８  カウント終了フラグ
２１９，２２０          ＰＬＬ
【図１】
2008176578.tif 000005
【図２】
2008176578.tif 000006
【図３】
2008176578.tif 000007
【図４】
2008176578.tif 000008
【図５】
2008176578.tif 000009
【図６】
2008176578.tif 000010
【図７】
2008176578.tif 000011
【図８】
2008176578.tif 000012
【図９】
2008176578.tif 000013
【図１０】
2008176578.tif 000014