図面 (/)

技術 不揮発性記憶装置へのデータの書き込み方法、プログラム、および装置、ならびに車載電子制御装置

出願人 株式会社デンソー
発明者 長田康二柳沢章裕
出願日 2002年10月30日 (18年0ヶ月経過) 出願番号 2002-315672
公開日 2004年5月27日 (16年5ヶ月経過) 公開番号 2004-151944
状態 未査定
技術分野 メモリシステム 検索装置 記憶装置の信頼性向上技術 EAROM リードオンリーメモリ 計算機におけるファイル管理 車両の試験
主要キーワード 指示アドレス 外部診断装置 データ単位分 オン回数 入れ替え前 書き込み場所 非負整数 ドライビングサイクル
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2004年5月27日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (10)

課題

故障診断回数等を記録する自動車用制御装置の有する、書き換え回数に上限がある不揮発性記憶装置取り替え回数を抑え、かつこの不揮発性記憶装置の容量の冗長性を抑える。

解決手段

当初、AブロックとBブロックを備えたEEPROM3に書き込むデータのうち、書き換え頻度の高いデータをAブロックに、書き換え頻度の低いデータをBブロックに書き込み、書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数がEEPROM3の書き換え保証回数に達する前に、書き換え頻度の高いデータと書き換え頻度の低いデータを入れ替え、それ以後、書き換え頻度の高いデータをBブロックに、書き換え頻度の低いデータをAブロックに書き込む。

概要

背景

従来、電気的に書き換え可能な不揮発性記憶装置としてEEPROM(Electrically Erasable & Programable ROM)が広く用いられている。このEEPROMは、その記憶内容書き換え回数に上限(例えば10万回)があり、この上限を超えて書き換えを行えば、書き込まれた記憶内容の信頼性は全く保証の限りでなくなる。したがって、書き換え回数が上限を超えないうちにEEPROMを新しいものに交換する等の処置が必要となる。

概要

故障診断回数等を記録する自動車用制御装置の有する、書き換え回数に上限がある不揮発性記憶装置取り替え回数を抑え、かつこの不揮発性記憶装置の容量の冗長性を抑える。当初、AブロックとBブロックを備えたEEPROM3に書き込むデータのうち、書き換え頻度の高いデータをAブロックに、書き換え頻度の低いデータをBブロックに書き込み、書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数がEEPROM3の書き換え保証回数に達する前に、書き換え頻度の高いデータと書き換え頻度の低いデータを入れ替え、それ以後、書き換え頻度の高いデータをBブロックに、書き換え頻度の低いデータをAブロックに書き込む。

目的

本発明は上記点に鑑みて、書き換え回数に上限がある不揮発性記憶装置の取り替え回数を抑え、かつこの不揮発性記憶装置の容量の冗長性を抑えることを目的とする

効果

実績

技術文献被引用数
6件
牽制数
3件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

当初、第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを前記第1の記憶手段に、書き換え頻度の低いデータを前記第2の記憶手段に書き込む段階と、前記書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が前記不揮発性記憶装置の書き換え保証回数を超える前に、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替える段階と、前記移し替える段階以後、書き換え頻度の高いデータを前記第2の記憶手段に、書き換え頻度の低いデータを前記第1の記憶手段に書き込む段階と、を備えた不揮発性記憶装置へのデータの書き込み方法

請求項2

前記移し替える段階は、前記第1および第2の記憶手段中のデータを、それぞれ移し替える先の記憶手段中の空き領域に書き込むことで、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替えることを特徴とする請求項1に記載の不揮発性記憶装置へのデータの書き込み方法。

請求項3

前記移し替える段階は、前記第1および第2の記憶手段中のデータを、1データ単位毎に順次それぞれ移し替える先の記憶手段中の1データ単位分の空き領域に書き込むことで、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替え、前記第1または第2の記憶手段中の前記1データ単位分の空き領域は、それぞれ前記第2または第1の記憶手段中のデータを1データ単位移し替えることで生成される領域であることを特徴とする請求項2に記載の不揮発性記憶装置へのデータの書き込み方法。

請求項4

コンピュータを、当初、第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを前記第1の記憶手段に、書き換え頻度の低いデータを前記第2の記憶手段に書き込む手段、前記書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が前記不揮発性記憶装置の書き換え保証回数を超える前に、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替える手段、および前記移し替え以後、書き換え頻度の高いデータを前記第2の記憶手段に、書き換え頻度の低いデータを前記第1の記憶手段に書き込む手段、として機能させるための不揮発性記憶装置へのデータの書き込みプログラム

請求項5

前記移し替える手段は、前記第1および第2の記憶手段中のデータを、それぞれ移し替える先の記憶領域中の空き領域に書き込むことで、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替えることを特徴とする請求項4に記載の不揮発性記憶装置へのデータの書き込みプログラム。

請求項6

前記移し替える段階は、前記第1および第2の記憶手段中のデータを、1データ単位毎に順次それぞれ移し替える先の記憶手段中の1データ単位分の空き領域に書き込むことで、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替え、前記第1または第2の記憶手段中の前記1データ単位分の空き領域は、それぞれ前記第2または第1の記憶手段中のデータを1データ単位移し替えることで生成される領域であることを特徴とする請求項5に記載の不揮発性記憶装置へのデータの書き込みプログラム。

請求項7

当初、第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを前記第1の記憶手段に、書き換え頻度の低いデータを前記第2の記憶手段に書き込む手段と、前記書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が前記不揮発性記憶装置の書き換え保証回数を超える前に、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替える手段と、前記移し替え以後、書き換え頻度の高いデータを前記第2の記憶手段に、書き換え頻度の低いデータを前記第1の記憶手段に書き込む手段と、を備えた不揮発性記憶装置へのデータの書き込み装置

請求項8

前記移し替える手段は、前記第1および第2の記憶手段中のデータを、それぞれ移し替える先の記憶領域中の空き領域に書き込むことで、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替えることを特徴とする請求項7に記載の不揮発性記憶装置へのデータの書き込み装置。

請求項9

前記移し替える段階は、前記第1および第2の記憶手段中のデータを、1データ単位毎に順次それぞれ移し替える先の記憶手段中の1データ単位分の空き領域に書き込むことで、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替え、前記第1または第2の記憶手段中の前記1データ単位分の空き領域は、それぞれ前記第2または第1の記憶手段中のデータを1データ単位移し替えることで生成される領域であることを特徴とする請求項8に記載の不揮発性記憶装置へのデータの書き込み装置。

請求項10

車両に搭載された車載機器を制御し、所定の条件が満たされた場合に前記車載機器における診断対象故障診断を実施する車載電子制御装置において、車両の1ドライビングサイクル中、前記車両が所定の運転状態となったときに第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置に書き込まれている運転回数1回分だけ更新した値に書き換えると共に、前記故障診断が実施されたときに前記不揮発性記憶装置に書き込まれている故障診断回数を1回分だけ更新した値に書き換える段階と、当初、前記不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを前記第1の記憶手段に、書き換え頻度の低いデータを前記第2の記憶手段に書き込む段階と、前記書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が前記不揮発性記憶装置の書き換え保証回数を超える前に、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替える段階と、前記移し替える段階以後、書き換え頻度の高いデータを前記第2の記憶手段に、書き換え頻度の低いデータを前記第1の記憶手段に書き込む段階と、を備えた不揮発性記憶装置へのデータの書き込み方法。

請求項11

車両に搭載された車載機器を制御し、所定の条件が満たされた場合に前記車載機器における診断対象の故障診断を実施する車載電子制御装置であって、第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置と、車両の1ドライビングサイクル中、前記車両が所定の運転状態となったときに前記不揮発性記憶装置に書き込まれている運転回数を1回分だけ更新した値に書き換えると共に、前記故障診断が実施されたときに前記不揮発性記憶装置に書き込まれている故障診断回数を1回分だけ更新した値に書き換える手段と、当初、前記不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを前記第1の記憶手段に、書き換え頻度の低いデータを前記第2の記憶手段に書き込む手段と、前記書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が前記不揮発性記憶装置の書き換え保証回数を超える前に、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替える手段と、前記移し替え以後、書き換え頻度の高いデータを前記第2の記憶手段に、書き換え頻度の低いデータを前記第1の記憶手段に書き込む手段と、を備えた車載電子制御装置。

技術分野

0001

本発明は、自動車用制御装置等における不揮発性記憶装置へのデータの書き込み方法プログラム、および装置に関するものである。

0002

従来、電気的に書き換え可能な不揮発性記憶装置としてEEPROM(Electrically Erasable & Programable ROM)が広く用いられている。このEEPROMは、その記憶内容書き換え回数に上限(例えば10万回)があり、この上限を超えて書き換えを行えば、書き込まれた記憶内容の信頼性は全く保証の限りでなくなる。したがって、書き換え回数が上限を超えないうちにEEPROMを新しいものに交換する等の処置が必要となる。

0003

例えば、自動車電子制御装置においては、CARB(カリフォルニア待機資源保護局)によるOBD(オンボードダイアグスティック)2の法規に、RateBaseモニタ法があり、そのRateBaseモニタ法では、下記の式で定義されるモニタ頻度を継続的に記憶しておく必要がある。

0004

モニタ頻度=モニタリング実施回数運転回数
なお、モニタ頻度は、故障診断を実施した頻度であり、触媒コンバータフューエルエバポレーションステム酸素センサ等といった複数の項目診断についてそれぞれ存在する。そして、運転回数(以下、分母と記す)は、その項目について法規で定められた所定の走行条件が満たされたときにインクリメントされるデータである。また、モニタリング実施回数(以下、分子と記す)は、その項目について自動車メーカで定めた故障診断実施条件が満たされて、正常または異常の判定が終了した時点で、インクリメントされるデータである。このようなデータは、非常に書き換え頻度が高く、自動車電子制御装置の耐用年数内に書き換え回数が書き換え頻度を超えてしまう可能性がある。

0005

このような書き換え回数に上限がある不揮発性記憶装置の取り替え回数を極力抑える技術として、不揮発性記憶装置を複数のブロックに分割し、ブロック毎に書き換え回数を記憶する記憶部を持ち、当初一方のブロックに対してのみデータの書き換え行い、このブロックへの書き換え回数が所定値に達したら、書き換えを他のブロックに切り替える方法がある(例えば、特許文献1参照。)。

背景技術

0006

【特許文献1】
特公平5−52000号公報

0007

しかし、上記技術は、書き換えの切り替えのために空き領域をあらかじめ確保しておく必要があるため、本来不揮発性記憶装置に書き込みたい全データ量の倍の不揮発性記憶装置の容量が必要となる。すなわち、不揮発性記憶装置の容量が冗長になるという問題がある。

発明が解決しようとする課題

0008

本発明は上記点に鑑みて、書き換え回数に上限がある不揮発性記憶装置の取り替え回数を抑え、かつこの不揮発性記憶装置の容量の冗長性を抑えることを目的とする。

0009

上記目的を達成するための請求項1に記載の発明は、当初、第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを第1の記憶手段に、書き換え頻度の低いデータを第2の記憶手段に書き込む段階と、書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が不揮発性記憶装置の書き換え保証回数を超える前に、書き換え頻度の高いデータを第2の記憶手段に、書き換え頻度の低いデータを第1の記憶手段に移し替える段階と、移し替える段階以後、書き換え頻度の高いデータを第2の記憶手段に、書き換え頻度の低いデータを第1の記憶手段に書き込む段階と、を備えた不揮発性記憶装置へのデータの書き込み方法である。

0010

これによって、不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータと書き換え頻度の低いデータは別の記憶手段に分けて書き込まれ、また、最も書き換え頻度の高いデータの書き換え回数が不揮発性記憶装置の書き換え保証回数を超える前に、それぞれの領域に書き込まれているデータが相互に移し替えられ、すなわち入れ替えられ、それ以後はその入れ替えられた状態で書き込みを行うようになる。したがって、入れ替え直前に第1の記憶手段が書き換え限度に近づいていても、第2の記憶手段は書き換え限度までには余裕があるので、書き換え頻度の高いデータを第2の記憶手段に入れ替えることによって、不揮発性記憶装置全体として書き換え保証回数を有効利用し、かつ無駄な記憶容量を節約することができるので、書き換え回数に上限がある不揮発性記憶装置の取り替え回数を抑え、かつこの不揮発性記憶装置の容量の冗長性を抑えることが可能となる。

0011

また、請求項2に記載の発明は、請求項1に記載の不揮発性記憶装置へのデータの書き込み方法において、移し替える段階は、第1および第2の記憶手段中のデータを、それぞれ移し替える先の記憶手段中の空き領域に書き込むことで、書き換え頻度の高いデータを第2の記憶手段に、書き換え頻度の低いデータを第1の記憶手段に移し替えることを特徴とする。

0012

これによって、入れ替えの際に不揮発性記憶装置中からデータの一部が一時的にも消えることがない。したがって、入れ替えの際に他の記憶装置にデータを一事待避させる必要がなく、入れ替え処理簡易になる。また、仮に入れ替え処理が中断したとしても、EEPROMから必要な情報が欠落することはない。

0013

なお、空き領域とは、単に情報を有するデータが書き込まれていない領域に加え、その書き換えたとしても不揮発性記憶装置としては情報を何ら失うことはない領域をも含む概念である。

0014

また、請求項3に記載の発明は、請求項2に記載の不揮発性記憶装置へのデータの書き込み方法において、移し替える段階は、第1および第2の記憶手段中のデータを、1データ単位毎に順次それぞれ移し替える先の記憶手段中の1データ単位分の空き領域に書き込むことで、書き換え頻度の高いデータを第2の記憶手段に、書き換え頻度の低いデータを第1の記憶手段に移し替え、第1または第2の記憶手段中の1データ単位分の空き領域は、それぞれ第2または第1の記憶手段中のデータを1データ単位移し替えることで生成される領域であることを特徴とする請求項2に記載の不揮発性記憶装置へのデータの書き込み方法である。

0015

また、請求項4〜6の発明は、それぞれ請求項1〜3の発明をコンピュータプログラムとして実現する発明である。

0016

また、請求項7〜9の発明は、それぞれ請求項1〜3の発明を不揮発性記憶装置へのデータの書き込み装置として実現する発明である。

0017

また、請求項10に記載の発明は、車両に搭載された車載機器を制御し、所定の条件が満たされた場合に前記車載機器における診断対象の故障診断を実施する車載電子制御装置において、車両の1ドライビングサイクル中、前記車両が所定の運転状態となったときに第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置に書き込まれている運転回数を1回分だけ更新した値に書き換えると共に、前記故障診断が実施されたときに前記不揮発性記憶装置に書き込まれている故障診断回数を1回分だけ更新した値に書き換える段階と、当初、前記不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを前記第1の記憶手段に、書き換え頻度の低いデータを前記第2の記憶手段に書き込む段階と、前記書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が前記不揮発性記憶装置の書き換え保証回数を超える前に、前記書き換え頻度の高いデータを前記第2の記憶手段に、前記書き換え頻度の低いデータを前記第1の記憶手段に移し替える段階と、前記移し替える段階以後、書き換え頻度の高いデータを前記第2の記憶手段に、書き換え頻度の低いデータを前記第1の記憶手段に書き込む段階と、を備えた不揮発性記憶装置へのデータの書き込み方法である。

0018

これによって、車載電子制御装置において、請求項1と同等の効果を得ることができる。

課題を解決するための手段

0019

また、請求項11の発明は、請求項10の発明を車載電子制御装置として実現する発明である。

0020

図1に、本発明の一実施形態に係るエンジンECU(電子制御装置,以下の記載はECUとする)1の構成を示す。このエンジンECU1は、CPU2、EEPROM3、ROM4、およびRAM5を備えている。エンジンECU1は、車両のエンジンの状態を検知し、またエンジンの作動の制御を行うための装置である。またエンジンECU1は、前述したCARB・ODB2のRateBaseモニタ法で定められている故障診断対象項目の各々について、その項目の故障診断実施条件が成立した場合には、該当する項目についての故障診断処理を実施して正常または異常の判定を行う。そして更にエンジンECU1は、上記した故障診断対象項目について、前述したモニタ頻度を表す分子(モニタリング実施回数)と分母(運転回数)のデータを、EEPROM3を用いて継続的に保存、更新する。

0021

またこのエンジンECU1には、図示しないツールと呼ばれる外部診断装置を図示しないダイアグ用コネクタを介して接続可能となっている。そして工場カーディーラ等における診断において、エンジンECU1は、ツールからの故障診断に関する出力要求に応じたデータ(例えば上記した分子、分母)をこのツールに出力するようになっている。

0022

CPU2は、書き換え不能な不揮発性メモリであるROM4に書き込まれているプログラムを読み出し、そのプログラムの処理内容を実行し、この実行の段階において必要があればEEPROM3および揮発性メモリであるRAM5に対して情報の読み出し/書き込みを行う。またCPU2は動作時に、イグニッション線を介してイグニッションキー切り替わりを検知し、車速センサから車速情報の入力を受け、外気温センサから外気温の情報の入力を受け、また図示しない各種センサ類から、アイドル信号クランク角等の車両に関する各種情報の入力を受ける。またCPU2は動作時に、必要に応じてエンジンの点火装置噴射装置制御信号を出力する。

0023

EEPROM3は、電気的に書き換え可能な不揮発性メモリである。図2に、このEEPROM3の記憶領域の構造を示す。このEEPROM3は絶対アドレスによって0番地からm番地まで分けられており、またこの記憶領域内に同じサイズの2つのブロック、すなわちAブロックとBブロックとを有している。例えば、絶対アドレス0番地からn番地まではAブロックとして割り当てられている。ただし、m、nはあらかじめ決められた整数であり、m≧2n+2である。このAブロックおよびBブロックの先頭アドレス部分には、後述するアドレス情報が書き込まれる。そして、Aブロックの先頭アドレス以降は、先頭アドレスに近い順にA[0]、A[1]、…、A[n]、というブロック指示アドレスが割り振られる。Bブロックの先頭アドレス以降も同様にB[0]、B[1]、…、B[n]、の順でブロック指示アドレスが割り振られる。このブロック指示アドレスは相対アドレス一種である。

0024

このEEPROM3の各セルは、最大書き換え保証回数が10万回である。EEPROM3のある部分において書き換え回数がこの保証回数を超えると、書き込まれた記憶内容の信頼性は全く保証の限りでなくなる。

0025

本実施形態においては、ある後述する所定の時期になると、Aブロックに書き込まれているデータとBブロックに書き込まれているデータを入れ替える。すなわち、AブロックのデータをBブロックに、BブロックのデータをAブロックに移し替える。そしてそれ以降、移し替えられた場所において各データが書き換えられる。

0026

なお、「あるデータをEEPROM3のある領域に書き込む」という表現と「EEPROM3のある領域をあるデータに書き換える」という表現は、同じ動作の別の表現形態であって、「書き込む」と「書き換える」という表現の間には、技術上の差違はない。

0027

図3に、当初、すなわち出荷後後述するデータ入れ替え前のEEPROM3のA、Bブロック内のデータ構成を示す。

0028

各ブロック中、縦方向に並ぶスロットがブロック内の各ブロック指示アドレスに対応するデータ領域を示している。各ブロックの先頭番地にはアドレス情報が格納されている。このアドレス情報は、A、Bブロック間でデータの入れ替えを行うときに用いられる数値であり、当初は双方0となっている。

0029

各ブロックの先頭番地の次以降には、アドレスA[0]からA[n]まで、およびB[0]からB[n]までのデータ領域がある。各データ領域に書き込まれるデータのそれぞれを、1データ単位とする。入れ替えが行われる前は、アドレスA[0]、B[0]は空き状態となっている。すなわちA[0]、B[0]の値はデータが書き込まれていない初期状態、具体的にはゼロとなっている。またA[1]〜A[n−1]、B[1]〜B[n−1]までの領域に対しては、エンジンECU1の制御において必要なデータの書き込み/読み出しがCPU2によって行われる。

0030

当初Aブロックの当該番地に書き込まれるデータは、書き換えの頻度が高いものである。書き換え頻度が高いとは、EEPROM3の耐用年数内に書き換えられる回数が書き換え保証回数に近いことをいう。書き換え頻度が高いものとしては、例えば車両のイグニッションキーがオンとなる度に1加算された数値に書き換えれられるデータ、すなわちイグニッションキーのオン回数カウントするデータ、イグニッションキーのオンの度に書き込まれる車両の走行距離、イグニッションキーのオン毎に1回は実行される可能性がある故障判定実行回数等がある。

0031

上記した分子(故障診断実施回数)と分母(運転回数)のデータは、この書き換え頻度の高いデータである。なお、これら分母と分子は、両方共に、自動車のドライビングサイクル、例えばイグニッションスイッチがオンされてオフされるまでの間(すなわち、エンジンECU1に動作電源投入されてその動作電源が遮断されるまでの1回の動作期間中)に、または「エンジン始動されて、その後エンジン停止されて、更に次のエンジン停止」までの間、1回だけインクリメントされるか、あるいはインクリメントされずにそのままの値を維持するかの何れかである。よって、各項目の分母と分子は、1インクリメントされると、その回の自動車の運転期間中では、それ以上値が更新されることはない。

0032

当初Bブロックの当該番地に書き込まれるデータは、書き換えの頻度が低いものである。書き換え頻度が低いとは、EEPROM3の耐用年数内に書き換えられる回数が書き換え保証回数にくらべて小さいことをいう。書き換え頻度が低いものとしては、例えばエンジンECU1の工場出荷時にのみ設定される車種情報、タイヤの交換時にしか変更しないタイヤのサイズ、工場での検査時にしか使用しない工場検査用データ等がある。

0033

また、当初Aブロックに書き込まれるデータのうち、最も書き換え頻度が高いものがエンジンECU1の設計時に決められている。最も書き換え頻度が高いものとしては、本実施形態では上記したイグニッションのオン回数である。この最も書き換え頻度が高いデータが当初書き込まれる先のアドレスの情報は、CPU2が実行するプログラム中に記録されている。以降、この最も書き換え頻度が高いデータが書き込まれる先のアドレスをA[mf]番地と記す。

0034

またA[n]には、A[mf]のデータが書き換えられた回数が記録されるようになっている。そしてBブロックのn番地には、Bブロック中で最も書き換え頻度が高いデータが書き込まれる。

0035

上記のEEPROM3に対してデータの読み出し/書き込み、および入れ替えを行う処理を含む、CPU2の全体的な処理を図4に示す。この処理は、エンジンECU1の起動後に開始される。なお、CPU2はこの処理と並行して、自らの処理によってA[mf]番地のデータが書き換えられることを検知し、検知するたびにA[n]に書き込まれている値を1増加させる。

0036

この処理中、本実施形態において最も特徴的となっているのは、ステップ230の入れ替え処理である。この入れ替え処理は、EEPROM3のA[mf]への書き込みが所定回数に達したとき等に実行される。まずこの入れ替え処理について先に説明する。図5に、この入れ替え処理の詳細を示す。

0037

入れ替え処理は、通常ステップ305から開始される。特別な場合に限り、ステップ340から開始されるが、この場合については後述する。

0038

ステップ305で入れ替え処理が始まると、CPU2はBブロックのアドレス情報を読み出し、この値を変数B_ADに代入する。なお、変数名B_AD等は、CPU2がRAM5内に格納するデータを識別するための名称である。

0039

次にステップ310で、A[B_AD+1]のデータを変数DATAに代入する(B_AD+1は、変数B_ADの値に1を加えたものを表す。)。そしてステップ320で、変数DATAの値をB[B_AD]に書き込む。例えば、通常は最初にステップ305が実行されるときにはB_ADは0なので、この場合ステップ310およびステップ320によって、A[1]のデータが当初空き領域であったB[0]に書き込まれる。

0040

次にステップ330で、B_AD+1をBブロックのアドレス情報の領域に書き込む。これによって、Bブロックアドレス情報の値が、ステップ305の時点から1だけ増える。

0041

次にステップ340でAブロックのアドレス情報を変数A_ADに代入する。そしてステップ350でB[A_AD+1]のデータを変数DATAに代入し、ステップ360で変数DATAの値をA[A_AD]に書き込む。例えば、通常は最初にステップ350が実行されるときにはB_ADは0なので、この場合ステップ350およびステップ360によって、B[1]のデータが空き領域であったA[0]に書き込まれる。

0042

次にステップ370で、A_AD+1をAブロックのアドレス情報の領域に書き込む。これによって、Aブロックアドレス情報の値が、ステップ340の時点から1だけ増える。

0043

A、Bブロックのアドレス情報の値が共に0であった場合にステップ305からステップ370を実行した後の、A、Bブロック内の状態を図6に示す。当初A[1]にあったデータDA(1)がB[0]に書き込まれており、当初B[1]にあったデータDB(1)がA[0]に書き込まれている。また、ブロックAアドレス情報、ブロックBアドレス情報は共に1となっている。A[1]、B[1]の領域内のデータは実際に消去されるわけではないが、それぞれB[1]、A[1]に複写されているので、A[1]、B[1]の領域には別のデータを書き込んでも、EEPROM3としては情報を何ら失わない状態となっている。すなわち、これらの領域は実質的に空き状態の領域、すなわち空き領域となっている。

0044

上記の例を一般化すると、ステップ305から370間での処理で、A、Bブロックのアドレス情報の値が共にi(iは非負整数)なら、当初A[i]にあったデータDA(i)がB[i−1]に書き込まれ、当初B[i]にあったデータDB(i)がA[i−1]に書き込まれ、A[i]およびB[i]の領域が空き状態となり、更にA、Bブロックのアドレス情報の値が1つ加算される。このとき、DA(i)、DB(i)が書き込まれる前のB[i−1]、A[i−1]は実質的に空き状態となっているので、上書きしてもEEPROM3から何らデータが失われることはない。

0045

ステップ370の後、処理はステップ380の判定処理に進む。この判定処理では、A_ADとB_ADが共にn−1であるか否かを判定する。この判定は、A、Bブロックのアドレス情報の値が共にnであるか否かの判定と同値である。

0046

A_ADとB_ADが共にn−1でなければ再度ステップ305から370までの処理が行われる。したがって、A、Bブロックのアドレス情報の値が共にnになるまで、ステップ305からステップ370までの処理が繰り返され、それぞれのブロックのデータDA(1)〜DA(n)、DB(1)〜DB(n)の全てが小さいアドレスから順次別ブロックの空き領域に書き込まれてゆく。

0047

これら書き込みが全て終了すると、ステップ380でA_ADとB_ADが共にn−1であると判定され、入れ替え処理は終了する。

0048

入れ替え処理終了後のEEPROM3のA、Bブロックの状態を図7に示す。当初B[1]〜B[n]にあったデータがそれぞれA[0]〜A[n−1]に移し替えられ、当初A[1]〜A[n]にあったデータがそれぞれB[0]〜B[n−1]に移し替えられ、A[n]、B[n]が空き領域となっている。

0049

このようなデータの入れ替えでは、ブロックA、B中のデータを、それぞれ移し替える先のブロック中の空き領域に書き込んでおり、入れ替えの際にEEPROM3中からデータの一部が一時的にも消えることがない。したがって、入れ替えの際にRAM5等の他の記憶装置にデータを一事待避させる必要がなく、入れ替え処理が簡易になる。

0050

またこの入れ替えは、A、Bブロック中のデータを、1データ単位毎に順次それぞれ移し替える先のブロック中の1データ単位分の空き領域に書き込むようになっており、またA、Bブロックの記憶手段中の1データ単位分の空き領域は、それぞれ相手のブロックであるB、Aブロックのデータを1データ単位移し替えることで生成される領域であると言える。

0051

A、Bブロックの間のデータの入れ替えは、正常に行われれば上記のようになる。しかし、データの入れ替えは必ず正常に終了するとは限らない。例えば、データの入れ替えの途中で、イグニッションオフ等のエンジンECU1への電源遮断によって入れ替え処理が中断する可能性がある。

0052

しかし、上記したように入れ替えの際にEEPROM3中からデータの一部が一時的にも消えることがないので、仮に電源遮断等で入れ替え処理が中断したとしても、EEPROM3から必要な情報が欠落することはない。

0053

本実施形態のエンジンECU1は、この入れ替え処理の中断があっても、その後エンジンECU1の起動後に入れ替え処理を再開できるようになっている。このための処理が、図4のステップ205に示される、エンジンECU1が起動するとすぐに実行される中断判定処理である。この中断判定処理の詳細を図8に示す。

0054

まず、中断判定処理が始まると、ステップ405でAブロックアドレス情報を変数A_ADに代入し、またBブロックアドレス情報を変数B_ADに代入する。

0055

次に、ステップ410でA_ADとB_ADが共に0、あるいは共にnであるか否かを判定する。共に0、あるいは共にnであれば中断判定は終了する。A、Bブロックアドレス情報が共に0であるということは、まだ入れ替え処理が始まっていないことを示し、またA、Bブロックアドレス情報が共にnであるということは、入れ替え処理が既に終了していることを示している。したがって、この場合は入れ替え処理が中断した状態にないので、中断再開の処理をする必要がなく、そのまま中断処理を終了する。

0056

ステップ410でA_ADとB_ADが共に0でも共にnでもない場合、入れ替えの中断があったとして、処理はステップ420に進む。ステップ420では、B_ADがA_ADより大きいか否かを判定する。図4において示したように、まずステップ330でBブロックアドレス情報が1加算され、その後ステップ370でAブロックアドレス情報が1加算される。したがって、中断したタイミングによってB_AD=A_AD、およびB_AD=A_AD+1>A_ADのいずれかの状態になっている。

0057

ステップ420でB_AD>A_ADであると判定されると処理はステップ430に進む。B_AD>A_AD=kとすると、この場合、入れ替えが中断したのは、ステップ330でBブロックアドレス情報がk+1に書き換えられてから、ステップ370でAブロックアドレス情報がk+1に書き換えられる前までの間である。このときは、DA(0)〜DA(k+1)、DB(0)〜DB(k)までのデータの移し替えは終了しているが、DB(k+1)のデータが移し替えられているか否かが不明である。また、DA(k+2)の移し替えが終了していないことも確かであるから、B[k+1]にDB(k+1)のデータが残っていることも確かである。

0058

そこで、DB(k+1)の移し替えの処理の最初、すなわちステップ340から入れ替えを再開することができる。したがって、ステップ430では図5のBブロックスタートから入れ替えを再開する。そして図5の処理に従って入れ替えが完了すると、中断判定は終了する。

0059

また、ステップ420でB_AD>A_ADでない、すなわちB_AD=A_ADであると判定されると、処理はステップ440に進む。B_AD=A_AD=kとすると、この場合、入れ替えが中断したのは、ステップ370でAブロックアドレス情報がkに書き換えられてから、ステップ330でBブロックアドレス情報がk+1に書き換えられる前までの間である。このときは、DA(0)〜DA(k)、DB(0)〜DB(k)までのデータの移し替えは終了しているが、DA(k+1)のデータが移し替えられているか否かが不明である。また、DB(k+2)の移し替えが終了していないことも確かであるから、A[k+1]にDA(k+1)のデータが残っていることも確かである。

0060

そこで、DA(k+1)の移し替えの処理の最初、すなわちステップ305から入れ替えを再開することができる。したがって、ステップ440では図5のAブロックスタートから入れ替えを再開する。そして図5の処理に従って入れ替えが完了すると、中断判定は終了する。

0061

中断判定が終了すると、CPU2の処理は図4のステップ210のプログラム処理に進む。プログラム処理とは、このエンジンECU1が行うエンジン管理、制御、およびのための処理である。この処理において、例えばクランク角等の情報にもとづいたエンジンの燃料噴射点火制御が行われる。そしてこの処理内で、EEPROM3中のデータ内容が必要に応じて書き換えられる。例えば、エンジンECU1がイグニッションキーのオンを検知した場合に、イグニッションキーのオンの回数が書き込まれたアドレスのデータを読み出し、それに1を加算した値を再び当該アドレスに書き込む。

0062

また例えば、車両が走行状態と判断される所定の運転状態となったときに、車両の実質的な走行回数を記録する所定のアドレスの値を1加算して再度書き込む。すなわち、EEPROM3に書き込まれているこの値を1回分だけ更新した値に書き換える。

0063

また例えば、車両が故障診断の条件が満たされ、故障診断が実施されたときに、実施した故障診断に対応するEEPROM3の所定のアドレスの分子データの値を1加算して再度書き込む。すなわち、EEPROM3に書き込まれている故障診断回数を1回分だけ更新した値に書き換える。

0064

本実施形態においてはこのプログラム処理の詳細については記述しないが、処理の負荷という観点に立てば、実際にはこの処理およびステップ215の読み出し/書き込み処理がCPU2のメインルーチンであり、そのメインルーチンの周期ごとのステップ220〜230の入れ替えに関わる処理はサブルーチンであると言える。

0065

次に処理はステップ215に進み、EEPROM3に対する読み出し/書き込み処理を行う。読み出し/書き込み処理とは、エンジンECU1の制御において必要に応じてEEPROM3に対してデータの書き込みおよび読み出しを行う処理である。本実施形態においては、使用の途中においてデータの書き込み場所が入れ替わるので、それに対応して同じデータでも入れ替えの前と後で読み書きのためのアクセス先を変更しなければならない。

0066

この読み出し/書き込み処理の詳細を図9に示す。まずステップ510で、読み出し/書き込みを行いたいデータにアクセスするためのブロック(AまたはB)を変数RW_BLCKに代入し、アドレスを変数RW_ADDESSに代入する。ただし、ここで代入されるブロックおよびアドレスは、読み出し/書き込みの時期に関らず、常に当初入れ替えが行われる前に各データが格納されていた場所のものである。

0067

次に、ステップ520では、A、Bブロックのアドレス情報をそれぞれ変数A_ADおよび変数B_ADに代入する。

0068

次に、ステップ530では、A_ADとB_ADが共にnであるか否か、すなわち、データの入れ替えが終了しているか否かを判定する。

0069

共にnでない、すなわち入れ替えが行われていないなら、処理はステップ560に進み、そのままRW_BLOCKで指定されるブロックの、RW_ADDRESSアドレスにアクセスして読み出し/書き込みを行い、その後読み出し/書き込み処理を終了する。

0070

共にnである、すなわち入れ替えが終了しているなら、処理はステップ540に進み、RW_BLOCKがAならBに、BならAに置き換える。そしてステップ550で、RW_ADDRESSから1を減算する。これにより、RW_BLOCKおよびRW_ADDRESSは、アクセスしたいデータの入れ替え後のブロックおよびアドレスを指定するようになる。

0071

そして、ステップ560で、置き換えられたRW_BLOCKで指定されるブロックの、RW_ADDRESSアドレスにアクセスして読み出し/書き込みを行い、その後読み出し/書き込み処理を終了する。

0072

このようにすることで、ステップ520〜550の処理が、現在がデータの入れ替え前か入れ替え後かにもとづいて、アクセスするブロックおよびアドレスの変換を行うので、入れ替え前も入れ替え後も正しくデータにアクセスすることができる。また、CPU2のプログラムのその他の部分(例えばプログラム処理)は、入れ替えによるアクセス先の変化を考慮した処理をする必要がない。

0073

データの読み出し/書き込み処理が終了すると、処理は図4のステップ220に進む。

0074

ステップ220では、Aブロックの書き込み回数規定値に到達したか否かの判定を行う。具体的にはAブロックの領域A[n]に書き込まれているデータの書き換え回数を参照し、それがプログラム中にあらかじめ設定されている規定値に達しているか否かの判定を行う。この規定値はEEPROM3のの書き換え保証回数を超えない所定数である。例えば、EEPROM3の書き換え保証回数が10万回で、当初Aブロックに書き込まれるデータのうち最も書き換え頻度の高いデータの生涯書き換え回数が18万回であるとすると、9万をこの規定値とする。ここで生涯書き換え回数とは、自動車の耐用年数(例えば20年)のうちにエンジンECU1の当該データが書き換えられるであろうと予想される回数のことである。

0075

また、ステップ225の判定処理は、A、Bブロックのアドレス情報が共にnであるか否か、すなわちデータの入れ替えが終了しているか否かを判定する。

0076

書き込み回数が既定値に達しており、かつA、Bブロックのアドレス情報が共にnでない場合に限り、処理はステップ220、225を経てステップ230に進む。すなわち、所定の書き換え時期に達しており、かつまだ書き換えが行われていないときに限り、先に詳述したステップ230の書き換え処理を行う。それ以外の場合は、処理は判定処理を経てステップ210のプログラム処理に戻る。

0077

以上のようなCPU2のプログラム実行処理によって、EEPROM3に書き込むデータのうち、書き換え頻度の高いデータと書き換え頻度の低いデータは別の記憶領域(A、Bブロック)に分けて書き込まれ、また、書き換え頻度の最も高いデータの書き換え回数がEEPROM3の書き換え保証回数を超えない所定数に達したとき、それぞれの領域に書き込まれているデータが入れ替えられ、それ以後はその入れ替えられた状態で書き込みを行うようになる。したがって、入れ替え直前にブロックAが書き換え限度に近づいていても、ブロックBは書き換え限度までには余裕があるので、書き換え頻度の高いデータをブロックBに入れ替えることによって、EEPROM3全体として書き換え保証回数を有効利用し、かつ無駄な記憶容量を節約することができる。ひいては、書き換え回数に上限がある不揮発性記憶装置の取り替え回数を抑え、かつこの不揮発性記憶装置の容量の冗長性を抑えることが可能となる。

0078

なお、本実施形態と本明細書の特許請求の範囲との対応関係として、Aブロックが第1の記憶手段に対応し、Bブロックが第2の記憶手段に対応する。

0079

また、エンジンECU1が、不揮発性記憶装置へのデータの書き込み装置を構成する。

0080

また、図9のステップ510→520→530→560という流れの処理が、当初、第1の記憶手段と第2の記憶手段を備えた電気的に書き換え可能な不揮発性記憶装置に書き込むデータのうち、書き換え頻度の高いデータを第1の記憶手段に、書き換え頻度の低いデータを第2の記憶手段に書き込む手段を構成する。

0081

また、図4のステップ230の処理、すなわち、図5のAブロックスタートから始まる処理が、書き換え頻度の高いデータのうち、最も書き換え頻度の高いデータの書き換え回数が不揮発性記憶装置の書き換え保証回数を超える前に、書き換え頻度の高いデータを第2の記憶手段に、書き換え頻度の低いデータを第1の記憶手段に移し替える手段を構成する。

0082

また、図9のステップ510→520→530→540→550→560という流れの処理が、移し替え以後、書き換え頻度の高いデータを第2の記憶手段に、書き換え頻度の低いデータを第1の記憶手段に書き込む手段を構成する。

0083

また、本実施形態においては、1つのEEPROMを2つのブロックに区別して、それぞれの間で書き換え頻度の高いデータと低いデータとの入れ替えを行っているが、例えば2つの同じ容量のEEPROMを用意し、その一方に書き換え頻度の高いデータを書き込み、他方に書き換え頻度の低いデータを書き込むようになっていれば、上記した実施形態において各ブロックを各EEPROMと読み替えることで、上記した実施形態と同等の効果を得ることができる。すなわち、この場合、2つのEEPROMのうち、当初書き換え頻度の高いデータを書き込む方のEEPROMが第1の記憶手段に対応し、他方が第2の記憶手段に対応する。

0084

また、図4のステップ210のプログラム処理が、車両の1ドライビングサイクル中、車両が所定の運転状態となったときに不揮発性記憶装置に書き込まれている運転回数を1回分だけ更新した値に書き換えると共に、故障診断が実施されたときに前記不揮発性記憶装置に書き込まれている故障診断回数を1回分だけ更新した値に書き換える手段を構成する。

0085

なお、本発明のデータの書き込みにおいては、最も書き換え頻度の高いデータの書き換え回数が不揮発性記憶装置の書き換え保証回数を超える前に、データの移し替えを行えばよいのであって、本実施形態のように、書き換え頻度の最も高いデータの書き換え回数が不揮発性記憶装置の書き換え保証回数を超えない所定数に達したとき、データの移し替えを行うことは、その1つの具体例にすぎない。

発明を実施するための最良の形態

0086

また、本実施形態においては、ブロックAのデータ量とブロックBのデータ量とは同じであるが、必ずしも同じである必要はない。各ブロックが、書き換え頻度の高いデータの総量と書き換え頻度の低いデータの総量のうち大きい方と、その他のアドレス情報、書き換え情報等を書き込む十分な容量があれば足りる。

図面の簡単な説明

0087

また、本実施形態においては、最も高い書き換え頻度のデータが書き換えられる回数を記憶する領域(A[n]等)が確保されているが、必ずしもこの領域は必要ない。例えば、この最も高い書き換え頻度のデータが車両のイグニッションのオンの度に書き換えられるものであり、かつこのデータが車両のイグニッションオンの回数を示すものであれば、このデータの書き換え回数とデータの示す回数とが一致するので、このデータを参照することで、最も高い書き換え頻度のデータが書き換えられた回数がわかる。

図1
本発明の実施形態に係るエンジンECU1の構成図である。
図2
EEPROM3の記憶領域の構造図である。
図3
データ入れ替え前のEEPROMのA、Bブロック内のデータ構成図である。
図4
CPU2の全体的な処理を示すフローチャートである。
図5
入れ替え処理の詳細を示すフローチャートである。
図6
A、Bブロックのアドレス情報の値が共に0であった場合にステップ305からステップ370を実行した後のA、Bブロック内の状態を示す図である。
図7
入れ替え処理終了後のA、Bブロックの状態を示す図である。
図8
中断判定処理の詳細を示すフローチャートである。
図9
読み出し/書き込み処理の詳細を示す図である。
【符号の説明】
1…エンジンECU、2…CPU、3…EEPROM、4…ROM、5…RAM。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • 富士ゼロックス株式会社の「 データ管理システム」が 公開されました。( 2020/09/24)

    【課題】階層構造になっている管理システムにおいて、管理対象データの実体を最上位の装置が全て管理する場合と比較して、管理対象データがユーザの意図しない装置に提供されないシステムを提供する。【解決手段】管... 詳細

  • ソニー株式会社の「 情報処理装置、情報処理方法、およびプログラム」が 公開されました。( 2020/09/24)

    【課題・解決手段】本技術は、複数人のユーザが皆満足できる空間を提供することができるようにする情報処理装置、情報処理方法、およびプログラムに関する。分析部は、複数人のユーザが存在する環境におけるセンシン... 詳細

  • アルテリックス インコーポレイテッドの「 並列処理を使用したハッシュ結合の実行」が 公開されました。( 2020/09/24)

    【課題・解決手段】データレコードは、コンピュータを使用して結合される。第1の複数のデータレコードおよび第2の複数のデータレコード内のデータレコードがハッシュされる。第1の複数のデータレコードおよび第2... 詳細

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ