JP2008077221A - 車両用制御装置 - Google Patents
車両用制御装置 Download PDFInfo
- Publication number
- JP2008077221A JP2008077221A JP2006253335A JP2006253335A JP2008077221A JP 2008077221 A JP2008077221 A JP 2008077221A JP 2006253335 A JP2006253335 A JP 2006253335A JP 2006253335 A JP2006253335 A JP 2006253335A JP 2008077221 A JP2008077221 A JP 2008077221A
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory block
- control data
- sub
- area
- 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
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】 データバックアップを目的として、不揮発性メモリの複数箇所にそれぞれデータを保存する構成において、それぞれの記憶領域にて同時期に故障が生じ難い車両用制御装置を提供する。
【解決手段】 制御主体1のプログラムが参照する制御データを単独で記憶する専用データエリア52と、該制御データを異なる他の制御データと組み合わせた集合データの形で記憶する集合データエリア51とで二重化した形で記憶されるとともに、専用データエリア52では更新対象となる制御データのみが更新され、集合データエリア51では、更新対象となる制御データの更新を、全ての更新非対象の制御データの同一内容によるリライトとともに実施する。
【選択図】 図1
【解決手段】 制御主体1のプログラムが参照する制御データを単独で記憶する専用データエリア52と、該制御データを異なる他の制御データと組み合わせた集合データの形で記憶する集合データエリア51とで二重化した形で記憶されるとともに、専用データエリア52では更新対象となる制御データのみが更新され、集合データエリア51では、更新対象となる制御データの更新を、全ての更新非対象の制御データの同一内容によるリライトとともに実施する。
【選択図】 図1
Description
この発明は、車両用制御装置に関する。
従来、車載ECUにおいては不揮発性メモリとして、EEPROM(Electrically
Erasable Programmable Read Only Memory)が広く使用されてきた。EEPROMは記憶情報をバイト単位で消去可能であり、消去/書込みの柔軟性はRAMに準ずるが、記憶容量が高々数100kバイト程度であり、大量の制御データの記憶には次第に適さなくなってきた。他方、より大容量の不揮発性メモリとしてフラッシュメモリがある(特許文献1)。フラッシュメモリは、EEPROMと同様に電気的な消去/書換が可能な不揮発性メモリでありながら、EEPROMよりも数桁大きい記憶容量を持つ(数10kバイト〜数百Mバイト:例えば数100kバイト)。
Erasable Programmable Read Only Memory)が広く使用されてきた。EEPROMは記憶情報をバイト単位で消去可能であり、消去/書込みの柔軟性はRAMに準ずるが、記憶容量が高々数100kバイト程度であり、大量の制御データの記憶には次第に適さなくなってきた。他方、より大容量の不揮発性メモリとしてフラッシュメモリがある(特許文献1)。フラッシュメモリは、EEPROMと同様に電気的な消去/書換が可能な不揮発性メモリでありながら、EEPROMよりも数桁大きい記憶容量を持つ(数10kバイト〜数百Mバイト:例えば数100kバイト)。
フラッシュメモリは大容量である反面、高集積化を図るための代償として、EEPROMではビット単位で可能であった消去処理が、数kバイトのブロック単位(セクタ単位)でしかできず、また、1回の消去に1秒から10秒程度もの長時間を要する難点がある。また、ブロックの消去処理は、原理的に全てのメモリセル(ビット)の記憶値を「1」とする形で行われ、書込み処理に際しては、上記の消去状態から必要なメモリセルを「0」にビットダウンすることのみが可能であって、その逆(つまり、ビット単位の「0」→「1」への変更)が不可能なことも制約の一つである。
ところで、従来の車載ECUでは、重要度の高い制御データや永続的に保持すべきデータをこのフラッシュメモリに記憶することがある。多くの場合は、保存すべきデータを複数箇所にそれぞれ記憶して、一方をバックアップ用にする形態がとられる。このときのデータ保存処理は、予め定められた複数箇所の記憶対象領域に対し、同じ処理、同じタイミングで同じデータを書き込むことでなされるとともに、データ消去処理も同様に、複数箇所の記憶対象領域に対して同じ処理、同じタイミングで同じデータの消去がなされる。
ところが、こうした不揮発性メモリの場合、セクタを消去するたびにデバイスが劣化する傾向がある。データが書き込まれるフラッシュメモリ内のメモリセルは、製造環境、製造時期、製造条件等が極めて一致した、物理的にほぼ同条件のものであるので、複数箇所の記憶対象領域においてデータの書込み・消去が同一条件で繰り返し実行されると、メモリの劣化も同じ傾向で進み、それらの記憶対象領域において同じ時期に同じ箇所が故障する可能性があった。
データの保存対象となるデバイスを分けてもよいが、使用されるデバイスが同一ロットで製造されている場合もあり、上記の可能性を完全に排除することはできない。
本発明の課題は、データバックアップを目的として、不揮発性メモリの複数箇所にそれぞれデータを保存する構成において、それぞれの記憶領域にて同時期に故障が生じ難い車両用制御装置を提供することにある。
上記の課題を解決するために、本発明の車両用制御装置は、
CPUを含んで構成され、車載用電子機器をCPUによるプログラム処理により動作制御する制御主体と、
制御主体のプログラムが参照する制御データを更新可能に記憶するとともに、個々の制御データをそれぞれ、当該制御データを単独で記憶する専用データエリアと、当該制御データとは異なる他の制御データと組み合わせた集合データの形で記憶する集合データエリアとに二重化した形で記憶する制御データ記憶部と、
制御データ記憶部において制御データを更新するために、専用データエリアにおいては更新対象となる制御データのみを更新する一方、集合データエリアにおいては、更新対象となる制御データの更新を、全ての更新非対象の制御データの同一内容によるリライトとともに実施する制御データ更新手段と、
を備えたことを特徴とする。
CPUを含んで構成され、車載用電子機器をCPUによるプログラム処理により動作制御する制御主体と、
制御主体のプログラムが参照する制御データを更新可能に記憶するとともに、個々の制御データをそれぞれ、当該制御データを単独で記憶する専用データエリアと、当該制御データとは異なる他の制御データと組み合わせた集合データの形で記憶する集合データエリアとに二重化した形で記憶する制御データ記憶部と、
制御データ記憶部において制御データを更新するために、専用データエリアにおいては更新対象となる制御データのみを更新する一方、集合データエリアにおいては、更新対象となる制御データの更新を、全ての更新非対象の制御データの同一内容によるリライトとともに実施する制御データ更新手段と、
を備えたことを特徴とする。
上記本発明の構成によると、制御データ記憶部に制御データを保存するデータエリアとして専用データエリアと集合データエリアとが設けられており、それらデータエリアにおいて制御データを更新する際には、専用データエリアでは、更新対象となる制御データのみが更新されるのに対し、他方、集合データエリアでは、更新された制御データと残りの更新非対象の制御データとからなる制御データ全体(集合データ)が更新される。これにより、2つのエリアに書き込まれるデータの更新頻度が互いに異なるので、双方のエリアにおいて同時期に故障が生じる可能性が極めて低くなる。より具体的には、集合データエリアでは、更新対象として着目している制御データに対し他の制御データが組み合わされることにより、更新される制御データに冗長度が付加される。本発明の方式を採用することにより、その冗長度に対応してデータ書き換え頻度が増加する。その結果、集合データエリアにおける制御データの信頼性が増し、不良セクタ化が生じ難い。
上記本発明の構成において、制御データ記憶部から制御データを読み出すために、専用データエリア及び集合データエリアの一方において対象となる制御データの読出しを試み、該正常な読出しに失敗した場合に、専用データエリア及び集合データエリアの他方において対応する制御データの読出しをリトライする制御データ読出し手段と、リトライにて制御データの正常な読出しに成功した場合に、当該正常な読出しに成功した制御データを用いて、失敗した側のデータエリアの制御データを修復する制御データ修復手段と、を有することができる。この構成によると、先に読み出す側のデータが壊れていることがわかったらすぐに修復でき、正常な制御データが二重に記憶されている状態を維持できる。
上記構成の場合、制御データ読出し手段は、専用データエリア及び集合データエリアの一方が、制御データの読出しを先に試みる優先データエリアとして固定的に定められており、制御データ修復手段は、専用データエリア及び集合データエリアの優先データエリアとして定められてないものに定期的にアクセスして制御データの読出しを試みるとともに、当該読出しにて制御データの正常な読出しに失敗した場合に、優先データエリア側にて正常な読出しに成功した制御データを用いて、失敗した側のデータエリアの制御データを修復するものとできる。これにより、先に読み出す側(優先データエリア)のデータが連続して正常に読み出せた場合に、残りの一方についても定期的に調べることで、正常な制御データが二重に記憶されているかどうかを把握でき、異常が見つかったらすぐに修復できる。
また、本発明の構成において、制御データ記憶部は、メモリ記憶値が第一の値と第二の値との間で二値切替え可能とされたメモリセルの集合からなる主メモリブロックを複数備え、メモリ駆動のための電源供給が遮断されても、各メモリセルが記憶状態を保持可能であり、また、各主メモリブロックが当該主メモリブロックよりも少ない複数のメモリセルからなるサブメモリブロックに区画されてなり、消去モードにおいては主メモリブロック内の全メモリセルを一括して第一の値とする形でのみ消去処理が可能であり、データ書き込みモードでは、主メモリブロック内の第一の値となっている任意のメモリセルを第二の値へ変更することは可能であって、第二の値となっている任意のメモリセルを第一の値へ変更することは不能とされた不揮発性メモリにて構成され、専用データエリアと集合データエリアとが、それぞれ1又は複数の主メモリブロックからなるものとして形成され、
制御データ更新手段は、
ランダムアクセスメモリとして構成され、サブメモリブロックと一対一のアドレス対応関係を有するバッファメモリと、
バッファメモリと同一又はそれよりも小さいサイズからなる書込対象制御データを該バッファメモリに書き込むデータバッファリング手段と、
主メモリブロックにおいて、メモリセルの全てが第一の値となっているサブメモリブロックを未使用サブメモリブロックとし、メモリセルの少なくとも一部が第二の値となっているサブメモリブロックを使用済みサブメモリブロックとしてそれぞれ特定し、データ書き込みモードにおいて、未使用サブメモリブロックへのデータ書込みは許可し、使用済みサブメモリブロックへのデータ書込みは禁止するメモリ管理手段と、
書込対象制御データが書き込まれたバッファメモリの内容を、該書込対象制御データにより占有されていない空白領域も含めて、メモリ管理手段が特定する未使用サブメモリブロックに複写することにより、書込対象制御データを主メモリブロックに追記的に書き込むデータ書込手段と、
消去モードにおいて、不揮発性メモリを主メモリブロック単位で消去するデータ消去手段と、
主メモリブロックにおいて、全てのサブメモリブロックが使用済みサブメモリブロックとなっている場合に、当該主メモリブロックの消去を許可する消去制御手段と、を備えるものとして構成できる。
制御データ更新手段は、
ランダムアクセスメモリとして構成され、サブメモリブロックと一対一のアドレス対応関係を有するバッファメモリと、
バッファメモリと同一又はそれよりも小さいサイズからなる書込対象制御データを該バッファメモリに書き込むデータバッファリング手段と、
主メモリブロックにおいて、メモリセルの全てが第一の値となっているサブメモリブロックを未使用サブメモリブロックとし、メモリセルの少なくとも一部が第二の値となっているサブメモリブロックを使用済みサブメモリブロックとしてそれぞれ特定し、データ書き込みモードにおいて、未使用サブメモリブロックへのデータ書込みは許可し、使用済みサブメモリブロックへのデータ書込みは禁止するメモリ管理手段と、
書込対象制御データが書き込まれたバッファメモリの内容を、該書込対象制御データにより占有されていない空白領域も含めて、メモリ管理手段が特定する未使用サブメモリブロックに複写することにより、書込対象制御データを主メモリブロックに追記的に書き込むデータ書込手段と、
消去モードにおいて、不揮発性メモリを主メモリブロック単位で消去するデータ消去手段と、
主メモリブロックにおいて、全てのサブメモリブロックが使用済みサブメモリブロックとなっている場合に、当該主メモリブロックの消去を許可する消去制御手段と、を備えるものとして構成できる。
本発明の適用対象となる不揮発性メモリの代表例は、既に説明したごとくフラッシュメモリであり、本発明では、その消去の単位となるブロックを「主メモリブロック」と呼ぶことにする。また、消去モードにおいて、主メモリブロック内の全メモリセル(メモリセル)に設定される「第一の値」はフラッシュメモリの場合「1」であり、データ書き込みモードでは、この第一の値である「1」を、第二の値である「0」にビットダウンする処理のみが可能である。
上記不揮発性メモリは、1つの主メモリブロックに1つのデータのみを書き込むようにしておけば、記憶領域を最適化するためにフラッシュメモリ側の主メモリブロックをバッファメモリに一旦コピーする必要がなくなり、データ書換え/書込の自由度は増大するように思われる。しかし、制御データのごとき小サイズ(例えば1バイト以上100バイト以下)のデータから見て、消去単位となる主メモリブロックのサイズ(例えば1kバイト以上100kバイト以下)は余りにも大きすぎ、大容量のメモリチップの大半が無駄になってしまう問題がある。そこで、本発明では、その主メモリブロックを複数のサブメモリブロックに区画するとともに、RAMに設けるバッファメモリを、該サブメモリブロックと一対一のアドレス対応関係を有するものとしておく。書込対象制御データは、上記バッファメモリと同一又はそれよりも小さいサイズとして該バッファメモリに書き込んだ後、そのバッファメモリの内容を、該書込対象制御データにより占有されていない空白領域も含め、未使用サブメモリブロックを選ぶ形でここに複写する(つまり、書込対象制御データを主メモリブロックに追記的に書き込む)。すなわち、サブメモリブロックは、未使用のものに限り初回の1回だけ書き込みを許し、一旦使用済みになったサブメモリブロックについては、主メモリブロック単位での消去を行うまではデータの追記を禁止するのである。
上記構成とすることで、以下の効果を得ることができる。
(1)主メモリブロックを複数のサブメモリブロックに区画することで、制御データのような小さなデータの書込みに際しても、主メモリブロックに1個のみデータを書き込む場合と比較すれば、不揮発性メモリの容量の利用効率を大幅に改善できる。
(2)データを書き込むのは、全てのメモリセルが第一の値になっている未使用サブメモリブロックだけなので、メモリセルを第一の値から第二の値に変更する制限された環境下でも、問題なく書込み処理可能である。
(3)一旦使用済みとなったサブメモリブロックについては、空き領域にデータを追記する処理は一切行わないので、(2)を前提とすることで、主メモリブロックの内容をバッファメモリにコピーする処理が全く不要となり、かつ、メモリセルの値を一方向的に変更する処理だけで書込みが終了するので、フラッシュメモリ等での既成概念を打ち破るに足るデータ書込の迅速性を確保できる。
(4)例えば制御データの場合、時系列的な到来頻度は高いが、最新の内容が刻々更新される結果、データがいわば「用済み」となるサイクルも短い。従って、サブメモリブロックの中だけで見れば、メモリ容量の利用効率は必ずしもよくないが、「用済み」データの発生頻度も高いから、そうした「用済み」データで一杯になった主メモリブロック(つまり、全てが使用済みサブメモリブロックとなっている主メモリブロック)を、不揮発性メモリが本来有しているブロック消去機能を用いて、データ書込の合間にどんどん始末(消去)することで、新たな未使用サブメモリブロックを容易にかつ速やかに補充できる。その結果、ユーザー操作履歴記録等に関連した膨大な量の制御データ等も極めて効率的に記憶処理できる。
(1)主メモリブロックを複数のサブメモリブロックに区画することで、制御データのような小さなデータの書込みに際しても、主メモリブロックに1個のみデータを書き込む場合と比較すれば、不揮発性メモリの容量の利用効率を大幅に改善できる。
(2)データを書き込むのは、全てのメモリセルが第一の値になっている未使用サブメモリブロックだけなので、メモリセルを第一の値から第二の値に変更する制限された環境下でも、問題なく書込み処理可能である。
(3)一旦使用済みとなったサブメモリブロックについては、空き領域にデータを追記する処理は一切行わないので、(2)を前提とすることで、主メモリブロックの内容をバッファメモリにコピーする処理が全く不要となり、かつ、メモリセルの値を一方向的に変更する処理だけで書込みが終了するので、フラッシュメモリ等での既成概念を打ち破るに足るデータ書込の迅速性を確保できる。
(4)例えば制御データの場合、時系列的な到来頻度は高いが、最新の内容が刻々更新される結果、データがいわば「用済み」となるサイクルも短い。従って、サブメモリブロックの中だけで見れば、メモリ容量の利用効率は必ずしもよくないが、「用済み」データの発生頻度も高いから、そうした「用済み」データで一杯になった主メモリブロック(つまり、全てが使用済みサブメモリブロックとなっている主メモリブロック)を、不揮発性メモリが本来有しているブロック消去機能を用いて、データ書込の合間にどんどん始末(消去)することで、新たな未使用サブメモリブロックを容易にかつ速やかに補充できる。その結果、ユーザー操作履歴記録等に関連した膨大な量の制御データ等も極めて効率的に記憶処理できる。
主メモリブロックには、複数のサブメモリブロックに対応して設けられ、各サブメモリブロックが未使用サブメモリブロックであるか使用済みサブメモリブロックであるかを特定するサブメモリブロック使用状態記憶部を有した管理用領域を形成することができる。記憶すべきデータサイズがサブメモリブロックのサイズ以下に制限され、かつ、一度使用済みとなったサブメモリブロックは、主メモリブロック単位での一括消去時まではデータの追記処理が全く行われないので、サブメモリブロックの使用状態を表す情報としては、当該のサブメモリブロックが未使用であるか使用済みであるかが判別できれば十分であり、特許文献1のごとき複雑な管理情報(ファイルアロケーションテーブルに相当するもの)とする必要性は全くない。
この場合、サブメモリブロック使用状態記憶部は、対応するサブメモリブロックが未使用サブメモリブロックである場合に第一の値となり、使用済みサブメモリブロックである場合に第二の値となる状態表示メモリセルとすることができる。この状態表示メモリセルは、主メモリブロックを一括消去する際に第一の値に設定すればよく、メモリ管理手段は、未使用サブメモリブロックが使用済みサブメモリブロックとなるに伴い、対応する状態表示メモリセルの記憶値を第一の値から第二の値へビットダウンする形で書き換えればよい。この書換え処理は、不揮発性メモリに対してバッファメモリを経由することなく直接実行可能であり、サブメモリブロック使用状態の内容更新に迅速に対応することができる。
また、本発明における専用データエリアと集合データエリアとは、それぞれ制御データないし集合データの書込領域を、サブメモリブロックを単位として定めることができる。この場合、制御データ更新手段は、データ消去手段が主メモリブロック単位で消去を実行するまでは、古い制御データ又は集合データを主メモリブロックに残した形で、専用データエリア内の制御データと、集合データエリア内の集合データとの更新を、当該主メモリブロック内の空きサブメモリブロック又は別の主メモリブロック内の空きサブメモリブロックへ追記する形で更新するものとできる。この構成のよると、更新のたびに制御データの領域を消去する必要がなくなり、更新に必要なシーケンスを大幅に短縮できる。また、更新のたびに制御データが書き込まれるサブメモリブロックが移動してゆくので、同じメモリ領域にデータが連続して繰り返し書き込まれることがなくなり、メモリの寿命が延びる。
この場合、データ書込手段は、専用データエリアと集合データエリアとのそれぞれにおいて、更新のために取得した制御データを、その取得の時系列に従い、主メモリブロック内の先頭のサブメモリブロック側から当該サブメモリブロック単位にて順次追記書込みするものであり、主メモリブロックは、末尾に位置する使用済みサブメモリブロックほど時系列的に新しい制御データを格納するようになっており、さらに、該主メモリブロックに形成されている使用済みサブメモリブロックのうち最も末尾に位置するものに記憶されている制御データのみ、これを最新の制御データとして読み出す制御データ読み出し手段を有するものとして構成できる。このように構成しておくと、主メモリブロック内のアドレス順に従ったサブメモリブロックの配列に対して、古い制御データから順に前詰めで記憶してゆけばよく、最も末尾に位置するサブメモリブロックが常に最新の制御データを記憶保持する形にできるので、該最新制御データの読出し時における検索処理を大幅に簡略化できる。
以下、本発明の実施の形態を、図面を参照して説明する。
図1は、本発明の自動車用制御システムの一例を示すブロック図である。該自動車用制御システム300においては、その要部をなす管理ECU1に、本発明の車両用制御装置の概念が組み込まれている。管理ECU1には、シリアル通信バス30(通信ネットワーク)を介して複数の端末ECU20(端末制御ユニット)が接続されている。各端末ECU20の要部のハードウェア構成は、後述の管理ECU1と同様であり、CPU3からなる主制御部を各々有し、自動車上に搭載される複数の電子機器の制御処理を対応するアプリケーションの実行に基づいて実施する(すなわち、電子機器制御手段として機能する)。
図1は、本発明の自動車用制御システムの一例を示すブロック図である。該自動車用制御システム300においては、その要部をなす管理ECU1に、本発明の車両用制御装置の概念が組み込まれている。管理ECU1には、シリアル通信バス30(通信ネットワーク)を介して複数の端末ECU20(端末制御ユニット)が接続されている。各端末ECU20の要部のハードウェア構成は、後述の管理ECU1と同様であり、CPU3からなる主制御部を各々有し、自動車上に搭載される複数の電子機器の制御処理を対応するアプリケーションの実行に基づいて実施する(すなわち、電子機器制御手段として機能する)。
各端末ECU20は、例えば自動車のボデー系の制御を司るボデー系ECUとして構成され、各々車両利用者による車両各部の操作に係る機能であるボデー系機能を実現するためのアプリケーションを個別に搭載・実行するものである。このボデー系機能とは、具体的には、ドア開閉に伴う制御、窓開閉に伴う制御、ライトスイッチのオン/オフに伴う制御、キーレスエントリ方式等に採用されるワイヤレスドアロック機構の制御、・・・といったものをいう。具体的には、以下のようなものを例示できる:
・運転席ドア、助手席ドア、後部右側座席ドア、後部左側座席ドア、ルーフなどのロック/ロック解除、パワーウィンドウ動作など。
・エアコン、カーオーディオ、カーナビゲーションシステムなどの電源動作など。
・ルームランプ、コックピットランプ、ヘッドライト、スモールランプ、ハザードランプ、テールランプなどのスイッチ点灯制御など。
・運転席ドア、助手席ドア、後部右側座席ドア、後部左側座席ドア、ルーフなどのロック/ロック解除、パワーウィンドウ動作など。
・エアコン、カーオーディオ、カーナビゲーションシステムなどの電源動作など。
・ルームランプ、コックピットランプ、ヘッドライト、スモールランプ、ハザードランプ、テールランプなどのスイッチ点灯制御など。
次に、管理ECU1において、シリアル通信バス30と、管理ECU1(及び端末ECU20)の内部バスとは、シリアル通信インターフェース6を介して接続されている。管理ECU1は、具体的には、CPU3、ROMとして機能するフラッシュメモリ(不揮発性メモリ)5、RAM4、及び入出力部(I/Oポート)2がバス接続されたマイクロプロセッサからなる。フラッシュメモリ5には、アプリケーション5a、通信用ファームウェア5b、プラットフォーム5c及びメモリ管理プログラム5dとが格納されている。さらに、フラッシュメモリ5には制御データ記憶部5eが形成されている。入出力部(I/Oポート)2には、制御データの記録日時を取得するためのカレンダクロック7が接続されている。
プラットフォーム5cは、ベースとなるハードウェアが相違する場合にも、搭載されるアプリケーションに共通の動作環境を与えるためのものであり、RAM4にそのワークエリア4cが形成され、CPU3により実行される。該プラットフォーム5cは、アプリケーションに対する基本ソフト(OS)のほか、アプリケーションとハードウェアとの連携を図るインターフェースプログラムなどを含んで構成されるが、概念的には周知の部分なので説明の詳細は省略する。また、通信用ファームウェア5bは、各端末ECU20からの制御データの受信などシリアル通信バス30を介したデータ送受信処理を司るものであり(制御データ取得手段を構成している)、RAM4内のワークエリア4bを利用してCPU3により実行される。
また、アプリケーション5a(ソフトウェア)は、RAM4内のワークエリア4aを利用してCPU3により実行されるものであり、電子機器の制御データ、特に重要度が高いデータや永続的に保存されるべきデータを、対応する端末ECU20からシリアル通信バス30を介して取得し、当該制御データを、記憶内容を電気的に書換可能なフラッシュメモリ5に記憶する制御データ管理処理を司る。なお、各アプリケーションプログラムは、フラッシュメモリ以外にも、マスクROMなど他の種別の不揮発性メモリに格納しておくこともできる。また、各アプリケーションプログラムは、RAM4内のワークエリアを経由せず、不揮発性メモリの指定の番地からCPU3のレジスタに直接プログラム情報をストアして実行するようにしてもよい。
フラッシュメモリ5は、メモリ記憶値が「1」と「0」との間で二値切替え可能とされたメモリセルの集合からなる主メモリブロック5f(各サイズは、例えば1kバイト以上100kバイト以下)を複数備えている。そして、消去モードにおいては主メモリブロック5f内の全メモリセルを一括して「1」とする形でのみ消去処理が可能であり、書込モードにあっては、主メモリブロック5f内の任意のメモリセルを「1」から「0」へ変更する処理は可能であって、「0」から「1」へ変更する処理は不能である。
図9は、フラッシュメモリのメモリセルと、その動作原理を模式的に示すものである。該メモリセル200はMOSトランジスタ構造を有し、シリコン基板上に薄いトンネル酸化膜208を介してフローティングゲート203とコントロールゲート202とを積層形成したものである。フローティングゲート203とコントロールゲート202との間には、トンネル酸化膜208よりも厚い絶縁酸化膜209が介挿されており、フローティングゲート203は周囲を絶縁体で取り囲まれた形になっている。
書込み時にはワード線201を介してコントロールゲート202に書込み用制御電圧(例えば+約12V)を印加しつつ、接地されたソース205に対し、ドレイン206に書込みバイアス電圧(例えば+約7V)を印加すると、ソース/ドレイン間で電荷が移動するとともに、その一部がトンネル効果によって、トンネル酸化膜208を隔てたフローティングゲート203側に注入される。読み出し時は、コントロールゲート202に書込み時よりも低い読出し用制御電圧(例えば約5V)を印加し、ドレイン206に接続されたビット線204に読出しバイアス電圧(例えば+1V)を印加する。もし、フローティングゲート203に電荷が注入されていれば、該電荷による電界によりチャネルが開いてソース/ドレイン間に電流が流れ、ビット線204の入力は低インピーダンス(この場合の記憶値を「0」と定義するのが一般的である)となる。他方、フローティングゲート203に電荷が注入されていなければチャネルが閉じてソース/ドレイン間電流は遮断され、ビット線204の入力は高インピーダンス(この場合の記憶値を「1」と定義するのが一般的である)となる。コントロールゲート202への印加電圧がゼロになっても、絶縁体に囲まれたフローティングゲート203の電荷注入状態は保持されるので、上記記憶状態を保つことができる。
一方、消去処理は、トンネル酸化膜208に対し書込み時とは逆向きの電界勾配を付与することにより、フローティングゲート203中の電荷をソース205側へ引き抜くことにより行う。フローティングゲート203中の残留電荷はデータエラーに直結するので、確実に電荷を引き抜くため、コントロールゲート202に書き込み時と逆極性の消去用制御電圧(−約9V)を印加するのに加え、ソース205に対してもコントロールゲート202側と逆極性の消去用バイアス電圧(+約6V)を印加する。
ソース205は、書込み時には接地されているから、消去時には接地から消去用電源へと接続を切替えなければならない。もしもソース205がメモリセル200毎に独立して消去用電源への切替えが可能となっていれば、書込みと同様、消去もビット単位での処理が可能となる。しかし、この構造の場合、各メモリセル200のソース205をアイソレートさせた基板構造が必要となり、また、消去用電源と接地との切替え用の配線も引き回さなければならず、メモリセル200当たりの基板占有面積が大幅に増加するので、高集積化には明らかに不利となる。そこで、フラッシュメモリの場合は、大容量化を図るために、図10に示すように、メモリセル200を1kバイト以上100kバイト以下の範囲でブロック(本発明でいう主メモリブロック5f)にまとめるとともにソース205を共通結線し、ブロック内の全てのメモリセル200を一括して接地207と消去用電源308との間で切り替える構造としている。その結果、フラッシュメモリでは主メモリブロック5fの単位でしか消去ができないのである。すなわち、消去モードにおいて、主メモリブロック5f単位でデータを消去するデータ消去手段の機能は、フラッシュメモリ5のハードウェア構造自体が内包している。
また、フローティングゲート203への電荷の注入(つまり、記憶値を「1」から「0」へ変更すること)はメモリセル(ビット)単位で行えるが、フローティングゲート203からの電荷の抜き取りは、ブロック単位での消去時にしか行えない。従って、ビット単位処理の組み合わせとなるデータの書込みに際しては、記憶値を「1」から「0」へビットダウンすることのみが可能であり、その逆、つまり、記憶値を「0」から「1」へビットアップすることは構造上不可能である。
次に、フラッシュメモリ5内の制御データ記憶部5eは、集合データエリア51と専用データエリア52とからなる。そして、双方のデータエリア51,52が複数の主メモリブロック5fの集合からなり、図2に示すように、各主メモリブロック5fは、当該主メモリブロック5fよりも少ない複数のメモリセルからなるサブメモリブロック5m(例えば、各サイズが10バイト以上1kバイト以下(望ましくは10バイト以上100バイト以下))に区画されている。RAM4内のバッファメモリ4dは、各サブメモリブロック5mと一対一のアドレス対応関係を有するものとして形成されている。書込対象となる制御データはバッファメモリ4dと同一又はそれよりも小さいサイズからなり、該バッファメモリ4dに一旦バッファリングされる(データバッファリング手段:プラットフォーム5cの一部に組み込まれている)。
そして、図1のメモリ管理プログラム5dは、CPU3上で実行されることにより、上記フラッシュメモリの使用形態を前提として、以下のような機能を実現する。
・メモリ管理手段:主メモリブロック5fにおいて、メモリセルの全てが「1」となっているサブメモリブロック5m(図3の状態1)を未使用サブメモリブロック5mとし(図3の状態1)、メモリセルの少なくとも一部が「0」となっているサブメモリブロック5mを使用済みサブメモリブロック5mとして(図3の状態2〜状態4)、それぞれ特定する(例えば、サブメモリブロック内のメモリセル記憶値のチェックサムから容易に確認できる)。データ書込みモードにおいて、未使用サブメモリブロック5mへのデータ書込みは許可し、使用済みサブメモリブロック5mへのデータ書込み(あるいは上書き)は禁止する。
・データ書込手段:図4に示すように、書込対象制御データが書き込まれたバッファメモリ4dの内容を、該書込対象制御データにより占有されていない空白領域も含めて、メモリ管理プログラム5dが特定する未使用サブメモリブロック5mに複写することにより、書込対象制御データを主メモリブロック5fに追記的に書き込む。
・消去制御手段:主メモリブロック5fにおいて、全てのサブメモリブロック5mが使用済みサブメモリブロックとなっている場合(図3の状態4)に、当該主メモリブロック5fの消去を許可する。
・メモリ管理手段:主メモリブロック5fにおいて、メモリセルの全てが「1」となっているサブメモリブロック5m(図3の状態1)を未使用サブメモリブロック5mとし(図3の状態1)、メモリセルの少なくとも一部が「0」となっているサブメモリブロック5mを使用済みサブメモリブロック5mとして(図3の状態2〜状態4)、それぞれ特定する(例えば、サブメモリブロック内のメモリセル記憶値のチェックサムから容易に確認できる)。データ書込みモードにおいて、未使用サブメモリブロック5mへのデータ書込みは許可し、使用済みサブメモリブロック5mへのデータ書込み(あるいは上書き)は禁止する。
・データ書込手段:図4に示すように、書込対象制御データが書き込まれたバッファメモリ4dの内容を、該書込対象制御データにより占有されていない空白領域も含めて、メモリ管理プログラム5dが特定する未使用サブメモリブロック5mに複写することにより、書込対象制御データを主メモリブロック5fに追記的に書き込む。
・消去制御手段:主メモリブロック5fにおいて、全てのサブメモリブロック5mが使用済みサブメモリブロックとなっている場合(図3の状態4)に、当該主メモリブロック5fの消去を許可する。
次に、図2に示すように、集合データエリア51及び専用データエリア52において、各主メモリブロック5fには、サブメモリブロック5mの集合からなる本体データ領域5hと、それらサブメモリブロック5mが未使用サブメモリブロック5mであるか使用済みサブメモリブロック5mであるかを特定するサブメモリブロック使用状態記憶部5jを有した管理用領域5gが形成されている。管理用領域5gには、上記サブメモリブロック使用状態記憶部5jのほか、そのサブメモリブロック5mに格納される制御データの識別情報5i、及びデータのエラーを検出するためのチェックコード5k(例えばチェックサムやパリティデータなど)の記憶部も合せて形成されている。なお、図2では、主メモリブロック5f内の各サブメモリブロック5mの管理用領域5gを一箇所に集合形成しているが、図8に示すように、サブメモリブロック5m毎に管理用領域5gを随伴させたサブユニット5m’を形成し、主メモリブロック5f内に管理用領域5gを分散形成するようにしてもよい。
サブメモリブロック使用状態記憶部5jは、対応するサブメモリブロック5mが未使用サブメモリブロック5mである場合に「1」となり、使用済みサブメモリブロックである場合に「0」となる状態表示メモリセル5pの集合からなる。各状態表示メモリセル5pは、主メモリブロック5fを一括消去する際に一括して「1」に設定され、前述のメモリ管理プログラム5dにより、未使用サブメモリブロック5mが使用済みサブメモリブロックとなるに伴い、対応する状態表示メモリセル5pの記憶値が「1」から「0」へ変更する形で書き換えられる。
図2においては、先頭の主メモリブロック5fにおいて、その先頭から3番目までのサブメモリブロック5mが使用済みであり、末尾(4番目)のサブメモリブロック5mは未使用である。各使用済みサブメモリブロック5mにおいて、ハッチングを付与した領域は書込み済の領域を、ハッチングを付与していない領域は未書込みの領域を示している。しかし、この使用済みサブメモリブロック5mに残っている未書込みの領域は、該サブメモリブロック5mが属する主メモリブロック5fの一括消去がなされるまでは、新たなデータの追記に使用されることはない。
メモリ管理プログラム5dは、図3に示すように、順次取得した複数の制御データを、その取得の時系列に従い、主メモリブロック5f内の先頭のサブメモリブロック5mから当該サブメモリブロック5m単位にて順次追記書込みする。主メモリブロック5fは、末尾に位置する使用済みサブメモリブロック5mほど、時系列的に新しい制御データを格納するようになっている。そして、主メモリブロック5fに形成されている使用済みサブメモリブロック5mのうち最も末尾に位置するものに記憶されている制御データのみが、最新の制御データとして読み出される。図3において、状態2ではサブメモリブロック5m1が、状態3ではサブメモリブロック5m2が、状態4ではサブメモリブロック5m4が、それぞれ最新の制御データを示している。
また、メモリ管理プログラム5dは、図4に示すように、同種の制御データについては、その時系列的セットを、定められた複数の主メモリブロック5fにまたがる形で順次書き込む(ここでは、簡単のために、主メモリブロック1及び主メモリブロック2の2つのみを描いているが、3以上の主メモリブロック5fにまたがって書き込むようにしてもよい)。制御データにはID(識別情報)が付与され、これと同一のIDが付与された主メモリブロック5fが格納先として指定される。複数の主メモリブロック5fの各サブメモリブロック5mには、時系列的に順次到来する制御データの格納順序が予め定められていて、上位アドレス側から順次前詰で格納されてゆく。図4では、第一の主メモリブロック5fの、途中のサブメモリブロックまでが使用済となっており、第二の主メモリブロック5fは全てのサブメモリブロック5mが未使用である。制御データは、第一の主メモリブロック5fのサブメモリブロック5mを全て埋めた後、第二の主メモリブロック5fにその記憶処理が引き継がれる。
メモリ管理プログラム5dは、全てのサブメモリブロック5mが使用済みサブメモリブロックとなっている主メモリブロック5fであって、それら使用済みサブメモリブロックに格納されている制御データが、他のいずれの主メモリブロック5fに格納されている制御データよりも時系列的に古い主メモリブロック5fについて、当該主メモリブロック5fの消去を許可する。図5では、管理用領域5g内のサブメモリブロック使用状態記憶部5jが、第一の主メモリブロック5fについては全てのサブメモリブロックが使用済み(「0」)になっている状態を示し、第二の主メモリブロック5fについては1番目のサブメモリブロックまでが使用済み(「0」)になっている状態を示している。従って、第二の主メモリブロック5fの全てのサブメモリブロック5mが使用済みとなる前に、第一の主メモリブロック5fを消去する。そして、第二の主メモリブロック5fが一杯になれば、再び第一の主メモリブロック5fに記憶処理を受け渡す。
以上の処理を実現するプログラムの流れを、図6〜図8のフローチャートに従って説明する。図6は、メモリ管理プログラム5dによるデータ書込処理の流れを示すものである。S1では、アプリケーション5aからのデータ書込要求があるかどうかを調べ、S2で制御データをバッファメモリ4dに書き込むとともに、その制御データの種別を識別情報の内容から確認する。S3では、確認された種別に対応する第一の主メモリブロック5f及び第二の主メモリブロック5fの空き状況を調べる。S4でその結果を確認し、未使用サブメモリブロック5mが第一の主メモリブロック5fにのみ存在する場合にはS9に進み、バッファメモリ4d内の制御データを読み出して、第一の主メモリブロック5fの先頭の未使用サブメモリブロック5mに格納し、S10で、サブメモリブロック使用状態記憶部5jの対応する状態表示メモリセル5p(図2参照)をビットダウンして「0」とする。S11では、第一の主メモリブロック5fの最後のサブメモリブロック5mが使用済みになったかどうかを確認する。Yesの場合、S4にて未使用サブメモリブロック5mが第一の主メモリブロック5fにのみ存在することを確認済だから、この時点で第二の主メモリブロック5fは古い制御データにより一杯になっている。従って、S12で第二の主メモリブロック5fの消去を指令する。
また、S4で未使用サブメモリブロック5mが第二の主メモリブロック5fにのみ存在する場合にはS5〜S8に進み、上記の第一の主メモリブロックと第二の主メモリブロックとを入れ替えた形で、S9〜S12と同様の処理を行う。また、フラッシュメモリの初期化を行った後では、第一の主メモリブロックと第二の主メモリブロックの両方のサブメモリブロックが全て未使用となっているから、S13に進み、バッファメモリ4d内の制御データを読み出して、第一の主メモリブロックの先頭の未使用サブメモリブロックに格納し、S14で、サブメモリブロック使用状態記憶部5jの対応する状態表示メモリセル5p(図2参照)をビットダウンして「0」とする。
図7は、メモリ管理プログラム5dによるデータ消去制御処理の流れを示し、S51では、制御データ記憶部5eに対する現在受付中のデータ書込要求があるかどうかを確認し、要求がない場合にS52,S53に進み、どちらの主メモリブロック5fに消去指令が出ているかを確認する。第一の主メモリブロック5fに消去指令がある場合はS53に進んでこれを一括消去し、第二の主メモリブロック5fに消去指令がある場合はS55に進んでこれを一括消去する。また、どちらの主メモリブロック5fについても消去指令がない場合、あるいはS51で、制御データ記憶部5eに対する現在受付中のデータ書込要求がある場合は、消去処理自体をスキップしてリターンする。
本実施形態の自動車用制御システムは、上記のメモリ方式をベースに構築されたものであり、さらに、図11に示すように、制御データ記憶部5eが、ECU(制御主体)1のプログラムが参照する制御データを更新可能に記憶するとともに、個々の制御データをそれぞれ、当該制御データを単独で記憶する専用データエリア52と、当該制御データとは異なる他の制御データと組み合わせた集合データの形で記憶する集合データエリア51とに二重化した形で記憶するように構成されている。この構成により、不揮発性メモリ(上記実施形態におけるフラッシュメモリ)の制御データ記憶部5eに対し、制御データを二重化した形で記憶し、それぞれの領域に記憶される制御データの保存処理を、異なるタイミング、異なる条件で行うことができる。
ところで、従来は、図16に示すように、制御データ記憶部5eの主データエリアに記憶する制御データをバックアップエリアにも記憶する場合、双方のデータエリアへのデータの書き込みが同じ処理かつ同じタイミングにて行われ、データの消去も同じ処理かつ同じタイミングで行われていた。つまり、制御データ記憶部5eに複数領域を設けたとしても、領域の使われ方が全く同じであるため、故障の傾向と時期が同じになりやすく、同時期に故障が生じた場合には、主データエリアだけではなく、バックアップエリアに記憶されていたデータまで使用できなくなる可能性があった。
本実施形態において、専用データエリア52と集合データエリア51とは、それぞれ制御データないし集合データの書込領域は、サブメモリブロック5mを単位として定められている。そして、主メモリブロック5f単位で消去を実行するまでは、古い制御データ又は集合データを主メモリブロック5fに残した形で、専用データエリア52内の制御データと、集合データエリア51内の集合データとの更新を、当該主メモリブロック5f内の空きサブメモリブロック5m又は別の主メモリブロック5f内の空きサブメモリブロック5mへ追記する形で行うよう構成されている。
まず、集合データエリア51への保存処理について説明する。集合データエリア51への保存は、更新対象となる制御データの更新を、全ての更新非対象の制御データの同一内容によるリライトする形で行う。その具体例を図12に示す。図12では、個別の制御データA,B,C,Xが1つの集合データの形となって、サブメモリブロック5mに保存されている。なお、この集合データは、個別の制御データA,B,C,Xのそれぞれを識別可能となるよう、個々の制御データA,B,C,Xに対し補助識別情報を付与した形で保存しており、個別の制御データの読出し要求があった場合には、その補助識別情報により集合データの中から個々の制御データを読み出すことが可能となっている。
図12では、まず、状態a1において、集合データA,B,C,Xが、セクタ(主メモリブロック)1内のサブメモリブロック5mに集合データA1,B1,C1,X1として書き込まれている。この状態a1から個別の制御データB1をB2に更新する場合には、サブメモリブロック5mに書き込まれている最新の集合データA1,B1,C1,X1を、集合データA1,B2,C1,X1として、次のサブメモリブロック5mに書き込む。これにより、個別の制御データBが更新された状態a2となる。このとき更新対象となる制御データBは、制御データB1をB2に更新されているが、残りの制御データA1,C1,X1は、同一内容のままとなっている。この状態a2から個別の制御データA1をA2に更新して状態a3とする場合も同様であり、最新の集合データA1,B2,C1,X1を集合データA2,B2,C1,X1として、次のサブメモリブロック5mに書き込む。状態a3から個別の制御データX1をX2に更新して状態a4とする場合も、最新の集合データA2,B2,C1,X1を集合データA2,B2,C1,X2として作成して、次のサブメモリブロック5mに書き込む。このように、集合データの中で更新対象となる制御データのみを更新して、その集合データ全体を次のサブメモリブロック5mに書き込む形で行う。
ただし、図12において、状態a4となると、セクタ1の全てのサブメモリブロック5mが使用済みとなる。この場合はセクタ1の次のセクタ2を利用して更新がなされる。具体的に、状態a4から個別の制御データC1をC2に更新する場合には、セクタ1のサブメモリブロック5mに書き込まれている最新の集合データA2,B2,C1,X2から、集合データA2,B2,C2,X2を作成して、セクタ2の先頭のサブメモリブロック5mに書き込む。これにより状態a7となる。なお、書き込みが完了したセクタ1は消去される。このように、全てのサブメモリブロック5mが使用済みとなったセクタは、次のセクタに新たな制御データが書き込まれると消去され、時系列的に古い制御データが順次消去される。
また、全てのサブメモリブロック5mが使用済みとなって次のセクタにて更新を行う際に、次のセクタが不良セクタであった場合には、その不良セクタをスキップして更新を行う。例えば、図12において、状態a4から個別の制御データX1をX2に更新する場合に、セクタ2が故障して不良セクタとなっていた場合には、セクタ2をスキップしてセクタ3の先頭のサブメモリブロック5mに集合データA2,B2,C1,X2が書き込まれる。これにより状態a6のようになる。
次に、専用データエリア52への保存処理について説明する。専用データエリア52への保存は、更新対象となる制御データのみを個別に更新する形で行う。具体的には、集合データA,B,C,Xに含まれる個別の制御データ毎に専用データエリア52が割り振られており、更新される制御データをその識別情報から、対応する専用データエリア52を特定して書き込む。
例えば、図12における集合データエリア51の更新処理の流れの中で、集合データA,B,C,Xに含まれる個別の制御データXの専用データエリア52への更新は、図13に示すとおり、状態a3から状態a4にかけて、制御データXがX1からX2に更新される形で行われている。具体的には、セクタ101内にて制御データX1が書き込まれていたサブメモリブロック5mの次のサブメモリブロック5mに、制御データX2が書き込まれている。なお、専用データエリア52も集合データエリア51と同様に、セクタ101内のサブメモリブロック5mが全て使用済みとなると、次のセクタ102の先頭のサブメモリブロック5mに更新された制御データが書き込まれ、セクタ101は消去される。また、次のセクタ102が不良セクタであれば、セクタ102をスキップしてセクタ103の先頭のサブメモリブロック5mに更新された制御データが書き込まれる。
ここで、これら集合データエリア51及び専用データエリア52への制御データの保存を実行する具体的な処理の流れを、図14のフローチャートを用いて説明する。S201では、CPU3が実行しているアプリケーション5aにおいて、データ保存要求があるか否かを判定する。データ保存要求がなければ本プログラムを終了し、データ保存要求があればS202に進む。S202では、データ保存要求を受けた要求データにチェックコードを付与した保存データを作成する。S203では、まず、集合データエリア51から最新の集合データを読み出して、その最新の集合データ全体をRAM4のバッファメモリ4dに書き込み、バッファメモリ4d上でこの集合データの中から更新対象となる制御データのみを保存データにより上書きし、新たな集合データをよって更新する。S204では、バッファメモリ4d上で更新された集合データを集合データエリア51のセクタ1又はセクタ2の未使用サブメモリブロック5mに書き込む。S205では、保存データに対応する専用データエリア51の、セクタ101又はセクタ102の未使用サブメモリブロック5mにこの保存データを保存する。なお、このデータ保存処理は所定の周期で繰り返し実行される。
このデータ保存処理により、制御データは、集合データエリア51と専用データエリア52とに、それぞれ異なる保存タイミング、保存形態にて記憶がなされるから、それぞれのエリアの劣化傾向が異なり、双方が同時期に故障が生じる可能性が極めて低くなる。
次に、これら集合データエリア51及び専用データエリア52に保存された制御データの読出しを、アプリケーション5a(図1)が実行する具体的な処理の流れを、図15のフローチャートを用いて説明する。S301では、実行中のアプリケーションからデータの読出し要求があるか否かを判定する。要求が無ければ本プログラムを終了し、要求があればS302に進む。S302では、集合データエリア51から、要求された制御データの読出しを試みる。S303では、その読出しが成功したか否か、さらにチェックコードが一致したか否かを判定する。
S303にて読出し失敗、あるいはチェックコードが不一致とされた場合にはS304に進む。S304では、今度は専用データエリア52から、要求された制御データの読出しを試みる。S305では、その読出しが成功したか否か、さらにチェックコードが一致したか否かを判定する。読出しが正常に成功し、チェックコードも一致していた場合には、S302で読出しを試みて失敗した集合データエリア51の制御データを、成功した専用データエリア52の制御データにより修復する。修復は、上記図14のデータ保存処理を利用して行われる。修復後にはS307に進み、読出しを要求したアプリケーションに対し読出した制御データを返し、本プログラムを終了する。他方、S305で読出しが失敗、あるいはチェックコードが不一致とされた場合には、読出しを要求したアプリケーションに対し読出し失敗を返し、本プログラムを終了する。
S303にて、集合データエリア51からの制御データの読出しが正常に成功し、チェックコードも一致していた場合には、S309に進む。管理ECU1には、本プログラムの実行により要求されたデータをアプリケーションに返すことができた連続回数(S307の連続実行回数)をカウントするカウンタが設けられており、S309では、そのカウンタのカウント値を読み出して、N回(N:予め定められた回数、例えば30回)連続で読み出し処理が成功しているか否かを判定する。連続して集合データエリア51が利用され、専用データエリア52が放置されている中で、放置されている専用データエリア52のデータが故障して使用できない状態となる可能性があるので、N回連続で成功している場合にはS310〜S312を実行して、専用データエリア52の読出し確認を行う。
具体的には、S301にて要求された制御データの専用データエリア52からの読出しを試みて、S3011にて、その読出しが成功したか否か、さらにチェックコードが一致したか否かを判定する。読出しが正常に成功し、チェックコードも一致していた場合には、S307に進む。S311で読出しが失敗、あるいはチェックコードが不一致とされた場合には、読出しを試みて失敗した専用データエリア52の制御データを、成功した集合データエリア51の制御データにより修復し、S307に進む。これにより、先に読み出す側(優先データエリア)のデータが連続して正常に読み出せた場合に、残りの一方についても定期的に調べることができ、異常が見つかったらすぐに修復できる。
他方、S309にて、過去にN回の間に専用データエリア52の制御データが使用されていたとされた場合には、S307に進み、読出しを要求したアプリケーションに対し読出した制御データを返し、本プログラムを終了する。
このデータ読出処理では、制御データ記憶部5eから制御データを読み出すために、専用データエリア52及び集合データエリア51の一方において対象となる制御データの読出しを試みた際に、該正常な読出しに失敗した場合に、専用データエリア52及び集合データエリア51の他方において対応する制御データの読出しをリトライし、リトライにて制御データの正常な読出しに成功した場合に、当該正常な読出しに成功した制御データを用いて、失敗した側のデータエリアの制御データを修復するようになっている。これにより、先に読み出す側のデータが壊れていることがわかったらすぐに修復でき、正常な制御データが二重に記憶されている状態を維持できる。
また、この処理では、専用データエリア52及び集合データエリア51の一方が、制御データの読出しを先に試みる優先データエリアとして固定的に定められ、優先データエリアとして定められてないものに定期的にアクセスして制御データの読出しを試みるなっており、当該読出しにて制御データの正常な読出しに失敗した場合には、優先データエリア側にて正常な読出しに成功した制御データを用いて、失敗した側のデータエリアの制御データを修復することが可能とされている。これにより、先に読み出す側(優先データエリア)のデータが連続して正常に読み出せた場合に、残りの一方についても定期的に調べることで、正常な制御データが二重に記憶されているかどうかを把握でき、異状が見つかったらすぐに修復できる。
なお、本実施形態のデータ読出し処理においては、集合データエリア51を積極的に利用する優先データエリアとして固定的に定め、専用データエリア52をバックアップエリアとして扱っているが、これらを逆に設定してもよい。
1 管理ECU
3 CPU
4 RAM
4d バッファメモリ
5 フラッシュメモリ(不揮発性メモリ、データ消去手段)
5a アプリケーション(制御データ更新手段、制御データ読出し手段、制御データ修復手段)
5b 通信用ファームウェア(制御データ取得手段)
5d メモリ管理プログラム(メモリ管理手段、データ書込手段、消去制御手段)
5c プラットフォーム(データバッファリング手段、データ消去手段)
5f 主メモリブロック
5m サブメモリブロック
5g 管理用領域
5j サブメモリブロック使用状態記憶部
5p 状態表示メモリセル
51 集合データエリア
52 専用データエリア
20 端末ECU(電子機器制御手段)
21 書き換えバッファ領域
30 シリアル通信バス(通信ネットワーク、制御データ取得手段)
300 自動車用制御システム
3 CPU
4 RAM
4d バッファメモリ
5 フラッシュメモリ(不揮発性メモリ、データ消去手段)
5a アプリケーション(制御データ更新手段、制御データ読出し手段、制御データ修復手段)
5b 通信用ファームウェア(制御データ取得手段)
5d メモリ管理プログラム(メモリ管理手段、データ書込手段、消去制御手段)
5c プラットフォーム(データバッファリング手段、データ消去手段)
5f 主メモリブロック
5m サブメモリブロック
5g 管理用領域
5j サブメモリブロック使用状態記憶部
5p 状態表示メモリセル
51 集合データエリア
52 専用データエリア
20 端末ECU(電子機器制御手段)
21 書き換えバッファ領域
30 シリアル通信バス(通信ネットワーク、制御データ取得手段)
300 自動車用制御システム
Claims (8)
- CPUを含んで構成され、車載用電子機器を前記CPUによるプログラム処理により動作制御する制御主体と、
前記制御主体の前記プログラムが参照する制御データを更新可能に記憶するとともに、個々の前記制御データをそれぞれ、当該制御データを単独で記憶する専用データエリアと、当該制御データとは異なる他の制御データと組み合わせた集合データの形で記憶する集合データエリアとに二重化した形で記憶する制御データ記憶部と、
前記制御データ記憶部において前記制御データを更新するために、前記専用データエリアにおいては更新対象となる制御データのみを更新する一方、前記集合データエリアにおいては、更新対象となる制御データの更新を、全ての更新非対象の制御データの同一内容によるリライトとともに実施する制御データ更新手段と、
を備えたことを特徴とする車両用制御装置。 - 前記制御データ記憶部から前記制御データを読み出すために、前記専用データエリア及び前記集合データエリアの一方において対象となる制御データの読出しを試み、該正常な読出しに失敗した場合に、前記専用データエリア及び前記集合データエリアの他方において対応する制御データの読出しをリトライする制御データ読出し手段と、
前記リトライにて前記制御データの正常な読出しに成功した場合に、当該正常な読出しに成功した制御データを用いて、前記失敗した側のデータエリアの制御データを修復する制御データ修復手段と、を有する請求項1記載の車両用制御装置。 - 前記制御データ読出し手段は、前記専用データエリア及び前記集合データエリアの一方が、前記制御データの読出しを先に試みる優先データエリアとして固定的に定められており、
前記制御データ修復手段は、前記専用データエリア及び前記集合データエリアの前記優先データエリアとして定められてないものに定期的にアクセスして前記制御データの読出しを試みるとともに、当該読出しにて前記制御データの正常な読出しに失敗した場合に、前記優先データエリア側にて正常な読出しに成功した制御データを用いて、前記失敗した側のデータエリアの制御データを修復するものである請求項2記載の車両用制御装置。 - 前記制御データ記憶部は、メモリ記憶値が第一の値と第二の値との間で二値切替え可能とされたメモリセルの集合からなる主メモリブロックを複数備え、メモリ駆動のための電源供給が遮断されても、前記各メモリセルが記憶状態を保持可能であり、また、各主メモリブロックが当該主メモリブロックよりも少ない複数のメモリセルからなるサブメモリブロックに区画されてなり、消去モードにおいては前記主メモリブロック内の全メモリセルを一括して前記第一の値とする形でのみ消去処理が可能であり、データ書き込みモードでは、前記主メモリブロック内の前記第一の値となっている任意のメモリセルを前記第二の値へ変更することは可能であって、前記第二の値となっている任意のメモリセルを前記第一の値へ変更することは不能とされた不揮発性メモリにて構成され、前記専用データエリアと前記集合データエリアとが、それぞれ1又は複数の前記主メモリブロックからなるものとして形成され、
前記制御データ更新手段は、
ランダムアクセスメモリとして構成され、前記サブメモリブロックと一対一のアドレス対応関係を有するバッファメモリと、
前記バッファメモリと同一又はそれよりも小さいサイズからなる書込対象制御データを該バッファメモリに書き込むデータバッファリング手段と、
前記主メモリブロックにおいて、前記メモリセルの全てが前記第一の値となっているサブメモリブロックを未使用サブメモリブロックとし、前記メモリセルの少なくとも一部が前記第二の値となっているサブメモリブロックを使用済みサブメモリブロックとしてそれぞれ特定し、前記データ書き込みモードにおいて、前記未使用サブメモリブロックへのデータ書込みは許可し、前記使用済みサブメモリブロックへのデータ書込みは禁止するメモリ管理手段と、
前記書込対象制御データが書き込まれた前記バッファメモリの内容を、該書込対象制御データにより占有されていない空白領域も含めて、前記メモリ管理手段が特定する前記未使用サブメモリブロックに複写することにより、前記書込対象制御データを前記主メモリブロックに追記的に書き込むデータ書込手段と、
前記消去モードにおいて、前記不揮発性メモリを前記主メモリブロック単位で消去するデータ消去手段と、
前記主メモリブロックにおいて、全てのサブメモリブロックが前記使用済みサブメモリブロックとなっている場合に、当該主メモリブロックの消去を許可する消去制御手段と、を備える請求項1ないし請求項3のいずれか1項に記載の車両用制御装置。 - 前記主メモリブロックには、複数のサブメモリブロックに対応して設けられ、各サブメモリブロックが前記未使用サブメモリブロックであるか使用済みサブメモリブロックであるかを特定するサブメモリブロック使用状態記憶部を有した管理用領域が形成されている請求項4記載の車両用制御装置。
- 前記サブメモリブロック使用状態記憶部は、対応する前記サブメモリブロックが未使用サブメモリブロックである場合に前記第一の値となり、前記使用済みサブメモリブロックである場合に前記第二の値となる状態表示メモリセルであり、
前記状態表示メモリセルは前記主メモリブロックを一括消去する際に前記第一の値に設定されるものであり、
前記メモリ管理手段は、前記未使用サブメモリブロックが前記使用済みサブメモリブロックとなるに伴い、対応する状態表示メモリセルの記憶値を前記第一の値から前記第二の値へビットダウンする形で書き換えるものである請求項5記載の車両用制御装置。 - 前記専用データエリアと前記集合データエリアとは、それぞれ前記制御データないし前記集合データの書込領域が、前記サブメモリブロックを単位として定められ、
前記制御データ更新手段は、前記データ消去手段が前記主メモリブロック単位で消去を実行するまでは、古い制御データ又は集合データを前記主メモリブロックに残した形で、前記専用データエリア内の前記制御データと、前記集合データエリア内の前記集合データとの更新を、当該主メモリブロック内の空きサブメモリブロック又は別の主メモリブロック内の空きサブメモリブロックへ追記する形で更新するものである請求項4ないし請求項6のいずれか1項に記載の車両用制御装置。 - 前記データ書込手段は、前記専用データエリアと前記集合データエリアとのそれぞれにおいて、前記更新のために取得した前記制御データを、その取得の時系列に従い、前記主メモリブロック内の先頭のサブメモリブロック側から当該サブメモリブロック単位にて順次追記書込みするものであり、
前記主メモリブロックは、末尾に位置する使用済みサブメモリブロックほど時系列的に新しい制御データを格納するようになっており、さらに、
該主メモリブロックに形成されている使用済みサブメモリブロックのうち最も末尾に位置するものに記憶されている制御データのみ、これを最新の制御データとして読み出す制御データ読み出し手段を有する請求項7記載の車両用制御装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006253335A JP2008077221A (ja) | 2006-09-19 | 2006-09-19 | 車両用制御装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006253335A JP2008077221A (ja) | 2006-09-19 | 2006-09-19 | 車両用制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008077221A true JP2008077221A (ja) | 2008-04-03 |
Family
ID=39349234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006253335A Pending JP2008077221A (ja) | 2006-09-19 | 2006-09-19 | 車両用制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008077221A (ja) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010076622A (ja) * | 2008-09-26 | 2010-04-08 | Daihatsu Motor Co Ltd | 車載メモリ制御装置 |
JP2010113580A (ja) * | 2008-11-07 | 2010-05-20 | Keihin Corp | バックアップ方法及び装置並びに車両用電子制御装置 |
JP2011025781A (ja) * | 2009-07-23 | 2011-02-10 | Hitachi Automotive Systems Ltd | 車両用制御装置 |
WO2013042513A1 (ja) * | 2011-09-21 | 2013-03-28 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置及びデータ通信方法 |
JP2013077283A (ja) * | 2011-09-13 | 2013-04-25 | Toshiba Corp | 情報処理装置および情報処理方法 |
US9594517B2 (en) | 2013-01-17 | 2017-03-14 | Denso Corporation | Vehicle device |
CN107422658A (zh) * | 2011-09-21 | 2017-12-01 | 日立汽车***株式会社 | 程序变更获取方法 |
CN110758291A (zh) * | 2019-11-13 | 2020-02-07 | 合肥杰发科技有限公司 | 一种倒车影像***的控制方法、控制器、***及存储介质 |
CN111061514A (zh) * | 2019-10-30 | 2020-04-24 | 翱捷智能科技(上海)有限公司 | Flash器件、集成电路及Flash器件启动方法 |
JPWO2020136839A1 (ja) * | 2018-12-27 | 2021-02-15 | 三菱電機株式会社 | 制御システム |
DE112020001909T5 (de) | 2019-05-28 | 2022-01-13 | Hitachi Astemo, Ltd. | Arithmetikverarbeitungsvorrichtung, Fahrzeugsteuervorrichtung und Aktualisierungsverfahren |
-
2006
- 2006-09-19 JP JP2006253335A patent/JP2008077221A/ja active Pending
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010076622A (ja) * | 2008-09-26 | 2010-04-08 | Daihatsu Motor Co Ltd | 車載メモリ制御装置 |
JP2010113580A (ja) * | 2008-11-07 | 2010-05-20 | Keihin Corp | バックアップ方法及び装置並びに車両用電子制御装置 |
JP2011025781A (ja) * | 2009-07-23 | 2011-02-10 | Hitachi Automotive Systems Ltd | 車両用制御装置 |
JP2013077283A (ja) * | 2011-09-13 | 2013-04-25 | Toshiba Corp | 情報処理装置および情報処理方法 |
US9164696B2 (en) | 2011-09-21 | 2015-10-20 | Hitachi Automotive Systems, Ltd. | Electronic control unit for vehicle and data communication method |
US9836225B2 (en) | 2011-09-21 | 2017-12-05 | Hitachi Automotive Systems, Ltd. | Electronic control unit for vehicle and data communication method |
CN103890731A (zh) * | 2011-09-21 | 2014-06-25 | 日立汽车***株式会社 | 汽车用电子控制装置以及数据通信方法 |
US20140208008A1 (en) * | 2011-09-21 | 2014-07-24 | Hitachi Automotive Systems, Ltd | Electronic control unit for vehicle and data communication method |
WO2013042513A1 (ja) * | 2011-09-21 | 2013-03-28 | 日立オートモティブシステムズ株式会社 | 自動車用電子制御装置及びデータ通信方法 |
CN107422658B (zh) * | 2011-09-21 | 2020-03-10 | 日立汽车***株式会社 | 程序变更获取方法 |
CN107422658A (zh) * | 2011-09-21 | 2017-12-01 | 日立汽车***株式会社 | 程序变更获取方法 |
JP2013069004A (ja) * | 2011-09-21 | 2013-04-18 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置及びデータ通信方法 |
US9594517B2 (en) | 2013-01-17 | 2017-03-14 | Denso Corporation | Vehicle device |
JPWO2020136839A1 (ja) * | 2018-12-27 | 2021-02-15 | 三菱電機株式会社 | 制御システム |
DE112020001909T5 (de) | 2019-05-28 | 2022-01-13 | Hitachi Astemo, Ltd. | Arithmetikverarbeitungsvorrichtung, Fahrzeugsteuervorrichtung und Aktualisierungsverfahren |
CN111061514A (zh) * | 2019-10-30 | 2020-04-24 | 翱捷智能科技(上海)有限公司 | Flash器件、集成电路及Flash器件启动方法 |
CN110758291A (zh) * | 2019-11-13 | 2020-02-07 | 合肥杰发科技有限公司 | 一种倒车影像***的控制方法、控制器、***及存储介质 |
CN110758291B (zh) * | 2019-11-13 | 2021-04-27 | 合肥杰发科技有限公司 | 一种倒车影像***的控制方法、控制器、***及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008077221A (ja) | 車両用制御装置 | |
US6865658B2 (en) | Nonvolatile data management system using data segments and link information | |
KR100622349B1 (ko) | 불량 블록 관리 기능을 가지는 플레시 메모리 장치 및플레시 메모리 장치의 불량 블록 관리 방법. | |
US8040727B1 (en) | Flash EEprom system with overhead data stored in user data sectors | |
US6571312B1 (en) | Data storage method and data processing device using an erasure block buffer and write buffer for writing and erasing data in memory | |
KR0128218B1 (ko) | 일괄 소거형 비휘발성 메모리 | |
US7330995B2 (en) | Nonvolatile memory apparatus which prevents destruction of write data caused by power shutdown during a writing process | |
US6381176B1 (en) | Method of driving remapping in flash memory and flash memory architecture suitable therefor | |
US20080250188A1 (en) | Memory Controller, Nonvolatile Storage, Nonvolatile Storage System, and Memory Control Method | |
EP0590809A2 (en) | Nonvolatile semiconductor storage device | |
KR100809319B1 (ko) | 플래시 메모리에서 연속한 섹터 쓰기 요청에 대해 원자성을제공하는 장치 및 방법 | |
US20090100290A1 (en) | Memory controller, nonvolatile memory device, nonvolatile memory system, and data writing method | |
KR20020009564A (ko) | 메모리 시스템 | |
JP4046877B2 (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
JP4480815B2 (ja) | メモリ書き換え方法及びコンピュータシステム | |
JP2005190288A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP5343817B2 (ja) | 記憶装置 | |
US20180052635A1 (en) | Electronic control apparatus and information storage method for the same | |
JPH10326227A (ja) | フラッシュメモリを記憶媒体とする記憶装置の管理方式 | |
JP4794530B2 (ja) | 半導体装置および携帯電話 | |
JP4173410B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム | |
JPH08115257A (ja) | 磁気ディスク制御装置 | |
CN103389943A (zh) | 控制装置、存储装置及存储控制方法 | |
JP4433792B2 (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びに、フラッシュメモリの制御方法 | |
JP3670151B2 (ja) | フラッシュメモリのアクセス方法、フラッシュメモリへアクセスするドライバを備えるシステム、および、フラッシュメモリ |