(57)【特許請求の範囲】
【請求項１】
処理内容を記憶した第１の記憶手段と、
上記第１の記憶手段と同一の処理内容を記憶した第２の記憶手段と、
処理結果を記憶する第３の記憶手段と、
上記第１の記憶手段に記憶されたプログラムを所定の単位で演算処理し、その処理結果を上記第１の記憶手段に書き込むと共に、その処理結果および上記プログラムの所定の単位毎に付された処理番号と上記プログラムの繰り返し回数である世代番号を上記第３の記憶手段に書き込む第１の中央処理装置と、
上記第２の記憶手段に記憶されたプログラムを所定の単位で演算処理し、その処理結果を上記第２の記憶手段に書き込むと共に、その処理結果および上記処理番号と上記世代番号を上記第３の記憶手段に書き込む第２の中央処理装置とを備え、
上記第１および上記第２の中央処理装置は、上記第３の記憶手段に同一の処理番号と世代番号とを有する２つの処理結果が記憶されるまで待ち合わせを行った後に、それら２つの処理結果を読み出して比較照合することを特徴とするフェールセーフコンピュータシステム。
【請求項２】
第１および第２の中央処理装置は、互いに異なる周波数の動作クロックに同期して動作することを特徴とする請求項１記載のフェールセーフコンピュータシステム。
【請求項３】
第１および第２の中央処理装置は、互いに異なる機種から構成され、第１および第２の記憶手段は、互いに同一の処理内容を異なる処理命令で記憶したことを特徴とする請求項１記載のフェールセーフコンピュータシステム。
【請求項４】
第１および第２の中央処理装置は、処理番号と世代番号とが同一になるまでの待ち合わせにおいて、待ち合わせ処理回数に上限値を設け、上記待ち合わせ処理回数が上記上限値を超えた場合にプログラムを停止することを特徴とする請求項１記載のフェールセーフコンピュータシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、対をなす２つのＣＰＵを有し、並行して演算処理すると共に、それらの処理結果を相互に比較することにより、信頼性の高い処理結果を得るようにしたフェールセーフコンピュータシステムに関するものである。
【０００２】
【従来の技術】
図５は従来のフェールセーフコンピュータシステムを示す構成図であり、図において、１はプログラムおよびデータを記憶したＲＯＭ／ＲＡＭ、２はＲＯＭ／ＲＡＭ１と同一のプログラムおよびデータを記憶したＲＯＭ／ＲＡＭ、３，４はアドレスおよびデータ等のバスである。
５はＲＯＭ／ＲＡＭ１に記憶されたプログラムに基づいて演算処理し、その処理結果をＲＯＭ／ＲＡＭ１に書き込むＣＰＵ、６はＲＯＭ／ＲＡＭ２に記憶されたプログラムに基づいて演算処理し、その処理結果をＲＯＭ／ＲＡＭ２に書き込むＣＰＵ、７はＣＰＵ５およびＣＰＵ６の２つの処理結果を比較照合する比較回路である。
【０００３】
次に動作について説明する。
図５は２つのＣＰＵ５，６を動作クロックレベルでバス同期させて動作させ、各ＣＰＵ５，６のマシンサイクルでそれぞれのＣＰＵ５，６のバス入出力をハード的な比較回路７で常時比較し、故障の監視を行うフェールセーフコンピュータシステムである。
このようなコンピュータシステムにおいて、ＣＰＵ５とＣＰＵ６は、動作クロックレベルで完全に同期して演算処理を行っており、マシンサイクルにおけるバスデータを各サイクル毎に比較回路７で比較照合することによって、健全性の診断を行っており、照合結果が一致しなかった場合は、コンピュータシステムを停止させることで安全性を実現している。
なお、従来の技術に近似した文献としては、特開平５−１８９３２５号公報に示されたフェールセーフコンピュータシステムがあり、その文献には、２つのＣＰＵをバス同期させて照合回路により比較照合するものについて開示している。
【０００４】
【発明が解決しようとする課題】
従来のフェールセーフコンピュータシステムは以上のように構成されているので、２つのＣＰＵ５，６を完全に動作クロックに同期させて動作させた上で、その動作クロックに同期して比較回路７を動作させる必要があった。
このため、高速な演算処理を実現するために、高速なＣＰＵ５，６を用いて、バス３，４のビット数を多くしたり、動作クロックの周波数を高くしようとすると、動作クロックやバス３，４のデータの乱れによって、２つのＣＰＵ５，６と比較回路７の同期をとることが困難となり、正常または故障の監視が不能になり、その結果、高速な演算処理を行うことができないなどの課題があった。
【０００５】
この発明は上記のような課題を解決するためになされたもので、ハードウエアの同期に制約を受けずに故障を監視することができ、その結果、高速な演算処理を行うことができるフェールセーフコンピュータシステムを得ることを目的とする。
【０００６】
【課題を解決するための手段】
この発明に係るフェールセーフコンピュータシステムは、第１の記憶手段に記憶されたプログラムを所定の単位で演算処理し、その処理結果を第１の記憶手段に書き込むと共に、その処理結果およびプログラムの所定の単位毎に付された処理番号と上記プログラムの繰り返し回数である世代番号を第３の記憶手段に書き込む第１の中央処理装置と、第２の記憶手段に記憶されたプログラムを所定の単位で演算処理し、その処理結果を第２の記憶手段に書き込むと共に、その処理結果および処理番号と世代番号を第３の記憶手段に書き込む第２の中央処理装置とを備え、第１および第２の中央処理装置は、第３の記憶手段に同一の処理番号と世代番号とを有する２つの処理結果が記憶されるまで待ち合わせを行った後に、それら２つの処理結果を読み出して比較照合するものである。
【０００７】
この発明に係るフェールセーフコンピュータシステムは、第１および第２の中央処理装置が、互いに異なる周波数の動作クロックに同期して動作するようにしたものである。
【０００８】
この発明に係るフェールセーフコンピュータシステムは、第１および第２の中央処理装置が、互いに異なる機種から構成され、第１および第２の記憶手段は、互いに同一の処理内容を異なる処理命令で記憶するようにしたものである。
この発明に係るフェールセーフコンピュータシステムは、第１および第２の中央処理装置は、処理番号と世代番号とが同一になるまでの待ち合わせにおいて、待ち合わせ処理回数に上限値を設け、上記待ち合わせ処理回数が上記上限値を超えた場合にプログラムを停止するものである。
【０００９】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるフェールセーフコンピュータシステムを示す構成図であり、図において、１はプログラムおよびデータを記憶したＲＯＭ／ＲＡＭ（第１の記憶手段）、２はＲＯＭ／ＲＡＭ１と同一のプログラムおよびデータを記憶したＲＯＭ／ＲＡＭ（第２の記憶手段）、３，４はアドレスおよびデータ等のバスである。
１１は処理結果を記憶するメモリ（第３の記憶手段）、１２はＲＯＭ／ＲＡＭ１に記憶されたプログラムに基づいて演算処理し、その処理結果をＲＯＭ／ＲＡＭ１に書き込むと共に、その処理結果およびその処理内容に応じた処理番号および世代番号をメモリ１１に書き込むＣＰＵ（第１の中央処理装置）、１３はＲＯＭ／ＲＡＭ２のプログラムに基づいて演算処理し、その処理結果をＲＯＭ／ＲＡＭ２に書き込むと共に、その処理結果およびその処理内容に応じた処理番号および世代番号をメモリ１１に書き込むＣＰＵ（第２の中央処理装置）である。
また、ＣＰＵ１２，１３は、メモリ１１に同一の処理番号および世代番号を有する２つの処理結果が記憶された場合に、それら２つの処理結果を読み出して比較照合して、正常または故障を監視するものである。
【００１０】
次に動作について説明する。
図２は２つのＣＰＵで実行される処理内容を示すフローチャート、図３はメモリに書き込まれるデータを示す概念図、図４は２つのＣＰＵで実行される照合処理の詳細を示すフローチャートであり、これら図２から図４と上記図１を参照しながら説明する。
図１において、ＣＰＵ１２は、ＲＯＭ／ＲＡＭ１に記憶されたプログラムを所定の単位でバス３を通じて読み出し、その読み出したプログラムに基づいて演算処理し、その処理結果をバス３を通じてＲＯＭ／ＲＡＭ１に書き込むと共に、メモリ１１に書き込む（ステップＳＴ１）。また、ＣＰＵ１３もＣＰＵ１２と並行して演算処理しており、ＲＯＭ／ＲＡＭ２に記憶されたプログラムを所定の単位でバス４を通じて読み出し、その読み出したプログラムに基づいて演算処理し、その処理結果をバス４を通じてＲＯＭ／ＲＡＭ２に書き込むと共に、メモリ１１に書き込む（ステップＳＴ１）。
その後、ＣＰＵ１２，１３はともに、メモリ１１からそれら２つの処理結果を読み出して照合処理する（ステップＳＴ２）。ここでＣＰＵ１２，１３は伴に、２つの処理結果が同一であり正常であると判定した場合には、次の演算処理を行い（ステップＳＴ３）、また、少なくともどちらか一方のＣＰＵ１２，１３が２つの処理結果に不一致があり故障であると判定した場合には、プログラム処理を停止する（ステップＳＴＺ）。
以下、ステップＳＴ３からステップＳＴＮ＋１まで、プログラムを所定の単位で演算処理し、その処理結果の一致または不一致を判定して、正常であると判定した場合には、ステップＳＴ１に戻り、同様の演算処理を繰返すことによって、コンピュータシステムの機能を実現することができる。
【００１１】
図３はこの時にメモリ１１に書き込まれる処理番号、世代番号、および処理結果のデータの概念を示したものである。図３において、上側はＣＰＵ１２の演算処理（ステップＳＴ１）によって書き込まれた処理番号、世代番号、および処理結果のブロック、下側はＣＰＵ１３の演算処理（ステップＳＴ１）によって書き込まれた処理番号、世代番号、および処理結果のブロックである。このように、ＣＰＵ１２，１３は、プログラムを所定の単位で演算処理する毎に、メモリ１１にブロック毎に処理番号、世代番号、および処理結果を書き込む。
ここで、処理番号とは、プログラムの所定の単位毎に付された固有番号である。また、世代番号とは、図２に示したフローチャートにおけるステップＳＴ１からステップＳＴＮ＋１までの一連の繰り返し回数に相当するものであり、繰り返し回数が増加する毎に世代番号が増加するものである。さらに、処理結果とは、ＣＰＵ１２，１３により、プログラムを所定の単位で演算処理した場合における結果のデータである。
【００１２】
図４は２つのＣＰＵ１２，１３によるメモリ１１への処理番号、世代番号、および処理結果の書き込み処理、およびそれら処理番号、世代番号、および処理結果の照合処理の詳細を示したものである。
図において、ＣＰＵ１２は、処理結果と共にその処理番号をメモリ１１に図３のように書き込む（ステップＳＴ１１）。次に、ＣＰＵ１２は、１つ増加させた世代番号をメモリ１１に図３のように書き込む（ステップＳＴ１２）。次に、ＣＰＵ１２は、自らが書込んだ世代番号とＣＰＵ１３が書込んだ世代番号とをメモリ１１から読み出し（ステップＳＴ２１）、比較を行う（ステップＳＴ２２）。ここで、比較が一致した場合、次のステップＳＴ２３に進み、比較が不一致である場合には、ステップＳＴ１２に戻る。
同様に、ＣＰＵ１３は、処理結果と共にその処理番号をメモリ１１に図３のように書き込み（ステップＳＴ１１）、１つ増加させた世代番号をメモリ１１に図３のように書き込む（ステップＳＴ１２）。次に、ＣＰＵ１３は、自らが書込んだ世代番号とＣＰＵ１２が書込んだ世代番号とをメモリ１１から読み出し（ステップＳＴ２１）、比較を行う（ステップＳＴ２２）。比較が一致した場合、次のステップＳＴ２３に進み、比較が不一致である場合には、ステップＳＴ１２に戻る。
この結果、ステップＳＴ２２において、ＣＰＵ１２とＣＰＵ１３の演算処理の待ち合わせが行われる。
次に、ＣＰＵ１２，１３は、両者が書き込んだ処理番号をメモリ１１から読み出し（ステップＳＴ２３）、比較を行う（ステップＳＴ２４）。比較が一致した場合、ステップＳＴ２５へ進む。不一致である場合には、ステップＳＴＺへ進み、プログラム処理を停止する。
最後に、ＣＰＵ１２，１３は、両者が書き込んだ処理結果をメモリ１１から読み出し（ステップＳＴ２５）、比較を行う（ステップＳＴ２６）。比較が一致した場合、比較処理が終了する。不一致である場合には、ステップＳＴＺへ進み、プログラム処理を停止する。
【００１３】
なお、図４に示したフローチャートにおいて、ステップＳＴ２２で不一致であった場合には、ステップＳＴ２１に戻るようにしても良く、同様な効果が得られる。
【００１４】
また、演算処理に付せられた固有番号を処理番号としてメモリ１１に書き込むようにしたが、予め演算処理毎に固有の世代番号を設けることによって、図４のフローチャートにおけるステップＳＴ２３、ステップＳＴ２４の処理を省略するようにしても良い。
【００１５】
さらに、図４に示したフローチャートにおいて、ステップＳＴ２２からステップＳＴ１２へ戻る回数に上限値を設け、その上限値を超えた場合にはプログラム処理を停止するようにしても良く、これによって、ＣＰＵ１２またはＣＰＵ１３の過度な待ち時間や演算処理の遅れを検出することもできる。
【００１６】
さらに、ＣＰＵ１２，１３を互いに異なる周波数の動作クロックに同期して動作させ、ＣＰＵ１２，１３の演算処理の進み具合を異なるようにしても良い。
これによって、ＣＰＵ１２，１３が同一の動作クロックに同期して動作する場合には、同一の演算処理の時点でノイズが加わり、同じ演算誤りをして、誤った２つの処理結果の比較照合において正常と判定してしまうことも考えられるが、ＣＰＵ１２，１３が互いに異なる周波数の動作クロックに同期して動作するので、演算処理の進み具合が異なり、同時に同一のノイズが加わっても、同じ演算誤りをすることなく、その演算誤りを比較照合において故障と判定することができ、フェールセーフコンピュータシステムの信頼性を高めることができる。
【００１７】
さらに、ＣＰＵ１２，１３に互いに異なる機種を用い、ＲＯＭ／ＲＡＭ１，２に互いに同一の処理内容を異なるＣＰＵ命令処理（処理命令）で記憶させ、それらＣＰＵ命令処理でＣＰＵ１２，１３を実行させるようにしても良い。
これによって、ＣＰＵ１２，１３が同一のＣＰＵ命令処理で動作する場合には、同時に同一のノイズが加わり、同じ演算誤りをして、誤った２つの処理結果の比較照合において正常と判定してしまうことも考えられるが、ＣＰＵ１２，１３が互いに異なるＣＰＵ命令処理で動作するので、同時に同一のノイズが加わっても、同じ演算誤りをすることなく、その演算誤りを比較照合において故障と判定することができ、フェールセーフコンピュータシステムの信頼性を高めることができる。
【００１８】
さらに、プログラムをオペレーティングシステムの基で動作させ、時分割で複数のプログラムを動作させ、それぞれのプログラムにおいて図２に示した演算処理を行うようにしても良い。
これによって、図２のフローチャートにおいて、分岐処理等を含むより複雑な演算処理をＣＰＵ１２，１３に行わせると共に、ＣＰＵ１２，１３の演算処理の結果を正しく比較することができる。
【００１９】
以上のように、この実施の形態１によれば、ＣＰＵ１２，１３からの処理結果がメモリ１１に記憶されるまで待ってから、それらＣＰＵ１２，１３の双方において２つの処理結果を比較照合することができ、高速に動作するＣＰＵ１２，１３を用いた場合でも、それらハードウエアの同期に制約を受けずに故障を監視することができ、その結果、高速な演算処理を行うことができる。
【００２０】
【発明の効果】
以上のように、この発明によれば、第１の記憶手段に記憶された処理内容に基づいて演算処理し、その処理結果を第１の記憶手段に書き込むと共に、その処理結果およびその処理内容に応じた照合識別子を第３の記憶手段に書き込む第１の中央処理装置と、第２の記憶手段に記憶された処理内容に基づいて演算処理し、その処理結果を第２の記憶手段に書き込むと共に、その処理結果およびその処理内容に応じた照合識別子を第３の記憶手段に書き込む第２の中央処理装置とを備え、第１および第２の中央処理装置は、第３の記憶手段に同一照合識別子を有する２つの処理結果が記憶された場合に、それら２つの処理結果を読み出して比較照合するように構成したので、第１および第２の中央処理装置からの処理結果が第３の記憶手段に記憶されるまで待ってから、それら第１および第２の中央処理装置の双方において２つの処理結果を比較照合することができ、高速に動作する第１および第２の中央処理装置を用いた場合でも、それらハードウエアの同期に制約を受けずに故障を監視することができ、その結果、高速な演算処理を行うことができる効果がある。
【００２１】
また、この発明によれば、第１および第２の中央処理装置が、互いに異なる周波数の動作クロックに同期して動作するように構成したので、第１および第２の中央処理装置が同一の動作クロックに同期して動作する場合には、同時に同一のノイズが加わり、同じ演算誤りをして、誤った２つの処理結果の比較照合において正常と判定してしまうことも考えられるが、第１および第２の中央処理装置が互いに異なる周波数の動作クロックに同期して動作するので、同時に同一のノイズが加わっても、同じ演算誤りをすることなく、その演算誤りを比較照合において故障と判定することができ、フェールセーフコンピュータシステムの信頼性を高めることができる効果がある。
【００２２】
さらに、この発明によれば、第１および第２の中央処理装置が、互いに異なる機種から構成され、第１および第２の記憶手段は、互いに同一の処理内容を異なる処理命令で記憶するように構成したので、第１および第２の中央処理装置が同一の処理命令で動作する場合には、同時に同一のノイズが加わり、同じ演算誤りをして、誤った２つの処理結果の比較照合において正常と判定してしまうことも考えられるが、第１および第２の中央処理装置が互いに異なる処理命令で動作するので、同時に同一のノイズが加わっても、同じ演算誤りをすることなく、その演算誤りを比較照合において故障と判定することができ、フェールセーフコンピュータシステムの信頼性を高めることができる効果がある。
【図面の簡単な説明】
【図１】  この発明の実施の形態１によるフェールセーフコンピュータシステムを示す構成図である。
【図２】  ２つのＣＰＵで実行される処理内容を示すフローチャートである。
【図３】  メモリに書き込まれるデータを示す概念図である。
【図４】  ２つのＣＰＵで実行される照合処理の詳細を示すフローチャートである。
【図５】  従来のフェールセーフコンピュータシステムを示す構成図である。
【符号の説明】
１  ＲＯＭ／ＲＡＭ（第１の記憶手段）、２  ＲＯＭ／ＲＡＭ（第２の記憶手段）、３，４  バス、１１  メモリ（第３の記憶手段）、１２  ＣＰＵ（第１の中央処理装置）、１３  ＣＰＵ（第２の中央処理装置）。
【図１】
0004137387.tif 000002
【図２】
0004137387.tif 000003
【図３】
0004137387.tif 000004
【図４】
0004137387.tif 000005
【図５】
0004137387.tif 000006