(57)【特許請求の範囲】
【請求項１】
中央処理装置と、
前記中央処理装置に接続されたＥＥＰＲＯＭと、
前記中央処理装置に接続された一時記憶手段と、
を備え、
前記中央処理装置は、前記ＥＥＰＲＯＭから記憶データを読み出して前記一時記憶手段に記憶した後、再び前記一時記憶手段から前記ＥＥＰＲＯＭの元アドレスに書き戻す上書き処理を時分割で実行し、
前記上書き処理の一回の処理時間は、前記中央処理装置のタイマー割り込みの周期であるシステム時間のカウント周期よりも短く設定される、
データ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを記憶するフラッシュメモリなどのＥＥＰＲＯＭを備えるデータ記憶装置に関するものである。
【背景技術】
【０００２】
フラッシュメモリは、メモリセル内の制御ゲートと半導体素子との間における、酸化膜に囲まれた領域に電荷を蓄積することで、電源を切った後でもデータを保持することが可能な半導体記憶装置である。フラッシュメモリにおいては、酸化膜の特性劣化や製造上の欠陥などにより、時間経過とともに電荷が変化してデータ化けすることがある。
【０００３】
この対策として、特許文献１には、２つのフラッシュメモリに同じデータを記憶して、２つのデータ同士の各値の論理積を取った値を正しい値とする技術が開示されている。また、特許文献２には、正データとその否定して得られる副データとで二重化し、正データと副データの排他的論理和を計算してデータ化けを検出し、その検出結果に応じて正しい値を書き込む技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平９−１６０８３４号公報
【特許文献２】特開平１１−２７２５６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のようなデータ化けの対策では、同じデータを二重化したり、正データと副データとで二重化したりして、それらを記憶する必要があることから、フラッシュメモリの記憶容量が２倍必要であるという問題があった。また、データを書き込む際に、例えば停電等が発生して電源が供給されなくなると、多くのデータが消失してしまうという問題があった。
【０００６】
そこで、本発明は、上記のような問題点を鑑みてなされたものであり、フラッシュメモリなどのＥＥＰＲＯＭにおいて、データ変化を防止する専用の記憶容量を設けなくても、データ変化を防止可能にするとともに、データ消失を抑制可能な技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ記憶装置は、中央処理装置と、前記中央処理装置に接続されたＥＥＰＲＯＭと、前記中央処理装置に接続された一時記憶手段とを備える。そして、前記中央処理装置は、前記ＥＥＰＲＯＭから記憶データを読み出して前記一時記憶手段に記憶した後、再び前記一時記憶手段から前記ＥＥＰＲＯＭの元アドレスに書き戻す上書き処理を時分割で実行し、前記上書き処理の一回の処理時間は、前記中央処理装置のタイマー割り込みの周期であるシステム時間のカウント周期よりも短く設定される。
【発明の効果】
【０００８】
本発明によれば、データを一時記憶手段に一時的に記憶することから、ＥＥＰＲＯＭにおいて、データ変化を防止するための専用の記憶容量が不要となる。したがって、記憶容量の小さいＥＥＰＲＯＭを使用することができる。また、ＥＥＰＲＯＭに存在するデータを消去する処理を行わずに、一時記憶手段から読み出したデータをＥＥＰＲＯＭの元アドレスに上書きすることができるため、ＥＥＰＲＯＭにデータ書き込み中に停電などが発生しても、データが消失するのを抑制することができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係るデータ記憶装置の構成を示すブロック図である。
【図２】実施の形態１に係るデータ記憶装置の動作を示すフローチャートである。
【図３】実施の形態２に係る監視記録装置の構成を示すブロック図である。
【図４】実施の形態２に係る監視記録装置の動作を示すフローチャートである。
【図５】実施の形態２に係る監視記録装置の動作と比較される動作を示す図である。
【図６】実施の形態２に係る監視記録装置の動作を示す図である。
【図７】実施の形態３に係る監視記録装置の動作を示す図である。
【図８】実施の形態３に係る監視記録装置の動作と比較される動作を示す図である。
【図９】実施の形態３に係る監視記録装置の動作を示す図である。
【発明を実施するための形態】
【００１０】
＜実施の形態１＞
図１は、本発明の実施の形態１に係るデータ記憶装置を示すブロック図である。図に示すように、データ記憶装置５１は、中央処理装置（以下、「ＣＰＵ１」と呼ぶ）と、フラッシュメモリ２と、書き込み可能なメモリであるＲＡＭ（Random Access Memory）３とを備える。
【００１１】
ＣＰＵ１は、動作プログラムを読込んでデータ記憶装置５１を統括的に制御する。このＣＰＵ１には、プログラムの動作中に必要な値、例えば、データ転送先の開始アドレスが一時的に保持されるレジスタ４，５が設けられている。
【００１２】
フラッシュメモリ２は、ＥＥＰＲＯＭ（Electrically Erasable PROM）の一種である。このフラッシュメモリ２には、ＣＰＵ１が処理する動作プログラムや設定情報が記憶されている。
【００１３】
ＲＡＭ３は、一時記憶手段であり、フラッシュメモリ２からの動作プログラムや設定情報が書き込まれるプログラム領域と、動作処理実行中に必要なデータが一時的に書き込まれる作業領域とを有している。
【００１４】
ＣＰＵ１は、バス５０を介してフラッシュメモリ２と接続されており、動作プログラム及び設定情報のデータや、当該データのフラッシュメモリ２上のアドレスなどを、バス５０を介してフラッシュメモリ２と入出力可能となっている。また、ＣＰＵ１は、バス５０を介してＲＡＭ３と接続されており、動作処理実行中に必要なデータや、当該データのＲＡＭ３上のアドレスなどを、バス５０を介してＲＡＭ３と入出力可能となっている。
【００１５】
さて、一般的なフラッシュメモリは、複数のメモリセル（図示しない）を有し、当該メモリセルにおいて電荷が蓄積された状態を１ビットの「０」などとし、当該メモリセルにおいて電荷が放電された状態を１ビットの「１」などとすることによってデータを記憶している。このようなフラッシュメモリにおいては、メモリセルに蓄積された電荷が時間経過とともに減少することから、例えばビット値が「０」から「１」と変化してデータが誤って変化する「データ化け」が生じてしまうことがある。このデータ化けを防ぐ技術は存在するものの、フラッシュメモリに、データ化け防止専用の記憶容量（記憶領域）を設けることが必要となっている。
【００１６】
そこで、本実施の形態に係るデータ記憶装置５１は、フラッシュメモリ２において、データ化け防止専用の記憶容量を設けなくてもデータ化けを防止可能となっている。以下、このようなデータ記憶装置５１の動作について説明する。
【００１７】
図２は、本実施の形態に係るデータ記憶装置５１の動作を示すフローチャートである。概略について説明すると、ステップＳ１にてフラッシュメモリ２に記憶されているデータがＲＡＭ３に書き込まれ、ステップＳ２にてＲＡＭ３に書き込まれたデータがフラッシュメモリ２の元アドレスに書き込まれる。そして、ステップＳ３にてステップＳ１，Ｓ２が全データに対して行われたかが判定され、全データに対して行われていない場合には、ステップＳ４にて読み出し対象となるアドレスが次のアドレスに進められる。この動作は、ＣＰＵ１により、一日一回など予め決められた周期で行われる。
【００１８】
次に、本実施の形態に係るデータ記憶装置５１の動作について図２を用いて詳細に説明する。
【００１９】
まず、ステップＳ１にて、ＣＰＵ１は、バス５０を介して、フラッシュメモリ２に記憶されている動作プログラム及び設定情報などのデータと、このデータのフラッシュメモリ２上のアドレスとを読み出す。ステップＳ１が初めて行われる場合には、ＣＰＵ１は先頭のアドレスを読み出す。それから、ＣＰＵ１は、読み出したデータをＲＡＭ３の空き領域に書き込む。それとともに、ＣＰＵ１は、当該データが読み出されたフラッシュメモリ２上のアドレス（以下、「元アドレス」と呼ぶこともある）をレジスタ４に記憶し、当該データが書き込まれたＲＡＭ３上のアドレスをレジスタ５に記憶する。
【００２０】
ステップＳ２にて、ＣＰＵ１は、ステップＳ１で書き込まれたＲＡＭ３上のアドレスをレジスタ５から読み出し、ステップＳ１でＲＡＭ３上の当該アドレスに書き込まれたデータを読み出す。そして、ＣＰＵ１は、元アドレスをレジスタ４から読み出し、ＲＡＭ３から読み出したデータをフラッシュメモリ２の当該元アドレスに上書きする。
【００２１】
ＣＰＵ１は、この上書き動作を、フラッシュメモリ２においてデータ化けが生じる前に行う。したがって、フラッシュメモリ２において時間経過とともに減少していた電荷が、データ化けが生じる前に十分な大きさまで回復する。よって、フラッシュメモリ２におけるデータ化けを防ぐことができる。以下、このデータ化けを防ぐ上書き動作を、「データ化け対策処理」と呼ぶこともある。
【００２２】
次に、ＲＡＭ３から読み出したデータを元アドレスに上書きする利点について説明する。なお、以下の説明において、「電荷状態」は電荷が蓄積された状態、及び、電荷が放電された状態のいずれかを示すものとする。一般に、フラッシュメモリにおいて、１ビットの「１」を示すデータが書き込まれたときの電荷状態と、１ビットの「０」を示すデータが書き込まれたときの電荷状態とは互いに異なる。そのため、どちらかの電荷状態がメモリセルに蓄積されている場合に、そのまま新しいデータを示す電荷状態を同じメモリセルに蓄積すると、電荷状態が混じってしまい、新しいデータが正しく記憶されなくなる場合がある。
【００２３】
それを防ぐため、一般的なフラッシュメモリにおいては、メモリセル（アドレス）に新しいデータを書き込む際に、当該メモリセル（アドレス）の電荷状態を一度消去してから、新しいデータを示す電荷状態を当該メモリセル（アドレス）に形成している。しかし、メモリセル（アドレス）の電荷状態を消去した後に、停電などが発生して電源供給が急に停止すると、多くのデータが消失してしまい、結果として、プログラムに誤りが生じたり、設定を復元できなかったりしてしまう可能性がある。
【００２４】
それに対し、本実施の形態では、ＣＰＵ１が、同一アドレスにおいて、元のデータと同じ新しいデータを上書きすることによってデータ化け対策処理を行うことから、フラッシュメモリ２においては、電荷が蓄積されていたメモリセル（アドレス）には電荷が蓄積されたままとなり、電荷が放電されていたメモリセル（アドレス）には電荷が放電されたままとなる。したがって、メモリセルに蓄積されていた電荷状態と、新しいデータの電荷状態とが互いに一致することから、元のデータの電荷を消去する処理を行わずにそのまま新しいデータを上書きしても、新しいデータを正しく記憶することができる。
【００２５】
そこで、本実施の形態に係るＣＰＵ１においては、フラッシュメモリ２に存在するデータを消去する処理を行わずに、ＲＡＭ３から読み出したデータをフラッシュメモリ２の元アドレスに書き込むようにしている。その結果、フラッシュメモリ２のデータ化け対策処理中に停電などが生じても、フラッシュメモリ２の元のデータは消去されずに残ることから、データ化け対策処理中に多くのデータが消失するのを抑制することができる。よって、停電等により、プログラムに誤りが生じたり、設定を復元できなかったりする問題が発生するのを抑制することが可能となっている。
【００２６】
ステップＳ３にて、ＣＰＵ１は、フラッシュメモリ２の全アドレスに対して、ステップＳ１，Ｓ２の動作が行われたかを判定する。つまり、ＣＰＵ１は、フラッシュメモリ２に記憶されている全データが書き戻されたかを判定する。
【００２７】
ステップＳ３において、ＣＰＵ１は、全データが書き戻されたと判定した場合には、フラッシュメモリ２においてデータが記憶されている先頭のアドレスから再びステップＳ１を行う。ステップＳ３において、ＣＰＵ１は、全データが書き戻されたと判定しなかった場合には、ステップＳ４にて読み出す対象のアドレスを次のアドレスに進めた後、再びステップＳ１を行う。このループ動作により、フラッシュメモリ２に記憶されている全データは書き戻される。つまり、フラッシュメモリ２に記憶されている全データに対して、データ化け対策処理が行われる。
【００２８】
以上のようなデータ記憶装置５１によれば、フラッシュメモリ２にデータを二重化して記憶する代わりに、当該データをＲＡＭ３に一時的に記憶することから、データ化け防止専用の記憶容量が不要となる。したがって、記憶容量の小さいフラッシュメモリ２を使用することができる。また、本実施の形態では、同一のデータが同一アドレスに上書きされるため、フラッシュメモリ２に存在するデータを消去する処理を行わずに、ＲＡＭ３から読み出したデータをフラッシュメモリ２の元アドレスに書き込むことが可能となる。したがって、フラッシュメモリ２のデータ化け対策処理中に停電などが発生しても、データが消失するのを抑制することができ、プログラムに誤りが生じたり、設定を復元できなかったりするのを抑制することができる。
【００２９】
なお、フラッシュメモリ２の電荷が減少してデータ化けが生じる期間は、フラッシュメモリ２の酸化膜の劣化特性や製造状の欠陥の状態等に起因することから、個々に差異があるものの、数ヶ月以上の期間でデータ化けが発生する場合が多い。したがって、書き戻しの周期は、データ化けが生じる期間（数ヶ月以上）よりも短いことが必要である。また、フラッシュメモリ２の書き換え保証回数に至る期間が、フラッシュメモリ２を搭載する搭載装置の製品寿命（数十年程度）よりも長くなるように、書き戻しの周期は長くされることが望ましい。
【００３０】
そこで、例えば、書き戻しの周期を一日一回とすると、書き戻しの周期をデータ化けが生じる期間（数ヶ月以上）よりも十分短くすることができる。そして、書き換え保証回数が１０万回である場合には、保証回数に至る期間は２７０年となることから、搭載装置の製品寿命（数十年程度）よりも十分長くすることができる。
【００３１】
また、以上の説明では、本実施の形態に係るデータ記憶装置５１は、フラッシュメモリ２を備えるものとした。しかし、これに限ったものではなく、データ記憶装置５１は、フラッシュメモリ２を含む、より広い概念であるＥＥＰＲＯＭを備えるものであっても、上述と同じ効果を得ることができる。
【００３２】
＜実施の形態２＞
図３は、本発明の実施の形態２に係る監視記録装置を示すブロック図である。以下、本実施の形態に係る監視記録装置５６のブロック構成において、実施の形態１と同一の部分には同一符号を付与し、以下においては実施の形態１と異なる部分を中心に説明する。
【００３３】
図に示すように、監視記録装置５６は、実施の形態１に係るデータ記憶装置５１に、起動スイッチ６と、記録ボタン７と、カメラ入力端子８と、映像信号アナログデジタル変換回路（以下、「映像信号Ａ／Ｄ回路９」と呼ぶ）と、映像圧縮回路１０と、データ転送回路１１と、ハードディスク装置（以下、「ＨＤＤ１２」と呼ぶ）と、映像伸張回路１３と、映像信号デジタルアナログ変換回路（以下、「映像信号Ｄ／Ａ回路１４」と呼ぶ）と、映像信号出力端子１５とが加わったものとなっている。
【００３４】
ＣＰＵ１は、映像信号Ａ／Ｄ回路９、映像圧縮回路１０、データ転送回路１１、映像伸張回路１３及び映像信号Ｄ／Ａ回路１４のそれぞれとバス５０を介して接続されており、これらとの間で、アドレス及びデータが入出力可能となっている。
【００３５】
起動スイッチ６は、監視記録装置５６において、映像データの記録等の動作モードを実行可能な待機状態にするためのスイッチである。記録ボタン７は、映像データの記録を開始するためのボタンである。複数のカメラ入力端子８は、複数の監視カメラ（図示しない）から出力されたアナログ形式の映像信号が入力される端子である。
【００３６】
映像信号Ａ／Ｄ回路９は、各カメラ入力端子８からのアナログ形式の映像信号を、デジタル形式の映像データに変換する。映像圧縮回路１０は、映像データを映像圧縮してデータ量のより少ない映像圧縮データを生成する。データ転送回路１１は、映像圧縮回路から映像圧縮データを受け取り、ＣＰＵ１の制御により、映像圧縮データを必要とする回路に出力する。ＨＤＤ１２は映像圧縮データを記憶する。映像伸張回路１３は、映像圧縮データを、元のデータ量を有する映像データに復元する。映像信号Ｄ／Ａ回路１４は、復元されたデジタル形式の映像データを、アナログ形式の映像信号に変換する。映像信号Ｄ／Ａ回路１４で生成された映像信号は、映像表示装置（図示しない）などと接続される映像信号出力端子１５に出力される。
【００３７】
図４は、本実施の形態に係る監視記録装置５６において、監視カメラの映像データをＨＤＤ１２に記録する際の動作を示すフローチャートである。次に、この動作を図４に示されるフローチャートに沿って説明する。
【００３８】
まず、ステップＳ１１にて監視記録装置５６に電源が供給されると、ステップＳ１２にて、ＣＰＵ１は、以下の処理を開始し、フラッシュメモリ２から動作プログラム及び設定情報などのデータ及びアドレスを読み出し、読み出したデータをＲＡＭ３に書き込む。
【００３９】
ＲＡＭ３へのデータの書込みが完了すると、ステップＳ１３にて、ＣＰＵ１はＲＡＭ３に記憶された動作プログラムの待機処理を実行して待機状態に移行する。ＣＰＵ１が待機状態となると、ステップＳ２２〜Ｓ２７においてデータ化け対策処理を行う。
【００４０】
本実施の形態では、ＣＰＵ１が、ステップＳ１４〜Ｓ２１において記録処理等を行う場合にも、当該処理の間欠的な合間にデータ化け対策処理を行うことにより、記録処理とデータ化け対策処理とを並行して行うことが可能となっている。以下、このことについて詳細に説明する。
【００４１】
まず、ステップＳ１４〜Ｓ２１で行われる記録処理について説明する。ステップＳ１４にて、ＣＰＵ１は、起動スイッチ６の入力を受け付けると、ＲＡＭ３上の動作プログラムの稼動処理を開始する。そして、ステップＳ１５にて、ＣＰＵ１は、映像信号Ａ／Ｄ回路９、映像圧縮回路１０、データ転送回路１１、映像伸張回路１３及び映像信号Ｄ／Ａ回路１４の設定レジスタをアドレス指定しながら、初期値を順次書き込んで初期設定を行い、停止状態に移行する。停止状態では、記録処理・バックアップ処理・再生処理などの動作モードを実行することが可能であり、同時に複数の動作モードを実行することも可能である。
【００４２】
ステップＳ１６にて、ＣＰＵ１は、記録ボタン７の押下げを受け付けると、ステップＳ１７にて、カメラ入力端子８から入力される監視カメラのアナログ映像信号を、映像信号Ａ／Ｄ回路９によりデジタル形式の映像データに変換する。そして、ＣＰＵ１は、映像データを映像圧縮回路１０に入力して映像圧縮することにより、映像圧縮データを生成する。ステップＳ１８にて、ＣＰＵ１は、映像圧縮データの記録日時情報や、ＨＤＤ１２に書き込むときの書き込みの位置情報、前後データのつながり情報などの管理情報を作成し、ＲＡＭ３の作業領域に記憶する。
【００４３】
ステップＳ１９にて、ＣＰＵ１は、映像圧縮データ及び管理情報をそれぞれ映像圧縮回路１０及びＲＡＭ３から読み出し、データ転送回路１１を介して、映像圧縮データをＨＤＤ１２の映像データ領域に記録するとともに、管理情報をＨＤＤ１２の管理情報領域に記録する。また、同ステップＳ１９にて、ＣＰＵ１は、映像圧縮回路１０からデータ転送回路１１に入力する映像圧縮データを映像伸張回路１３にも出力する。映像伸張回路１３に入力された映像圧縮データは伸張処理されて映像データに復元される。復元された映像データは、ＣＰＵ１の制御により映像伸張回路１３から映像信号Ｄ／Ａ回路１４に出力され、映像信号Ｄ／Ａ回路１４によりアナログ形式の映像信号に変換される。映像信号は、映像信号出力端子１５に出力された後、外部の表示モニターなどにおいて表示される。映像カメラの映像は使用者によって監視される。
【００４４】
ステップＳ１９の後、ステップＳ２０にて、ＣＰＵ１は、記録ボタン７の押下げを受け付けるまで、ステップＳ１１からステップＳ１３の処理を繰り返し、監視カメラの映像とその管理情報をＨＤＤ１２に記録し続ける。ステップＳ２０にて、ＣＰＵ１は、記録ボタン７の押下げを受け付けると、ステップＳ２１にて記録を停止して、停止状態に移行した後ステップＳ１６に移行する。
【００４５】
次にデータ化け対策処理について説明する。上述したように、ステップＳ１３にて、ＣＰＵ１がＲＡＭ３上の動作プログラムの待機処理を実行して待機状態に移行すると、フラッシュメモリ２のデータ化け対策処理が開始される。その後、待機状態から、停止状態、記録処理、バックアップ処理及び再生処理などの各動作モードに移行しても、ＣＰＵ１は、これらに並行してデータ化け対策処理を行う。以下、記録処理と並行してデータ化け対策処理を行う動作についてステップＳ２２〜Ｓ２７に沿って詳細に説明する。
【００４６】
まず、ステップＳ２２にて、ＣＰＵ１は、記録処理などの他の処理が、データ化け対策処理の実行中にフラッシュメモリ２への読み出しまたは書き込みするのを禁止する排他処理を実施する。これにより、データ化け対策処理の実行中に、他の処理によるフラッシュメモリ２への読み出しまたは書き込みが発生することがなくなることから、データ化け対策処理及び他の処理のそれぞれに予期しない影響が発生することが防止されている。なお、排他処理は、実施後、解除されるまで継続される。
【００４７】
ステップＳ２３にて、ＣＰＵ１は、フラッシュメモリ２のデータ化け対策処理を時間分割して行うべく、フラッシュメモリ２に記憶されたデータの一部分を読み出す。例えば、ＣＰＵ１は、フラッシュメモリ２の全記憶容量３２メガバイトに対して５１２バイトのデータを読み出す。そして、ＣＰＵ１は、読み出したデータをＲＡＭ３の空き領域に書き込む。それとともに、ＣＰＵ１は、当該データが読み出されたフラッシュメモリ２上のアドレスをレジスタ４に記憶し、当該データが書き込まれたＲＡＭ３上のアドレスをレジスタ５に記憶する。
【００４８】
ステップＳ２４にて、ＣＰＵ１は、実施の形態１のステップＳ２と同様、ステップＳ１で書き込まれたＲＡＭ３上のアドレスをレジスタ５から読み出し、ステップＳ２３でＲＡＭ３上の当該アドレスに書き込まれたデータを読み出す。そして、ＣＰＵ１は、元アドレスをレジスタ４から読み出し、ＲＡＭ３から読み出したデータをフラッシュメモリ２の当該元アドレスに上書きすることにより、データ化け対策処理を行う。
【００４９】
ステップＳ２５にて、ＣＰＵ１は、次の５１２バイトのデータに対してデータ化け対策処理を行う前に、他の処理によるフラッシュメモリ２への読み出しまたは書き込みを許可すべく排他処理を解除する。それと同じタイミングで、ステップＳ２６にて、データ化け対策処理を一定時間、例えば、２秒間停止する。それから、一定時間経過したステップＳ２７にて、ＣＰＵ１は、フラッシュメモリ２からデータを読み出すべきアドレスを５１２バイト進めて、フラッシュメモリ２における別のアドレスのデータに対してデータ化け対策処理を行うようにする。そして、ＣＰＵ１は、再びステップＳ２２〜Ｓ２７以降の動作を行う。
【００５０】
このように、本実施の形態では、約２秒周期で５１２バイトのデータごとにフラッシュメモリ２のデータ化け対策処理を行うことにより、ＣＰＵ１におけるデータ化け対策処理の負荷を分散させている。なお、フラッシュメモリ２の記憶容量が３２メガバイトである場合に、データ化け対策処理を全記憶容量に対して行うためには、次の式（１）に示されるように約１．５日かかる。フラッシュメモリ２の後尾のアドレスまでデータ化け対策処理を行った場合には、先頭のアドレスから再びアドレス順にデータ化け対策処理を行う。
【００５１】
【数１】
0005495885.tif 000002
【００５２】
以上のような本実施の形態に係る監視記録装置５６においても、実施の形態１と同様に、ＲＡＭ３から読み出したデータをフラッシュメモリ２の元アドレスに上書きすることから、データ化け対策処理中に停電などが発生しても、データが消失するのを抑制することができる。よって、プログラムに誤りが生じたり、設定を復元できなかったりする問題が発生するのを抑制することができる。
【００５３】
さて、一般に、監視記録装置は、監視カメラの映像を休み無く２４時間３６５日、常時記録するような運用で使用される場合が多い。そのため、監視記録装置は、常時記録しながら、複数の処理、例えば、ＨＤＤが故障しても情報が取得できるように情報を二重化して別のＨＤＤに映像データを記憶するバックアップ処理や、必要な時刻の映像を検索して再生する再生処理が並行して行えるように構成されている。これら処理が破綻しないで並行して行うことができる最大数（以下、「最大並行処理数」と呼ぶこともある）はＣＰＵの処理能力に依存するが、この最大並行処理数を保ったままデータ化け対策処理を追加して行おうとすると、高い処理能力のＣＰＵが必要となる。しかし、ＣＰＵは処理能力が高いほどその価格は高くなる。
【００５４】
そこで、図４を用いて説明したＣＰＵ１の処理によれば、フラッシュメモリ２のデータ化け対策処理がＣＰＵ１の処理量を一度に占有する時間が短く、かつ、時間的に分散されていることから、ＣＰＵ１に必要な処理能力が低減可能となっている。つまり、低価格なＣＰＵ１を監視記録装置に使用することが可能となっている。以下、このことについて詳細に説明する前に、対比される処理について説明する。
【００５５】
図５は、図４を用いて説明したＣＰＵ１の処理と対比される処理を示す図である。図５に示されるＣＰＵ１の処理は、図４に係るＣＰＵ１の処理と、データ化け対策処理の間隔が異なっている。図５に示される例では、記録処理Ａ及びバックアップ処理Ｂは常時行われており、再生処理Ｃは、過去の映像確認が必要になって再生操作が行われた場合に開始される。そして、フラッシュメモリ２の全記憶容量（３２メガバイト）に対するデータ化け対策処理Ｄが、短い時間になるべく集中して実施されており、当該実施が一日間隔で繰り返される。なお、一日におけるデータ化け対策処理Ｄの開始から終了までの処理時間は、記録処理Ａなどの他の処理状況によって異なる。
【００５６】
図５の下側には、時間軸を拡大した拡大図が示されている。データ化け対策処理Ｄは、記録処理Ａなどの他の処理によるフラッシュメモリ２への書き込み及び読み出しが禁止される排他処理とともに実行される。そして、ＣＰＵ１は、データ化け対策処理Ｄを、他の処理と時分割で実行することにより、大きな時間単位で見れば、データ化け対策処理Ｄを他の処理と並行して行うことができるようになっている。
【００５７】
図５の拡大図に示されるように、同図に係るＣＰＵ１は、記録処理Ａ１、バックアップ処理Ｂ１、再生処理Ｃ１、データ化け対策処理Ｄ１、記録処理Ａ２、・・・を順次行う。しかし、データ化け対策処理Ｄが他の処理と同じ割合で行われると、他の処理に破綻が生じる可能性が多少ある。それに対し、図４に係るＣＰＵ１では、その可能性が抑制されている。
【００５８】
図６は、図４に係るＣＰＵ１の処理を示す図である。図６に示される処理においても記録処理Ａ、バックアップ処理Ｂ及び再生処理Ｃが行われている。そして、データ化け対策処理Ｄが、フラッシュメモリ２の全記憶容量（３２メガバイト）のうち５１２バイトに対して実施されており、当該実施が約２秒間隔で繰り返される。この場合に、フラッシュメモリ２の全記憶容量（３２メガバイト）に対してデータ化け対策処理Ｄが一巡して実施されるのにかかる時間は、上述の式（１）で示したように約１．５日である。
【００５９】
図６の下側には、時間軸を拡大した拡大図が示されている。図６に係るデータ化け対策処理Ｄは、図５に係るデータ化け対策処理Ｄと同様に、記録処理Ａなどの他の処理によるフラッシュメモリ２への書き込み及び読み出しが禁止される排他処理とともに実行される。そして、ＣＰＵ１は、データ化け対策処理Ｄを、他の処理と時分割で実行することにより、大きな時間単位で見れば、データ化け対策処理Ｄを他の処理と並行して行うことができるようになっている。
【００６０】
この図６に係るデータ化け対策処理Ｄが、図５に係るデータ化け対策処理Ｄと異なる点は、５１２バイトのデータに対するデータ化け対策処理が例えば約２ミリ秒で終了すると、約２秒経過するまで、次の５１２バイトのデータに対するデータ化け対策処理を停止する点である。つまり、図６に示される処理においては、図５に示される処理に比べて、データ化け対策処理Ｄの単位時間当たりの割合が、他の処理（記録処理Ａ、バックアップ処理Ｂ、再生処理Ｃ）よりも低くなっていることから、他の処理を前倒しで行うことができる。例えば、図５に示される処理では、データ化け対策処理ＤがＤ１，Ｄ２，Ｄ３と三回行われるのに対し、図６に示される処理では、データ化け対策処理ＤがＤ１１の一回だけ行われる。その結果、図６に示される処理では、図５に示される処理よりも、記録処理Ａ４、バックアップ処理Ｂ４、再生処理Ｃ４を早いタイミングで行うことができる。したがって、ＣＰＵ１として処理能力が低いものを用いても、最大並行処理数を保ったままデータ化け対策処理を行うことができる。よって、監視記録装置５６のＣＰＵ１として低廉なＣＰＵを使用することができる。
【００６１】
以上のような監視記録装置５６によれば、実施の形態１に係るデータ記憶装置５１と同様の効果を得ることができる。また、データ化け対策処理を、記録処理、バックアップ処理、再生処理などの他の処理と時分割で実行していることから、データ化け対策処理を他の処理と並行して行うことができる。
【００６２】
なお、フラッシュメモリ２の電荷が減少してデータ化けが生じる期間は、フラッシュメモリ２の酸化膜の劣化特性や製造状の欠陥の状態等に起因することから、個々に差異があるものの、数ヶ月以上の期間でデータ化けが発生する場合が多い。したがって、同じアドレスにデータ化け対策処理が行われる周期（以下、「一巡の繰り返し周期」と呼ぶ）は、データ化けが生じる期間（数ヶ月以上）よりも短いことが必要である。また、フラッシュメモリ２の書き換え保証回数に至る期間が、フラッシュメモリ２を搭載する搭載装置の製品寿命（数十年程度）よりも長くなることが望ましい。
【００６３】
ここで、図６に示される処理において、一巡の繰り返し周期が、一度に処理するデータのサイズ、繰り返し間隔、及び、フラッシュメモリ２の全記憶容量のサイズからが決まるものとなっている。例えば、一度に処理するデータのサイズ、繰り返し間隔及び全記憶容量のサイズが、それぞれ５１２バイト、２秒間隔及び３２メガバイトである場合には、一巡の繰り返し周期は上述の式（１）で示した約１．５日となる。この場合には、一巡の繰返し周期（１．５日）を、データ化けが生じる期間（数ヶ月以上）よりも十分短くすることができる。そして、書き換え保証回数が１０万回である場合には、保証回数に至る期間は４００年となることから、搭載装置の製品寿命（数十年程度）よりも十分長くすることができる。
【００６４】
＜実施の形態３＞
図３は、本発明の実施の形態３に係る監視記録装置の構成は、実施の形態２に係る監視記録装置５６と同じである。以下、本実施の形態に係る監視記録装置の構成において、実施の形態２と同一の部分には同一符号を付与し、以下においては実施の形態２と異なる部分を中心に説明する。
【００６５】
本実施の形態に係る監視記録装置５６は、実施の形態２に係る監視記録装置５６と同様、データ化け対策処理Ｄを他の処理と時分割で実行する。ただし、本実施の形態に係る監視記録装置５６は、実施の形態２における排他処理の実施ステップＳ２２及び解除ステップＳ２５等を行う代わりに、割り込み禁止処理を行う。そして、データ化け対策処理において一回に処理するデータのサイズを規定して、データ化け対策処理の時間をシステム時間のカウント周期よりも短くすることにより、システム時間の遅延を防止することが可能となっている。以下、本実施の形態に係る監視記録装置５６について説明する。
【００６６】
本実施の形態に係るＣＰＵ１では、ある処理を実行中でも必要に応じて別の処理を行う割り込み処理が可能となっている。ＣＰＵ１は、割り込みが入力された場合に、実行中の処理を中断して、割り込み対象の処理を実施した後、中断した元の処理を再開する。ただし、ＣＰＵ１において割り込み禁止処理が行われている場合には、当該割り込み処理は禁止される。
【００６７】
図７は、ＣＰＵ１の内部で処理される時計動作とフラッシュメモリ２のデータ化け対策処理時間の関係を示す図である。この図を用いて、データ化け対策処理として要求される時間について説明する。図７に示すように、タイマー割り込み（システムの定周期割り込み）が実施時間間隔１０ミリ秒毎に発生している。処理中のＣＰＵ１のシステム時間は、このタイマー割り込みが発生するごとに、ソフトウェア的にカウントされる。
【００６８】
本実施の形態では、ＣＰＵ１は、データ化け対策処理を実施する間、タイマー割り込みの割り込み処理を禁止する割り込み禁止処理を行う。したがって、ＣＰＵ１は、タイマー割り込みを行うべきタイミングであっても、データ化け対策処理を行っている場合には、当該タイマー割り込みを行わずに、そのままデータ化け対策処理を行う。そして、ＣＰＵ１は、当該データ化け対策処理が終了した直後に、割り込み処理できなかったタイマー割り込みを行う。
【００６９】
図８は、フラッシュメモリ２のデータ化け対策処理の一回の処理時間が１２ミリ秒の場合を示す図である。データ化け対策処理Ｄ２１が、連続する二つのタイマー割り込みに重なるように発生すると、前の割り込み処理の発生フラグは記憶されるが、後の割り込み処理の発生フラグは既に記憶されている発生フラグに上書きされることになる。そうすると、二つのタイマー割り込みが発生していたにもかかわらず、一方のタイマー割り込みが消滅することとなることから、割り込み禁止処理期間が終了した後には、他方のタイマー割り込みだけが処理されることになる。その結果、例えば、図８に示されるように、システム時間は、本来「０時０分０．０５秒」とカウントされるべきであるのにも関わらず、「０時０分０．０４秒」とカウントされ、０．０１秒の時間の遅れが発生してしまうことになる。
【００７０】
そこで、本実施の形態では、システム時間が遅延しないようにすべく、フラッシュメモリ２のデータ化け対策処理の一回の処理時間は、タイマー割り込みの周期であるシステム時間のカウント周期よりも短く設定されている。処理時間は、ＣＰＵ１、フラッシュメモリ２及びＲＡＭ３の動作仕様から処理時間を加算することにより算出できる。あるいは、処理時間の実機計測によって処理時間を設定する。
【００７１】
図９は、本実施の形態に係るフラッシュメモリ２のデータ化け対策処理が行われるタイミングを示す図である。図に示されるように、フラッシュメモリ２のデータ化け対策処理の一回の処理時間が２ミリ秒となっており、タイマー割り込みの周期であるシステム時間のカウント周期（１０ミリ秒）よりも短く設定されている。この場合に、データ化け対策処理Ｄ３１がタイマー割り込みに重なっても、一つのタイマー割り込みとしか重ならないため、後の割り込み処理の発生フラグは、前の割り込み処理の発生フラグに上書きされることなく、それぞれが記憶される。
【００７２】
そうすると、割り込み禁止処理期間が終了した後には、両方のタイマー割り込みが処理されることになる。その結果、例えば、図９に示されるように、「０時０分０．０４秒」のカウントが本来のタイミングから２ミリ秒の範囲で遅れるというように、重なった直後のシステム時間のカウントは多少遅れるものの、その遅れは後のシステム時間のカウント（図９の例では、「０．０５秒」）において修正される。したがって、システム時間が正しくカウントされることになる。
【００７３】
以上のような監視記録装置５６によれば、実施の形態１に係るデータ記憶装置５１と同様の効果を得ることができる。また、データ化け対策処理の一回の処理時間が、タイマー割り込みの周期であるシステム時間のカウント周期よりも短く設定されていることから、データ化け対策処理を行っても、システム時間を正しくカウントすることができる。
【符号の説明】
【００７４】
１  ＣＰＵ、２  フラッシュメモリ、３  ＲＡＭ、５１  データ記憶装置、Ｄ，Ｄ１，Ｄ２，Ｄ３，Ｄ１１，Ｄ２１，Ｄ３１  データ化け対策処理。
【図１】
0005495885.tif 000003
【図２】
0005495885.tif 000004
【図３】
0005495885.tif 000005
【図４】
0005495885.tif 000006
【図５】
0005495885.tif 000007
【図６】
0005495885.tif 000008
【図７】
0005495885.tif 000009
【図８】
0005495885.tif 000010
【図９】
0005495885.tif 000011