(57)【要約】【課題】本発明はフラッシュメモリの管理方法及び装置に関し、フラッシュメモリの寿命を長くすることができるフラッシュメモリの管理方法及び装置を提供することを目的としている。【解決手段】フラッシュメモリを用いた機器のフラッシュメモリの使用限界をチェックするフラッシュメモリの管理装置において、セクタ消去を行なう消去制御レジスタ１２と、データ書き込みを行なう書込制御レジスタ１３と、セクタ単位の消去・書込時間を測定する消去・書込時間レジスタ１４と、予め設定しておいた許容時間と測定時間とを比較する消去・書込時間チェック部１５と、消去・書込時間の許容時間として予め設定しておく許容時間レジスタ１６，１７と、前記消去・書込時間チェック部１５にて判定した内容を反映させる許容時間マップ１８，１９とを用いてフラッシュメモリの全セクタの使用状況を管理するように構成する。【選択図】図４
2007156862.tif 000002
【特許請求の範囲】
【請求項１】
セクタ毎に消去／書込の許容状況を示す許容時間マップを設けておき、
該マップは、許容時間をオーバーしたものをフラグ“１”に、許容時間以内のものをフラグ“０”にして管理し、
先ず、第１の許容時間を設定し、該許容時間における各セクタのフラグがオール“１”になるまでセクタを切り替えながら使用し、
全てのセクタがオール“１”になったら、第２の許容時間を設定して、全てのセクタのフラグがオール“１”になるまでセクタを切り替えながら使用する、
という工程を繰り返すことを特徴とするフラッシュメモリの管理方法。
【請求項２】
フラッシュメモリを用いた機器のフラッシュメモリの使用限界をチェックするフラッシュメモリの管理装置において、
セクタ消去を行なう消去制御レジスタと、
データ書き込みを行なう書込制御レジスタと、
セクタ単位の消去・書込時間を測定する消去・書込時間レジスタと、
予め設定しておいた許容時間と測定時間とを比較する消去・書込時間チェックと、
消去・書込時間の許容時間として予め設定しておく許容時間設定レジスタと、
前記消去・書込時間チェック部にて判定した内容を反映させる許容時間マップと、
を用いてフラッシュメモリの全セクタの使用状況を管理するようにしたことを特徴とするフラッシュメモリの管理装置。
【請求項３】
セクタ入れ替えの実行を指示するセクタ入替制御レジスタと、
各セクタ単位にてどのセクタと入れ替えを行なうかを指定できるセクタ入替管理マップと、
該セクタ入替管理マップ部にて入れ替え指示されたセクタのアドレスを変換するセクタ入れ替え時のアドレス変換部と、
を更に用いてフラッシュメモリのセクタ入れ替えを行なうことを特徴とする請求項１記載のフラッシュメモリの管理装置。
【請求項４】
予め設定しておいた複数の許容時間に対して、フラッシュメモリの全セクタを段階的に均一に効率よく使用することを特徴とする請求項２又は３記載のフラッシュメモリの管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュ（ＦＬＡＳＨ）メモリの管理方法及び装置に関する。
【背景技術】
【０００２】
フラッシュメモリは、不揮発性のメモリであり、各種の機器に用いられている。フラッシュメモリは、電源をオフにしても記憶は保持されるという優れた特性を有することから、フレクシブルディスクや、ハードディスク等のディスク型メモリに替わるものとして期待され、一部カード型メモリとして実用化されている。
【０００３】
フラッシュメモリは、消去することにより各ビットがオール“１”になり、書き込みの場合、“１”データの書き込みは必要ないが、“０”データの書き込みの場合に、“１”状態を放電して“０”レベルにする必要がある。使用回数が増えてくると、この放電に時間がかかるようになり、また消去の場合には、各ビットを“１”に充電する必要があるため、時間がかかるようになる。
【０００４】
このため、長寿命化を考慮した機器では、各セクタへのアクセス回数／時間等をチェックして、使用頻度が多くなったセクタは使用せずに、使用頻度の少ないセクタを使用して、使用頻度の多いセクタを異常セクタとして検出する方法がとられている。ここで、セクタとはメモリの単位であり、セクタ単位でデータの消去／書込が行われる。
【０００５】
一般的な従来技術について以下に説明する。図９はフラッシュメモリの周辺回路を示す図である。この例では、フラッシュメモリをログ格納用として使用している。図において、１はバックパネルで、１ａは該バックパネル１上に形成された共通バスである。２はバックパネル１に装填されたログ格納用カード、３は同じくバックパネル１に装填された制御用カードである。
【０００６】
ログ格納用カード２において、４はアドレスコントロール信号を受けて所定の動作を行なうＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ：ＦＰＧＡはザイログ社の登録商標）である。５はログ格納用フラッシュメモリである。フラッシュメモリ５には、共通バス１ａが接続されており、アドレスとデータとが直接接続されている。ＦＰＧＡ４は、共通バス１ａからのコントロール信号を受けて、フラッシュメモリ５への消去と書き込みを制御する。
【０００７】
制御用カード３において、６は共通バス１ａと接続されるＣＰＵ、７は該ＣＰＵ６と接続されるリセット遅延回路である。該リセット遅延回路７には、外部からシステムリセット信号が入力されている。このように構成されたシステムの動作を概説すれば、以下の通りである。
【０００８】
ＣＰＵ６からログ格納用カード２に対してアドレスとデータが送出される。これらデータは、ログ格納用カード２のフラッシュメモリ５にバス１ａを介して直接接続される。ＣＰＵ６は、更にログ格納用カード２に対してＲ（リード）／Ｗ（ライト）信号を送出する。ＦＰＧＡ４はこのＲ／Ｗ制御信号を受けて、フラッシュメモリ５に対してＲ／Ｗ信号を与え、データの書き込みと読み出しが行われる。通常は、このフラッシュメモリ５に対して、ログを格納する構成となっている。
【０００９】
ここで、制御用カード３に入力されるリセット遅延回路７は、システムリセット信号を受けて、このリセット信号を所定時間遅らせてＣＰＵ６に与えるようになっている。フラッシュメモリ５に対してデータ書き込み中又は読み出し中にリセット信号が入ると、フラッシュメモリ５への正常な書き込みと読み出しができないので、システムリセット信号を受けても、フラッシュメモリ５のＲ／Ｗが正常に終了するまで、実際のリセットを遅らせるものである。即ち、該リセット遅延回路７は、フラッシュメモリアクセス時の非同期強制リセットに対して、データ破壊を防止するためのものである。このリセット遅延時間は、例えば最大２５．６秒に設定される。
【００１０】
従来のこの種の技術としては、ブロック単位で消去可能なフラッシュメモリにおいて、各ブロックの消去回数を管理し、その消去回数に基づいてブロック同士のデータの入れ替えを行なうようにしたものがある（例えば特許文献１参照）。
【特許文献１】特開平１０−９１５３５号公報（段落００１３〜００２４、図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
一般にフラッシュメモリは、消去／書込回数の頻度により消去／書込時間が長くなる。また、ログファイル管理を汎用ソフトウェアによって行なっているため、実際に使用する領域（セクタ）や使用頻度について領域（セクタ）によって差が出てしまう。現状では、一度に複数セクタ分のログ書き込みを行なっているが、使用頻度により消去／書込時間が長くなってしまい、その結果リセット遅延時間をオーバーしてフラッシュメモリのデータが破壊される可能性がある。
【００１２】
例えば、１素子あたり１２８セクタ等、各フラッシュメモリにより構成されているセクタ数が異なるが、特定のセクタを使用し続けた場合に消去／書込時間が増加し、その後故障となり、まだ全然使用していないセクタがあるにも拘わらずその素子を交換しなければならない、つまり寿命が短かくなるというという問題があった。
【００１３】
本発明はこのような課題に鑑みてなされたものであって、フラッシュメモリの寿命を長くすることができるフラッシュメモリの管理方法及び装置を提供することを目的としている。
【課題を解決するための手段】
【００１４】
（１）請求項１記載の発明は、セクタ毎に消去／書込の許容状況を示す許容時間マップを設けておき、該マップは、許容時間をオーバーしたものをフラグ“１”に、許容時間以内のものをフラグ“０”にして管理し、先ず、第１の許容時間を設定し、該許容時間における各セクタのフラグがオール“１”になるまでセクタを切り替えながら使用し、全てのセクタがオール“１”になったら、第２の許容時間を設定して、全てのセクタのフラグがオール“１”になるまでセクタを切り替えながら使用する、という工程を繰り返すことを特徴とする。
（２）請求項２記載の発明は、フラッシュメモリを用いた機器のフラッシュメモリの使用限界をチェックするフラッシュメモリの管理装置において、セクタ消去を行なう消去制御レジスタと、データ書き込みを行なう書込制御レジスタと、セクタ単位の消去・書込時間を測定する消去・書込時間レジスタ部と、予め設定しておいた許容時間と測定時間とを比較する消去・書込時間チェック部と、消去・書込時間の許容時間として予め設定しておく許容時間設定レジスタと、前記消去・書込時間チェック部にて判定した内容を反映させる許容時間マップと、を用いてフラッシュメモリの全セクタの使用状況を管理するようにしたことを特徴とする。
（３）請求項３記載の発明は、セクタ入れ替えの実行を指示するセクタ入替制御レジスタと、各セクタ単位にてどのセクタと入れ替えを行なうかを指定できるセクタ入替管理マップと、該セクタ入替管理マップ部にて入れ替え指示されたセクタのアドレスを変換するセクタ入れ替え時のアドレス変換部と、とを更に用いてフラッシュメモリのセクタ入れ替えを行なうことを特徴とする。
（４）請求項４記載の発明は、予め設定しておいた複数の許容時間に対して、フラッシュメモリの全セクタを段階的に均一に効率よく使用することを特徴とする。
【発明の効果】
【００１５】
（１）請求項１記載の発明によれば、フラッシュメモリのうち、全セクタの使用状況を管理することができる。
（２）請求項２記載の発明によれば、セクタ単位の消去・書込時間を測定して、全てのセクタが同じ消去・書込時間となるように、セクタをまんべんなく使用しながら、フラッシュメモリの性能を表わす許容時間を順次増やしていくように制御することで、フラッシュメモリの寿命を長くすることができる。
（３）請求項３記載の発明によれば、セクタ入替管理マップ部を設けて、フラッシュメモリのセクタ入れ替えを行なうことにより、全てのセクタをまんべんなく使用することができる。
（４）請求項４記載の発明によれば、複数の許容時間に対して、フラッシュメモリの全セクタを段階的に効率よく使用することができる。即ち、第１の許容時間を設定すると、この全てのセクタがこの第１の許容時間になるようにセクタの入れ替え使用を行ない、全てのセクタがこの第１の許容時間になったら、今度は第２の許容時間を設定して、全てのセクタの許容時間が第２の許容時間になるようにセクタの入れ替え使用を行ない、このような操作を繰り返していくことにより、フラッシュメモリ全体が順次性能が悪くなっていくようにすることができるので、許容時間が限界を越えた場合に、当該フラッシュメモリを交換する場合に、未使用のセクタが残ったフラッシュメモリを交換するという不具合を避けることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照して本発明の実施の形態例を詳細に説明する。
図１は本発明によるセクタ毎に消去／書込の許容状況を示す許容時間マップで、セクタ状態管理概要図ある。ここでは、フラッシュメモリを１２８セクタに分割している。そして、それぞれのセクタに対して、アクセス許容時間を設定している。この例では、アクセス許容時間を３．０秒に設定している。この許容状況マップを見ると分かるように、“１”のフラグが立っているセクタはアクセス許容時間が３．０秒に到達したセクタを示し、“０”のフラグが立っているセクタはまだアクセス許容時間が３．０秒になっていないセクタである。
【００１７】
そこで、許容時間について、段階的になるような値を予め複数設定しておき、最初の許容時間に対して全セクタが均一に当該許容時間に到達するように消去／書込時間が長いセンターと消去／書込時間が短いセクタとのセクタ入れ替えを行なう。その後、次の許容時間を設定し、この許容時間に対して再度同様に均一化を行ない、最終的に全セクタが同時期に部品寿命に到達するように効率よくセクタを使用するようにする。
【００１８】
図２は段階的なセクタ状態管理概要図である。（ａ）は許容時間１（＝３．０秒）の時の許容状況マップ（許容状況マップ）である。フラグ“１”が立っているセクタは既に許容時間１に到達したセクタである。これに対してフラグ“０”が立っているセクタはまだ許容時間１に到達しないセクタである。そこで、フラグ“１”が立っているセクタを使用せず、フラグ“０”立っているセクタを使用するようにする。
【００１９】
例えば、セクタ１はフラグ“１”が立っており、セクタ２はフラグ“０”が立っている。そこで、セクタ１は使用せず、セクタ２を使用するようにする。同様に、セクタ３はフラグが“０”であり、セクタ１２６はフラグ“１”であるので、セクタ１２６は使用せず、セクタ３を使用するようにする。このようなセクタの切り替え（入れ替え）は、アドレス制御することにより実現することができる。
【００２０】
このようにして、セクタをまんべんなく使用していくと、（ｂ）に示すように全てのセクタにフラグ“１”が立つようになる。このことは、全てのセクタがアクセス時間３．０秒に到達するようになったことを示している。そこで、今度は許容時間をそれまでの３．０から許容時間２（＝４．０秒）に設定し、同様の処理を行なう。（ｃ）は許容時間を４．０秒に設定した時の各セクタの状態を示している。この状態では、例えばセクタ１はフラグ“０”が立ち、セクタ２はフラグ“１”が立っている。そこで、今度はセクタ２は使用せず、セクタ１を使用するようにする。同様に、セクタ３はフラグ“１”が立ち、セクタ１２６はフラグ“０”が立っているので、今度はセクタ３は使用せず、セクタ１２６を使用するようにする。このようなセクタ切り替え（入れ替え）は、アドレス制御することにより実現することができる。（ｄ）はこのような使用制御により、全てのセクタが許容時間２（＝４．０秒）に到達した状態を示している。
【００２１】
このように、本発明によれば、フラッシュメモリのうち、全セクタの使用状況を管理することができる。
また、セクタ単位の消去・書込時間を測定して、全てのセクタが同じ消去・書込時間となるように、セクタをまんべんなく使用しながら、フラッシュメモリの性能を表わす許容時間を順次増やしていくように制御することで、フラッシュメモリの寿命を長くすることができる。
【００２２】
また、セクタ入替管理マップ部を設けて、フラッシュメモリのセクタ入れ替えを行なうことにより、全てのセクタをまんべんなく使用することができる。
更に、複数の許容時間に対して、フラッシュメモリの全セクタを段階的に効率よく使用することができる。即ち、第１の許容時間を設定すると、この全てのセクタがこの第１の許容時間になるようにセクタの入れ替え使用を行ない、全てのセクタがこの第１の許容時間になったら、今度は第２の許容時間を設定して、全てのセクタの許容時間が第２の許容時間になるようにセクタの入れ替え使用を行ない、このような操作を繰り返していくことにより、フラッシュメモリ全体が順次性能が悪くなっていくようにすることができるので、許容時間が限界を越えた場合に、当該フラッシュメモリを交換する場合に、未使用のセクタが残ったフラッシュメモリを交換するという不具合を避けることができる。
【００２３】
図３は本発明に係るフラッシュメモリ周辺回路の実施の形態例を示すブロック図である。図９と同一のものは、同一の符号を付して示す。図において、１はバックパネル、１ａは該バックパネル１内に設けられた共通バス、２はログ格納用カード、３は制御用カードで、これらログ格納用カード２及び制御用カード３はバックパネル１に装填されている。ログ格納用カード２において、５はフラッシュメモリ、１０は本発明に係る新ＦＰＧＡである。バックパネル１の共通バス１ａからのアドレスと、データと制御信号は、全て新ＦＰＧＡ１０に接続されるようになっている。そして、新ＦＰＧＡ１０でフラッシュメモリ５の消去／書込制御、Ｒ／Ｗ制御、前述したセクタの入れ替え制御を行なう。
【００２４】
制御用カード３において、６は共通バス１ａと接続されるＣＰＵである。該共通バス１ａとＣＰＵ６間は、アドレス、データ及び制御信号がやりとりされる。７はシステムリセット信号を受けて、一定時間遅延させるリセット遅延回路で、その出力はＣＰＵ６に接続されている。
【００２５】
図４は新ＦＰＧＡの機能概要図である。図において、１１はコントロール（制御）信号変換部で、既存のものと同じである。１２は消去制御レジスタ、１３は書込制御レジスタ、１４は消去・書込時間レジスタ、１５は消去・書込時間チェック部である。これら消去制御レジスタ１２，書込制御レジスタ１３，消去・書込時間レジスタ１４及び消去・書込時間チェック部１５とで、消去、書き込み、時間判定を行なう。
【００２６】
１６は許容時間設定レジスタ１、１７は許容時間設定レジスタ２、１８は許容時間１マップ、１９は許容時間２マップである。これら、許容時間設定レジスタ１６、許容時間設定レジスタ１７、許容時間１マップ１８、許容時間２マップ１９とで時間設定、セクタ状態を示している。２０はセクタ入替制御レジスタ、２１はセクタ入替管理マップ、２２はセクタ入替時のアドレス変換部である。これら、セクタ入替制御レジスタ２０、セクタ入替管理マップ２１及びセクタ入替時のアドレス変換部２２とで、セクタ入れ替え、アドレス変換を行なう。
【００２７】
消去制御レジスタ１２は、消去したいアドレスをセットし、消去完了を表示する。また、レジスタセットにてハード自立でフラッシュメモリを消去する。具体的には、フラッシュメモリの記憶部をオール“１”にする。書込制御レジスタ１３は、書き込みしたいセクタアドレスをセットし、書き込み完了を表示する。また、レジスタセットにてハード自立でフラッシュメモリに書き込む。
【００２８】
消去・書込時間レジスタ１４は、ハード自立で周期的に消去・書込時のデータをチェックする。また、消去・書込時間をタイマでカウント／表示する。消去・書込時間チェック部１５は、測定時間と許容時間をチェックし、時間が到達しているセクタについて許容時間マップに反映させる。
【００２９】
第１の許容時間設定レジスタ１６は、消去・書込時間に対する許容時間１（閾値）を設定する。第２の許容時間設定レジスタ１７は、消去・書込時間に対する許容時間２（閾値）を設定する。許容時間１マップ１８は、許容時間１に対する全セクタの状態を表示する。“１”で時間到達、“０”で時間未到達である。許容時間２マップ１９は、許容時間２に対する全セクタの状態を表示する。“１”で到達、“０”で未到達である。
【００３０】
セクタ入替制御レジスタ２０は、セクタ入替管理マップ（後述）にて入替指示されているセクタについて、順次セクタ入れ替えを行ない、セクタ入替中／完了を表示する。また、複数セクタ入替時用に入替中断もセット可能である。セクタ入替管理マップ２１は、全セクタについて、入れ替えしたいセクタアドレス及び入替有効／無効をセットする。また、入替済／未入替を表示する。セクタ入替時のアドレス変換部２２は、消去制御レジスタ１２及び書込制御レジスタ１３のアドレスについてセクタ入替管理マップ２１を参照し、入替済みの場合アドレス変換を行なう。
【００３１】
以下、本発明に係る新ＦＰＧＡの機能を用いた場合の動作フローについて説明する。図５は消去動作例を示すフローチャートである。実線部分はソフトウェア動作（ＣＰＵ６の動作）、破線部分はハードウェア動作（新ＦＰＧＡの動作）を示す（以下同じ）。先ず、ソフトウェアにて消去制御レジスタ１２に消去すべきセクタのアドレスをセットする（Ｓ１）。
【００３２】
次に、アドレスセットによりハードウェアが自立でセクタ消去を実施する（Ｓ２）。次に、セクタ消去完了で消去制御レジスタ１２に消去完了を表示し、ソフトウェアに完了割り込みを通知する。具体的には、この割り込みはＣＰＵ６に通知される。次に、ソフトウェアが消去完了を確認し、割り込みを解除する（消去動作完了）。
【００３３】
図６は書込動作例を示すフローチャートである。先ず、ソフトウェアにて書込制御レジスタ１３に書き込むセクタアドレスとデータをセットする（Ｓ１）。次に、アドレス／データセットによりハードウェアが自立で書き込みを実施する（Ｓ２）。書込完了で書込制御レジスタ１３に書込完了を表示し、ソフトウェアに完了割り込みを通知する（Ｓ３）。次に、ソフトウェアが書込完了を確認し、割り込みを解除する（書込動作完了）。
【００３４】
図７はセクタ状態判定／表示動作例を示すフローチャートである。先ず、ハードウェアにて消去・書込動作後に、消去・書込時間レジスタ１４に測定時間を表示する（Ｓ１）。次に、ハードウェアが許容時間と測定時間とを比較して許容時間マップ１８，１９に反映させる（Ｓ２）。
【００３５】
次に、許容時間をオーバーしている場合には、ソフトウェア許容時間オーバー割り込みを通知する（Ｓ３）。次に、ソフトウェアは許容時間マップ１８，１９を参照し、許容時間をオーバーしているセクタを確認し、割り込みを解除する（Ｓ４）。次に、ソフトウェアは、許容時間マップの状態によって、セクタ入れ替えを実施するセクタ入れ替えを実施する（Ｓ５）。
【００３６】
図８はセクタ入替動作例を示すフローチャートである。先ず、ソフトウェアは許容時間マップ１８，１９を参照し、許容時間をオーバーしているセクタを確認し、抽出する（Ｓ１）。次に、ソフトウェアはセクタ入替管理マップ２１にて、各セクタ毎に入れ替えしたいセクタに対して入替指示の有無を指定する（Ｓ２）。次に、ソフトウェアは、消去・書込を実施していない時に、セクタ入替制御レジスタ２０にてセクタ入替実行を行なう（Ｓ３）。
【００３７】
次に、ハードウェアは入替実行により、セクタ入替管理マップ２１の各セクタ毎の入替指示情報を元にセクタ入れ替えを実施する（Ｓ４）。次に、ハードウェアはセクタ入替完了後、セクタ切替時のアドレス変換部２２にてアドレス変換を行ない、ソフトウェアに入替完了割り込みを通知する（Ｓ５）。次に、ソフトウェアは入替完了を確認し、割り込みを解除する（セクタ入替完了）（Ｓ６）。
【００３８】
上述の実施の形態例では、許容時間を、許容時間１，許容時間２の２つ設けた場合について説明したが、本発明はこれに限るものではなく、必要に応じて許容時間の数は増やすことができる。
【図面の簡単な説明】
【００３９】
【図１】セクタ状態管理概要図である。
【図２】段階的なセクタ状態管理概要図である。
【図３】本発明に係るフラッシュメモリの周辺回路を示す図である。
【図４】新ＦＰＧＡの機能概要図である。
【図５】消去動作例を示すフローチャートである。
【図６】書込動作例を示すフローチャートである。
【図７】セクタ状態判定／表示動作例を示すフローチャートである。
【図８】セクタ入替動作例を示すフローチャートである。
【図９】フラッシュメモリの周辺回路を示す図である。
【符号の説明】
【００４０】
１１  コントロール信号変換部
１２  消去制御レジスタ
１３  書込制御レジスタ
１４  消去・書込時間レジスタ
１５  消去・書込時間チェック部
１６  許容時間設定レジスタ１
１７  許容時間設定レジスタ２
１８  許容時間１マップ
１９  許容時間２マップ
２０  セクタ入替制御レジスタ
２１  セクタ入替管理マップ
２２  セクタ入替時のアドレス変換部
【図１】
2007156862.tif 000003
【図２】
2007156862.tif 000004
【図３】
2007156862.tif 000005
【図４】
2007156862.tif 000006
【図５】
2007156862.tif 000007
【図６】
2007156862.tif 000008
【図７】
2007156862.tif 000009
【図８】
2007156862.tif 000010
【図９】
2007156862.tif 000011