(57)【要約】【課題】売上データ処理装置において、主電源遮断時のデータのバックアップに使用される補助電源の消耗を低減させる。【解決手段】本発明に係るＥＣＲによれば、ＣＰＵ１０は、他に実行すべき処理のない空き時間にハイバネーション用メモリ１４に記憶されているデータの消去処理を実行し、ＡＣ電源３１からの電源供給が遮断された際に、補助電源からの給電によりハイバネーション用メモリ１４に記憶されている未消去の残存データの消去処理を実行しメインメモリ１３に記憶されているデータをハイバネーション用メモリ１４に退避させる。【選択図】図４
2010128537.tif 000002
【特許請求の範囲】
【請求項１】
主電源からの給電によりデータを記憶する揮発性記憶手段と、
前記主電源の遮断時に前記揮発性記憶手段に記憶されているデータを退避するための不揮発性記憶手段と、
処理の空き時間に前記不揮発性記憶手段に記憶されているデータの消去処理を実行し、前記主電源が遮断された際に、補助電源からの給電により前記不揮発性記憶手段に記憶されている未消去の残存データの消去処理を実行し前記揮発性記憶手段に記憶されているデータを前記不揮発性記憶手段に退避させる制御手段と、
を備える売上データ処理装置。
【請求項２】
前記不揮発性記憶手段を複数備え、
前記制御手段は、前記揮発性記憶手段に記憶されているデータを前記複数の不揮発性記憶手段に分散して退避させる請求項１に記載の売上データ処理装置。
【請求項３】
前記補助電源からの電源の供給と遮断とを切り替える切り替え手段を備え、
前記制御手段は、前記主電源が遮断された際に前記切り替え手段により前記補助電源に給電を行わせ、前記不揮発性記憶手段へのデータ退避の終了後、前記切り替え手段により前記補助電源を遮断させる請求項１又は２に記載の売上データ処理装置。
【請求項４】
主電源からの給電によりデータを記憶する揮発性記憶手段と、前記主電源の遮断時に前記揮発性記憶手段に記憶されているデータを退避するための不揮発性記憶手段と、を備える売上データ処理装置に用いられるコンピュータを、
処理の空き時間に前記不揮発性記憶手段に記憶されているデータの消去処理を実行し、前記主電源が遮断された際に、補助電源からの給電により前記不揮発性記憶手段に記憶されている未消去の残存データの消去処理を実行し前記揮発性記憶手段に記憶されているデータを前記不揮発性記憶手段に退避させる制御手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、売上データ処理装置及びプログラムに関する。
【背景技術】
【０００２】
従来、ＥＣＲ（電子レジスタ）等の売上データ処理装置では、主電源遮断時のシステムの動作状態を示すデータを電池でバックアップされた揮発性メモリに保存しておくことで、停電時や誤操作による主電源の遮断時でもすぐに電源遮断前の動作状態で起動できるようにしている。しかし、近年、売上データ処理装置の高機能化が進み、それに伴いメモリも大容量となっている。そのため、店舗の夏季休業等により主電源の遮断状態が長時間続いた場合に備えて大容量のバックアップ電池が必要となっている。
【０００３】
例えば、特許文献１には、商用電源の瞬断あるいは停電時において中央処理装置と揮発性メモリのみをバッテリでバックアップし、消費電力の大きい周辺装置はバックアップしないようにした商品情報ターミナルが記載されている。  
【特許文献１】特開平５−１１８９３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１の技術においては、主電源である商用電源の瞬断あるいは停電時のバッテリの容量は低減できるが、店舗の夏季休業等により主電源の遮断状態が長時間続く場合には、大容量のバッテリが必要となる。
【０００５】
一方、主電源が遮断された際に、補助電源の給電により揮発性メモリのデータを不揮発性記憶手段に退避させることも考えられるが、この場合、前回の主電源の遮断時に不揮発性記憶手段に退避されたデータが残っているため、まず不揮発性記憶手段に記憶されたデータの消去をしてから揮発性メモリのデータの退避を行わなければならない。そのため、主電源を遮断してから動作が完全に停止するまでに時間がかかり、補助電源の消耗が大きい。
【０００６】
本発明の課題は、売上データ処理装置において、主電源遮断時のデータのバックアップに使用される補助電源の消耗を低減させることである。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、請求項１に記載の発明の売上データ処理装置は、
主電源からの給電によりデータを記憶する揮発性記憶手段と、
前記主電源の遮断時に前記揮発性記憶手段に記憶されているデータを退避するための不揮発性記憶手段と、
処理の空き時間に前記不揮発性記憶手段に記憶されているデータの消去処理を実行し、前記主電源が遮断された際に、補助電源からの給電により前記不揮発性記憶手段に記憶されている未消去の残存データの消去処理を実行し前記揮発性記憶手段に記憶されているデータを前記不揮発性記憶手段に退避させる制御手段と、
を備える。
【０００８】
請求項２に記載の発明は、請求項１に記載の発明において、
前記不揮発性記憶手段を複数備え、
前記制御手段は、前記揮発性記憶手段に記憶されているデータを前記複数の不揮発性記憶手段に分散して退避させる。
【０００９】
請求項３に記載の発明は、請求項１又は２に記載の発明において、
前記補助電源からの電源の供給と遮断とを切り替える切り替え手段を備え、
前記制御手段は、前記主電源が遮断された際に前記切り替え手段により前記補助電源に給電を行わせ、前記不揮発性記憶手段へのデータ退避の終了後、前記切り替え手段により前記補助電源を遮断させる。
【００１０】
請求項４に記載の発明のプログラムは、
主電源からの給電によりデータを記憶する揮発性記憶手段と、前記主電源の遮断時に前記揮発性記憶手段に記憶されているデータを退避するための不揮発性記憶手段と、を備える売上データ処理装置に用いられるコンピュータを、
処理の空き時間に前記不揮発性記憶手段に記憶されているデータの消去処理を実行し、前記主電源が遮断された際に、補助電源からの給電により前記不揮発性記憶手段に記憶されている未消去の残存データの消去処理を実行し前記揮発性記憶手段に記憶されているデータを前記不揮発性記憶手段に退避させる制御手段、
として機能させる。
【発明の効果】
【００１１】
本発明によれば、売上データ処理装置において、主電源遮断時のデータのバックアップに使用される補助電源の消耗を低減させることが可能となる。
【発明を実施するための最良の形態】
【００１２】
（実施形態１）
まず、本発明の実施形態１について説明する。
図１に、実施形態１におけるＥＣＲ１の機能構成例を示す。
ＥＣＲ１は、店舗に設けられ、オペレータの操作に基づいて商品登録処理（取引された日時、商品名、商品の売上個数、売上金額等の売上データ、担当者等の登録処理）、点検処理、精算処理、店舗内の売上集計等を行う売上データ処理装置である。ＥＣＲ１としては、例えば、電子レジスタ等が適用可能である。
【００１３】
図１に示すように、ＥＣＲ１は、ＣＰＵ１０と、ＲＴＣ１１と、プログラム格納メモリ１２と、メインメモリ１３と、ハイバネーション用メモリ１４と、メイン表示装置１５１と、サブ表示装置１５２と、ＬＥＤ１６と、印字装置１７と、入力装置１８と、ストレージＩ／Ｆ１９と、通信部２０と、を備えて構成され、各部はバス２１を介して接続されて構成されている。
【００１４】
ＣＰＵ（Central Processing Unit）１０は、ＥＣＲ１の各部を集中制御する制御手段
である。ＣＰＵ１０は、プログラム格納メモリ１２に記憶されている各種プログラムをメインメモリ１３に展開し、メインメモリ１３に展開されたプログラムとの協働により、ＥＣＲ１全体の制御及び各種処理を実行する。
【００１５】
例えば、ＣＰＵ１０は、ＡＣ電源状態監視回路３４（図３参照）からＡＣ電源供給を通知する信号が入力されると、プログラム格納メモリ１２に記憶されている起動処理プログラム及び終了処理プログラムをメインメモリ１３の起動処理・終了処理用ワークエリア１３１（図２参照）に読み出して、読み出した起動処理プログラムとの協働により後述する起動処理を実行する。
【００１６】
起動処理によりＥＣＲ１が起動されると、ＣＰＵ１０は、メインメモリ１３に記憶されているＥＣＲ制御プログラムとの協働により後述するＥＣＲ制御処理を実行し、ＥＣＲ１の各部を制御する。具体的には、入力装置１８からの入力があると、ＣＰＵ１０は、入力に応じた処理プログラムを起動させ、商品登録処理、点検処理、精算処理、店舗内の売上集計処理等を行う。入力装置１８からの入力がない、即ち他に実行すべき処理のない空き時間には、後述する書込みエリア事前消去処理を実行する。なお、「他に実行すべき処理」には、実行すべき処理があるか否かを判断して実行する「ＥＣＲ制御処理」は含まない。
【００１７】
また、ＣＰＵ１０は、動作中にＡＣ電源状態監視回路３４からＡＣ電源遮断を通知する信号が入力されると、メインメモリ１３に記憶されている終了処理プログラムとの協働により、サスペンド処理（第１の退避処理）、ハイバネーション処理（第２の退避処理）を含む終了処理を実行する。
【００１８】
ここで、本実施形態において、サスペンド処理とは、ＡＣ電源３１の遮断時にＣＰＵ１０のシステム動作状態を示すデータ（プログラムカウンタ（ＰＣ）、スタックポインタ（ＳＰ）、レジスタ、システムデータ等）を揮発性のメインメモリ１３に退避する処理をいう。ハイバネーション処理とは、メインメモリ１３に記憶されているシステム動作状態を示すデータ等を不揮発性のハイバネーション用メモリ１４に退避する処理をいう。
【００１９】
ハイバネーション処理中にＡＣ電源状態監視回路３４からＡＣ電源供給を通知する信号が入力されると、ＣＰＵ１０は、ハイバネーション処理を中断させて起動処理を実行し、メインメモリ１３に退避されているシステム動作状態を示すデータに基づいてＡＣ電源遮断前の状態にシステムを復帰させる。
【００２０】
ＲＴＣ（Real Time Clock）１１は、計時回路を内蔵し、現在時刻及び現在日付を計時
してＣＰＵ１０に出力する。ＲＴＣ１１は、ＲＴＣ用バックアップ電源１１１が備えられており（図３参照）、ＡＣ電源３１及びバックアップ用電源３２の何れからも電源が供給されない状態でも動作可能となっている。
【００２１】
プログラム格納メモリ１２は、不揮発性のＲＯＭ（Read Only Memory）等により構成され、図２に示すように、ＥＣＲ１で実行可能な各種プログラムやＥＣＲ１の固有データ（例えば、ＥＣＲ１のＭＡＣアドレス、タッチパネルキャリブレーションデータ等）を記憶する。
【００２２】
メインメモリ１３は、ＣＰＵ１０によって実行される各種プログラム及びこれらプログラムに係る各種データ等を記憶する揮発性記憶手段である。
メインメモリ１３は、図２に示すように、起動処理・終了処理用ワークエリア１３１、サスペンド用エリア１３２、コピー領域１３３、システムデータ領域１３４、設定データ領域１３５、ユーザデータ領域１３６を有している。
【００２３】
起動処理・終了処理用ワークエリア１３１は、ＡＣ電源投入時にＣＰＵ１０によりプログラム格納メモリ１２から読み出された起動処理プログラム、終了処理プログラム（サブルーチンの処理を含む）を記憶するとともに、これらのプログラムが動作するためのワークエリアである。起動処理・終了処理用ワークエリア１３１は、消去ブロック番号領域１３１ａを有している。消去ブロック番号領域１３１ａは、ハイバネーション用メモリ１４において最終に消去されたブロックのブロック番号（１〜ｎ）を記憶するための領域である。ブロックとは、ハイバネーション用メモリ１４において一度にデータ書込み及び消去可能なデータ単位を示す。なお、「０」は、ハイバネーション用メモリ１４が未消去状態であることを示す。  サスペンド用エリア１３２は、サスペンド処理において、ＣＰＵ１０のシステム動作状態を示すデータ（プログラムカウンタ（ＰＣ）、スタックポインタ（ＳＰ）、レジスタ、システムデータ等）を退避するための領域である。
コピー領域１３３は、プログラム格納メモリ１２に記憶されているプログラムのコピーを書込むための領域である。
システムデータ領域１３４は、スタック、変数やオペレーティングシステム（ＯＳ）のシステムデータを記憶する領域である。
設定データ領域１３５は、入力装置１８を介して設定された周辺機器（メイン表示装置１５１、サブ表示装置１５２、印字装置１７、入力装置１８等）に関する各種設定データを記憶する領域である。
ユーザデータ領域１３６は、入力装置１８を介して入力された売上データ、メイン表示装置１５１で表示中の表示データ、印字装置１７に印字させる印字データ等のユーザデータを記憶する領域である。
【００２４】
ハイバネーション用メモリ１４は、フラッシュメモリ等の不揮発性メモリにより構成され、ＡＣ電源３１の遮断時にメインメモリ１３に記憶されているデータを退避するための不揮発性記憶手段である。ハイバネーション用メモリ１４は、ｎ個のブロックのデータ書込みが可能である。
また、本実施の形態において、ハイバネーション用メモリ１４は、ＣＰＵ１０から書込み指示されたデータの上位Ｂｉｔを格納するためのハイバネーション用メモリ１４ａ、ＣＰＵ１０から書込み指示されたデータの下位Ｂｉｔを格納するためのハイバネーション用メモリ１４ｂを備えて構成されている。ハイバネーション処理におけるデータの書込み速度及び消去速度を向上させるためである。
【００２５】
ハイバネーション用メモリ１４は、図２に示すように、ヘッダ領域１４１、バックアップ領域１４２、チェックサム格納領域１４３を有している。ヘッダ領域１４１は、ハイバネーション処理が完了したことを示すハイバネーション完了フラグを設定するためのハイバネーション完了フラグ領域１４１ａを有する領域である。バックアップ領域１４２は、ハイバネーション処理において、メインメモリ１３の起動処理・終了処理用ワークエリア１３１以外の領域のデータを退避するための領域である。チェックサム格納領域１４３は、ハイバネーション処理において算出されたチェックサムを書込むための領域である。
【００２６】
メイン表示装置１５１、サブ表示装置１５２は、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ(Electro-Luminescence)ディスプレイ等により構成され、ＣＰＵ１０から入力される表示信号の指示に従って、各種画面を表示する。メイン表示装置１５１は、オペレータ側に向けて設けられた表示装置であり、サブ表示装置１５２は、顧客側に向けて設けられた表示装置である。
【００２７】
ＬＥＤ（Light Emitting Diode）１６は、ＣＰＵ１０から入力される指示信号に応じて駆動され、点灯、点滅する。
【００２８】
印字装置１７は、例えば、サーマルプリンタ(感熱式プリンタ)であり、レシート用、ジャーナル用のロール紙(感熱紙)を有し、ＣＰＵ１０から入力される指示信号に従って、各ロール紙に対して金額等のデータをプリントアウトする。  
【００２９】
入力装置１８は、電源キー、カーソルキー、文字、数字入力キーや、ＩＮＩＴキー、ＦＣキー等の各種機能キー等を備えたレジ用のキーボードを含む構成とし、オペレータによる各キーの操作信号をＣＰＵ１０に出力する。また、入力装置１８は、メイン表示装置１５１の画面上に設けられたタッチパネルを含む。タッチパネルは、メイン表示装置１５１の上面を覆うように設置されており、オペレータの指などを用いた操作によって押圧入力された所望の入力位置を検出し、その検出信号をＣＰＵ１０に出力する。また、入力装置１８は、商品に設けられたバーコードを読み取るバーコードリーダやバーコードスキャナ等を備える。
【００３０】
ストレージＩ／Ｆ１９は、ＣＦ（Compact Flash）カード、ＳＤカード（Secure Digital Card）等の外部ストレージ１９ａを接続可能であり、外部ストレージ１９ａとのデータの入出力を行う。
【００３１】
通信部２０は、ＬＡＮ（Local Area Network）アダプタやルータ等により構成され、ＬＡＮやインターネット等の通信ネットワークを介してサーバ１００等の外部機器とデータ送受信を行う。
【００３２】
図３に、ＥＣＲ１における電源系の要部構成例を示す。
図３に示す電源生成回路３３は、ＡＣ電源（主電源）３１、及び、スイッチ３５を介して補助電源としてのバックアップ用電源（充電池）３２に接続されている。電源生成回路３３は、ＡＣ電源３１から入力されたＡＣ（交流）電源電力をＤＣ（直流）電源電力に変換し、図１に示す各部にそれぞれ供給する。また、電源生成回路３３は、スイッチ３５を介してバックアップ用電源３２から入力された電源電力をＣＰＵ１０、ＲＴＣ１１、プログラム格納メモリ１２、メインメモリ１３及びハイバネーション用メモリ１４ａ、１４ｂ、ＬＥＤ１６に供給する。
ＡＣ電源状態監視回路３４は、ＡＣ電源３１の電源状態を監視する電源監視手段であり、ＡＣ電源３１から電源が供給されている間は、ＡＣ電源供給を通知する信号（ＨＩＧＨ信号）をＣＰＵ１０に出力し、ＡＣ電源３１からの電源が遮断されている間は、ＡＣ電源遮断を通知する信号（ＬＯＷ信号）をＣＰＵ１０に出力する。
スイッチ３５は、ＣＰＵ１０からのバックアップ用電源ＯＮ／ＯＦＦスイッチ切替制御信号に基づいて、バックアップ電源３２のＯＮ／ＯＦＦ（電源の供給／遮断）を切り替える切り替え手段である。
【００３３】
このように、ＡＣ電源３１からの電源が供給状態である場合、電源生成回路３３によりＥＣＲ１の各部にＡＣ電源３１からの電源が供給される。ＡＣ電源３１が遮断されると、ＣＰＵ１０からの制御に基づいて、ＣＰＵ１０、ＲＴＣ１１、プログラム格納メモリ１２、メインメモリ１３及びハイバネーション用メモリ１４ａ、１４ｂ、ＬＥＤ１６のみにバックアップ用電源３２からの電源が供給される。このように構成することで、バックアップ用電源３２の消耗を必要最低限に抑えることができる。なお、ＡＣ電源３１遮断後一定時間Ｔ内は回路的に電源が保持されている。この一定時間内にＣＰＵ１０はバックアップ用電源３２をＯＮに切り替え、ＣＰＵ動作電源、メモリ動作電源を維持する。
【００３４】
次に、実施形態１におけるＥＣＲ１の主要な動作についてフローチャートを参照して詳細に説明する。なお、実施形態１においては、シングルタスクで各種処理が実行される場合の一例について説明する。
【００３５】
まず、ＥＣＲ１の起動後にＣＰＵ１０により実行されるＥＣＲ制御処理について説明する。図４に、ＥＣＲ制御処理のフローチャートを示す。ＥＣＲ制御処理は、ＣＰＵ１０とＥＣＲ制御プログラムとの協働によるソフトウエア処理により実現される。
【００３６】
まず、起動処理・終了処理用ワークエリア１３１の消去ブロック番号領域１３１ａに０が設定される（ステップＳ１）。
【００３７】
次いで、入力装置１８から入力がされたか否かが判断され（ステップＳ２）、入力装置１８から入力がされてないと判断されると（ステップＳ２；ＮＯ）、書込みエリア事前消去処理が実行される（ステップＳ３）。
【００３８】
図５に、ステップＳ３においてＣＰＵ１０により実行される書込みエリア事前消去処理を示す。書込みエリア事前消去処理は、ＣＰＵ１０と書込みエリア事前消去処理プログラムとの協働により実行される。
【００３９】
ここで、書込みエリア事前消去処理は、ハイバネーション用メモリ１４ａ、１４ｂに記憶されているデータを消去する処理である。ハイバネーション用メモリ１４ａ、１４ｂには、上述したように、ＡＣ電源３１の遮断時にメインメモリ１３に記憶されているデータが退避される（書込まれる）。このデータ退避は、後述する終了処理において、バックアップ用電源３２の給電により行われる。しかし、ハイバネーション用メモリ１４ａ、１４ｂにデータを書込む前に、まず前回のＡＣ遮断時に書込まれたデータをハイバネーション用メモリ１４ａ、１４ｂから消去する必要がある。この処理を全て終了処理において行うと、ＡＣ電源３１が遮断されてから動作が完全に停止するまでに時間がかかり、バックアップ用電源３２が消耗する。そこで、ＣＰＵ１０において他に実行すべき処理のない、即ち、商品登録処理や他の処理が要求又は実行されていない「処理の空き時間」に書込みエリア事前消去処理を実行することで、ＡＣ電源３１の遮断時におけるハイバネーション用メモリ１４ａ、１４ｂからのデータ消去にかかる時間を短縮し、バックアップ用電源３２の消耗を低減する。即ち、本実施形態において、「処理の空き時間」とは、ＣＰＵ１０が商品登録処理や他の処理を要求又は実行していない時間をいう。
【００４０】
書込みエリア事前消去処理においては、まず、メインメモリ１３の消去ブロック番号領域１３１ａに記憶されている番号が取得される（ステップＳ１０１）。次いで、取得された番号がハイバネーション用メモリ１４ａ、１４ｂの最終ブロック番号ｎであるか否かが判断される（ステップＳ１０２）。
【００４１】
取得された番号が最終ブロック番号ｎではないと判断されると（ステップＳ１０２；ＮＯ）、取得された番号の次の番号のブロックのデータ消去がハイバネーション用メモリ１４ａ、１４ｂに指示される（ステップＳ１０３）。そして、処理は、ハイバネーション用メモリ１４ａ、１４ｂからのブロック消去完了の通知待ち状態となる。ハイバネーション用メモリ１４ａ、１４ｂにおいては、１ブロック分のデータ消去が終了すると、ＣＰＵ１０にブロック消去完了が通知される。
【００４２】
１ブロック分のデータ消去が完了した旨がハイバネーション用メモリ１４ａ、１４ｂから通知されると（ステップＳ１０４；ＹＥＳ）、データ消去されたブロックのブロック番号が消去ブロック番号領域１３１ａに書込まれ（ステップＳ１０５）、処理は図４のステップＳ２に戻る。
【００４３】
一方、ステップＳ１０２において、取得された番号が最終ブロック番号ｎであると判断されると（ステップＳ１０２；ＹＥＳ）、書込みエリア事前消去処理は終了し、図４のステップＳ２に戻る。
【００４４】
図４のステップＳ２において、入力装置１８から入力がされたと判断されると（ステップＳ２；ＹＥＳ）、当該入力が商品登録の指示であるか否か判断される（ステップＳ４）。当該入力が商品登録の指示であると判断されると（ステップＳ４；ＹＥＳ）、商品登録処理が実行される（ステップＳ５）。商品登録処理は、商品が取引された日時、商品名、商品の売上個数、売上金額等の売上データ、担当者等をユーザデータ領域１３６に登録する処理である。そして、商品名、売上（購入）個数、売上（購入）金額、お預かり金額、返金額等が印字装置１７によりレシートに印字され（ステップＳ６）、処理はステップＳ８に移行する。
【００４５】
入力装置１８からの入力が商品登録の指示ではないと判断されると（ステップＳ４；ＮＯ）、入力に応じた他の処理が実行され（ステップＳ７）、処理はステップＳ８に移行する。
【００４６】
ステップＳ８においては、ＡＣ電源監視回路３４から入力される通知信号に基づいてＡＣ電源３１の電源状態が判断される。ＡＣ電源３１が供給状態であると判断されると（ステップＳ８；ＮＯ）、処理はステップＳ２に戻る。ＡＣ電源３１が遮断状態であると判断されると（ステップＳ８；ＹＥＳ）、終了処理が実行され（ステップＳ９）、ＥＣＲ制御処理は終了する。
【００４７】
図６に、図４のステップＳ９においてＣＰＵ１０により実行される終了処理のフローチャートを示す。当該処理は、ＣＰＵ１０と終了処理プログラムとの協働により実行される。
【００４８】
まず、サスペンド処理（第１の退避処理）が実行され、ＣＰＵ１０に記憶されているスタックポインタ、プログラムカウンタ、レジスタ、システムデータ等がメインメモリ１３のサスペンド用エリア１３２に退避される（ステップＳ２０１）。
【００４９】
次いで、バックアップ用電源ＯＮ／ＯＦＦスイッチ切替制御信号によりスイッチ３５がＯＮに切り替えられることにより、バックアップ用電源３２がＯＮに切り替えられる（ステップＳ２０２）。
【００５０】
次いで、ハイバネーション処理（第２の退避処理）が実行され、メインメモリ１３における起動処理・終了処理用ワークエリア１３１以外の領域のデータがハイバネーション用メモリ１４に退避（バックアップ）される（ステップＳ２０３）。なお、ハイバネーション処理実行中にＡＣ電源監視回路３４によりＡＣ電源供給を通知する信号が入力されると、ＣＰＵ１０により本処理は中断され、図１１ａ〜図１１ｂに示す起動処理が実行される。
【００５１】
図７に、図６のステップＳ２０３においてＣＰＵ１０により実行されるハイバネーション処理のフローチャートを示す。当該処理は、ＣＰＵ１０とハイバネーション処理プログラムとの協働によるソフトウエア処理により実現される。
【００５２】
ハイバネーション処理においては、まず、ＬＥＤ１６の点滅が開始される（ステップＳ３０１）。次いで、書込みエリア消去処理が実行される（ステップＳ３０２）。
図８に、書込みエリア消去処理のフローチャートを示す。
図８に示すように、書込みエリア消去処理においては、まず、消去ブロック番号領域１３１ａに記憶されている番号が取得される（ステップＳ１０００）。次いで、取得された番号がハイバネーション用メモリ１４ａ、１４ｂの最終ブロック番号ｎであるか否かが判断される（ステップＳ１００１）。取得された番号が最終ブロック番号ｎであると判断されると（ステップＳ１００１；ＹＥＳ）、書込みエリア消去処理は終了し、処理は図７のステップＳ３０３に移行する。
【００５３】
取得された番号が最終ブロック番号ｎではないと判断されると（ステップＳ１００１；ＮＯ）、次の番号のブロックのデータ消去がハイバネーション用メモリ１４ａ、１４ｂに指示される（ステップＳ１００２）。
【００５４】
次いで、ＡＣ電源状態監視回路３４から入力される信号が監視され、ＡＣ電源３１の電源状態が判断される（ステップＳ１００３）。ＡＣ電源３１が遮断状態であると判断されると（ステップＳ１００３；ＡＣ電源遮断状態）、  ハイバネーション用メモリ１４ａ、１４ｂにおいて、１ブロックの消去が完了したか否かが判断される。ここで、ハイバネーション用メモリ１４ａ、１４ｂにおいては、１ブロック分のデータ消去が終了すると、ＣＰＵ１０にブロック消去完了が通知される。１ブロックの消去が完了していないと判断されると（ステップＳ１００４；ＮＯ）、処理はステップＳ１００３に戻る。
【００５５】
１ブロックの消去が完了したと判断されると（ステップＳ１００４；ＹＥＳ）、ハイバネーション用メモリ１４ａ、１４ｂの全領域の消去が完了したか否かが判断され、完了していないと判断されると（ステップＳ１００５；ＮＯ）、処理はステップＳ１００２に戻り、次の番号の１ブロックについての消去が実行される。ハイバネーション用メモリ１４ａ、１４ｂの全領域の消去が完了したと判断されると（ステップＳ１００５；ＹＥＳ）、書込みエリア消去処理は終了し、処理は図７のステップＳ３０３に移行する。
【００５６】
一方、ステップＳ１００３において、ＡＣ電源３１が供給状態であると判断されると（ステップＳ１００３；ＡＣ電源供給状態）、スイッチ３５によりバックアップ用電源３２がＯＦＦに切り替えられ（ステップＳ１００６）、本処理は中断され、図１１ａ〜図１１ｂに示す起動処理（ハイバネーション中断リスタート）に移行する。
【００５７】
図７のステップＳ３０３においては、書込み処理が実行される。
図９に、書込み処理のフローチャートを示す。
図９に示すように、書込み処理においては、まず、退避対象のデータ、即ち、メインメモリ１３の起動処理・終了処理用ワークエリア１３１以外の領域に記憶されているデータがハイバネーション用メモリ１４ａ、１４ｂに１ブロック分ずつ転送され、１ブロック分のデータ書込みが指示される（ステップＳ２００１）。ハイバネーション用メモリ１４ａには、データの上位Ｂｉｔ（例えば、８Ｂｉｔデータであれば上位４Ｂｉｔ）が１ブロック分転送され、ハイバネーション用メモリ１４ｂには、データの下位Ｂｉｔ（例えば、８Ｂｉｔデータであれば下位４Ｂｉｔ）が１ブロック分転送される。
【００５８】
次いで、ＡＣ電源状態監視回路３４から入力される信号が監視され、ＡＣ電源３１の電源状態が判断される（ステップＳ２００２）。ＡＣ電源３１が遮断状態であると判断されると（ステップＳ２００２；ＡＣ電源遮断状態）、  ハイバネーション用メモリ１４ａ、１４ｂにおいて、１ブロックの書込みが完了したか否かが判断される（ステップＳ２００３）。ここで、ハイバネーション用メモリ１４ａ、１４ｂにおいては、１ブロック分のデータ書込みが終了すると、ＣＰＵ１０にブロック書込み完了が通知される。１ブロックの書込みが完了していないと判断されると（ステップＳ２００３；ＮＯ）、処理はステップＳ２００２に戻る。
【００５９】
１ブロックの書込みが完了したと判断されると（ステップＳ２００３；ＹＥＳ）、メインメモリ１３の起動処理・終了処理用ワークエリア１３１以外の全領域のデータの書込みが完了したか否かが判断され、完了していないと判断されると（ステップＳ２００４；ＮＯ）、処理はステップＳ２００１に戻り、次のブロックについての書込みが実行される。メインメモリ１３の起動処理・終了処理用ワークエリア１３１以外の全領域のデータの書込みが完了したと判断されると（ステップＳ２００４；ＹＥＳ）、処理は図７のステップＳ３０４に移行する。上記書込み処理によりハイバネーション用メモリ１４ａ、１４ｂに書込まれたデータをバックアップデータとよぶ。
【００６０】
一方、ステップＳ２００２において、ＡＣ電源３１が供給状態であると判断されると（ステップＳ２００２；ＡＣ電源供給状態）、スイッチ３５によりバックアップ用電源３２がＯＦＦに切り替えられ（ステップＳ２００５）、本処理は中断され、図１１ａ〜図１１ｂに示す起動処理（ハイバネーション中断リスタート）に移行する。
【００６１】
図７のステップＳ３０４においては、書込み内容保証処理が実行される。
書込み内容保証処理は、メインメモリ１３における退避対象となったデータとハイバネーション用メモリ１４に退避されたデータの整合性を確認するための処理である。
【００６２】
図１０に、書込み内容保証処理のフローチャートを示す。
図１０に示すように、書込み内容保証処理においては、まず、メインメモリ１３に記憶されているハイバネーション用メモリ１４ａ、１４ｂへの退避対象となったデータ、具体的には、起動処理・終了処理用ワークエリア１３１以外の領域に書込まれたデータと、ハイバネーション用メモリ１４ａ、１４ｂに退避されたデータのベリファイ処理（誤り検査）が実行される（ステップＳ３００１）。なお、ベリファイ処理により誤りがあった場合は、ハイバネーション処理を再実行することが好ましい。
【００６３】
次いで、メインメモリ１３上における退避対象となったデータのチェックサム（合計値）が算出され（ステップＳ３００２）、算出されたチェックサムがハイバネーション用メモリ１４ａ、１４ｂのチェックサム格納領域１４３に書込まれる（ステップＳ３００３）。そして、ハイバネーション用メモリ１４ａ、１４ｂのハイバネーション完了フラグ領域１４１ａにハイバネーション完了フラグＯＮが設定され（ステップＳ３００４）、処理は図７のステップＳ３０５に移行する。
【００６４】
図７のステップＳ３０５においては、ＬＥＤ１６の点滅が停止され（ステップＳ３０５）、ハイバネーション処理は終了し、処理は図６のステップＳ２０４に移行する。
【００６５】
図６のステップＳ２０４においては、スイッチ３５によりバックアップ用電源３２がＯＦＦに切り替えられ、終了処理は終了する。
【００６６】
バックアップ用電源３２がＯＦＦに切り替えられた後、ＡＣ電源３１が遮断状態から供給状態となると、ＣＰＵ１０により、プログラム格納メモリ１２の起動処理プログラム及び終了処理プログラムがメインメモリ１３の起動処理・終了処理用ワークエリア１３１に読み出される。そして、図１１ａ〜図１１ｂに示す起動処理が実行される。
【００６７】
図１１ａ〜図１１ｂに、起動処理のフローチャートを示す。当該処理は、ＣＰＵ１０と起動処理プログラムとの協働によるソフトウエア処理により実現される。ここで、起動処理は図１１ａ〜図１１ｂに示す「リセットスタート」の位置から開始されるが、ハイバネーション処理中断時においては、ハイバネーション処理プログラムによって図１１ａに示す「ハイバネーション中断リスタート」の位置への移行が指示されているため、「ハイバネーション中断リスタート」の位置から処理が開始される。
【００６８】
「リセットスタート」から処理が開始された場合、まず、システム初期化処理が実行される（ステップＳ１０）。システム初期化処理とは、ＣＰＵ１０がこれから使用するシステム環境を認識し、システムを確立させるための処理である。例えば、どのようなメモリが接続されているかをＣＰＵ１０が認識する処理等が挙げられる。
次いで、リセットスタートであることを示すスタート情報がメインメモリ１３の起動処理・終了処理用ワークエリア１３１に設定され（ステップＳ１１）、処理はステップＳ１４に移行する。
【００６９】
「ハイバネーション中断リスタート」から処理が開始された場合、まず、ハイバネーション用システム初期化処理が実行される（ステップＳ１２）。ハイバネーション処理を中断して起動処理が開始された場合にはＣＰＵ１０は動作中であるので、システム初期化処理の全てを行う必要はない。そこで、ステップＳ１２においては、例えば、ＣＰＵ１０内のキャッシュ情報の初期化等、一部の初期化処理が行われる。
次いで、ハイバネーション中断リスタートであることを示すスタート情報がメインメモリ１３の起動処理・終了処理用ワークエリア１３１に設定され（ステップＳ１３）、処理はステップＳ１４に移行する。
【００７０】
ステップＳ１４においては、メイン表示装置１５１、サブ表示装置１５２、印字装置１７、入力装置１８等の周辺機器のドライバが初期化される（ステップＳ１４）。
【００７１】
次いで、入力装置１８のＩＮＩＴキーが押下されたか否かが判断される（ステップＳ１５）。ここで、ＩＮＩＴキー(イニシャルキー)は、ＥＣＲ１の設置の際にディーラーが使用するキーであり、メインメモリ１３上の起動処理・終了処理用ワークエリア１３１以外の領域のデータ、即ち、設定データやユーザデータを含む全てのデータを初期化することを指示するためのキーである。入力装置１８の電源キーがＯＦＦされた後、ＩＮＩＴキーを押しながら電源キーがＯＮに切り替えられると、ＩＮＩＴキーが有効となる。即ち、ＩＮＩＴキーが押下されるタイミングでは、ほとんどの場合、ハイバネーション処理中断後のリスタートとなる。
【００７２】
ＩＮＩＴキーが押下された場合（ステップＳ１５；ＹＥＳ）、処理は図１１ｂのステップＳ３５に移行し、プログラム格納メモリ１２のプログラムに誤りがないかチェックが行われる。チェック結果がＯＫである場合（ステップＳ３５；ＯＫ）、プログラム格納メモリ１２のプログラムがメインメモリ１３のコピー領域１３３にコピーされ（ステップＳ３６）、ＥＣＲ１がＩＮＩＴ状態にて起動され（ステップＳ３７）、本処理は終了する。ＩＮＩＴ状態にて起動とは、メインメモリ１３から起動処理・終了処理用ワークエリア１３１以外の領域のデータ、即ち、サスペンド用エリア１３２、システムデータ領域１３４、設定データ領域１３５、ユーザデータ領域１３６のデータが消去された後に起動されることを意味する。起動後は、図４に示すＥＣＲ制御処理が実行される。チェック結果がＮＧである場合（ステップＳ３５；ＮＧ）、システムエラーが発生したことを示すシステムエラーメッセージ、例えば「システムエラー」という文字列がメイン表示装置１５１に表示され（ステップＳ３８）、本処理は終了する。
【００７３】
ＩＮＩＴキーが押下されていない場合（ステップＳ１５；ＮＯ）、ＦＣキーが押下されたか否かが判断される（ステップＳ１６）。ここで、ＦＣキー（フラグクリアキー）は、メインメモリ１３上の起動処理・終了処理用ワークエリア１３１以外のデータのうち設定データを残して初期化することを指示するためのキーである。入力装置１８の電源キーがＯＦＦされた後、ＦＣキーを押しながら電源キーがＯＮに切り替えられると、ＦＣキーが有効となる。即ち、ＦＣキーが押下されるタイミングでは、ほとんどの場合、ハイバネーション処理中断後のリスタートとなる。ＦＣキーが押下されていない場合（ステップＳ１６；ＮＯ）、処理はステップＳ１８に移行する。ＦＣキーが押下されている場合（ステップＳ１６；ＹＥＳ）、ＦＣキー検知済みを示すフラグがメインメモリ１３上の起動処理・終了処理用ワークエリア１３１に設定され（ステップＳ１７）、処理はステップＳ１８に移行する。
【００７４】
ステップＳ１８においては、ハイバネーション処理中断後のリスタートであるか否かが判断される。具体的に、起動処理・終了処理用ワークエリア１３１に設定されているスタート情報が参照され、設定されているスタート情報がハイバネーション中断リスタートであることを示す情報である場合は、ハイバネーション中断リスタートであると判断される。設定されているスタート情報がリセットスタートであることを示す情報である場合は、ハイバネーション中断リスタートではないと判断される。ハイバネーション処理中断後のリスタートであると判断されると（ステップＳ１８；ＹＥＳ）、処理は図１１ｂのステップＳ２３に移行する。即ち、ステップＳ１９〜Ｓ２２の処理がスキップされる。ハイバネーション処理中断後のリスタートである場合、メインメモリ１３にＡＣ電源３１遮断前のメインメモリ１３上のデータがそのまま残されているので、ハイバネーション用メモリ１４からデータを復帰させる必要はない。
【００７５】
ハイバネーション処理中断後のリスタートではないと判断されると（ステップＳ１８；ＮＯ）、ハイバネーション用メモリ１４のハイバネーション完了フラグ領域１４１ａが参照される。ハイバネーション完了フラグがＯＮに設定されている場合（ステップＳ１９；ＹＥＳ）、チェックサムの検証が行われる（ステップＳ２０）。即ち、チェックサム格納領域１４３に記憶されているチェックサムとバックアップ領域１４２に記憶されているデータの合計値とが一致するか否かの検証が行われる。チェックサムの検証結果がＯＫである場合（ステップＳ２０；ＯＫ）、ハイバネーション用メモリ１４のバックアップ領域１４２に記憶されているバックアップデータがメインメモリ１３に書き戻される（ステップＳ２１）。
【００７６】
次いで、メインメモリ１３に書き戻されたプログラムに誤りがないかチェックが行われる（ステップＳ２２）。チェック結果がＯＫである場合（ステップＳ２２；ＯＫ）、ＦＣキーが検知済みであるか否かが判断される（図１１ｂのステップＳ２３）。ＦＣキーが検知済みではないと判断されると（ステップＳ２３；ＮＯ）、サスペンド用エリア１３２上のプログラムカウンタ、スタックポインタ、レジスタ、システムデータ等がＣＰＵ１０に書き戻される（ステップＳ２４）。また、周辺機器がＡＣ電源遮断前の状態へ復帰される（ステップＳ２５）。例えば、メイン表示装置１５１にメインメモリ１３のユーザデータに含まれる表示データが送信され、ＡＣ電源遮断前の表示状態に戻される。そして、ＡＣ電源遮断前の状態でシステムが復帰され（ステップＳ２６）、本処理は終了する。
【００７７】
一方、ＦＣキーが検知済みであると判断されると（ステップＳ２３；ＹＥＳ）、処理は図１１ｂのステップＳ２７に移行し、プログラム格納メモリ１２のプログラムに誤りがないかチェックが行われる。チェック結果がＯＫである場合（ステップＳ２７；ＯＫ）、プログラム格納メモリ１２のプログラムがメインメモリ１３のコピー領域１３３にコピーされ（ステップＳ２８）、ＥＣＲ１がＦＣ状態にて起動され（ステップＳ２９）、本処理は終了する。ＦＣ状態にて起動とは、メインメモリ１３のサスペンド用エリア１３２、システムデータ領域１３４、ユーザデータ領域１３６のデータが消去された後に起動されることを意味する。起動後は、図４に示すＥＣＲ制御処理が実行される。チェック結果がＮＧである場合（ステップＳ２７；ＮＧ）、システムエラーが発生したことを示すシステムエラーメッセージ、例えば「システムエラー」という文字列がメイン表示装置１５１に表示され（ステップＳ３０）、本処理は終了する。
【００７８】
一方、ステップＳ１９でハイバネーション完了フラグがＯＮでないと判断された場合（ステップＳ１９；ＮＯ）、ステップＳ２０でチェックサムの検証がＮＧであると判断された場合（ステップＳ２０；ＮＧ）、又は、ステップＳ２２でメインメモリ１３のプログラムチェック結果がＮＧである場合（ステップＳ２２；ＮＧ）、処理は図１１ｂのステップＳ３１に移行し、プログラム格納メモリ１２のプログラムに誤りがないかチェックが行われる。チェック結果がＯＫである場合（ステップＳ３１；ＯＫ）、プログラム格納メモリ１２のプログラムがメインメモリ１３のコピー領域１３３にコピーされ（ステップＳ３２）、ＥＣＲ１がバックアップエラー状態にて起動され（ステップＳ３３）、本処理は終了する。バックアップエラー状態にて起動とは、メイン表示装置１５１に「バックアップエラーが発生しました」等のメッセージが表示され、メインメモリ１３から起動処理・終了処理用ワークエリア１３１以外の領域のデータ、即ち、サスペンド用エリア１３２、システムデータ領域１３４、設定データ領域１３５、ユーザデータ領域１３６のデータが消去された後、起動されることを意味する。起動後は、図４に示すＥＣＲ制御処理が実行される。プログラムのチェック結果がＮＧである場合（ステップＳ３１；ＮＧ）、システムエラーが発生したことを示すシステムエラーメッセージ、例えば「システムエラー」という文字列がメイン表示装置１５１に表示され（ステップＳ３４）、本処理は終了する。
【００７９】
図１２に、ＡＣ電源３１の電源遮断前のメイン表示装置１５１及びＡＣ電源３１の電源供給後のメイン表示装置１５１の画面表示例を示す。図１２では、商品登録処理中に停電等によりＡＣ電源３１が遮断された場合を示している。上述のように、終了処理では、ＣＰＵ１０のプログラムカウンタ、スタックポインタ、レジスタ、システムデータ等のシステムの動作状態を示すデータがメインメモリ１３に退避され、バックアップ電源３２のＯＦＦ前に更に不揮発性メモリであるハイバネーション用メモリ１４に退避される。再度ＡＣ電源３１が供給状態になった場合には、メインメモリ１３上（又はハイバネーション用メモリ１４）からプログラムカウンタ、スタックポインタ、レジスタ、システムデータ等がＣＰＵ１０に読み出される。そのため、中断された商品登録処理プログラムの処理の実行位置をＡＣ電源遮断前の状態に戻すことができ、図１２に示すように、ＡＣ電源遮断前と同じ画面がメイン表示装置１５１に表示される。ユーザは、ＡＣ電源遮断前に行った登録をやり直すことなく、商品登録処理を継続して実行することが可能となる。
【００８０】
また、バックアップ用電源３２のＯＦＦ前にメインメモリ１３上のデータが不揮発メモリであるハイバネーション用メモリ１４に退避されるので、大容量のバックアップ用電源を搭載することなく、長期のＡＣ電源遮断後に電源遮断前の状態にシステムを復帰させることが可能となる。
【００８１】
ハイバネーション用メモリ１４に退避されたデータは、ＣＰＵ１０において他に実行すべき処理のない空き時間に書込みエリア事前消去処理により事前に消去されるので、ＡＣ電源３１の遮断時にバックアップ用電源３２からの給電をうけて実行されるハイバネーション処理におけるハイバネーション用メモリ１４ａ、１４ｂからのデータ消去にかかる時間を短縮することが可能となる。その結果、バックアップ電源３２の消耗を低減することが可能となる。
【００８２】
また、ハイバネーション処理の実行時以外はバックアップ用電源３２がＯＦＦに切り替えられるので、バックアップ電源３２の消耗を必要最低限に抑えることが可能となる。
【００８３】
また、ハイバネーション用メモリ１４が複数備えられ、データの書込み及び消去を複数のハイバネーション用メモリ１４において並行して行うので、ハイバネーション用メモリ１４へのデータ書込み速度及び消去速度を向上させることができる。その結果、バックアップ電源３２の消耗を低減することが可能となる。
【００８４】
また、ハイバネーション処理が終了するまではＡＣ電源遮断時におけるメインメモリ１３の状態が保持され、ハイバネーション処理中には、ＣＰＵ１０によりＡＣ電源３１の電源状態が監視され、ＡＣ電源３１が供給状態となった場合には、ハイバネーション処理を中断して起動処理に移行し、メインメモリ１３に記憶されているシステム動作状態を示すデータをＣＰＵ１０に書き戻してＡＣ電源遮断前の状態で動作を復帰させる制御が行われる。具体的に、ハイバネーション処理は、書込みエリアの消去処理、書込み処理、書込み内容保証処理を含んで構成されるが、ＣＰＵ１０により、ハイバネーション用メモリ１４における１ブロック毎のデータ消去中、書込み中にＡＣ電源状態が監視されており、ＡＣ電源３１が供給状態となった場合は、ハイバネーション処理を中断して起動処理のハイバネーション中断リスタート位置に移行する制御が行われる。従って、ハイバネーション処理中にＡＣ電源３１が供給状態となった場合、ハイバネーション処理の完了を待つことなく直ちにＡＣ電源遮断前のシステム状態に復帰することが可能となる。
【００８５】
また、書込み内容保証処理では、メインメモリ１３の退避対象データとハイバネーション用メモリ１４に退避されたデータとの整合性をチェックするデータベリファイ処理の実施、書込んだバックアップデータのチェックサムの書込み、ハイバネーション完了フラグＯＮの設定が行われるので、ハイバネーション用メモリ１４に退避されたデータとハイバネーション用メモリ１４からメインメモリ１３に書き戻されるデータの整合性を保証することが可能となる。
【００８６】
（実施形態２）
次に、本発明の実施形態２について説明する。
実施形態２においては、マルチタスクで各種処理が実行される場合の一例について説明する。
【００８７】
なお、実施形態２において、プログラム格納メモリ１２には、オペレーティングシステムが記憶されている。オペレーティングシステムには、後述するＥＣＲ制御処理（実施形態１と区別するためＥＣＲ制御処理Ｂとする）、外部入力イベント割込み処理、タイマ割込み処理、終了処理、を実行するためのプログラムが含まれる。また、プログラム格納メモリ１２には、商品登録処理タスク、書込みエリア事前消去処理タスクを実行するための各種プログラムが記憶されている。なお、各タスクのプログラムは、処理関数により構成される。
【００８８】
その他のＥＣＲ１の構成については図１〜３を用いて実施形態１で説明したものと同様であるので説明を援用し、以下実施形態２の動作について説明する。
【００８９】
図１３〜図１６に、ＣＰＵ１０とオペレーティングシステムとの協働により実行される処理のフローチャートを示す。  
【００９０】
図１３〜図１６に示す処理は、ＣＰＵ１０とオペレーティングシステムの協働により以下のように切り替えながら実行される。
ＥＣＲ１の起動後は、まず、図１３に示すＥＣＲ制御処理Ｂが実行される。入力装置１８による入力（外部入力イベント割込み）が発生すると、ＥＣＲ制御処理Ｂは中断され、図１４に示す外部入力イベント割込み処理が実行される。外部入力イベント割込み処理が終了すると、ＥＣＲ制御処理Ｂの中断した実行位置から処理が再開される。ＣＰＵ１０の内部クロックによるタイマ割込みが発生すると、ＥＣＲ制御処理Ｂは中断され、図１５に示すタイマ割込み処理が実行される。タイマ割込み処理が終了すると、ＥＣＲ制御処理Ｂの中断した位置の処理に戻る。ＡＣ電源状態監視回路３４によりＡＣ電源遮断を通知する信号が入力され、電源遮断割込みが発生すると、図１６に示す終了処理が実行され、ＥＣＲ１の動作が停止される。
【００９１】
図１３を参照してＥＣＲ制御処理Ｂについて説明する。
まず、タスク登録処理が実行される（ステップＳ４１）。タスク登録処理は、例えば、メインメモリ１３のシステムデータ領域１３４に、ＯＳのシステムデータとしてタスクとなる処理（処理関数）へのポインタ及びタスクの実行優先度（以下、単に優先度という）を登録する処理、タスクのスタックエリアを確保する処理等が含まれる。
【００９２】
図１７に、メインメモリ１３のシステムデータ領域１３４に、オペレーティングシステムのシステムデータとして登録される情報の一例を示す。
タスク登録処理では、図１７に示す優先度１の登録タスク情報１３４ａ、優先度２の登録タスク情報１３４ｂ、優先度３の登録タスク情報１３４ｃが登録される。ここでは、優先度１が最も高く、優先度３が最も低い優先度を示している。各登録タスク情報には、タスクとなる処理（処理関数）へのポインタ等が含まれる。実施形態２においては、優先度１の登録タスク情報１３４ａとして、商品登録処理タスク（タスクＡとする）が書込まれており、優先度３の登録タスク情報１３４ｃとして、書込みエリア事前消去処理タスク（タスクＣとする）が書込まれている。なお、図１７においては、タスクの優先度が３段階の場合を例として示しているが、これに限定されない。
その他、オペレーティングシステムのシステムデータには、図１７に示すように、その他情報１３４ｄが書込まれる。その他情報１３４ｄには、登録された各タスクの起動要求フラグ等が書込まれる。本実施形態２においては、タスクＡの起動要求フラグ、タスクＣの起動要求フラグ、タスクＣの次の起動までの指定時間及びタスクＣの次の実行位置等が書込まれる。タスクＡの起動要求フラグ及びタスクＣの起動要求フラグが「１」の場合は起動要求があることを示し、「０」の場合は起動要求がないことを示す。なお、タスク登録処理においては、タスクＡの起動要求フラグの初期値として「０」が、タスクＣの起動要求フラグの初期値として「１」が書込まれる。
【００９３】
次いで、システムデータ領域１３４のタスクＡの起動要求フラグが参照され、タスクＡの起動要求フラグが「１」であるか否かが判断される（ステップＳ４２）。
【００９４】
タスクＡの起動要求フラグは、初期値は「０」であるが、入力装置１８から商品登録処理の要求が入力され、入力装置１８による外部入力イベント割込みが発生すると、図１４に示すように、外部入力イベント割込み処理が実行され、「１」に書き替えられる（図１４のステップＳ５１）。
【００９５】
タスクＡの起動要求フラグが「１」であると判断されると（ステップＳ４２；ＹＥＳ）、タスクＡの起動要求フラグが「０」に書き替えられ（ステップＳ４３）、商品登録処理タスク（タスクＡ）が実行される（ステップＳ４４）。
【００９６】
商品登録処理タスクは、入力装置１８からの入力に従って、商品が取引された日時、商品名、商品の売上個数、売上金額等の売上データ、担当者等をユーザデータ領域１３６に登録し、商品名、売上（購入）個数、売上（購入）金額、お預かり金額、返金額等が印字装置１７によりレシートに印字する処理である。
商品登録処理タスクの実行中に外部入力イベント割込み又はタイマ割込みが発生すると、商品登録処理タスクは中断され、外部入力イベント割込み処理又はタイマ割込み処理が実行される。このとき、中断されたタスクの実行位置はＣＰＵ１０のレジスタに書込まれ、割り込みによる処理の終了後、中断された実行位置から商品登録処理タスクが再開される。
【００９７】
ステップＳ４４の処理が終了すると、処理はステップＳ４２に戻る。
ステップＳ４２において、タスクＡの起動要求フラグが「０」であると判断されると（ステップＳ４２；ＮＯ）、システムデータ領域１３４のタスクＣの起動要求フラグが参照され、タスクＣの起動要求フラグが「１」であるか否かが判断される（ステップＳ４５）。  タスクＣの起動要求フラグが「１」であると判断されると（ステップＳ４５；ＹＥＳ）、タスクＣの起動要求フラグが「０」に書き替えられ（ステップＳ４６）、書込みエリア事前消去処理タスク（タスクＣ）が実行される（ステップＳ４７）。
【００９８】
図１８に、書込みエリア事前消去処理タスクのフローチャートを示す。
ここで、書込みエリア事前消去処理タスクは、ハイバネーション用メモリ１４ａ、１４ｂに記憶されているデータを消去する処理である。ハイバネーション用メモリ１４ａ、１４ｂには、上述したように、ＡＣ電源３１の遮断時にメインメモリ１３に記憶されているデータが退避される（書込まれる）。このデータ退避は、後述する電源遮断割込みによって実行される終了処理において、バックアップ用電源３２の給電により行われる。しかし、ハイバネーション用メモリ１４ａ、１４ｂにデータを書込む前に、まず前回のＡＣ遮断時に書込まれたデータをハイバネーション用メモリ１４ａ、１４ｂから消去する必要がある。この処理を全て終了処理において行うと、ＡＣ電源３１が遮断されてから動作が完全に停止するまでに時間がかかり、バックアップ用電源３２が消耗する。そこで、ＣＰＵ１０において他に実行すべき処理のない、即ち、商品登録処理タスク等が実行されていない空き時間に書込みエリア事前消去処理タスクを実行することで、ＡＣ電源３１の遮断時におけるハイバネーション用メモリ１４ａ、１４ｂからのデータ消去にかかる時間を短縮し、バックアップ用電源３２の消耗を低減する。
【００９９】
まず、消去ブロック番号領域１３１ａに記憶されている番号が取得される（ステップＳ４０１）。次いで、取得された番号がハイバネーション用メモリ１４ａ、１４ｂの最終ブロック番号ｎであるか否かが判断される（ステップＳ４０２）。
【０１００】
取得された番号が最終ブロック番号ｎではないと判断されると（ステップＳ４０２；ＮＯ）、取得された番号の次の番号のブロックのデータ消去がハイバネーション用メモリ１４ａ、１４ｂに指示される（ステップＳ４０３）。そして、システムデータ領域１３４に、書込みエリア事前消去処理タスク（タスクＣ）の次の起動までの指定時間及びタスクＣの次の実行位置の情報（書込みエリア事前消去処理が再開されたときに実行を開始する位置、具体的には、ステップＳ４０５）が書込まれ、書込みエリア事前消去処理タスクは待ち状態となる（ステップＳ４０４）。
【０１０１】
図１３に戻り、書込みエリア事前消去処理タスクが待ち状態となると、ＥＣＲ制御処理Ｂに戻り、ステップＳ４２から処理が実行される。
ＥＣＲ制御処理Ｂが予め定められた一定時間実行されると、タイマ割込みが発生し、図１５に示すタイマ割込み処理が実行される。タイマ割込みの発生は、ＣＰＵ１０の内部クロックにより管理される。
【０１０２】
ここで、図１５を参照してタイマ割込み処理について説明する。
まず、システムデータ領域１３４に書込まれている、タスクＣの次の起動までの指定時間が経過したか否かが判断される（ステップＳ６１）。タスクＣの次の起動までの指定時間が経過したか否かは、ＣＰＵ１０の内部クロックにより管理される。
【０１０３】
タスクＣの次の起動までの指定時間が経過していないと判断されると（ステップＳ６１；ＮＯ）、タイマ割込み処理は終了する。
タスクＣの次の起動までの指定時間が経過したと判断されると（ステップＳ６１；ＹＥＳ）、タスクＣの起動要求フラグが「１」に書き替えられ、タイマ割込み処理は終了する。
【０１０４】
タイマ割込み処理が終了すると、処理は図１３に示すＥＣＲ制御処理ＢのステップＳ４２に移行する。ステップＳ４２において、タスクＡの起動要求フラグが「１」であると判断されると（ステップＳ４２；ＹＥＳ）、上述のステップＳ４３、Ｓ４４の処理が実行される。ステップＳ４２において、タスクＡの起動要求フラグが「０」であると判断されると（ステップＳ４２；ＮＯ）、システムデータ領域１３４のタスクＣの起動要求フラグが参照され、タスクＣの起動要求フラグが「１」であるか否かが判断される（ステップＳ４５）。
【０１０５】
タスクＣの起動要求フラグが「１」ではないと判断されると（ステップＳ４５；ＮＯ）、処理はステップＳ４２に戻る。タスクＣの起動要求フラグが「１」であると判断されると（ステップＳ４５；ＹＥＳ）、処理はステップＳ４６に進み、タスクＣの起動要求フラグが「０」に書き替えられ、書込みエリア事前消去処理が再開される（ステップＳ４７）。
【０１０６】
ここで、システムデータ領域１３４には、書込みエリア事前消去処理が再開されたときの実行位置として、図１８のステップＳ４０５の位置が書込まれているので、書込みエリア事前消去処理は図１８のステップＳ４０５から再開される。
【０１０７】
図１８のステップＳ４０５においては、ステップＳ４０３において指示したブロックのデータ消去が終了したか否かの問い合わせがハイバネーション用メモリ１４ａ、１４ｂに送信され、指示されたブロックのデータ消去が終了していない旨がハイバネーション用メモリ１４ａ、１４ｂから応答されると（ステップＳ４０５；ＮＯ）、処理はステップＳ４０４に戻る。指示されたブロックのデータ消去が終了した旨がハイバネーション用メモリ１４ａ、１４ｂから応答されると（ステップＳ４０５；ＹＥＳ）、データ消去されたブロックのブロック番号が消去ブロック番号領域１３１ａに書込まれ（ステップＳ４０６）、処理は図４のステップＳ４０１に戻る。
【０１０８】
一方、ステップＳ４０２において、取得された番号が最終ブロック番号ｎであると判断されると（ステップＳ４０２；ＹＥＳ）、書込みエリア事前消去処理タスクは終了し、処理は図１３のステップＳ４２に移行する。
【０１０９】
ＡＣ電源状態監視回路３４からＡＣ電源遮断を通知する信号が入力されると、電源遮断割込みが発生し、図１６に示す終了処理が実行される。終了処理は、実施形態１において図６を用いて説明したものと同様であるので詳細説明を援用する。即ち、サスペンド処理（ステップＳ７１）、スイッチ３５の切り替えによるバックアップ用電源３２のＯＮへの切り替え（ステップＳ７２）、ハイバネーション処理（ステップＳ７３）、スイッチ３５の切り替えによるバックアップ用電源３２のＯＦＦへの切り替え（ステップＳ７４）が行われ、動作が停止される。ハイバネーション処理の書込みエリア消去処理（図８参照）においては、書込みエリア事前消去処理タスクによって消去しきれなかった未処理の残存データのみを消去すればよいので、ＡＣ電源３１の遮断時におけるハイバネーション用メモリ１４ａ、１４ｂからのデータ消去にかかる時間を短縮し、バックアップ電源３２の消耗を低減することが可能となる。
【０１１０】
ＡＣ電源状態監視回路３４からＡＣ電源投入を通知する信号が入力されると、図１１ａ〜図１１ｂに示す起動処理が実行される。起動処理は、実施形態１において説明したものと同様であるので説明を援用する。
【０１１１】
以上説明したように、実施形態２におけるＥＣＲ１によれば、ＡＣ電源３１の遮断時にメインメモリ１３上のデータが不揮発メモリであるハイバネーション用メモリ１４に退避されるので、大容量のバックアップ用電源を搭載することなく、長期のＡＣ電源遮断後に電源遮断前の状態にシステムを復帰させることが可能となる。
【０１１２】
ハイバネーション用メモリ１４に退避されたデータは、ＣＰＵ１０において他に実行すべきタスクのない空き時間に書込みエリア事前消去処理タスクにより事前に消去されるので、ＡＣ電源３１の遮断時にバックアップ用電源３２からの給電をうけて実行されるハイバネーション処理におけるハイバネーション用メモリ１４ａ、１４ｂからのデータ消去にかかる時間を短縮することが可能となる。その結果、バックアップ電源３２の消耗を低減することが可能となる。
【０１１３】
また、ハイバネーション処理の実行時以外はバックアップ用電源３２がＯＦＦに切り替えられるので、バックアップ電源３２の消耗を必要最低限に抑えることが可能となる。
【０１１４】
また、ハイバネーション用メモリ１４が複数備えられ、データの書込み及び消去を複数のハイバネーション用メモリ１４において並行して行うので、ハイバネーション用メモリ１４へのデータ書込み速度及び消去速度を向上させることができる。その結果、バックアップ電源３２の消耗を低減することが可能となる。
【０１１５】
また、ハイバネーション処理が終了するまではＡＣ電源遮断時におけるメインメモリ１３の状態が保持され、ハイバネーション処理中には、ＣＰＵ１０によりＡＣ電源３１の電源状態が監視され、ＡＣ電源３１が供給状態となった場合には、ハイバネーション処理を中断して起動処理に移行し、メインメモリ１３に記憶されているシステム動作状態を示すデータをＣＰＵ１０に書き戻してＡＣ電源遮断前の状態で動作を復帰させる制御が行われる。具体的に、ハイバネーション処理は、書込みエリアの消去処理、書込み処理、書込み内容保証処理を含んで構成されるが、ＣＰＵ１０により、ハイバネーション用メモリ１４における１ブロック毎のデータ消去中、書込み中にＡＣ電源状態が監視されており、ＡＣ電源３１が供給状態となった場合は、ハイバネーション処理を中断して起動処理のハイバネーション中断リスタート位置に移行する制御が行われる。従って、ハイバネーション処理中にＡＣ電源３１が供給状態となった場合、ハイバネーション処理の完了を待つことなく直ちにＡＣ電源遮断前のシステム状態に復帰することが可能となる。
【０１１６】
また、書込み内容保証処理では、メインメモリ１３の退避対象データとハイバネーション用メモリ１４に退避されたデータとの整合性をチェックするデータベリファイ処理の実施、書込んだバックアップデータのチェックサムの書込み、ハイバネーション完了フラグＯＮの設定が行われるので、ハイバネーション用メモリ１４に退避されたデータとハイバネーション用メモリ１４からメインメモリ１３に書き戻されるデータの整合性を保証することが可能となる。
【０１１７】
なお、上記実施形態１〜２における記述内容は、本発明に係るＥＣＲ１の好適な一例であり、これに限定されるものではない。
例えば、メインメモリ１３に記憶されるデータは一例であり、これに限定されない。
その他、ＥＣＲ１を構成する各装置の細部構成及び細部動作に関しても、発明の趣旨を逸脱することのない範囲で適宜変更可能である。
【図面の簡単な説明】
【０１１８】
【図１】本発明の実施形態におけるＥＣＲの機能構成例を示すブロック図である。
【図２】図１のＣＰＵ、プログラム格納メモリ、メインメモリ、ハイバネーション用メモリのデータ格納例及びデータの流れを示す図である。
【図３】図１のＥＣＲの電源系の要部構成例を示す図である。
【図４】図１のＣＰＵにより実行されるＥＣＲ制御処理を示すフローチャートである。
【図５】図１のＣＰＵにより実行される書込みエリア事前消去処理を示すフローチャートである。
【図６】図１のＣＰＵにより実行される終了処理を示すフローチャートである。
【図７】図１のＣＰＵにより実行されるハイバネーション処理を示すフローチャートである。
【図８】図１のＣＰＵにより実行される書込みエリア消去処理を示すフローチャートである。
【図９】図１のＣＰＵにより実行される書込み処理を示すフローチャートである。
【図１０】図１のＣＰＵにより実行される書込み内容保証処理を示すフローチャートである。
【図１１ａ】図１のＣＰＵにより実行される起動処理を示すフローチャートである。
【図１１ｂ】図１のＣＰＵにより実行される起動処理を示すフローチャートである。
【図１２】図１のメイン表示装置のＡＣ電源遮断前後における表示例を示す図である。
【図１３】図１のＣＰＵにより実行されるＥＣＲ制御処理Ｂを示すフローチャートである。
【図１４】図１のＣＰＵにより実行される外部入力イベント割込み処理を示すフローチャートである。
【図１５】図１のＣＰＵにより実行されるタイマ割込み処理を示すフローチャートである。
【図１６】図１のＣＰＵにより実行される電源遮断割込み処理を示すフローチャートである。
【図１７】図２に示すメインメモリのシステムデータ領域に、オペレーティングシステムのシステムデータとして登録される情報の一例を示す図である。
【図１８】図１のＣＰＵにより実行される書込みエリア事前消去処理タスクを示すフローチャートである。
【符号の説明】
【０１１９】
１  ＥＣＲ
１０  ＣＰＵ
１１  ＲＴＣ
１２  プログラム格納メモリ
１３  メインメモリ
１３１  起動処理・終了処理用ワークエリア
１３１ａ  消去ブロック番号領域
１３２  サスペンド用エリア
１３３  コピー領域
１３４  システムデータ領域
１３５  設定データ領域
１３６  ユーザデータ領域
１４  ハイバネーション用メモリ
１４１  ヘッダ領域
１４２  バックアップ領域
１４３  チェックサム格納領域
１５１  メイン表示装置
１５２  サブ表示装置
１６  ＬＥＤ
１７  印字装置
１８  入力装置
１９  ストレージＩ／Ｆ
１９ａ  外部ストレージ
２０  通信部
【図１】
2010128537.tif 000003
【図２】
2010128537.tif 000004
【図３】
2010128537.tif 000005
【図４】
2010128537.tif 000006
【図５】
2010128537.tif 000007
【図６】
2010128537.tif 000008
【図７】
2010128537.tif 000009
【図８】
2010128537.tif 000010
【図９】
2010128537.tif 000011
【図１０】
2010128537.tif 000012
【図１１ａ】
2010128537.tif 000013
【図１１ｂ】
2010128537.tif 000014
【図１２】
2010128537.tif 000015
【図１３】
2010128537.tif 000016
【図１４】
2010128537.tif 000017
【図１５】
2010128537.tif 000018
【図１６】
2010128537.tif 000019
【図１７】
2010128537.tif 000020
【図１８】
2010128537.tif 000021