(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下、添付図面を参照して、制御回路及び電子機器の実施形態を詳細に説明する。なお、以下に説明する実施形態は、制御回路及び電子機器の一実施形態であって、その構成や仕様等を限定するものではない。本実施形態は、スーパーマーケット等の店舗に導入された、一取引にかかる商品の登録・精算を行うPOS(Point Of Sales)端末を電子機器として適用した例である。
【0010】
図1は、POS端末10を示す外観斜視図である。POS端末10は、ドロワ11の上に載置される。そして、POS端末10は、ドロワ11の引出し12の開放動作を制御することができる。POS端末10の本体ハウジング13は、上面右側にキーボード14と第1表示部15とを設ける。
【0011】
キーボード14は、置数キーと、商品コードキーと、クリアキーと、戻りキーと、小計キーとを備える。置数キーは、商品コードや金額等の数字を入力するためのキーである。商品コードキーは、置数キーで入力された数字を商品コードとして取り扱う場合に押下するキーである。クリアキーは、エラー発生時などに操作を取り消すためのキーである。戻りキーは、現在の操作をキャンセルして直前の画面に戻すためのキーである。小計キーは、売上登録を完了して売上合計金額の算出を宣言するためのキーである。
【0012】
第1表示部15は、表示面上にタッチパネルが積層されたタッチパネル式のディスプレイである。第1表示部15は、例えば、店舗の店員が見るディスプレイである。本体ハウジング13は、上面後方には、第2表示部16を設ける。第2表示部16は、表示面上にタッチパネルが積層されたタッチパネル式のディスプレイである。第2表示部16は、例えば、顧客が見るディスプレイである。
【0013】
POS端末10は、本体ハウジング13の上面左側にプリンタ17を設ける。プリンタ17は、取引単位のレシート及びジャーナルを印字発行する。
【0014】
POS端末10は、本体ハウジング13の右側面の溝に、カードリーダライタ18を設ける。カードリーダライタ18は、カードからカード情報の読み取り等をするためにスキャンする。
【0015】
また、POS端末10は、手持ち式のスキャナ装置19を設ける。手持ち式のスキャナ装置19は、顧客が決済カウンタに持参した商品に付されたバーコードからコード情報を光学的に読み取るコード読取装置である。
【0016】
次に、POS端末10が本体ハウジング13の内部に備える回路基板100について説明する。
【0017】
ここで、
図2は、POS端末10が本体ハウジング13の内部に備える回路基板100の一例を示す説明図である。回路基板100は、CPU(Central Processing Unit)101と、ROM(Read Only Memory)102と、RAM(Random Access Memory)103と、チップセット104と、RAIDコントローラ105とを備える。また、回路基板100は、第1記憶装置200a及び第2記憶装置200bと接続する。
【0018】
CPU101は、各種演算処理を実行し、POS端末10が備えている各種機能を制御する。ROM102は、各種プログラムやデータを記憶する。RAM103は、各種プログラムを一時的に記憶するとともに、各種データを書き換え自在に記憶する。
【0019】
チップセット104は、回路基板100上の各種ハードウェアコンポーネント間の情報の受け渡しを制御する回路群である。また、チップセット104は、SATA(Serial Advanced Technology Attachment)コントローラ104aを備える。SATAコントローラ104aは、記憶装置と接続する規格であるSATAによる接続を制御する。すなわち、SATAコントローラ104aは、第1記憶装置200a及び第2記憶装置200bの間のデータの受け渡しを制御する。RAIDコントローラ105は、RAID1で規定された機能を制御する制御回路である。
【0020】
ここで、RAID1とは、複数の記憶装置に同一のデータを同時に書き込む方式である。これにより、POS端末10は、何れか一台の記憶装置に書き込んだデータが失われた場合であっても、他の記憶装置からデータを読み出すことが可能となる。従って、POS端末10は、何れか一台の記憶装置が故障し、データが失われた場合であっても稼働を継続することができる。
【0021】
そして、故障した記憶装置が新しい記憶装置に交換された場合には、POS端末10は、故障していない記憶装置のデータを新しい記憶装置に書き込むことでRAID1方式のストレージシステムを再構築することができる。本実施形態に係るPOS端末10は、第1記憶装置200a及び第2記憶装置200bに同一のデータを同時に書き込むことでRAID1方式によるストレージシステムを構築している。
【0022】
第1記憶装置200aは、例えば、HDD(Hard Disk Drive)などの記憶装置である。そして、第1記憶装置200aは、回路基板100の要求に応じて、各種情報が書き込まれる。または、第1記憶装置200aは、回路基板100の要求に応じて、各種情報が読み出される。
【0023】
第2記憶装置200bは、例えば、HDDなどの記憶装置である。そして、第2記憶装置200bには、第1記憶装置200aと同一のデータが同一タイミングで書き込まれる。なお、第1記憶装置200a及び第2記憶装置200bは、HDDに限らず、SSD(Solid State Drive)等の記憶装置であってもよい。また、POS端末10は、RAID1方式によるストレージシステムとして2台以上の記憶装置を備えていてもよい。
【0024】
次に、実施形態に係るPOS端末10の各部が有する特徴的な機能について説明する。
【0025】
ここで、
図3は、POS端末10の各部の機能構成を示すブロック図である。
【0026】
CPU101は、第1記憶装置200aに記憶されたプログラムをRAM103に展開し、プログラムに従って動作することで、
図3に示す各機能部をRAM103上に生成する。具体的には、CPU101は、データ書込部1011と、データ読出部1012と、異常検知要求部1013と、報知制御部1014とを生成する。
【0027】
データ書込部1011は、第1記憶装置200aに書き込むデータの出力を制御する。
【0028】
データ読出部1012は、第1記憶装置200aに書き込まれたデータの読み出しを制御する。すなわち、データ読出部1012は、データの読み出し要求を出力する。そして、データ読出部1012は、読み出されたデータの入力を制御する。
【0029】
異常検知要求部1013は、RAIDコントローラ105にRAID1方式を用いたストレージシステムの異常を検知する異常検知処理の実行を要求する。異常検知要求部1013は、異常検知処理として、例えば、ベリファイ処理の実行要求を出力する。ここで、ベリファイ処理とは、第1記憶装置200a及び第2記憶装置200bに書き込まれているデータを読み出し、同一のデータが正しく書き込まれていることを確認する処理である。これにより、異常検知要求部1013は、記憶媒体の一部にデータを読み出すことができない領域が発生していないことを確認することができる。
【0030】
ここで、第1記憶装置200a及び第2記憶装置200bがHDDである場合を例に詳細に説明する。HDDは、プラッタと呼ばれる磁性を帯びた円盤にデータを記録している。そして、HDDは、経年劣化などにより、プラッタの一部の領域の磁性が弱まると、データを読み出すことができない領域である不良セクタを発生させてしまうことがある。ここで、不良セクタが発生していることに気が付かず、他の記憶装置にデータを書き込んだ場合、POS端末10は、不良セクタ箇所のデータを失ってしまうことになる。しかし、不良セクタは、その箇所に書き込まれたデータを読み出さなければ検出することができない。そこで、異常検知要求部1013は、ベリファイ処理を要求し、同一のデータが正しく書き込まれていることを確認する。
【0031】
異常検知要求部1013は、例えば、操作者がPOS端末10にベリファイ処理の実行要求を入力した場合に、ベリファイ処理の実行要求を出力する。または、異常検知要求部1013は、ネットワークを介して接続されたサーバ装置等がPOS端末10にベリファイ処理の実行要求を入力した場合に、ベリファイ処理の実行要求を出力する。または、異常検知要求部1013は、一定周期が経過する毎に、ベリファイ処理の実行要求を出力する。
【0032】
なお、異常検知要求部1013は、ベリファイ処理以外の異常検知処理の実行を要求してもよい。例えば、記憶装置が有している、S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology)と呼ばれる自己診断機能を用いた異常検知処理の実行要求を出力してもよい。
【0033】
報知手段である報知制御部1014は、後述するRAIDステータス1055cが異常を示している場合に報知する。例えば、報知制御部1014は、POS端末10に備えられたLED(Light Emitting Diode)(不図示)を発光させることで報知する。または、報知制御部1014は、POS端末10に備えられたスピーカー(不図示)に警告音を発音させることで報知する。または、報知制御部1014は、第1表示部15に報知画面(不図示)を表示させることで報知する。ここで、報知画面とは、保守する必要があることを報知する画面である。具体的には、報知制御部1014は、報知画面に「規定回数以上のリビルドを実行しましたが、第1記憶装置と第2記憶装置との間のデータに差異があります。記憶装置等を修理又は交換して下さい。または、サービスマンに連絡して下さい。」などのメッセージを表示する。報知制御部1014は、このようなメッセージを表示することで予防保守を促す。
【0034】
次に、RAIDコントローラ105が有している機能について説明する。RAIDコントローラ105は、機能部として、書込制御部1051と、読出制御部1052と、異常検知制御部1053と、リビルド制御部1054と、ステータス制御部1055とを有する。
【0035】
書込制御部1051は、第1記憶装置200aに入力されたデータを書き込む。その際、書込制御部1051は、RAID1方式によるミラーリングを行う。すなわち、書込手段である書込制御部1051は、第1記憶装置200a及び第2記憶装置200bに同一のデータを書き込む。
【0036】
読出制御部1052は、入力された読み出し要求に応じたデータの出力を制御する。
【0037】
検知手段である異常検知制御部1053は、RAID1方式を用いたストレージシステムの異常を検知する異常検知処理を実行する。具体的には、異常検知制御部1053は、第1記憶装置200a及び第2記憶装置200bの全部又は一部の異常を検知する異常検知処理の実行を制御する。異常検知制御部1053は、異常検知処理として、例えば、ベリファイ処理を実行する。
【0038】
異常検知制御部1053は、ベリファイ処理の実行要求を受け付けた場合に、ベリファイ処理を実行する。そして、異常検知制御部1053は、ベリファイ処理の結果、第1記憶装置200aに記憶されたデータと同一のデータを、第2記憶装置200bから読み取ることができた場合に、第1記憶装置200a及び第2記憶装置200bは正常であると判定する。ここで、第1記憶装置200aのデータと、第2記憶装置200bのデータとの同一とは、第1記憶装置200aが故障した場合に、第2記憶装置200bのデータを使用して処理を継続することができる程度の同一性を少なくとも備えていればよい。
【0039】
一方、異常検知制御部1053は、ベリファイ処理の結果、第1記憶装置200aに記憶されたデータと同一のデータを、第2記憶装置200bから読み取ることができない場合に、RAID1方式を用いたストレージシステムに異常があると判定する。具体的には、異常検知制御部1053は、第1記憶装置200a又は第2記憶装置200bの何れか一方からデータを読み取ることができなかった場合に、データを読み取ることができなかった記憶領域に異常があると判定する。そして、異常検知制御部1053は、ベリファイ処理結果をリビルド制御部1054に出力する。
【0040】
また、異常検知制御部1053は、リビルド制御部1054が後述するリビルド処理を実行した場合に、再度異常検知処理を実行する。すなわち、異常検知制御部1053は、再度のベリファイ処理によって、リビルド処理による書き込みが成功したか否かを判定する。これにより、異常検知制御部1053は、リビルド制御部1054が実行したリビルド処理により、RAID1方式を用いたストレージシステムが再構築されたか否かを確認することができる。
【0041】
なお、異常検知制御部1053は、第1記憶装置200aのデータ及び第2記憶装置200bのデータに同一のデータが正しく書き込まれている場合に、リビルド処理が成功したと判定する。そして、異常検知制御部1053は、第1記憶装置200aのデータ及び第2記憶装置200bのデータに同一のデータが書き込まれていない場合に、リビルド処理が失敗したと判定する。
【0042】
また、リビルド処理の成否は、リビルド制御部1054がリビルド処理の一環として、実行してもよい。
【0043】
第2書込手段であるリビルド制御部1054は、異常検知制御部1053から出力された異常検知処理結果が異常を示している場合に、リビルド処理を実行する。ここで、リビルド処理とは、同一のデータが記憶されていない状態から同一のデータが記憶されている状態にストレージシステムを再構築する処理である。すなわち、リビルド処理とは、複数ある記憶装置のうち、一の記憶装置の異常を検知した場合に、他の記憶装置に記憶されたデータを一の記憶装置に書き込む処理である。具体的には、リビルド処理とは、例えば、第1記憶装置200aに異常が検知された場合には、第2記憶装置200bのデータを第1記憶装置200aに書き込む処理等である。なお、リビルド制御部1054は、操作者から操作が無くても自動的にリビルド処理を実行するバックグラウンドプロセスとしてリビルド処理を実行する。
【0044】
なお、リビルド制御部1054は、再度の異常検知処理結果が異常を示している場合においても、再度リビルド処理を実行する。このように、リビルド制御部1054が複数回リビルド処理を実行することで、異常検知制御部1053は、ストレージシステムに異常があるか否かを入念に判定することができる。
【0045】
ステータス制御部1055は、異常検知制御部1053が実行したベリファイ処理結果に基づいて、POS端末10のストレージシステムを保守する必要がある状態か否かの判定処理を制御する。具体的には、計測手段であるステータス制御部1055は、リビルド制御部1054がリビルド処理を実行した回数を計測することで、POS端末10のストレージシステムを保守する必要がある状態か否かを判定する。
【0046】
ステータス制御部1055は、リビルド制御部1054が規定回数のリビルド処理を実行する前に、異常検知制御部1053が異常検知処理で異常を検知した場合には、RAID1方式を用いたストレージシステムは正常に機能していると判定する。一方、判定手段であるステータス制御部1055は、リビルド制御部1054が規定回数のリビルド処理を実行した後に、異常検知制御部1053が異常検知処理で異常を検知した場合に、RAID1方式を用いたストレージシステムに異常があるため保守する必要があると判定する。また、ステータス制御部1055は、累積カウンタ1055aと、連続カウンタ1055bと、RAIDステータス1055cとを備える。
【0047】
累積カウンタ1055aは、リビルド制御部1054が実行したリビルド処理の累積の回数を計測するカウンタである。すなわち、ステータス制御部1055は、リビルド制御部1054がリビルド処理を実行した場合にカウントアップする。そして、ステータス制御部1055は、累積カウンタ1055aの計測回数が規定回数となった後に、異常検知制御部1053が異常を検知した場合に、RAID1方式を用いたストレージシステムに異常があるため保守する必要があると判定する。なお、累積カウンタ1055aの規定回数は、任意の値を設定することができる。そして、累積カウンタ1055aの規定回数は、例えば、10回を設定することが妥当であると考えられる。
【0048】
連続カウンタ1055bは、異常検知制御部1053がストレージシステムは正常であると判定するまでに、リビルド制御部1054が実行したリビルド処理の連続の回数を計測するカウンタである。すなわち、ステータス制御部1055は、異常検知制御部1053が第1記憶装置200a及び第2記憶装置200bは正常であると判定するまでに、リビルド制御部1054がリビルド処理を実行した場合にカウントアップする。そして、再度のベリファイ処理において、正常であると判定された場合に、ステータス制御部1055は、連続カウンタ1055bを初期値にクリアする。また、ステータス制御部1055は、連続カウンタ1055bの計測回数が規定回数となった後に、異常検知制御部1053が異常を検知した場合に、RAID1方式を用いたストレージシステムに異常があるため保守する必要があると判定する。なお、連続カウンタ1055bの規定回数は、任意の値を設定することができる。そして、連続カウンタ1055bの規定回数は、例えば、3から5回を設定することが妥当であると考えられる。
【0049】
RAIDステータス1055cは、RAID1方式を用いたストレージシステムが正常に機能しているか否かのステータスを記憶する。すなわち、RAIDステータス1055cは、第1記憶装置200aに書き込まれたデータと同一のデータが、第2記憶装置200bに書き込まれている状態であるか否かを記憶する。そして、ステータス制御部1055は、累積カウンタ1055aと、連続カウンタ1055bとの少なくとも何れか一方が異常であると判定した場合に、RAIDステータス1055cに異常を設定する。
【0050】
次に、上述した実施形態に係るPOS端末10のRAIDコントローラ105が実行する異常検知処理について説明する。ここで、異常検知処理とは、RAID1であるにも関わらず複数の記憶装置に同一のデータが書き込まれていない異常を検知する処理である。例えば、異常検知処理とは、第1記憶装置200aに記憶されたデータと同一のデータが、第2記憶装置200bに書き込まれているか否かを判定するベリファイ処理である。
【0051】
図4は、POS端末10のRAIDコントローラ105が実行する異常検知処理の流れを示すフローチャートである。なお、
図4に示すフローチャートにおいて、第1記憶装置200a及び第2記憶装置200bには、既にデータが書き込まれているものとする。
【0052】
まず、RAIDコントローラ105(異常検知制御部1053)は、CPU101からベリファイ要求が入力されるか否かを判定する(ステップS11)。ベリファイ要求が入力されない場合に(ステップS11;No)、RAIDコントローラ105(異常検知制御部1053)は、ベリファイ処理を待機する。
【0053】
一方、ベリファイ要求が入力された場合に(ステップS11;Yes)、RAIDコントローラ105(異常検知制御部1053)は、ベリファイ処理を実行する(ステップS12)。
【0054】
次いで、RAIDコントローラ105(異常検知制御部1053)は、ベリファイ処理の結果が異常であったか否かを判定する(ステップS13)。ベリファイ処理の結果が正常であった場合に(ステップS13;No)、RAIDコントローラ105(異常検知制御部1053)は、ステップS11に移行する。
【0055】
一方、ベリファイ処理の結果が異常であった場合に(ステップS13;Yes)、RAIDコントローラ105(ステータス制御部1055)は、累積カウンタ1055aの計測回数が規定回数未満であるか否かを判定する(ステップS14)。
【0056】
累積カウンタ1055aの計測回数が規定回数以上である場合に(ステップS14;No)、RAIDコントローラ105(ステータス制御部1055)は、ステップS21に移行する。
【0057】
一方、累積カウンタ1055aの計測回数が規定回数未満である場合に(ステップS14;Yes)RAIDコントローラ105(ステータス制御部1055)は、累積カウンタ1055aをカウントアップする(ステップS15)。
【0058】
次いで、RAIDコントローラ105(ステータス制御部1055)は、連続カウンタ1055bの計測回数が規定回数未満であるか否かを判定する(ステップS16)。連続カウンタ1055bの計測回数が規定回数以上である場合に(ステップS16;No)、RAIDコントローラ105(ステータス制御部1055)は、ステップS21に移行する。
【0059】
一方、連続カウンタ1055bの計測回数が規定回数未満である場合に(ステップS16;Yes)、RAIDコントローラ105(ステータス制御部1055)は、連続カウンタ1055bをカウントアップする(ステップS17)。
【0060】
次いで、RAIDコントローラ105(リビルド制御部1054)は、リビルド処理を実行する(ステップS18)。
【0061】
次いで、RAIDコントローラ105(リビルド制御部1054)は、リビルド処理が成功したか否かを判定する(ステップS19)。リビルド処理が失敗した場合に(ステップS19;No)、RAIDコントローラ105(リビルド制御部1054)は、ステップS16に移行する。
【0062】
リビルド処理が成功した場合に(ステップS19;Yes)、RAIDコントローラ105(ステータス制御部1055)は、連続カウンタ1055bを初期値にクリアする(ステップS20)。そして、RAIDコントローラ105は、ステップS11に移行する。
【0063】
そして、累積カウンタ1055a又は連続カウンタ1055bの計測回数が規定回数以上である場合に、RAIDコントローラ105(ステータス制御部1055)は、RAIDステータス1055cに異常を設定する(ステップS21)。
【0064】
以上により、RAIDコントローラ105は、異常検知処理を実行する。
【0065】
次に、上述した実施形態に係るPOS端末10のRAIDコントローラ105が実行する報知処理について説明する。ここで、報知処理とは、RAIDステータス1055cが異常を示している場合に報知する処理である。
【0066】
図5は、POS端末10のCPU101がプログラムに従って実行する報知処理の流れを示すフローチャートである。
【0067】
まず、CPU101(報知制御部1014)は、RAIDステータス1055cを読み取る(ステップS31)。
【0068】
次いで、CPU101(報知制御部1014)は、読み取ったRAIDステータス1055cが異常を示すステータスであるか否かを判定する(ステップS32)。RAIDステータス1055cが正常を示すステータスである場合に(ステップS32;No)、CPU101(報知制御部1014)は、ステップS31に移行する。
【0069】
RAIDステータス1055cが異常を示すステータスである場合に(ステップS32;Yes)、CPU101(報知制御部1014)は、報知する(ステップS33)。
【0070】
以上により、CPU101は、報知処理を実行する。
【0071】
以上のように、本実施形態に係るPOS端末10によれば、書込制御部1051は、第1記憶装置200a及び第2記憶装置200bにRAID1方式によるミラーリングを実行する。そして、リビルド制御部1054は、異常検知制御部1053が実行したベリファイ処理結果が異常であることを示している場合に、リビルド処理を実行する。この時、ステータス制御部1055は、累積カウンタ1055a又は連続カウンタ1055bが規定回数となった後に、異常検知制御部1053が異常を検知した場合に、保守する必要があると判定する。そして、報知制御部1014は、保守する必要があることを報知する報知画面を第1表示部15に表示させる等により報知する。よって、RAID1方式における偶発的な不一致を排除して異常を検出した後、保守する必要があることを報知するようにしたので、サービスマンの負担を軽減することができる。
【0072】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0073】
なお、上述の実施形態において、電子機器をPOS端末10に適用した場合を例に説明している。しかしながら、電子機器は、他の機器に対しても適用することができる。例えば、サーバ装置や、パーソナルコンピュータなどに適用してもよい。
【0074】
なお、上述の実施形態において、第1記憶装置200a及び第2記憶装置200bは、予備の記憶媒体を備えていてもよい。この場合において、第1記憶装置200a又は第2記憶装置200bの一部の記憶媒体が故障した場合には、リビルド制御部1054は、故障部分ではなく予備の記憶媒体にデータを書き込んでもよい。これにより、リビルド制御部1054は、第1記憶装置200a及び第2記憶装置200bに同一のデータを書き込むことができる。すなわち、異常検知制御部1053は、RAID1方式を用いたストレージシステムが正常に機能していると判定することができる。
【0075】
上記実施形態や変形例の各装置で実行されるプログラムは、各装置が備える記憶媒体(ROM又は記憶部)に予め組み込んで提供するものとするが、これに限らないものとする。例えば、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成してもよい。さらに、記憶媒体は、コンピュータ或いは組み込みシステムと独立した媒体に限らず、LANやインターネット等により伝達されたプログラムをダウンロードして記憶又は一時記憶した記憶媒体も含まれる。
【0076】
また、上記実施形態や変形例の各装置で実行されるプログラムをインターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよいし、インターネット等のネットワーク経由で提供又は配布するように構成してもよい。