(57)【要約】      （修正有）【課題】ＲＯＭの故障を未然に予測または故障を速やかに検出することにより、車載電子制御装置のライフサイクルをできる限り伸ばす。【解決手段】車載電子制御装置は、記憶領域に対するアクセス所要時間が第１閾値を超えたときは直ちに異常と判定し、記憶領域に対するアクセス所要時間が第１閾値よりも小さく第２閾値よりも大きくなった回数をカウントするとともに、回数が第３閾値に達したときは、記憶領域が異常であると判定する。【選択図】図２Ａ
2019175527.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載された機器を電子的に制御する車載電子制御装置であって、
前記機器を制御する動作を実装した制御プログラムを格納する記憶装置、
前記制御プログラムを実行することにより前記機器を制御する演算装置、
を備え、
前記演算装置は、前記記憶装置のなかの記憶領域に対するアクセス所要時間が第１閾値を超えたときは、前記記憶領域が異常であると判定し、
前記演算装置は、前記記憶領域に対するアクセス所要時間が前記第１閾値よりも小さく第２閾値よりも大きくなった回数をカウントするとともに、前記回数が第３閾値に達したときは、前記記憶領域が異常であると判定し、
前記演算装置は、前記記憶領域が異常であると判定したときはその判定結果を出力する
ことを特徴とする車載電子制御装置。
【請求項２】
前記記憶装置は、前記記憶領域が格納しているデータを書き換える前に前記記憶領域が格納しているデータを消去する必要があるデバイスによって構成されており、
前記演算装置は、前記記憶領域が格納しているデータを消去するために要する時間が前記第１閾値を超えたときは、前記記憶領域が異常であると判定する
ことを特徴とする請求項１記載の車載電子制御装置。
【請求項３】
前記記憶装置は、前記記憶領域が格納しているデータを書き換える前に前記記憶領域が格納しているデータを消去する必要があるデバイスによって構成されており、
前記演算装置は、前記記憶領域が格納しているデータを消去するために要する時間が前記第２閾値を超えたときは、前記回数をカウントアップし、
前記演算装置は、前記回数が前記第３閾値に達したときは、前記記憶領域が異常であると判定する
ことを特徴とする請求項１記載の車載電子制御装置。
【請求項４】
前記演算装置は、前記記憶領域に対してデータを書き込むために要する時間が前記第１閾値を超えたときは、前記記憶領域が異常であると判定する
ことを特徴とする請求項１記載の車載電子制御装置。
【請求項５】
前記演算装置は、前記記憶領域に対してデータを書き込むために要する時間が前記第２閾値を超えたときは、前記回数をカウントアップし、
前記演算装置は、前記回数が前記第３閾値に達したときは、前記記憶領域が異常であると判定する
ことを特徴とする請求項１記載の車載電子制御装置。
【請求項６】
前記演算装置は、前記記憶領域が格納しているデータを書き換えるごとに、書換回数をカウントアップし、
前記演算装置は、前記書換回数が第４閾値を超えたときは、前記記憶領域が異常であると判定する
ことを特徴とする請求項１記載の車載電子制御装置。
【請求項７】
前記車載電子制御装置は、前記記憶装置の論理アドレスと物理アドレスを対応付けるマッピングテーブルを保持しており、
前記演算装置は、前記記憶領域が異常であると判定したときは、前記記憶領域の論理アドレスに対して、正常である他の記憶領域の物理アドレスを対応付けるように、前記マッピングテーブルを更新する
ことを特徴とする請求項１記載の車載電子制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両に搭載された機器を電子的に制御する車載電子制御装置に関する。
【背景技術】
【０００２】
車両が搭載している機器を制御する車載電子制御装置（ＥＣＵ：Ｅｌｅｃｔｒｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）は、一般的に、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などを備える。ＲＯＭは、車両が搭載する機器を制御する処理を実装した制御プログラムを記憶するメモリ装置であり、ｂｌｏｃｋ（記憶領域）の集まりによって構成されている。ＲＯＭが格納しているデータを書き換える際には、ＲＯＭ書換装置を用いる。ここでいう書き換えとは、ＲＯＭが格納しているデータ（例えば制御プログラム）を消去し、新たなプログラムを書き込むことである。
【０００３】
一般的に、ＲＯＭは、Ｆｌａｓｈと呼ばれる不揮発性メモリによって構成されている。Ｆｌａｓｈメモリは、データを書き換えるためには、既に書き込まれているデータを消去する必要がある。Ｆｌａｓｈメモリが格納しているデータを消去して新たなデータを書き込む際には、メモリセルに大きなストレスがかかるので、一般にＦｌａｓｈメモリのデータ書換回数には上限がある。この書換回数の上限を超えると、アクセス速度（書き込み、消去、読み出し）やデータ保持耐性が低下するなどの問題が発生する恐れがある。
【０００４】
さらに近年は自動運転が拡大する傾向がある。これにより、車載電子制御装置が無線通信を介して制御プログラムの更新バージョンを取得し、その更新バージョンをＲＯＭに書き込む（この工程リプログラミングなどと呼ぶ）回数が増える可能性がある。そうするとＲＯＭが劣化する速度が従来よりも早くなり、車載電子制御装置のライフサイクルがさらに短くなると考えられる。
【０００５】
車載電子制御装置のＲＯＭが劣化すると、例えば以下のような課題が生じる可能性がある：（ａ）ＲＯＭからデータを読み出す速度が遅延することにより、車両機器の制御が規定の制御周期以内に終わらない；（ｂ）車両走行中に、ＲＯＭに記憶されている制御プログラムが意図せず消える。車載電子制御装置がこれらの異常を検出した場合、車載電子制御装置は車両を安全状態へ移行させる。安全状態へ移行した車両は、ドライバーの意思とは反して、例えばトランスミッションの変速比が固定されるなどにより、運転性能が低下する。
【０００６】
下記特許文献１は、不揮発性メモリの書き換えに関する技術を記載している。同文献は、『本発明は、書換え制限方法及び半導体装置に関し、不揮発性メモリの許容書換え回数を超えた領域の書換えを確実に防止してデータの信頼性を向上すると共に、不揮発性メモリ全体の書換えを有効に利用し、且つ、書込み処理でのエラー判定を短時間で行うことを目的とする。』ことを課題として、『電気的に消去可能な不揮発性メモリの書換え制限方法において、不揮発性メモリの各領域に対して、書換え回数が所定値に達すると当該領域の書換えを禁止する信号を出力するように構成する。』という技術を開示している（要約参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−０８５８６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１記載の技術は、不揮発性メモリの特性に応じ、総書換回数があらかじめ設定した書換上限回数に達したことを確認することにより、ＲＯＭの故障を未然に防止している。しかしながら、不揮発性メモリの製造ばらつきにより、総書換回数が上限回数に達する前に、プログラムの書き込みまたは消去が実施不可となる可能性がある。また、完全に故障しないものの、プログラムやデータの読出速度が低下し、正常時と比べて、メモリセルの特性が劣化する可能性が十分に考えられる。ＲＯＭ劣化により、ＲＯＭを書き換えることができなくなる不良確率が大きくなり、車載電子制御装置のライフサイクルが非常に短くなる可能性が考えられる。
【０００９】
本発明は、上記のような課題に鑑みてなされたものであり、ＲＯＭの故障を未然に予測または故障を速やかに検出することにより、車載電子制御装置のライフサイクルをできる限り伸ばすことを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る車載電子制御装置は、記憶領域に対するアクセス所要時間が第１閾値を超えたときは直ちに異常と判定し、第１閾値を超えていなくとも第２閾値を超えた回数が蓄積したときは異常と判定する。
【発明の効果】
【００１１】
本発明に係る車載電子制御装置によれば、即時検出すべき異常を速やかに検出することに加えて、将来的に故障する可能性のある記憶領域を事前に検出することができる。これにより車載電子制御装置のライフサイクルを伸ばすことができる。
【図面の簡単な説明】
【００１２】
【図１】車載電子制御装置１００の構成図である。
【図２Ａ】ＲＯＭ１０３のあるＢｌｏｃｋが格納しているデータを消去するために必要な所要時間の変化を示すグラフである。
【図２Ｂ】消去所要時間が閾値Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘを超えた回数をカウントした結果を示すグラフである。
【図３】図２Ａと図２Ｂで説明した判定手法をまとめた表である。
【図４】車載電子制御装置１００がＲＯＭ１０３に格納されているデータを書き換える手順を説明するフローチャートである。
【図５】ステップＳ４０２の詳細を説明するフローチャートである。
【図６】ステップＳ４０４の詳細を説明するフローチャートである。
【図７】ステップＳ４０６の詳細を説明するフローチャートである。
【図８】ステップＳ５０４〜Ｓ５０６の処理を説明する内部イメージ図である。
【発明を実施するための形態】
【００１３】
図１は、本発明の実施形態に係る車載電子制御装置１００の構成図である。車載電子制御装置１００は、車両が搭載する車載機器（例えば自動変速機、エンジンなど）を電子的に制御する装置である。車載電子制御装置１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＲＯＭ１０３、通信ポート１０４、Ｉ／Ｏ回路１０５を備える。
【００１４】
ＣＰＵ１０１は、制御プログラムを実行することにより、車載機器を制御するために必要な制御演算を実施する演算装置である。ＲＡＭ１０２は、ＣＰＵ１０１が使用するデータを一時的に格納する。ＲＯＭ１０３（不揮発性メモリ）は、ＣＰＵ１０１が実行する制御プログラムを格納する。通信ポート１０４は、ＲＯＭ１０３に対して書き込むデータ（例えば更新版の制御プログラム）をＲＯＭ書換装置２００から受け取る。Ｉ／Ｏ回路１０５は、各機能部を接続するデータ通信路として機能する。ＣＰＵ１０１は、受け取ったデータをＲＯＭ１０３に書き込む。
【００１５】
図２Ａは、ＲＯＭ１０３のあるＢｌｏｃｋが格納しているデータを消去するために必要な所要時間の変化を示すグラフである。Ｂｌｏｃｋに対する消去所要時間は、当該Ｂｌｏｃｋの書換回数が増えるごとに変化する。一般的には、消去所要時間がある閾値を超えた場合は、そのＢｌｏｃｋに異常が生じている（不良Ｂｌｏｃｋである）と判定することができる。ただし消去所要時間が閾値をどの程度超えたかに応じて、そのＢｌｏｃｋの異常度は異なると考えられる。そこで本発明においては、消去所要時間の異常判定閾値を２段階設け（Ｔ＿Ｅｒ＿ＭａｘとＴ＿Ｅｒ＿ＣＵ＿Ｍａｘ、Ｔ＿Ｅｒ＿Ｍａｘ＞Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘ）、それぞれ異なる判定手順を用いることとした。
【００１６】
書換回数がＣ１’回目のとき、当該Ｂｌｏｃｋに対する消去所要時間が閾値Ｔ＿Ｅｒ＿Ｍａｘ（第１閾値）を超えたと仮定する（グラフ上では図示略）。この場合、ＣＰＵ１０１は即座に、当該Ｂｌｏｃｋが異常であると判定する。
【００１７】
消去所要時間が閾値Ｔ＿Ｅｒ＿Ｍａｘを超えなければ、当該Ｂｌｏｃｋは一応正常であるといえる。しかし即座に異常であると判定されるまでには至らないとしても、消去所要時間が正常な所要時間を超えている場合は、その状況が継続すると当該Ｂｌｏｃｋが故障する可能性が高いと想定される。そこでＣＰＵ１０１は、消去所要時間が正常所要時間の上限（閾値Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘ、第２閾値）を超えたとき、その回数をカウントしておく。
【００１８】
図２Ｂは、消去所要時間が閾値Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘを超えた回数をカウントした結果を示すグラフである。ＣＰＵ１０１は、カウントした回数が閾値Ｃ＿Ｅｒ＿Ｍａｘ（第３閾値）に達した時点で、当該Ｂｌｏｃｋが異常であると判定する。ここでは書換回数がＣ０回目、Ｃ１回目、Ｃ２回目、Ｃ３回目、Ｃ４回目においてそれぞれ消去所要時間が閾値Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘを超え、Ｃ４回目において回数が閾値Ｃ＿Ｅｒ＿Ｍａｘに達した例を示した。
【００１９】
図２Ａと図２Ｂで説明した異常判定手法は、Ｂｌｏｃｋに対してデータを書き込むために必要な所要時間についても用いることができる。書込所要時間も図２Ａと同様に書換回数が増えるごとに変化する。ＣＰＵ１０１は、書込所要時間が閾値Ｔ＿Ｗｒ＿Ｍａｘ（第５閾値）を超えたときは、即座に当該Ｂｌｏｃｋが異常であると判定する。ＣＰＵ１０１はさらに、書込所要時間が閾値Ｔ＿Ｗｒ＿Ｍａｘ未満かつ閾値Ｔ＿Ｗｒ＿ＣＵ＿Ｍａｘ（第６閾値）を超えた回数をカウントアップする。ＣＰＵ１０１は、この回数が閾値Ｃ＿Ｗｒ＿Ｍａｘ（第７閾値）に達した時点で、当該Ｂｌｏｃｋが異常であると判定する。
【００２０】
Ｔ＿Ｅｒ＿Ｍａｘ（第１閾値）とＴ＿Ｗｒ＿Ｍａｘ（第５閾値）は同じ値でもよいし異なる値でもよい。Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘ（第２閾値）とＴ＿Ｗｒ＿ＣＵ＿Ｍａｘ（第６閾値）は同じ値でもよいし異なる値でもよい。Ｃ＿Ｅｒ＿Ｍａｘ（第３閾値）とＣ＿Ｗｒ＿Ｍａｘ（第７閾値）は同じ値でもよいし異なる値でもよい。各閾値はＢｌｏｃｋごとに異なる値でもよいし全Ｂｌｏｃｋについて同じ値でもよい。以下では説明簡易化のため全Ｂｌｏｃｋについて同じ値であるものとする。
【００２１】
図３は、図２Ａと図２Ｂで説明した判定手法をまとめた表である。各閾値は以上説明したものである。ＲＡＷ値は、現在の実数値である。例えばＴ＿Ｅｒは、当該Ｂｌｏｃｋの現時点における消去所要時間である。
【００２２】
ＣＰＵ１０１は以上の手法に加えて、Ｂｌｏｃｋに対する累積書換回数Ｃ＿Ｒｗが閾値Ｃ＿Ｒｗ＿Ｍａｘ（第４閾値）を超えた時点で、当該Ｂｌｏｃｋは異常であると判定することもできる。図３の最終行はこれを記載している。
【００２３】
図４は、車載電子制御装置１００がＲＯＭ１０３に格納されているデータを書き換える手順を説明するフローチャートである。ＣＰＵ１０１は、ＲＯＭ１０３に格納されているデータを書き換えるリクエストをＲＯＭ書換装置２００から受け取ると、本フローチャートを開始する。以下図４の各ステップについて説明する。
【００２４】
（図４：ステップＳ４０１）
ＣＰＵ１０１は、ＲＯＭ書換装置２００からの書換要求に対して書換許可があるか否かを判定する。書換要求が許可されていればステップＳ４０２に進み、書換要求が許可されていなければステップＳ４１０に進む。
【００２５】
（図４：ステップＳ４０２）
ＣＰＵ１０１は、書換要求に対応する各Ｂｌｏｃｋについて、後述の図５で説明するフローチャートにしたがって、累積書換回数がＣ＿Ｒｗ＿Ｍａｘ（第４閾値）を超えているか否かをチェックする。さらに必要に応じて、後述するＢｌｏｃｋ代替処理を実施する。
【００２６】
（図４：ステップＳ４０３）
ＣＰＵ１０１は、ステップＳ４０２におけるチェック結果が正常であるか否かを判定する。Ｂｌｏｃｋ代替処理を実施した場合はその結果が正常であったか否かをさらに判定する。いずれの結果も正常であればステップＳ４０４に進み、いずれかの結果が正常でなければステップＳ４０９へ進む。
【００２７】
（図４：ステップＳ４０４）
ＣＰＵ１０１は、書換要求に対応する各Ｂｌｏｃｋについて、後述の図６で説明するフローチャートにしたがって、消去所要時間が異常であるか否かをチェックする。さらに必要に応じて、後述するＢｌｏｃｋ代替処理を実施する。
【００２８】
（図４：ステップＳ４０５）
ＣＰＵ１０１は、ステップＳ４０４におけるチェック結果が正常であるか否かを判定する。Ｂｌｏｃｋ代替処理を実施した場合はその結果が正常であったか否かをさらに判定する。いずれの結果も正常であればステップＳ４０６に進み、いずれかの結果が正常でなければステップＳ４０９へ進む。
【００２９】
（図４：ステップＳ４０６）
ＣＰＵ１０１は、書換要求に対応する各Ｂｌｏｃｋについて、後述の図７で説明するフローチャートにしたがって、書込所要時間が異常であるか否かをチェックする。さらに必要に応じて、後述するＢｌｏｃｋ代替処理を実施する。
【００３０】
（図４：ステップＳ４０７）
ＣＰＵ１０１は、ステップＳ４０６におけるチェック結果が正常であるか否かを判定する。Ｂｌｏｃｋ代替処理を実施した場合はその結果が正常であったか否かをさらに判定する。いずれの結果も正常であればステップＳ４０８に進み、いずれかの結果が正常でなければステップＳ４０９へ進む。
【００３１】
（図４：ステップＳ４０８〜Ｓ４１０）
ＣＰＵ１０１は、以上の処理結果に応じて、ＲＯＭ書換装置２００に対して「書換成功」「書換失敗」「書換禁止」のいずれかを通知する。以上によってＲＯＭ書換処理が終了する。
【００３２】
図５は、ステップＳ４０２の詳細を説明するフローチャートである。以下図５の各ステップについて説明する。
【００３３】
（図５：ステップＳ５０１）
ＣＰＵ１０１は、書換要求の対象である記憶領域に対して、例えば各Ｂｌｏｃｋの論理アドレス順に累積書換回数Ｃ＿Ｒｗをチェックする。
【００３４】
（図５：ステップＳ５０２）
ＣＰＵ１０１は、累積書換回数Ｃ＿Ｒｗが閾値Ｃ＿Ｒｗ＿Ｍａｘ（第４閾値）を超えているか否かを確認する。超えていれば当該Ｂｌｏｃｋは「不良」と判定し、ステップＳ５０４へ進む。超えていなければステップＳ５０３へ進む。
【００３５】
（図５：ステップＳ５０３）
ＣＰＵ１０１は、書換要求の対象である記憶領域の全Ｂｌｏｃｋについて累積書換回数をチェック完了したか否かを判定する。完了していればステップＳ５０７に進む。完了していなければステップＳ５０１に戻って同様の処理を次のＢｌｏｃｋ以降に対して実施する。
【００３６】
（図５：ステップＳ５０４〜Ｓ５０６）
ＣＰＵ１０１は、代替可能なＢｌｏｃｋを検索する（Ｓ５０４）。代替可能Ｂｌｏｃｋが見つかれば代替処理を実施し（Ｓ５０６）、見つからなければステップＳ５０８へ進む（Ｓ５０５）。
【００３７】
（図５：ステップＳ５０７〜Ｓ５０８）
ＣＰＵ１０１は、以上の処理結果に応じて、本フローチャートが成功したか否かをステップＳ４０２の結果として戻す。ステップＳ４０２においてはその結果に応じて以後のステップを実施する。
【００３８】
図６は、ステップＳ４０４の詳細を説明するフローチャートである。以下図６の各ステップについて説明する。
【００３９】
（図６：ステップＳ６０１）
ＣＰＵ１０１は、書換要求の対象である記憶領域に対して、例えば各Ｂｌｏｃｋの論理アドレス順に消去所要時間Ｔ＿Ｅｒをチェックする。
【００４０】
（図６：ステップＳ６０２）
ＣＰＵ１０１は、消去所要時間Ｔ＿Ｅｒが閾値Ｔ＿Ｅｒ＿Ｍａｘ（第１閾値）を超えているか否かを確認する。超えていれば当該Ｂｌｏｃｋは「不良」と判定し、ステップＳ６０７へ進む。超えていなければステップＳ６０３へ進む。
【００４１】
（図６：ステップＳ６０３）
ＣＰＵ１０１は、消去所要時間Ｔ＿Ｅｒが閾値Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘ（第２閾値）を超えているか否かを確認する。超えていればステップＳ６０４へ進み、超えていなければステップＳ６０６へスキップする。
【００４２】
（図６：ステップＳ６０４〜Ｓ６０５）
ＣＰＵ１０１は、消去不調回数Ｃ＿Ｅｒをカウントアップする（Ｓ６０４）。ＣＰＵ１０１は、消去不調回数Ｃ＿Ｅｒが閾値Ｃ＿Ｅｒ＿Ｍａｘ（第３閾値）に達しているか否かを確認する（Ｓ６０５）。達していればステップＳ６０７へ進み、達していなければステップＳ６０６へ進む。
【００４３】
（図６：ステップＳ６０６）
ＣＰＵ１０１は、書換要求の対象である記憶領域の全Ｂｌｏｃｋについて消去所要時間をチェック完了したか否かを判定する。完了していればステップＳ６１０に進む。完了していなければステップＳ６０１に戻って同様の処理を次のＢｌｏｃｋ以降に対して実施する。
【００４４】
（図６：ステップＳ６０７〜Ｓ６１１）
ＣＰＵ１０１は、ステップＳ６０７〜Ｓ６０９において、ステップＳ５０４〜Ｓ５０６と同様にＢｌｏｃｋ代替処理を実施する。ＣＰＵ１０１は、以上の処理結果に応じて、本フローチャートが成功したか否かをステップＳ４０４の結果として戻す。ステップＳ４０４においてはその結果に応じて以後のステップを実施する。
【００４５】
図７は、ステップＳ４０６の詳細を説明するフローチャートである。本フローチャートは、図６のフローチャートにおける消去所要時間に関する変数（Ｔ＿Ｅｒ、Ｃ＿Ｅｒ）と各閾値（第１閾値〜第３閾値）を、書込所要時間に関する変数（Ｔ＿Ｗｒ、Ｃ＿Ｗｒ）と各閾値（第５閾値〜第７閾値）に置き換えた点を除き、図６と同様である。
【００４６】
図８は、ステップＳ５０４〜Ｓ５０６の処理を説明する内部イメージ図である。ＲＯＭ１０３の記憶領域のうち太線で囲んだ部分に対して、ＲＯＭ書換装置２００から書換要求があったものとする。ＣＰＵ１０１は、ＲＯＭ１０３の論理アドレスと物理アドレスを対応付けるマッピングテーブルを保持している。マッピングテーブルはＲＯＭ１０３内の適当な領域に格納してもよいし、その他適当な記憶装置上に格納してもよい。
【００４７】
ＣＰＵ１０１は、論理アドレス順でＲＯＭ１０３に対してデータを書き込む。このとき論理アドレス０ｘ２において不良ブロックが発生したと仮定する。ＣＰＵ１０１はその他の物理アドレスのなかから正常なブロックを検索する。ここでは物理アドレス０ｘ８０００（ｂｌｏｃｋ１００）が見つかったものとする。ＣＰＵ１０１は、論理アドレス０ｘ２と物理アドレス０ｘ８０００を対応付けるようにマッピングテーブルを更新するとともにｂｌｏｃｋ３を使用不可とする。これにより、不良ブロックを正常ブロックで置き換えるとともに、アプリケーションの処理を従前どおり実施することができる。
【００４８】
＜本発明のまとめ＞
本発明に係る車載電子制御装置１００は、車両に搭載された機器を電子的に制御する車載電子制御装置１００であって、機器を制御する動作を実装した制御プログラムを格納する記憶装置（ＲＯＭ１０３）、制御プログラムを実行することにより機器を制御する演算装置（ＣＰＵ１０１）、を備える。演算装置（ＣＰＵ１０１）は、記憶装置（ＲＯＭ１０３）のなかの記憶領域（ｂｌｏｃｋ）に対するアクセス所要時間（Ｔ＿ＥｒまたはＴ＿Ｗｒ）が第１閾値（Ｔ＿Ｅｒ＿ＭａｘまたはＴ＿Ｗｒ＿Ｍａｘ）を超えたときは、その記憶領域（ｂｌｏｃｋ）が異常であると判定する。演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）に対するアクセス所要時間が第１閾値（Ｔ＿Ｅｒ＿ＭａｘまたはＴ＿Ｗｒ＿Ｍａｘ）よりも小さく第２閾値（Ｔ＿Ｅｒ＿ＣＵ＿ＭａｘまたはＴ＿Ｗｒ＿ＣＵ＿Ｍａｘ）よりも大きくなった回数（Ｃ＿ＥｒまたはＣ＿Ｗｒ）をカウントするとともに、その回数が第３閾値（Ｃ＿Ｅｒ＿ＭａｘまたはＣ＿Ｗｒ＿Ｍａｘ）に達したときは、その記憶領域（ｂｌｏｃｋ）が異常であると判定する。演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）が異常であると判定したときはその判定結果を出力する。これにより、ＲＯＭ１０３の故障を未然に予測または故障を速やかに検出し、車載電子制御装置１００のライフサイクルをできる限り伸ばすことができる。（請求項１に対応）
【００４９】
記憶装置（ＲＯＭ１０３）は、記憶領域（ｂｌｏｃｋ）が格納しているデータを書き換える前に記憶領域（ｂｌｏｃｋ）が格納しているデータを消去する必要があるデバイス（例えばＦｌａｓｈメモリ）によって構成されている。演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）が格納しているデータを消去するために要する時間が第１閾値（Ｔ＿Ｅｒ＿Ｍａｘ）を超えたときは、記憶領域（ｂｌｏｃｋ）が異常であると判定する。これにより、データ消去に関する異常領域を速やかに検出することができる。（請求項２に対応）
【００５０】
記憶装置（ＲＯＭ１０３）は、記憶領域（ｂｌｏｃｋ）が格納しているデータを書き換える前に記憶領域（ｂｌｏｃｋ）が格納しているデータを消去する必要があるデバイス（例えばＦｌａｓｈメモリ）によって構成されている。演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）が格納しているデータを消去するために要する時間が第２閾値（Ｔ＿Ｅｒ＿ＣＵ＿Ｍａｘ）を超えたときは、回数（Ｃ＿Ｅｒ）をカウントアップし、演算装置（ＣＰＵ１０１）は、その回数（Ｃ＿Ｅｒ）が第３閾値（Ｃ＿Ｅｒ＿Ｍａｘ）に達したときは、記憶領域（ｂｌｏｃｋ）が異常であると判定する。これにより、データ消去に関する異常領域を未然に予測することができる。（請求項３に対応）
【００５１】
演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）に対してデータを書き込むために要する時間が第１閾値（Ｔ＿Ｗｒ＿Ｍａｘ）を超えたときは、記憶領域（ｂｌｏｃｋ）が異常であると判定する。これにより、データ書込に関する異常領域を速やかに検出することができる。（請求項４に対応）
【００５２】
演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）に対してデータを書き込むために要する時間が第２閾値（Ｔ＿Ｗｒ＿ＣＵ＿Ｍａｘ）を超えたときは、回数（Ｃ＿Ｗｒ）をカウントアップし、演算装置（ＣＰＵ１０１）は、回数（Ｃ＿Ｗｒ）が第３閾値（Ｃ＿Ｗｒ＿Ｍａｘ）に達したときは、記憶領域（ｂｌｏｃｋ）が異常であると判定する。これにより、データ書込に関する異常領域を未然に予測することができる。（請求項５に対応）
【００５３】
演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）が格納しているデータを書き換えるごとに、書換回数（Ｃ＿Ｒｗ）をカウントアップし、演算装置（ＣＰＵ１０１）は、書換回数（Ｃ＿Ｒｗ）が第４閾値（Ｃ＿Ｒｗ＿Ｍａｘ）を超えたときは、記憶領域（ｂｌｏｃｋ）が異常であると判定する。これにより、データ書換にともなう異常領域が発生することを全般的に防ぐことができる。（請求項６に対応）
【００５４】
車載電子制御装置１００は、記憶装置（ＲＯＭ１０３）の論理アドレスと物理アドレスを対応付けるマッピングテーブルを保持している。演算装置（ＣＰＵ１０１）は、記憶領域（ｂｌｏｃｋ）が異常であると判定したときは、その記憶領域（ｂｌｏｃｋ）の論理アドレスに対して、正常である他の記憶領域（ｂｌｏｃｋ）の物理アドレスを対応付けるように、マッピングテーブルを更新する。これにより、不良ブロックを正常ブロックで置き換えるとともに、アプリケーションの処理を従前どおり実施することができる。（請求項７に対応）
【符号の説明】
【００５５】
１００：車載電子制御装置
１０１：ＣＰＵ
１０２：ＲＡＭ
１０３：ＲＯＭ
１０４：通信ポート
１０５：Ｉ／Ｏ回路
２００：ＲＯＭ書換装置
【図１】
2019175527.tif 000003
【図２Ａ】
2019175527.tif 000004
【図２Ｂ】
2019175527.tif 000005
【図３】
2019175527.tif 000006
【図４】
2019175527.tif 000007
【図５】
2019175527.tif 000008
【図６】
2019175527.tif 000009
【図７】
2019175527.tif 000010
【図８】
2019175527.tif 000011