(57)【特許請求の範囲】
【請求項１】
不揮発性メモリを備えた不揮発性半導体記憶装置における不揮発性メモリへのデータ記憶方法であって、
前記不揮発性メモリは、１以上のアドレスを有するメモリブロックを複数含み、
前記不揮発性メモリの個々の前記メモリブロックに対し、メモリブロック単位での一括消去、予め定められたアドレス数の記憶領域単位またはビット単位での書き込みを行うメモリ制御部を備え、
前記複数のメモリブロックは、それぞれ、データを記憶するデータ記憶部と、自身のメモリブロックの一括消去を実行した消去回数を含むデータ管理情報を記憶するデータ管理情報記憶部と、を含んで構成され、
前記複数のメモリブロックうちの一つが、他のメモリブロックに記憶されているデータを退避するためのデータ退避用メモリブロックに予め決定されており、
前記メモリ制御部は、前記データ記憶部に記憶されているデータのうち、記憶しておくべき更新用データのみを残し、前記更新用データ以外のデータを消去するデータ更新処理を実行し、
前記データ更新処理において、データ更新の対象となるメモリブロックであるデータ更新元メモリブロックの前記更新用データを、前記データ退避用メモリブロックへ退避した後、
前記データ更新元メモリブロックの消去回数が最小でないとき、かつ、前記消去回数が最小となるメモリブロックが複数あるときには、前記データ記憶部の記憶量がより少ないメモリブロックを新データ退避用メモリブロックに決定することを特徴とする不揮発性メモリへのデータ記憶方法。
【請求項２】
前記メモリ制御部は、前記データ更新処理において、
前記データ更新元メモリブロックの前記更新用データを、前記データ退避用メモリブロックの前記データ記憶部へ退避するとともに、該データ更新元メモリブロックの消去回数を、該データ退避用メモリブロックのデータ管理情報記憶部に退避した後、該データ更新元メモリブロックの一括消去を行うとともに、
前記データ退避用メモリブロックに退避した、前記データ更新元メモリブロックの消去回数を更新したものを、前記データ更新元メモリブロックのデータ管理情報記憶部に書き込み、
その後、前記新データ退避用メモリブロックを決定する請求項１に記載の不揮発性メモリへのデータ記憶方法。
【請求項３】
前記メモリ制御部は、前記データ更新処理において、前記データ退避用メモリブロックを前記新データ退避用メモリブロックに決定したときには、
該データ退避用メモリブロックのデータ記憶部の記憶内容を、前記データ更新元メモリブロックのデータ記憶部に書き込むとともに、該データ退避用メモリブロックの消去回数を該データ更新元メモリブロックのデータ管理情報記憶部に書き込んだ後、該データ退避用メモリブロックの一括消去を行い、
さらに、前記データ更新元メモリブロックのデータ管理情報記憶部に記憶されている、該データ退避用メモリブロックの消去回数を更新したものを、該データ退避用メモリブロックのデータ管理情報記憶部に書きこむ請求項１または請求項２に記載の不揮発性メモリへのデータ記憶方法。
【請求項４】
前記メモリ制御部は、前記データ更新処理において、前記データ更新元メモリブロックおよび前記データ退避用メモリブロックのいずれでもないメモリブロックを前記新データ退避用メモリブロックに決定したときには、
前記新データ退避用メモリブロックのデータ記憶部の記憶内容を、前記データ更新元メモリブロックのデータ記憶部に書きこむとともに、前記新データ退避用メモリブロックの消去回数を該データ更新元メモリブロックのデータ管理情報記憶部に書き込んだ後、該新データ退避用メモリブロックの一括消去を行い、
さらに、前記データ更新元メモリブロックのデータ管理情報記憶部に記憶されている、前記新データ退避用メモリブロックの消去回数を更新したものを、該新データ退避用メモリブロックのデータ管理情報記憶部に書きこむ請求項１ないし請求項３のいずれか１項に記載の不揮発性メモリへのデータ記憶方法。
【請求項５】
前記データ管理情報記憶部は、前記メモリブロックのデータ記憶部の記憶内容を識別するためのデータフラグを記憶し、
前記メモリ制御部は、前記データ更新処理において、前記更新用データを前記データ退避用メモリブロックへ退避するとともに、前記データ更新元メモリブロックに記憶されているデータフラグも前記データ退避用メモリブロックの前記データ管理情報記憶部に退避し、
前記データ退避用メモリブロックへ退避した更新用データを他のメモリブロックのデータ記憶部に書き込む際には、該データ退避用メモリブロックへ退避したデータフラグも、該他のメモリブロックのデータ管理情報記憶部に書き込む請求項１ないし請求項４のいずれか１項に記載の不揮発性メモリへのデータ記憶方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリへのデータ記憶方法に関し、特に、データ書き込みの前に消去を必要とし、その消去回数について限度があるような、フラッシュメモリ等のメモリへのデータ記憶方法に関する。
【背景技術】
【０００２】
コンピュータ等の電子機器あるいは車両用の電子制御装置（ＥＣＵ：Electronic  Control  Unitともいう）で用いられるデータを記憶させておく記憶媒体として、フラッシュメモリのような書換え可能な不揮発性メモリの使用が広がっている。
【０００３】
不揮発性メモリであるフラッシュメモリでは、動作原理上、消去状態を書き込み状態にする書き込み処理は、アドレス単位あるいはビット単位で実行できるが、書き込み状態を消去状態にする消去処理については、メモリブロック（メモリブロックともいう）単位で一括して行われ、アドレス単位あるいはビット単位で実行することはできない。
【０００４】
このため、不揮発性半導体記憶装置では、一般的に、所定のメモリブロックに既に書き込まれているデータの全部または一部を更新する場合、更新後のデータを一括消去処理済みのメモリブロックに書き込む書き込み処理を実行した後、更新前のデータが記憶された更新元メモリブロックを一括消去する一括消去処理を実行するデータ更新処理を実行している。
【０００５】
このとき、フラッシュメモリとは別にＲＡＭ（Random  Access  Memory：ランダムアクセスメモリ）を備え、データ更新処理の際に、メモリブロック内のデータを、データ退避領域であるＲＡＭに退避させて、該メモリブロックの一括消去を行い。該メモリブロックあるいは別のメモリブロックに、ＲＡＭに退避したデータを書き込む技術が開示されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２４３０９３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１の構成では、メモリブロック内のデータをＲＡＭに退避させたときに、停電等でＲＡＭに電力が供給されない事態が発生すると、退避データは消失するという問題がある。また、フラッシュメモリの他にＲＡＭを必要とするので、回路を小型化できないとともに、製造コストが上昇する問題もある。
【０００８】
そこで、データ退避領域にも、ＲＡＭの代わりにフラッシュメモリを用いる構成も考えられる。図１に、この構成におけるフラッシュメモリへのデータ記憶方法が用いられる不揮発性半導体記憶装置（以下、ＥＣＵと称する）の構成例を示す。なお、図１では、フラッシュメモリへのデータ記憶方法の実行に直接関係する主要部分のみが示されている。
【０００９】
ＥＣＵ１は、ＣＰＵ２、ＣＰＵ２が実行するプログラム等が記憶されているＲＯＭ３、プログラムやデータが一時記憶されるＲＡＭ４、ＥＣＵ１の動作に必要な各種データが記憶されるフラッシュメモリ５、入出力回路（図１では、Ｉ／Ｏと表記）６、を含み、これらは、バス７によりデータ伝送可能に接続されている。
【００１０】
また、入出力回路６には、センサ群１０、アクチュエータ群１１が接続されていてもよい。このような構成のときは、ＥＣＵ１は、センサ群１０の状態を取得して、その状態に基づいて、アクチュエータ群１１の駆動制御を行う。そして、これらの制御に必要なデータを、フラッシュメモリ５に記憶する。
【００１１】
フラッシュメモリ５は、複数（図１では４個）のメモリブロック（以下、「ブロック」と略称する）Ａ、Ｂ、Ｃ、Ｄを含み、ブロックＡ〜Ｃをデータ記憶用ブロックとして用い、ブロックＤをデータ退避用ブロックとして用いる。また、図２ではブロックＡを例示しているが、各ブロックの全領域を、データを記憶するデータ記憶部として用いる。
【００１２】
図１０を用いて、図１および図２の構成におけるフラッシュメモリへのデータ記憶方法について説明する。まず、ステップＳ２００では、ブロックＡのデータ記憶部１００の全てに、データが書き込まれた状態を示している。この状態で、ブロックＡの古いデータ（Ａ）を消去する場合、まず、ステップＳ２１０のように、ブロックＡの最新データ（Ａ）をブロックＤのデータ記憶部４００に書き込む。
【００１３】
一般に、フラッシュメモリのデータは、データＩＤとデータ値とが関連付けられて記憶されている。ブロックＡに既に記憶されているデータが更新され、更新データが追記されたとき、ブロックＡには同じデータＩＤを持つデータが複数記憶される。しかし、データはデータ記憶部１００の先頭アドレスから書き込まれるので、同じデータＩＤで、最も末尾に近いアドレスに書き込まれているものが最新のデータであると判断できる。
【００１４】
次に、ステップＳ２２０のように、ブロックＡのデータ記憶部１００を一括消去する（すなわち、全領域がデータなしの状態にする）。次に、ステップＳ２３０のように、ブロックＤに退避しておいたブロックＡの最新データ（Ａ）を、ブロックＡ（すなわちデータ記憶部１００）に書き込む。最後に、ステップＳ２４０のように、ブロックＤ（すなわちデータ記憶部４００）を一括消去する。
【００１５】
図１１に、図１０のデータ更新処理を繰り返し実行したときの、各ブロックの消去回数の推移を示す。１回目の状態（ブロック消去前の状態）では、各ブロックの消去回数は０回であるが、データ記憶量が一杯となったブロックＢのデータ更新処理を行い、データ退避用ブロックであるブロックＤの消去回数は０回から１増加する。２回目の状態では、再度データ記憶量が一杯となったブロックＢのデータ更新処理を行い、データ退避用ブロックであるブロックＤの消去回数は１回からさらに１増加する。同様に、３回目の状態では、データ記憶量が一杯となったブロックＡのデータ更新処理を行い、ブロックＤの消去回数は２回からさらに１増加する。
【００１６】
このように、データ退避用ブロックであるブロックＤは、各データ記憶用ブロック（Ａ〜Ｃ）で共用しているため、その消去回数はデータ記憶用ブロックの消去回数の和になる。そのため、データ退避用ブロックの消去回数は、データ記憶用ブロックの消去回数よりも早くフラッシュメモリの仕様上の限界値（例えば、５００回）に達する。
【００１７】
このため、データ記憶用ブロックの消去回数が限界値に達しなくても、このフラッシュメモリは全体として使用できなくなり、ＥＣＵ１も正常動作しなくなる可能性が高くなり、ＥＣＵ１自体を交換する必要が生じ、このＥＣＵを使用するユーザがコストを負担しなければならない。
【００１８】
上記問題点を背景として、本発明の課題は、記憶媒体の使用可能期間を延長することが可能な不揮発性メモリへのデータ記憶方法を提供することにある。
【課題を解決するための手段および発明の効果】
【００１９】
上記課題を解決するための不揮発性メモリへのデータ記憶方法は、不揮発性メモリを備えた不揮発性半導体記憶装置における不揮発性メモリへのデータ記憶方法であって、不揮発性メモリは、１以上のアドレスを有するメモリブロックを複数含み、不揮発性メモリの個々のメモリブロックに対し、メモリブロック単位での一括消去、予め定められたアドレス数の記憶領域単位またはビット単位での書き込みを行うメモリ制御部を備え、複数のメモリブロックは、それぞれ、データを記憶するデータ記憶部と、自身のメモリブロックの一括消去を実行した消去回数を含むデータ管理情報を記憶するデータ管理情報記憶部と、を含んで構成され、複数のメモリブロックうちの一つが、他のメモリブロックに記憶されているデータを退避するためのデータ退避用メモリブロックに予め決定されており、メモリ制御部は、データ記憶部に記憶されているデータのうち、記憶しておくべき更新用データのみを残し、更新用データ以外のデータを消去するデータ更新処理を実行し、データ更新処理において、データ更新の対象となるメモリブロックであるデータ更新元メモリブロックの更新用データを、データ退避用メモリブロックへ退避した後、データ更新元メモリブロックの消去回数が最小でないとき、かつ、消去回数が最小となるメモリブロックが複数あるときには、データ記憶部の記憶量がより少ないメモリブロックを新データ退避用メモリブロックに決定することを特徴とする。
【００２０】
上記構成によって、データ退避用メモリブロックが固定化されないため、各メモリブロックの消去回数を概ね平準化でき、不揮発性メモリの使用可能期間を延長することができるとともに、半導体記憶装置の製品寿命を延長することができ、ユーザのコスト負担も低減できる。
【００２１】
また、本発明の不揮発性メモリへのデータ記憶方法におけるメモリ制御部は、データ更新処理において、データ更新元メモリブロックの更新用データを、データ退避用メモリブロックのデータ記憶部へ退避するとともに、該データ更新元メモリブロックの消去回数を、該データ退避用メモリブロックのデータ管理情報記憶部に退避した後、該データ更新元メモリブロックの一括消去を行うとともに、データ退避用メモリブロックに退避した、データ更新元メモリブロックの消去回数を更新したものを、データ更新元メモリブロックのデータ管理情報記憶部に書き込み、その後、それぞれのメモリブロックの消去回数に基づいて、新データ退避用メモリブロックを決定する。
【００２２】
上記構成によって、各メモリブロックの消去回数を正確に把握できる。
【００２３】
また、本発明の不揮発性メモリへのデータ記憶方法におけるメモリ制御部は、データ更新処理において、消去回数の最も少ないメモリブロックを、新データ退避用メモリブロックに決定する。
【００２４】
上記構成によって、各メモリブロックの消去回数を概ね平準化できる。
【００２５】
また、本発明の不揮発性メモリへのデータ記憶方法におけるメモリ制御部は、データ更新処理において、データ更新元メモリブロックを新データ退避用メモリブロックに決定する。
【００２６】
上記構成によって、データ退避用メモリブロックから他のメモリブロックへのデータの移動を行わないため、データ退避用メモリブロックを一括消去する必要がなくなり、データ退避用メモリブロックの消去回数がいたずらに増えることを防止できる。
【００２７】
また、本発明の不揮発性メモリへのデータ記憶方法におけるメモリ制御部は、データ更新処理において、データ退避用メモリブロックを新データ退避用メモリブロックに決定し、そのときには、該データ退避用メモリブロックのデータ記憶部の記憶内容を、データ更新元メモリブロックのデータ記憶部に書き込むとともに、該データ退避用メモリブロックの消去回数を該データ更新元メモリブロックのデータ管理情報記憶部に書き込んだ後、該データ退避用メモリブロックの一括消去を行い、さらに、データ更新元メモリブロックのデータ管理情報記憶部に記憶されている、該データ退避用メモリブロックの消去回数を更新したものを、該データ退避用メモリブロックのデータ管理情報記憶部に書きこむ。
【００２８】
上記構成によって、データ更新元メモリブロックでもデータ退避用メモリブロックでもないメモリブロックの消去回数を増やすことなく、データ更新処理を行うことができる。
【００２９】
また、本発明の不揮発性メモリへのデータ記憶方法におけるメモリ制御部は、データ更新処理において、データ更新元メモリブロックおよびデータ退避用メモリブロックのいずれでもないメモリブロックを新データ退避用メモリブロックに決定し、そのときには、新データ退避用メモリブロックのデータ記憶部の記憶内容を、データ更新元メモリブロックのデータ記憶部に書きこむとともに、新データ退避用メモリブロックの消去回数を該データ更新元メモリブロックのデータ管理情報記憶部に書き込んだ後、該新データ退避用メモリブロックの一括消去を行い、さらに、データ更新元メモリブロックのデータ管理情報記憶部に記憶されている、新データ退避用メモリブロックの消去回数を更新したものを、該新データ退避用メモリブロックのデータ管理情報記憶部に書きこむ。
【００３０】
上記構成によって、データ更新元メモリブロックでもデータ退避用メモリブロックでもないメモリブロックも、新データ退避用メモリブロックとして用いることができ、各メモリブロックの消去回数の平準化につながる。
【００３１】
また、本発明の不揮発性メモリへのデータ記憶方法におけるデータ管理情報記憶部は、メモリブロックのデータ記憶部の記憶内容を識別するためのデータフラグを記憶し、メモリ制御部は、データ更新処理において、更新用データをデータ退避用メモリブロックへ退避するとともに、データ更新元メモリブロックに記憶されているデータフラグもデータ退避用メモリブロックのデータ管理情報記憶部に退避し、データ退避用メモリブロックへ退避した更新用データを他のメモリブロックのデータ記憶部に書き込む際には、該データ退避用メモリブロックへ退避したデータフラグも、該他のメモリブロックのデータ管理情報記憶部に書き込む。
【００３２】
上記構成によって、データ記憶部の記憶内容が別のメモリブロックへ移動しても、外部装置からは、所望のデータを参照することができる。
【図面の簡単な説明】
【００３３】
【図１】不揮発性半導体記憶装置のシステム構成例を示す図。
【図２】従来技術によるメモリブロックの構成例を示す図。
【図３】本発明のメモリブロックの構成例を示す図。
【図４】データ更新処理を説明するフロー図。
【図５】図４における各ブロックの状態遷移を示す図。
【図６】図５に続く各ブロックの状態遷移を説明する図。
【図７】図５に続く各ブロックの状態遷移を説明する図。
【図８】図４における新データ退避用ブロックの決定方法の別例を説明する図。
【図９】本発明のデータ更新処理における各ブロックの状態遷移を示す図。
【図１０】従来技術によるデータ記憶方法を説明する図。
【図１１】従来技術のデータ更新処理における各ブロックの状態遷移を示す図。
【発明を実施するための形態】
【００３４】
以下、本発明の不揮発性メモリへのデータ記憶方法について、図面を用いて説明する。不揮発性メモリへのデータ記憶方法が用いられる不揮発性半導体記憶装置は、図１のＥＣＵ１と同様であるため、ここでは、従来構成との相違点のみを説明するにとどめる。また、ＣＰＵ２が、本発明のメモリ制御部に相当する。
【００３５】
従来構成とは異なり、フラッシュメモリ５のブロックＡ〜Ｄは、それぞれがデータ記憶用ブロックおよびデータ退避用ブロックを兼ねている。また、メモリブロックは、１以上のアドレスを有している。また、ＣＰＵ２は、個々のメモリブロックに対し、メモリブロック単位での一括消去、予め定められたアドレス数の記憶領域単位またはビット単位での書き込みを行う。
【００３６】
図３に、ブロックＡを例示して、本発明におけるフラッシュメモリ５のメモリブロック（すなわち、ブロック）の構成について説明する。ブロックＡは、記憶領域の全てを上述のデータ記憶部１００として使用するのではなく、その一部を、データ管理情報を記憶するデータ管理情報記憶部１１０として使用する。データ管理情報記憶部１１０は、データ管理情報として、自ブロックの消去回数（本発明の「消去回数」）１１１、自ブロックにデータを移行させたブロックである移行元ブロックの消去回数１１２、およびＣＰＵ２等が参照し、メモリブロックのデータ記憶部の記憶内容を識別するためのインデックスともいえるデータフラグ１１３を記憶している。
【００３７】
図４〜図７を用いて、本発明におけるデータ更新処理について説明する。なお、本処理は、ＲＯＭ３に記憶されたプログラムに含まれ、ＣＰＵ２が実行する。また、図４では処理の流れを示し、図５〜図７では、図４の各ステップに対応した、各ブロックの状態を示している。
【００３８】
また、図４あるいは図５の初期状態（ステップＳ１０）では、ブロックＡ〜Ｃが記憶用ブロックとなっており、ブロックＤが退避用ブロック（本発明のデータ退避用メモリブロック）となっている。また、各ブロックの自ブロックの消去回数（１１１、２１１、３１１、４１１）は、それぞれα、β、γ、δとなっている。また、各ブロックの移行元ブロックの消去回数（１１２、２１２、３１２、４１２）は、全て「データなし（すなわち、データが消去された状態）」となっている。また、各ブロックのデータフラグ（１１３、２１３、３１３、４１３）は、それぞれＡ、Ｂ、Ｃ、Ｄとなっており、各ブロックの実アドレスとデータ内容とが一致している。
【００３９】
まず、例えば、ブロックＡのデータ記憶部１００のデータ記憶量が一杯になったとき、ブロックＡを移行元ブロックとする（Ｓ１０）。次に、ブロックＡのデータ管理情報記憶部１１０の記憶内容である、最新データ（本発明の更新用データ）（Ａ）と自ブロックの消去回数（α）とデータフラグ（Ａ）を、データ退避用ブロック（図５の例では、ブロックＤ）の対応する記憶部（４００あるいは４１０）にコピーする（Ｓ１１）。なお、ブロックＡの自ブロックの消去回数（α）は、ブロックＤの移行元ブロックの消去回数４１２に記憶される。次に、ブロックＡのデータを一括消去する（Ｓ１２）。このとき、データ記憶部１００およびデータ管理情報記憶部１１０の記憶内容は全て消去される。
【００４０】
次に、ブロックＤにコピーされた、移行元ブロック（すなわち、ブロックＡ）の消去回数（４１２）に１を加えたもの（α＋１）を、ブロックＡのデータ管理情報記憶部１１０の自ブロックの消去回数（１１１）にコピーする（Ｓ１３）。
【００４１】
この時点で、ブロックＡの最新データおよびデータ管理部の情報は、ブロックＤに移行し、ＣＰＵ２が最新データ（Ａ）を参照しようとするとき、まず、各ブロックのデータフラグを参照し、データフラグが「Ａ」であるブロックＤから最新データ（Ａ）を読み出すことができる。
【００４２】
次に、ブロックＡ〜Ｄのうちから、次回の退避用ブロックである新データ退避用ブロック（「新退避用ブロック」と略称することもある）を決定する（Ｓ１４）。例えば、各ブロックのうち、自ブロックの消去回数（１１１、２１１、３１１、４１１）が最小のものを新退避用ブロックとする。
【００４３】
ここで、移行元ブロックであるブロックＡの消去回数が最も小さいとき、Ｓ１５：Ｙｅｓ）、ブロックＡを新退避用ブロックに決定する（Ｓ１６）。そして、各ブロックが現在の状態を保ったまま本処理を終了する。このとき、各ブロックの状態は、図５のステップＳ１３のようになっている。
【００４４】
一方、移行元ブロックであるブロックＡの消去回数が最も小さくないとき、つまり、移行元ブロック以外のブロックを新退避用ブロックに決定したとき（Ｓ１５：Ｎｏ）、そのブロックが、新退避用ブロックに決定する前は記憶用ブロックであるか否かを判定する。以降、各ブロックの状態については、図６を用いて説明する。図６の例では、ブロックＢあるいはブロックＣを、新退避用ブロックに決定したときに相当するが、ここでは、ブロックＢを新退避用ブロックに決定したとする。
【００４５】
新退避用ブロックに決定したブロックＢは、決定前は記憶用ブロックであるため（Ｓ１７：Ｙｅｓ）、ブロックＢの最新データ（Ｂ）と自ブロックの消去回数（β）とデータフラグ（Ｂ）を、以前の移行元ブロックであるブロックＡにコピーする（Ｓ１８）。なお、ブロックＢの自ブロックの消去回数（β）は、ブロックＡの移行元ブロックの消去回数１１２に記憶される。ここで、ＣＰＵ２が最新データ（Ｂ）を参照しようとするとき、データフラグが「Ｂ」であるブロックＡから最新データ（Ｂ）を読み出す。
【００４６】
次に、新退避用ブロックであるブロックＢのデータを一括消去する（Ｓ１９）。このとき、データ記憶部２００およびデータ管理部２１０の記憶内容は全て消去される。
【００４７】
次に、ブロックＡの移行元ブロック（すなわち、ブロックＢ）の消去回数１１２の内容（β）に１を加えたものを、ブロックＢの自ブロックの消去回数２１１にコピーする（Ｓ２０）。そして、本処理を終了する。
【００４８】
以降、各ブロックの状態については、図７を用いて説明する。新退避用ブロックが、決定前は記憶用ブロックでないとき、つまり、図７のように、新退避用ブロックが旧退避用ブロックであるブロックＤに決定したとき（Ｓ１７：Ｎｏ）、ブロックＤに記憶されている最新データ（Ａ）と自ブロックの消去回数（δ）とデータフラグ（Ａ）を、以前の移行元ブロックであるブロックＡにコピーする（Ｓ２１）。なお、ブロックＤの自ブロックの消去回数（δ）は、ブロックＡの移行元ブロックの消去回数１１２に記憶される。つまり、ブロックの名称と記憶内容が一致したことになる。
【００４９】
次に、ブロックＤのデータを一括消去する（Ｓ２２）。このとき、データ記憶部４００およびデータ管理部４１０の記憶内容は全て消去される。
【００５０】
次に、ブロックＡの移行元ブロックの消去回数１１２の内容（δ）に１を加えたものを、ブロックＤの自ブロックの消去回数４１１にコピーする（Ｓ２３）。そして、本処理を終了する。
【００５１】
図８に、図４のステップＳ１４の別例を示す。各メモリブロックの自ブロックの消去回数（１１１、２１１、３１１、４１１）を比較した結果、移行元ブロック（すなわち、一括消去を行ったブロック）の自ブロックの消去回数が最小のとき（Ｓ１４１：Ｙｅｓ）、移行元ブロックを新退避用ブロックに決定する（Ｓ１４８）。
【００５２】
一方、移行元ブロックの自ブロックの消去回数が最小でないとき（Ｓ１４１：Ｎｏ）、他のブロックのうちで、自ブロックの消去回数が最小となるブロックが複数あるかを調べる。その結果、自ブロックの消去回数が最小となるブロックが複数ないとき（Ｓ１４２：Ｎｏ）、自ブロックの消去回数が最小となるブロックを、新退避用ブロックの候補である候補ブロックに決定する（Ｓ１４７）。
【００５３】
一方、自ブロックの消去回数が最小となるブロックが複数あるとき（Ｓ１４２：Ｙｅｓ）、例えば以下に例示する、予め定められた優先順位に基づいて、優先順位の高いものを候補ブロックに決定する（Ｓ１４３）。
・最新データ量が少ないブロックほど優先順位を高くする。データ移動量が少ないため、処理時間を短縮できる。本構成は、移行元メモリブロックの消去回数が最小でないとき、かつ、該消去回数が最小となるメモリブロックが複数あるときには、データ記憶部の記憶量がより少ないメモリブロックを新データ退避用メモリブロックに決定するものである。
【００５４】
・フラッシュメモリ５内で、移行元ブロックにより近く配置されているブロックほど優先順位を高くする。データ移動距離が短いため、処理時間を短縮できる。
・ブロック名とデータフラグ（１１３、２１３、３１３、４１３）の内容とが一致させることができるブロックほど優先順位を高くする。すなわち、そのブロックに書き込まれるデータフラグがブロック名と同じにすることができる。あるいは、そのブロックからデータを移動するとき、移動先のブロック名と移動するデータのデータフラグを同じにすることができる。
【００５５】
次に、決定した候補ブロックの自ブロックの消去回数と、移行元ブロックの自ブロックの消去回数との差を計算し（Ｓ１４４）、その差が規定値（例えば、２のような固定値、または、例えば、１パーセントのような、メモリブロックの書き込み可能回数の所定割合に相当する値）を下回るか否かを調べる。
【００５６】
そして、規定値を下回るとき（Ｓ１４５：Ｙｅｓ）、移行元ブロックを新退避用ブロックに決定する（Ｓ１４８）。一方、規定値を上回るとき（Ｓ１４５：Ｎｏ）、候補ブロックを新退避用ブロックに決定する（Ｓ１４６）。
【００５７】
上記の構成は、現在の移行元メモリブロックの消去回数が最小でないとき、該消去回数が最小となるメモリブロックとの消去回数との差が、予め定められた値を下回るときには、移行元メモリブロックを新データ退避用メモリブロックに決定し、予め定められた値を上回るときには、該消去回数が最小となるメモリブロックを新データ退避用メモリブロックに決定するものである。例えば、両者の消去回数の差が数回程度であれば、以降のデータ更新処理によって、その差が縮まってくるので、敢えてここで消去回数を増やす必要はなく、データ更新処理の処理時間短縮と、ブロックの消去回数の節約につながる効果が期待できる。
【００５８】
図９に、図４の処理を所定回数（例えば５００回）実行したときの、各ブロックの状態遷移を示す。１回目の状態では、全てのブロックの消去回数は０回である。この状態で、ブロックＢのデータ記憶量が一杯になったとき、このときの退避用ブロックであるブロックＤに、ブロックＢの最新データ（データフラグを含む）をコピーする。そして、ブロックＢのデータを一括消去する。消去回数は、ブロックＢ以外は０回であるが、ブロックＢの消去回数が１であり、ブロックＤの消去回数が最小、あるいはブロックＢとブロックＤとの消去回数の差が規定値を下回るので、ブロックＤにブロックＢのデータをコピーしたままとし、ブロックＢを新退避用ブロックとする（２回目の状態）。
【００５９】
２回目の状態で、ブロックＤのデータ記憶量が一杯になったとき、退避用ブロックであるブロックＢにブロックＤの最新データ（データフラグを含む）を移行する。そして、ブロックＤのデータを一括消去する。このとき、消去回数の最も少ないブロックＡを新退避用ブロックとする（３回目の状態）。そして、ブロックＡの最新データ（データフラグを含む）をブロックＤにコピーし、ブロックＡのデータを一括消去する。ブロックＡが新退避用ブロックとなった後に、ブロックＢ〜ブロックＤのそれぞれに、新たにデータ（最新データ）が書き込まれ、ブロックＣのデータ記憶量が一杯になっている。
【００６０】
上記処理を繰り返し、５０１回目の処理を行う（ブロックＡのデータをブロックＤに退避して、ブロックＡを新退避用ブロックとする）状態では、図１１とは異なり、特定のブロックの消去回数が突出して大きくなることを回避できる。
【産業上の利用可能性】
【００６１】
フラッシュメモリ以外にも、１以上のアドレスを有するメモリブロックを複数含み、個々のメモリブロックに対し、メモリブロック単位での一括消去、予め定められたアドレス数の記憶領域単位またはビット単位での書き込みを行う記憶媒体に適用可能である。
【００６２】
以上、本発明の実施の形態を説明したが、これらはあくまで例示にすぎず、本発明はこれらに限定されるものではなく、特許請求の範囲の趣旨を逸脱しない限りにおいて、当業者の知識に基づく種々の変更が可能である。
【符号の説明】
【００６３】
１  ＥＣＵ（不揮発性半導体記憶装置）
２  ＣＰＵ（メモリ制御部）
５  フラッシュメモリ
Ａ〜Ｄ  メモリブロック（ブロック、データ記憶用ブロック、データ退避用ブロック）
１００  データ記憶部
１１０  データ管理情報記憶部
１１１  自ブロックの消去回数
１１２  移行元ブロックの消去回数
１１３  データフラグ
【図１】
0005787095.tif 000002
【図２】
0005787095.tif 000003
【図３】
0005787095.tif 000004
【図４】
0005787095.tif 000005
【図５】
0005787095.tif 000006
【図６】
0005787095.tif 000007
【図７】
0005787095.tif 000008
【図８】
0005787095.tif 000009
【図９】
0005787095.tif 000010
【図１０】
0005787095.tif 000011
【図１１】
0005787095.tif 000012