JP2009116521A - メモリのデータ書替方法 - Google Patents
メモリのデータ書替方法 Download PDFInfo
- Publication number
- JP2009116521A JP2009116521A JP2007287396A JP2007287396A JP2009116521A JP 2009116521 A JP2009116521 A JP 2009116521A JP 2007287396 A JP2007287396 A JP 2007287396A JP 2007287396 A JP2007287396 A JP 2007287396A JP 2009116521 A JP2009116521 A JP 2009116521A
- Authority
- JP
- Japan
- Prior art keywords
- data
- rewriting
- area
- areas
- memory
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 238000010586 diagram Methods 0.000 description 8
- 230000006378 damage Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
【課題】データが破壊された場合にも、できるだけ新らしいデータを保持できるメモリのデータ書替方法を提供する。
【解決手段】フラッシュメモリ13の書替エリアを複数に分割すると共に分割した複数のエリアA〜Dに対して順番に書替を行っていき、書替毎に書替するエリアを切替えるようにする。これにより、複数に分割された各エリアA〜Dそれぞれに対してデータを保持することができ、最も新しく選択されたエリアに最新データへの書替を行いつつ、他のエリアにそれぞれ過去のデータを保持させることが可能となる。したがって、仮に最新データの書替を行っている最中に電源遮断などによってデータが破壊された場合にも、書替中のエリアと異なるエリアに過去のデータを保持することが可能となる。
【選択図】図2
【解決手段】フラッシュメモリ13の書替エリアを複数に分割すると共に分割した複数のエリアA〜Dに対して順番に書替を行っていき、書替毎に書替するエリアを切替えるようにする。これにより、複数に分割された各エリアA〜Dそれぞれに対してデータを保持することができ、最も新しく選択されたエリアに最新データへの書替を行いつつ、他のエリアにそれぞれ過去のデータを保持させることが可能となる。したがって、仮に最新データの書替を行っている最中に電源遮断などによってデータが破壊された場合にも、書替中のエリアと異なるエリアに過去のデータを保持することが可能となる。
【選択図】図2
Description
本発明は、書替可能回数に制限があるフラッシュメモリなどのようなメモリのデータ書替方法に関するものである。
従来より、エンジン制御用の電子制御装置(以下、エンジンECUという)等では、車両状態に応じて適宜データの更新を行う必要があり、メモリにデータの書替えを行っている。このメモリとしては、EEPROMなどがあるが、近年ではコストダウンのためにEEPROMの代替としてマイコン内のフラッシュメモリが使用されている。しかしながら、一般的にフラッシュメモリの書替可能回数がEEPROMの書替可能回数に対して少ないことから、フラッシュメモリの書替エリアを分割して使用することにより、EEPROM相当の書替回数を実現している(特許文献1参照)。この手法について、図4を参照して説明する。
図4は、2.5万回書替可能な4kBのフラッシュメモリの書替エリアを分割して使用するときの様子を示した模式図である。
図4の紙面左側に記載したフラッシュメモリの全体構造に示されるように、フラッシュメモリが各エリア1kBの4つのエリアA〜Dに分けられている。各エリアA〜Dにはそれぞれ書替回数を記憶するためのカウンタが備えられており、書替えが行われるごとにカウント値がインクリメントされる。
図4において紙面中央には各エリアの詳細構造(ここでは代表としてエリアAのみ)を示してある。これに示されるように、各エリアA〜Dの書替ブロックは、消去単位に設定されており、各エリアA〜Dの消去単位ごとに書込みおよび消去が行われる。そして、書替時には、例えばエリアAの場合、まず保持されているデータの消去をブロックA−4からブロックA−1の順番で行ったのち、続いて新たなデータの書き込みを消去時とは逆にブロックA−1からブロックA−4の順番で行う。このようにして、データの書替を行う。
これら各エリアA〜Dでの書替は、まずはエリアAから行われ、エリアAのカウンタのカウント値がエリアAの書替可能回数である25000に到達すると、次のエリアBに対して行われる。そして、エリアBのカウント値が書込可能回数に到達すると続いてエリアCに対して書込・消去が行われ、同様にエリアCのカウント値が書込可能回数に到達すると最後にエリアDに対して書込・消去が行われる。このようにして、合計10万回の書替えに対応することが可能となる。
特開2007−133683号公報
しかしながら、書替中に例えば電源遮断が起こった場合や処理エラーが発生して中断された場合、書替を行っていたエリアのデータ全体が破壊されることになるため、そのエリアのデータを復元できないという問題がある。つまり、書替時に最新データあった場所に上書きしているため、最新データ消去後に現在のデータが書込まれることになり、その書替中に電源遮断などが起こると、そのエリアのデータが既に消失しており、データを復元できないのである。また、データ化けした場合にもそれをチェックすることができず、各エリアのデータの信頼性を確保することができない。
本発明は上記点に鑑みて、データが破壊された場合にも、できるだけ新らしいデータを保持できるメモリのデータ書替方法を提供する。さらに、データが破壊された場合にも、できるだけ新しいデータを保持でき、かつ、データ化けが検出できるようにすることを他の目的とする。
上記目的を達成するため、本発明では、マイコン(12)に備えられるメモリ(13)のデータの書替を行うメモリのデータ書替方法において、メモリ(13)の書替エリアを複数のエリア(A〜D)に分割すると共に、該複数のエリア(A〜D)で書替を行う順番を予め決めておき、1回のデータの書替毎に順番に従って複数のエリア(A〜D)に対する消去・書替を行い、複数のエリア(A〜D)すべてにデータの書替が行われると、再び順番の最初のエリア(A)から書替を行うことを特徴としている。
このように、メモリの書替エリアを複数に分割すると共に分割した複数のエリア(A〜D)に対して順番に書替を行っていき、書替毎に書替するエリアを切替えるようにしている。このため、複数に分割された各エリア(A〜D)それぞれに対してデータを保持することができ、最も新しく選択されたエリアに最新データへの書替を行いつつ、他のエリアにそれぞれ過去のデータを保持させることが可能となる。
したがって、仮に最新データの書替を行っている最中に電源遮断などによってデータが破壊された場合にも、書替中のエリアと異なるエリアに過去のデータを保持することが可能となる。これにより、できるだけ新しいデータを保持できるメモリのデータ書替方法とすることが可能となる。
例えば、複数のエリア(A〜D)それぞれにデータの書替回数をカウントするカウンタを備え、複数のエリア(A〜D)に備えられた各カウンタのカウント値を小さいもののうち、最も順番が早いエリアを次に書替を行うエリアとして選択することにより、複数のエリア(A〜D)の中で次に書替を行うエリアがどれであるかを選択できる。
また、複数のエリア(A〜D)は更に最小消去単位の整数倍のビット数とされた複数の書替ブロックに分割し、書替時に、複数の書替ブロックに対して順番に消去を行った後、当該順番とは逆の順番で複数の書替ブロックに対して書き込みを行うことによりデータの書替を行うことができる。
さらに、複数のエリア(A〜D)に対してデータの書替を行ったときに、複数のエリア(A〜D)それぞれでチェックサムを行うと好ましい。
このようにチェックサムを行うことにより、データ化けを検出することが可能となる。したがって、データが破壊された場合にも、できるだけ新しいデータを保持でき、かつ、データ化けが検出できるデータ書替方法とすることが可能となる。
なお、上記各手段の括弧内の符号は、後述する実施形態に記載の具体的手段との対応関係を示すものである。
以下、本発明の実施形態について図に基づいて説明する。なお、以下の各実施形態相互において、互いに同一もしくは均等である部分には、図中、同一符号を付してある。
(第1実施形態)
本発明の第1実施形態について説明する。図1は、本実施形態にかかるデータの書替方法が実行されるエンジンECU1のブロック構成等を示した模式図である。エンジンECU1は、バッテリ2を電源として、イグニッションスイッチ3がオンされたときに印加されるバッテリ電圧VBに基づいて作動する。具体的には、エンジンECU1には電源回路10が備えられ、バッテリ電圧VBの印加に伴って電源回路10でVcc電源11をオンさせ、電圧Vccがマイコン12に印加されることでマイコン12が起動する構成とされている。このマイコン12に内蔵されたフラッシュメモリ13に対してデータの書替方法が実行される。このデータの書替方法について、図2を参照して説明する。
本発明の第1実施形態について説明する。図1は、本実施形態にかかるデータの書替方法が実行されるエンジンECU1のブロック構成等を示した模式図である。エンジンECU1は、バッテリ2を電源として、イグニッションスイッチ3がオンされたときに印加されるバッテリ電圧VBに基づいて作動する。具体的には、エンジンECU1には電源回路10が備えられ、バッテリ電圧VBの印加に伴って電源回路10でVcc電源11をオンさせ、電圧Vccがマイコン12に印加されることでマイコン12が起動する構成とされている。このマイコン12に内蔵されたフラッシュメモリ13に対してデータの書替方法が実行される。このデータの書替方法について、図2を参照して説明する。
図2は、2.5万回書替可能な4kBのフラッシュメモリ13の書替エリアを分割して使用するときの様子を示した模式図である。
図2において紙面左側に記載したフラッシュメモリ13の全体構造に示されるように、フラッシュメモリ13が各エリア1kBの4つのエリアA〜Dに分けられている。各エリアA〜Dにはそれぞれ書替回数を記憶するためのカウンタが備えられており、書替えが行われるごとにカウント値がインクリメントされる。また、各エリアA〜D毎にチェックサムが行われるようになっている。
図2の紙面中央には各エリア(ここでは代表としてエリアA)の詳細構造を示してある。これに示されるように、各エリアA〜Dの書替ブロックは、消去単位(例えば256バイト)に設定されており、各エリアA〜Dの消去単位ごとに書込みおよび消去が行われる。そして、書替時には、例えばエリアAの場合、まず保持されているデータの消去をブロックA−4からブロックA−1の順番で行ったのち、続いて新たなデータの書き込みを消去時とは逆にブロックA−1からブロックA−4の順番で行う。このようにして、データの書替を行う。
このような書替を行うに際し、各エリアA〜Dに順番に書替えを行う。例えば、エリアAでの書替を行ったら次にエリアBで書替を行い、続いてエリアCで書替を行ったのち、エリアDで書替を行うというように、書替を各エリアA〜Dに順番に行う。そして、エリアDまで書替を行うと、再びエリアAに戻って書替を行い、上記と同様に、エリアB→エリアC、エリアD→エリアA・・・というように、書替を順番に行う。つまり、書替を行うエリアA〜Dをリング構造にし、書替を順番に行った後、最後のエリアDまで書替が行われると再び最初のエリアAに戻って書替が行う。エリアA〜エリアDの書替を行う順番に関しては予め決めおけば良いため、書替時に次に書替を行うのがエリアA〜エリアDのいずれになるかに関してのみカウンタのカウント値に基づいて決めることになる。
具体的には、書替時にはエリアA〜Dのカウンタのカウント値を確認し、エリアA〜Dのうちでカウント値が低いものの中で最も書替の順番が早いエリアで次の書替えを行う。例えば、初めての書替時にエリアAで書替が行われたとする。この場合、エリアAのカウンタのカウント値が1にインクリメントされ、エリアB〜Dのカウンタのカウント値はまだ0のままとなる。次に、2回目の書替時には、エリアA〜Dのカウンタのカウント値を確認し、エリアA〜Dのうちでカウント値が低いエリアB〜Dの中から最も書替の順番が早いエリアBが選択され、書替が行われる。そして、エリアBのカウンタのカウント値が1にインクリメントされる。同様の手法により、3回目の書替時にはエリアCで書替が行われ、4回目の書替時にはエリアDで書替が行われる。
この後、5回目の書替時には、エリアA〜Dのカウンタのカウント値がすべて1になっているため、今度はエリアA〜Dの中から最も書替の順番が早いエリアAが選択され、書替が行われると共に、エリアAのカウンタのカウント値が2にインクリメントされる。このようにして、各エリアA〜Dに順番に書替が繰り返されていき、エリアA〜Dのカウンタが書替可能回数である25000回に到達するまで書替を行うことが可能となり、エリアA〜Dの4つのエリアでそれぞれ書替を行うことで合計10万回の書替が行える。
このような手法により、書替毎に書替するエリアを切替えることができる。このため、エリアA〜Dそれぞれにデータを保持することができ、最も新しく選択されたエリアに最新データへの書替を行いつつ、他の3つのエリアにそれぞれ三回の書替分古い過去のデータを保持させることが可能となる。
また、書替時には、各エリアA〜Dそれぞれでチェックサムを行う。すなわち、各エリアA〜Dに書込みが為されると、各ビットのデータの総和が求められ、その総和が予め決められたチェック用の数値と一致しているか、例えば総和の下2桁がチェック用の数値と一致しているかが判定され、一致していればデータ化けは発生していないと判定している。このように、チェックサムを行うことにより、データ化けを検出することが可能となり、データの信頼性を確保できる。
以上説明したように、本実施形態では、フラッシュメモリ13の書替エリアを複数に分割すると共に分割した複数のエリアA〜Dに対して順番に書替を行っていき、書替毎に書替するエリアを切替えるようにしている。このため、複数に分割された各エリアA〜Dそれぞれに対してデータを保持することができ、最も新しく選択されたエリアに最新データへの書替を行いつつ、他のエリアにそれぞれ過去のデータを保持させることが可能となる。
したがって、仮に最新データの書替を行っている最中に電源遮断などによってデータが破壊された場合にも、書替中のエリアと異なるエリアに過去のデータを保持することが可能となる。これにより、できるだけ新しいデータを保持できるメモリ13のデータ書替方法とすることが可能となる。
また、本実施形態では、書替時にチェックサムを行っているため、データ化けを検出することが可能となる。したがって、データが破壊された場合にも、できるだけ新しいデータを保持でき、かつ、データ化けが検出できるデータ書替方法とすることが可能となる。
さらに、本実施形態のように書替中にデータが破壊された場合にもできるだけ新しいデータを保持できることからエンジンECU1内部構成も簡略化が可能となる。これについて、図3を参照して説明する。
図3は、従来のエンジンECU100のブロック構成等を示した模式図である。この図に示されるように、従来のエンジンECU100は、電源回路101、マイコン102に加えてシャットオフ回路103が備えられた構成とされている。そして、シャットオフ回路103にバッテリ104からの電圧BATTが直接入力されるようにすることで、書替時の電源遮断によるデータの破壊が防止できるようになっている。
具体的には、イグニッションスイッチ105がオンされてバッテリ電圧VBがエンジンECU100に印加されると、バッテリ電圧VBの印加に伴って電源回路10がVcc電源106をオンさせ、電圧Vccがマイコン102に印加されることでマイコン102が起動する。これにより、データの書替が行われる。また、このときマイコン102がシャットオフ回路103をオン側に保持するように指示する。
そして、データの書替が行われているときにイグニッションスイッチ105がオフされた場合など、電源遮断が生じたときには、電源回路101へのバッテリ電圧VBの印加が遮断されるが、シャットオフ回路103がオン側に保持されているため、バッテリ104から直接印加される電圧BATTを電源回路101へ印加し、Vcc電源106の電圧Vccがオフになることが防止される。これにより、書替完了まで電圧Vccのオンが維持され、データが破壊されること無く書替を行うことが可能となる。
これに対し、本実施形態のようなデータ書替方法を採用する場合、仮に書替時に電源遮断が生じて最新のデータが破壊されたとしても、その直前に書き込まれたデータを含めた過去のデータが書替に選択されているエリアと異なるエリアに保持されている。このため、図1に示したように、シャットオフ回路等を省略しても問題が生じない。これにより、エンジンECU1やエンジンECU1に繋げる配線構造の簡略化を図ることが可能となる。
(他の実施形態)
上記実施形態では、例えば書替エリアを4つに分割する場合について説明したが、4つ未満もしくは4つよりも多数に書替エリアを分割するようにしても構わない。
上記実施形態では、例えば書替エリアを4つに分割する場合について説明したが、4つ未満もしくは4つよりも多数に書替エリアを分割するようにしても構わない。
また、上記実施形態では、各エリアの書替ブロックを消去単位(例えば256バイト)とする場合を例に挙げたが、これはフラッシュメモリの製造メーカが規定する最小消去単位の整数倍を意味しており、最小消去単位の整数倍であればどのような値であっても構わない。
更には、書替順番をカウンターで判別する方法以外に、チップ内で決まるフラッシュROMアドレスで判別し順次書き替えを実施してもよい。
1…エンジンECU、2…バッテリ、3…イグニッションスイッチ、10…電源回路、11…Vcc電源、12…マイコン、13…フラッシュメモリ、13…メモリ、A〜D…フラッシュメモリの分割エリア、A−1〜A−4…書替ブロック
Claims (4)
- マイコン(12)に備えられるメモリ(13)のデータの書替を行うメモリのデータ書替方法であって、
前記メモリ(13)の書替エリアを複数のエリア(A〜D)に分割すると共に、該複数のエリア(A〜D)で書替を行う順番を予め決めておき、1回のデータの書替毎に前記順番に従って前記複数のエリア(A〜D)に対する書替を行い、前記複数のエリア(A〜D)すべてにデータの書替が行われると、再び前記順番の最初のエリア(A)から消去・書替を行うことを特徴とするメモリのデータ書替方法。 - 前記複数のエリア(A〜D)それぞれにデータの書替回数をカウントするカウンタを備え、前記複数のエリア(A〜D)に備えられた各カウンタのカウント値が小さいもののうち、最も前記順番が早いエリアを次に書替を行うエリアとして選択することを特徴とする請求項1に記載のメモリのデータ書替方法。
- 前記複数のエリア(A〜D)は更に最小消去単位の整数倍のビット数とされた複数の書替ブロックに分割され、書替時には、前記複数の書替ブロックに対して順番に消去を行った後、当該順番とは逆の順番で前記複数の書替ブロックに対して書き込みを行うことによりデータの書替を行うことを特徴とする請求項1または2に記載のメモリのデータ書替方法。
- 前記複数のエリア(A〜D)に対してデータの書替を行ったときに、前記複数のエリア(A〜D)それぞれでチェックサムを行うことを特徴とする請求項1ないし3のいずれか1つに記載のメモリのデータ書替方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007287396A JP2009116521A (ja) | 2007-11-05 | 2007-11-05 | メモリのデータ書替方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007287396A JP2009116521A (ja) | 2007-11-05 | 2007-11-05 | メモリのデータ書替方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009116521A true JP2009116521A (ja) | 2009-05-28 |
Family
ID=40783623
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007287396A Withdrawn JP2009116521A (ja) | 2007-11-05 | 2007-11-05 | メモリのデータ書替方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009116521A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012226674A (ja) * | 2011-04-22 | 2012-11-15 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置 |
JP2014075078A (ja) * | 2012-10-05 | 2014-04-24 | Denso Corp | 電子制御装置 |
JP2014102792A (ja) * | 2012-11-22 | 2014-06-05 | Dainippon Printing Co Ltd | Icカード、データ読み書き方法、及びデータ読み書きプログラム |
JP2015225565A (ja) * | 2014-05-29 | 2015-12-14 | 株式会社アドヴィックス | 電子制御装置 |
-
2007
- 2007-11-05 JP JP2007287396A patent/JP2009116521A/ja not_active Withdrawn
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012226674A (ja) * | 2011-04-22 | 2012-11-15 | Hitachi Automotive Systems Ltd | 自動車用電子制御装置 |
JP2014075078A (ja) * | 2012-10-05 | 2014-04-24 | Denso Corp | 電子制御装置 |
JP2014102792A (ja) * | 2012-11-22 | 2014-06-05 | Dainippon Printing Co Ltd | Icカード、データ読み書き方法、及びデータ読み書きプログラム |
JP2015225565A (ja) * | 2014-05-29 | 2015-12-14 | 株式会社アドヴィックス | 電子制御装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100377301B1 (ko) | 비휘발성 메모리에 데이터를 저장하는 방법 | |
JP2011129192A (ja) | 半導体記憶装置 | |
JP2002351685A (ja) | 不揮発性メモリのデータ更新方法及び制御装置 | |
JP2014035730A (ja) | 車両用制御装置 | |
JP2009120054A (ja) | 車両用記憶管理装置 | |
US20170148521A1 (en) | Read and write control circuit and method of flash chip, and amoled application circuit | |
JP5045584B2 (ja) | プログラム書き換え装置 | |
JP2009116521A (ja) | メモリのデータ書替方法 | |
JP4880105B2 (ja) | 制御装置のメモリ機能保護方法及び制御装置 | |
WO2014147906A1 (ja) | データ記憶装置、データの記憶方法および車載用制御装置 | |
JP6060892B2 (ja) | 車載データ記憶装置及びデータ記憶方法 | |
JP5915490B2 (ja) | 電子制御装置 | |
JP3981268B2 (ja) | 不揮発性メモリ及びそのデータ更新方法 | |
JP4734582B2 (ja) | 不揮発性メモリのデータ更新方法、制御装置、及びデータ更新プログラム | |
JP2012118904A (ja) | 情報処理装置 | |
JP2007320456A (ja) | 車載用電子機器制御装置 | |
JP2019008693A (ja) | 自動車用制御装置 | |
JP2006277615A (ja) | 自動車用制御ユニット | |
JP2008225922A (ja) | 不揮発性記憶装置 | |
JP2018073161A (ja) | 電子制御装置 | |
JP2008077135A (ja) | 演算処理装置、及びカウンタ値演算方法 | |
JP4031693B2 (ja) | 不揮発性メモリおよびこれを有したデータ記憶装置 | |
JP2019045952A (ja) | 車両情報記憶装置 | |
JP4239754B2 (ja) | 不揮発メモリシステム | |
JP2007041798A (ja) | 情報処理装置及び情報処理装置のメモリ書き換え方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Withdrawal of application because of no request for examination |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20110201 |