(57)【要約】【課題】小容量の不揮発性メモリにより多くのデータを格納するためのデータバックアップ方法、及びこのデータバックアップ方法を用いてデータを不揮発性メモリに格納するメモリ装置を提供する。【解決手段】ＥＥＰＲＯＭ３０における第１の領域１０と第２の領域２０のそれぞれに、データ格納領域１１，２１とチェックサム領域１２，２２とが設けられる。そして、このチェックサム領域１２，２２に格納されるチェックサムデータの最上位ビットが、最新面を判定するための最新面判定ビットとして使用される。【選択図】図２
2007034858.tif 000002
【特許請求の範囲】
【請求項１】
第１の領域と第２の領域とを有する不揮発性メモリを備え、前記不揮発性メモリの前記第１の領域と前記第２の領域に交互にバックアップデータと前記バックアップデータのチェックサムデータとが格納されるメモリ装置において、
前記不揮発性メモリの前記第１の領域と前記第２の領域のそれぞれでは、複数のビットから成る前記チェックサムデータのうちの最上位ビットに前記第１の領域と前記第２の領域の何れが最新面であるかを判定するためのデータが格納されるとともに、前記チェックサムデータのうちの最上位ビットを除く残りのビットに前記バックアップデータの前記チェックサムデータが格納されることを特徴とするメモリ装置。
【請求項２】
前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定する手段と、
前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第２の領域に格納されたバックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定する手段と、
前記第２の領域に格納された前記バックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致するか否かを判定する手段と、
前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致することが確認されたときに、前記第１の領域を最新面と判定する手段と、
前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致しないことが確認されたときに、前記第２の領域を最新面と判定する手段と、
を備えることを特徴とする請求項１に記載のメモリ装置。
【請求項３】
現在の最新面が前記第１の領域または前記第２の領域の何れであるかを判定する手段と、
現在の最新面が前記第２の領域であることが確認されデータが更新されるときに、前記第１の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットと一致させる手段と、
現在の最新面が前記第１の領域であることが確認されデータが更新されるときに、前記第２の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットに対して反転させる手段と、
を備えることを特徴とする請求項２に記載のメモリ装置。
【請求項４】
請求項１に記載のメモリ装置の前記不揮発性メモリに前記バックアップデータを格納するためのデータバックアップ方法であって、
前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定するステップと、
前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第２の領域に格納されたバックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定するステップと、
前記第２の領域に格納された前記バックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致するか否かを判定するステップと、
前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致することが確認されたときに、前記第１の領域を最新面と判定するステップと、
前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致しないことが確認されたときに、前記第２の領域を最新面と判定するステップと、
から成ることを特徴とするデータバックアップ方法。
【請求項５】
現在の最新面が前記第１の領域または前記第２の領域の何れであるかを判定するステップと、
現在の最新面が前記第２の領域であることが確認されデータが更新されるときに、前記第１の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットと一致させるステップと、
現在の最新面が前記第１の領域であることが確認されデータが更新されるときに、前記第２の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットに対して反転させるステップと、
から成ることを特徴とする請求項４に記載のデータバックアップ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを不揮発性メモリに格納するためのデータバックアップ方法及びこのデータバックアップ方法を用いてデータを不揮発性メモリに格納するメモリ装置に関する。
【背景技術】
【０００２】
従来には、メモリへのデータの書き込み途中に電源が遮断される等によりメモリに格納されたデータが破損するといった不具合が生じるおそれがあり、これを防止するために、メモリにデータの書き込み領域を２面設けて、メモリへのデータの書き込みを２面交互に行うものが提案されている（特許文献１参照）。これにより、メモリの一方の面へのデータの書き込み途中に電源が遮断されても、他方の面に書き込まれたデータを保護することができる。
【０００３】
そして、上記特許文献１に記載のシステムパラメータ書換高保障装置では、不揮発性記憶部がＡ面とＢ面とに分けられ、それぞれの面に、システムパラメータを格納するパラメータ領域、チェックサムデータを格納するチェックサム領域、及びシステムパラメータの新旧情報を表すシーケンスカウンタを有するシーケンスカウンタ領域が設けられている。
【０００４】
このように構成されたシステムパラメータ書換高保障装置において、システム立ち上げ時には、最新面を判定するために、Ａ面とＢ面のそれぞれに対して、シーケンスパラメータのサムチェックが行われる。このとき、Ａ面とＢ面の両方ともシーケンスパラメータのサムチェックがＯＫの場合、Ａ面のシーケンスカウンタ値とＢ面のシーケンスカウンタ値とを比較することにより、Ａ面とＢ面の何れが最新面であるかが決定される。
【特許文献１】特開平１０−３２０３０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記システムパラメータ書換高保障装置では、最新面を判定するために、Ａ面とＢ面のそれぞれにシーケンスカウンタ領域を設けて、Ａ面のシーケンスカウンタ値とＢ面のシーケンスカウンタ値とを比較する必要がある。このため、小容量の不揮発性メモリについては、不揮発性メモリ全体の容量に対してシーケンスカウンタ領域が占める割合が大きく、不揮発性メモリに格納できるデータ量に大きな制限が生じる。そして、不揮発性メモリの容量が小さくなればなる程、この影響は顕著に現れることとなる。
【０００６】
本発明は、かかる点に鑑みてなされたものであり、その目的とするところは、小容量の不揮発性メモリにより多くのデータを格納するためのデータバックアップ方法、及びこのデータバックアップ方法を用いてデータを不揮発性メモリに格納するメモリ装置を提供することにある。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、本発明のメモリ装置は、第１の領域と第２の領域とを有する不揮発性メモリを備え、前記不揮発性メモリの前記第１の領域と前記第２の領域に交互にバックアップデータと前記バックアップデータのチェックサムデータとが格納されるメモリ装置において、前記不揮発性メモリの前記第１の領域と前記第２の領域のそれぞれでは、複数のビットから成る前記チェックサムデータのうちの最上位ビットに前記第１の領域と前記第２の領域の何れが最新面であるかを判定するためのデータが格納されるとともに、前記チェックサムデータのうちの最上位ビットを除く残りのビットに前記バックアップデータの前記チェックサムデータが格納されることを特徴とする。
【０００８】
このように構成されたメモリ装置において、前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定する手段と、前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第２の領域に格納されたバックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定する手段と、前記第２の領域に格納された前記バックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致するか否かを判定する手段と、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致することが確認されたときに、前記第１の領域を最新面と判定する手段と、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致しないことが確認されたときに、前記第２の領域を最新面と判定する手段と、を備える。
【０００９】
また、このような構成のメモリ装置において、現在の最新面が前記第１の領域または前記第２の領域の何れであるかを判定する手段と、現在の最新面が前記第２の領域であることが確認されデータが更新されるときに、前記第１の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットと一致させる手段と、現在の最新面が前記第１の領域であることが確認されデータが更新されるときに、前記第２の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットに対して反転させる手段と、を備える。
【００１０】
また、上記目的を達成するために、本発明のデータバックアップ方法は、上述のメモリ装置の前記不揮発性メモリに前記バックアップデータを格納するためのデータバックアップ方法であって、前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定するステップと、前記第１の領域に格納された前記バックアップデータから計算されたチェックサムと前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第２の領域に格納されたバックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致するか否かを判定するステップと、前記第２の領域に格納された前記バックアップデータから計算されたチェックサムと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを除くデータとが一致することが確認されたときに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致するか否かを判定するステップと、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致することが確認されたときに、前記第１の領域を最新面と判定するステップと、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットと前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットとが一致しないことが確認されたときに、前記第２の領域を最新面と判定するステップと、から成ることを特徴とする。
【００１１】
このようなデータバックアップ方法において、現在の最新面が前記第１の領域または前記第２の領域の何れであるかを判定するステップと、現在の最新面が前記第２の領域であることが確認されデータが更新されるときに、前記第１の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットと一致させるステップと、現在の最新面が前記第１の領域であることが確認されデータが更新されるときに、前記第２の領域に格納される前記バックアップデータを最新のデータに書き換えるとともに、前記第２の領域に格納された前記チェックサムデータのうちの最上位ビットを前記第１の領域に格納された前記チェックサムデータのうちの最上位ビットに対して反転させるステップと、から成る。
【発明の効果】
【００１２】
本発明によれば、複数のビットから成るチェックサムデータのうちの最上位ビットに第１の領域と第２の領域の何れが最新面であるかを判定するためのデータを格納することにより、第１の領域と第２の領域のそれぞれに最新面を判定するためのデータを格納するための領域を新たに設ける必要がない。従って、本発明によれば、不揮発性メモリの第１の領域と第２の領域のそれぞれにおける空きスペースに最新面を判定するためのデータを格納することができ、最新面を判定するためのデータを格納するための領域の分だけ不揮発性メモリの容量を小さくすることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を図面に基づいて詳細に説明する。
【００１４】
《発明の実施形態》
図１に示すように、本実施形態のメモリ装置は、データを格納する領域として第１の領域１０と第２の領域２０とを有する不揮発性メモリ３０（ここでは、ＥＥＰＲＯＭ３０とする）と、このＥＥＰＲＯＭ３０の第１の領域１０と第２の領域２０のそれぞれに対して、データの読み出し、データの書き込み、及びデータのチェックを行う中央処理装置４０（以下、「ＣＰＵ４０」と呼ぶ）と、を備えている。
【００１５】
このように構成されたメモリ装置において、図２に示すように、ＥＥＰＲＯＭ３０の第１の領域１０は、データ格納領域１１とチェックサム領域１２とから成る。そして、データ格納領域１１には、それぞれが１バイトの大きさのデータ１−１からデータ１−１３までの１３個のデータが格納される。また、チェックサム領域１２には、２バイトの大きさの第１のチェックサムデータが格納される。このチェックサム領域１２において、第１のチェックサムデータの最上位ビットが、図２に斜線で示す第１の最新面判定ビットとして最新面を判定するデータを格納するために使用され、残りの１５ビットがデータ１−１からデータ１−１３までのチェックサムデータを格納するために使用される。
【００１６】
尚、図２には、第１の領域１０のデータ格納領域１１に格納されるデータ１−１からデータ１−１３までの１３個のデータを示したが、これに限らず、このデータ格納領域１１に１３個よりも少ないデータが格納されるようにしてもよいし、或いは、このデータ格納領域１１に１３個よりも多いデータが格納されるようにしてもよい。
【００１７】
同様に、図２に示すように、ＥＥＰＲＯＭ３０の第２の領域２０は、データ格納領域２１とチェックサム領域２２とから成る。そして、データ格納領域２１には、それぞれが１バイトの大きさのデータ２−１からデータ２−１３までの１３個のデータが格納される。また、チェックサム領域２２には、２バイトの大きさの第２のチェックサムデータが格納される。このチェックサム領域２２において、第２のチェックサムデータの最上位ビットが、図２に斜線で示す第２の最新面判定ビットとして最新面を判定するために使用され、残りの１５ビットがデータ２−１からデータ２−１３までのチェックサムデータを格納するために使用される。
【００１８】
尚、図２には、第２の領域２０のデータ格納領域２１に格納されるデータ２−１からデータ２−１３までの１３個のデータを示したが、これに限らず、このデータ格納領域２１に１３個よりも少ないデータが格納されるようにしてもよいし、或いは、このデータ格納領域２１に１３個よりも多いデータが格納されるようにしてもよい。
【００１９】
そして、このメモリ装置では、メモリ装置の電源をＯＮとしたときに、ＥＥＰＲＯＭ３０に格納されたデータの読み込みが行われ、第１の領域１０と第２の領域２０の何れの領域に書き込まれたデータが最新のものであるか（即ち、第１の領域１０と第２の領域２０の何れの領域が最新面であるか）の判断が行われる。これについて、図３に示すフローチャートを参照しながら説明する。尚、メモリ装置の電源をＯＮとしたとき以外にも、ＥＥＰＲＯＭ３０に格納されたデータの読み込みを行う際には、図３に示す手順でＣＰＵ４０による処理が行われる。
【００２０】
まず、メモリ装置の電源がＯＮになると（ステップＳ１１）、ＣＰＵ４０によって、ＥＥＰＲＯＭ３０の第１の領域１０からデータ１−１からデータ１−１３までのデータと第１のチェックサムデータとが読み出される。そして、ＣＰＵ４０が、データ１−１からデータ１−１３までを加算し、この加算されたデータと第１のチェックサムデータの最上位ビットをマスクしたデータとが一致するか否かの判定を行う（ステップＳ１２）。
【００２１】
このとき、ＣＰＵ４０が、データ１−１からデータ１−１３までを加算したデータと第１のチェックサムデータの最上位ビットをマスクしたデータとが一致することを確認すると（ステップＳ１２でＹｅｓ）、次に、ＣＰＵ４０によって、ＥＥＰＲＯＭ３０の第２の領域２０からデータ２−１からデータ２−１３までのデータと第２のチェックサムデータとが読み出される。そして、ＣＰＵ４０が、データ２−１からデータ２−１３までを加算し、この加算されたデータと第２のチェックサムデータの最上位ビットをマスクしたデータとが一致するか否かの判定を行う（ステップＳ１３）。
【００２２】
一方、このとき、ＣＰＵ４０が、データ１−１からデータ１−１３までを加算したデータと第１のチェックサムデータの最上位ビットをマスクしたデータとが一致しないことを確認すると（ステップＳ１２でＮｏ）、次に、ＣＰＵ４０によって、ＥＥＰＲＯＭ３０の第２の領域２０からデータ２−１からデータ２−１３までのデータと第２のチェックサムデータとが読み出される。そして、ＣＰＵ４０が、データ２−１からデータ２−１３までのデータを加算し、この加算されたデータと第２のチェックサムデータの最上位ビットをマスクしたデータとが一致するか否かの判定を行う（ステップＳ１４）。
【００２３】
このとき、ＣＰＵ４０が、データ２−１からデータ２−１３までを加算したデータと第２のチェックサムデータの最上位ビットをマスクしたデータとが一致することを確認すると（ステップＳ１４でＹｅｓ）、第２の領域２０に格納されたデータを最新のデータと判定し（ステップＳ１５）、このデータを他の処理において使用する。
【００２４】
また、ステップＳ１３において、ＣＰＵ４０が、データ２−１からデータ２−１３までを加算したデータと第２のチェックサムデータの最上位ビットをマスクしたデータとが一致することを確認すると（ステップＳ１３でＹｅｓ）、次に、ＣＰＵ４０において、第１のチェックサムデータの最上位ビットに位置する第１の最新面判定ビットと第２のチェックサムデータの最上位ビットに位置する第２の最新面判定ビットとが一致するか否かの判定が行われる（ステップＳ１６）。
【００２５】
このとき、ＣＰＵ４０が、第１の最新面判定ビットと第２の最新面判定ビットとが一致することを確認すると（ステップＳ１６でＹｅｓ）、第１の領域１０に格納されたデータを最新のデータと判定し（ステップＳ１７）、このデータを他の処理において使用する。一方、このとき、ＣＰＵ４０が、第１の最新面判定ビットと第２の最新面判定ビットとが一致しないことを確認すると（ステップＳ１６でＮｏ）、第２の領域２０に格納されたデータを最新のデータと判定し（ステップＳ１５）、このデータを他の処理において使用する。
【００２６】
また、ステップＳ１３において、ＣＰＵ４０が、データ２−１からデータ２−１３までを加算したデータと第２のチェックサムデータの最上位ビットをマスクしたデータとが一致しないことを確認すると（ステップＳ１３でＮｏ）、第１の領域１０に格納されたデータを最新のデータと判定し（ステップＳ１７）、このデータを他の処理において使用する。
【００２７】
更に、ステップＳ１４において、ＣＰＵ４０が、データ２−１からデータ２−１３までを加算したデータと第２のチェックサムデータの最上位ビットをマスクしたデータとが一致しないことを確認すると（ステップＳ１４でＮｏ）、ＣＰＵ４０によって、任意のエラー処理が行われる（ステップＳ１８）。
【００２８】
そして、任意のエラー処理とは、ＥＥＰＲＯＭ３０の第１の領域１０または第２の領域２０に格納されたデータをメモリ装置が予め保持している初期化データに置き換えて使用する処理や、メモリ装置に接続される上位装置にエラーである旨を通知してこの上位装置の表示部（不図示）にエラー表示を行うとともにメモリ装置及び上位装置を含むシステム全体の動作を停止させる処理が挙げられる。
【００２９】
または、ＣＰＵ４０が、第１の領域１０または第２の領域２０に格納されたデータの破損がシステム全体に与える影響が小さいと判断したときに、第１の領域１０と第２の領域２０のうち一方の領域に格納されたデータをそのまま使用する処理を行ってもよい。これの処理は、例えば、ＥＥＰＲＯＭ３０の第１の領域１０または第２の領域２０に上位装置の設定に係わるデータが格納されており、そのデータを用いて上位装置を起動させる場合に、破損したデータを使用しても設定内容が若干変化するのみで、ユーザに対して大きな影響がないときなどに行われる。
【００３０】
また、このメモリ装置では、ＣＰＵ４０によって、ＥＥＰＲＯＭ３０の第１の領域１０または第２の領域２０にデータの書き込みが行われる。これについて、図４に示すフローチャートを参照しながら説明する。
【００３１】
まず、ＣＰＵ４０が、ＥＥＰＲＯＭ３０にデータの書き込みを行う必要があることを確認すると（ステップＳ２１でＹｅｓ）、次に、ＣＰＵ４０によって、現在の最新面がＥＥＰＲＯＭ３０の第１の領域１０と第２の領域２０の何れであるかの判断が行われる（ステップＳ２２）。このとき、ＣＰＵ４０が、現在の最新面が第２の領域２０であることを確認すると（ステップＳ２２でＹｅｓ）、第１の領域１０を最新面とするために、ＣＰＵ４０によって、第１の領域１０のデータ格納領域１１に最新のデータが書き込まれる（ステップＳ２３）。そして、ＣＰＵ４０が、第１の領域１０のデータ格納領域１１に格納されるデータ１−１からデータ１−１３までのデータを加算するとともに、第１の最新面判定ビットを第２の最新面判定ビットと同じにし、これらを第１のチェックサムデータとしてチェックサム領域１２に書き込む（ステップＳ２４）。
【００３２】
一方、このとき、ＣＰＵ４０が、現在の最新面が第２の領域２０でないことを確認すると（ステップＳ２２でＮｏ）、即ち、現在の最新面が第１の領域１０であることを確認すると、第２の領域２０を最新面とするために、ＣＰＵ４０によって、第２の領域２０のデータ格納領域２１に最新のデータが書き込まれる（ステップＳ２５）。そして、ＣＰＵ４０が、第２の領域２０のデータ格納領域２１に格納されるデータ２−１からデータ２−１３までを加算するとともに、第１の最新面判定ビットに対して第２の最新面判定ビットを反転させ、これらを第２のチェックサムデータとしてチェックサム領域２２に書き込む（ステップＳ２６）。
【００３３】
尚、図３に示すフローチャートのステップＳ１５またはステップＳ１７において、ＣＰＵ４０によって、第１の領域１０または第２の領域２０の何れの領域のデータを最新のデータとするかが判定される。そして、図４に示すフローチャートのステップＳ２２では、この判定結果に基づき、ＣＰＵ４０によって、現在の最新面がＥＥＰＲＯＭ３０の第１の領域１０と第２の領域２０の何れであるかの判断が行われる。
【００３４】
また、図４に示すフローチャートのステップＳ２４において、ＣＰＵ４０が、第１の最新面判定ビットを第２の最新面判定ビットと同じにすることにより、図３に示すフローチャートにおいて、ＣＰＵ４０が、第１の最新面判定ビットと第２の最新面判定ビットとが一致することを確認し（ステップＳ１６でＹｅｓ）、このＣＰＵ４０によって、ＥＥＰＲＯＭ３０の第１の領域１０に格納されたデータが最新のものと判定される（ステップＳ１７）。
【００３５】
また、図４に示すフローチャートのステップＳ２６において、ＣＰＵ４０が、第１の最新面判定ビットに対して第２の最新面判定ビットを反転させることにより、図３に示すフローチャートにおいて、ＣＰＵ４０が、第１の最新面判定ビットと第２の最新面判定ビットとが異なることを確認し（ステップＳ１６でＮｏ）、このＣＰＵ４０によって、ＥＥＰＲＯＭ３０の第２の領域２０に格納されたデータが最新のものと判定される（ステップＳ１５）。
【００３６】
このように、ＥＥＰＲＯＭ３０に格納されたデータの読み込みを行う際に、図３に示すフローチャートのステップＳ１７において、ＣＰＵ４０が、ＥＥＰＲＯＭ３０の第１の領域１０に格納されたデータが最新のものと判定すると、ＥＥＰＲＯＭ３０にデータの書き込みを行う際に、図４に示すフローチャートのステップＳ２２において、ＣＰＵ４０が、現在の最新面が第１の領域１０であることを確認し、第１の最新面判定ビットに対して第２の最新面判定ビットを反転させる（ステップＳ２６）。
【００３７】
そして、次に、ＥＥＰＲＯＭ３０に格納されたデータの読み込みを行う際には、第１の最新面判定ビットと第２の最新面判定ビットとが異なるために、図３に示すフローチャートのステップＳ１５において、ＣＰＵ４０が、ＥＥＰＲＯＭ３０の第２の領域２０に格納されたデータが最新のものと判定する。よって、ＥＥＰＲＯＭ３０にデータの書き込みを行う際に、図４に示すフローチャートのステップＳ２２において、ＣＰＵ４０が、現在の最新面が第２の領域２０であることを確認し、第１の最新面判定ビットを第２の最新面判定ビットと同じにする（ステップＳ２４）。このようにして、ＥＥＰＲＯＭ３０における第１の領域１０のデータ格納領域１１と第２の領域２０のデータ格納領域２１とに、最新のデータが交互に書き込まれる。
【００３８】
尚、ＥＥＰＲＯＭ３０の第１の領域１０または第２の領域２０において、チェックサム領域１２，２２に格納されるチェックサムデータの最上位ビットを最新面判定ビットとして使用する場合、データ格納領域１１，２１に格納されるデータが正しくないにもかかわらずチェックサム領域１２，２２に格納されたチェックサムデータとＣＰＵ４０によって算出されるチェックサムデータとが一致する確率が、チェックサム領域１２，２２の全てのビットをチェックサムデータを格納するために使用する場合と比べて、２倍となる。
【００３９】
しかしながら、図２に示すような小容量のＥＥＰＲＯＭ３０では、第１の領域１０または第２の領域２０におけるチェックサム領域１２，２２の全てのビットがチェックサムデータを格納するために使用されることがない。具体的には、第１の領域１０と第２の領域２０のそれぞれに１２８バイト程度のデータを格納することのできる小容量のＥＥＰＲＯＭ３０において、チェックサムデータを格納するために使用されるビットは、１６ビットのうち最下位から数えて１５番目のビットまでである。このため、チェックサム領域１２，２２に格納されるチェックサムデータの最上位ビットを最新面判定ビットとして使用しても、データ格納領域１１，２１に格納されるデータが正しくないにもかかわらずチェックサム領域１２，２２に格納されたチェックサムデータとＣＰＵ４０によって算出されるチェックサムとが一致する確率は変わらない。
【００４０】
本実施形態によれば、１６ビットから成るチェックサムデータのうちの最上位ビットに第１の領域１０と第２の領域２０の何れが最新面であるかを判定するためのデータを格納することにより、第１の領域１０と第２の領域２０のそれぞれに最新面を判定するためのデータを格納するための領域を新たに設ける必要がない。従って、本実施形態によれば、ＥＥＰＲＯＭ３０の第１の領域１０と第２の領域２０のそれぞれにおける空きスペースに最新面を判定するためのデータを格納することができ、最新面を判定するためのデータを格納するための領域の分だけＥＥＰＲＯＭ３０の容量を小さくすることができる。
【００４１】
また、本実施形態によれば、ＥＥＰＲＯＭ３０の容量を小さくしても、第１の領域１０と第２の領域２０の何れが最新面であるかの判定や、第１の領域１０と第２の領域２０のそれぞれに格納されるデータのエラーチェックを行うことができる。従って、本実施形態によれば、容量が小さいＥＥＰＲＯＭ３０を備えて高性能の処理を行うことのできるメモリ装置を提供することができる。
【産業上の利用可能性】
【００４２】
以上説明したように、本発明は、データを不揮発性メモリに格納するためのデータバックアップ方法を用いてデータを不揮発性メモリに格納するメモリ装置にについて有用である。
【図面の簡単な説明】
【００４３】
【図１】実施形態に係るメモリ装置の構成を示すブロック図である。
【図２】実施形態に係るメモリ装置における不揮発性メモリの構成を示す図である。
【図３】不揮発性メモリに格納されたデータを読み込む際のＣＰＵの動作を示すフローチャートである。
【図４】不揮発性メモリにデータを書き込む際のＣＰＵの動作を示すフローチャートである。
【符号の説明】
【００４４】
１０  第１の領域
２０  第２の領域
１１，２１  データ格納領域
１２，２２  チェックサム領域
３０  ＥＥＰＲＯＭ（不揮発性メモリ）
４０  ＣＰＵ
【図１】
2007034858.tif 000003
【図２】
2007034858.tif 000004
【図３】
2007034858.tif 000005
【図４】
2007034858.tif 000006