(57)【要約】【課題】不揮発性メモリに対して、信頼性と有効な情報の読み出し、記憶領域の効率的な利用方法の電子制御装置を得る。【解決手段】不揮発性メモリ５は、記憶領域内に単数または複数の記憶グループ５Ｇと、記憶グループに複数の記憶ブロック５Ｂを設け、記憶ブロックの各々は、電源遮断後も使用する制御データを格納する情報格納部５５と、情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部５１と、格納された制御データの新旧を判定するための管理情報を格納する管理情報部５２〜５４を有し、情報格納部には、制御データを格納するための記憶エリア５Ｅを単数もしくは複数設け、記憶エリア内にはデータ格納部５５３を持った記憶セクション５Ｓを単数もしくは複数設け、記憶ブロックは１回の操作でデータ消去が可能な消去単位とし、記憶セクションはデータ書き込み単位とした。【選択図】図３
2018028830.tif 000002
【特許請求の範囲】
【請求項１】
電気的に消去可能な不揮発性メモリと揮発性メモリとを備える電子制御装置において、
前記不揮発性メモリには、記憶領域内に単数または複数の記憶グループと、この記憶グループの１つに単数または複数の記憶ブロックを設け、前記記憶ブロックの各々は、電源遮断後も使用する制御データを格納する情報格納部と、前記情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部と、格納された制御データの新旧を判定するための情報を含む管理情報を格納する管理情報部を有し、
前記情報格納部には、前記記憶ブロックに記憶させる制御データをそれぞれ格納するための記憶エリアを単数もしくは複数設け、前記記憶エリア内にはデータ格納部を持った記憶セクションを単数もしくは複数設け、
前記記憶ブロックは１回の操作でデータ消去が可能な消去単位とし、前記記憶セクションはデータ書き込み単位とした電子制御装置。
【請求項２】
前記記憶ブロックの管理情報部は、記憶ブロックに記憶された制御データを次に使う記憶ブロックに移行する際に制御データの移行を開始したことを示す情報を格納する移行開始データ部と、次に使う記憶ブロックへの制御データの格納が完了したことを示す情報を格納する移行完了データ部を備え、前記移行開始データ部と前記移行完了データ部に格納された情報に基づき、格納された情報の新旧を比較することで最新データの格納された記憶ブロックを特定するようにした請求項１に記載の電子制御装置。
【請求項３】
前記記憶ブロックの管理情報部は、記憶ブロックの移行回数をカウントするカウンタ部を備え、有効な記憶ブロックが複数存在する場合、複数の記憶ブロックの前記カウンタ部のカウンタ値の比較により、前記カウンタ値が最大の記憶ブロックを最新データの格納された記憶ブロックとして特定するようにした請求項１または請求項２に記載の電子制御装置。
【請求項４】
前記記憶セクションには、任意のデータを記憶する領域であるデータ格納部と、前記データ格納部にデータの記憶を開始したことを示す情報を格納する領域である記憶開始データ部と、前記データ格納部のデータの記憶が完了したことを示す情報を格納する領域である記憶完了データ部とを設けた請求項１から請求項３のいずれか１項に記載の電子制御装置。
【請求項５】
電気的にデータを消去可能な不揮発性メモリの記憶領域内に、１回の操作でデータの消去が可能な記憶ブロックを単数または複数設け、前記記憶ブロックの各々には制御データを記憶できる記憶エリアを単数または複数設け、前記記憶ブロックの各々には前記記憶エリアに記憶された制御データの新旧を判定するための管理情報を記憶する領域を割り付けた管理情報部を設け、前記不揮発性メモリに記憶した制御データを読み出す場合や、新しく制御データを不揮発性メモリに記憶する必要が生じた場合には、前記管理情報部に記憶されている新旧を判定するための管理情報を参照することで、新たな制御データが記憶されている記憶ブロックを特定することを特徴とする電子制御装置の情報記憶方法。
【請求項６】
前記記憶ブロックの各々は、電源遮断後も使用する制御データを前記記憶エリアに格納する情報格納部と、前記情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部を有し、前記チェックデータ部に格納された情報に基づく記憶ブロックの有効性検証の結果、有効な記憶ブロックとして選別された記憶ブロックの中から、前記管理情報部に記憶されている制御データの新旧を判定するための管理情報を参照することで、新たな制御データが記憶されている記憶ブロックを特定することを特徴とする請求項５に記載の電子制御装置の情報記憶方法。
【請求項７】
前記記憶ブロックの管理情報部は、記憶ブロックに記憶された制御データを次に使う記憶ブロックに移行する際に制御データの移行を開始したことを示す情報を格納する移行開始データ部と、次に使う記憶ブロックへの制御データの格納が完了したことを示す情報を格納する移行完了データ部を有し、前記移行開始データ部と前記移行完了データ部に格納された情報に基づき、格納された情報の新旧を比較することで最新データの格納された記憶ブロックを特定し、最新の記憶ブロック内の各記憶エリアからそれぞれ最新の記憶セクションを特定するようにした請求項６に記載の電子制御装置の情報記憶方法。
【請求項８】
前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが単一の場合は、前記記憶ブロックが最新の制御データが格納された記憶ブロックであると選定することを特徴とする請求項７に記載の電子制御装置の情報記憶方法。
【請求項９】
前記記憶ブロックの管理情報部は、記憶ブロックの移行回数をカウントするカウンタ部を有し、前記記憶ブロックを移行する際に移行する前の記憶ブロックのカウンタ部に記憶されている値よりも大きい値を移行先記憶ブロックのカウンタ部に記憶させることで、前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックを複数検出した場合は、検出された複数の記憶ブロックの中から前記カウンタ部に格納されたカウント値を比較し、カウント値が最大の記憶ブロックが１つだけある場合、その記憶ブロックを正常に記憶されている制御データのうち最新の制御データが記憶されている記憶ブロックとして選定することを特徴とする請求項７または請求項８に記載の電子制御装置の情報記憶方法。
【請求項１０】
前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無い場合は、前記記憶ブロックの各々の前記チェックデータ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが単一の場合は、前記記憶ブロックを正常に記憶されている制御データのうち最新の制御データが格納されている記憶ブロックであると選定することを特徴とする請求項７から請求項９のいずれか１項に記載の電子制御装置の情報記憶方法。
【請求項１１】
前記記憶ブロックの管理情報部は、記憶ブロックの移行回数をカウントするカウンタ部を有し、前記記憶ブロックを移行する際に移行する前の記憶ブロックのカウンタ部に記憶されている値よりも大きい値を移行先記憶ブロックのカウンタ部に記憶させることで、前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無い場合は、前記記憶ブロックの各々の前記チェックデータ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行完了データ
部の記憶データが消去された状態の前記記憶ブロックを複数検出した場合は、
前記複数検出された記憶ブロックの中から前記カウンタ部に格納されたカウント値を比較し、カウント値が最大の記憶ブロックが１つだけある場合、その記憶ブロックを正常に記憶されている制御データのうち最新の制御データが記憶されている記憶ブロックとして選定することを特徴とする請求項７から請求項１０のいずれか１項に記載の電子制御装置の情報記憶方法。
【請求項１２】
前記記憶ブロックの管理情報部は、記憶ブロックの移行回数をカウントするカウンタ部を有し、前記記憶ブロックを移行する際に移行する前の記憶ブロックのカウンタ部に記憶されている値よりも大きい値を移行先記憶ブロックのカウンタ部に記憶させることで、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無く、前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無い場合に、前記記憶ブロックの各々の前記チェックデータ部に記憶されたデータを参照し、前記チェックデータ部の記憶データが正常に記憶された状態の前記記憶ブロックが複数検出された場合は、
前記複数検出された記憶ブロックの中から前記カウンタ部に格納されたカウント値を比較し、カウント値が最大の記憶ブロックが１つだけある場合、その記憶ブロックを正常に記憶されている制御データのうち最新の制御データが記憶されている記憶ブロックとして選定することを特徴とする請求項７から請求項１１のいずれか１項に記載の電子制御装置の情報記憶方法。
【請求項１３】
電気的にデータを消去可能な不揮発性メモリの記憶領域内に、１回の操作でデータの消去が可能な記憶ブロックを単数または複数設け、前記記憶ブロックの各々には制御データを記憶できる記憶エリアを単数または複数設け、前記記憶ブロックの各々には、電源遮断後も使用する制御データを格納する情報格納部と、前記情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部と、記憶ブロックに記憶された制御データを次に使う記憶ブロックに移行する際に制御データの移行を開始したことを示す情報を格納する移行開始データ部と、次に使う記憶ブロックへの制御データの格納が完了したことを示す情報を格納する移行完了データ部と、記憶ブロックの移行回数をカウントするカウンタ部を設け、
前記記憶エリアのうち、新たな制御データを記憶する記憶エリアのメモリが不足状態にあると判断した場合は、前記記憶ブロックのうち、移行元記憶ブロックの前記移行開始データ部に予め定めた情報を記憶するステップ、前記記憶ブロックのうち、移行先記憶ブロックとして選定した１個の記憶ブロックに記憶された制御データを消去するステップ、前記新たな制御データを前記移行先記憶ブロックに割り付けられた記憶エリアに記憶させるステップ、前記移行先記憶ブロックの前記カウンタ部に前記移行元記憶ブロックのカウンタ部から取得し増加させ保持しておいたカウンタ値を記憶させるステップ、前記移行先記憶ブロックの前記チェックデータ部に予め定めた情報を記憶するステップ、前記移行元記憶ブロックの前記移行完了データ部に予め定めた情報を記憶するステップを有する電子制御装置の情報記憶方法。
【請求項１４】
前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項１から請求項４のいずれか１項に記載の電子制御装置。
【請求項１５】
前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項５から請求項１３のいずれか１項に記載の電子制御装置の情報記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、複数の記憶領域を設けた電気的に消去可能な不揮発性メモリと揮発性メモリとを備える電子制御装置および電子制御装置の情報記憶方法に関するものである。
【背景技術】
【０００２】
自動車用電子制御装置においては、車両の電源を切断された場合にも保持しておくべき制御学習値および故障自己診断結果というような記憶情報が存在し、これらは揮発性メモリに記録されていたため、電源切断時にも揮発性メモリの記憶内容を保持しておくために車両のバッテリから常時電源が供給されている必要があった。
【０００３】
これに対し、車両重量低減などの観点でのバッテリ容量削減の要求から、電源切断後待機中の消費電力低減が求められるようになり、電源切断時に揮発性メモリに記録されていた記憶情報を電気的に消去可能な不揮発性半導体メモリ（ＥＥＰＲＯＭ）に移行して記録し、電源投入時にこの記憶情報を読み出して利用するような方法が取られるようになった。
【０００４】
また、通常のＥＥＰＲＯＭを使用する場合には一般的に制御用マイコンとは別の半導体素子を制御基板上に実装することが必要になるが、これをマイコンに内蔵された制御プログラムおよび制御用定数の格納に使われるフラッシュメモリの一部に記憶することによりコスト削減と信頼性の向上が可能となる。
【０００５】
近年では、高速アクセスが可能な制御プログラムや制御用定数を記憶することに特化させたフラッシュメモリと、書換え可能回数を多く保障されており制御データの記憶と更新があることを前提としたフラッシュメモリなど、特性の異なる複数のフラッシュメモリを内蔵したマイコンなども一般的になってきている。しかしながら、フラッシュメモリのような不揮発性半導体メモリの場合には、データの書き換え（消去と記憶）回数に上限があり、それを超えて消去と記憶を繰り返した場合、動作は保証されない。
【０００６】
最近、フラッシュメモリの書き換え可能回数は大幅に改善されてはいるが、記憶する制御データの更新頻度によっては、まだまだ書き換え可能回数の不足は否めず、同じメモリセルに対して所定回数以上の書き換えを繰り返すとある時点以降正常に消去や書き込みが行えなくなる。このようになると、有効な情報を記憶することができなくなるため、同じメモリセルに対する書き込み回数をできるだけ制限する必要があり、また仮に所定回数以上の書き換えが行われて正常に情報が更新できなくなった場合でも過去の情報が完全に失われてしまうようなことは避けなければならない。
【０００７】
これらの問題の対策として、例えば特許文献１に記載されているようにメモリ上に複数の記憶領域を設け、制御カウンタの値に基づいて記憶領域を選択して順にデータを更新する情報記憶方法が知られている。この方法では複数の記憶領域に時分割的にデータの更新処理を行うことになるため、ある記憶領域に対する書き込み回数を低減しながら全体としての更新回数を増やすことができる。
【０００８】
しかしながら、特許文献１の情報記憶方法では記憶領域とは別に制御カウンタを設けなければならず、また何らかの原因により制御カウンタの値が破壊された場合には一切のデータの読み出しが保証できなくなってしまうため、データ保持の信頼性の面で問題がある。
【０００９】
この問題の対策として、例えば特許文献２に記載されているようにメモリ上に情報の有効性を検証可能な巡回冗長検査による演算結果を格納するチェックデータ部と各記憶領域の情報の新旧を相対的に判定可能なカウンタを当該記憶領域内に設ける方法が知られている。
【００１０】
ところで、一般的にフラッシュメモリを利用する場合、たとえば、一度の処理で消去する範囲が書き込む範囲よりも非常に広いこと、消去しないと再度書き込みができないこと、フラッシュメモリの機種毎に消去後の領域を読み込んだ値が異なることなどの仕様上の制約がある。
【００１１】
一度の処理で消去できる範囲が書き込み単位よりも非常に広いフラッシュメモリに対して、特許文献２に記載の情報記憶方法を活用するならば、チェックデータ部とカウンタ部と制御データ部を一組として構成され、データを記憶させる際に使用するデータ書き込み単位と、旧データを消去する時に使用するフラッシュ消去単位の二種類の制御単位を持つ必要がある。本文ではデータ書き込み単位を記憶セクション、フラッシュ消去単位を記憶ブロックと呼称する。記憶ブロックは単数もしくは複数の記憶セクションを持つ構成になる。
【００１２】
また、記憶ブロックに消去指示を出した場合、記憶ブロックに記憶した情報は全て消去されるため、情報の記憶中に電源が遮断するなどの不測の事態が発生した場合も記憶情報を保持する必要があるならば、記憶するデータに対して複数の記憶ブロックを使用しなければならない。この同じ制御データを記憶するために使用する複数の記憶ブロックを一組とした制御単位を本文では記憶グループと呼称する。しかしながら不測の事態が発生した場合も記憶情報を保持する必要がない場合は、記憶ブロックは単数でもよい。
【００１３】
前記の通りにフラッシュメモリ内を構成すると、１種類の制御データを記憶するために、少なくとも一つの記憶グループを持つ必要があり、一つの記憶グループ内には単数または複数の記憶ブロックが配置され、一つの記憶ブロック内には複数の記憶セクションが配置される。
【００１４】
前記の構成ならば、制御データの記憶指示があるたびにカウンタ値最大の記憶セクションの次の情報未記憶の記憶セクションに情報を記憶させ、カウンタ値最大の記憶セクションが配置されている記憶ブロック内に情報未記憶の記憶セクションが無い場合、記憶グループ内の次の記憶ブロックに格納された旧情報を削除してから次の記憶ブロックの先頭の記憶セクションに情報を記憶させるという手順で制御データを記憶させることができる。
【００１５】
しかしながら、フラッシュメモリの資源は限られており、ハードウェアの制約上、記憶ブロックを１０に満たない数しか配置できないようなフラッシュメモリが一般的である。従って、一つの制御データを複数の記憶ブロックで管理するならば、前記の情報記憶方法では、フラッシュメモリに記憶できる制御データは２、３種類に限定されてしまう。
【００１６】
この解決策として、複数の制御データを一つの記憶グループで管理する方法がある。本文では、記憶グループ内に配置されるそれぞれの制御データを管理する領域を記憶エリアと呼称する。記憶エリアを考慮してフラッシュメモリ内を構成すると、一つの記憶グループ内に複数の記憶ブロックが配置され、一つの記憶ブロック内には複数の記憶エリアが配置され、一つの記憶エリア内には複数の記憶セクションが配置される。
【００１７】
ただし、前記の構成にて、記憶ブロックの一つの記憶エリアに情報未記憶の記憶セクションが無くなった場合、次の記憶ブロックに記憶されている全ての記憶エリアの情報を消去してから次の記憶ブロックへ情報を移行する必要があるため、次の記憶ブロックに別の記憶エリアで管理している最新の制御データが格納されていることは許されない。従って、記憶グループに属する全ての記憶エリアで管理している最新の制御データが同じ記憶ブロック内に記憶されていなければならない。
【００１８】
全ての記憶エリアで管理している最新の制御データを同じ記憶ブロック内に記憶させるならば、一つの記憶エリア内の記憶セクションを使い切り、次の記憶ブロックに移行する際、全ての記憶エリアの最新の制御データを次の記憶ブロックにコピーする必要がある。
【００１９】
しかしながら、ある記憶エリアの記憶セクション内のチェックデータやカウンタに異常が発生し最新の記憶データを現在使用している記憶ブロックから取得できなくなった場合、その記憶エリアで管理されている制御データは別の記憶ブロックに格納されている有効な記憶セクションから取得しなければならなくなる。その場合、その記憶エリアだけ最新の記憶データが別の記憶ブロックに格納されていることになる。従って、前記の制御方法では次に制御データの記憶を指示した時、制御データの種類によって記憶ブロックの移行先が変わってしまうという問題がある。
【００２０】
前記問題の解決策として、記憶ブロックに管理情報を格納する領域を設けて、最新の記憶ブロックを特定するロジックを実装する。これにより、最新記憶ブロック以外の記憶エリアから取得した最新の制御データを最新の記憶ブロック内の情報未記憶の記憶セクションに記憶させるなどの処置を実装することが可能になる。
【先行技術文献】
【特許文献】
【００２１】
【特許文献１】特開平１１−１４４４７８号公報
【特許文献２】特開２００７−２８７０２２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２２】
最新の記憶ブロックであるかを判定させるロジックとして、記憶ブロックの管理情報部にカウンタ部を設けて管理する方法がある。特許文献１で記載されているようにカウンタ部と制御データ部を持つ管理単位を複数用意し、そのデータ部には特許文献２で記載されているようにカウンタ部と制御データ部とチェックデータ部を持つ管理単位を複数用意する方法である。つまり、記憶ブロックの制御は特許文献１に記載の情報記憶方法、記憶セクションの制御は特許文献２に記載の情報記憶方法で制御するという方法である。
【００２３】
しかしながら、この方法は特許文献２で既に示されているように記憶ブロックを制御するカウンタ部に何かしら異常が発生した場合に記憶させた制御データを取得できなくなる恐れがあり、また、消去した領域が不定値となるような特性を持ったフラッシュメモリも存在するため使用できない。また、記憶ブロックの制御も記憶セクションの制御も特許文献２に記載の情報記憶方法で管理しようとしても、制御データの更新のたびに記憶ブロック内に値が記憶されるため、制御ブロックの使用を開始する際にチェックデータを作成することができない。
【００２４】
この発明は、上記のような課題を解決するためになされたものであり、不揮発性メモリの仕様に極力影響を受けずに、記憶させる情報の種類の増加や書き込み回数の低減を可能とする電子制御装置および電子制御装置の情報記憶方法を提供することを目的とするものである。
【課題を解決するための手段】
【００２５】
この発明に係る電子制御装置は、電気的に消去可能な不揮発性メモリと揮発性メモリと
を備える電子制御装置において、不揮発性メモリには、記憶領域内に単数または複数の記憶グループと、この記憶グループの１つに単数または複数の記憶ブロックを設け、記憶ブロックの各々は、電源遮断後も使用する制御データを格納する情報格納部と、情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部と、格納された制御データの新旧を判定するための情報を含む管理情報を格納する管理情報部を有し、情報格納部には、記憶ブロックに記憶させる制御データをそれぞれ格納するための記憶エリアを単数もしくは複数設け、記憶エリア内にはデータ格納部を持った記憶セクションを単数もしくは複数設け、記憶ブロックは１回の操作でデータ消去が可能な消去単位とし、記憶セクションはデータ書き込み単位としたものである。
【００２６】
この発明に係る電子制御装置の情報記憶方法は、電気的にデータを消去可能な不揮発性メモリの記憶領域内に、１回の操作でデータの消去が可能な記憶ブロックを単数または複数設け、記憶ブロックの各々には制御データを記憶できる記憶エリアを単数または複数設け、記憶ブロックの各々には記憶エリアに記憶された制御データの新旧を判定するための管理情報を記憶する領域を割り付けた管理情報部を設け、不揮発性メモリに記憶した制御データを読み出す場合や、新しく制御データを不揮発性メモリに記憶する必要が生じた場合には、管理情報部に記憶されている新旧を判定するための管理情報を参照することで、新たな制御データが記憶されている記憶ブロックを特定するようにしたものである。
【００２７】
また、この発明に係る電子制御装置の情報記憶方法は、電気的にデータを消去可能な不揮発性メモリの記憶領域内に、１回の操作でデータの消去が可能な記憶ブロックを単数または複数設け、記憶ブロックの各々には制御データを記憶できる記憶エリアを単数または複数設け、記憶ブロックの各々には、電源遮断後も使用する制御データを格納する情報格納部と、情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部と、記憶ブロックに記憶された制御データを次に使う記憶ブロックに移行する際に制御データの移行を開始したことを示す情報を格納する移行開始データ部と、次に使う記憶ブロックへの制御データの格納が完了したことを示す情報を格納する移行完了データ部と、記憶ブロックの移行回数をカウントするカウンタ部を設け、記憶エリアのうち、新たな制御データを記憶する記憶エリアのメモリが不足状態にあると判断した場合は、記憶ブロックのうち、移行元記憶ブロックの移行開始データ部に予め定めた情報を記憶するステップ、記憶ブロックのうち、移行先記憶ブロックとして選定した１個の記憶ブロックに記憶された制御データを消去するステップ、新たな制御データを移行先記憶ブロックに割り付けられた記憶エリアに記憶させるステップ、移行先記憶ブロックのカウンタ部に前記移行元記憶ブロックのカウンタ部から取得し増加させ保持しておいたカウンタ値を記憶させるステップ、移行先記憶ブロックのチェックデータ部に予め定めた情報を記憶するステップ、前記移行元記憶ブロックの前記移行完了データ部に予め定めた情報を記憶するステップを有するものである。
【発明の効果】
【００２８】
この発明によれば、不揮発性メモリの記憶領域の分割に関して、旧データの消去時に使用する記憶ブロックという制御単位と新データの書き込み時に使用する記憶セクションという制御単位、記憶ブロックに複数の種類の制御データを持つための記憶エリアという制御単位を持つことができ、フラッシュメモリの制約によって制限されていた記憶できる制御データの種類を大幅に増加させることができ、書き込みタイミングの異なる様々なデータを不揮発性メモリに記憶させることができる。
【図面の簡単な説明】
【００２９】
【図１】この発明の実施の形態１に係る電子制御装置の概要を示す構成図である。
【図２】この発明の実施の形態１における電子制御装置の不揮発性メモリの記憶領域と揮発性メモリ（ＲＡＭ）の記憶領域との構成を示す図である。
【図３】この発明の実施の形態１における電子制御装置の不揮発性メモリの記憶グループの内部割り付けを示す構成図である。
【図４】この発明の実施の形態１における電子制御装置の最新情報読出し手順を示すフローチャート図である。
【図５】この発明の実施の形態１における電子制御装置の不揮発性メモリの最新記憶ブロック検出手順を示すフローチャート図である。
【図６】この発明の実施の形態１における電子制御装置の情報移行手順を示すフローチャート図である。
【発明を実施するための形態】
【００３０】
実施の形態１．
以下、この発明の実施の形態１に係る電子制御装置およびその情報記憶方法を図に従って説明する。実施の形態１では、車載回転機の回転速度制御を実施するためのインバータ制御ＥＣＵとしてこの発明を具体化しており、以下には電子制御装置（ＥＣＵ）の構成および作用を詳細に説明する。
【００３１】
図１は電子制御装置（以下、ＥＣＵ）の概略構成を示す図である。図１に示すように、ＥＣＵ１はマイコン（マイクロコンピュータ）２を備え、そのマイコン２にはＣＰＵ３、揮発性メモリであるＲＡＭ４、電気的に消去可能な不揮発性メモリであるフラッシュメモリ５が内蔵されている。このフラッシュメモリ５には制御プログラムや制御データが格納され、その一部は制御学習値や故障自己診断結果を記憶するための複数の記憶領域が割り当てられている。ＣＰＵ３はフラッシュメモリ５に格納された制御プログラムに従い、回転機の回転速度を制御する。また、ＥＣＵ１は電源保持回路６を持ち、電源スイッチＳＷによる電源遮断信号をＣＰＵ３が受け付けた後、マイコン２が電源保持回路６に遮断の指令を送るまで電源を保持することが可能となっている。
【００３２】
次に、フラッシュメモリ５およびＲＡＭ４の構成を図２にて詳細に説明する。フラッシュメモリ５は単数もしくは複数の記憶グループ５Ｇに分割されている。それらの各記憶グループを、たとえば図２に示すように記憶グループ１、２、３とするが、これら記憶グループ１、２、３にはそれぞれ別々の情報を格納する。また、ＲＡＭ４には複数のミラー領域４Ｍが配置され、たとえばＲＡＭ４内にミラー領域１から６が配置された場合に、それぞれのミラー領域１〜６には異なる制御データが格納される。
【００３３】
フラッシュメモリ５の内部構成については図３で詳しく説明するが、一つの記憶グループ５Ｇ内に単数または複数の記憶ブロック５Ｂが配置され、一つの記憶ブロック５Ｂ内には単数または複数の記憶エリア５Ｅが配置され、一つの記憶エリア５Ｅ内には単数または複数の記憶セクション５Ｓが配置されている。
それぞれのミラー領域４Ｍの大きさは、フラッシュメモリ５に設定された記憶グループ５Ｇに配置してあるそれぞれのミラー領域４Ｍに格納する制御データに対応した制御データを管理する記憶エリア５Ｅ内の記憶セクション５Ｓで管理されているデータ格納部５５３の一つと等しい。
【００３４】
フラッシュメモリ５に記憶させた情報を取得する際は、フラッシュメモリ５の対応するデータ格納部５５３からＲＡＭ４のミラー領域４Ｍに情報をコピーする。制御中はＲＡＭ４のミラー領域４Ｍに格納された値を適宜更新してよい。ＲＡＭ４のミラー領域４Ｍに格納された情報をフラッシュメモリ５に保持させたいタイミングでフラッシュメモリ５への書き込み指示を発行すると、ＲＡＭ４に記憶された情報が対応する記憶グループ５Ｇの対応する記憶エリア５Ｅの記憶可能な記憶セクション５Ｓに記憶される。
【００３５】
図３を用いてフラッシュメモリ５に配置されている記憶グループ５Ｇの内部構成を説明
する。１つの記憶グループ５Ｇはそれぞれ単数もしくは複数の記憶ブロック５Ｂで構成する。それぞれの記憶グループ５Ｇに配置される単数もしくは複数の記憶ブロック５Ｂはそれぞれの記憶グループ内部において等しい構成と大きさになっており、同じ種類の情報を記憶する。各記憶ブロック５Ｂは、チェックデータ部５１、カウンタ部５２、移行開始データ部５３、移行完了データ部５４、情報格納部５５から構成される。たとえば、図３に示すように記憶グループ１の記憶ブロック５Ｂにおける構成を記憶ブロック１−１、１−２、１−３とした場合、それぞれの記憶ブロック５Ｂはチェックデータ部５１とカウンタ部５２と移行開始データ部５３と移行完了データ部５４と情報格納部５５を持ち、それぞれの記憶ブロックの情報格納部５５の内部は同じ構成・大きさとなる。
【００３６】
ここで、記憶ブロック５Ｂのチェックデータ部５１は、記憶ブロックの移行時に情報格納部５５に記憶されている制御データが正常に書き込めたことを示す情報を格納するための領域であり、この情報は、記憶セクション５Ｓに制御データを記憶した後に最後に記憶されるもので、正常に記憶されたことを示す情報であればどのようなものでもよく、例えば有効値（単なる「１」または「０」の情報）でもよい。カウンタ部５２は記憶ブロックの移行回数をカウントして、各領域の情報の新旧を相対的に判定可能なカウンタ値を格納する領域であり、データ消去中の電源遮断やフラッシュメモリの故障などにより、移行開始データや移行完了データだけでは最新記憶ブロックが特定できなくなった場合に使用する。移行開始データ部５３は次の領域へデータの移行を開始したことを示す情報を格納する領域であり、移行完了データ部５４は次の領域へデータの移行を完了したことを示す情報を格納する領域であり、情報が記憶されているか否かが分かるものであればどのような情報でもよく、例えば有効値（単なる「１」または「０」の情報）でもよい。これら移行開始データと移行完了データで最新の記憶ブロックを特定する。情報格納部５５は複数の記憶エリア５Ｅを配置する領域である。
【００３７】
なお、カウンタ部５２と移行開始データ部５３と移行完了データ部５４は、格納された制御データの新旧を判定するための情報を含む管理データを格納する管理情報部の領域として機能するものである。
また、カウンタ部５２は、記憶ブロックを移行する際、移行先記憶ブロックのチェックデータ部５１に情報を記憶させる前に、移行元記憶ブロックのカウンタ部５２に格納された値を増加させ、移行先記憶ブロックのカウンタ部５２に記憶させることで、記憶ブロックの新旧の判断をする際に、移行開始データ部と移行完了データ部の異常で記憶ブロックの新旧を判断できなくなった場合、チェックデータ部５１により制御データが正常に書き込まれたことを保証されたカウンタ部５２に格納された値で情報の新旧を特定することができるとともに、フラッシュメモリ５の消去回数を取得することができる。
【００３８】
図３を用いて記憶ブロック内の情報格納部５５の構成例を説明する。情報格納部５５は単数もしくは複数の記憶エリア５Ｅから構成される。記憶エリア５Ｅ内には単数もしくは複数の記憶セクション５Ｓが配置される。各記憶セクション５Ｓは記憶開始データ部５５１、記憶完了データ部５５２、データ格納部５５３から構成される。
ここで、記憶セクション５Ｓの記憶開始データ部５５１はデータ格納部５５３に制御データの記憶を開始したことを示す情報を格納する領域であり、記憶完了データ部５５２はデータ格納部５５３の制御データの記憶が完了したことを示す情報を格納する領域であり、データ格納部５５３は任意の制御データを記憶する領域である。記憶開始データ部５５１および記憶完了データ部５５２に格納される情報は、正常に記憶されたことが分かる（有効であることが分かる）のであれば何でもよく、例えば有効値（単なる「１」または「０」の情報）でもよい。
【００３９】
図３では記憶ブロック１−１の情報格納部５５を情報格納部１−１としており、情報格納部１−１内には複数の記憶エリア１−１−１、１−１−２、１−１−３が配置され、記
憶エリア１−１−１内には複数の記憶セクション１−１−１−１、１−１−１−２、１−１−１−３が配置されている。
以降は各領域の呼称を「領域名−(第一番号)−(第二番号)−(第三番号)−(第四番号)」とする。第一番号は記憶グループ番号、第二番号は記憶ブロック番号、第三番号は記憶エリア番号、第四番号は記憶セクション番号を示す。たとえば、記憶グループ２の先頭から３番目の記憶ブロックを記憶ブロック２−３と呼称し、記憶ブロック２−３の先頭の記憶エリアを記憶エリア２−３−１と呼称し、記憶エリア２−３−１の２番目の記憶セクションを記憶セクション２−３−１−２と呼称し、記憶セクション２−３−１−２に属する記憶開始データ部を「記憶開始データ部２−３−１−２」と呼称する。
【００４０】
以上説明したフラッシュメモリ５の記憶領域の構成を纏めると次のようになっている。
（１）記憶グループ５Ｇ
・記憶領域内には複数の記憶グループを配置する。
・記憶グループ内には複数の記憶ブロック５Ｂを配置する。
（２）記憶ブロック５Ｂ
・同じ記憶グループ内に配置されている記憶ブロックは、記憶エリア数や記憶セク
ション数などにおいて全て同じ構成とする。
・記憶ブロックの容量はフラッシュの消去単位の倍数で設定する。従って、記憶ブ
ロックには単数もしくは複数のフラッシュブロックが含まれる。
・記憶ブロック内には、チェックデータ部５１とカウンタ部５２と移行開始データ
部５３と移行完了データ部５４と情報格納部５５の領域を配置する。
（３）記憶エリア５Ｅ
・記憶エリア内には複数の記憶セクション５Ｓを配置する。
（４）記憶セクション５Ｓ
・記憶セクション内には複数の制御データを記憶することが可能で、それらの制御
データは全て同じタイミングで一つの記憶セクションに記憶される。これらの複
数の制御データのことを制御データ群と呼んでいる。
・同じ記憶エリア内に配置されている複数の記憶セクションには全て同じ種類の制
御データが格納される。
・記憶セクション内には、記憶開始データ部５５１と記憶完了データ部５５２とデ
ータ格納部５５３の領域を配置する。
なお、上記説明において複数と記載している箇所はどの箇所も単数にすることができる。
【００４１】
ここでは各記憶セクション５Ｓがデータ書き込み単位となり、各記憶ブロック５Ｂがフラッシュ消去単位となる。同じ制御データを記憶するために使用する複数の記憶ブロック５Ｂを一組とした制御単位を記憶グループと呼称する。記憶グループ内に配置されるそれぞれの制御データを管理する領域を記憶エリア５Ｅと呼称する。
記憶エリア５Ｅを考慮してフラッシュメモリ５内を構成すると、一つの記憶グループ５Ｇ内に複数の記憶ブロック５Ｂが配置され、一つの記憶ブロック５Ｂ内には複数の記憶エリア５Ｅが配置され、一つの記憶エリア５Ｅ内には複数の記憶セクション５Ｓが配置される。
記憶グループ５Ｇはそれぞれが独立しており、複数の記憶ブループがある場合はそれぞれの記憶グループ５Ｇで異なる制御データが記憶される（同じ制御データでも問題ない）。記憶エリア５Ｅは記憶グループ５Ｇ内で管理する制御データ群の種類となっており、同じ記憶グループ５Ｇ内で管理したい制御データ群の種類の数だけ配置される。
【００４２】
また、以降はＲＡＭ４のミラー領域１とフラッシュメモリ５の記憶エリア１−１−１で管理する情報を制御データＡ、ＲＡＭ４のミラー領域２とフラッシュメモリ５の記憶エリア１−１−２で管理する情報を制御データＢ、ＲＡＭ４のミラー領域３とフラッシュメモ
リ５の記憶エリア１−１−３で管理する情報を制御データＣとする。制御データＡ、Ｂ、Ｃはそれぞれ制御データの種類の名称とする。
【００４３】
次に、これらの構成としたフラッシュメモリ５に記憶された制御データの記憶領域から最後に記憶された制御データを取得して、ＲＡＭ４のミラー領域にコピーする手順について、図２から図５を用いて詳しく説明する。
まず図４において、処理Ｓ１０１は、１つの記憶グループ５Ｇ内に配置された複数の記憶ブロック５Ｂの中から正常に情報が格納されている有効な記憶ブロックを選出するため、全記憶ブロックのチェックデータ部５１に有効値（正常に制御データが記憶されていることを示す）が書かれているかどうかを確認し、書かれている場合、有効記憶ブロックとする。たとえば、制御データＡの最新データを選出する場合、記憶グループ１内の記憶ブロック１−１、１−２、１−３それぞれのチェックデータ部５１の有効値を確認し、有効値が書かれている記憶ブロックを選出する。
【００４４】
続いて処理Ｓ１０２は、有効な記憶ブロックが複数ある場合、その中で最後に正常に制御データを記憶した最新の記憶ブロックを選出するため、全ての有効記憶ブロックの移行開始データ部５３と、移行完了データ部５４に格納された情報をもとに有効記憶ブロックの選出を行う。たとえば、記憶ブロック１−１と記憶ブロック１−２が有効な記憶ブロックだった場合は、移行開始データ部１−１、１−２と移行完了データ部１−１、１−２に格納された値を取得する。
【００４５】
この処理Ｓ１０２における詳細な処理手順を図５において説明する。図５において、処理Ｓ２０１は、移行開始データ部５３と移行完了データ部５４に共に情報が記憶されていない（消去された状態）記憶ブロックが一つだけ存在する場合、移行開始データ部５３と移行完了データ部５４に情報が記憶されていない記憶ブロックは移行元記憶ブロックから移行先記憶ブロックへ最新記憶ブロックの移行を実施していないため、移行開始データ部５３と移行完了データ部５４に共にデータが記憶されていない記憶ブロックを最新記憶ブロックとする。
【００４６】
処理Ｓ２０１において、移行開始データ部５３と移行完了データ部５４に共に情報が記憶されていない（消去された状態）記憶ブロックが複数存在する場合、移行開始データ部５３と移行完了データ部５４だけでは最新の記憶ブロックが特定できないため、処理Ｓ２０２に進む。処理Ｓ２０２は、移行開始データ部５３と移行完了データ部５４に共に情報が記憶されていない複数の記憶ブロックのカウンタ部５２の比較により、カウンタ値が最大の記憶ブロックを検出する。カウンタ値が最大の記憶ブロックが一つだけある場合は、このカウンタ値最大の記憶ブロックは最後に正常に情報を記憶した最新記憶ブロックとして特定する。処理Ｓ２０２において、カウンタ値が最大の記憶ブロックが複数ある場合は、記憶ブロックの検出を失敗として処理Ｓ１０３で検索エラーとする。
【００４７】
処理Ｓ２０１において、移行開始データ部５３と移行完了データ部５４に情報が共に記憶されていない（消去された状態）記憶ブロックが存在しない場合は処理Ｓ２０３に進む。例えば記憶ブロックの移行時に電源が遮断するなどのアクシデントがあった場合はこの状態になる。処理Ｓ２０３は、正常に情報が格納されている有効記憶ブロックの中から、移行開始データ部５３に情報が記憶されていて、移行完了データ部５４に情報が記憶されていない記憶ブロックを検出する。処理Ｓ２０３において、移行完了データ部５４に情報が記憶されていない記憶ブロックが一つだけ存在する場合、前回のデータ記憶で移行元記憶ブロックから移行先記憶ブロックへ最新記憶ブロックを移行する際に何らかの原因で移行先記憶ブロックのチェックデータ部５１に有効値を記憶する前にデータの記憶が中断されて、移行元記憶ブロックが移行開始データ部５３に情報が記憶され移行完了データ部５４に情報が記憶されていない状態になっているため、移行完了データ部５４にデータが記憶されていない記憶ブロックを最新記憶ブロックとする。
【００４８】
処理Ｓ２０３において、移行開始データ部５３と移行完了データ部５４に情報が共に記憶されていない（消去された状態）記憶ブロックが存在せず、移行開始データ部５３に情報が記憶されていて移行完了データ部５４に情報が記憶されていない記憶ブロックが複数存在する場合、移行開始データ部５３と移行完了データ部５４だけでは最新の記憶ブロックが特定できないため、処理Ｓ２０２に進む。処理Ｓ２０２にて移行開始データ部５３に情報が記憶されていて移行完了データ部５４に情報が記憶されていない複数の記憶ブロックのカウンタ部５２の比較により、カウンタ値が最大の記憶ブロックが一つだけある場合はカウンタ値が最大の記憶ブロックを最新記憶ブロックとして特定する。処理Ｓ２０２においてカウンタ値が最大の記憶ブロックが複数ある場合は記憶ブロック検出を失敗として処理Ｓ１０３で検索エラーとする。
【００４９】
処理Ｓ２０３において、移行完了データ部５４に情報が記憶されていない記憶ブロックが存在しない場合は処理Ｓ２０４に進む。処理Ｓ２０４は、移行開始データ部５３と移行完了データ部５４に共に管理データが記憶されていない（消去された状態）記憶ブロックが存在せず、移行開始データ部５３にだけ管理データが記憶されている記憶ブロックも存在しない場合、何らかの理由で本来最新記憶ブロックだった記憶ブロックの管理データが破損したとして移行開始データ部５３と移行完了データ部５４だけでは最新の記憶ブロックが特定できないため、有効記憶ブロックのカウンタ部５２の比較を行う。処理Ｓ２０４において、有効記憶ブロックのカウンタ部５２の比較によりカウンタ値最大の記憶ブロックが一つだけある場合は、カウンタ値が最大の記憶ブロックを最新記憶ブロックとして特定する。もしカウンタ値が最大の記憶ブロックが複数ある場合は記憶ブロック検出を失敗として処理Ｓ１０３で検索エラーとする。
【００５０】
続いて図４の処理Ｓ１０４は、最新記憶ブロックの各記憶エリア５Ｅから最後に制御データが記憶された最新記憶セクションの特定を行うため、フラッシュの下から順に各記憶セクション５Ｓの記憶開始データ部５５１と記憶完了データ部５５２の有効値を取得し、記憶開始データ部５５１と記憶完了データ部５５２に有効値が格納されている場合、記憶開始データ部５５１と記憶完了データ部５５２に有効値が格納されている記憶セクション５Ｓを最新記憶セクションとする。たとえば、制御データＡの最新の制御データを検索しており、最新記憶ブロックが１−１だった場合、記憶開始データ部１−１−１−３と記憶完了データ部１−１−１−３に有効値が格納されている場合は記憶セクション１−１−１−３を最新記憶セクションとし、記憶開始データ部１−１−１−３と記憶完了データ部１−１−１−３のいずれかに有効値が格納されておらず、記憶開始データ部１−１−１−２と記憶完了データ部１−１−１−２に有効値が格納されている場合は記憶セクション１−１−１−２を最新記憶セクションとする。
【００５１】
最後に処理Ｓ１０５は、最新記憶セクションとして選出された記憶セクション５Ｓのデータ格納部５５３に記憶されている制御データを読み出してＲＡＭ４のミラー領域へコピーする。たとえば、記憶セクション１−１−１−１が最新記憶セクションとして選出されたならば、データ格納部１−１−１−１に格納された制御データＡをミラー領域１へコピーする。
【００５２】
次に、フラッシュメモリ５へ新たな制御データを記憶する記憶エリアが不足した場合の、記憶ブロックへのデータ移行手順について、図２、図３、図６を用いて詳しく説明する。フラッシュメモリ５への記憶は制御データ毎に行う。
まず図６の処理Ｓ３０１は、最新制御データの選出時に最新として選出した記憶セクション５Ｓが記憶ブロック５Ｂの情報格納部５５のどこに位置するかを確認する。最新の記憶セクション５Ｓが最新の記憶ブロックの記憶エリア５Ｅ内の末尾の記憶セクションの場合は、最新の記憶ブロックに新しい制御データを記憶できる記憶セクションが無いと判定する。
【００５３】
最新の記憶セクション５Ｓが最新の記憶ブロックの記憶エリア５Ｅ内の末尾の記憶セクションではない場合は、以降の記憶セクションに情報未記憶の記憶セクションがあるかをフラッシュの並び順で確認し、情報未記憶のセクションが無い場合は最新の記憶ブロックに新しい制御データを記憶できる記憶セクションが無いと判定して、情報未記憶のセクションがある場合は最新の記憶ブロックに新しい制御データを記憶できる記憶セクションがあると判定する。
【００５４】
例えば情報格納部５５が図３のような構成の場合、最新の記憶セクションが記憶セクション１−１−１−３の場合、未使用の記憶セクションが無いと判定する。最新の記憶セクションが記憶セクション１−１−１−１で記憶セクション１−１−１−２に何も記憶されていない場合は記憶セクション１−１−１−２を記憶対象の記憶セクションとする。最新の記憶セクションが記憶セクション１−１−１−１で記憶セクション１−１−１−２に何か記憶されており記憶セクション１−１−１−３に何も記憶されていない場合は記憶セクション１−１−１−３を記憶対象の記憶セクションとする。最新の記憶セクションが記憶セクション１−１−１−１で記憶セクション１−１−１−２と１−１−１−３に何か記憶されている場合は未使用の記憶セクションがないと判定する。
【００５５】
処理Ｓ３０１において、情報未記憶の記憶セクションがあると判定した場合、処理Ｓ３０２にて記憶対象の記憶セクション５Ｓの記憶開始データ部５５１、データ格納部５５３、記憶完了データ部５５２に順に予め定めた情報を書き込む。たとえば、制御データＡを記憶させる場合、記憶対象の記憶セクションが記憶セクション１−１−１−２ならば、記憶開始データ部１−１−１−２に有効値を記憶させ、データ格納部１−１−１−２に制御データＡを記憶させ、記憶完了データ部１−１−１−２に有効値を記憶させて、制御データの記憶を完了する。
【００５６】
記憶グループ内の最新記憶ブロックの次の記憶ブロックを移行先記憶ブロックとし、現在最新としている記憶ブロックを移行元記憶ブロックとする。処理Ｓ３０１において、情報未記憶の記憶セクションが無いと判定した場合、処理Ｓ３０３以降に進み、移行元記憶ブロックから移行先記憶ブロックへ最新記憶ブロックの移行を開始する。たとえば図３のような構成ならば、最新記憶ブロックの移行は記憶ブロック１−１、１−２、１−３、１−１の順で実施する。
【００５７】
最新ブロックの移行ではまず、移行元記憶ブロックのカウンタ部５２からカウンタ値を取り出して増加させ保持しておく。
その後処理Ｓ３０３で移行元記憶ブロックの移行開始データ部５３に予め定めた情報を格納する。続いて処理Ｓ３０４で移行先記憶ブロックに記憶されている古い情報を全て消去する。
【００５８】
つづいて処理Ｓ３０５において、移行先記憶ブロック内の指定された制御データを管理している記憶エリア５Ｅの先頭の記憶セクション５Ｓに記憶開始データ部５５１、データ格納部５５３、記憶完了データ部５５２の順に予め定めた情報を記憶する。たとえば、制御データＡの記憶指示を発行し、記憶ブロック１−１から記憶ブロック１−２へ最新記憶ブロックを移行する場合は、記憶開始データ部１−１−１−１に有効値、データ格納部１−１−１−１に制御データＡ、記憶完了データ１−１−１−１に有効値を順に記憶させる。
【００５９】
つづいて処理Ｓ３０６において、操作中の記憶グループ５Ｇに複数の記憶エリア５Ｅが
配置されている場合、記憶指示をされていない制御データを管理している記憶エリアの最新データを移行元記憶ブロックから移行先記憶ブロックへコピーする。たとえば、制御データＡの記憶指示を発行し、記憶ブロック１−１から記憶ブロック１−２へ最新記憶ブロックを移行する場合は、記憶開始データ部１−１−２−１に有効値、データ格納部１−１−２−１に制御データＢ、記憶完了データ部１−１−２−１に有効値を順に記憶させ、記憶開始データ部１−１−３−１に有効値、データ格納部１−１−３−１に制御データＣ、記憶完了データ１−１−３−１に有効値を順に記憶させる。記憶グループに配置されている記憶エリア５Ｅが一つの場合は処理Ｓ３０６を省略する。
【００６０】
その後処理Ｓ３０７において、移行先記憶ブロックのカウンタ部５２に移行元記憶ブロックのカウンタ部５２から取得し増加させ保持しておいたカウンタ値を記憶させる。つづいて処理Ｓ３０８で移行先記憶ブロックのチェックデータ部５１に有効値を記憶させる。最後に処理Ｓ３０９で移行元記憶ブロックの移行完了データ部５４に有効値を記憶させて制御データの記憶を完了する。
【００６１】
なお実施の形態１では、不揮発性メモリとしてフラッシュメモリを適用した場合について説明したが、本発明はフラッシュメモリに限定されるものではなく、例えばＥＥＰＲＯＭやＭＲＡＭなど他の不揮発性メモリを記憶媒体として使用する場合にも適用可能である。
また実施の形態１では、この発明を電子制御装置として車載回転機の回転速度制御を実施するためのインバータ制御ＥＣＵに適用した場合について説明したが、これに限定されることはなく電源遮断時にデータ保持の必要な電子機器一般について適用可能である。
【００６２】
また実施の形態１では、フラッシュメモリの記憶領域を記憶グループ１、２、３の３領域に分割する例を示したが、資源の状況によって記憶グループ数を単数もしくは複数に変更可能である。記憶する情報の更新頻度によって情報をグループ分けして、更新頻度の低い情報を管理する記憶グループは記憶ブロック数を少なく、更新頻度の多い情報を管理しる記憶グループは記憶ブロックを多く配置するなどの工夫をすることで不揮発性メモリの各領域の更新頻度に偏りが無いように調整することができる。
また例えばデータを消失した場合に重大な問題になる重要な情報を消失しても、リカバリー可能な情報を別の記憶グループに管理させることで、リカバリー可能な情報を管理している記憶グループが記憶ブロック移行に失敗した際に重要な情報まで消失してしまうような状況を回避することができる。
【００６３】
また実施の形態１では、記憶グループを記憶ブロック１−１、１−２、１−３の３領域に分割する例を示したが、資源の状況によって分割数を単数もしくは複数に変更可能である。記憶ブロックを多く配置した場合は情報の損失リスクは低下するが不揮発性メモリの占有量は増加するため、損失リスクと占有量をトレードオフして記憶ブロックの配置数を調整することができる。
【００６４】
また実施の形態１では、記憶ブロックの情報格納部１−１内に配置している記憶エリア１−１−１を記憶セクション１−１−１−１、１−１−１−２、１−１−１−３の３領域に分割する例を示したが、資源の状況によって分割数を単数もしくは複数に変更可能である。たとえば一つの記憶グループで管理している複数の情報に更新頻度の高い情報と更新頻度の低い情報がある場合、更新頻度の高い情報を管理している記憶エリアは記憶セクションの分割数を多くして、更新頻度の低い情報を管理している記憶エリアは記憶セクションの分割数を少なくすることで、記憶ブロック移行時の移行元記憶ブロックの未記憶領域を減らすことができるため、メモリ領域内を無駄なく使用することができ、結果的に記憶領域の更新頻度を減少させることができる。
【００６５】
また実施の形態１では、記憶セクションに記憶開始データ部と記憶完了データ部を配置して最新の記憶セクションを特定したが、記憶セクションの情報の有効性と複数の記憶セクションの更新順序を特定できるデータであれば問題ないため、たとえば特許文献２で知られている巡回冗長検査のデータとカウンタを記憶させておき最新の記憶セクションを選出する方法などを適応することも可能である。
【００６６】
以上、この発明の実施の形態を記述したが、この発明は実施の形態に限定されるものではなく、種々の設計変更を行うことが可能であり、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
【符号の説明】
【００６７】
１：ＥＣＵ（電子制御装置）、  ２：マイコン、  ３：ＣＰＵ、
４：ＲＡＭ（揮発性メモリ）、  ５：フラッシュメモリ（不揮発性メモリ）、
６：電源保持回路、  ５１：チェックデータ部、  ５２：カウンタ部（管理情報部）、
５３：移行開始データ部（管理情報部）、  ５４：移行完了データ部（管理情報部）、
５５：情報格納部、  ５５１：記憶開始データ部、  ５５２：記憶完了データ部、
５５３：データ格納部、５Ｇ：記憶グループ、  ５Ｂ：記憶ブロック、
５Ｅ：記憶エリア、  ５Ｓ：記憶セクション
【図１】
2018028830.tif 000003
【図２】
2018028830.tif 000004
【図３】
2018028830.tif 000005
【図４】
2018028830.tif 000006
【図５】
2018028830.tif 000007
【図６】
2018028830.tif 000008
【手続補正書】
【提出日】平成29年9月6日(2017.9.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
電気的に消去可能な不揮発性メモリと揮発性メモリとを備える電子制御装置において、
前記不揮発性メモリには、記憶領域内に単数または複数の記憶グループと、この記憶グループの１つに単数または複数の記憶ブロックを設け、前記記憶ブロックの各々は、電源遮断後も使用する制御データを格納する情報格納部と、前記情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部と、格納された制御データの新旧を判定するための情報を含む管理情報を格納する管理情報部を有し、前記情報格納部には、前記記憶ブロックに記憶させる制御データをそれぞれ格納するための記憶エリアを単数もしくは複数設け、前記記憶エリア内にはデータ格納部を持った記憶セクションを単数もしくは複数設け、
前記記憶ブロックの管理情報部は、記憶ブロックの移行回数をカウントするカウンタ部を備え、有効な記憶ブロックが複数存在する場合、複数の記憶ブロックの前記カウンタ部のカウンタ値の比較により、前記カウンタ値が最大の記憶ブロックを最新データの格納された記憶ブロックとして特定し、
前記記憶ブロックは１回の操作でデータ消去が可能な消去単位とし、前記記憶セクションはデータ書き込み単位とした電子制御装置。
【請求項２】
前記記憶ブロックの管理情報部は、記憶ブロックに記憶された制御データを次に使う記憶ブロックに移行する際に制御データの移行を開始したことを示す情報を格納する移行開始データ部と、次に使う記憶ブロックへの制御データの格納が完了したことを示す情報を格納する移行完了データ部を備え、前記移行開始データ部と前記移行完了データ部に格納された情報に基づき、格納された情報の新旧を比較することで最新データの格納された記憶ブロックを特定するようにした請求項１に記載の電子制御装置。
【請求項３】
前記記憶セクションには、任意のデータを記憶する領域であるデータ格納部と、前記データ格納部にデータの記憶を開始したことを示す情報を格納する領域である記憶開始データ部と、前記データ格納部のデータの記憶が完了したことを示す情報を格納する領域である記憶完了データ部とを設けた請求項１または請求項２に記載の電子制御装置。
【請求項４】
電気的にデータを消去可能な不揮発性メモリの記憶領域内に、１回の操作でデータの消去が可能な記憶ブロックを単数または複数設け、前記記憶ブロックの各々には制御データを記憶できる記憶エリアを単数または複数設け、前記記憶ブロックの各々には前記記憶エリアに記憶された制御データの新旧を判定するための管理情報を記憶する領域を割り付けた管理情報部を設け、前記不揮発性メモリに記憶した制御データを読み出す場合や、新しく制御データを不揮発性メモリに記憶する必要が生じた場合には、前記管理情報部に記憶されている新旧を判定するための管理情報を参照することで、新たな制御データが記憶されている記憶ブロックを特定し、前記管理情報部には、記憶ブロックの移行回数をカウントするカウンタ部を設け、有効な記憶ブロックが複数存在する場合、複数の記憶ブロックの前記カウンタ部のカウンタ値の比較により、前記カウンタ値が最大の記憶ブロックを最新データの格納された記憶ブロックとして特定することを特徴とする電子制御装置の情報記憶方法。
【請求項５】
前記記憶ブロックの各々は、電源遮断後も使用する制御データを前記記憶エリアに格納する情報格納部と、前記情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部を有し、前記チェックデータ部に格納された情報に基づく記憶ブロックの有効性検証の結果、有効な記憶ブロックとして選別された記憶ブロックの中から、前記管理情報部に記憶されている制御データの新旧を判定するための管理情報を参照することで、新たな制御データが記憶されている記憶ブロックを特定することを特徴とする請求項４に記載の電子制御装置の情報記憶方法。
【請求項６】
前記記憶ブロックの管理情報部は、記憶ブロックに記憶された制御データを次に使う記憶ブロックに移行する際に制御データの移行を開始したことを示す情報を格納する移行開始データ部と、次に使う記憶ブロックへの制御データの格納が完了したことを示す情報を格納する移行完了データ部を有し、前記移行開始データ部と前記移行完了データ部に格納された情報に基づき、格納された情報の新旧を比較することで最新データの格納された記憶ブロックを特定し、最新の記憶ブロック内の各記憶エリアからそれぞれ最新の記憶セクションを特定するようにした請求項５に記載の電子制御装置の情報記憶方法。
【請求項７】
前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが単一の場合は、前記記憶ブロックが最新の制御データが格納された記憶ブロックであると選定することを特徴とする請求項６に記載の電子制御装置の情報記憶方法。
【請求項８】
前記記憶ブロックを移行する際に移行する前の記憶ブロックの前記カウンタ部に記憶されている値よりも大きい値を移行先記憶ブロックの前記カウンタ部に記憶させることで、前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックを複数検出した場合は、検出された複数の記憶ブロックの中から前記カウンタ部に格納されたカウント値を比較し、カウント値が最大の記憶ブロックが１つだけある場合、その記憶ブロックを正常に記憶されている制御データのうち最新の制御データが記憶されている記憶ブロックとして選定することを特徴とする請求項６または請求項７に記載の電子制御装置の情報記憶方法。
【請求項９】
前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無い場合は、前記記憶ブロックの各々の前記チェックデータ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが単一の場合は、前記記憶ブロックを正常に記憶されている制御データのうち最新の制御データが格納されている記憶ブロックであると選定することを特徴とする請求項６から請求項８のいずれか１項に記載の電子制御装置の情報記憶方法。
【請求項１０】
前記記憶ブロックを移行する際に移行する前の記憶ブロックの前記カウンタ部に記憶されている値よりも大きい値を移行先記憶ブロックの前記カウンタ部に記憶させることで、前記記憶ブロックの各々の前記チェックデータ部と前記移行開始データ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無い場合は、前記記憶ブロックの各々の前記チェックデータ部と前記移行完了データ部に記憶されたデータを参照し、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックを複数検出した場合は、
前記複数検出された記憶ブロックの中から前記カウンタ部に格納されたカウント値を比較し、カウント値が最大の記憶ブロックが１つだけある場合、その記憶ブロックを正常に記憶されている制御データのうち最新の制御データが記憶されている記憶ブロックとして選定することを特徴とする請求項６から請求項９のいずれか１項に記載の電子制御装置の情報記憶方法。
【請求項１１】
前記記憶ブロックを移行する際に移行する前の記憶ブロックの前記カウンタ部に記憶されている値よりも大きい値を移行先記憶ブロックの前記カウンタ部に記憶させることで、
前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行開始データ部および前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無く、前記チェックデータ部の記憶データが正常に記憶されており、かつ前記移行完了データ部の記憶データが消去された状態の前記記憶ブロックが無い場合に、前記記憶ブロックの各々の前記チェックデータ部に記憶されたデータを参照し、前記チェックデータ部の記憶データが正常に記憶された状態の前記記憶ブロックが複数検出された場合は、
前記複数検出された記憶ブロックの中から前記カウンタ部に格納されたカウント値を比較し、カウント値が最大の記憶ブロックが１つだけある場合、その記憶ブロックを正常に記憶されている制御データのうち最新の制御データが記憶されている記憶ブロックとして選定することを特徴とする請求項６から請求項１０のいずれか１項に記載の電子制御装置の情報記憶方法。
【請求項１２】
電気的にデータを消去可能な不揮発性メモリの記憶領域内に、１回の操作でデータの消去が可能な記憶ブロックを単数または複数設け、前記記憶ブロックの各々には制御データを記憶できる記憶エリアを単数または複数設け、前記記憶ブロックの各々には、電源遮断後も使用する制御データを格納する情報格納部と、前記情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部と、記憶ブロックに記憶された制御データを次に使う記憶ブロックに移行する際に制御データの移行を開始したことを示す情報を格納する移行開始データ部と、次に使う記憶ブロックへの制御データの格納が完了したことを示す情報を格納する移行完了データ部と、記憶ブロックの移行回数をカウントするカウンタ部を設け、
前記記憶エリアのうち、新たな制御データを記憶する記憶エリアのメモリが不足状態にあると判断した場合は、前記記憶ブロックのうち、移行元記憶ブロックの前記移行開始データ部に予め定めた情報を記憶するステップ、前記記憶ブロックのうち、移行先記憶ブロックとして選定した１個の記憶ブロックに記憶された制御データを消去するステップ、前記新たな制御データを前記移行先記憶ブロックに割り付けられた記憶エリアに記憶させるステップ、前記移行先記憶ブロックの前記カウンタ部に前記移行元記憶ブロックのカウンタ部から取得し増加させ保持しておいたカウンタ値を記憶させるステップ、前記移行先記憶ブロックの前記チェックデータ部に予め定めた情報を記憶するステップ、前記移行元記憶ブロックの前記移行完了データ部に予め定めた情報を記憶するステップを有する電子制御装置の情報記憶方法。
【請求項１３】
前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項１から請求項３のいずれか１項に記載の電子制御装置。
【請求項１４】
前記不揮発性メモリは、フラッシュメモリであることを特徴とする請求項４から請求項１２のいずれか１項に記載の電子制御装置の情報記憶方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２５
【補正方法】変更
【補正の内容】
【００２５】
この発明に係る電子制御装置は、電気的に消去可能な不揮発性メモリと揮発性メモリとを備える電子制御装置において、不揮発性メモリには、記憶領域内に単数または複数の記憶グループと、この記憶グループの１つに単数または複数の記憶ブロックを設け、記憶ブロックの各々は、電源遮断後も使用する制御データを格納する情報格納部と、情報格納部に格納されている制御データが正常に記憶されたことを示す情報を格納するチェックデータ部と、格納された制御データの新旧を判定するための情報を含む管理情報を格納する管理情報部を有し、情報格納部には、記憶ブロックに記憶させる制御データをそれぞれ格納するための記憶エリアを単数もしくは複数設け、記憶エリア内にはデータ格納部を持った記憶セクションを単数もしくは複数設け、記憶ブロックの管理情報部は、記憶ブロックの移行回数をカウントするカウンタ部を備え、有効な記憶ブロックが複数存在する場合、複数の記憶ブロックのカウンタ部のカウンタ値の比較により、カウンタ値が最大の記憶ブロックを最新データの格納された記憶ブロックとして特定し、記憶ブロックは１回の操作でデータ消去が可能な消去単位とし、記憶セクションはデータ書き込み単位としたものである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
この発明に係る電子制御装置の情報記憶方法は、電気的にデータを消去可能な不揮発性メモリの記憶領域内に、１回の操作でデータの消去が可能な記憶ブロックを単数または複数設け、記憶ブロックの各々には制御データを記憶できる記憶エリアを単数または複数設け、記憶ブロックの各々には記憶エリアに記憶された制御データの新旧を判定するための管理情報を記憶する領域を割り付けた管理情報部を設け、不揮発性メモリに記憶した制御データを読み出す場合や、新しく制御データを不揮発性メモリに記憶する必要が生じた場合には、管理情報部に記憶されている新旧を判定するための管理情報を参照することで、新たな制御データが記憶されている記憶ブロックを特定し、管理情報部には、記憶ブロックの移行回数をカウントするカウンタ部を設け、有効な記憶ブロックが複数存在する場合、複数の記憶ブロックのカウンタ部のカウンタ値の比較により、カウンタ値が最大の記憶ブロックを最新データの格納された記憶ブロックとして特定するようにしたものである。