(57)【特許請求の範囲】
【請求項１】
外部から入力されバッファに記憶されたデータを、ＣＰＵの指令に基づいてフラッシュメモリに、不揮発性メモリを使って読み書きする停電時及び復電時のデータ処理方法であって、
停電時に、上記バッファに記憶されたデータを上記フラッシュメモリのセクタ内にバイト毎に各データを書き込むステップと、上記フラッシュメモリに書き込まれた各データの最終アドレスを上記不揮発性メモリに書込むステップとを有し、
復電時に、上記不揮発性メモリが記憶した読み出し対象データの最終アドレスを検出するステップと、検出した最終アドレスに基づいて上記フラッシュメモリの対応するデータを読み出し上記バッファに記憶させるステップとを有することを特徴とする停電時及び復電時のデータ処理方法。
【請求項２】
上記不揮発性メモリに各データの最終アドレスを書き込むステップは、上記不揮発性メモリのメモリ領域に複数個のアドレスを、任意のデータの最終アドレスを書き込むアドレスとして割り当て、上記複数個のアドレスをリング状にして順次上記任意のデータの最終アドレスを書き込み、連続的書き込みを可能としたステップとし、
上記不揮発性メモリが記憶した読み出し対象データの最終アドレスを検出するステップは、リング状にした複数アドレスの内、一番最後に書き込んだアドレスに記憶された最終アドレスを検出するステップとしたことを特徴とする請求項１記載の停電時及び復電時のデータ処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は外部から入力されバッファに記憶されたデータを、ＣＰＵの指令に基づいてフラッシュメモリに読み書きする停電時及び復電時のデータ処理方法に関するものである。
【０００２】
【従来の技術】
図９は、例えば特開平８−１７１９２号公報に示された従来のフラッシュメモリのメモリブロック図、図１０は図９のフラッシュメモリのデータが書込まれているアドレスにデータを上書きする方法についての説明図である。
【０００３】
図１０（ａ）は、図９の１つのメモリブロックを取り出して説明しており、最初の停電時に第１のデータ（１ｓｔとして図示部分）をブロックの頭から書込み、ポインタをビット（単位）でブロックの尾部に置き、１ビットづつ落として行くことで、データ位置を表示するものである。
【０００４】
図１０（ｂ）は、図１０（ａ）で書込んだデータに続いて、次回の停電において第２のデータ（２ｎｄとして図示部分）が第１のデータの次に書込まれ、そのポインタは第１のデータポインタの直ぐ左隣の位置に”１”から”０”に落とされて、そのアドレスが書込まれる。
【０００５】
同様に第３回の停電事故時についての図１０（ｃ）は、第２のデータの次に第３のデータ（３ｒｄとして図示部分）が書込まれ、そのポインタは第２のデータポインタのすぐ左隣の位置に”１”から”０”に落とされて格納される。
【０００６】
【発明が解決しようとする課題】
従来のフラッシュメモリの記憶処理方法は以上のように形成され、メモリブロック（セクタ）内に複数のデータとそのデータのアドレスを記憶させておいて、該アドレスに基づいてデータにアクセスするようにしているのでメモリブロック（セクタ）内のデータ容量が多くなると共に、データへのアクセス時間が長くなるという問題があった。
【０００７】
この発明は上記のような問題点を解決するためになされたもので、外部から入力されバッファに記憶されたデータを、ＣＰＵの指令に基づいてフラッシュメモリに、不揮発性メモリを使って読み書きする停電時及び復電時のデータ処理方法とし、フラッシュメモリのメモリブロック（セクタ）のメモリ容量を大きくすることなく、データに短時間でアクセスすると共に、電源遮断時や停電時後の復旧におけるＣＰＵの再立上げ時においては、フラッシュメモリに最後に記憶されたデータのアドレスに短時間でアクセスしてフラッシュメモリのデータをバッファに記憶することを目的とする。
【０００８】
また、この発明ではフラッシュメモリとは別に不揮発メモリを使用するが、この不揮発メモリの許容書き込み回数を超えないようにして、長寿命化を図る必要がある。不揮発メモリの長寿命化を図って安定したフラッシュメモリの記憶処理を可能とすることが第２の目的である。
【０００９】
【課題を解決するための手段】
この発明に係わる停電時及び復電時のデータ処理方法は、外部から入力されバッファに記憶されたデータを、ＣＰＵの指令に基づいてフラッシュメモリに、不揮発性メモリを使って読み書きする停電時及び復電時のデータ処理方法であって、停電時に、上記バッファに記憶されたデータを上記フラッシュメモリのセクタ内にバイト毎に各データを書き込むステップと、上記フラッシュメモリに書き込まれた各データの最終アドレスを上記不揮発性メモリに書込むステップとを有し、復電時に、上記不揮発性メモリが記憶した読み出し対象データの最終アドレスを検出するステップと、検出した最終アドレスに基づいて上記フラッシュメモリの対応するデータを読み出し上記バッファに記憶させるステップとを有するものである。
【００１０】
また、不揮発性メモリに各データの最終アドレスを書き込むステップは、上記不揮発性メモリのメモリ領域に複数個のアドレスを、任意のデータの最終アドレスを書き込むアドレスとして割り当て、上記複数個のアドレスをリング状にして順次上記任意のデータの最終アドレスを書き込み、連続的書き込みを可能としたステップとし、上記不揮発性メモリが記憶した読み出し対象データの最終アドレスを検出するステップは、リング状にした複数アドレスの内、一番最後に書き込んだアドレスに記憶された最終アドレスを検出するステップとしたものである。
【００１１】
【発明の実施の形態】
実施の形態１．
図１はこの発明の実施の形態１に係るフラッシュメモリ記憶方法を説明する回路ブロック図である。
図１において、１はＣＰＵ（中央処理演算装置）で、外部から入力されたデータ２を内部のバッファ３に記憶し、アドレスバス５とデータバス６で接続されたフラッシュメモリ（Ｆｕｓｈ．Ｅｌｅｃｔｒｉｃａｌｌｙ．Ｅｒａｓａｂｌｅ．Ｐｒｏｇｒａｍａｂｌｅ．Ｒｅａｄ．Ｏｎｌｙ．Ｍｅｍｏｒｙ）４をコントロール信号７で制御する。
【００１２】
８は不揮発性メモリ（Ｅｌｅｃｔｒｉｃａｌｌｙ．Ｅｒａｓａｂｌｅ．Ｐｒｏｇｒａｍａｂｌｅ．Ｒｅａｄ．Ｏｎｌｙ．Ｍｅｍｏｒｙ）で、シリアル信号９でＣＰＵとのデータ送受信を行い、コントロール信号１０で制御される。
１１は停電時のデータ処理を行うためのコンデンサである。
【００１３】
図２はこの発明の実施の形態１に係るデータの書込み動作を説明するフローチャートで、図３はフラッシュメモリと不揮発性メモリのデータ書き込み時のメモリ領域を示す図である。
以下、図１乃至図３を用いてデータの書込み動作を説明する。
（１）ＣＰＵ１は外部データ２（ｎバイトデータＸおよびｍバイトデータＹ）
を読取り、バッファ３へ記憶する。（ステップ２０１）
【００１４】
（２）ＣＰＵ１はフラッシュメモリ４をコントロール信号７で制御しながら、アドレスバス５により書込みアドレス（Ａ−ｎ）番地を指定し、データバス６によりデータＸを書込みＡ番地にデータＸを記憶するまでｎ回繰返す。（ステップ２０２、ステップ２０３）
【００１５】
（３）不揮発性メモリ８のあらかじめ決められたａ番地にフラッシュメモリ４の最終アドレスＡを記憶する。（ステップ２０４）
（４）バッファ３で記憶しているｍバイトデータＹを同様にＡ＋１番地に書込む。Ａ＋ｍ＋１番地にデータＹを記憶するまでｍ回繰返す。（ステップ２０５、ステップ２０６）
（５）不揮発性メモリ４のあらかじめ決められたｂ番地にフラッシュメモリ４の最終アドレスＡ＋ｍ＋１を記憶する。（ステップ２０７）
図３に示すようにデータ及び各データの最終アドレスが記憶される。
なお、これらのデータは通常、所定のセクタ内でバイト毎に書き込まれる。
【００１６】
図４はこの発明の実施の形態１に係るデータの読出し動作を説明するフローチャートで、図５はフラッシュメモリと不揮発性メモリのデータ書き込み時のメモリ領域を示す図である。
図１及び図４・図５を用いて、データの読み出し動作を説明する。
（１１）ＣＰＵ１は不揮発性メモリ４のａ番地よりフラッシュメモリ４の最終アドレスＡを読出す。（ステップ３０１）
【００１７】
（１２）ＣＰＵ１はフラッシュメモリ４をコントロール信号７で制御しながら、アドレスバス５により読出しアドレス（Ａ−ｎ）番地を指定し、データバス６によりデータＸを読出す。Ａ番地のデータＸを読出すまでｎ回繰返す。（ステップ３０２、ステップ３０３）
なお、ＣＰＵ１はアドレス（Ａ−ｎ）からアドレスＡ番地まで読み出すことを認識してデータＸの読み出し動作を行う。
【００１８】
（１３）バッファ３に読出したｎバイトデータＸを記憶する。（ステップ３０４）
（１４）同様にＣＰＵ１は不揮発性メモリ４のｂ番地よりフラッシュメモリ４の最終アドレスＡ＋ｍ＋１を読出す。（ステップ３０５）
【００１９】
（１５）ＣＰＵ１はフラッシュメモリ４をコントロール信号７で制御しながら、アドレスバス５により読出しアドレス（Ａ＋ｍ＋１）番地を指定し、データバス６によりデータＹを読出す。Ａ＋１番地のデータＹを読出すまで、ｍ−１回繰返す。（ステップ３０６、３０７）
（１６）バッファ３に読出したｍバイトデータＹを記憶する。（ステップ３０８）
図５に示すようにデータの最終アドレス及びそのデータが読み出される。
【００２０】
このように実施の形態１によれば、メモリブロック（セクタ）のメモリ容量を大きくすることなく、データに短時間でアクセスすることができる。
特に停電時においては、コンデンサ１１の蓄積電力によりデータを記憶させておいて、復電時に不揮発性メモリ８に書込んだフラッシュメモリ４の最終アドレスから、フラッシュメモリ４に記憶させたデータを読出すことができるので、フラッシュメモリはデータのみを記憶するためメモリ容量を大きくする必要がなく、データのアクセスを短時間で行うことができる。
【００２１】
実施の形態２．
実施の形態１で不揮発メモリに各データの最終アドレスを記憶するようにしたが、不揮発メモリは寿命があり、書き込み回数が所定の制限回数を超えると記憶できなくなる。例えば、同じメモリ領域に書き込む制限回数は１０万回と言われる。この発明の実施の形態２は不揮発性メモリが許容する書込み回数を超過して記憶不能になることを防止するものである。
【００２２】
図６はこの発明の実施の形態２に係る不揮発性メモリのメモリ領域を説明する図で、図７はこの発明の実施の形態２に係る不揮発性メモリからのデータの読出し動作を説明するフローチャートである。また、図８は実施の形態１の不揮発メモリのメモリ領域との関係を示す図である。
以下、この発明の実施の形態２に係わる不揮発性メモリからのデータの読み出し動作について説明する。
【００２３】
図６において、１つのデータの最終アドレスを記憶する不揮発メモリ８のメモリ領域として、アドレスｃ番地からｃ＋２番地までの複数のアドレスを使用し、これらの複数アドレスをリング状にして最終アドレスを書き込む毎に順次アドレスを進める。そして図６（ａ）から（ｂ）のようにデータの更新時、アドレスｃ＋１番地にデータを書込み完了すると、前アドレスｃ番地は消去（オール１）して、連続的に書き込み可能にする。このようにすると同じメモリ領域を使用する回数が少なくなり不揮発メモリの寿命を長くすることができる。
【００２４】
また、停電時にデータをフラッシュメモリ４にデータを記憶し、そのデータの最終アドレスを不揮発メモリ８に記憶した場合、次に復電した時のデータの読み出しを、図７のフローチャートに示す。
【００２５】
（１０１）不揮発性メモリのｃ番地のデータを読出し（ステップ４０１）、オール１であることを確認する。（ステップ４０２）
（１０２）オール１以外であれば、フラッシュメモリの最終アドレスとし（ステップ４０７）、上述したフラッシュメモリ４からの読出し処理（図４のステップ３０２、３０６）を行う。
（１０３）オール１であれば、ｃ＋１番地を読出し（ステップ４０３）、オール１であることを確認する。（ステップ４０４）
【００２６】
（１０４）オール１以外であれば、フラッシュメモリの最終アドレスとし（ステップ４０７）、上述したフラッシュメモリ４からの読出し処理（図４のステップ３０２、３０６）を行う。
（１０５）以降同様にｃ＋２番地を読出し１以外のデータを確認する。（ステップ４０５、４０６）
【００２７】
以上のように、不揮発性メモリ８に記憶させるデータの最終アドレスをリング状に連続的に書込むようにしたので、不揮発性メモリ８の同一場所への書込み回数を低減することができ、メモリの長寿命化を図ることができる。
【００２８】
なお、図８は実施の形態１で説明したデータＸ、データＹの最終アドレスが不揮発性メモリ８のアドレスａ，アドレスｂに記憶されているが、これと図４に示すアドレスｃとの関係を示す一例である。図８では、データＸ，データＹの最終アドレスが不揮発性メモリ８のアドレスａ，アドレスｂに書き込まれ、次のデータ（例えば、データＺ）を書き込んだとき、その最終アドレスを不揮発性メモリ８のアドレスｃに書き込み、次にアドレスｃに書き込む場合は、アドレスｃ＋１に書き込む。
【００２９】
また、図８において、不揮発性メモリ８のアドレスａもアドレスａ＋１，ａ＋２とメモリ領域を割り当て、アドレスｂもアドレスｂ＋１，ｂ＋２とメモリ領域の割り当て、それぞれリング状にして使用してもよい。
【００３０】
【発明の効果】
以上のようにこの発明は、外部から入力されバッファに記憶されたデータを、ＣＰＵの指令に基づいてフラッシュメモリに、不揮発性メモリを使って読み書きする停電時及び復電時のデータ処理方法であって、停電時に、上記バッファに記憶されたデータを上記フラッシュメモリのセクタ内にバイト毎に各データを書き込むステップと、上記フラッシュメモリに書き込まれた各データの最終アドレスを上記不揮発性メモリに書込むステップとを有し、復電時に、上記不揮発性メモリが記憶した読み出し対象データの最終アドレスを検出するステップと、検出した最終アドレスに基づいて上記フラッシュメモリの対応するデータを読み出し上記バッファに記憶させるステップとを有する停電時及び復電時のデータ処理方法としたので、フラッシュメモリのメモリ容量を大きくすることなく、フラッシュメモリのデータに短時間でアクセスしてフラッシュメモリのデータをバッファに記憶することができる。
【００３１】
また、不揮発性メモリの長寿命化を図ることができる。
【図面の簡単な説明】
【図１】  この発明の実施の形態１に係るフラッシュメモリ記憶方法を説明する回路ブロック図である。
【図２】  この発明の実施の形態１に係るデータの書込み動作を説明するフローチャートである。
【図３】  この発明の実施の形態１に係るフラッシュメモリと不揮発性メモリのデータ書き込み時のメモリ領域を説明する図である。
【図４】  この発明の実施の形態１に係るデータの読出し動作を説明するフローチャートである。
【図５】  この発明の実施の形態１に係るフラッシュメモリと不揮発性メモリのデータ読み込み時のメモリ領域を説明する図である。
【図６】  この発明の実施の形態２に係る不揮発性メモリのメモリ領域を説明する図である。
【図７】  この発明の実施の形態２に係る不揮発性メモリのメモリ領域を説明する図である。
説明するフローチャートである。
【図８】  この発明の実施の形態２に係る不揮発性メモリのメモリ領域を説明する図である。
【図９】  従来のフラッシュメモリのメモリブロック図である。
【図１０】  図９のフラッシュメモリのデータが書込まれているアドレスにデータを上書き方法について説明する図である。
【符号の説明】
１  ＣＰＵ、２  外部データ入力、３  バッファ、４  フラッシュメモリ、
５  アドレスバス、６  データバス、７  コントロール信号、
８  不揮発性メモリ、９  シリアルデータ、１０  コントロール信号、
１１  コンデンサ。
【図１】
0004678966.tif 000002
【図２】
0004678966.tif 000003
【図３】
0004678966.tif 000004
【図４】
0004678966.tif 000005
【図５】
0004678966.tif 000006
【図６】
0004678966.tif 000007
【図７】
0004678966.tif 000008
【図８】
0004678966.tif 000009
【図９】
0004678966.tif 000010
【図１０】
0004678966.tif 000011