JP2006309639A - コンピュータ異常検知回路およびコンピュータ異常検知方法 - Google Patents
コンピュータ異常検知回路およびコンピュータ異常検知方法 Download PDFInfo
- Publication number
- JP2006309639A JP2006309639A JP2005133916A JP2005133916A JP2006309639A JP 2006309639 A JP2006309639 A JP 2006309639A JP 2005133916 A JP2005133916 A JP 2005133916A JP 2005133916 A JP2005133916 A JP 2005133916A JP 2006309639 A JP2006309639 A JP 2006309639A
- Authority
- JP
- Japan
- Prior art keywords
- value
- computer
- output
- cpu
- abnormality detection
- 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.)
- Pending
Links
Images
Landscapes
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
【課題】従来、コンピュータの動作異常を検出するため、2台一組のコンピュータを接続し、ウォッチドッグパルスを用いて相互に監視し合う装置がある。この構成では、ハード、ソフト両面で規模が大きくなり、コスト高であった。本発明は、簡素な構成で安価なコンピュータ異常検知回路および検知方法の開発を目的とした。
【解決手段】使用コンピュータは1台とし、このコンピュータで初期値となるランダムな値を生成し、この初期値に対してコンピュータの有する演算機能を用いて、演算結果が初期値と同じ値となるように異なる種類の一連の演算処理を行う。もし、異常があれば演算処理の結果が初期値と同じにならないため、初期値と演算結果とを比較することによりコンピュータの異常を検知する回路とした。
【選択図】図2
【解決手段】使用コンピュータは1台とし、このコンピュータで初期値となるランダムな値を生成し、この初期値に対してコンピュータの有する演算機能を用いて、演算結果が初期値と同じ値となるように異なる種類の一連の演算処理を行う。もし、異常があれば演算処理の結果が初期値と同じにならないため、初期値と演算結果とを比較することによりコンピュータの異常を検知する回路とした。
【選択図】図2
Description
本発明はコンピュータの動作異常検知回路および動作異常検知方法に係る。特に所定の時間間隔ごとにコンピュータの状態監視用パルスを用いてコンピュータの動作異常を検知する回路および方法に係る。
コンピュータ(以下、CPUと略記)の動作異常を検出する監視装置として、ウォッチドッグパルスと呼ばれるCPUの動作状態監視用のパルスを用いる装置が用いられている。このウォッチドッグパルスとは下記特許文献1に記載されているように、一対のCPUを用い、それぞれのCPUが所定のタイミングで発するウォッチドッグパルスを相互に監視し合うように接続し、それぞれのループ処理プログラム途中の所定のステップにおいてループタイムが経過したことを判定する制御情報、すなわちウォッチドッグパルスの授受を行う。この判定時点で、例えばサーバー側のCPUが発したウォッチドッグパルスとクライアント側のCPUが発するウォッチドッグパルスとが規定時間内に極性(論理値)が一致しない場合はクライアント側のCPUが暴走していると判定し、自らのCPU(サーバー側)のループ処理を停止する方法で相互監視を行うための回路がある。
上記の従来技術においては、対象であるCPUの動作状態の異常検知用としてさらに1台のCPUを設置し、動作異常を予め定められたタイミングでこれら2台のCPU間で相互に制御情報の授受を行うことにより相互監視を行う構成としている。このため、2台で構成することが要求されるため、ハードウェア、ソフトウェア両面でコスト高となり、演算処理の点でもソフトウェア面での負担が大きくなる問題があった。
本発明においては、上記問題点を解決し、1台のCPUと安価な外部回路とを用いるのみでCPU異常検知回路および異常検知方法を実現することを目的とした。
本発明においては、上記問題点を解決し、1台のCPUと安価な外部回路とを用いるのみでCPU異常検知回路および異常検知方法を実現することを目的とした。
前記目的を達成するために本発明による回路においては、監視対象であるCPUと、このCPUにおいて予め定められた演算処理を行うことで得られた演算結果からCPUが正常か否かを判定する外部比較器とを基本要素として構成している。このCPUにおいては、CPU監視用のランダムな値Aを発生し、この値AをCPUのメモリ部に記憶しておく。一方、このランダムな値Aを初期値としてCPUが有する演算機能を用いて、CPUが正常であれば、演算結果が初期値である値Aに等しくなるように予め定められた手順で異なる種類の演算を実行し、演算処理完了後に演算結果の値Bとメモリに記憶しておいた初期値である値Aとを出力手段を介してそれぞれ出力する。外部比較器においては、簡単なハードウェアでこれら値Aと値Bとを比較し、比較出力の極性(論理値)から値Aと値Bとの一致を判定する。これら値が等しい場合は,CPUは正常に動作していると判定し、異なる場合はCPUに異常が発生していると判定してCPU異常検知信号を出力し、CPUの動作を停止させる。
本発明によれば、1台のCPUでランダムに発生させ記憶している値Aと、異なる種類の演算を予め定められた手順で実行し、これにより得られた演算結果と前記の値Aとを安価な外部比較器を用いて比較する構成としたため、CPUは1台で済み、従来のように2台1組で使用することは不要となり、回路構成を単純化することが出来た。また、CPUが1台で済むため相互監視用のソフトウェアも単純化されコスト減を実現することが出来た。
以下図により本発明の構成を説明する。
(実施の形態1)
図1(a)に本発明によるCPU異常検知回路のブロック図を示す。図1(b)はCPUが正常に動作している場合の信号の流れを示しており、図1(c)は異常が発生した場合の信号の流れを示している。
(実施の形態1)
図1(a)に本発明によるCPU異常検知回路のブロック図を示す。図1(b)はCPUが正常に動作している場合の信号の流れを示しており、図1(c)は異常が発生した場合の信号の流れを示している。
本発明によるCPU異常検知回路は図1(a)に示すようにCPU101と外部比較器102とを基本要素として構成されている。
CPU101は、異常検知テストを行うためのランダムな値Aを設定する設定手段であるテストデータ設定部103と、このランダムな値である値Aを記憶しておくメモリ部104と、ランダムな値である値Aを初期値として予め定められた一連の演算を実行し、演算結果が値Aと等しくなるような値Bを出力する演算手段である演算処理部105と、さらにメモリ部104に記憶されている値AをCPU101から出力する第1の出力手段109と、値BをCPU101から出力する第2の出力手段110で構成されている。この演算処理としてはCPUが有する各種演算機能(加算、減算、乗算、除算、右シフト、左シフト等の全てまたは何れか)を適用して実行される。
CPU101は、異常検知テストを行うためのランダムな値Aを設定する設定手段であるテストデータ設定部103と、このランダムな値である値Aを記憶しておくメモリ部104と、ランダムな値である値Aを初期値として予め定められた一連の演算を実行し、演算結果が値Aと等しくなるような値Bを出力する演算手段である演算処理部105と、さらにメモリ部104に記憶されている値AをCPU101から出力する第1の出力手段109と、値BをCPU101から出力する第2の出力手段110で構成されている。この演算処理としてはCPUが有する各種演算機能(加算、減算、乗算、除算、右シフト、左シフト等の全てまたは何れか)を適用して実行される。
外部比較手段である外部比較器102は、CPU101の出力でメモリ部104に記憶されている値Aと、演算結果である値Bとの一致の判定すなわち異常判定を行う比較部106と、この比較部106の出力である比較結果からCPU101の動作異常により演算処理に演算ミスが発生したか否かを判定する判定手段である判定部107と、異常発生の場合の信号を出力する第3の出力手段である異常信号検知出力部108とを基本構成としている。
すなわち、前記「特許文献1」においては1対のCPUが互いに所定のタイミングで所定のパターン(ウォッチドッグパルス)の授受を行うことによりCPUの状態を監視していたが、本発明においては監視対象のCPU1台で、値Aの設定と値Bの算出とを行い、これら両値の比較を全て1台のCPUで行うためCPU異常検知回路の構成が簡素になり、これにより制御ソフトも単純化される効果がある。
図1(b)は図1(a)においてCPU101が正常に動作している場合の信号の経路を示している。すなわち、CPU101の出力である値Aと値BとはCPU101の第1および第2の出力手段を経由してそれぞれ比較部106に入力され、ここでこれら両値は比較される。図1(b)の例においてはCPU101が正常に動作している場合であるから値A=値B=“1110(10進数で14)”である。比較された結果は判定部107でCPU101の異常の有無が判定される。図1(b)の例では、値Aと値Bとが一致した場合であるから、判定部107出力は演算ミスがない場合(判定部107;NO)であり、値Aを設定する最初のステップである入力手段であるテストデータ設定部103に戻り、次の異常検知処理の開始を待つ。
図1(c)は値Aと値Bとが一致しない場合、すなわち演算ミスが生じた場合(判定部107;YES)であり、異常信号を出力する出力手段である異常信号検知出力部108を介してCPUの異常信号を出力する。
図1(c)は値Aと値Bとが一致しない場合、すなわち演算ミスが生じた場合(判定部107;YES)であり、異常信号を出力する出力手段である異常信号検知出力部108を介してCPUの異常信号を出力する。
図2は、図1のブロック図を具体的な回路図で示したものである。図2の回路においては、図1に示すブロック図の構成要素にさらに外部比較器202からの出力である異常検出信号を保持して異常信号を出力する第3の出力手段となるラッチ回路203と、CPU201のリセット信号立ち上がり時点後にCPU異常検知信号を誤って出力しないようにするCPU異常検知出力キャンセル回路204とが付加される。なお、ラッチ回路203の出力はフェールセーフ回路(F/S回路)205に入力されている。ここで、外部比較器202は図1における外部比較器102の具体的回路構成として示したものである。また、図3は図2の回路における動作のタイミング図である。以下、図2および図3により本発明による回路の動作の詳細について説明する。
図2において、監視対象であるCPU201は、8個の出力用の端子(端子1乃至端子4が第1の出力手段である値A用出力端子、端子5乃至端子8が第2の出力手段である値B用出力端子)と2個の制御端子(リセット端子/RESET、およびPRUN端子/PRUN)とを有しており、図1におけるテストデータ設定部103はCPU201の内部でソフトウェアにより設定され、メモリ部104もCPU201に内蔵されている。
外部比較器202はこの例においてはCPU201の出力端子の数にあわせて4個のEX−OR1乃至EX−OR4(排他的論理和)回路(2021乃至2024)と、これら4個のEX−OR(2021乃至2024)の出力の論理和を求めるためのダイオード(D4乃至D7)2031乃至2034および抵抗204とで構成されている。この4個のEX−OR回路部分は図1における比較部106に対応している。さらにラッチ回路203とCPU異常検知出力キャンセル回路204およびウォッチドッグタイマ(WDT)を内蔵した電源IC207とが付加されている。電源IC206は、電源投入時にCPU201からPRUN信号が印加され、電源IC206のウォッチドッグタイマが動作を開始し、CPU201の監視動作のタイミング設定が行われる。
この回路の動作は、図3に示すように5区間に分割することが出来、これにより順次実行される。
第1のステップ:[電源投入からリセット信号立ち上がり直前まで] これは図3において区間(1)の部分で、電源投入直後においてはリセット信号は論理“0”(Lレベル)の状態にあり、この間においてはラッチ回路203のインバータ2051(INV2)の入力はLレベルであり、したがってラッチ回路203の出力となるインバータ2051(INV2)の出力は論理“1”(Hレベル)となる。このラッチ回路203の出力はCPU異常検出信号となるものであり、図1の判定部107に相当している。このCPU異常検出信号がHレベルであることはCPUが正常な状態であることを示している。
第1のステップ:[電源投入からリセット信号立ち上がり直前まで] これは図3において区間(1)の部分で、電源投入直後においてはリセット信号は論理“0”(Lレベル)の状態にあり、この間においてはラッチ回路203のインバータ2051(INV2)の入力はLレベルであり、したがってラッチ回路203の出力となるインバータ2051(INV2)の出力は論理“1”(Hレベル)となる。このラッチ回路203の出力はCPU異常検出信号となるものであり、図1の判定部107に相当している。このCPU異常検出信号がHレベルであることはCPUが正常な状態であることを示している。
第2ステップ:[リセット信号立ち上がりからCPU起動直前まで] これは図3において区間(2)の部分で、CPUがリセット信号立ち上がりからPRUN出力や各種演算を開始可能となるまでの期間を指す。この間に、電源投入時のCPU異常誤検出防止のためのCPU異常検知出力キャンセル回路204を動作させる。
CPU異常検知出力キャンセル回路204は、リセット信号が立ち上がってからCPUが正常に演算が出来るようになるまでの時間trの期間だけ外部比較器202の出力を強制的にLレベルにして、本コンピュータ異常検知回路が立ち上がり時にCPU異常信号が誤って出力されることのないようにキャンセルする回路である。ここで、上記の時間trは図2におけるCPU異常検知出力キャンセル回路204に含まれているCR時定数回路(抵抗2061およびキャパシタ2062)により決定されている。この時間trが経過すれば上記のキャンセル動作は解除され、図3における区間(3)以後の状態となりCPU異常監視状態となる。
第3ステップ:[CPUが正常な場合] 上記区間(3)の状態でCPUが正常に動作している場合は、CPU内でランダムな値Aを設定し、この値Aを図1におけるメモリ部104に記憶させておく。同時に、この値Aを初期値として各種演算機能(加算、減算、乗算、除算、右シフト、左シフト等)の全てを使用して値A(初期値)=値Bとなるように演算を行う。ここで、例えば、値Aを図2における端子1乃至端子4の出力信号として“1110(10進数で14)”とする。ここで、上記演算が正しく実行された場合においては、図2における端子5乃至端子8の出力である値Bも“1110”となる。したがって、図2の外部比較器202におけるEX−OR回路2021乃至2024の2入力端子には互いに等しい論理値(1110)が入力されることになり、したがって各EX−OR出力は何れも論理“0”(Lレベル)となり、正常と判断する。これにより、図1(b)に示す経路により初期値であるランダムな値Aを設定する最初のステップであるテストデータ設定部103に戻り、次の監視開始を待つ状態となる。
第4ステップ:[CPU異状による演算ミスを生じている場合] 上記区間(4)の状態でCPU異状による演算ミスが発生した場合は、例えば、上記例のランダムな値Aと同じ初期値“1110”を入力したとし、演算結果の値Bとして図1(c)に示すように“1101”となった場合は、EX−OR3(2023)は間違った論理値が入力されたことになり、したがって、出力の論理値は論理“1”(Hレベル)となる。各EX−OR出力はダイオード2031(D4)乃至2034(D7)を介して論理和が求められラッチ回路203のインバータ2051(INV2)の入力に接続されており、したがって、インバータ2051の出力はLレベルとなりCPU201の異状が検出され、図1(c)に示す経路によりCPU101(図2におけるCPU201)の異状検知信号が出力される。
ラッチ回路203の動作は以下のように説明される。すなわち、ラッチ回路203の出力であるインバータ2051(INV2)の出力がLレベルとなることにより、ダイオード2052(D2)を通じてインバータ2053(INV1)の入力がLレベルとなるため、結局、インバータ2051の入力はCPU異常検知の論理レベルであるHレベルを保持し続けることになる。これは、CPU201における演算ミスの原因が解決されても依然として保持し続ける。図3の区間(4)および区間(5)にこの状況を示す。
第5ステップ:[ラッチされているCPU異常検知信号の解除] 第4ステップで保持されたCPU異常検知の論理レベルは、図示していないがCPU201のRESET端子から論理“0”(Lレベル)が出力された場合にのみ解除される。
(実施の形態2)
本実施の形態2は、CPU101または201の異常を見逃してしまう場合を排除するためのものである。例えば、CPU101または201に異常が生じた結果全ての出力端子(端子1乃至端子8)が同一論理値(論理“1”または論理“0”の何れか)となった場合にこのようなCPU異常の見逃しが発生する。この問題は例えば値A側の端子(端子1乃至端子4)の予め定められた桁にインバータ等の論理回路を介して外部比較器202のEX−OR1乃至4(2021乃至2024)に接続することで解決し得る。この場合の回路構成の例を図4に示す。
本実施の形態2は、CPU101または201の異常を見逃してしまう場合を排除するためのものである。例えば、CPU101または201に異常が生じた結果全ての出力端子(端子1乃至端子8)が同一論理値(論理“1”または論理“0”の何れか)となった場合にこのようなCPU異常の見逃しが発生する。この問題は例えば値A側の端子(端子1乃至端子4)の予め定められた桁にインバータ等の論理回路を介して外部比較器202のEX−OR1乃至4(2021乃至2024)に接続することで解決し得る。この場合の回路構成の例を図4に示す。
図4においては、値A側の第1桁(端子1)出力と第3桁(端子3)出力とをEX−OR2021および2023それぞれの一方の入力端子にインバータ401および402を介して入力する構成としている。これにより得られる、外部比較器202の一方の入力値を値A’とする。また、値B側の出力側においても値A側でインバータを挿入した桁に対しては演算処理の中で反転操作を行いこれにより得られる外部比較器202の他方の入力値を値B’とする。CPUが正常に動作している場合に、値A’=値B’となるように演算処理を行ってEX−OR(2021乃至2024)のそれぞれ対応する入力端子に等しい値が入力される構成としておく必要がある。
なお、値Aと値Bとは値の一致以外に、値Aと値Bとが所定の関係を満たす場合であってもよい。この所定の関係は、例えば、値Aと値Bの差が一定である場合、一定の係数を掛けた場合(1次の関数関係)等であってもよい。
なお、値Aと値Bとは値の一致以外に、値Aと値Bとが所定の関係を満たす場合であってもよい。この所定の関係は、例えば、値Aと値Bの差が一定である場合、一定の係数を掛けた場合(1次の関数関係)等であってもよい。
また、以上の例においてはすべて4桁の場合(4ビットの値)について説明したが、EX−ORを増設し、値A値Bの桁数を増すことによりCPU異常の検出精度を向上させることが出来る。
101,201:CPU 102、202:外部比較器
103:テストデータ設定部 104:メモリ部
105:演算処理部 106:比較部
107:判定部 108:異常信号検知出力部
109:第1の出力手段 110:第1の出力手段
2021〜2024:排他的論理和回路
2031〜2034、2052:ダイオード
2051,2053,401,402:インバータ
204、2061:抵抗 2062:キャパシタ
206:電源IC
103:テストデータ設定部 104:メモリ部
105:演算処理部 106:比較部
107:判定部 108:異常信号検知出力部
109:第1の出力手段 110:第1の出力手段
2021〜2024:排他的論理和回路
2031〜2034、2052:ダイオード
2051,2053,401,402:インバータ
204、2061:抵抗 2062:キャパシタ
206:電源IC
Claims (3)
- コンピュータの動作状態の監視を、当該監視対象となるコンピュータ1台で実行するコンピュータ異常検知回路であって、コンピュータと外部比較手段とから成り、
前記コンピュータは、
ランダムな値Aを設定する設定手段と、
前記値Aを初期値として前記コンピュータが有する演算機能を用い、その演算結果である値Bが前記値Aと同一になるように設定した、異なる種類の演算を予め定められた手順により実施する演算手段と、
前記値Aを記憶するメモリ部と、
前記メモリ部に記憶されている値Aを出力する第1の出力手段と、
前記演算結果である値Bを出力する第2の出力手段とを有しており、
前記外部比較手段は、
前記第1の出力手段からの出力である値Aと、前記第2の出力手段からの出力である値Bとの差異を調べる比較部と、
前記比較部による比較結果から前記コンピュータの動作が正常か異常かを判定する判定手段と、
前記判定手段の判定結果が前記コンピュータの動作異常を示している場合は、異常信号を出力する第3の出力手段とを有することを特徴とするコンピュータ異常検知回路。 - 請求項1に記載のコンピュータ異常検知回路において、
前記第1の出力手段の予め定められた桁を、論理回路を介して前記比較部の一方の入力側に接続し、
前記演算手段においては、前記論理回路における演算処理と同じ演算処理を実行し、前記第2の出力手段を前記比較部の他方の入力側に接続し、
前記コンピュータが正常に動作している場合は、前記外部比較手段の二つの入力側への入力値が等しくなるように前記演算処理を行う構成であることを特徴とするコンピュータ異常検知回路。 - コンピュータの動作状態の監視を、当該監視対象となるコンピュータ1台と外部比較手段とで実行するコンピュータ異常検知方法であって、
前記コンピュータにおいてランダムな値Aの設定と記憶を行い、
前記値Aを初期値として前記コンピュータが有する演算機能を用い、その演算結果である値Bが前記値Aと同一になるように設定した、異なる種類の演算が予め定められた手順により配列されている演算処理を行い、
前記記憶している値Aと、前記演算結果である値Bを前記コンピュータから出力し、
前記値Aと、値Bとの差異をコンピュータ外部に接続された外部比較手段で比較し、
前記比較結果が同一か否かで前記コンピュータの動作が正常か異常かを判定することを特徴とするCPU異常検知方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005133916A JP2006309639A (ja) | 2005-05-02 | 2005-05-02 | コンピュータ異常検知回路およびコンピュータ異常検知方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005133916A JP2006309639A (ja) | 2005-05-02 | 2005-05-02 | コンピュータ異常検知回路およびコンピュータ異常検知方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006309639A true JP2006309639A (ja) | 2006-11-09 |
Family
ID=37476431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005133916A Pending JP2006309639A (ja) | 2005-05-02 | 2005-05-02 | コンピュータ異常検知回路およびコンピュータ異常検知方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006309639A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013133768A (ja) * | 2011-12-27 | 2013-07-08 | Bosch Corp | 車両用エンジン制御装置 |
-
2005
- 2005-05-02 JP JP2005133916A patent/JP2006309639A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013133768A (ja) * | 2011-12-27 | 2013-07-08 | Bosch Corp | 車両用エンジン制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5739290B2 (ja) | 電子制御装置 | |
CN107003915B (zh) | 驱动控制装置 | |
JP3520662B2 (ja) | 電子コントロールユニットの監視装置 | |
JP5476238B2 (ja) | 半導体装置 | |
US10649487B2 (en) | Fail-safe clock monitor with fault injection | |
US20180180672A1 (en) | Semiconductor device and diagnostic test method | |
US20060150033A1 (en) | Method for monitoring the execution of a program in a micro-computer | |
JP2010244311A (ja) | 車載用電子制御装置 | |
JP2006309639A (ja) | コンピュータ異常検知回路およびコンピュータ異常検知方法 | |
JP2007026028A (ja) | マイクロコンピュータの異常検出装置 | |
JP2016126692A (ja) | 電子制御装置 | |
JP2009003663A (ja) | 電源制御装置 | |
EP3480608B1 (en) | Method and system for measuring power-on reset time | |
US20030093725A1 (en) | Method and circuit for monitoring microcomputer for onboard electronic control device | |
JP2000259444A (ja) | データ処理装置及びその試験方法 | |
US5828822A (en) | Watchdog circuit for carbon monoxide monitors | |
JP2018097442A (ja) | 電子制御装置 | |
JP6274947B2 (ja) | 車載制御装置のマイクロプロセッサの異常診断方法 | |
JP6660818B2 (ja) | 制御装置 | |
JP5730173B2 (ja) | 自己診断機能付き装置 | |
JP2009282849A (ja) | マイクロコンピュータ | |
JP3267035B2 (ja) | シーケンサ診断装置 | |
JP4613019B2 (ja) | コンピュータシステム | |
US10671027B2 (en) | Electronic component monitoring method and apparatus | |
WO2011142015A1 (ja) | 演算器異常判定装置及び方法 |