特許第6036618号(P6036618)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ カシオ計算機株式会社の特許一覧

<>
  • 特許6036618-電子機器及びプログラム 図000002
  • 特許6036618-電子機器及びプログラム 図000003
  • 特許6036618-電子機器及びプログラム 図000004
  • 特許6036618-電子機器及びプログラム 図000005
  • 特許6036618-電子機器及びプログラム 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6036618
(24)【登録日】2016年11月11日
(45)【発行日】2016年11月30日
(54)【発明の名称】電子機器及びプログラム
(51)【国際特許分類】
   G06F 11/14 20060101AFI20161121BHJP
【FI】
   G06F11/14 641C
   G06F11/14 641D
【請求項の数】5
【全頁数】15
(21)【出願番号】特願2013-189995(P2013-189995)
(22)【出願日】2013年9月13日
(65)【公開番号】特開2015-56086(P2015-56086A)
(43)【公開日】2015年3月23日
【審査請求日】2015年12月22日
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】110001254
【氏名又は名称】特許業務法人光陽国際特許事務所
(72)【発明者】
【氏名】山田 俊介
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2009−187062(JP,A)
【文献】 特開2007− 58840(JP,A)
【文献】 特開2005− 56144(JP,A)
【文献】 特開2002−312253(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/14
G06F 12/16
(57)【特許請求の範囲】
【請求項1】
電源断時にデータが消去される揮発性記憶手段にデータを記憶して処理を行う電子機器において、
電源断時に電力を供給する補助電源と、
複数のブロックを有するとともに、データ書込順に対応するブロックの順序を各ブロックのアドレスで示したチェーンデータが記憶されるチェーンデータエリアを有する不揮発性記憶手段と、
前記複数のブロックのうち何れか1つのブロックの記憶データを消去して空きブロックにするデータ消去手段と、
電源断時に、前記空きブロックの中で、何れか1つのブロックを書込対象ブロックとして指定して、当該書込対象ブロックのアドレスを前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させ、前記揮発性記憶手段に記憶されたデータを当該書込対象ブロックに書き込む電源断データ書込手段と、
前記電源断データ書込手段により前記書込対象ブロックのアドレスが前記チェーンデータの末尾に追加された後に、前記データ消去手段による消去途中のブロックのアドレスを、前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させる消去チェーンデータ追加手段と、
電源断後の再起動時に、前記消去チェーンデータ追加手段により前記チェーンデータに追加されたアドレスのブロックの記憶データを前記データ消去手段に消去させるデータ消去制御手段と、
電源断後の再起動時に、前記消去チェーンデータ追加手段により追加されたアドレスの前のチェーンデータのアドレスのブロックのデータを用いて、処理を再開する処理再開手段と、
を備えることを特徴とする電子機器。
【請求項2】
請求項1記載の電子機器において、
前記消去チェーンデータ追加手段は、
電源断時に現時点での前記消去対象ブロックに対し、データの消去途中であることを示す特定データを書き込む特定データ書込手段を有し、
前記データ消去制御手段は、
電源断後の再起動時に、前記チェーンデータに含まれるアドレスのブロックに前記特定データが記憶されている場合に、前記データ消去手段に当該ブロックの記憶データを消去させることを特徴とする電子機器。
【請求項3】
請求項1又は2に記載の電子機器において、
前記不揮発性記憶手段は、
各ビットのデータを「1」にすることで記憶データが消去されるとともに、
各ビットのデータを「1」に維持するか、或いは「0」に不可逆的に変化させるかによってデータの書き込みが可能であり、
前記特定データは、
「0」が複数バイトだけ並んだデータであることを特徴とする電子機器。
【請求項4】
請求項3記載の電子機器において、
前記データ消去制御手段は、
前記チェーンデータエリアの前記チェーンデータに含まれる各アドレスのうち、前記消去チェーンデータ追加手段により前記チェーンデータに追加されたアドレスのデータを「0」の羅列のデータに書き換えるチェーンデータ上書手段を有し、
当該電子機器は、
前記チェーンデータエリアから前記チェーンデータを読み取るチェーンデータ読取手段を備え、
このチェーンデータ読取手段は、
前記チェーンデータに「0」の羅列のデータがアドレスのデータとして含まれる場合に、当該「0」の羅列のデータを飛ばして読み取りを行うことを特徴とする電子機器。
【請求項5】
電源断時にデータが消去される揮発性記憶手段にデータを記憶して処理を行う電子機器のコンピュータで実行されるプログラムであって、
前記電子機器は、
電源断時に電力を供給する補助電源と、
複数のブロックを有するとともに、データ書込順に対応するブロックの順序を各ブロックのアドレスで示したチェーンデータが記憶されるチェーンデータエリアを有する不揮発性記憶手段と、
を有し、
当該プログラムは、この電子機器のコンピュータに、
前記複数のブロックのうち何れか1つのブロックの記憶データを消去して空きブロックにするデータ消去機能と、
電源断時に、前記空きブロックの中で、何れか1つのブロックを書込対象ブロックとして指定して、当該書込対象ブロックのアドレスを前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させ、前記揮発性記憶手段に記憶されたデータを当該書込対象ブロックに書き込む電源断データ書込機能と、
前記電源断データ書込機能により前記書込対象ブロックのアドレスが前記チェーンデータの末尾に追加された後に、前記データ消去機能による消去途中のブロックのアドレスを、前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させる消去のチェーンデータ追加機能と、
電源断後の再起動時に、前記消去チェーンデータ追加機能により前記チェーンデータに追加されたアドレスのブロックの記憶データを前記データ消去機能により消去させるデータ消去制御機能と、
電源断後の再起動時に、前記消去チェーンデータ追加機能により追加されたアドレスの前のチェーンデータのアドレスのブロックのデータを用いて、処理を再開する処理再開機能と、
を実現させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子機器及びプログラムに関する。
【背景技術】
【0002】
従来、揮発性メモリであるキャッシュメモリと不揮発性メモリ(例えばフラッシュメモリ)とを備える電子機器においては、処理データを一時的にキャッシュメモリに記憶しながら処理を行うとともに、電源断が生じた場合にキャッシュメモリ上のデータが消失してしまうのを防止するために、補助電源からの電力を利用しつつ、キャッシュメモリ上のキャッシュデータをフラッシュメモリの空きエリアに退避(バックアップ)するようになっている。そして、電源断後に電子機器が再起動されると、フラッシュメモリ内のバックアップデータがキャッシュメモリにリストアされることで電源断前の状態が復元され、次回の電源断に備えてフラッシュメモリの記憶データが消去されるようになっている。
【0003】
近年、このような電源断時や再起動時の処理に関し、様々な技術が提案されている(例えば特許文献1,2参照)。
具体的には、特許文献1に記載の技術では、電源断後の再起動時に、フラッシュメモリからキャッシュメモリにキャッシュデータをリストアしたのち、フラッシュメモリの記憶データ全体を先頭から消去するようになっている。この技術によれば、再起動時の処理中に更に電源断となった場合にもフラッシュメモリに退避領域を確保することができるため、キャッシュデータがロストしてしまうのを防止することができる。
【0004】
また、特許文献2に記載の技術では、フラッシュメモリにおけるブロック毎に、未使用、データ有、消去中(消去途中)などの管理データを記憶しておき、処理によってブロックの状態が変わる毎に管理データを書き換えるようになっており、再起動時には管理データを用いて全ブロックの状態を調べて、消去中のブロックを消去するようになっている。この技術によれば、特許文献1に記載の技術と同様に、再起動時の処理中に更に電源断となった場合にもフラッシュメモリに退避領域を確保することができるため、キャッシュデータがロストしてしまうのを防止することができる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2010−271793号公報
【特許文献2】特開2001−51889号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、従来の技術では、フラッシュメモリのデータ消去中に電源断が発生した場合には、再起動時にデータ消去を完了するのに手間がかかってしまう。
即ち、特許文献1に記載の技術では、再起動時にフラッシュメモリの記憶データ全体を先頭から消去するため、消去済みのブロックを改めて消去する場合が生じてしまい、その分、手間がかかってしまう。
また、特許文献2に記載の技術では、再起動時に管理データを用いて全ブロックの状態を調べてから消去中のブロックの消去を行うため、ブロックの状態を調べるのに手間がかかってしまう。
【0007】
本発明の課題は、不揮発性記憶手段のデータ消去中に電源断が発生した後に再起動された場合に、容易かつ迅速にデータ消去を完了しつつ、中断された処理を再開することのできる電子機器及びプログラムを提供することである。
【課題を解決するための手段】
【0008】
請求項1記載の発明は、電源断時にデータが消去される揮発性記憶手段にデータを記憶して処理を行う電子機器において、
電源断時に電力を供給する補助電源と、
複数のブロックを有するとともに、データ書込順に対応するブロックの順序を各ブロックのアドレスで示したチェーンデータが記憶されるチェーンデータエリアを有する不揮発性記憶手段と、
前記複数のブロックのうち何れか1つのブロックの記憶データを消去して空きブロックにするデータ消去手段と、
電源断時に、前記空きブロックの中で、何れか1つのブロックを書込対象ブロックとして指定して、当該書込対象ブロックのアドレスを前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させ、前記揮発性記憶手段に記憶されたデータを当該書込対象ブロックに書き込む電源断データ書込手段と、
前記電源断データ書込手段により前記書込対象ブロックのアドレスが前記チェーンデータの末尾に追加された後に、前記データ消去手段による消去途中のブロックのアドレスを、前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させる消去チェーンデータ追加手段と、
電源断後の再起動時に、前記消去チェーンデータ追加手段により前記チェーンデータに追加されたアドレスのブロックの記憶データを前記データ消去手段に消去させるデータ消去制御手段と、
電源断後の再起動時に、前記消去チェーンデータ追加手段により追加されたアドレスの前のチェーンデータのアドレスのブロックのデータを用いて、処理を再開する処理再開手段と、
を備えることを特徴とする。
【発明の効果】
【0009】
本発明によれば、不揮発性記憶手段のデータ消去中に電源断が発生して再起動された場合に、容易かつ迅速にデータ消去を完了しつつ、中断された処理を再開することができる。
【図面の簡単な説明】
【0010】
図1】電子機器の機能構成を示すブロック図である。
図2】電源断時処理の流れを示すフローチャートである。
図3】電源再投入時処理の流れを示すフローチャートである。
図4】(a)は通常時の動作を説明するための図であり、(b)は電源断時処理の動作を説明するための図である。
図5】(a)は電源断時処理の動作を説明するための図であり、(b)は電源再投入時処理の動作を説明するための図である。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して、本発明に係る電子機器の実施形態の一例を詳細に説明する。ただし、発明の範囲は、図示例に限定されない。
【0012】
[構成]
まず、電子機器1の機能構成について説明する。図1は、電子機器1の内部構成を示すブロック図である。
【0013】
この図に示すように、電子機器1は、表示部10、入力部11、記録媒体読取部12、補助電源部5、CPU(Central Processing Unit)20、RAM4及びフラッシュメモリ3を備え、各部はバスで相互にデータ通信可能に接続されて構成されている。
【0014】
表示部10は、CPU20から入力される表示信号に基づいて各種情報を表示するようになっている。
【0015】
入力部11は、押下されたキーなどに対応する信号をCPU20に出力するようになっている。
【0016】
記録媒体読取部12は、カードスロット(図示せず)に装着された外部情報記憶媒体12aから情報を読み出したり、当該外部情報記憶媒体12aに情報を記録したりするようになっている。
【0017】
補助電源部5は、電子機器1が電源断の状態となった場合に当該電子機器1に電力を供給するものであり、電源断検知部50と補助電源51とを有している。
【0018】
電源断検知部50は、電源断を検知するものであり、電子機器1に対する供給電力の電圧が所定電圧よりも低くなった場合に、電源断の検知信号を出力するようになっている。
【0019】
補助電源51は、コンデンサであり、電源断時に電子機器1に電力を供給するようになっている。
【0020】
CPU20は、入力される指示に応じて所定のプログラムに基づいた処理を実行し、各機能部への指示やデータの転送等を行い、電子機器1を統括的に制御するようになっている。具体的には、CPU20は、入力部11から入力される操作信号等に応じてフラッシュメモリ3に格納された各種プログラムを読み出し、当該プログラムに従って処理を実行する。そして、CPU20は、処理結果をRAM4やフラッシュメモリ3に一時保存するとともに、当該処理結果を表示部10に適宜出力させる。
【0021】
RAM4は、CPU20の作業領域として機能するメモリである。本実施の形態においては、RAM4は電源断時にデータが消失する揮発性メモリであり、キャッシュメモリ40を有している。
【0022】
キャッシュメモリ40は、後述の図4(a)に示すように、CPU20から送信されるデータをバッファリング(一時保存)するメモリである。
【0023】
フラッシュメモリ3は、電子機器1の各種機能を実現するためのプログラムやデータを記憶する不揮発性のメモリである。本実施の形態においては、フラッシュメモリ3は、本発明に係るメモリ管理プログラム81等を記憶するとともに、データエリア82を有している。
【0024】
メモリ管理プログラム81は、後述の電源断時処理(図2参照)や電源再投入時処理(図3参照)をCPU20に実行させるためのプログラムである。
【0025】
データエリア82は、キャッシュメモリ40に一時保存されたデータを記憶するようになっており、図4(a)に示すように、複数のブロックBと、管理領域Kとを有している。これらのブロックB及び管理領域Kは、各ビットのデータを「1」にすることで記憶データが消去されるとともに、各ビットのデータを「1」に維持するか、或いは「0」に不可逆的に変化させるかによってデータの書き込みが可能となっている。
【0026】
このうち、複数のブロックBは、それぞれ所定バイト(数キロバイトから数十キロバイト)の容量を有しており、ブロックBごとにデータの書き込みや消去の対象として指定されるようになっている。以下、書き込みの対象として指定されたブロックBを書込中ブロックB1(書込対象ブロック)、消去の対象として指定されたブロックBを消去中ブロックB3(消去対象ブロック)、データが消去されたブロックBを空きブロックB2、その他のデータブロックを他のデータブロックB4として説明する。書込中ブロックB1は、空きブロックB2の中から何れか1つが指定されるようになっており、書込中ブロックB1に対する書き込みが完了するたびに順次、切り替えられる。また、消去中ブロックB3は、複数のブロックBの中から何れか1つが指定されるようになっており、消去中ブロックB3に対する消去が完了するたびに順次、切り替えられる。これらのブロックBには、各ブロックBを識別するためのアドレス(ブロック番号)が割り当てられている。
【0027】
管理領域Kは、本発明におけるチェーンデータエリアとして機能する領域であり、チェーンデータCを逐次更新して記憶するようになっている。ここで、チェーンデータCとは、クラスタチェーンとも称されるデータであり、データ書込順に対応するブロックBの順序を、各ブロックBのアドレスで示したデータである。なお、この管理領域Kには、記憶データのファイル名やデータ量などが記憶されていても良い。
【0028】
[1.3 動作]
続いて、電子機器1の動作について、図面を参照しつつ説明する。
【0029】
[1.3.1 電源断時処理]
図2は、CPU20がメモリ管理プログラム81を読み出して実行する電源断時処理の流れを示すフローチャートである。なお、この電源断時処理は、電子機器1の起動時に自動的に実行されるようになっている。
【0030】
この図に示すように、電源断時処理においてまずCPU20は、電源断検知部50により電源断が検知されたか否かを判定し(ステップS1)、検知されないと判定した場合(ステップS1;No)にはステップS1の処理を繰り返す。
【0031】
なお、このステップS1が繰り返されている状態では、CPU20は、適宜、管理領域KからチェーンデータCを読み取った後、チェーンデータCにアドレスの含まれたブロックB、つまり以前に書込中ブロックB1として指定されたブロックBからデータを読み取って、電子機器1で行われる処理に供する。但し、管理領域KのチェーンデータCに「0」の羅列のデータがアドレスのデータとして含まれる場合(後述のステップT4参照)には、CPU20は、当該「0」の羅列のデータを飛ばして読み取りを行う。
【0032】
更に、ステップS1が繰り返されている状態では、図4(a)に示すように、CPU20は、適宜、当該CPU20からRAM4のキャッシュメモリ40にデータをバッファリングするとともに、キャッシュメモリ40に書き込まれているデータを、フラッシュメモリ3における書込中ブロックB1に書き込んでバックアップを行い、書込中ブロックB1への書き込みが完了した場合には、何れか1つの空きブロックB2を新たな書込中ブロックB1として指定することにより、書込中ブロックB1として指定されるブロックBを順次切り替えて、そのアドレスをチェーンデータCの末尾にチェーンデータの一部として追加して管理領域Kに記憶させる。また、CPU20は、適宜、フラッシュメモリ3における消去中ブロックB3の記憶データを消去して空きブロックB2にし、消去中ブロックB3の消去が完了した場合には、何れか1つのブロックBを新たな消去中ブロックB3として指定することにより、消去中ブロックB3として指定されるブロックBを順次切り替える。
【0033】
そして、上述のステップS1において電源断が検知されたと判定した場合(ステップS1;Yes)には、補助電源51が電力供給を開始するとともに、CPU20がキャッシュメモリ40のバックアップを開始する。
【0034】
そして、CPU20は、現時点でデータエリア82に消去中ブロックB3が存在するか否か、つまり何れかのブロックBが消去中であるか否かを判定し(ステップS3)、消去中ブロックB3が存在しないと判定した場合(ステップS3;No)には後述のステップS11に移行する。
【0035】
一方、ステップS3において消去中ブロックB3が存在すると判定した場合(ステップS3;Yes)には、CPU20は、図4(b)の(i)部分,(ii)部分に示すように、現時点での消去中ブロックB3での消去を中断した後、当該消去中ブロックB3の先頭部分に対し、データの消去途中であることを示す特定データ、本実施の形態においては複数バイト分(例えば256バイト分)だけ「0」が並んだデータを書き込む(ステップS7)。なお、図中の「0x00」とは、16進数の「0」を表している。
【0036】
次に、CPU20は、現時点での消去中ブロックB3のアドレスをRAM4に一時記憶させる(ステップS9)。
【0037】
次に、CPU20は、図5(a)の(i)部分に示すように、RAM4のキャッシュメモリ40に書き込まれているデータのうち、フラッシュメモリ3に書き込まれていないデータを、フラッシュメモリ3における書込中ブロックB1に書き込んでバックアップを行う(ステップS11)。
【0038】
次に、CPU20は、現時点の書込中ブロックB1に対して全データ(キャッシュメモリ40に書き込まれているデータのうち、まだフラッシュメモリ3に書き込まれていない全てのデータ)を書き込めたか否かを判定する(ステップS13)。
【0039】
このステップS13において書込中ブロックB1に対して全データを書き込めたと判定した場合(ステップS13;Yes)には、CPU20は、チェーンデータCを更新せずに、後述のステップS25に移行する。
【0040】
一方、ステップS13において書込中ブロックB1に対して全データを書き込めないと判定した場合(ステップS13;No)には、CPU20は、図5(a)の(ii)部分に示すように、何れかの空きブロックB2を新たな書込中ブロックB1として指定し、そのアドレスをチェーンデータCの末尾にチェーンデータの一部として追加して管理領域Kに記憶させる(ステップS21)。
【0041】
次に、CPU20は、図5(a)の(iii)部分に示すように、RAM4のキャッシュメモリ40に書き込まれているデータのうち、まだフラッシュメモリ3に書き込まれていないデータを、フラッシュメモリ3における書込中ブロックB1に書き込んでバックアップを行う(ステップS23)。
【0042】
次に、CPU20は、消去の中断された消去中ブロックB3が存在するか否か、換言すれば、消去の中断された消去中ブロックB3のアドレスが上述のステップS9によって一時記憶されているか否かを判定し(ステップS25)、消去の中断された消去中ブロックB3のアドレスが一時記憶されていないと判定した場合(ステップS25;No)には、ファイルクローズの処理を行い、補助電源51からの電力供給を停止させて、電子機器1をシャットダウンさせ(ステップS29)、電源断時処理を終了する。
【0043】
一方、ステップS25において消去の中断された消去中ブロックB3のアドレスが一時記憶されていると判定した場合(ステップS25;Yes)には、図5(a)の(iv)部分に示すように、CPU20は、そのアドレスをチェーンデータCの末尾にチェーンデータの一部として追加して管理領域Kに記憶させた後(ステップS27)、上述のステップS29に移行する。なお、このステップS27によるアドレス(消去中ブロックB3のアドレス)の追加は、上述のステップS1やステップS21によるアドレス(書込中ブロックB1のアドレス)の追加よりも後に行われるため、消去中ブロックB3のアドレスは、電源断後の再起動時にチェーンデータCの末尾に位置することとなる。
【0044】
[1.3.2 電源再投入時処理]
図3は、CPU20がメモリ管理プログラム81を読み出して実行する電源再投入時処理の流れを示すフローチャートである。なお、この電源再投入時処理は、電源断後の再起動時に自動的に実行されるようになっている。
【0045】
この図と、図5(b)の(i)部分とに示すように、電源再投入時処理においてまずCPU20は、管理領域KのチェーンデータCにおける末尾のアドレスを読み出し、このアドレスに対応するブロックBを最終動作ブロックB5として特定する(ステップT1)。
【0046】
次に、CPU20は、図5(b)の(ii)部分に示すように、最終動作ブロックB5の記憶データを参照し、先頭部分が特定データ(本実施の形態においては複数バイト分だけ「0」が並んだデータ)であるか否か、つまり最終動作ブロックB5が消去の中断された消去中ブロックB3であるか否かを判定し(ステップT2)、先頭部分が特定データでないと判定した場合(ステップT2;No)には、通常の処理へ移行する。
【0047】
一方、ステップT2において最終動作ブロックB5の記憶データの先頭部分が特定データであると判定した場合(ステップT2;Yes)、つまり最終動作ブロックB5が消去の中断された消去中ブロックB3であると判定した場合には、CPU20は、図5(b)の(iii)部分に示すように、当該最終動作ブロックB5を消去中ブロックB3として改めて指定し、当該消去中ブロックB3の記憶データの消去を開始する(ステップT3)。
【0048】
そして、CPU20は、図5(b)の(iv)部分に示すように、管理領域KのチェーンデータCに含まれる各アドレスのうち、ステップT3で消去の開始された消去中ブロックB3のアドレスのデータを「0」の羅列のデータに書き換えた後(ステップT4)、通常の処理へ移行する。なお、この通常の処理においてまずCPU20は、管理領域KからチェーンデータCを読み取った後、チェーンデータCに含まれる各アドレスのうち、上述のステップS1やステップS21により追加されたアドレス(書込中ブロックB1のアドレス)のブロックBからデータを読み取って、電子機器1で行われる処理に供する。そして、CPU20は、上述のステップS1が繰り返されている状態で行われた処理と同様の処理を行う。
【0049】
以上の電子機器1によれば、図2のステップS27や図3のステップT1〜T3、図4図5等に示したように、電源断時には現時点での消去中ブロックB3のアドレスがチェーンデータCの末尾にチェーンデータの一部として追加され、電源断後の再起動時には、このアドレスのブロックBが消去中ブロックB3として指定され、当該消去中ブロックB3の記憶データが消去されるので、再起動時にフラッシュメモリ3の記憶データ全体を消去する従来の場合や、再起動時に全ブロックBの状態を調べて消去途中のブロックBの消去を再開する従来の場合と比較して、フラッシュメモリ3のデータ消去中に電源断が発生して再起動された場合に、容易かつ迅速にデータ消去を完了することができる。
また、電源断後の再起動時に、チェーンデータのアドレスのうち、消去中ブロックB3のアドレスの前のブロックのデータを用いて、処理が再開されるので、電源断で中断された処理を迅速に再開することができる。
また、上述のようにフラッシュメモリ3のデータ消去中に電源断が発生した場合であっても、再起動時に容易かつ迅速にデータ消去を完了することができるので、データの書き込まれていない空きブロックB2を、再起動時に迅速に確保することができる。従って、電源断時にキャッシュデータを確実に空きブロックB2に書き込んで退避させることができるため、再起動時に確実に元のキャッシュデータを利用して動作を再開することができる。
【0050】
また、図2のステップS7や図3のステップT2〜T3、図4図5等に示したように、電源断時には現時点での消去中ブロックB3に対し、データの消去途中であることを示す特定データが書き込まれ、電源断後の再起動時には、チェーンデータCに含まれるアドレスのブロックBに前記特定データが記憶されている場合に、当該ブロックBが消去中ブロックB3として指定され、当該消去中ブロックB3の記憶データが消去されるので、電源断時の消去中ブロックB3を再起動時に確実に消去中ブロックB3として指定し、データ消去を行うことができる。従って、消去中ブロックB3以外のブロックBが誤って消去中ブロックB3として指定されてデータが消去されてしまうのを防止することができる。
【0051】
また、図2のステップS27や図3のステップT1〜T3、図4図5等に示したように、電源断時の消去中ブロックB3のアドレスが電源断後の再起動時にチェーンデータCの末尾に位置するように、当該消去中ブロックB3のアドレスがチェーンデータCに追加されるので、再起動時にはチェーンデータCの末尾のアドレスのブロックBのみを対象に特定データの書き込みの有無を判定することで、このブロックBが消去中ブロックB3であるか否かを確認することができる。従って、チェーンデータCの末尾のブロックBから遡って、特定データの書き込まれたブロックBを探す手間を省くことができる分、再起動時にいっそう容易かつ迅速にデータ消去を完了することができる。
【0052】
また、図2のステップS7や図4図5等に示したように、特定データは「0」が複数バイトだけ並んだデータであるので、特定データが別のデータに誤って上書きされることがない。従って、電源断時の消去中ブロックB3を再起動時に確実に消去中ブロックB3として指定し、データ消去を行うことができるため、消去中ブロックB3以外のブロックBが誤って消去中ブロックB3として指定されてデータが消去されてしまうのを防止することができる。
【0053】
また、図3のステップT4や図5等に示したように、管理領域KのチェーンデータCに含まれる各アドレスのうち、電源断時に追加された消去中ブロックB3のアドレスのデータが再起動時には「0」の羅列のデータに書き換えられ、チェーンデータCに「0」の羅列のデータがアドレスのデータとして含まれる場合には、当該「0」の羅列のデータを飛ばして読み取りが行われるので、管理領域KのチェーンデータCに消去中ブロックB3のアドレスを追加した場合であっても、再起動後に当該アドレスのブロックB(消去中ブロックB3)から読み取りが行われてしまうのを防止することができる。また、このように、チェーンデータCに消去中ブロックB3のアドレスを追加しても、当該ブロックBからの読み取りを防止することができるため、消去中ブロックB3のアドレスを消去するために管理領域Kの記憶データ全体を消去してチェーンデータCを更新する手間を省くことができる。
【0054】
また、電源断後の再起動時には、管理領域KのチェーンデータCに含まれる各アドレスのうち、チェーンデータCに最後に追加されたアドレスの書込中ブロックB1からデータが読み取られるので、電源断時に電子機器1で行われていた処理を再起動後に迅速に再開することができる。
【0055】
なお、本発明を適用可能な実施形態は、上述した実施形態に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能である。
【0056】
例えば、本発明に係る電子機器1は、携帯電話、パソコン、PDA(Personal Digital Assistant)、ゲーム機などの電子機器全般に適用可能である。また、本発明に係るメモリ管理プログラム81は、電子機器1に対して着脱可能な外部情報記憶媒体12aに記憶されることとしてもよい。
【0057】
また、電源再投入時処理においては最終動作ブロックB5の記憶データの先頭部分が特定データであると判定された場合に、最終動作ブロックB5を消去中ブロックB3として指定して記憶データの消去を開始することとして説明したが、電源断時の消去中ブロックB3のアドレスが電源断後の再起動時にチェーンデータCの末尾に位置するように、電源断時に当該消去中ブロックB3のアドレスがチェーンデータCに追加される限りにおいて、最終動作ブロックB5の記憶データに関わらず当該最終動作ブロックを消去中ブロックB3として指定して記憶データの消去を開始しても良い。
【0058】
また、電源断時処理においては消去の中断された消去中ブロックB3のアドレスを一時記憶しておき、書込中ブロックB1のアドレスをチェーンデータCの末尾に追加してから消去中ブロックB3のアドレスをチェーンデータCの末尾に追加することとして説明したが、消去中ブロックB3のアドレスを一時記憶せずにチェーンデータCの末尾に追加した後、書込中ブロックB1のアドレスをチェーンデータCの末尾に追加することとしても良い。この場合には、電源再投入時処理においてチェーンデータCの末尾側から、各ブロックBの記憶データの先頭部分が特定データであるか否かを判定し、特定データである場合に、そのブロックBを消去中ブロックB3として指定し、記憶データの消去を開始する。
【0059】
以上、本発明のいくつかの実施形態を説明したが、本発明の範囲は、上述の実施の形態に限定するものではなく、特許請求の範囲に記載された発明の範囲をその均等の範囲を含む。
以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記に記載した請求項の項番は、この出願の願書に最初に添付した特許請求の範囲の通りである。
〔付記〕
<請求項1>
電源断時にデータが消去される揮発性記憶手段にデータを記憶して処理を行う電子機器において、
電源断時に電力を供給する補助電源と、
複数のブロックを有するとともに、データ書込順に対応するブロックの順序を各ブロックのアドレスで示したチェーンデータが記憶されるチェーンデータエリアを有する不揮発性記憶手段と、
前記複数のブロックのうち何れか1つのブロックの記憶データを消去して空きブロックにするデータ消去手段と、
電源断時に、前記空きブロックの中で、何れか1つのブロックを書込対象ブロックとして指定して、当該書込対象ブロックのアドレスを前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させ、前記揮発性記憶手段に記憶されたデータを当該書込対象ブロックに書き込む電源断データ書込手段と、
前記電源断データ書込手段により前記書込対象ブロックのアドレスが前記チェーンデータの末尾に追加された後に、前記データ消去手段による消去途中のブロックのアドレスを、前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させる消去チェーンデータ追加手段と、
電源断後の再起動時に、前記消去チェーンデータ追加手段により前記チェーンデータに追加されたアドレスのブロックの記憶データを前記データ消去手段に消去させるデータ消去制御手段と、
電源断後の再起動時に、前記消去チェーンデータ追加手段により追加されたアドレスの前のチェーンデータのアドレスのブロックのデータを用いて、処理を再開する処理再開手段と、
を備えることを特徴とする電子機器。
<請求項2>
請求項1記載の電子機器において、
前記消去チェーンデータ追加手段は、
電源断時に現時点での前記消去対象ブロックに対し、データの消去途中であることを示す特定データを書き込む特定データ書込手段を有し、
前記データ消去制御手段は、
電源断後の再起動時に、前記チェーンデータに含まれるアドレスのブロックに前記特定データが記憶されている場合に、前記データ消去手段に当該ブロックの記憶データを消去させることを特徴とする電子機器。
<請求項3>
請求項1又は2に記載の電子機器において、
前記不揮発性記憶手段は、
各ビットのデータを「1」にすることで記憶データが消去されるとともに、
各ビットのデータを「1」に維持するか、或いは「0」に不可逆的に変化させるかによってデータの書き込みが可能であり、
前記特定データは、
「0」が複数バイトだけ並んだデータであることを特徴とする電子機器。
<請求項4>
請求項3記載の電子機器において、
前記データ消去制御手段は、
前記チェーンデータエリアの前記チェーンデータに含まれる各アドレスのうち、前記消去チェーンデータ追加手段により前記チェーンデータに追加されたアドレスのデータを「0」の羅列のデータに書き換えるチェーンデータ上書手段を有し、
当該電子機器は、
前記チェーンデータエリアから前記チェーンデータを読み取るチェーンデータ読取手段を備え、
このチェーンデータ読取手段は、
前記チェーンデータに「0」の羅列のデータがアドレスのデータとして含まれる場合に、当該「0」の羅列のデータを飛ばして読み取りを行うことを特徴とする電子機器。
<請求項5>
電源断時にデータが消去される揮発性記憶手段にデータを記憶して処理を行う電子機器のコンピュータで実行されるプログラムであって、
前記電子機器は、
電源断時に電力を供給する補助電源と、
複数のブロックを有するとともに、データ書込順に対応するブロックの順序を各ブロックのアドレスで示したチェーンデータが記憶されるチェーンデータエリアを有する不揮発性記憶手段と、
を有し、
当該プログラムは、この電子機器のコンピュータに、
前記複数のブロックのうち何れか1つのブロックの記憶データを消去して空きブロックにするデータ消去機能と、
電源断時に、前記空きブロックの中で、何れか1つのブロックを書込対象ブロックとして指定して、当該書込対象ブロックのアドレスを前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させ、前記揮発性記憶手段に記憶されたデータを当該書込対象ブロックに書き込む電源断データ書込機能と、
前記電源断データ書込機能により前記書込対象ブロックのアドレスが前記チェーンデータの末尾に追加された後に、前記データ消去機能による消去途中のブロックのアドレスを、前記チェーンデータの末尾にチェーンデータの一部として追加して前記チェーンデータエリアに記憶させる消去のチェーンデータ追加機能と、
電源断後の再起動時に、前記消去チェーンデータ追加機能により前記チェーンデータに追加されたアドレスのブロックの記憶データを前記データ消去機能により消去させるデータ消去制御機能と、
電源断後の再起動時に、前記消去チェーンデータ追加機能により追加されたアドレスの前のチェーンデータのアドレスのブロックのデータを用いて、処理を再開する処理再開機能と、
を実現させることを特徴とするプログラム。
【符号の説明】
【0060】
1 電子機器
3 フラッシュメモリ
20 CPU
51 補助電源
B ブロック
B1 書込中ブロック
B2 空きブロック
B3 消去中ブロック
C チェーンデータ
K 管理領域
図1
図2
図3
図4
図5