(57)【要約】【課題】フラッシュメモリ搭載電子装置のメモリ復旧動作を改善し誤動作を防止する。【解決手段】電子装置に搭載されたフラッシュメモリは、内部ブロック１〜ｎのうちの任意の１ブロックを履歴エリア７とし、この履歴エリア７には、他の各内部ブロックへのデータ書換えが発生した場合に、その書き換え進捗情報を記録する。この時、履歴エリア７への書込み速度を高速化するために、通常書込みのために行われるブロック消去、その後に行われる１ブロックデータ書込み、という手順ではなく、履歴エリア７の情報をビット毎に書き換えることで、履歴エリア７への書込み時間を短縮するものである。【選択図】      図３
2005056144.tif 000002
【特許請求の範囲】
【請求項１】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能を備えたことを特徴とするフラッシュメモリ搭載電子装置。
【請求項２】
前記履歴エリアが、前記フラッシュメモリ内の前記メモリブロックの1つであり他のメモリブロックそれぞれへのデータ書換えが発生した場合に、そのデータ書き換え進捗情報を記録するメモリである請求項１記載のフラッシュメモリ搭載電子装置。
【請求項３】
前記データ書き換え進捗状態を示す保存データを格納するための履歴エリアとして、前記データ消去および前記書込み対象のブロックとは異なる任意の１ブロックを前記メモリブロック内にあらかじめ有する請求項１記載のフラッシュメモリ搭載電子装置。
【請求項４】
書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとを共用する前記履歴エリアとして前記任意の１ブロックを備える請求項３載のフラッシュメモリ搭載電子装置。
【請求項５】
メモリビットを共用する前記任意の１ブロックに代えて、書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとをそれぞれに個別に有する前記履歴エリアとして任意の複数ブロックを備える請求項４載のフラッシュメモリ搭載電子装置。
【請求項６】
ブロック消去コードを記録するメモリビットをさらに有する前記履歴エリアとして任意の複数ブロックを備える請求項５載のフラッシュメモリ搭載電子装置。
【請求項７】
前記電源遮断の有無のみチェックする手段として、データ書き換え中コードおよびデータ書き換え終了コードの２状態のみを書き込む履歴エリアを備える請求項１記載のフラッシュメモリ搭載電子装置。
【請求項８】
前記２状態のみを書き込む履歴エリアを、１ビットのメモリで構成する前記履歴エリアを備える請求項７記載のフラッシュメモリ搭載電子装置。
【請求項９】
前記２状態のみを書き込む履歴エリアを、前記ブロック番号の最大値と同じ値のメモリビット数で構成する前記履歴エリアを備える請求項７記載のフラッシュメモリ搭載電子装置。
【請求項１０】
前記データ書き換え状態を示す保存データの書き込み機能を前記制御手段が実行する際に、前記制御手段が、前記フラッシュメモリにおけるブロック単位の消去およびブロック単位の書き込み機能の実行に代えて、前記履歴エリアの情報をビットごとに書き換える機能を有する請求項１記載のフラッシュメモリ搭載電子装置。
【請求項１１】
前記履歴エリアのみの情報をビットごとに書き換える機能を前記制御手段に実行させる際に、前記制御手段が、前記メモリブロックのうちデータ書き換え対象ブロックのブロック番号を前記履歴エリアの対応ビットに書き込む機能と、書き込まれた前記対応ビットを、前記対象ブロックに対するブロック書き込みが終了した時点で終了コードで上書きして書き換える機能とを有する請求項１０記載のフラッシュメモリ搭載電子装置。
【請求項１２】
前記上書きして書き換える機能に代えて、前記ブロック番号および前記書込み終了コードを、それぞれ異なる他のビットに割り当てることで過去の書換え情報を全て保存する機能を有する請求項１０記載のフラッシュメモリ搭載電子装置。
【請求項１３】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能を備え、前記データ書換え時に、常にチェックサムを更新して書き換え結果データが正常か否かを検証するデータ検証手段として、前記メモリブロック毎にそれぞれチェックサム領域を有することを特徴とするフラッシュメモリ搭載電子装置。
【請求項１４】
前記制御手段は、前記データ書換が正常に終了しなかった場合に、該当メモリブロックに対してチェックサムによりデータの有効性を確認した後、該当メモリブロックを一度消去し、その後でデータを書き戻してデータ復旧をする機能を有する請求項１または１３記載のフラッシュメモリ搭載電子装置。
【請求項１５】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ電子装置に搭載し、前記フラッシュメモリのデータ書換え実行中に起きた停電または誤操作による電源遮断後の電源再投入時に、電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出させ、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化の処理ステップを前記制御手段に実行させて、前記電子装置の誤動作を防止することを特徴とするフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項１６】
前記フラッシュメモリ内の前記メモリブロックの1つである前記履歴エリア以外の他のブロックそれぞれへのデータ書換えが発生した場合に、そのデータ書き換え進捗情報を前記制御手段が前記履歴エリアに記録させる請求項１５記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項１７】
前記データ書き換え進捗状態を示す保存データを、前記データ消去および前記書込み対象のブロックとは異なる任意の１ブロックであって、かつ前記メモリブロック内にあらかじめ設けられた履歴エリアから読み出す請求項１５記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項１８】
前記任意の１ブロックを、書き換え対象のブロック番号を記録するメモリビットおよび書き換え終了コードを記録するメモリビットとして共用する請求項１７記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項１９】
メモリビットを共用する前記任意の１ブロックに代えて、あらかじめ任意の複数ブロックを前記履歴エリアに割り当て、書き換え対象のブロック番号と書き換え終了コードとを前記任意の複数ブロックそれぞれのメモリビットに個別に記録する請求項１８載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２０】
書き換え対象のブロック番号および書き換え終了コードの他にさらにブロック消去コードも個別に記録する請求項１９載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２１】
前記制御手段が、前記履歴エリアに未使用コード、データ書き換え中コードおよびデータ書き換え終了コードの３状態のみを書き込み前記電源遮断の有無を表示させる請求項１５記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２２】
２ビットのメモリで構成する履歴エリアに前記３状態のみを書き込む請求項２１記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２３】
前記ブロック番号の最大値と同じ値のメモリビット数で構成する前記履歴エリアに前記３状態のみを書き込む請求項２１記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２４】
前記データ書き換え状態を示す保存データの書き込み処理を前記制御手段に実行させる際に、前記フラッシュメモリにおけるブロック単位の消去およびブロック単位の書き込み処理に代えて、前記履歴エリアの情報をビットごとに書き換える処理を前記制御手段に実行させる請求項１６記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２５】
前記履歴エリアのみの情報をビットごとに書き換える処理は、前記メモリブロックのうちデータ書き換え対象ブロックのブロック番号を前記履歴エリアの対応ビットに書き込む処理と、書き込まれた前記対応ビットを、前記対象ブロックに対するブロック書き込みが終了した時点で終了コードで上書きして書き換える処理とを実行する請求項２４記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２６】
前記履歴エリアに記録する情報として必要なビット数ｎ（ｎは整数）は、前記メモリブロックの総数と未使用領域コード数と書換終了コード数との加算結果から１を減じて求めた値をｎビットのバイナリデータとして前記履歴エリアのメモリ素子に対応させる請求項２５記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２７】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ電子装置に搭載し、前記フラッシュメモリのデータ書換え実行中に起きた停電または誤操作による電源遮断後の電源再投入時に、電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出させ、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化の処理ステップを前記制御手段に実行させるとともに、前記データ書換え時に、前記メモリブロック毎にそれぞれ設けたチェックサム領域のチェックサムを更新して書き換え結果データが正常か否かを検証することを特徴とするフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２８】
前記データ書換が正常に終了しなかった場合に、前記制御手段により、該当メモリブロックに対してチェックサムによりデータの有効性を確認した後、該当メモリブロックを一度消去し、その後でデータを書き戻してデータ復旧をする請求項１６または２７記載のフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項２９】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、ブロック書換えをする場合の前記履歴エリアのメモリビット操作手順として、前記履歴エリアに未使用領域が残っているか確認するステップと、
未使用領域が無ければ、前記履歴エリアをブロック消去し、全エリアを未使用領域に戻すステップと、
検出した未使用領域に書換えを行うブロック番号を書き込むステップと、
書換え対象のブロックをブロック消去した後、１ブロック分の新しいデータを書き込み、かつ、前記書換え対象のブロック内に新データのチェックサムも同時に書き込むステップと、
書込みが終了した後、前記履歴エリアのブロックを書換終了コードにするために全てのビットを「０」にするステップと、を前記制御手段に実行させることを特徴とするフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項３０】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、電源再投入時に前記履歴エリアをチェックしてデータ復旧をする手順として、前記履歴エリアの未使用領域の１つ前にある最終書換え情報を確認するステップと、
前記最終書換え情報が書換終了コードの場合はそのまま起動を続けるステップと、
前記最終書換え情報がブロック番号であった場合は、該当ブロックのチェックサムを計算し同一ブロックに書かれているチェックサム値と比較するステップと、
前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、
前記チェックサムが合致しなかった場合は、再度該当ブロックのデータを読み直し、前記チェックサムを再確認するステップと、
再確認の結果、前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、
再確認でも前記チェックサムが一致しない場合は、ブロック消去後に初期状態に戻すステップと、を前記制御手段に実行させることを特徴とするフラッシュメモリ搭載電子装置のメモリデータ管理方法。
【請求項３１】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、ブロック書換えをする場合の前記履歴エリアのメモリビット操作手順として、前記履歴エリアに未使用領域が残っているか確認するステップと、
未使用領域が無ければ、前記履歴エリアをブロック消去し、全エリアを未使用領域に戻すステップと、
検出した未使用領域に書換えを行うブロック番号を書き込むステップと、
書換え対象のブロックをブロック消去した後、１ブロック分の新しいデータを書き込み、かつ、前記書換え対象のブロック内に新データのチェックサムも同時に書き込むステップと、
書込みが終了した後、前記履歴エリアのブロックを書換終了コードにするために全てのビットを「０」にするステップと、を前記制御手段に実行させるプログラム。
【請求項３２】
プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、電源再投入時に前記履歴エリアをチェックしてデータ復旧をする手順として、前記履歴エリアの未使用領域の１つ前にある最終書換え情報を確認するステップと、
前記最終書換え情報が書換終了コードの場合はそのまま起動を続けるステップと、
前記最終書換え情報がブロック番号であった場合は、該当ブロックのチェックサムを計算し同一ブロックに書かれているチェックサム値と比較するステップと、
前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、
前記チェックサムが合致しなかった場合は、再度該当ブロックのデータを読み直し、前記チェックサムを再確認するステップと、
再確認の結果、前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、
再確認でも前記チェックサムが一致しない場合は、ブロック消去後に初期状態に戻すステップと、を前記制御手段に実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラムに係わり、特にデータ書き換え中の停電等による装置の誤動作を改善したフラッシュメモリ搭載電子装置、そのメモリデータ管理方法およびプログラムに関する。
【背景技術】
【０００２】
近年、半導体素子の微細化技術の進展に伴い、その半導体素子で構成するＬＳＩも大規模化しており、不揮発性メモリの分野では、読み出し専用の半導体記憶装置としてリードオンリメモリ（ＲＯＭ）、電気的な書き換えが可能なＥＥＰＲＯＭ、フラッシュメモリがあり、これらのメモリも大容量化が進んでいる。
【０００３】
フラッシュメモリは、ＥＥＰＲＯＭとしてブロックごとのデータまたは全ビットのデータを一括消去することができるフラッシュ型ＥＥＰＲＯＭのことであるが、このフラッシュメモリに書き込みや消去を行なう場合は、書き込み命令や消去命令などの設定コマンドをフラッシュメモリに対して与え、フラッシュメモリは、このコマンドに従って動作を実行する。
【０００４】
また、フラッシュメモリはブロック単位の消去とバイト単位の書き込みが出来るメモリであるが、その初期状態は他のメモリと異なり全ブロックが論理レベルの“１”レベル状態になっており、この状態をフラッシュメモリの消去状態としている。
【０００５】
上述したように、フラッシュメモリでは消去状態はメモリ領域が“１”レベルであり、データが書き込まれた状態は“０”レベルであるから、“０”レベルを書き込むことは出来ても“１”レベルを書き込むことは出来無いことになり、このことをフラッシュメモリの非対称性と称している。
【０００６】
また、フラッシュメモリの消去は、アドレス単位ではなく、ある一定のブロック単位で行われるのが一般的である。すなわち、１つのデータを書き換えるたびにブロック消去動作を行わなければならず、１回のデータ書き換え動作に際して、ブロックの消去時間に余計に時間がかかることになる。
【０００７】
近年、フラッシュメモリ自体が多くの電子機器に使用されるようになってきており、そのデータ消去とデータ書換えには比較的長い時間を要することや、スイッチ付きの電源タップが広く普及し電源タップ側でも電源を遮断することができることから、フラッシュメモリのデータ消去中に電源を遮断され、フラッシュメモリのデータが破壊されるケースも増えている。
【０００８】
例えば、特許文献1には、データ書込み中に停電、エラー等が生じた場合、ファイルの破壊を防止し、ホストコンピュータに対するレスポンスを向上させる技術が開示されている。同特許文献の電源投入時に実行される処理を示した図１０を参照すると、スタート後最初に実行される処理ステップＳ３０１では、初期化処理プログラムが、プログラム起動処理を実行する。
【０００９】
次の処理ステップＳ３０２では、リカバリプログラムが、不揮発性メモリの一時格納用記憶領域内における各制御情報域の「書込みステータス」をチェックする。何れかのセクタに対応する「書込みステータス」がデータ有りを示している場合には、リカバリプログラムは、処理を処理ステップＳ３０３に進める。
【００１０】
処理ステップＳ３０３では、一時格納用記憶領域からデータを読み込み、書き込み先のセレクタアドレスを求める。書き込みデータがセレクタ長に満たない場合は、セレクタバウンダリに合わせるため、書き込みセクタ内の未更新データを書き込みデータに補填する。
【００１１】
次の処理ステップＳ３０４では、リカバリプログラムは、不揮発性メモリマネージャに不揮発性メモリへの書込み処理を依頼する。依頼を受けた不揮発性メモリマネージャは、不揮発性メモリへの書き込み処理を実行する。
【００１２】
次の処理ステップＳ３０５では、リカバリプログラム３１は、処理ステップＳ３０４にて書込対象データを書込んだセクタを含むファイルに対してミラーファイルが用意されているかどうかをチェックする。
【００１３】
そして、ミラーファイルが用意されていない場合には、処理をそのまま処理ステップＳ３０７に進める。これに対して、ミラーファイルが用意されている場合には、リカバリプログラムは、不揮発性メモリマネージャに対して、ミラーファイルへの書込処理を依頼する。依頼を受けた不揮発性メモリマネージャは、次の処理ステップＳ３０６において、処理ステップＳ３０３にて書込んだのと同じ書込対象データを、このミラーファイルに書込む。
【００１４】
処理ステップＳ３０７では、リカバリプログラムが、処理ステップＳ３０３にて特定した制御情報域の「書込ステータス」を書込データ無しに変更する。その後、リカバリプログラムは、処理を処理ステップＳ３０２に戻す。
【００１５】
以上の処理ステップＳ３０２〜処理ステップＳ３０７のループ処理を繰り返した結果、「書込みステータス」がデータ有りを示している各制御情報域に対応する全てのセクタに書込まれているデータが、本領域のデータ域または交換セクタ域に書き出され終わったと処理ステップＳ３０２にて判定した場合には、リカバリプログラムは、電源投入時の処理を終了し、入出力プログラムに対してコマンド待ち処理の実行を依頼する。
【００１６】
ホストコンピュータからの書込データは、一時格納用記憶領域に一旦書込まれた後に、不揮発性記憶領域である本領域へ書き出される。また、電源投入時にも、一時格納用記憶領域内の未書出の書込データが本領域へ書き出される。したがって、ホストコンピュータからＩＣカードへのデータ入力中に電源断が生じても、本領域内のデータが破壊されず、一時格納領域から本領域へのデータ書出し中に電源断が生じても、一時格納領域内に残ったデータに基づいて本領域内のデータを復旧することができる、としている。
【００１７】
【特許文献１】特開平１１−７５０５号公報（段落「００８７」〜「００９５」、図１７。）。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
上述した従来のフラッシュメモリ搭載装置におけるフラッシュメモリへのデータ書込み処理には、書込み失敗時のリカバリ処理は入っているが書込み中に電源が遮断された場合にはそれを知る手段は無かった。
【００１９】
また、上述した特開平１１−７５０５号公報は、カード型記録媒体を対象としているが、一般的な不揮発性メモリ搭載機器に適用する場合は、メモリ管理用ＣＰＵが必要となり、コスト高になる。また、一時保存用メモリを必要とするため、使用可能なメモリ領域が減るというデメリットがある。
【００２０】
さらに、必ず一時保存用メモリに書き込みを行った上、セレクタ情報も更新するため、書き込み時間が長くなる。
【００２１】
本発明の目的は、上述した従来の欠点に鑑みなされたものであり、フラッシュメモリ書換え中に電源が遮断され、データが破壊されても可能な限りデータを復旧して機器の誤動作を防ぐ手段を、書き込み時間が短く低コストで提供することにある。
【課題を解決するための手段】
【００２２】
本発明のフラッシュメモリ搭載の電子装置は、プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能を備えたことを特徴とする。
【００２３】
また、前記履歴エリアが、前記フラッシュメモリ内の前記メモリブロックの1つであり他のメモリブロックそれぞれへのデータ書換えが発生した場合に、そのデータ書き換え進捗情報を記録するメモリとすることができる。
【００２４】
さらに、前記データ書き換え進捗状態を示す保存データを格納するための履歴エリアとして、前記データ消去および前記書込み対象のブロックとは異なる任意の１ブロックを前記メモリブロック内にあらかじめ有することもできる。
【００２５】
さらにまた、書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとを共用する前記履歴エリアとして前記任意の１ブロックを備えることもできる。
【００２６】
また、メモリビットを共用する前記任意の１ブロックに代えて、書き換え対象のブロック番号を記録するメモリビットと書き換え終了コードを記録するメモリビットとをそれぞれに個別に有する前記履歴エリアとして任意の複数ブロックを備えてもよい。
【００２７】
さらに、ブロック消去コードを記録するメモリビットをさらに有する前記履歴エリアとして任意の複数ブロックを備えることもできる。
【００２８】
さらにまた、前記電源遮断の有無のみチェックする手段として、データ書き換え中コードおよびデータ書き換え終了コードの２状態のみを書き込む履歴エリアを備える。
【００２９】
また、前記２状態のみを書き込む履歴エリアを、１ビットのメモリで構成する前記履歴エリアを備えてもよい。
【００３０】
さらに、前記２状態のみを書き込む履歴エリアを、前記ブロック番号の最大値と同じ値のメモリビット数で構成する前記履歴エリアを備えることもできる。
【００３１】
さらにまた、前記データ書き換え状態を示す保存データの書き込み機能を前記制御手段が実行する際に、前記制御手段が、前記フラッシュメモリにおけるブロック単位の消去およびブロック単位の書き込み機能の実行に代えて、前記履歴エリアの情報をビットごとに書き換える機能を有することもできる。
【００３２】
また、前記履歴エリアのみの情報をビットごとに書き換える機能を前記制御手段に実行させる際に、前記制御手段が、前記メモリブロックのうちデータ書き換え対象ブロックのブロック番号を前記履歴エリアの対応ビットに書き込む機能と、書き込まれた前記対応ビットを、前記対象ブロックに対するブロック書き込みが終了した時点で終了コードで上書きして書き換える機能とを有することでもよい
さらに、前記上書きして書き換える機能に代えて、前記ブロック番号および前記書込み終了コードを、それぞれ異なる他のビットに割り当てることで過去の書換え情報を全て保存する機能を有することもできる
本発明のフラッシュメモリ搭載の電子装置の他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能を備え、前記データ書換え時に、常にチェックサムを更新して書き換え結果データが正常か否かを検証するデータ検証手段として、前記メモリブロック毎にそれぞれチェックサム領域を有することにある。
【００３３】
また、前記制御手段は、前記データ書換が正常に終了しなかった場合に、該当メモリブロックに対してチェックサムによりデータの有効性を確認した後、該当メモリブロックを一度消去し、その後でデータを書き戻してデータ復旧をする機能を有することもできる。
【００３４】
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法は、プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ電子装置に搭載し、前記フラッシュメモリのデータ書換え実行中に起きた停電または誤操作による電源遮断後の電源再投入時に、電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出させ、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化の処理ステップを前記制御手段に実行させて、前記電子装置の誤動作を防止することを特徴とする。
【００３５】
また、前記フラッシュメモリ内の前記メモリブロックの1つである前記履歴エリア以外の他のブロックそれぞれへのデータ書換えが発生した場合に、そのデータ書き換え進捗情報を前記制御手段が前記履歴エリアに記録させることができる。
【００３６】
さらに、前記データ書き換え進捗状態を示す保存データを、前記データ消去および前記書込み対象のブロックとは異なる任意の１ブロックであって、かつ前記メモリブロック内にあらかじめ設けられた履歴エリアから読み出すこともできる。
【００３７】
さらにまた、前記任意の１ブロックを、書き換え対象のブロック番号を記録するメモリビットおよび書き換え終了コードを記録するメモリビットとして共用することもできる。
【００３８】
また、メモリビットを共用する前記任意の１ブロックに代えて、あらかじめ任意の複数ブロックを前記履歴エリアに割り当て、書き換え対象のブロック番号と書き換え終了コードとを前記任意の複数ブロックそれぞれのメモリビットに個別に記録することもできる。
【００３９】
さらに、書き換え対象のブロック番号および書き換え終了コードの他にさらにブロック消去コードも個別に記録することもできる。
【００４０】
さらにまた、前記制御手段が、前記履歴エリアに未使用コード、データ書き換え中コードおよびデータ書き換え終了コードの３状態のみを書き込み前記電源遮断の有無を表示させてもよい。
【００４１】
また、２ビットのメモリで構成する履歴エリアに前記３状態のみを書き込むこともできる。
【００４２】
さらに、前記ブロック番号の最大値と同じ値のメモリビット数で構成する前記履歴エリアに前記２状態のみを書き込むこともできる。
【００４３】
さらにまた、前記データ書き換え状態を示す保存データの書き込み処理を前記制御手段に実行させる際に、前記フラッシュメモリにおけるブロック単位の消去およびブロック単位の書き込み処理に代えて、前記履歴エリアの情報をビットごとに書き換える処理を前記制御手段に実行させることもできる。
【００４４】
また、前記履歴エリアのみの情報をビットごとに書き換える処理は、前記メモリブロックのうちデータ書き換え対象ブロックのブロック番号を前記履歴エリアの対応ビットに書き込む処理と、書き込まれた前記対応ビットを、前記対象ブロックに対するブロック書き込みが終了した時点で終了コードで上書きして書き換える処理とを実行することでもよい。
【００４５】
さらに、前記履歴エリアに記録する情報として必要なビット数ｎ（ｎは整数）は、前記メモリブロックの総数と未使用領域コード数と書換終了コード数との加算結果から１を減じて求めた値をｎビットのバイナリデータとして前記履歴エリアのメモリ素子に対応させることでもよい。
【００４６】
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法の他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ電子装置に搭載し、前記フラッシュメモリのデータ書換え実行中に起きた停電または誤操作による電源遮断後の電源再投入時に、電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出させ、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化の処理ステップを前記制御手段に実行させるとともに、前記データ書換え時に、前記メモリブロック毎にそれぞれ設けたチェックサム領域のチェックサムを更新して書き換え結果データが正常か否かを検証することにある。
【００４７】
また、前記データ書換が正常に終了しなかった場合に、前記制御手段により、該当メモリブロックに対してチェックサムによりデータの有効性を確認した後、該当メモリブロックを一度消去し、その後でデータを書き戻してデータ復旧をすることができる。
【００４８】
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法のさらに他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、ブロック書換えをする場合の前記履歴エリアのメモリビット操作手順として、前記履歴エリアに未使用領域が残っているか確認するステップと、未使用領域が無ければ、前記履歴エリアをブロック消去し、全エリアを未使用領域に戻すステップと、検出した未使用領域に書換えを行うブロック番号を書き込むステップと、書換え対象のブロックをブロック消去した後、１ブロック分の新しいデータを書き込み、かつ、前記書換え対象のブロック内に新データのチェックサムも同時に書き込むステップと、書込みが終了した後、前記履歴エリアのブロックを書換終了コードにするために全てのビットを「０」にするステップと、を前記制御手段に実行させることにある。
【００４９】
本発明のフラッシュメモリ搭載電子装置のメモリデータ管理方法のさらにまた他の特徴は、プログラム制御により動作する中央処理装置および前記プログラムを格納するＲＯＭを有する制御手段と、複数のメモリブロックで構成され制御データを一時記憶する、ＲＡＭおよびフラッシュメモリとをそれぞれ搭載し、前記フラッシュメモリのデータ書換え動作中に起きた停電または誤操作による電源遮断後の電源再投入時に、前記制御手段が、前記電源遮断時における前記フラッシュメモリのデータ書き換え進捗状態を示す保存データを前記フラッシュメモリから検出し、検出結果に基づき前記電源遮断時のデータの復旧またはデータの初期化を実行して電子装置の誤動作防止をする機能に基づき、電源再投入時に前記履歴エリアをチェックしてデータ復旧をする手順として、前記履歴エリアの未使用領域の１つ前にある最終書換え情報を確認するステップと、前記最終書換え情報が書換終了コードの場合はそのまま起動を続けるステップと、前記最終書換え情報がブロック番号であった場合は、該当ブロックのチェックサムを計算し同一ブロックに書かれているチェックサム値と比較するステップと、前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、前記チェックサムが合致しなかった場合は、再度該当ブロックのデータを読み直し、前記チェックサムを再確認するステップと、再確認の結果、前記チェックサムが一致した場合は、該当ブロックのデータを他の記憶手段に一時的に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻すステップと、再確認でも前記チェックサムが一致しない場合は、ブロック消去後に初期状態に戻すステップと、を前記制御手段に実行させることにある。
【発明の効果】
【００５０】
本発明の効果として、フラッシュメモリ書換中に電源が遮断されフラッシュメモリ内のデータが破壊された場合でも、書換が正常に終了できなかった履歴が残るため、電源再投入時にデータの復旧や初期化を行い、機器の誤動作を防ぐことが出来るので、信頼性の向上に寄与する。
【００５１】
また、電源遮断時のデータ破壊の状況によっては一見データ破壊が無いように見えるが、後に同一アドレスが正常に読めない場合も発生し得る。このような場合は一度ブロック消去を行い該当ブロックを正常化する必要があるが、本発明ではこのような場合であっても、書換が正常に終了しなかったブロックに対してチェックサムによりデータの有効性を確認した後、該当ブロックを必ず一度消去した後にデータを書き戻すため、確実にデータ復旧することが可能である。
【００５２】
ブロック消去をせずに履歴情報を追記する方法により、通常のフラッシュメモリの書換えを行う手順と比較しても、書込み時間を大幅に短縮することができ、履歴の記録を行うオーバーヘッド時間を最小とし、操作性を損なうことなくデータの信頼性を上げることが可能である。
【００５３】
また、履歴の書込み中に電源を遮断されるリスクを最小化することができる。
【００５４】
さらに、履歴情報としてブロック番号を書いたビットに書換え終了コードを上書きすることで、履歴エリアを効率よく使用することが可能である。
【発明を実施するための最良の形態】
【００５５】
本発明の実施の形態を図面を参照しながら詳細に説明する。
【００５６】
初めに本発明の概要を説明すると、記憶素子としてフラッシュメモリを搭載する電子機器において、フラッシュメモリの書換え中に停電や誤操作により電源が遮断された場合、電源再投入時に中断した書き込み状況のデータを検出し、データ復旧あるいはデータ初期化を行うことで、フラッシュメモリ内データの破壊によって発生する機器の誤動作を防止するものである。
【００５７】
すなわち、データ消去、書込みを行うメモリブロック（以下、内部ブロックと称す）とは異なる別の内部ブロックに履歴エリアを設け、各内部ブロックへの書換えが発生した場合に、履歴エリア内にその情報を保存することで、電源再投入時に容易に前回の終了状態が検出可能となる。また、履歴エリアへの情報保存を通常のフラッシュメモリの書換えに要する時間よりも短くすることで、履歴エリア書換え中に電源が遮断されるリスクを回避するものである。
【実施例１】
【００５８】
本発明の実施例1における、本発明のフラッシュメモリ搭載電子装置１の構成を示した図１と、一般的なフラッシュメモリの構成図を示した図２と、本発明の特徴であるフラッシュメモリ５の構成を示した図３と、図３における履歴エリア７を除く他の内部メモリのデータ構成を示した図４をそれぞれ参照しながら説明する。
【００５９】
図１において、電子装置１は、制御手段としてプログラム制御により動作する中央処理装置ＣＰＵ２およびプログラムを格納するＲＯＭ３と、複数の内部ブロックで構成され制御データを一時記憶する、ＲＡＭ４およびフラッシュメモリ５と、これら構成要素相互間を接続するバス６とをそれぞれ搭載する構成である。
【００６０】
図２において、一般的なフラッシュメモリのメモリ領域は、複数の内部ブロック１〜ｎ（ｎは整数）に分かれており、内部ブロック毎に消去／書込みが可能である。
【００６１】
図３において、本発明の特徴であるフラッシュメモリ５は、内部ブロック１〜ｎのうちの任意の１ブロックを履歴エリア７とし、この履歴エリア７には、他の各内部ブロックへのデータ書換えが発生した場合に、その書き換え進捗情報を記録する。
【００６２】
この時、履歴エリア７への書込み速度を高速化するために、前述したような通常書込みのために行われるブロック消去、その後に行われる１ブロックデータ書込み、という手順ではなく、履歴エリア７の情報をビット毎に書き換えることで、履歴エリア７への書込み時間を短縮するものである。
【００６３】
図４を参照すると、内部データ１〜ｎの構成は、各内部データ１〜ｎまでのチェックサム計算範囲に対して、チェックサム下位バイトおよびチェックサム上位バイトからなるチェックサムを保持する。すなわち、ブロック内最下位ドレスにデータ１の記憶領域があり、ブロック内最上位アドレスにチェックサム上位アドレスの記憶領域が存在する。
【００６４】
内部ブロック内のデータ書換えが発生した場合には、常にその対象範囲であるチェックサム計算範囲内のデータのチェックサムを更新することで、常にデータの正当性を検証可能にしてある。
【００６５】
次に、本実施例１の動作を説明する。
【００６６】
まず図３を参照すると、フラッシュメモリ５を構成する複数の内部ブロックのうち、任意の１ブロックを履歴エリア７とする。履歴エリア７以外の他の内部ブロック８は図４に示すようにブロック毎のチェックサムを同一ブロック内に常に保存する。
【００６７】
履歴エリア７に記録する情報として必要なビット数ｎを求めるための、履歴エリア７に記録する情報の形式の一実施例を示した図５を参照すると、初期値としてＡｄｄｒ０に８ビットのデータ１１１１１１１１、Ａｄｄｒ１に８ビットのデータ１１１１１１１１の状態にセットされている（図５（ａ））。
【００６８】
ブロック１書換中の履歴エリアの状態として、最下位ビットにブロック１が書き換え中であることを示す「１」が書き込まれ、それ以外のＡｄｄｒ０は０００００００のままである（図５（ｂ））。
【００６９】
ブロック１の書換終了の履歴エリアの状態として、最下位ビットにブロック１が書き換え終了であることを示す「０」が書き込まれ、それ以外のＡｄｄｒ０は０００００００のままである（図５（ｃ））。
【００７０】
ブロック１３５書換中の履歴エリアの状態として、Ａｄｄｒ１３５の下位３ビットおよび最上位ビットにブロック１３５が書き換え中であることを示す「１」がそれぞれ書き込まれ、それ以外のＡｄｄｒ１の４ビット目から７ビット目までは００００、Ａｄｄｒ０は０００００００のままである（図５（ｄ））。
【００７１】
ブロック１３５の書換終了の履歴エリアの状態として、Ａｄｄｒ１３５の下位３ビットおよび最上位ビットにブロック１３５が書き換え終了であることを示す「０」が書き込まれ、それ以外のビットおよびＡｄｄｒ０は０００００００のままである（図５（ｅ））。
【００７２】
上述の１回のブロック書換え情報を記録するために必要なビット数は総ブロック数により異なる。
【００７３】
例えば、総ブロック数を１３５とした場合、次式により必要ビット数を求める。
【００７４】
ブロック数（１３５）＋未使用領域コード数（１）＋書換終了コード数（１）−１
＝１３６＝１０００１０００（ｂ）
なお、１情報＝８ビット、未使用領域コード＝１１１１１１１１（ｂ）、書換終了コード＝００００００００（ｂ）とする。履歴エリア７は工場出荷時または初回電源投入時にブロック消去し全ビットを１、すなわち初期化する。
【００７５】
次に、ブロック書換手順を示した図６を参照すると、ブロック書換えをする場合における履歴エリア７のビット操作手順は、まず処理ステップＳ１０１において、履歴エリア７に未使用領域が残っているかを確認する。履歴エリアの下位ビットから順に８ビット単位で「未使用領域コード」を検索する。
【００７６】
この時、未使用領域が無ければ、処理ステップＳ１０２において履歴エリア７をブロック消去し、全エリアを未使用領域に戻す（初期状態）。
【００７７】
次に、処理ステップＳ１０３において、未使用領域に書換えを行うブロック番号を書き込む。図５の例においてはブロック１を示す０００００００１（ｂ）を書き込む。
【００７８】
次に、処理ステップＳ１０４において、書換えブロックをブロック消去した後、処理ステップＳ１０５においてブロック消去が正常終了したかを確認し、正常終了していなければ、処理ステップＳ１０６において履歴エリアに書き換え終了コードを書き込み、消去失敗として終了する。
【００７９】
処理ステップＳ１０５においてブロック消去が正常終了していれば、処理ステップＳ１０７においてブロック内に新データのチェックサムも同時に書き込む。チェックサムの書き込み後、処理ステップＳ１０８において１ブロック分の新しいデータを書き込む。
【００８０】
データ書込み後、処理ステップＳ１０９においてデータ書込みが正常終了したかを確認し、正常終了していなければ、処理ステップＳ１１０において履歴エリアに書き換え終了コードを書き込み、消去失敗として終了する。
【００８１】
処理ステップＳ１０９においてデータ書込みが正常終了していれば、処理ステップＳ１１１において、履歴エリア７のブロック１を「書換終了コード」００００００００（ｂ）にするために、最下位ビットのみ１→０に換える。
【００８２】
具体的には、Ａｄｄｒ０に１１１１１１１０（ｂ）をＷＲＩＴＥする。仮に図６においてブロック消去、ブロック書込みが正常に終了しなかった場合も、前述したように履歴エリア７の情報は「書換終了コード」に変更する。
【００８３】
次のブロック書換えをする場合、図５に示すように、例えばブロック番号が１３５の場合は、次の未使用領域であるＡｄｄｒ１を使用し、上述の処理ステップに準じて書き換えを行う。
【００８４】
次に、電源投入時に行う履歴エリア７のチェックとデータ復旧手順を説明する。
【００８５】
電源投入時に行う履歴エリア７のチェックとデータ復旧手順を示した図７を参照すると、処理ステップＳ２０１において、履歴エリア７の未使用領域の１つ前にある最終書換え情報を確認する。
【００８６】
最終書換え情報が「書換終了コード」の場合処理ステップＳ２０２でそのまま起動を続ける。処理ステップＳ２０１において最終書換え情報がブロック番号であった場合、処理ステップＳ２０３において、該当するブロック番号の書換え中に電源が遮断された可能性があるため、該当ブロックのチェックサムを計算し同一ブロックに書かれているチェックサム値と比較する。
【００８７】
処理ステップＳ２０３においてチェックサムが合致した場合、処理ステップＳ２０４において該当ブロックのデータを一時的にＲＡＭ４に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻す。
【００８８】
処理ステップＳ２０３においてチェックサムが合致しなかった場合、処理ステップＳ２０５においてもう一度該当ブロックのデータを読み直しチェックサムを再確認する。再確認の結果チェックサムが合致した場合は、処理ステップＳ２０４においてデータを一時的にＲＡＭ４に退避した後、該当ブロックを一度ブロック消去してから退避したデータを書き戻す。
【００８９】
処理ステップＳ２０５において再確認でもチェックサムが合致しない場合、処理ステップＳ２０６においてブロック消去後に各電子機器の異常時処置方法に従い工場出荷状態に戻す等の処置を行う。
【００９０】
以上説明したように、フラッシュメモリ書換中に電源が遮断されフラッシュメモリ内のデータが破壊された場合も書換が正常に終了できなかった履歴が残るので、次の電源再投入時にデータの復旧や初期化を行い、機器の誤動作を防ぐことが出来る。
【００９１】
また、電源遮断時のデータ破壊の状況によっては一見データ破壊が無いように見えるが、後に同一アドレスが正常に読めない場合もあり得る。このような場合は一度ブロック消去を行い該当ブロックを正常化する必要があるが、本発明ではこのような場合であっても、書換が正常に終了しなかったブロックに対してチェックサムによりデータの有効性を確認した後、該当ブロックを必ず一度消去した後にデータを書き戻すので、確実にデータ復旧することができる。
【００９２】
例えば通常フラッシュメモリの書換えを行う手順との比較をした図８を参照すると、本発明ではブロック消去をせずに履歴情報を追記する（上書き）方法をとっているので、書込み時間を大幅に短縮することができ、履歴の記録を行うオーバーヘッド時間を最小とし、操作性を損なうことなくデータの信頼性を上げることが可能である。また、履歴の書込み中に電源を遮断されるリスクを最小化することができる。
【００９３】
すなわち、履歴情報としてブロック番号を書いたビットに書換え終了コードを上書きすることで、履歴エリアを効率よく使用することができる。
【実施例２】
【００９４】
上述したように、本発明の実施例１では履歴エリア７への情報書込み効率が最大となるようブロック番号を書いたビットに終了コードを上書きする例を説明したが、実施例２では、履歴エリア７のサイズが比較的大きく取れる場合を説明する。
【００９５】
履歴エリア７に記録する情報の形式の実施例２を示した図９を参照すると、初期値としてＡｄｄｒ０に８ビットのデータ１１１１１１１１、Ａｄｄｒ１に８ビットのデータ１１１１１１１１の状態にセットされている（図９（ａ））。
【００９６】
ブロック１書換中の履歴エリアの状態として、最下位ビットにブロック１が書き換え中であることを示す「１」が書き込まれ、それ以外のＡｄｄｒ０は０００００００のままである（図９（ｂ））。
【００９７】
ブロック１の書換終了の履歴エリアの状態として、Ａｄｄｒ１にブロック１が書き換え終了であることを示す００００００００が書き込まれ、Ａｄｄｒ０は０００００００１のままである（図９（ｃ））。
【００９８】
ブロック１３５書換中の履歴エリアの状態として、Ａｄｄｒ２６８の下位３ビットおよび最上位ビットにブロック１３５が書き換え中であることを示す「１」がそれぞれ書き込まれ、それ以外のＡｄｄｒ２６８の４ビット目から７ビット目までは００００、Ａｄｄｒ２６９は１１１１１１１１のままである（図９（ｄ））。
【００９９】
ブロック１３５の書換終了の履歴エリアの状態として、Ａｄｄｒ２６９の全ビットに
ブロック１３５が書き換え終了であることを示す００００００００が書き込まれ、Ａｄｄｒ１３８は１００００１１１のままである（図９（ｅ））。
【０１００】
上述の１回のブロック書換え情報を記録するために必要なビット数は総ブロック数により異なることは実施例１と同様である。
【０１０１】
上述したように、メモリビットを共用する任意の１ブロックに代えて、あらかじめ任意の複数ブロックを履歴エリアに割り当て、書き換え対象のブロック番号と書き換え終了コードとを任意の複数ブロックそれぞれのメモリビットに個別に記録する。したがって、ブロック番号、書込み終了コードを別のアドレスのビットに割り当てることで過去の書換え情報を全て保存することができる。
【０１０２】
また、書き換え対象のブロック番号および書き換え終了コードの他にさらにブロック消去コードも個別に記録することでもよい。したがって、ブロック消去コード等を設定することでより詳細な履歴を残すことも可能である。
【０１０３】
すなわち、Ａｄｄｒ０が書き換え対象のブロック番号の記録領域、Ａｄｄｒ１が書き換え終了コードの記録領域、Ａｄｄｒ２がブロック消去コードの記録領域に設定しておくことで対応することができ、例えばブロック１３５は、Ａｄｄｒ４０２が書き換え対象のブロック番号の記録領域、Ａｄｄｒ４０３が書き換え終了コードの記録領域、Ａｄｄｒ４０４がブロック消去コードの記録領域となる。
【０１０４】
逆に、履歴エリア７のサイズが小さい場合にはブロック番号を省略し、書換中、書換終了の２つの状態のみ履歴エリアに書き込むことで、電源遮断の有無のみチェックすることも可能である。
【０１０５】
ブロック番号の書き込み領域が不要であるから、前述した実施例のように１ブロックに対して８ビットの領域を確保する必要がなくなり、例えば、２ビットのメモリで構成する履歴エリアに３状態のみを書き込む。すなわち、書き換え中のときに「０１」を書き込み、書換終了時には、書き込まれている「０１」を「００」に書き換えればよい。
【産業上の利用可能性】
【０１０６】
本発明の活用例として、フラッシュメモリ書換中に電源が遮断されフラッシュメモリ内のデータが破壊された場合も書換が正常に終了できなかった履歴が残るため、次の電源再投入時にデータの復旧や初期化を行い、機器の誤動作防止に利用できる。
【０１０７】
また、通常フラッシュメモリの書換えを行う手順と比較し、ブロック消去をせずに履歴情報を追記する方法により書込み時間を大幅に短縮することができ、履歴の記録を行うオーバーヘッド時間を最小とし、操作性を損なうことなくデータの信頼性を上げることが可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明のフラッシュメモリ搭載電子装置１の構成を示した図である。
【図２】一般的なフラッシュメモリの構成図を示した図である。
【図３】本発明の特徴であるフラッシュメモリ５の構成を示した図である。
【図４】図３における履歴エリア７を除く他の内部メモリのデータ構成を示した図である。
【図５】履歴エリア７に記録する情報の形式の一実施例を示した図である。
【図６】ブロック書換手順を示した図である。
【図７】電源投入時に行う履歴エリア７のチェックとデータ復旧手順を示した図である。
【図８】通常フラッシュメモリの書換えを行う手順との比較をした図である。
【図９】履歴エリア７に記録する情報の形式の実施例２を示した図である。
【図１０】従来例の電源投入時に実行される処理を示した図である。
【符号の説明】
【０１０９】
１    フラッシュメモリ搭載電子装置
２    ＣＰＵ
３    ＲＯＭ
４    ＲＡＭ
５    フラッシュメモリ
６    バス
７    履歴エリア
８    他の内部ブロック
【図１】
2005056144.tif 000003
【図２】
2005056144.tif 000004
【図３】
2005056144.tif 000005
【図４】
2005056144.tif 000006
【図５】
2005056144.tif 000007
【図６】
2005056144.tif 000008
【図７】
2005056144.tif 000009
【図８】
2005056144.tif 000010
【図９】
2005056144.tif 000011
【図１０】
2005056144.tif 000012