(57)【要約】【課題】  フラッシュメモリを用いて補助記憶装置を実現する際に、フラッシュメモリの欠点である消去回数の制限を補うハード構成とデータの扱い方に関する発明である。【解決手段】  フラッシュメモリ１内部を、ファイルデータの書き込み消去単位であるセクタに分け、各セクタに書き込んだファイルに番号を付し、これを管理するテーブル５、６を備え、すでに書いたファイルの書換え時にも新たなデータとして別のセクタに書き込む。そして古いデータは消去して新たに書き込み可能領域としてテーブル５、６上で管理する。【選択図】  図１
2008091027.tif 000002
【特許請求の範囲】
【請求項１】
処理装置と主メモリとを含む機器と、記憶装置とを備えた情報機器において、
前記処理装置と主メモリとを含む機器は、前記記憶装置へアクセスして、前記記憶装置にデータの読み書きを行い、
前記記憶装置は、電気的に消去可能な単位である消去ブロックを複数含むフラッシュメモリと、前記処理装置と主メモリとを含む機器からのアクセス要求に応答して、前記フラッシュメモリをアクセスするための制御部とを備え、
前記フラッシュメモリの各消去ブロックは、複数のセクタを含み、
前記制御部は、前記処理装置と主メモリとを含む機器からの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、消去ブロック単位のポインタをインクリメントすることによって未書き込みのセクタを有する消去ブロックをさがし出し、前記消去ブロック内の前記未書き込みのセクタに、前記処理装置と主メモリとを含む機器からの書き込み要求に伴うデータを書き込むことを特徴とする情報機器。
【請求項２】
前記処理装置と主メモリとを含む機器は、前記記憶装置へ電源を供給し、
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源オフをユーザから受けても、前記記憶装置が動作を終了するのを待ってから前記記憶装置への電源の供給を停止することを特徴とする請求項１に記載の情報機器。
【請求項３】
前記処理装置と主メモリとを含む機器は、前記記憶装置へ電源を供給し、
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源スイッチがオフになっても、前記記憶装置がビジーである場合に、前記記憶装置への電源の供給をつづけることを特徴とする請求項１に記載の情報機器。
【請求項４】
前記記憶装置は、前記記憶装置が動作している場合に、前記処理装置と主メモリとを含む機器へビジー信号を出力し、
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源スイッチがオフになっても、前記ビジー信号がアクティブである場合に、前記記憶装置への電源の供給をつづけることを特徴とする請求項３に記載の情報機器。
【請求項５】
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源スイッチがオフで、前記記憶装置からの前記ビジー信号がアクティブからインアクティブになった場合に、前記記憶装置への電源の供給を停止することを特徴とする請求項４に記載の情報機器。
【請求項６】
前記処理装置と主メモリとを含む機器は、BIOS  ROMを備え、
前記処理装置は、前記処理装置と主メモリとを含む機器の電源投入後に、前記BIOS  ROMをアクセスして初期診断、初期設定を行い、その後、システムプログラムを前記記憶装置から前記主メモリへロードすることを特徴とする請求項３〜５の何れかに記載の情報機器。
【請求項７】
前記記憶装置は、ハードディスクドライブの代わりに、前記フラッシュメモリを備え、
前記処理装置と主メモリとを含む機器は、前記ハードディスクドライブに対応するコマンドを前記記憶装置へ出力して前記記憶装置をアクセスし、
前記記憶装置は、前記処理装置と主メモリとを含む機器からの前記ハードディスクドライブに対応するコマンドに従って、前記記憶装置に記憶されたデータを前記処理装置と主メモリとを含む機器へ出力することを特徴とする請求項３〜６の何れかに記載の情報機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は携帯用の小型情報処理機器の補助記憶装置にかかり、特にフラッシュメモリを用いた半導体ファイル記憶装置及びそれを搭載する情報機器に関する。
【背景技術】
【０００２】
情報機器の補助記憶装置の従来技術としては磁気記憶装置が最も一般的であるが、磁気記憶装置では書き込むファイルをセクタと呼ぶ記憶単位に分割し、記憶媒体の物理的な位置に対応させて記憶する。すなわちあるファイルの書き換えにおいては基本的に同一位置に書き込みが行われ、書き込みデータが増えるとその分だけ新たなセクタへの書き込みを行う。これに対し別の補助記憶装置として光ディスク装置が挙げられる。現在一般的な光ディスクは、書き込みが一回だけ可能で消去は不可能である。従って一度書き込んだファイルの書き換え時は実際には書き換えを行わず、別の領域に書き込んで以前書き込んだデータは無効にして以後読み出さないようにする。つまり磁気ディスク装置と異なり、書き換えデータと記憶場所には全く関連性を持たせない、という方式で補助記憶装置の機能を果たしている。以上のようなディスクを回転させて大容量のデータを高速にアクセスし、補助記憶装置の機能を果たす記憶装置に対し、半導体メモリを用いて補助記憶装置とする半導体ファイル記憶装置が近年脚光を浴びている。特に電気的に書き換えが可能な不揮発性メモリ（以下ＥＥＰＲＯＭと記す）を用いたものが今後半導体ファイル記憶装置の主流になると考えられる。それを実現する一つの技術として特許文献１がある。これはＥＥＰＲＯＭを用いた記憶装置であり、ＥＥＰＲＯＭの欠点である書き換え消去回数の制限を保護し、ＥＥＰＲＯＭを用いて実用的な記憶装置を実現する方式である。その概要を説明すると複数のメモリ素子を用意し、各素子の消去書き換え回数を記録して管理し、ＥＥＰＲＯＭの書き換え保証回数より小さなある規定回数に達したら用意してあったメモリ素子に切り替えて使用することにより、記憶データの保護を図るものである。
【０００３】
【特許文献１】特開平３−２５７９８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記従来技術における光ディスク装置の方式ではファイルの書替えがあるたびに記憶領域をつぶしていくことになり、非常に大容量の記憶媒体がないと記憶領域の確保ができない、という点に問題がある。特にファイルの書替えが激しい情報機器の記憶装置とする場合は、実際の記憶容量がそれほど大きくなくても、記憶領域が大きくなってしまう。一方補助記憶装置として最も一般的な磁気ディスク装置の場合は、一度書き込んだファイルを書き替える場合、同じ領域に新しいデータを書き込む。しかしこれをＥＥＰＲＯＭに応用すると、記憶しているファイルの一覧となるファイル（一般にはディレクトリファイルと呼ばれる）やファイルの記憶場所を参照するためのファイル（ファイルアロケーションテーブル）等はデータのライトアクセスがあるたびに書替えが起こり、書替えが局所に集中する。これは書込み消去回数に制限のあるＥＥＰＲＯＭにおいては寿命を著しく短くすることになる。
【０００５】
またＥＥＰＲＯＭを適用した特許文献１においては、メモリ素子の劣化状態を消去回数により把握して壊れる前に代替のメモリに切り替えるという方式を発明しているが、この方式では実際の記憶容量の倍以上のメモリ容量を備える必要がある。すなわち代替のメモリは、最初に使用するメモリが壊れるまでは全く使用しないし、また壊れたメモリは壊れたあとは不必要になってしまう。これは物理的体積、重量に非常に無駄が大きくなる。しかも通常データの書き換えは全体的に起こる訳ではないため、部分的に劣化しているだけなのにメモリチップ全体を非使用状態にしてしまうのは経済的に無駄が大きいと言える。
【課題を解決するための手段】
【０００６】
その手段としてデータの書き込みは光ディスクと同様に記憶データと記憶場所には関連性は持たせず、データの書き込みがあったらデータを書き加えていくこととし、既に書き込んであるファイルの書き換えが発生した場合は、古いファイルの記憶領域を無効として消去可能領域にする。
【０００７】
そして、書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、消去ブロック単位のポインタをインクリメントすることによって未書き込みのセクタを有する消去ブロックをさがし出し、消去ブロック内の未書き込みのセクタに、処理装置と主メモリとを含む機器からの書き込み要求に伴うデータを書き込む。
【発明の効果】
【０００８】
本発明によれば、消去回数に限りがあるフラッシュメモリを用いた補助記憶装置のデータ管理方式において、特定の論理セクタアドレスの書換えが頻繁に起きても物理的には同一の記憶領域を使用しないため、システムとして寿命が延びる効果がある。
【発明を実施するための最良の形態】
【０００９】
光ディスク装置の方式ではファイルの書替えがあるたびに記憶領域をつぶしていくことになり、非常に大容量の記憶媒体がないと記憶領域の確保ができない、という点に問題がある。特にファイルの書替えが激しい情報機器の記憶装置とする場合は、実際の記憶容量がそれほど大きくなくても、記憶領域が大きくなってしまう。一方補助記憶装置として最も一般的な磁気ディスク装置の場合は、一度書き込んだファイルを書き替える場合、同じ領域に新しいデータを書き込む。しかしこれをＥＥＰＲＯＭに応用すると、記憶しているファイルの一覧となるファイル（一般にはディレクトリファイルと呼ばれる）やファイルの記憶場所を参照するためのファイル（ファイルアロケーションテーブル）等はデータのライトアクセスがあるたびに書替えが起こり、書替えが局所に集中する。これは書込み消去回数に制限のあるＥＥＰＲＯＭにおいては寿命を著しく短くすることになる。またＥＥＰＲＯＭを適用した特開平３−２５７９８号公報においては、メモリ素子の劣化状態を消去回数により把握して壊れる前に代替のメモリに切り替えるという方式を発明しているが、この方式では実際の記憶容量の倍以上のメモリ容量を備える必要がある。すなわち代替のメモリは、最初に使用するメモリが壊れるまでは全く使用しないし、また壊れたメモリは壊れたあとは不必要になってしまう。これは物理的体積、重量に非常に無駄が大きくなる。しかも通常データの書き換えは全体的に起こる訳ではないため、部分的に劣化しているだけなのにメモリチップ全体を非使用状態にしてしまうのは経済的に無駄が大きいと言える。
【００１０】
フラッシュメモリは不揮発性のメモリであるため、当然のことながら本発明のシステムは非動作時には電源の供給を停止してもフラッシュメモリ内のデータが失われることはない。しかしながらいくらデータが保存されていても、テーブルの内容が失われると、どのセクタに何のデータが格納されているかがわからなくなり、フラッシュメモリ内のデータは正体不明の無意味なデータと化してしまう。そのためテーブルに格納されているデータも電源供給停止後に保存されている必要がある。ただしテーブル内の全てのデータを保存する必要はない。
【００１１】
ＥＥＰＲＯＭの一種であるフラッシュメモリはデータの電気的消去が可能であり、従って不揮発性メモリでありながらデータの書き換えが可能である。そして消去単位が一般のＥＥＰＲＯＭと比較して大きなものであるため、セル構造が単純化され集積度を大きくすることができ、物理的にも経済的にも他のメモリ素子よりも大容量の補助記憶装置に適している。そこで欠点である消去回数の制限を保護すべく消去の回数が極力少なくなる方法でデータの記憶と書き換えを行うことにより他の補助記憶装置に置き換えて使用することが可能となる。その手段としてデータの書き込みは光ディスクと同様に記憶データと記憶場所には関連性は持たせず、データの書き込みがあったらデータを書き加えていくこととし、既に書き込んであるファイルの書き換えが発生した場合は、古いファイルの記憶領域を無効として消去可能領域にする。そしてあるタイミングをもって無効領域のデータを消去するガーベイジコレクションを行う。ガーベイジコレクションは、消去単位が大きく無効領域のデータとともに消去の必要がない有効領域のデータを消去しなければならない時には、有効領域のデータを別の記憶領域に移し、元の場所を消去して新たな書き込み可能領域にする。さらに消去回数を管理する消去回数管理テーブルを設け、ガーベイジコレクションを行うごとに回数をインクリメントする。そしてあるブロックが規定した消去回数に達したら消去回数の少ないブロックとのデータの交換を行う。
【００１２】
上記手段によれば光デイスク装置のようにデータの書替えが起こるたびに記憶領域をつぶしていくことはなく、不必要になったデータを消去して記憶領域とすることができ、また磁気ディスクのように書替えが局所に集中してフラッシュメモリの寿命を縮めることはない。たとえ書き込み領域が著しく小さくなり、さらに書き替えるデータも非常に限られたものとなって、消去ブロックが特定のブロックに集中しても、消去回数の多いブロックのデータと消去回数の少ないブロックのデータとを入れ替えることにより、頻繁に書替えが起こる領域を固定せず、また書替えがあまり起こらない領域を固定せずに全記憶領域を一律に使用する記憶方式を実現する。従ってメモリの劣化が鈍化し、代替メモリを備える必要がなくなる。
【００１３】
本発明によれば消去回数に限りがあるフラッシュメモリを用いた補助記憶装置のデータ管理方式において、特定の論理セクタアドレスの書換えが頻繁に起きても物理的には同一の記憶領域を使用しないため、また消去回数が多くなると消去回数の少ない領域のデータと入替えて消去回数の増加を平均化するため、システムとして寿命が延びる効果がある。またデータメモリ素子数は実際の記憶容量と一致する容量だけでよく冗長のメモリ素子を必要としない。さらにメモリ内にデータ領域だけでなく、情報を保持する領域や、データバッファ領域をもたせることにより、周辺回路の素子数を減らしシステム全体の小型化に大きく貢献する。なおこのフラッシュファイルシステムを搭載する情報機器はＨＤＤを補助記憶装置として動作するのに、実際にはフラッシュメモリを用いた記憶装置である、という構成にすることにより、一般的な情報機器のハードウェアを変更することなしにフラッシュファイルシステムを補助記憶装置とすることができる。またフラッシュメモリの書き換え回数に限界があることにより、記憶装置としての寿命が信頼性に大きく関わるが、使用限界に達したことを認識しユーザに報告する機能を持たせ、記憶装置としての信頼性を向上させることができる。またフラッシュメモリの書き込み速度が遅いために、ホスト側が電源を落されてもフラッシュファイルシステムとしては処理が残っているときには、バックアップバッテリにより処理を継続したり、ホストの電源装置を適宜制御することにより、データの消失を防ぐことができる。またフラッシュメモリの劣化度を消去時間で診断し、劣化が激しくなったらあまり劣化していない領域の格納データを格納することにより、劣化の進行を抑えることができる。フラッシュメモリの劣化は消去時間の長短で認識できるため、正確な劣化の進行度を把握でき、また劣化の段階で記憶すれば劣化度の情報の記憶を比較的少ない記憶容量で行うことができる効果がある。また物理セクタテーブルや論理セクタテーブルを省略して、セクタ番号変換テーブルを備えることにより、システムに応じてテーブル領域を節約することができ、ファイルデータ以外の情報データの格納領域を小さくできる効果がある。またインジケータを補助記憶装置に設けることにより、ホストパソコンの表示画面上のプロンプトだけでは補助記憶装置の動作状態が不明であるため、先述のような電源制御を採用していないシステムの場合には補助記憶装置の動作中に誤って電源を落すのを未然に防ぐことができる。
【実施例１】
【００１４】
まず第１の実施例を図１、図２、図３及び図４により説明する。図１は第１の実施例を実現するためのハードウエア構成であり、図２は本実施例に用いるフラッシュメモリチップの内部構成を示した図であり、図３は格納データ管理のメインルーチンのフローチャートであり、図４は消去管理ルーチンのフローチャートである。
【００１５】
最初に図２によりフラッシュメモリの動作について述べる。図中１１はメモリチップ全体、１２はデータ書き込み単位、１３はデータ消去の最小単位で消去ブロックと呼ぶこととする。フラッシュメモリは電気的消去可能なＥＥＰＲＯＭであり、一種のＥＥＰＲＯＭであるが、ノーマルなＥＥＰＲＯＭがデータの書き込み単位と消去（書換え）単位が同一であるのに対し、フラッシュメモリは書き込み単位より消去単位が極めて大きく、一度書き込んだデータを書き換えるためには他の多くのデータも同時に消去しなければならない。その代りの利点としてノーマルなＥＥＰＲＯＭより集積度を高くでき、大容量の記憶装置に適している。図２においてメモリチップ全体１１が一つ以上の消去ブロック１３に分割されており、書き込み単位１２が１ワード（メモリにおけるワードでありメモリ構成に従う）であるのに対し、消去ブロック１３はそれより大きい領域となる。フラッシュメモリを補助記憶装置として用いる際には、磁気ディスク装置の仕様に合わせ、５１２バイトを消去単位とすると使いやすくなる。
【００１６】
次にこのメモリを用いた記憶装置の第１の実施例のシステム構成とその動作を図１及び図３、図４を用いて説明する。なお以下の説明ではファイルデータの記憶単位をセクタと呼ぶこととし、本実施例では１セクタが１消去ブロックと一致するものとする。図中、１はファイルデータの記憶をするフラッシュメモリチップ群、２はフラッシュメモリ１のアクセス信号を生成するアクセスコントローラ、３は記憶データやステータスデータを操作してフラッシュメモリによる外部記憶システムを構築するマイクロプロセッサ、４はプロセッサ３を動作させる制御プログラムを格納したプログラムメモリ、５はある論理アドレスで示されるセクタ（論理セクタ）のデータがフラッシュメモリ１上のどこにマッピングされているかを参照するための論理セクタテーブル、６はフラッシュメモリ１上の物理的なアドレスで示される物理セクタにマッピングされたファイルデータの論理セクタ番号を参照するための物理セクタテーブル、７は各物理セクタの消去回数の累計を記録する消去回数管理テーブル、８は各物理セクタのステータスを参照するステータステーブル、９はデータの書き込みを高速化するために書き込みデータを一時的に保存するライトバッファである。次に動作を説明する。本システムに対しデータのアクセス要求をするシステム（ホストシステム）よりデータのリードアクセス要求があると、プロセッサ３は論理セクタテーブル５を参照して該当する論理セクタが格納されている物理セクタを割り出し、その物理セクタをアクセスして要求されたデータをホストシステムに送出する。ホストシステムからのデータの書き込み要求に対しては、図３のフローチャートを用いて説明する。図３のフローチャートはプログラムメモリ４に格納されているプログラムのメインルーチンのフローチャートでありその流れを説明すると、まず、次のデータの書き込みをするセクタを示す書き込みポインタが設定されており、このポインタが示すセクタが書き込み可能な状態にあるかをステータステーブル８により判別する（ａ）。ステータステーブルでは消去回数が多くなり劣化して使いものにならなくなったことを示すフラグやすでにデータが書き込まれていることを示すフラグがあり、これらが立っていて書き込み不可能であれば次のセクタにポインタを移す（ｂ）。そして書き込み可能であればそのセクタへのデータの書き込みを行う（ｃ）。そして既に一度書き込んだことのある論理セクタの書き換えである場合は、前回書き込んだ当該論理セクタのデータはもはや不要であるため、論理セクタテーブルより不要になったデータが書き込まれている物理セクタを捜し出してこれを消去し、同時に前回の書き込みの際に書いた物理セクタテーブル６の内容を消去する（ｄ）。セクタの消去が行われたら消去管理ルーチンへ飛ぶ。消去管理ルーチンについては後述する。そして論理セクタテーブル５に書き込みポインタの示す物理セクタ番号を、物理セクタテーブル６には書き込みポインタの示す場所に書き込んだ論理セクタ番号を書き込む（ｅ）。なお（ｂ）においてはデータが書き込まれているかの判断をステータステーブル８に書き込むことにしても良いし、物理セクタテーブル６により判断することもできる。物理セクタテーブル６は未書き込みセクタである場合には全ビットＨにするかあるいはＬにすれば判別が容易になる。次に先述の消去管理ルーチンについて図４を用いて説明する。まずデータを消去した物理セクタに対応する消去管理テーブルの消去回数カウンタを１インクリメントし（ａ）、消去回数が規定回数に達していなければメインルーチンに復帰し、規定回数に達していたら、データの入替えを行う（ｂ）。データの入替えを行うためにはまず他の全セクタの消去管理テーブルを調べ、消去回数が最小でかつまだデータの入替えを行っていないセクタを捜しだす（ｃ）。捜し当てた消去回数が最小のセクタに格納されているデータを、先程消去を行ったセクタに書き込む（ｄ）。書き込みを行ったら両セクタのステータステーブルの入替えフラグを立てる（ｅ）。この入替えフラグは、消去回数の少ない物理セクタが、本ルーチンにより消去が頻繁に起こるようになるのに、それを示す手段がないと再び消去回数が少ないセクタに選ばれてしまうことが考えられ、この時にデータを入れ替えた消去回数の多いセクタは、また消去が頻繁に起こるようになってしまう、ということが起こるのを防ぐものである。この入替えフラグを立てたら、該当する論理セクタテーブルの内容と物理セクタテーブルの内容を書き換える（ｆ）。以上が終了したらメインルーチンに復帰する。なお消去回数が最小として選ばれたセクタは一度消去されることになるため、消去管理テーブルの消去回数カウンタをインクリメントする必要がある。また入替えフラグは全てのセクタのフラグが立ったらクリアされるか、あるいは論理の判断を反転する。つまり１のとき入替えが行われたと判断していたものを０になったら入替えが行われたことにする。また（ｂ）の規定回数は、フラッシュメモリの書換え可能回数の保証値より小さな値の倍数とすべきで、例えば１００００回の保証回数であれば、１０００回の倍数回や、２０００回、５０００回の倍数回等が適当である。このルーチンにより、限られたブロックに消去が頻繁に起きたら消去回数の少ないブロックのデータと入替えをして、消去回数の多いブロックに消去があまり起きないセクタのデータを格納することにより、消去回数の平均化を図るものである。これは通常の補助記憶装置の格納データには大変効果があると考えられる。例えばオペレーションシステムプログラムを格納した領域ではデータの書換えは全く起きないが、アプリケーションプログラムのデータとなるグラフィックデータやテキストデータの領域では頻繁にデータの書換えが起きる。そのため消去回数の平均化を行わないと、システムプログラム領域のメモリはデータが変化しようがないため、消去回数の増加による劣化は全く起きないことになり、それ以外のデータ領域のメモリは限られたメモリ空間で頻繁に消去が行われ、消去回数を急増させることになる。つまり使用可能領域が少ない状態で特に大きな効果があるといえる。
【００１７】
以上が第１の実施例の動作の説明である。本実施例によればプロセッサを搭載したことによりプログラムメモリの内容に従った細かな制御ができるようになり、またライトバッファにより書き込みの高速化が図れ、ステータステーブルを備えたことにより各セクタの状態を記録するのに拡張性がある。そしてフラッシュメモリの寿命を延ばすために、消去回数を管理した最適なファイル管理が行える効果がある。
【実施例２】
【００１８】
次に第２の実施例について図５、図６、図７、図８及び図９を用いて説明する。図５は第２の実施例におけるハードウエア構成であり、図６は本実施例におけるフラッシュメモリ内の記憶構成を示した図であり、図７はデータ書き込みのためのメインルーチンのフローチャート、図８は不必要なデータを格納したセクタを未書き込みセクタにするための整理ルーチンのフローチャート、図９は消去回数の管理をする消去管理ルーチンのフローチャートである。
【００１９】
まず図６により本実施例におけるフラッシュメモリのチップとその使用法を説明する。図中、５２は第１の実施例で用いたセクタと呼ぶファイルデータを記憶する記憶領域の単位である。５３はデータ消去の最小単位で消去ブロックと呼び、複数のセクタ５２により構成される。すなわち第１の実施例とは異なり消去ブロック５３とセクタ５２の記憶容量は異なるものとする。５４はメモリチップ全体であり、図では複数の消去ブロックにより構成されているが、１チップに１消去ブロックであることも考えられる。本実施例ではセクタ単位にファイルデータの格納を行うが、そのファイルデータの書換えの要求があって消去するためには他のセクタも同時に消去されてしまうようなメモリチップに適応するものである。図５は本実施例のハードウエア構成で、図中、４１は書き込みデータの記憶領域であるフラッシュメモリで一つ一つはメモリチップ５４である。４２はフラッシュメモリ４１をアクセスするアクセスコントローラ、４３は記憶データやステータスデータを操作するプロセッサ、４４はプロセッサ３を動かすための制御プログラムが格納されているプログラムメモリ、４５はフラッシュメモリ４１の物理セクタ５１が記憶している論理セクタ番号を参照するための物理セクタテーブル、４６は記憶してある論理セクタ番号のデータがフラッシュメモリ１のどこの物理セクタに記憶されているかを参照するために物理セクタ番号が記録されている論理セクタテーブル、４７は各ブロックの消去回数を記録する消去管理テーブル、４８は各ブロックのステータスを記憶するステータステーブル、４９は既書き込みセクタ数を参照するための書き込みセクタ数テーブル、５０は書き込みの高速化を図るため、書き込みデータを一時的に保持するライトバッファ、５１は整理ルーチンを行う際に用いる整理バッファである。
【００２０】
次に動作を説明する。リードアクセス時は第１の実施例同様、論理セクタテーブル４５と物理セクタテーブル４６を参照して行う。一方ライトアクセスは、図７を用いて説明すると、まず書き込みポインタを設定し、その書き込みポインタで示されたブロックのステータステーブルを参照する（ａ）。すなわち本実施例における書き込みポインタはブロック単位のポインタである。そしてこわれていたら次のブロックにポインタを移す（ｂ）。こわれていなければそのブロックの書き込みセクタ数テーブル４９を参照する（ｃ）。そして既にブロック内の全セクタが書き込み済であったら整理ルーチンに飛ぶ。整理ルーチンについては後述する。もし未書き込みセクタがあったらデータの書き込みを行い（ｄ）、該当する書き込みセクタ数テーブルを１インクリメントする（ｅ）。従って、例えば図６において一つ前の書き込みを第１ブロックの第３物理セクタに書き込んだ場合、次の書き込みは第１ブロックの第４物理セクタに書き込みを行うことになる。実際のライトアクセス制御はアクセスコントローラ２により行う。ここで書き込みを行ったブロックのセクタが全て書き込まれてしまったら整理ルーチンに飛ぶ（ｆ）。そして書き込み後は物理セクタテーブルおよび論理セクタテーブルに書き込んだセクタ番号をそれぞれ記録する（ｇ）。もし以前に書き込んでいる論理セクタの再書き込みであれば、以前物理セクタテーブルに書き込んだ論理セクタ番号を消去する。これはその物理セクタのデータは無効であることを示すための動作である。なお（ｆ）の動作は整理時間短縮のために設けられておりフラッシュメモリの消去効率を高くするためには行うべきでない。次に整理ルーチンについて説明すると、整理ルーチンとは書き込みポインタの指し示すブロックがすでに全セクタ書き込まれており、書き込み不可能である時の動作ルーチンである。整理ルーチンが必要となる理由は、これまで説明した書き込み方法では同じファイルのデータの書き替えにおいて別の物理セクタへ書き込みを行う。すなわち書き換える前に書き込んだデータは不要となるがメモリ上には記憶されたままであり消去すべきデータである。しかし不要となるたびに消去していたのでは消去回数が有限であるフラッシュメモリにとっては寿命を短くすることになる。そこで整理ルーチンによって消去する。整理ルーチンはブロックが書き込みデータで一杯になったときに行う。整理の具体的な方法は、図８のフローチャートに従って行う。以下フローチャート内の各部の説明をする。整理ブロックの物理セクタテーブルを参照し、ブロック内に消去可能なセクタすなわち他の物理セクタに新たに書き換えられたため不必要となったセクタがないかをチェックする（ａ）。消去可能なセクタが一つもなかったらメインルーチンに復帰し、一つでもあったら整理を行う。まず整理するブロック内のデータを整理バッファ５１に退避し（ｂ）、整理するブロックの消去を行う（ｃ）。消去を行ったら図９の消去管理ルーチンに飛ぶがこれについては後で説明する（ｄ）。そして整理バッファの中で必要なセクタだけを整理するブロックに復帰させる（ｅ）。復帰したときのセクタの位置は、元々の場所に復帰させれば論理セクタテーブル４５や物理セクタテーブル４６を書き換える必要がない。また復帰の際にはそのブロックの若いセクタ番号から埋めていく方法を取ると、次の新しいセクタの書き込みがし易くなるが、論理セクタテーブル４５と物理セクタテーブル４６を書き換える必要がある。いずれの場合も書き込みセクタ数テーブルは復帰したセクタ数に書き換えることになる（ｆ）。次に消去管理ルーチンについて説明する。図９は消去管理ルーチンのフローチャートであり、基本的には第１の実施例で説明したものと同様であるが、消去の管理がセクタではなくブロック単位に行う点が異なる。まず消去が行われたブロックの消去回数が一定数に達したか、をチェックし（ａ）、もし達していなければこのルーチンを脱出。達していたら（ｂ）全ブロックの消去回数を検索し、消去回数が最小のブロックを捜しだす（ｃ）。整理を行ったブロックと消去回数が最小のブロックが一致していなければこの２つのブロックのデータを入れ替える（ｄ）。入替えには図５の整理データバッファ５１を利用する。そして入替えを行ったブロックの入替えフラグを立てる（ｅ）。消去回数カウンタをインクリメントするとともに論理セクタテーブル及び物理セクタテーブルを書き換える（ｆ）。以上が本実施例における消去管理ルーチンの動作である。第１の実施例同様このルーチンにより、限られたブロックに消去が頻繁に起きたら消去回数の少ないブロックのデータと入替えをして、消去回数の平均化を図るものである。
【００２１】
以上が第２の実施例の動作説明である。本実施例によれば、消去ブロックが書き込むセクタの単位としては大き過ぎるときに、消去ブロックを分割して効率良く使える効果がある。
【実施例３】
【００２２】
次に第３の実施例を図１０、図１１及び図１２を用いて説明する。本実施例においてはメモリチップは第１の実施例と同様の図２の消去ブロックとセクタの容量が一致するものとするが、使用時は図１０に示す構成をとる。図中９１は複数のセクタよりなるブロックである。本実施例ではセクタと消去ブロックの単位が同一であるため本実施例のブロック９１は複数の消去ブロックで構成されることになる。既出の他の番号は図２あるいは図６と同様のものである。ハードウエア構成は図１１に示したものであり図中１０１はブロック９１ごとの消去回数を記録した消去管理テーブルであり、詳細は後述するが結果的にブロック９１内の消去回数の累計を記憶することになる。他は図１、図５と同様のものである。図１２は本実施例の消去管理ルーチンのフローチャートであり、メインルーチンは図３と同様である。メインルーチンの動作は第１の実施例の説明に従うとして、メインルーチンから消去管理ルーチンに飛んでからの動作を図１２により説明する。まず消去を行ったセクタを含むブロックの消去管理テーブルの回数カウンタを１インクリメント（ａ）。消去回数が規定値に達したかを判別し（ｂ）、達していたら前ブロックの消去回数を調べて回数が最小で、かつまだデータの入替えを行っていないブロックを割り出し（ｃ）、２つのブロックのデータを入替える（ｄ）。そして入替えフラグを立てるとともに（ｅ）、各テーブルの内容を書き換える（ｆ）。本実施例の特徴はセクタ単位の消去ができるメモリにおいて消去管理を複数のセクタで行うことにより、消去管理の簡便化を図って、大きなファイルの書換えにおける待ち時間の節約と、消去管理テーブルの削減ができるという効果が期待できる。従って大容量の記憶装置で、消去管理をセクタごとに行うことが困難な場合に適応する。
【実施例４】
【００２３】
ところでこれまで説明した実施例で構成要素となっていた論理セクタテーブル、物理セクタテーブルなどのテーブルについて説明を加える。フラッシュメモリは不揮発性のメモリであるため、当然のことながら本発明のシステムは非動作時には電源の供給を停止してもフラッシュメモリ内のデータが失われることはない。しかしながらいくらデータが保存されていても、テーブルの内容が失われると、どのセクタに何のデータが格納されているかがわからなくなり、フラッシュメモリ内のデータは正体不明の無意味なデータと化してしまう。そのためテーブルに格納されているデータも電源供給停止後に保存されている必要がある。ただしテーブル内の全てのデータを保存する必要はない。例えば論理セクタテーブルのデータは物理セクタテーブルのデータから容易に作成可能である。逆もまた可能であるのでつまりどちらか一方のデータが保存されていれば良いことになる。そこで物理セクタテーブルを電気的消去可能で書き込み可能な不揮発性メモリ（ＥＥＰＲＯＭ）に記憶し、論理セクタテーブルは電源供給を開始するシステムの起動時に物理セクタテーブルより作成することとする。こうすると論理セクタテーブルは揮発性のメモリを使用できる。またこれと同様に各ブロックの使用セクタ数テーブルも物理セクタテーブルより作成可能であるため、システムの起動時に揮発性メモリに作成する。これらのテーブルはメインシステムの主メモリ上に展開することも可能である。その他のテーブルについては、消去管理テーブル、ステータステーブルがあるが、これらは他のテーブルからの作成は不可能であり、消去管理テーブルはデータが失われるべきでないためＥＥＰＲＯＭに記憶する。ステータステーブルはもう一度書き込みや消去をしたときに得られるが、二度手間になるためＥＥＰＲＯＭに記憶すべきである。しかしメモリの節約のため揮発性メモリに記憶することもできる。これらテーブルの記憶媒体としては同じメモリに格納してチップ数を減らすこともできる。例えば物理セクタテーブルと消去回数テーブルはどちらも不揮発性メモリに格納すべきであるため、同じＥＥＰＲＯＭチップに格納してＥＥＰＲＯＭは１チップだけにすることができる。またプロセッサをワンチップマイコンとした場合は、使用セクタ数テーブルなどの比較的小さなテーブルはワンチップマイコンに内蔵されているＲＡＭコアに格納する。これらをまとめた第４の実施例の構成図を図１３に示した。図中、１１１はＲＡＭ、ＲＯＭを内蔵したワンチップマイコン、１１２はワンチップマイコン内のＲＡＭコア、１１３はワンチップマイコン内のＲＯＭコア、１１４はＥＥＰＲＯＭチップ、１１５はＳＲＡＭまたはＤＲＡＭ、以下既出の番号は、前述と同様のものである。ＲＡＭコア１１２には使用セクタ数テーブルを格納し、ＲＯＭコア１１３にはマイコンの制御プログラムを格納し、ＥＥＰＲＯＭ１１４には物理セクタテーブル及び消去管理テーブルを格納し、ＲＡＭ１１５には論理セクタテーブルを格納する。またＲＡＭ１１５の空き領域では図９で示した整理ルーチンを行う際の整理データバッファ、及び書き込みの高速化を図るライトバッファとしても用いることとする。このように本実施例によれば記憶媒体の特徴にあわせ、テーブル、バッファ類をまとめてチップ数の削減を図ることができる。これに対し、図２４はＥＥＰＲＯＭを省略した構成となる実施例である。これは第４の実施例で説明した不揮発性のテーブルデータをフラッシュメモリ１に格納することにより実現する。図中、１１６はフラッシュメモリ１内に設けたテーブル格納領域である。ただしフラッシュメモリはテーブルデータのような小さい単位のデータの更新には適さないため、フラッシュメモリ１にテーブルのデータを格納するのは電源遮断の直前とし、通常の使用状態においては揮発性のＤＲＡＭやＳＲＡＭ１１５に格納するものとする。つまり本発明のシステムの電源を遮断する際に、ＲＡＭ１１５の内容のうち必要なデータをフラッシュメモリ１に転送してから電源を遮断し、次に電源を投入した時にフラッシュメモリ１からＲＡＭ１１５にデータをロードしてから通常の動作を開始する。従ってフラッシュメモリにはテーブル格納用の記憶領域１１６を常に確保しておく必要がある。ただしこの格納位置を固定とする必要はない。固定としなかった場合はあらかじめテーブルを格納するアドレスを示す領域を設けておき、テーブルを格納したアドレスを常に記録しておくことにより、電源立ち上げ時にテーブルの位置をサーチする必要がなくなる。
【００２４】
またさらにフラッシュメモリ自体の構成における実施例を図１４、図１５、図１６及び図２３に示した。図１４はフラッシュメモリチップ内に消去ブロック単位にデータ領域と異なるテーブル用の記憶領域を持たせたものであり、これに各ブロックごとの物理セクタテーブルや消去回数を書き込むことによりＥＥＰＲＯＭを省略できる。図中、１３１は消去ブロック、１３２は消去ブロック１３１ごとに付加されるテーブル用の記憶領域である。消去ブロック１３１に対応するテーブル１３２に格納されたデータは消去ブロック１３１と同一のアドレスでアクセス可能とし、信号線による選択やモードの選択によりファイルデータとテーブルのデータを出し分ける。このようにするとデータ領域とテーブル領域の寿命が一致し、データ領域１３１が使用可能なのに、テーブルがこわれて使用不能に陥るということがなくなる。データ領域とテーブル領域が接近していればその傾向がさらに強くなる。そして消去ブロックごとにテーブルを構成するためアドレスラインの共有化が簡単に実現する。テーブル用の記憶領域１３２の一例を図２３（ａ）に示した。図中、１３３は消去単位１ブロック全体を表し、１３４はブロック内のファイルデータ領域、１３５はそのブロックの論理番号を格納する領域で８ビットの記憶容量を持つ。１３６はそのブロックの状態を示すステータステーブルで１６ビットの容量である。ステータステーブル１３６の内容は、消去回数管理テーブル、使用不能フラグ、入替え済みフラグ、訂正フラグ等が挙げられる。このステータステーブル１３６で余ったビットをブロック番号格納に用いることもできる。図２３（ｂ）はさらにエラー訂正領域を持たせたテーブル領域１３２の一例であり、１３７はエラー訂正個所を示す領域である。これは訂正能力に応じて記憶容量を設定することとする。たとえば１ワード１６ビットのワード構成で、消去ブロックが５１２Ｂの構成のメモリチップに対してエラー訂正領域が８ビットであれば、１ワード訂正能力を持つ。つまり不良ビットの存在するワード番号をここに書き込んでおき、訂正データを他の領域に書き込んでおけば、読み出しの際にそのワードのデータを置き換えてしまうことにより実現する。訂正データ領域をこのテーブル内に持たせてもよいし、他の記憶領域にまとめておく方法もある。前者ではデータ訂正をテーブル内で全てまかなうことができるが１ブロックごとに訂正データ領域を持つこととなるためチップ全体で冗長領域が大きくなってしまう。後者では訂正データが書き込まれている領域を示す手段が必要になり、また他の記憶領域をアクセスするためアクセス時間が大きくなってしまうが、訂正データ数に応じて冗長記憶領域を大きくも小さくも設定できる。なお訂正データが書き込まれている領域の指定はステータステーブル領域１３６の余りビットを使用すると良い。また訂正データ領域の一例として図１５を用いて説明する。図１５はデータの記憶領域とは別に１バイトや１ワード等の細かい単位で書き込み消去ができるＥＥＰＲＯＭタイプの記憶領域１３８を持たせたものであり、この領域を訂正データテーブルとして、訂正データを書き込んでおき訂正すべき個所のデータの読み出しの際に指定された位置のデータを読み出して置き換えることによりデータ訂正が実現する。また図１５は、テーブル領域の構成を、対応するデータ領域の消去ブロックの付近に構成せず、一まとめにして同様の効果を狙った実施例と考えることもできる。この場合図内の構成要素は図１４と同様であり、メモリセルの構成がチップ内で一まとめになるため、図１４のメモリセルの構成より簡略化される効果がある。
【００２５】
また図１６は別の構成のフラッシュメモリチップである。データの記憶領域１４１とは別に、データを一時的に保持するバッファ領域１４２をメモリチップ内に持たせたものであり、この部分は揮発性のメモリでもよい。１４３はクロック入力によりカウントアップするアドレスカウンタである。ライトアクセス時はライトデータをバッファ領域１４２に書き込み、アドレスを入力することにより複数のデータを一気にデータ領域１４１に転送し書き込めるようにする。このようなメモリを用いれば書き込みの高速化を図る外付けのライトバッファを省略できる。またリード時にも逆にデータ領域１４１からアドレスを入力することにより複数のデータを一度にバッファ領域１４２に転送できれば、リードアクセスも簡略化される。この場合バッファはシリアルアクセスメモリとして連続アドレスの入力が必要でなく、内部にアドレスカウンタ１４３を備え、クロックを入力すれば内部のアドレスカウンタがカウントアップし、連続した領域をアクセスしてデータを出力できるようにすればさらに使い勝手が良くなる。なおバッファ領域はセクタを１単位として構成するのが最も効果的であり、１単位分に限らず複数単位分構成するとバッファ効果を向上させることができる。例えば１セクタが消去ブロック単位であった場合、１セクタのデータを格納するバッファが１つ備えられていれば、１セクタの書き込み読み出しが一度に行われるようになるが、複数備わっていれば複数のセクタのデータの書き込みを受け入れることができ、また読み出しデータを用意することができる。そしてこのバッファを利用すれば外付けの整理バッファも省略できる効果がある。
【００２６】
次にこれまでの実施例で説明してきたフラッシュメモリを用いた記憶装置を情報処理システムに応用する実施例について説明する。図１７はフラッシュメモリを用いた記憶装置（以下、フラッシュファイルシステムと称す）を情報処理システム（以下ホストと称す）と接続するためのインタフェース回路を説明する図であり、図中２０１はホストの外部Ｉ／Ｏバスであり、標準的なバスとしてはＩＳＡ、ＥＩＳＡ、マイクロチャネル、ＳＣＳＩなどのバスが挙げられる。２０２は標準バスを専用バスに変換するためのバスバッファあるいはバスコントローラであるが、これが省略されるシステムも考えられる。これらに接続されているのはホスト側が自システム内の主記憶装置あるいは拡張主記憶装置、表示記憶装置等の記憶装置に記憶しきれないデータや電源遮断後も保持したいデータなどを記憶するために設置している外部記憶装置あるいは補助記憶装置である。フロッピディスクドライブ２０３、ハードディスクドライブ２０４等が一般的であるが、それに加えフラッシュファイルシステム２０５が接続されている。なおこれら全ての補助記憶装置がホストシステムに接続される必要はなく、ユーザが適宜選択して接続するものである。フラッシュファイルシステム２０５にはインタフェース回路２０６が付加されており、２０７はインタフェースレジスタ群、２０８はインタフェースレジスタ群の中のレジスタの一つであるコマンドレジスタ、２０９はインタフェースレジスタ群のアドレスデコード回路、２１０はコマンド割込み信号である。以下既出の番号はこれまでの説明で述べてきたものと同様のものである。ただしプログラムメモリ４に格納されているプログラムはこれまでの説明で述べてきたファイルデータの制御、管理に加え、ホストからのアクセス要求を中心としたコマンドへの対応のプログラムが格納されている。ホストはホストバス２０１を通して補助記憶装置にコマンドを出す。これはインタフェース回路２０６内のインタフェースレジスタ群２０７の一つであるコマンドレジスタ２０８にコマンドコードを書き込むことによって行なわれる。インタフェースレジスタ群２０７は、ハードディスクドライブがインタフェースレジスタとして持つレジスタを全て備え、またレジスタの仕様も一致し、ホストからはハードディスクをアクセスするのと何ら変わらないようにしている。なおこのレジスタをフロッピディスクドライブや光ディスクドライブ等、他の補助記憶装置のインタフェースに合わせることも有効であると考える。あるいは複数の補助記憶装置のインタフェースを同時にサポートし、ホストからは別の補助記憶装置を利用しているようにみえるが、実際には１台のフラッシュファイルシステムでまかなうというのはスペース的に非常に有効である。さてコマンドレジスタ２０８はホストによりコマンドを書き込まれると割込み信号２１０をプロセッサ３に対して発し、これを受けたプロセッサ３は書き込まれたコマンドコードを解釈して、ホストのコマンド要求に応える。なおインタフェースレジスタ群２０７やコマンドは全てハードディスクドライブに対応するものであるが、記憶媒体が異なるものであるため、不必要なものや処理が異なるものもある。例えばフォーマットは磁気ディスク装置には不可欠のものであるが、半導体ディスクドライブでは不必要であるため、特に処理を行なわないようにしたり、単に規則的なデータに書き換えたりといった処理にする。以下、ファイルデータのリードライトに関してはこれまでの実施例で説明したものと同様の動作とする。なお図は第１の実施例を適用しているが、これまで説明したあるいはこの後説明する他の実施例にそのまま適用することも可能である。
【００２７】
図１８はフラッシュファイルシステムを補助記憶装置とするパーソナルコンピュータの一例の構成図である。図中、２２１は本情報機器のＣＰＵ、２２２はコプロセッサ、２２３は本実施例の情報処理システム内部に構築した標準I/Oバス、２２４は標準I/Oバス２２３を構築するバスユニット、２２５は主メモリや拡張メモリなど高速メモリをアクセスするメモリ制御ユニット、２２６は主メモリ、２２７は基本制御プログラムが格納されたＢＩＯＳ ＲＯＭ、２２８はキーボードコントローラでこの先にはキーボードが接続されているものとする。２２９は表示アダプタでこの先には何らかの表示装置が接続されているものとする。２３０は拡張メモリ、２３１はプリンタなどを接続するパラレルポートI/F、２３２はマウスやＲＳ２３２ＣなどのシリアルポートI/F、２３３はフロッピディスクドライブ、２３４は標準I/Oバス２２３より標準のＨＤＤI/Fに変換するバッファコントローラ、２３５はフラッシュファイルシステムである。このフラッシュファイルシステム２３５の内部は、これまでの実施例で示したものにより構成されており、２３６はファイルアクセスを受け付けてデータの受渡しを行なうI/Fユニットであり、図１７におけるインタフェースレジスタ群２０７及びアドレスデコード２０９にあたる。２３７はフラッシュファイルシステム２３５内部のデータ管理や制御を行なうコントロールユニットであり、図１７におけるプロセッサ３及びプログラムメモリ４、アクセスコントローラ２、ライトバッファ９よりなる。２３８はファイルデータを格納するフラッシュメモリアレイ、２３９はデータ及びメモリ管理のための情報を記憶するインフォメーションテーブルであり、図１７におけるテーブル５、６、７、８を全て含むものである。次に動作を説明する。電源が投入されて動作を開始するとまずＣＰＵ２２１はＢＩＯＳ ＲＯＭ２２７を標準I/Oバス２２３を通してアクセスし、初期診断、初期設定を行なう。そして補助記憶装置からシステムプログラムを主メモリ２２６にロードする。本実施例では補助記憶装置としてフラッシュファイルシステム２３５を採用している。ただしＣＰＵ２２１は標準I/Oバス２２３を通してＨＤＤコントローラ２３４にＨＤＤをアクセスするものとして動作する。従ってフラッシュファイルシステム２３５は内部のI/Fユニット２３６によってＨＤＤ完全互換のI/F機能をサポートしている。システムプログラムのロードが終了すると、ユーザの処理要求に従い、処理を進めていく。なおユーザは標準I/Oバス２２３上のＫＢＤＣ２２８や表示アダプタ２２９により処理の入出力を行ないながら作業を進める。そして必要に応じてパラレルI/F２３１、シリアルI/F２３２に接続された入出力装置を活用する。また本体上の主メモリ２２６では主記憶容量が不足する場合は、拡張ＲＡＭ２３０により主記憶を補う。ユーザがファイルを読み書きしたい場合にはユーザはＨＤＤが補助記憶装置であるものとして補助記憶装置へのアクセスを要求し、フラッシュファイルシステム２３５はそれを受けてファイルデータのアクセスを行なう。本実施例によれば標準的なパーソナルコンピュータの標準的なＩ／Ｏバス上に、現在最も一般的な補助記憶装置であるＨＤＤを搭載しているかのように、フラッシ���ファイルシステムを採用している。従って新しい記憶媒体としてフラッシュファイルシステムを採用してもＢＩＯＳ ＲＯＭやシステムプログラムをＨＤＤを搭載していたものに対し変更を加えなくてもそのまま使用できる。なお上記実施例は標準的なパーソナルコンピュータを例にしており、主メモリや拡張メモリが標準Ｉ／Ｏバス上にあったり、コプロセッサやパラレルI/F、シリアルI/Fが存在しない構成の情報機器も考えられこれらに関しても本発明の適用が可能である。
【００２８】
次にフラッシュメモリの不良発生に対処する実施例について図１９を用いて説明する。フラッシュメモリは原理的に書き換え回数に限界があることはすでに述べているが、書き換えによる劣化が進むとデータ消去書き込みの消費時間が長くなり、またデータの保持信頼性に問題が出てくる。そこでメモリの劣化により使用すべきでない状態に達した、と判断されたときにはその記憶領域あるいはメモリチップの使用を中止すべきである。そしてそのような領域が増え、フラッシュファイルシステム全体の寿命が近づいたと判断されたときには、そのフラッシュファイルシステムの使用を中止すべきである。フラッシュメモリの劣化を検出する方法としては、消去を繰返し行っても規定回数以内で消去が完全にならない、あるいは消去時間がある規定時間以上かかってしまう、という消去不良から判断する方法。そして書き込みを繰返し行っても規定回数以内で書き込みが完全にならない、という書き込み不良から判断する方法。また消去回数を管理して規定回数以上に達してしまったことから判断する方法が考えられる。そして劣化して使用不能に陥った記憶容量がある規定値に達したところでフラッシュファイルシステムとしての寿命と判断する。図１９はそれをユーザに警告するための手段を実現する一実施例であり、図中２４０はフラッシュファイルシステム２３５内のコントローラが自システムの使用限界を認識し、これをホストシステムに伝えるための割込み信号であり、２４１は使用限界に達したことを示すエラー報告レジスタである。ホストはＨＤＤバッファ２３４を通して割込み信号２４０を受けるとフラッシュファイルシステム内のレジスタ２４１をアクセスして状況を把握し、適宜ユーザに報告する。図２０はこの動作を実現するソフトウェアをフローチャートで示したものであり、（１）はフラッシュファイルシステム内でのチェックルーチンのフローチャート、（２）はホストシステムでのユーザへの警告プログラムのフローチャートである。図の説明を兼ねながら動作説明を行なう。フラッシュファイルシステムのコントローラは使用限界に達したと見られる記憶領域が検出できたらこのルーチンにジャンプしてくる。そして使用限界の記憶領域の容量を加算していく（ａ）。そしてある限界値に達した場合（ｂ）には、自システム内のエラー報告レジスタにエラー内容として使用限界に達したことを示す値を書き込む（ｃ）。そしてホストへの割込み信号を出力して（ｄ）、本ルーチンを終了する。なお（ａ）の容量の加算値はフラッシュメモリ内あるいは他のメモリに保持しておく必要がある。また（ｂ）の残り容量の限界値はシステムに応じて適宜設定するものとする。さて（ｄ）による割込み信号を受けたホストシステムでは、区切りの良いところで処理を中断し（２）のフローチャートで示したルーチンに入り、まずフラッシュファイルシステム内のエラー報告レジスタをアクセスし割込みを受けた理由を判別し（ｅ）、これがフラッシュファイルシステムの使用限界に達したための使用中止要求であったら（ｆ）、それ以後のフラッシュファイルシステムのアクセスを禁止し（ｇ）、ユーザに警告する（ｈ）。警告の方法としては、情報機器の表示装置を利用したり警告インジケータを取り付けるなど視覚的に訴える方法と、警告音を発するなどの聴覚的に訴える方法が考えられる。また、書き込みアクセスだけを禁止しリードアクセスは許可するようにするとファイルデータのバックアップがとれるようになる。本実施例によればフラッシュファイルシステムが使用限界に達したらすぐにユーザに知らせることができ、データの信頼性を増すことができる。別の実施例として図１８における割込み信号２４０は設けずに、ホストシステムがアクセスの度にエラー報告レジスタを読み出すこととして、図２０（２）のルーチンを実行する。本実施例によればホストシステムのハードウェア構成を従来と全く変えずに、ＨＤＤをそのまま置き換えて、使用限界報告ができる。また別の実施例としては、定期的に保守プログラムをホストシステムで実行し、その際にエラー報告レジスタ２４１を読み出して、使用限界に達していないかをチェックすることにより、使用限界を認識する。本実施例によればホストシステムのＢＩＯＳプログラムやシステムプログラムに全く変更を加える必要がない。
【００２９】
次に電源遮断時の処理に対応する実施例を示す。本発明のフラッシュファイルシステムは基本的に補助記憶装置であり、ホストシステムより電源を供給される構成が一般的である。しかし動作的にはホストとは非同期であるため、ホストが非動作中にもフラッシュファイルシステムが動作している場合もある。しかしホストを扱うユーザがそれを認識していないとホストの電源を落してしまい、動作中のフラッシュファイルシステムへの電源供給が停止してしまう、ということが起こり得る。そこでこれに対応する発明の実施例を図２１に示す。図２１はホストからの電源供給が停止した後も、フラッシュファイルシステムが動作を続けられるようバッテリでバックアップ電源を供給する構成のシステムの図であり、図中、２５１はホストとなるパーソナルコンピュータ等の情報機器、２５２はフラッシュファイルシステム、２５３はバックアップ用のバッテリ、２５４はホスト２５１の電源が遮断されたときに、バッテリ２５３の電力がホスト２５１に逆流しないための逆流遮断回路である。２５５はホスト２５１からの電源供給が絶たれたことを検出する検出回路、２５６はその出力である検出信号、２５７はバッテリ２５３のフラッシュファイルシステム２５２への電力供給を遮断する遮断回路、２５８はフラッシュファイルシステム２５２が処理途中であった処理を終了し、電源供給を必要としなくなったため遮断回路２５７を動作させる遮断信号である。ホスト２５１から電源が供給されている間は、ホスト２５１の電源によりフラッシュファイルシステムが駆動される。これはバッテリ２５３の出力電圧とホスト２５１の供給電圧をうまく調整することによりバッテリ２５３にトリクル充電を施すことができる。ただしバッテリ２５３が２次電池でない場合には流入防止のダイオードなどを付加する必要がある。そしてホスト２５１の電源が落されてフラッシュファイルシステム２５２への電力供給が停止されると、バッテリ２５３から電源が供給されてフラッシュファイルは動作を続けることができる。そして電源遮断検出回路２５５が電源遮断を検出すると、検出信号２５６によりフラッシュファイルシステムがこれを認識し、処理中の作業を完了させ、その後電源遮断処理を行う。電源遮断処理では最後に遮断信号２５８によりバッテリ遮断回路２５７を遮断させて、フラッシュファイルシステムの動作を終了する。なお逆流遮断回路２５４は逆流防止用ダイオードを用いる方法が挙げられる。本実施例によればホスト２５１はフラッシュファイルシステムと信号上は完全に分離しているため、ホストのアクセス要求によるデータのやりとりだけとなり、ホストの動作停止はホスト内で閉じることができる。つまりホストはフラッシュファイルシステムを接続したことによるハード上の変更の必要がない。
【００３０】
図２２はホストの電源遮断に対応する別の実施例である。ただし図２２の例では実際にはホストの電源による供給を続ける方式である。図中、２５８はホスト２５１からフラッシュファイルシステム２５２に供給される電源ライン、２５９はフラッシュファイルシステム２５２が作業中であり、電源供給の必要があることを示す電源ビジー信号である。ホスト２５１の電源回路は電源スイッチがＯＦＦになっても電源ビジー信号２５９がアクティブの間は電源供給を停止せずに、フラッシュファイルシステムの処理が全て終了して電源ビジー信号２５９がインアクティブになったら電源供給を停止する。つまりユーザにとってはホストの情報機器の電源スイッチを切り、電源を遮断してしまったものとした時でも実動作上は遮断されずに、フラッシュファイルシステム２５２の作業終了を待機する。本実施例によればフラッシュファイルシステムの動作終了をホストが認識して電源を制御することにより、バックアップ電源などが必要なくフラッシュファイルシステムの電源回路の構成がシンプルになる効果がある。
【実施例５】
【００３１】
次に本発明の第５の実施例を述べる。図２５は本発明を実現するためのハードウエア構成であり、図２６は本発明のフラッシュメモリ内の記憶構成を示した図であり、図２７はデータ書き込みのためのフローチャートである。便宜上図２６より説明する。図中、３１１は５１２バイト（４キロビット）を単位とする記憶領域で、実際にデータを書き込むセクタであるため物理セクタと呼ぶ。これに対し記憶データの供給側は、論理セクタと呼ぶ仮想のセクタによりデータを管理することとする。全ての物理セクタ３１１および論理セクタにはそれぞれ相関性の全くない番号を付す。３１２はデータを一括消去する単位となる消去ブロックであり、その容量はメモリにより異なる。例えば消去ブロック単位が１６キロバイトであれば３２物理セクタが１ブロックとなる。３１３はメモリチップであり、消去単位１６キロバイトで４メガビットのチップであれば３２ブロック１０２４セクタに区分けされる。チップ単位でしか消去できないものは１チップ１ブロック、物理セクタごとに消去できるものはブロック数と物理セクタ数は同一である。フラッシュメモリは消去が行われたブロックに対しては、そのブロック内においてランダムライトアクセスが可能である。ただし一回書き込んだら次の消去を行わなければ書き込みはできない。従って複数セクタを１ブロックとするメモリにおいては、各セクタが全て書き込まれてから消去すべきである。以下の説明においてはフラッシュメモリは４メガビットのチップで、消去ブロックが１６キロバイト（１２８キロビット）のものを使用することとする。図２６はまさにその構成のメモリを図示している。図２５はこのメモリチップ３１３を用いた場合のハードウエア構成で、図中３０１は書き込みデータの記憶領域であるフラッシュメモリ、３０２はフラッシュメモリ３０１をアクセスするアクセスコントローラ、３０３は記憶データやステータスデータを操作するプロセッサ、３０４は記憶してある論理セクタ番号のデータがフラッシュメモリ３０１のどこの物理セクタに記憶されているかを参照するために物理セクタ番号が記録されている論理セクタテーブル、３０５はフラッシュメモリ３０１の物理セクタ３１１が記憶している論理セクタ番号を参照するための物理セクタテーブル、３０６は各ブロックのステータスを記憶するブロックテーブルで、そのブロックが使用可能であるか、あるいはそのブロックには何セクタ書き込まれているか、などが記録される。３０７はフラッシュメモリは書き込み速度が読みだしに比べ非常に遅いため、書き込みデータを一時的に保持してデータの供給側に速くバス権を復帰させるためのライトバッファである。３０８は後述の整理ルーチンにおいて整理データを一時的に保持する整理データバッファである。図２７は図２５の構成において書き込みを行うための図２５のプロセッサ３０３の動作を説明するフローチャートである。以下このフローチャートに従って動作を説明する。書き込むデータを記憶する際は１セクタ＝５１２バイト単位により行う。すなわち５１２バイトに満たないデータも５１２バイトの記憶領域に格納される。その１セクタ単位のデータに番号を付し、これを論理セクタ番号とする。データの供給側はこの論理セクタ番号だけを意識すればよいものとする。今、データ供給側が１セクタの書き込みを要求したとすると、このデータに、ある論理セクタ番号を付し、以後このデータは書替えが起こっても先の論理セクタ番号で扱われる。一方データの記憶側ではこのデータの格納場所を決定する。格納場所は書き込みポインタに指し示されたブロックの未書き込みの最初のセクタである。つまり一つ前の書き込みをした物理セクタの次のセクタである。例えば図２６において一つ前の書き込みを第１ブロックの第３物理セクタに書き込んだ場合、次の書き込みは第１ブロックの第４物理セクタに書き込みを行うものとする。この際のデータの格納場所の判断をプロセッサ３０３がブロックテーブルをアクセスして行う。この作業がフロチャート内の(ａ)である。（ｂ）は書き込みに問題ない場合はそのブロックの書き込みセクタ数をインクリメントしてデータを書き込む。実際のライトアクセス制御はアクセスコントローラ３０２により行う。そして書き込み後は物理セクタテーブルおよび論理セクタテーブルに書き込んだセクタ番号をそれぞれ記録する。また以前に書き込んでいる論理セクタの再書き込みであれば、物理セクタテーブルに以前書き込んだ論理セクタ番号を消去する。これはその物理セクタのデータは無効であることを示すための動作である。（ｃ）の整理ルーチンとは書き込みポインタの指し示すブロックがすでに全セクタ書き込まれており、書き込み不可能である時の動作ルーチンである。これは後述の図２８のフローチャートにより説明する。（ｄ）はブロックがこわれていたり、整理ルーチンに入った場合には書き込みが不可能であるため、そのブロックへの書き込みを中止し、次のブロックへの書き込みを行うための動作である。一方リードアクセスの際は必要なデータが格納されている論理セクタ番号で論理セクタテーブルを参照し、物理セクタ番号を割り出して必要なデータを読み出す。次に整理ルーチンについて説明する。整理ルーチンが必要となる理由は、これまで説明した書き込み方法では同じファイルのデータの書き替えにおいて別の物理セクタへ書き込みを行う。すなわち書き替える前に書き込んだデータは不要となるがメモリ上には記憶されたままであり消去すべきデータである。しかし不要となるたびに消去していたのでは消去回数が有限であるフラッシュメモリにとっては寿命を短くすることになる。そこで整理ルーチンによって消去する。整理ルーチンはブロックが書き込みデータで一杯になったときに行う。整理の具体的な方法は、図２８のフローチャートに従って行う。以下フローチャート内の各部の説明をする。（ａ）整理するブロック内の全データを一度図２５の整理データバッファ３０８に退避する。（ｂ）退避し消去可能になったところでそのブロックを消去する。（ｃ）整理データバッファにある各セクタの物理セクタテーブルを参照して、データが必要か不必要かを判断する。（ｄ）必要なデータであれば再びそのブロックに書き込む。以上が本発明の一実施例の動作説明である。本実施例によればフラッシュメモリの各消去ブロックの消去が一部に集中せずに順番に行われるため、寿命が延びるという効果が期待できる。また書き込みにおいてフラッシュメモリの書き込み速度���遅いという欠点を補う効果がある。また不必要なデータを効率的に消去するため、半導体ディスクとして常に記憶容量を保っていられる効果がある。
【００３２】
次に他の実施例を説明する。図２９はフラッシュメモリの劣化を判定する装置の１構成例であり、図中４０１はフラッシュメモリセル、４０２は消去制御の開始から終了するまでの時間を測定する消去時間測定タイマ、４０３はフラッシュメモリセル４０１に書き込まれているデータを消去するための制御を行う消去制御回路、４０４はフラッシュメモリセル４０１の劣化度を記憶する劣化度管理テーブル、４０５はこれらを統括制御するコントローラ、４０６は劣化管理コントローラ４０５が消去制御回路４０３に消去を開始させる際に消去時間測定タイマ４０２を同時に起動するための起動信号、４０７は消去制御回路４０３が消去処理の終了を消去時間測定タイマ４０２に知らせる終了信号、４０８は消去時間測定タイマが測定した測定データである。図３０は図２９のコントローラ４０５の動作を説明するフローチャートであり、フラッシュメモリの劣化の判定をこのフローチャートに従って行う。次に動作を図２９、図３０を用いて説明する。まずシステム全体の制御からあるメモリセル４０１に消去の動作が必要になったとき、コントローラ４０５が消去要求を受ける（図３０ａ）。するとコントローラ４０５は消去制御回路４０３に消去箇所と消去動作の開始を指示する（図３０ｂ）。これを受けた消去制御回路４０３は該当するメモリセル４０１の消去動作を開始する（図３０ｃ）。これと同時にコントローラ４０５は消去時間測定タイマ４０２を起動する（図３０ｄ）。コントローラ４０５は消去終了まで待機し、メモリ制御回路４０３がメモリセル４０１の消去を完了すると、コントローラ４０５にそれを伝える（図３０ｅ）。コントローラ４０５は消去時間測定タイマ４０２を参照して消去に費やした時間を認識し、劣化の度合いを判別してそれに応じた番号をその記憶領域に付す。例えば劣化の度合いを８段階に分け、未使用状態と同様な消去時間であれば"０"、劣化が進んで使用不可能な状態を"７"としその間の段階を"１"から"６"の番号をあてる。そしてその記憶領域に付した番号を劣化度管理テーブル４０４に格納する（図３０ｆ）。劣化度を８段階にすることにより、一つの記憶領域を１バイトに割り当てられ、管理がし易くなる。各記憶領域の扱いは、この劣化度管理テーブルをもとにする。劣化度が一つ進んでしまった領域はその都度劣化の小さい領域のデータを転送して劣化の進行をとめ、全記憶領域の劣化の平均化を図る。また劣化が最終段階に達した領域は使用を禁止する。これは記憶システム全体を統括して制御するコントローラが行う処理である。この記憶システムのコントローラの動作フローを図３１に示した。同図を追って順に説明すると、ホストシステムから記憶システムにライトアクセス要求があり、データの書き込みを行う際に記憶システムのコントローラが消去動作を必要とすると判断したら（図３１ａ）、図２９のコントローラ４０５に消去と劣化管理の要求を出す（図３１ｂ）。消去動作が終了すると、消去を行った記憶領域の劣化度を図２９の劣化度管理テーブル４０４により参照し（図３１ｂ）、劣化が進んでいた場合は劣化が最も進んでおらず、かつ入替えをまだ行っていない領域を探し出して（図３１ｃ）、データを転送して入替えを行う（図３１ｄ）。この���化が最も進んでおらず、かつ入替えをまだ行っていないという判断は、第１の実施例で説明した入換えフラグを利用した方が効率的である。これは一度上記入替え処理を行った領域は、格納されているデータが劣化の進まないデータ（書換えが起きにくいデータ）ではないため、劣化平均化の入換えに使用すべきではなく、入換えフラグを立てて明示する。なお本実施例では記憶システム全体の制御と劣化判定の装置における制御を分け、コントローラを別のものにしているが、コントローラ４０５を記憶システムのコントローラと共用しても良い。また消去時間測定タイマ４０２もハードウェアとして構成されているが、コントローラによるソフト制御による消去時間測定でもよい。記憶システムの部品点数削減を目指すならこれらはなすべきことである。本実施例によれば劣化管理のためのテーブルをこれまでの実施例で採用していた消去管理テーブルに変えることができ、使用する記憶領域を飛躍的に節約することができる。しかもメモリの劣化という判定においては消去回数よりも消去時間の方がより直接的な判定材料となるため、より正確な劣化度の把握と、劣化の平均化が図れる効果がある。
【００３３】
次に図２４の実施例を利用した消去回数管理の別の実施例を図３２により説明する。これまでの実施例における消去回数管理の方法は、消去が行われると１回ずつカウントアップして消去回数を細かく把握していたが、本実施例では消去回数管理テーブルの記憶容量削減のため下位のビットを切り捨ててしまう。図２４の実施例では通常の使用状態においては消去回数をＳＲＡＭやＤＲＡＭなどの揮発性メモリに最下位ビットまで格納し、電源遮断時にフラッシュメモリに転送することとしていたが、この転送時に下位のビットから１ビット以上を切り捨てる（図３２ａ）。あるいは桁上げして転送する（図３２ｂ）。なお捨ててしまう下位のビットは、消去回数の把握による劣化の認識が確度を失わない程度として、フラッシュメモリの消去回数の制限値により最適値を考えるべきであり、ビット切捨てにより切り捨てられてしまう消去回数の最大値がフラッシュメモリの消去回数の保証値の１％を越えない程度とする。つまり消去回数の保証値が１万回であれば、１００回を越えない６ビット（最大値６３）を切捨ての限度とする。本実施例によれば消去回数の把握が正確でなくなるが、誤差はフラッシュメモリの消去回数の保証値の１％以下としたため、もともと保証値の確度が一桁程度の幅があることから、消去が起きる傾向が強いデータか否かを判断するものであると考えれば、本質的な問題とはならない。これにより消去回数の管理に使用するフラッシュメモリの容量を削減することができる効果は大きい。
【００３４】
次にテーブル領域を削減するための他の実施例を説明する。図３３はこれまでの実施例で説明している物理セクタテーブル及び論理セクタテーブルを省略した記憶システムの構成図である。ただしこれらの代わりになるアドレス変換テーブル４１１を備える。他の既出の番号はアドレス変換テーブル４１１は劣化度平均化のためのデータ入替えを行っていない記憶領域のアドレス入力に対しては変換を行わず、データ入替えを行っている記憶領域のアドレス入力に対しては、入れ替えた先のアドレスを出力するテーブルである。従って物理セクタテーブルや論理セクタテーブルを必要とせず、基本的にはシステムからアクセス要求のあったアドレスをそのままメモリ上の物理的なアドレスに対応してアクセスし、その領域の劣化が進んで劣化度の平均化のためのデータの入替えを行ったら、アドレス変換の対象となる。本実施例は第１に実施例のような、ファイルデータの記憶単位（セクタ）と消去単位が一致している場合にだけ適用できる。そしてアドレス変換テーブルの容量は変換可能にできる領域の容量に依存する。すなわちアドレス変換テーブルの容量を小さくすれば変換を行える記憶容量が小さくなり、大きな領域を確保すれば多くの領域のアドレスを変換できるようになる。これはシステムの寿命に直接関与する要因である。なお図３３は第１の実施例に改良を加えた形となっているが、消去管理テーブル７の代わりに図２９により説明した劣化度管理テーブルを備えた実施例にも適用できる。本実施例によれば、データ管理が簡素化され、またテーブル領域を大きく削減できる効果がある。
【００３５】
次に動作中を示すインジケータを設ける実施例を説明する。図３４は本実施例を示した内部構成例を示した図であり、図１７をもとにしており既出の番号は図１７と同様のものである。その他図中４２１はライトバッファ９からフラッシュメモリ１へのデータの転送中を示すプロセッサ３の出力ポート信号、４２２は出力ポート信号４２１により転送中であることを発光により示すインジケータである。インジケータとしては発光ダイオードが適当である。図３５は本実施例の外観図であり、（１）はカード形状の全体図、（２）は使用中の例を示した図である。図中４２３は本発明の補助記憶装置であるＩＣカード、４２４はコネクタ、４２５は発光ダイオード、４２６はホストパソコンである。図３４において標準ＩＯバス２０１によりホストのパソコンが補助記憶装置２０５に書き込みアクセス処理の要求をして来ると、プロセッサ３はライトデータをライトバッファ９に格納するよう処理する。そしてそれが完了すると標準バス２０１に書き込み完了を示す信号を出力する。その後、プロセッサ３はライトバッファ９に格納されたデータをフラッシュメモリ１に転送、格納する。この処理を行っている間プロセッサ３は出力ポート信号４２１をアクティブにしてインジケータ４２２を発光させる。そしてライトバッファ９からフラッシュメモリ１への転送が終了したらプロセッサ３は出力ポート４２１をインアクティブにしてインジケータ４２５の発光を停止する。図３５（１）はＩＣカード形状で適用した例で、コネクタとは反対側の側面にインジケータ４２５を取付け、パソコン本体に取り付けた状態でインジケータ４２５の点灯が確認できるようにしている。（２）はノート型パソコンに実際に挿入した様子を示しており、ユーザはインジケータ４２５の点灯、非点灯を確認しながら作業ができる。ただしユーザが点灯を確認しなければならないのは基本的に電源を遮断するときだけである。本実施例によれば、回路構成が比較的単純であり、またインジケータの視認性が良くユーザの誤操作が防げる効果がある。
【図面の簡単な説明】
【００３６】
【図１】本発明における第１の実施例のハードウエア構成図。
【図２】本発明における第１の実施例のフラッシュメモリチップの記憶構成図。
【図３】本発明における第１の実施例の動作を示すメインルーチンのフローチャート
【図４】本発明における第１の実施例の消去管理動作を示す消去管理ルーチンのフローチャート
【図５】本発明における第２の実施例のハードウエア構成図。
【図６】本発明における第２の実施例のフラッシュメモリチップの記憶構成図。
【図７】本発明における第２の実施例の動作を示すメインルーチンのフローチャート
【図８】本発明における第２の実施例のセクタ整理動作を示す整理ルーチンのフローチャート
【図９】本発明における第２の実施例の消去管理動作を示す消去管理ルーチンのフローチャート
【図１０】本発明における第３の実施例のハードウエア構成図。
【図１１】本発明における第３の実施例のフラッシュメモリチップの記憶構成図。
【図１２】本発明における第３の実施例の消去管理動作を示す消去管理ルーチンのフローチャート
【図１３】本発明における第４の発明のハードウエア構成図
【図１４】消去ブロックごとにテーブルを持たせたフラッシュメモリチップの構成図
【図１５】データ領域とは別に情報を格納する領域を持たせたフラッシュメモリチップの構成図
【図１６】データ領域とは別にバッファ領域をもたせたフラッシュメモリチップの構成図
【図１７】本発明における第４の実施例のフラッシュファイルシステムのインターフェース部分のハードウエア構成図。
【図１８】本発明における第４の実施例のフラッシュファイルシステムを補助記憶装置とする情報機器の構成図。
【図１９】本発明における使用限界を報告する実施例の構成図
【図２０】本発明における使用限界を報告する実施例のフローチャート
【図２１】本発明におけるバックアップ電池を備えた実施例の構成図
【図２２】本発明における電源制御信号を備えた実施例の構成図
【図２３】データ領域とは別に情報格納領域をもたせたフラッシュメモリのデータ格納の実施例
【図２４】図１３に対しＥＥＰＲＯＭを省略した実施例の構成図
【図２５】本発明における第５の実施例のハードウエア構成図
【図２６】本発明における第５の実施例のフラッシュメモリチップの記憶構成図
【図２７】本発明における第５の実施例の動作を示すメインルーチンのフローチャート
【図２８】本発明における第５の実施例のセクタ整理動作を示す整理ルーチンのフローチャート
【図２９】時間による劣化の管理によりシステムの長寿命化を図る実施例の構成図
【図３０】図２９の実施例における劣化管理コントローラの動作フロー
【図３１】図２９の実施例における記憶システムコントローラの動作フロー
【図３２】消去管理テーブルの記憶容量を節減する実施例の説明図
【図３３】セクタの管理テーブルの記憶容量を節減するためにアドレス変換テーブルを採用した実施例の構成図
【図３４】補助記憶装置の動作中を示すインジケータを設けた実施例の構成図
【図３５】補助記憶装置の動作中を示すインジケータを設けた実施例の外観図
【符号の説明】
【００３７】
１  フラッシュメモリ
３  プロセッサ
５  論理セクタテーブル
６  物理セクタテーブル
７  消去回数管理テーブル
８  ステータステーブル
９  ライトバッファ
１３  消去ブロック
４９  書き込みセクタ数テーブル
５１  整理バッファ
５２  物理セクタ
１１１  ワンチップマイコン
１１２  ＲＡＭコア
１１３  ＲＯＭコア
１１４  ＥＥＰＲＯＭ
１１５  ＤＲＡＭまたはＳＲＡＭ
１１６  テーブル領域
１３２  テーブル格納領域
１４２  バッファ領域
１４３  アドレスカウンタ
２０７  Ｉ／Ｆレジスタ群
２２７  ＢＩＯＳＲＯＭ
２３６  Ｉ／Ｆユニット
２４１  エラー報告レジスタ
２５３  バックアップバッテリ
２５９  電源ビジー信号
４０２  消去時間測定タイマ
４０４  劣化度管理テーブル
４１１  アドレス変換テーブル
４２１  出力ポート信号
４２２  インジケータ
４２５  インジケータ（外観）
【図１】
2008091027.tif 000003
【図２】
2008091027.tif 000004
【図３】
2008091027.tif 000005
【図４】
2008091027.tif 000006
【図５】
2008091027.tif 000007
【図６】
2008091027.tif 000008
【図７】
2008091027.tif 000009
【図８】
2008091027.tif 000010
【図９】
2008091027.tif 000011
【図１０】
2008091027.tif 000012
【図１１】
2008091027.tif 000013
【図１２】
2008091027.tif 000014
【図１３】
2008091027.tif 000015
【図１４】
2008091027.tif 000016
【図１５】
2008091027.tif 000017
【図１６】
2008091027.tif 000018
【図１７】
2008091027.tif 000019
【図１８】
2008091027.tif 000020
【図１９】
2008091027.tif 000021
【図２０】
2008091027.tif 000022
【図２１】
2008091027.tif 000023
【図２２】
2008091027.tif 000024
【図２３】
2008091027.tif 000025
【図２４】
2008091027.tif 000026
【図２５】
2008091027.tif 000027
【図２６】
2008091027.tif 000028
【図２７】
2008091027.tif 000029
【図２８】
2008091027.tif 000030
【図２９】
2008091027.tif 000031
【図３０】
2008091027.tif 000032
【図３１】
2008091027.tif 000033
【図３２】
2008091027.tif 000034
【図３３】
2008091027.tif 000035
【図３４】
2008091027.tif 000036
【図３５】
2008091027.tif 000037
【手続補正書】
【提出日】平成20年1月22日(2008.1.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理装置と主メモリとを含む機器と、記憶装置とを備えた情報機器において、
前記処理装置と主メモリとを含む機器は、前記記憶装置へアクセスして、前記記憶装置にデータの読み書きを行い、
前記記憶装置は、電気的に消去可能な単位である消去ブロックを複数含むフラッシュメモリと、前記処理装置と主メモリとを含む機器からのアクセス要求に応答して、前記フラッシュメモリをアクセスするための制御部とを備え、
前記フラッシュメモリの各消去ブロックは、複数のセクタを含み、
前記制御部は、前記処理装置と主メモリとを含む機器からの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、消去ブロック単位のポインタをインクリメントすることによって未書き込みのセクタを有する消去ブロックをさがし出し、前記消去ブロック内の前記未書き込みのセクタに、前記処理装置と主メモリとを含む機器からの書き込み要求に伴うデータを書き込むことを特徴とする情報機器。
【請求項２】
前記処理装置と主メモリとを含む機器は、前記記憶装置へ電源を供給し、
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源オフをユーザから受けても、前記記憶装置が動作を終了するのを待ってから前記記憶装置への電源の供給を停止することを特徴とする請求項１に記載の情報機器。
【請求項３】
前記処理装置と主メモリとを含む機器は、前記記憶装置へ電源を供給し、
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源スイッチがオフになっても、前記記憶装置がビジーである場合に、前記記憶装置への電源の供給をつづけることを特徴とする請求項１に記載の情報機器。
【請求項４】
前記記憶装置は、前記記憶装置が動作している場合に、前記処理装置と主メモリとを含む機器へビジー信号を出力し、
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源スイッチがオフになっても、前記ビジー信号がアクティブである場合に、前記記憶装置への電源の供給をつづけることを特徴とする請求項３に記載の情報機器。
【請求項５】
前記処理装置と主メモリとを含む機器は、前記処理装置と主メモリとを含む機器の電源スイッチがオフで、前記記憶装置からの前記ビジー信号がアクティブからインアクティブになった場合に、前記記憶装置への電源の供給を停止することを特徴とする請求項４に記載の情報機器。
【請求項６】
前記処理装置と主メモリとを含む機器は、BIOS  ROMを備え、
前記処理装置は、前記処理装置と主メモリとを含む機器の電源投入後に、前記BIOS  ROMをアクセスして初期診断、初期設定を行い、その後、システムプログラムを前記記憶装置から前記主メモリへロードすることを特徴とする請求項３〜５の何れかに記載の情報機器。
【請求項７】
前記記憶装置は、ハードディスクドライブの代わりに、前記フラッシュメモリを備え、
前記処理装置と主メモリとを含む機器は、前記ハードディスクドライブに対応するコマンドを前記記憶装置へ出力して前記記憶装置をアクセスし、
前記記憶装置は、前記処理装置と主メモリとを含む機器からの前記ハードディスクドライブに対応するコマンドに従って、前記記憶装置に記憶されたデータを前記処理装置と主メモリとを含む機器へ出力することを特徴とする請求項３〜６の何れかに記載の情報機器。
【請求項８】
前記制御部は、前記処理装置と主メモリとを含む機器からの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、書き換えが局所に集中す
るのを防ぐために、消去ブロック単位のポインタをインクリメントすることによって未書き込みのセクタを有する消去ブロックをさがし出し、前記消去ブロック内の前記未書き込みのセクタに、前記処理装置と主メモリとを含む機器からの書き込み要求に伴うデータを書き込み、前記論理セクタに対応する古いセクタを消去のために無効にすることを特徴とする請求項１〜７の何れかに記載の情報機器。
【請求項９】
前記制御部は、前記消去ブロック内の全てのセクタにデータが書き込まれている場合に、前記消去ブロック内に消去可能なセクタがあるか否かをチェックし、前記消去ブロック内に消去可能なセクタがある場合に、前記消去ブロック内のデータをバッファに退避した後に、前記消去ブロック内のデータを消去し、前記消去ブロック内のデータのうち消去可能でない必要なデータを前記バッファから前記消去ブロックに復帰し、
前記消去可能なセクタは、前記既にデータが書き込まれている論理セクタへの書き換え要求に伴って前記フラッシュメモリ上の他のセクタへ書き換えられたセクタを含むことを特徴とする請求項１〜８の何れかに記載の情報機器。
【請求項１０】
前記制御部は、前記フラッシュメモリ上の消去ブロック毎の消去回数の多い消去ブロックのデータと、前記フラッシュメモリ上の消去ブロック毎の消去回数の少ない消去ブロックのデータとを入れ替えることを特徴とする請求項１〜９の何れかに記載の情報機器。
【請求項１１】
処理装置と主メモリとを含む機器と、記憶装置とを備えた情報機器において、
前記処理装置と主メモリとを含む機器は、前記記憶装置へアクセスして、前記記憶装置にデータの読み書きを行い、
前記記憶装置は、電気的に消去可能な単位である消去ブロックを複数含むフラッシュメモリと、前記処理装置と主メモリとを含む機器からのアクセス要求に応答して、前記フラッシュメモリをアクセスするための制御部とを備え、
前記フラッシュメモリの各消去ブロックは、複数のセクタを含み、
前記制御部は、前記処理装置と主メモリとを含む機器からの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、前記フラッシュメモリ上の消去ブロックについてデータが書き込まれているか否かを示すテーブルを参照して未書き込みのセクタを有する消去ブロックをさがし出し、前記消去ブロック内の前記未書き込みのセクタに、前記処理装置と主メモリとを含む機器からの書き込み要求に伴うデータを書き込むことを特徴とする情報機器。
【請求項１２】
前記制御部は、前記処理装置と主メモリとを含む機器からの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、書き換えが局所に集中す
るのを防ぐために、前記フラッシュメモリ上の消去ブロックについてデータが書き込まれているか否かを示すテーブルを参照して未書き込みのセクタを有する消去ブロックをさがし出し、前記消去ブロック内の前記未書き込みのセクタに、前記処理装置と主メモリとを含む機器からの書き込み要求に伴うデータを書き込み、前記論理セクタに対応する古いセクタを消去のために無効にすることを特徴とする請求項１１に記載の情報機器。