(57)【特許請求の範囲】
【請求項１】
複数のタスクを順次処理するマスタプロセッサと、
前記複数のタスクのうちの少なくとも１つを順次処理するチェッカプロセッサと、
前記マスタプロセッサ及び前記チェッカプロセッサがそれぞれ同じタスクを処理するロックステップ動作を行う場合に前記チェッカプロセッサを動作させるように制御し、前記ロックステップ動作を行わない場合に前記チェッカプロセッサを停止させるように制御する制御回路と
を有し、
前記制御回路は、前記ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、予め定められた、システムに許容されるテスト間隔である最大テスト間隔以下となるように制御し、
前記最大テスト間隔以下の間隔で、少なくとも１つの故障診断タスクが割り込まれ、
前記制御回路は、前記故障診断タスクが割り込まれる場合に、前記ロックステップ動作を行うように制御する
プロセッサシステム。
【請求項２】
前記制御回路は、前記故障診断タスクが割り込まれない場合に、前記ロックステップ動作を行わないように制御する
請求項１に記載のプロセッサシステム。
【請求項３】
複数の前記故障診断タスクが割り込まれ、
前記複数の故障診断タスクのうちの第１の故障診断タスクは、前記マスタプロセッサの第１の領域に関する故障診断を行うためのタスクであり、前記複数の故障診断タスクのうちの第２の故障診断タスクは、前記マスタプロセッサの第２の領域に関する故障診断を行うためのタスクである
請求項１に記載のプロセッサシステム。
【請求項４】
複数のタスクを順次処理するマスタプロセッサと、
前記複数のタスクのうちの少なくとも１つを順次処理するチェッカプロセッサと、
前記マスタプロセッサ及び前記チェッカプロセッサがそれぞれ同じタスクを処理するロックステップ動作を行う場合に前記チェッカプロセッサを動作させるように制御し、前記ロックステップ動作を行わない場合に前記チェッカプロセッサを停止させるように制御する制御回路と
を有し、
前記制御回路は、前記ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、予め定められた、システムに許容されるテスト間隔である最大テスト間隔以下となるように制御し、
実行中に故障が発生した場合に故障の検出が要求される第１のタスクと、前記第１のタスクとは異なる第２のタスクとが割り込まれ、
前記制御回路は、前記第１のタスクが割り込まれる場合に、前記ロックステップ動作を行うように制御する
プロセッサシステム。
【請求項５】
前記制御回路は、前記マスタプロセッサにおけるフェッチアドレスが前記複数のタスクを記憶するメモリにおける前記第１のタスクのアドレスと一致する場合に、前記ロックステップ動作を行うように制御する
請求項４に記載のプロセッサシステム。
【請求項６】
前記制御回路は、前記第１のタスクがロックステップ動作で処理されてから経過した期間が、前記最大テスト間隔より短い第１の期間以上となった場合に、前記第１のタスクを前記ロックステップ動作で処理するように制御する
請求項４に記載のプロセッサシステム。
【請求項７】
プロセッサシステムであって、
複数のタスクを順次処理するマスタプロセッサと、
前記複数のタスクのうちの少なくとも１つを順次処理するチェッカプロセッサと、
前記マスタプロセッサ及び前記チェッカプロセッサがそれぞれ同じタスクを処理するロックステップ動作を行う場合に前記チェッカプロセッサを動作させるように制御し、前記ロックステップ動作を行わない場合に前記チェッカプロセッサを停止させるように制御する制御回路と
を有し、
前記制御回路は、前記ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、予め定められた、システムに許容されるテスト間隔である最大テスト間隔以下となるように制御し、
実行中に故障が発生した場合に故障の検出が要求される第１のタスクと、前記第１のタスクとは異なる第２のタスクとが割り込まれ、前記第１のタスク及び前記第２のタスクは、前記ロックステップ動作で処理され、
前記制御回路は、当該プロセッサシステムが少なくとも前記第１のタスクを処理する頻度に応じて、前記第２のタスクについて前記ロックステップ動作を行わないように制御する
プロセッサシステム。
【請求項８】
複数のタスクを順次処理するマスタプロセッサ及び前記複数のタスクのうちの少なくとも１つを順次処理するチェッカプロセッサがそれぞれ同じタスクを処理するロックステップ動作を行う場合に前記チェッカプロセッサを動作させるように制御し、
前記ロックステップ動作を行わない場合に前記チェッカプロセッサを停止させるように制御し、
前記ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、予め定められた、システムに許容されるテスト間隔である最大テスト間隔以下となるように制御し、
前記最大テスト間隔以下の間隔で、少なくとも１つの故障診断タスクが割り込まれ、
前記故障診断タスクが割り込まれる場合に、前記ロックステップ動作を行うように制御する
制御方法。
【請求項９】
前記故障診断タスクが割り込まれない場合に、前記ロックステップ動作を行わないように制御する
請求項８に記載の制御方法。
【請求項１０】
複数の前記故障診断タスクが割り込まれ、
前記複数の故障診断タスクのうちの第１の故障診断タスクが割り込まれた場合に、前記マスタプロセッサの第１の領域に関する故障診断を行い、
前記複数の故障診断タスクのうちの第２の故障診断タスクが割り込まれた場合に、前記マスタプロセッサの第２の領域に関する故障診断を行う
請求項８に記載の制御方法。
【請求項１１】
複数のタスクを順次処理するマスタプロセッサ及び前記複数のタスクのうちの少なくとも１つを順次処理するチェッカプロセッサがそれぞれ同じタスクを処理するロックステップ動作を行う場合に前記チェッカプロセッサを動作させるように制御し、
前記ロックステップ動作を行わない場合に前記チェッカプロセッサを停止させるように制御し、
前記ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、予め定められた、システムに許容されるテスト間隔である最大テスト間隔以下となるように制御し、
実行中に故障が発生した場合に故障の検出が要求される第１のタスクと、前記第１のタスクとは異なる第２のタスクとが割り込まれ、
前記第１のタスクが割り込まれる場合に、前記ロックステップ動作を行うように制御する
制御方法。
【請求項１２】
前記マスタプロセッサにおけるフェッチアドレスが前記複数のタスクを記憶するメモリにおける前記第１のタスクのアドレスと一致する場合に、前記ロックステップ動作を行うように制御する
請求項１１に記載の制御方法。
【請求項１３】
前記第１のタスクがロックステップ動作で処理されてから経過した期間が、前記最大テスト間隔より短い第１の期間以上となった場合に、前記第１のタスクを前記ロックステップ動作で処理するように制御する
請求項１１に記載の制御方法。
【請求項１４】
複数のタスクを順次処理するマスタプロセッサ及び前記複数のタスクのうちの少なくとも１つを順次処理するチェッカプロセッサがそれぞれ同じタスクを処理するロックステップ動作を行う場合に前記チェッカプロセッサを動作させるように制御し、
前記ロックステップ動作を行わない場合に前記チェッカプロセッサを停止させるように制御し、
前記ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、予め定められた、システムに許容されるテスト間隔である最大テスト間隔以下となるように制御し、
実行中に故障が発生した場合に故障の検出が要求される第１のタスクと、前記第１のタスクとは異なる第２のタスクとが割り込まれ、
前記第１のタスク及び前記第２のタスクを、前記ロックステップ動作で処理するように制御し、
少なくとも前記第１のタスクが処理される頻度に応じて、前記第２のタスクについて前記ロックステップ動作を行わないように制御する
制御方法。
【請求項１５】
エンジン制御用タスクを含む複数のタスクをロックステップで処理可能な第１及び第２のプロセッサと、
前記ロックステップを有効または無効に制御する制御部と
を有し、
前記制御部は、第１のロックステップ処理と、前記第１のロックステップ処理の後の第２のロックステップ処理との間隔が、システムに許容されるテスト間隔である最大テスト間隔以下となるように、予め定められたタイミングにおいて、前記ロックステップを有効にし、
前記制御部は、前記予め定められたタイミングにおいて発生している前記エンジン制御用タスクをロックステップで処理させ、
前記エンジン制御用タスクが前記予め定められたタイミングで発生していない場合は、故障診断タスクが起動され、前記制御部は、当該故障診断タスクをロックステップで処理させる
エンジン制御システム。
【請求項１６】
エンジン制御用タスクを含む複数のタスクをロックステップで処理可能な第１及び第２のプロセッサと、
前記ロックステップを有効または無効に制御する制御部と
を有し、
前記制御部は、第１のロックステップ処理と、前記第１のロックステップ処理の後の第２のロックステップ処理との間隔が、システムに許容されるテスト間隔である最大テスト間隔以下となるように、予め定められたタイミングにおいて、前記ロックステップを有効にし、
前記予め定められたタイミングで故障診断タスクが起動され、前記制御部は当該故障診断タスクをロックステップで処理させる
エンジン制御システム。
【請求項１７】
センサ入力インタフェースを更に有し、
前記エンジン制御用タスクは、前記センサ入力インタフェースからの入力信号に応じて起動される
請求項１５又は１６に記載のエンジン制御システム。
【請求項１８】
前記制御部は、前記エンジン制御用タスクと故障診断タスクとを除いたタスクについて、ロックステップを無効にする
請求項１７に記載のエンジン制御システム。
【請求項１９】
エンジン制御用タスクを含む複数のタスクをロックステップで処理可能な第１及び第２のプロセッサと、
前記ロックステップを有効または無効に制御する制御部と、
センサ入力インタフェースと
を有し、
前記制御部は、第１のロックステップ処理と、前記第１のロックステップ処理の後の第２のロックステップ処理との間隔が、システムに許容されるテスト間隔である最大テスト間隔以下となるように、予め定められたタイミングにおいて、前記ロックステップを有効にし、
前記エンジン制御用タスクは、前記センサ入力インタフェースからの入力信号に応じて起動され、
前記制御部は、前記エンジン制御用タスク以外のタスクについて、ロックステップを無効にする
エンジン制御システム。
【請求項２０】
エンジン制御用タスクを含む複数のタスクをロックステップで処理可能な第１及び第２のプロセッサと、
前記ロックステップを有効または無効に制御する制御部と、
センサ入力インタフェースと
を有し、
前記制御部は、第１のロックステップ処理と、前記第１のロックステップ処理の後の第２のロックステップ処理との間隔が、システムに許容されるテスト間隔である最大テスト間隔以下となるように、予め定められたタイミングにおいて、前記ロックステップを有効にし、
前記制御部は、前記予め定められたタイミングにおいて発生している前記エンジン制御用タスクをロックステップで処理させ、
前記エンジン制御用タスクは、前記センサ入力インタフェースからの入力信号に応じて起動され、
前記制御部は、前記エンジン制御用タスク以外のタスクについて、ロックステップを無効にする
エンジン制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサシステム、エンジン制御システム及び制御方法に関し、例えばロックステップ動作を行うプロセッサシステム、エンジン制御システム及び制御方法に関する。
【背景技術】
【０００２】
近年、車載電子機器等の機能安全規格として、国際標準化機構のＩＳＯ２６２６２が、注目を集めている。機能安全とは、車載電子機器の構成要素であるマイコン（例えばＭＣＵ：Ｍｉｃｒｏ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）等に故障が発生したとしても、機能的な工夫を施すことによって最低限の許容可能な安全を確保することである。例えば、故障が発生したとしても、故障が発生してから予め定められた期間内で故障を検出することが求められる。
【０００３】
機能的な工夫の一例として、複数のプロセッサコアを用いたロックステップ方式がある。この技術に関連し、特許文献１には、ロックステップ方式を用いたプロセッサシステムに関する技術が記載されている。ロックステップ方式においては、複数のプロセッサコアにおいて同一の処理（タスク）が実行され、これらの実行結果を比較することによって故障（エラー）が検知される。
【０００４】
一般に、ロックステップ方式の場合、複数のプロセッサコアが同時に動作するため、マイコンにおける消費電流が増大する。そのため、ロックステップ方式を用いたマイコンでは、発熱量が増大するといった問題が生じる。ここで、特許文献２には、発熱量を抑えたロックステップ方式に関する技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１０−１９８１３１号公報
【特許文献２】特開２００８−２１７０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述したように、車載システム等で用いられるマイコンにおいては、故障が発生したとしても、故障が発生してから予め定められた期間内で故障を検出することが求められる。一方、特許文献２では、プロセッサの温度に応じて、２つのプロセッサのうち一方を停止させたり、再開させたりしている。しかしながら、このような構成では、単一のプロセッサのみが動作している間は、そのプロセッサの故障を検出することはできない可能性があった。また、特許文献１においては、ロックステップ方式が実行されると、プロセッサシステムの発熱量が増大する可能性があった。
【０００７】
その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００８】
一実施の形態によれば、プロセッサシステムは、複数のタスクを順次処理するマスタプロセッサと、前記複数のタスクのうちの少なくとも１つを順次処理するチェッカプロセッサと、前記マスタプロセッサ及び前記チェッカプロセッサがそれぞれ同じタスクを処理するロックステップ動作を行う場合に前記チェッカプロセッサを動作させるように制御し、前記ロックステップ動作を行わない場合に前記チェッカプロセッサを停止させるように制御する制御回路とを有し、前記制御回路は、前記ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、予め定められた、システムに許容されるテスト間隔である最大テスト間隔以下となるように制御するプロセッサシステムである。
【０００９】
なお、上記実施の形態の装置を方法やシステムに置き換えて表現したもの、該装置または該装置の一部の処理をコンピュータに実行せしめるプログラム、該装置を備えた撮像装置なども、本発明の態様としては有効である。
【発明の効果】
【００１０】
前記一実施の形態によれば、発熱量を抑制しつつ、予め定められた期間内で故障を検出することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施の形態にかかるプロセッサシステムの概要を示す図である。
【図２】本実施の形態にかかる最大プルーフテスト間隔を説明するための図である。
【図３】実施の形態１にかかるプロセッサシステムの構成を示す図である。
【図４】実施の形態１にかかる制御回路の処理を示すフローチャートである。
【図５】実施の形態１にかかるタイミングチャートを例示する図である。
【図６】実施の形態１にかかる、タスク処理とチップ温度との関係を例示するグラフである。
【図７】実施の形態２にかかるプロセッサシステムの構成を示す図である。
【図８】実施の形態２にかかる、タスク処理とチップ温度との関係を例示するグラフである。
【図９】実施の形態３にかかるプロセッサシステムの構成を示す図である。
【図１０】実施の形態３にかかる制御回路の処理を示すフローチャートである。
【図１１】実施の形態３にかかる、タスク処理とチップ温度との関係を例示するグラフである。
【図１２】実施の形態４にかかるプロセッサシステムの構成を示す図である。
【図１３】実施の形態４にかかる比較ユニットの構成を示す図である。
【図１４】実施の形態５にかかるプロセッサシステムの構成を示す図である。
【図１５】実施の形態５にかかる制御回路の処理を示すフローチャートである。
【図１６】実施の形態５にかかる、タスク処理とチップ温度との関係を例示するグラフである。
【図１７】実施の形態６にかかるプロセッサシステムの構成を示す図である。
【図１８】実施の形態６にかかる制御回路の処理を示すフローチャートである。
【図１９】実施の形態６にかかる、タスク処理とチップ温度との関係を例示するグラフである。
【発明を実施するための形態】
【００１２】
以下、実施形態について、図面を参照しながら説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１３】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（ｔａｎｇｉｂｌｅ  ｓｔｏｒａｇｅ  ｍｅｄｉｕｍ）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（ｔｒａｎｓｉｔｏｒｙ  ｃｏｍｐｕｔｅｒ  ｒｅａｄａｂｌｅ  ｍｅｄｉｕｍ）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１４】
（実施の形態の概要）
本実施の形態の説明に先立って、本実施の形態の概要について説明する。図１は、本実施の形態にかかるプロセッサシステム１の概要を示す図である。図１に示すように、プロセッサシステム１は、制御回路２と、メモリ４と、比較器６と、プロセッサユニット１０とを有する。プロセッサユニット１０は、マスタプロセッサ１２と、チェッカプロセッサ１４とを有する。なお、チェッカプロセッサ１４の回路構成（ハードウェア構成）は、マスタプロセッサ１２の回路構成と同一であってもよい。また、マスタプロセッサ１２及びチェッカプロセッサ１４は、後述するように、複数のタスクをロックステップで処理可能な第１のプロセッサ及び第２のプロセッサとして機能する。なお、マスタプロセッサ１２を第１のプロセッサとし、チェッカプロセッサを第２のプロセッサとしてもよいし、マスタプロセッサ１２を第２のプロセッサとし、チェッカプロセッサを第１のプロセッサとしてもよい。
【００１５】
プロセッサシステム１は、例えば、自動車等の車両の原動機（エンジン等）を制御するマイコン（マイクロコンピュータ）チップであるが、これに限定されない。つまり、プロセッサシステム１は、車両の原動機等の、制御対象システムを制御する。例えば、プロセッサシステム１は、エンジンを制御するエンジン制御システムであってもよい。プロセッサシステム１は、これらの構成要素により、予め定められた場合に、ロックステップ動作を行う。ロックステップ動作とは、マスタプロセッサ１２とチェッカプロセッサ１４とが同一のタスクを処理する動作をいう。なお、メモリ４及び比較器６は、プロセッサシステム１に設けられていなくてもよい。つまり、メモリ４及び比較器６は、プロセッサシステム１の外部にあってもよい。
【００１６】
メモリ４は、エンジンを制御するためのタスクであるエンジン制御用タスク等の、プロセッサユニット１０が処理すべき複数のタスク（データ）を記憶している。プロセッサユニット１０は、メモリ４に記憶されたタスクを読み出して（フェッチして）処理する。マスタプロセッサ１２は、取り出された複数のタスクを順次処理する。一方、チェッカプロセッサ１４は、制御回路２による制御により、ロックステップ動作を行う場合に、マスタプロセッサ１２が処理するタスクと同一のタスクを処理する。比較器６は、ロックステップ動作が行われた場合に、マスタプロセッサ１２の処理結果（マスタ処理結果）と、チェッカプロセッサ１４の処理結果（チェッカ処理結果）とを比較する。そして、比較器６は、マスタ処理結果とチェッカ処理結果とが異なる場合に、エラー通知を発信する。
【００１７】
チェッカプロセッサ１４が処理するタスクは、マスタプロセッサ１２が処理するタスクと同一である。したがって、通常であれば、チェッカ処理結果は、マスタ処理結果と同じとなるはずである。しかしながら、マスタプロセッサ１２（またはチェッカプロセッサ１４）が故障している場合は、チェッカ処理結果は、マスタ処理結果と異なってしまう。したがって、比較器６による比較処理の結果、マスタ処理結果とチェッカ処理結果とが異なる場合には、プロセッサユニット１０に故障（エラー）が発生したことが検出されることとなる。つまり、ロックステップ動作は、マスタプロセッサ１２（又はチェッカプロセッサ１４）の故障を検出するためのテスト処理として機能する。
【００１８】
制御回路２（制御部）は、ロックステップ動作を行うか否かを判断する。言い換えると、制御回路２は、ロックステップを有効または無効に制御する。制御回路２は、ロックステップ動作を行う場合（ロックステップを有効にする場合）には、チェッカプロセッサ１４を動作させるように制御する。一方、制御回路２は、ロックステップ動作を行わない場合（ロックステップを無効にする場合）には、チェッカプロセッサ１４を停止させるように制御する。ここで、制御回路２は、ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、最大プルーフテスト間隔（最大テスト間隔）以下となるように制御する。つまり、制御回路２は、第１のロックステップ処理と、第１のロックステップ処理の後の第２のロックステップ処理との間隔が、最大プルーフテスト間隔以下となるように、予め定められたタイミングにおいて、ロックステップを有効にする。
【００１９】
この最大プルーフテスト間隔は、システムごとに許容される値が定められているプルーフテスト間隔（テスト間隔）である。また、プルーフテストとは、プロセッサシステム１の機能が正常に動作しているかを確認するために行われる機能確認試験をいう。そして、プルーフテスト間隔（Ｐｒｏｏｆ  Ｔｅｓｔ  Ｐｅｒｉｏｄ：ＰＴＰ）は、そのプルーフテストを行う間隔をいう。また、最大プルーフテスト間隔（ＰＴＰｍａｘ）は、システムに許容されるプルーフテスト間隔の最大値である。ここで、本実施の形態にかかるプロセッサシステム１において、プルーフテストは、ロックステップ動作を行って故障を検出する処理に対応する。以下、詳述する。
【００２０】
図２は、本実施の形態にかかる最大プルーフテスト間隔を説明するための図である。機能安全の１つの方法として、故障が発生した場合にシステムを停止状態に移行する方法がある。本実施の形態にかかるプロセッサシステム１においては、プロセッサユニット１０（マスタプロセッサ１２）に発生した故障は（矢印Ａ）、テスト処理（ロックステップ動作）が実行されて、検出される（矢印Ｂ）。そして、比較器６がエラー通知を発信すると、制御対象システムは、停止状態に移行する（矢印Ｃ）。
【００２１】
故障が発生してから停止状態に移行するまでの期間を、フォールトトレラント時間間隔（Ｆａｕｌｔ  Ｔｏｌｅｒａｎｔ  Ｔｉｍｅ  Ｉｎｔｅｒｖａｌ）という。また、故障が発生してから故障が検出されるまでの期間を、診断テスト間隔（Ｄｉａｇｎｏｓｉｓ  Ｔｅｓｔ  Ｉｎｔｅｒｖａｌ）という。また、故障が検出されてから停止状態に移行するまでの時間を、故障反応時間（Ｆａｕｌｔ  Ｒｅａｃｔｉｏｎ  Ｔｉｍｅ）という。ＰＴＰｍａｘは、診断テスト間隔から、テスト処理に要する時間を差し引いた期間のことをいう。
【００２２】
ここで、故障反応時間（例えば３００ｍｓ（ミリ秒））は、制御対象システムの仕様及び性能等によって定められ得る。また、フォールトトレラント時間間隔（例えば５００ｍｓ）は、制御対象システムの製造者によって定められ得る。これにより、診断テスト間隔（例えば２００ｍｓ）が予め定められ得る。そして、テスト処理に要する時間（例えば５ｍｓ）は、プロセッサシステム１ごとに予め定められ得る。これにより、ＰＴＰｍａｘ（例えば１９５ｍｓ）が予め定められる。したがって、ＰＴＰｍａｘは、制御対象システムに許容される、予め定められたテスト間隔である。
【００２３】
テスト処理が行われてから次にテスト処理が行われるまでの期間が、ＰＴＰｍａｘを超える場合を仮定する。この場合、前のテスト処理が終了した直後に故障（エラー）が発生すると、故障が発生してから、次にテスト処理が行われて故障が検出までの期間が、図２に示した、予め定められた診断テスト間隔を超過する。一方、本実施の形態においては、制御回路２が、ロックステップ動作（テスト処理）でタスクが処理されてから次にロックステップ動作でタスクが処理されるまでの期間が、ＰＴＰｍａｘ以下となるように制御する。したがって、本実施の形態にかかるプロセッサシステム１は、予め定められた期間内で故障を検出することが可能となる。
【００２４】
また、全てのタスクについてロックステップ動作が行われれば、全てのタスクについてテスト処理が実行される。したがって、予め定められた期間内で故障が検出され得る。しかしながら、常にロックステップ動作が行われると、２つのプロセッサ（マスタプロセッサ１２及びチェッカプロセッサ１４）の両方が、常に動作することとなる。これにより、プロセッサシステム１における発熱量が増大するおそれがある。一方、本実施の形態においては、常にロックステップ動作が行われるわけではなく、ロックステップ動作でタスクが処理されてから次にロックステップ動作でタスクが処理されるまでの期間がＰＴＰｍａｘ以下となるという条件を満たす範囲で、ロックステップ動作が停止する。つまり、常にチェッカプロセッサ１４が動作するわけではない。したがって、システムに要求される機能安全仕様を満たし、かつ、プロセッサシステム１における発熱量を抑制することが可能となる。
【００２５】
（実施の形態１）
図３は、実施の形態１にかかるプロセッサシステム１００の構成を示す図である。実施の形態１においては、プロセッサシステム１００の制御対象システムは、車両等のエンジンシステムとしているが、これに限られない（後述する他の実施の形態も同様）。プロセッサシステム１００は、メモリ１０４と、比較器１０６と、プロセッサユニット１１０と、制御回路１２２，１２４と、ＣＧＣ（Ｃｌｏｃｋ  Ｇａｔｉｎｇ  Ｃｅｌｌ：クロックゲーティングセル）１３２，１３４とを有する。プロセッサユニット１１０は、マスタプロセッサ１１２と、チェッカプロセッサ１１４とを有する。
【００２６】
さらに、プロセッサシステム１００は、割込コントローラ１４０と、センサ入力インタフェース（ＩＦ）１５２，１５４と、走行ログタイマ１５６と、エンジン制御出力インタフェース（ＩＦ）１６２，１６４と、走行ログ制御出力インタフェース（ＩＦ）１６６と、タイマ１７０とを有する。また、プロセッサシステム１００に設けられた各構成要素は、バス１０２に接続されている。つまり、プロセッサシステム１００に設けられた各構成要素は、バス１０２を介して互いに接続されている。
【００２７】
メモリ１０４は、図１に示したメモリ４に対応する。メモリ１０４は、プロセッサユニット１１０が処理すべき複数のタスク（データ）を記憶している。実施の形態１においては、メモリ１０４は、例えば、エンジン点火制御タスク（タスクＡ）と、燃料制御タスク（タスクＢ）と、走行ログ制御タスク（タスクＣ）と、アイドルタスク（タスクＤ）と、故障診断タスク（タスクＥ）とを記憶している。また、少なくともエンジン点火制御タスク（タスクＡ）及び燃料制御タスク（タスクＢ）は、エンジン制御用タスクである。
【００２８】
プロセッサユニット１１０は、例えばロックステップＣＰＵ等である。プロセッサユニット１１０は、図１に示したプロセッサユニット１０に対応する。同様に、マスタプロセッサ１１２及びチェッカプロセッサ１１４は、それぞれ、マスタプロセッサ１２及びチェッカプロセッサ１４に対応する。なお、チェッカプロセッサ１１４の回路構成は、マスタプロセッサ１１２の回路構成と同一であってもよい。
【００２９】
ＣＧＣ１３２は、内部クロックを受信して、制御回路１２２の制御によって、クロック信号Ｓｇ１１をマスタプロセッサ１１２に供給し、または、クロック信号Ｓｇ１１の供給を停止する。ＣＧＣ１３４は、内部クロックを受信して、制御回路１２４の制御によって、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給し、または、クロック信号Ｓｇ１２の供給を停止する。
【００３０】
制御回路１２２，１２４は、図１に示した制御回路２に対応する。制御回路１２２は、ＣＧＣ１３２に対して、クロック信号Ｓｇ１１をマスタプロセッサ１１２に供給するか否かを制御する。具体的には、制御回路１２２は、クロック信号Ｓｇ１１をマスタプロセッサ１１２に供給する場合には、マスタ用クロックイネーブル信号Ｓｇ３１を有効化（Ｈｉｇｈ，アサート）する。一方、制御回路１２２は、クロック信号Ｓｇ１１をマスタプロセッサ１１２に供給しない場合には、マスタ用クロックイネーブル信号Ｓｇ３１を無効化（Ｌｏｗ，ネゲート）する。
【００３１】
ＣＧＣ１３２は、マスタ用クロックイネーブル信号Ｓｇ３１が有効化されている場合は、クロック信号Ｓｇ１１をマスタプロセッサ１１２に供給する。これにより、マスタプロセッサ１１２が動作する。一方、ＣＧＣ１３２は、マスタ用クロックイネーブル信号Ｓｇ３１が無効化されている場合は、クロック信号Ｓｇ１１をマスタプロセッサ１１２に供給することを停止する。これにより、マスタプロセッサ１１２の動作が停止する。
【００３２】
制御回路１２４は、ＣＧＣ１３４に対して、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給するか否かを制御する。具体的には、制御回路１２４は、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給する場合には、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化する。一方、制御回路１２４は、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給しない場合には、チェッカ用クロックイネーブル信号Ｓｇ３２を無効化する。
【００３３】
ＣＧＣ１３４は、チェッカ用クロックイネーブル信号Ｓｇ３２が有効化されている場合は、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給する。これにより、チェッカプロセッサ１１４が動作する。一方、ＣＧＣ１３４は、チェッカ用クロックイネーブル信号Ｓｇ３２が無効化されている場合は、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給することを停止する。これにより、チェッカプロセッサ１１４の動作が停止する。
【００３４】
制御回路１２４（制御部）は、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０に応じて、ロックステップ動作を行うか否かを判断する。言い換えると、制御回路１２４は、ロックステップを有効にするか無効にするかを判断する。この、ロックステップ動作を行うか否かの判断については後述する。制御回路１２４は、ロックステップ動作を行う場合には、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化して、チェッカプロセッサ１１４を動作させるように制御する。一方、制御回路１２４は、ロックステップ動作を行わない場合には、チェッカ用クロックイネーブル信号Ｓｇ３２を無効化して、チェッカプロセッサ１１４を停止させるように制御する。ここで、後述するように、制御回路１２４は、ロックステップ動作でタスクが処理されてから次に前記ロックステップ動作でタスクが処理されるまでの期間が、ＰＴＰｍａｘ（最大プルーフテスト間隔）以下となるように制御する。つまり、制御回路１２４は、第１のロックステップ処理と、第１のロックステップ処理の後の第２のロックステップ処理との間隔が、ＰＴＰｍａｘ（最大プルーフテスト間隔）となるように、予め定められたタイミングにおいて、ロックステップを有効にする。
【００３５】
プロセッサユニット１１０は、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０に応じて、その割り込み要求信号Ｓｇ３０に対応するタスクを、メモリ１０４から読み出す（フェッチする）。そして、プロセッサユニット１１０は、読み出されたタスクを処理する。マスタプロセッサ１１２は、取り出された複数のタスク（タスクＡ〜Ｅ）を順次処理する。一方、チェッカプロセッサ１１４は、制御回路１２４による制御により、ロックステップ動作を行う場合に、マスタプロセッサ１２が処理するタスクと同一のタスクを処理する。言い換えると、制御回路１２４による制御によりチェッカプロセッサ１１４が停止している場合は、ロックステップ動作を行わないで、マスタプロセッサ１１２のみが、タスクを処理する。一方、制御回路１２４による制御によりチェッカプロセッサ１１４が動作している場合は、ロックステップ動作を行って、マスタプロセッサ１１２及びチェッカプロセッサ１１４が、同一のタスクを処理する。
【００３６】
また、制御回路１２４は、ロックステップ動作を行う場合に、比較イネーブル信号Ｓｇ３３を有効化する。一方、制御回路１２４は、ロックステップ動作を行わない場合に、比較イネーブル信号Ｓｇ３３を無効化する。比較器１０６は、図１に示した比較器６に対応する。比較器１０６は、比較イネーブル信号Ｓｇ３３が有効化された場合に、マスタプロセッサ１１２の処理結果（マスタ処理結果）と、チェッカプロセッサ１１４の処理結果（チェッカ処理結果）とを比較する。そして、比較器１０６は、マスタ処理結果とチェッカ処理結果とが異なる場合に、エラー通知を発信する。エラー通知が発信されると、制御対象システムであるエンジンシステムは、エンジンが停止するように制御し（図２の故障反応時間に対応）、エンジンを停止させる。
【００３７】
センサ入力インタフェース１５２は、例えばエンジンシステムに設けられたノックセンサからノックセンサ信号を受信する。センサ入力インタフェース１５２は、ノックセンサ信号を受信すると、ノックセンサ信号に対応するセンサ入力割り込み要求信号Ｓｇ２１を、割込コントローラ１４０に対して出力する。センサ入力インタフェース１５４は、例えばエンジンシステムに設けられた酸素センサから酸素センサ信号を受信する。センサ入力インタフェース１５４は、酸素センサ信号を受信すると、酸素センサ信号に対応するセンサ入力割り込み要求信号Ｓｇ２２を、割込コントローラ１４０に対して出力する。
【００３８】
走行ログタイマ１５６は、例えば期間Ｔｌｏｇごとに、走行ログを記録させるための走行ログ割り込み要求信号Ｓｇ２３を、割込コントローラ１４０に対して出力する。ここで、期間Ｔｌｏｇは、一定である必要はなく、走行ログ（走行時間）を記録するために適した期間であればよい。
【００３９】
タイマ１７０は、時間をカウントする。そして、タイマ１７０は、予め定められた期間Ｔｄｔごとに、故障診断タイマ割り込み要求信号Ｓｇ２４を、割込コントローラ１４０に対して出力する。ここで、期間Ｔｄｔは、ＰＴＰｍａｘ以下である。つまり、タイマ１７０は、ＰＴＰｍａｘ以下の間隔で、故障診断タイマ割り込み要求信号Ｓｇ２４を、割込コントローラ１４０に対して出力する。なお、期間Ｔｄｔは、常に一定である必要はなく、ＰＴＰｍａｘ以下の期間で適宜変動してもよい。また、ＰＴＰｍａｘ以下の設定値（期間Ｔｄｔ）が、タイマ１７０に設けられたレジスタ１７２に設定される。これにより、予め定められたタイミングで（つまり期間Ｔｄｔごとに）、故障診断タスクが起動される。
【００４０】
割込コントローラ１４０は、上述した信号Ｓｇ２１〜Ｓｇ２４を受信する。そして、割込コントローラ１４０は、信号Ｓｇ２１〜Ｓｇ２４に応じて、割り込み要求信号Ｓｇ３０を、プロセッサユニット１１０及び制御回路１２４に対して出力する。この割り込み要求信号Ｓｇ３０は、割り込ませるべきタスクの識別情報を含み得る。具体的には、割込コントローラ１４０は、例えば、信号Ｓｇ２１，Ｓｇ２２に応じて、エンジン点火制御タスク（タスクＡ）又は燃料制御タスク（タスクＢ）の識別情報を含む割り込み要求信号Ｓｇ３０を出力する。つまり、エンジン制御タスク（エンジン点火制御タスク及び燃料制御タスク）は、センサ入力インタフェース１５２，１５４からの入力信号（Ｓｇ２１，Ｓｇ２２）に応じて起動される。これにより、制御対象であるエンジンに設けられたセンサを用いて、エンジン制御タスクを起動させることができ、それによって、エンジンを制御することが可能となる。また、割込コントローラ１４０は、信号Ｓｇ２３に応じて、走行ログ制御タスク（タスクＣ）の識別情報を含む割り込み要求信号Ｓｇ３０を出力する。また、割込コントローラ１４０は、信号Ｓｇ２４に応じて、故障診断タスク（タスクＥ）の識別情報を含む割り込み要求信号Ｓｇ３０を出力する。また、割込コントローラ１４０は、信号Ｓｇ２１〜Ｓｇ２４を受信しない場合には、アイドルタスク（タスクＤ）の識別情報を含む割り込み要求信号Ｓｇ３０を出力してもよい。
【００４１】
プロセッサユニット１１０は、エンジン点火制御タスク（タスクＡ）の識別情報を含む割り込み要求信号Ｓｇ３０を受信した場合は、メモリ１０４から、エンジン点火制御タスクを読み出す。そして、プロセッサユニット１１０は、エンジン点火制御タスクを処理し、処理結果を、エンジン制御出力インタフェース１６２に対して出力する。このとき、エンジン制御出力インタフェース１６２は、エンジン点火制御を行うためのエンジン点火制御信号を、エンジンシステムに対して出力する。
【００４２】
プロセッサユニット１１０は、燃料制御タスク（タスクＢ）の識別情報を含む割り込み要求信号Ｓｇ３０を受信した場合は、メモリ１０４から、燃料制御タスクを読み出す。そして、プロセッサユニット１１０は、燃料制御タスクを処理し、処理結果を、エンジン制御出力インタフェース１６４に対して出力する。このとき、エンジン制御出力インタフェース１６４は、燃料制御を行うための燃料制御信号を、エンジンシステムに対して出力する。
【００４３】
プロセッサユニット１１０は、走行ログ制御タスク（タスクＣ）の識別情報を含む割り込み要求信号Ｓｇ３０を受信した場合は、メモリ１０４から、走行ログ制御タスクを読み出す。プロセッサユニット１１０は、走行ログ制御タスクを処理し、処理結果を、走行ログ制御出力インタフェース１６６に対して出力する。このとき、走行ログ制御出力インタフェース１６６は、走行ログを記録するための走行ログ制御信号を、エンジンシステムに対して出力する。
【００４４】
プロセッサユニット１１０は、故障診断タスク（タスクＥ）の識別情報を含む割り込み要求信号Ｓｇ３０を受信した場合は、メモリ１０４から、故障診断タスクを読み出す。そして、プロセッサユニット１１０は、故障診断タスクを処理する。この故障診断タスクは、プロセッサユニット１１０における故障が検出され得るタスクである。故障診断タスクは、できる限り短い時間で処理されることが望ましい。
【００４５】
また、プロセッサユニット１１０は、アイドルタスク（タスクＤ）の識別情報を含む割り込み要求信号Ｓｇ３０を受信した場合、又は割り込み要求信号Ｓｇ３０を受信しない場合、メモリ１０４から、アイドルタスク（タスクＤ）を読み出す。そして、プロセッサユニット１１０は、アイドルタスクを処理する。
【００４６】
図４は、実施の形態１にかかる制御回路１２４の処理を示すフローチャートである。制御回路１２４は、割込コントローラ１４０から、割り込み要求信号Ｓｇ３０を受信する（Ｓ１０２）。制御回路１２４は、割り込み要求信号Ｓｇ３０が、故障診断タスク（タスクＥ）を示すか否かを判断する（Ｓ１０４）。割り込み要求信号Ｓｇ３０が故障診断タスクを示さない場合（Ｓ１０４のＮＯ）、制御回路１２４は、チェッカプロセッサ１１４に対するクロックの供給を停止して、ロックステップ動作を行わないように制御する（Ｓ１１２）。具体的には、制御回路１２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を無効化して、チェッカプロセッサ１１４を停止させるように制御する。また、制御回路１２４は、比較イネーブル信号Ｓｇ３３を無効化して、比較器１０６の動作を無効化する（Ｓ１１４）。
【００４７】
一方、割り込み要求信号Ｓｇ３０が故障診断タスクを示す場合（Ｓ１０４のＹＥＳ）、制御回路１２４は、チェッカプロセッサ１１４に対してクロックを供給して、ロックステップ動作を行うように制御する（Ｓ１２２）。具体的には、制御回路１２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化して、チェッカプロセッサ１１４を動作させるように制御する。また、制御回路１２４は、比較イネーブル信号Ｓｇ３３を有効化して、比較器１０６の動作を有効化する（Ｓ１２４）。
【００４８】
実施の形態１においては、上述した処理により、故障診断タスク（タスクＥ）については、ロックステップ動作が行われ、マスタプロセッサ１１２及びチェッカプロセッサ１１４によって処理される。一方、それ以外のタスク（タスクＡ〜Ｄ）については、ロックステップ動作が行われず、マスタプロセッサ１１２のみによって処理される。そして、比較器１０６は、故障診断タスクについてのマスタ処理結果及びチェッカ処理結果を比較して、両者が異なる場合には、エラー通知を発信する。これにより、故障診断タスクを用いて故障診断が実行され、故障が発生している場合は、エラーが検出される。
【００４９】
図５は、実施の形態１にかかるタイミングチャートを例示する図である。全期間において、クロック信号Ｓｇ１１はオンとなっており、したがって、マスタプロセッサ１１２は、データＤ１〜Ｄ９を処理する。ここで、データＤ１〜Ｄ３及びデータＤ８〜Ｄ９は故障診断タスクに関するデータである。したがって、時刻ｔ０〜ｔ１の間は、クロック信号Ｓｇ１２もオンとなり、チェッカプロセッサ１１４は、データＤ１〜Ｄ３を処理する。つまり、時刻ｔ０〜ｔ１の間、ロックステップ状態は「動作状態」となる。
【００５０】
時刻ｔ１〜ｔ３において、故障診断タスクではないタスクに関するデータＤ４〜Ｄ７が処理対象となる。したがって、制御回路１２４によって、チェッカ用クロックイネーブル信号Ｓｇ３２が無効化される。これにより、クロック信号Ｓｇ１２はオフとなる。つまり、ロックステップ状態は「停止状態」となる。
【００５１】
時刻ｔ２において、タイマ１７０から故障診断タイマ割り込み要求信号Ｓｇ２４が出力されると、時刻ｔ３において、制御回路１２４によって、チェッカ用クロックイネーブル信号Ｓｇ３２が有効化される。これにより、クロック信号Ｓｇ１２はオンとなり、チェッカプロセッサ１１４は、データＤ８〜Ｄ９を処理する。つまり、ロックステップ状態は「動作状態」となる。この、ロックステップ状態が停止状態となった時刻ｔ１から、ロックステップ状態が動作状態となった時刻ｔ３までの期間Ｔｄｔが、ＰＴＰｍａｘ以下となっている。
【００５２】
図６は、実施の形態１にかかる、タスク処理とチップ温度との関係を例示するグラフである。図６において、実線は、全てのタスク（タスクＡ〜Ｄ）についてロックステップ動作を行った場合（以下、比較例とする）のチップの温度を示す。一方、一点鎖線は、本実施の形態１にかかるプロセッサシステム１００のチップの温度を示す。また、Ｔ１は、例えば、エンジン制御における１サイクル（又は１工程）に要する期間に対応するが、これに限られない。また、Ｔ２は、プロセッサシステム１００がエンジン制御に関するタスクを処理するために許容される期間である。よって、このＴ２の間に、プロセッサシステム１００は、エンジン制御に関するタスクＡ〜Ｃを処理する。またＴ２＜Ｔ１である。
【００５３】
また、図６においては、タスクＡ、タスクＢ、及びタスクＣが、この順序で処理され、その後、アイドルタスクであるタスクＤが処理されている。なお、この処理されるタスクの順序は、図６の例に限られない。割込コントローラ１４０の割り込み処理によって、この順序は変動する。また、実施の形態１においては、上述したように、期間Ｔｄｔごとに、タスクＥ（故障診断タスク）が割り込まれる。なお、図６の例では、タスクＥは、タスクＣの後（図６の左側）及びタスクＤの途中（図６の右側）に割り込まれているが、これに限られない。例えば、タスクＥは、タスクＡとタスクＢとの間に割り込まれてもよいし、タスクＣの途中に割り込まれてもよい。
【００５４】
全てのタスク（タスクＡ〜Ｄ）についてロックステップ動作を行った場合、プロセッサシステム（マイコン）がタスクＡ、タスクＢ、タスクＣを順次処理すると、マスタプロセッサだけでなくチェッカプロセッサも全てのタスクを処理するので、マイコンの処理負荷が増大する。そのため、図６の実線で示すように、チップ温度は、タスクＣの処理期間で、温度閾値を超過してしまう。そのため、チップ温度が温度閾値を超えないように制御しようとすると、タスクＣを処理することができない。
【００５５】
一方、実施の形態１にかかるプロセッサシステム１００は、タスクＥ（故障診断タスク）のみをロックステップ動作で処理するように構成されている。この場合、チェッカプロセッサ１１４は、タスクＥのみを処理する。言い換えると、タスクＡ〜Ｄは、ロックステップ動作で処理されない。つまり、タスクＡ〜Ｄは、マスタプロセッサ１１２のみによって処理され、チェッカプロセッサ１１４によって処理されない。したがって、タスクＡ〜Ｄの処理によって上昇するチップ温度は、比較例と比較して、およそ半減する。
【００５６】
ここで、実施の形態１において、タスクＥが割り込まれた期間は、マスタプロセッサ１１２だけでなくチェッカプロセッサ１１４もタスクＥを処理するので、チップ温度が上昇する。しかしながら、タスクＥの処理期間は、故障を検出し得る最低限の時間となっている。したがって、タスクＥの処理期間における温度上昇は、最小限に留められる。これにより、実施の形態１においては、全てのタスクの処理期間において、チップ温度は、温度閾値を超過しない。したがって、実施の形態１にかかるプロセッサシステム１００は、発熱量を抑制することが可能となる。
【００５７】
さらに、実施の形態１においては、上述したように、タスクＥが処理されてから次にタスクＥが処理されるまでの期間（つまり、ロックステップ動作を行ってから次にロックステップ動作を行うまでの期間）Ｔｄｔが、ＰＴＰｍａｘ以下となっている。また、上述したように、ロックステップ動作を行っている間は、故障を検出することが可能である。したがって、実施の形態１にかかるプロセッサシステム１００は、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。つまり、実施の形態１にかかるプロセッサシステム１００は、発熱量を抑制しつつ、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。
【００５８】
（実施の形態２）
次に、実施の形態２について説明する。上述した実施の形態１においては、故障診断タスク（タスクＥ）を割り込ませるためのタイマ１７０は１個であった。一方、実施の形態２においては、故障診断タスク（タスクＥ）を割り込ませるためのタイマは、複数設けられている。つまり、実施の形態２においては、複数の種類の故障診断タスクが割り込まれる。また、以下、すでに説明した構成要素と実質的に同じ構成要素については、同じ符号を付し、説明を省略する。
【００５９】
図７は、実施の形態２にかかるプロセッサシステム２００の構成を示す図である。実施の形態２にかかるプロセッサシステム２００は、実施の形態１にかかるプロセッサシステム１００のタイマ１７０を、２個のタイマ２７０Ａ，２７０Ｂに置き換えた構成を有している。実施の形態２にかかるプロセッサシステム２００において、タイマ２７０Ａ，２７０Ｂ以外の構成については、実施の形態１と同様である。
【００６０】
タイマ２７０Ａは、時間をカウントする。そして、タイマ２７０Ａは、予め定められた期間ＴｄｔＡごとに、故障診断タイマ割り込み要求信号Ｓｇ２４Ａを、割込コントローラ１４０に対して出力する。ここで、期間ＴｄｔＡは、ＰＴＰｍａｘ以下である。つまり、タイマ２７０Ａは、ＰＴＰｍａｘ以下の間隔で、故障診断タイマ割り込み要求信号Ｓｇ２４Ａを、割込コントローラ１４０に対して出力する。なお、期間ＴｄｔＡは、常に一定である必要はなく、ＰＴＰｍａｘ以下の期間で変動してもよい。また、ＰＴＰｍａｘ以下の設定値（期間ＴｄｔＡ）が、タイマ２７０Ａに設けられたレジスタ２７２Ａに設定される。これにより、予め定められたタイミングで（つまり期間ＴｄｔＡごとに）、故障診断タスクＡが起動される。
【００６１】
タイマ２７０Ｂは、時間をカウントする。そして、タイマ２７０Ｂは、予め定められた期間ＴｄｔＢごとに、故障診断タイマ割り込み要求信号Ｓｇ２４Ｂを、割込コントローラ１４０に対して出力する。ここで、期間ＴｄｔＢは、ＰＴＰｍａｘ以下である。つまり、タイマ２７０Ｂは、ＰＴＰｍａｘ以下の間隔で、故障診断タイマ割り込み要求信号Ｓｇ２４Ｂを、割込コントローラ１４０に対して出力する。なお、期間ＴｄｔＢは、常に一定である必要はなく、ＰＴＰｍａｘ以下の期間で変動してもよい。また、ＰＴＰｍａｘ以下の設定値（期間ＴｄｔＢ）が、タイマ２７０Ｂに設けられたレジスタ２７２Ｂに設定される。これにより、予め定められたタイミングで（つまり期間ＴｄｔＢごとに）、故障診断タスクＢが起動される。
【００６２】
割込コントローラ１４０は、信号Ｓｇ２１〜Ｓｇ２３に加えて、信号Ｓｇ２４Ａ，Ｓｇ２４Ｂを受信する。割込コントローラ１４０は、信号Ｓｇ２４Ａに応じて、故障診断タスクＡ（タスクＥＡ）の識別情報を含む割り込み要求信号Ｓｇ３０を出力する。同様に、割込コントローラ１４０は、信号Ｓｇ２４Ｂに応じて、故障診断タスクＢ（タスクＥＢ）の識別情報を含む割り込み要求信号Ｓｇ３０を出力する。
【００６３】
制御回路１２４は、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０が故障診断タスクＡ（タスクＥＡ；第１の故障診断タスク）又は故障診断タスクＢ（タスクＥＢ；第２の故障診断タスク）を示す場合、図４に示したＳ１２２及びＳ１２４の処理を行う。一方、制御回路１２４は、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０が故障診断タスクＡ（タスクＥＡ）及び故障診断タスクＢ（タスクＥＢ）のいずれも示さない場合、図４に示したＳ１１２及びＳ１１４の処理を行う。つまり、実施の形態２においては、故障診断タスクＡ（タスクＥＡ）及び故障診断タスクＢ（タスクＥＢ）は、ロックステップ動作によって処理される。言い換えれば、故障診断タスクＡ（タスクＥＡ）及び故障診断タスクＢ（タスクＥＢ）は、マスタプロセッサ１１２だけでなくチェッカプロセッサ１１４によって処理される。これによって、故障診断タスクＡ（タスクＥＡ）及び故障診断タスクＢ（タスクＥＢ）を用いて、ロックステップ動作によって、故障診断が実行される。
【００６４】
プロセッサユニット１１０は、故障診断タスクＡ（タスクＥＡ）の識別情報を含む割り込み要求信号Ｓｇ３０を受信した場合は、メモリ１０４から、故障診断タスクＡを読み出す。そして、プロセッサユニット１１０は、故障診断タスクＡを処理する。この故障診断タスクＡは、マスタプロセッサ１１２の領域Ａ（第１の領域）及びチェッカプロセッサ１１４の領域Ａ（第１の領域）を用いて処理されるタスクである。つまり、故障診断タスクＡは、マスタプロセッサ１１２の領域Ａ（第１の領域）及びチェッカプロセッサ１１４の領域Ａ（第１の領域）における故障が検出され得るタスクである。故障診断タスクＡは、できる限り短い時間で処理されることが望ましい。
【００６５】
プロセッサユニット１１０は、故障診断タスクＢ（タスクＥＢ）の識別情報を含む割り込み要求信号Ｓｇ３０を受信した場合は、メモリ１０４から、故障診断タスクＢを読み出す。そして、プロセッサユニット１１０は、故障診断タスクＢを処理する。この故障診断タスクＢは、マスタプロセッサ１１２の領域Ｂ（第２の領域）及びチェッカプロセッサ１１４の領域Ｂ（第２の領域）を用いて処理されるタスクである。つまり、故障診断タスクＢは、マスタプロセッサ１１２の領域Ｂ（第２の領域）及びチェッカプロセッサ１１４の領域Ｂ（第２の領域）における故障が検出され得るタスクである。故障診断タスクＢは、できる限り短い時間で処理されることが望ましい。
【００６６】
ここで、故障診断タスクＡは、マスタプロセッサ１１２の領域Ａ及びチェッカプロセッサ１１４の領域Ａにおける素子を使用して処理され得るように構成されている。つまり、故障診断タスクＡが処理されている間、マスタプロセッサ１１２の領域Ａ以外の素子については、動作しなくてもよく、チェッカプロセッサ１１４の領域Ａ以外の素子については、動作しなくてもよい。同様に、故障診断タスクＢは、マスタプロセッサ１１２の領域Ｂ及びチェッカプロセッサ１１４の領域Ｂにおける素子を使用して処理され得るように構成されている。つまり、故障診断タスクＢが処理されている間、マスタプロセッサ１１２の領域Ｂ以外の素子については、動作しなくてもよく、チェッカプロセッサ１１４の領域Ｂ以外の素子については、動作しなくてもよい。なお、領域Ａ及び領域Ｂは、分離していてもよいし、互いに重複してもよい。
【００６７】
図８は、実施の形態２にかかる、タスク処理とチップ温度との関係を例示するグラフである。図８において、実線は、全てのタスク（タスクＡ〜Ｄ）についてロックステップ動作を行った比較例のチップの温度を示す。一方、一点鎖線は、本実施の形態２にかかるプロセッサシステム２００のチップの温度を示す。図８の例においては、タスクＤの途中に、タスクＥＡ及びタスクＥＢが割り込まれているが、これに限られない。タスクＥＡ，ＥＢは、タスクＡとタスクＢとの間に割り込まれてもよいし、タスクＣの途中に割り込まれてもよい。
【００６８】
実施の形態１と同様に、実施の形態２にかかるプロセッサシステム２００は、タスクＥＡ，ＥＢ（故障診断タスク）のみをロックステップ動作で処理するように構成されている。この場合、チェッカプロセッサ１１４は、タスクＥＡ，ＥＢのみを処理する。言い換えると、タスクＡ〜Ｄは、ロックステップ動作で処理されない。つまり、タスクＡ〜Ｄは、マスタプロセッサ１１２のみによって処理され、チェッカプロセッサ１１４によって処理されない。したがって、タスクＡ〜Ｄによって上昇するチップ温度は、比較例と比較して、およそ半減する。
【００６９】
ここで、実施の形態２において、タスクＥＡ，ＥＢが割り込まれた期間は、マスタプロセッサ１１２だけでなくチェッカプロセッサ１１４もタスクＥＡ，ＥＢを処理するので、温度が上昇する。しかしながら、タスクＥＡ，ＥＢの処理期間は、故障を検出し得る最低限の時間となっている。したがって、タスクＥＡ，ＥＢの処理期間における温度上昇Ｔｍｐ２は、最小限に留められる。さらに、実施の形態２においては、タスクＥＡにおいては、マスタプロセッサ１１２及びチェッカプロセッサ１１４の領域Ａのみが動作する。同様に、タスクＥＢにおいては、マスタプロセッサ１１２及びチェッカプロセッサ１１４の領域Ｂのみが動作する。つまり、実施の形態２において故障診断タスクが実行されている間に動作している素子は、実施の形態１と比較して減少している。したがって、タスクＥＡ，ＥＢの処理期間における温度上昇Ｔｍｐ２は、実施の形態１において故障診断タスク（タスクＥ）の処理期間における温度上昇Ｔｍｐ１よりも小さくなる。よって、実施の形態２にかかるプロセッサシステム２００は、実施の形態１よりもさらに発熱量を抑制することが可能となる。
【００７０】
さらに、実施の形態２と同様に、実施の形態２においても、上述したように、タスクＥＡが処理されてから次にタスクＥＡが処理されるまでの期間ＴｄｔＡ、及び、タスクＥＢが処理されてから次にタスクＥＢが処理されるまでの期間ＴｄｔＢが、ＰＴＰｍａｘ以下となっている。これにより、タスクＥＡが処理されてからタスクＥＢが処理されるまでの期間、及び、タスクＥＢが処理されてからタスクＥＡが処理されるまでの期間（つまり、ロックステップ動作を行ってから次にロックステップ動作を行うまでの期間）は、ＰＴＰｍａｘ以下となっている。したがって、実施の形態２にかかるプロセッサシステム２００も、発熱量を抑制しつつ、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。
【００７１】
（実施の形態３）
次に、実施の形態３について説明する。実施の形態３においては、故障診断タスクが割り込まれない点で、上述した実施の形態と異なる。以下に説明するように、実施の形態３においては、エンジン制御に関するタスクの種類に応じて、ロックステップ動作を行うか否かが決定される。
【００７２】
実施の形態３においては、タスクＡ（エンジン点火制御タスク），タスクＢ（燃料制御タスク）及びタスクＤ（アイドルタスク）は、「高重要タスク」（第１のタスク）と分類される。一方、タスクＣ（走行ログ制御タスク）は、「低重要タスク」（第２のタスク）と分類される。しかしながら、分類の方法は、これに限られない。ここで、「高重要タスク」とは、プロセッサシステムの制御対象であるシステム（エンジンシステム等）において、安全性及び信頼性等に関して重要度が高いタスクである。「低重要タスク」とは、プロセッサシステムの制御対象であるシステムにおいて、安全性及び信頼性等に関して重要度が低いタスクである。後述するように、実施の形態３にかかるプロセッサシステムは、高重要タスクを処理する際にロックステップ動作を行い、低重要タスクを処理する際にはロックステップ動作を行わないように構成されている。つまり、高重要タスクは、実行中に故障が発生した場合に故障の検出が要求されるタスクである。
【００７３】
図９は、実施の形態３にかかるプロセッサシステム３００の構成を示す図である。実施の形態３にかかるプロセッサシステム３００は、実施の形態１にかかるプロセッサシステム１００に設けられているタイマ１７０がなく、制御回路１２４を制御回路３２４（制御部）に置き換えたように構成されている。実施の形態３にかかるプロセッサシステム３００において、上記以外の構成については、実施の形態１と同様である。
【００７４】
制御回路３２４は、制御回路１２４と同様に、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０に応じて、ロックステップ動作を行うか否かを判断する。そして、制御回路３２４は、制御回路１２４と同様に、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化又は無効化することによって、ＣＧＣ１３４に対して、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給するか否かを制御する。さらに、制御回路３２４は、制御回路１２４と同様に、ロックステップ動作を行う場合に、比較イネーブル信号Ｓｇ３３を有効化し、ロックステップ動作を行わない場合に、比較イネーブル信号Ｓｇ３３を無効化する。
【００７５】
図１０は、実施の形態３にかかる制御回路３２４の処理を示すフローチャートである。制御回路３２４は、割込コントローラ１４０から、割り込み要求信号Ｓｇ３０を受信する（Ｓ２０２）。制御回路３２４は、割り込み要求信号Ｓｇ３０が、高重要タスク（例えばタスクＡ，Ｂ）を示すか否かを判断する（Ｓ２０４）。割り込み要求信号Ｓｇ３０が高重要タスクを示さない場合（Ｓ２０４のＮＯ）、制御回路３２４は、チェッカプロセッサ１１４に対するクロックの供給を停止して、ロックステップ動作を行わないように制御する（Ｓ２１２）。具体的には、制御回路３２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を無効化して、チェッカプロセッサ１１４を停止させるように制御する。また、制御回路３２４は、比較イネーブル信号Ｓｇ３３を無効化して、比較器１０６の動作を無効化する（Ｓ２１４）。つまり、制御回路３２４は、エンジン制御用タスク以外のタスク（例えば走行ログ制御タスク）について、ロックステップを無効にする。
【００７６】
一方、割り込み要求信号Ｓｇ３０が高重要タスクを示す場合（Ｓ２０４のＹＥＳ）、制御回路３２４は、チェッカプロセッサ１１４に対してクロックを供給して、ロックステップ動作を行うように制御する（Ｓ２２２）。具体的には、制御回路３２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化して、チェッカプロセッサ１１４を動作させるように制御する。また、制御回路３２４は、比較イネーブル信号Ｓｇ３３を有効化して、比較器１０６の動作を有効化する（Ｓ２２４）。つまり、制御回路３２４は、エンジン制御用タスク（例えばエンジン点火制御タスク及び燃料制御タスク）について、ロックステップを有効にする。
【００７７】
実施の形態３においては、上述した処理により、高重要タスク（タスクＡ，Ｂ，Ｄ）については、ロックステップ動作が行われ、マスタプロセッサ１１２及びチェッカプロセッサ１１４によって処理される。一方、それ以外のタスク（タスクＣ）については、ロックステップ動作が行われず、マスタプロセッサ１１２のみによって処理される。そして、比較器１０６は、高重要タスクについてのマスタ処理結果及びチェッカ処理結果を比較して、両者が異なる場合には、エラー通知を発信する。これにより、高重要タスクを用いて故障診断が実行され、故障が発生している場合は、エラーが検出される。
【００７８】
図１１は、実施の形態３にかかる、タスク処理とチップ温度との関係を例示するグラフである。図１１において、実線は、全てのタスク（タスクＡ〜Ｄ）についてロックステップ動作を行った場合（以下、比較例とする）のチップの温度を示す。一方、一点鎖線は、本実施の形態３にかかるプロセッサシステム３００のチップの温度を示す。
【００７９】
また、図１１においては、タスクＡ、タスクＢ、及びタスクＣが、この順序で処理され、その後、アイドルタスクであるタスクＤが処理されている。なお、この処理されるタスクの順序は、図１１の例に限られない。割込コントローラ１４０の割り込み処理によって、この順序は変動する。
【００８０】
上述した他の実施の形態と同様に、比較例においては、全てのタスクについてロックステップ動作が行われるので、マイコンの処理負荷が増大する。そのため、図１１の実線で示すように、チップ温度は、タスクＣの処理期間で、温度閾値を超過してしまう。そのため、チップ温度が温度閾値を超えないように制御しようとすると、タスクＣを処理することができない。
【００８１】
一方、本実施の形態３にかかるプロセッサシステム３００は、低重要タスク（タスクＣ）を処理する際にロックステップ動作を行わないように構成されている。つまり、チェッカプロセッサ１１４は、低重要タスク（タスクＣ）を処理しない。これにより、タスクＣの処理によって上昇するチップ温度は、比較例と比較して、およそ半減する。これにより、実施の形態３においては、全てのタスクの処理期間において、チップ温度は、温度閾値を超過しないようにすることが可能となる。したがって、実施の形態３にかかるプロセッサシステム１００は、発熱量を抑制することが可能となる。
【００８２】
ここで、最大プルーフテスト間隔（ＰＴＰｍａｘ）を満たすように故障を検出するようにすることは、最低限、高重要タスクが処理されているときになされればよい。言い換えると、低重要タスクが処理されているときは、最大プルーフテスト間隔（ＰＴＰｍａｘ）を満たすように故障を検出するようにすることは、必ずしも要求されない。ここで、本実施の形態３においては、高重要タスクが処理される場合に、必ずロックステップ動作が行われる。つまり、この場合、ロックステップ動作が行われてから次にロックステップ動作が行われるまでの期間は、ほぼ０である。したがって、実施の形態３にかかるプロセッサシステム３００は、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。つまり、実施の形態３にかかるプロセッサシステム３００は、発熱量を抑制しつつ、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。さらに、実施の形態３においては、実施の形態１等と比較して、故障診断タスクを、エンジン制御に必要なタスク（タスクＡ，タスクＢ）と別個に割り込ませることが不要となる。
【００８３】
なお、実施の形態１等においては、タスクＡ〜Ｄが高重要タスクか低重要タスクかを区別していない。しかしながら、実施の形態１等においては、ロックステップ動作によって故障診断タスクが処理されてから次にロックステップ動作によって故障診断タスクが処理されるまでの間に、全て、高重要タスクが割り込まれる場合であっても、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。
【００８４】
（実施の形態４）
次に、実施の形態４について説明する。実施の形態４においては、制御回路がプロセッサユニット１１０（マスタプロセッサ１１２）のフェッチアドレスを用いてロックステップ動作を行うか否かを判断する点で、実施の形態３と異なる。
【００８５】
図１２は、実施の形態４にかかるプロセッサシステム４００の構成を示す図である。実施の形態４にかかるプロセッサシステム４００は、実施の形態３にかかるプロセッサシステム３００の制御回路３２４を制御回路４２４（制御部）に置き換えたように構成されている。また、実施の形態４にかかるプロセッサシステム４００は、フェッチアドレスとメモリ１０４における高重要タスクのアドレス情報とを比較する比較ユニット４１０を有している。さらに、制御回路４２４は、割込コントローラ１４０から割り込み要求信号Ｓｇ３０を受信しない。その代わり、制御回路４２４は、比較ユニット４１０から、アドレスマッチ信号Ｓｇ４１を受信する。実施の形態４にかかるプロセッサシステム４００において、上記以外の構成については、実施の形態３と同様である。
【００８６】
図１３は、実施の形態４にかかる比較ユニット４１０の構成を示す図である。比較ユニット４１０は、アドレス情報抽出部４１２（４１２Ａ，４１２Ｂ，４１２Ｄ）と、アドレス比較部４１４（４１４Ａ，４１４Ｂ，４１４Ｄ）とを有する。アドレス情報抽出部４１２は、メモリ１０４において高重要タスクが格納されたアドレス情報を抽出する。具体的には、アドレス情報抽出部４１２Ａは、エンジン点火制御タスク（タスクＡ）のアドレス情報（アドレス情報Ａ）を抽出する。アドレス情報抽出部４１２Ｂは、燃料制御タスク（タスクＢ）のアドレス情報（アドレス情報Ｂ）を抽出する。アドレス情報抽出部４１２Ｄは、アイドルタスク（タスクＤ）のアドレス情報（アドレス情報Ｄ）を抽出する。
【００８７】
アドレス比較部４１４は、プロセッサユニット１１０のフェッチアドレスと、高重要タスクのアドレス情報とを比較する。そして、アドレス比較部４１４は、両者が一致する場合は、アドレスマッチ信号Ｓｇ４１を、制御回路４２４に対して出力する。具体的には、アドレス比較部４１４Ａは、フェッチアドレスと、アドレス情報抽出部４１２Ａによって抽出されたアドレス情報Ａとを比較する。そして、アドレス比較部４１４Ａは、フェッチアドレスとアドレス情報Ａとが一致する場合に、アドレスマッチ信号Ｓｇ４１Ａを、制御回路４２４に対して出力する。
【００８８】
同様に、アドレス比較部４１４Ｂは、フェッチアドレスと、アドレス情報抽出部４１２Ｂによって抽出されたアドレス情報Ｂとを比較する。そして、アドレス比較部４１４Ｂは、フェッチアドレスとアドレス情報Ｂとが一致する場合に、アドレスマッチ信号Ｓｇ４１Ｂを、制御回路４２４に対して出力する。また、アドレス比較部４１４Ｄは、フェッチアドレスと、アドレス情報抽出部４１２Ｄによって抽出されたアドレス情報Ｄとを比較する。そして、アドレス比較部４１４Ｄは、フェッチアドレスとアドレス情報Ｄとが一致する場合に、アドレスマッチ信号Ｓｇ４１Ｄを、制御回路４２４に対して出力する。
【００８９】
制御回路４２４は、アドレスマッチ信号Ｓｇ４１（Ｓｇ４１Ａ，Ｓｇ４１Ｂ，Ｓｇ４１Ｄ）に応じて、ロックステップ動作を行うか否かを判断する。具体的には、制御回路４２４は、アドレスマッチ信号Ｓｇ４１（Ｓｇ４１Ａ，Ｓｇ４１Ｂ，Ｓｇ４１Ｄ）を受信した場合に、プロセッサユニット１１０が高重要タスクを処理すると判断する。この場合、制御回路４２４は、ロックステップ動作を行うための処理（図１０のＳ２２２，Ｓ２２４の処理）を行う。一方、制御回路４２４は、アドレスマッチ信号Ｓｇ４１（Ｓｇ４１Ａ，Ｓｇ４１Ｂ，Ｓｇ４１Ｄ）を受信しない場合に、プロセッサユニット１１０が低重要タスクを処理すると判断する。この場合、制御回路４２４は、ロックステップ動作を行わないための処理（図１０のＳ２１２，Ｓ２１４の処理）を行う。
【００９０】
実施の形態４においても、実施の形態３と同様に、高重要タスクが処理される場合に、ロックステップ動作が行われ、低重要タスクが処理される場合に、ロックステップ動作が行われない。したがって、実施の形態３と同様に、実施の形態４にかかるプロセッサシステム４００は、発熱量を抑制しつつ、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。さらに、実施の形態４にかかるプロセッサシステム４００は、フェッチアドレスを用いて処理されるタスクの種類を判断する。したがって、実施の形態４にかかるプロセッサシステム４００は、割込コントローラ１４０による割り込み要求信号Ｓｇ３０によらないで、プロセッサユニット１１０が処理するタスクの種類に応じてロックステップ動作を行うか否かを判断することが可能となる。
【００９１】
（実施の形態５）
次に、実施の形態５について説明する。実施の形態５においては、通常は、任意のタスクについてロックステップ動作が行われるが、プロセッサユニット１１０が高負荷となった場合に、低重要タスクについてはロックステップ動作が行われない点で、実施の形態３と異なる。
【００９２】
図１４は、実施の形態５にかかるプロセッサシステム５００の構成を示す図である。実施の形態５にかかるプロセッサシステム５００は、実施の形態３にかかるプロセッサシステム３００の制御回路３２４を制御回路５２４（制御部）に置き換えたように構成されている。また、実施の形態５にかかるプロセッサシステム５００は、周期モニタ５７０（周期モニタ５７０Ａ，５７０Ｂ）を有している。実施の形態５にかかるプロセッサシステム５００において、上記以外の構成については、実施の形態３と同様である。
【００９３】
周期モニタ５７０は、高重要タスク（タスクＡ，Ｂ）の割り込み頻度を検出する。そして、周期モニタ５７０は、割り込み頻度が予め定められた基準を超過した場合に、周期モニタ割り込み要求信号Ｓｇ５１を、制御回路５２４に対して出力する。
【００９４】
具体的には、周期モニタ５７０Ａは、センサ入力割り込み要求信号Ｓｇ２１の割り込み間隔（割り込み周期）を監視する。周期モニタ５７０Ａは、センサ入力割り込み要求信号Ｓｇ２１の割り込み間隔が予め定められた基準間隔よりも短くなった場合に、周期モニタ割り込み要求信号Ｓｇ５１Ａを、制御回路５２４に対して出力する。言い換えると、周期モニタ５７０Ａは、センサ入力割り込み要求信号Ｓｇ２１の割り込み周期が予め定められた基準周期を超過した場合に、周期モニタ割り込み要求信号Ｓｇ５１Ａを、制御回路５２４に対して出力する。
【００９５】
同様に、周期モニタ５７０Ｂは、センサ入力割り込み要求信号Ｓｇ２２の割り込み間隔（割り込み周期）を監視する。周期モニタ５７０Ｂは、センサ入力割り込み要求信号Ｓｇ２２の割り込み間隔が予め定められた基準間隔よりも短くなった場合に、周期モニタ割り込み要求信号Ｓｇ５１Ｂを、制御回路５２４に対して出力する。言い換えると、周期モニタ５７０Ｂは、センサ入力割り込み要求信号Ｓｇ２２の割り込み周期が予め定められた基準周期を超過した場合に、周期モニタ割り込み要求信号Ｓｇ５１Ｂを、制御回路５２４に対して出力する。
【００９６】
ここで、上記基準間隔、及び基準周期は、周期モニタ５７０の監視対象の信号がどれだけの頻度で割り込まれることによって、プロセッサユニット１１０が高負荷となり、これによりチップ温度が温度閾値（図６及び後述する図１６等に示す）を超えるか否かに応じて定められる。つまり、センサ入力割り込み要求信号の割り込み間隔が基準間隔以上であれば（つまり割り込み周期が基準周期以下であれば）、プロセッサユニット１１０は、チップ温度が温度閾値を超えるほど高負荷となっていない。
【００９７】
一方、センサ入力割り込み要求信号の割り込み間隔が基準間隔未満となる場合（つまり割り込み周期が基準周期を超える場合）に、プロセッサユニット１１０が高負荷となっていることにより、チップ温度が温度閾値を超える可能性がある。したがって、周期モニタ５７０は、プロセッサユニット１１０が高負荷となった場合に、周期モニタ割り込み要求信号Ｓｇ５１（Ｓｇ５１Ａ，Ｓｇ５１Ｂ）を、制御回路５２４に対して出力する。なお、周期モニタ５７０は、周期モニタ割り込み要求信号Ｓｇ５１を出力した後の任意のタイミングで、割り込み周期のカウントをキャンセルしてもよい。
【００９８】
制御回路５２４は、制御回路１２４と同様に、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０に応じて、ロックステップ動作を行うか否かを判断する。ここで、制御回路５２４は、後述するように、プロセッサユニット１１０が高負荷となったか否かに応じて、ロックステップ動作を行うか否かを判断する。言い換えると、制御回路５２４は、少なくとも高重要タスクの処理頻度に応じて、ロックステップ動作を行うか否かを判断する。
【００９９】
そして、制御回路５２４は、制御回路１２４と同様に、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化又は無効化することによって、ＣＧＣ１３４に対して、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給するか否かを制御する。さらに、制御回路５２４は、制御回路１２４と同様に、ロックステップ動作を行う場合に、比較イネーブル信号Ｓｇ３３を有効化し、ロックステップ動作を行わない場合に、比較イネーブル信号Ｓｇ３３を無効化する。
【０１００】
図１５は、実施の形態５にかかる制御回路５２４の処理を示すフローチャートである。制御回路５２４は、割込コントローラ１４０から、割り込み要求信号Ｓｇ３０を受信する（Ｓ３０２）。制御回路５２４は、このときに、周期モニタ割り込み要求信号Ｓｇ５１（Ｓｇ５１Ａ，Ｓｇ５１Ｂ）を周期モニタ５７０から受信していたか否かを判断する（Ｓ３０４）。制御回路５２４が周期モニタ割り込み要求信号Ｓｇ５１を受信していない場合（Ｓ３０４のＮＯ）、高重要タスクの処理頻度は高くなく、したがってプロセッサユニット１１０は高負荷とはなっていない。したがって、制御回路５２４は、チェッカプロセッサ１１４に対してクロックを供給して、ロックステップ動作を行うように制御する（Ｓ３２２）。具体的には、制御回路５２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化して、チェッカプロセッサ１１４を動作させるように制御する。また、制御回路５２４は、比較イネーブル信号Ｓｇ３３を有効化して、比較器１０６の動作を有効化する（Ｓ３２４）。
【０１０１】
一方、制御回路５２４が周期モニタ割り込み要求信号Ｓｇ５１を受信していた場合（Ｓ３０４のＹＥＳ）、高重要タスクの処理頻度は高くなっており、したがってプロセッサユニット１１０は高負荷となっている。このとき、制御回路５２４は、Ｓ３０２で受信した割り込み要求信号Ｓｇ３０が低重要タスクを示すか否かを判断する（Ｓ３０６）。割り込み要求信号Ｓｇ３０が低重要タスクを示さない場合（Ｓ３０６のＮＯ）、処理すべきタスクは高重要タスクである。したがって、制御回路５２４は、ロックステップ動作を行うように制御する（Ｓ３２２，Ｓ３２４）。
【０１０２】
一方、割り込み要求信号Ｓｇ３０が低重要タスクを示す場合（Ｓ３０６のＹＥＳ）、制御回路５２４は、チェッカプロセッサ１１４に対するクロックの供給を停止して、ロックステップ動作を行わないように制御する（Ｓ３１２）。具体的には、制御回路５２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を無効化して、チェッカプロセッサ１１４を停止させるように制御する。また、制御回路５２４は、比較イネーブル信号Ｓｇ３３を無効化して、比較器１０６の動作を無効化する（Ｓ３１４）。
【０１０３】
図１６は、実施の形態５にかかる、タスク処理とチップ温度との関係を例示するグラフである。図１６において、実線は、全てのタスク（タスクＡ〜Ｄ）について常にロックステップ動作を行った場合（以下、比較例とする）のチップの温度を示す。一方、一点鎖線は、本実施の形態５にかかるプロセッサシステム５００のチップの温度を示す。
【０１０４】
また、図１６においては、タスクＡ、タスクＢ、及びタスクＣが、この順序で処理され、その後、アイドルタスクであるタスクＤが処理されている。なお、この処理されるタスクの順序は、図１６の例に限られない。割込コントローラ１４０の処理によって、この順序は変動する。また、図１６においては、前のサイクルＣｙ１及び後のサイクルＣｙ２が例示されている。ここで、図１６の例においては、サイクルＣｙ２においてタスクＢが処理されているときに、周期モニタ割り込み要求信号Ｓｇ５１が、周期モニタ５７０から出力されている。
【０１０５】
図１６に例示するように、サイクルＣｙ１においては、周期モニタ割り込み要求信号Ｓｇ５１は出力されていないので、プロセッサユニット１１０は高負荷となっていない。したがって、チップ温度は、温度閾値を超えていない。一方、サイクルＣｙ２においては、タスクＢが処理されているときに、周期モニタ割り込み要求信号Ｓｇ５１が出力されている。したがって、プロセッサユニット１１０は高負荷となっている。
【０１０６】
ここで、比較例（実線）においては、引き続きロックステップ動作が行われる。したがって、タスクＣが処理されているときに、チップ温度は温度閾値を超過してしまう。一方、本実施の形態５にかかるプロセッサシステム５００は、このとき、サイクルＣｙ２において、低重要タスクであるタスクＣを処理する際にロックステップ動作を行わないように構成されている。つまり、このとき、チェッカプロセッサ１１４は、低重要タスク（タスクＣ）を処理しない。これにより、タスクＣの処理によって上昇するチップ温度は、比較例と比較して、およそ半減する。これにより、実施の形態５においては、全てのタスクの処理期間において、チップ温度は、温度閾値を超過しないようにすることが可能となる。したがって、実施の形態５にかかるプロセッサシステム５００は、発熱量を抑制することが可能となる。
【０１０７】
さらに、実施の形態５においても、実施の形態３と同様に、高重要タスクが処理される場合に、必ずロックステップ動作が行われる。したがって、実施の形態５にかかるプロセッサシステム５００は、発熱量を抑制しつつ、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。
【０１０８】
なお、図１４においては、周期モニタ５７０は、周期モニタ５７０Ａ及び周期モニタ５７０Ｂと別個に設けられているが、周期モニタ５７０Ａと周期モニタ５７０Ｂとを分けなくてもよい。例えば、１個の周期モニタ５７０が、センサ入力割り込み要求信号Ｓｇ２１及びセンサ入力割り込み要求信号Ｓｇ２２の割り込み頻度（割り込み間隔，割り込み周期）を監視してもよい。この場合、周期モニタ５７０は、上述した実施の形態５と同様に、センサ入力割り込み要求信号Ｓｇ２１及びセンサ入力割り込み要求信号Ｓｇ２２の割り込み間隔（割り込み周期）を別個に監視してもよい。一方、周期モニタ５７０は、センサ入力割り込み要求信号Ｓｇ２１及びセンサ入力割り込み要求信号Ｓｇ２２を区別しないで、これらの割り込み要求信号の割り込み間隔（割り込み周期）を監視してもよい。つまり、周期モニタ５７０は、センサ入力割り込み要求信号Ｓｇ２１及びセンサ入力割り込み要求信号Ｓｇ２２を合わせた頻度を監視してもよい。例えば、周期モニタ５７０は、まずセンサ入力割り込み要求信号Ｓｇ２１が割り込まれ、次にセンサ入力割り込み要求信号Ｓｇ２２が割り込まれた場合に、計２カウントとしてもよい。
【０１０９】
なお、上述した実施の形態５においては、周期モニタ５７０は、高重要タスク（タスクＡ，Ｂ）の割り込み間隔を検出するとしたが、これに限られない。周期モニタ５７０は、低重要タスクのうち、割り込み頻度が高くなるとプロセッサユニット１１０が高負荷となるタスクについて、割り込み間隔を検出するようにしてもよい。さらに、周期モニタ５７０は、割り込み要求信号Ｓｇ３０を監視し、ロックステップ動作が行われるタスク（タスクＡ，Ｂ）を示す割り込み要求信号Ｓｇ３０の割り込み間隔を検出してもよい。なお、アイドルタスク（タスクＤ）については、ロックステップ動作が行われても、処理負荷が高くなく、ほとんど温度上昇がない。したがって、周期モニタ５７０は、（高重要タスクであっても）アイドルタスク（タスクＤ）を監視しなくてもよい。
【０１１０】
（実施の形態６）
次に、実施の形態６について説明する。実施の形態６においては、通常は、任意のタスクについてロックステップ動作が行われない。一方、高重要タスクが処理されてから経過した期間が、最大プルーフテスト間隔（ＰＴＰｍａｘ）以下のロックステップ動作期間（第１の期間）以上となった場合に、高重要タスクは、ロックステップ動作で処理される。言い換えると、実施の形態６においては、高重要タスクは、常にロックステップ動作で処理されるわけではなく、最大プルーフテスト間隔（ＰＴＰｍａｘ）を満たすタイミングで、断続的に、ロックステップ動作で処理される。さらに言い換えると、実施の形態６においては、高重要タスクにおけるロックステップ動作が、最大プルーフテスト間隔（ＰＴＰｍａｘ）を満たす範囲で間引かれている。
【０１１１】
図１７は、実施の形態６にかかるプロセッサシステム６００の構成を示す図である。実施の形態６にかかるプロセッサシステム６００は、実施の形態３にかかるプロセッサシステム３００の制御回路３２４を制御回路６２４（制御部）に置き換えたように構成されている。また、実施の形態６にかかるプロセッサシステム６００は、期間モニタ６７０を有している。実施の形態６にかかるプロセッサシステム６００において、上記以外の構成については、実施の形態３と同様である。
【０１１２】
期間モニタ６７０は、前回ロックステップ動作で高重要タスクが処理されてからの時間をカウントする。そして、期間モニタ６７０は、前回ロックステップ動作で高重要タスクが処理されてからロックステップ動作期間（第１の期間）が経過したときに、制御回路６２４に対して、期間モニタ割り込み要求信号Ｓｇ６１を出力する。ここで、ロックステップ動作期間は、予め定められた、ＰＴＰｍａｘよりも短い期間である。また、ＰＴＰｍａｘよりも短い設定値（ロックステップ動作期間）が、期間モニタ６７０に設けられたレジスタ６７２に設定される。
【０１１３】
制御回路６２４は、制御回路１２４と同様に、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０に応じて、ロックステップ動作を行うか否かを判断する。ここで、制御回路６２４は、後述するように、ロックステップ動作期間ごとに、ロックステップ動作を行うように制御する。そして、制御回路６２４は、制御回路１２４と同様に、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化又は無効化することによって、ＣＧＣ１３４に対して、クロック信号Ｓｇ１２をチェッカプロセッサ１１４に供給するか否かを制御する。さらに、制御回路６２４は、制御回路１２４と同様に、ロックステップ動作を行う場合に、比較イネーブル信号Ｓｇ３３を有効化し、ロックステップ動作を行わない場合に、比較イネーブル信号Ｓｇ３３を無効化する。
【０１１４】
図１８は、実施の形態６にかかる制御回路６２４の処理を示すフローチャートである。制御回路６２４は、割込コントローラ１４０から、割り込み要求信号Ｓｇ３０を受信する（Ｓ４０２）。制御回路６２４は、このときに、期間モニタ割り込み要求信号Ｓｇ６１を期間モニタ６７０から受信していたか否かを判断する（Ｓ４０４）。制御回路６２４が期間モニタ割り込み要求信号Ｓｇ６１を受信していない場合（Ｓ４０４のＮＯ）、ロックステップ動作期間を経過していない。したがって、制御回路６２４は、チェッカプロセッサ１１４に対するクロックの供給を停止して、ロックステップ動作を行わないように制御する（Ｓ４１２）。具体的には、制御回路６２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を無効化して、チェッカプロセッサ１１４を停止させるように制御する。また、制御回路６２４は、比較イネーブル信号Ｓｇ３３を無効化して、比較器１０６の動作を無効化する（Ｓ４１４）。
【０１１５】
一方、制御回路６２４が期間モニタ割り込み要求信号Ｓｇ６１を受信していた場合（Ｓ４０４のＹＥＳ）、ロックステップ動作期間が経過している。このとき、制御回路６２４は、Ｓ４０２で受信した割り込み要求信号Ｓｇ３０が高重要タスクを示すか否かを判断する（Ｓ４０６）。割り込み要求信号Ｓｇ３０が高重要タスクを示さない場合（Ｓ４０６のＮＯ）、処理すべきタスクは低重要タスクである。したがって、制御回路６２４は、ロックステップ動作を行わないように制御する（Ｓ４１２，Ｓ４１４）。
【０１１６】
一方、割り込み要求信号Ｓｇ３０が高重要タスクを示す場合（Ｓ４０６のＹＥＳ）、制御回路６２４は、チェッカプロセッサ１１４に対してクロックを供給して、ロックステップ動作を行うように制御する（Ｓ４２２）。具体的には、制御回路６２４は、チェッカ用クロックイネーブル信号Ｓｇ３２を有効化して、チェッカプロセッサ１１４を動作させるように制御する。また、制御回路６２４は、比較イネーブル信号Ｓｇ３３を有効化して、比較器１０６の動作を有効化する（Ｓ４２４）。つまり、制御回路６２４は、予め定められたタイミングで（つまりロックステップ動作期間が経過したタイミングで）発生しているエンジン制御用タスクを、ロックステップで処理させる。
【０１１７】
図１９は、実施の形態６にかかる、タスク処理とチップ温度との関係を例示するグラフである。図１９において、実線は、全てのタスク（タスクＡ〜Ｄ）について常にロックステップ動作を行った場合（以下、比較例とする）のチップの温度を示す。一方、一点鎖線は、本実施の形態６にかかるプロセッサシステム６００のチップの温度を示す。
【０１１８】
また、図１９においては、タスクＡ、タスクＢ、及びタスクＣが、この順序で処理され、その後、アイドルタスクであるタスクＤが処理されている。なお、この処理されるタスクの順序は、図１６の例に限られない。割込コントローラ１４０の処理によって、この順序は変動する。また、図１９においては、前のサイクルＣｙ１及び後のサイクルＣｙ２が例示されている。ここで、図１９の例においては、サイクルＣｙ２においてタスクＡが処理されるときに、期間モニタ割り込み要求信号Ｓｇ６１が、期間モニタ６７０から出力されている。
【０１１９】
図１９に例示するように、サイクルＣｙ１においては、期間モニタ割り込み要求信号Ｓｇ６１は出力されていないので、前回ロックステップ動作が行われてからロックステップ動作期間は経過していない。したがって、サイクルＣｙ１においては、低重要タスク（タスクＣ）だけでなく高重要タスク（タスクＡ，Ｂ）についても、ロックステップ動作は行われていない。つまり、サイクルＣｙ１においては、チェッカプロセッサ１１４は動作しないので、チップ温度の上昇は抑制されている。これに対し、比較例においては、サイクルＣｙ１においてタスクＡ〜Ｃを処理する際にロックステップ動作が行われるので、チップ温度は温度閾値を超過してしまっている（サイクルＣｙ２においても同様）。
【０１２０】
一方、実施の形態６について、サイクルＣｙ２においては、期間モニタ割り込み要求信号Ｓｇ６１が出力されている。つまり、前回ロックステップ動作が行われてからロックステップ動作期間が経過している。したがって、このタイミングでロックステップ動作が行われれば、ＰＴＰｍａｘを満たすことが可能となる。このとき、高重要タスクであるタスクＡ，Ｂが割り込まれるので、このタスクＡ，Ｂを処理する際に、ロックステップ動作が行われる。そして、低重要タスクであるタスクＣが割り込まれた際には、ロックステップ動作は行われず、チェッカプロセッサ１１４は停止する。したがって、サイクルＣｙ２においても、チップ温度は、温度閾値を超えていない。これにより、実施の形態６においては、全てのタスクの処理期間において、チップ温度は、温度閾値を超過しないようにすることが可能となる。したがって、実施の形態６にかかるプロセッサシステム６００は、発熱量を抑制することが可能となる。
【０１２１】
さらに、実施の形態６においては、ロックステップ動作期間ごとに、高重要タスクについてロックステップ動作が行われる。そして、このロックステップ動作期間は、ＰＴＰｍａｘよりも短い。つまり、ロックステップ動作が行われてから次にロックステップ動作が行われるまでの期間が、ＰＴＰｍａｘよりも短くなっている。上述したように、ロックステップ動作を行っている間は、故障を検出することが可能である。したがって、実施の形態６にかかるプロセッサシステム６００は、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。つまり、実施の形態６にかかるプロセッサシステム６００は、発熱量を抑制しつつ、予め定められた期間（ＰＴＰｍａｘ）内で故障を検出することが可能となる。
【０１２２】
さらに、実施の形態６においては、ロックステップ動作で高重要タスクを処理することによって、故障診断をするように構成されている。したがって、実施の形態１と異なり、故障診断タスクを割り込ませる必要がない。なお、ロックステップ動作期間が経過した際に高重要タスクが割り込まれない（低重要タスクが割り込まれる）場合は、実施の形態１のように、故障診断タスクを割り込ませるようにしてもよい。つまり、高重要タスク（エンジン制御用タスク）が予め定められたタイミング（ロックステップ動作期間が経過したタイミング）で発生していない場合は、故障診断タスクが起動されるようにしてもよい。この場合、制御回路６２４は、この故障診断タスクをロックステップで処理させるようにしてもよい。これにより、エンジン制御用タスクが予め定められたタイミングで発生していない場合であっても、故障診断を行うことが可能となる。
【０１２３】
なお、このロックステップ動作期間は、高重要タスクが割り込まれる頻度に応じて、適宜定められる。例えば、高重要タスクが割り込まれる頻度が大きい場合には、ロックステップ動作期間がＰＴＰｍａｘと近い値とするように大きくしても、ロックステップ動作期間が経過してから最大プルーフテスト間隔（ＰＴＰｍａｘ）の期間が経過するまでの間に高重要タスクが割り込まれる可能性が非常に高い。したがって、この場合、ＰＴＰｍａｘを満たすようにロックステップ動作を行うことは可能である。一方、高重要タスクが割り込まれる頻度が小さい場合、ロックステップ動作期間をＰＴＰｍａｘと近い値とすると、ロックステップ動作期間が経過してから最大プルーフテスト間隔（ＰＴＰｍａｘ）の期間が経過するまでの間に高重要タスクが割り込まれる可能性が低くなる。したがって、高重要タスクが割り込まれる頻度が少ない場合、ロックステップ動作期間を小さくすることが望ましい。
【０１２４】
本実施の形態６は、ほとんど低重要タスクが割り込まれなく、高重要タスクが割り込まれることが非常に多い場合、及び、エンジン制御の１サイクルと比較して、ＰＴＰｍａｘが非常に長い場合に、特に有効である。高重要タスクが割り込まれることが非常に多い場合、上述したように、ロックステップ動作期間を大きくすることが可能となる。この場合、ロックステップ動作を行わない期間が増加するので、チップ温度の上昇を抑制することが可能となる。また、１サイクルと比較してＰＴＰｍａｘが非常に長い場合は、ＰＴＰｍａｘの期間の間に、多くのサイクルが含まれ得る。この場合、ロックステップ動作を行わなくてよいサイクルが増加するので、チップ温度の上昇を抑制することが可能となる。
【０１２５】
なお、上述した実施の形態においては、期間モニタ６７０は、前回ロックステップ動作で高重要タスクが処理されてからの時間をカウントするとしたが、このような構成に限られない。例えば、期間モニタ６７０は、高重要タスクが割り込まれる時間のみをカウントしてもよい。この場合、期間モニタ６７０は、高重要タスクが処理された時間の総計がロックステップ動作期間（第１の期間）を経過したときに、制御回路６２４に対して、期間モニタ割り込み要求信号Ｓｇ６１を出力してもよい。また、期間モニタ６７０を別個に設ける必要はなく、期間モニタ６７０の機能を制御回路６２４が実行してもよい。
【０１２６】
（変形例）
なお、本実施の形態は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述した構成要素の複数を、適宜、一体として構成してもよいし、１つの構成要素の複数の機能を、適宜、別個の構成要素が実行するようにしてもよい。また、上述した実施の形態において、ロックステップ動作が行われていない状態からロックステップ動作を行う場合に、マスタプロセッサ１１２の処理データを、チェッカプロセッサ１１４にコピーするようにしてもよい。
【０１２７】
また、上記各実施の形態は、互いに組み合わせて適用することも可能である。例えば、実施の形態１と実施の形態６とを組み合わせてもよい。つまり、実施の形態１において故障診断タスクの割り込みタイミングで高重要タスクが割り込まれる場合に、実施の形態６のように、故障診断タスクの代わりに高重要タスクを割り込ませて、ロックステップ動作が行われるようにしてもよい。また、実施の形態１と実施の形態４とを組み合わせ、故障診断タスクが割り込まれたことを、フェッチアドレスを用いて判断するように構成してもよい。
【０１２８】
また、上述した実施の形態では、チェッカプロセッサ１１４にクロックを供給することによってチェッカプロセッサ１１４を動作させ、クロックの供給を停止することによってチェッカプロセッサ１１４を停止するようにしたが、このような構成に限られない。つまり、チェッカプロセッサ１１４を動作させるためにクロックを用いる必要はない。例えば、マスタプロセッサ１１２とチェッカプロセッサ１１４とで別個に電源を供給するように構成してもよい。この場合、ロックステップ動作を行うときにチェッカプロセッサ１１４の電源をオンし、ロックステップ動作を行わないときにチェッカプロセッサ１１４の電源をオフするように構成してもよい。
【０１２９】
また、上述した実施の形態においては、割込コントローラ１４０からの割り込み要求信号Ｓｇ３０に割り込まれるべきタスクの識別情報が含まれるとしたが、このような構成に限られない。例えば、各タスク（例えばタスクＡ〜Ｅ）に対応する複数の割り込み線が、割込コントローラ１４０とプロセッサユニット１１０との間に設けられてもよい。この場合、各割り込み線の信号が有効化（アサート）された場合に、プロセッサユニット１１０は、対応するタスクをメモリ１０４から読み出すようにしてもよい。また、上述した実施の形態においては、制御回路は割込コントローラ１４０と別個の構成要素としたが、制御回路を割込コントローラ１４０と一体の構成としてもよい。
【０１３０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【０１３１】
１  プロセッサシステム
２  制御回路
４  メモリ
６  比較器
１０  プロセッサユニット
１２  マスタプロセッサ
１４  チェッカプロセッサ
１００  プロセッサシステム
１０２  バス
１０４  メモリ
１０６  比較器
１１０  プロセッサユニット
１１２  マスタプロセッサ
１１４  チェッカプロセッサ
１２２  制御回路
１２４  制御回路
１３２，１３４  クロックゲーティングセル（ＣＧＣ）
１４０  割込コントローラ
１５２，１５４  センサ入力インタフェース
１５６  走行ログタイマ
１６２，１６４  エンジン制御出力インタフェース
１６６  走行ログ制御出力インタフェース
１７０  タイマ
１７２  レジスタ
２００  プロセッサシステム
２７０Ａ，２７０Ｂ  タイマ
２７２Ａ，２７２Ｂ  レジスタ
３００  プロセッサシステム
３２４  制御回路
４００  プロセッサシステム
４１０  比較ユニット
４１２  アドレス情報抽出部
４１４  アドレス比較部
４２４  制御回路
５００  プロセッサシステム
５２４  制御回路
５７０  周期モニタ
６００  プロセッサシステム
６２４  制御回路
６７０  期間モニタ
６７２  レジスタ
【図１】
0006360387.tif 000002
【図２】
0006360387.tif 000003
【図３】
0006360387.tif 000004
【図４】
0006360387.tif 000005
【図５】
0006360387.tif 000006
【図６】
0006360387.tif 000007
【図７】
0006360387.tif 000008
【図８】
0006360387.tif 000009
【図９】
0006360387.tif 000010
【図１０】
0006360387.tif 000011
【図１１】
0006360387.tif 000012
【図１２】
0006360387.tif 000013
【図１３】
0006360387.tif 000014
【図１４】
0006360387.tif 000015
【図１５】
0006360387.tif 000016
【図１６】
0006360387.tif 000017
【図１７】
0006360387.tif 000018
【図１８】
0006360387.tif 000019
【図１９】
0006360387.tif 000020