(57)【特許請求の範囲】
【請求項１】
ブロック領域毎に書き換えが可能であると共に、予備のブロック領域を備えた不揮発性半導体メモリを使用した２次記憶装置において、
記憶すべき各情報の識別を示す論理ブロック番号と、不揮発性半導体メモリを構成する各ブロック領域の識別を示す物理ブロック番号との対応関係を記憶する論理物理対応記憶手段と、
論理ブロック番号を添えて情報の書き込みを要求されたときに、当該書き込み要求された情報を予備の第１のブロック領域に書き込む第１の書込手段と、
前記論理物理対応記憶手段を参照して、前記書き込み要求された情報に添えられた論理ブロック番号に対応する物理ブロック番号を読み出す物理ブロック番号読出手段と、
前記物理ブロック番号読出手段で読み出された物理ブロック番号を持つ第２のブロック領域に記憶されていた情報を消去し、当該第２のブロック領域を予備のブロック領域とする第１の消去手段と、
前記第１のブロック領域の物理ブロック番号を、前記書き込み要求された情報に添えられた論理ブロック番号と対応づけて、前記論理物理対応記憶手段に記憶させる第１の対応関係変更手段と、
前記第２のブロック領域における消去回数が所定基準値に達したときに、前記不揮発性半導体メモリにおける予備のブロック領域を除く全ブロック領域から、交代用ブロック領域を探す探索手段と、
前記探索手段により見つけられた交代用ブロック領域に記憶されていた情報を、前記第２のブロック領域に書き込む第２の書込手段と、
前記第２のブロック領域の物理ブロック番号を、前記交代用ブロック領域に記憶されていた情報の論理ブロック番号と対応づけて、前記論理物理対応記憶手段に記憶させる第２の対応関係変更手段と、
前記交代用ブロック領域に記憶されていた情報を消去し、当該ブロック領域を予備のブロック領域とする第２の消去手段と、
を有することを特徴とする不揮発性半導体メモリを使用した２次記憶装置。
【請求項２】
前記第１の書込手段は、
前記不揮発性半導体メモリにおける予備の全ブロック領域の中から、消去回数が最低値のブロック領域を選択して前記第１のブロック領域に決定する決定手段を含むことを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項３】
前記探索手段は、
前記第２のブロック領域における消去回数が所定基準値に達したときに、当該所定基準値を、より大きな値に更新する更新手段を含むことを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項４】
前記所定基準値はブロック領域毎に個別に設定されることを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項５】
前記所定基準値は予め定められた複数の値であり、
前記探索手段は、前記第２のブロック領域における消去回数が前記複数の所定基準値のいずれに一致したときにも、交代用ブロック領域を探すことを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項６】
前記探索手段は、
前記不揮発性半導体メモリにおける予備のブロック領域を除く全ブロック領域の中から、消去回数が前記第２のブロック領域の消去回数より少なく、かつ論理ブロック書き込み回数が最低値であるブロック領域を選択して、前記交代用ブロック領域に決定する決定手段を含むことを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項７】
前記第１の書込手段、前記第１の消去手段、前記第２の書込手段、または前記第２の消去手段による書込処理または消去処理が正常に行われた否かを監視する監視手段と、
前記監視手段による監視の結果、正常に行われていないことが検出されたときに、処理対象のブロック領域の使用を禁止する禁止手段と、
をさらに有することを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項８】
前記禁止手段によって使用が禁止されたブロック領域以外のブロック領域の中で、使用が禁止されていない予備のブロック領域が存在するか否かを調べる調査手段と、
前記調査手段によって予備のブロック領域が存在しないと判定されたときに、前記不揮発性半導体メモリの使用不可を通知する通知手段と、
をさらに有することを特徴とする請求項７記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項９】
前記禁止手段によって使用が禁止されたブロック領域以外のブロック領域の中で、使用が禁止されていない予備のブロック領域が存在するか否かを調べる調査手段と、
前記調査手段によって予備のブロック領域が所定数存在すると判定されたときに、前記不揮発性半導体メモリの使用不可が間近であることを通知する通知手段と、
をさらに有することを特徴とする請求項７記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項１０】
各情報の書き込みを要求されたときに、情報毎に分けて、書き込み要求された情報を一時的に記憶する一時記憶手段と、
前記一時記憶手段が各情報を記憶したときに情報の記憶開始時からの所定時間の経過をそれぞれ計測する計測手段と、
前記計測手段が前記所定時間の経過を検出したときに、対応の情報を読み出して前記第１の書込手段へ送る読出手段と、
をさらに有することを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項１１】
情報の書き込みを要求されたときに、当該書き込み要求された情報が、前記一時記憶手段に既に記憶されている情報の更新情報であるか否かを判定する判定手段と、
前記判定手段による判定の結果、更新情報である場合には、対応の元情報を前記一時記憶手段から削除すると共に、当該元情報の記憶開始時に前記計測手段によって計測開始された経過時間値を０に戻すリセット手段と、
をさらに有することを特徴とする請求項１０記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項１２】
前記一時記憶手段はキャッシュメモリであることを特徴とする請求項１０記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項１３】
前記不揮発性半導体メモリを、同一構成からなる現用及び予備の少なくとも２つのメモリから構成し、
前記論理物理対応記憶手段、前記第１の書込手段、前記物理ブロック番号読出手段、前記第１の消去手段、前記第１の対応関係変更手段、前記探索手段、前記第２の書込手段、前記第２の対応関係変更手段、及び前記第２の消去手段を、少なくとも２組備え、
各情報の書き込みを要求されたときに、情報毎に分けて、書き込み要求された情報を一時的に記憶する一時記憶手段と、  
前記一時記憶手段が各情報を記憶したときに情報の記憶開始時から第１の所定時間の経過をそれぞれ計測し、前記記憶開始時から前記第１の所定時間よりも長い第２の所定時間の経過をそれぞれ計測する計測手段と、
前記計測手段が前記第１の所定時間の経過を検出したときに、対応の情報を読み出して前記現用不揮発性半導体メモリの前記第１の書込手段へ送る第１の読出手段と、
前記計測手段が前記第２の所定時間の経過を検出したときに、対応の情報を読み出して前記予備不揮発性半導体メモリの前記第１の書込手段へ送る第２の読出手段と、
をさらに有することを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項１４】情報の書き込みを要求されたときに、当該書き込み要求された情報が、前記一時記憶手段に既に記憶されている情報の更新情報であるか否かを判定する判定手段と、
前記判定手段による判定の結果、更新情報である場合には、対応の元情報を前記一時記憶手段から削除すると共に、当該元情報の記憶開始時に前記計測手段によって計測開始された経過時間値を０に戻すリセット手段と、
をさらに有することを特徴とする請求項１３記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項１５】
前記一時記憶手段はキャッシュメモリであることを特徴とする請求項１３記載の不揮発性半導体メモリを使用した２次記憶装置。
【請求項１６】
前記不揮発性半導体メモリはフラッシュメモリであることを特徴とする請求項１記載の不揮発性半導体メモリを使用した２次記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、不揮発性半導体メモリを使用した２次記憶装置に関し、特に、ブロック領域毎に書き換えが可能であると共に、予備のブロック領域を備えたフラッシュメモリを使用した２次記憶装置に関する。
【０００２】
現在の小型コンピュータは、２次記憶装置としてハードディスク装置を使用している場合が多いが、ハードディスク装置は機械的部分を有するために寿命が短く、またメンテナンスが必要であることや、適用可能となる環境（温度、湿度、振動）が半導体に比べて狭い。そこで、ハードディスク装置に代わりにフラッシュメモリを使用した２次記憶装置に期待が集まっている。
【０００３】
【従来の技術】
通常、２次記憶装置のハードディスクの代わりに使用されたフラッシュメモリでは、記憶領域が複数のブロック領域（数１０Ｋバイト）に分けられ、書き込みは１バイト単位や１ワード単位で行えるが、消去はブロック単位で行う。書き込みと消去を繰り返すと、いずれ消去または書き込みができなくなり、このときこのブロックは寿命となる。
【０００４】
従来、フラッシュメモリは消去回数に制限（寿命）があるので、２次記憶装置としての寿命を延ばすためにフラッシュメモリに倍以上の予備のブロックを用意し、書換え寿命が来た現用のブロックに代わって予備のブロックを使用できるようにしている。
【０００５】
図１８は、従来のフラッシュメモリのブロック構成を示す図であり、（Ａ），（Ｂ），（Ｃ）はブロック領域の時間変化をこの順に示している。フラッシュメモリは、例えば物理番号１〜（ｎ＋ｍ）を付された（ｎ＋ｍ）個のブロック領域から構成され、そのうちの物理番号１〜ｎを付されたｎ個のブロック領域が現用のブロック領域であり、残りのｍ個のブロック領域が予備のブロック領域である。現用のブロック領域には論理番号１〜ｎを付された各情報が格納される（Ａ）。
【０００６】
ここで、例えば論理番号２を付された情報が更新されることになった場合、論理番号２を付された情報が今まで格納されていた物理番号２のブロック領域の消去回数がチェックされる。その結果、制限回数（例えば１０万回）を越えていなければ物理番号２のブロック領域に更新情報が書き込まれる。しかし、制限回数を越えている場合には、物理番号２のブロック領域は使用が不可能と見なして、論理番号２を付された情報の格納ブロックとして物理番号（ｎ＋１）のブロック領域を新たに割り当て、そこへ論理番号２を付された情報の更新情報を書き込む（Ｂ）。
【０００７】
このような書き込みを繰り返し、その結果、予備のブロック領域が無くなると（Ｃ）、フラッシュメモリの装置寿命と判断する。
【０００８】
【発明が解決しようとする課題】
しかし、従来の装置では、例えば論理番号１を付された情報が格納後に殆ど変更されない性質の情報である場合、物理番号１のブロック領域の消去回数が数回であることが十分あり得、その場合、寿命となる制限回数までには相当の余裕がある。それにも拘わらず、予備のブロックが無くなってしまえばフラッシュメモリの装置寿命と見なされてしまうという問題があった。
【０００９】
また、フラッシュメモリの消去回数には、制限回数として最低値と平均値とがあり、両者の間に通常１桁の差がある。最低値は各ブロック領域を確実に使用できる保証限度回数であり、平均値は各ブロック領域が使用できなくなったときの消去回数に関する実データの平均値である。通常、最低値が１０万回に対して平均値が約１００万回程度である。
【００１０】
従来、制限回数として最低値を適用しているので、消去回数が制限回数の１０万回に達したからと言っても、必ずしも、そのブロック領域がすぐ使用できなくなってしまう訳ではない。平均的にはまだ、約９０万回の使用が可能であるにも拘わらず、そのブロック領域の使用を止めてしまっているという問題がある。
【００１１】
本発明はこのような点に鑑みてなされたものであり、不揮発性半導体メモリを構成する各ブロック領域を、使用できなくなる限度まで使い切るようにした不揮発性半導体メモリを使用した２次記憶装置を提供することを目的とする。
【００１２】
【課題を解決するための手段】
本発明では上記目的を達成するために、図１に示すように、記憶すべき各情報の識別を示す論理ブロック番号と、不揮発性半導体メモリ２０ａを構成する各ブロック領域の識別を示す物理ブロック番号との対応関係を記憶する論理物理対応記憶手段１１と、論理ブロック番号を添えて情報の書き込みを要求されたときに、当該書き込み要求された情報を予備の第１のブロック領域に書き込む第１の書込手段１２と、論理物理対応記憶手段１１を参照して、書き込み要求された情報に添えられた論理ブロック番号に対応する物理ブロック番号を読み出す物理ブロック番号読出手段１３と、物理ブロック番号読出手段１３で読み出された物理ブロック番号を持つ第２のブロック領域に記憶されていた情報を消去し、第２のブロック領域を予備のブロック領域とする第１の消去手段１４と、第１のブロック領域の物理ブロック番号を、書き込み要求された情報に添えられた論理ブロック番号と対応づけて、論理物理対応記憶手段１１に記憶させる第１の対応関係変更手段１５と、第２のブロック領域における消去回数が所定基準値に達したときに、不揮発性半導体メモリ２０ａにおける予備のブロック領域を除く全ブロック領域から、交代用ブロック領域を探す探索手段１６と、探索手段１６により見つけられた交代用ブロック領域に記憶されていた情報を、第２のブロック領域に書き込む第２の書込手段１７と、第２のブロック領域の物理ブロック番号を、交代用ブロック領域に記憶されていた情報の論理ブロック番号と対応づけて、論理物理対応記憶手段１１に記憶させる第２の対応関係変更手段１８と、交代用ブロック領域に記憶されていた情報を消去し、当該ブロック領域を予備のブロック領域とする第２の消去手段１９とを有することを特徴とする不揮発性半導体メモリ２０ａを使用した２次記憶装置が提供される。
【００１３】
以上のような構成において、まず不揮発性半導体メモリ２０ａにブロック領域が多数設けられ、それらに物理ブロック番号１，２，３，４，・・が付されているとする。そして例えば、物理ブロック番号１のブロック領域には論理ブロック番号０を付された情報Ａが格納され、物理ブロック番号３のブロック領域には論理ブロック番号２を付された情報Ｃが格納され、物理ブロック番号４のブロック領域には論理ブロック番号２５を付された情報Ｚ９８が格納されているとする。なお、物理ブロック番号２のブロック領域には情報が格納されておらず、このブロック領域は予備のブロック領域である。
【００１４】
ここで、不揮発性半導体メモリ２０ａが、例えば論理ブロック番号２５を添えて情報Ｚ９９の書き込みを要求されたとする。情報Ｚ９９は情報Ｚ９８の更新情報である。この要求に応じて、第１の書込手段１２が不揮発性半導体メモリ２０ａにおいて予備のブロック領域を探し、例えば予備の第１のブロック領域、すなわち物理ブロック番号２のブロック領域を見つけたとする。第１の書込手段１２は、書き込み要求された情報Ｚ９９をこの物理ブロック番号２のブロック領域に書き込む。それと共に、物理ブロック番号読出手段１３が、論理物理対応記憶手段１１を参照して、書き込み要求された情報Ｚ９９に添えられた論理ブロック番号２５に対応する物理ブロック番号４を読み出す。論理物理対応記憶手段１１は論理ブロック番号と物理ブロック番号との対応関係を記憶しており、ここでは例えば、論理ブロック番号２５に対応して物理ブロック番号４を記憶している。
【００１５】
第１の消去手段１４は、物理ブロック番号読出手段１３で読み出された物理ブロック番号４を持つ第２のブロック領域に記憶されていた情報Ｚ９８を消去し、第２のブロック領域を予備のブロック領域とする。そして、第１の対応関係変更手段１５が、情報Ｚ９９が格納された第１のブロック領域の物理ブロック番号２を、情報Ｚ９９に添えられた論理ブロック番号２５と対応づけて、論理物理対応記憶手段１１に記憶させる。
【００１６】
次に探索手段１６が、第１の消去手段１４によって消去が行われた物理ブロック番号４の第２のブロック領域における消去回数を調べ、消去回数が所定基準値に達したときには、不揮発性半導体メモリ２０ａにおける予備のブロック領域を除く現用ブロック領域から、交代用ブロック領域を探す。交代用ブロック領域は、消去回数が第２のブロック領域の消去回数より少なく、かつ論理ブロック書き込み回数が最低値であるブロック領域を選択する。例えば物理ブロック番号１のブロック領域が交代用ブロック領域として見つけられたとする。
【００１７】
第２の書込手段１７は、探索手段１６により見つけられた物理ブロック番号１の交代用ブロック領域に記憶されていた情報Ａを、物理ブロック番号４の第２のブロック領域に書き込む。そして第２の対応関係変更手段１８が、第２のブロック領域の物理ブロック番号４を、交代用ブロック領域に記憶されていた情報Ａの論理ブロック番号０と対応づけて、論理物理対応記憶手段１１に記憶させる。さらに、第２の消去手段１９が物理ブロック番号１の交代用ブロック領域に記憶されていた情報Ａを消去し、物理ブロック番号１のブロック領域を予備のブロック領域とする。
【００１８】
以上のように、更新情報の書き込みを要求されたときに、その更新情報を予備のブロック領域に書き込むと共に、それまで対応の元情報が格納されていたブロック領域を予備のブロック領域に回す。これによって、各ブロック領域の消去回数が平均的に増加する。しかし、更新頻度が低い情報を格納したブロック領域は予備のブロック領域に回される確率が低い。そこで、そうした更新頻度が低い情報を格納したブロック領域を探し出して予備のブロック領域に回すようにした。さらには、そうした更新頻度が低い情報を、消去回数が所定基準値に達したブロック領域に格納するようにした。
【００１９】
こうすることにより、ブロック領域間の消去回数のバラツキが解消し、したがって、全部のブロック領域を使用限度ギリギリまで使用することが可能となる。しかも、ブロック領域毎に消去や書き込みの異常をチェックするようにすれば、使用限度を前述の最低値に設定する必要はなく、ブロック領域の各々における実際の使用限度まで使用することが可能となる。
【００２０】
【発明の実施の形態】
以下、本発明の実施の形態を、図面を参照して説明する。
まず、第１の実施の形態に係る原理構成を、図１を参照して説明する。第１の実施の形態は、記憶すべき各情報の識別を示す論理ブロック番号と、不揮発性半導体メモリ２０ａを構成する各ブロック領域の識別を示す物理ブロック番号との対応関係を記憶する論理物理対応記憶手段１１と、論理ブロック番号を添えて情報の書き込みを要求されたときに、当該書き込み要求された情報を予備の第１のブロック領域に書き込む第１の書込手段１２と、論理物理対応記憶手段１１を参照して、書き込み要求された情報に添えられた論理ブロック番号に対応する物理ブロック番号を読み出す物理ブロック番号読出手段１３と、物理ブロック番号読出手段１３で読み出された物理ブロック番号を持つ第２のブロック領域に記憶されていた情報を消去し、第２のブロック領域を予備のブロック領域とする第１の消去手段１４と、第１のブロック領域の物理ブロック番号を、書き込み要求された情報に添えられた論理ブロック番号と対応づけて、論理物理対応記憶手段１１に記憶させる第１の対応関係変更手段１５と、第２のブロック領域における消去回数が所定基準値に達したときに、不揮発性半導体メモリ２０ａにおける予備のブロック領域を除く全ブロック領域から、交代用ブロック領域を探す探索手段１６と、探索手段１６により見つけられた交代用ブロック領域に記憶されていた情報を、第２のブロック領域に書き込む第２の書込手段１７と、第２のブロック領域の物理ブロック番号を、交代用ブロック領域に記憶されていた情報の論理ブロック番号と対応づけて、論理物理対応記憶手段１１に記憶させる第２の対応関係変更手段１８と、交代用ブロック領域に記憶されていた情報を消去し、当該ブロック領域を予備のブロック領域とする第２の消去手段１９とから構成される。
【００２１】
以上のような構成において、まず不揮発性半導体メモリ２０ａにブロック領域が多数設けられ、それらに物理ブロック番号１，２，３，４，・・が付されているとする。そして例えば、物理ブロック番号１のブロック領域には論理ブロック番号０を付された情報Ａが格納され、物理ブロック番号３のブロック領域には論理ブロック番号２を付された情報Ｃが格納され、物理ブロック番号４のブロック領域には論理ブロック番号２５を付された情報Ｚ９８が格納されているとする。なお、物理ブロック番号２のブロック領域には情報が格納されておらず、このブロック領域は予備のブロック領域である。
【００２２】
ここで、不揮発性半導体メモリ２０ａが、例えば論理ブロック番号２５を添えて情報Ｚ９９の書き込みを要求されたとする。情報Ｚ９９は情報Ｚ９８の更新情報である。この要求に応じて、第１の書込手段１２が不揮発性半導体メモリ２０ａにおいて予備のブロック領域を探し、例えば予備の第１のブロック領域、すなわち物理ブロック番号２のブロック領域を見つけたとする。第１の書込手段１２は、書き込み要求された情報Ｚ９９をこの物理ブロック番号２のブロック領域に書き込む。それと共に、物理ブロック番号読出手段１３が、論理物理対応記憶手段１１を参照して、書き込み要求された情報Ｚ９９に添えられた論理ブロック番号２５に対応する物理ブロック番号４を読み出す。論理物理対応記憶手段１１は、論理ブロック番号と物理ブロック番号との対応関係を記憶しており、ここでは例えば、論理ブロック番号２５に対応して物理ブロック番号４を記憶している。
【００２３】
第１の消去手段１４は、物理ブロック番号読出手段１３で読み出された物理ブロック番号４を持つ第２のブロック領域に記憶されていた情報Ｚ９８を消去し、第２のブロック領域を予備のブロック領域とする。そして、第１の対応関係変更手段１５が、情報Ｚ９９が格納された第１のブロック領域の物理ブロック番号２を、情報Ｚ９９に添えられた論理ブロック番号２５と対応づけて、論理物理対応記憶手段１１に記憶させる。
【００２４】
次に探索手段１６が、第１の消去手段１４によって消去が行われた物理ブロック番号４の第２のブロック領域における消去回数を調べ、消去回数が所定基準値に達したときには、不揮発性半導体メモリ２０ａにおける予備のブロック領域を除く現用ブロック領域から、交代用ブロック領域を探す。交代用ブロック領域は、消去回数が第２のブロック領域の消去回数より少なく、かつ論理ブロック書き込み回数が最低値であるブロック領域を選択する。例えば物理ブロック番号１のブロック領域が交代用ブロック領域として見つけられたとする。
【００２５】
第２の書込手段１７は、探索手段１６により見つけられた物理ブロック番号１の交代用ブロック領域に記憶されていた情報Ａを、物理ブロック番号４の第２のブロック領域に書き込む。そして第２の対応関係変更手段１８が、第２のブロック領域の物理ブロック番号４を、交代用ブロック領域に記憶されていた情報Ａの論理ブロック番号０と対応づけて、論理物理対応記憶手段１１に記憶させる。さらに、第２の消去手段１９が物理ブロック番号１の交代用ブロック領域に記憶されていた情報Ａを消去し、物理ブロック番号１のブロック領域を予備のブロック領域とする。
【００２６】
以上のように、更新情報の書き込みを要求されたときに、その更新情報を予備のブロック領域に書き込むと共に、それまで対応の元情報が格納されていたブロック領域を予備のブロック領域に回す。これによって、各ブロック領域の消去回数が平均的に増加する。しかし、更新頻度が低い情報を格納したブロック領域は予備のブロック領域に回される確率が低い。そこで、そうした更新頻度が低い情報を格納したブロック領域を探し出して予備のブロック領域に回すようにした。さらには、そうした更新頻度が低い情報を、消去回数が所定基準値に達したブロック領域に格納するようにした。
【００２７】
こうすることにより、ブロック領域間の消去回数のバラツキが解消し、したがって、全部のブロック領域を使用限度ギリギリまで使用することが可能となる。しかも、ブロック領域毎に消去や書き込みの異常をチェックするようにすれば、使用限度を前述の最低値に設定する必要はなく、ブロック領域の各々における実際の使用限度まで使用することが可能となる。
【００２８】
次に、第１の実施の形態を詳しく説明する。なお、以下に説明する第１の実施の形態では、図１に示す不揮発性半導体メモリ２０ａはフラッシュメモリ２０に対応する。
【００２９】
図２は、第１の実施の形態に係る２次記憶装置を含んだパソコンなどの小型コンピュータ１００の構成を示す図である。
小型コンピュータ１００は、通常の小型コンピュータの構成と同じように、ＣＰＵ１０、プログラム格納メモリ（ＲＯＭ）４０、ＲＡＭ３０を備え、それらがＣＰＵ−ＢＵＳ６０によって接続される。すなわち、プログラム格納メモリ４０に記憶されたプログラムに従いＣＰＵ１０が作動して、ＣＰＵ１０はＲＡＭ３０に一時的なデータの記憶を行いながら所定の処理を実行する。
【００３０】
フラッシュメモリ２０は２次記憶装置として作動し、電源断で消えてはいけないデータを記憶する。このデータの記憶処理をＣＰＵ１０が行い、図１で示した第１の書込手段１２、物理ブロック番号読出手段１３、第１の消去手段１４、第１の対応関係変更手段１５、探索手段１６、第２の書込手段１７、第２の対応関係変更手段１８、及び第２の消去手段１９は、ＣＰＵ１０の記憶処理によって実現される機能である。
【００３１】
ＲＡＭ３０のメモリ領域にはライトキャッシュ領域が設けられ、ライトキャッシュ領域は、書き込み時のデータをフラッシュメモリ２０に書く前に一時的に溜めておく。ライトキャッシュ領域以外のＲＡＭ領域には、電源断で消えてしまっても構わないデータのうち、その書き込み場所（セクタ番号で指定）があらかじめ決まっているデータが格納される。
【００３２】
寿命表示ランプ７０は、フラッシュメモリ２０が寿命に至り使用不可能となったときに点灯される。ライトキャッシュランプ７１は、ＲＡＭ３０のライトキャッシュ領域に書き込みデータが溜まっているときに点灯される。ライトキャッシュランプ７１の点灯は、消してはならないデータがまだフラッシュメモリ２０に書き込まれずライトキャッシュに溜まっていることを保守者に知らせ、保守者が電源断を不用意に行うことを防ぐ。
【００３３】
図３はフラッシュメモリ２０の各ブロック領域を示す図である。
フラッシュメモリ２０は１０２４個のブロック領域から構成され、物理ブロック番号０〜１０２３が付与されている。１ブロック領域は６４ＫＢ（１ＫＢ＝１０２４バイト）の容量を持つ。物理ブロック番号０のブロック領域は、フォーマット情報やフラッシュメモリの種類、寿命フラグを記憶するために使用される。物理ブロック番号１〜１０２３の各ブロック領域がディスクデータを記憶する部分である。ディスクデータは、従来ならばハードディスク装置に記憶されるべきデータという意味である。論理ブロック数は９６０であり、したがって、予備ブロック数が６３となる。
【００３４】
１セクタを５１２バイト（ＳＣＳＩで通常使用される値）に設定すると、１ブロックには１２８セクタ（＝６４×１０２４／５１２）を収容できる。１セクタ分を、制御情報を格納する情報エリアに使用して、残り１２７セクタ分を、ディスクデータを格納するデータ領域とする。
【００３５】
図４は、ブロックの中の構成を示す図である。情報エリアは、論理番号欄ｌ、消去回数欄ｃ、論理ブロック書き込み回数欄ｗ、交代基準値欄ｎ、及びチェックサム欄ｓの各欄からなる。論理番号欄ｌには、データ領域に格納されているディスクデータの論理ブロック番号が記載される。論理ブロック番号は、ディスクデータの識別番号である。なお、自分のブロックが予備ブロックとなっているときは、予備であることを示す符号（例えばＦＦＦＦＦＦＦＦＨ）が論理番号欄ｌに記載される。消去回数欄ｃには、自ブロックを消去した回数が記載される。ブロックの消去処理を行うごとに、１増やした値が書き込まれる。寿命が近いかどうかの目安になる。論理ブロック書き込み回数欄ｗには、データ領域に格納されているディスクデータに対して更新書き込みが行われた回数が記載される。交代基準値欄ｎには、自ブロックで行われた消去処理の回数に対する比較基準値が記載される。自ブロックでの消去回数がこの交代基準値に達すると、自ブロックに対して後述の交代処理が実行される。チェックサム欄ｓには、ブロック内のデータの合計値が記載され、データが正しく伝送されたかどうかのチェックに使用される。
【００３６】
データ領域には、ディスクデータとしての実際のデータが格納される。
交代基準値としては、フラッシュメモリ２０の消去回数（書き込み回数）の制限回数が、例えば最小１０万回、平均１００万回であるので、最小値１０万回の１０分の１程度である値８１９２（＝２１３）が設定される。
【００３７】
次に、ＲＡＭ３０またはフラッシュメモリ２０に対してＣＰＵ１０によって行われるデータ書込処理及び読出処理を説明する。
図５は、ＲＡＭ３０またはフラッシュメモリ２０に対するＣＰＵ１０によるデータ書込処理及び読出処理の手順を示すフローチャートである。以下、図５中のステップ番号（Ｓ）を適宜引用しながら説明する。
【００３８】
書込処理または読出処理の対象となるデータにセクタ番号が示されているか、かつ示されたセクタ番号がＲＡＭ領域に相当するか否かを判別する（Ｓ１）。判別結果が肯定、つまり、書込処理または読出処理の対象となるデータが、電源断で消えても構わないデータであり、かつ書き込みや読み出しの位置が予め分かっているＲＡＭ領域に関わるデータであるならば、セクタ番号からＲＡＭ３０内のアドレスを計算する（Ｓ２）。１セクタは５１２バイトなので、そのセクタ番号からＲＡＭ領域の先頭セクタ番号を引いて５１２を掛け、オフセットアドレスを足せば、所望のアドレスが得られる。書き込みのときは、得られたアドレスのＲＡＭ領域に書き込みデータを転送し、読み出しのときは、得られたアドレスのＲＡＭ領域に格納されていたデータの内容を読み出して転送する（Ｓ３）。
【００３９】
ステップＳ１の判別答が否定、つまりフラッシュメモリ２０に関わるデータであるならば、フラッシュメモリアクセス処理を行う（Ｓ４）。
図６は、図５のステップＳ４で行われるフラッシュメモリアクセス処理の内容を示すフローチャートである。
【００４０】
まず、フラッシュメモリ２０が装置寿命になっているか否かを判別する（Ｓ１１）。この判別はフラッシュメモリ２０の物理ブロック番号０に格納されている寿命フラグを参照する。フラッシュメモリ２０が装置寿命になっている場合には寿命表示ランプ７０を点灯して、フラッシュメモリ２０に寿命がきて使用できないことを操作者に知らせる（Ｓ１２）。
【００４１】
フラッシュメモリ２０にまだ寿命がきていなければ、セクタ番号を論理ブロック番号に変換する（Ｓ１３）。すなわち、１ブロックに１２７セクタ入るので、セクタ番号を１２７で割って商と余りを求め、商を論理ブロック番号に、余りをブロック内のオフセット位置とする。１２７で割る処理は実際に計算するか、あるいはテーブルを利用する。
【００４２】
そして、書込（ｗｒｉｔｅ）が求められているならば書き込み処理を行う（Ｓ１４，Ｓ１５）。この処理の詳しい内容については、図７を参照して後述する。読み出し（ｒｅａｄ）が求められているならば、読み出し指示されたデータがＲＡＭ３０のライトキャッシュ領域にあるか否かを判別する（Ｓ１６）。ライトキャッシュ領域にある場合は、ライトキャッシュ領域にあるデータを読み出して転送する（Ｓ１９）。ライトキャッシュ領域にない場合は、論理物理変換テーブルを参照して論理ブロック番号から物理ブロック番号に変換し（Ｓ１７）、得られた物理ブロック番号からデータが格納されているアドレスを計算する（Ｓ１８）。この変換は、後述の書き込み処理で使われる論理物理変換テーブルを使用する。そして、得られたアドレスを基に、フラッシュメモリ２０からデータを読み出して転送する（Ｓ１９）。
【００４３】
図７（Ａ）は、図６のステップＳ１５の内容を示すフローチャートであり、図７（Ｂ）は、図７（Ａ）の処理で動作させられたタイマが所定時間を計測完了したときに実行される処理を示すフローチャートである。
【００４４】
書き込み処理の対象となるデータが過去に入力されたデータの更新データであり、しかもＲＡＭ３０のライトキャッシュ領域にその元のデータが存在するか否かを判別する（Ｓ２１）。存在するならば元のデータをライトキャッシュ領域から破棄し（Ｓ２２）、その元のデータをライトキャッシュ領域に書き込んだときに計測を開始したタイマの当該データ用の経過時間値を０にリセットする（Ｓ２３）。
【００４５】
そして、更新データをライトキャッシュ領域に書き込み（Ｓ２４）、この書き込み時点からの経過時間をタイマに計測させる（Ｓ２５）。タイマは、データ毎に書き込み時点からの経過時間を計測する。ステップＳ２１で元のデータが存在しなければ、ステップＳ２４へ進む。
【００４６】
そして、経過時間が所定時間（例えば２秒）に達すると、ライトキャッシュ領域に書き込まれていたデータはフラッシュメモリ２０へ書き込まれ、ライトキャッシュ領域の当該データは消去される（Ｓ２６）。
【００４７】
以上のように、図７（Ａ）及び図７（Ｂ）で示される処理により、フラッシュメモリ２０に書き込まれるべきデータが一時的にＲＡＭ３０のライトキャッシュ領域に書き込まれる。そして、書き込み時点から所定時間が経過すると、そのデータはフラッシュメモリ２０に移される。もし、所定時間の経過前に当該データの更新データが再度書き込まれることがあれば、ライトキャッシュ領域において更新が行われ、したがって、フラッシュメモリ２０での書き込み処理や消去処理が不要となり、フラッシュメモリ２０の寿命を延ばすことができる。
【００４８】
なお、ライトキャッシュ領域にデータが格納されている間はライトキャッシュランプ７１を点灯し、消去されると消灯する。
次に、図７（Ｂ）に示すステップＳ２６で実行される処理の詳しい内容を、図８及び図９を参照して説明する。
【００４９】
図８及び図９は、フラッシュメモリ２０への書き込み処理の手順を示すフローチャートであり、図８はその前半を、図９は後半を示す。
ここで、論理ブロック番号Ｌが付された更新データをフラッシュメモリ２０へ書き込むように指示されたとする。
【００５０】
フラッシュメモリ２０に含まれる各予備ブロックの内、消去回数欄ｃの値が最低値の予備ブロックを選び、それをブロックＹとする（Ｓ３１）。また、論理物理変換テーブルを参照して論理ブロック番号Ｌに対応する物理ブロック番号を検出し、検出された物理ブロック番号を持つブロック領域をブロックＰとする（Ｓ３２）。
【００５１】
論理物理変換テーブルにおいて、ブロックＹの物理ブロック番号を論理ブロック番号Ｌに対応づけて記憶し（Ｓ３３）、論理ブロック番号Ｌが付された更新データをブロックＹに書き込む。
【００５２】
フラッシュメモリ２０から出力されるステータスコードを見て、更新データのブロックＹへの書き込みが正常に行われたか否かを確認する（Ｓ３５）。正常に書き込まれなかったならば、ブロックＹは寿命になったと見なす（Ｓ３６）。フラッシュメモリ２０に予備ブロックがまだ存在すればステップＳ３１へ戻り（Ｓ３７）、別の予備ブロックを探す。もう予備ブロックが無ければフラッシュメモリ２０を寿命とすると共に、寿命表示ランプ７０を点灯する（Ｓ４０）。
【００５３】
ステップＳ３５での確認の結果、書き込みが正常であれば、ブロックＹの論理番号欄ｌに論理ブロック番号Ｌを書き込み、また、ブロックＹの論理ブロック書き込み回数欄ｗに、ブロックＰの論理ブロック書き込み回数欄ｗの値に１を加えたものを書き込む（Ｓ３８）。
【００５４】
ブロックＰの情報エリア及びデータ領域に格納されていた情報を消去する（Ｓ３９）。ただし消去する前に、消去回数欄ｃ及び交代基準値欄ｎに記載されていた値を覚えておく。
【００５５】
フラッシュメモリ２０から出力されるステータスコードを見て、ブロックＰでの消去処理が正常に行われたか否かを確認する（Ｓ４１）。消去処理が正常に行われなかったならばブロックＰは寿命になったと見なす（Ｓ４２）。そして、フラッシュメモリ２０に予備ブロックがまだ存在するならば、この書き込み処理を終了する（Ｓ４３）。予備ブロックが無ければフラッシュメモリ２０を装置寿命とすると共に、寿命表示ランプ７０を点灯する（Ｓ４０）。
【００５６】
ステップＳ４１で消去処理が正常に行われたと確認されたならば、覚えておいたブロックＰの消去回数欄ｃに記載されていた値に１を加えたものをブロックＰの消去回数欄ｃに書き込み、また覚えておいたブロックＰの交代基準値欄ｎに記載されていた値をそのままブロックＰの交代基準値欄ｎに書き込む（Ｓ４４）。
【００５７】
以上の処理を、具体的な例によって説明する。
図１０は、書き込み処理が行われたフラッシュメモリ２０の各ブロック領域の具体的な例を示す図であり、（Ａ）が書き込み処理前のフラッシュメモリ２０を示し、（Ｂ）が書き込み処理後のフラッシュメモリ２０を示す。図中、図９における論理ブロック番号Ｌが論理ブロック番号１であり、図９におけるブロックＰが物理ブロック番号２のブロック領域であり、図９におけるブロックＹが物理ブロック番号９６１のブロック領域である。
【００５８】
図９に戻って、予備ブロックになったブロックＰに対して交代処理が必要か否かを判別する（Ｓ４５）。すなわち、新たに書き込まれたブロックＰの消去回数欄ｃの値と交代基準値欄ｎの値とを比較し、前者が後者に達していれば、交代処理が必要と判断する。交代処理に先だって、ブロックＰの交代基準値欄ｎの値を更新する（Ｓ４６）。更新は、それまでの値に値８１９２を加えることによって行う。
【００５９】
そして、ブロックＰの交代処理を行う（Ｓ４７）。交代処理の内容については図１１を参照して後述する。
ステップＳ４５での判別で交代処理が不必要とされたときには、ブロックＰを予備ブロックとする（Ｓ４８）。
【００６０】
図１１は、図９で示したステップＳ４７の交代処理の手順を詳しく示すフローチャートである。
例えばブロックＰが交代処理の対象となったとする。
【００６１】
まず、フラッシュメモリ２０における全部のブロック領域の中で予備ブロック以外の現用ブロック、つまり、論理ブロック番号が割り当てられ、データ領域にデータが格納されている各ブロックの内、消去回数欄ｃの値が、ブロックＰの消去回数欄ｃの値より小さいブロック全部を探し出す。該当するブロックが無ければ交代処理を終了する。そして、それらのブロックの中で、論理ブロック書き込み回数欄ｗの値が最も小さいブロックを検出し、それをブロックＫとする（Ｓ５１）。最も小さいブロックが複数検出された場合、物理ブロック番号の一番若いブロックをブロックＫとする。
【００６２】
このブロックＫに割り当てられている論理ブロック番号を読み出す。これを論理ブロック番号Ｍとする（Ｓ５２）。
ブロックＰのデータ領域に、ブロックＫのデータ領域に格納されていたデータを書き込む。また、ブロックＰの論理番号欄ｌに、ブロックＫの論理番号欄ｌに格納されていた値を書き込み、ブロックＰの論理ブロック書き込み回数欄ｗに、ブロックＫの論理ブロック書き込み回数欄ｗに格納されていた値を書き込む（Ｓ５３）。
【００６３】
フラッシュメモリ２０から出力されたステータスコードを見て、ブロックＰへの書き込みが正常に行われたか否かを判別する（Ｓ５４）。正常に行われていなければブロックＰは寿命になったとし（Ｓ５５）、フラッシュメモリ２０に予備ブロックがまだあれば（Ｓ５６）この交代処理を終了する。もう予備ブロックが無ければフラッシュメモリ２０が装置寿命であるとし、寿命表示ランプ７０を点灯する（Ｓ５７）。
【００６４】
ステップＳ５４で書き込みが正常に行われたならば、論理物理変換テーブルにおいて、ブロックＰの物理ブロック番号を論理ブロック番号Ｍに対応づけて記憶する（Ｓ５８）。そして、ブロックＫの情報エリア及びデータ領域に格納されていた情報を消去する（Ｓ５９）。ただし消去する前に、消去回数欄ｃ及び交代基準値欄ｎに記載されていた値を覚えておく。
【００６５】
フラッシュメモリ２０から出力されたステータスコードを見て、消去処理が正常に行われたか否かを確認する（Ｓ６０）。正常に行われなったならばブロックＫは寿命になったと見なし（Ｓ６１）、フラッシュメモリ２０に予備ブロックがまだあれば（Ｓ５６）、交代処理を終了する。予備ブロックが無ければフラッシュメモリ２０は装置寿命であるとし、寿命表示ランプ７０を点灯する（Ｓ５７）。
【００６６】
ステップＳ６０で消去処理が正常に行われたと確認されれば、覚えておいたブロックＫの消去回数欄ｃに記載されていた値に１を加えたものをブロックＫの消去回数欄ｃに書き込み、また覚えておいたブロックＫの交代基準値欄ｎに記載されていた値をそのままブロックＫの交代基準値欄ｎに書き込む（Ｓ６２）。そしてブロックＫを予備ブロックとする（Ｓ６３）。
【００６７】
以上の処理を、具体的な例によって説明する。
図１２は、書き込み処理に引き続き交代処理が行われたフラッシュメモリ２０の各ブロック領域の具体的な例を示す図であり、（Ａ）が書き込み処理前のフラッシュメモリ２０を示し、（Ｂ）が書き込み処理後、交代処理前のフラッシュメモリ２０を示し、（Ｃ）が交代処理後のフラッシュメモリ２０を示す。図中、図１１における論理ブロック番号Ｍが論理ブロック番号０であり、図１１におけるブロックＰが物理ブロック番号４のブロック領域であり、図１１におけるブロックＫが物理ブロック番号１のブロック領域である。
【００６８】
以上説明した交代処理により、あるブロックに対して消去処理をした段階において、現用のブロックの中に、消去回数及び論理ブロック書き込み回数が共に少ないブロックがある場合、そのブロックと、消去処理をしたブロックとを入れ替えるようにする。これにより、消去回数がブロック間で均等化される。つまり、消去回数及び論理ブロック書き込み回数が共に少ない現用ブロックは、今後も書き込みが行われる確率が低く、そのため、放っておくと消去回数が低いまま、フラッシュメモリ２０が装置寿命となってしまう可能性がある。そこで、こうしたブロックを抽出して予備ブロック化して消去回数を増やすようにする。これによって、フラッシュメモリ２０が寿命と見なされたときに、各ブロックの消去回数が均等に平均値１００万回前後に達することが期待できる。
【００６９】
なお、上記第１の実施の形態では、論理物理変換テーブルを使用するようにしているが、こうしたテーブルを備えず、ブロック領域の情報エリアにおける論理番号欄ｌを検索し、検出された論理番号欄ｌに対応する物理ブロック番号を得るようにしてもよい。
【００７０】
次に、第２の実施の形態を説明する。
第２の実施の形態は、基本的に第１の実施の形態と同じ構成となっている。ただし第１の実施の形態では、図４に示すようにブロック毎に交代基準値欄ｎを設け、また図９のステップＳ４６で示すように、ブロックＰの交代基準値欄ｎの値を更新するようにしている。これに対して、第２の実施の形態ではブロック毎に交代基準値欄ｎを設けず、また交代基準値欄ｎの値の更新を行わない。
【００７１】
すなわち、交代基準値を予め、例えば８１９２及びその整数倍の複数の値と決めておき、図９のステップＳ４５においてブロックの消去回数がこれらの値のいずれかと一致したときに交代処理が必要と判断する。
【００７２】
これにより、ブロックの情報エリアに交代基準値欄ｎが不要となり、また、図９のステップＳ４６で行っていた交代基準値のフラッシュメモリ２０への書き込み処理を省略できる。
【００７３】
次に、第３の実施の形態を説明する。
図１３は、第３の実施の形態に係る２次記憶装置を含んだ小型コンピュータの構成を示す図である。第３の実施の形態は、基本的に第１の実施の形態と同じ構成となっている。そこで、第１の実施の形態と同一構成部分には同一の参照符号を付してその説明を省略する。
【００７４】
第３の実施の形態では、寿命間近ランプ７２が新たに設けられる。寿命間近ランプ７２は、フラッシュメモリ２０の装置寿命が近づいたときに、寿命表示ランプ７０の点灯に先立って点灯されるものであり、フラッシュメモリ２０の使用ができなくなる少し前に操作者に警告を与える役目を果たす。
【００７５】
図１４は、寿命間近ランプ７２の点灯処理に関わる部分を示す図である。すなわち、第１の実施の形態における図８のステップＳ３７からステップＳ３１への途中、図９のステップＳ４３から処理終了への途中、及び図１１のステップＳ５６から処理終了への途中に、図１４のステップＳ７１，Ｓ７２を挿入する。
【００７６】
すなわち、フラッシュメモリ２０に残っている予備ブロックの数がｍ個になったときに（Ｓ７１）、寿命間近ランプ７２を点灯するようにする（Ｓ７２）。
個数ｍを適当に設定することにより、第３の実施の形態では、フラッシュメモリ２０の使用ができなくなる少し前に、その旨を操作者に警告することが可能となる。
【００７７】
次に、第４の実施の形態を説明する。
図１５は、第４の実施の形態に係る２次記憶装置を含んだ小型コンピュータの構成を示す図である。第４の実施の形態は、基本的に第１の実施の形態と同じ構成となっている。そこで、第１の実施の形態と同一構成部分には同一の参照符号を付してその説明を省略する。
【００７８】
第４の実施の形態では、図２に示す第１の実施の形態におけるフラッシュメモリ２０の代わりに、０系フラッシュメモリ２１と１系フラッシュメモリ２２とがＣＰＵ−ＢＵＳ６０に接続される。０系フラッシュメモリ２１と１系フラッシュメモリ２２とは同一構成となっており、第１の実施の形態におけるフラッシュメモリ２０の構成と同一である。０系フラッシュメモリ２１が現用系フラッシュメモリとして働き、１系フラッシュメモリ２２が予備系フラッシュメモリとして働く。
【００７９】
第４の実施の形態では、図７に示す第１の実施の形態におけるステップＳ２５のタイマに、書き込み時点からの２つの異なる経過時間を計測させる。すなわち、ＲＡＭ３０のライトキャッシュ領域にデータが書き込まれると、タイマによる経過時間の計測が開始され、書き込み待ち時間２秒及び５秒の経過が検出される。２秒経過後にそのデータが読み出されて０系フラッシュメモリ２１に書き込まれ、５秒経過後にそのデータが読み出されて１系フラッシュメモリ２２に書き込まれる。
【００８０】
なお、０系フラッシュメモリ２１と１系フラッシュメモリ２２とに同じデータが書き込まれ、読み出しは０系フラッシュメモリ２１から行われる。
図１６は、ＲＡＭ３０のライトキャッシュ領域に書き込まれたデータが読み出されて０系フラッシュメモリ２１に書き込まれるタイミングを示す図である。また、図１７は、ＲＡＭ３０のライトキャッシュ領域に書き込まれたデータが読み出され、１系フラッシュメモリ２２に書き込まれるタイミングを示す図である。両図において、データ１〜７は、同一論理ブロック番号を有したデータであり、大きい番号のデータが小さい番号の更新データである。
【００８１】
すなわち、データ入力時点から２秒以内に更新データがＲＡＭ３０に入力された場合には、図１６及び図１７の両方とも、ＲＡＭ３０でデータの上書きが行われるだけで、フラッシュメモリ２１，２２への読み出しは行われない。
【００８２】
一方、データ入力時点から５秒以上経過した場合には、図１６及び図１７の両方とも、ＲＡＭ３０からデータが読み出され、フラッシュメモリ２１，２２へ書き込まれる。
【００８３】
データ入力時点から２秒を越え５秒未満の間に更新データがＲＡＭ３０に入力された場合には、図１６に示す現用系ではＲＡＭ３０からデータが読み出され、フラッシュメモリ２１へ書き込まれる。一方、図１７に示す予備系ではＲＡＭ３０からデータが読み出されず、フラッシュメモリ２１への書き込みは行われない。
【００８４】
このように、異なる２つの書き込み待ち時間を設け、長い方の書き込み待ち時間を予備系のフラッシュメモリ２２に割り当てているので、予備系のフラッシュメモリ２２への書き込み回数が、現用系のフラッシュメモリ２１への書き込み回数より少なくすることができ、予備系のフラッシュメモリ２２の装置寿命を長くすることができる。また、異なる２つの書き込み待ち時間を設けることで、両系が同時期に装置寿命に到達することを防止している。
【００８５】
【発明の効果】
以上説明したように本発明では、更新情報の書き込みを要求されたときに、その更新情報を予備のブロック領域に書き込むと共に、それまで対応の元情報が格納されていたブロック領域を予備のブロック領域に回す。これによって、各ブロック領域の消去回数が平均的に増加する。しかし、更新頻度が低い情報を格納したブロック領域は予備のブロック領域に回される確率が低い。そこで、そうした更新頻度が低い情報を格納したブロック領域を探し出して予備のブロック領域に回すようにした。さらには、そうした更新頻度が低い情報を、消去回数が所定基準値に達したブロック領域に格納するようにした。
【００８６】
こうすることにより、ブロック領域間の消去回数のバラツキが解消し、したがって、全部のブロック領域を使用限度ギリギリまで使用することが可能となる。また、ブロック領域毎に消去や書き込みの異常をチェックするようにし、異常があって初めて、ブロックの使用が不可能と判定するようにする。これにより、使用限度を消去回数の最低限度値に設定する必要がなくなり、ブロック領域の各々における実際の使用限度まで使用することが可能となる。
【００８７】
また、交代基準値として予め複数の値を設定しておき、ブロックの消去回数がこれらの値のいずれかと一致したときに交代処理を実施するようにする。
これにより、ブロックの情報エリアに交代基準値欄を設けることが不要となり、また、交代基準値のフラッシュメモリへの書き込み処理を省略できる。
【００８８】
また、フラッシュメモリに残っている予備ブロックの数が所定数になったときに、寿命間近ランプを点灯するようにする。
これにより、フラッシュメモリの使用ができなくなる少し前に、その旨を操作者に警告することが可能となる。
【００８９】
さらに、フラッシュメモリに冗長構成を持たせるとともに、異なる２つの書き込み待ち時間を設け、ＲＡＭのライトキャッシュ領域からデータを読み出すタイミングを変えている。
【００９０】
そのため、予備系のフラッシュメモリへの書き込み回数が、現用系のフラッシュメモリへの書き込み回数より少なくすることができ、予備系のフラッシュメモリの装置寿命を長くすることができる。また、異なる２つの書き込み待ち時間を設けることで、両系が同時期に装置寿命に到達することを防止している。
【図面の簡単な説明】
【図１】本発明の原理説明図である。
【図２】第１の実施の形態に係る２次記憶装置を含んだパソコンなどの小型コンピュータの構成を示す図である。
【図３】フラッシュメモリの各ブロック領域の構成を示す図である。
【図４】ブロックの中の構成を示す図である。
【図５】ＲＡＭまたはフラッシュメモリに対してＣＰＵによって行われるデータ書込処理及び読出処理の手順を示すフローチャートである。
【図６】図５のステップＳ４で行われるフラッシュメモリアクセス処理の内容を示すフローチャートである。
【図７】図７（Ａ）は、図６のステップＳ１５の内容を示すフローチャートであり、図７（Ｂ）は、図７（Ａ）の処理で動作させられたタイマが所定時間を計測完了したときに実行される処理を示すフローチャートである。
【図８】フラッシュメモリへの書き込み処理の手順の前半を示すフローチャートである。
【図９】フラッシュメモリへの書き込み処理の手順の後半を示すフローチャートである。
【図１０】図１０（Ａ）は、書き込み処理前のフラッシュメモリの各ブロック領域を示す図であり、図１０（Ｂ）は書き込み処理後のフラッシュメモリの各ブロック領域を示す図である。
【図１１】図９のステップＳ４７で行われる交代処理の詳しい手順を示すフローチャートである。
【図１２】図１２（Ａ）が書き込み処理前のフラッシュメモリの各ブロック領域を示す図であり、図１２（Ｂ）が書き込み処理後、交代処理前のフラッシュメモリの各ブロック領域を示す図であり、図１２（Ｃ）が交代処理後のフラッシュメモリの各ブロック領域を示す図である。
【図１３】第３の実施の形態に係る２次記憶装置を含んだ小型コンピュータの構成を示す図である。
【図１４】寿命間近ランプの点灯処理に関わる部分を示す図である。
【図１５】第４の実施の形態に係る２次記憶装置を含んだ小型コンピュータの構成を示す図である。
【図１６】ＲＡＭのライトキャッシュ領域に書き込まれたデータが読み出され、０系フラッシュメモリに書き込まれるタイミングを示す図である。
【図１７】ＲＡＭのライトキャッシュ領域に書き込まれたデータが読み出され、１系フラッシュメモリに書き込まれるタイミングを示す図である。
【図１８】図１８（Ａ）は、第１の時点における従来のフラッシュメモリの各ブロック領域を示す図であり、図１８（Ｂ）は、第２の時点における従来のフラッシュメモリの各ブロック領域を示す図であり、図１８（Ｃ）は、第３の時点における従来のフラッシュメモリの各ブロック領域を示す図である。
【符号の説明】
１１  論理物理対応記憶手段
１２  第１の書込手段
１３  物理ブロック番号読出手段
１４  第１の消去手段
１５  第１の対応関係変更手段
１６  探索手段
１７  第２の書込手段
１８  第２の対応関係変更手段
１９  第２の消去手段
２０ａ  不揮発性半導体メモリ
【図１】
0003544859.tif 000002
【図２】
0003544859.tif 000003
【図３】
0003544859.tif 000004
【図４】
0003544859.tif 000005
【図５】
0003544859.tif 000006
【図６】
0003544859.tif 000007
【図７】
0003544859.tif 000008
【図８】
0003544859.tif 000009
【図９】
0003544859.tif 000010
【図１０】
0003544859.tif 000011
【図１１】
0003544859.tif 000012
【図１２】
0003544859.tif 000013
【図１３】
0003544859.tif 000014
【図１４】
0003544859.tif 000015
【図１５】
0003544859.tif 000016
【図１６】
0003544859.tif 000017
【図１７】
0003544859.tif 000018
【図１８】
0003544859.tif 000019