JP6028670B2 - データ記憶装置 - Google Patents

データ記憶装置 Download PDF

Info

Publication number
JP6028670B2
JP6028670B2 JP2013089542A JP2013089542A JP6028670B2 JP 6028670 B2 JP6028670 B2 JP 6028670B2 JP 2013089542 A JP2013089542 A JP 2013089542A JP 2013089542 A JP2013089542 A JP 2013089542A JP 6028670 B2 JP6028670 B2 JP 6028670B2
Authority
JP
Japan
Prior art keywords
data
update
identifier
memory
update data
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.)
Active
Application number
JP2013089542A
Other languages
English (en)
Other versions
JP2014215628A (ja
Inventor
常雄 山本
常雄 山本
暢矢 植松
暢矢 植松
健史 淺井
健史 淺井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2013089542A priority Critical patent/JP6028670B2/ja
Publication of JP2014215628A publication Critical patent/JP2014215628A/ja
Application granted granted Critical
Publication of JP6028670B2 publication Critical patent/JP6028670B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Microelectronics & Electronic Packaging (AREA)

Description

本発明は、各種のデータを記憶するデータ記憶装置に関する。
従来、例えば車載用データ記憶装置では、一般的に、データを蓄積するメモリとして、これらデータについて書き換え可能で電源を供給しなくても記憶を保持でき、且つ、磁気ヘッドや位置決め用のアクチュエータといったメカニックな機構をもたないことで衝撃や振動に強く、小型、軽量、高速起動、低消費電力などハードディスクドライブ(HDD)よりも多くの長所をもつフラッシュメモリが用いられる。
但し、フラッシュメモリでは、データの消去回数の上限値が仕様上定められていることから、データの消去回数をなるべく減らすために、複数のメモリセルからなる「ブロック」という単位で、一括してデータを消去してからでないと、同じブロックに新たなデータを書き込むことができないようになっている。
このため、通常、車載用データ記憶装置では、フラッシュメモリにおける複数のブロックのうち、あるブロック内の先頭から最後尾まで更新性を有する複数種のデータ(更新データ)を全て書き込むと、そのブロックにおいてデータの種類毎に最新の更新データを次のブロックに書き換えておくことで、例えば空き容量を確保する場合などに、書き込みの新しい全種の更新データが消去されないようにしている(例えば、特許文献1参照)。
特開2012−118892号公報
しかし、従来の車載用データ記憶装置では、更新データをそのままの形態でブロック内に順次書き込むため、一回の書き込みに対するブロック内の使用領域が比較的大きいことにより、その書き込み時間が長くなったり、データの消去回数が多くなること伴ってフラッシュメモリの低寿命化に繋がっていたりする可能性があった。
本発明は、上記課題を解決するためになされたものであり、更新データの書き込み時間を短縮するとともに、メモリの低寿命化を抑制可能なデータ記憶装置の提供を目的とする。
上記目的を達成するためになされた本発明は、他のデータと区別するための識別子を含む更新データを取得するデータ取得手段と、不揮発性メモリと、データ取得手段によって取得した更新データを不揮発性メモリのブロック内に順次書き込み、その書き込みの古いデータをブロック単位で消去しつつ、その書き込みの新しいデータを優先的に保持する書き込み制御を行うメモリ制御手段とを備えるデータ記憶装置である。
なお、不揮発性メモリは、データを複数書き込むことが可能なブロック単位でこれらデータを消去する必要があるメモリ(例えば、フラッシュメモリ)であって、複数のブロックを有するものである。また、更新データ(更新性を有するデータ)のうち識別子を除くデータ部は、変更頻度が比較的少ない上位データ部と、変更頻度が比較的多い下位データ部とによって構成される。つまり、更新データにおいては、ほとんど変更されないデータ部としての上位データ部と、頻度よく変更されるデータ部としての下位データ部とが存在している。
ここで、本発明では、上記識別子に対応づけられた上位データ部を上位更新データ、上記識別子に対応づけられた下位データ部を下位更新データとし、メモリ制御手段が、書き込み制御を行う際に、上位更新データと下位更新データとを、不揮発性メモリにおいて各々予め割り当てられた異なるブロック内に書き込むように構成し、且つ、上位更新データについて同一のデータがブロック内に保持されている場合には、その書き込みを行わないように構成した。
このような構成では、データ記憶装置が更新データを取得すると、不揮発性メモリにおいて、例えば下位更新データはブロック内に順次書き込まれ得るものの、上位更新データは既に同じ内容のものがブロック内に存在しない場合に限って書き込まれることになるため、上位更新データの書き込み機会が減少していくことになる。
そして、書き込み制御において例えば下位更新データを書き込むだけで済む割合が増加すると、更新データをそのままの形態でブロック内に順次書き込む場合と比較して、一回の書き込みに対するブロック内の使用領域を小さくすることが可能となるため、その書き込み時間を短くすることができる。また、一回の書き込みに対するブロック内の使用領域が小さくなることに伴って、不揮発性メモリにおける書き込み数を増大させることが可能となるため、データをブロック単位で消去する機会を減らすことができる。
したがって、本発明によれば、更新データの書き込み時間を短縮するとともに、メモリの低寿命化を抑制することができる。
なお、更新データのデータ部を構成する上位データ部および下位データ部は、予め静的に区分されていてもよいし、データ記憶装置が動的に区分するようにしてもよい。いずれの場合であっても、識別子毎にデータ部の構成として上位データ部と下位データ部との区分を示す構成テーブルを記憶する記憶手段を備え、メモリ制御手段が、書き込み制御を行う際に、データ取得手段によって取得した更新データに含まれている識別子に基づいて、記憶手段に記憶されている構成テーブルを参照し、その更新データを構成する上位データ部および下位データ部を特定するとよい。
このように構成することで、更新データに上位データ部および下位データ部を区分するための特別な情報を付加することなく、上位データ部および下位データ部を特定することが可能となるため、本発明を構成する各手段を既存のデータ記憶装置に比較的簡易に組み込むことができる。
また、動的に上位データ部および下位データ部を区分する場合、本発明では、テーブル更新手段が、データ取得手段によって取得した更新データについて、前回取得分と今回取得分とを比較し、データ部のうち、変更のある部分を下位データ部、変更のない部分を上位データ部として、構成テーブルを更新するとよい。
このような構成では、更新データを取得する毎に上位データ部および下位データ部の区分を動的に学習していくことになるため、予めこれらの区分を静的に決めておく必要がなくなり、これにより、装置設計にかかる従事者の作業負担を軽減することができる。
なお、本発明では、上位更新データと下位更新データとが個別に分かれて各々異なるブロック内に格納されることになるが、上位更新データと下位更新データとの双方が上記識別子に対応づけられているため、更新データを読み出す際には、この識別子を手掛かりにして上位更新データおよび下位更新データを読み出し、上位データ部と下位データ部とを結合することができる。
具体的には、本発明において、上位更新データは、識別子と上位データ部とによって構成され、下位更新データは、識別子と下位データ部とによって構成され、これら上位更新データおよび下位更新データが不揮発性メモリにおいて各々異なるブロック内に書き込まれる態様であってもよい。あるいは、上位更新データは、上位データ部そのものであり、下位更新データは、下位データ部そのものであってもよい。
特に後者の場合、本発明では、上記識別子毎に不揮発性メモリにおける上位更新データ(つまり、上位データ部)および下位更新データ(つまり、下位データ部)の格納場所を示す管理テーブルを記憶する記憶手段を備え、メモリ制御手段が、書き込み制御を行う際に、データ取得手段によって取得した更新データに含まれている識別子にこれらの格納場所を対応づけることにより、記憶手段に記憶されている管理テーブルを更新するとよい。
このような構成では、更新データを読み出す際に、その更新データに対応する識別子に基づいて管理テーブルを参照することで、その更新データに対応する上位データ部および下位データ部を容易に読み出すことが可能となるため、データの読み出しにかかる処理負担を軽減するとともに、読み出し時間を短縮することができ、ひいては好適に上位データ部と下位データ部とを結合することができる。
また、本発明において、不揮発性メモリは、例えばフラッシュメモリである場合、ソース線とビット線の間に複数のメモリセルが直列に接続されてなる周知のNAND型フラッシュメモリでもよいが、ソース線とビット線の間に1個のメモリセルが接続されてなる周知のNOR型フラッシュメモリであることが好ましい。
このようなNOR型フラッシュメモリであれば、NAND型フラッシュメモリよりも少ないビット単位での書き込みが可能となるため、データ量にハード構成を合わせこむ必要性を軽減することができ、ひいてはハード構成の自由度を向上させることができる。なお、NAND型フラッシュメモリであれば、複数のメモリセルからなるページ単位でデータを書き込む必要があるため、上位更新データや下位更新データを領域内に効率よくページ単位で書き込めるようにハード構成を予め合わせこむ必要性が大きくなることを付言しておく。
ところで、本発明では、更新データにおいて、下位データ部が、上位データ部と比較してそのデータ量が小さい方が、更新データの書き込み時間をより短縮することができ、書き込み制御において例えば下位更新データを書き込むだけでよくなる割合が増加することに伴って、メモリの低寿命化をより抑制することができる。
また、本発明のデータ記憶装置は、車両に設けられた検出装置から入力される検出データに基づいて、予め割り当てられた制御対象機器を制御する車両制御手段を備える電子制御ユニットであり、データ取得手段が、検出データ、または車両制御手段が制御対象機器を制御するために生成した指令データを、更新データとして取得する構成でもよいし、車載ネットワークを介して他の電子制御ユニットから受信した制御データを、更新データとして取得する構成でもよい。
これらのような構成によれば、検出データや指令データといった車両を制御するための制御データを不揮発性メモリに記憶する際に、このようなデータの書き込み時間を短縮することができ、メモリの低寿命化をより抑制することができる。
データ記憶装置の構成を例示するブロック図である。 構成テーブルおよび管理テーブルの構成を例示する説明図である。 不揮発性メモリの構成を例示するイメージ図である。 メモリコントローラ19が行う書込制御処理の内容を示す第1のフローチャートである。 メモリコントローラ19が行う書込制御処理の内容を示す第2のフローチャートである。 上位データ部と下位データ部との区分を例示する説明図である。 メモリコントローラ19による書き込み制御を説明するためのイメージ図である。 メモリコントローラ19が行う読出制御処理の内容を示す第2のフローチャートである。
以下に、本発明の実施形態であるデータ記憶装置としての電子制御ユニット(以下「ECU」)について図面と共に説明する。なお、本実施形態のECU10は、車両に搭載されるECUであり、他のECUと通信バス5を介して互いに自車両を制御するためのデータ(制御データ)を送受信することで、他のECUと制御データを共有するように構成されるものである。
<ECUの構成>
図1に示すように、本実施形態のECU10は、通信バス5への制御データの送出、通信バス5から自ECUにとって必要な制御データの取込を行うトランシーバ11と、所定のプロトコルに従って通信バス5を介した通信を制御する通信コントローラ12と、通信コントローラ12を制御して他のECUとの通信を行うことにより、他のECUと連動して、自ECUに割り当てられた各種機能を実現するための各種処理を実行するマイクロコンピュータ(以下「マイコン」)13と、自車両に搭載されたバッテリ7からの入力電圧を内部電圧に変換し、各部11〜13への電源供給を行う電源回路14とを備えている。
マイコン13は、各種のプログラムが格納されたROM15と、ROM15に記憶されているプログラムに基づいて各種処理を実行するCPU16と、各種処理実行時のワークメモリとなるRAM17と、後述する更新データを記憶するためのフラッシュメモリ18と、CPU16の指令に従ってフラッシュメモリ18に対する更新データの読み書きを行うメモリコントローラ19とを備えている。
また、マイコン13は、車両に設けられた各種センサやスイッチ類といった検出装置(非図示)に接続されており、CPU16が、これらの検出装置から入力されるデータ(以下「検出データ」という)に基づいて、自ECUに割り当てられた制御対象機器を制御する(例えばアクチュエータやモータ等を作動させる)ように構成されている。
ROM15には、CPU16がアクセス可能に接続されており、制御対象機器を制御するための各種アプリケーションソフト(以下「上位アプリ」という)や、メモリコントローラ19に出力する各種指令を生成するためのドライバソフトウェア(以下「下位ソフト」という)が記憶されている。
そして、CPU16は、ROM15に記憶されている上位アプリに基づき、制御対象機器を制御するためのデータ(以下「指令データ」)を生成するとともに、この指令データを制御対象機器に出力することにより、制御対象機器を作動させるようになっている。
また、CPU16は、ROM15に記憶されている上位アプリに基づき、上記指令データや検出データといった各種データ(以下「制御データ」という)を、通信コントローラ12を介して通信バス5に定期的に送出する。そして、これらの制御データ(他のECUから通信コントローラ12を介して受信した制御データを含む)のうち、必要なデータを更新データとしてフラッシュメモリ18に記憶させる書込指令をメモリコントローラ19に出力する。詳細には、CPU16は、ROM15に記憶されている下位ソフトに基づき、自ECUや他のECUによって定期的に生成されて更新性を有するデータ(更新データ)をRAM17に一時記憶させ、RAM17においてこの更新データが格納されたアドレスを示す情報(以下「更新データ情報」という)を含む書込指令をメモリコントローラ19に出力する。
また、CPU16は、上位アプリに基づく各種処理の実行時に、必要に応じて、フラッシュメモリ18に格納されている更新データのうち、最新の更新データ(以下「有効データ」という)を読み出すための読出指令をメモリコントローラ19に出力する。詳細には、CPU16は、ROM15に記憶されている下位ソフトに基づき、必要な更新データを特定するための情報(以下「識別子」という)を含む読出指令をメモリコントローラ19に出力する。
なお、識別子は、他の更新データと区別するためにユニークに割り当てられたものであり、それ自体に更新データの種類を示す情報(以下「データ種類情報」という)は含まれていないものとする。このため、ROM15に記憶されている下位ソフトには、識別子とデータ種類情報とを対応づけたテーブルが記述されており、CPU16は、このテーブルを参照して必要な更新データに対応する識別子を特定するようになっている。
また、識別子は、更新データにも含まれている。このため、メモリコントローラ19は、CPU16からの読出指令に含まれている識別子に基づいて、CPU16が必要な更新データをフラッシュメモリ18から読み出して、CPU16に供給することが可能になっている。
ここで、更新データは、前述のように、自ECUや他のECUによって定期的に生成されて更新性を有するデータであるが、実際にはデータ種類情報を含むほとんど変更されないデータ、換言すれば、変更頻度が比較的少ないデータ(以下「上位データ部」という)と、制御データに含まれる制御値のようにほぼ毎回変更されるデータ、換言すれば、変更頻度が比較的多いデータ(以下「下位データ部」という)とを有している。つまり、更新データは、上位データと下位データ部とからなるデータ部、および上記識別子によって構成されている。
このうち、上位データ部は、例えば、ECU10が制御対象機器として車両ドアの開閉制御(ロック/アンロック制御を含む)を行うECUである場合、更新データとしての検出データが、例えば車両ドアの開閉状態を示すセンサから入力されたデータであるのか、ロック/アンロックの状態を検出するセンサから入力されたデータであるのか等を示すことになる。
また例えば、上位データ部は、ECU10が制御対象機器としてエンジンの制御を行うECUである場合、更新データとしての指令データが、エンジンにおけるスロットル開度を調整する制御に関するデータであるのか、ガソリン等の噴出量やタイミングを調整する制御に関するデータであるのか、混合気に点火するタイミングを調整する制御に関するデータであるのか等を示すことになる。
また例えば、上位データ部は、更新データとしての指令データが、CPU16によってイグニッション回数(または車両キーの操作回数)を算出するためにカウンタ(非図示)をインクリメント/デクリメントしたことを示すデータであるのか、CPU16によってドアの開閉回数を算出するためにカウンタをインクリメント/デクリメントしたことを示すデータであるのか等も示すことになる。
このように、上位データ部が冗長なデータになりがちであるのに対し、下位データ部は、例えば、カウンタ値のようにインクリメント/デクリメントのいずれか一方を示すデータであったり、各種の指令値や検出値(つまり制御値)だけを示すデータであったりするため、上位データ部と比較してそのデータ量が極めて小さいものとなる。この点に着目し、後述するように、メモリコントローラ19は、更新データをフラッシュメモリ18に格納する際に、上位データ部と下位データ部とを分けて書き込み、上位データ部については同一のデータがフラッシュメモリ18に既に記憶されている場合には、その書き込みを行わず、下位データ部だけを書き込むことにより、フラッシュメモリ18の使用領域を節約するようにしている。
RAM17には、CPU16およびメモリコントローラ19がアクセス可能に接続されており、CPU16が各種処理実行時のワークメモリとして使用する他、メモリコントローラ19がフラッシュメモリ18の読み書き時にワークメモリとして使用する領域として、構成テーブル21および管理テーブル22が記憶されるように構成されている。
図2に示すように、構成テーブル21は、各更新データに含まれている識別子毎に、その更新データを構成する上位データ部と下位データ部とからなるデータ部の長さを示すデータ長と、そのデータ部において上位データ部と下位データ部とが切り分けられる部分を下位データ部の最後尾から数えたデータ量を示す切り分けバイト数とによって、上位データ部と下位データ部と区分を示す情報(以下「データ部区分情報」という)が記述されるようになっている。また、構成テーブル21には、各更新データに含まれている識別子毎に、メモリコントローラ19によってデータ部区分情報が更新された回数(更新回数)が記述されるようになっている。
管理テーブル22は、各更新データに含まれている識別子毎に、その更新データを構成する上位データ部と下位データ部がフラッシュメモリ18において各々格納された記憶先(上位記憶先、下位記憶先)を示す情報(以下「データ部記憶先情報」という)が記述されるようになっている。なお、後述するように、上位データ部と下位データ部とは、フラッシュメモリ18において各々異なるブロックに格納されるようになっており、このデータ部記憶先情報は、各ブロックにおいて識別子毎に最も直近に格納された新しいデータ(以下「有効データ」という)の記憶先を示すことになる。
<フラッシュメモリの構成>
次に、フラッシュメモリ18の構成について説明する。
フラッシュメモリ18は、更新データについて書き換え可能で電源を供給しなくても記憶を保持できる不揮発性メモリであり、メモリコントローラ19による有効データの読み出しや、各ブロックに格納された所定量の比較的古いデータ(以下「無効データ」という)の記憶を保持するために用いられる。なお、無効データは、例えば車両の故障診断機能によって車両の不具合を検出したとき等に、ダイアグツール(非図示)によってその不具合の箇所や原因を特定するための解析用データとして使用されることもある。
また、フラッシュメモリ18は、1バイト単位の書き換え(消去と書き込み)ができず、その消去回数の上限値が仕様上定められている都合上、データの消去回数をなるべく減らすために、データを複数書き込むことが可能なブロック単位でデータを消去する必要のあるメモリである。本実施形態では、上記フラッシュメモリ18として、図3(a)に示すように、複数のメモリセル31によって表されるアドレス32に更新データを書き込み、複数のアドレス32を有するブロック33単位で更新データを消去する必要のあるNOR型フラッシュメモリが採用されている。
また、フラッシュメモリ18は、図3(b)に示すように、複数のブロック33を有しており、更新データのうち下位データ部を書き込むために多くのブロック33が使用され、残りのブロック33が上位データ部を書き込むために使用されるようになっている。なお、以下では、上位データ部が書き込まれるブロック33を上位用ブロック33a、下位データ部が書き込まれるブロック33を下位用ブロック33bと称する。
<メモリコントローラの制御>
次に、メモリコントローラ19が行う書込制御処理について、図4および図5のフローチャートに沿って説明する。
図4に示すように、本処理の前段処理が開始されると、まず、S110では、メモリコントローラ19は、CPU16から更新データ情報を含む書込指令を入力したか否かを判断し、ここで肯定判断した場合には、S120に移行し、否定判断した場合には、このような書込指令の入力がなされるまで待機する。
S120では、S110で受信した書込指令に含まれている更新データ情報に基づき、フラッシュメモリ18への書き込み対象となる更新データ(以下「対象データ」という)を、RAM17から読み出すことで取得する。
続くS130では、S120で読み出した対象データに含まれている識別子(以下「対象識別子」という)に基づいて、RAM17に記憶されている構成テーブル21を参照し、この対象識別子に対応するデータ部区分情報(上位データ部と下位データ部との区分を示す情報)が存在するか否かを判断して、ここで肯定判断した場合には、S140に移行し、否定判断した場合には、S160に移行する。
S140では、RAM17に記憶されている構成テーブル21を参照し、S130におけるデータ部区分情報の更新回数が所定の閾値回数以上であるか否かを判断して、ここで肯定判断した場合には、S150に移行し、否定判断した場合には、S160に移行する。なお、ここでの閾値回数は、S120で読み出した対象データについて、上位データ部と下位データ部との区分を動的に設定する(学習する)ために必要な回数として予め設定されたものであり、S130におけるデータ部区分情報の更新回数が閾値回数以上であれば、以降、その対象データに関してはデータ部区分情報を用いて上位データ部と下位データ部とを特定するようにしている。
S150では、RAM17に記憶されている構成テーブル21を参照し、S130におけるデータ部区分情報に基づいて、対象データを構成する上位データ部と下位データ部とを特定し、S210に移行する。
一方、S160では、RAM17に記憶されている管理テーブル22を参照し、S130における対象識別子に対応するデータ部記憶先情報が存在するか否かを判断して、ここで肯定判断した場合には、S170に移行し、否定判断した場合には、S200に移行する。
S170では、RAM17に記憶されている管理テーブル22を参照し、S160におけるデータ部記憶先情報に基づいて、上位用ブロック33aから対象識別子に対応する有効データ(上位データ部)を読み出し、この有効データと、S120で読み出した対象データとを比較する。
続くS180では、S170における有効データのうち、S120で読み出した対象データと同じ部分(即ち、変更のない部分)を、この対象データを構成する上位データ部とし、S120で読み出した対象データと異なる部分(即ち、変更のある部分)とこれに続くデータ部の残りを、この対象データを構成する下位データ部として特定する。
続くS190では、S180で特定した結果に基づいて、RAM17に記憶されている構成テーブル21のうち、S130における対象識別子に対応するデータ部区分情報を更新するとともに、その更新回数をインクリメントし、S210に移行する。
なお、S200では、S130における対象識別子に対応する無効データが、フラッシュメモリ18に格納されていないため、S120で読み出した対象データのうち識別子を除く全てのデータ部を上位データ部として特定し、S210に移行する。
このように、S130〜S200では、図6に示すように、S120で読み出した対象データのうち識別子を除くデータ部について、前回取得分と今回取得分とを比較し、このデータ部について変更のない部分を下位データ部、変更のある部分を上位データ部として特定する処理を、所定回数(閾値回数)繰り返すことにより、識別子毎に上位データ部と下位データ部とを動的に区分する(学習する)ようになっている。
次に、図5に示すように、本処理の後段処理が開始されると、S210では、S150またはS190で特定した下位データ部を下位用ブロック33bに書き込む。このとき、図7(a)に示すように、下位用ブロック33bにおける先頭のアドレス32から順に下位データ部を書き込むに際して、複数の下位用ブロック33bのうち、その書き込み対象となる下位用ブロック33b(以下「有効ブロック」という)に、下位データ部を書き込むための空きのアドレス32が存在するか否かを判断する。そして、空きのアドレス32が存在する場合には、本処理を繰り返すことで、その有効ブロックにおいて、先頭のアドレス32から最後尾のアドレス32まで順に下位データ部が書き込まれることになる。一方、空きのアドレス32が存在しない場合には、有効ブロックが最後尾のアドレス32まで下位データ部が書き込まれているため、予め設定された順における次の下位用ブロック33bを次の有効ブロックとして設定し、図7(b)に示すように、識別子毎に最新のデータを有効データとして抽出し、これら抽出した有効データを次の有効ブロックの先頭から順に書き込むことにより、有効データの書き換えを行う。なお、全ての下位用ブロック33bに下位データ部が書き込まれると、これらの下位用ブロック33bのうち、最も書き込みの古い下位データ部が格納されている下位用ブロック33bに含まれている全データをブロック単位で消去する。このように、S210では、必要に応じて、有効データの書き換えやブロック単位でのデータ消去を行うようになっている。
続くS220では、S150、S190またはS200で特定した上位データ部について、同一のデータが上位用ブロック33a内に保持されているか否かを判断し、ここで肯定判断した場合には、S230をスキップしてS240に移行し、肯定判断した場合には、S230に移行する。
S230では、S150、S190またはS200で特定した上位データ部を上位用ブロック33aに書き込み、S240に移行する。なお、ここでは、前述の下位データ部を下位用ブロック33bに書き込むときと同様、必要に応じて、上位用ブロック33aに関する有効データの書き換えやブロック単位でのデータ消去を行うようになっている。
S240では、S230における書き込みが行われた場合に、上位用ブロック33aにおける上位データ部(対象データを構成する上位データ部)の格納場所を示すアドレス32を、S130における対象識別子に対応づけることにより、管理テーブル22においてその対象識別子に対応するデータ部記憶先情報を更新する。
また、S250では、S210における書き込みが行われた場合に、下位用ブロック33bにおける下位データ部(対象データを構成する下位データ部)の格納場所を示すアドレス32を、S130における対象識別子に対応づけることにより、管理テーブル22においてその対象識別子に対応するデータ部記憶先情報を更新し、S110に戻る。
なお、メモリコントローラ19が行う読出制御処理では、図8に示すように、CPU16から識別子を含む読出指令を入力したか否かを判断し(S310)、ここで肯定判断した場合には、S320に移行し、否定判断した場合には、このような書込指令の入力がなされるまで待機する。
S320では、S110で受信した読出指令に含まれている識別子に基づき、RAM17に記憶されている管理テーブル22を参照し、その識別子に対応するデータ部記憶先情報を読み出す。
続くS330では、S320で読み出したデータ部記憶先情報に基づいて、上位用ブロック33aから有効データを構成する上位データ部を読み出す。
また、続くS340では、S320で読み出したデータ部記憶先情報に基づいて、下位用ブロック33bから有効データを構成する下位データ部を読み出す。
そして、続くS350では、S330で読み出した上位データ部と、S340で読み出した下位データ部とを結合することにより、S110で受信した読出指令に含まれている識別子に対応するデータ部を生成し、この識別子とデータ部とからなる更新データをCPU16に出力し、S310に戻る。
<効果>
以上説明したように、本実施形態のECU10では、メモリコントローラ19が、フラッシュメモリ18に対する更新データの書き込み制御を行う際に、更新データを、識別子に対応づけた上位データ部と下位データ部とに分けて、各々予め割り当てられた異なるブロック33(上位用ブロック33a、下位用ブロック33b)に書き込むように構成し、さらに上位データ部については、同一のデータが上位用ブロック33a内に保持されている場合にその書き込みが行われなくなる、つまり書き込みが禁止されることになるように構成した。
このような構成では、メモリコントローラ19が更新データを取得すると、フラッシュメモリ18において、下位データ部は下位用ブロック33b内に順次書き込まれるものの、上位データ部は既に同じ内容のものが上位用ブロック33a内に存在しない場合に限って書き込まれることになるため、上位データ部の書き込み機会が減少していくことになる。そして、書き込み制御において下位データ部を書き込むだけで済む割合が増加すると、更新データをそのままの形態でブロック33内に順次書き込む場合と比較して、一回の書き込みに対するブロック33内の使用領域を小さくすることが可能となるため、その書き込み時間を短くすることができる。また、一回の書き込みに対するブロック33内の使用領域が小さくなることに伴って、フラッシュメモリ18における書き込み数を増大させることが可能となるため、古い更新データをブロック33単位で消去する機会を減らすことができる。よって、更新データの書き込み時間を短縮するとともに、フラッシュメモリ18の低寿命化を抑制することができる。
また、ECU10では、識別子毎に上位データ部と下位データ部との区分を示す情報(データ部区分情報)が記述された構成テーブル21をRAM17に記憶し、メモリコントローラ19が、書き込み制御を行う際に、更新データに含まれている識別子に基づいて構成テーブル21を参照し、その更新データを構成する上位データ部および下位データ部を特定している。このため、更新データにデータ部区分情報を付加することなく、上位データ部および下位データ部を特定することが可能となるため、所定のプロトコルを変更することなく、メモリコントローラ19による書き込み制御を比較的簡易にECU10に組み込むことができる。
また、ECU10では、メモリコントローラ19が、更新データについて前回取得分と今回取得分とを比較し、データ部のうち変更のある部分を下位データ部、変更のない部分を上位データ部として、構成テーブル21を動的に生成する。このため、識別子毎にデータ部区分情報を予め静的に決めておく必要がなくなり、ひいては装置設計にかかる従事者の作業負担を軽減することができる。
また、ECU10では、識別子毎にフラッシュメモリ18における上位データ部および下位データ部の格納場所を示す情報(データ部記憶先情報)が記述された管理テーブル22をRAM17に記憶し、メモリコントローラ19が、書き込み制御を行う際に、更新データに含まれている識別子にこれらの格納場所を対応づけることにより、管理テーブル22内のデータ部記憶先情報を更新する。このため、メモリコントローラ19が、読み出し制御を行う際に、識別子に基づいて管理テーブル22を参照することで、上位データ部および下位データ部を比較的容易に読み出すことが可能となり、読み出した上位データ部と下位データ部とを結合することにより、更新データを好適にCPU16に供給することができる。
また、ECU10では、フラッシュメモリ18としてNOR型フラッシュメモリを採用しているため、NAND型フラッシュメモリよりも少ないビット単位での書き込みが可能となることから、データ量にハード構成を合わせこむ必要性を軽減することができ、ひいてはハード構成の自由度を向上させることができる。
また、ECU10では、メモリコントローラ19が書き込み制御を行う際に、下位データ部が上位データ部と比較してそのデータ量が小さいため、更新データの書き込み時間をより短縮することができ、下位データ部を書き込むだけでよくなる割合が増加することに伴って、フラッシュメモリ18の低寿命化をより抑制することができる。
<発明との対応>
なお、本実施形態において、S110〜S120の処理を行うメモリコントローラ19がデータ取得手段、フラッシュメモリ18が不揮発性メモリ、S210〜S250の処理を行うメモリコントローラ19がメモリ制御手段、RAM17が記憶手段、S130〜S200の処理を行うメモリコントローラ19がテーブル更新手段、CPU16が車両制御手段の各一例にそれぞれ相当する。
<他の実施形態>
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において、様々な態様にて実施することが可能である。
例えば、上記実施形態の書込制御処理では、上位更新データとして、構成テーブル21において識別子に対応づけられた上位データ部を上位用ブロック33aに、下位更新データとして、構成テーブル21において識別子に対応づけられた下位データ部を下位用ブロック33bにそれぞれ書き込んでいるが、これに限定されるものではない。例えば、識別子が付加された上位データ部を上位更新データとしてもよいし、識別子が付加された下位データ部を下位更新データとしてもよい。
また、上記実施形態の書込制御処理では、有効データに対応するデータ部記憶先情報だけが保持されるように管理テーブル22を更新しているが、これに限定されるものではなく、有効データだけでなく無効データに対応するデータ部記憶先情報も保持されるように管理テーブル22を更新してもよい。
なお、上記実施形態のECU10では、構成テーブル21および管理テーブル22がRAM17に記憶されるように構成しているが、これに限定されるものではなく、例えばフラッシュメモリ18に記憶されるように構成してもよい。
また、上記実施形態のECU10では、書込制御処理によって構成テーブル21を動的に生成するように構成しているが、これに限定されるものではなく、例えば装置設計にかかる従事者によって識別子毎のデータ部区分情報を予め決めておき、このように静的に決められた構成テーブル21をROM15やフラッシュメモリ18が記憶している構成でもよい。なお、ECU10では、メモリコントローラ19がフラッシュメモリ18とRAM17だけでなく、ROM15にもアクセス可能に構成されてもよいし、これらのメモリ17〜19に各々アクセス可能に複数のメモリコントローラ19を備える構成でもよい。また、ECU10では、更新データがデータ部区分情報を含む構成である場合、構成テーブル21は、これらのメモリ17〜19に必ずしも記憶しなくてもよい。さらに、ECU10では、識別子が付加された上位データ部を上位更新データとし、識別子が付加された下位データ部を下位更新データとして、これら上位更新データおよび下位更新データがフラッシュメモリ18に記憶されている構成である場合、読出制御処理によってCPU16からの読出指令に含まれている識別子に基づき、上位更新データおよび下位更新データを読み出すことが可能であるため、管理テーブル22は、これらのメモリ17〜19に必ずしも記憶しなくてもよい。
また、上記実施形態のECU10では、不揮発性メモリとして、NOR型フラッシュメモリを採用しているが、これに限定されるものではなく、NAND型フラッシュメモリを採用してもよいし、更新データの消去回数についてフラッシュメモリと同様の制約を有する不揮発性メモリであれば、どのようなメモリであってもよい。
また、上記実施形態のECU10では、書込制御処理において、データ部区分情報の更新回数が閾値回数以上である場合に(S130;YES、S140;YES)、構成テーブル21のデータ部区分情報に基づいて対象データの上位データと下位データとを特定しているが(S150)、このような判断を行うことなく、S120で読み出した対象データのうち識別子を除くデータ部について、前回取得分と今回取得分とを比較し、このデータ部について変更のない部分を下位データ部、変更のある部分を上位データ部として特定してもよい(S160〜S180)。
また、上記実施形態のECU10では、書込制御処理において、どのような場合であっても下位データ部を下位用ブロックに書き込むようにしているが(S210)、フラッシュメモリ18に無効データを書き込む必要のない(少なくとも有効データを書き込めばよい)構成であれば、上位データ部と同様、同一のデータがフラッシュメモリ18に保持されている場合には、下位データ部の書き込みを行わないようにしてもよい。
また、上記実施形態では、データ記憶装置として、車両用のECU10を採り上げて説明したが、これに限定されるものではなく、車両以外であっても、更新データを記憶するための各種の用途に用いることができる。
10…ECU、13…マイコン、15…ROM、16…CPU、17…RAM、18…フラッシュメモリ、19…メモリコントローラ、21…構成テーブル、22…管理テーブル、31…メモリセル、32…アドレス、33…ブロック、33a…上位用ブロック、33b…下位用ブロック。

Claims (7)

  1. 他のデータと区別するための識別子を含む更新データを取得するデータ取得手段(S110〜S120)と、
    データを複数書き込むことが可能なブロック単位で該データを消去する必要があるメモリであって、複数のブロック(33)を有する不揮発性メモリ(18)と、
    前記データ取得手段によって取得した更新データを前記不揮発性メモリのブロック内に順次書き込み、該書き込みの古いデータをブロック単位で消去しつつ、該書き込みの新しいデータを優先的に保持する書き込み制御を行うメモリ制御手段(S210〜S250)と、
    を備え、
    前記更新データのうち前記識別子を除くデータ部は、変更頻度が比較的少ない上位データ部と、変更頻度が比較的多い下位データ部とによって構成されており、
    前記識別子に対応づけられた上位データ部を上位更新データ、前記識別子に対応づけられた下位データ部を下位更新データとし、
    前記メモリ制御手段は、前記書き込み制御を行う際に、前記上位更新データと前記下位更新データとを、前記不揮発性メモリにおいて各々予め割り当てられた異なるブロック内に書き込むこと、および前記上位更新データについて同一のデータがブロック内に保持されている場合には、該書き込みを行わないことを特徴とするデータ記憶装置。
  2. 前記識別子毎に前記データ部の構成として前記上位データ部と前記下位データ部との区分を示す構成テーブルを記憶する構成テーブル記憶手段(17)を備え、
    前記メモリ制御手段は、前記書き込み制御を行う際に、前記データ取得手段によって取得した更新データに含まれている識別子に基づいて、前記構成テーブル記憶手段に記憶されている構成テーブルを参照し、該更新データを構成する上位データ部および下位データ部を特定することを特徴とする請求項1に記載のデータ記憶装置。
  3. 前記データ取得手段によって取得した更新データについて、前回取得分と今回取得分とを比較し、前記データ部のうち変更のある部分を前記下位データ部、変更のない部分を前記上位データ部として、前記構成テーブルを更新するテーブル更新手段(S130〜S200)を備えることを特徴とする請求項2に記載のデータ記憶装置。
  4. 前記識別子毎に前記不揮発性メモリにおける前記上位更新データおよび前記下位更新データの格納場所を示す管理テーブルを記憶する管理テーブル記憶手段(17)を備え、
    前記メモリ制御手段は、前記書き込み制御を行う際に、前記データ取得手段によって取得した更新データに含まれている識別子に前記格納場所を対応づけることにより、前記管理テーブル記憶手段に記憶されている管理テーブルを更新することを特徴とする請求項1ないし請求項3のいずれか1項に記載のデータ記憶装置。
  5. 前記不揮発性メモリは、NOR型フラッシュメモリであることを特徴とする請求項1ないし請求項4のいずれか1項に記載のデータ記憶装置。
  6. 前記下位データ部は、前記上位データ部と比較してデータ量が小さいことを特徴とする請求項1ないし請求項5のいずれか1項に記載のデータ記憶装置。
  7. 車両に設けられた検出装置から入力される検出データに基づいて、予め割り当てられた制御対象機器を制御する車両制御手段(16)を備え、
    前記データ取得手段は、前記検出データ、および前記車両制御手段が前記制御対象機器を制御するために生成した指令データの少なくとも一方である制御データ、あるいは車載ネットワークを介して他の電子制御ユニットから受信した前記制御データを、前記更新データとして取得することを特徴とする請求項1ないし請求項6のいずれか1項に記載のデータ記憶装置。
JP2013089542A 2013-04-22 2013-04-22 データ記憶装置 Active JP6028670B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013089542A JP6028670B2 (ja) 2013-04-22 2013-04-22 データ記憶装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013089542A JP6028670B2 (ja) 2013-04-22 2013-04-22 データ記憶装置

Publications (2)

Publication Number Publication Date
JP2014215628A JP2014215628A (ja) 2014-11-17
JP6028670B2 true JP6028670B2 (ja) 2016-11-16

Family

ID=51941374

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013089542A Active JP6028670B2 (ja) 2013-04-22 2013-04-22 データ記憶装置

Country Status (1)

Country Link
JP (1) JP6028670B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6512091B2 (ja) * 2015-12-22 2019-05-15 株式会社デンソー 情報管理装置、情報管理方法及び情報管理プログラム
JP6751057B2 (ja) * 2017-07-04 2020-09-02 日立オートモティブシステムズ株式会社 電子制御システム
JP6999389B2 (ja) * 2017-12-06 2022-01-18 東芝ライフスタイル株式会社 家電機器
CN113126885A (zh) * 2020-01-14 2021-07-16 瑞昱半导体股份有限公司 数据写入方法、数据读取方法与存储装置
KR102520252B1 (ko) * 2022-11-30 2023-04-10 주식회사 시옷 대용량 차량 데이터 수집 및 보안 전송 처리 방법
KR102569284B1 (ko) * 2022-11-30 2023-08-22 주식회사 시옷 차량용 데이터 관리 시스템

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006236210A (ja) * 2005-02-28 2006-09-07 Oki Data Corp メモリ書込装置
JP4686358B2 (ja) * 2005-12-26 2011-05-25 ジヤトコ株式会社 フラッシュメモリを備えた制御装置
JP4533968B2 (ja) * 2007-12-28 2010-09-01 株式会社東芝 半導体記憶装置及びその制御方法、コントローラ、情報処理装置
JP4498426B2 (ja) * 2008-03-01 2010-07-07 株式会社東芝 メモリシステム
JP2009217701A (ja) * 2008-03-12 2009-09-24 Denso Corp 記憶保持装置及び記憶保持システム
JP4952741B2 (ja) * 2009-04-15 2012-06-13 Tdk株式会社 メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2012248094A (ja) * 2011-05-30 2012-12-13 Denso Corp 電子機器

Also Published As

Publication number Publication date
JP2014215628A (ja) 2014-11-17

Similar Documents

Publication Publication Date Title
JP6028670B2 (ja) データ記憶装置
CN113535081B (zh) 数据存储装置的装置维护
US9405675B1 (en) System and method for managing execution of internal commands and host commands in a solid-state memory
US7882300B2 (en) Apparatus and method for managing nonvolatile memory
JP4654750B2 (ja) 自動車用制御システム
KR101818578B1 (ko) 비휘발성 메모리를 갖는 시스템을 위한 동적 및 정적 데이터의 처리
JP4686358B2 (ja) フラッシュメモリを備えた制御装置
EP2605142A1 (en) LBA bitmap usage
US8327064B2 (en) Data processor with flash memory, and method for accessing flash memory
EP1909184A2 (en) Mapping information managing apparatus and method for non-volatile memory supporting different cell types
JP6139381B2 (ja) メモリシステムおよび方法
JP2010191782A (ja) メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP2009003880A (ja) 不揮発性メモリの制御装置及びその制御方法及び記憶装置
JP2008191930A (ja) 不揮発性半導体記憶装置およびその管理方法
JP2017142776A (ja) 寿命管理装置および寿命管理方法
US20140218767A1 (en) Image forming apparatus, memory management method for image forming apparatus, and program
JP4366420B2 (ja) メモリコントローラ、メモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法
JP4501159B2 (ja) 自動車用制御ユニット
US20180129415A1 (en) Memory system and method
JP2011198049A (ja) 記憶装置、電子制御ユニット、記憶方法
TW201310235A (zh) 記憶體裝置及其寫入方法
US20130036257A1 (en) Memory system which can avoid unavailability due to operation error by user
KR100703727B1 (ko) 비휘발성 메모리, 이를 위한 사상 제어 장치 및 방법
CN108255437B (zh) 数据贮存装置及方法
JP6832448B2 (ja) プログラムの更新方法および装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150904

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160728

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160809

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160920

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161003

R151 Written notification of patent or utility model registration

Ref document number: 6028670

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250