(57)【要約】    【課題】ストレージに寿命等によるエラーが生じても、運用上最小限必要な機能で動作できるPOSシステムを提供する。    【解決手段】起動後に通常プログラムに基づく処理または非常プログラムに基づく処理を選択的に実行する制御部と、前記通常プログラムを格納し、読み書き可能な第１格納部と、前記非常プログラムを予め格納する第２格納部と、前記第１格納部に対する読み書きの異常を検出する異常検出部とを備え、前記制御部は、前記第１格納部から通常プログラムを逐次読み出して第１格納部へのアクセスを伴う処理を実行し、前記第１格納部に対する読み書きの異常が前記異常検出部により検出された場合、再起動により非常プログラムに基づく処理の実行に切換え、前記非常プログラムは、前記制御部が通常プログラムの機能の一部のみを処理しかつ第１格納部へのアクセスを伴わずにその処理を実行するPOS端末装置。【選択図】図１
2011210117.tif 000002
【特許請求の範囲】
【請求項１】
起動後に通常プログラムに基づく処理または非常プログラムに基づく処理を選択的に実行する制御部と、
前記通常プログラムを格納し、読み書き可能な第１格納部と、
前記非常プログラムを予め格納する第２格納部と、
前記第１格納部に対する読み書きの異常を検出する異常検出部とを備え、
前記制御部は、前記第１格納部から通常プログラムを逐次読み出して第１格納部へのアクセスを伴う処理を実行し、前記第１格納部に対する読み書きの異常が前記異常検出部により検出された場合、再起動により非常プログラムに基づく処理の実行に切換え、
前記非常プログラムは、前記制御部が通常プログラムの機能の一部のみを処理しかつ第１格納部へのアクセスを伴わずにその処理を実行するプログラムであることを特徴とするPOS端末装置。
【請求項２】
前記通常プログラムおよび前記非常プログラムは、前記制御部が起動時に実行すべきブートプログラム、オペレーティングシステムのプログラムおよびアプリケーションプログラムをそれぞれ含む請求項１に記載のPOS端末装置。
【請求項３】
前記制御部は、起動後、予め定められた回数を超える前記異常が検出されたときに再起動を行う請求項１または２に記載のPOS端末装置。
【請求項４】
前記第２格納部は、前記制御部がデータを書込むことのできない記憶領域である請求項１〜３のいずれか一つに記載のPOS端末装置。
【請求項５】
前記第１格納部は、フラッシュメモリからなる請求項１〜４のいずれか一つに記載のPOS端末装置。
【請求項６】
前記第１格納部は、ハードディスク装置からなる請求項１〜４のいずれか一つに記載のPOS端末装置。
【請求項７】
起動後に通常プログラムに基づく処理または非常プログラムに基づく処理を選択的に実行し得る制御部が、第１の起動後に、第１格納部にアクセスして前記通常プログラムを逐次読み出し、その通常プログラムに基づいて第１格納部へのアクセスを伴う処理を実行する工程と、
前記第１格納部に対する読み書きの異常を検出する異常検出部から異常の通知を受ける工程と、
前記通知に基づいてプログラム選択用データを設定し、それによって第２の起動後は前記制御部が第２格納部にアクセスして非常プログラムを読み出しその非常プログラムに基づく処理を行うようにする工程と、
第２の再起動を行った後、前記プログラム選択用データの設定に基づいて前記非常プログラムに基づく処理を実行する工程とを備え、
前記非常プログラムは、前記制御部が通常プログラムの一部の機能のみを処理しかつ第１格納部へのアクセスを伴わずにその処理を実行するプログラムであることを特徴とするPOS端末制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ストレージを用いたPOS端末装置およびPOS端末制御方法に関する。
【背景技術】
【０００２】
販売店等の在庫・発注管理、販売統計などを中央のコンピュータであるホストとそれに接続された一以上のPOS端末とで処理するPOSシステムが知られている。そのうち、ガソリンスタンドや喫茶店等、空気中に埃が多い環境で使用されるPOS端末においては、フラッシュメモリをシステムソフトウエアの記憶装置（ストレージ）とする場合が多い。フラッシュメモリは機械的な駆動部品がないので埃に起因する故障が低減できると期待されるためである。しかし、そのようなPOS端末の中には、同一データを複数の記憶領域に格納しておくストレージの多重化を行わないものも多い。システムの低価格化のためである。
【０００３】
一方、電子データを格納するストレージにおいて、寿命に達するなどしたときに発生する記憶エラーやアクセスエラーを検出し、使用者や管理者に知らせて対処を促す手法が知られている。とくに、近年はハードディスク装置やフラッシュメモリ等、機器本体の耐用年数経過前に交換することを想定したストレージが種々の電子機器に多用されている。このような電子機器のクラッシュを事前に回避するための一手段として、ストレージの寿命をあらかじめ予測し、電子機器の動作に不具合が発生する前に使用者等に警告を発する手段が提案されている。
【０００４】
その一つは、フラッシュメモリのような寿命が比較的短い記憶媒体を用いるリムーバブルメディアにおいて、データをロードしてからアンロードするまでに処理したデータ数と、その際に発生したエラーの回数をカウントする手法である（例えば、特許文献１参照）。具体的には、カウントされたデータ数とエラーの回数をもとにエラーレートを計算し、あらかじめ設定したエラーレートの閾値と比較する。エラーレートが閾値を上回る場合はリムーバブルメディアが不良であると判断している。
【０００５】
また、これとは別に、フラッシュメモリの書き込みターゲットとなっているブロックに正しく書き込むことができなかった場合の対処法が提案されている。通常フラッシュメモリでは、書き込みができなくなったブロックが発生すると、あらかじめ確保された「書換代替領域」に書き込みを行うことにより、結果的にフラッシュメモリへのデータの保存を行えるように設計されている。これに対して、前述の提案は、予め「書換代替領域」ブロックの残数を閾値として設定しておき、閾値よりも「書換代替領域」ブロックの残数を下回った場合、フラッシュメモリの寿命を警告するものである（例えば、特許文献２参照）。
問題がある箇所のコンポーネントを迂回してシステムを再起動するストレージシステムが提案されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平４−２６８６２５号公報
【特許文献２】特開２００３−８５０５４号公報
【特許文献３】特開２００９−９２００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述のように、フラッシュメモリ等、本体の耐用期間に比べて寿命の短いストレージを使用し、かつ、ストレージの二重化等が行われていないPOS端末では、ストレージが寿命を迎えるとPOS端末が正常動作しなくなり、POSシステムがダウンしてしまう。
POSシステムの使用者や管理者は、システムがダウンした時点でサポートセンターなどに連絡し、代替部品の到着を待ってPOSシステムの復旧を行っていた。
【０００８】
あるいは、従来のPOSシステムでは、POS端末のストレージの寿命を検知し、予め定められたエラーレートの閾値と比較してストレージの正常、異常を判断し、システム運用者や使用者に対してストレージの交換を促す警告を行っていた。これによって、システムがダウンする前にサポートセンターなどへ連絡することが可能になる。
【０００９】
しかし、警告を発してからシステムがダウンするまでの期間を正確に予測することは難しく、一方でシステムダウンが回避できるよう十分なマージンを確保して警告のタイミングを早めに設定すればストレージの寿命が短くなってしまい、使用者のコスト的な負担が大きくなり受け入れられない。また、警告を発しても使用者側が迅速に対処しなければ、やがてシステムがダウンしてしまう。
この発明は、以上のような事情を考慮してなされたものであって、ストレージに寿命等により読み出しおよび／または書き込みの異常（以下、リードライトエラー又は単にエラー）が生じても、運用上最小限必要な機能で動作できるPOS端末装置およびPOS端末制御方法を提供するものである。
【課題を解決するための手段】
【００１０】
この発明は、起動後に通常プログラムに基づく処理または非常プログラムに基づく処理を選択的に実行する制御部と、前記通常プログラムを格納し、読み書き可能な第１格納部と、前記非常プログラムを予め格納する第２格納部と、前記第１格納部に対する読み書きの異常を検出する異常検出部とを備え、前記制御部は、前記第１格納部から通常プログラムを逐次読み出して第１格納部へのアクセスを伴う処理を実行し、前記第１格納部に対する読み書きの異常が前記異常検出部により検出された場合、再起動により非常プログラムに基づく処理の実行に切換え、前記非常プログラムは、前記制御部が通常プログラムの機能の一部のみを処理しかつ第１格納部へのアクセスを伴わずにその処理を実行するプログラムであることを特徴とするPOS端末装置を提供する。
【００１１】
また、異なる観点から、この発明は、起動後に通常プログラムに基づく処理または非常プログラムに基づく処理を選択的に実行し得る制御部が、第１の起動後に、第１格納部にアクセスして前記通常プログラムを逐次読み出し、その通常プログラムに基づいて第１格納部へのアクセスを伴う処理を実行する工程と、前記第１格納部に対する読み書きの異常を検出する異常検出部から異常の通知を受ける工程と、前記通知に基づいてプログラム選択用データを設定し、それによって第２の起動後は前記制御部が第２格納部にアクセスして非常プログラムを読み出しその非常プログラムに基づく処理を行うようにする工程と、第２の再起動を行った後、前記プログラム選択用データの設定に基づいて前記非常プログラムに基づく処理を実行する工程とを備え、前記非常プログラムは、前記制御部が通常プログラムの一部の機能のみを処理しかつ第１格納部へのアクセスを伴わずにその処理を実行するプログラムであることを特徴とするPOS端末制御方法を提供する。
【発明の効果】
【００１２】
この発明のPOS端末装置において、前記非常プログラムは、前記制御部が通常プログラムの機能の一部のみを処理しかつ第１格納部へのアクセスを伴わずにその処理を実行するプログラムであるので、POSシステムの運用上最小限必要な機能は実行することができ、かつ、異常が検出された第１格納部を用いずにその処理を行うことができる。
この発明のPOS端末制御方法も、同様の作用効果を奏する。
【００１３】
即ち、本発明のPOS端末装置によれば、ストレージに通常プログラムとして通常ブートプログラム、OS、システムアプリケーション用プログラムが用意される。さらに、それらと別に、非常プログラムとしてのプレブート・プログラムを実装する。CPUがそのプレブート・プログラムを実行することにより、POS端末はシステム運用上最小限必要な機能を実行する。
【００１４】
この発明において、前記制御部は、POS端末の動作およびデータ処理を行うCPUである。
また、第１格納部は、通常プログラムを少なくとも格納する記憶装置であって、通常プログラムに基づく処理を実行する際に用いるデータを格納してもよい。第１格納部は、前記ストレージであって、ハードウェアとしては、例えばフラッシュメモリが用いられる。
第２格納部は、第１格納部に異常が検出されたときも正常に読み書きができる記憶装置であって、非常プログラムを格納する。第２格納部は、第１格納部とことなる記憶装置であってもよいが、同一の記憶装置の異なる領域に設けられてもよい。後述する実施形態において、第２格納部は、第１格納部と同じフラッシュメモリに設けられている。ただし、第２格納部は、CPUによる書き込みができないよう回路的にプロテクトされた書込禁止領域に予め格納されている。フラッシュメモリの寿命はメモリセルに高電圧が印加される書き込みの回数によって実質的に決まる。従って、書込禁止領域については、メモリセルの劣化に伴う異常は実質的に気にする必要がないといえる。
異常検出部は、第１格納部の書き込みの異常を検出する。例えば、フラッシュメモリの場合、オンチップの制御回路にリードライトエラーの数を記憶する機能が備わっているのが一般的である。ハードディスク・ドライブ装置についても同様の機能が通常内蔵されている。これらの機能を異常検出部として用いてもよい。
【図面の簡単な説明】
【００１５】
【図１】本発明を実現するPOS端末のハードウェア構成の一形態を示すブロック図である。
【図２】この発明おいて、ストレージのエラーを検出しプレブート環境へ移行する処理の一例を示す第１の説明図である。
【図３】この発明おいて、ストレージのエラーを検出しプレブート環境へ移行する処理の一例を示す第２の説明図である。
【発明を実施するための形態】
【００１６】
以下、この発明の好ましい態様について説明する。
【００１７】
前記通常プログラムおよび前記非常プログラムは、前記制御部が起動時に実行すべきブートプログラム、オペレーティングシステムのプログラムおよびアプリケーションプログラムをそれぞれ含んでもよい。このようにすれば、非常プログラムは、通常プログラムとは別にブートプログラム、オペレーティングシステムのプログラムおよびアプリケーションプログラムを含むので、異常が検出された第１格納部にアクセスしなくてもPOS端末装置を必要最小限の機能（プレブート環境）で動作させることができる。
【００１８】
また、前記制御部は、起動後、予め定められた回数を超える前記異常が検出されたときに再起動を行ってもよい。このようにすれば、第１格納部を構成するハードウェアの特性に応じた閾値を予め定めておき、第１格納部の異常が単発的なものか寿命劣化等に伴う傾向的なものかを適切に判断することができる。
【００１９】
さらにまた、前記第２格納部は、前記制御部がデータを書込むことのできない記憶領域であってもよい。このようにすれば、非常プログラムは前記制御部からの指令による書き込みができない書込禁止領域に予め格納されるので、仮にストレージのリードライトエラー等の原因でCPUが暴走しても、プレブート・プログラムが意図せずに書換えられてしまうといった不具合が発生しない。
前記第１格納部は、フラッシュメモリからなるものでもよい。あるいは、前記第１格納部は、ハードディスク装置からなるものでもよい。
ここで示した種々の好ましい態様は、それら複数を組み合わせることもできる。
【００２０】
以下、図面を用いてこの発明をさらに詳述する。なお、以下の説明は、すべての点で例示であって、この発明を限定するものと解されるべきではない。
【００２１】
≪POSシステムのハードウェア構成≫
図１は、本発明を実現するPOS端末のハードウェア構成の一形態を示すブロック図である。POS端末100は、図１に示す以下に説明するブロックを備えている。
制御部101は、CPUからなり、POS端末100全体の動作の制御やデータ処理を行う。表示部102(ディスプレイ)は、POS端末及びPOSシステムに係る情報を表示する液晶表示装置からなる。操作部103は、POSシステムに対する入力を行うキーボードやタッチパネルである。
【００２２】
一時記憶部107は、DRAMで構成された記憶装置であって、制御部101の作業記憶領域として使用される。一時記憶部107は、この発明に係る前記ストレージには該当しない。一時記憶部107は、第１エラーイベント記憶領域112および、第２エラーイベント記憶領域113を含む。
第１エラーイベント記憶領域112は、後述するエラーイベント監視プロセスの管理下にあるデータ記憶領域であって、POS端末100が起動する際に発生したエラーの個数を保持する記憶領域である。
通信部115は、POS端末100が外部のホスト（図示せず）と通信を行うためのインターフェイス回路である。POS端末100側での前記ホストとの通信は、制御部101が制御する。
【００２３】
ブートプログラム記憶部105はフラッシュメモリを用いて提供される記憶領域である。ブートプログラム記憶部105は、本体の耐用期間よりも寿命が短く、前記耐用期間中の交換が想定される前記ストレージの一つである。ブートプログラム記憶部105は、書き込み可能な領域に通常ブートプログラムを保持する。ブートプログラムのバージョンアップを可能にするためである。さらに、ブートプログラム記憶部105は、記憶領域の一部にCPU制御による書込みが不可能なように回路的な構成がなされた書込禁止領域111を含んでおり、その書込禁止領域111に予めプレブート・プログラムを保持する。
【００２４】
通常ブートプログラムは、前記ストレージが正常に動作している場合であって、全機能が動作するようにPOS端末100を起動させるブートプログラムである。一方、プレブート・プログラムは、前記ストレージのエラーが検出されて制御部101がストレージのエラーがあると判断したとき、POS端末100を再起動（プレブート）して必要最小限の機能で動作させるためのプログラムである。即ち、前記再起動後に制御部101が実行すべきブートプログラム、OS、システムアプリケーション用プログラムが書込禁止領域111に保持されている。
【００２５】
第１メモリ制御部104は、ブートプログラム記憶部105に対するデータの読み書きを制御部101が制御できるようにするインターフェイス回路である。さらに、フラッシュメモリのリードライトエラーの発生状態を検出する論理回路を含む。図１では、ブートプログラム記憶部105と第１メモリ制御部104とを異なるブロックとして示しているが、一態様としては第１メモリ制御部104とブートプログラム記憶部105とが同一のフラッシュメモリに実装されてもよい。即ち、フラッシュメモリのオンチップ制御回路が第１メモリ制御部104の機能を担ってもよい。異なる一態様によれば、第１メモリ制御部104はフラッシュメモリの外部に実装される。
【００２６】
記憶部106は、ハードディスク・ドライブ装置（HDD）により提供される記憶領域であって、OSやシステムアプリケーション用プログラムを格納する。さらに、POSシステムが扱う在庫、発注、販売に係るデータを格納してもよい。前記データは、外部のホストとの通信によって更新される。記憶部106は、本体の耐用期間経過前の交換が想定される前記ストレージである。
【００２７】
第２メモリ制御部114は、記憶部106のデータの読み書きを制御する回路である。さらに、HDDのリードライトエラーの発生状態を検出する論理回路を含む。図１では、記憶部106と第２メモリ制御部114を異なるブロックとして示しているが、HDDと一体に実装されてもよい。即ち、ハードディスク・ドライブ装置の制御回路が第２メモリ制御部114の機能を担ってもよい。
【００２８】
異常起動フラグ記憶部110は、制御部101がOSを実行することにより実現されるエラーイベント監視プロセスが管理する記憶領域であって、第１メモリ制御部104によって検出されたエラーに係るデータを格納し管理するための作業記憶領域を提供する。エラーイベント監視プロセスについては、後に詳述する。異常起動フラグ記憶部110は、不揮発性のかつ書き換え可能な記憶領域であって、記憶領域として少なくとも異常起動フラグ記憶部110を含む。異常起動フラグ記憶部110は、ブートプログラム記憶部105や記憶部106とは別の、十分長い耐用期間を有する不揮発性記憶素子に実装されるか、または、多重化されることが好ましい。
【００２９】
異常起動フラグ記憶部110は、システムが起動する毎に、その起動が通常システムの起動を行うべきか、「プレブート」環境の起動を行うべきかを示すフラグを保持する。
POS端末100は、前記ストレージであるブートプログラム記憶部105及び記憶部106が正常な状態のとき、システムの立ち上げ時に前述の通常ブートプログラムを実行する。その詳細な手順は、次の通りである。
システムの電源が投入された後、制御部101はブートプログラム記憶部105の書き込み可能な領域に保持された通常ブートプログラムを、第１メモリ制御部104を用いて一時記憶部107にロードする。
【００３０】
制御部101は、一時記憶部107にロードされた通常ブートプログラムを実行する。その実行に伴って、まずブート時に必要なハードウェアや記憶領域の初期化処理が行われる。続いて、第２メモリ制御部114を用い、記憶部106に保持されているOSやシステムアプリケーション用プログラムを一時記憶部107にロードする処理が行われる。
【００３１】
その後、通常ブートプログラムは、制御部101の実行をOSやシステムアプリケーション用プログラムの処理の実行に移行させる。それによって、制御部101は、POS端末100の動作を開始する。POS端末100の動作開始の段階で、制御部101は、前述のエラーイベント監視プロセスを起動する。エラーイベント監視プロセスは、制御部101が実行するOS又はアプリケーションの処理の一つである。
【００３２】
起動されたエラーイベント監視プロセスは、その後、システム起動時に発生するエラーイベントを監視する。ここで、検出されるエラーイベントは、第１メモリ制御部104により検出されるブートプログラム記憶部105のエラー及び第２メモリ制御部114により検出される記憶部106のエラーである。エラーイベント監視プロセスは、ブートプログラム記憶部105のエラーを第１エラーイベント記憶領域112に保持する。また、記憶部106のエラーを第２エラーイベント記憶領域113に保持する。
エラーイベント監視プロセスは、起動時のみならず通常システムが起動した後もシステム内に常駐し、OSやシステムアプリケーション用プログラムの実行時に発生するエラーイベントを監視する。
【００３３】
ブートプログラム記憶部105のエラーは、第１メモリ制御部104により検出される。エラーの詳細な内容は、（１）メモリリードエラー、（２）書き込み毎のメモリライトエラー、（３）所定回数メモリライトエラー、即ち、書き込みエラー発生により別の位置に書き込み場所を変えて何度か書き込んだが書き込めなかった場合のエラーである。前記（２）はフラッシュメモリの部分的な寿命、前記（３）はフラッシュメモリの全体的な寿命に係るエラーである。
【００３４】
第１メモリ制御部104によってエラーが検出されたことは、第１メモリ制御部104内に設けられた所定のレジスタ（図示せず）がインクリメントされるか又は所定のフラグ（図示せず）がセットされたことによって外部に通知される。それがエラーイベント監視プロセスによってエラーイベントとして捕捉されるためには、前記レジスタのインクリメントあるいは前記フラグのセットされたことをトリガとして、割り込みあるいはポーリング等の処理でエラーイベント監視プロセスへの通知がされなければならない。この通知に、OSおよびシステムアプリケーションが具備するエラー通知機構が使用できる場合は、それを使用すればよい。そうでなければ、エラーイベント監視プロセスの下位層に、前記レジスタあるいはフラグの変化に応答して前記通知を行うエラー通知ルーチンを準備しておき、エラーイベント監視プロセスによってエラーイベントが捕捉されるようにする。
【００３５】
エラーイベント監視プロセスは、例えばOSの起動処理中にブートプログラム記憶部105のエラーが発生すると、発生したエラーをエラーイベントとして捕捉する。そして、第１エラーイベント記憶領域112のデータをインクリメントする。
なお、第１エラーイベント記憶領域112のデータは、ブート時の初期化処理で毎回リセットされる。
【００３６】
記憶部106から一時記憶部107にロードされたOSやシステムアプリケーション用プログラムがロードされるときや、ロードされたOSやシステムアプリケーション用プログラムが通常システムの運用中に発生するエラーは、第２メモリ制御部114によって検出される。エラーの詳細な内容は、（１）リードエラー、（２）書き込み毎のライトエラー、（３）所定回数ライトエラー、即ち、書き込みエラー発生により別の位置に書き込み場所を変えて何度か書き込んだが書き込めなかった場合のエラーである。
【００３７】
記憶部106のエラーが検出されると、第２メモリ制御部114内に設けられた所定のレジスタ（図示せず）がインクリメントされるか又は所定のフラグ（図示せず）がセットされる。前記レジスタあるいは前記フラグの変化に応答してエラーイベント監視プロセスに通知する処理は、前述したブートプログラム記憶部105のエラーの場合と同様の仕組みで実現される。
【００３８】
エラーイベント監視プロセスは、例えば、OSの起動処理中に記憶部106のエラーが発生すると、発生したエラーをエラーイベントとして捕捉する。そして、第２エラーイベント記憶領域113のデータをインクリメントする。
なお、第２エラーイベント記憶領域113のデータは、ブート時の初期化処理で毎回リセットされる。
【００３９】
第１エラーイベント記憶領域112の値が予め定められた第１閾値を超えるか、または、第２エラーイベント記憶領域113の値が予め定められた第２閾値を超えた場合、制御部101は異常起動フラグ記憶部110のフラグを立てた後にシステムを再起動する。ここで、第１エラーイベント記憶領域112の値はブートプログラム記憶部105のエラーによって更新され、第２エラーイベント記憶領域113の値は記憶部106のエラーによって更新される。
異常起動フラグ記憶部110は不揮発性メモリであるので、再起動時にフラグは保持される。再起動後、異常起動フラグ記憶部110のフラグが立っている場合、制御部101は、第１メモリ制御部104に対し、ブートプログラム記憶部105の書込禁止領域111から、プレブート・プログラムをロードして実行する。プレブート・プログラムで起動が行われた場合、POS端末100は運用上最小限必要な機能で動作する。この動作環境をこの明細書ではプレブート環境と呼んでいる。
プレブート環境で実行可能な機能としては、例えば、特定の形式のバーコード読み取りや商品代金の加算機能がある。これによりPOS端末100の使用者は、在庫管理については十分な機能を実行はできなくなるが、商品の販売といった中核業務を停止する必要がなくなる。
【００４０】
≪動作図（フローチャート）の説明≫
図２および図３は、この発明おいて、ストレージのエラーを検出しプレブート環境へ移行する処理の一例を示す説明図である。
以下、図２および図３に沿って処理を説明する。
【００４１】
POS端末100のシステムの電源が投入された後、制御部101は、まずブート時に必要なハードウェアや記憶領域の初期化処理を行う。その初期化処理の一つとして、第１エラーイベント記憶領域112、第２エラーイベント記憶領域113の値をゼロにする(図２のステップS200)。
【００４２】
次に制御部101は、異常起動フラグ記憶部110のフラグの状態を確認する。即ち、今回の起動が正常起動時のものか、直前に異常起動したものかを確認する(ステップS203)。
異常起動フラグ記憶部110にフラグが立っておらず正常起動である場合（ステップS205の判定がNo）、制御部101はブートプログラム記憶部105から一時記憶部107へ、通常ブートプログラムをダウンロードしてそれを実行する(ステップS207)。
制御部101は、通常ブートプログラムの指令に従い、記憶部106から一時記憶部107へOSとシステムアプリケーション用プログラムをロードし(ステップS209)、その後、ロードされたOSの実行を開始する。
【００４３】
OSの実行開始の初めに、制御部101は、エラーイベント監視プロセスを起動する(ステップS211)。エラーイベント監視プロセスは、その後のOS起動とシステムアプリケーションの起動(ステップS213)とにおいて発生するエラーイベントを監視する。エラーイベント監視プロセスがブートプログラム記憶部105に係るエラーイベントを捕捉した場合は、第１エラーイベント記憶領域112の値に1を加え、記憶部106に係るエラーイベントを捕捉した場合は、第２エラーイベント記憶領域113の値に1を加えて(ステップS241)、起動を続行する(ステップS213)。
【００４４】
OS及びシステムアプリケーションの起動が完了後、エラーイベント監視プロセスは、ブートプログラム記憶部105および記憶部106に係るエラーイベントの監視を続ける。エラーイベントを捕捉したら、その発生箇所に応じて第１エラーイベント記憶領域112および／または第２エラーイベント記憶領域113を更新する。第１エラーイベント記憶領域112および第２エラーイベント記憶領域113の値を検査し(図３のステップS217)、何れか一方あるいは両方が予め定められた閾値を超えている場合には(判定がYes)、異常起動フラグ記憶部110のフラグを立てた後に(ステップS219)、POS端末100を再起動する(ステップS221)。
【００４５】
ブートプログラム記憶部105および／または記憶部106が寿命に到達するとエラーが発生する。例えば、記憶部106にエラーが発生すると、OSやシステムアプリケーション用プログラムが一時記憶部107に正しくロードできず、不正にロードされたプログラムを制御部101が実行するとシステムクラッシュを招くおそれがある。あるいは、記憶部106に在庫、発注、販売に係るデータが格納されている場合、それらのデータが誤った値として読み書きされるおそれがある。前述の再起動はこのような状態に陥る前に、POS端末100をプレブート環境へ移行させるための処理である。
【００４６】
再起動されたPOS端末100は、再び図２の先頭から処理を実行する。初期化処理（ステップS200）の後、異常起動フラグ記憶部110のフラグを確認すると(ステップS203)、フラグが立っているので(ステップS205のYes)、ルーチンはステップS231へ進み、書込禁止領域111からプレブート・プログラムを一時記憶部107にロードする(ステップS231)。その後、制御部101は、一時記憶部にロードされたプレブート・プログラムを実行し、最小限の機能でPOS端末100を動作させる(ステップS233)。
【００４７】
なお、記憶部106のエラーが検出され、記憶部106に在庫、発注、販売に係るデータが格納されている場合、それらのデータの読み書きはもはや正常に行われることが保障できない。そのため、プレブート環境において、制御部101は、中央のコンピュータと通信して在庫、発注、販売に係る必要最小限のデータを取得し、一時記憶部107にダウンロードしてそのデータを用いて処理を行う。
【００４８】
再びステップS217の処理に戻る。ステップS217の判定で、第１エラーイベント記憶領域112および第２エラーイベント記憶領域113の値を検査する。その検査の結果、その何れもが閾値を超えていない場合(ステップS217のNo)、制御部101は、POS端末100の起動が問題なく完了したものと判断する。このようにして起動処理は完了し(ステップS251)、その後、POSシステムは通常の状態で動作する(ステップS253)。通常の状態では、全てのOS、システムアプリケーションの全機能が動作する。
【００４９】
なお、通常運用を開始した後も、エラーイベント監視プロセスは、エラーイベントの監視を続行する(ステップS255)。もし通常運用中にエラーイベントが捕捉された場合には(ステップS255のYes)、その発生箇所に応じて第１エラーイベント記憶領域112および／または第２エラーイベント記憶領域113の値をインクリメントする(ステップS257)。
【００５０】
そして、第１エラーイベント記憶領域112および第２エラーイベント記憶領域113内の値を検査する(ステップS259)。その検査の結果、何れか一方あるいは両方が予め定められた閾値を超えている場合には(判定がYes)、ルーチンは前記ステップS219へ進み、異常起動フラグ記憶部110に異常起動フラグを立てた後、POS端末100を再起動する(ステップS221)。
前記ステップS259の判定で、何れも予め定められた閾値を超えていない場合にはシステムの通常運用を継続する(ステップS253)。
【００５１】
前述した実施の形態の他にも、この発明について種々の変形例があり得る。それらの変形例は、この発明の範囲に属さないと解されるべきものではない。この発明には、請求の範囲と均等の意味および前記範囲内でのすべての変形とが含まれるべきである。
【符号の説明】
【００５２】
100：POS端末
101：制御部
103：操作部
104：第１メモリ制御部
105：ブートプログラム記憶部
106：記憶部
107：一時記憶部
110：異常起動フラグ記憶部
111：書込禁止領域
112：第１エラーイベント記憶領域
113：第２エラーイベント記憶領域
114：第２メモリ制御部
【図１】
2011210117.tif 000003
【図２】
2011210117.tif 000004
【図３】
2011210117.tif 000005