JP2011175361A - データ記憶装置及びデータ記憶方法 - Google Patents

データ記憶装置及びデータ記憶方法 Download PDF

Info

Publication number
JP2011175361A
JP2011175361A JP2010037447A JP2010037447A JP2011175361A JP 2011175361 A JP2011175361 A JP 2011175361A JP 2010037447 A JP2010037447 A JP 2010037447A JP 2010037447 A JP2010037447 A JP 2010037447A JP 2011175361 A JP2011175361 A JP 2011175361A
Authority
JP
Japan
Prior art keywords
data
update
storage block
block
storage
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
Application number
JP2010037447A
Other languages
English (en)
Inventor
Yoshiaki Hatta
吉章 八田
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.)
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
Original Assignee
Sumitomo Wiring Systems Ltd
AutoNetworks Technologies Ltd
Sumitomo Electric Industries Ltd
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 Sumitomo Wiring Systems Ltd, AutoNetworks Technologies Ltd, Sumitomo Electric Industries Ltd filed Critical Sumitomo Wiring Systems Ltd
Priority to JP2010037447A priority Critical patent/JP2011175361A/ja
Publication of JP2011175361A publication Critical patent/JP2011175361A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

【課題】電源の瞬断が発生した場合であっても、データの消失又は破損等が生じることがないデータ記憶装置及びデータ記憶方法を提供する。
【解決手段】データがそれぞれ一括消去される複数の記憶ブロックに対してメモリ管理部21が順次的にデータを書き込み、データの書き込み先を変更する際には有効なデータを次のブロックへコピーするブロック更新処理を行う。最初に書き込みを行う第1記憶ブロック221には、記憶ブロック毎に更新開始ビット、更新終了ビット及び消去終了ビットの3つの情報を管理情報として記憶しておく。メモリ管理部21はブロック更新処理の開始前に更新開始ビットをデータ’0’に設定し、ブロック更新処理の終了後に更新終了ビットをデータ’0’に設定する。またメモリ管理部21は、更新終了ビットがデータ’0’に設定された記憶ブロックの消去処理を行い、消去処理の終了後に消去ビットをデータ’0’に設定する。
【選択図】図1

Description

本発明は、データが一括消去されるフラッシュメモリなどの不揮発性メモリにデータを記憶するデータ記憶装置及びデータ記憶方法に関する。
従来、データの記憶にはEEPROM(Electrically Erasable Programmable Read Only Memory)及びフラッシュメモリ等の不揮発性メモリが広く用いられている。特に、近年のフラッシュメモリは大容量化及び低価格化が著しく、記憶するデータの量が多い装置においてはフラッシュメモリが用いられる場合が多い。しかしフラッシュメモリには、EEPROMと比較してデータの書換可能回数が少ないこと、及び、データの消去をブロック単位の一括消去で行う必要があること等の制限がある。
このためフラッシュメモリを備えたデータ記憶装置では、特定個所にデータの書き換えが集中しないように、複数のブロックを順に用いてデータの書き込みを行うと共に、ブロックの消去を行う際には、このブロック内の必要なデータを他のブロックへコピーするなどの処理を行っている。
特許文献1においては、データ消去の待ち時間及び消去回数の計算時間の必要がなく、フラッシュメモリの長寿命化を図ることができる外部記憶装置のデータ記憶制御方法が提案されている。外部記憶装置は複数のフラッシュメモリ(例えば第1〜第5フラッシュメモリ)を備え、第1〜第3フラッシュメモリをデータ書き換え用とし、第4及び第5フラッシュメモリをガベージコレクション用とする。第1フラッシュメモリから第3フラッシュメモリへと順にデータを格納し、第3フラッシュメモリの空き領域がなくなった場合に、第1フラッシュメモリのガベージコレクションを第4フラッシュメモリに行い、同時にホストからのライトアクセスがきたらこれを優先して第4フラッシュメモリに行う。第1フラッシュメモリのガベージコレクションが終了した後、第2フラッシュメモリのガベージコレクションを第5フラッシュメモリに行い、これと同時に第1フラッシュメモリのデータ消去を行う。その後、第4フラッシュメモリをデータ書き換え用とし、第1フラッシュメモリをガベージコレクション用とする。同様に、第2フラッシュメモリのガベージコレクションを終了してデータ消去を行い、第5フラッシュメモリをデータ書き換え用とし、第2フラッシュメモリをガベージコレクション用とする。
特開平11−126488号公報
近年、車輌に搭載される電子機器(車載機器)は高機能化し、車載機器内で扱われるデータ量が増大しており、これら大量のデータを記憶するために電子機器にはフラッシュメモリが搭載される。しかしながら、車載機器への電力供給は車輌のバッテリ又はオルタネータ等から行われるが、車載機器への電力供給環境は、家庭内のPC(Personal Computer)などへの電力供給環境と比較して不安定であり、瞬間的な電力供給の遮断(電源の瞬断)などが発生しやすいという問題がある。機器内の演算処理などと比較して、フラッシュメモリのデータ書き込み及び消去には比較的長い時間を必要とするため、データの書き込み又は消去中に電源の瞬断が発生し、データの書き込み又は消去が異常終了する虞がある。
特許文献1に記載のデータ記憶制御方法では、例えば第1フラッシュメモリのガベージコレクションを第4フラッシュメモリに行う際に電源の瞬断が発生した場合には、ガベージコレクションが中断されて、第4フラッシュメモリへデータが書き込まれない(データの消失)、又は、誤ったデータが書き込まれる(データの破損)等の問題が発生する虞がある。また例えば、第1フラッシュメモリの消去中に電源の瞬断が発生した場合には、第1フラッシュメモリのデータが消去されず、この状態で第1フラッシュメモリへの書き込みが行われてデータが破損するなどの虞がある。
本発明は、斯かる事情に鑑みてなされたものであって、その目的とするところは、電源の瞬断が発生した場合であっても、データの消失又は破損等が生じることがなく、電力供給環境が比較的に不安定な車輌などであっても利用することができるデータ記憶装置及びデータ記憶方法を提供することにある。
本発明に係るデータ記憶装置は、データが一括して消去される記憶ブロックを複数有する不揮発性メモリと、複数の記憶ブロックに対して順次的にデータを書き込む処理を行う書込手段と、一の記憶ブロックがデータで満たされた場合に、該一の記憶ブロックから一又は複数のデータを読み出して次の記憶ブロックへ書き込むブロック更新処理を行う更新手段と、記憶ブロックのデータを消去する処理を行う消去手段とを備え、該更新手段によるブロック更新処理の終了後に前記書込手段が前記次の記憶ブロックへの新たなデータの書き込みを開始するようにしてあるデータ記憶装置において、所定の記憶ブロックに、各記憶ブロックについて、前記更新手段によるブロック更新処理の開始前に設定される更新開始情報、前記更新手段によるブロック更新処理の終了後に設定される更新終了情報、及び、記憶ブロックの消去終了後に設定される消去終了情報を記憶し、前記更新手段は、装置の電源投入後に、前記更新開始情報が設定され、且つ、前記更新終了情報が設定されていない記憶ブロックの再更新処理を行うようにしてあり、前記消去手段は、前記更新終了情報が設定され、且つ、前記消去終了情報が設定されていない記憶ブロックのデータ消去処理を行うようにしてあることを特徴とする。
また、本発明に係るデータ記憶装置は、前記書込手段が、前記所定の記憶ブロックに記憶された各記憶ブロックの更新終了情報に応じて、データの書き込みを行う記憶ブロックを決定するようにしてあることを特徴とする。
また、本発明に係るデータ記憶装置は、前記所定の記憶ブロックに記憶された各記憶ブロックの更新終了情報に応じてデータの読み出しを行う記憶ブロックを決定し、該記憶ブロックからデータの読み出しを行う読出手段を更に備えることを特徴とする。
また、本発明に係るデータ記憶装置は、最後の記憶ブロックがデータで満たされた場合に、前記所定の記憶ブロックに記憶された全ての前記更新開始情報、更新終了情報及び消去終了情報を初期化する情報初期化手段を更に備えることを特徴とする。
また、本発明に係るデータ記憶装置は、前記更新開始情報、更新終了情報及び消去終了情報が、それぞれ1ビットの情報であり、設定された状態が0であり、初期化された状態が1であることを特徴とする。
また、本発明に係るデータ記憶方法は、データが一括して消去される記憶ブロックを複数有する不揮発性メモリに対して、複数の記憶ブロックに対して順次的にデータを書き込み、一の記憶ブロックがデータで満たされた場合に、該一の記憶ブロックから一又は複数のデータを読み出して次の記憶ブロックへ書き込むブロック更新処理を行い、該ブロック更新処理の終了後に前記次の記憶ブロックへの新たなデータの書き込みを開始するデータ記憶方法において、所定の記憶ブロックに、各記憶ブロックについて、前記ブロック更新処理の開始前に設定される更新開始情報、前記ブロック更新処理の終了後に設定される更新終了情報、及び、記憶ブロックの消去終了後に設定される消去終了情報を記憶し、装置の電源投入後に、前記更新開始情報が設定され、且つ、前記更新終了情報が設定されていない記憶ブロックの再更新処理を行い、前記更新終了情報が設定され、且つ、前記消去終了情報が設定されていない記憶ブロックのデータ消去処理を行うことを特徴とする。
本発明においては、データが一括消去される記憶ブロックを複数有する不揮発性メモリに対して、複数の記憶ブロックにデータを順次的に書き込む。例えば不揮発性メモリが第1〜第3の記憶ブロックを有している場合、第1記憶ブロック→第2記憶ブロック→第3記憶ブロックの順でデータの書き込みを行い、第3記憶ブロックが一杯になった場合には第1記憶ブロックへデータを書き込む、という処理を繰り返して行う。データの書き込み先を一の記憶ブロックから次の記憶ブロックへ変更する際には、一の記憶ブロックに記憶された一又は複数のデータ(有効なデータ又は必要なデータ)を読み出して次のブロックへ書き込む処理(ブロック更新処理)を行った後で、次の記憶ブロックへのデータの書き込みを開始する。
不揮発性メモリの予め定められた一の記憶ブロック(データの書き込みを最初に行う記憶ブロックとすることが好ましい)には、データの書き込み及び消去に係る上記の処理を行うための管理用情報を記憶する。この管理用情報には、各記憶ブロックについてそれぞれ下記の3つの情報が含まれている。
1)更新開始情報:ブロック更新処理を行う前に設定される。例えば第1記憶ブロックの必要なデータを第2記憶ブロックへ書き込む場合、データの書き込み開始前に第1記憶ブロックに係る更新開始情報を設定する。
2)更新終了情報:ブロック更新処理の終了後に設定される。例えば第1記憶ブロックの必要なデータを第2記憶ブロックへ書き込む場合、第1記憶ブロックの必要なデータを全て第2記憶ブロックへ書き込んだ後に、第1記憶ブロックに係る更新終了情報を設定する。
3)消去終了情報:記憶ブロックの消去処理の終了後に設定される。例えば第1記憶ブロックのデータを消去する場合、第1記憶ブロックの消去処理が完了した後に、第1記憶ブロックに係る消去終了情報を設定する。
これらの情報により、更新開始情報が設定されているが更新終了情報が設定されていない記憶ブロックが存在すれば、この記憶ブロックへのブロック更新処理中に電源の瞬断が発生したと判断することができる。そこで、電源投入後のパワーオンリセットなどに応じて、各記憶ブロックの更新開始情報及び更新終了情報を調べ、更新開始情報が設定され、且つ、更新終了情報が設定されていない記憶ブロックが存在すれば、この記憶ブロックに係るブロック更新処理を再度行う(再更新処理)。
また更新終了情報が設定された記憶ブロックについては、ブロック更新処理が正常に終了しているため、データを消去することが可能であると判断できる。そこで、更新終了情報が設定され、且つ、消去終了情報が設定されていない記憶ブロックをデータ消去の対象として消去処理を行う。消去処理中に電源の瞬断が発生した場合には消去終了情報が設定されないため、この記憶ブロックはデータ消去の対象として消去処理が行われる。
このように、更新開始情報、更新終了情報及び消去終了情報に基づいてブロック更新処理及びデータ消去処理を行うことによって、処理中に電源の瞬断が生じた場合であっても、中断された処理を再度行うことが可能となる。
また、本発明においては、データの書き込みを行う場合に、各記憶ブロックに係る更新終了情報に応じて書き込み対象の記憶ブロックを決定する。例えば第1記憶ブロックから第N記憶ブロックへ順にデータの書き込みを行う構成の場合、更新終了情報は第1記憶ブロックのものから順に設定される。このため、第1記憶ブロックから第N記憶ブロックへ順に更新終了情報が設定されているか否かを調べることにより、更新終了情報が設定されていない記憶ブロックを最初に見出した場合、この記憶ブロックが書き込み対象の記憶ブロックであると判断できる。
また、本発明においては、データの書き込みを行う場合と同様にして、各記憶ブロックに係る更新終了情報に応じて読み込み対象の記憶ブロックを決定し、データの読み込みを行うことができる。
また、本発明においては、複数の記憶ブロックに対して順にデータを書き込んでいき、最後の記憶ブロックがデータで満たされた場合、全ての更新開始情報、更新終了情報及び消去終了情報を初期化する。具体的には、これらの情報が記憶された所定の記憶ブロックのデータを一括して消去する処理を行えばよい(逆に、所定の記憶ブロックは最後の記憶ブロックが満たされるまで消去処理を行ってはいけない)。これにより、最後の記憶ブロックから最初の記憶ブロックへブロック更新処理を行うことができ、データの書き込みを繰り返して行うことができる。
また、本発明においては、更新開始情報、更新終了情報及び消去終了情報は、それぞれ1ビットの情報とする。これにより、各記憶ブロックにつき3ビットずつ(N個の記憶ブロックであれば3×Nビット)の少ない情報で上述の処理を行うことができる。また各情報を設定するとは対応するビットの値を0にすることであり、情報の初期化とは各ビットの値を1とすることである。またフラッシュメモリは消去処理によりデータが1となり、書き込みによりデータが0となるため、各情報の設定は対応するビットの値を0にする構成とし、情報の初期化は各ビットの値を1とする構成とすることが好適である。なお、フラッシュメモリは8ビット又は16ビット等の単位でデータの書き込みが行われるが、データ1からデータ0へ変化させる場合には上書き処理を行うことが可能であるため、任意のビットを設定することができる。
本発明による場合は、所定の記憶ブロックに記憶された更新開始情報、更新終了情報及び消去終了情報に基づいて、不揮発性メモリの更新処理、書込処理及び消去処理等を行う構成とすることにより、これらの処理中に電源の瞬断が発生して処理が中断された場合であっても、中断された処理を再度行うことができるため、データの消失又は破損等が生じることがない。よって、電力供給環境が比較的に不安定な車輌などであっても、不揮発性メモリを利用したデータの記憶を安全に行うことができる。
本実施の形態に係るCPUの構成を示すブロック図である。 管理用情報の一例を示す模式図である。 フラッシュメモリにて行われるデータ書込処理の手順を示すフローチャートである。 フラッシュメモリにて行われるデータ書込処理の手順を示すフローチャートである。 フラッシュメモリにて行われるデータ読出処理の手順を示すフローチャートである。 フラッシュメモリにて行われるデータ消去処理の手順を示すフローチャートである。 CPUの電源投入時にフラッシュメモリにて行われる処理の手順を示すフローチャートである。
以下、本発明をその実施の形態を示す図面に基づき具体的に説明する。なお本実施の形態においては、CPU(Central Processing Unit)に本発明に係るデータ記憶装置としてフラッシュメモリを搭載した構成を一例として説明を行う。図1は、本実施の形態に係るCPUの構成を示すブロック図である。図示のCPU1は、演算処理部11、RAM(Random Access Memory)12及びフラッシュメモリ20を備えて構成されており、フラッシュメモリ20は本発明に係るデータ処理装置に相当する。
CPU1の演算処理部11は、フラッシュメモリ20に予め記憶された種々のプログラムを読み出して実行することにより、演算処理を行うものである。RAM12は、SRAM(Static RAM)又はDRAM(Dynamic RAM)等の揮発性のメモリ素子であり、演算処理部11の処理過程で生じた種々のデータを一時的に記憶する。
フラッシュメモリ20は、メモリ管理部21及び記憶部22を備えている。メモリ管理部21は、演算処理部11から与えられるデータの書込要求、読出要求及び消去要求等に応じて、フラッシュメモリ20内に設けられたチャージポンプ及びセンスアンプ等の種々のアナログ回路を動作させることにより、記憶部22に対するデータの書き込み、読み出し及び消去等を行う。
記憶部22は、数Mバイト〜数百Mバイト程度の不揮発性の記憶領域を有している。フラッシュメモリ20の記憶部22は、データの書き込みをアドレス指定により8ビット又は16ビット等の単位で行うことができるが、データの消去は数Kバイト〜数十Kバイト程度のブロック単位で行う必要がある。そこで本実施の形態のCPU1においては、記憶部220の一又は複数のブロックを、演算処理部11が実行するプログラムを予め記憶するプログラム用記憶領域220として用いると共に、残りの複数(N個とする)のブロックを、演算処理部11から与えられたデータを記憶する第1記憶ブロック221、第2記憶ブロック222、…、第N記憶ブロック22Nとして用いる。
メモリ管理部21は、記憶部22のプログラム用記憶領域220を読出専用の領域として扱い、プログラム用記憶領域220に対するデータの書込要求及び消去要求を受け付けず、読出要求のみを受け付ける。これにより、プログラム用記憶領域220に予め記憶されたプログラムが破壊されることを防止できる。
またメモリ管理部21は、演算処理部11からデータの書込要求が与えられた場合、書込要求と共に与えられるデータを、N個の記憶ブロックのいずれかに書き込む(記憶する)。メモリ管理部21は、第1記憶ブロック221→第2記憶ブロック222→…→第N記憶ブロック22Nのように、書き込み先を順に切り替えながらデータの書き込みを行っている。このためメモリ管理部21は、演算処理部11との間で授受する書き込み先の論理的なアドレスと、記憶部22における書き込み先の物理的なアドレスとを変換するテーブルなどの情報を有している(図示は省略する)。このテーブルは、メモリ管理部21内の専用のメモリに記憶される構成であってもよく、記憶部22の一又は複数のブロックをテーブルを記憶するために用い、このブロックに記憶される構成であってもよい。
例えばメモリ管理部21は、演算処理部11からの書込要求に応じて第1記憶ブロック221にデータを書き込んでいき、第1記憶ブロック221が一杯になった場合(第1記憶ブロック221の記憶領域がデータで満たされて書き込み不可能な状態となった場合)、データの書き込み先を第2記憶ブロック222へ変更する。このときメモリ管理部21は、第1記憶ブロック221に記憶されたデータのうち、有効なデータを読み出して第2記憶ブロック222へコピーするブロック更新処理を行った後、第2記憶ブロック222に対するデータの書き込みを開始する。
またメモリ管理部21は、ブロック更新処理を繰り返し行ってデータ書き込みの対象とする記憶ブロックを順に切り替えていき、最後の記憶ブロック(第N記憶ブロック22N)が一杯になった場合には、第N記憶ブロック22Nの有効なデータを第1記憶ブロック221へコピーするブロック更新処理を行って、第1記憶ブロック221へデータの書き込み対象を変更する。このように、複数の記憶ブロックを巡回してデータを書き込む構成とすることにより、各記憶ブロックのデータ書き換え回数を平均化することができる。
上述のデータ書き込みを実現するために、フラッシュメモリ20は記憶部22の先頭の記憶ブロック(第1記憶ブロック221)に管理用情報を記憶しており、メモリ管理部21はこの管理用情報を読み出してデータの書込対象(更には読出対象)とすべき記憶ブロックを決定している。また管理用情報は、データの書込又は消去等の処理中にCPU1への電力供給が断たれた(瞬断が発生した)場合に、電力供給が再開されてCPU1の処理が再開された際に瞬断の発生を検出するためにも用いられる(詳細は後述する)。
図2は、管理用情報の一例を示す模式図である。管理用情報は、1つの記憶ブロックに対して更新開始ビット、更新終了ビット及び消去終了ビットの3ビットの情報が設けられたものであり、合計で3×Nビットのデータサイズである。管理用情報は例えば第1記憶ブロック221の先頭から3×Nビット分の領域に記憶されており、メモリ管理部21は第1記憶ブロック221の先頭から数アドレス分のデータを読み出すことによって、管理用情報を取得することができる。また管理用情報の各ビットは、初期状態がデータ’1’であり、第1記憶ブロック221に対する消去処理によって初期化される。
管理用情報の更新開始ビットは、メモリ管理部21がブロック更新処理を開始する前にデータ’0’に設定されるものであり、ブロック更新処理中の電源の瞬断を検出するための情報である。例えばi番目の記憶ブロックに対してブロック更新処理を行う場合、メモリ管理部21は、まずi番目の記憶ブロックに係る更新開始ビットをデータ’0’に設定した後で、i番目の記憶ブロックから有効なデータを読み出し、i+1番目の記憶ブロックへコピーする。
管理用情報の更新終了ビットは、メモリ管理部21がブロック更新処理を終了した後にデータ’0’に設定されるものであり、ブロック更新処理中の電源の瞬断を検出すると共に、データ書き込み及び読み出しの対象記憶ブロックを判断するために用いられる情報である。例えばi番目の記憶ブロックに対してブロック更新処理を行う場合、メモリ管理部21は、i番目の記憶ブロックから有効なデータを読み出し、i+1番目の記憶ブロックへのコピーを完了した後で、更新終了ビットをデータ’0’に設定する。
ここで、i番目の記憶ブロックに係るブロック更新処理中に電源の瞬断が発生し、このブロック更新処理が中断された場合、i番目の記憶ブロックに係る更新開始ビットはデータ’0’に設定された状態であるが、更新終了ビットは設定されずにデータ’1’のままの状態である。よってメモリ管理部21は、CPU1が電源の瞬断から復帰してパワーオンリセットなどが行われた場合に、全ての記憶ブロックについて更新開始ビット及び更新終了ビットが一致するか否かを調べることにより、ブロック更新処理中に電源の瞬断が発生したことを検出できる。
またメモリ管理部21は、第1記憶ブロック221から第N記憶ブロック22Nへ順にデータの書き込み及びブロック更新処理を行うため、更新開始ビット及び更新終了ビットは第1記憶ブロック221に係るものから順にデータ’0’に設定される。よってメモリ管理部21は、更新終了ビットを第1記憶ブロック221に係るものから順に調べていき、データ’1’の更新終了ビットを最初に発見した場合に、この更新終了ビットに係る記憶ブロックをデータ書き込み及び読み出しの対象とすることができる。
管理用情報の消去終了ビットは、メモリ管理部21が記憶ブロックの消去処理を終了した後にデータ’0’に設定されるものであり、消去処理中の電源の瞬断を検出すると共に、記憶ブロックが消去可能な状態であるか否かを判断するためのものである。上述のように、ブロック更新処理が終了した記憶ブロックは有効なデータが既に次のブロックへコピーされた状態であるため消去可能である。そこでメモリ管理部21は、更新終了ビットがデータ’0’に設定され、且つ、消去終了ビットが設定されずにデータ’1’のままの記憶ブロックを、消去可能な記憶ブロックであると判断することができる。
また、i番目の記憶ブロックに係る消去処理中に電源の瞬断が発生し、この消去処理が中断された場合、i番目の記憶ブロックに係る更新終了ビットはデータ’0’に設定された状態であるが、消去終了ビットは設定されずにデータ’1’のままの状態である。よってメモリ管理部21は、消去処理が中断された記憶ブロックは、消去可能な記憶ブロックであると判断するため、演算処理部11から消去要求が与えられた際に、この記憶ブロックの消去処理を行うことができる。
なお第1記憶ブロック221には上記の管理情報が記憶されているため、メモリ管理部21は、演算処理部11から第1記憶ブロック221の消去要求が与えられた場合であっても、第1記憶ブロック221の消去処理を行わない(又は、管理情報を他の記憶ブロックにバックアップした後で消去処理を行ってもよい)。第1記憶ブロック221の消去処理は、メモリ管理部21が管理情報を初期化する際に行われる。
メモリ管理部21は、最後の記憶ブロック(第N記憶ブロック22N)が一杯になった場合に、第1記憶ブロック221へ有効なデータをコピーするブロック更新処理を行うが、この際には、第1記憶ブロック221に対する消去処理を行って管理情報を初期化した後で、ブロック更新処理を開始する。なお他の記憶ブロックについても、ブロック更新処理を行う際に次の記憶ブロックが消去されていない状態であれば、次の記憶ブロックの消去処理を行った後でブロック更新処理を開始してもよい。
図3及び図4は、フラッシュメモリ20にて行われるデータ書込処理の手順を示すフローチャートであり、フラッシュメモリ20のメモリ管理部21により行われる処理である。まず、メモリ管理部21は、演算処理部11から書込要求が与えられたか否かを判定し(ステップS1)、書込要求が与えられていない場合には(S1:NO)、書込要求が与えられるまで待機する。書込要求が与えられた場合(S1:YES)、メモリ管理部21は、第1記憶ブロック221から管理情報の更新終了ビットを読み出して(ステップS2)、第1記憶ブロック221の更新終了ビットから順にデータ’1’の更新終了ビットを探すことによって、データ書き込みの対象となる記憶ブロックを決定する(ステップS3)。
次いでメモリ管理部21は、データ書き込みの対象となる記憶ブロックが最後の記憶ブロック(第N記憶ブロック22N)であるか否かを判定する(ステップS4)。データ書き込みの対象となる記憶ブロックが最後の記憶ブロックでない場合(S4:NO)、メモリ管理部21は、この記憶ブロックが書き込み可能な状態(データで満たされていない状態)であるか否かを更に判定する(ステップS5)。データ書き込みの対象となる記憶ブロックが書き込み可能な状態の場合(S5:YES)、メモリ管理部21は、この記憶ブロックに要求されたデータの書き込みを行って(ステップS10)、演算処理部11へ書込完了を通知し(ステップS11)、処理を終了する。
また、データ書き込みの対象となる記憶ブロックが書き込み可能な状態でない場合(S5:NO)、メモリ管理部21は、この記憶ブロックに係る更新開始ビットにデータ’0’を設定し(ステップS6)、この記憶ブロックに記憶された有効なデータを読み出して次の記憶ブロックへコピーするブロック更新処理を行う(ステップS7)。ブロック更新処理の終了後、メモリ管理部21は、この記憶ブロックに係る更新終了ビットにデータ’0’を設定し(ステップS8)、データ書き込みの対象となる記憶ブロックを次のブロックへ変更する(ステップS9)。次いでメモリ管理部21は、データ書き込みの対象となる記憶ブロックに要求されたデータの書き込みを行って(ステップS10)、演算処理部11へ書込完了を通知し(ステップS11)、処理を終了する。
また、ステップS3にて決定したデータ書き込みの対象となる記憶ブロックが最後の記憶ブロックの場合(S4:YES)、メモリ管理部21は、最後の記憶ブロックが書き込み可能な状態であるか否かを更に判定する(ステップS12)。最後の記憶ブロックが書き込み可能な状態の場合(S12:YES)、メモリ管理部21は、この記憶ブロックに要求されたデータの書き込みを行って(ステップS18)、演算処理部11へ書込完了を通知し(ステップS19)、処理を終了する。
また、最後の記憶ブロックが書き込み可能な状態でない場合(S12:NO)、メモリ管理部21は、第1記憶ブロック221に対する消去処理を行うことによって管理情報を初期化する(ステップS13)。初期化処理の終了後、メモリ管理部21は、最後の記憶ブロックに係る更新開始ビットにデータ’0’を設定し(ステップS14)、最後の記憶ブロックに記憶された有効なデータを読み出して最初の記憶ブロックへコピーするブロック更新処理を行う(ステップS15)。ブロック更新処理の終了後、メモリ管理部21は、最後の記憶ブロックに係る更新終了ビットにデータ’0’を設定し(ステップS16)、データ書き込みの対象となる記憶ブロックを最初のブロックへ変更する(ステップS17)。次いでメモリ管理部21は、データ書き込みの対象となる記憶ブロックに要求されたデータの書き込みを行って(ステップS18)、演算処理部11へ書込完了を通知し(ステップS19)、処理を終了する。
図5は、フラッシュメモリ20にて行われるデータ読出処理の手順を示すフローチャートであり、フラッシュメモリ20のメモリ管理部21により行われる処理である。まず、メモリ管理部21は、演算処理部11から読出要求が与えられたか否かを判定し(ステップS31)、読出要求が与えられていない場合には(S31:NO)、読出要求が与えられるまで待機する。
読出要求が与えられた場合(S31:YES)、メモリ管理部21は、第1記憶ブロック221から管理情報の更新終了ビットを読み出して(ステップS32)、第1記憶ブロック221の更新終了ビットから順にデータ’1’の更新終了ビットを探すことによって、データ読み出しの対象となる記憶ブロックを決定する(ステップS33)。次いでメモリ管理部21は、決定した記憶ブロックから、演算処理部11により指定されたデータを読み出し(ステップS34)、読み出したデータを演算処理部11へ通知して(ステップS35)、処理を終了する。
図6は、フラッシュメモリ20にて行われるデータ消去処理の手順を示すフローチャートであり、フラッシュメモリ20のメモリ管理部21により行われる処理である。まず、メモリ管理部21は、演算処理部11から消去要求が与えられたか否かを判定し(ステップS41)、消去要求が与えられていない場合には(S41:NO)、消去要求が与えられるまで待機する。
消去要求が与えられた場合(S41:YES)、メモリ管理部21は、第1記憶ブロック221から管理情報の更新終了ビットを読み出し(ステップS42)、消去終了ビットを読み出す(ステップS43)。次いでメモリ管理部21は、消去要求が与えられた記憶ブロック(消去対象の記憶ブロック)に係る更新終了ビット及び消去終了ビットが一致するか否かを判定し(ステップS44)、更新終了ビット及び消去終了ビットが一致する場合(S44:YES)、消去対象の記憶ブロックは消去済みであるため、処理を終了する。
また、消去対象の記憶ブロックに係る更新終了ビット及び消去終了ビットが一致しない場合(S44:NO)、メモリ管理部21は、消去対象の記憶ブロックに対する消去処理を行う(ステップS45)。消去処理の終了後、メモリ管理部21は、この記憶ブロックに係る消去終了ビットにデータ’0’を設定し(ステップS46)、演算処理部11へ消去完了を通知して(ステップS47)、処理を終了する。
図7は、CPU1の電源投入時にフラッシュメモリ20にて行われる処理の手順を示すフローチャートであり、フラッシュメモリ20のメモリ管理部21により行われる処理である。CPU1を搭載した機器は、電力供給が開始された際にリセット信号(パワーオンリセット)を出力する回路を備えており、パワーオンリセットの信号を与えることでCPU1の動作を初期化する(ただし、パワーオンリセットの回路をCPU1内に設ける構成としてもよい)。このパワーオンリセットの信号は、CPU1内のフラッシュメモリ20へも与えられる。
電源投入時に、フラッシュメモリ20のメモリ管理部21は、パワーオンリセットの信号を受け付け(ステップS51)、第1記憶ブロック221から管理情報の更新開始ビットを読み出すと共に(ステップS52)、更新終了ビットを読み出す(ステップS53)。次いで、メモリ管理部21は、全ての記憶ブロックについて更新開始ビット及び更新終了ビットが一致するか否かを判定し(ステップS54)、全て一致する場合には(S54:YES)、演算処理部11へパワーオンリセット処理の完了を通知して(ステップS57)、処理を終了する。
更新開始ビット及び更新終了ビットが一致しない場合(S54:NO)、メモリ管理部21は、一致しない更新開始ビットに係る記憶ブロックに記憶された有効なデータを読み出して次の記憶ブロックへコピーするブロック更新処理を行う(ステップS55)。ブロック更新処理の終了後、メモリ管理部21は、この記憶ブロックに係る更新終了ビットにデータ’0’を設定し(ステップS56)、演算処理部11へパワーオンリセット処理の完了を通知して(ステップS57)、処理を終了する。
以上の構成のフラッシュメモリ20においては、データがそれぞれ一括消去される複数の記憶ブロックに対してメモリ管理部21が順次的に巡回してデータを書き込み、データの書き込み先を変更する際には有効なデータを次のブロックへコピーするブロック更新処理を行う構成とすることにより、各記憶ブロックのデータ書き換え回数を平均化することができ、フラッシュメモリ20の寿命を長期化することができる。
また、最初に書き込みを行う第1記憶ブロック221には、記憶ブロック毎に更新開始ビット、更新終了ビット及び消去終了ビットの3つの情報を管理情報として記憶しておく。メモリ管理部21はブロック更新処理の開始前に更新開始ビットをデータ’0’に設定し、ブロック更新処理の終了後に更新終了ビットをデータ’0’に設定する構成とすることにより、ブロック更新処理中に電源の瞬断が発生した場合であっても、更新開始ビット及び更新終了ビットに応じて瞬断の発生を検出し、電源再投入時に更新処理を再び行うことができる。またメモリ管理部21は、更新終了ビットがデータ’0’に設定された記憶ブロックの消去処理を行い、消去処理の終了後に消去ビットをデータ’0’に設定する構成とすることにより、消去処理中に電源の瞬断が発生した場合であっても、消去処理を再度行うことができる。
このように、メモリ管理部21が更新開始ビット、更新終了ビット及び消去終了ビットに基づいてブロック更新処理及びデータ消去処理を行うことによって、処理中に電源の瞬断が生じた場合であっても、中断された処理を再度行うことが可能となる。よって、電力供給環境が比較的に不安定な車輌などであっても、フラッシュメモリ20を利用したデータの記憶を安全に行うことができる。
また、メモリ管理部21は、演算処理部11の要求に応じてデータの書き込み又は読み出しを行う場合に、各記憶ブロックに係る更新終了ビットに応じて、書き込み又は読み出しの対象となる記憶ブロックを決定することができる。具体的には、第1記憶ブロック221に係る更新終了ビットから第N記憶ブロック22Nに係る更新終了ビットへ順にその値を調べ、最初に見出した更新終了ビットがデータ’1’の記憶ブロックを、書き込み又は読み出しの対象とすることができる。
また、メモリ管理部21は、最後の記憶ブロックがデータで満たされた場合、最初の記憶ブロックに対する消去処理を行うことによって、最初の記憶ブロックに記憶された管理情報を初期化する構成とすることにより、最後の記憶ブロックから最初の記憶ブロックへブロック更新処理を行うことができ、複数の記憶ブロックに対してデータの書き込みを繰り返して(巡回して)行うことができる。
また、管理情報としてそれぞれが1ビットの更新開始ビット、更新終了ビット及び消去終了ビットを各記憶ブロックについて設け、各ビットの初期化状態をデータ’1’とし、設定状態をデータ’0’とすることにより、3×Nビット程度の情報で上述の処理を行うことができると共に、フラッシュメモリ20の消去処理によって各ビットの初期化を一括して行うことができる。
なお、本実施の形態においては、フラッシュメモリ20の第1記憶ブロック221〜第N記憶ブロック22Nの全てを一組としてデータの書き込みを巡回して行う構成としたが、これに限るものではなく、N個の記憶ブロックを複数組に分割し、各組内でデータの書き込みを巡回して行う構成としてもよい。この場合、各組の最初の記憶ブロックに管理情報をそれぞれ記憶しておく構成とすればよい。
また、フラッシュメモリ20にて一括消去される物理的なブロックをそれぞれ第1記憶ブロック221〜第N記憶ブロック22Nとするのみでなく、物理的には分割された複数のブロックをまとめて第1記憶ブロック221とするなど、第1記憶ブロック221〜第N記憶ブロック22Nは論理的なブロックとして実現されるものであってよい。
また、フラッシュメモリ20のメモリ管理部21は、演算処理部11からの消去要求に応じて消去処理を行う構成としたが、これに限るものではなく、更新終了ビットがデータ’0’に設定された記憶ブロックをメモリ管理部21が自動的に消去する構成であってもよい。
また、図6に示したフローチャートのステップS44において、更新終了ビット及び消去終了ビットが一致するか否かを判定する構成としたが、これに限るものではなく、更新終了ビットがデータ’0’に設定され、且つ、消去終了ビットがデータ’1’のままであるか否かをステップS44にて判定し、更新終了ビットがデータ’0’に設定され、且つ、消去終了ビットがデータ’1’の場合にステップS45へ処理を進め、更新終了ビットがデータ’1’であるか、又は、消去終了ビットがデータ’0’の場合に、処理を終了する手順としてもよい。
同様に、図7に示したフローチャートのステップS54において、更新開始ビット及び更新終了ビットが一致するか否かを判定する構成としたが、これに限るものではなく、更新開始ビットがデータ’0’に設定され、且つ、更新終了ビットがデータ’1’のままであるか否かをステップS54にて判定し、更新開始ビットがデータ’0’に設定され、且つ、更新終了ビットがデータ’1’の場合にステップS55へ処理を進め、更新開始ビットがデータ’1’であるか、又は、更新終了ビットがデータ’0’の場合に、ステップS57へ処理を進める構成としてもよい。
また、フラッシュメモリ20がCPU1内に設けられる構成としたが、これに限るものではなく、CPU1外にフラッシュメモリ20が設けられる構成であってもよい。また本発明に係るフラッシュメモリ20は、車載機器への搭載が好適である。
1 CPU
11 演算処理部
12 RAM
20 フラッシュメモリ(データ記憶装置)
21 メモリ管理部(書込手段、更新手段、消去手段、読出手段、情報初期化手段)
22 記憶部(不揮発性メモリ)
220 プログラム用記憶領域
221〜22N 第1記憶ブロック〜第N記憶ブロック

Claims (6)

  1. データが一括して消去される記憶ブロックを複数有する不揮発性メモリと、複数の記憶ブロックに対して順次的にデータを書き込む処理を行う書込手段と、一の記憶ブロックがデータで満たされた場合に、該一の記憶ブロックから一又は複数のデータを読み出して次の記憶ブロックへ書き込むブロック更新処理を行う更新手段と、記憶ブロックのデータを消去する処理を行う消去手段とを備え、該更新手段によるブロック更新処理の終了後に前記書込手段が前記次の記憶ブロックへの新たなデータの書き込みを開始するようにしてあるデータ記憶装置において、
    所定の記憶ブロックに、各記憶ブロックについて、前記更新手段によるブロック更新処理の開始前に設定される更新開始情報、前記更新手段によるブロック更新処理の終了後に設定される更新終了情報、及び、記憶ブロックの消去終了後に設定される消去終了情報を記憶し、
    前記更新手段は、装置の電源投入後に、前記更新開始情報が設定され、且つ、前記更新終了情報が設定されていない記憶ブロックの再更新処理を行うようにしてあり、
    前記消去手段は、前記更新終了情報が設定され、且つ、前記消去終了情報が設定されていない記憶ブロックのデータ消去処理を行うようにしてあること
    を特徴とするデータ記憶装置。
  2. 前記書込手段は、前記所定の記憶ブロックに記憶された各記憶ブロックの更新終了情報に応じて、データの書き込みを行う記憶ブロックを決定するようにしてあること
    を特徴とする請求項1に記載のデータ記憶装置。
  3. 前記所定の記憶ブロックに記憶された各記憶ブロックの更新終了情報に応じてデータの読み出しを行う記憶ブロックを決定し、該記憶ブロックからデータの読み出しを行う読出手段を更に備えること
    を特徴とする請求項1又は請求項2に記載のデータ記憶装置。
  4. 最後の記憶ブロックがデータで満たされた場合に、前記所定の記憶ブロックに記憶された全ての前記更新開始情報、更新終了情報及び消去終了情報を初期化する情報初期化手段を更に備えること
    を特徴とする請求項1乃至請求項3のいずれか1つに記載のデータ記憶装置。
  5. 前記更新開始情報、更新終了情報及び消去終了情報は、それぞれ1ビットの情報であり、設定された状態が0であり、初期化された状態が1であること
    を特徴とする請求項1乃至請求項4のいずれか1つに記載のデータ記憶装置。
  6. データが一括して消去される記憶ブロックを複数有する不揮発性メモリに対して、複数の記憶ブロックに対して順次的にデータを書き込み、一の記憶ブロックがデータで満たされた場合に、該一の記憶ブロックから一又は複数のデータを読み出して次の記憶ブロックへ書き込むブロック更新処理を行い、該ブロック更新処理の終了後に前記次の記憶ブロックへの新たなデータの書き込みを開始するデータ記憶方法において、
    所定の記憶ブロックに、各記憶ブロックについて、前記ブロック更新処理の開始前に設定される更新開始情報、前記ブロック更新処理の終了後に設定される更新終了情報、及び、記憶ブロックの消去終了後に設定される消去終了情報を記憶し、
    装置の電源投入後に、前記更新開始情報が設定され、且つ、前記更新終了情報が設定されていない記憶ブロックの再更新処理を行い、
    前記更新終了情報が設定され、且つ、前記消去終了情報が設定されていない記憶ブロックのデータ消去処理を行うこと
    を特徴とするデータ記憶方法。
JP2010037447A 2010-02-23 2010-02-23 データ記憶装置及びデータ記憶方法 Pending JP2011175361A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010037447A JP2011175361A (ja) 2010-02-23 2010-02-23 データ記憶装置及びデータ記憶方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010037447A JP2011175361A (ja) 2010-02-23 2010-02-23 データ記憶装置及びデータ記憶方法

Publications (1)

Publication Number Publication Date
JP2011175361A true JP2011175361A (ja) 2011-09-08

Family

ID=44688170

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010037447A Pending JP2011175361A (ja) 2010-02-23 2010-02-23 データ記憶装置及びデータ記憶方法

Country Status (1)

Country Link
JP (1) JP2011175361A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014016890A (ja) * 2012-07-10 2014-01-30 Denso Corp 電子制御装置およびデータ書換システム
WO2014147906A1 (ja) 2013-03-18 2014-09-25 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置
CN112397128A (zh) * 2020-11-19 2021-02-23 潍柴动力股份有限公司 一种Flash存储器的控制方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014016890A (ja) * 2012-07-10 2014-01-30 Denso Corp 電子制御装置およびデータ書換システム
WO2014147906A1 (ja) 2013-03-18 2014-09-25 富士通テン株式会社 データ記憶装置、データの記憶方法および車載用制御装置
EP2977907A4 (en) * 2013-03-18 2016-03-30 Fujitsu Ten Ltd DATA STORAGE DEVICE, METHOD FOR STORING DATA, AND BORD CONTROL DEVICE
US9792070B2 (en) 2013-03-18 2017-10-17 Fujitsu Ten Limited Data storage device, method of storing data, and on-vehicle control apparatus
CN112397128A (zh) * 2020-11-19 2021-02-23 潍柴动力股份有限公司 一种Flash存储器的控制方法和装置

Similar Documents

Publication Publication Date Title
JP4399029B2 (ja) 半導体不揮発性大容量記憶メモリ内の自動摩耗レベリングによるシステム・データ制御の方法およびアーキテクチャ
JP4132086B2 (ja) フラッシュメモリ内のブロックにおける移動セクタ
US6205548B1 (en) Methods and apparatus for updating a nonvolatile memory
JP2009211215A (ja) メモリシステム
JP2008033801A (ja) メモリデータ管理装置
US20070005929A1 (en) Method, system, and article of manufacture for sector mapping in a flash device
JP4175881B2 (ja) 不揮発性メモリの記憶方法及び記憶装置
JP6060892B2 (ja) 車載データ記憶装置及びデータ記憶方法
JP2011175361A (ja) データ記憶装置及びデータ記憶方法
JP4235646B2 (ja) メモリコントローラおよびフラッシュメモリシステム
JP5983512B2 (ja) 書き込み装置
JP5929398B2 (ja) 不揮発性半導体メモリ装置、及び、その制御方法
JP6040895B2 (ja) マイクロコンピュータ及び不揮発性メモリのブロック管理方法
JP7153435B2 (ja) 不揮発性メモリのデータ書換方法及び半導体装置
JP4551938B2 (ja) メモリシステム
JP2005316793A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2009276883A (ja) 半導体補助記憶装置
JP2005321843A (ja) ファームウェアの書換え方法
JP4558052B2 (ja) メモリシステム
JP4031693B2 (ja) 不揮発性メモリおよびこれを有したデータ記憶装置
JP2014112419A (ja) 携帯端末装置、ソフトウェア更新方法、動作制御方法及びプログラム
JP2004152331A (ja) 記憶装置
JP2006040168A (ja) フラッシュメモリシステム及びフラッシュメモリの制御方法
JP2007156846A (ja) メモリコントローラ及びフラッシュメモリシステム
JP2008065646A (ja) フラッシュメモリ制御システムとその制御方法