(57)【特許請求の範囲】
【請求項１】
プロセッサコアを起動する際に、ハードウェアによるハードウェア診断と、前記ハードウェア診断後にソフトウェアを用いて行うソフトウェア診断とを含む診断処理を実施する診断手段と、
全てのプロセッサコアを起動する場合と、全てのプロセッサコアの中の一部を再起動する場合とで、前記診断処理の実行方法を変更する診断処理情報変更処理手段と、を備え、
前記一部のプロセッサコアを再起動するには、前記一部のプロセッサコアに対応する記憶領域に対して、前記一部のプロセッサコアがソフトウェア診断を実行する前に、他のプロセッサコアがソフトウェア診断を実行することを特徴とする車両制御装置。
【請求項２】
請求項１において、
前記他のプロセッサコアが前記一部のプロセッサコアに対応する記憶領域に対してソフトウェア診断を実行する際に、前記ソフトウェア診断の進捗を監視することを特徴とする車両制御装置。
【請求項３】
請求項２において、
前記一部のプロセッサコアは、前記ハードウェア診断が完了した場合には、前記他のプロセッサコアによるソフトウェア診断の進捗を参照して、前記一部のプロセッサコアに対応する記憶領域に対するソフトウェア診断を開始することを特徴とする車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自動車、鉄道、エレベータ等の輸送機器など、必要とする機能が多岐にわたるシステム、複数のハードウェア、複数のソフトウェアを組み合わせた規模の大きなシステムの、マルチコアプロセッサを用いてシステムを制御する車両制御装置に関する
【背景技術】
【０００２】
自動車、エレベータ、建設機械等ではいわゆる組込みソフトウェアによって制御対象を制御する、組込み制御装置が用いられている。組込みソフトウェアは、従来の機械的機構や電気回路による方式に比べて柔軟かつ高度な制御が実現できることが利点として挙げられる。
【０００３】
このような組込み制御装置、例えば車両の制御装置では、車載スペースや製造コスト低減を目的に、従来は別々のＥＣＵ（Electronic Control Unit）に搭載されていた機能を１つのＥＣＵに集約するＥＣＵの統合化が進んでいる。また、ＥＣＵ統合化が進む中で、複数の機能を同一ＥＣＵ上で処理する必要性から、車両制御装置へのマルチコアプロセッサの活用が始まっている。
【０００４】
マルチコアプロセッサは複数のコアを用いて別々の処理を並列に実施することが可能なだけでなく、一部のコアが故障した場合に、そのコアに割り当てられていたアプリケーションソフトを他のコアで代替処理させることができる。これにより、システムの冗長化を実現可能なことが知られ、例えば特許文献１に記載されている。
【０００５】
また、マルチコアプロセッサの一部のコアに故障が検知された場合、故障が検知されたコアのみを再起動させることで、システム全体の機能を停止させることなく故障したコアを復帰させることが可能である。これを実現する技術として、マルチコアプロセッサのコアごとに稼働・非稼働を動的に変更する技術が知られ、例えば特許文献２に記載されている。
【０００６】
しかしながら、マルチコアプロセッサ全体の処理能力には上限があるため、一部のコアの再起動中は、当初のアプリケーションソフト全てを実行することは難しい。このため、故障が検出されたコアがいち早く再起動し、元のアプリケーションソフトを実行することが望まれる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００７−１５４０５０号公報
【特許文献２】特開２００６−２６０５６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
図２は、マルチコアマイコンのコア毎に車載機能を割り振った例である。図２のコア１では、ＡＤＡＳ（Advanced Driver Assistance Systems）機能を実行し、コア２では電動ブレーキシステム、コアｎには通信機能を実行している。このように、マルチコアプロセッサを用いてＥＣＵの統合化を行うことで、従来は別々のＥＣＵで処理していた機能を一つのＥＣＵで処理することが可能となる。
【０００９】
図３は、マルチコアマイコンのコア１で故障が検知された場合における、コアの再起動までの手順を示している。図３（ａ）は、コア１に異常が検知された図である。図３（ｂ）は、特許文献１を用いることで、コア１で実施していたＡＤＡＳ機能を、コア２で代替処理している図である。図３（ｃ）は、特許文献２を用いてコア１のみ再起動している図である。
【００１０】
このように、マルチコアプロセッサを用いることで、例えコアの一部に異常が検知された場合においても、システム全体の機能を停止させることなく動作を継続させ、元の状態に復帰することが可能である。
【００１１】
図３（ａ）、（ｂ）、（ｃ）はコア１のＡＤＡＳ機能をコア２で実行するため、コア２の処理量が大幅に増加する。このことから、コアに異常が検出された場合は、可能な限りコア１が高速で再起動し、元の状態に復帰することが望まれる。しかしながら、上記従来技術ではコアの再起動処理に関する検討は行われていない。
【００１２】
以上のことから、本発明の目的は、マルチコアプロセッサ上の一部のコアに異常が検知された場合において、異常が検出されたコアが再起動し、再度アプリケーションソフトを実行するまでに要する時間を短縮することが可能な車両制御装置を提供するものである。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本発明は、全てのプロセッサコアを起動する場合と、全てのプロセッサコアの中の一部を再起動する場合とで、別々の診断処理の実行方法を備え、一部のプロセッサコアのみを再起動する場合においては、一部のプロセッサコアを再起動する場合の診断処理方法を実行することで、一部のプロセッサコアの再起動に要する時間を短縮する。特に一部プロセッサコア再起動時の診断処理では、再起動するプロセッサコアがソフトウェア診断を実行する前に、他のプロセッサコアがソフトウェア診断を実行することで、再起動に要する時間を短縮する。
【発明の効果】
【００１４】
本発明によれば、マルチコアプロセッサの一部のコアのみを再起動する場合において、コアが再起動しアプリケーションソフトを実行するまでに要する時間を短縮することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明による一実施の形態における車両制御装置のシステム構成図。
【図２】マルチコアマイコンを用いた機能の並列処理の具体例を示す図。
【図３】従来技術を用いた場合における、マルチコアマイコン中で異常が検知されてからコア再起動までの具体的な処理の流れを示す図。
【図４】マイコン起動からアプリケーションソフトが開始されるまでの一般例を示すフローチャート。
【図５】提案手法におけるプロセッサコア起動からアプリケーションが開始されるまでの具体例を示すフローチャート。
【図６】提案手法における、一部コア再起動時のソフトウェア診断の具体例を示す図。
【図７】提案手法における記憶領域のソフトウェア診断進捗状況の具体例を示す図。
【図８】提案手法における複数のコアが連携した場合の、記憶領域のソフトウェア診断進捗状況の具体例を示す図。
【発明を実施するための形態】
【００１６】
以下、図面を参照して本発明による一実施形態を説明する。
【００１７】
図１は、本発明による一実施の形態の車両制御装置のシステム構成を示すシステム構成図である。車両制御装置１は、診断手法１０１、診断処理方法変更部１０２、電源ＩＣ１０３、マルチコアプロセッサ１０４、記憶領域１０５、診断処理ログ１０６を有する。
【００１８】
ここでマルチコアプロセッサ１０４は、複数のコア１０４０１、１０４０２、１０４０３を有する。
【００１９】
ここで、診断手法１０１は全コアが起動した際に用いる診断手法である全コア起動時用診断手法１０１０１と、一部のコアが再起動した際に用いる診断手法である一部コア再起動時用診断手法１０１０２を有する。診断処理方法変更部１０２は、プロセッサコアが起動した際に、全コアが起動した場合は全コア起動時用診断手法１０１０１を選択し、一部のコアが再起動した場合は一部コア再起動時用診断手法１０１０２を選択する。これにより、一部のコアが再起動しアプリケーションソフトを実行するまでに要する時間を短縮する。
【００２０】
図４は、マイコン起動からアプリケーションが開始されるまでの一般例を示すフローチャートである。ステップＳ１０２０１０１より処理がＳＴＡＲＴする。ステップＳ１０２０１０２でマイコンが起動する。ステップＳ１０２０１０３でＢＩＳＴ（Built-in self-test）が実行される。ステップＳ１０２０１０４でソフトウェアを用いた診断が実行される。ステップＳ１０２０１０５でアプリケーションが開始され、ステップＳ１０２０１０６で処理を終了する。
【００２１】
図４に示すように、一般的にマイコンが起動した場合はまず回路（ハードウェア）に組み込まれたＢＩＳＴが実行され、その後にソフトウェアを用いた診断が実行される。
【００２２】
ここで、ステップＳ１０２０１０４に記載のソフトウェア診断とは、例えばソフトウェアを用いた記憶領域１０５を対象としたＲＡＭ診断を指す。より具体的には、記憶領域１０５に固定値をＷｒｉｔｅし、Ｗｒｉｔｅ後にＲｅａｄした結果が最初の固定値と等しいかどうかを判定する。これにより、記憶領域１０５が正常稼働しているかどうかを診断することができる。このほかにもソフトウェア診断とは、チェックサムを用いたＲＯＭ診断や故障注入によるＥＣＣ（Error Check and Correct）機能の診断などがある。
【００２３】
図５は、提案手法におけるプロセッサコア起動からアプリケーションが開始されるまでの具体例を示すフローチャートである、ステップＳ１０２０２０１より処理がＳＴＡＲＴする。ステップＳ１０２０２０２でコアが起動する。ステップＳ１０２０２０３で、一部のプロセッサコアのみ起動されたかどうか判定する。Ｙｅｓの場合、つまり一部のプロセッサコアのみ起動した場合はステップＳ１０２０２０４に進み、一部コア再起動時用診断手法１０１０１を実行する。ステップＳ１０２０２０４で一部コア起動時用のＢＩＳＴを実行する。ステップＳ１０２０２０５で、一部コア再起動時用のソフトウェア診断を実行する。ステップＳ１０２０２０６でアプリケーションソフトが開始され、ステップＳ１０２０２０７で処理を終了する。一方、ステップＳ１０２０２０３でＮｏの場合、つまり全部のプロセッサコアが起動した場合はステップＳ１０２０２０８に進み、全コア起動時用診断手法１０１０２を実行する。ステップＳ１０２０２０８で全コア起動時用のＢＩＳＴを実行する。ステップＳ１０２０２０９で全コア起動時用のソフトウェア診断を実行する。ステップＳ１０２０２０６でアプリケーションソフトが開始され、ステップＳ１０２０２０７で処理を終了する。
【００２４】
図６は、提案技術を用いた場合における一部コア再起動時のソフトウェア診断の具体例を示している。図６では、コア１に異常が検知され、一部コア再起動時用診断手法１０１０１が実行されている状態を示している。提案技術では、異常が検知されたコア１がＢＩＳＴ実行中に、コアｎが先んじてソフトウェア診断を実行し、診断対象範囲であるコア１用記憶領域を診断することで、コア１がアプリケーションソフトを開始するまでの時間を短縮することができる。
【００２５】
図７は、記憶領域１０５０２をソフトウェア診断する場合の進捗状況管理を示している。図７に示すように、ソフトウェア診断の進捗状況の管理方法として、診断が終了した範囲のアドレス値を記録管理することで、診断途中で作業を変更した場合においても、元の場所からソフトウェア診断を再開することができる。
【００２６】
図８は、複数のコアが連携した場合の記憶領域１０５０３のソフトウェア診断進捗状況を示している。図８に示したように、例えば２つのコアで診断する場合、片方はアドレス値の低い方から診断を開始し、もう片方がアドレス値の高い方から診断を開始することで、診断に要する時間をさらに短縮することが可能である。
【符号の説明】
【００２７】
１：車両制御装置、１０１：診断手段、１０１０１：全コア起動時用診断手段、１０１０２：一部コア再起動時用診断手段、１０２：診断処理方法変更部、１０３：電源ＩＣ、１０４：マルチコアプロセッサ、１０４０１、１０４０２、１０４０３：プロセッサコア、１０５、１０５０１、１０５０２、１０５０３：記憶領域、１０６：診断処理ログ。 
【図１】
0006393628.tif 000002
【図２】
0006393628.tif 000003
【図３】
0006393628.tif 000004
【図４】
0006393628.tif 000005
【図５】
0006393628.tif 000006
【図６】
0006393628.tif 000007
【図７】
0006393628.tif 000008
【図８】
0006393628.tif 000009