(57)【要約】【課題】オペレーティングシステムのような書き換えの発生しない固定データが格納されているフラッシュメモリの各物理ブロックの書き換え回数の均等化処理を有効に実行する。【解決手段】情報処理部の起動時に、フラッシュメモリに格納されたオペレーティングシステムの起動回数が任意の設定回数に達しているか否かの判定を行い（ステップＳ２０２）、達しているとの判定結果を得た場合（ステップＳ２０２のＹ）、オペレーティングシステムを含む固定データを別の物理ブロックに移動させるようにした（ステップＳ２０４）。【選択図】図７
2007280079.tif 000002
【特許請求の範囲】
【請求項１】
情報処理を実行する情報処理部と、データを格納する複数の物理ブロックで構成されてオペレーティングシステムを含む固定データを任意の物理ブロックに格納するフラッシュメモリと、を含むハードウェア資源と、
前記ハードウェア資源を用いて前記フラッシュメモリの物理ブロックに格納されたデータを更新する際に更新後のデータを別の物理ブロックに格納する均等化処理を実行させる手段と、
前記情報処理部に前記オペレーティングシステムを起動させる手段と、
前記情報処理部に前記オペレーティングシステムの起動回数を記憶領域に記憶させる手段と、
前記情報処理部の起動時、前記記憶領域に記憶された起動回数が設定回数に達しているか否かを当該情報処理部に判定させる手段と、
前記記憶領域に記憶された起動回数が前記設定回数に達しているとの判定結果を得た場合、前記ハードウェア資源を用いて前記固定データを当該固定データが格納された物理ブロックから別の物理ブロックに移動させる処理を実行させる手段と、
を備える情報処理装置。
【請求項２】
前記記憶領域に記憶された起動回数が前記設定回数に達しているとの判定結果を得た場合、前記記憶領域に記憶された起動回数をクリアするようにした、請求項１記載の情報処理装置。
【請求項３】
前記情報処理部に前記判定をさせるプログラムは、ＢＩＯＳに含まれている、請求項２記載の情報処理装置。
【請求項４】
前記固定データは、前記オペレーティングシステム上で動作して前記情報処理部に商品販売データ処理を実行させるアプリケーションプログラムを含む、請求項３記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば商品販売データ処理装置等の情報処理装置に関する。
【背景技術】
【０００２】
従来、商品販売データ処理装置のような情報処理装置には、各種データを格納するためハードディスクドライブを搭載するものがある。しかし、ハードディスクドライブは振動や衝撃に弱いためデータ破損のリスクが高い。
【０００３】
そこで、ハードディスクに代わる記憶装置として、耐振動性及び耐衝撃性に優れ、近年大容量化に成功したフラッシュメモリが普及し始めている。フラッシュメモリは、コンパクトフラッシュ（登録商標）等のメモリカードの形態で情報処理装置に装着されて使用されることが多く、データの消去を複数のページからなる物理ブロック単位で行うという特徴を有する。
【０００４】
また、フラッシュメモリは、記憶素子が劣化するためデータの書き換え回数に対して制限（約１０〜３０万回）があるという特徴も有する。よって、特定の物理ブロックにデータの書き換えが集中すると、その物理ブロックの書き換え回数が別の物理ブロックよりも早く制限に達してしまうことが起こり得る。特に商品販売データ処理装置では、売上データやログ等のデータの書き込みが頻繁に発生するため、書き換え回数の制限は無視できないものとなる。
【０００５】
そこで、フラッシュメモリでは、更新後のデータを同じ物理ブロックに格納せずに別の物理ブロックに格納するようにして、各物理ブロックの書き換え回数を均等化する均等化処理が行われている。さらに、このような均等化処理をより効果的に実行するため、例えば、特許文献１には、物理ブロック毎に書き込み回数をカウントして、書き込み回数の少ない物理ブロックに優先的にデータの書き込みを行うようにした技術が開示されている。
【０００６】
【特許文献１】特開平６−２８２４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、最近の商品販売データ処理装置は、汎用のオペレーティングシステムを搭載し、このオペレーティングシステム上に商品販売データ処理を実行するためのアプリケーションプログラムを実装するという形態のものが多い。そして、フラッシュメモリが装着された商品販売データ処理装置では、オペレーティングシステムやアプリケーションプログラム等はフラッシュメモリに格納されることになる。
【０００８】
オペレーティングシステム等は基本的に書き換えの発生しない固定データであるため、特定の物理ブロックに格納されたままとなり、このような固定データを格納するフラッシュメモリでは、均等化処理は有効に行われず、フラッシュメモリの寿命が想定したものよりも短くなってしまう可能性がある。
【０００９】
本発明の目的は、商品販売データ処理装置のような情報処理装置に装着されてオペレーティングシステム等の書き換えの発生しない固定データを格納するフラッシュメモリにおける均等化処理が有効に実行されるようにすることである。
【課題を解決するための手段】
【００１０】
本発明の情報処理装置は、情報処理を実行する情報処理部と、データを格納する複数の物理ブロックで構成されてオペレーティングシステムを含む固定データを任意の物理ブロックに格納するフラッシュメモリと、を含むハードウェア資源を備え、前記ハードウェア資源を用いて前記フラッシュメモリの物理ブロックに格納されたデータを更新する際に更新後のデータを別の物理ブロックに格納する均等化処理を実行させ、前記情報処理部に前記オペレーティングシステムを起動させ、前記情報処理部に前記オペレーティングシステムの起動回数を記憶領域に記憶させ、前記情報処理部の起動時、前記記憶領域に記憶された起動回数が設定回数に達しているか否かを当該情報処理部に判定させ、前記記憶領域に記憶された起動回数が前記設定回数に達しているとの判定結果を得た場合、前記ハードウェア資源を用いて前記固定データを当該固定データが格納された物理ブロックから別の物理ブロックに移動させる処理を実行させるようにした。
【発明の効果】
【００１１】
本発明によれば、フラッシュメモリに格納されているオペレーティングシステム等の書き換えの発生しない固定データが、定期的に別の物理ブロックに移動されるため、各物理ブロックの書き換え回数の均等化処理が有効に実行され、フラッシュメモリの寿命を延ばすことができる。
【発明を実施するための最良の形態】
【００１２】
本発明の実施の一形態を図１ないし図９に基づいて説明する。本実施の形態の情報処理装置は、商品販売データ処理装置としてのＰＯＳ端末１０１への適用例である。
【００１３】
図１は、ＰＯＳ端末１０１を示す斜視図である。情報処理装置としてのＰＯＳ端末１０１は、ドロワ１０２の上に載置されており、ドロワ１０２の引出し１０３の開放動作を制御することができる。ＰＯＳ端末１０１の上面右側には入力部としてキーボード１０４と表示部としてのオペレータ用表示器１０５とが配列され、上面左側にはレシートプリンタ１０６が配列されている。ＰＯＳ端末１０１の上面後方には、表示部としての客用表示器１０７が立設されている。図１中、ＰＯＳ端末１０１の右側面近傍に設けられている溝は、カードリーダライタ１０８（図２参照）によるカード情報の読み取り等をするためにカードをスキャンするためのカード読取溝１０９である。また、ＰＯＳ端末１０１は、入力部としてバーコードスキャナ１１０を備え、商品コードを含む各種情報の入力が可能になっている。
【００１４】
図２は、ＰＯＳ端末１０１のハードウェア構成を示すブロック図である。ＰＯＳ端末１０１は、ハードウェア資源に含まれる、各種演算処理を実行し各部を制御する情報処理部としてのＣＰＵ２０１を備えている。そして、ＣＰＵ２０１にはバスライン２０４を介してＲＯＭ２０２とＲＡＭ２０３とが接続されている。
【００１５】
ＲＯＭ２０２は、データを固定的に格納し、特にＣＰＵ２０１により実行されるＢＩＯＳ（Ｂａｓｉｃ  Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｓｙｓｔｅｍ）２２１を格納する。ＢＩＯＳ２２１は、ＰＯＳ端末１０１が備える各種ハードウェアの初期化処理を行い、これらハードウェアとの間でデータの受け渡し等を制御するプログラムである。ここで、ＢＩＯＳ２２１は、デバイスの優先順位を定義する起動テーブル（図示せず）を含んでいる。この優先順位というのは、後述するブートセクタをチェックする順番である。つまり、ＢＩＯＳ２２１は、ＣＰＵ２０１に起動テーブルの優先順位に従いデバイスにアクセスさせ、そのデバイスの先頭的なアドレスにブートセクタが格納されていなければ、次のデバイスにアクセスさせるという処理を実行させる。そして、本実施の形態の起動テーブルには、後述するフラッシュメモリ２０６が最優先に定義されている。
【００１６】
さらに、本実施の形態のＢＩＯＳ２２１はカスタマイズされて、後述する特有の処理をＣＰＵ２０１に実行させるプログラムを含んでいる。
【００１７】
なお、ＰＯＳ端末１０１に不揮発性メモリを別途設けてＣＰＵ２０１にバスライン２０４を介して接続し、この不揮発性メモリにＢＩＯＳ２２１を格納するようにしてもよい。これによりＢＩＯＳ２２１は書き換え可能となる。
【００１８】
ＲＡＭ２０３は、データを書き換え自在に記憶してワークエリアとしても使用され、本実施の形態のＢＩＯＳ２２１で使用される記憶領域としての起動回数テーブル２３２（図５参照）を格納する。ＲＡＭ２０３はバッテリ（図示せず）によってバックアップされており、ＰＯＳ端末１０１の電源を落としても起動回数テーブル２３２の内容が破棄されることはない。
【００１９】
また、前述したドロワ１０２、キーボード１０４、オペレータ用表示器１０５、レシートプリンタ１０６、客用表示器１０７、カードリーダライタ１０８、バーコードスキャナ１１０は、いずれも各種の入出力回路（全て図示せず）とバスライン２０４とを介してＣＰＵ２０１に接続され、ＣＰＵ２０１によって動作制御される。さらに、ＰＯＳ端末１０１は、当該ＰＯＳ端末１０１が設置される店舗に設けられる構内回線網（図示せず）等に接続するための通信インターフェース２０５を備えており、この通信インターフェース２０５も、バスライン２０４を介してＣＰＵ２０１に接続されている。
【００２０】
そして、ＰＯＳ端末１０１は、ハードウェア資源に含まれるフラッシュメモリ２０６を備えている。フラッシュメモリ２０６はＮＡＮＤ型であり、メモリカード２１１の形態でＰＯＳ端末１０１に装着され、フラッシュメモリインターフェース２１２とバスライン２０４とを介してＣＰＵ２０１に接続されている。メモリカード２１１は、一例としてコンパクトフラッシュ（登録商標）であり、フラッシュメモリ２０６へのデータの書き込み等を制御するための制御部（図示せず）を備える。この制御部は、ＣＰＵや作業メモリ（いずれも図示せず）を備えている。
【００２１】
また、フラッシュメモリ２０６は、データの消去単位である複数個の物理ブロックで構成され（図３参照）、物理ブロックは、論理アドレスが割り当てられた複数のページ（図示せず）からなる。フラッシュメモリ２０６に格納されたデータへのアクセスは、論理アドレスを指定して実行する。このときフラッシュメモリ２０６の物理ブロックは論理アドレスに対して固定的に割当てられず、データが更新されるごとに動的に関係付けられる。したがって、フラッシュメモリ２０６には、論理ブロック番号と物理ブロック番号との対応関係を記憶するアドレス変換テーブル２３３（図４参照）が設けられている。
【００２２】
図３は、フラッシュメモリ２０６のデータ構成を示す模式図である。複数個の物理ブロックで構成されたフラッシュメモリ２０６には、図３に示すように、先頭の物理ブロックにブートローダ３０２ａを含むブートセクタ３０２が設けられている。ブートローダ３０２ａは、ＯＳローダ３０３を起動させる処理をＣＰＵ２０１に実行させる処理手順を記述しており、このＯＳローダ３０３は物理ブロック番号に関わらずフラッシュメモリ２０６に配置されている。ＯＳローダ３０３の記憶場所は、ブートローダ３０２ａによって認識可能となっている。
【００２３】
そして、フラッシュメモリ２０６は、オペレーティングシステム２６１を格納しており、ＯＳローダ３０３は、このオペレーティングシステム２６１を起動させる処理をＣＰＵ２０１に実行させる処理手順を記述している。オペレーティングシステム２６１は、一例としてウィンドウズ（登録商標）である。
【００２４】
また、フラッシュメモリ２０６は、オペレーティングシステム２６１の他、このオペレーティングシステム２６１上で動作し、ＣＰＵ２０１に商品販売データ処理を実行させるアプリケーションプログラム２６２を格納する。このアプリケーションプログラム２６２が動作することによりＰＯＳ端末１０１では商品販売データ処理が可能となる。商品販売データ処理では、バーコードスキャナ１１０で読み取った又はキーボード１０４で入力した商品コードに対応する単価や商品名称等の商品データを通信インターフェース２０５を介して図示しない上位装置から取得し、取得した単価に基づき決済金額を算出する。
【００２５】
さらに、フラッシュメモリ２０６は、アドレス変換テーブル２３３（図４参照）、商品販売データ処理の実行により作成される売上データ等を含む各種データ（図示せず）等を格納する。そして、アドレス変換テーブル２３３は、ＲＡＭ２０３又はメモリカード２１１が備える制御部の作業メモリにコピーされて使用される。
【００２６】
図４は、アドレス変換テーブル２３３を示す模式図である。アドレス変換テーブル２３３は、前述したように、フラッシュメモリ２０６の論理ブロック番号と物理ブロック番号との対応関係を記憶する。また、アドレス変換テーブル２３３は、各物理ブロック内のデータが、読み出しのみが実行されて基本的に書き換えの発生しないオペレーティングシステム２６１やアプリケーションプログラム２６２等の固定データであるか否かをも記憶する。つまり、アドレス変換テーブル２３３は、物理ブロックのデータが固定データでなければデータ状態に「０」を記憶し、固定データであればデータ状態に「１」を記憶する。なお、固定データとしては、例えばＯＳローダ３０３等を含んでいても良い。
【００２７】
ここで、図４に基づいて通常実行される均等化処理について説明する。図４に示すように、例えば、論理ブロック「２７」が物理ブロック「３０」に割り当てられている場合において、論理ブロック「２７」内のデータ更新があった場合、更新後のデータは物理ブロック「３０」に書き込まれずに、空いている別の物理ブロックに書き込まれ、アドレス変換テーブル２３３が更新される。つまり、固定データ以外の書き換えが発生するデータは、物理ブロックに偏りなく書き込みが実行される。ここに、フラッシュメモリ２０６の物理ブロックに格納されたデータを更新する際に更新後のデータを別の物理ブロックに格納する均等化処理を実行する手段の機能が実現されている。このような均等化処理は、ＣＰＵ２０１又はメモリカード２１１が備える制御部によって実行される。
【００２８】
次に、ＲＡＭ２０３に格納されて本実施の形態のＢＩＯＳ２２１で使用される起動回数テーブル２３２について、図５に基づいて説明する。
【００２９】
図５は、起動回数テーブル２３２を示す模式図である。記憶領域としての起動回数テーブル２３２は、キーボード１０４からの入力で又はデフォルトで任意に設定される設定回数Ｍと、フラッシュメモリ２０６に格納されたオペレーティングシステム２６１が起動した回数である起動回数Ｎとを記憶する。
【００３０】
ここで、本実施の形態のＢＩＯＳ２２１について説明する。ＢＩＯＳ２２１は、ＰＯＳ端末１０１の電源がオンされてＣＰＵ２０１が起動した後、後述するように起動する（図６参照）。そしてＢＩＯＳ２２１は、まず、図５に示した起動回数テーブル２３２をＣＰＵ２０１に参照させて、起動回数Ｎが設定回数Ｍに達しているか否かを判定させる。
【００３１】
そして、判定の結果、起動回数Ｎが設定回数Ｍに達している場合には、ＢＩＯＳ２２１本来の処理（ブートセクタ３０２の読み出し等）の前に、アドレス変換テーブル２３３に基づきデータ状態が「１」である物理ブロックに格納された固定データについて、別の物理ブロックに移動させる処理が実行され、固定データの移動後、アドレス変換テーブル２３３は更新される処理が実行される。これらの処理は、ＣＰＵ２０１又はメモリカード２１１が備える制御部が実行する。
【００３２】
なお、固定データの移動は、まず、固定データを、格納されている物理ブロックから別の番号の物理ブロックにコピーし、その後、元の物理ブロックに格納されているデータを消去することにより実行される。
【００３３】
こうして、書き換えの発生しない固定データについても特定の物理ブロックに格納されたままとならずに定期的に別の物理ブロックに移動されるため、フラッシュメモリ２０６全体の書き換え回数の均等化処理が有効に実行される。
【００３４】
次に、ＰＯＳ端末１０１の電源投入後に当該ＰＯＳ端末１０１で実行される処理について図６ないし図９のフローチャートに基づいて説明する。
【００３５】
図６は、電源投入後のＣＰＵ２０１が自ら実行する処理内容を示すフローチャートである。ＰＯＳ端末１０１の電源投入によりＣＰＵ２０１が起動すると、ＣＰＵ２０１は、自分自身を初期化した後、自己診断、つまりＢＩＳＴ（Ｂｕｉｌｔ  Ｉｎ  Ｓｅｌｆ  Ｔｅｓｔ）を実行する（ステップＳ１０１）。この処理は、ＣＰＵ２０１それ自体が備えているプログラムコードに従い実行される。ＣＰＵ２０１は、自己診断の結果、正常であることを確認すると、ＲＯＭ２０２に格納されているＢＩＯＳ２２１を起動させる（ステップＳ１０２）。
【００３６】
図７は、ＢＩＯＳ２２１に従いＣＰＵ２０１が実行する処理内容を示すフローチャートである。まず、ＣＰＵ２０１は、ＢＩＯＳ２２１が起動すると、このＢＩＯＳ２２１に記述されている処理手順に従い、ＲＡＭ２０３に格納されている起動回数テーブル２３２を参照し（ステップＳ２０１）、オペレーティングシステム２６１の起動回数Ｎが設定回数Ｍに達しているか否かを判定する（ステップＳ２０２）。
【００３７】
ステップＳ２０２で、起動回数Ｎが設定回数Ｍに達していないとの判定結果を得た場合（ステップＳ２０２のＮ）、起動回数テーブル２３２の起動回数Ｎに１を加算する（ステップＳ２０３）。ここに、起動回数Ｎを記憶領域としての起動回数テーブル２３２に記憶させる手段の機能が実現される。そして、ＣＰＵ２０１はＢＩＯＳ２２１に含まれる起動テーブルに従いフラッシュメモリ２０６にアクセスする。そして、フラッシュメモリ２０６の先頭的な物理ブロックに格納されているブートセクタ３０２を読み出してこのブートセクタ３０２に含まれているブートローダ３０２ａをＲＡＭ２０３に転送する（ステップＳ２０６）。そして、処理を終了する。
【００３８】
一方、ステップＳ２０２で、起動回数Ｎが設定回数Ｍに達しているとの判定結果を得た場合（ステップＳ２０２のＹ）、ＢＩＯＳ２２１に従いＣＰＵ２０１は、前述したように、アドレス変換テーブル２３３を参照して固定データについて別の物理ブロックに移動させる処理を実行する（ステップＳ２０４）。このとき固定データの物理ブロック番号が変更されるため、ＣＰＵ２０１は、アドレス変換テーブル２３３を更新する処理も実行する。なお、ステップＳ２０４における処理は、メモリカード２１１の制御部が実行するような形態であってもよく、その場合、ＣＰＵ２０１がメモリカード２１１の制御部に対して特定の命令を出すようにして、その命令を受けた制御部が、制御部自身が備える又はフラッシュメモリ２０６に格納された所定のプログラムに従い、アドレス変換テーブル２３３を参照して、固定データについて別の物理ブロックに移動させる処理を実行して、アドレス変換テーブル２３３を更新する。
【００３９】
そして、ステップＳ２０４の処理後、起動回数テーブル２３２の起動回数Ｎに０を設定することで起動回数Ｎをクリアして（ステップＳ２０５）、起動回数Ｎが設定回数Ｍに達していない場合と同様に、フラッシュメモリ２０６からブートセクタ３０２を読み出してこのブートセクタ３０２に含まれているブートローダ３０２ａをＲＡＭ２０３に転送して（ステップＳ２０６）、処理を終了する。
【００４０】
図８は、ブートローダ３０２ａに従いＣＰＵ２０１が実行する処理内容を示すフローチャートである。ＣＰＵ２０１は、ブートローダ３０２ａが起動すると、ブートローダ３０２ａに記述された処理手順に従い、フラッシュメモリ２０６に格納されているＯＳローダ３０３を読み出してＲＡＭ２０３に転送し（ステップＳ３０１）、処理を終了する。
【００４１】
図９は、ＯＳローダ３０３に従いＣＰＵ２０１が実行する処理内容を示すフローチャートである。ＣＰＵ２０１は、ＯＳローダ３０３が起動すると、ＯＳローダ３０３に記述された処理手順に従い、フラッシュメモリ２０６に格納されているオペレーティングシステム２６１を読み出してＲＡＭ２０３に転送する（ステップＳ４０１）。そして、ＲＡＭ２０３に転送したオペレーティングシステム２６１を起動し（ステップＳ４０２）、処理を終了する。
【００４２】
このとき、ステップＳ４０２では、図７のフローチャートのステップＳ２０２で起動回数Ｎが設定回数Ｍに達していないとの判定結果を得ているならば、固定データの移動は実行されていないため、移動なしの状態の固定データに含まれているオペレーティングシステム２６１が読み出されて起動することになるが、一方、図７のフローチャートのステップＳ２０２で起動回数Ｎが設定回数Ｍに達しているとの判定結果を得て、ステップＳ２０４で固定データを別の物理ブロックに移動させているならば、移動後の固定データに含まれるオペレーティングシステム２６１が読み出されて起動することになる。
【００４３】
そして、アプリケーションプログラム２６２が、オペレーティングシステム２６１の起動に伴って、又は、オペレーティングシステム２６１の起動後に任意の操作によって起動する。
【００４４】
なお、業務中のＰＯＳ端末１０１のパフォーマンスが低下する可能性はあるが、オペレーティングシステム２６１の起動後、オペレーティングシステム２６１やアプリケーションプログラム２６２の動作中に、これらを含む固定データを別の物理ブロックに移動させるようにしてもよい。
【００４５】
以上説明したように本実施の形態によれば、フラッシュメモリ２０６に格納されている書き換えの発生しないオペレーティングシステム２６１やアプリケーションプログラム２６２を含む固定データが、定期的に別の物理ブロックに移動されるため、フラッシュメモリ２０６における均等化処理が有効に実行され、フラッシュメモリ２０６の寿命を延ばすことができる。
【図面の簡単な説明】
【００４６】
【図１】ＰＯＳ端末を示す斜視図である。
【図２】ＰＯＳ端末のハードウェア構成を示すブロック図である。
【図３】フラッシュメモリのデータ構成を示す模式図である。
【図４】アドレス変換テーブルを示す模式図である。
【図５】起動回数テーブルを示す模式図である。
【図６】電源投入後のＣＰＵが自ら実行する処理内容を示すフローチャートである。
【図７】ＢＩＯＳに従いＣＰＵが実行する処理内容を示すフローチャートである。
【図８】ブートローダに従いＣＰＵが実行する処理内容を示すフローチャートである。
【図９】ＯＳローダに従いＣＰＵが実行する処理内容を示すフローチャートである。
【符号の説明】
【００４７】
１０１…ＰＯＳ端末（情報処理装置），２０１…ＣＰＵ（情報処理部），２０６…フラッシュメモリ，２２１…ＢＩＯＳ，２３２…起動回数テーブル（記憶領域），２６１…オペレーティングシステム，２６２…アプリケーションプログラム，Ｍ…設定回数，Ｎ…起動回数
【図１】
2007280079.tif 000003
【図２】
2007280079.tif 000004
【図３】
2007280079.tif 000005
【図４】
2007280079.tif 000006
【図５】
2007280079.tif 000007
【図６】
2007280079.tif 000008
【図７】
2007280079.tif 000009
【図８】
2007280079.tif 000010
【図９】
2007280079.tif 000011