(57)【要約】【課題】読出し専用の記憶部に記憶された異常データを有する異常グループを他の空き領域に容量を確保して正常に書き込むマイクロコンピュータを提供する。【解決手段】マイクロコンピュータは、ＲＯＭに記憶されている各グループについて、異常データを有する場合には異常データの誤り訂正を実行し（Ｓ４００）、異常グループまたは正常グループにかかわらず、各グループの優先度およびデータ量の大きさに基づいて、ＲＡＭに書き込む対象であるか否かを判定するための書込対象判定処理を実行する（Ｓ４０２）。該当グループが書込対象ではない場合（Ｓ４０４：Ｎｏ）、該当グループは不要と判断してＲＡＭに書き込まない（Ｓ４０６）。該当グループが書込対象であり（Ｓ４０４：Ｙｅｓ）、ＲＡＭに書き込み領域がある場合（Ｓ４０８：Ｙｅｓ）、ＲＯＭの該当グループのデータをＲＡＭに書き込む（Ｓ４１０）。【選択図】図３
2015115049.tif 000002
【特許請求の範囲】
【請求項１】
所定のグループ毎にデータを記憶している読出し専用の第１記憶部（２０）と、
読み書き可能な第２記憶部（３０、４２、５２、６０）と、
前記第１記憶部の異常を検出する第１異常検出手段（１０、４０、５０）と、
前記第２記憶部の異常を検出する第２異常検出手段（１０、４０、５０、Ｓ４３２）と、
前記第１記憶部に記憶されているグループのうち、少なくとも前記第１異常検出手段が異常を検出した異常データを有する異常グループを、前記第２異常検出手段が異常を検出した前記第２記憶部の異常領域以外の正常領域に書き込む書込手段（１０、４０、５０、Ｓ４１０）と、
を備えることを特徴とするマイクロコンピュータ（２、４）。
【請求項２】
前記書込手段が前記異常グループを前記正常領域に書き込むときに、前記異常データの誤りを訂正する訂正手段（１０、４０、５０、Ｓ４００）を備えることを特徴とする請求項１に記載のマイクロコンピュータ。
【請求項３】
前記各グループにデータ属性として優先度が設定されていることを特徴とする請求項１または２に記載のマイクロコンピュータ。
【請求項４】
前記各グループにデータ属性として大きさが設定されていることを特徴とする請求項１から３のいずれか一項に記載のマイクロコンピュータ。
【請求項５】
前記正常領域に前記各グループを書き込むか否かを前記データ属性に基づいて判定する判定手段（１０、４０、５０、Ｓ４２０、Ｓ４２４）を備えることを特徴とする請求項３または４に記載のマイクロコンピュータ。
【請求項６】
マルチコア（４０、５０）を備え、
前記書込手段は、前記各コアが有する前記第２記憶部（４２、５２）の前記正常領域に少なくとも前記異常グループを書き込む、
ことを特徴とする請求項１から５のいずれか一項に記載のマイクロコンピュータ（４）。
【請求項７】
前記書込手段は、前記第１記憶部に記憶されている前記グループのうち、前記異常データのない正常グループも前記正常領域に書き込むことを特徴とする請求項１から６のいずれか一項に記載のマイクロコンピュータ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、読出し専用の記憶部に記憶されている異常データを読み書き可能な記憶部に書き込む車載電子制御装置に搭載されるマイクロコンピュータに関する。
【背景技術】
【０００２】
電子制御装置の記憶部に異常が発生し、プログラムまたは定数等のデータを正常に読み出せない場合、正常な処理を実行できなくなる。この場合、電子制御装置をリセットして読出しをリトライすることが考えられる。しかし、リトライしても記憶部の異常が回復しない場合には、処理を実行できないという問題がある。
【０００３】
特に、車両に搭載される電子制御装置の場合、電子制御装置をリセットしてリトライしても記憶部の異常が回復しないと車両制御を実行できないので、車両を正常に走行させることができない。したがって、記憶部の異常が発生したときに適切な処理を施して車両制御を実行することが望まれる。
【０００４】
そこで、特許文献１に開示されている技術では、書き込み可能な記憶装置に記憶されたデータが異常の場合、同じ書き込み可能な記憶装置の空き領域に異常データを訂正して書き込んでいる。そして、訂正されたデータに基づいて処理が実行される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００９−５０６４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
異常データが記憶されている同じ書き込み可能な記憶装置の空き領域に異常データを訂正して書き込む構成では、書き込み可能な記憶装置の空き領域の容量を予め確保しておかないと、容量が不足して異常データを訂正して書き込むことが困難になるおそれがある。また、空き領域が正常であるとは限らないので、異常な空き領域に訂正したデータを書き込むおそれがある。
【０００７】
本発明は、上記課題を解決するためになされたものであり、読出し専用の記憶部に記憶された異常データを有する異常グループを他の空き領域に容量を確保して正常に書き込む車載電子制御装置に搭載されるマイクロコンピュータを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のマイクロコンピュータは、読出し専用の第１記憶部と、読み書き可能な第２記憶部と、第１記憶部の異常を検出する第１異常検出手段と、第２記憶部の異常を検出する第２異常検出手段と、第１記憶部に記憶されているグループのうち、少なくとも第１異常検出手段が異常を検出した異常データを有する異常グループを、第２異常検出手段が異常を検出した第２記憶部の異常領域以外の正常領域に書き込む書込手段と、を備える。
【０００９】
この構成によれば、読出し専用の第１記憶部とは異なる読み書き可能な第２記憶部に異常データを有する異常グループを書き込むので、異常グループを書き込むための空き領域の容量を十分に確保できる。また、第２記憶部の異常を検出した上で第２記憶部の異常領域以外の正常領域に異常グループを書き込むので、異常データを正常に第２記憶部に書き込むことができる。
【００１０】
そして、読み書き可能な第２記憶部に異常グループを書き込むので、異常データを訂正せずに第２記憶部に書き込む場合にも、第２記憶部上で必要なときに異常データを訂正して使用することができる。尚、異常データを訂正してから第２記憶部に書き込んでもよい。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態によるマイクロコンピュータを示すブロック図。
【図２】第１実施形態によるＲＯＭからＲＡＭへのデータ書き込みを示す模式図。
【図３】ＲＯＭ異常時処理を示すフローチャート。
【図４】書込対象判定処理を示すフローチャート。
【図５】ＲＡＭ空き領域チェック処理を示すフローチャート。
【図６】第２実施形態によるマイクロコンピュータを示すブロック図。
【図７】第２実施形態によるＲＯＭからＲＡＭへのデータ書き込みを示す模式図。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図に基づいて説明する。
［第１実施形態］
図１に示すように、マイクロコンピュータ２は、ＣＰＵ１０とＲＯＭ２０とＲＡＭ３０と共通バス１００とを備えており、車載電子制御装置に搭載される。ＣＰＵ１０は、マイクロコンピュータ２の起動時と、起動後において一定時間間隔または処理負荷の低いときなどに、ＲＯＭ２０およびＲＡＭ３０のメモリチェックを行う。
【００１３】
図２に示すように、ＲＯＭ２０には、重要度に基づく優先度および大きさに応じて分割されたグループ毎にデータが記憶されている。各グループのデータは、先頭アドレスからの相対アドレスでアクセスされる。各グループの先頭アドレスは、例えば各グループと対応付けてアドレステーブルとしてＲＯＭ２０に記憶されている。また、各グループのデータ属性である優先度および大きさは、例えばデータ属性テーブルとして全グループをまとめてＲＯＭ２０に記憶されている。
【００１４】
図２において、ＰｇＧｒはプログラムデータを表わし、ＣｓｔＧｒは定数データを表わし、ＶａｒＧｒは変数データを表わし、Ｐａｒｉｔｙは誤り訂正符号としてのパリティデータを表わしている。ＰｇＧｒ＿＊、ＣｓｔＧｒ＿＊、ＶａｒＧｒ＿＊の「＊」は優先度を表わしている。優先度の高さはＡ＞Ｂ＞Ｃである。例えば、優先度の高い「Ａ」のプログラムはブレーキ制御、燃料噴射制御に関するプログラムであり、優先度の低い「Ｃ」のプログラムは補正処理に関するプログラムである。
【００１５】
本実施形態では、ＣＰＵ１０は、ＲＯＭ２０の異常を検出しない場合、ＲＯＭ２０に記憶されたプログラムおよび定数等のデータに基づいて車両制御を実行する。尚、変数データの領域はＲＡＭ３０上に確保される。
【００１６】
ＣＰＵ１０は、ＲＯＭ２０の異常を検出すると、ＲＯＭ２０に記憶されているデータをＲＡＭ３０の異常領域以外の正常領域に書き込み、ＲＡＭ３０に書き込まれたプログラムおよび定数等のデータに基づいて車両制御を実行する。本実施形態では、ＲＯＭ２０の異常時に、異常データを有する異常グループだけでなく正常データを有する正常グループもＲＡＭ３０に書き込む。
【００１７】
異常グループをＲＡＭ３０に書き込むときには、誤り訂正符号としてパリティ（Ｐａｒｉｔｙ）データを使用し、異常を訂正できるデータであれば訂正してからＲＡＭ３０に書き込む。例えば図２では、ＲＯＭ２０のＰｇＧｒ＿Ｂに異常データが存在しており、その異常を訂正してからＲＡＭ３０に書き込んでいる。
【００１８】
ＲＯＭ２０のデータは、異常であるか正常であるかにかかわらずＲＡＭ３０に無条件に書き込まれる訳ではなく、ＲＯＭ２０に記憶されている各グループの優先度および大きさを考慮して書込対象であるか否かを判定される。例えば図２では、ＰｇＧｒ＿Ｃの優先度は低いので、ＲＡＭ３０の空き領域に余裕があってもＰｇＧｒ＿ＣはＲＡＭ３０に書き込まれない。優先度だけでなく、大きさが大きすぎるグループもＲＡＭ３０に書き込まれない。
【００１９】
本実施形態では、ＲＯＭ２０の異常時に、優先度の高い重要なデータであり、かつ大きすぎないデータをＲＯＭ２０からＲＡＭ３０に書き込むことにより、車両を走行する上で最低限必要なデータに基づいて退避走行を実現する。
【００２０】
前述した各グループと各グループの先頭アドレスとを対応付けたアドレステーブルは、ＲＡＭ３０上に領域が確保される変数データのグループの先頭アドレスを管理する上からも、マイクロコンピュータ２の起動時にＲＯＭ２０からＲＡＭ３０にコピーし、ＲＡＭ３０で適宜修正しながら使用することが望ましい。
【００２１】
（ＲＯＭ異常時処理）
図３の異常時処理はＲＯＭ２０の異常を検出したときに実行される。図３および、後述する図４、５において「Ｓ」はステップを表わしている。
【００２２】
ＣＰＵ１０は、ＲＯＭ２０に記憶されている各グループについて、異常データを有する場合には異常データの誤り訂正を実行し（Ｓ４００）、異常グループまたは正常グループにかかわらず、ＲＡＭ３０に書き込む対象であるか否かを判定するための処理を実行する（Ｓ４０２）。Ｓ４０２の書込対象判定処理の詳細については図４で説明する。
【００２３】
該当グループが書込対象ではない場合（Ｓ４０４：Ｎｏ）、ＣＰＵ１０は、該当グループは不要と判断してＲＡＭ３０に書き込まず（Ｓ４０６）、Ｓ４１２に処理を移行する。ＲＡＭ３０に書き込まれないグループの先頭アドレスは、アドレステーブルから削除されるか、不要グループであることを示すデータが書き込まれる。
【００２４】
該当グループが書込対象である場合（Ｓ４０４：Ｙｅｓ）、ＣＰＵ１０は、ＲＡＭ３０に書き込み領域があるか否かを判定する（Ｓ４０８）。ＣＰＵ１０は、起動時と起動後において一定時間間隔または処理負荷が低いときにＲＡＭ３０の空き領域チェックを含むメモリチェックを行っており、異常領域と正常領域とを検出して情報として記憶しているので、ＲＡＭ３０の正常領域に該当グループを書き込む容量があるか否かを判定できる。
【００２５】
書き込み領域がない場合（Ｓ４０８：Ｎｏ）、ＣＰＵ１０は、該当グループは不要と判断してＲＡＭ３０に書き込まず（Ｓ４０６）、Ｓ４１２に処理を移行する。前述したように、ＲＡＭ３０に書き込まれないグループの先頭アドレスは、アドレステーブルから削除されるか、不要グループであることを示すデータが書き込まれる。
【００２６】
書き込み領域がある場合（Ｓ４０８：Ｙｅｓ）、ＣＰＵ１０は、ＲＯＭ２０の該当グループのデータをＲＡＭ３０に書き込み（Ｓ４１０）、Ｓ４１２に処理を移行する。ＲＯＭ２０の該当グループのデータをＲＡＭ３０に書き込む場合、該当グループのＲＯＭ２０における先頭アドレスに代えてＲＡＭ３０に書き込んだ領域の先頭アドレスがアドレステーブルに書き込まれる。
【００２７】
Ｓ４１２においてＣＰＵ１０は、ＲＯＭ２０の全グループについて書込対象の判定が終了したか否かを判定する。ＣＰＵ１０は、全グループについて書込対象の判定が終了していない場合（Ｓ４１２：Ｎｏ）、Ｓ４００に処理を戻し、全グループについて書込対象の判定が終了している場合（Ｓ４１２：Ｙｅｓ）、本処理を終了する。
【００２８】
（書込対象判定処理）
図４の書込対象判定処理は、図３のＳ４０２において実行される処理である。Ｓ４２０においてＣＰＵ１０は、ＲＯＭ２０に記憶されている該当グループの優先度が所定の優先度以上であるか否かを判定する。所定の優先度よりも低い場合（Ｓ４２０：Ｎｏ）、ＣＰＵ１０は、処理結果として「Ｎｏ」を返し（Ｓ４２２）、本処理を終了する。
【００２９】
所定の優先度以上の場合（Ｓ４２０：Ｙｅｓ）、ＣＰＵ１０は、該当グループのデータ量の大きさが所定値以下であるか否かを判定する（Ｓ４２４）。
ＣＰＵ１０は、大きさが所定値以下の場合（Ｓ４２４：Ｙｅｓ）、処理結果として「Ｙｅｓ」を返し（Ｓ４２６）、大きさが所定値よりも大きい場合（Ｓ４２４：Ｎｏ）、処理結果として「Ｎｏ」を返し（Ｓ４２２）、本処理を終了する。
【００３０】
（ＲＡＭ空き領域チェック処理）
図５のＲＡＭ３０の空き領域チェック処理は、起動時と起動後において一定時間間隔または処理負荷が低いときに実行される。ＲＡＭ３０の空き領域チェックは、一定の大きさのブロック毎に行ってもよいし、連続した空き領域毎に行ってもよい。
【００３１】
Ｓ４３０においてＣＰＵ１０は、ＲＡＭ３０に空き領域があるか否かを判定する。ＲＡＭ３０に空き領域がない場合（Ｓ４３０：Ｎｏ）、ＣＰＵ１０は本処理を終了する。
ＲＡＭ３０に空き領域がある場合（Ｓ４３０：Ｙｅｓ）、ＣＰＵ１０は空き領域が正常であるか否かを判定する（Ｓ４３２）。空き領域が異常な場合（Ｓ４３２：Ｎｏ）、ＣＰＵ１０はＳ４３６に処理を移行する。空き領域が正常な場合（Ｓ４３２：Ｙｅｓ）、ＣＰＵ１０は空き領域の先頭アドレスをＲＯＭ２０のデータを書き込む再配置アドレスとして設定する（Ｓ４３４）。
【００３２】
ＣＰＵ１０は、ＲＡＭ３０の全領域について空き領域のチェックが終了していない場合（Ｓ４３６：Ｎｏ）、Ｓ４３０に処理を戻し、全領域について空き領域のチェックが終了すると（Ｓ４３６：Ｙｅｓ）、本処理を終了する。
【００３３】
［第２実施形態］
本発明の第２実施形態を図６および図７に示す。図６に示すように、第２実施形態のマイクロコンピュータ４は、ＲＯＭ２０と、ＣＰＵとしてコア４０、５０と、グローバルＲＡＭ６０と、共通バス１００とを備えるマルチコアマイクロコンピュータである。コア４０、５０にはそれぞれローカルＲＡＭ４２、５２が共通バス１００を介さずに直接接続されている。また、コア４０、５０は、共通バス１００を介してＲＯＭ２０とグローバルＲＡＭ６０とに接続している。
【００３４】
ローカルＲＡＭ４２、５２は、それぞれデータ領域とプログラム領域とに分割されている。ローカルＲＡＭ４２、５２のは、グローバルＲＡＭ６０よりも高速にアクセスできる。ＲＯＭ２０には、第１実施形態と同様に、プログラムおよび定数がグループ毎に記憶されている。グローバルＲＡＭ６０は、コア４０、５０のどちらからもアクセスできる。
【００３５】
ローカルＲＡＭ４２、５２のメモリチェックはコア４０、５０毎に行う。ＲＯＭ２０とグローバルＲＡＭ６０のメモリチェックは、コア４０、５０の一方が専門に行ってもよいし、コア４０、５０で分担して行ってもよい。
【００３６】
ＲＯＭ２０の異常時、所定の優先度異常のプログラムは優先的にローカルＲＡＭ４２、５２に書き込まれる。また、優先度の高い変数のグループは、予めローカルＲＡＭ４２、５２に領域が確保されている。図７のＰｇＧｒ＿Ｂ、ＰｇＧｒ＿Ｅのような異常グループは、誤り訂正符号であるパリティデータにより誤りを訂正されてからローカルＲＡＭ４２、５２に書き込まれる。
【００３７】
優先度の低い定数のグループはグローバルＲＡＭ６０に書き込まれる。また、優先度の低い変数のグループは、予めグローバルＲＡＭ６０に領域が確保されている。
第２実施形態においても、グループの優先度および大きさに基づいて書込対象ではないと判定される場合、該当するグループはローカルＲＡＭ４２、５２およびグローバルＲＡＭ６０に書き込まれない。
【００３８】
以上説明した上記第１、２実施形態では、ＲＯＭ２０の異常時に、ＲＯＭ２０に記憶された全てのデータではなく、優先度が所定の優先度以上であり、かつデータ量の大きさが所定値以下のグループがＲＯＭ２０からＲＡＭに書き込まれるので、データを書き込むための容量をＲＡＭに十分に確保できる。
【００３９】
これに対し、ＲＯＭ２０の異常時に、ＲＯＭ２０に記憶された全てのデータをＲＡＭに記憶する構成であっても、ＲＯＭから別の記憶部であるＲＡＭにデータを書き込むので、データを書き込むための容量をＲＡＭに確保することは容易である。
【００４０】
さらに、ＲＡＭの異常を検出し、異常領域以外の正常領域に異常グループを書き込むので、ＲＡＭにデータを正常に書き込むことができる。
また、ＲＯＭの異常時に異常グループの異常データを訂正してＲＡＭに書き込むので、何度もマイクロコンピュータをリセットすることなく、車両制御を継続できる。
【００４１】
ＲＯＭの異常時にＲＯＭのデータをＲＡＭに書き込むときには、優先度の低いグループおよびデータ量の大きいグループはＲＡＭに書き込まれないので、車両制御に不可欠で容量の小さいデータにより、車両走行に不可欠な処理を実行できる。
【００４２】
［他の実施形態］
上記実施形態では、ＲＯＭの異常時に異常グループだけでなく正常グループも書込対象であればＲＡＭに書き込んだ。これに対し、異常グループだけをＲＡＭに書き込んでもよい。この場合、各グループの先頭アドレスが記憶されたアドレステーブルに基づいて、ＲＯＭとＲＡＭの両方において処理が実行される。
【００４３】
また、異常グループの異常データを訂正せずにＲＡＭに書き込んでもよい。この場合、異常グループを使用するときに異常データをＲＡＭ上で訂正してから使用すればよい。
上記実施形態では、ＲＯＭの異常時にだけＲＯＭのデータをＲＡＭに書き込んだ。これに対し、マイクロコンピュータの起動時に、ＲＯＭが異常であるか正常であるかにかかわらず、常にＲＯＭのデータを全てＲＡＭに書き込んでもよい。その際に、図３〜図５で説明した処理を実行すればよい。
【００４４】
このように、本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。
【符号の説明】
【００４５】
２、４：マイクロコンピュータ、１０：ＣＰＵ（第１異常検出手段、第２異常検出手段、書込手段、訂正手段、判定手段）、２０：ＲＯＭ（第１記憶部）、３０：ＲＡＭ（第２記憶部）、４０、５０：コア（第１異常検出手段、第２異常検出手段、書込手段、訂正手段、判定手段）、４２、５２：ローカルＲＡＭ（第２記憶部）、６０：グローバルＲＡＭ（第２記憶部）
【図１】
2015115049.tif 000003
【図２】
2015115049.tif 000004
【図３】
2015115049.tif 000005
【図４】
2015115049.tif 000006
【図５】
2015115049.tif 000007
【図６】
2015115049.tif 000008
【図７】
2015115049.tif 000009