JP5811167B2 - 電子機器 - Google Patents

電子機器 Download PDF

Info

Publication number
JP5811167B2
JP5811167B2 JP2013263790A JP2013263790A JP5811167B2 JP 5811167 B2 JP5811167 B2 JP 5811167B2 JP 2013263790 A JP2013263790 A JP 2013263790A JP 2013263790 A JP2013263790 A JP 2013263790A JP 5811167 B2 JP5811167 B2 JP 5811167B2
Authority
JP
Japan
Prior art keywords
area
flag
delay
writing unit
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013263790A
Other languages
English (en)
Other versions
JP2015121839A (ja
Inventor
一成 伊藤
一成 伊藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Onkyo Corp
Original Assignee
Onkyo Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Onkyo Corp filed Critical Onkyo Corp
Priority to JP2013263790A priority Critical patent/JP5811167B2/ja
Priority to US14/568,379 priority patent/US9471487B2/en
Publication of JP2015121839A publication Critical patent/JP2015121839A/ja
Application granted granted Critical
Publication of JP5811167B2 publication Critical patent/JP5811167B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1014One time programmable [OTP] memory, e.g. PROM, WORM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc

Description

本発明は、復元すべきデータが記憶される不揮発性メモリを備えた電子機器に関する。
音声信号を増幅してスピーカーに出力するAVアンプやパーソナルコンピュータ等の電子機器においては、自機器への電源の供給が遮断されても、次に自機器へ電源が供給された場合に、自機器の状態を電源の供給が遮断される前の状態に戻すことが要求される。このため、電子機器のCPUは、マイクロコンピュータ(以下、「マイコン」という。)内部に設けられた揮発性メモリ(例えば、SRAM)に記憶されている復元すべきデータ(以下、「復元データ」という。)を、電源の供給が遮断される前に、不揮発性メモリであるEEPROM等に書き込む。そして、電子機器のCPUは、再度電源が供給されると、不揮発性メモリに記憶されている復元データを揮発性メモリに再度書き込み(コピー)して、自機器を電源の供給が遮断される前の状態に戻している。
ここで、電子機器への電源の供給が遮断された瞬間に、揮発性メモリに記憶されている復元データを不揮発性メモリに書き込むことが考えられる。しかし、不揮発性メモリは、データの書き込みに時間を要するため、電源供給遮断時に、大きな容量の復元データを不揮発性メモリに書き込むことができない。そのため、従来、揮発性メモリに記憶されている復元データが変化する毎に、その復元データを不揮発性メモリに書き込むことが行われている。
また、CPUによる揮発性メモリへのデータの書き込みは、アプリケーションプログラムに従って行われる。揮発性メモリに書き込まれるデータには、復元データと、復元しなくてもよいデータ(以下、「復元不要データ」という。)と、が混在している場合がある。このような場合に、揮発性メモリに書き込まれるデータが、復元データか復元不要データかをアプリケーションプログラムに従ってCPUが判断するようにすると、アプリケーションプログラムの構造が複雑になる。また、仕様変更でアプリケーションプログラムを修正する場合に、変更箇所が多くなったり、修正ミスが発生する可能性が高くなったりしてしまう。これを回避するため、アプリケーションプログラムには、CPUが、揮発性メモリに書き込まれるデータが復元データか復元不要データかを判断させる構成を含めず、アプリケーションプログラムは、CPUに、揮発性メモリへのデータの書き込みのみを行わせる。そして、別プログラムで、CPUに、復元データが揮発性メモリに書き込まれたか、すなわち、揮発性メモリに記憶されている復元データが変化した否かを監視させ、復元データが変化した場合のみ、不揮発性メモリへ復元データを書き込ませる処理を実行させる。
復元データが変化したか否かを検出する方法として、CPUが不揮発性メモリに記憶されている復元データを読み出し、読み出した復元データと揮発性メモリに記憶されている復元データとを比較する方法がある。CPUは、読み出した復元データと揮発性メモリに記憶されている復元データとが不一致であると判断した場合に、復元データの変化を検出する。しかしながら、不揮発性メモリは、シリアルインターフェースで接続されるものが多く(特にEEPROM)、常時、不揮発性メモリから復元データを読み出すことはCPUの負担となる。
そこで、不揮発性メモリへのアクセスを少なくするため、不揮発性メモリに書き込まれている復元データのコピーを揮発性メモリに書き込んでおくことが行われている。図11は、従来の揮発性メモリ(SRAM)へのデータの書き込み、及び、不揮発性メモリ(EEPROM)へのデータの書き込み処理を示した図である。なお、図11では、EEPROM10へのデータの書き込みをハードウェアで示しているが、実際には、プログラム(ソフトウェアモジュール)により、CPU101によりEEPROM103へのデータの書き込みが行われる(ソフトウェア処理)。SRAM102の領域D01〜D0Nは、復元データが書き込まれる復元データ領域である。SRAM102の領域C01〜C0Nは、復元データのコピーが書き込まれる復元データコピー領域である。CPU101は、復元データ領域D01〜D0Nに書き込まれている復元データと、復元データコピー領域C01〜C0Nに書き込まれている復元データのコピーと、を比較する(図11の(1))。そして、CPU101は、復元データと復元データのコピーとが不一致であると判断した場合、復元データをEEPROM103に書き込む(図11の(2))。同時に、CPU101は、復元データコピー領域C01〜C0Nに復元データのコピーを書き込む(図11の(3))。しかしながら、SRAM102に復元データのコピーを書き込むため、SRAM102(揮発性メモリ)の容量が余計に必要になる。特に、復元データの容量が大きい場合、SRAM102(揮発性メモリ)の書き込み可能な領域が小さくなってしまい、問題である。
復元データのコピーを書き込む揮発性メモリの容量を削減する方法として、特許文献1には、チェックサムのみを揮発性メモリに書き込む発明が開示されている。特許文献1に記載の発明によれば、必要な揮発性メモリの容量は大幅に削減されるが、チェックサムを書き込むための容量は必要である。また、CPUがチェックサムを計算するという負担が発生する。
また、EEPROM等の不揮発性メモリは、書き換え回数に制限があるため、頻繁に変化する復元データを、変化がある毎に、不揮発性メモリに書き込むと、不揮発性メモリの寿命が早まるという問題もある。このため、頻繁に変化する復元データは、変化があってからしばらく(数秒)経過した後、不揮発性メモリに書き込まれる(遅延書き込み)ようになっている場合がある。図11に示すSRAM102の領域D11〜D1nは、遅延書き込みを行う復元データが書き込まれる遅延復元データ領域である。SRAM102の領域C11〜C1nは、遅延書き込みを行う復元データのコピーが書き込まれる遅延復元データコピー領域である。CPU101は、遅延復元データ領域D11〜D1nに書き込まれている復元データと、遅延復元データコピー領域C01〜C0Nに書き込まれている復元データのコピーと、を比較する(図11の(4))。CPU101は、復元データと復元データのコピーとが不一致であると判断した場合、タイマーをスタートさせる(図11の(5))。CPU101は、タイマーがオーバーフローすると(図11の(6))、復元データをEEPROM103に書き込む(図11の(7))。同時に、CPU101は、遅延復元データコピー領域C11〜C1nに復元データのコピーを書き込む(図11の(8))。図11に示すように、従来の不揮発性メモリへの復元データの書き込み処理は、非常に複雑な処理となっている。
特開2012−137881号公報
上述したように、復元データの不揮発性メモリへの書き込みのために、揮発性メモリの容量を多く使用しているという問題がある。また、従来の不揮発性メモリへの復元データの書き込み処理は、非常に複雑であるという問題がある
本発明の目的は、揮発性メモリの容量を多く使用することなく、簡易な処理で復元データを不揮発性メモリに書き込むことを可能とすることである。
第1の発明の電子機器は、第1領域と、自機器への電源の供給が遮断されても記憶しておくべき復元データが記憶される第2領域と、前記第2領域に対応して第1フラグがセットされる第1フラグ領域と、を有する揮発性メモリと、不揮発性メモリと、前記揮発性メモリに前記復元データを含むデータを書き込む第1書込部と、前記第2領域に記憶されている前記復元データを前記不揮発性メモリに書き込む第2書込部と、を備え、前記第1書込部は、前記復元データを書き込んだ前記第2領域に対応する前記第1フラグ領域に前記第1フラグをセットし、前記第2書込部は、前記第1フラグ領域に前記第1フラグがセットされている場合に、前記第1フラグ領域に対応する前記第2領域に記憶されている前記復元データを前記不揮発性メモリに書き込むことを特徴とする。
本発明では、第2領域に復元データが書き込まれた場合に、フラグがセットされるフラグ領域が揮発性メモリに設けられている。また、フラグ領域にフラグがセットされている場合に、第2書込部は、フラグ領域に対応する第2領域に記憶されている復元データを不揮発性メモリに書き込む。従って、従来のように、チェックサムを計算すること等がないため、簡易な処理で復元データを不揮発性メモリに書き込むことが可能である。また、例えば、フラグ領域には、フラグがセットされる場合に、「1」というデータ量の少ない情報が記憶されるため、従来のように、復元データのコピー、チェックサムが揮発性メモリに記憶されない。これにより、揮発性メモリの容量を多く使用することなく、復元データを不揮発性メモリに書き込むことが可能である。
第2の発明の電子機器は、第1の発明の電子機器において、前記揮発性メモリは、遅延して前記不揮発性メモリに書き込まれる前記復元データが記憶される第3領域と、前記第3領域に対応して第2フラグがセットされる第2フラグ領域と、時間を計測するためのタイマー領域と、をさらに有し、前記第1書込部は、前記復元データを書き込んだ前記第3領域に対応する前記第2フラグ領域に前記第2フラグをセットし、且つ、前記タイマー領域による時間計測をスタートさせ、前記第2書込部は、前記第2フラグ領域に前記第2フラグがセットされた後、前記タイマー領域による計測時間が所定時間を経過した場合に、前記第2フラグ領域に対応する前記第3領域に記憶されている前記復元データを前記不揮発性メモリに書き込むことを特徴とする。
本発明では、第2書込部は、第2フラグ領域に第2フラグがセットされた後、タイマー領域による計測時間が所定時間を経過した場合に、第2フラグ領域に対応する第3領域に記憶されている復元データを不揮発性メモリに書き込む。すなわち、第2書込部により遅延書き込みが行われる。このため、不揮発性メモリの書き込み回数が抑制され、不揮発性メモリの寿命を長くすることが可能となる。
第3の発明の電子機器は、第1の発明の電子機器において、前記揮発性メモリは、遅延して前記不揮発性メモリに書き込まれる前記復元データが記憶される第3領域と、前記第3領域に対応して第2フラグがセットされる第2フラグ領域と、前記第2書込部による前記不揮発性メモリへの前記復元データの書き込みを禁止するための第3フラグがセットされる第3フラグ領域と、時間を計測するためのタイマー領域と、をさらに有し、前記第1書込部は、前記復元データを書き込んだ前記第3領域に対応する前記第2フラグ領域に前記第2フラグをセットし、前記第3フラグ領域に前記第3フラグをセットし、且つ、前記タイマー領域による時間計測をスタートさせ、前記タイマー領域による計測時間が所定時間を経過した場合に、前記第3フラグ領域の前記第3フラグを消去し、前記第2書込部は、前記第2フラグ領域に前記第2フラグがセットされ、且つ、前記第3フラグ領域の前記第3フラグが消去された場合に、前記第2フラグ領域に対応する前記第3領域に記憶されている前記復元データを前記不揮発性メモリに書き込むことを特徴とする。
本発明では、第2書込部は、第2フラグ領域に前記第2フラグがセットされ、且つ、第3フラグ領域の第3フラグが消去された場合、すなわち、タイマー領域による計測時間が所定時間を経過した場合に、第2フラグ領域に対応する第3領域に記憶されている復元データを不揮発性メモリに書き込む。すなわち、第2書込部により遅延書き込みが行われる。このため、不揮発性メモリの書き込み回数が抑制され、不揮発性メモリの寿命を長くすることが可能となる。
第4の発明の電子機器は、第3の発明の電子機器において、前記第1書込部は、前記揮発性メモリのアドレスに基づいて、どの領域に前記データを書き込んだかを判断し、前記第2領域に前記復元データを書き込んだと判断した場合に、前記復元データを書き込んだ前記第2領域に対応する前記第1フラグ領域に前記第1フラグをセットし、前記第3領域に前記復元データを書き込んだと判断した場合に、前記復元データを書き込んだ前記第3領域に対応する前記第2フラグ領域に前記第2フラグをセットし、前記第3フラグ領域に前記第3フラグをセットし、且つ、前記タイマー領域による時間計測をスタートさせることを特徴とする。
本発明では、揮発性メモリのアドレスに基づいて、どの領域にデータを書き込んだかを判断し、データを書き込んだ領域に対応するフラグ領域にフラグをセットすることができる。
本発明によれば、揮発性メモリの容量を多く使用することなく、簡易な処理で復元データを不揮発性メモリに書き込むことが可能である。
本発明の実施形態に係るAVアンプの構成を示すブロック図である。 SRAMへのデータの書き込み、及び、EEPROMへのデータの書き込み処理を示した図である。 第1遅延あり更新抑制フラグ領域の更新抑制フラグを消去する処理を示すフローチャートである。 第2遅延あり更新抑制フラグ領域の更新抑制フラグを消去する処理を示すフローチャートである。 SRAMへのデータの書き込み処理を示すフローチャートである。 ページ番号の計算処理を示すフローチャートである。 EEPROMへの復元データの書き込み処理を示すフローチャートである。 遅延なし更新要求フラグ領域のチェック処理を示すフローチャートである。 第1遅延あり更新要求フラグ領域のチェック処理を示すフローチャートである。 第2遅延あり更新要求フラグ領域のチェック処理を示すフローチャートである。 従来の揮発性メモリへのデータの書き込み、及び、不揮発性メモリへのデータの書き込み処理を示した図である。
以下、本発明の実施形態について説明する。図1は、本実施形態に係るAVアンプの構成を示すブロック図である。AVアンプ1(電子機器)は、例えば、外部に接続された再生装置としてのBD(Blu-ray(登録商標) Disc)プレーヤー100から入力される音声信号及び映像信号を、それぞれ、スピーカー200及びディスプレイ300に出力するものである。図1に示すように、AVアンプ1は、マイクロコンピュータ(以下、「マイコン」という。)2、EEPROM(Electrically Erasable Programmable
Read-Only Memory)3、音声処理部4、増幅部5、映像処理部6、表示部7、操作部8等を備えている。
マイコン2は、CPU(Central
Processing Unit)21、ROM(Read
Only Memory)22、SRAM(Static
Random Access Memory)23等のハードウェアから構成されている。CPU21は、ROM22に格納されたプログラムに従って、AVアンプ1を構成する各部を制御する。また、CPU21は、後述するSRAM書込部11等として機能する。SRAM23は、CPU21が各種制御処理を実行する際にROM22から読み出したプログラム、CPU21が各種制御処理を実行する際に必要なデータ等を一時的に記憶する。SRAM23は、電源の供給が遮断されると、記憶しているデータが消失する揮発性メモリである。EEPROM3は、AVアンプ1への電源の供給が遮断されても記憶しておくべき復元データを記憶するためのものである。EEPROM3は、電源の供給がなくとも、記憶しているデータを保持する不揮発性メモリである。
音声処理部4は、BDプレーヤー100から出力される音声信号に対して、イコライザ処理、D/A変換処理、音量調整処理等の音声処理を行うものである。音声処理部4は、音声処理を行った音声信号を増幅部5に出力する。増幅部5は、音声処理部4から出力される音声信号を増幅するものである。増幅部5は、増幅した音声信号をスピーカー200に出力する。スピーカー200は、AVアンプ1から出力される音声信号に基づいて音声を再生する。
映像処理部6は、BDプレーヤー100から出力される映像信号に対して、画質調整処理、解像度変換処理、アスペクト比変換処理等の映像処理を行う。映像処理部6は、映像処理を行った映像信号をディスプレイ300に出力する。ディスプレイ300は、AVアンプ1から出力される映像信号に基づいて映像を再生する。
表示部7は、設定画面、音量レベルなどを表示するものであり、LCD(液晶ディスプレイ)や蛍光表示管等である。操作部8は、ユーザー操作を受け付けるためのものであり、AVアンプ1の筐体に設けられた操作ボタンやリモートコントローラである。
上述した復元データとしては、例えば、音声処理部4が行う音声処理についての情報、映像処理部6が行う映像処理についての情報等がある。図2は、SRAM23へのデータの書き込み、及び、EEPROM3へのデータの書き込み処理を示した図である。図2に示すように、SRAM23は、領域B、領域D01〜D0N、領域D11〜D1n、領域D21〜D2m、領域F01〜F0N、領域F11〜F1n、領域F21〜F2m、領域F1s,F2s、領域TIMERD1,TIMERD2を有する。領域B(第1領域)は、復元しなくてもよいデータ(以下、「復元不要データ」ともいう。)が記憶される領域である(以下、「復元不要領域」ともいう。)。また、復元不要領域Bは、SRAM23のアドレスAS0よりも小さい領域と、アドレスASfよりも大きい領域と、を含む。
領域D01〜D0N(第2領域)は、復元データが記憶される領域である。具体的には、領域D01〜D0Nは、復元データが書き込まれる、すなわち、領域D01〜D0Nに記憶されているデータが変化する毎に、書き込まれた復元データがEEPROM3にも書き込まれる、遅延書き込みなしの領域である(以下、「遅延なし領域」ともいう。)。また、遅延なし領域D01〜D0Nは、SRAM23のアドレスAS0〜AS1の領域である。
領域D11〜D1n(第3領域)は、復元データが記憶される領域である。具体的には、領域D11〜D1nは、復元データが書き込まれてから、すなわち、領域D11〜D1nに記憶されているデータが変化してから所定時間経過後にEEPROM3に復元データが書き込まれる遅延書き込みが行われる領域である(以下、「第1遅延あり領域」ともいう。)。また、第1遅延あり領域D11〜D1nは、SRAM23のアドレスAS1〜AS2の領域である。領域D21〜D2m(第3領域)は、復元データが記憶される領域である。具体的には、領域D21〜D2mは、遅延書き込みが行われる領域である(以下、「第2遅延あり領域」ともいう。)。また、第2遅延あり領域D21〜D2mは、SRAM23のアドレスAS2〜ASfの領域である。第1遅延あり領域D11〜D1n、第2遅延あり領域D21〜D2mにおいては、復元データが頻繁に変化するため、変化があってからしばらく(数秒)経過した後、EEPROM3に復元データが書き込まれるようになっている。これにより、EERPOM3への復元データの書き込み回数が減少するため、EEPROM3の寿命が長くなるという利点がある。第1遅延あり領域D11〜D1nと第2遅延あり領域D21〜D2mとは、SRAM23に復元データが書き込まれてからEEPROM3に復元データが書き込まれるまでの時間(遅延書き込み時間)が異なる。
なお、EEPROM3は、8〜32バイトで1ページを構成するというページ単位がある。1ページ分の書き込みは、1バイトの書き込みと同じ時間で書き込むことができるので、1ページを単位として管理するのが一般的である。従って、領域D01〜D2mは、EEPROM3のページ単位に対応した構成となっている。
領域F01〜F0N(第1フラグ領域)は、遅延なし領域D01〜D0Nに対応して遅延なし領域の更新要求フラグ(第1フラグ)がセットされる遅延なし更新要求フラグ領域である。ここで、「フラグをセットする」とは、フラグ領域の値を「0」から「1」にすることをいう。反対に、「フラグを消去する」とは、フラグ領域の値を「1」から「0」にすることをいう。従って、フラグがセットされると、フラグ領域には、「1」が記憶される。領域F11〜F1n(第2フラグ領域)は、第1遅延あり領域D11〜D1nに対応して第1遅延あり領域の更新要求フラグ(第2フラグ)がセットされる第1遅延あり更新要求フラグ領域である。領域F21〜F2m(第2フラグ領域)は、第2遅延あり領域D21〜D2mに対応して第2遅延あり領域の更新要求フラグ(第2フラグ)がセットされる第2遅延あり更新要求フラグ領域である。
領域F1S,F2S(第3フラグ領域)は、後述するEEPROM書込部12によるEEPROM3への復元データの書き込みを禁止するための更新抑制フラグ(第3フラグ)がセットされる更新抑制フラグ領域である。領域F1Sは、第1遅延あり領域D11〜D1nに対応している第1遅延あり更新抑制フラグ領域である。領域F2Sは、第2遅延あり領域D21〜D2mに対応している第2遅延あり更新抑制フラグ領域である。領域TIMERD1、TIMERD2は、時間を計測するためのタイマー領域である。具体的には、領域TIMERD1、TIMERD2は、後述するSRAM書込部11によってカウントアップされるタイマー値が記憶される領域である。また、領域TIMERD1、TIMERD2は、カウントアップ可能な最大タイマー値が所定の時間に設定されており、最大タイマー値に達すると、オーバーフローする。領域TIMERD1は、第1遅延あり領域D11〜D1nに対応している第1タイマー領域である。第1タイマー領域TIMERD1の最大タイマー値は、第1遅延あり領域D11〜D1nの遅延書き込み時間に設定されている。領域TIMERD2は、第2遅延あり領域D21〜D2mに対応している第2タイマー領域である。第2タイマー領域TIMERD2の最大タイマー値は、第2遅延あり領域D21〜D2mの遅延書き込み時間に設定されている。
次に、CPU21が行う処理について説明する。CPU21は、SRAM書込部11、EEPROM書込部12として機能する。SRAM書込部11(第1書込部)は、SRAM23にデータを書き込む。具体的には、SRAM書込部11は、書き込み先のSRAM23のアドレスに基づいて、復元不要データを復元不要領域Bに書き込む。また、SRAM書込部11は、復元データを領域D01〜D2mに書き込む。
また、SRAM書込部11は、SRAM23のアドレスに基づいて、どの領域にデータが書き込んだかを判断する。具体的には、SRAM書込部11は、SRAM23のアドレスAS0よりも小さい領域、アドレスASfよりも大きい領域にデータを書き込んだ場合、復元不要領域Bに復元不要データを書き込んだと判断する。また、SRAM書込部11は、SRAM23のアドレスAS0〜AS1の領域にデータを書き込んだ場合、遅延なし領域D01〜D0Nに復元データを書き込んだと判断する。また、SRAM書込部11は、SRAM23のアドレスAS1〜AS2の領域にデータを書き込んだ場合、第1遅延あり領域D11〜D1nに復元データを書き込んだと判断する。また、SRAM書込部11は、SRAM23のアドレスAS2〜ASfの領域にデータを書き込んだ場合、第2遅延あり領域D21〜D2mに復元データを書き込んだと判断する。
また、SRAM書込部11は、フラグ領域F01〜F2m,F1S,F2Sにフラグをセットし、また、フラグを消去する。すなわち、SRAM書込部11は、フラグ領域F01〜F2m,F1S,F2Sの値を「0」から「1」とすることでフラグをセットし、また、フラグ領域F01〜F2m,F1S,F2Sの値を「1」から「0」とすることでフラグを消去する。具体的には、SRAM書込部11は、遅延なし領域D01〜D0Nに復元データを書き込んだと判断した場合に、復元データを書き込んだ遅延なし領域D01〜D0Nに対応する遅延なし更新要求フラグ領域F01〜F0Nに更新要求フラグをセットする。
また、SRAM書込部11は、第1遅延あり領域D11〜D1nに復元データを書き込んだと判断した場合に、復元データを書き込んだ第1遅延あり領域D11〜D1nに対応する第1遅延あり更新要求フラグ領域F11〜F1nに更新要求フラグをセットする。このとき、SRAM書込部11は、第1遅延あり更新抑制フラグ領域F1sに更新抑制フラグをセットする。さらに、SRAM書込部11は、第1タイマー領域TIMERD1による時間計測をスタートさせる。ここで、SRAM書込部11は、第1タイマー領域TIMERD1による計測時間が所定時間を経過し、オーバーフローした場合に、第1遅延あり更新抑制フラグ領域F1Sの更新抑制フラグを消去する。図3に示すように、SRAM書込部11は、第1遅延あり更新抑制フラグ領域F1Sの値を0とする(S101)。
また、SRAM書込部11は、第2遅延あり領域D21〜D2mに復元データを書き込んだと判断した場合に、復元データを書き込んだ第2遅延あり領域D21〜D2mに対応する第2遅延あり更新要求フラグ領域F21〜F2mに更新要求フラグをセットする。このとき、SRAM書込部11は、第2遅延あり更新抑制フラグ領域F2Sに更新抑制フラグをセットする。さらに、SRAM書込部11は、第2タイマー領域TIMERD2による時間計測をスタートさせる。ここで、SRAM書込部11は、第2タイマー領域TIMERD2による計測時間が所定時間を経過し、オーバーフローした場合に、第2遅延あり更新抑制フラグ領域F2Sの更新抑制フラグを消去する。図4に示すように、SRAM書込部11は、第2遅延あり更新抑制フラグ領域F2Sの値を0とする(S102)。
なお、SRAM書込部11によるSRAM23へのフラグのセット、SRAM23を用いた時間計測(カウントアップしたタイマー値の記憶)も、SRAM23へのデータの書込みにより行われる処理である。
EEPROM書込部12(第2書込部)は、復元データをEEPROM3に書き込む。具体的には、EEPROM書込部12は、遅延なし更新要求フラグ領域F01〜F0Nに更新要求フラグがセットされている場合に、遅延なし更新要求フラグ領域F01〜F0Nに対応する遅延なし領域D01〜D0Nに記憶されている復元データをEEPROM3に書き込む。また、EEPROM書込部12は、第1遅延あり更新要求フラグ領域F11〜F1nに更新要求フラグがセットされ、且つ、第1遅延あり更新抑制フラグ領域F1Sの更新抑制フラグが消去された場合に、第1遅延あり更新要求フラグ領域F11〜F1nに対応する第1遅延あり領域D11〜D1nに記憶されている復元データをEEPROM3に書き込む。また、EEPROM書込部12は、第2遅延あり更新要求フラグ領域F21〜F2mに更新要求フラグがセットされ、且つ、第2遅延あり更新抑制フラグ領域F2Sの更新抑制フラグが消去された場合に、第2遅延あり更新要求フラグ領域F21〜F2mに対応する第2遅延あり領域D21〜D2mに記憶されている復元データをEEPROM3に書き込む。
ここで、SRAM23のアドレスAS0〜AS1の遅延なし領域D01〜D0Nと、EEPROM3のアドレスAE0〜AE1の領域と、が対応しており、EEPROM書込部12は、遅延なし領域D01〜D0Nに記憶されている復元データをEEPROM3のアドレスAE0〜AE1の領域に書き込む。また、SRAM23のアドレスAS1〜AS2の第1遅延あり領域D11〜D1nと、EEPROM3のアドレスAE1〜AE2の領域と、が対応しており、EEPROM書込部12は、第1遅延あり領域D11〜D1nに記憶されている復元データをEEPROM3のアドレスAE1〜AE2の領域に書き込む。また、SRAM23のアドレスAS2〜ASfの第2遅延あり領域D21〜D2mと、EEPROM3のアドレスAE2〜AEfの領域と、が対応しており、EEPROM書込部12は、第2遅延あり領域D21〜D2mに記憶されている復元データをEEPROM3のアドレスAE〜AEの領域に書き込む。
次に、SRAM23へのデータの書き込み処理について、図5に示すフローチャートに基づいて説明する。CPU21(SRAM書込部11)は、例えば、アプリケーションプログラムに従ったSRAM23への書き込み処理が発生した場合に、以下の処理を行う。なお、本実施形態では、CPU21によるソフトウェア処理で、SRAM23へのデータの書き込み行うため、OS、ライブラリ、ミドルウェアのAPIとして以下の処理を組み込んでおくこととなる。
まず、SRAM書込部11は、SRAM23のアドレスに対応する変数Aを書き込み先のアドレスとする(S1)。次に、SRAM書込部11は、アドレス(変数)AのSRAM23の値と、SRAM23に書き込むデータと、が等しいか否かを判断する(S2)。すなわち、SRAM書込部11は、SRAM23のアドレスAに記憶されているデータと、SRAM23に書き込むデータと、が同じであるか否かを判断する。SRAM書込部11は、アドレスAのSRAM23の値とSRAM23に書き込むデータとが等しいと判断した場合(S2:Yes)、処理を終了する。SRAM23のアドレスAに記憶されているデータと、SRAM23に書き込むデータと、が同じ、すなわち、SRAM23のアドレスAに記憶されているデータが変化しないため、データを書き込む必要がないからである。
SRAM書込部11は、アドレスAのSRAM23の値とSRAM23に書き込むデータとが等しくないと判断した場合(S2:No)、アドレスAのSRAM23の値を書き込みデータとする(S3)。すなわち、SRAM書込部11は、SRAM23のアドレスAに対応する領域にデータを書き込む。
次に、SRAM書込部11は、データを書き込んだSRAM23のアドレスに対応する変数AがアドレスAS0以上であるか否かを判断する(S4)。SRAM書込部11は、変数AがアドレスAS0以上でない(A<AS0)、すなわち、復元不要データを復元不要領域Bに書き込んだと判断した場合(S4:No)、処理を終了する。SRAM書込部11は、復元不要領域Bに復元不要データを書き込んだため、EEPROM3にデータを書き込むための処理を行う必要がないからである。
SRAM書込部11は、変数AがアドレスAS0以上であると判断した場合(S4:Yes)、変数AがアドレスAS1以上であるか否かを判断する(S5)。SRAM書込部11は、変数AがアドレスAS1以上でない(AS0≦A<AS1)、すなわち、復元データを遅延なし領域D01〜D0Nに書き込んだと判断した場合(S5:No)、変数(アドレス)Aに対応するページ番号を計算し、ページ番号に対応する変数Pを計算したページ番号とする(S6)。そして、SRAM書込部11は、遅延なし更新要求フラグ領域F0Pの値を1とする(S7)。すなわち、SRAM書込部11は、遅延なし更新要求フラグ領域F0Pにフラグをセットする。例えば、計算されたページ番号が2であれば、遅延なし領域のページD02(P=2)に復元データが書き込まれており、遅延なし更新要求フラグ領域F02(P=2)にフラグがセットされる。このようにして、SRAM書込部11は、復元データを書き込んだ遅延なし領域D01〜D0Nに対応する遅延なし更新要求フラグ領域F01〜F0Nに更新要求フラグをセットする。
SRAM書込部11は、変数AがアドレスAS1以上であると判断した場合(S5:Yes)、変数AがアドレスAS2以上であるか否かを判断する(S8)。SRAM書込部11は、変数AがアドレスAS2以上でない(AS1≦A<AS2)、すなわち、復元データが第1遅延あり領域D11〜D1nに書き込まれたと判断した場合(S8:No)、変数(アドレス)Aに対応するページ番号を計算し、ページ番号に対応する変数Pを計算したページ番号とする(S9)。次に、SRAM書込部11は、第1遅延あり更新要求フラグ領域F1Pの値を1とする(S10)。すなわち、SRAM書込部11は、第1遅延あり更新要求フラグ領域F1Pにフラグをセットする。次に、SRAM書込部11は、第1遅延あり更新抑制フラグ領域F1Sの値を1とする(S11)。すなわち、SRAM書込部11は、第1遅延あり更新抑制フラグ領域F1Sにフラグをセットする。そして、SRAM書込部11は、第1タイマー領域TIMERD1による時間計測をスタートさせる(S12)。
SRAM書込部11は、変数AがアドレスAS2以上であると判断した場合(S8:Yes)、変数AがアドレスASf以上であるか否かを判断する(S13)。SRAM書込部11は、変数AがアドレスASf以上でない、すなわち、復元データを第2遅延あり領域D21〜D2mに書き込んだと判断した場合(S13:No)、変数(アドレス)Aに対応するページ番号を計算し、ページ番号に対応する変数Pを計算したページ番号とする(S14)。次に、SRAM書込部11は、第2遅延あり更新要求フラグ領域F2Pの値を1とする(S15)。すなわち、SRAM書込部11は、第2遅延あり更新要求フラグ領域F2Pにフラグをセットする。次に、SRAM書込部11は、第2遅延あり更新抑制フラグ領域F2Sの値を1とする(S16)。すなわち、SRAM書込部11は、第2遅延あり更新抑制フラグ領域F2Sにフラグをセットする。そして、SRAM書込部11は、第2タイマー領域TIMER による時間計測をスタートさせる。SRAM書込部11は、変数AがアドレスASf以上である、すなわち、復元不要データを復元不要領域Bに書き込んだと判断した場合(S13:Yes)、処理を終了する。
次に、ページ番号の計算処理(図5のS6、S9、S14)について、図6に示すフローチャートに基づいて説明する。まず、SRAM書込部11は、オフセットを計算する(S21)。復元データが遅延なし領域D01〜D0Nに書き込まれている場合(S6)、SRAM書込部11は、A−AS0を計算する。また、復元データが第1遅延あり領域D11〜D1nに書き込まれている場合(S9)、SRAM書込部11は、A−AS1を計算する。また、復元データが第2遅延あり領域D21〜D2mに書き込まれている場合(S14)、SRAM書込部11は、A−AS2を計算する。次に、SRAM書込部11は、計算したオフセットを1ページのページサイズで割り、割った値を変数pとする(S22)。例えば、オフセットが50バイトであり、ページサイズが32であれば、50/32(=1.5625)を計算する。次に、変数pの整数部に1を足した数をページ番号Pとする(S23)。例えば、変数p=50/32(=1.5625)であれば、1+1=2をページ番号Pとする。この例では、ページ2(例えば、遅延なし領域のページD02)に復元データが書き込まれている。なお、図6に示す関数Int(p)は、pの整数部を返す算術関数である。
次に、EEPROM3への復元データの書き込み処理について、図7に示すフローチャートに基づいて説明する。以下の処理は、CPU21(EEPROM書込部12)により、図5及び図6に示す処理とは別のタスクとして定期的に(1〜数秒程度)で実行される。まず、EEPROM書込部12は、ページ番号に対応する変数iを1とする(S31)。次に、EEPROM書込部12は、ページ番号に対応する変数iが遅延なし領域D01〜D0Nのページ数N以下であるか否かを判断する(S32)。EEPROM書込部12は、変数iが遅延なし領域D01〜D0Nのページ数N以下であると判断した場合(S32:Yes)、遅延なし更新要求フラグ領域F0iをチェックする(S33)。次に、EEPROM書込部12は、変数iをi+1とする(S34)。次のS32の処理で、次のページ番号がD01〜D0Nのページ数N以下であるかを判断するためである。また、次のS33の処理で、次のページ番号に対応する遅延なし更新要求フラグ領域F0iをチェックするためである。
EEPROM書込部12は、変数iがページ数N以下であると判断している間(S32:Yes)、S33、S34の処理を繰り返し実行する。EEPROM書込部12は、変数iが遅延なし領域D01〜D0Nのページ数N以下でないと判断した場合(S32:No)、すべての遅延なし更新要求フラグ領域F01〜F0Nをチェックしたため、第1遅延あり更新抑制フラグ領域F1Sの値が0であるか否かを判断する(S35)。すなわち、EEPROM書込部12は、第1遅延あり更新抑制フラグ領域F1Sにフラグがセットされているか否かを判断する。EEPROM書込部12は、第1遅延あり領域更新抑制フラグ領域F1Sの値が0である、すなわち、第1遅延あり更新抑制フラグ領域F1Sにフラグがセットされていないと判断した場合(S35:Yes)、ページ番号に対応する変数iを1とする(S36)。次に、EEPROM書込部12は、ページ番号に対応する変数iが第1遅延あり領域D11〜D1nのページ数n以下であるか否かを判断する(S37)。EEPROM書込部12は、変数iが第1遅延あり領域D11〜D1nのページ数n以下であると判断した場合(S37:Yes)、第1遅延あり更新要求フラグ領域F1iをチェックする(S38)。次に、EEPROM書込部12は、変数iをi+1とする(S39)。
EEPROM書込部12は、変数iがページ数n以下であると判断している間(S37:Yes)、S38、S39の処理を繰り返し実行する。EEPROM書込部12は、変数iが第1遅延あり領域D11〜D1nのページ数n以下でないと判断した場合(S37:No)、すべての第1遅延あり更新要求フラグ領域F11〜F1nをチェックしたため、第2遅延あり更新抑制フラグ領域F2Sの値が0であるか否かを判断する(S40)。すなわち、EEPROM書込部12は、第2遅延あり更新抑制フラグ領域F2Sにフラグがセットされているか否かを判断する。また、EEPROM書込部12は、第1遅延あり領域更新抑制フラグ領域F1Sの値が0でない、すなわち、第1遅延あり更新抑制フラグ領域F1Sにフラグがセットされていると判断した場合(S35:No)、S37〜S39の処理を行わず、S40の処理を実行する。すなわち、第1遅延あり更新抑制フラグ領域F1Sにフラグがセットされているため、EEPROM書込部12は、第1遅延あり更新要求フラグ領域F11〜F1nのチェックを行わない。
EEPROM書込部12は、第2遅延あり更新抑制フラグ領域F1Sの値が0である、すなわち、第2遅延あり更新抑制フラグ領域F1Sにフラグがセットされていないと判断した場合(S40:Yes)、ページ番号に対応する変数iを1とする(S41)。次に、EEPROM書込部12は、ページ番号に対応する変数iが第2遅延あり領域D21〜D2mのページ数m以下であるか否かを判断する(S42)。EEPROM書込部12は、変数iが第2遅延あり領域D21〜D2mのページ数m以下であると判断した場合(S42:Yes)、第2遅延あり更新要求フラグ領域F2iをチェックする(S43)。次に、EEPROM書込部12は、変数iをi+1とする(S44)。
EEPROM書込部12は、変数iがページ数m以下であると判断している間(S42:Yes)、S43、S44の処理を繰り返し実行する。EEPROM書込部12は、変数iが第1遅延あり領域D21〜D2mのページ数m以下でないと判断した場合(S42:No)、すべての第2遅延あり更新要求フラグ領域F21〜F2mをチェックしたため、処理を終了する。また、EEPROM書込部12は、第2遅延あり更新抑制フラグ領域F2Sの値が0でない、すなわち、第2遅延あり更新抑制フラグ領域F2Sにフラグがセットされていると判断した場合(S40:No)、S42〜S44の処理を行わず、S40の処理を実行する。すなわち、第2遅延あり更新抑制フラグ領域F2Sにフラグがセットされているため、EEPROM書込部12は、第2遅延あり更新要求フラグ領域F21〜F2mのチェックを行わない。
次に、遅延なし更新要求フラグ領域F01〜F0Nのチェック処理(図7のS33)について、図8に示すフローチャートに基づいて説明する。まず、EEPROM書込部12は、変数pをページ番号(図7のS33におけるi)とする(S51)。次に、EEPROM書込部12は、遅延なし更新要求フラグ領域F0pの値が1であるか否かを判断する(S52)。すなわち、EEPROM書込部12は、遅延なし更新要求フラグ領域F0pにフラグがセットされているか否かを判断する。EEPROM書込部12は、遅延なし更新要求フラグ領域F0pの値が1でない、すなわち、遅延なし更新要求フラグ領域F0pにフラグがセットされていないと判断した場合(S52:No)、遅延なし領域D0pに記憶されている復元データをEEPROM3に書き込む必要がないため、処理を終了する。
EEPROM書込部12は、遅延なし更新要求フラグ領域F0pの値が1である、すなわち、遅延なし更新要求フラグ領域F0pにフラグがセットされていると判断した場合(S52:Yes)、ページ番号に対応する変数pから1を引いた数にページサイズを乗じた数を変数aとする(S53)。変数aは、SRAM23のアドレスAS0からページ番号(p−1)までのバイト数に対応している。例えば、ページ番号3であり、ページサイズが32バイトであれば、ページ番号2までのバイト数は、64バイトとなる。次に、EEPROM書込部12は、バイト数に対応する変数iを0とする(S54)。次に、EEPROM書込部12は、バイト数に対応する変数iがページサイズよりも小さいか否かを判断する(S55)。EEPROM書込部12は、変数iがページサイズよりも小さいと判断した場合(S55:Yes)、アドレスAE0+a+iのEEPROM3の値を、アドレスAS0+a+iのSRAM23の値とする(S56)。すなわち、EEPROM書込部12は、SRAM23のアドレスAS0+a+iの領域に記憶されている復元データを、EEPROM3のアドレスAE0+a+iの領域に書き込む。例えば、1回目の処理では、ページ番号3であり、ページサイズが32バイトであれば、アドレスAE0+64+0のEEPROM3の値が、アドレスAS0+64+0のSRAM23の値となる。次に、EEPROM書込部12は、変数iをi+1とする(S57)。
EEPROM書込部12は、変数iがページサイズよりも小さいと判断している間は(S55:Yes)、S55〜S57の処理を繰り返し実行する。変数iが1ずつ増加するため、例えば、ページ番号3であり、ページサイズが32バイトであれば、アドレスAE0+64+(0〜32)のEEPROM3の値が、アドレスAS0+64+(0〜32)のSRAM23の値となる。すなわち、ページ番号3の1ページ分の遅延なし領域D03に記憶されている復元データが、EEPROM3に書き込まれる。
EEPROM書込部12は、変数iがページサイズよりも小さくないと判断した場合(S55:No)、処理を終了する。このようにして、EEPROM書込部12は、遅延なし領域D0pに記憶されている1ページ分の復元データをEEPROM3に書き込む。
次に、第1遅延あり更新要求フラグ領域F11〜F1nのチェック処理(図7のS38)について、図9に示すフローチャートに基づいて説明する。まず、EEPROM書込部12は、変数pをページ番号(図7のS38におけるi)とする(S61)。次に、EEPROM書込部12は、第1遅延あり更新要求フラグ領域F1pの値が1であるか否かを判断する(S62)。すなわち、EEPROM書込部12は、第1遅延あり更新要求フラグ領域F1pにフラグがセットされているか否かを判断する。EEPROM書込部12は、第1遅延あり更新要求フラグ領域F1pの値が1でない、すなわち、第1遅延あり更新要求フラグ領域F1pにフラグがセットされていないと判断した場合(S62:No)、第1遅延あり領域D1pに記憶されている復元データをEEPROM3に書き込む必要がないため、処理を終了する。
EEPROM書込部12は、第1遅延あり更新要求フラグ領域F1pの値が1である、すなわち、第1遅延あり更新要求フラグ領域F1pにフラグがセットされていると判断した場合(S62:Yes)、ページ番号に対応する変数pから1を引いた数にページサイズを乗じた数を変数aとする(S63)。次に、EEPROM書込部12は、バイト数に対応する変数iを0とする(S64)。次に、EEPROM書込部12は、バイト数に対応する変数iがページサイズよりも小さいか否かを判断する(S65)。EEPROM書込部12は、変数iがページサイズよりも小さいと判断した場合(S65:Yes)、アドレスAE1+a+iのEEPROM3の値を、アドレスAS1+a+iのSRAM23の値とする(S66)。すなわち、EEPROM書込部12は、SRAM23のアドレスAS1+a+iの領域に記憶されている復元データを、EEPROM3のアドレスAE1+a+iの領域に書き込む。次に、EEPROM書込部12は、変数iをi+1とする(S67)。EEPROM書込部12は、変数iがページサイズよりも小さいと判断している間は(S65:Yes)、S65〜S67の処理を繰り返し実行する。EEPROM書込部12は、変数iがページサイズよりも小さくないと判断した場合(S65:No)、処理を終了する。このようにして、EEPROM書込部12は、第1遅延あり領域D1pに記憶されている1ページ分の復元データをEEPROM3に書き込む。
次に、第2遅延あり更新要求フラグ領域F21〜F2mのチェック処理(図7のS43)について、図10に示すフローチャートに基づいて説明する。まず、EEPROM書込部12は、変数pをページ番号(図7のS43におけるi)とする(S71)。次に、EEPROM書込部12は、第2遅延あり更新要求フラグ領域F2pの値が1であるか否かを判断する(S72)。すなわち、EEPROM書込部12は、第2遅延あり更新要求フラグ領域F2pにフラグがセットされているか否かを判断する。EEPROM書込部12は、第2遅延あり更新要求フラグ領域F2pの値が1でない、すなわち、第2遅延あり更新要求フラグ領域F2pにフラグがセットされていないと判断した場合(S72:No)、第2遅延あり領域D2pに記憶されている復元データをEEPROM3に書き込む必要がないため、処理を終了する。
EEPROM書込部12は、第2遅延あり更新要求フラグ領域F2pの値が1である、すなわち、第2遅延あり更新要求フラグ領域F2pにフラグがセットされていると判断した場合(S72:Yes)、ページ番号に対応する変数pから1を引いた数にページサイズを乗じた数を変数aとする(S73)。次に、EEPROM書込部12は、バイト数に対応する変数iを0とする(S74)。次に、EEPROM書込部12は、バイト数に対応する変数iがページサイズよりも小さいか否かを判断する(S75)。EEPROM書込部12は、変数iがページサイズよりも小さいと判断した場合(S75:Yes)、アドレスAE2+a+iのEEPROM3の値を、アドレスAS2+a+iのSRAM23の値とする(S76)。すなわち、EEPROM書込部12は、SRAM23のアドレスAS2+a+iの領域に記憶されている復元データを、EEPROM3のアドレスAE2+a+iの領域に書き込む。次に、EEPROM書込部12は、変数iをi+1とする(S77)。EEPROM書込部12は、変数iがページサイズよりも小さいと判断している間は(S75:Yes)、S75〜S77の処理を繰り返し実行する。EEPROM書込部12は、変数iがページサイズよりも小さくないと判断した場合(S76:No)、処理を終了する。このようにして、EEPROM書込部12は、第2遅延あり領域D2pに記憶されている1ページ分の復元データをEEPROM3に書き込む。
ここで、本実施形態と従来技術とを比較する。例えば、EEPROMが以下のとおりであるとする。
容量 8192バイト
ページサイズ(1ページのバイト数) 32バイト
ページ数 256ページ(=8192/32)
SRAMは、遅延なし領域、第1遅延あり領域、第2遅延あり領域、第1タイマー領域、第2タイマー領域を有する。タイマー領域は、1つで4バイトを必要とする。
図11に示す従来技術の場合、復元データをコピーするための領域が、8192バイト必要である。また、タイマー領域が2つで8バイト(=4×2)必要である。従って、遅延なし領域、第1遅延あり領域、第2遅延あり領域以外に、合計8200バイト(=8192+8)必要となる。
また、チェックサムをSRAMに記憶する従来技術の場合、1ページ単位でチェックサムを計算し、2次元の他方の次元のチェックサムは、各ページ内の同一オフセットアドレスの値の全ページでのチェックサムを計算するとする。この場合、チェックサムを記憶するために、288バイト(=256+32)必要となる。また、タイマー領域が2つで8バイト(=4×2)必要である。従って、遅延なし領域、第1遅延あり領域、第2遅延あり領域以外に、合計296バイト(=288+8)必要となる。
本実施形態の場合、EEPROMが256ページであれば、遅延なし更新要求フラグ領域、第1遅延あり更新要求フラグ領域、第2遅延あり更新要求フラグ領域が、256ビット=32バイト必要である。また、タイマー領域が2つで8バイト(=4×2)必要である。従って、遅延なし領域、第1遅延あり領域、第2遅延あり領域以外に、合計40バイト(=32+8)必要となる。このように、従来技術と比べて、本実施形態は、EEPROMに復元データを書き込むために必要なSRAMの容量が最も少ない。
以上説明したように、本実施形態では、遅延なし領域D01〜D0Nに復元データが書き込まれた場合に、更新要求フラグがセットされる遅延なし更新要求フラグ領域F01〜F0NがSRAM23に設けられている。また、遅延なし更新要求フラグ領域F01〜F0Nにフラグがセットされている場合に、EEPROM書込部12は、遅延なし更新要求フラグ領域F01〜F0Nに対応する遅延なし領域D01〜D0Nに記憶されている復元データをEEPROM3に書き込む。従って、従来のように、チェックサムを計算すること等がないため、簡易な処理で復元データをEEPROM3に書き込むことが可能である。従来と比べて処理が簡易であることは、本実施形態の処理を示す図2と、従来の処理を示す図11と、を見比べることで、把握することも可能である。
また、遅延なし更新要求フラグ領域F01〜F0Nには、フラグがセットされる場合に、「1」というデータ量の少ない情報(1ビット)が記憶されるため、従来のように、復元データのコピー、チェックサムがSRAM23に記憶されない。これにより、SRAM23の容量を多く使用することなく、復元データをSRAM23に書き込むことが可能である。
また、本実施形態では、EEPROM書込部12は、遅延あり更新要求フラグ領域F11〜F2mに更新要求フラグがセットされ、且つ、遅延あり更新抑制フラグ領域F1S,F2Sの更新抑制フラグが消去された場合、すなわち、タイマー領域TIMERD1,TIMERD2による計測時間が所定時間を経過した場合に、遅延あり更新要求フラグ領域F11〜F2mに対応する遅延あり領域D11〜D2mに記憶されている復元データをEEPROM3に書き込む。すなわち、EEPROM書込部12により遅延書き込みが行われる。このため、EEPROM3の書き込み回数が抑制され、EEPROM3の寿命を長くすることが可能となる。
以上、本発明の実施形態について説明したが、本発明を適用可能な形態は、上述の実施形態には限られるものではなく、以下に例示するように、本発明の趣旨を逸脱しない範囲で適宜変更を加えることが可能である。
上述の実施形態では、揮発性メモリとしてSRAMを例示した。これに限らず、揮発性メモリは、DRAM(Dynamic Random Access Memory)等であってもよい。また、不揮発性メモリとして、EEPROMを例示した。これに限らず、不揮発性メモリは、フラッシュメモリ等であってもよい。
上述の実施形態では、SRAM23、EEPROMへのデータの書き込みは、CPU21によりプログラムに従って行われる(ソフトウェア処理)。これに限らず、SRAM23、EEPROMへのデータの書き込みは、CPU以外のハードウェアで行われるようになっていてもよい。
上述の実施形態では、遅延あり更新抑制フラグ領域F1S,F2Sにフラグがセットされている場合、EEPROM書込部12は、遅延あり領域D11〜D2mに記憶されている復元データをEEPROM3に書き込まない。これに限らず、SRAM23に、遅延あり更新抑制フラグ領域F1S,F2Sを設けなくてもよい。この場合、EEPROM書込部12は、タイマー領域TIMERD1,TIMERD2がオーバーフローするまで、遅延あり領域D11〜D2mに記憶されている復元データをEEPROM3に書き込まず、タイマー領域TIMERD1,TIMERD2がオーバーフローした場合、すなわち、タイマー領域TIMERD1,TIMERD2による計測時間が所定時間を経過した場合に、遅延あり領域D11〜D2mに記憶されている復元データをEEPROM3に書き込むようにすればよい。
上述の実施形態では、本発明を適用する電子機器としてAVアンプ1を例示した。揮発性メモリに自機器への電源の供給が遮断されても記憶しておくべき復元データが記憶され、復元データを不揮発性メモリに書き込む電子機器であれば、AVアンプに限られず、パーソナルコンピュータ等であってもよい。
本発明は、例えば、AVアンプやパーソナルコンピュータなどの電子機器に好適に採用され得る。
1 AVアンプ(電子機器)
2 マイクロコンピュータ
3 EEPROM(不揮発性メモリ)
11 SRAM書込部(第1書込部)
12 EEPROM書込部(第2書込部)
21 CPU
23 SRAM(揮発性メモリ)
B 復元不要領域(第1領域)
D01〜D0N 遅延なし領域(第2領域)
D11〜D1n 第1遅延あり領域(第3領域)
D21〜D2m 第2遅延あり領域(第3領域)
F01〜F0N 遅延なし更新要求フラグ領域(第1フラグ領域)
F11〜F1n 第1遅延あり更新要求フラグ領域(第2フラグ領域)
F21〜F2m 第2遅延あり更新要求フラグ領域(第2フラグ領域)
F1S 第1遅延あり更新抑制フラグ領域(第3フラグ領域)
F2S 第2遅延あり更新要求フラグ領域(第3フラグ領域)

Claims (4)

  1. 第1領域と、自機器への電源の供給が遮断されても記憶しておくべき復元データが記憶される第2領域と、前記第2領域に対応して第1フラグがセットされる第1フラグ領域と、を有する揮発性メモリと、
    不揮発性メモリと、
    前記揮発性メモリに前記復元データを含むデータを書き込む第1書込部と、
    前記第2領域に記憶されている前記復元データを前記不揮発性メモリに書き込む第2書込部と、を備え、
    前記第1書込部は、前記復元データを書き込んだ前記第2領域に対応する前記第1フラグ領域に前記第1フラグをセットし、
    前記第2書込部は、前記第1フラグ領域に前記第1フラグがセットされている場合に、前記第1フラグ領域に対応する前記第2領域に記憶されている前記復元データを前記不揮発性メモリに書き込むこと
    を特徴とする電子機器。
  2. 前記揮発性メモリは、
    遅延して前記不揮発性メモリに書き込まれる前記復元データが記憶される第3領域と、
    前記第3領域に対応して第2フラグがセットされる第2フラグ領域と、
    時間を計測するためのタイマー領域と、
    をさらに有し、
    前記第1書込部は、前記復元データを書き込んだ前記第3領域に対応する前記第2フラグ領域に前記第2フラグをセットし、且つ、前記タイマー領域による時間計測をスタートさせ、
    前記第2書込部は、前記第2フラグ領域に前記第2フラグがセットされた後、前記タイマー領域による計測時間が所定時間を経過した場合に、前記第2フラグ領域に対応する前記第3領域に記憶されている前記復元データを前記不揮発性メモリに書き込むことを特徴とする請求項1に記載の電子機器。
  3. 前記揮発性メモリは、
    遅延して前記不揮発性メモリに書き込まれる前記復元データが記憶される第3領域と、
    前記第3領域に対応して第2フラグがセットされる第2フラグ領域と、
    前記第2書込部による前記不揮発性メモリへの前記復元データの書き込みを禁止するための第3フラグがセットされる第3フラグ領域と、
    時間を計測するためのタイマー領域と、
    をさらに有し、
    前記第1書込部は、
    前記復元データを書き込んだ前記第3領域に対応する前記第2フラグ領域に前記第2フラグをセットし、前記第3フラグ領域に前記第3フラグをセットし、且つ、前記タイマー領域による時間計測をスタートさせ、
    前記タイマー領域による計測時間が所定時間を経過した場合に、前記第3フラグ領域の前記第3フラグを消去し、
    前記第2書込部は、前記第2フラグ領域に前記第2フラグがセットされ、且つ、前記第3フラグ領域の前記第3フラグが消去された場合に、前記第2フラグ領域に対応する前記第3領域に記憶されている前記復元データを前記不揮発性メモリに書き込むことを特徴とする請求項1に記載の電子機器。
  4. 前記第1書込部は、
    前記揮発性メモリのアドレスに基づいて、どの領域に前記データを書き込んだかを判断し、
    前記第2領域に前記復元データを書き込んだと判断した場合に、前記復元データを書き込んだ前記第2領域に対応する前記第1フラグ領域に前記第1フラグをセットし、
    前記第3領域に前記復元データを書き込んだと判断した場合に、前記復元データを書き込んだ前記第3領域に対応する前記第2フラグ領域に前記第2フラグをセットし、前記第3フラグ領域に前記第3フラグをセットし、且つ、前記タイマー領域による時間計測をスタートさせることを特徴とする請求項3に記載の電子機器。
JP2013263790A 2013-12-20 2013-12-20 電子機器 Active JP5811167B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013263790A JP5811167B2 (ja) 2013-12-20 2013-12-20 電子機器
US14/568,379 US9471487B2 (en) 2013-12-20 2014-12-12 Data restoration in electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013263790A JP5811167B2 (ja) 2013-12-20 2013-12-20 電子機器

Publications (2)

Publication Number Publication Date
JP2015121839A JP2015121839A (ja) 2015-07-02
JP5811167B2 true JP5811167B2 (ja) 2015-11-11

Family

ID=53400054

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013263790A Active JP5811167B2 (ja) 2013-12-20 2013-12-20 電子機器

Country Status (2)

Country Link
US (1) US9471487B2 (ja)
JP (1) JP5811167B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037625B2 (en) * 2012-11-20 2021-06-15 Thstyme Bermuda Limited Solid state drive architectures
MX364783B (es) * 2012-11-20 2019-05-07 Thstyme Bermuda Ltd Estructuras de unidades de estado sólido.

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0789337B2 (ja) * 1985-10-30 1995-09-27 株式会社日立製作所 分散ファイル回復方法
JP2897281B2 (ja) 1989-10-02 1999-05-31 ヤマハ株式会社 演奏情報入力装置
JPH0613216U (ja) 1991-12-12 1994-02-18 日本コロムビア株式会社 車載用オーディオ装置
JP3654064B2 (ja) 1999-07-14 2005-06-02 オンキヨー株式会社 音量制御装置
JP4188744B2 (ja) * 2003-04-08 2008-11-26 株式会社ルネサステクノロジ メモリカード
KR100608012B1 (ko) * 2004-11-05 2006-08-02 삼성전자주식회사 데이터 백업 방법 및 장치
US7552282B1 (en) * 2004-08-04 2009-06-23 Emc Corporation Method, computer readable medium, and data storage system for selective data replication of cached data
JP2008033788A (ja) * 2006-07-31 2008-02-14 Matsushita Electric Ind Co Ltd 不揮発性記憶装置、データ記憶システム、およびデータ記憶方法
US7805632B1 (en) * 2007-09-24 2010-09-28 Net App, Inc. Storage system and method for rapidly recovering from a system failure
JP4636118B2 (ja) * 2008-05-12 2011-02-23 株式会社デンソー 電子機器及びプログラム
JP4691602B2 (ja) * 2009-03-19 2011-06-01 富士通株式会社 データバックアップ方法及び情報処理装置
TWI385523B (zh) * 2009-11-06 2013-02-11 Phison Electronics Corp 用於快閃記憶體的資料備份方法及其控制器與儲存系統
JP5594518B2 (ja) 2010-04-26 2014-09-24 日本精機株式会社 車両用制御装置
JP2012103967A (ja) * 2010-11-11 2012-05-31 Fujitsu Semiconductor Ltd 情報処理装置及びそのデータ退避方法
JP2012137881A (ja) 2010-12-24 2012-07-19 Onkyo Corp 電気機器
US20130179715A1 (en) * 2012-01-10 2013-07-11 Texas Instruments Incorporated Systems and methods for reducing energy consumption in sensor networks

Also Published As

Publication number Publication date
US9471487B2 (en) 2016-10-18
US20150177992A1 (en) 2015-06-25
JP2015121839A (ja) 2015-07-02

Similar Documents

Publication Publication Date Title
US8078923B2 (en) Semiconductor memory device with error correction
TWI475569B (zh) 延遲記憶體壽命減少操作之系統、方法及電腦程式產品
US20100017557A1 (en) Memory controller, nonvolatile memory device,access device, and nonvolatile memory system
TW201245959A (en) Dynamic and static data for a system having non-volatile memory
JP4131967B2 (ja) メモリコントローラ
JP2010039983A (ja) 不揮発性メモリ制御方法及び半導体装置
US7904674B2 (en) Method for controlling semiconductor memory device
JP5811167B2 (ja) 電子機器
JP2009037317A (ja) メモリーコントローラ、及びこれを用いた不揮発性記憶装置並びに不揮発性記憶システム
JP2007250101A (ja) 不揮発性メモリ装置および不揮発性メモリ装置の制御方法
US20180314626A1 (en) Storage device, control method and access system
JP2008276832A (ja) 半導体記憶装置およびその駆動方法
US7958345B2 (en) Method for adjusting setup default value of BIOS and main board thereof
US20080183966A1 (en) Electronic system for informing term-of-validity and/or endurance data and method thereof
JP2020119007A (ja) 情報処理装置、記憶制御装置および記憶制御プログラム
JP2005267761A (ja) フラッシュメモリの劣化監視方法
JP2009009279A (ja) メモリコントローラ、不揮発性記憶モジュール、及び不揮発性記憶システム
TWI410981B (zh) 資料保護方法及應用其之記憶體
JP6636930B2 (ja) フラッシュメモリ内蔵マイコン、マイコンに内蔵されたフラッシュメモリへのデータ書込み方法、および、フラッシュメモリへのデータを書込むプログラム
JP2011175361A (ja) データ記憶装置及びデータ記憶方法
TWI643196B (zh) 快閃記憶體裝置及其資料讀取方法
JP2012123498A (ja) 時系列データを保存する情報処理装置および方法
JP4818453B1 (ja) 電子機器およびデータ読み出し方法
JP2008226309A (ja) 情報記録装置、および情報記録方法
JP2006164354A (ja) カウンタ装置およびカウント方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150331

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150723

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150818

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150831

R150 Certificate of patent or registration of utility model

Ref document number: 5811167

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250