説明

電気機器

【課題】電源が供給された際に復元すべきデータを保存する際の負担を軽減することができる、電気機器を提供することを、目的とする。
【解決手段】不揮発性メモリ34に記憶されている復元すべきデータと、揮発性メモリ18に記憶されている復元すべきデータとを直接比較せずに、不揮発性メモリ34に記憶されている復元すべきデータについての現状チェックデータと、揮発性メモリ18に記憶されている復元すべきデータについての確認チェックデータとを比較して、不揮発性メモリ34に記憶されている復元すべきデータと、揮発性メモリ18に記憶されている復元すべきデータとが一致するか否かを判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、復元すべきデータが記憶される不揮発性メモリを備えた電気機器に関する。
【背景技術】
【0002】
AV(Audio Visual)機器等の電気機器においては、電源の供給が遮断されても、次に電源が供給された際に、電気機器の状態を電源の供給が遮断される前の状態に戻すことが要求されている。例えば、特開2004−151756号公報(特許文献1)には、電源が供給された際に、EEPROM(Electrically Erasable Programmable Read-Only Memory)に保存されているバックアップデータを読み出して、マルチソースオーディオの状態を電源が遮断される前の状態に戻すマルチソースオーディオ装置用バックアップシステムが開示されている。
【0003】
ところで、EEPROM等の不揮発性メモリにおいては、データの書き込みに時間がかかってしまう。そのため、電源の供給が遮断された際に、大量のデータを不揮発性メモリに書き込むことが難しいという問題がある。
【0004】
そこで、特許文献1においては、バックアップすべきデータに影響がある操作が行われた場合に、実際の操作内容毎に必要な分量だけを不揮発性メモリに書き込むことが提案されている。
【0005】
そこにおいて、バックアップすべきデータが変化したか否かを判断する方法としては、例えば、EEPROMに保存されているバックアップデータを読み出して、オペレーションコントローラ内のワーキングRAMに記憶されているバックアップすべきデータと、EEPROMから読み出したバックアップデータとを比較する方法が考えられる。
【0006】
しかしながら、データが一致するか否かを判断する度に、シリアルインターフェイスで接続されるEEPROMからバックアップデータを読み出すのは、オペレーションコントローラにとって負担が大きくなる。
【0007】
なお、バックアップすべきデータが変化したか否かを判断する方法としては、その他にも、例えば、EEPROMに保存されているバックアップデータのコピーをワーキングRAMに記憶しておき、EEPROMに保存されているバックアップデータのコピーと、ワーキングRAMに記憶されているバックアップすべきデータとを比較する方法が考えられる。
【0008】
しかしながら、EEPROMに保存されているバックアップデータのコピーをワーキングRAMに記憶しておくには、ワーキングRAMの容量を大きくしなければならないという問題がある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2004−151756号公報
【特許文献2】特開2008−54178号公報
【発明の概要】
【発明が解決しようとする課題】
【0010】
本発明の目的は、電源が供給された際に復元すべきデータを保存する際の負担を軽減することができる、電気機器を提供することにある。
【課題を解決するための手段】
【0011】
本発明の電気機器は、データを記憶する揮発性メモリと、前記揮発性メモリに記憶されている前記データのうち、電源が供給された際に復元すべきデータを記憶する不揮発性メモリと、前記不揮発性メモリに記憶され、物理的又は仮想的に2次元状に配列されている前記復元すべきデータの各行及び各列のデータに基づいて生成された現状チェックデータを前記揮発性メモリに保存する保存手段と、前記揮発性メモリに記憶されている前記復元すべきデータの各行及び各列のデータに基づいて生成された確認チェックデータが、前記揮発性メモリに保存されている前記現状チェックデータと一致するか否かを判定する判定手段と、前記判定手段による判定結果が不一致であった場合に、前記揮発性メモリに記憶されている前記復元すべきデータのうち、前記不揮発性メモリに記憶されている前記復元すべきデータと異なるデータを特定する特定手段と、前記不揮発性メモリに記憶されている前記復元すべきデータのうち、前記特定手段によって特定されたデータに対応するデータを、前記特定手段によって特定されたデータに書き換える書換手段とを備える。
【発明の効果】
【0012】
本発明の電気機器によれば、電源が供給された際に復元すべきデータを保存する際の負担を軽減することができる。
【図面の簡単な説明】
【0013】
【図1】本発明の第1の実施形態によるAVアンプの構成を示す機能ブロック図である。
【図2】図1に示すAVアンプにおいて電源が供給された際に復元すべきデータ及び当該復元すべきデータから計算されるチェックサムについて説明するための説明図である。
【図3】図1に示すAVアンプの制御部によって実行されるバックアップデータ読み出し処理を示すフローチャートである。
【図4】図1に示すAVアンプの制御部によって実行されるY行のチェックサム計算処理を示すフローチャートである。
【図5】図1に示すAVアンプの制御部によって実行されるX列のチェックサム計算処理を示すフローチャートである。
【図6】図1に示すAVアンプの制御部によって実行される、キー操作があった場合のバックアップ処理を示すフローチャートである。
【図7】図1に示すAVアンプの制御部によって実行される、Y行のデータのうち変化したデータを保存する処理を示すフローチャートである。
【図8】図1に示すAVアンプの制御部によって実行される、X列のデータのうち変化したデータを保存する処理を示すフローチャートである。
【図9】本発明の第2の実施の形態としてのAVアンプが備える制御部によって実行される、定期的なバックアップ処理のフローチャートである。
【発明を実施するための形態】
【0014】
本発明の一実施形態に係る電気機器は、データを記憶する揮発性メモリと、前記揮発性メモリに記憶されている前記データのうち、電源が供給された際に復元すべきデータを記憶する不揮発性メモリと、前記不揮発性メモリに記憶され、物理的又は仮想的に2次元状に配列されている前記復元すべきデータの各行及び各列のデータに基づいて生成された現状チェックデータを前記揮発性メモリに保存する保存手段と、前記揮発性メモリに記憶されている前記復元すべきデータの各行及び各列のデータに基づいて生成された確認チェックデータが、前記揮発性メモリに保存されている前記現状チェックデータと一致するか否かを判定する判定手段と、前記判定手段による判定結果が不一致であった場合に、前記揮発性メモリに記憶されている前記復元すべきデータのうち、前記不揮発性メモリに記憶されている前記復元すべきデータと異なるデータを特定する特定手段と、前記不揮発性メモリに記憶されている前記復元すべきデータのうち、前記特定手段によって特定されたデータに対応するデータを、前記特定手段によって特定されたデータに書き換える書換手段とを備える(第1の構成)。
【0015】
第1の構成においては、不揮発性メモリに記憶されている復元すべきデータと、揮発性メモリに記憶されている復元すべきデータとを直接比較せずに、不揮発性メモリに記憶されている復元すべきデータについての現状チェックデータと、揮発性メモリに記憶されている復元すべきデータについての確認チェックデータとを比較して、不揮発性メモリに記憶されている復元すべきデータと、揮発性メモリに記憶されている復元すべきデータとが一致するか否か、即ち、揮発性メモリに記憶されている復元すべきデータが変化したか否かを判定している。これにより、揮発性メモリに記憶されている復元すべきデータが変化したか否かを判定する度に、不揮発性メモリから復元すべきデータを読み出す必要がなくなる。その結果、揮発性メモリに記憶されている復元すべきデータが変化したか否かを判定する際の負担を軽減することができる。
【0016】
特に、第1の構成においては、各行の現状チェックデータと確認チェックデータを比較するだけでなく、各列の現状チェックデータと確認チェックデータも比較する。これにより、各行又は各列の現状チェックデータと確認チェックデータだけを比較する場合に比して、揮発性メモリに記憶されている復元すべきデータが変化したか否かの判定の精度を向上させることができる。
【0017】
また、第1の構成においては、不揮発性メモリに記憶されている復元すべきデータのコピーを揮発性メモリに保存しておき、当該コピーと、揮発性メモリに記憶されている復元すべきデータとを比較しなくても良い。その結果、揮発性メモリの容量を必要以上に大きくする必要がなくなる。
【0018】
第2の構成は、前記第1の構成において、ユーザが操作する操作手段と、前記操作手段が操作されたか否かを判断する判断手段とを備え、前記判断手段によってユーザが前記操作手段を操作したと判断された場合に、前記判定手段による判定が行われる構成である。このような構成においては、揮発性メモリに記憶されている復元すべきデータが変化した可能性が高くなっている状態で、揮発性メモリに記憶されている復元すべきデータが変化したか否かを判定することになる。その結果、揮発性メモリに記憶されている復元すべきデータが変化したか否かを定期的に判定する場合に比して、揮発性メモリに記憶されている復元すべきデータが変化したか否かを効率良く判定することができる。
【0019】
第3の構成は、前記第1の構成において、所定時間が経過する毎に、前記判定手段による判定が行われる構成である。このような構成においては、揮発性メモリに記憶されている復元すべきデータが変化したか否かを定期的に判定することになる。
【0020】
以下、本発明のより具体的な実施形態について、図面を参照しながら説明する。図中同一又は相当部分には、同一符号を付して、その説明は繰り返さない。
【0021】
[第1の実施形態]
図1には、電気機器に係る本発明の第1の実施形態としてのAVアンプ10が示されている。AVアンプ10は、外部に接続された再生装置としてのBD(Blu-ray Disc)プレイヤ12からの音声信号及び映像信号を処理して出力するものである。
【0022】
AVアンプ10は、制御部14を備える。制御部14は、AVアンプ10の動作全体を制御する。制御部14としては、例えば、マイクロコンピュータ(マイコン)等を採用することができる。
【0023】
AVアンプ10は、ROM(Read-Only Memory)16を更に備える。ROM16は、制御部14が実行する各種制御処理のプログラムを記憶する。
【0024】
AVアンプ10は、揮発性メモリとしてのRAM(Random-Access Memory)18を更に備える。RAM18は、制御部14が各種制御処理を実行する際にROM16から読み出したプログラムと、制御部14が各種制御処理を実行する際に必要なデータとを一時的に記憶する。
【0025】
AVアンプ10は、音声処理部20を更に備える。音声処理部20は、BDプレイヤ12に接続されている。音声処理部20は、BDプレイヤ12からの音声信号を処理する。音声処理部20が行う音声処理としては、例えば、イコライザ処理、遅延処理、音声信号の合成処理、音声信号の生成処理等がある。
【0026】
AVアンプ10は、増幅部22を更に備える。増幅部22は、スピーカ24に接続されている。増幅部22は、音声処理部20からの音声信号を増幅して、スピーカ24に出力する。これにより、ユーザは音声を聴くことができる。
【0027】
AVアンプ10は、画像処理部26を更に備える。画像処理部26は、BDプレイヤ12に接続されている。画像処理部26は、BDプレイヤ12からの映像信号を処理する。画像処理部26が行う画像処理としては、例えば、解像度変換、アスペクト変換、明るさの変換等がある。
【0028】
また、画像処理部26は、ディスプレイ装置28に接続されている。画像処理部26は、ディスプレイ装置28に映像信号を出力する。これにより、ユーザは画像を見ることができる。
【0029】
AVアンプ10は、通信部30を更に備える。通信部30は、インターネットに接続されている。通信部30は、例えばインターネット上の放送局サーバ等との間で、データのやり取りをする。
【0030】
AVアンプ10は、操作部32を更に備える。操作部32は、ユーザによって操作される。ユーザが操作部32を操作することにより、AVアンプ10の設定等を変更することができる。操作部32としては、例えば、操作キー、タッチパネル等を採用することができる。
【0031】
なお、操作部32は、AVアンプ10に内蔵されているものに限定されない。例えば、リモコン等も操作部32に含まれる。
【0032】
AVアンプ10は、不揮発性メモリとしてのEEPROM(Electrically Erasable Programmable Read-Only Memory)34を備える。EEPROM34は、AVアンプ10に電源が供給された際に復元すべきデータ(以下、単に、復元すべきデータ、若しくは、データと称することがある)を記憶する。復元すべきデータとしては、例えば、音声処理部20が行う音声処理についての情報、画像処理部が行う画像処理についての情報等がある。
【0033】
EEPROM34に記憶されている復元すべきデータは、図2に示すように、n列×n行の2次元状に配列される。例えば、復元すべきデータが256バイトである場合、復元すべきデータは16列×16行の2次元状に配列される。以下、2次元状に配列された復元すべきデータのうち、X列とY行の両方に属するデータを、X列Y行の復元すべきデータといい、D(X,Y)と表記する。列番号を示す変数X及び行番号を示す変数Yの採り得る値は、それぞれ、0〜n−1(n:自然数)である。
【0034】
なお、EEPROM34に記憶されている復元すべきデータは、物理的に2次元状に配列されている必要はなく、仮想的に2次元状に配列されていても良い。EEPROM34に記憶されている復元すべきデータが物理的に2次元状に配列されているとは、例えば、EEPROM34における復元すべきデータの記憶エリアがn列×n行のマトリクス状に形成されていることをいう。一方、EEPROM34に記憶されている復元すべきデータが仮想的に2次元状に配列されているとは、例えば、EEPROM34における復元すべきデータの記憶エリアそのものはばらばらであるが、n列×n行のマトリクス状に仮想的に形成された記憶領域のそれぞれのアドレスが、EEPROM34における復元すべきデータの記憶エリアのアドレスと対応していることをいう。以下の説明において、2次元状に配列されているとは、物理的に2次元状に配列されている場合と、仮想的に2次元状に配列されている場合のどちらであっても良いものとする。
【0035】
EEPROM34に記憶されている復元すべきデータは、RAM18にも記憶される。RAM18においても、復元すべきデータはn列×n行の2次元状に配列される。EEPROM34におけるX列Y行の復元すべきデータと、RAM18におけるX列Y行の復元すべきデータとは、同じである。そこで、以下の説明においては、RAM18に記憶されているX列Y行の復元すべきデータの表記を、EEPROM34に記憶されているX列Y行の復元すべきデータの表記と同じにする。
【0036】
また、RAM18には、EEPROM34に記憶されている復元すべきデータの現状チェックサム(現状チェックデータ)が記憶される。
【0037】
現状チェックサムとしては、図2に示すように、列の現状チェックサムと、行の現状チェックサムとがある。以下、X列の現状チェックサムをC(X)と表記し、Y行の現状チェックサムをR(Y)と表記する。
【0038】
列の現状チェックサムは、EEPROM34において2次元状に配列された復元すべきデータの各列毎に計算される。各列の現状チェックサムは、各列に含まれる復元すべきデータの和である。例えば、X列の現状チェックサムC(X)は、下式(1)によって計算される。
C(X)=D(X,0)+D(X,1)+・・・+D(X,n−1)・・・(1)
【0039】
行の現状チェックサムは、EEPROM34において2次元状に配列された復元すべきデータの各行毎に計算される。各行の現状チェックサムは、各行に含まれる復元すべきデータの和である。例えば、Y行の現状チェックサムR(Y)は、下式(2)によって計算される。
R(Y)=D(0,Y)+D(1,Y)+・・・+D(n−1,Y)・・・(2)
【0040】
また、RAM18には、RAM18に記憶されている復元すべきデータの確認チェックサムが記憶される。この確認チェックサムとしては、行の確認チェックサムと、列の確認チェックサムとがある。確認チェックサムは、現状チェックサムと同じ計算方法によって計算される。そこで、以下の説明においては、確認チェックサムの表記を、現状チェックサムの表記と同じにする。
【0041】
続いて、このようなAVアンプ10の制御部14によって実行される各種制御処理のうち、復元すべきデータのバックアップ処理に関する制御処理について説明する。
【0042】
最初に、図3に示すフローチャートを参照して、制御部14が実行するバックアップデータ読み出し処理について説明する。バックアップデータ読み出し処理は、AVアンプ10に電源が供給された際に実行される。
【0043】
先ず、制御部14は、ステップ(以下、Sとする)1において、変数Yに0を代入する。次に、制御部14は、S2において、変数Xに0を代入する。
【0044】
続いて、制御部14は、S3において、EEPROM34に記憶されている復元すべきデータのうち、X列Y行のデータD(X、Y)をEEPROM34から読み出して、読み出したデータを、RAM18におけるX列Y行のデータD(X,Y)として、RAM18に保存する。
【0045】
次に、制御部14は、S4において、変数Xに代入されている数値をインクリメントする。続いて、制御部14は、S5において、変数Xがnであるか否かを判定する。
【0046】
変数Xがnでない場合(S5:NO)、制御部14は、S3以降の処理を実行する。変数Xがnである場合(S5:YES)、制御部14は、S6において、変数Yに代入されている数値をインクリメントする。
【0047】
次に、制御部14は、S7において、変数Yがnであるか否かを判定する。変数Yがnでない場合(S7:NO)、制御部14は、S2以降の処理を実行する。変数Yがnである場合(S7:YES)、制御部14は、S8において、変数Yに0を代入する。
【0048】
続いて、制御部14は、S9において、Y行の現状チェックサムを計算する。Y行の現状チェックサムを計算する処理(図4のフローチャートを参照)については、後述する。
【0049】
次に、制御部14は、S10において、変数Yに代入されている数値をインクリメントする。続いて、制御部14は、S11において、変数Yがnであるか否かを判定する。
【0050】
変数Yがnでない場合(S11:NO)、制御部14は、S9以降の処理を実行する。変数Yがnである場合(S11:YES)、制御部14は、S12において、変数Xに0を代入する。
【0051】
次に、制御部14は、S13において、X列の現状チェックサムを計算する。X列の現状チェックサムを計算する処理(図5のフローチャート参照)については、後述する。
【0052】
続いて、制御部14は、S14において、変数Xに代入されている数値をインクリメントする。次に、制御部14は、S15において、変数Xがnであるか否かを判定する。
【0053】
変数Xがnでない場合(S15:NO)、制御部14は、S13以降の処理を実行する。変数Xがnである場合(S15:YES)、制御部14は、バックアップデータ読み出し処理を終了する。
【0054】
次に、図4に示すフローチャートを参照して、Y行の現状チェックサムを計算する処理について説明する。
【0055】
先ず、制御部14は、S21において、変数Rに0を格納する。次に、制御部14は、S22において、変数Xに0を代入する。
【0056】
続いて、制御部14は、S23において、変数Rに格納されている値にX列Y行のデータD(X,Y)を加算する。次に、制御部14は、S24において、変数Xに代入されている数値をインクリメントする。
【0057】
続いて、制御部14は、S25において、変数Xがnであるか否かを判定する。変数Xがnでない場合(S25:NO)、制御部14は、S23以降の処理を実行する。
【0058】
一方、変数Xがnである場合(S25:YES)、制御部14は、S26において、計算した値(変数Rに格納されている値)を、EEPROM34に記憶されている復元すべきデータのY行の現状チェックサムR(Y)として、RAM18に保存する。その後、制御部14は、Y行の現状チェックサムを計算する処理を終了する。
【0059】
次に、図5に示すフローチャートを参照して、X列の現状チェックサムを計算する処理について説明する。
【0060】
先ず、制御部14は、S31において、変数Cに0を格納する。次に、制御部14は、S32において、変数Yに0を代入する。
【0061】
続いて、制御部14は、S33において、変数Cに格納されている値にX列Y行のデータD(X,Y)を加算する。次に、制御部14は、S34において、変数Yに代入されている数値をインクリメントする。
【0062】
続いて、制御部14は、S35において、変数Yがnであるか否かを判定する。変数Yがnでない場合(S35:NO)、制御部14は、S33以降の処理を実行する。
【0063】
一方、変数Yがnである場合(S35:NO)、制御部14は、S36において、計算した値(変数Cに格納されている値)を、EEPROM34に記憶されている復元すべきデータのX列の現状チェックサムC(X)として、RAM18に保存する。その後、制御部14は、X列の現状チェックサムを計算する処理を終了する。
【0064】
次に、図6に示すフローチャートを参照して、ユーザによる操作があった場合のバックアップ処理について説明する。
【0065】
先ず、制御部14は、S41において、ユーザによる操作があったか否かを判定する。ユーザによる操作がなかった場合(S41:NO)、制御部14は、ユーザによる操作があるまで待つ。ユーザによる操作があった場合(S41:YES)、制御部14は、S42において、変数Yに0を代入する。
【0066】
次に、制御部14は、S43において、RAM18に記憶されている復元すべきデータのY行の確認チェックサム(確認チェックデータ)を計算して、計算した値を変数rに格納する。Y行の確認チェックサムを計算する処理は、図4のフローチャートを参照して説明した、Y行の現状チェックサムを計算する処理と同じであるから、その説明は省略する。
【0067】
続いて、制御部14は、S44において、S43で計算したY行の確認チェックサム(変数rに格納されている値)が、EEPROM34に保存されているY行の現状チェックサムR(Y)と一致するか否かを判定する。一致する場合(S44:YES)、制御部14は、後述するS46以降の処理を実行する。
【0068】
一致しない場合(S44:NO)、制御部14は、S45において、Y行のデータを保存する。Y行のデータを保存する処理(図7のフローチャートを参照)については、後述する。
【0069】
次に、制御部14は、S46において、変数Yに代入されている値をインクリメントする。続いて、制御部14は、S47において、変数Yがnであるか否かを判定する。
【0070】
変数Yがnでない場合(S47:NO)、制御部14は、S43以降の処理を実行する。変数Yがnである場合(S47:YES)、制御部14は、S48において、変数Xに0を代入する。
【0071】
次に、制御部14は、S49において、RAM18に記憶されている復元すべきデータのX列の確認チェックサムを計算して、計算した値を変数cに格納する。なお、X列の確認チェックサムを計算する処理は、図5のフローチャートを参照して説明した、X列の現状チェックサムを計算する処理と同じであるから、その説明は省略する。
【0072】
続いて、制御部14は、S50において、S49で計算したX列の確認チェックサム(変数cに格納されている値)が、EEPROM34に保存されているX列の現状チェックサムC(X)と一致するか否かを判定する。一致する場合(S50:YES)、制御部14は、後述するS52以降の処理を実行する。
【0073】
一致しない場合(S50:NO)、制御部14は、S51において、X列のデータを保存する。X列のデータを保存する処理については、後述する。
【0074】
次に、制御部14は、S52において、変数Xに代入されている数値をインクリメントする。続いて、制御部14は、S53において、変数Xがnであるか否かを判定する。
【0075】
変数Xがnでない場合(S53:NO)、制御部14は、S49以降の処理を実行する。変数Xがnである場合(S53:YES)、制御部14は、ユーザによる操作があった場合のバックアップ処理を終了する。
【0076】
続いて、図7に示すフローチャートを参照して、Y行のデータのうち変化したデータを保存する処理について説明する。
【0077】
先ず、制御部14は、S71において、変数Xに0を代入する。続いて、制御部14は、S72において、X列Y行に該当する復元すべきデータをEEPROM34から読み出して、読み出した復元すべきデータを変数mに格納する。
【0078】
次に、制御部14は、S73において、RAM18に記憶されている復元すべきデータのうち、X列Y行に該当する復元すべきデータを変数dに格納する。続いて、制御部14は、S74において、変数mと変数dが一致するか否かを判定する。
【0079】
一致する場合(S74:YES)、制御部14は、後述するS78以降の処理を実行する。一致しない場合(S74:NO)、制御部14は、S75において、変数dに格納されているデータをEEPROM34に保存する。
【0080】
続いて、制御部14は、S76において、X列の現状チェックサムC(X)を計算する。具体的には、RAM18に保存されているX列の現状チェックサムC(X)から変数mに格納されているデータを減算した後、変数dに格納されているデータを加算する。
【0081】
次に、制御部14は、S77において、Y行の現状チェックサムR(Y)を計算する。具体的には、RAM18に保存されているY行の現状チェックサムR(Y)から変数mに格納されているデータを減算した後、変数dに格納されているデータを加算する。
【0082】
続いて、制御部14は、S78において、変数Xに代入されている数値をインクリメントする。次に、制御部14は、S79において、変数Xがnであるか否かを判定する。
【0083】
変数Xがnでない場合(S79:NO)、制御部14は、S72以降の処理を実行する。変数Xがnである場合(S79:YES)、制御部14は、Y行のデータのうち変化したデータを保存する処理を終了する。
【0084】
続いて、図8に示すフローチャートを参照して、X列のデータのうち変化したデータを保存する処理について説明する。
【0085】
先ず、制御部14は、S81において、変数Yに0を代入する。続いて、制御部14は、S82において、X列Y行に該当する復元すべきデータをEEPROM34から読み出して、読み出した復元すべきデータを変数mに格納する。
【0086】
次に、制御部14は、S83において、RAM18に記憶されている復元すべきデータのうち、X列Y行に該当する復元すべきデータを変数dに格納する。続いて、制御部14は、S84において、変数mと変数dが一致するか否かを判定する。
【0087】
一致する場合(S84:YES)、制御部14は、後述するS88以降の処理を実行する。一致しない場合(S84:NO)、制御部14は、S85において、変数dに格納されているデータをEEPROM34に保存する。
【0088】
続いて、制御部14は、S86において、Y行の現状チェックサムR(Y)を計算する。具体的には、RAM18に保存されているY行の現状チェックサムR(Y)から変数mに格納されているデータを減算した後、変数dに格納されているデータを加算する。
【0089】
次に、制御部14は、S87において、X列の現状チェックサムC(X)を計算する。具体的には、RAM18に保存されているX列の現状チェックサムC(X)から変数mに格納されているデータを減算した後、変数dに格納されているデータを加算する。
【0090】
続いて、制御部14は、S88において、変数Yに代入されている数値をインクリメントする。次に、制御部14は、S89において、変数Yがnであるか否かを判定する。
【0091】
変数Yがnでない場合(S89:NO)、制御部14は、S82以降の処理を実行する。変数Yがnである場合(S89:YES)、制御部14は、X列のデータのうち変化したデータを保存する処理を終了する。
【0092】
このようなAVアンプ10においては、電源がONになると、先ず、EEPROM34に保存されている復元すべきデータが順次読み出されて、RAM18に書き込まれる(S2〜S6)。EEPROM34に保存されている復元すべきデータの全てがRAM14に書き込まれたら(S7:YES)、EEPROM34に保存されている復元すべきデータについての行の現状チェックサムが順次計算されて、RAM18に保存される(S8〜S11)。行の現状チェックサムの全てがRAM18に保存されたら(S11:YES)、EEPROM34に保存されている復元すべきデータについての列の現状チェックサムが順次計算されて、RAM18に保存される(S12〜S15)。
【0093】
そこにおいて、AVアンプ10では、ユーザによって何等かの操作が行われた場合(S41:YES)、RAM18に記憶されている復元すべきデータのバックアップ処理が行われる。具体的には、先ず、RAM18に記憶されている復元すべきデータについての行の確認チェックサムが計算される度に、確認チェックサムと、RAM18に保存されている現状チェックサムとが一致するか否かが確認される(S43、S44)。そして、確認チェックサムと現状チェックサムとが一致しなければ(S44:NO)、確認チェックサムと現状チェックサムとが一致しなかった行に含まれるデータが1つずつ確認される(S71〜S74、S78、S79)。変化したデータが見つかったら(S74:NO)、変化したデータはEEPROM34に書き込まれる(S75)。その後、列のチェックサムが計算されて、変化したデータが見つかった列の現状チェックサムとして、RAM18に保存される(S76)。行のチェックサムも計算されて、変化したデータが見つかった行の現状チェックサムとして、RAM18に保存される(S77)。
【0094】
RAM18に記憶されている復元すべきデータについての行の確認チェックサムが全て計算されているのであれば(S47:YES)、今度は、RAM18に記憶されている復元すべきデータについての列の確認チェックサムが計算される度に、確認チェックサムと、RAM18に保存されている現状チェックサムとが一致するか否かが確認される(S49、S50)。そして、確認チェックサムと現状チェックサムとが一致しなければ(S50:NO)、確認チェックサムと現状チェックサムとが一致しなかった列に含まれるデータが1つずつ確認される(S81〜S84、S88、S89)。変化したデータが見つかったら(S84:NO)、変化したデータはEEPROM34に書き込まれる(S85)。その後、行のチェックサムが計算されて、変化したデータが見つかった行の現状チェックサムとして、RAM18に保存される(S86)。列のチェックサムも計算されて、変化したデータが見つかった列の現状チェックサムとして、RAM18に保存される(S87)。
【0095】
上述の説明から明らかなように、本実施形態では、制御部14がS9、S13、S76、S77、S86,S87のうち何れかの処理を実行することによって、保存手段が実現されている。また、本実施形態では、制御部14がS44、S50の何れかの処理を実行することによって、判定手段が実現されている。また、本実施形態では、制御部14が、S74、S84の何れかにおいて、変数mと変数dとが一致しないと判定することによって、特定手段が実現されている。また、本実施形態では、制御部14がS75、S85の何れかの処理を実行することによって、書換手段が実現されている。
【0096】
このようなAVアンプ10においては、EEPROM34に記憶されている復元すべきデータについての現状チェックサムと、RAM18に記憶されている復元すべきデータについての確認チェックサムとを比較して、RAM18に記憶されている復元すべきデータが変化したか否かを判定している。これにより、RAM18に記憶されている復元すべきデータが変化したか否かを判定する度に、EEPROM34から復元すべきデータを読み出す必要がなくなる。その結果、RAM18に記憶されている復元すべきデータが変化したか否かを判定する際の制御部14の負担を軽減することができる。
【0097】
従って、AVアンプ10においては、処理能力が低い制御部14であっても、RAM18に記憶されている復元すべきデータが変化したか否かの判定を効率良く行わせることができる。
【0098】
特に、AVアンプ10においては、各行の現状チェックサムと確認チェックサムを比較するだけでなく、各列の現状チェックサムと確認チェックサムも比較する。これにより、各行の現状チェックサムと確認チェックサムを比較するだけでは見つけることができないようなデータの変化も見つけることができる。その結果、RAM18に記憶されている復元すべきデータが変化したか否かの判定精度を向上させることが可能となる。
【0099】
また、AVアンプ10においては、EEPROM34に記憶されている復元すべきデータのコピーをRAM18に保存しておき、EEPROM34に記憶されている復元すべきデータのコピーと、RAM18に記憶されている復元すべきデータとを比較して、RAM18に記憶されている復元すべきデータが変化したか否かを判定する必要がなくなる。その結果、RAM18の容量を必要以上に大きくしなくても良い。
【0100】
また、AVアンプ10においては、ユーザによって何等かの処理が行われた場合に、RAM18に記憶されている復元すべきデータが変化したか否かが判定される。即ち、RAM18に記憶されている復元すべきデータが変化した可能性が高い状態で、RAM18に記憶されている復元すべきデータが変化したか否かが判定される。その結果、RAM18に記憶されている復元すべきデータが変化したか否かの判定を効率良く行うことができる。
【0101】
また、AVアンプ10においては、現状チェックサムがRAM18に記憶されている。これにより、現状チェックサムがEEPROM34に記憶されている場合に比して、現状チェックサムと確認チェックサムが一致するか否かを判定する度に、現状チェックサムをEEPROM34からわざわざ読み出す必要がなくなる。その結果、現状チェックサムがEEPROM34に記憶されている場合よりも、現状チェックサムと確認チェックサムが一致するか否かの判定に要する時間を短くすることができる。
【0102】
また、AVアンプ10においては、RAM18に記憶されている復元すべきデータのうち、変化したデータをEEPROM34に保存した後、当該変化したデータを含む行及び列の現状チェックサムを計算する際に、古い現状チェックサムから古いデータ(変化前のデータ)を減算した後、新しいデータ(変化後のデータ)を加算する。これにより、ある行又は列において複数のデータが変化した場合であっても、これら複数の変化したデータを見つけることができる。
【0103】
すなわち、例えば、ある行又は列において二つのデータが変化した場合、これら二つの変化したデータのうち一つ目の変化したデータを見つけた後に、その行又は列に含まれるデータの全てを加算して、現状チェックサムを計算し直すと、二つ目の変化したデータを見つけることが出来なくなってしまう。しかしながら、本実施形態のAVアンプ10のように、古い現状チェックサムから古いデータ(変化前のデータ)を減算した後に、新しいデータ(変化後のデータ)を加算して、新しい現状チェックサムを計算すれば、ある行又は列において複数のデータが変化した場合であっても、これら複数の変化したデータの全てを見つけることができるようになる。
【0104】
[第2の実施形態]
続いて、本発明の第2の実施形態としてのAVアンプについて説明する。なお、以下の説明において、第1の実施形態と同様な構造とされた部材及び部位については、第1の実施形態と同一の符号を付すことにより、それらの詳細な説明を省略する。
【0105】
本実施形態のAVアンプは、第1の実施形態のAVアンプ(10)に比して、ユーザによる操作があった場合のバックアップ処理が行われない。その代わりに、本実施形態のAVアンプにおいては、定期的なバックアップ処理が行われる。
【0106】
以下、図9に示すフローチャートを参照して、制御部14が実行する定期的なバックアップ処理について説明する。
【0107】
先ず、制御部14は、S91において、定期的なバックアップ処理を、AVアンプ10に電源が供給されてから初めて実行するか否かを判定する。初めての実行である場合(S91:YES)、制御部14は、S92において、変数X及び変数Yのそれぞれに0を代入する。
【0108】
初めての実行ではない場合(S91:YES)、制御部14は、S93において、変数Yがnであるか否かを判定する。変数Yがnでない場合(S93:NO)、制御部14は、S94において、Y行の確認チェックサムを計算して、計算した値を変数rに格納する。Y行の確認チェックサムを計算する処理は、図4に示すフローチャートを参照して説明した、Y行の現状チェックサムを計算する処理と同じであるから、その詳細な説明は省略する。
【0109】
次に、制御部14は、S95において、S94で計算したY行の確認チェックサム(変数rに格納されている値)と、RAM18に保存されているY行の現状チェックサムR(Y)とが一致するか否かを判定する。一致する場合(S95:YES)、制御部14は、S97以降の処理を実行する。
【0110】
一致しない場合(S95:NO)、制御部14は、S96において、Y行のデータを保存する。Y行のデータを保存する処理は、図7に示すフローチャートを参照して説明した処理と同じであるから、その詳細な説明は省略する。
【0111】
次に、制御部14は、S97において、変数Yに代入されている数値をインクリメントする。その後、制御部14は、定期的なバックアップ処理を終了する。
【0112】
また、変数Yがnである場合(S93:YES)、制御部14は、S98において、X列の確認チェックサムを計算して、計算した値を変数cに格納する。X列の確認チェックサムを計算する処理は、図5に示すフローチャートを参照して説明した、X列の現状チェックサムを計算する処理と同じであるから、その詳細な説明は省略する。
【0113】
次に、制御部14は、S99において、S98で計算したX列の確認チェックサム(変数rに格納されている値)と、RAM18に記憶されているX列の現状チェックサムC(X)とが一致するか否かを判定する。一致する場合(S99:YES)、制御部14は、S101以降の処理を実行する。
【0114】
一致しない場合(S99:NO)、制御部14は、S100において、X列のデータを保存する。X列のデータを保存する処理は、図8に示すフローチャートを参照して説明した処理と同じであるから、その詳細な説明は省略する。
【0115】
次に、制御部14は、S102において、変数Xがnであるか否かを判定する。変数Xがnである場合(S102:YES)、制御部14は、S92以降の処理を実行する。一方、変数Xがnでない場合(S102:NO)、制御部14は、定期的なバックアップ処理を終了する。
【0116】
本実施形態のAVアンプにおいては、定期的なバックアップ処理が行われる。具体的には、先ず、RAM18に記憶されている復元すべきデータについての行の確認チェックサムが計算されたら(S94)、確認チェックサムと、RAM18に保存されている現状チェックサムとが一致するか否かが確認される(S95)。そして、確認チェックサムと現状チェックサムとが一致しなければ(S95:NO)、確認チェックサムと現状チェックサムとが一致しなかった行に含まれるデータが1つずつ確認される(S71〜S74、S78、S79)。変化したデータが見つかったら(S74:NO)、変化したデータはEEPROM34に書き込まれる(S75)。その後、列のチェックサムが計算されて、変化したデータが見つかった列の現状チェックサムとして、RAM18に保存される(S76)。行のチェックサムも計算されて、変化したデータが見つかった行の現状チェックサムとして、RAM18に保存される(S77)。
【0117】
RAM18に記憶されている復元すべきデータについての行の確認チェックサムが全て計算されているのであれば(S93:YES)、RAM18に記憶されている復元すべきデータについての列の確認チェックサムが計算される(S98)。その後、確認チェックサムと、RAM18に保存されている現状チェックサムとが一致するか否かが確認される(S99)。そして、確認チェックサムと現状チェックサムとが一致しなければ(S99:NO)、確認チェックサムと現状チェックサムとが一致しなかった列に含まれるデータが1つずつ確認される(S81〜S84、S88、S89)。変化したデータが見つかったら(S84:NO)、変化したデータはEEPROM34に書き込まれる(S85)。その後、行のチェックサムが計算されて、変化したデータが見つかった行の現状チェックサムとして、RAM18に保存される(S86)。列のチェックサムも計算されて、変化したデータが見つかった列の現状チェックサムとして、RAM18に保存される(S87)。
【0118】
上述の説明から明らかなように、本実施形態では、制御部14がS95、S99の何れかの処理を実行することによって、判定手段が実現されている。
【0119】
このようなAVアンプにおいては、RAM18に記憶されている復元すべきデータが変化したか否かの判定が定期的に行われる。これにより、ユーザによって何等かの操作があったときだけ、RAM18に記憶されている復元すべきデータが変化したか否かを判定する場合に比して、制御部14の負担を軽減することができる。
【0120】
すなわち、ユーザによって何等かの操作があったときだけ、RAM18に記憶されている復元すべきデータが変化したか否かを判定する場合には、RAM18に記憶されている復元すべきデータの何れが変化したのかを確認する必要があるため、RAM18に保存されている現状チェックサムの全てにおいて、対応する確認チェックサムと一致するか否かを判定する必要がなる。しかしながら、本実施形態のように、RAM18に記憶されている復元すべきデータが変化したか否かを定期的に判定する場合には、RAM18に保存されている現状チェックサムの何れか1つを、所定時間毎に、対応する確認チェックサムと一致するか判定すれば良い。従って、本実施形態のAVアンプにおいては、ユーザによって何等かの操作があったときだけ、RAM18に記憶されている復元すべきデータが変化したか否かを判定する場合に比して、制御部14の負担を軽減することが可能となる。
【0121】
以上、本発明の実施形態について、詳述してきたが、これらはあくまでも例示であって、本発明は、上述の実施形態によって、何等、限定されない。
【0122】
例えば、前記第1及び第2の実施形態において、制御部14が実行する制御処理を専用のハードウェアで行うようにしても良い。
【0123】
また、前記第1及び第2の実施形態では、AV機器としてのAVアンプ10に対して、本発明を適用したものの一具体例について説明したが、本発明は、その他の各種電気機器に対しても、勿論、適用可能である。
【符号の説明】
【0124】
10:AVアンプ、14:制御部、18:RAM、34:EEPROM

【特許請求の範囲】
【請求項1】
データを記憶する揮発性メモリと、
前記揮発性メモリに記憶されている前記データのうち、電源が供給された際に復元すべきデータを記憶する不揮発性メモリと、
前記不揮発性メモリに記憶され、物理的又は仮想的に2次元状に配列されている前記復元すべきデータの各行及び各列のデータに基づいて生成された現状チェックデータを前記揮発性メモリに保存する保存手段と、
前記揮発性メモリに記憶されている前記復元すべきデータの各行及び各列のデータに基づいて生成された確認チェックデータが、前記揮発性メモリに保存されている前記現状チェックデータと一致するか否かを判定する判定手段と、
前記判定手段による判定結果が不一致であった場合に、前記揮発性メモリに記憶されている前記復元すべきデータのうち、前記不揮発性メモリに記憶されている前記復元すべきデータと異なるデータを特定する特定手段と、
前記不揮発性メモリに記憶されている前記復元すべきデータのうち、前記特定手段によって特定されたデータに対応するデータを、前記特定手段によって特定されたデータに書き換える書換手段とを備える、電気機器。
【請求項2】
請求項1に記載の電気機器であってさらに、
ユーザが操作する操作手段と、
前記操作手段が操作されたか否かを判断する判断手段とを備え、
前記判断手段によってユーザが前記操作手段を操作したと判断された場合に、前記判定手段による判定が行われる、電気機器。
【請求項3】
請求項1に記載の電気機器であって、
所定時間が経過する毎に、前記判定手段による判定が行われる、電気機器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate