(57)【要約】【課題】センサの多重化、ＥＣＵの多重化によらずに、制御系の冗長化し、システムコストを高くすることなく制御系の動作信頼性の向上を図ること。【解決手段】マルチコアＣＰＵ４２を用い、複数個のプロセッサコア４５Ａ、４５Ｂ、４５Ｃで同一の制御プログラムを個々に並行して実行し、それらプロセッサコアが行った各プロセッサコア毎の演算の結果を多数決により区分し、多数決区分から正常な演算結果を選定する。【選択図】図１
2009215944.tif 000002
【特許請求の範囲】
【請求項１】
各々個別に演算処理を行う複数個のプロセッサコアと、各プロセッサコア毎に付随するキャッシュメモリと、前記複数個のプロセッサコアおよび前記キャッシュメモリを制御するコントローラを含む少なくとも１つのマルチコアＣＰＵを有し、制御プログラムの実行により所定の制御を行うマイクロコンピュータ式の電子制御装置であって、
前記複数個のプロセッサコアは各々同一のプログラムを個々に並行して実行し、
前記コントローラは、前記複数個のプロセッサコアが行った各プロセッサコア毎の演算の結果を多数決により区分する多数決実行部と、前記多数決実行部による演算結果の多数決区分から正常な演算結果を選定する演算結果選定部とを有することを特徴とする電子制御装置。
【請求項２】
前記コントローラは、前記複数個のプロセッサコアの各々が制御プログラムを実行したことによる演算結果を各プロセッサコアに対応する前記キャッシュメモリに格納し、前記多数決実行部は、前記プロセッサコア毎の前記キャッシュメモリに格納された演算結果を多数決方式で比較し、多数の演算結果と少数の演算結果に区分することを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記コントローラは、前記多数決実行部による演算結果の多数決区分から故障しているプロセッサコアを特定する故障コア特定部を有することを特徴とする請求項１または２に記載の電子制御装置。
【請求項４】
前記故障コア特定部は、前記多数決実行部によって区分された多数の演算結果と少数の演算結果のうち、少数の演算結果を演算したプロセッサコアを故障コアと特定することを特徴とする請求項３に記載の電子制御装置。
【請求項５】
前記コントローラは、前記故障コア特定部により特定された故障しているプロセッサコアの動作を強制的に停止させる故障コア停止部を有することを特徴とする請求項３又は４に記載の電子制御装置。
【請求項６】
前記故障コア特定部によって故障しているプロセッサコアが特定された場合に、プロセッサコアが故障していることを使用者に通知するコア故障通知部を有することを特徴とする請求項３から５のいずれか一項に記載の電子制御装置。
【請求項７】
前記演算結果選定部は、前記多数決実行部によって区分された多数の演算結果と少数の演算結果のうち、多数の演算結果を正常な演算結果として採用し、当該多数の演算結果を演算したプロセッサコアによる制御処理を継続する処理を行うことを特徴とする請求項１から６のいずれか一項に記載の電子制御装置。
【請求項８】
前記電子制御装置は、各種センサよりセンサ信号を入力し、制御プログラムの実行により制御対象のアクチュエータへ制御指令出力して前記アクチュエータの制御を行うことを特徴とする請求項１から７のいずれか一項に記載の電子制御装置。
【請求項９】
各々個別の演算処理を行う複数個のプロセッサコアと、各プロセッサコア毎に付随するキャッシュメモリと、前記複数個のプロセッサコアおよび前記キャッシュメモリを制御するコントローラを含む少なくとも１つのマルチコアＣＰＵを有し、制御プログラムの実行により所定の制御を行うマイクロコンピュータ式の電子制御装置の運転方法であって、
前記複数個のプロセッサコアの各々において同一のプログラムを個々に並行して実行し、
前記複数個のプロセッサコアが行った各プロセッサコア毎の演算の結果を、対応する前記キャッシュメモリに格納し、
前記プロセッサコア毎の前記キャッシュメモリに格納された演算結果を多数決方式で比較して多数の演算結果と少数の演算結果に区分し、
前記区分のうち多数の演算結果を正常な演算結果として採用し、当該多数の演算結果を演算したプロセッサコアによる制御処理を継続し、少数の演算結果を演算したプロセッサコアを故障コアと特定することを特徴とする電子制御装置の運転方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子制御装置及びその運転方法に係り、例えば、自動車に搭載されるマイクロコンピュータ式の電子制御装置であって、マルチコアＣＰＵを用いた電子制御装置及びその運転方法に関する。
【背景技術】
【０００２】
自動車の電子制御装置において、エンジン制御、ブレーキ制御、ステアリング制御等、安定に動作し、信頼性、安全性が求められる制御に対しては、制御系が２重系、３重系に冗長化されている。冗長化に関しては、センサを多重化する方法と、センサ信号に従いアクチュエータを制御するマイクロコンピュータによる電子制御ユニット（ＥＣＵ）を多重化する方法とがある。
【０００３】
センサの多重化に関しては、２つのセンサを使用し、一方のセンサ出力が閾値を超えた場合には、そのセンサを故障と判断し、閾値を超えていない他方の正常なセンサ出力をＥＣＵ入力として使用する制御システムが考えられている（例えば、特許文献１）。
【０００４】
ＥＣＵの多重化に関しては、２つＥＣＵを使用してアクチュエータを動作させる制御システムにおいて、２つのＥＣＵが互いの故障状態を監視し合い、故障と判断したＥＣＵを停止し、故障でないＥＣＵを使用してフェールセーフ処理へ移行させる制御システムが考えられている（例えば、特許文献２）。
【０００５】
【特許文献１】特開平８−３１２４３５号公報
【特許文献２】特開２００２−３２７６３１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
センサの多重化による冗長化は、センサ個数、センサ取付位置の増加にとどまらず、センサとＥＣＵとを接続するワイヤハーネスの線数の増加を招き、好ましくない。
【０００７】
ＥＣＵの多重化による冗長化は、同じ構成のＥＣＵを複数個使用する必要があり、システムコストが高くなることが考えられる。
【０００８】
本発明は前記解決しようとする課題に鑑みてなされたものであって、その目的とするところは、センサの多重化、ＥＣＵの多重化によらずに、制御系の冗長化し、システムコストを高くすることなく制御系の動作信頼性の向上を図った電子制御装置およびその運転方法を提供することにある。
【課題を解決するための手段】
【０００９】
前記目的を達成するために、本発明による電子制御装置は、各々個別に演算処理を行う複数個（好ましくは１以外の奇数）のプロセッサコアと、各プロセッサコア毎に付随するキャッシュメモリと、前記複数個のプロセッサコアおよび前記キャッシュメモリを制御するコントローラを含む少なくとも１つのマルチコアＣＰＵを有し、制御プログラムの実行により所定の制御を行うマイクロコンピュータ式の電子制御装置であって、前記複数個のプロセッサコアは各々同一のプログラムを個々に並行して実行し、前記コントローラは、前記複数個のプロセッサコアが行った各プロセッサコア毎の演算の結果を多数決により区分する多数決実行部と、前記多数決実行部による演算結果の多数決区分から正常な演算結果を選定する演算結果選定部とを有する。
【００１０】
本発明による電子制御装置は、好ましくは、さらに、前記コントローラは、前記多数決実行部によって区分された多数の演算結果と少数の演算結果のうち、少数の演算結果を演算したプロセッサコアを故障コアと特定する故障コア特定部を有する。
【００１１】
また、本発明による電子制御装置の前記演算結果選定部は、前記多数決実行部によって区分された多数の演算結果と少数の演算結果のうち、多数の演算結果を正常な演算結果として採用し、多数の演算結果を演算したプロセッサコアによる制御処理を継続する処理を行う。
【００１２】
また、前記目的を達成するために、本発明による電子制御装置の運転方法は、各々個別に演算処理を行う複数個のプロセッサコアと、各プロセッサコア毎に付随するキャッシュメモリと、前記複数個のプロセッサコアおよび前記キャッシュメモリを制御するコントローラを含む少なくとも１つのマルチコアＣＰＵを有し、制御プログラムの実行により所定の制御を行うマイクロコンピュータ式の電子制御装置の運転方法であって、前記複数個のプロセッサコアの各々において同一のプログラムを個々に並行して実行し、前記複数個のプロセッサコアが行った各プロセッサコア毎の演算の結果を、対応する前記キャッシュメモリに格納し、前記プロセッサコア毎の前記キャッシュメモリに格納された演算結果を多数決方式で比較して多数の演算結果と少数の演算結果に区分し、前記区分のうち多数の演算結果を正常な演算結果として採用し、当該多数の演算結果を演算したプロセッサコアによる制御処理を継続し、少数の演算結果を演算したプロセッサコアを故障コアと特定する。
【発明の効果】
【００１３】
本発明による電子制御装置およびその運転方法によれば、マルチコアＣＰＵのプロセッサコアが各々同一のプログラムを個々に並行して実行することにより、センサの多重化、ＥＣＵの多重化によらずに、単一のＥＣＵによって制御系の冗長化が図られ、システムコストを高くすることなく制御系の動作信頼性の向上を図ることができ、併せてフェールセーフ処理へ移行せずに通常の制御処理を継続することができる。
【発明を実施するための最良の形態】
【００１４】
本発明による電子制御装置およびその運転方法の実施形態を、図を参照して説明する。
【００１５】
図１は、本発明による電子制御装置の一実施形態を自動車用のエンジン制御ＥＣＵとして実施した構成を示している。エンジン制御ＥＣＵ１０は、アクセルセンサや吸入空気流量センサ、クランク角度センサ、エンジン冷却水温度センサ、空燃比センサ等のセンサ類２０より各種情報を入力し、所定のエンジン制御プログラムを実行し、燃料噴射弁や点火制御用のイグナイタ等のアクチュエータ類３０へ制御指令を出力する。
【００１６】
エンジン制御ＥＣＵ１０はマイクロコンピュータ４０により構成されている。マイクロコンピュータ４０は、入出力インタフェース等の周辺モジュール４１、マルチコアＣＰＵ４２、ＲＯＭ４３、ＲＡＭ４４を備える。
【００１７】
マルチコアＣＰＵ４２は、ワンチップ構成で、各々個別に演算処理を行う複数個の、好ましくは奇数（本実施形態では３個）のプロセッサコア４５Ａ、４５Ｂ、４５Ｃと、各プロセッサコア４５Ａ、４５Ｂ、４５Ｃ毎に個別に付随するキャッシュメモリ４６Ａ、４６Ｂ、４６Ｃと、プロセッサコア４５Ａ、４５Ｂ、４５Ｃおよびキャッシュメモリ４６Ａ、４６Ｂ、４６Ｃを制御するコントローラ４７により構成されている。コントローラ４７は、当該コントローラ用のキャッシュメモリ４８を有する。
【００１８】
プロセッサコア４５Ａ、４５Ｂ、４５Ｃは、各々、コントローラ４７による制御もとに、ＲＯＭ４３に格納された同一の制御プログラムを個々に並行して実行する。
【００１９】
プロセッサコア４５Ａ、４５Ｂ、４５Ｃの各々が制御プログラムを実行したことによる演算結果は、各コアに対応するキャッシュメモリ４６Ａ、４６Ｂ、４６Ｃに格納される。つまり、プロセッサコア４５Ａの演算結果はキャッシュメモリ４６Ａに、プロセッサコア４５Ｂの演算結果はキャッシュメモリ４６Ｂに、プロセッサコア４５Ｃの演算結果はキャッシュメモリ４６Ｃに各々格納される。
【００２０】
コントローラ４７は、ソフトウェア処理により、多数決実行部４９と、演算結果選定部５０と、故障コア特定部５１と、故障コア停止部５２と、コア故障通知部５３を構成する。
【００２１】
多数決実行部４９は、複数個のプロセッサコア４５Ａ、４５Ｂ、４５Ｃが行った各プロセッサコア４５Ａ、４５Ｂ、４５Ｃ毎の演算結果を多数決により区分するものであり、プロセッサコア４５Ａ、４５Ｂ、４５Ｃ毎のキャッシュメモリ４６Ａ、４６Ｂ、４６Ｃに格納された演算結果を多数決方式で比較し、多数の演算結果と少数の演算結果に区分する。この区分結果は、コントローラ４７のキャッシュメモリ４８に格納される。
【００２２】
このように、各プロセッサコア４５Ａ、４５Ｂ、４５Ｃが実行した同一の制御プログラムの演算結果を評価するために、マルチコアＣＰＵ４２の２次キャッシュメモリ（４６Ａ、４６Ｂ、４６Ｃ）は、各プロセッサコア毎の専用のキャッシュメモリとして構成されている必要がある。
【００２３】
演算結果選定部５０は、キャッシュメモリ４８に格納されている多数決実行部４９による演算結果の多数決区分から、正常な演算結果を選定するものであり、多数決実行部４９によって区分された多数の演算結果と少数の演算結果のうち、多数の演算結果を正常な演算結果として採用し、そのことをＲＡＭ４４に書き込み、当該多数の演算結果を演算したプロセッサコアによる制御処理を継続する処理を行う。
【００２４】
故障コア特定部５１は、キャッシュメモリ４８に格納されている多数決実行部４９による演算結果の多数決区分から、故障しているプロセッサコアを特定するものであり、多数決実行部４９によって区分された多数の演算結果と少数の演算結果のうち、少数の演算結果を演算したプロセッサコアを故障コアと特定し、そのことをＲＡＭ４４に書き込む。
【００２５】
故障コア停止部５２は、ＲＡＭ４４を参照し、故障コア特定部５１により特定された故障しているプロセッサコアの動作を強制的に停止させる処理を行う。
【００２６】
コア故障通知部５３は、ＲＡＭ４４を参照し、故障コア特定部５１によって故障しているプロセッサコアが特定された場合に、プロセッサコアが故障していることを使用者に通知する処理を行う。この故障通知処理には、図２に示されているように、自動車のインストルメントパネル１００やカーナビゲーションのディスプレイ等に「エンジンＥＵＣ故障」の表示をしたり、音声による「エンジンＥＵＣ故障」の警告がある。
【００２７】
図３は、本実施形態によるエンジン制御ＥＣＵ１０の運転方法の一つの実施形態を示すフローチャートである。
【００２８】
まず、同一のプログラムを各プロセッサコア４５Ａ、４５Ｂ、４５Ｃで実行し（ステップＳ１１）、各プロセッサコア４５Ａ、４５Ｂ、４５Ｃの演算結果を対応するキャッシュメモリ４６Ａ、４６Ｂ、４６Ｃに格納する（ステップＳ１２）。
【００２９】
つぎに、プロセッサコア４５Ａ、４５Ｂ、４５Ｃ毎のキャッシュメモリ４６Ａ、４６Ｂ、４６Ｃに格納された演算結果を多数決方式で比較し、多数の演算結果と少数の演算結果に区分し（ステップＳ１３）、この区分結果をキャッシュメモリ４８に格納する（ステップＳ１４）。
【００３０】
区分結果のうち多数の演算結果を正常な演算結果として採用し、当該多数の演算結果を演算したプロセッサコアによる制御処理を継続する（ステップＳ１５）。少数の演算結果が発生した場合には（ステップＳ１６）、少数の演算結果を演算したプロセッサコアを故障コアと特定する（ステップＳ１７）。
【００３１】
つぎに、故障コアと特定されたプロセッサコアの動作を強制的に停止させる処理を行い（ステップＳ１８）、ついで、プロセッサコアが故障していることを使用者に通知する処理を行う（ステップＳ１９）。
【００３２】
上述した実施形態によれば、以下に示す効果を得ることができる。
(１)複数のＥＣＵを用いることなく、単一のＥＣＵに搭載するＣＰＵを、複数個のプロセッサコアを搭載した、いわゆるマルチコアＣＰＵとすることで、コア故障に対する冗長化が可能になり、コスト削減が可能となる。
(２)複数個のプロセッサコアの演算結果から正常な演算結果を多数決により決定するため、故障時においてもフェールセーフ処理へ移行する必要がなく、通常の制御処理を継続することができる。
【００３３】
なお、上述の実施形態では、プロセッサコアを３個としたが、マルチコアＣＰＵのコア数は４個以上の複数個であってもよく、多数決処理のために、５個、７個の奇数であることが好ましい。
【図面の簡単な説明】
【００３４】
【図１】本発明による電子制御装置を自動車用のエンジン制御ＥＣＵとして実施した一つの実施形態を示すブロック図。
【図２】本実施形態における故障表示例を示す説明図。
【図３】本実施形態によるエンジン制御ＥＣＵ１０の運転方法の一つの実施形態を示すフローチャート。
【符号の説明】
【００３５】
１０  エンジン制御ＥＣＵ
２０  センサ類
３０  アクチュエータ類
４０  マイクロコンピュータ
４２  マルチコアＣＰＵ
４５Ａ、４５Ｂ、４５Ｃ  プロセッサコア
４６Ａ、４６Ｂ、４６Ｃ  キャッシュメモリ
４７  コントローラ
４９  多数決実行部
５０  演算結果選定部
５１  故障コア特定部
５２  故障コア停止部
５３  コア故障通知部
【図１】
2009215944.tif 000003
【図２】
2009215944.tif 000004
【図３】
2009215944.tif 000005