"1以上のアドレスを有するメモリセルブロックを複数備える不揮発性メモリと、前記不揮発性メモリに対し、前記メモリセルブロック単位での一括消去処理、予め定められたアドレス数の記憶領域単位またはビット単位での書き込み処理、および、前記メモリセルブロック単位で、データ更新元メモリセルブロックからデータ更新先メモリセルブロックへ予め定められたデータを転送するデータ更新処理の制御を行うメモリ制御部と、を備え、前記複数のメモリセルブロックは、それぞれ、該メモリセルブロックの使用状態に関する情報を含むステータス情報を記憶するためのステータス情報記憶領域と、該メモリセルブロックの前記データ更新処理における更新履歴を含む更新履歴情報を記憶する更新履歴情報記憶領域と、を備え、前記ステータス情報および前記更新履歴情報に基づいて、現在使用中のメモリセルブロックを特定するメモリセルブロック特定部を備えることを特徴とする不揮発性半導体記憶装置。前記メモリセルブロック特定部は、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが複数あるとき、その複数のメモリセルブロックのうち、更新履歴情報に直近の前記データ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックを、現在使用中のメモリセルブロックとする請求項1に記載の不揮発性半導体記憶装置。前記更新履歴情報は、カウンタ値を含み、前記メモリ制御部は、前記データ更新処理において、前記データ更新先メモリセルブロックのカウンタ値として、前記データ更新元メモリセルブロックのカウンタ値に対して、予め定められた値を加算したものを記憶し、前記メモリセルブロック特定部は、前記カウンタ値に基づいて、前記直近のデータ更新処理におけるデータ更新先メモリセルブロックを判定する請求項2に記載の不揮発性半導体記憶装置。前記メモリセルブロック特定部は、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないとき、該メモリセルブロックを現在使用中のメモリセルブロックとする請求項1ないし請求項3のいずれか1項に記載の不揮発性半導体記憶装置。1以上のアドレスを有するメモリセルブロックを複数備える不揮発性メモリと、前記不揮発性メモリに対し、前記メモリセルブロック単位での一括消去処理、予め定められたアドレス数の記憶領域単位またはビット単位での書き込み処理、および、前記メモリセルブロック単位で、データ更新元メモリセルブロックからデータ更新先メモリセルブロックへ予め定められたデータを転送するデータ更新処理を実行するメモリ制御部を備えた不揮発性半導体記憶装置のメモリ管理方法であって、前記複数のメモリセルブロックは、それぞれ、該メモリセルブロックの使用状態に関する情報を含むステータス情報を記憶するためのステータス情報記憶領域と、該メモリセルブロックの前記データ更新処理における更新履歴を含む更新履歴情報を記憶する更新履歴情報記憶領域と、を備え、前記メモリ制御部において、前記ステータス情報および前記更新履歴情報に基づいて、現在使用中であるメモリセルブロックを特定するメモリセルブロック特定処理を実行することを特徴とするメモリ管理方法。前記メモリセルブロック特定処理において、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが複数あるとき、その複数のメモリセルブロックのうち、更新履歴情報に直近の前記データ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックを、現在使用中のメモリセルブロックとする請求項5に記載のメモリ管理方法。前記更新履歴情報は、カウンタ値を含み、前記データ更新処理において、前記データ更新先メモリセルブロックのカウンタ値として、前記データ更新元メモリセルブロックのカウンタ値に対して、予め定められた値を加算したものを記憶し、前記メモリセルブロック特定処理において、前記カウンタ値に基づいて、前記直近のデータ更新処理におけるデータ更新先メモリセルブロックを判定する請求項6に記載のメモリ管理方法。前記メモリセルブロック特定処理において、前記ステータス情報に現在使用中である旨の情報が含まれるメモリセルブロックが1つしかないとき、該メモリセルブロックを現在使用中であるメモリセルブロックとする請求項5ないし請求項7のいずれか1項に記載のメモリ管理方法。特許文献1の構成では、ステータス情報が何らかの原因でデータ化けをした場合、誤ったステータス判定を行い、古いブロックや空きブロックを最新ブロックと誤判定する可能性がある。そこで、ステータス情報を2重化してデータ化けに対処する方法が考えられる。しかし、フラッシュメモリは、上書きができない特性上、使用状況未使用、使用中、使用済、故障等に対応した数のステータス情報領域を確保しなければならないため、ステータス情報の2重化により、データ記憶領域が少なくなるという問題が生ずる。また、ステータス情報を2重化しても、使用中であるメモリセルブロックが複数あったときには、いずれが最新のメモリセルブロックかを特定することができないという問題もある。上記問題点を背景として、本発明の課題は、より少ないステータス情報領域で、ステータス異常に対応することができる不揮発性半導体記憶装置およびメモリ管理方法を提供することにある。以下、本発明のメモリ管理方法および不揮発性半導体記憶装置について、図面を用いて説明する。まず、図1に、本発明のメモリ管理方法および不揮発性半導体記憶装置をICカードへ適用した例を示す。ICカード1は、1以上のアドレスを有するメモリセルブロックを複数備え、ICカード1の動作に必要なデータを記憶するフラッシュメモリ11詳細は図3参照、あるいはROM13に記憶された制御プログラムを実行することにより、ICカード1の各種機能を実現するCPU10と、CPU10による制御プログラムの実行において生成される各種データを一時的に記憶するためのRAM12を備えている。また、ICカード1は、リーダライタ装置図示せずと物理的に接続してデータ通信を行うための接触式用通信I/F14と、リーダライタ装置と物理的に接続せずにデータ通信を行うための非接触式用通信I/F15のうちの少なくとも一方を備えて構成されている。本実施形態では、ICカード1は、接触式用通信I/F14または非接触式用通信I/F15を介して、リーダライタ装置から電源供給を受けるように構成されている。CPU10は、リーダライタ装置とのデータ通信を行うとともに、データ通信の状態あるいはフラッシュメモリ11の各メモリセルブロックの記憶状態に応じて、フラッシュメモリ11に対し、メモリセルブロック単位での一括消去処理、所定アドレス数の記憶領域単位またはビット単位での書き込み処理、および、メモリセルブロック単位でのデータ更新処理等の制御を行う。なお、CPU10が本発明のメモリ制御部,メモリセルブロック特定部に相当する。また、フラッシュメモリ11が本発明の不揮発性メモリに相当する。図2に、本発明のメモリ管理方法および不揮発性半導体記憶装置を電子制御装置ECUへ適用した例を示す。ECU2は、例えば車両のエンジン制御、エアコン制御等の車載機器の制御に用いられる。ECU2は、CPU20,フラッシュメモリ21,RAM22,ROM23を備え、CPU20が、フラッシュメモリ21あるいはROM23に記憶された制御プログラムを実行することにより、ECU2の各種機能を実現する。RAM22は、CPU10による制御プログラムの実行において生成される各種データを一時的に記憶する。また、ECU2は、例えば、回転センサ,温度センサのようなセンサ26からのデータの取得、あるいは他のECUからのデータ受信を行うための入力I/F24と、例えば、モータ,ソレノイドのようなアクチュエータ27に対する動作制御指令値の出力、あるいは他のECUへのデータ送信を行うための出力I/F25を備えている。フラッシュメモリ21は、1以上のアドレスを有するメモリセルブロックを複数備え詳細は図3参照、ECU2の動作に必要なデータを記憶する。CPU20は、ECU2の動作状態あるいはフラッシュメモリ21の各メモリセルブロックのデータ記憶状態に応じて、フラッシュメモリ21に対し、メモリセルブロック単位での一括消去処理、所定アドレス数の記憶領域単位またはビット単位での書き込み処理、および、メモリセルブロック単位でのデータ更新処理等の制御を行う。なお、CPU20が本発明のメモリ制御部,メモリセルブロック特定部に相当する。また、フラッシュメモリ21が本発明の不揮発性メモリに相当する。上記構成により、ECU2は、センサ26あるいは他のECUから取得したデータ、およびアクチュエータ27の動作状態に基づいて、動作制御指令値を演算し、アクチュエータ27に出力する。フラッシュメモリ11,21の構成、および上述のデータ更新処理等のフラッシュメモリに対する制御は、ICカード1およびECU2とも同様であるので、以下の本発明の構成の説明については、ICカード1の符号を用いて行う。図3に、フラッシュメモリ11の詳細構成を示す。図3の例では、フラッシュメモリ11は、ブロックメモリセルブロックの略称1~ブロック4で示された4個のメモリセルブロックを含んでいる。各メモリセルブロックは、ステータス情報記憶領域101,201,301,401、更新履歴情報記憶領域102,202,302,402が設けられ、残余の領域がデータ記憶領域103,203,303,403となっている。メモリセルブロックにデータが何も記憶されていない状態例えば、一括消去処理が行われた後の状態では、ブロック3あるいはブロック4のように、ステータス情報記憶領域は未使用、更新履歴情報記憶領域は値なし、データ記憶領域は空きとなっている。また、メモリセルブロックにデータが書き込まれると、そのメモリセルブロック図3のブロック1,ブロック2には、ステータス情報記憶領域101,201、更新履歴情報記憶領域102,202には、状態に応じた値が書き込まれ、データ記憶領域103,203にデータが書き込まれる。図3は、既存のデータの更新この場合は追記新規のデータの追加等でブロック1のデータ記憶領域が空き領域のない一杯の状態FULLと表記になったため、データ更新処理により、現在使用中のデータすなわちデータ203aのみをブロック2にコピーした状態を示している詳細については後述。また、ブロック2には空き領域203bがあるので、記憶されているデータ203aの更新が行われたとき、あるいは新たにデータを追加するときは、この空き領域203bに順次追記される。図4を用いて、上述のステータス情報記憶領域101,201,301,401の詳細について、ブロック1のステータス情報記憶領域101を例に挙げて説明する。ステータス情報記憶領域は、例えば1バイト×4の4バイトの領域で構成され、それぞれ、使用中領域101a,コピー中領域101b,使用済領域101c,故障領域101dのように区分されている。図4aのブロック3,4のように、ブロック1が未使用のときは、ステータス情報記憶領域101の全領域101a,101b,101c,101dに何も書き込まれていない状態データが消去された状態となっている。図4bのように、ブロック1を使用中のときは、使用中領域101aに予め定められた値が書き込まれる他の3個の領域は空き状態。次に、他のメモリセルブロックへデータをコピーするデータ更新処理を実行中のときには、コピー中領域101bに予め定められた値が書き込まれる他の2個の領域:使用済領域101c,故障領域101dは空き状態。そして、データ更新処理を終了すると、図4cのように、使用済領域101cに予め定められた値が書き込まれる故障領域101dのみ空き状態。このとき、コピー先のメモリセルブロックのステータス情報記憶領域の使用中領域に、予め定められた値が書き込まれる。また、正常に読み書きできないもの、過去にデータが正常でない値に書き換わった状態以降、データ化けと称するを生じたものには、そのステータス情報記憶領域の故障領域101dに、予め定められた値が書き込まれる。そして、以降の動作では、故障領域101dに、予め定められた値が書き込まれているメモリセルブロックはデータの記憶に用いないようにしている。また、リーダライタ装置図示せずあるいは他のECUに、メモリセルブロックが故障している旨の情報を出力するような、予め定められた故障対応処理を実行してもよい。なお、上述のステータス情報記憶領域の各領域に書き込む値は、本実施例では0x5A1バイトデータとしているが、データ化けの発生を正確に検出できるのであれば、どのような値,データ長としてもよい。上述のように、フラッシュメモリは、アドレス単位あるいはビット単位で消去上書きができないため、状態に応じて領域を確保している。また、ステータス情報を読み出すときの優先順位は、故障が最も高く、以下、使用中,コピー中,使用済の順となり、使用済が最も低い。そして、101a~101dのうち複数の領域に予め定められた値例えば、0x5Aが書き込まれているときには、それらの領域のうち優先順位のより高い領域の状態をそのメモリセルブロックのステータス情報として用いる。例えば、使用中領域101aとコピー中領域101bに予め定められた値が書き込まれているときには、そのメモリセルブロックのステータス情報はコピー中となる。図5を用いて、更新履歴情報記憶領域102,202,302,402の詳細について、ブロック1の更新履歴情報記憶領域102を例に挙げて説明する。図5の例では、更新履歴情報としてカウンタを用いている。このカウンタは、データ更新処理において、自身がコピー先となったときに、コピー元のメモリセルブロックの更新履歴情報記憶領域のカウンタ値に対して、インクリメントしたあるいはデクリメントしたものを記憶する。カウンタ値が最大となったときには、初期値例えば、ゼロに戻ってインクリメントを継続する。なお、図3の、更新履歴情報記憶領域302,402のカウンタ値なしは、データ削除時に書き込まれる値、あるいは初期値等の予め定められた値のような、カウンタ値が通常時に示す値とは異なる値となっていることを示している。更新履歴情報は、直近のデータ更新処理におけるデータ更新先であることを示すもので、最新のデータ更新先であることを示すことが可能であれば、カウンタ値以外の値例えば、他のメモリセルブロックの更新履歴情報との間で大小関係を比較できるものを設定してもよい。また、図5のように、更新履歴情報記憶領域に、カウンタ値102aの他に、カウンタ値のチェックサム102b符号はブロック1を例示を含めてもよい。このように、更新履歴情報記憶領域に、更新履歴の検査用のデータを含めることで、更新履歴すなわち、カウンタ値が正しいものかどうかを確認でき、現在使用中であるメモリセルブロックをより正確に特定することができる。また、更新履歴情報記憶領域のデータ長は、カウンタ値とチェックサムで1バイトとしてもよいし、カウンタ値を2バイトとしチェックサムを1バイトとしてもよい。また、更新履歴情報記憶領域のカウンタ値を、メモリセルブロックブロック1~4の使用状況や寿命の推定にも活用することができる。例えば、カウンタ値が予め定められた閾値を超えるメモリセルブロックは、データ更新処理に用いないようにする詳細は後述。図6に、フラッシュメモリのデータ記憶領域に記憶されるデータの構成を示す。データは、データID,データ値,データ値データIDを含めてもよいのチェックサムを含んでいる。チェックサムを含まない構成としてもよい。例えばブロック2に既に記憶されているデータが更新され、更新データが空き領域203bに追記されたとき、ブロック2には同じデータIDを持つデータが複数記憶される。しかし、データはデータ記憶領域203の先頭アドレスから書き込まれるので、同じデータIDで、最も大きいアドレスに書き込まれているものが最新のデータであると判断できる。図7に、図3のフラッシュメモリにおいて、ノイズ、データ更新処理が正常に行われなかった、等の原因で、メモリセルブロックのステータス情報記憶領域あるいは更新履歴情報記憶領域で、データ化けを生じた状態を示す。図7の例では、ブロック1のステータス情報が使用中になっている。つまり、コピー中領域101bおよび使用済領域101cの本来のデータ0x5Aが、消去されたあるいはデータ化けした状態となっている。また、ブロック4のステータス情報が使用中になっている。つまり、使用中領域にデータ0x5Aが書き込まれた状態となっている。この状態では、ステータス情報のみでは、どのメモリセルブロックが現在使用中であるかを特定することはできない。図8を用いて、ROM13に記憶された制御プログラムに含まれ、CPU10が実行する初期化処理について説明する。まず、ブロック1図3参照のステータス情報記憶領域101の使用中領域101aに0x5Aを書き込むS11。次に、ブロック1の更新履歴情報記憶領域102カウンタ値102aに0x00を書き込むS12。無論、チェックサム値を計算して書き込んでもよい。上述の初期化処理で、ステップS11を実行する前に、全ブロック1~4の一括消去処理を実行してもよい。図9,図4を用いて、ROM13に記憶された制御プログラムに含まれ、CPU10が実行するデータ更新処理について説明するブロック1→ブロック2へのコピーを例示。本処理は、例えば、現在使用中のメモリセルブロックのデータ記憶領域が一杯になったときに実行する。なお、ステップS30a~S30cについては、本処理の必須構成ではないので後述する。まず、ブロック1図3参照のステータス情報記憶領域101のコピー中領域101bに0x5Aを書き込むS31。次に、ブロック1のデータをブロック2にコピーするS32。コピーするデータは各データIDの最新のもののみである。どのデータが最新かの判断方法は上述したとおりである。データのコピーが終了したときS33:Yes、ブロック2のステータス情報記憶領域201の使用中領域201aに0x5Aを書き込むS34。続いて、ブロック2の更新履歴情報記憶領域202カウンタ値202aに0x01を書き込むS35。上述の初期化処理で、ブロック1の更新履歴情報記憶領域102カウンタ値102aには0x00が書き込まれているので、その値をインクリメントしたものを更新履歴情報記憶領域202に書き込んでいる。ブロック1の更新履歴情報に記憶された値に1以外の値を加えたもの、ブロック1の更新履歴情報に記憶された値に所定の演算を行ったものでもよい。最後に、ブロック1のステータス情報記憶領域101の使用済領域101cに0x5Aを書き込むS36。上述の、更新履歴情報記憶領域のカウンタ値を用いることで、メモリセルブロックのデータ更新回数を把握し、メモリセルブロックの使用状況や寿命の推定にも活用する方法について説明する。これは、図9のステップS30a~S30cに相当している。無論、データ更新処理において、これらのステップを必ず実行しなければならないということではない。上述のステップS31を実行する前に、全てのブロックデータ更新先の対象となるブロックのみでもよいの更新履歴情報を読み込むS30a。次に、データ更新先としたいメモリセルブロック例えば、ブロック2の更新履歴情報に含まれるカウンタ値が予め定められた閾値以下となるときS30b:Yesそのメモリセルブロックをデータ更新先としてステップS31へ進む。一方、カウンタ値が閾値を超えるときS30b:No、そのメモリセルブロックをデータ更新先に用いず、別のメモリセルブロックを選択しS30c、そのメモリセルブロックのカウンタ値を調べる。なお、カウンタ値が閾値以下となるメモリセルブロックが1つもないときには、本処理を終了する。図10を用いて、ROM13に記憶された制御プログラムに含まれ、CPU10が実行するブロック特定処理について説明する。まず、不揮発性半導体記憶装置に電源を投入するS51。ICカード1のときは、リーダライタ装置図示せずに電源を投入してICカード1をリーダライタ装置に接近あるいは挿入した状態である。また、ECU2のときは、ECU2に電源を投入した状態である。次に、フラッシュメモリ11の全てのメモリセルブロックブロック1~4のステータス情報記憶領域101,201,301,401および更新履歴情報記憶領域102,202,302,402の内容を読み込むS52。全てのメモリセルブロックのステータス情報および更新履歴情報を読み込むとS53:Yes、ステータス情報の使用中領域に0x5Aが書き込まれているブロック、すなわち現在使用中のメモリセルブロックを検索するS54。このとき、使用済領域あるいは故障領域に0x5Aが書き込まれているものは除外する。次に、現在使用中のメモリセルブロックがありS55:Yes、現在使用中のメモリセルブロックが複数ないときS56:No、検索したメモリセルブロックを現在使用中のメモリブロックとして特定するS57。一方、現在使用中のメモリセルブロックがなかったときS55:No、あるいは、現在使用中のメモリセルブロックが複数あったときS56:Yes、読み込んだ更新履歴情報記憶領域の内容から、カウンタ値が最大であるすなわち、直近のデータ更新処理におけるデータ更新先であることを示す値を記憶するメモリセルブロックを検索するS58。使用中のメモリセルブロックを検索できなかったときは、全てのメモリセルブロックが検索対象となる。また、使用中のメモリセルブロックを複数あったときは、それら複数のメモリセルブロックがカウンタ値の検索対象となる。カウンタ値が最大であるメモリセルブロックを検索できたときS59:Yes、そのメモリセルブロックを現在使用中のメモリセルブロックとして特定するS57。一方、カウンタ値が最大であるメモリセルブロックを検索できなかったときS59:No、例えば工場出荷状態と判定して、ブロック1を使用中とするS60。このとき、ブロック1を使用中とする前に、全ブロックブロック1~4の一括消去処理を実行してもよい。図11を用いて、ブロック特定処理の別例について説明する。なお、本処理は図10の変形例であるので、図10と同一の処理ステップについては同一の符号を付与し、ここでの詳細な説明は割愛する。また、本処理では、メモリセルブロック特定部は、更新履歴情報に直近のデータ更新処理におけるデータ更新先であることを示す内容が含まれているメモリセルブロックがあるときには、そのメモリセルブロックのステータス情報に現在使用中である旨の情報が含まれているとき、そのメモリセルブロックを現在使用中であるメモリセルブロックとしている。フラッシュメモリ11の、全てのメモリセルブロックブロック1~4のステータス情報記憶領域101,201,301,401および更新履歴情報記憶領域102,202,302,402の内容を読み込むとS53:Yes、読み込んだ更新履歴情報記憶領域の内容から、カウンタ値が最大であるメモリセルブロックを検索するS531。カウンタ値が最大であるメモリセルブロックを検索できたときS532:Yes、かつ、検索したメモリセルブロックが複数でないときS533:No、検索したメモリセルブロックのステータス情報を参照し、以下のように、ステータス情報に応じた処理を実行するS534。ステータス情報が使用中のとき:そのメモリセルブロックを継続して使用する。ステータス情報がコピー中のとき:図9のデータ更新処理メモリセルブロックのコピーの実行途中と推定できるので、データ更新処理をやり直す。このとき、コピーの前に、コピー先のメモリセルブロックの内容を一括消去してもよい。ステータス情報が使用済のとき:メモリセルブロック内のデータを他のメモリセルブロックにコピーする。つまり、図9のデータ更新処理を実行する。ステータス情報が故障のとき:上述のような故障対応処理を実行する。ステータス情報が上記以外のとき:使用中と見なす。そして、ステータス情報が使用中のメモリセルブロックがあるときには、そのメモリセルブロックを現在使用中のメモリセルブロックとして特定するS537。検索した、カウンタ値最大のメモリセルブロックの数が複数でないときS533:No、そのメモリセルブロックが使用中であるか否かを判定せずに、現在使用中のメモリセルブロックとして特定してもよい。一方、カウンタ値が最大であるメモリセルブロックを検索できないときS532:No、例えば工場出荷状態と判定して、ブロック1を使用中とするS60。図8の初期化処理を実行してもよい。また、カウンタ値が最大であるメモリセルブロックを複数検索したときS533:Yes、検索した複数のメモリセルブロックに現在使用中のメモリセルブロックがあるか否かを検索するS535。検索の結果、現在使用中のメモリセルブロックが複数見つからなかったときS536:No、検索されたメモリセルブロックを現在使用中のメモリセルブロックとして特定するS537。一方、現在使用中のメモリセルブロックが複数見つかったときS536:Yes、そのうちのいずれを現在使用中のメモリセルブロックとするか特定できないため、上述のステップS60の処理を実行する。なお、上述の実施例で、カウンタ値をインクリメントする構成において、カウンタ値がオーバーフローしたときには、カウンタ値をゼロに戻すが、この場合の最大値はゼロとなる。また、ブロック1~4において、ゼロを挟んでオーバーフロー前の値とゼロ以降の値とが記憶されているときは、オーバーフロー前の値を検索の対象から外すようにしてもよい。"