(57)【要約】【課題】複数のプロセッサコアが正常に同じプログラムを実行しているか否かを判定するとともに、メモリチェックの実行機会を確保する電子制御装置を提供する。【解決手段】切替装置３０は、ロックステップモードと非ロックステップモードとを交互に切り替えるようにコア１０、１２に指令する。ロックステップモード時において、コア１０、１２は、同じプログラムを同期して実行する。非ロックステップモード時において、コア１０はロックステップモード時よりも安全性の要求の低いプログラムを実行し、コア１２は、ＲＡＭ２０およびＲＯＭ２２に対してメモリチェックを実行する。ロックステップモード時において、ＲＡＭ出力比較部４２はコア１０、１２がＲＡＭ２０に書き込むデータを比較し、ＲＡＭ入力比較部４４はコア１０、１２がＲＡＭ２０から読み出すデータを比較し、ＲＯＭ入力比較部４６はコア１０、１２がＲＯＭ２２から読み出すデータを比較する。【選択図】図１
2014056396.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサコア（１０、１２）と、
前記複数のプロセッサコアが実行するプログラム、ならびに前記プログラムが使用するデータが記憶されるメモリ（２０、２２）と、
前記複数のプロセッサコアが同じプログラムを実行するロックステップモードと、前記複数のプロセッサコアの一部（１０）が前記ロックステップモード時よりも安全性に対する要求の低いプログラムを実行するとともに、残りのプロセッサコア（１２）が前記メモリの少なくとも一部に対してメモリチェックを実行する非ロックステップモードとを交互に切り替える切替手段（３０）と、
前記ロックステップモード時に前記複数のプロセッサコアが正常に同じプログラムを実行しているか否かを判定する判定手段（４０）と、
を備えることを特徴とする電子制御装置。
【請求項２】
前記ロックステップモード時に使用するデータと同じ、またはビット反転したチェック用データが前記メモリに記憶されており、
前記非ロックステップモード時において、前記残りのプロセッサコアは前記チェック用データを使用して前記メモリチェックを実行する、
ことを特徴とする請求項１に記載の電子制御装置。
【請求項３】
前記ロックステップモード時に使用するデータの誤り検出符号としてＣＲＣデータが生成されて前記メモリに記憶されており、
前記非ロックステップモード時において、前記残りのプロセッサコアは前記ＣＲＣデータを使用して前記メモリチェックを実行する、
ことを特徴とする請求項１に記載の電子制御装置。
【請求項４】
前記ロックステップモード時に使用するデータの誤り検出符号としてチェックサムが生成されて前記メモリに記憶されており、
前記非ロックステップモード時において、前記残りのプロセッサコアは前記チェックサムを使用して前記メモリチェックを実行する、
ことを特徴とする請求項１に記載の電子制御装置。
【請求項５】
前記メモリ（２０、２２、２４）のうち、前記メモリチェックの対象となる不揮発性メモリ（２２）とは異なる不揮発性メモリ（２４）に前記メモリチェックを実行するプログラムが記憶されていることを特徴とする請求項１から４のいずれか一項に記載の電子制御装置。
【請求項６】
前記非ロックステップモード時において、前記残りのプロセッサコアは繰り返し前記メモリチェックを実行することを特徴とする請求項１から５のいずれか一項に記載の電子制御装置。
【請求項７】
前記切替手段は、前記非ロックステップモード時において、前記一部のプロセッサコアが実行するプログラムが前記残りのプロセッサコアが実行する前記メモリチェックよりも先に終了すると、次回の前記非ロックステップモード時に前記メモリチェックを再開するための再開情報を前記残りのプロセッサコアがメモリ（２０）に記憶した後、前記ロックステップモードに切り替えることを特徴とする請求項１から６のいずれか一項に記載の電子制御装置。
【請求項８】
前記残りのプロセッサコアは、前記再開情報が記憶される前記メモリの記憶領域に対して前記メモリチェックを最初に実行することを特徴とする請求項７に記載の電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサコアの実行モードをロックステップモードと非ロックステップモードとに交互に切り替える電子制御装置に関する。
【背景技術】
【０００２】
電子制御装置が複数のプロセッサコアを備えている場合、複数のプロセッサコアに同じプログラムを実行させて実行結果を比較することにより、複数のプロセッサコアが正常に同じプログラムを実行しているか否かを判定するロックステップモードを採用することが知られている（例えば、特許文献１参照。）。
【０００３】
例えば自動車分野においては、車両制御の安全性を確保する要求が高いので、車両制御を実行する電子制御装置の作動を監視し、電子制御装置の故障を検出すると速やかにフェイルセーフ処理を実行することが要求される。そのため、複数のプロセッサコアを備えている電子制御装置に対して、ロックステップモードが採用される。
【０００４】
ロックステップモードよりも安全性の要求が低いプログラムを実行する場合には、各プロセッサコアが異なるプログラムを実行する非ロックステップモードに実行モードを切り替え、各プロセッサコアで異なるプログラムを実行することが考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−３０２２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
複数のプロセッサコアが正常に同じプログラムを実行しているか否かを判定する以外に、ＲＯＭおよびＲＡＭ等のメモリの異常を検出するメモリチェックを実行することも重要である。従来、メモリチェックは、例えば通常処理を妨げないように処理負荷の低いときに実行されていた。
【０００７】
しかしながら、メモリチェックを処理負荷の低いときに実行する方式では、処理負荷の高い状態が続くとメモリチェックの実行機会が低下し、所定時間内にメモリチェックを終了できないおそれがある。
【０００８】
本発明は上記課題を解決するためになされたものであり、複数のプロセッサコアが正常に同じプログラムを実行しているか否かを判定するとともに、メモリチェックの実行機会を確保する電子制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の電子制御装置によると、ロックステップモード時ではなく非ロックステップモード時にメモリチェックを実行するので、ロックステップモードにおける処理負荷を低減できる。
【００１０】
また、ロックステップモードと非ロックステップモードとが交互に切り替えて実行されるので、処理負荷の高低に関わらず非ロックステップモードにおいてメモリチェックが実行される。これにより、メモリチェックの実行機会を確保できる。
【００１１】
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、またはそれらの組合せにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態による電子制御装置を示すブロック図。
【図２】メモリのデータ構造図。
【図３】デュアルコアによる実行モードの推移を示す図。
【図４】ロックステップモード時の処理を示すフローチャート。
【図５】非ロックステップモード時の処理を示すフローチャート。
【図６】本発明の第２実施形態による電子制御装置を示すブロック図。
【発明を実施するための形態】
【００１３】
以下、本発明の実施形態を図に基づいて説明する。
［第１実施形態］
図１に示すマイクロコンピュータ（以下、「マイコン」とも言う。）２は、例えば車両に搭載されており、エンジン制御を実行する電子制御装置である。マイコン２は、２個のプロセッサコア（以下、単に「コア」とも言う。）１０、１２を備えるデュアルコアマイコンである。マイコン２は、コア１０、１２、ＲＡＭ２０、ＲＯＭ２２、切替装置３０および比較回路４０を備えている。
【００１４】
コア１０、１２は、ＲＯＭ２２に記憶されている制御プログラムに基づいてエンジン制御を実行する。また、コア１２は、ＲＯＭ２２に記憶されているチェックプログラムに基づいてＲＡＭ２０およびＲＯＭ２２に対してメモリチェックを実行する。
【００１５】
切替装置３０は、ロックステップモード時においてはコア１０、１２からの切替通知により、非ロックステップモード時においてはコア１０からの切替通知により、コア１０、１２に対して実行モードを切り替えるよう指令する。ロックステップモードおよび非ロックステップモードについては後述する。
【００１６】
比較回路４０は、ＲＡＭ出力比較部４２、ＲＡＭ入力比較部４４、ＲＯＭ入力比較部４６から構成されている。ロックステップモード時において、ＲＡＭ出力比較部４２は、コア１０、１２がＲＡＭ２０に書き込むデータを比較し、ＲＡＭ入力比較部４４は、コア１０、１２がＲＡＭ２０から読み出すデータを比較し、ＲＯＭ入力比較部４６は、コア１０、１２がＲＯＭ２２から読み出すデータを比較する。比較回路４０は、各データの比較結果を出力する。
【００１７】
比較回路４０が出力する比較結果信号は、コア１０からの制御信号により、ロックステップモード時に有効になり、非ロックステップモード時に無効になる。比較回路４０の比較結果信号が有効になりオンになると、コア１０、１２に対する割り込み信号になる。
【００１８】
（データ構造）
本実施形態では、ＲＡＭ２０およびＲＯＭ２２のデータ構造を図２に示すように設定している。ＲＡＭ２０およびＲＯＭ２２のデータは、安全性の要求の高いロックステップモードで使用される安全機能データと、安全機能データのミラーデータと、ロックステップモードよりも安全性の要求の低い非ロックステップモードで使用される非安全機能データとに記憶領域を分割して記憶される。図２に示す記憶領域の境界アドレスは一例として表わしたものであり、ＲＡＭ２０およびＲＯＭ２２において適宜設定される。
【００１９】
ミラーデータは、安全機能データのビットを反転したデータである。ＲＡＭ２０に安全機能データを書き込むときには、書き込むデータのビットを反転してミラーデータの領域にデータを書き込む。
【００２０】
尚、非安全機能データは安全機能データよりも安全性の要求が低いだけで、安全性を要求されていないわけではない。同様に、非ロックステップモード時に実行される非安全機能プログラムはロックステップモード時に実行される安全機能プログラムよりも安全性の要求が低いだけで、安全性を要求されていないわけではない。
【００２１】
（実行モード）
コア１０、１２の実行モードは、前述したように、切替装置３０によりロックステップモードまたは非ロックステップモードに切り替えられる。
【００２２】
ロックステップモードは、例えばインジェクタの噴射制御、スロットル開度制御、トランスミッション制御のように安全性の要求が高い安全機能プログラムを実行するときに選択され、非ロックステップモードは、ロックステップモードで実行される安全機能プログラムよりも安全性の要求が低い非安全機能プログラムを実行するときに選択される。つまり、コア１０、１２の実行モードは、エンジン制御の流れにより切り替わる。
【００２３】
図３では、処理（１）、（２）、（４）、（５）、（７）でロックステップモードが選択され、処理（３）、（６）で非ロックステップモードが選択されている。
ロックステップモードでは、コア１０、１２は同じ安全機能プログラムを同期して実行する。一方、非ロックステップモードでは、コア１０は非安全機能プログラムを実行し、コア１２はＲＡＭ２０、ＲＯＭ２２に対してメモリチェックを実行する。
【００２４】
コア１０は、非ロックステップモードにおいて非安全機能プログラムの実行を終了すると、切替装置３０に非安全機能プログラムの終了を通知する。すると、切替装置３０は、コア１２にメモリチェックの実行を終了するように指令する。このとき、コア１２がメモリチェックを実行中であれば、コア１２は、次の非ロックステップモードでメモリチェックを再開するアドレスをＲＡＭ２０に記憶する。これにより、次回のメモリチェックの実行開始時に再開アドレスを読み出せば、コア１２は、メモリチェックを中断した状態から再開することができる。
【００２５】
例えば、図２に示すデータ構造に対し、図３に示す非ロックステップモードの処理（３）において、０ｘ４３２０までコア１２によるメモリチェックが終了した時点で切替装置３０からメモリチェックの終了を指令されると、コア１２は、次にメモリチェックを再開するアドレスとして０ｘ４３２１をＲＡＭ２０に記憶する。
【００２６】
切替装置３０は、コア１２からメモリチェックの再開アドレスをＲＡＭ２０に記憶したことを通知されると、コア１０、１２にロックステップモードの実行を指令する。
そして、コア１０、１２の両方からロックステップモードの処理（５）において安全機能プログラムの実行を終了したことを通知されると、切替装置３０は、ロックステップモードから非ロックステップモードへの切替をコア１０、１２に指令する。
【００２７】
コア１２は、非ロックステップモードの処理（６）の開始時にＲＡＭ２０からメモリチェックの再開アドレスとして０ｘ４３２１を読み出すことにより、非ロックステップモードの処理（３）でメモリチェックを中断した状態から再開することができる。
【００２８】
次に、ロックステップモード時および非ロックステップモード時の処理について説明する。図４および図５において「Ｓ」はステップを表わしている。
（ロックステップモード処理）
図４のＳ４００において、切替装置３０がロックステップモードの実行を指令すると、コア１０は比較回路４０の比較結果信号を有効にする。そして、コア１０、１２は、ロックステップモード処理として、前述した噴射制御、スロットル開度制御、トランスミッション制御のように安全性の要求が高い制御について同じ安全機能プログラムを同期して実行する（Ｓ４０２）。
【００２９】
比較回路４０は、ＲＡＭ２０からコア１０、１２への入力データ、コア１０、１２からＲＡＭ２０への出力データ、ＲＯＭ２２からコア１０、１２への入力データをそれぞれ比較する（Ｓ５００）。いずれかの比較結果が不一致であれば（Ｓ５０２：Ｙｅｓ）、比較回路４０はコア１０、１２に対して比較結果の不一致を示す割り込み信号を出力する（Ｓ５０４）。
【００３０】
コア１０、１２は比較回路４０が比較結果の不一致を示す割り込み信号を出力すると、マイコン２の停止等のフェイルセーフ処理を実行する（Ｓ４０４）。
（非ロックステップモード処理）
図５のＳ４１０において、切替装置３０が非ロックステップモードの実行を指令すると、コア１０は比較回路４０の比較結果信号を無効にする。そして、コア１０は、非ロックステップモード処理として、ロックステップモード時よりも安全性に対する要求の低い非安全機能プログラムを実行し、コア１２はＲＡＭ２０、ＲＯＭ２２に対してメモリチェックを実行する（Ｓ４１２）。
【００３１】
ＲＡＭ２０、ＲＯＭ２２に対するメモリチェックは、安全機能データと安全機能データをビット反転したミラーデータとの排他的論理和を演算し、演算結果データのビットがすべて１であれば正常、１ビットでも０であれば異常と判定する。
【００３２】
コア１２によるメモリチェック時に異常が発生すると（Ｓ４１４：Ｙｅｓ）、コア１２はマイコン２の停止等のフェイルセーフ処理を実行する（Ｓ４１６）。
すべてのメモリチェックに異常がない場合（Ｓ４１４：Ｎｏ）、コア１０による非ロックステップモード処理が実行中であれば、コア１２はメモリチェックを最初から繰り返す。このように、メモリチェックを繰り返すことにより、ＲＡＭ２０およびＲＯＭ２２の最新の状態をチェックできる。
【００３３】
一方、コア１２によるメモリチェック結果に異常がない状態でコア１０の非安全機能プログラムの実行が終了し、次の非安全機能プログラムの実行要求がある場合、コア１０は次の非安全機能プログラムを実行する。
【００３４】
尚、コア１２がメモリチェックを最初から開始する場合、メモリチェックの再開アドレスを記憶するＲＡＭ２０の領域からメモリチェックを実行することが望ましい。これにより、メモリチェック中に非ロックステップモードからロックステップモードに実行モードが切り替わるときに、正常なＲＡＭ２０の記憶領域にメモリチェックの再開アドレスを記憶できる。
【００３５】
［第２実施形態］
図６に示す第２実施形態のマイコン４は、コア１２が実行するメモリチェック用のプログラムが記憶されているＲＯＭ２４を、他のプログラムが記憶されているＲＯＭ２２と別に設置している点が図１に示すマイコン２と異なっている。マイコン４のその他の構成はマイコン２と実質的に同一である。
【００３６】
非ロックステップモードにおいてコア１２は、ＲＯＭ２４をメモリチェックの対象とはせず、ＲＯＭ２４に記憶されているプログラムによりＲＡＭ２０、ＲＯＭ２２のメモリチェックを実行する。これにより、ＲＯＭ２４が正常であれば、ＲＡＭ２０、ＲＯＭ２２に対するメモリチェックを正常に実行できる。
【００３７】
以上説明した上記実施形態では、ロックステップモードにおいて、コア１０、１２が同じ安全機能プログラムを同期して実行し、比較回路４０がコア１０、１２の入出力データを比較することにより、２個のコア１０、１２が正常に作動しているか否かを判定できる。
【００３８】
一方、非ロックステップモードにおいては、コア１０は非安全機能プログラムを実行し、コア１２はメモリチェックを実行する。ロックステップモードと非ロックステップモードとは交互に実行されるので、処理負荷の高低に関わらずメモリチェックの実行機会を確保できる。
【００３９】
［他の実施形態］
上記実施形態ではデュアルコアマイコンを例にして説明したが、電子制御装置が備えるプロセッサコアの数は３個以上でもよい。この場合、ロックステップモードにおける処理異常の判定は、３個以上のプロセッサコアの出力結果の多数決をとり、少数派となったプロセッサコアを異常と判定することが考えられる。
【００４０】
また、３個以上のプロセッサコアを備える場合、非ロックステップモードにおいて、複数のプロセッサコアによりメモリチェックの対象領域を分けて並列にメモリチェックを実行してもよい。並列にメモリチェックを実行することにより、メモリチェックを完了するために要する時間を短縮できる。
【００４１】
上記実施形態では、安全機能データをビット反転したミラーデータをチェック用データとして使用しメモリチェックを実行した。これ以外にも、安全機能データをコピーしたデータをチェック用データとするか、安全機能データに対してＣＲＣデータ、チェックサムを使用してメモリチェックを実行してもよい。ＣＲＣデータ、チェックサムを使用すれば、安全機能データと同じ、またはビット反転したチェック用データを使用するよりもメモリ容量を低減できる。
【００４２】
本発明の電子制御装置は、車両に搭載される電子制御装置に限らず、複数のプロセッサコアを備え、プログラムに要求される安全性に応じてロックステップモードと非ロックステップモードとを切り替えるのであれば、どのような用途に使用される電子制御装置に適用してもよい。
【００４３】
このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【００４４】
２、４：ＥＣＵ（電子制御装置、切替手段、判定手段）、１０、１２：プロセッサコア、２０：ＲＡＭ（メモリ）、２２、２４：ＲＯＭ（メモリ）、３０：切替装置（切替手段）、４０：比較回路（判定手段）
【図１】
2014056396.tif 000003
【図２】
2014056396.tif 000004
【図３】
2014056396.tif 000005
【図４】
2014056396.tif 000006
【図５】
2014056396.tif 000007
【図６】
2014056396.tif 000008