(57)【要約】【課題】専用の信号線及び端子を追加することなく、簡単な構成でプロセッサのクロック異常を検出する。【解決手段】第１プロセッサは、第１タイマ回路によるカウント値を用いて所定の計測時間をはかり、第１タイマ回路によって計測時間の間にカウントされた値を取得し、該カウントされた値と第１クロック信号における１周期の時間幅とを乗算した第１乗算値を求め、一方、第２プロセッサは、第２タイマ回路によって計測時間の間にカウントされた値を取得し、該カウントされた値と第２クロック信号における１周期の時間幅とを乗算した第２乗算値を求め、第１プロセッサ及び第２プロセッサのいずれかは、第１乗算値と第２乗算値との差の絶対値を求め、該絶対値がしきい値を超えるか否か判定し、超える場合には、第１クロック信号あるいは第２クロック信号に異常が発生していると判断する。【選択図】図１
2015103230.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号を生成する第１発振回路と、前記第１クロック信号をカウントする第１タイマ回路を有する第１プロセッサと、第２クロック信号を生成する第２発振回路と、前記第２クロック信号をカウントする第２タイマ回路を有する第２プロセッサとを具備するマルチコアシステムであって、
前記第１プロセッサは、前記第１タイマ回路によるカウント値を用いて所定の計測時間をはかり、前記第１タイマ回路によって前記計測時間の間にカウントされた値を取得し、該カウントされた値と前記第１クロック信号における１周期の時間幅とを乗算した第１乗算値を求め、
一方、前記第２プロセッサは、前記第２タイマ回路によって前記計測時間の間にカウントされた値を取得し、該カウントされた値と前記第２クロック信号における１周期の時間幅とを乗算した第２乗算値を求め、
前記第１プロセッサ及び前記第２プロセッサのいずれかは、前記第１乗算値と前記第２乗算値との差の絶対値を求め、該絶対値がしきい値を超えるか否か判定し、超える場合には、前記第１クロック信号あるいは前記第２クロック信号に異常が発生していると判断することを特徴とするマルチコアシステム。
【請求項２】
前記しきい値は、前記計測時間に要求精度を乗算したものであることを特徴とする請求項１に記載のマルチコアシステム。
【請求項３】
前記第１プロセッサは、シャットダウン時には、通常よりも前記計測時間を短く設定することを特徴とする請求項１または２に記載のマルチコアシステム。
【請求項４】
前記第１クロック信号と前記第２クロック信号との周波数が異なることを特徴とする請求項１〜３のいずれか一項に記載のマルチコアシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアシステムに関する。
【背景技術】
【０００２】
下記特許文献１には、異常状態のＣＰＵにより、エンジン等の制御対象が制御されることを防止することが可能な電子制御装置が開示されている。該電子制御装置は、第１クロック信号を生成する第１信号生成装置と、第２クロック信号を生成する第２信号生成装置と、第１クロック信号に基づいて第１ＷＤＴ（watch dog timer）信号を生成するメインＣＰＵ（Central Processing Unit）と、第２クロック信号に基づいて第２ＷＤＴ信号を生成するサブＣＰＵとを具備し、メインＣＰＵは、第２ＷＤＴ信号のパルス幅が予め設定された第１範囲から外れていることを検出した場合には、第２信号生成装置の発振周波数の異常を検出したことを示す第１異常検出信号を出力し、一方、サブＣＰＵは、第１ＷＤＴ信号のパルス幅が予め設定された第２範囲から外れていることを検出した場合には、第１信号生成装置の発振周波数の異常を検出したことを示す第２異常検出信号を出力する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−１０７５２２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記従来技術では、第１、第２ＷＤＴ信号をメイン及びサブＣＰＵお互いに入力し、メイン及びサブＣＰＵで第１、第２ＷＤＴ信号のパルス幅が第１、第２範囲から外れているか否か判定することによって、第１信号生成装置及び第２信号生成装置の異常を判定しているが、第２ＷＤＴ信号をサブＣＰＵからメインＣＰＵを入力し、一方第１ＷＤＴ信号をメインＣＰＵからサブＣＰＵを入力するための専用の信号線及び端子が必要であるため、構成が複雑になるという問題があった。
【０００５】
本発明は、上述した事情に鑑みてなされたものであり、専用の信号線及び端子を追加することなく、簡単な構成でプロセッサのクロック異常を検出することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明では、第１の解決手段として、第１クロック信号を生成する第１発振回路と、前記第１クロック信号をカウントする第１タイマ回路を有する第１プロセッサと、第２クロック信号を生成する第２発振回路と、前記第２クロック信号をカウントする第２タイマ回路を有する第２プロセッサとを具備するマルチコアシステムであって、前記第１プロセッサは、前記第１タイマ回路によるカウント値を用いて所定の計測時間をはかり、前記第１タイマ回路によって前記計測時間の間にカウントされた値を取得し、該カウントされた値と前記第１クロック信号における１周期の時間幅とを乗算した第１乗算値を求め、一方、前記第２プロセッサは、前記第２タイマ回路によって前記計測時間の間にカウントされた値を取得し、該カウントされた値と前記第２クロック信号における１周期の時間幅とを乗算した第２乗算値を求め、前記第１プロセッサ及び前記第２プロセッサのいずれかは、前記第１乗算値と前記第２乗算値との差の絶対値を求め、該絶対値がしきい値を超えるか否か判定し、超える場合には、前記第１クロック信号あるいは前記第２クロック信号に異常が発生していると判断する、という手段を採用する。
【０００７】
本発明では、第２の解決手段として、上記第１の解決手段において、前記しきい値は、前記計測時間に要求精度を乗算したものである、という手段を採用する。
【０００８】
本発明では、第３の解決手段として、上記第１または第２の解決手段において、前記第１プロセッサは、シャットダウン時には、通常よりも前記計測時間を短く設定する、という手段を採用する。
【０００９】
本発明では、第４の解決手段として、上記第１〜第３のいずれか１つの解決手段において、前記第１クロック信号と前記第２クロック信号との周波数が異なる、という手段を採用する。
【発明の効果】
【００１０】
本発明によれば、第１プロセッサは、第１タイマ回路によるカウント値を用いて所定の計測時間をはかり、第１タイマ回路によって該計測時間の間にカウントされた値を取得し、該カウントされた値と第１クロック信号における１周期の時間幅とを乗算した第１乗算値を求め、一方、第２プロセッサは、第２タイマ回路によって計測時間の間にカウントされた値を取得し、該カウントされた値と第２クロック信号における１周期の時間幅とを乗算した第２乗算値を求め、第１プロセッサ及び第２プロセッサのいずれかは、第１乗算値と第２乗算値との差の絶対値を求め、該絶対値がしきい値を超えるか否か判定し、超える場合には、第１クロック信号あるいは第２クロック信号に異常が発生していると判断する。つまり、本発明は、元々備え付けられる第１プロセッサと第２プロセッサとの間を接続する信号線を介して通信して、クロック異常を検出することができるので、専用の信号線及び端子を追加することなく、簡単な構成でプロセッサのクロック異常を検出することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態に係るマルチコアシステムＡの概略構成図である。
【図２】本発明の一実施形態に係るマルチコアシステムＡの動作を示すフローチャートである。
【図３】本発明の一実施形態に係るマルチコアシステムＡの動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１２】
以下、図面を参照して、本発明の実施形態について説明する。
本実施形態に係るマルチコアシステムＡは、電気自動車（ＥＶ：Electric Vehicle）あるいはハイブリッド自動車（ＨＶ：Hybrid Vehicle）等の移動車両に周辺機器Ｄ１〜Ｄｎと共に搭載され、該周辺機器Ｄ１〜Ｄｎを制御するものである。このマルチコアシステムＡは、図１に示すように、第１演算制御部Ｅ１、第２演算制御部Ｅ２及び通信バスＢから構成される。
【００１３】
第１演算制御部Ｅ１は、図１に示すように、第１ＲＯＭ（Read Only Memory）１１、第１ＲＡＭ（Random Access Memory）１２、第１発振回路１３及び第１ＣＰＵ（Central Processing Unit）１４（第１プロセッサ）を備えている。
第１ＲＯＭ１１は、第１ＣＰＵ１４で実行される各種演算制御プログラム及びその他データを記憶する不揮発性メモリである。
第１ＲＡＭ１２は、第１ＣＰＵ１４が演算制御プログラムを実行して各種動作を行う際に、データの一時保存先となるワーキングエリアとして用いられる揮発性メモリである。
【００１４】
第１発振回路１３は、持続したパルスを生成し、該パルスからなると共に所定の周波数を有するクロック信号（第１クロック信号）を出力するものである。上記第１クロック信号は、第１ＣＰＵ１４の動作の基準クロックである。
【００１５】
第１ＣＰＵ１４は、第１ＲＯＭ１１、第１ＲＡＭ１２及び第１発振回路１３と内部バスを介して電気的に接続されると共に、周辺機器Ｄ１〜Ｄｎと通信バスＢを介して電気的に接続され、上記第１ＲＯＭ１１に記憶された各種演算制御プログラムに基づいて各種の演算処理を行うと共に各部と通信を行うことにより周辺機器Ｄ１〜Ｄｎの動作を制御する。また、第１ＣＰＵ１４は、第１発振回路１３から入力される第１クロック信号をカウントする第１タイマ回路１４ａを有し、該第１タイマ回路１４ａによるカウント値に基づいて動作タイミングを制御する。詳細については後述するが、第１ＣＰＵ１４は、後述する第２演算制御部Ｅ２の第２ＣＰＵ２４と共に動作して、第１クロック信号及び第２クロック信号の異常を判断する。
【００１６】
第２演算制御部Ｅ２は、図１に示すように、第２ＲＯＭ２１、第２ＲＡＭ２２、第２発振回路２３及び第２ＣＰＵ２４（第２プロセッサ）を備えている。
第２ＲＯＭ２１は、第２ＣＰＵ２４で実行される各種演算制御プログラム及びその他データを記憶する不揮発性メモリである。
第２ＲＡＭ２２は、第２ＣＰＵ２４が制御プログラムを実行して各種動作を行う際に、データの一時保存先となるワーキングエリアとして用いられる揮発性メモリである。
【００１７】
第２発振回路２３は、持続したパルスを生成し、該パルスからなると共に所定の周波数を有するクロック信号（第２クロック信号）を出力するものである。上記第２クロック信号は、第２ＣＰＵ２４の動作の基準クロックである。
【００１８】
第２ＣＰＵ２４は、第２ＲＯＭ２１、第２ＲＡＭ２２及び第２発振回路２３と内部バスを介して電気的に接続されると共に、周辺機器Ｄ１〜Ｄｎと通信バスＢを介して電気的に接続され、上記第２ＲＯＭ２１に記憶された各種演算制御プログラムに基づいて各種の演算処理を行うと共に各部と通信を行うことにより周辺機器Ｄ１〜Ｄｎの動作を制御する。また、第２ＣＰＵ２４は、第２発振回路２３から入力される第２クロック信号をカウントする第２タイマ回路２４ａを有し、該第２タイマ回路２４ａによるカウント値に基づいて動作タイミングを制御する。詳細については後述するが、第２ＣＰＵ２４は、第１演算制御部Ｅ１の第１ＣＰＵ１４と共に動作して、第１クロック信号及び第２クロック信号の異常を判断する。
【００１９】
通信バスＢは、第１ＣＰＵ１４、第２ＣＰＵ２４及び周辺機器Ｄ１〜Ｄｎを電気的に相互接続するための通信線である。第１ＣＰＵ１４、第２ＣＰＵ２４及び周辺機器Ｄ１〜Ｄｎは、通信バスＢを介してデータを送受信する。
【００２０】
一方、周辺機器Ｄ１〜Ｄｎは、移動車両に搭載されている走行モータ、発電機及び昇圧回路等を制御するためのコントローラ等であり、通信バスＢを介して第１ＣＰＵ１４や第２ＣＰＵ２４とデータを送受信する。
【００２１】
次に、このように構成されたマルチコアシステムＡの動作について図２及び図３を参照して説明する。
第１ＣＰＵ１４及び第２ＣＰＵ２４は、第１発振回路１３で発生する第１クロック信号及び第２発振回路２３で発生する第２クロック信号の異常を判断するために、以下の特徴的な動作を行う。
【００２２】
まず、第１ＣＰＵ１４は、計測時間を選択し、決定する（ステップＳ１）。この計測時間は、第１ＣＰＵ１４や第２ＣＰＵ２４で、第１クロック信号や第２クロック信号の異常を判断するために、第１タイマ回路１４ａや第２タイマ回路２４ａによるカウント値を計測するための時間である。
【００２３】
第１ＣＰＵ１４は、ステップＳ１の処理において、動作状態に応じて計測時間を選択し、決定する。例えば、第１ＣＰＵ１４は、シャットダウン時には、短い計測時間を選択し、一方、通常動作時には、シャットダウン時よりも長い計測時間を選択する。このように、シャットダウン時の計測時間を短いものにすることによって、シャットダウンに要する時間を、できるだけ短くすることができる。
【００２４】
続いて、第１ＣＰＵ１４は、第１タイマ回路１４ａによるカウント値を用いて上記計測時間をはかり、第１タイマ回路１４ａによって計測時間の間にカウントされた値を取得し、該カウントされた値と第１クロック信号における１周期の時間幅とを乗算した第１乗算値を求める（ステップＳ２）。
【００２５】
例えば、第１ＣＰＵ１４において、第１タイマ回路１４ａは、図３に示すように、第１クロック信号に基づいてカウントを実行する。つまり、第１タイマ回路１４ａは、第１クロック信号の立ち上がりを基準にカウントを行い、３つ数えるとリセットする処理を繰り返す。第１ＣＰＵ１４は、この第１タイマ回路１４ａによってカウントされた値Ｎ１（図３参照）を取得し、該カウントされた値Ｎ１と第１クロック信号における１周期の時間幅とＸ（図３参照）を乗算した第１乗算値（図３に示すＮ１×Ｘ）を求める。
【００２６】
続いて、第２ＣＰＵ２４は、上記ステップＳ２の処理と、同時並行的に、第２タイマ回路２４ａによって上記計測時間の間にカウントされた値を取得し、該カウントされた値と第２クロック信号における１周期の時間幅とを乗算した第２乗算値を求める（ステップＳ３）。
【００２７】
例えば、第２ＣＰＵ２４において、第２タイマ回路２４ａは、図３に示すように、第２クロック信号の立ち上がりを基準にカウントを行い、４つ数えるとリセットする処理を繰り返す。第２ＣＰＵ２４は、例えば、第１ＣＰＵ１４から通信バスＢを介して、上記計測時間の開始及び終了が通知され、第２タイマ回路２４ａによって上記計測時間の間にカウントされた値Ｎ２（図３参照）を取得し、該カウントされた値Ｎ２と第２クロック信号における１周期の時間幅Ｙ（図３参照）を乗算した第２乗算値（図３に示すＮ２×Ｙ）を求める。
【００２８】
なお、上記ステップＳ１及びステップＳ２の処理において、第１ＣＰＵ１４が、計測時間を決定し、第１タイマ回路１４ａによるカウント値を用いて計測時間をはかっているが、第２ＣＰＵ２４が実行するようにしてもよい。つまり、第２ＣＰＵ２４が、計測時間を決定し、第２タイマ回路２４ａによるカウント値を用いて計測時間をはかるようにしてもよい。
【００２９】
続いて、第１ＣＰＵ１４は、第１乗算値と第２乗算値との差の絶対値を求め、該絶対値がしきい値を超えないか否か判定し（ステップＳ４）、超える場合（ＮＯの場合）には、第１クロック信号あるいは第２クロック信号に異常が発生していると判断する（ステップＳ５）。つまり、第１ＣＰＵ１４は、上記ステップＳ４の処理で、以下（ａ）式が成立するか否か判定する。
｜(Ｎ１×Ｘ)−(Ｎ２×Ｙ)｜≦しきい値…（ａ）
【００３０】
上記しきい値は、計測時間に要求精度を乗算することによって算出された値である。通常、第１乗算値と第２乗算値との差は、ある値に近似するものとなる。その近似する値が、計測時間の、例えば５％を要求精度として、計測時間に乗算して、上記しきい値を算出する。
【００３１】
なお、第１ＣＰＵ１４が、上記ステップＳ４及びＳ５の処理を実行しているが、第２ＣＰＵ２４が実行してもよい。
【００３２】
このような本実施形態によれば、第１ＣＰＵ１４は、第１タイマ回路１４ａによるカウント値を用いて所定の計測時間をはかり、該計測時間の間に、第１タイマ回路１４ａによってカウントされた値Ｎ１を取得し、該カウントされた値Ｎ１と第１クロック信号における１周期の時間幅Ｘとを乗算した第１乗算値（Ｎ１×Ｘ）を求め、一方、第２ＣＰＵ２４は、計測時間の間に、第２タイマ回路２４ａによってカウントされた値Ｎ２を取得し、該カウントされた値Ｎ２と第２クロック信号における１周期の時間幅Ｙとを乗算した第２乗算値（Ｎ２×Ｙ）を求め、第１ＣＰＵ１４は、第１乗算値と第２乗算値との差の絶対値を求め、該絶対値がしきい値を超えるか否か判定し、超える場合には、第１クロック信号あるいは第２クロック信号に異常が発生していると判断する。つまり、本実施形態は、元々備え付けられる第１ＣＰＵ１４と第２ＣＰＵ２４との間を接続する通信バスＢを介して通信して、クロック異常を検出することができるので、専用の信号線及び端子を追加することなく、簡単な構成で第１ＣＰＵ１４及び第２ＣＰＵ２４のクロック異常を検出することができる。
【００３３】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、例えば以下のような変形が考えられる。
（１）上記実施形態は、移動車両に搭載されているが、移動車両以外に、家電製品等の電子機器に搭載されていてもよい。
（２）上記実施形態は、プロセッサとしてＣＰＵが用いられているものに、本発明を適用したものであるが、プロセッサとしてＦＰＵ（Floating Point Unit：浮動小数点演算処理装置）が用いられているものに、本発明を適用するようにしてもよい。
【符号の説明】
【００３４】
Ａ…マルチコアシステム、Ｄ１〜Ｄｎ…周辺機器、Ｅ１…第１演算制御部、Ｅ２…第２演算制御部、Ｂ…通信バス、１１…第１ＲＯＭ、１２…第１ＲＡＭ、１３…第１発振回路、１４…第１ＣＰＵ（第１プロセッサ）、２１…第２ＲＯＭ、２２…第２ＲＡＭ、２３…第２発振回路、２４…第２ＣＰＵ（第２プロセッサ）、１４ａ…第１タイマ回路、２４ａ…第２タイマ回路、
【図１】
2015103230.tif 000003
【図２】
2015103230.tif 000004
【図３】
2015103230.tif 000005