JP4266742B2 - フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム - Google Patents

フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム Download PDF

Info

Publication number
JP4266742B2
JP4266742B2 JP2003286224A JP2003286224A JP4266742B2 JP 4266742 B2 JP4266742 B2 JP 4266742B2 JP 2003286224 A JP2003286224 A JP 2003286224A JP 2003286224 A JP2003286224 A JP 2003286224A JP 4266742 B2 JP4266742 B2 JP 4266742B2
Authority
JP
Japan
Prior art keywords
data
block
memory
flash memory
history area
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.)
Expired - Fee Related
Application number
JP2003286224A
Other languages
English (en)
Other versions
JP2005056144A (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.)
Sharp NEC Display Solutions Ltd
Original Assignee
NEC Display Solutions 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 NEC Display Solutions Ltd filed Critical NEC Display Solutions Ltd
Priority to JP2003286224A priority Critical patent/JP4266742B2/ja
Publication of JP2005056144A publication Critical patent/JP2005056144A/ja
Application granted granted Critical
Publication of JP4266742B2 publication Critical patent/JP4266742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明はフラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラムに係わり、特にデータ書き換え中の停電等による装置の誤動作を改善したフラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラムに関する。
近年、半導体素子の微細化技術の進展に伴い、その半導体素子で構成するLSIも大規模化しており、不揮発性メモリの分野では、読み出し専用の半導体記憶装置としてリードオンリメモリ(ROM)、電気的な書き換えが可能なEEPROM、フラッシュメモリがあり、これらのメモリも大容量化が進んでいる。
フラッシュメモリは、EEPROMとしてブロックごとのデータまたは全ビットのデータを一括消去することができるフラッシュ型EEPROMのことであるが、このフラッシュメモリに書き込みや消去を行なう場合は、書き込み命令や消去命令などの設定コマンドをフラッシュメモリに対して与え、フラッシュメモリは、このコマンドに従って動作を実行する。
また、フラッシュメモリはブロック単位の消去とバイト単位の書き込みが出来るメモリであるが、その初期状態は他のメモリと異なり全ブロックが論理レベルの“1”レベル状態になっており、この状態をフラッシュメモリの消去状態としている。
上述したように、フラッシュメモリでは消去状態はメモリ領域が“1”レベルであり、データが書き込まれた状態は“0”レベルであるから、“0”レベルを書き込むことは出来ても“1”レベルを書き込むことは出来無いことになり、このことをフラッシュメモリの非対称性と称している。
また、フラッシュメモリの消去は、アドレス単位ではなく、ある一定のブロック単位で行われるのが一般的である。すなわち、1つのデータを書き換えるたびにブロック消去動作を行わなければならず、1回のデータ書き換え動作に際して、ブロックの消去時間に余計に時間がかかることになる。
近年、フラッシュメモリ自体が多くの電子機器に使用されるようになってきており、そのデータ消去とデータ書換えには比較的長い時間を要することや、スイッチ付きの電源タップが広く普及し電源タップ側でも電源を遮断することができることから、フラッシュメモリのデータ消去中に電源を遮断され、フラッシュメモリのデータが破壊されるケースも増えている。
例えば、特許文献1には、データ書込み中に停電、エラー等が生じた場合、ファイルの破壊を防止し、ホストコンピュータに対するレスポンスを向上させる技術が開示されている。同特許文献の電源投入時に実行される処理を示した図10を参照すると、スタート後最初に実行される処理ステップS301では、初期化処理プログラムが、プログラム起動処理を実行する。
次の処理ステップS302では、リカバリプログラムが、不揮発性メモリの一時格納用記憶領域内における各制御情報域の「書込みステータス」をチェックする。何れかのセクタに対応する「書込みステータス」がデータ有りを示している場合には、リカバリプログラムは、処理を処理ステップS303に進める。
処理ステップS303では、一時格納用記憶領域からデータを読み込み、書き込み先のセレクタアドレスを求める。書き込みデータがセレクタ長に満たない場合は、セレクタバウンダリに合わせるため、書き込みセクタ内の未更新データを書き込みデータに補填する。
次の処理ステップS304では、リカバリプログラムは、不揮発性メモリマネージャに不揮発性メモリへの書込み処理を依頼する。依頼を受けた不揮発性メモリマネージャは、不揮発性メモリへの書き込み処理を実行する。
次の処理ステップS305では、リカバリプログラム31は、処理ステップS304にて書込対象データを書込んだセクタを含むファイルに対してミラーファイルが用意されているかどうかをチェックする。
そして、ミラーファイルが用意されていない場合には、処理をそのまま処理ステップS307に進める。これに対して、ミラーファイルが用意されている場合には、リカバリプログラムは、不揮発性メモリマネージャに対して、ミラーファイルへの書込処理を依頼する。依頼を受けた不揮発性メモリマネージャは、次の処理ステップS306において、処理ステップS303にて書込んだのと同じ書込対象データを、このミラーファイルに書込む。
処理ステップS307では、リカバリプログラムが、処理ステップS303にて特定した制御情報域の「書込ステータス」を書込データ無しに変更する。その後、リカバリプログラムは、処理を処理ステップS302に戻す。
以上の処理ステップS302〜処理ステップS307のループ処理を繰り返した結果、「書込みステータス」がデータ有りを示している各制御情報域に対応する全てのセクタに書込まれているデータが、本領域のデータ域または交換セクタ域に書き出され終わったと処理ステップS302にて判定した場合には、リカバリプログラムは、電源投入時の処理を終了し、入出力プログラムに対してコマンド待ち処理の実行を依頼する。
ホストコンピュータからの書込データは、一時格納用記憶領域に一旦書込まれた後に、不揮発性記憶領域である本領域へ書き出される。また、電源投入時にも、一時格納用記憶領域内の未書出の書込データが本領域へ書き出される。したがって、ホストコンピュータからICカードへのデータ入力中に電源断が生じても、本領域内のデータが破壊されず、一時格納領域から本領域へのデータ書出し中に電源断が生じても、一時格納領域内に残ったデータに基づいて本領域内のデータを復旧することができる、としている。
特開平11−7505号公報(段落「0087」〜「0095」、図17。)。
上述した従来のフラッシュメモリ搭載装置におけるフラッシュメモリへのデータ書込み処理には、書込み失敗時のリカバリ処理は入っているが書込み中に電源が遮断された場合にはそれを知る手段は無かった。
また、上述した特開平11−7505号公報は、カード型記録媒体を対象としているが、一般的な不揮発性メモリ搭載機器に適用する場合は、メモリ管理用CPUが必要となり、コスト高になる。また、一時保存用メモリを必要とするため、使用可能なメモリ領域が減るというデメリットがある。
さらに、必ず一時保存用メモリに書き込みを行った上、セレクタ情報も更新するため、書き込み時間が長くなる。
本発明の目的は、上述した従来の欠点に鑑みなされたものであり、フラッシュメモリ書換え中に電源が遮断され、データが破壊されても可能な限りデータを復旧して機器の誤動作を防ぐ手段を、書き込み時間が短く低コストで提供することにある。
本発明のフラッシュメモリ搭載の電子装置は、プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能を備えたことを特徴とする。
また、前記履歴エリアが、前記フラッシュメモリ内の前記メモリブロックの1つであり他のメモリブロックそれぞれへのデータ書換えが発生した場合に、そのデータ書き換え進捗情報を記録するメモリとすることができる。
さらに、前記データ書き換え進捗状態を示す保存データを格納するための履歴エリアとして、前記データ消去および前記書込み対象のブロックとは異なる任意の1ブロックを前記メモリブロック内にあらかじめ有することもできる。
さらにまた、書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとを共用する前記履歴エリアとして前記任意の1ブロックを備えることもできる。
また、メモリビットを共用する前記任意の1ブロックに代えて、書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとをそれぞれに個別に有する前記履歴エリアとして任意の複数ブロックを備えてもよい。
さらに、ブロック消去コードを記録するメモリビットをさらに有する前記履歴エリアとして任意の複数ブロックを備えることもできる。
さらにまた、前記電源遮断の有無のみチェックする手段として、データ書き換え中コードおよびデータ書き換え終了コードの2状態のみを書き込む履歴エリアを備える。
また、前記2状態のみを書き込む履歴エリアを、1ビットのメモリで構成する前記履歴エリアを備えてもよい。
さらに、前記2状態のみを書き込む履歴エリアを、前記ブロック番号の最大値と同じ値のメモリビット数で構成する前記履歴エリアを備えることもできる。
さらにまた、前記データ書き換え状態を示す保存データの書き込み機能を前記制御手段が実行する際に、前記制御手段が、前記フラッシュメモリにおけるブロック単位の消去およびブロック単位の書き込み機能の実行に代えて、前記履歴エリアの情報をビットごとに書き換える機能を有することもできる。
また、前記履歴エリアのみの情報をビットごとに書き換える機能を前記制御手段に実行させる際に、前記制御手段が、前記メモリブロックのうちデータ書き換え対象ブロックのブロック番号を前記履歴エリアの対応ビットに書き込む機能と、書き込まれた前記対応ビットを、前記対象ブロックに対するブロック書き込みが終了した時点で終了コードで上書きして書き換える機能とを有することでもよい
さらに、前記上書きして書き換える機能に代えて、前記ブロック番号および前記書込み終了コードを、それぞれ異なる他のビットに割り当てることで過去の書換え情報を全て保存する機能を有することもできる
本発明のフラッシュメモリ搭載の電子装置の他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能を備え、前記データ書換え時に、常にチェックサムを更新して書き換え結果データが正常か否かを検証するデータ検証手段として、前記メモリブロック毎にそれぞれチェックサム領域を有することにある。
また、前記制御手段は、前記データ書換が正常に終了しなかった場合に、該当メモリブロックに対してチェックサムによりデータの有効性を確認した後、該当メモリブロックを一度消去し、その後でデータを書き戻してデータ復旧をする機能を有することもできる。
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法は、プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ電子装置に搭載し、前記フラッシュメモリのデータ書換え実行中に起きた停電または誤操作による電源遮断後の電源再投入時に、電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出させ、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化の処理ステップを前記制御手段に実行させて、前記電子装置の誤動作を防止することを特徴とする。
また、前記フラッシュメモリ内の前記メモリブロックの1つである前記履歴エリア以外の他のブロックそれぞれへのデータ書換えが発生した場合に、そのデータ書き換え進捗情報を前記制御手段が前記履歴エリアに記録させることができる。
さらに、前記データ書き換え進捗状態を示す保存データを、前記データ消去および前記書込み対象のブロックとは異なる任意の1ブロックであって、かつ前記メモリブロック内にあらかじめ設けられた履歴エリアから読み出すこともできる。
さらにまた、前記任意の1ブロックを、書き換え対象のブロック番号を記録するメモリビットおよび書き換え終了コードを記録するメモリビットとして共用することもできる。
また、メモリビットを共用する前記任意の1ブロックに代えて、あらかじめ任意の複数ブロックを前記履歴エリアに割り当て、書き換え対象のブロック番号と書き換え終了コードとを前記任意の複数ブロックそれぞれのメモリビットに個別に記録することもできる。
さらに、書き換え対象のブロック番号および書き換え終了コードの他にさらにブロック消去コードも個別に記録することもできる。
さらにまた、前記制御手段が、前記履歴エリアに未使用コード、データ書き換え中コードおよびデータ書き換え終了コードの3状態のみを書き込み前記電源遮断の有無を表示させてもよい。
また、2ビットのメモリで構成する履歴エリアに前記3状態のみを書き込むこともできる。
さらに、前記ブロック番号の最大値と同じ値のメモリビット数で構成する前記履歴エリアに前記2状態のみを書き込むこともできる。
さらにまた、前記データ書き換え状態を示す保存データの書き込み処理を前記制御手段に実行させる際に、前記フラッシュメモリにおけるブロック単位の消去およびブロック単位の書き込み処理に代えて、前記履歴エリアの情報をビットごとに書き換える処理を前記制御手段に実行させることもできる。
また、前記履歴エリアのみの情報をビットごとに書き換える処理は、前記メモリブロックのうちデータ書き換え対象ブロックのブロック番号を前記履歴エリアの対応ビットに書き込む処理と、書き込まれた前記対応ビットを、前記対象ブロックに対するブロック書き込みが終了した時点で終了コードで上書きして書き換える処理とを実行することでもよい。
さらに、前記履歴エリアに記録する情報として必要なビット数n(nは整数)は、前記メモリブロックの総数と未使用領域コード数と書換終了コード数との加算結果から1を減じて求めた値をnビットのバイナリデータとして前記履歴エリアのメモリ素子に対応させることでもよい。
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法の他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ電子装置に搭載し、前記フラッシュメモリのデータ書換え実行中に起きた停電または誤操作による電源遮断後の電源再投入時に、電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出させ、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化の処理ステップを前記制御手段に実行させるとともに、前記データ書換え時に、前記メモリブロック毎にそれぞれ設けたチェックサム領域のチェックサムを更新して書き換え結果データが正常か否かを検証することにある。
また、前記データ書換が正常に終了しなかった場合に、前記制御手段により、該当メモリブロックに対してチェックサムによりデータの有効性を確認した後、該当メモリブロックを一度消去し、その後でデータを書き戻してデータ復旧をすることができる。
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法のさらに他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、ブロック書換えをする場合の前記履歴エリアのメモリビット操作手順として、前記履歴エリアに未使用領域が残っているか確認するステップと、未使用領域が無ければ、前記履歴エリアをブロック消去し、全エリアを未使用領域に戻すステップと、検出した未使用領域に書換えを行うブロック番号を書き込むステップと、書換え対象のブロックをブロック消去した後、1ブロック分の新しいデータを書き込み、かつ、前記書換え対象のブロック内に新データのチェックサムも同時に書き込むステップと、書込みが終了した後、前記履歴エリアのブロックを書換終了コードにするために全てのビットを「0」にするステップと、を前記制御手段に実行させることにある。
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法のさらにまた他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、電源再投入時に前記履歴エリアをチェックしてデータ復旧をする手順として、前記履歴エリアの未使用領域の1つ前にある最終書換え情報を確認するステップと、前記最終書換え情報が書換終了コードの場合はそのまま起動を続けるステップと、前記最終書換え情報がブロック番号であった場合は、該当ブロックのチェックサムを計算し同一ブロックに書かれているチェックサム値と比較するステップと、前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、前記チェックサムが合致しなかった場合は、再度該当ブロックのデータを読み直し、前記チェックサムを再確認するステップと、再確認の結果、前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、再確認でも前記チェックサムが一致しない場合は、ブロック消去後に初期状態に戻すステップと、を前記制御手段に実行させることにある。
本発明の効果として、フラッシュメモリ書換中に電源が遮断されフラッシュメモリ内のデータが破壊された場合でも、書換が正常に終了できなかった履歴が残るため、電源再投入時にデータの復旧や初期化を行い、機器の誤動作を防ぐことが出来るので、信頼性の向上に寄与する。
また、電源遮断時のデータ破壊の状況によっては一見データ破壊が無いように見えるが、後に同一アドレスが正常に読めない場合も発生し得る。このような場合は一度ブロック消去を行い該当ブロックを正常化する必要があるが、本発明ではこのような場合であっても、書換が正常に終了しなかったブロックに対してチェックサムによりデータの有効性を確認した後、該当ブロックを必ず一度消去した後にデータを書き戻すため、確実にデータ復旧することが可能である。
ブロック消去をせずに履歴情報を追記する方法により、通常のフラッシュメモリの書換えを行う手順と比較しても、書込み時間を大幅に短縮することができ、履歴の記録を行うオーバーヘッド時間を最小とし、操作性を損なうことなくデータの信頼性を上げることが可能である。
また、履歴の書込み中に電源を遮断されるリスクを最小化することができる。
さらに、履歴情報としてブロック番号を書いたビットに書換え終了コードを上書きすることで、履歴エリアを効率よく使用することが可能である。
本発明の実施の形態を図面を参照しながら詳細に説明する。
初めに本発明の概要を説明すると、記憶素子としてフラッシュメモリを搭載する電子機器において、フラッシュメモリの書換え中に停電や誤操作により電源が遮断された場合、電源再投入時に中断した書き込み状況のデータを検出し、データ復旧あるいはデータ初期化を行うことで、フラッシュメモリ内データの破壊によって発生する機器の誤動作を防止するものである。
すなわち、データ消去、書込みを行うメモリブロック(以下、内部ブロックと称す)とは異なる別の内部ブロックに履歴エリアを設け、各内部ブロックへの書換えが発生した場合に、履歴エリア内にその情報を保存することで、電源再投入時に容易に前回の終了状態が検出可能となる。また、履歴エリアへの情報保存を通常のフラッシュメモリの書換えに要する時間よりも短くすることで、履歴エリア書換え中に電源が遮断されるリスクを回避するものである。
本発明の実施例1における、本発明のフラッシュメモリ搭載電子装置1の構成を示した図1と、一般的なフラッシュメモリの構成図を示した図2と、本発明の特徴であるフラッシュメモリ5の構成を示した図3と、図3における履歴エリア7を除く他の内部メモリのデータ構成を示した図4をそれぞれ参照しながら説明する。
図1において、電子装置1は、制御手段としてプログラム制御により動作する中央処理装置CPU2およびプログラムを格納するROM3と、複数の内部ブロックで構成され制御データを一時記憶する、RAM4およびフラッシュメモリ5と、これら構成要素相互間を接続するバス6とをそれぞれ搭載する構成である。
図2において、一般的なフラッシュメモリのメモリ領域は、複数の内部ブロック1〜n(nは整数)に分かれており、内部ブロック毎に消去/書込みが可能である。
図3において、本発明の特徴であるフラッシュメモリ5は、内部ブロック1〜nのうちの任意の1ブロックを履歴エリア7とし、この履歴エリア7には、他の各内部ブロックへのデータ書換えが発生した場合に、その書き換え進捗情報を記録する。
この時、履歴エリア7への書込み速度を高速化するために、前述したような通常書込みのために行われるブロック消去、その後に行われる1ブロックデータ書込み、という手順ではなく、履歴エリア7の情報をビット毎に書き換えることで、履歴エリア7への書込み時間を短縮するものである。
図4を参照すると、内部データ1〜nの構成は、各内部データ1〜nまでのチェックサム計算範囲に対して、チェックサム下位バイトおよびチェックサム上位バイトからなるチェックサムを保持する。すなわち、ブロック内最下位ドレスにデータ1の記憶領域があり、ブロック内最上位アドレスにチェックサム上位アドレスの記憶領域が存在する。
内部ブロック内のデータ書換えが発生した場合には、常にその対象範囲であるチェックサム計算範囲内のデータのチェックサムを更新することで、常にデータの正当性を検証可能にしてある。
次に、本実施例1の動作を説明する。
まず図3を参照すると、フラッシュメモリ5を構成する複数の内部ブロックのうち、任意の1ブロックを履歴エリア7とする。履歴エリア7以外の他の内部ブロック8は図4に示すようにブロック毎のチェックサムを同一ブロック内に常に保存する。
履歴エリア7に記録する情報として必要なビット数nを求めるための、履歴エリア7に記録する情報の形式の一実施例を示した図5を参照すると、初期値としてAddr0に8ビットのデータ11111111、Addr1に8ビットのデータ11111111の状態にセットされている(図5(a))。
ブロック1書換中の履歴エリアの状態として、最下位ビットにブロック1が書き換え中であることを示す「1」が書き込まれ、それ以外のAddr0は0000000のままである(図5(b))。
ブロック1の書換終了の履歴エリアの状態として、最下位ビットにブロック1が書き換え終了であることを示す「0」が書き込まれ、それ以外のAddr0は0000000のままである(図5(c))。
ブロック135書換中の履歴エリアの状態として、Addr135の下位3ビットおよび最上位ビットにブロック135が書き換え中であることを示す「1」がそれぞれ書き込まれ、それ以外のAddr1の4ビット目から7ビット目までは0000、Addr0は0000000のままである(図5(d))。
ブロック135の書換終了の履歴エリアの状態として、Addr135の下位3ビットおよび最上位ビットにブロック135が書き換え終了であることを示す「0」が書き込まれ、それ以外のビットおよびAddr0は0000000のままである(図5(e))。
上述の1回のブロック書換え情報を記録するために必要なビット数は総ブロック数により異なる。
例えば、総ブロック数を135とした場合、次式により必要ビット数を求める。
ブロック数(135)+未使用領域コード数(1)+書換終了コード数(1)−1
=136=10001000(b)
なお、1情報=8ビット、未使用領域コード=11111111(b)、書換終了コード=00000000(b)とする。履歴エリア7は工場出荷時または初回電源投入時にブロック消去し全ビットを1、すなわち初期化する。
次に、ブロック書換手順を示した図6を参照すると、ブロック書換えをする場合における履歴エリア7のビット操作手順は、まず処理ステップS101において、履歴エリア7に未使用領域が残っているかを確認する。履歴エリアの下位ビットから順に8ビット単位で「未使用領域コード」を検索する。
この時、未使用領域が無ければ、処理ステップS102において履歴エリア7をブロック消去し、全エリアを未使用領域に戻す(初期状態)。
次に、処理ステップS103において、未使用領域に書換えを行うブロック番号を書き込む。図5の例においてはブロック1を示す00000001(b)を書き込む。
次に、処理ステップS104において、書換えブロックをブロック消去した後、処理ステップS105においてブロック消去が正常終了したかを確認し、正常終了していなければ、処理ステップS106において履歴エリアに書き換え終了コードを書き込み、消去失敗として終了する。
処理ステップS105においてブロック消去が正常終了していれば、処理ステップS107においてブロック内に新データのチェックサムも同時に書き込む。チェックサムの書き込み後、処理ステップS108において1ブロック分の新しいデータを書き込む。
データ書込み後、処理ステップS109においてデータ書込みが正常終了したかを確認し、正常終了していなければ、処理ステップS110において履歴エリアに書き換え終了コードを書き込み、消去失敗として終了する。
処理ステップS109においてデータ書込みが正常終了していれば、処理ステップS111において、履歴エリア7のブロック1を「書換終了コード」00000000(b)にするために、最下位ビットのみ1→0に換える。
具体的には、Addr0に11111110(b)をWRITEする。仮に図6においてブロック消去、ブロック書込みが正常に終了しなかった場合も、前述したように履歴エリア7の情報は「書換終了コード」に変更する。
次のブロック書換えをする場合、図5に示すように、例えばブロック番号が135の場合は、次の未使用領域であるAddr1を使用し、上述の処理ステップに準じて書き換えを行う。
次に、電源投入時に行う履歴エリア7のチェックとデータ復旧手順を説明する。
電源投入時に行う履歴エリア7のチェックとデータ復旧手順を示した図7を参照すると、処理ステップS201において、履歴エリア7の未使用領域の1つ前にある最終書換え情報を確認する。
最終書換え情報が「書換終了コード」の場合処理ステップS202でそのまま起動を続ける。処理ステップS201において最終書換え情報がブロック番号であった場合、処理ステップS203において、該当するブロック番号の書換え中に電源が遮断された可能性があるため、該当ブロックのチェックサムを計算し同一ブロックに書かれているチェックサム値と比較する。
処理ステップS203においてチェックサムが合致した場合、処理ステップS204において該当ブロックのデータを一時的にRAM4に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻す。
処理ステップS203においてチェックサムが合致しなかった場合、処理ステップS205においてもう一度該当ブロックのデータを読み直しチェックサムを再確認する。再確認の結果チェックサムが合致した場合は、処理ステップS204においてデータを一時的にRAM4に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻す。
処理ステップS205において再確認でもチェックサムが合致しない場合、処理ステップS206においてブロック消去後に各電子機器の異常時処置方法に従い工場出荷状態に戻す等の処置を行う。
以上説明したように、フラッシュメモリ書換中に電源が遮断されフラッシュメモリ内のデータが破壊された場合も書換が正常に終了できなかった履歴が残るので、次の電源再投入時にデータの復旧や初期化を行い、機器の誤動作を防ぐことが出来る。
また、電源遮断時のデータ破壊の状況によっては一見データ破壊が無いように見えるが、後に同一アドレスが正常に読めない場合もあり得る。このような場合は一度ブロック消去を行い該当ブロックを正常化する必要があるが、本発明ではこのような場合であっても、書換が正常に終了しなかったブロックに対してチェックサムによりデータの有効性を確認した後、該当ブロックを必ず一度消去した後にデータを書き戻すので、確実にデータ復旧することができる。
例えば通常フラッシュメモリの書換えを行う手順との比較をした図8を参照すると、本発明ではブロック消去をせずに履歴情報を追記する(上書き)方法をとっているので、書込み時間を大幅に短縮することができ、履歴の記録を行うオーバーヘッド時間を最小とし、操作性を損なうことなくデータの信頼性を上げることが可能である。また、履歴の書込み中に電源を遮断されるリスクを最小化することができる。
すなわち、履歴情報としてブロック番号を書いたビットに書換え終了コードを上書きすることで、履歴エリアを効率よく使用することができる。
上述したように、本発明の実施例1では履歴エリア7への情報書込み効率が最大となるようブロック番号を書いたビットに終了コードを上書きする例を説明したが、実施例2では、履歴エリア7のサイズが比較的大きく取れる場合を説明する。
履歴エリア7に記録する情報の形式の実施例2を示した図9を参照すると、初期値としてAddr0に8ビットのデータ11111111、Addr1に8ビットのデータ11111111の状態にセットされている(図9(a))。
ブロック1書換中の履歴エリアの状態として、最下位ビットにブロック1が書き換え中であることを示す「1」が書き込まれ、それ以外のAddr0は0000000のままである(図9(b))。
ブロック1の書換終了の履歴エリアの状態として、Addr1にブロック1が書き換え終了であることを示す00000000が書き込まれ、Addr0は00000001のままである(図9(c))。
ブロック135書換中の履歴エリアの状態として、Addr268の下位3ビットおよび最上位ビットにブロック135が書き換え中であることを示す「1」がそれぞれ書き込まれ、それ以外のAddr268の4ビット目から7ビット目までは0000、Addr269は11111111のままである(図9(d))。
ブロック135の書換終了の履歴エリアの状態として、Addr269の全ビットに
ブロック135が書き換え終了であることを示す00000000が書き込まれ、Addr138は10000111のままである(図9(e))。
上述の1回のブロック書換え情報を記録するために必要なビット数は総ブロック数により異なることは実施例1と同様である。
上述したように、メモリビットを共用する任意の1ブロックに代えて、あらかじめ任意の複数ブロックを履歴エリアに割り当て、書き換え対象のブロック番号と書き換え終了コードとを任意の複数ブロックそれぞれのメモリビットに個別に記録する。したがって、ブロック番号、書込み終了コードを別のアドレスのビットに割り当てることで過去の書換え情報を全て保存することができる。
また、書き換え対象のブロック番号および書き換え終了コードの他にさらにブロック消去コードも個別に記録することでもよい。したがって、ブロック消去コード等を設定することでより詳細な履歴を残すことも可能である。
すなわち、Addr0が書き換え対象のブロック番号の記録領域、Addr1が書き換え終了コードの記録領域、Addr2がブロック消去コードの記録領域に設定しておくことで対応することができ、例えばブロック135は、Addr402が書き換え対象のブロック番号の記録領域、Addr403が書き換え終了コードの記録領域、Addr404がブロック消去コードの記録領域となる。
逆に、履歴エリア7のサイズが小さい場合にはブロック番号を省略し、書換中、書換終了の2つの状態のみ履歴エリアに書き込むことで、電源遮断の有無のみチェックすることも可能である。
ブロック番号の書き込み領域が不要であるから、前述した実施例のように1ブロックに対して8ビットの領域を確保する必要がなくなり、例えば、2ビットのメモリで構成する履歴エリアに3状態のみを書き込む。すなわち、書き換え中のときに「01」を書き込み、書換終了時には、書き込まれている「01」を「00」に書き換えればよい。
本発明の活用例として、フラッシュメモリ書換中に電源が遮断されフラッシュメモリ内のデータが破壊された場合も書換が正常に終了できなかった履歴が残るため、次の電源再投入時にデータの復旧や初期化を行い、機器の誤動作防止に利用できる。
また、通常フラッシュメモリの書換えを行う手順と比較し、ブロック消去をせずに履歴情報を追記する方法により書込み時間を大幅に短縮することができ、履歴の記録を行うオーバーヘッド時間を最小とし、操作性を損なうことなくデータの信頼性を上げることが可能である。
本発明のフラッシュメモリ搭載電子装置1の構成を示した図である。 一般的なフラッシュメモリの構成図を示した図である。 本発明の特徴であるフラッシュメモリ5の構成を示した図である。 図3における履歴エリア7を除く他の内部メモリのデータ構成を示した図である。 履歴エリア7に記録する情報の形式の一実施例を示した図である。 ブロック書換手順を示した図である。 電源投入時に行う履歴エリア7のチェックとデータ復旧手順を示した図である。 通常フラッシュメモリの書換えを行う手順との比較をした図である。 履歴エリア7に記録する情報の形式の実施例2を示した図である。 従来例の電源投入時に実行される処理を示した図である。
符号の説明
1 フラッシュメモリ搭載電子装置
2 CPU
3 ROM
4 RAM
5 フラッシュメモリ
6 バス
7 履歴エリア
8 他の内部ブロック

Claims (6)

  1. プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能を備え、前記データ書き換え進捗状態を示す保存データを格納するための履歴エリアとして、データ消去および書込み対象のブロックとは異なる任意の1ブロックを前記メモリブロック内にあらかじめ有し、書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとを共用する前記履歴エリアとして前記任意の1ブロックを備えたことを特徴とするフラッシュメモリ搭載電子装置。
  2. メモリビットを共用する前記任意の1ブロックに代えて、書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとをそれぞれに個別に有する前記履歴エリアとして任意の複数ブロックを備える請求項1記載のフラッシュメモリ搭載電子装置。
  3. ブロック消去コードを記録するメモリビットをさらに有する前記履歴エリアとして任意の複数ブロックを備える請求項2記載のフラッシュメモリ搭載電子装置。
  4. プログラム制御により動作する中央処理装置および前記プログラムを格納するROMを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、RAMおよびフラッシュメモリとをそれぞれ電子装置に搭載し、前記フラッシュメモリのデータ書換え実行中に起きた停電または誤操作による電源遮断後の電源再投入時に、電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出させ、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化の処理ステップを前記制御手段に実行させて、前記電子装置の誤動作を防止し、前記データ書き換え進捗状態を示す保存データを、データ消去および書込み対象のブロックとは異なる任意の1ブロックであって、かつ前記メモリブロック内にあらかじめ設けられた履歴エリアから読み出し、前記任意の1ブロックを、書き換え対象のブロック番号を記録するメモリビットおよび書き換え終了コードを記録するメモリビットとして共用することを特徴とするフラッシュメモリ搭載電子装置のメモリデータ管理方法。
  5. メモリビットを共用する前記任意の1ブロックに代えて、あらかじめ任意の複数ブロックを前記履歴エリアに割り当て、書き換え対象のブロック番号と書き換え終了コードとを前記任意の複数ブロックそれぞれのメモリビットに個別に記録する請求項4記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
  6. 書き換え対象のブロック番号および書き換え終了コードの他にさらにブロック消去コードも個別に記録する請求項記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
JP2003286224A 2003-08-04 2003-08-04 フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム Expired - Fee Related JP4266742B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003286224A JP4266742B2 (ja) 2003-08-04 2003-08-04 フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003286224A JP4266742B2 (ja) 2003-08-04 2003-08-04 フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2005056144A JP2005056144A (ja) 2005-03-03
JP4266742B2 true JP4266742B2 (ja) 2009-05-20

Family

ID=34365598

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003286224A Expired - Fee Related JP4266742B2 (ja) 2003-08-04 2003-08-04 フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム

Country Status (1)

Country Link
JP (1) JP4266742B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843543B1 (ko) 2006-10-25 2008-07-04 삼성전자주식회사 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
JP5318076B2 (ja) 2010-11-30 2013-10-16 株式会社東芝 複数のアクセスコマンドを並行して実行するメモリ装置及び同装置におけるメモリアクセス方法
JP6036618B2 (ja) * 2013-09-13 2016-11-30 カシオ計算機株式会社 電子機器及びプログラム
JP2018013837A (ja) * 2016-07-19 2018-01-25 株式会社デンソー データ書き換え装置、データ書き換えプログラム
JP6935694B2 (ja) 2017-07-12 2021-09-15 株式会社デンソー 電子制御装置

Also Published As

Publication number Publication date
JP2005056144A (ja) 2005-03-03

Similar Documents

Publication Publication Date Title
KR101522744B1 (ko) 새로운 불량 블록 검출
JP4560408B2 (ja) 不揮発性記憶装置の制御方法
US7240178B2 (en) Non-volatile memory and non-volatile memory data rewriting method
US20100169543A1 (en) Recovery for non-volatile memory after power loss
US7450436B2 (en) Device recoverable purge for flash storage device
JP2002351685A (ja) 不揮発性メモリのデータ更新方法及び制御装置
JP2010079856A (ja) 記憶装置およびメモリ制御方法
JP4266742B2 (ja) フラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラム
JP5660521B2 (ja) 不揮発性半導体記憶装置およびメモリ管理方法
US20140122785A1 (en) Data writing method and system
JP3675375B2 (ja) 不揮発性メモリ並びに不揮発性メモリのデータ書き換え方法
CN113434086B (zh) 数据存储方法、装置、非易失性存储器件和存储器
US7353348B2 (en) Nonvolatile memory and card reader provided with the same
JP3620478B2 (ja) 記憶装置、この記憶装置を用いたデータ処理システム及びデータ読み出し方法
US7313648B2 (en) Corruption tolerant method and system for deploying and modifying data in flash memory
US20070101049A1 (en) Redundant purge for flash storage device
US20070088905A1 (en) System and method for purging a flash storage device
KR100907550B1 (ko) 시리얼 eeprom의 손상된 데이터를 복구하기 위한장치 및 방법
JP2010079686A (ja) データ処理装置、メモリ制御回路およびメモリ制御方法
JP4239754B2 (ja) 不揮発メモリシステム
US7849279B2 (en) Method for the secure updating data areas in non volatile memory, device to perform such a method
JP2006107363A (ja) 携帯可能電子装置と携帯可能電子装置に用いられるメモリアクセス方法
KR100575927B1 (ko) 이동통신 단말기에서 부팅 방법
TWI634418B (zh) 用於程式化失敗時回復資料的方法與控制器及使用該方法與控制器的系統
CN107632902B (zh) 用于程序化失败时回复数据的方法、控制器及存储系统

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20050322

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060518

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070126

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20080617

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080819

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081017

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090109

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: 20090203

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees