(57)【特許請求の範囲】
【請求項１】
プログラムを記憶するメモリと、
電力供給の遮断を検知する電力遮断検知部と、
前記プログラムを実行する制御部とを備え、
前記制御部は、前記メモリに記憶されているプログラムを更新する更新手段と、
前記更新手段が前記プログラムの更新中に電力供給の遮断を検知したとき、更新中のプログラムを先頭から消去する消去手段と、
を含む情報処理装置。
【請求項２】
前記プログラムを記憶する第２記憶手段を備え、
前記制御部は、起動時に前記メモリのプログラムを読み出しできなかったとき、前記第２記憶手段のプログラムを読み出し、
前記第２記憶手段には、前記更新手段を実現するプログラムが記憶されている請求項１に記載の情報処理装置。
【請求項３】
前記更新手段は、更新処理が終了した後に再起動を実行する請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記消去手段は、前記メモリの少なくともヘッダ情報を消去する請求項１乃至請求項３のいずれかに記載の情報処理装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載の情報処理装置を内蔵したカラオケ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置に関し、特にメモリの更新時の処理に関する。
【背景技術】
【０００２】
従来、メモリ（ＲＯＭ）の内容を書き換える動作中に電力供給が遮断されると、データ内容の更新が途中で中断されるため、再起動後に誤動作が発生する。
【０００３】
そこで、書き換え中のステータスを保存して、再起動後も書き換えを続行するもの（特許文献１）が提案されている。
【０００４】
また、ＲＯＭ上にバックアップをコピーしておき、異常を検知した場合にはバックアップを読み出すこと等も行われている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−１２６９１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、ステータスを保存する場合も、そのステータスそのものが正しい内容であることを保証する必要がある。また、更新処理時の動作が複雑化する問題もある。
【０００７】
ＲＯＭ上にバックアップを保存する方式では、ＲＯＭ上に余分な保存領域が必要となる。また、バックアップを作成するときに電力が遮断された場合、バックアップまで異常なデータとなってしまう。
【０００８】
さらに、ヘッダ情報（データ管理領域）だけ正しく更新され、データ本体部分が異常であった場合等、ヘッダ情報そのものは正しい状態であるため、異常を検知することが難しい。
【０００９】
そこで、この発明は、複雑な処理や余分な保存領域を必要とせずに、ＲＯＭ更新時に電力供給が遮断された場合の誤動作を防止する情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この発明の情報処理装置は、メモリ、電力遮断検知部、および制御部を備えている。メモリは、プログラム（ブートローダやシステムプログラム）を記憶するＲＯＭである。電力遮断検知部は、電源ユニットの電力供給状態を検知し、電力供給の遮断を検知する。制御部は、更新手段および消去手段を含み、更新手段は、プログラム更新処理を行う。電源ユニットは、コンデンサに電力が蓄えてから機器に電力を供給するため、電力供給遮断後も所定時間（数十ｍｓｅｃ．）程度は制御部が動作可能な状態にある。消去手段は、プログラム更新処理中に電源遮断を検知したとき、更新中のプログラムを先頭から消去する。プログラムを先頭から消去することで、ヘッダ情報が存在しない状態となり、再起動したとき、制御部がＲＯＭ上のデータを読み出せない状態となる。したがって、余分な保存領域も必要なく、異常を検知するための仕組みや、更新処理時の動作が複雑化する必要もなく、誤動作を防止することができる。
【００１１】
ＣＰＵは、ブートローダを読み出せない場合、次の記憶手段（ＨＤＤ等）を読み出すように構成されているものがあるため、ＨＤＤ等に修復用のプログラム（更新用プログラム）を記憶しておけば、再起動時に修復することが可能となる。
【発明の効果】
【００１２】
この発明によれば、複雑な処理や余分な保存領域を必要とせずに、ＲＯＭ更新時に電力供給が遮断された場合の誤動作を防止することができる。
【図面の簡単な説明】
【００１３】
【図１】情報処理装置の構成を示すブロック図である。
【図２】更新処理時の動作を示すフローチャートである。
【図３】ＲＯＭに記憶されているデータ構造を示す図である。
【図４】起動時の動作を示すフローチャートである。
【発明を実施するための形態】
【００１４】
図１は、本発明の実施形態に係る情報処理装置の構成を示すブロック図である。本実施形態に示す情報処理装置は、例えばカラオケ装置等の組み込みシステムである。
【００１５】
同図に示す情報処理装置３は、ネットワークインタフェース（Ｉ／Ｆ）３１、バス３２、ＣＰＵ３３、ＲＡＭ３４、ＲＯＭ３５、ＨＤＤ３６、電力遮断検知部３７、および電源ユニット３８を備えている。
【００１６】
装置全体の動作を制御するＣＰＵ３３には、バス３２を介してネットワークＩ／Ｆ３１、ＲＡＭ３４、ＲＯＭ３５、ＨＤＤ３６、電力遮断検知部３７、および電源ユニット３８が接続されている。
【００１７】
ＣＰＵ３３は、ＲＯＭ３５やＨＤＤ３６に記憶されている各種プログラムをＲＡＭ３４に展開し、種々の処理を行う。
【００１８】
ＲＯＭ３５は、本発明のメモリに相当する構成であり、フラッシュＲＯＭで構成されている。ＲＯＭ３５には、システムプログラム（ＯＳ）や、このＯＳを展開するための起動用プログラム（ブートローダ）が記憶されている。ＯＳは、ＲＯＭ３５やＨＤＤ３６に記憶されている多種多様なアプリケーションプログラムの起動を行うプログラムである。情報処理装置３がカラオケ装置に内蔵されたものである場合、アプリケーションプログラムには、シーケンスプログラムが含まれている。シーケンスプログラムは、カラオケ演奏用の楽曲データ（ＭＩＤＩデータ）に基づいた楽音の発生や映像の再生を行うものである。
【００１９】
ＣＰＵ３３は、起動時にＲＯＭ３５上の先頭アドレスを読み出すように設定されており、ＲＯＭ３５の先頭アドレスにはブートローダが記憶されている（実際にはブートローダのヘッダ情報が記憶されている）。ブートローダが起動することによりＯＳが起動され、ＣＰＵ３３は、種々の動作を実行することができる。
【００２０】
ＨＤＤ３６は、本発明の第２記憶手段に相当する構成であり、ＣＰＵ３３の動作用プログラムを各種記憶している。情報処理装置３がカラオケ装置である場合、カラオケ演奏用の楽曲データ等も記憶される。ＨＤＤ３６にもシステムプログラム（ＯＳ）や、このＯＳを展開するためのブートローダが記憶されている。ＣＰＵ３３は、起動時にＲＯＭ３５の先頭アドレスを読み出すように構成されているが、この先頭アドレスにデータが存在しない（ヘッダ情報が読み出せない）場合、次にＨＤＤ３６の所定アドレス（ブートローダが記憶された領域）を読み出すように構成されている。
【００２１】
また、ＨＤＤ３６には、更新用プログラムが記憶される。更新用プログラムは、ネットワークＩ／Ｆ３１を介してセンタ２からＨＤＤ３６にダウンロードされる。ＣＰＵ３３は、ＯＳによりこの更新用プログラムを実行し、ＲＯＭ３５を書き換える更新処理を実行する。ＨＤＤ３６に記憶されているブートローダおよびＯＳは、ＲＯＭ３５に記憶されているブートローダおよびＯＳとデータ構造上は同じであるが、ＨＤＤ３６のＯＳが起動されるときは、最新の更新用プログラムを読み出すように構成されており、ＲＯＭ３５のデータを所定の状態（所定バージョン）に更新するように構成されている。
【００２２】
本実施形態の情報処理装置３は、ＲＯＭ３５の更新処理時に電源ユニット３８の電力供給が遮断された場合（コンセントが外された場合や、バッテリが切れた場合等）、電力遮断検知部３７が電力供給の遮断をＣＰＵ３３に通知し、ＣＰＵ３３は、電力の続く限り更新した領域の先頭からデータを消去することで、再起動時の誤作動を防止するものである。
【００２３】
図２は、更新処理時のＣＰＵ３３の動作を示すフローチャートである。更新処理は、例えばセンタ２から更新用プログラムがダウンロードされた後、センタ２からプログラム更新コマンドが送信されることにより実行される。無論、ユーザや管理者が手動で実行する態様も可能である。通常動作時（ＲＯＭ３５のＯＳを起動している状態）においては、ダウンロードされた更新用プログラムは、ＨＤＤ３６にいったん記憶され、ＲＡＭ３４に展開されて実行される。
【００２４】
ＣＰＵ３３は、プログラム更新コマンドを受信すると、更新用プログラムを実行してプログラム更新処理、すなわちＲＯＭ３５を書き換える処理を行う（ｓ１１）。図３（Ａ）は、プログラム更新処理を行う前のＲＯＭ３５上のデータ構造を示す図である。ＲＯＭ３５のデータは、非更新領域と、更新用プログラムの動作により更新される領域である更新予定領域と、からなる。更新予定領域は、ヘッダ情報とデータ本体部（旧データ）とからなる。更新予定領域のデータは、ブートローダとＯＳの両方を含む。
【００２５】
ＣＰＵ３３が更新処理を進めると、図３（Ｂ）に示すように、更新領域の先頭（ヘッダ情報）から順にデータが更新される。ＣＰＵ３３は、更新領域の末尾までデータ更新を行うと（ｓ１２）、再起動を行い（ｓ１３）、動作を終える。
【００２６】
一方、ＣＰＵ３３は、更新処理の途中で電源ユニット３８の電力供給が遮断され、電力遮断検知部３７から電力供給の遮断が通知されると（ｓ１４）、電源ユニット３８からの電力供給（コンデンサに蓄えられた電力の供給）が続く限り、更新領域の先頭からデータを消去する処理を行う（ｓ１５）。データ消去処理は、例えばビットデータを全て０や１に変換する処理、あるいはランダムに上書きする処理である。
【００２７】
一般的な組み込みシステムでは、コンセントが外れたり、バッテリが切れた場合であっても、コンデンサに蓄えられた電力により、数十ｍｓｅｃ．程度の動作を行うことができる。数十ｍｓｅｃ．程度の動作が可能であれば、少なくともヘッダ情報の先頭を消去し、不正な状態とすることは可能である。
【００２８】
すると、図３（Ｃ）に示すように、ヘッダ情報および更新済みデータ本体部の所定領域は、データが消去された破壊領域となり、ＣＰＵ３３が読み出すことができないデータとなる。
【００２９】
この状況において、再び電力が供給され、情報処理装置３が起動する場合のＣＰＵ３３の動作を図４のフローチャートを用いて説明する。上述したように、ＣＰＵ３３は、電力が供給されて起動したとき、ＲＯＭ３５の先頭アドレスを読み出すように設定されている（ｓ２１）。ＲＯＭ３５が正常な状態である場合、先頭アドレスには、ブートローダのヘッダ情報が記憶されており（ｓ２２）、ＣＰＵ３３は、このヘッダ情報にしたがって、ブートローダを起動させ、ＲＯＭ３５上のＯＳを起動する（ｓ２３）。
【００３０】
しかし、上記のように、更新処理時に電力供給が遮断されると、ＲＯＭ３５のヘッダ情報が消去されているため、ＲＯＭ３５のデータを読み出すことができない。ＣＰＵ３３は、ＲＯＭ３５のデータを読み出すことができない場合、次にＨＤＤ３６の所定アドレス（ブートローダが記憶された領域）を読み出すように構成されている。したがって、ＣＰＵ３３は、ＨＤＤ３６のブートローダを読み出し、ＨＤＤ３６に記憶されているＯＳを起動させる（ｓ２４）。
【００３１】
ＨＤＤ３６に記憶されているＯＳは、更新用プログラムを実行するように構成されており、ＣＰＵ３３は、ＨＤＤ３６のＯＳ起動後、更新用プログラムを実行し、ＲＯＭ３５の更新処理を再び行う（ｓ２５）。ｓ２５におけるＲＯＭ更新処理は、図２に示した処理と同様である。ＲＯＭ３５の更新処理が終了すると、再起動がなされる。再起動後は、ＲＯＭ３５のデータが正常な状態に更新されているため、ＲＯＭ３５のＯＳが起動される。
【００３２】
なお、ＨＤＤ３６には、ＲＯＭ３５の修復専用のプログラムを記憶するように構成し、ブートローダが修復専用のプログラムを起動させるように構成してもよい。
【００３３】
以上のようにして、本実施形態の情報処理装置は、ＲＯＭ３５の更新処理中に電力供給が遮断されたとしても、少なくともヘッダ情報を消去する構成であるため、再起動時に誤ったデータを読み出すことがなく、誤作動が発生することがない。また、再起動時には、ＨＤＤ３６のＯＳを用いてＲＯＭ３５を更新（修復）するため、更新処理が正常に終了したか否かを確認する必要がなく、データ異常を検知するための仕組みも必要ない、また、バックアップ等の余分な保存領域やステータスを保存する等、更新処理時の動作が複雑化する必要もなく、誤動作を防止することができる。
【００３４】
特に、情報処理装置がカラオケ装置である場合、一度ハードウェアを設置すると、修理等で持ち出すことが困難であり、誤作動を防止する効果は大きい。また、仕様変更によるバージョンアップが頻繁になされ、ある程度頻繁にＲＯＭが更新されるため、一般的な組み込みシステムよりも本発明の動作を適用するのに好適である。
【符号の説明】
【００３５】
２…センタ
３…情報処理装置
３２…バス
３３…ＣＰＵ
３４…ＲＡＭ
３５…ＲＯＭ
３６…ＨＤＤ
３７…電力遮断検知部
３８…電源ユニット
【図１】
0005418348.tif 000002
【図２】
0005418348.tif 000003
【図３】
0005418348.tif 000004
【図４】
0005418348.tif 000005