JP2018063527A - 電子制御装置 - Google Patents
電子制御装置 Download PDFInfo
- Publication number
- JP2018063527A JP2018063527A JP2016200830A JP2016200830A JP2018063527A JP 2018063527 A JP2018063527 A JP 2018063527A JP 2016200830 A JP2016200830 A JP 2016200830A JP 2016200830 A JP2016200830 A JP 2016200830A JP 2018063527 A JP2018063527 A JP 2018063527A
- Authority
- JP
- Japan
- Prior art keywords
- sda
- area
- abnormality
- unit
- electronic control
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
【課題】メモリに異常を生じたとしてもフェールセーフ処理に移行することなく通常制御を続行できるようにした電子制御装置を提供する。
【解決手段】SDA17は、他の領域よりもアクセス速度が速く重要度の高いデータを保持するが、SDA特定レジスタ16は、このSDA17に相対アドレス指定によりアクセスするための特定アドレスを記憶する。CPU7は、SDA17に異常を生じたか否かを判定し、異常を生じたと判定されたときには、SDA特定レジスタ16のSDA特定アドレスを書き換える(S1〜S3、S10)。
【選択図】図2
【解決手段】SDA17は、他の領域よりもアクセス速度が速く重要度の高いデータを保持するが、SDA特定レジスタ16は、このSDA17に相対アドレス指定によりアクセスするための特定アドレスを記憶する。CPU7は、SDA17に異常を生じたか否かを判定し、異常を生じたと判定されたときには、SDA特定レジスタ16のSDA特定アドレスを書き換える(S1〜S3、S10)。
【選択図】図2
Description
本発明は、電子制御装置に関する。
一般に、システムは異常検出したとしても制御を継続して行うためこの異常状態から復旧する手段を備える。この種のシステムとして例えばRAMにミラーチェック技術を採用しているものがある(例えば、特許文献1参照)。この特許文献1記載の技術によれば、データをRAMに格納する際に同じデータを複数のアドレスに格納し、その格納された複数のデータを再度読出して比較し同一内容か否かを調査している。RAMのデータが一部壊れたとしても、このような処理を行うことに応じて突然制御不能に陥らないようにすることができる。
しかし、この種の従来技術では、RAMがハードウェア的な異常を生じたときには、データを復旧させることができず、システムは通常制御を停止してしまい、必要に応じてフェールセーフ処理に移行してしまうという問題を生じる。
本発明の目的は、メモリに異常を生じたとしてもフェールセーフ処理に移行することなく通常制御を続行できるようにした電子制御装置を提供することにある。
請求項1記載の発明によれば、スモールデータ領域(以下、SDAと称す)は、他の領域よりもアクセス速度が速く重要度の高いデータを保持するが、特定アドレス記憶部は、このSDAに相対アドレス指定によりアクセスするための特定アドレスを記憶する。判定部は、SDAに異常を生じたか否かを判定し、異常を生じたと判定されたときには、書換部が特定アドレス記憶部のSDA特定アドレスを書き換える。これにより、たとえSDAに異常を生じたとしても、書換部がSDA特定アドレスを書き換えることでSDAを動的に移動させることができる。これにより、他のメモリ空間のSDAに重要度の高いデータを移動させることができ、メモリに異常を生じたとしても、システムがフェールセーフ処理に移行することなく通常制御を続行できる。
以下、電子制御装置の一実施形態について図面を参照しながら説明する。図1は電子制御装置(ECU:Electronic Control Unit)1の電気的構成をブロック図により概略的に示している。図1に示すように、電子制御装置1は、マイクロコンピュータ(以下、マイコンと略す)2を主として構成され、センサ信号入力部3、及び、アクチュエータ駆動部4を備える。センサ信号入力部3には、電子制御装置1の外部に各種のセンサ5が接続されており、センサ信号入力部3はこのセンサ5により出力されるセンサ信号を入力する。センサ5は、例えばアクセルセンサ、ノックセンサ、酸素(O2)センサなど各種車両関連情報を検出するためのセンサである。また、アクチュエータ駆動部4は、電子制御装置1の外部に接続されるアクチュエータ6を駆動する。アクチュエータ6は、例えば電子スロットルなどの車両負荷であり、例えばスロットルバルブを開閉するためのモータなど各種車両関連アクチュエータを挙げることができる。
マイコン2は、CPU7、メモリ8、入力インタフェース9、及び、出力インタフェース10を備える。メモリ8は、ROM11、RAM12、フラッシュメモリ等の不揮発性メモリ13を備える。ROM11には動作用プログラムが格納されており、CPU7はROM11に格納された動作用プログラムを実行することで、判定部、書換部、通常制御継続部、異常領域記憶制御部、カウント部、フェールセーフ指令部としての機能を実現する。これらの動作用プログラムを非遷移的実体的記録媒体に記憶するようにしても良い。また、CPU7は、データの読み書きを高速に行うことが可能なレジスタ14を備えている。
RAM12は、図示しないイグニッションスイッチがオンされ動作用のバッテリ電圧が通電された後に不揮発性メモリ13からデータ転送されることで種々のデータを格納する。RAM12のメモリ空間は、スモールデータ領域(以下、SDAと称す:Small Data Area)17と、非SDA18と、空き領域19とに分けられている。
非SDA18は、CPU7がROM11に格納されたプログラムを実行しデータ処理を行っている最中に各種定数又は変数を格納するワークエリア等の領域とされている。通常、CPU7がプログラムを実行することで非SDA18にアクセスするときには絶対アドレス指定することでアクセスする。また通常、SDA17は、1k、4k、8k、16k、32k、64kなどの所定の単位領域のメモリ領域分だけ確保される。SDA17に格納されるデータは、例えば非SDA18に格納されるデータに比較して重要度が高く設定されるデータであり、例えばアクセルセンサ、ノックセンサや酸素濃度センサなど各種センサの学習値、電子スロットルのモータの制御値などのアクチュエータの学習値などが挙げられる。またSDA17には、この重要度の高いデータのそれぞれについてミラーデータがミラー領域に保存されている。説明の簡略化のため、このミラーデータを保存するミラー領域は図示していない。
CPU7は、各種データを保持するためにレジスタ14を備える。このレジスタ14は、汎用レジスタ15の他、特定アドレス記憶部としてのSDA特定レジスタ16を備える。このSDA特定レジスタ16は、RAM12のSDA17の内部のある特定アドレス(例えば、SDAの領域の中心を示す中央アドレス)を指定するために設けられている。
CPU7が、SDA17の内部のメモリ領域にアクセスするときには、SDA特定レジスタ16に格納された特定アドレスを読出し、この特定アドレスから相対的にSDA17の内部のアドレスを指定する。CPU7が、この処理に応じてSDA17の内部のあるアドレスにアクセスするときには、相対アドレス指定によりアクセスすることになるため前述の絶対アドレス指定処理よりステップ数を削減でき、これにより、SDA17は非SDA18よりもアクセス速度を高速にできるメモリ領域とされている。
またCPU7は、入力インタフェース9を通じてセンサ信号入力部3からセンサ信号を入力し、汎用レジスタ15等に格納し、CPU7は汎用レジスタ15等に格納されたデータをプログラムに応じて演算部7aにより演算し、出力インタフェース10を通じてアクチュエータ駆動部4に出力し、アクチュエータ駆動部4はアクチュエータ6を駆動する。
前述した構成の意義と作用効果について説明する。
ECU1が、例えば車両用のセンサ5からセンサ信号を取得しアクチュエータ6を通常駆動制御しているときには、様々な緊急事態を生じることが想定される。ECU1は、緊急事態を生じたときには例えば安全に車両の運転を停止できるようにフェールセーフ処理する。ECU1は、フェールセーフ処理に移行すると例えばセンサ5のセンサ信号に基づくアクチュエータ6の駆動処理を停止する。
ECU1が、例えば車両用のセンサ5からセンサ信号を取得しアクチュエータ6を通常駆動制御しているときには、様々な緊急事態を生じることが想定される。ECU1は、緊急事態を生じたときには例えば安全に車両の運転を停止できるようにフェールセーフ処理する。ECU1は、フェールセーフ処理に移行すると例えばセンサ5のセンサ信号に基づくアクチュエータ6の駆動処理を停止する。
このとき、例えばドライバがアクセルを踏み込んだときに、センサ5となるアクセルセンサ等がこのセンサ情報の変化を検知したとしても、例えばアクチュエータ6となる電子スロットルのモータの駆動を停止することでスロットルバルブの開状態を固定的に保持してしまうこともあり、この場合、復旧にはディーラー等による修理、点検を要することにもなる。
他方、RAM12がハードウェア的な異常を生じるときには、RAM12のメモリ空間全体が損傷することは稀であり、一部の記憶領域が損傷することで正常なデータの読み書きが不能となることがほとんどである。したがって、RAM12の異常が一部の記憶領域に発生し、データの読み書きを正常にできない場合においても、このデータを復旧できるようであれば、このデータを空き領域19等の他の記憶領域に書換えることでフェールセーフ処理に移行することなく通常動作を継続することができる。
特に、SDA17に保持されるデータは、例えば非SDA18に保持されるデータに比較して重要度が高く設定されるデータであるため、このデータの正確性を保ちながら通常制御を継続できるようにすることが望ましい。このようなことを想定すると、CPU7は、図2に示すように処理を行うことが望ましい。
図2は異常時に行われる処理を概略的に示している。まず図2に示すように、CPU7は、S1〜S3においてSDA特定レジスタを参照し、SDA特定アドレスを含むSDA17の領域の異常の有無を判定する。
このステップS1〜S3の異常検出方法は、リードライト(R/W)チェックなどの方法を用いることができる。例えばCPU7が、リードライトチェックにより異常の有無を判定するときには、S1においてSDA17として割当てられている領域RAM_Aの値を汎用レジスタ15に転送し、S2において領域RAM_Aに所定値を書込んでその書き込み値を読み出した結果が所定値に一致するか否かを判定する。CPU7は、リードライトチェックを実施した結果、S3において領域RAM_Aが正常であるか否かを判定できる。また、この図2のS1〜S3には図示していないが、RAM12のミラー領域に予め設けられたミラーデータを用いてミラーチェックを行い異常の有無を判定しても良い。
CPU7は、これらのS1〜S3の処理を行った結果、異常なしと判断したときに、S4において通常制御を継続する。また、CPU7は、S1〜S3の処理を行った結果、異常ありと判断したときにはS3でNOと判定し、S5においてRAM12のリードライトチェックで異常を生じたSDA17の内部のアドレスを例えば非SDA18のワークエリア内に記憶する。CPU7は、この異常を生じたSDA17の内部のアドレスを不揮発性メモリ13に記憶させるようにしても良い。またCPU7は、S6においてSDA17の異常回数をインクリメントすることでカウントする。カウントする値はインクリメント値1に限られない。そしてCPU7は、S7において異常を生じた回数が所定回数以下であるか否かを判定する。この所定回数は、RAM12の空き領域19の記憶容量に応じて定められる回数である。
CPU7は、S7において異常回数が所定回数を超えたと判定すると、S7でNOと判定し、S8においてフェールセーフ処理を実行指令する。CPU7がフェールセーフ処理を実行指令すると、ECU1はアクチュエータ駆動部4により例えばアクチュエータ6を駆動停止する。この場合、ECU1はセンサ5を通じて取得されるドライバの要求(例えばアクセルの踏み込み度)に応じたアクチュエータ6の駆動制御が不能となる。例えば、アクチュエータ6が、電子スロットルのモータであるときには、アクチュエータ駆動部4はバルブの開度を所定の開度とするようにモータを駆動する。また、フェールセーフ処理に移行すると、CPU7は、例えばこのことを外部ユーザに警告報知することで早期交換、修理を促す。
他方、CPU7は、S7において異常回数が所定回数以下であると判定した場合には、他の現在のSDA17、又は/及び、空き領域19を含んだ領域にSDA17を確保できる可能性があることから、下記のステップS9〜S15の処理を実行する。CPU7は、S9にて新たにSDA17を確保可能か否かを判定する。このとき新たなSDA17の探索領域は、非使用のRAM12の空き領域19と、使用中のSDA17の正常判断領域と、を含んだ領域を示している。
ここでCPU7が、S9において新たにSDA17を確保可能と判定した場合、S10においてSDA特定レジスタを書換えることでSDA17の指定アドレス範囲を動的に移動させる。そしてCPU7は、S11において、汎用レジスタ15に一時保管されている領域RAM_Aのデータについてのミラーデータを取得して更新し、このデータを含み使用中のSDA17のデータを新たに確保したSDA17に転送する。CPU7は、S11において使用中のSDA17のデータを新たに確保したSDA17に格納した後、S4に移行し通常制御を継続する。これにより、従来技術では正常復帰することができないようなRAM12の異常を検出した場合であっても、SDA17を動的に再配置できることになり、フェールセーフ処理に移行することなく通常制御を継続できる。
またCPU7は、S9において新たなSDA17を確保不可能と判定した場合には、S12において過去に異常判定されたRAM12の領域の異常状態を再確認する。この処理は、何らかの影響により前回の異常判定処理(S1〜S3)に間違いを生じている可能性を考慮して実施される処理であり、CPU7はRAM12にSDA17を確保可能か再確認する。
そしてCPU7は、S13において異常判定されていた領域に正常箇所が存在すると判定したときには、S14においてRAM12の異常領域を更新する。そしてCPU7は、S15においてRAM12の領域にSDA17の必要領域分の存在を確認したときには、S10へ移行しSDA特定アドレスを書換える。そしてCPU7は、S11において汎用レジスタ15に一時保管されたデータについてのミラーデータを取得して更新し、このデータを含み使用中のSDA17のデータを新たに確保したSDA17に転送する。そしてCPU7はS4において通常制御を継続する。CPU7は、S15においてSDA必要領域を確保できないと判定した場合には、S8においてフェールセーフ処理を実行指令する。
以下、具体例について図3〜図10を参照しながら説明する。
<具体例1:図3〜図5>
例えば、まずCPU7が、図3に示すように、SDA特定アドレスを0x40008000に設定し、図2のS1〜S3においてリードライト(R/W)チェックをした結果、領域RAM_Aは正常であると判断したものの、領域RAM_Bに異常があると判断する。
<具体例1:図3〜図5>
例えば、まずCPU7が、図3に示すように、SDA特定アドレスを0x40008000に設定し、図2のS1〜S3においてリードライト(R/W)チェックをした結果、領域RAM_Aは正常であると判断したものの、領域RAM_Bに異常があると判断する。
このとき図4に示すように、CPU7は、領域RAM_Bに格納された値のミラーデータを汎用レジスタ15に退避して更新する。そして、図5に示すように、CPU7は、例えばSDA特定アドレスを0x40008400に書き換え、汎用レジスタ15内に退避された領域RAM_Bの更新後のデータを含むと共に、領域RAM_A…を含む旧SDA17aの内部の全データを新たなSDA17bに書き込む。これにより、SDA17を動的に移動することで、領域RAM_A、RAM_B…のデータを再配置でき、通常制御を継続できる。
<具体例2:図6>
例えば、具体例1の後、図6に示すように、さらに新たな2回目のSDAにおいても領域RAM_Cに異常が見つかったときには、CPU7は、この領域RAM_Cのデータのミラーデータを汎用レジスタ15に退避して更新する。そして、CPU7は、例えばSDA特定アドレスを0x40008800に書換え、領域RAM_Cの更新後のデータを含むと共に、領域RAM_A、RAM_B…を含む1回目のSDA17aの内部の全データを新たな3回目のSDA17cに書き込む。これにより、2回目のSDA17bの内部データを動的に移動することで領域RAM_A、RAM_B、RAM_C…を再配置でき、通常制御を継続できる。
例えば、具体例1の後、図6に示すように、さらに新たな2回目のSDAにおいても領域RAM_Cに異常が見つかったときには、CPU7は、この領域RAM_Cのデータのミラーデータを汎用レジスタ15に退避して更新する。そして、CPU7は、例えばSDA特定アドレスを0x40008800に書換え、領域RAM_Cの更新後のデータを含むと共に、領域RAM_A、RAM_B…を含む1回目のSDA17aの内部の全データを新たな3回目のSDA17cに書き込む。これにより、2回目のSDA17bの内部データを動的に移動することで領域RAM_A、RAM_B、RAM_C…を再配置でき、通常制御を継続できる。
<具体例3:図7〜図8>
例えば、具体例2の後、図7に示すように、さらに新たな3回目のSDA17cにおいても領域RAM_Dに異常が見つかったときには、CPU7は、この領域RAM_Dのデータのミラーデータを汎用レジスタ15に退避して更新する。そしてCPU7は、異常を生じていない領域のアドレスを含まないように新たなSDA17を空き領域に確保できるか確認する。CPU7は、アドレスが連続した空き領域19だけで確保できないとき等には、SDA17(例えば17c)の中でも領域が正常であると判断されている領域を含んだ領域を新たな4回目のSDA17dとして設定する。
例えば、具体例2の後、図7に示すように、さらに新たな3回目のSDA17cにおいても領域RAM_Dに異常が見つかったときには、CPU7は、この領域RAM_Dのデータのミラーデータを汎用レジスタ15に退避して更新する。そしてCPU7は、異常を生じていない領域のアドレスを含まないように新たなSDA17を空き領域に確保できるか確認する。CPU7は、アドレスが連続した空き領域19だけで確保できないとき等には、SDA17(例えば17c)の中でも領域が正常であると判断されている領域を含んだ領域を新たな4回目のSDA17dとして設定する。
この具体例3では、CPU7は、図2のステップS9の具体的処理として空き領域19だけでSDA17dを確保できないと判断し、正常判断されている領域、すなわち現在のSDA17cの一部を含む領域を新たなSDA17dとして設定する例を示しているが、新たなSDA17を確保可能な領域としては、正常判断されている領域であれば良く、例えば図8中ではSDA17a、17b、17cの中の正常判断領域を利用するようにしても良い。すなわち、SDA17の中でも、現在又は過去に正常判断された正常判断領域と空き領域19とを組み合わせて新たなSDA17の領域を確保しても良い。
そしてCPU7は、汎用レジスタ15にて更新した領域RAM_Dの更新後のデータを含むと共に領域RAM_A、RAM_B、RAM_C…を含む3回目のSDA17c内の全データを新たな4回目のSDA17dに書込む。このとき、例えば、SDA17dが、SDA17cに比較してよりアドレス値の大きなアドレス空間に確保できるのであれば、CPU7は、3回目のSDA17cの内部の最大アドレスから最小アドレスにかけて、4回目のSDA17dの内部の最大アドレスから最小アドレスに向けて順に転送することで3回目のSDA17cの内部データを全て4回目のSDA17dに転送できる。SDA17dが、SDA17cに比較してよりアドレス値の小さなアドレス空間に確保できるのであれば、CPU7は、3回目のSDA17cの内部の最小アドレスから最大アドレスにかけて、4回目のSDA17dの内部の最小アドレスから最大アドレスに向けて順に転送することで3回目のSDA17cの内部データを全て4回目のSDA17dに転送できる。これにより、SDA17cの内部データを動的に移動することで領域RAM_A、RAM_B、RAM_C、RAM_D…のデータを再配置でき、通常制御を継続できる。この場合、空き領域19だけを使用するのではなく、現在又は過去に使用していたSDA17a、17b、17cの正常判断領域を含めた領域を再利用することができる。
<具体例4:図9〜図10>
例えば、具体例3の後、図9に示すように、さらに新たな4回目のSDA17dの内部においても領域RAM_Eに異常が見つかったときには、CPU7は、この領域RAM_Dのデータのミラーデータを汎用レジスタ15に退避して更新する。そして、CPU7は異常を生じていないアドレスを含まないように新たな5回目のSDA17eを確保可能であるか確認するが、全ての空き領域19及びSDA17の中でも正常判断されている領域を含んだ領域に新たなSDA17を確保不能と判断することもある(図2のS9でNO)。
例えば、具体例3の後、図9に示すように、さらに新たな4回目のSDA17dの内部においても領域RAM_Eに異常が見つかったときには、CPU7は、この領域RAM_Dのデータのミラーデータを汎用レジスタ15に退避して更新する。そして、CPU7は異常を生じていないアドレスを含まないように新たな5回目のSDA17eを確保可能であるか確認するが、全ての空き領域19及びSDA17の中でも正常判断されている領域を含んだ領域に新たなSDA17を確保不能と判断することもある(図2のS9でNO)。
このようなとき、CPU7は、図2のS12において過去に異常判定された領域の異常状態を再確認する。このとき、CPU7はワークエリア又は不揮発性メモリ13に記憶された異常判定された領域のアドレス値を参照し、そのアドレスの示す領域が正常に記憶可能であるか否かを判定する。この正常か否かの判定方法はリードライトチェックにより行われることが望ましい。
図9に示すように、以前領域RAM_Cが異常であると判定されていたものの、再度チェックした結果、正常と判定したときには、領域RAM_Cを正常箇所と判定し、図2のS14においてRAM12の異常領域を更新し、図2のS15において新たなSDA17eを確保可能か否かを判定する。
ここでCPU7は、新たなSDA17eを確保可能なことを確認すると、図2のS10においてSDA特定アドレスを0x40008700のように書換えることで、図10に示すように、領域RAM_Cを含む領域を新たな5回目のSDA17eとして設定できる。
<具体例5>
図2のS7において、判定する異常回数の閾値の所定回数が1回に設定されている場合、CPU7は、図3に示すように領域RAM_Bを異常と判断したタイミングでSDA17の異常回数を1回とカウントするが、その後、図6に示すように、2回目に領域RAM_Cの異常を生じると、SDA17の異常回数を2回とカウントする。この場合、たとえRAM12に新たなSDA17cを確保可能な空き領域19が残存していたとしても、CPU7は、図2のS8に移行しフェールセーフ処理を実行指令する。説明の簡単化のため、所定回数を1回として説明したが、例えばメモリ8が経年劣化などを生じ異常頻度が短期間に増加する場合には、この異常回数が短期間の間に大幅に増加することが想定される。このようなときには重大な故障につながる前にフェールセーフ処理に移行するように制御すると良い。またフェールセーフ処理に移行したことを外部ユーザに警告報知することで早期交換、修理を促すことができる。
図2のS7において、判定する異常回数の閾値の所定回数が1回に設定されている場合、CPU7は、図3に示すように領域RAM_Bを異常と判断したタイミングでSDA17の異常回数を1回とカウントするが、その後、図6に示すように、2回目に領域RAM_Cの異常を生じると、SDA17の異常回数を2回とカウントする。この場合、たとえRAM12に新たなSDA17cを確保可能な空き領域19が残存していたとしても、CPU7は、図2のS8に移行しフェールセーフ処理を実行指令する。説明の簡単化のため、所定回数を1回として説明したが、例えばメモリ8が経年劣化などを生じ異常頻度が短期間に増加する場合には、この異常回数が短期間の間に大幅に増加することが想定される。このようなときには重大な故障につながる前にフェールセーフ処理に移行するように制御すると良い。またフェールセーフ処理に移行したことを外部ユーザに警告報知することで早期交換、修理を促すことができる。
このような具体例1〜5の他にも様々な具体例が考えられるが、その説明は省略する。
本実施形態の特徴を概念的にまとめる。
CPU7は、SDA17の領域に異常を生じたか否かを判定し、異常を生じたと判定されたときには、SDA特定レジスタ16のSDA特定アドレスを書き換える。これにより、たとえSDA17に異常を生じたとしても、CPU7が、SDA特定アドレスを書き換えることでSDA17を動的に移動させることができる。これにより、他のメモリ空間に重要度の高いデータを移動させることができ、RAM12のある領域に異常を生じたとしても、フェールセーフ処理に移行することなく通常制御を続行できる。
本実施形態の特徴を概念的にまとめる。
CPU7は、SDA17の領域に異常を生じたか否かを判定し、異常を生じたと判定されたときには、SDA特定レジスタ16のSDA特定アドレスを書き換える。これにより、たとえSDA17に異常を生じたとしても、CPU7が、SDA特定アドレスを書き換えることでSDA17を動的に移動させることができる。これにより、他のメモリ空間に重要度の高いデータを移動させることができ、RAM12のある領域に異常を生じたとしても、フェールセーフ処理に移行することなく通常制御を続行できる。
CPU7は、SDA特定アドレスが書き換えられることを条件として異常時に処理するフェールセーフ処理を実行することなく通常時に処理する通常制御処理を継続するようにしている。このため、RAM12の領域に一部異常を生じたとしても通常制御を継続できる。
CPU7は、SDA17a〜17dに異常を生じたと判定された場合、異常を生じた領域をRAM12の非SDA18の内部のワークメモリまたは不揮発性メモリ13に記憶制御するようにしている。このため、異常を生じた領域を避けて、新たなSDA17を確保できるようになる。
CPU7は、SDA17、17a〜17dに異常を生じたと判定された場合、異常回数をカウントし、この異常回数が所定回数を超えたことを条件としてフェールセーフ処理に移行するように指令している。経年劣化などによりメモリ8の異常頻度が増加している場合にはフェールセーフ処理に移行することになる。このため、フェールセーフ処理に移行したことを外部ユーザに伝達することができ重大な事故につながる前に早期交換、修理を促すことができる。
CPU7は、例えばSDA17aに異常を生じたと判定されたときには、空き領域19に新たなSDA17bの必要領域分の領域を連続的に確保できることを条件として、SDA特定レジスタを書換えることで空き領域19に新たなSDAを確保するようにしている。このため、空き領域19が存在する限り、何度でもSDA17を動的に移動させることができる。
CPU7は、例えばSDA17cに異常を生じたと判定されたときには、新たなSDA17dの必要領域分の領域を、空き領域19及び現在又は過去のSDA17b、17cの正常判断領域を含めた領域に連続的に確保可能なことを条件として、SDA特定アドレスを書換えることで当該領域に新たなSDA17dを確保するようにしている。これにより、空き領域19だけを使用するのではなく、現在使用しているSDA17cの正常判断領域を含めた領域を再利用することができる。
CPU7は、新たなSDA17eの必要領域分の領域を、空き領域19、又は/及び、現在又は過去のSDAの正常判断領域を含めた領域に連続的に確保できないことを条件として、過去に異常判定された領域RAM_Cの異常状態を再確認し、再確認された領域が正常となり且つ新たなSDA17eの必要領域分を確保可能となることを条件として、SDA特定アドレスを書換えることで当該領域に新たなSDA17eを確保するようにしている。このため、再確認の結果、正常と判断された領域を含めて新たなSDA17eの必要領域分を連続的に確保可能となればSDA特定アドレスを書換えることで新たなSDA17eを確保できるようになる。このため、通常制御を継続できる可能性を高めることができる。
CPU7は、新たなSDA(例えば17e)の必要領域分の領域を確保できない場合には、フェールセーフ処理を実行指令するようにしている。このため、メモリ8の異常を確実に検出し、フェールセーフ処理を実施できる。
(他の実施形態)
本発明は、前述した実施形態に限定されるものではなく、種々変形して実施することができ、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、以下に示す変形又は拡張が可能である。
本発明は、前述した実施形態に限定されるものではなく、種々変形して実施することができ、その要旨を逸脱しない範囲で種々の実施形態に適用可能である。例えば、以下に示す変形又は拡張が可能である。
例えば、特許文献1に示される技術を組み合わせて実行することもできる。特許文献1記載の技術によれば、例えば、制御用データ保存領域としての領域RAM_W、制御用ミラーデータ保存領域としての領域RAM_X、バックアップ用データ保存領域としての領域RAM_Y、バックアップ用ミラーデータ保存領域としての領域RAM_Z、に互いに一義的に導出可能な関係(例えば、互いに値が一致する関係となるミラーデータ、同一データ、またはビットデータを反転させた反転データ)があったときに、まず、CPUが領域RAM_W、RAM_Xのリードライトチェックをし、異常なしと判定されたことを条件として、領域RAM_W、RAM_Xのミラーチェックを行いミラーチェックを正常と判定したことを条件として通常制御を継続するが、領域RAM_W、RAM_Xに異常があったときにも領域RAM_Y、RAM_Zに異常がなければ、領域RAM_Y、RAM_Zのミラーチェックを行い、ミラー正常であれば領域RAM_Y、RAM_Zで領域RAM_W、RAM_Xを復旧する。
すなわち、前述実施形態に示したミラーデータ以外にも、同一データ、または、ビットデータを反転させた反転データ、をSDA17又は非SDA18等の他の領域に同様に記憶させていれば、これらのデータを、汎用レジスタ15に退避したデータに代えて用いることで正確なデータを新たなSDA(例えば17b)に更新できる。
CPU7が、判定部、書換部、通常制御継続部、異常領域記憶制御部、カウント部、フェールセーフ指令部、再確認部としての機能を実現する形態を示しているが、これらの機能を他の装置と共に分割して協調動作するようにしても良い。
前述実施形態では、SDA17のある領域(例えばRAM_A)に異常が生じたときに、汎用レジスタ15にミラーデータを退避して更新するようにしたが、異常が確認された領域(例えばRAM_B)の値を汎用レジスタ15に退避し、この退避した値をそのまま用いたり、その他例えばECC等のエラー訂正技術を用いてエラー訂正処理により更新しても良い。
図2のフローチャートに示した各処理は、実用的であれば処理順序を入れ替えて行っても良いし、その他、処理を削除したり可能な限り変更しても良い。例えば、CPU7がSDA17cを確保した後、図7に示すように領域RAM_Dに異常が生じたと判定されたときに、空き領域19が残存していないことを条件として新たなSDA17dを確保できないと判断することで、S8においてフェールセーフ処理を実行指令するようにしても良い。
また、例えば、CPU7がSDA17dを確保した後、図9に示すように領域RAM_Eに異常が生じたと判定されたときに、図2のS12〜S15に示す正常箇所の再確認処理を省いて、S8においてフェールセーフ処理を実行指令するようにしても良い。
前述した実施形態の各要素を組み合わせて構成しても良い。また、特許請求の範囲に記載した括弧内の符号は、本発明の一つの態様として前述する実施形態に記載の具体的手段との対応関係を示すものであって、本発明の技術的範囲を限定するものではない。前述実施形態の一部を、課題を解決できる限りにおいて省略した態様も実施形態と見做すことが可能である。また、特許請求の範囲に記載した文言によって特定される発明の本質を逸脱しない限度において、考え得るあらゆる態様も実施形態と見做すことが可能である。
本開示は、前述した実施形態に準拠して記述したが、本開示は当該実施形態や構造に限定されるものではないと理解される。本開示は、様々な変形例や均等範囲内の変形をも包含する。加えて、様々な組み合わせや形態、さらには、それらに一要素、それ以上、あるいはそれ以下、を含む他の組み合わせや形態をも、本開示の範畴や思想範囲に入るものである。
図面中、1は電子制御装置、7はCPU(判定部、書換部、通常制御継続部、異常領域記憶制御部、カウント部、フェールセーフ指令部、再確認部)、16はSDA特定レジスタ(特定アドレス記憶部)、12はRAM、17、17a〜17eはSDA、19は空き領域、を示す。
Claims (8)
- 他の領域よりもアクセス速度が速く重要度の高いデータを保持するスモールデータ領域(以下、SDAと略す)に相対アドレス指定によりアクセスするための特定アドレスを記憶する特定アドレス記憶部(16)と、
前記SDAに異常を生じたか否かを判定する判定部(S1〜S3)と、
前記判定部により前記SDAに異常を生じたと判定されたときに前記特定アドレス記憶部のSDA特定アドレスを書き換えることで新たな前記SDAを確保する書換部(S10)と、
を備える電子制御装置。 - 請求項1記載の電子制御装置において、
前記書換部によりSDA特定アドレスが書換えられ新たなSDAを確保可能なことを条件として異常時に処理するフェールセーフ処理を実行指令することなく通常時に処理する通常制御を継続する通常制御継続部(S4)をさらに備える電子制御装置。 - 請求項1または2記載の電子制御装置において、
前記判定部により前記SDA(17、17a〜17d)に異常を生じたと判定された場合、
前記異常を生じた領域を記憶制御する異常領域記憶制御部(S5)をさらに備えることを特徴とする電子制御装置。 - 請求項1から3の何れか一項に記載の電子制御装置において、
前記判定部により前記SDA(17、17a〜17d)に異常を生じたと判定された場合、異常回数をカウントするカウント部(S6)と、
前記異常回数が所定回数を超えたことを条件として異常時に処理するフェールセーフ処理を実行指令するフェールセーフ指令部(S8)と、
を備える電子制御装置。 - 請求項1から4の何れか一項に記載の電子制御装置において、
前記判定部により前記SDA(17a)に異常を生じたと判定された場合、
前記書換部は、新たなSDA(17b)の必要領域分の領域を空き領域(19)に連続的に確保可能なことを条件として、前記SDA特定アドレスを書換える(S10)ことで前記空き領域に新たなSDAを確保する電子制御装置。 - 請求項1から4の何れか一項に記載の電子制御装置において、
前記判定部により前記SDA(17c)に異常を生じたと判定された場合、
前記書換部は、新たなSDA(17d)の必要領域分の領域を、空き領域(19)、又は/及び、現在又は過去のSDA(17b、17c)の正常判断領域を含めた領域に連続的に確保可能なことを条件として、前記SDA特定アドレスを書換えることで当該領域に新たなSDA(17d)を確保する電子制御装置。 - 請求項1から4の何れか一項に記載の電子制御装置において、
前記判定部により前記SDA(17d)に異常を生じたと判定された場合、
新たなSDA(17e)の必要領域分の領域を、空き領域、又は/及び、現在又は過去のSDAの正常判断領域を含めた領域に連続的に確保できないことを条件として、過去に異常判定された領域(RAM_C)の異常状態を再確認する再確認部(S12)をさらに備え、
前記書換部は、前記再確認部により再確認された領域が正常となり且つ前記新たなSDAの必要領域分の領域を連続的に確保可能となることを条件として、前記SDA特定アドレスを書換えることで当該領域に前記新たなSDAを確保する電子制御装置。 - 請求項5から7の何れか一項に記載の電子制御装置において、
異常時に処理するフェールセーフ処理を実行指令するフェールセーフ指令部(S8)をさらに備え、
前記フェールセーフ指令部は、前記新たなSDAの必要領域分の領域を確保できない場合には異常時に処理するフェールセーフ処理を実行指令する電子制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016200830A JP2018063527A (ja) | 2016-10-12 | 2016-10-12 | 電子制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016200830A JP2018063527A (ja) | 2016-10-12 | 2016-10-12 | 電子制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018063527A true JP2018063527A (ja) | 2018-04-19 |
Family
ID=61967856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016200830A Pending JP2018063527A (ja) | 2016-10-12 | 2016-10-12 | 電子制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018063527A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113491115A (zh) * | 2019-03-06 | 2021-10-08 | Lg 电子株式会社 | 基于cclm预测的图像解码方法及其装置 |
-
2016
- 2016-10-12 JP JP2016200830A patent/JP2018063527A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113491115A (zh) * | 2019-03-06 | 2021-10-08 | Lg 电子株式会社 | 基于cclm预测的图像解码方法及其装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102278398B1 (ko) | 비휘발성 랜덤 액세스 메모리의 기억 영역의 리프레시 | |
US20090327838A1 (en) | Memory system and operating method for it | |
JP2005250894A (ja) | 車両制御システムにおけるデータ処理装置 | |
JP2018063527A (ja) | 電子制御装置 | |
JP5915490B2 (ja) | 電子制御装置 | |
JP6512065B2 (ja) | 電子制御装置 | |
JPH0633828A (ja) | 車載用電子制御装置 | |
JP6611877B1 (ja) | 半導体集積回路および回転検出装置 | |
JP2018134964A (ja) | 自動車用電子制御装置 | |
JP6663371B2 (ja) | 電子制御装置 | |
JP2004151944A (ja) | 不揮発性記憶装置へのデータの書き込み方法、プログラム、および装置、ならびに車載電子制御装置 | |
JP3296043B2 (ja) | 車両用電子制御装置 | |
JPH11141391A (ja) | 自動車用制御装置 | |
JP2006017468A (ja) | データ記録装置 | |
JP7029366B2 (ja) | 自動車用電子制御装置 | |
WO2018079537A1 (ja) | 電子制御装置及びそのデータ保護方法 | |
JP6159668B2 (ja) | 車両用制御装置 | |
JP7007223B2 (ja) | 制御装置および異常検出方法 | |
US20230177894A1 (en) | Information processing apparatus and information processing method | |
US8190971B2 (en) | Data processing system and method for operating a data processing system | |
JP6317653B2 (ja) | 自動車用電子制御装置及びデータ記憶方法 | |
US8095262B2 (en) | Vehicular control apparatus and program storage medium | |
US9773562B2 (en) | Storage apparatus, flash memory control apparatus, and program | |
JP2006291829A (ja) | 車両状態判定装置 | |
JP6363044B2 (ja) | 制御装置 |