(57)【要約】【課題】  データ記憶用のバックアップメモリに、連続してカウントアップまたはカウントダウンされるデータを精度良く記憶しかつ読み出すことが可能なデータ記憶装置を得る。【解決手段】  データ記憶装置は、連続してカウントアップまたはカウントダウンされる値を記憶したい値として保持する揮発性のメモリ（３）と、前記記憶したい値が書き込まれるバックアップメモリ（５）と、前記揮発性のメモリ（３）と前記バックアップメモリ間でのバイト単位のデータ書込みおよび読出しを制御するデータ処理部（２）とを備え、前記バックアップメモリ（５）は、前記記憶したい値をバイト単位で記憶する領域（５１、５２）と、前記記憶したい値の前回値における最下位バイトの次のバイト位置の値を記憶する前回値領域（５３）とを備える。【選択図】      図２
2005173699.tif 000002
【特許請求の範囲】
【請求項１】
連続してカウントアップまたはカウントダウンされる値を記憶したい値として保持する揮発性のメモリと、前記記憶したい値が書き込まれるバックアップメモリと、前記揮発性のメモリと前記バックアップメモリ間でのバイト単位のデータ書込み及び読出しを制御するデータ処理部とを備えるデータ記憶装置において、
前記バックアップメモリは、前記記憶したい値をバイト単位で記憶する領域と、前記記憶したい値の前回値における最下位バイトの次のバイト位置の値を記憶する前回値領域とを備えることを特徴とする、データ記憶装置。
【請求項２】
請求項１に記載のデータ記憶装置において、前記データ処理部は、前記バックアップメモリからデータを読み出すにあたって、前記バックアップメモリに記憶された最下位バイトの値及び前回値領域に記憶された値に基づいて、データ書き込み中に異常処理が発生した可能性のある前記バックアップメモリの記憶値を補正することを特徴とする、データ記憶装置。
【請求項３】
請求項１に記載のデータ記憶装置において、前記データ処理部は、前記バックアップメモリからデータを読み出すにあたって、前記バックアップメモリに記憶された最下位バイトの値がカウント開始値であり、該最下位バイトの次のバイト位置の値が前回値と同じであった場合、該最下位バイトにカウント可能な最終値を採用することを特徴とする、データ記憶装置。
【請求項４】
請求項１に記載のデータ記憶装置において、前記揮発性のメモリは前記記憶したい値を記憶する第１の領域と前記記憶したい値の前回値を記憶する第２の領域を備え、前記データ処理部は前記バックアップメモリに前記記憶したい値をバイト単位で書き込むに当たって、前記第１の領域と第２の領域の値をバイト単位で比較し、異なっている場合に前記第１の領域に記憶された値を前記バックアップメモリに書き込むことを特徴とする、データ記憶装置。
【請求項５】
請求項１に記載のデータ記憶装置において、前記記憶したい値が３バイト以上の値である場合、前記前回値領域には、少なくとも前記前回値における最下位バイト値の更新によってその値が更新される全てのバイト位置の値を記憶することを特徴とする、データ記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、連続してカウントされるデータをバックアップメモリに精度良く記憶しかつ読み出すことができる、データ記憶装置に関する。
【背景技術】
【０００２】
寿命管理のために動作時間を記憶する必要がある機器や、何らかのイベントの発生頻度、例えばスイッチの操作回数を記憶する必要がある機器では、動作時間、発生頻度等のカウントデータをバックアップメモリに記憶しておくことが行われている。記憶されたデータは、機器が動作を停止した後、再び動作を開始した時点でバックアップメモリから読み出され、読出し値を初期値として次のカウントが開始される。したがって、カウントデータはバックアップメモリに精度良く記憶されかつ精度良く読み出される必要がある。
【０００３】
一般的な記憶用メモリ、例えばＥＥＰＲＯＭなどでは、１バイト単位のアクセスであるため、２バイト以上のデータを記憶する際には、複数回にわけてアクセスを行う必要がある。ところが、例えば１バイト記憶後、何らかの要因で機器への供給電源が遮断されると、次のバイト以降のデータは記憶することができない。そのため、このような状態で次の電源オン時にバックアップメモリの記憶値を読み出すと、正しくない値を読み出すことがある。
【０００４】
図１は、２バイトのデータを記憶する場合の書込み処理及び読出し処理を示す図である。図１の例は、１６ビットマシンによって０〜２５５の値をカウントする場合を想定しているので、各ビットは０〜９、Ａ〜Ｆの１６個の数値を取る。図の「処理サイクル」はマイコン等からデータをバックアップメモリに書き込むための書込みのサイクルを示し、「記憶したい値」はマイコン等がカウントしバックアップが必要な値を示す。さらに、「書き込み値」は、各処理サイクルにおいて、マイコン等からバックアップメモリに送信されるデータを示し、「記憶値」はバックアップメモリに記憶された値を示す。
【０００５】
今、図示するように、マイコン等において記憶したい値として５ＡＦＥという数値がカウントされている場合を考えると、処理サイクル１でその数値の上位バイト値５Ａをバックアップメモリに送信し、書き込む。このとき、バックアップメモリ内には、前回の記憶値として５ＡＦＥの一つ前の値、５ＡＦＤが記憶されているので、処理サイクル１では、バックアップメモリの上位バイトを記憶する領域に数値５Ａを上書きする。
【０００６】
処理サイクル２では、記憶したい値５ＡＦＥの下位バイトをバックアップメモリの下位バイト領域に書き込む。これによって、記憶したい値５ＡＦＥの書込みが終了する。同様の書込み処理を行うことによって、カウントアップが進んで記憶したい値が５Ｂ００となると、処理サイクル６で、バックアップメモリに数値５Ｂ００が書き込まれる。
【０００７】
図１の処理サイクルに従ってカウント値の書込みが行われている状態で、通常の操作により機器の操作が終了し電源が遮断される場合は、バックアップメモリは、記憶したい値を完全に書き込んだ状態、即ち図１の偶数サイクルの状態で維持される。そのため、機器への次の電源の投入時には、バックアップメモリから正しい数値データを読み出し、これをカウントの初期値とすることができる。
【０００８】
ところが、何らかの要因で機器の供給電源が正常ではない方法で遮断された場合、例えば記憶したい値の上位バイトの書込みが終了した時点で電源が遮断されると、次の電源投入時における記憶データの読出しは、図１の奇数サイクルの状態のデータを読み出すことになる。例えば、処理サイクル５の終了時点で電源が遮断されると、バックアップメモリには、記憶したい値５Ｂ００の上位バイト５Ｂが書き込まれ、一方その下位バイトには前回の記憶したい値５ＡＦＦの下位バイトの値ＦＦが保持された状態となる。
【０００９】
この状態で、電源を再投入すると、処理サイクル５においてバックアップメモリに記憶された値５ＢＦＦが読み出される。本来読み出されるべき値は、記憶したい値５Ｂ００であるので、全く異なった値が読み出されることになる。このように、異常な電源遮断が発生した場合の読出し値は信頼性のない値となる。
【００１０】
従来では、このような事態に対処するために、バックアップメモリへの書込み処理中に異常な電源遮断等による書込みの中断が起こった場合、その事態の発生を記憶しておき、読出し時に記憶値を強制的にクリアする等の処置を取っていた。
【００１１】
なお、本発明の技術一般に関する先行技術として、特開２０００−２２２２９０号公報に、電源オフ時にあっても記憶中のデータを記憶保持可能なバックアップメモリに記憶保持する技術が開示されているが、この技術ではデータの書込み中に電源がオフされたか否かをフラグにより記憶するようにしている。
【００１２】
また、電源遮断などの障害の影響を受けずに検品作業を効率よく実施できるようにした商品検査装置を開示する特開平６−１６２０５４号公報、データバックアップ式コンピュータシステムを開示した特開平６−８３７２０号公報、及びシステムが電源遮断した場合に電源復旧後、補助記憶装置間でデータをコピーする方式を開示した特開平６−１２１９１号公報等がある。
【００１３】
【特許文献１】特開２０００−２２２２９０号
【００１４】
【特許文献２】特開平６−１６２０５４号
【００１５】
【特許文献３】特開平６−８３７２０号
【００１６】
【特許文献４】特開平６−１２１９１号
【発明の開示】
【発明が解決しようとする課題】
【００１７】
上述したように、従来では、バックアップメモリに書込み中に異常な電源遮断等が発生すると、次の読出しの時点で読み出し値が不明となるため、これを強制的にクリアする等の処置を取っていたが、この方法ではこれまでのデータが全て失われ、新たに寿命管理等のためのカウントを始めなければならない。
【００１８】
本発明は、かかる点に関して成されたもので、バックアップメモリへの書込み処理が強制的に中断された場合であっても、このような事態の発生を検出し記憶する特別な手段を必要とせずに、しかも最小の誤差で記憶データを読み出すことが可能な、データの記憶装置を得ることを目的として為されたものである。
【課題を解決するための手段】
【００１９】
本発明のデータ記憶装置は、上記課題を解決するために、連続してカウントアップまたはカウントダウンされる値を記憶したい値として保持する揮発性のメモリと、前記記憶したい値が書き込まれるバックアップメモリと、前記揮発性のメモリと前記バックアップメモリ間でのバイト単位のデータ書込み及び読出しを制御するデータ処理部とを備えるデータ記憶装置において、前記バックアップメモリは、前記記憶したい値をバイト単位で記憶する領域と、前記記憶したい値の前回値における最下位バイトの次のバイト位置の値を記憶する前回値領域とを備える。
【００２０】
また、上記装置において、前記データ処理部は、前記バックアップメモリからデータを読み出すにあたって、前記バックアップメモリに記憶された最下位バイトの値及び前回値領域に記憶された値に基づいて、データ書込み中に異常処理が発生した可能性のある前記バックアップメモリの記憶値を補正するようにされている。
【００２１】
図１から明らかなように、バックアップメモリの読出し値が実際の値と大きく異なる場合は、読出し値の最下位バイトの値がＦＦ、即ちカウント可能な最終値である場合に発生する。これは、最下位バイトの値がＦＦであると、このバイトの次の位置の値が書き換えられている可能性が大きいためである。従って本発明では、バックアップメモリにデータを書き込むに当たって、記憶したい値の前回値における最下位バイトの次の位置の値をバックアップメモリの前回値領域に同様に書き込んでおく。これによって、読出し時に最下位バイトの値がＦＦであれば、最下位バイトの次の値として前回値領域に書き込まれた値を採用することで、読出し値と本来の値との差を最小とすることができる。
【００２２】
また、上記装置において、前記データ処理部は、前記バックアップメモリからデータを読み出すにあたって、前記バックアップメモリに記憶された最下位バイトの値がカウント開始値であり、該最下位バイトの次のバイト位置の値が前回値と同じであった場合、該最下位バイトにカウント可能な最終値を採用するようにされている。この装置によれば、記憶したい値がカウントダウンされる値であり、かつ、バックアップメモリにおいて下位バイトから上位バイトの順に書き換えを行う場合に、読出し値と本来の値との差を最小とすることができる。
【００２３】
また、上記装置において、前記揮発性のメモリは前記記憶したい値を記憶する第１の領域と前記記憶したい値の前回値を記憶する第２の領域を備え、前記データ処理部は前記バックアップメモリに前記記憶したい値をバイト単位で書き込むに当たって、前記第１の領域と第２の領域の値をバイト単位で比較し、異なっている場合に前記第１の領域に記憶された値を前記バックアップメモリに書き込むようにされている。
【００２４】
この結果、書込み処理の回数を大幅に削減することができるので、全体システムの設計の自由度が向上し、さらにバックアップメモリの耐久性が向上する。
【００２５】
さらに、上記装置において、前記記憶したい値が３バイト以上の値である場合、前記前回値領域には、前記前回値における最下位バイト値の更新によってその値が更新される全てのバイト位置の値が記憶されるようにされている。これにより、記憶したい値が３バイト以上の値であっても、異常な電源遮断に拘わらず最小の誤差範囲でデータを読み出すことが可能となる。
【００２６】
さらに、上記装置において、データ処理部が前記バックアップメモリに下位バイトから上位バイトの順でデータの書き換えを行うものである場合、バックアップメモリからデータを読み出すにあたって、バックアップメモリに記憶された最下位バイトの値が００で、かつ前回値と最下位バイトの次のバイト位置の値とが等しい場合、読み出された最下位バイトの値（００）に代わってカウント可能な最終値を用いるようにされている。これにより、バックアップメモリへのデータの書込みが、下位バイトから上位バイトへの順で行われる装置であっても、最小の誤差範囲でデータを読み出すことが可能となる。
【発明を実施するための最良の形態】
【００２７】
図２は、本発明にかかるデータ記憶装置の一実施形態を示すブロック図である。図において、１はマイコン等のメインＣＰＵであり、データ処理部２と通常は揮発性であるメモリ３を有している。データ処理部２はＲＯＭ等に予め記憶されたプログラムに従ってデータを処理し、メモリ３は機器への一定のアクセス時間によってカウントアップされる数値データ、あるいはスイッチの操作回数等を記憶する。本実施形態では、メモリ３はカウントデータの内容の上位バイト値を記憶する領域３１、下位バイト値を記憶する領域３２及び前回のカウント値の上位バイト値（以下、前回値）を記憶する領域３３を備えている。
【００２８】
５はバックアップのための外部メモリであり、例えばＥＥＰＲＯＭ等の不揮発性メモリで構成される。バックアップメモリ５は、マイコン１との間のデータ通信６によって、メモリ３の内容を記憶する領域５１、５２、５３を備えている。
【００２９】
図２の装置において、機器の電源がオフとなると、メモリ３中のデータは消失する。従って再び機器の電源をオンとした場合、バックアップメモリ５に保存されているデータを読出し、この読出し値を基に動作時間等のカウントアップを再開する。また、カウントアップによってメモリ３の内容が変わると、その値をバックアップメモリ５に書き込む。なお、本実施形態では、データが２バイトの値でありさらに前回の値の上位バイト値を記憶する必要があるので、データの書込み及び読出しには３回の処理サイクルを要する。
【００３０】
図３は、図２に示す装置を長時間の動作が保証されている電子機器等の寿命管理に適用した場合の動作フローを示す図である。本装置では、該電子機器が１０分間動作した場合に１をカウントアップすることにより、動作時間を管理している。まず、該電子機器の電源オンによってマイコン１が動作を開始する（ステップＳ１）と、データ処理部２はバックアップメモリ５の記憶内容をメモリ３内に読み出す処理を行う（ステップＳ２）。この読出し処理の詳細については図４を参照して後述する。
【００３１】
読出し処理が終了すると、次に、タイマをスタートさせ（ステップＳ３）、動作時間の管理を開始する。ステップＳ４において、タイマが１０分経過したか否かを判定し、１０分経過するとメモリ３の内容を１だけ更新する（ステップＳ５）。このとき、前回値を記憶する領域３３の値も、更新前の値の上位バイト値に更新される。
【００３２】
次にステップＳ６において、更新されたメモリ３の内容をバックアップメモリ５内に書き込み（ステップＳ６）、ステップＳ７で電源がオフとなっていないことを確認した後（ステップＳ７のＮＯ）、タイマによってさらに次の１０分の経過を監視する。ステップＳ７で電源がオフであれば、処理を終了する。
【００３３】
図４は、図３の読出し処理ルーチンの詳細を示す図である。まず、機器の電源オンによってマイコン１はバックアップメモリ５の内容を読み出す（ステップＳ１０）が、このとき読み出した下位バイト値がＦＦであれば（ステップＳ１１のＹＥＳ）、読み出した前回値を読出し値の上位バイト値として採用し（ステップＳ１２）、メモリ３を書き換える（ステップＳ１３）。一方、ステップＳ１１で下位バイトの値がＦＦでないと判定されると（ステップＳ１１のＮＯ）、読み出した値がメモリ３の値としてそのまま採用される（ステップＳ１３）。
【００３４】
図５は、図４に示す読出し処理の効果を示す図である。なお、図５の各項目及び数値データは、図１に示すものと同じであるので繰り返して説明しないが、「記憶する前回値」及び「前回値」は、前回の記憶したい値における上位バイト値を示す。また、「記憶したい値」、「記憶する前回値」はメモリ３に記憶された値であり、「記憶値」はバックアップメモリ５に記憶された値を示し、さらに「読出し値」は図４に示す処理手順に従ってバックアップメモリより読み出され、メモリ３中に書き込まれる値を示す。
【００３５】
本実施形態の処理では２バイトのデータに対して１バイトの前回値を記憶する必要があるので、１個のデータの書込み及び読出しには３回の処理サイクルを要する。
【００３６】
図５の処理サイクル６〜８において、バックアップメモリ５の領域５２に保持される値はＦＦである。サイクル９の書込みの途中で電源が強制的にオフとなった場合、バックアップメモリ５にはサイクル８で書込みが完了した値５Ａ（領域５３）、５Ｂ（領域５１）、ＦＦ（領域５２）が保持されている。図４に示す読出し処理に従えば、バックアップメモリ５の下位バイト値がＦＦであるので、上位バイト値としては領域５３に保持された前回値５Ａが採用される。
【００３７】
これによってマイコン１のメモリ３には、前回値として５Ａ、上位バイト値として５Ａ、下位バイト値としてＦＦが書き込まれるので、マイコン１は数値データ５ＡＦＦを初期値として機器の動作時間の管理を再開する。
【００３８】
図６は、本発明の第２の実施形態にかかるデータ記憶装置を示す図である。図２に示した実施形態では、図５に示すように、バックアップメモリ５へのデータの書込みに当たって全てのバイトについて書込みを行っており、メモリ５内に記憶されている値と同じ値であっても上書きがなされる。本第２の実施形態では、書込み値とメモリ５内に記憶されている値が同じ場合は書込み処理をスキップすることにより、処理サイクルの削減を図ったものである。このような処理方法を取ることによって、マイコン内の処理時間が多少増加するが、外部メモリへの書込み時間に比べてその増加ははるかに小さいので、結果として処理時間が大幅に短縮される。
【００３９】
図６に示すように、本実施形態の装置では、不要な書込みサイクルを省略するために、マイコン１内に読出し値を記憶する第２のメモリ４を設ける。第２のメモリ４は、第１のメモリ３と同様に前回値を記憶する領域４３、上位バイト値を記憶する領域４１、下位バイト値を記憶する領域４２を有している。なお、機器の電源がオンした時点では、第２のメモリ４には第１のメモリ３と同様にバックアップメモリ５の内容が書き込まれるが、動作を継続している状態では、第１のメモリ３の内容がバックアップメモリ５に書き込まれた後、あるいは書き込まれる時点で、第１のメモリの内容が第２のメモリに書き込まれる。
【００４０】
図７は、図６に示す装置を用いた場合の書込み処理（図３のステップＳ６）の詳細を示す図であり、図８はその場合の効果を示す図である。図７に示すフローチャートは、基本的に第１のメモリ３に記憶された記憶したい値と、第２のメモリに記憶された読出し値とを各バイトにおいて比較し、変更のあったバイトの値のみに対して書込み処理（更新処理）を行うためのものである。
【００４１】
なお、前回の記憶したい値の書込み終了の時点では、第１及び第２のメモリ３、４の内容は同じであるが、次の１０分の経過後は第１のメモリ３の内容が図３のステップＳ５において１だけカウントアップされるので、書込み処理６のスタートの段階では両者の値は異なっている。
【００４２】
図７に従って本実施形態における読出し処理を説明すると、まず、ステップＳ２０で読出し値と記憶したい値とにおける前回値の比較をする。即ち図６の領域３３に記憶された値と領域４３に記憶された値が比較され、変更の有無が判定される。ステップＳ２０でＹＥＳの場合、前回値に変更があったことを示すので、第１のメモリの領域３３内の値がバックアップメモリ５の領域５３に書き込まれる。ステップＳ２０でＮＯの場合、即ち前回値に変更がない場合書込み処理はスキップされる。
【００４３】
次に、ステップＳ２２で上位バイトに変更があったか否かが判定される。変更があれば（ステップＳ２２のＹＥＳ）、第１のメモリ内の領域３１に記憶された値がバックアップメモリ５の領域５１に書き込まれる。変更がないと（ステップＳ２２のＮＯ）、書込み処理はスキップされる。さらにステップＳ２４で下位バイトに変更があるか否かが判断される。変更がある場合（ステップＳ２４のＹＥＳ）、ステップＳ２５で第１のメモリの領域３２内の値がバックアップメモリ５の領域５２内に書き込まれる。変更がないと（ステップＳ２４のＮＯ）、書込み処理はスキップされる。
【００４４】
このようにして書込み処理が終了すると、第１のメモリ３内の記憶したい値を第２のメモリ４の読出し値として書き込んで（ステップＳ２６）、書込み処理を終える。この結果、図８に示すように、書込み処理として処理サイクル３、６、８、９及び１２が必要であるが、その他の処理サイクルを省略することができる。
【００４５】
上記第１及び第２の実施形態は、本発明をミリ波レーダの動作時間管理に応用したものであるが、本発明は必ずしもこのような場合に限定されない。例えば、何らかのイベントの発生回数を記憶する必要がある機器において、同様に適用可能である。
【００４６】
図９は、本発明をスイッチの操作回数を記憶する必要のある機器に適用した場合の動作フローを示す図である。この実施形態では、ステップＳ３０において、上記第１及び第２の実施形態の場合と同様にしてバックアップ値の読出し処理を行った後、ステップＳ３１でスイッチ操作があったか否かを判定する。スイッチ操作があると（ステップＳ３１のＹＥＳ）、ステップＳ３２で記憶したい値を１だけ進め、さらに第１、第２の実施形態の場合と同様にして書込み処理を行う（ステップＳ３３）。
【００４７】
この後、ステップＳ３４で電源がオフとされたか否かを判定し、オフでない場合（ステップＳ３４のＮＯ）は、再びステップＳ３１に戻って再度のスイッチ操作の有無を判断する。なお、ステップＳ３１でＮＯの場合は、スイッチ操作があるまで待機する。
【００４８】
上記各実施形態は、記憶したい数値が２バイトのデータで構成されている場合を示しているが、本発明は３バイト以上のデータの場合でも適用可能である。この場合、前回値として記憶される値を前回の記憶したい値の上位２バイトの値とすることにより、さらに精度良くデータを記憶しかつ読み出すことができる。
【００４９】
図１０は、３バイトデータの書込み処理の手順を示す。この図から明らかなように、処理サイクル７ではバックアップメモリに０１ＦＦＦＦの値が保持されており、従って処理サイクル８の途中で電源が遮断された場合、従来の装置では、バックアップメモリからの読出しは０１ＦＦＦＦとなる。これは本来の記憶したい値０１００００あるいは前回の値００ＦＦＦＦとは大きく異なっている。
【００５０】
従って本実施形態では、前回値として、前回の記憶したい値の上位２バイトの値を記憶しておき、読出しに当たって最下位バイトの値がＦＦである場合は、読み出した上位２バイトの値に代わって前回値を使用することで、データの読出し誤差を最小限に抑える。例えば、図１０の処理サイクル７で書込みが終了した場合、読出し時に上位２バイトの値０１ＦＦに変えて前回値００ＦＦを使用し、読出し値を００ＦＦＦＦとすることにより、実際の値との誤差を最小とすることができる。
【００５１】
上記した各実施形態はいずれも、バックアップメモリ５へのデータの書き換えに当たって、上位バイトから下位バイトの順にデータの書き換えを行っていく書込み方式を採用したものであるが、データの書込みは、下位バイトから上位バイトの順で行っても良いことは勿論である。その場合の本発明の実施形態を以下に示す。
【００５２】
図１１は、図６に示したマイコン１のデータ処理部２が、前回値、下位バイト値、上位バイト値の順でメモリの書込み制御を行う場合の、読出し処理ルーチンを示す図であり、図１２は図１１に示す読出し処理の動作説明のための図である。本実施形態では、図１１に示すように、機器の電源オンによってマイコン１はバックアップメモリ５の内容を読み出し（ステップＳ４０）、読み出した下位バイト値が００であるか否かをステップＳ４１で判定する。
【００５３】
図１２の処理サイクル８を参照することによって理解されるように、記憶したい値が５Ｂ００であり、前回値５Ａに続いて下位バイト値００が書き込まれた状態では、バックアップメモリ５内には、前回値として５Ａ、上位バイト値として５Ａ、下位バイト値として００が保持されている。したがって、処理サイクル９の途中で電源がオフとなった場合、従来の装置では、電源再投入時のバックアップメモリ６の読出し値は処理サイクル８のメモリの状態、即ち５Ａ００となって、実際の記憶したい値５Ｂ００とも、処理サイクル７の値５ＡＦＦとも大きく異なった値が読み出されることになる。
【００５４】
本実施形態では、このような事態を回避するために、図１１のステップＳ４１で読み出した下位バイト値が００であるか否かを判定する。ステップＳ４１でＹＥＳの場合、ステップＳ４２で上位バイト値が前回値であるか否かを判定する。ステップＳ４２でＹＥＳの場合、即ち上位バイト値が前回値と同じである場合には、次のステップＳ４３で下位バイト値をＦＦに置き換える処理を行う。この処理により、図１２の処理サイクル８の終了時では、電源再投入時の読出しにあたって、一つ前の処理サイクルの値、５ＡＦＦが読み出される。
【００５５】
ステップＳ４３で読み出された値は、ステップＳ４４で記憶したい値としてメモリ３に書き込まれる。これによって、処理サイクル８で記憶された値５Ａ００に代わって、前回の記憶したい値５ＡＦＦがメモリ３に書き込まれることになり、最小の誤差でデータを読み出すことができる。
【００５６】
ステップＳ４１でＮＯの場合、即ち下位バイトの値が００でない場合は、バックアップメモリに記憶された値をそのまま読み出しても問題が生じないので、ステップＳ４４で読出し値を記憶したい値としてメモリ３に書き込む。同様に、ステップＳ４２でＮＯの場合、即ち読み出した値の下位バイト値が００であっても、上位バイト値が前回値とは異なる場合は、すでに上位バイト値の書き換えが終っていることを示すので、読出し値を記憶したい値としてそのまま採用しても不都合ではない。したがって、この値をステップＳ４４でメモリ３に書き込む。ステップＳ４２でＮＯの場合は、図１２の処理サイクル９の状態が該当する。
【００５７】
なお、本実施形態では、装置の初期状態においてはメモリの記憶値が全て００（初期状態）となっているため、装置を初めて動作させた時に図１１のフローにおいて、「下位バイトが００」かつ「前回値（００）と上位バイト値（００）が等しい」と言う条件に当てはまってしまい、装置を初めて動作させたにもかかわらず下位バイト値がＦＦから始まってしまうという問題が発生する。よって、装置の初期状態において、メモリの前回値にＦＦを、あるいは下位バイト値として０１を予め設定しておく等の処理が必要である。
【００５８】
上記各実施形態は、記憶したい値がカウントアップされる値である場合を示しているが、本発明では、記憶したい値がカウントダウンされる値であっても良いことは勿論である。記憶したい値がカウントダウンされる値である場合は、上位バイトから書き換えを行うメモリにおいては、最下位バイトが００（即ちカウント可能な最終値）である場合に、前回値領域に記憶された値を読み出して上位バイトとして採用するようにすれば良く、下位バイトから書き換えを行うメモリにおいては、最下位バイトがＦＦ（即ちカウント開始値）である場合に上位バイトが前回値と同じであれば、最下位バイトに００（即ちカウント可能な最終値）を採用するようにすればよい。
【００５９】
また、上記各実施形態では、バックアップメモリに記憶されたカウント値及び前回値からデータ書込み途中の異常終了の可能性が疑われた場合に、カウントアップ前もしくはカウントダウン前のカウント値を読出し値として採用するようにしたが、これに代えて、カウントアップ後若しくはカウントダウン後のカウント値を読出し値として採用するようにしても良い。
【００６０】
以上、それぞれの実施形態を示して説明したように、本発明の装置によれば、バックアップメモリへの書込みが強制的に中断された場合でも、最小の誤差でデータを読み出すことができるので、従来装置のように異常な電源遮断によってそれまで継続していた計数作業をクリアする必要はなく、継続した作業が可能となる。
【図面の簡単な説明】
【００６１】
【図１】従来のデータ記憶方法の説明に供する図。
【図２】本発明の第１の実施形態にかかるデータ記憶装置を示すブロック図。
【図３】図２に示す装置の動作フローを示す図。
【図４】図３に示す読出し処理の詳細なフローを示す図。
【図５】図２に示す装置の効果を示す図。
【図６】本発明の第２の実施形態にかかるデータ記憶装置を示すブロック図。
【図７】図３に示す書込み処理の詳細なフローを示す図。
【図８】図６に示す装置の効果を示す図。
【図９】本発明の第３の実施形態にかかる装置の動作フローを示す図。
【図１０】本発明の第４の実施形態の説明に供する図。
【図１１】本発明の第５の実施形態にかかる装置の読出しフローを示す図。
【図１２】図１１に示す実施形態の効果を示す図。
【符号の説明】
【００６２】
１…マイコン
２…データ処理部
３…第１のメモリ
４…第２のメモリ
５…バックアップメモリ
３１、３２、３３、４１、４２、４３、５１、５２、５３…記憶領域
【図１】
2005173699.tif 000003
【図２】
2005173699.tif 000004
【図３】
2005173699.tif 000005
【図４】
2005173699.tif 000006
【図５】
2005173699.tif 000007
【図６】
2005173699.tif 000008
【図７】
2005173699.tif 000009
【図８】
2005173699.tif 000010
【図９】
2005173699.tif 000011
【図１０】
2005173699.tif 000012
【図１１】
2005173699.tif 000013
【図１２】
2005173699.tif 000014