JP3858309B2 - 情報処理装置 - Google Patents
情報処理装置 Download PDFInfo
- Publication number
- JP3858309B2 JP3858309B2 JP25148396A JP25148396A JP3858309B2 JP 3858309 B2 JP3858309 B2 JP 3858309B2 JP 25148396 A JP25148396 A JP 25148396A JP 25148396 A JP25148396 A JP 25148396A JP 3858309 B2 JP3858309 B2 JP 3858309B2
- Authority
- JP
- Japan
- Prior art keywords
- management information
- memory management
- storage area
- information storage
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
Description
【発明の属する技術分野】
本発明は、データを記憶するためにフラッシュメモリを備えた情報処理装置に関するものである。
【0002】
【従来の技術】
近年、マイクロコンピュータやマイクロプロセッサなどの情報処理装置を備えた、事務用電子機器、家庭用電子機器、コンピュータ周辺装置などが盛んに開発されている。
【0003】
このような装置においては、比較的大量のデータを書換え自在に記憶する記憶手段として、一般的にRAMが用いられている。たとえば、ファクシミリ装置においては、メモリ受信やメモリタイマ送信などのために、比較的大量のファクシミリデータを記憶しておく必要があり、このための記憶手段として、通常はRAMが用いられていた。
【0004】
このようにRAMが広く用いられているのは、容量が比較的大きくかつ安価であり、しかもアクセス速度が高速であるというのが主な理由であると考えられる。
【0005】
ところが、RAMは電源がオフすると記憶内容が消失する揮発性メモリであり、電源オフ時にも記憶内容を保持するためには、電池などを用いて電源バックアップを施す必要がある。
【0006】
一方、EEPROMやフラッシュメモリなどの不揮発性メモリは、電源がオフしても記憶内容が消失しないので、電池などを用いて電源バックアップを施す必要がない。しかも、これら不揮発性メモリのうちのフラッシュメモリは、比較的大容量で、価格もRAMのうちでも安価なダイナミックRAMと同程度のものが市場に出回りつつある。
【0007】
そこで、ファクシミリデータなどの比較的大量のデータを記憶する記憶手段として、フラッシュメモリを用いることが考えられる。
【0008】
【発明が解決しようとする課題】
しかしながら、記憶手段としてフラッシュメモリを用いた場合、フラッシュメモリはアクセスに時間がかかるので、メモリ管理情報の書き込み中に停電などにより書き込みが中断されてしまうことがあり、メモリ管理情報の消失により記憶内容が正しく読み出せない事態が生じ得るという不都合が考えられる。
【0009】
すなわち、フラッシュメモリは、書き込み、読み出し、および消去を1ビットあるいは1バイト単位で行うことができず、書き込みおよび読み出しの単位がたとえば32バイトであり、消去の単位がたとえば4Kバイトである。このため、フラッシュメモリにおける個々のデータの格納位置などを表すメモリ管理情報の更新時には、その更新が単に情報の追加の場合であっても、32バイトの情報を書き込む必要がある。さらに、その更新が情報の書き換えであれば、その書き換え内容が僅かなものであっても、メモリ管理情報の内容を一旦RAMなどからなるバッファメモリに格納し、フラッシュメモリに記憶されているメモリ管理情報を消去するとともに、バッファメモリに格納されたメモリ管理情報を更新して、それをバッファメモリに書き込む必要がある。もちろん、ここではメモリ管理情報の容量を4Kバイト以下と仮定している。このため、メモリ管理情報の更新にはかなりの時間が必要であり、この更新中に停電などにより電源がオフすると、バッファメモリの内容が消失してしまい、電源のオン時に正しいメモリ管理情報をフラッシュメモリに書き込むことができなくなる。この結果、フラッシュメモリに記憶されている所望のデータを読み出すことができないという不都合が生じる。
【0010】
本発明は、上記の点に鑑みて提案されたものであって、データの記憶手段としてフラッシュメモリを用いても、メモリ管理情報の更新中における停電などによるメモリ管理情報の損傷や消失のない情報処理装置を提供することを目的としている。
【0011】
【課題を解決するための手段】
上記目的を達成するため、請求項1に記載した発明の情報処理装置は、データを記憶するデータ記憶領域とこのデータ記憶領域に記憶されたデータを管理するためのメモリ管理情報を記憶する複数のメモリ管理情報記憶領域とを有するフラッシュメモリを備えた情報処理装置であって、前記フラッシュメモリの複数のメモリ管理情報記憶領域のメモリ管理情報を順次更新して全てのメモリ管理情報記憶領域のメモリ管理情報を同一内容にするメモリ管理情報更新手段と、メモリ管理情報記憶領域毎に当該記憶領域の更新開始時にメモリ管理情報の更新中であることを示す更新中情報を設定し、記憶手段に記憶する情報設定手段と、メモリ管理情報更新手段によるメモリ管理情報の更新処理において、更新処理の開始時に記憶手段に記憶された全ての更新中情報を解除するとともに、最後のメモリ管理情報記憶領域を除いて各メモリ管理情報記憶領域の更新終了時に各メモリ管理情報記憶領域の更新開始時に設定された更新中情報を解除する情報解除手段と、情報解除手段により記憶手段に記憶された全ての更新中情報が解除される前に、当該記憶手段に記憶された更新中情報に基づいて最後にメモリ管理情報の更新が行なわれたメモリ管理情報記憶領域を判別し、このメモリ管理情報記憶領域と異なるメモリ管理情報記憶領域から順番に前記メ モリ管理情報更新手段により前記メモリ管理情報を更新させる更新制御手段と、電源がオンされた時に、複数のメモリ管理情報記憶領域のメモリ管理情報が相互に同一であるか否かを判別する第1の判別手段と、判別手段により同一でないと判別されると、記憶手段に記憶された更新中情報に基づいてメモリ管理情報が正常に更新されなかったメモリ管理情報記憶領域を判別する第2の判別手段と、第2の判別手段で正常に更新されなかったと判断されたメモリ管理情報記憶領域のメモリ管理情報を他のメモリ管理情報記憶領域のメモリ管理情報に変更するメモリ管理情報変更手段とを備えている。なお、フラッシュメモリには、2つのメモリ管理情報記憶領域を設けるとよい。
【0012】
この情報処理装置によれば、フラッシュメモリに複数のメモリ管理情報記憶領域を設定し、それらのうちのいずれかのメモリ管理情報が更新されているときに電源がオフすれば、そのメモリ管理情報記憶領域のメモリ管理情報を電源のオン時に変更して他のメモリ管理情報記憶領域のメモリ管理情報と同一内容にするので、データの記憶手段としてフラッシュメモリを用いても、メモリ管理情報の更新中における停電などによるメモリ管理情報の損傷や消失がない。
【0013】
たとえば、フラッシュメモリに2つのメモリ管理情報記憶領域を設定し、それらに同一のメモリ管理情報を書き込んで、メモリ管理情報の更新時に、2つのメモリ管理情報記憶領域のメモリ管理情報を順次更新するようにすれば、一方のメモリ管理情報記憶領域のメモリ管理情報の更新中に停電などにより電源がオフした場合、一方のメモリ管理情報記憶領域のメモリ管理情報の一部または全部は消失するが、他方のメモリ管理情報記憶領域のメモリ管理情報は停電などによる電源オフの影響を受けない。しかも、電源がオンされたときに、一方のメモリ管理情報記憶領域のメモリ管理情報を消去して、他方のメモリ管理情報記憶領域のメモリ管理情報を他方のメモリ管理情報記憶領域にコピーすることにより、常に双方のメモリ管理情報記憶領域のメモリ管理情報を同一内容にできるので、いずれのメモリ管理情報記憶領域のメモリ管理情報の更新中に停電などにより電源がオフしても、しかもその電源オフが何回発生しても、メモリ管理情報の損傷や消失を確実に防止できる。なお、メモリ管理情報の損傷とは、32バイトのメモリ管理情報の書き込みが途中まで行われて、中途半端なメモリ管理情報がメモリ管理情報記憶領域に記憶されてしまうことをいい、メモリ管理情報の消失とは、32バイトの整数倍のメモリ管理情報のメモリ管理情報記憶領域への書き込みが行えなくなることをいう。ただし、電源オフ時におけるメモリ管理情報の更新はなされなかったことになる場合がある。
【0014】
また、フラッシュメモリのメモリ管理情報の更新処理が正常が行われた場合は最後のメモリ管理情報記憶領域に対する更新中情報が設定されており、いずれかのメモリ管理情報記憶領域で更新異常が発生した場合は、そのメモリ管理情報記憶領域に対する更新中情報が設定されているので、電源オン時に前回の電源オフ時にメモリ管理情報の更新異常があったか否かを更新中情報によって判別することはできないが、メモリ管理情報領域相互でメモリ管理情報が一致するか否かを判別しているので、確実に更新異常の有無を判別することができる。そして、更新異常があった場合は、更新中情報が設定されているメモリ管理情報記憶領域を更新異常の発生した記憶領域として特定できるので、このメモリ管理情報記憶領域のメモリ管理情報を他のメモリ管理情報記憶領域のメモリ管理情報に変更することにより、確実に全てのメモリ管理情報記憶領域を同一内容に復旧させることができる。
【0015】
情報処理装置としては、マイクロコンピュータやマイクロプロセッサなどが考えられるが、これらに限るものではない。フラッシュメモリに記憶されるデータとしては、ファクシミリ送受信データや音声データなどが考えられるが、これらに限るものではない。
【0016】
メモリ管理情報更新手段およびメモリ管理情報変更手段は、所定のプログラムに基づいてCPUを動作させることにより実現できる。
【0017】
【0018】
【0019】
更新中情報の記憶手段としては、たとえばEEPROMを用いることができるが、これに限るものではない。
【0020】
【0021】
【0022】
【0023】
【0024】
【0025】
【発明の実施の形態】
以下、本発明の好ましい実施の形態を、図面を参照しつつ具体的に説明する。
【0026】
図1は、本発明に係る情報処理装置を備えたファクシミリ装置の主要構成を示すブロック図である。このファクシミリ装置は、CPU1、NCU2、RAM3、モデム4、ROM5、フラッシュメモリ6、ゲートアレイ7、EEPROM8、コーデック9、読取部11、記録部12、操作部13、表示部14を備えている。CPU1、NCU2、RAM3、モデム4、ROM5、フラッシュメモリ6、ゲートアレイ7、EEPROM8、およびコーデック9は、バス線により相互に接続されている。このバス線には、データバス、アドレスバス、および制御信号線が含まれる。ゲートアレイ7には、読取部11、記録部12、操作部13、および表示部14が接続されている。NCU2は、モデム4および電話回線21に接続されている。
【0027】
CPU1は、ファクシミリ装置全体を制御する。NCU2は、電話回線21に接続されて網制御を行う。RAM3は、ファクシミリデータや音声データなどの各種のディジタルデータを処理するためのバッファなどとして用いられる。モデム4は、送信データの変調や受信データの復調などを行う。ROM5は、各種のプログラムやデータなどを記憶している。フラッシュメモリ6は、ファクシミリデータや音声データあるいはメモリ管理情報などの各種のディジタルデータを記憶する。ゲートアレイ7は、CPU1の入出力インターフェイスなどとして機能する。EEPROM8は、いわゆるワンタッチダイヤルや短縮ダイヤルなどの登録データやフラグなどを記憶している。コーデック9は、モデム4により復調された受信画像データを復号し、また、送信画像データを符号化してモデム4に変調させる。さらにコーデック9は、留守番電話モードにおいて受信音声信号をディジタルの音声データに変換し、その音声データを再生時にアナログの音声信号に変換する。読取部11は、光源やCCDセンサや原稿送りモータなどを備えており、原稿を読み取って画像信号を出力する。記録部12は、レーザプリンタなどを備えており、画像データに基づいて、記録用紙上に画像を記録する。操作部13は、キースイッチ群などからなり、使用者の操作に応じた操作信号を出力する。表示部14は、LCDなどからなり、CPU1により制御されて各種の表示を行う。
【0028】
すなわち、CPU1は、ROM5に記憶されている所定のプログラムに基づいて動作することにより、EEPROM8に設定された複数のメモリ管理情報記憶領域のメモリ管理情報を順次更新して全てのメモリ管理情報記憶領域のメモリ管理情報を同一内容にするメモリ管理情報更新手段と、このメモリ管理情報更新手段により複数のメモリ管理情報記憶領域のうちのいずれかのメモリ管理情報が更新されているときに電源がオフすれば、そのメモリ管理情報記憶領域のメモリ管理情報を電源がオンされた時に変更して他のメモリ管理情報記憶領域のメモリ管理情報と同一内容にするメモリ管理情報変更手段とを実現する。また、ROM5は、データを記憶するためにフラッシュメモリ6を備えた情報処理装置を動作させるためのプログラムを格納した記憶媒体であって、フラッシュメモリ6に設定され、データを管理するためのメモリ管理情報を記憶する複数のメモリ管理情報記憶領域のメモリ管理情報を順次更新して全てのメモリ管理情報記憶領域のメモリ管理情報を同一内容にするメモリ管理情報更新プログラムと、メモリ管理情報更新プログラムにより複数のメモリ管理情報記憶領域のうちのいずれかのメモリ管理情報が更新されているときに電源がオフすれば、そのメモリ管理情報記憶領域のメモリ管理情報を電源がオンされた時に変更して他のメモリ管理情報記憶領域のメモリ管理情報と同一内容にするメモリ管理情報変更プログラムとを含むプログラムが格納されていることを特徴とする記憶媒体を構成している。
【0029】
図2はフラッシュメモリ6の記憶領域の説明図であって、このフラッシュメモリ6は、たとえば32バイト単位でデータの書き込みおよび読み出しが可能であって、4Kバイト単位でデータの消去が可能である。そして、消去の単位である4Kバイト毎にブロック化されており、各々4Kバイトの2つのメモリ管理情報記憶領域A,Bと、各々4Kバイトの多数のデータ記憶領域とが設定されている。
【0030】
次に、このように構成されたファクシミリ装置の動作の要点について説明する。メモリ受信モードのときに、電話回線21を介してNCU2にファクシミリ信号が入力されると、そのファクシミリ信号は、モデム4により復調され、フラッシュメモリ6に格納される。このとき、フラッシュメモリ6に対する書き込みはたとえば32バイト程度の所定容量毎に行う必要があるので、フラッシュメモリ6へのファクシミリデータの書き込みのために、RAM3をバッファメモリとして使用する。
【0031】
ところで、フラッシュメモリ6のメモリ管理情報記憶領域A,Bには、フラッシュメモリ6のいずれの番地にいずれのデータが格納されているかなどを表すメモリ管理情報が格納されているが、フラッシュメモリ6に書き込まれたファクシミリデータを正しく読み出せるように、1通信の終了後に、CPU1によりフラッシュメモリ6のメモリ管理情報記憶領域A,Bの内容が順次更新される。この更新後のメモリ管理情報記憶領域A,Bに記憶されているメモリ管理情報の内容は、互いに同一である。
【0032】
このようなメモリ管理情報記憶領域A,Bの更新は、単にメモリ管理情報を書き加えるだけの場合、先ず書き加えるべきメモリ管理情報を作成してRAM3に格納し、そのメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Aに書き込み、次いでRAM3のメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Bに書き込む。また、単にメモリ管理情報を書き加えるのではなく、その内容を書き換える場合は、先ずメモリ管理情報記憶領域Aに記憶されているメモリ管理情報を全部読み出してRAM3に格納し、そのメモリ管理情報の内容を書き換えて、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を全部消去し、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出して、そのメモリ管理情報をメモリ管理情報記憶領域Aに書き込む。次に、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を全部消去し、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出して、そのメモリ管理情報をメモリ管理情報記憶領域Bに書き込む。
【0033】
ここで、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を全部消去し、RAM3に記憶されているメモリ管理情報を32バイト単位でメモリ管理情報記憶領域Aに書き込んでいるときに、停電などにより電源がオフすると、バッファメモリとしてのRAM3の内容が消失するので、それ以降はRAM3に記憶されているメモリ管理情報をメモリ管理情報記憶領域Aに書き込むことができず、メモリ管理情報記憶領域Aに完全なメモリ管理情報を格納できなくなる。また、メモリ管理情報記憶領域Aにメモリ管理情報を単に書き加える場合でも、32バイト単位でのメモリ管理情報の書き込み中に停電などにより電源がオフすると、中途半端なメモリ管理情報がメモリ管理情報記憶領域Aに記憶されることになって不都合である。そこで本実施形態では、このような場合、次に電源がオンされたときに、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を32バイト単位で読み出してRAM3に書き込み、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を全部消去して、RAM3に書き込まれたメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Aに書き込んでいく。したがって、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新中に停電などにより電源がオフされても、メモリ管理情報記憶領域Aの内容を復元できる。但し、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の書き換え中にはメモリ管理情報記憶領域Bに記憶されているメモリ管理情報は書き換えられれていないので、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報は停電時における書き換えよりも1回前に更新した状態に戻る。この場合、停電時における書き換えに対応するファクシミリデータをフラッシュメモリ6から読み出すことは困難であるが、それ以前にフラッシュメモリ6のデータ記憶領域に格納されたデータは支障無く読み出すことができる。
【0034】
一方、メモリ管理情報を書き換えるために、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を全部消去し、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Bに書き込んでいるとき、あるいは、メモリ管理情報を単に書き加えるために、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Bに書き込んでいるときに、停電などにより電源がオフすると、上記と同様に、電源がオンされたときに、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報をメモリ管理情報記憶領域Bにコピーすることになるが、このときには、停電時には既にメモリ管理情報記憶領域Aに記憶されているメモリ管理情報が書き換えられているので、メモリ管理情報記憶領域Bに書き換え後のメモリ管理情報を正しく記憶させることができる。したがって、停電時における書き換えに対応するファクシミリデータをフラッシュメモリ6から読み出すこともできる。
【0035】
以上のメモリ管理情報の更新動作は、フラッシュメモリ6のデータ記憶領域に送信すべきファクシミリデータを記憶させておいて所定時刻に自動的にファクシミリ送信を行うメモリタイマ送信や、留守番電話モード時に受信した音声信号を音声データとしてフラッシュメモリ6のデータ記憶領域に記憶させる場合など、フラッシュメモリ6のデータ記憶領域に新たにデータを書き込んだときには、同様に行われる。そして、メモリ管理情報の更新動作中に停電などにより電源がオフすれば、上記のコピーによるメモリ管理情報の復元すなわち変更動作が同様に実行される。
【0036】
したがって、フラッシュメモリ6のメモリ管理情報の更新中に発生した停電などによりメモリ管理情報が損傷あるいは消失するような事態を確実に回避できる。
【0037】
次に、上記メモリ管理情報の更新処理および変更処理の手順の一例について、図3および図4に示すフローチャートを参照しながら説明する。
【0038】
図3は上記メモリ管理情報の更新処理の手順の一例を示すフローチャートであって、メモリ管理情報の更新が必要なときに、先ずCPU1が、フラグFaの内容が1であるか否かを判断する(S1)。このフラグFaは、前回のメモリ管理情報の更新がメモリ管理情報記憶領域Aについてのものであるか否かを表すフラグであって、その内容が1であれば前回のメモリ管理情報の更新がメモリ管理情報記憶領域Aについてのものであり、0であれば前回のメモリ管理情報の更新がメモリ管理情報記憶領域Aについてのものではないということになる。このフラグFaは、EEPROM8に記憶されている。
【0039】
フラグFaの内容が1であれば(S1:YES)、前回のメモリ管理情報の更新がメモリ管理情報記憶領域Aについてのものであるということなので、CPU1が、フラグFaの内容を0に設定し(S2)、フラグFbの内容を1に設定する(S3)。このフラグFbは、前回のメモリ管理情報の更新がメモリ管理情報記憶領域Bについてのものであるか否かを表すフラグであって、その内容が1であれば前回のメモリ管理情報の更新がメモリ管理情報記憶領域Bについてのものであり、0であれば前回のメモリ管理情報の更新がメモリ管理情報記憶領域Bについてのものではないということになる。このフラグFbは、EEPROM8に記憶されている。
【0040】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Bに記憶されているメモリ管理情報を更新する(S4)。たとえば、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を32バイト単位で読み出してそのメモリ管理情報をRAM3に書き込み、RAM3に書き込んだメモリ管理情報の内容を書き換え、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を消去して、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Bに書き込む。あるいは、書き加えるべきメモリ管理情報を作成してRAM3に記憶させ、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Bに書き込む。
【0041】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新が終了したか否かを判断する(S5)。
【0042】
メモリ管理情報の更新が終了していれば(S5:YES)、CPU1が、フラグFbの内容を0に設定し(S6)、フラグFaの内容を1に設定する(S7)。
【0043】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Aに記憶されているメモリ管理情報を更新する(S8)。たとえば、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を32バイト単位で読み出してそのメモリ管理情報をRAM3に書き込み、RAM3に書き込んだメモリ管理情報の内容を書き換え、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を消去して、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Aに書き込む。あるいは、書き加えるべきメモリ管理情報を作成してRAM3に記憶させ、RAM3に記憶されているメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Aに書き込む。
【0044】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新が終了したか否かを判断し(S9)、終了していれば(S9:YES)、このルーチンを終了する。
【0045】
S9において、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新が終了していなければ(S9:NO)、S8に戻ってメモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新を継続する。
【0046】
S5において、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新が終了していなければ(S5:NO)、S4に戻ってメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新を継続する。
【0047】
S1において、フラグFaの内容が1でなければ(S1:NO)、前回のメモリ管理情報の更新がメモリ管理情報記憶領域Bについてのものであるということなので、CPU1が、フラグFbの内容を0に設定し(S10)、フラグFaの内容を1に設定する(S11)。
【0048】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Aに記憶されているメモリ管理情報を更新する(S12)。
【0049】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新が終了したか否かを判断する(S13)。
【0050】
メモリ管理情報の更新が終了していれば(S13:YES)、CPU1が、フラグFaの内容を0に設定し(S14)、フラグFbの内容を1に設定する(S15)。
【0051】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Bに記憶されているメモリ管理情報を更新する(S16)。
【0052】
そしてCPU1が、フラッシュメモリ6のメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新が終了したか否かを判断し(S17)、終了していれば(S17:YES)、このルーチンを終了する。
【0053】
S17において、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新が終了していなければ(S17:NO)、S16に戻ってメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新を継続する。
【0054】
S13において、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新が終了していなければ(S13:NO)、S12に戻ってメモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新を継続する。
【0055】
図4は上記メモリ管理情報の復元すなわち変更処理の手順の一例を示すフローチャートであって、電源がオンされたときに、先ずCPU1が、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の内容とメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の内容とが完全に一致するか否かを判断する(S21)。すなわち、メモリ管理情報記憶領域A,Bに記憶されているメモリ管理情報は互いに同一内容になるように順次更新されるので、両者が相違しているということは、前回の更新中に停電などにより更新が適正に行われなかっと判断できることから、それを調べるのである。
【0056】
メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の内容とメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の内容とが完全に一致していなければ(S21:NO)、前回の更新中に停電などにより更新が適正に行われなかっということなので、CPU1が、フラグFaの内容が1であるか否かを判断する(S22)。すなわち、フラグFaの内容が1であれば、前回の更新はメモリ管理情報記憶領域Aに記憶されているメモリ管理情報について行われたということであり、フラグFaの内容が1でなければ、前回の更新はメモリ管理情報記憶領域Bに記憶されているメモリ管理情報について行われたということであるので、それを調べるのである。
【0057】
フラグFaの内容が1であれば(S22:YES)、前回の更新はメモリ管理情報記憶領域Aに記憶されているメモリ管理情報について行われたということなので、CPU1が、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を消去し(S23)、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報をメモリ管理情報記憶領域Aにコピーして(S24)、このルーチンを終了する。具体的には、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を32バイト単位で読み出してRAM3に記憶させ、このメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Aに書き込む。
【0058】
S22において、フラグFaの内容が1でなければ(S22:NO)、前回の更新はメモリ管理情報記憶領域Bに記憶されているメモリ管理情報について行われたということなので、CPU1が、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を消去し(S25)、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報をメモリ管理情報記憶領域Bにコピーして(S26)、このルーチンを終了する。具体的には、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を32バイト単位で読み出してRAM3に記憶させ、このメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Bに書き込む。
【0059】
S21において、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の内容とメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の内容とが完全に一致していれば(S21:YES)、正常にメモリ管理情報が更新されており、前回の更新中に停電などが発生しなかったということなので、メモリ管理情報の変更が不要なことから、このルーチンを終了する。
【0060】
このように、電源がオンされたときにメモリ管理情報記憶領域A,Bのメモリ管理情報の内容を互いに比較して、両者が完全に一致していなければ、前回のメモリ管理情報の更新中に停電などが発生したことが判断でき、さらに、フラグFa,Fbの内容により前回のメモリ管理情報の更新がメモリ管理情報記憶領域A,Bのうちのいずれについてなされたかを記憶しているので、前回の更新がメモリ管理情報記憶領域A,Bのうちのいずれについてなされたかも判断できることから、メモリ管理情報の復元すなわち変更を適切に行える。
【0061】
次に、メモリ管理情報の更新処理および変更処理の手順の別の例について、図5および図6に示すフローチャートを参照しながら説明する。
【0062】
図5はメモリ管理情報の更新処理の手順の別の例を示すフローチャートであって、メモリ管理情報の更新が必要なときに、先ずCPU1が、フラグFaの内容を1に設定し(S31)、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を更新する(S32)。
【0063】
そしてCPU1が、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新が終了したか否かを判断する(S33)。
【0064】
メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新が終了していれば(S33:YES)、CPU1が、フラグFaを0に設定し(S34)、フラグFbを1に設定して(S35)、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を更新する(S36)。
【0065】
そしてCPU1が、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新が終了したか否かを判断する(S37)。
【0066】
メモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新が終了していれば(S37:YES)、CPU1が、フラグFbを0に設定して(S38)、このルーチンを終了する。
【0067】
S37において、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新が終了していなければ(S37:NO)、S36に戻ってメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新を継続する。
【0068】
S33において、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新が終了していなければ(S33:NO)、S32に戻ってメモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新を継続する。
【0069】
図6はメモリ管理情報の復元すなわち変更処理の手順の別の例を示すフローチャートであって、電源がオンされたときに、先ずCPU1が、フラグFaの内容が1であるか否かを判断する(S41)。すなわち、フラグFaの内容が1であれば、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新中に停電などにより電源がオフされたということであるので、それを調べるのである。
【0070】
フラグFaの内容が1であれば(S41:YES)、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新中に停電などにより電源がオフされたということなので、CPU1が、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を消去し(S42)、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報をメモリ管理情報記憶領域Aにコピーして(S43)、このルーチンを終了する。具体的には、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を32バイト単位で読み出してRAM3に記憶させ、このメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Aに書き込む。
【0071】
S41において、フラグFaの内容が1でなければ(S41:NO)、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報の更新中に停電などによる電源のオフがなかったということなので、CPU1が、フラグFbの内容が1であるか否かを判断する(S44)。すなわち、フラグFbの内容が1であれば、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新中に停電などにより電源がオフされたということであるので、それを調べるのである。
【0072】
フラグFbの内容が1であれば(S44:YES)、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報の更新中に停電などにより電源がオフされたということなので、CPU1が、メモリ管理情報記憶領域Bに記憶されているメモリ管理情報を消去し(S45)、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報をメモリ管理情報記憶領域Bにコピーして(S46)、このルーチンを終了する。具体的には、メモリ管理情報記憶領域Aに記憶されているメモリ管理情報を32バイト単位で読み出してRAM3に記憶させ、このメモリ管理情報を32バイト単位で読み出してメモリ管理情報記憶領域Bに書き込む。
【0073】
S44において、フラグFbの内容が1でなければ(S44:NO)、正常にメモリ管理情報が更新されており、前回の更新中に停電などが発生しなかったということなので、メモリ管理情報の変更が不要なことから、このルーチンを終了する。
【0074】
このように、フラグFa,Fbの内容により、前回のメモリ管理情報の更新中に停電などが発生したか否かということと、それがメモリ管理情報記憶領域A,Bのうちのいずれのメモリ管理情報の更新中であったかということとが判るので、メモリ管理情報記憶領域A,Bのメモリ管理情報の内容を互いに比較することなく、メモリ管理情報の復元すなわち変更を迅速かつ適切に行える。
【0075】
なお、上記各実施形態では、同一内容のメモリ管理情報を記憶するメモリ管理情報記憶領域をフラッシュメモリ6に2つ設定したが、もちろん3つ以上設定してもよい。
【0076】
【発明の効果】
以上説明したように請求項1,2に記載した発明の情報処理装置によれば、フラッシュメモリに複数のメモリ管理情報記憶領域を設定し、それらのうちのいずれかのメモリ管理情報が更新されているときに電源がオフすれば、そのメモリ管理情報記憶領域のメモリ管理情報を電源のオン時に変更して他のメモリ管理情報記憶領域のメモリ管理情報と同一内容にするので、データの記憶手段としてフラッシュメモリを用いても、メモリ管理情報の更新中における停電などによりメモリ管理情報の多くが消失してしまうことがない。
【0077】
また、電源オン時にメモリ管理情報領域相互でメモリ管理情報が一致するか否かを判別しているので、確実に更新異常の有無を判別することができる。そして、更新異常があった場合は、更新中情報が設定されているメモリ管理情報記憶領域を更新異常の発生した記憶領域として特定できるので、このメモリ管理情報記憶領域のメモリ管理情報を他のメモリ管理情報記憶領域のメモリ管理情報に変更することにより、確実に全てのメモリ管理情報記憶領域を同一内容に復旧させることができる。
【0078】
【0079】
【図面の簡単な説明】
【図1】 本発明に係る情報処理装置を備えたファクシミリ装置の主要構成を示すブロック図である。
【図2】 図1に示すファクシミリ装置に備えられたフラッシュメモリの記憶領域の説明図である。
【図3】 図1に示すファクシミリ装置によるメモリ管理情報の更新処理の手順の一例を説明するフローチャートである。
【図4】 図1に示すファクシミリ装置によるメモリ管理情報の変更処理の手順の一例を説明するフローチャートである。
【図5】 図1に示すファクシミリ装置によるメモリ管理情報の更新処理の手順の別の例を説明するフローチャートである。
【図6】 図1に示すファクシミリ装置によるメモリ管理情報の変更処理の手順の別の例を説明するフローチャートである。
【符号の説明】
1 CPU
2 NCU
3 RAM
4 モデム
5 ROM
6 フラッシュメモリ
7 ゲートアレイ
8 EEPROM
9 コーデック
Claims (2)
- データを記憶するデータ記憶領域とこのデータ記憶領域に記憶されたデータを管理するためのメモリ管理情報を記憶する複数のメモリ管理情報記憶領域とを有するフラッシュメモリを備えた情報処理装置であって、
前記フラッシュメモリの複数のメモリ管理情報記憶領域のメモリ管理情報を順次更新して全てのメモリ管理情報記憶領域のメモリ管理情報を同一内容にするメモリ管理情報更新手段と、
前記メモリ管理情報記憶領域毎に当該記憶領域の更新開始時に前記メモリ管理情報の更新中であることを示す更新中情報を設定し、記憶手段に記憶する情報設定手段と、
前記メモリ管理情報更新手段による前記メモリ管理情報の更新処理において、更新処理の開始時に前記記憶手段に記憶された全ての更新中情報を解除するとともに、最後のメモリ管理情報記憶領域を除いて各メモリ管理情報記憶領域の更新終了時に各メモリ管理情報記憶領域の更新開始時に設定された更新中情報を解除する情報解除手段と、
前記情報解除手段により前記記憶手段に記憶された全ての更新中情報が解除される前に、当該記憶手段に記憶された更新中情報に基づいて最後にメモリ管理情報の更新が行なわれたメモリ管理情報記憶領域を判別し、このメモリ管理情報記憶領域と異なるメモリ管理情報記憶領域から順番に前記メモリ管理情報更新手段により前記メモリ管理情報を更新させる更新制御手段と、
電源がオンされた時に、前記複数のメモリ管理情報記憶領域のメモリ管理情報が相互に同一であるか否かを判別する第1の判別手段と、
前記判別手段により同一でないと判別されると、前記記憶手段に記憶された更新中情報に基づいて前記メモリ管理情報が正常に更新されなかったメモリ管理情報記憶領域を判別する第2の判別手段と、
前記第2の判別手段で正常に更新されなかったと判断されたメモリ管理情報記憶領域のメモリ管理情報を他のメモリ管理情報記憶領域のメモリ管理情報に変更するメモリ管理情報変更手段とを備えたことを特徴とする情報処理装置。 - 前記フラッシュメモリは、2つのメモリ管理情報記憶領域を有する、請求項1に記載情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25148396A JP3858309B2 (ja) | 1996-09-24 | 1996-09-24 | 情報処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP25148396A JP3858309B2 (ja) | 1996-09-24 | 1996-09-24 | 情報処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1097475A JPH1097475A (ja) | 1998-04-14 |
JP3858309B2 true JP3858309B2 (ja) | 2006-12-13 |
Family
ID=17223486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP25148396A Expired - Fee Related JP3858309B2 (ja) | 1996-09-24 | 1996-09-24 | 情報処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3858309B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3583639B2 (ja) * | 1999-02-02 | 2004-11-04 | 三菱電機株式会社 | メモリ装置のデータ更新方法 |
JP6152999B2 (ja) * | 2012-08-10 | 2017-06-28 | 株式会社メガチップス | 半導体記憶装置 |
CN105448339A (zh) * | 2015-12-07 | 2016-03-30 | 中国电子科技集团公司第十研究所 | 非易失性存储器意外掉电线性累计数据突变的防避方法 |
-
1996
- 1996-09-24 JP JP25148396A patent/JP3858309B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1097475A (ja) | 1998-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4031190B2 (ja) | メモリカード、不揮発性メモリ、不揮発性メモリのデータ書き込み方法及びデータ書き込み装置 | |
JP4268396B2 (ja) | 1回プログラム可能な不揮発性メモリデバイスのファイル管理 | |
US20020002652A1 (en) | Method of rewriting program in flash microcomputer | |
JP3580929B2 (ja) | 記憶装置 | |
KR19990030334A (ko) | 외부 기억 장치 및 데이터 처리 방법 | |
JPH04145596A (ja) | メモリカードにおけるデータ管理方式 | |
US6549297B1 (en) | Communication apparatus and speech message method | |
JP3858309B2 (ja) | 情報処理装置 | |
US5500742A (en) | Control unit of flash memory and facsimile machine using such control unit | |
JP3376331B2 (ja) | フラッシュメモリを用いる記憶方法及び記憶制御プログラムを記録した記録媒体 | |
JP3271935B2 (ja) | 制御システム | |
JP2006126919A (ja) | フラッシュメモリのデータ管理装置およびフラッシュメモリの制御方法 | |
KR100319254B1 (ko) | 플레쉬 메모리를 이용한 비휘발성 데이터 영역 복구 방법 | |
JP3070994B2 (ja) | メモリカードの記憶管理方式 | |
JPH07320017A (ja) | Icメモリカード | |
JP2002007152A (ja) | ダウンロード方法および装置 | |
JP2000020300A (ja) | 情報処理装置及び方法 | |
JP2002229863A (ja) | バックアップ回路 | |
JPH11327911A (ja) | 画像形成装置 | |
JP3921751B2 (ja) | 記録装置及び記録方法並びに記録再生装置 | |
JP2859205B2 (ja) | 携帯型情報処理システムのフラッシュ・メモリのデータ記録装置及びデータ記録方法 | |
JPH0337349B2 (ja) | ||
JP2002041369A (ja) | 半導体記憶装置 | |
JPH111049A (ja) | 画像処理装置 | |
JP2005099983A (ja) | 電子機器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060320 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060328 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060529 |
|
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: 20060829 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060911 |
|
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: 20090929 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100929 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100929 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110929 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110929 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120929 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130929 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |