(57)【要約】【課題】  セクタの構造を意識することなく、フラッシュＲＯＭのセクタ内のデータを消去することが可能なフラッシュＲＯＭを備えた情報処理装置及びフラッシュＲＯＭのデータ消去方法を提供する。【解決手段】  情報処理装置１は、複数のセクタを有するフラッシュＲＯＭ２０と、フラッシュＲＯＭ２０の所定の領域に含まれるデータの消去を行うＣＰＵ１０と、を備える。フラッシュＲＯＭ２０は、複数種類のフラッシュのセクタ構造を考慮して設定される複数の消去領域が設定されている。ＣＰＵ１０は、フラッシュＲＯＭ２０の設定された消去領域毎にデータの消去を行う。【選択図】  図４
2007133512.tif 000002
【特許請求の範囲】
【請求項１】
複数のセクタを有するフラッシュＲＯＭと、
前記フラッシュＲＯＭの所定の領域に含まれるデータの消去を行うＣＰＵと、を備え、
前記フラッシュＲＯＭは、複数種類のフラッシュのセクタ構造を考慮して設定される複数の消去領域が設定されており、
前記ＣＰＵは、前記フラッシュＲＯＭの前記消去領域毎にデータの消去を行うことを特徴とする情報処理装置。
【請求項２】
前記消去領域は、前記複数種類のフラッシュＲＯＭの先頭アドレスのアドレスを同一と設定してやったときに、各フラッシュＲＯＭに含まれるあるセクタの先頭アドレスと最終アドレスが全て共通するものがあれば、その先頭アドレスから最終アドレスまでが一つの消去領域として設定されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記ＣＰＵは、前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか確認することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記フラッシュＲＯＭは、複数種類のフラッシュのセクタ構造を考慮して設定される複数の確認領域が設定されており、
前記ＣＰＵは、前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか前記確認領域中の少なくとも１アドレスを確認することにより判断することを特徴とする請求項１〜３の何れか一項に記載の情報処理装置。
【請求項５】
前記確認領域は、前記複数種類のフラッシュＲＯＭのセクタサイズの最大公約数を基として設定されることを特徴とする請求項１〜４の何れか１項に記載の情報処理装置。
【請求項６】
前記ＣＰＵは、消去領域のデータの消去を実行する消去処理ルーチンと、前記消去処理ルーチンで消去された消去領域の消去確認を行う消去確認ルーチンと、を実行し、
前記消去確認ルーチンは、消去処理と消去確認処理とを所定間隔毎に処理を実行するように構成されていることを特徴とする請求項４に記載の情報処理装置。
【請求項７】
複数のセクタを有するフラッシュＲＯＭのデータを消去するフラッシュＲＯＭのデータ消去方法であって、
前記フラッシュＲＯＭには複数種類のフラッシュのセクタ構造を考慮して設定される複数の消去領域が設定されており、
前記フラッシュＲＯＭの前記消去領域毎にデータを消去する消去ステップと、
前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか確認する確認ステップと、を備えたことを特徴とするフラッシュＲＯＭのデータ消去方法。
【請求項８】
前記消去領域は、前記複数種類のフラッシュＲＯＭの先頭アドレスのアドレスを同一と設定してやったときに、各フラッシュＲＯＭに含まれるあるセクタの先頭アドレスと最終アドレスが全て共通するものがあれば、その先頭アドレスから最終アドレスまでを一つの消去領域として設定することを特徴とする請求項６に記載のフラッシュＲＯＭのデータ消去方法。
【請求項９】
前記フラッシュＲＯＭは、複数種類のフラッシュのセクタ構造を考慮して設定される複数の確認領域が設定されており、
前記確認ステップは、前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか前記確認領域中の少なくとも１アドレスを確認することにより判断することを特徴とする請求項７または８に記載のフラッシュＲＯＭのデータ消去方法。
【請求項１０】
前記確認領域は、前記複数種類のフラッシュＲＯＭのセクタサイズの最大公約数を基として設定されることを特徴とする請求項７〜９の何れか１項に記載のフラッシュＲＯＭのデータ消去方法。
【請求項１１】
前記消去ステップを実行した後、一定間隔毎に確認ステップを実行することを特徴とする請求項７〜１０の何れか１項に記載のフラッシュＲＯＭのデータ消去方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュＲＯＭを備えた情報処理装置及びフラッシュＲＯＭのデータ消去方法に係り、特に、フラッシュＲＯＭのセクタ消去を実行するための制御方法に関する。
【背景技術】
【０００２】
近年、パーソナルコンピュータやプリンタの内部には、フラッシュＲＯＭが一般的に設けられている。フラッシュＲＯＭは、電気的に書き換えが可能な不揮発性メモリであり、例えば、プリンタの場合には、各情報処理装置の起動動作や各種制御を実行させるためのプログラム（ファームウェア等）、起動時の初期設定値、フォントデータ等が内部に記憶されている。
【０００３】
フラッシュＲＯＭは、図２に示すように内部が複数のセクタと呼ばれる記憶領域に分割されている。フラッシュＲＯＭの情報を書き換える場合には、このセクタ毎にデータを一括消去し、消去されたセクタにデータを書き込む。このフラッシュＲＯＭのセクタの大きさは、必ずしも全てが同じ大きさではなく、通常は、フラッシュＲＯＭの容量や種類によって様々な大きさに分割されている。
【０００４】
フラッシュＲＯＭ中のセクタ構造を調べる方法としては、エレクトリックシグネチャを用いて製造メーカ及び型番を確認したり、直接フラッシュメモリにアクセスしてセクタ構造を確認したりする方法が提案されている（例えば、特許文献１参照）。このような方法を用いて確認を行うことにより、セクタ構造を常に意識してフラッシュＲＯＭにアクセスすることが可能であり、誤ってデータを消去してしまったり、誤ったデータを読み出してしまったりといった不具合を未然に防ぐことが可能となる。
【特許文献１】特願２００４−９４３４２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
情報処理装置において、フラッシュＲＯＭの消去を行う場合には、上述したようにフラッシュＲＯＭ内のセクタの配置やサイズといったセクタ構造を考慮して実行してやる必要がある。そのためには、情報処理装置に設けられるファームウェアを内部に設けられたフラッシュＲＯＭのセクタ構造を意識して、個々に設計してやる必要がある。
【０００６】
例えば、図２では、８Ｍビット及び１６ＭビットのフラッシュＲＯＭ１１０，１２０は、上位６４Ｋバイト分については、順に１６Ｋバイト、８Ｋバイト、８Ｋバイト、３２Ｋバイトの４つのセクタで構成されている。したがって上位８Ｍビット分を消去するためには、各セクタを消去する毎に確認を行うことにより、４回の消去確認作業をおこなえばよい。しかしながら、３２ＭビットのフラッシュＲＯＭ１３０は、８Ｋバイトのセクタが８個配置されて６４Ｋバイトを構成しているので、この場合では、各セクタを消去する毎に確認することにより、８回の消去確認作業を行うこととなる。したがって、開発者はセクタの構造を常に意識して、セクタの構造に応じた消去方法をその都度検討しなければならない。
【０００７】
本発明は、セクタの構造を意識することなく、フラッシュＲＯＭのセクタ内のデータを消去することが可能なフラッシュＲＯＭを備えた情報処理装置及びフラッシュＲＯＭのデータ消去方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、以下の構成を有する。
（１）  複数のセクタを有するフラッシュＲＯＭと、
前記フラッシュＲＯＭの所定の領域に含まれるデータの消去を行うＣＰＵと、を備え、
前記フラッシュＲＯＭは、複数種類のフラッシュのセクタ構造を考慮して設定される複数の消去領域が設定されており、
前記ＣＰＵは、前記フラッシュＲＯＭの前記消去領域毎にデータの消去を行うことを特徴とする情報処理装置。
（２）  前記消去領域は、前記複数種類のフラッシュＲＯＭの先頭アドレスのアドレスを同一と設定してやったときに、各フラッシュＲＯＭに含まれるあるセクタの先頭アドレスと最終アドレスが全て共通するものがあれば、その先頭アドレスから最終アドレスまでが一つの消去領域として設定されることを特徴とする（１）に記載の情報処理装置。
（３）  前記ＣＰＵは、前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか確認することを特徴とする（１）または（２）に記載の情報処理装置。
（４）  前記フラッシュＲＯＭは、複数種類のフラッシュのセクタ構造を考慮して設定される複数の確認領域が設定されており、
前記ＣＰＵは、前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか前記確認領域中の少なくとも１アドレスを確認することにより判断することを特徴とする（１）〜（３）の何れか一項に記載の情報処理装置。
（５）  前記確認領域は、前記複数種類のフラッシュＲＯＭのセクタサイズの最大公約数を基として設定されることを特徴とする（１）〜（４）の何れか１項に記載の情報処理装置。
（６）  前記ＣＰＵは、消去領域のデータの消去を実行する消去処理ルーチンと、前記消去処理ルーチンで消去された消去領域の消去確認を行う消去確認ルーチンと、を実行し、
前記消去確認ルーチンは、消去処理と消去確認処理とを所定間隔毎に処理を実行するように構成されていることを特徴とする（４）に記載の情報処理装置。
（７）  複数のセクタを有するフラッシュＲＯＭのデータを消去するフラッシュＲＯＭのデータ消去方法であって、
前記フラッシュＲＯＭには複数種類のフラッシュのセクタ構造を考慮して設定される複数の消去領域が設定されており、
前記フラッシュＲＯＭの前記消去領域毎にデータを消去する消去ステップと、
前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか確認する確認ステップと、を備えたことを特徴とするフラッシュＲＯＭのデータ消去方法。
（８）  前記消去領域は、前記複数種類のフラッシュＲＯＭの先頭アドレスのアドレスを同一と設定してやったときに、各フラッシュＲＯＭに含まれるあるセクタの先頭アドレスと最終アドレスが全て共通するものがあれば、その先頭アドレスから最終アドレスまでを一つの消去領域として設定することを特徴とする（６）に記載のフラッシュＲＯＭのデータ消去方法。
（９）  前記フラッシュＲＯＭは、複数種類のフラッシュのセクタ構造を考慮して設定される複数の確認領域が設定されており、
前記確認ステップは、前記消去領域のデータを消去する毎に、前記消去領域のデータが消去されたかどうか前記確認領域中の少なくとも１アドレスを確認することにより判断することを特徴とする（７）または（８）に記載のフラッシュＲＯＭのデータ消去方法。
（１０）  前記確認領域は、前記複数種類のフラッシュＲＯＭのセクタサイズの最大公約数を基として設定されることを特徴とする（７）〜（９）の何れか１項に記載のフラッシュＲＯＭのデータ消去方法。
（１１）  前記消去ステップを実行した後、一定間隔毎に確認ステップを実行することを特徴とする（７）〜（１０）の何れか１項に記載のフラッシュＲＯＭのデータ消去方法。
【発明の効果】
【０００９】
本発明によれば、情報処理装置は、複数のセクタを有するフラッシュＲＯＭと、フラッシュＲＯＭの所定の領域に含まれるデータの消去を行うＣＰＵとを備え、フラッシュＲＯＭは、複数種類のフラッシュのセクタ構造を考慮して設定される複数の消去領域が設定されており、ＣＰＵはフラッシュＲＯＭの消去領域毎にデータの消去を行う。したがって、１度フラッシュＲＯＭの消去ルーチンを作成してしまえば、情報処理装置を新たに設計するにあたり、各情報処理装置に積載されるフラッシュＲＯＭに応じた消去ルーチンを作成する必要がない。したがって、ファームウェアの消去ルーチンの汎用性を高めることができ、開発コストを削減することが可能となる。
【００１０】
また、本発明によれば、確認領域を別途設定してやり、確認領域毎に設定された確認アドレスが消去されたかどうかを確認することにより消去確認をおこなうことができる。したがって、全てのアドレスの値を確認することなく、消去確認の処理速度を高速化することができる。また、確認領域の設定方法としては、複数種類のフラッシュＲＯＭに含まれる複数のセクタサイズの最大公約数を用いていることにより、どのようなフラッシュＲＯＭを用いた場合であっても、自動的に消去された領域に含まれる各セクタ内の１アドレスのデータが消去されたかどうかを確認することができ、処理を高速化することができる。
【００１１】
また、本発明によれば、消去処理ルーチンと消去確認ルーチンに分け、消去確認ルーチンを一定間隔で実行することによって消去処理を行わせるように構成されている。したがって、短期間に消去処理にＣＰＵパワーが割かれてしまい、具体的には無限ループ方式のように数百ミり秒時間を消去待ちに占有させてしまうといった無駄を発生させ、その他の処理を含む全体の処理の遅延が発生するといった懸念無く、消去処理を実行することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明にかかるフラッシュＲＯＭを備えた情報処理装置及びフラッシュＲＯＭのデータ消去方法の実施形態について、図面を参照しながら説明する。
【００１３】
（第１実施形態）
以下、本発明にかかるフラッシュＲＯＭを備えた情報処理装置及びフラッシュＲＯＭのデータ消去方法の第１実施形態について説明する。
【００１４】
図１は、本実施形態の情報処理装置の要部ブロック図である。
本発明の情報処理装置１は、制御中枢であるＣＰＵ１０と、書き換え可能な不揮発性メモリであるフラッシュＲＯＭ２０と、揮発性メモリであるＲＡＭ３０とが内部バス４０で接続されて構成されている。図１では、説明に必要なＣＰＵ１０と、フラッシュＲＯＭ２０と、ＲＡＭ３０のみを記載しているが、情報処理装置１の用途や種類に応じて各種インタフェース（内外部インタフェース）、操作部、表示部、各種機構（印刷機構、スキャナ、大容量ハードディスクドライブ、光学ドライブ等）等が内部バス４０を介して接続されていてもよい。
【００１５】
本実施形態では、フラッシュＲＯＭ２０内部にはファームウェアが格納されている。ファームウェアは、情報処理装置１を制御するための制御プログラムであり、ＣＰＵ１０がこのファームウェアを読み出して実行することによりこのファームウェアに基づき情報処理装置１の各部が制御され、プリンタの場合には画像記録、スキャナの場合には画像スキャンといった所定の動作が実行される。以下、本明細書では、「ファームウェアが処理する」、「ファームウェアが実行する」とは、それぞれファームウェアに基づきＣＰＵ１０が処理する、処理を実行することを意味するとして説明する。
【００１６】
本実施形態のファームウェアは、フラッシュＲＯＭの消去を行うフラッシュＲＯＭ消去プログラム（消去ルーチン）を含んでいる。ここで、消去とは、全てのアドレスをＦＦＦＦｈとする処理であって、このような状態となると各アドレスに値を書き込み可能となる。ＣＰＵ１０は、このフラッシュＲＯＭ消去プログラムを実行することによって、フラッシュＲＯＭの消去を実行する。
【００１７】
次に、本実施形態のフラッシュＲＯＭの消去方法の概略について説明する。
本実施形態のフラッシュＲＯＭの消去方法は、ＲＯＭサイズ及びＲＯＭ内のセクタの構造を予め検討しておき、検討において想定されたフラッシュＲＯＭを用いた場合には、どのようなフラッシュＲＯＭであっても、同一の消去方法で消去を行うものである。
【００１８】
具体的に説明すると、本実施形態のフラッシュＲＯＭの消去方法では、まず予め本消去方法を適用するフラッシュＲＯＭのセクタ構造を分析する。例えば、図２に示すように、８ＭビットのフラッシュＲＯＭ１１０、１６ＭビットのフラッシュＲＯＭ１２０、３２ＭビットのフラッシュＲＯＭ１３０に本実施形態のフラッシュＲＯＭの消去方法を適用するとして検討することにすると、上位６４Ｋバイト分については、フラッシュＲＯＭ１１０とフラッシュＲＯＭ１２０は、同一のセクタ構造を有していることがわかる。
【００１９】
また、フラッシュＲＯＭ１１０とフラッシュＲＯＭ１３０とを比較すると、フラッシュＲＯＭ１３０は、セクタのサイズが全て８Ｋバイトであるため、先頭から２つのセクタを一つとして見ると１６Ｋバイト、先頭から５番目から８番目までの４つのセクタを一つとしてみると３２Ｋバイトとなり、フラッシュＲＯＭ１１０と同一のセクタ構造であるとして取り扱うことができる。
【００２０】
本実施形態では、このような共通性を考慮し、この３つのフラッシュＲＯＭ１１０，１２０，１３０の消去を行う場合には、図３に示すように、何れのフラッシュＲＯＭ１１０，１２０，１３０を消去する場合であっても、第１回目の消去では上位１６Ｋバイト分を消去し消去確認を行うように消去領域（第１消去領域）を設定してやり、第２回目の消去では次の８Ｋバイト分を消去し消去確認を行うように消去領域（第２消去領域）を設定してやり、第３回目の消去では次の８Ｋバイト分を消去し消去確認を行うように消去領域（第３消去領域）を設定してやり、そして第４回目の消去では上位３２Ｋバイト分を消去し消去確認を行うように消去領域（第４消去領域）を設定してやることとする。消去領域の設定にあたっては、具体的にはセクタを指定してやるのではなく、フラッシュＲＯＭ中の消去したい領域、すなわち消去の開始アドレスと終了アドレスを指定してやることにより、開始アドレスから終了アドレスまでを含む消去領域中の連続した各アドレスのデータが消去されることとなる。
【００２１】
フラッシュＲＯＭ１３０の場合には、実際には１度の消去で第１消去領域については８Ｋバイトのセクタを２つ同時にまたは連続して消去することとなり、第４消去領域については８Ｋバイトのセクタを４つ同時にまたは連続して消去することとなる。しかしながら、消去制御にあたっては、ファームウェアは消去の開始アドレスと終了アドレスを指定し、セクタを意識せず１６Ｋバイト分のデータを消去して、消去が為されたかどうか確認すればよい。このように予めセクタの構造を考慮して消去するように構成してやることにより、ファームウェア自体は、セクタの構成を全く意識することなく同一の消去方法でフラッシュＲＯＭ１１０，１２０，１３０の消去を行うことができる。これにより、フラッシュＲＯＭ１３０であっても、４回の消去及び確認で、６４Ｋバイト分のデータが消去されることとなる。
【００２２】
なお、図３の説明では、フラッシュＲＯＭ１２０とフラッシュＲＯＭ１３０の６４Ｋバイト以降の領域についての消去方法の説明は行っていないが、これらについても、フラッシュＲＯＭ１２０とフラッシュＲＯＭ１３０のセクタ境界の共通性、すなわちフラッシュＲＯＭ１２０，１３０全体の先頭アドレスのアドレスを同一と設定してやったときに、両フラッシュＲＯＭ１２０，１３０のセクタの先頭アドレスと最終アドレスが共通するものがあれば、その先頭アドレスから最終アドレスまでを一つの消去領域として設定してやることにより、同様の処理を行うことができる。
【００２３】
以下、具体的にファームウェアが実行する消去処理を図４に示すフローチャートを参照しながら説明する。
図４のフローチャートでは、ファームウェアの開発段階で、複数のフラッシュＲＯＭのセクタ構造を考慮してフラッシュＲＯＭの消去領域が設定されていて各消去領域の先頭アドレスと最終アドレスが例えば、情報処理装置１に搭載されたフラッシュＲＯＭ２０に記憶されている。そして、消去を実行するファームウェア自体はフラッシュＲＯＭ２０のセクタを意識せず消去領域のみを考慮して消去する処理を行う。
【００２４】
具体的には、まず、フラッシュＲＯＭ２０内のある消去領域の消去を実行する場合、フラッシュＲＯＭ２０の中で消去したい領域（消去領域とは異なる任意の領域）の開始アドレスと終了アドレスが指定される。そして、ファームウェアは、この開始アドレスを消去対象アドレス“adrs”として設定してやる（ステップＳ１）。そして、その後、この消去対象アドレス“adrs”を含む消去領域の消去を実行する（ステップＳ２）。消去を開始し、消去領域の消去が完了すると（ステップＳ３：Ｙｅｓ）、ステップＳ４に進み、消去対象アドレス“adrs”を消去領域の先頭アドレスに設定してやる。
【００２５】
次に、この消去対象アドレス“adrs”の値がＦＦＦＦｈであるか、すなわち消去が為されているかどうか確認する（ステップＳ５）。ここで、きちんと消去されていれば（ステップＳ５：Ｙｅｓ）、ステップＳ６にてこの消去対象アドレス“adrs”が終了アドレスであるかどうか確認する。ここで、消去対象アドレス“adrs”が終了アドレスであれば（ステップＳ６：Ｙｅｓ）、消去処理を終了する。一方、消去対象アドレス“adrs”が終了アドレスでなければ、消去対象アドレス“adrs”を次のアドレスに変更し、ステップＳ５に戻ってステップＳ５以降の処理を繰り返す。
【００２６】
ここで、ステップＳ５の処理において、消去対象アドレス“adrs”が消えていない状況が発生する場合がある。これは、例えば、消去がうまくいっていない第１の場合と、開始アドレスと終了アドレスが異なる消去領域に跨っており、現時点では開始アドレスを含む消去領域のみを消去しただけであるため、消去がなされていない領域のアドレスが消去対象アドレス“adrs”となっている第２の場合の２つが考えられる。
【００２７】
第１の場合でも、第２の場合であっても、消去対象アドレス“adrs”が消えていなければ、ステップＳ２に戻り、再度ステップＳ２以降の処理を繰り返すこととなる。第１の場合には、ステップＳ２において、一度消去したと思われた消去領域のデータを再度消去することとなり、第２の場合には、ステップＳ２において、先ほど消去した消去領域の次の消去領域のデータを消去することとなる。
【００２８】
最終的には、開始アドレスと終了アドレスが異なる消去領域に跨って、複数の消去領域を消去する場合であっても、図４に示すフローチャートを実行することにより、全て開始アドレスを含む消去領域から終了アドレスを含む消去領域まで連続する消去領域のデータが全て消去されることとなる。
【００２９】
上記の説明を確認するとわかるように、本実施形態では、ファームウェアは消去領域と開始アドレス及び終了アドレスの関係を意識しながら消去を行うが、セクタについては全く意識することなく消去を実行している。したがって、本実施形態によれば、どのようなフラッシュＲＯＭを用いた場合であっても、予めそのフラッシュＲＯＭのセクタ構造を意識して消去方法が練られていれば、このファームウェアを用いて消去を実行することができる。したがって、最初に一度検討を行い、ファームウェアの消去ルーチンを作成するだけで、その消去ルーチンを複数種類の情報処理装置１で使い回すことが可能となる。したがって、ファームウェアの消去ルーチンの汎用性を高めることができ、開発コストを削減することが可能となる。
【００３０】
（第２実施形態）
以下、本発明にかかるフラッシュＲＯＭを備えた情報処理装置及びフラッシュＲＯＭのデータ消去方法の第２実施形態について説明する。
【００３１】
第２実施形態にかかる消去方法は、第１実施形態の消去方法のうち、消去に関わる部分は同一であるが、消去の確認に関わる部分に変更が加えられている。第１実施形態では、開始アドレスを含む消去領域の先頭アドレスから終了アドレスまでの全てのアドレスについて消去確認を行うように構成されているが、本実施形態では、全てのアドレスについて消去確認を行うのではなく、消去領域とは別に確認領域を設定し、確認領域毎に確認を行うというものである。
【００３２】
ここで、確認領域とは、図５に示すように、消去が為された後に消去確認を行う単位である。本実施形態では、ファームウェアは、各消去領域の消去が終わった後に、各確認領域内において消去以前に値が書き込まれた（ＦＦＦＦｈでない）最初のアドレスの値が消去されているかどうかを確認することによって、その確認領域の消去が行われたかどうかを確認する。即ち、本実施形態では、全てのアドレスについて消去を確認するのではなく、消去領域の内部を確認領域に区分し、確認領域のあるアドレス（確認アドレス）が消去されたかどうかを確認することによって、その確認領域の消去が行われたかどうか判断するものである。
【００３３】
本実施形態では、確認領域は、消去領域の場合と同様に、使用すると想定されるフラッシュＲＯＭの共通性に着目して決定される。ただし、確認領域の場合は、消去領域とは異なり、複数種類のフラッシュＲＯＭに含まれる複数のセクタサイズの最大公約数を用いて領域の分割が行われる。フラッシュＲＯＭ１１０，１２０，１３０を想定した場合には、８Ｋバイトと１６Ｋバイトと３２Ｋバイトのセクタサイズが存在するため、消去領域のサイズはその最大公約数である８Ｋバイトとなる。
【００３４】
この処理は、確認領域がどのようなフラッシュＲＯＭを用いた場合であっても、少なくとも消去される領域に含まれるセクタのそれぞれが消去されたかどうかを確認しようとするものである。即ち、複数種類のフラッシュＲＯＭに含まれる複数のセクタサイズの最大公約数を用いて領域の分割を行うことにより、フラッシュＲＯＭ１１０，１２０，１３０の何れのフラッシュＲＯＭを用いた場合であっても、各セクタ内の１アドレスについては消去が為されたかどうか確認することができ、この１アドレスの消去確認をもって、消去しようとする領域に含まれるセクタの消去が確実に為されたと判断することができるようになる。
【００３５】
以下、具体的にファームウェアが実行する消去処理を図６に示すフローチャートを参照しながら説明する。
【００３６】
具体的には、まず、フラッシュＲＯＭ２０内のある消去領域の消去を実行する場合、フラッシュＲＯＭ２０の中で消去したい領域（消去領域とは異なる任意の領域）の開始アドレスと終了アドレスが指定される。そして、ファームウェアは、この開始アドレスを含む消去領域と終了アドレスを含む消去領域の間の領域を可能性のある最小のセクタ単位（フラッシュＲＯＭ１１０，１２０，１３０を想定した場合には、８Ｋバイト）で分割して確認領域を設定する（ステップＳ１１）。そして、各確認領域毎に、ＦＦＦＦｈ（消えていない）最初のアドレスを検索し、そのアドレスを確認アドレスとして記憶しておく（ステップＳ１２）。
【００３７】
次に、最初の確認領域（即ち消去領域の先頭にくる確認領域）の先頭アドレスを消去対象アドレス“adrs”として設定してやる（ステップＳ１３）。そして、その後、この消去対象アドレス“adrs”を含む消去領域の消去を実行する（ステップＳ１４）。消去を開始し、消去領域の消去が完了すると（ステップＳ１５：Ｙｅｓ）、ステップＳ１６に進み、先ほど設定した確認領域の最初の確認領域の確認アドレスの値がＦＦＦＦｈであるか、すなわち消去が為されているかどうか確認する（ステップＳ１６）。ここで、きちんと消去されていれば（ステップＳ１６：Ｙｅｓ）、ステップＳ１７にてこの確認アドレスを含む確認領域が最後の確認領域であるかどうか確認する。ここで、確認アドレスを含む確認領域が最後の確認領域であれば（ステップＳ１７：Ｙｅｓ）、消去処理を終了する。一方、確認アドレスを含む確認領域が最後の確認領域でなければ、確認領域を次の確認領域に変更し、ステップＳ１６に戻ってステップＳ１６以降の処理を繰り返す。
【００３８】
ここで、ステップＳ１６の処理において、確認領域の確認アドレスが消えていない状況が発生する場合がある。これは、例えば、消去がうまくいっていない第１の場合と、開始アドレスと終了アドレスが異なる消去領域に跨っており、現時点では開始アドレスを含む消去領域のみを消去しただけであるため、消去がなされていない領域、即ち次の消去領域に含まれる確認領域の確認アドレスを確認した第２の場合の２つが考えられる。
【００３９】
第１の場合でも、第２の場合であっても、確認アドレスが消えていなければ、ステップＳ１９に移り、消去対象アドレス“adrs”を現在の確認領域の先頭アドレスに設定してやり、再度ステップＳ１４以降の処理を繰り返すこととなる。第１の場合には、ステップＳ１４において、一度消去したと思われた消去領域のデータを再度消去することとなり、第２の場合には、ステップＳ１４において、先ほど消去した消去領域の次の消去領域のデータを消去することとなる。
【００４０】
最終的には、開始アドレスと終了アドレスが異なる消去領域に跨って、複数の消去領域を消去する場合であっても、図６に示すフローチャートを実行することにより、全て開始アドレスを含む消去領域から終了アドレスを含む消去領域まで連続する消去領域のデータが全て消去されることとなる。
【００４１】
上記の説明を確認するとわかるように、本実施形態でも第１実施形態と同様に、ファームウェアは消去領域と開始アドレス及び終了アドレスの関係を意識しながら消去を行うが、セクタについては全く意識することなく消去を実行している。したがって、本実施形態によれば、どのようなフラッシュＲＯＭを用いた場合であっても、予めそのフラッシュＲＯＭのセクタ構造を意識して消去方法が練られていれば、このファームウェアを用いて消去を実行することができる。したがって、最初に一度検討を行い、ファームウェアの消去ルーチンを作成するだけで、その消去ルーチンを複数種類の情報処理装置１で使い回すことが可能となる。したがって、ファームウェアの消去ルーチンの汎用性を高めることができ、開発コストを削減することが可能となる。
【００４２】
また、本実施形態では、確認領域を別途設定してやり、確認領域毎に設定された確認アドレスが消去されたかどうかを確認することにより消去確認をおこなうため、全てのアドレスの値を確認する第１実施形態と比べて、消去確認の処理速度を高速化することができる。また、確認領域の設定方法としては、複数種類のフラッシュＲＯＭに含まれる複数のセクタサイズの最大公約数を用いているので、どのようなフラッシュＲＯＭを用いた場合であっても、自動的に消去された領域に含まれる各セクタ内の１アドレスのデータが消去されたかどうかを確認することができ、高速化しつつも、消去確認の信頼性を向上させることができる。また、この場合であっても、ファームウェア自体はセクタを意識することなく、処理を実行できるため、消去ルーチンの汎用性を高めることができる。
【００４３】
なお、上記説明では、確認アドレスは、１アドレスとして説明を行ったが、これに限られず各確認領域中の複数アドレスを確認するようにしてもよい。ただし、少なくとも１アドレスを確認することにより、各セクタ毎の消去確認を実行することは可能である。
【００４４】
（第３実施形態）
以下、本発明にかかるフラッシュＲＯＭを備えた情報処理装置及びフラッシュＲＯＭのデータ消去方法の第３実施形態について説明する。
【００４５】
第３実施形態にかかる消去方法は、第２実施形態の消去方法と考え方は同じで、消去領域と確認領域の２つの単位を用いて、消去及び消去の確認を行うが、消去及び消去確認を割込処理で実行することにより、情報処理装置１に加わる処理負荷を時間分散させるものである。
【００４６】
以下、具体的にファームウェアが実行する消去処理を図７に示すフローチャートを参照しながら説明する。
【００４７】
本実施形態の消去方法では、ファームウェアは、消去処理全体を統括する消去処理ルーチンと、消去処理ルーチンとは、独立に割り込み起動され消去処理全体の処理の一部を補完する消去確認処理ルーチンとを備えて構成される。
【００４８】
具体的には、まず、フラッシュＲＯＭ２０内のある消去領域の消去を実行する場合、フラッシュＲＯＭ２０の中で消去したい領域（消去領域とは異なる任意の領域）の開始アドレスと終了アドレスが指定される。そして、ファームウェアは、消去処理ルーチンを起動し、この開始アドレスを含む消去領域と終了アドレスを含む消去領域の間の領域を可能性のある最小のセクタ単位（フラッシュＲＯＭ１１０，１２０，１３０を想定した場合には、８Ｍビット）で分割して確認領域を設定する（ステップＳ２１）。そして、各確認領域毎に、ＦＦＦＦｈ（消えていない）最初のアドレスを検索し、そのアドレスを確認アドレスとして記憶しておく（ステップＳ２２）。
【００４９】
次に、最初の確認領域（即ち消去領域の先頭にくる確認領域）の先頭アドレスを消去対象アドレス“adrs”として設定してやる（ステップＳ２３）。そして、その後、この消去対象アドレス“adrs”を含む消去領域の消去を実行する（ステップＳ２４）。その後、消去処理ルーチンは、消去確認処理ルーチンからの終了通知を受領するまでスリープ待機し（ステップＳ２５）、終了通知を受け取ると消去処理を終了する。
【００５０】
一方、消去確認処理ルーチンは、消去処理ルーチンとは独立に起動されて、一定間隔で処理を行う。具体的に、消去処理ルーチンが起動すると、消去処理ルーチンのステップＳ２４の消去処理の完了を確認する（ステップＳ３１）。ここで、消去が完了していなければ、一手間隔処理を中断した後、再度ステップＳ３１に戻る。一方、ステップＳ３１で消去処理が終わっていれば（ステップＳ３１：Ｙｅｓ）、ステップＳ３２に進み、先ほど設定した確認領域の最初の確認領域の確認アドレスの値がＦＦＦＦｈであるか、すなわち消去が為されているかどうか確認する（ステップＳ３２）。
【００５１】
ここで、きちんと消去されていれば（ステップＳ３２：Ｙｅｓ）、ステップＳ３３にてこの確認アドレスを含む確認領域が最後の確認領域であるかどうか確認する。ここで、確認アドレスを含む確認領域が最後の確認領域であれば（ステップＳ３３：Ｙｅｓ）、終了通知を消去処理ルーチンに返して終了する。一方、確認アドレスを含む確認領域が最後の確認領域でなければ、確認領域を次の確認領域に変更し、ステップＳ３２に戻ってステップＳ３２以降の処理を繰り返す。
【００５２】
ここで、ステップＳ３２の処理において、確認領域の確認アドレスが消えていない状況が発生する場合がある。これは、例えば、消去がうまくいっていない第１の場合と、開始アドレスと終了アドレスが異なる消去領域に跨っており、現時点では開始アドレスを含む消去領域のみを消去しただけであるため、消去がなされていない領域、即ち次の消去領域に含まれる確認領域の確認アドレスを確認した第２の場合の２つが考えられる。
【００５３】
第１の場合でも、第２の場合であっても、確認アドレスが消えていなければ、ステップＳ３５に移り、消去対象アドレス“adrs”を現在の確認領域の先頭アドレスに設定してやり、ステップＳ３６でこの消去対象アドレス“adrs”を含む消去領域の消去を実行し、一手間隔処理を中断した後、再度ステップＳ３１に戻る。第１の場合には、ステップＳ３６において、一度消去したと思われた消去領域のデータを再度消去することとなり、第２の場合には、ステップＳ３６において、先ほど消去した消去領域の次の消去領域のデータを消去することとなる。
【００５４】
最終的には、開始アドレスと終了アドレスが異なる消去領域に跨って、複数の消去領域を消去する場合であっても、図７に示すフローチャートを実行することにより、全て開始アドレスを含む消去領域から終了アドレスを含む消去領域まで連続する消去領域のデータが全て消去されることとなる。
【００５５】
上記の説明を確認するとわかるように、本実施形態でも第１実施形態と同様に、ファームウェアは消去領域と開始アドレス及び終了アドレスの関係を意識しながら消去を行うが、セクタについては全く意識することなく消去を実行している。したがって、本実施形態によれば、どのようなフラッシュＲＯＭを用いた場合であっても、予めそのフラッシュＲＯＭのセクタ構造を意識して消去方法が練られていれば、このファームウェアを用いて消去を実行することができる。したがって、最初に一度検討を行い、ファームウェアの消去ルーチンを作成するだけで、その消去ルーチンを複数種類の情報処理装置１で使い回すことが可能となる。したがって、ファームウェアの消去ルーチンの汎用性を高めることができ、開発コストを削減することが可能となる。
【００５６】
また、本実施形態では、確認領域を別途設定してやり、確認領域毎に設定された確認アドレスが消去されたかどうかを確認することにより消去確認をおこなうため、全てのアドレスの値を確認する第１実施形態と比べて、消去確認の処理速度を高速化することができる。また、確認領域の設定方法としては、複数種類のフラッシュＲＯＭに含まれる複数のセクタサイズの最大公約数を用いているので、どのようなフラッシュＲＯＭを用いた場合であっても、自動的に消去された領域に含まれる各セクタ内の１アドレスのデータが消去されたかどうかを確認することができ、高速化しつつも、消去確認の信頼性を向上させることができる。
【００５７】
また、本実施形態では、消去処理ルーチンと消去確認ルーチンに分け、消去確認ルーチンを一定間隔で実行することによって第２実施形態と同等の処理を実行させるように構成されている。したがって、短期間に消去処理にＣＰＵパワーが割かれてしまい、その他の処理を含む全体の処理の遅延が発生するといった懸念無く、消去処理を実行することができる。
【図面の簡単な説明】
【００５８】
【図１】本発明にかかる第１、第２及び第３実施形態の情報処理装置の要部ブロック図である。
【図２】フラッシュＲＯＭのセクタ構造を示す模式図である。
【図３】フラッシュＲＯＭの消去領域を説明する模式図である。
【図４】第１実施形態の消去処理を説明するフローチャートである。
【図５】フラッシュＲＯＭの確認領域を説明する模式図である。
【図６】第２実施形態の消去処理を説明するフローチャートである。
【図７】第３実施形態の消去処理を説明するフローチャートである。
【符号の説明】
【００５９】
１  情報処理装置
１０  ＣＰＵ
２０，１１０，１２０，１３０  フラッシュＲＯＭ
３０  ＲＡＭ
【図１】
2007133512.tif 000003
【図２】
2007133512.tif 000004
【図３】
2007133512.tif 000005
【図４】
2007133512.tif 000006
【図５】
2007133512.tif 000007
【図６】
2007133512.tif 000008
【図７】
2007133512.tif 000009