JP3826936B2 - Storage device - Google Patents

Storage device Download PDF

Info

Publication number
JP3826936B2
JP3826936B2 JP2003432025A JP2003432025A JP3826936B2 JP 3826936 B2 JP3826936 B2 JP 3826936B2 JP 2003432025 A JP2003432025 A JP 2003432025A JP 2003432025 A JP2003432025 A JP 2003432025A JP 3826936 B2 JP3826936 B2 JP 3826936B2
Authority
JP
Japan
Prior art keywords
data
sector
written
flash memory
host system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003432025A
Other languages
Japanese (ja)
Other versions
JP2004103043A (en
Inventor
国弘 片山
隆司 常広
健一 柿
武史 和田
毅 古野
隆 戸塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2003432025A priority Critical patent/JP3826936B2/en
Publication of JP2004103043A publication Critical patent/JP2004103043A/en
Application granted granted Critical
Publication of JP3826936B2 publication Critical patent/JP3826936B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

本発明は携帯用の小型情報処理機器の補助記憶装置にかかり、特にフラッシュメモリを用いた半導体ファイル記憶装置及びそれを搭載する情報機器に関する。   The present invention relates to an auxiliary storage device of a portable small information processing device, and more particularly to a semiconductor file storage device using a flash memory and an information device equipped with the semiconductor file storage device.

情報機器の補助記憶装置の従来技術としては磁気記憶装置が最も一般的であるが、磁気記憶装置では書き込むファイルをセクタと呼ぶ記憶単位に分割し、記憶媒体の物理的な位置に対応させて記憶する。すなわちあるファイルの書き換えにおいては基本的に同一位置に書き込みが行われ、書き込みデータが増えるとその分だけ新たなセクタへの書き込みを行う。これに対し別の補助記憶装置として光ディスク装置が挙げられる。現在一般的な光ディスクは、書き込みが一回だけ可能で消去は不可能である。従って一度書き込んだファイルの書き換え時は実際には書き換えを行わず、別の領域に書き込んで以前書き込んだデータは無効にして以後読み出さないようにする。つまり磁気ディスク装置と異なり、書き換えデータと記憶場所には全く関連性を持たせない、という方式で補助記憶装置の機能を果たしている。以上のようなディスクを回転させて大容量のデータを高速にアクセスし、補助記憶装置の機能を果たす記憶装置に対し、半導体メモリを用いて補助記憶装置とする半導体ファイル記憶装置が近年脚光を浴びている。特に電気的に書き換えが可能な不揮発性メモリ(以下EEPROMと記す)を用いたものが今後半導体ファイル記憶装置の主流になると考えられる。それを実現する一つの技術として特許文献1がある。これはEEPROMを用いた記憶装置であり、EEPROMの欠点である書き換え消去回数の制限を保護し、EEPROMを用いて実用的な記憶装置を実現する方式である。その概要を説明すると複数のメモリ素子を用意し、各素子の消去書き換え回数を記録して管理し、EEPROMの書き換え保証回数より小さなある規定回数に達したら用意してあったメモリ素子に切り替えて使用することにより、記憶データの保護を図るものである。   A magnetic storage device is the most common prior art of auxiliary storage devices for information equipment. In a magnetic storage device, a file to be written is divided into storage units called sectors and stored in correspondence with the physical position of the storage medium. To do. That is, in rewriting a certain file, writing is basically performed at the same position, and writing to a new sector is performed as much as writing data increases. On the other hand, an optical disk device can be cited as another auxiliary storage device. Currently, a general optical disc can be written only once and cannot be erased. Therefore, when a file that has been written once is rewritten, it is not actually rewritten, and data written in another area and previously written is invalidated and is not read later. That is, unlike the magnetic disk device, the auxiliary storage device function is achieved by a method in which the rewrite data and the storage location are not related at all. In recent years, semiconductor file storage devices using semiconductor memory as an auxiliary storage device have attracted attention as a storage device that functions as an auxiliary storage device by accessing a large amount of data at high speed by rotating the disk as described above. ing. In particular, it is considered that an electrically rewritable nonvolatile memory (hereinafter referred to as EEPROM) will become the mainstream of semiconductor file storage devices. There is Patent Document 1 as one technique for realizing it. This is a storage device using an EEPROM, which protects the limitation on the number of rewrite / erase operations, which is a drawback of the EEPROM, and realizes a practical storage device using the EEPROM. In brief, a plurality of memory elements are prepared, and the number of erase / rewrite times of each element is recorded and managed. When the specified number of times smaller than the guaranteed number of rewrites of the EEPROM is reached, the memory element is switched to use. By doing so, the stored data is protected.

特開平3−25798号Japanese Patent Laid-Open No. 3-25798

上記従来技術における光ディスク装置の方式ではファイルの書替えがあるたびに記憶領域をつぶしていくことになり、非常に大容量の記憶媒体がないと記憶領域の確保ができない、という点に問題がある。特にファイルの書替えが激しい情報機器の記憶装置とする場合は、実際の記憶容量がそれほど大きくなくても、記憶領域が大きくなってしまう。一方補助記憶装置として最も一般的な磁気ディスク装置の場合は、一度書き込んだファイルを書き替える場合、同じ領域に新しいデータを書き込む。しかしこれをEEPROMに応用すると、記憶しているファイルの一覧となるファイル(一般にはディレクトリファイルと呼ばれる)やファイルの記憶場所を参照するためのファイル(ファイルアロケーションテーブル)等はデータのライトアクセスがあるたびに書替えが起こり、書替えが局所に集中する。これは書込み消去回数に制限のあるEEPROMにおいては寿命を著しく短くすることになる The above-described conventional optical disk apparatus method has a problem in that a storage area is crushed every time a file is rewritten, and a storage area cannot be secured without a very large capacity storage medium. In particular, in the case of a storage device of an information device in which file rewriting is severe, the storage area becomes large even if the actual storage capacity is not so large. On the other hand, in the case of the most common magnetic disk device as an auxiliary storage device, when rewriting a file once written, new data is written in the same area. However, when this is applied to an EEPROM, a file that is a list of stored files (generally called a directory file), a file (file allocation table) for referring to a storage location of the file, etc. has write access to the data. Rewriting occurs every time and rewriting concentrates locally. This significantly shortens the lifetime in an EEPROM with a limited number of write / erase cycles .

その手段としてデータの書き込みは光ディスクと同様に記憶データと記憶場所には関連性は持たせず、データの書き込みがあったらデータを書き加えていくこととし、既に書き込んであるファイルの書き換えが発生した場合は、古いファイルの記憶領域を無効として消去可能領域にする。つまり、ホストシステムからの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、次のデータの書き込みをするセクタを示すポインタをインクリメントすることによってデータが書き込まれていなく書き込み可能なセクタをさがし出し、その書き込み可能なセクタにホストシステムからの書き込み要求に伴うデータを書き込む。また、ホストシステムからの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、フラッシュメモリ上のセクタについてデータが書き込まれているか否かを示すテーブルを参照してデータが書き込まれていなくて書き込み可能なセクタをさがし出し、その書き込み可能なセクタにホストシステムからの書き込み要求に伴うデータを書き込み、ホストシステムからの書き込み要求に伴うデータを書き込んだセクタについてデータが書き込まれていることを示す情報をテーブルに書き込む。

As a means of writing data, there is no relation between the storage data and the storage location as in the optical disc. When data is written, the data is added, and rewriting of the already written file occurs. In this case, the storage area of the old file is made invalid and is made an erasable area. That is, when a write request from the host system is already rewritten request to the logical sector in which data is written, if no data by incrementing the pointer to a sector for the writing of the next data is written A writable sector is searched for, and data according to a write request from the host system is written in the writable sector. In addition, when the write request from the host system is a rewrite request to a logical sector in which data has already been written, the data is referred to by referring to a table indicating whether or not data has been written for the sector on the flash memory. Search for sectors that have not been written and are writable, write data that accompanies a write request from the host system to the writable sector, and write data for sectors that have written data that accompany the write request from the host system. Is written to the table.

本発明によれば消去回数に限りがあるフラッシュメモリを用いた補助記憶装置のデータ管理方式において、特定の論理セクタアドレスの書換えが頻繁に起きても物理的には同一の記憶領域を使用しないためシステムとして寿命が延びる効果がある

According to the present invention, in the data management system of an auxiliary storage device using a flash memory with a limited number of erasures, even if rewriting of a specific logical sector address frequently occurs, the same storage area is not physically used. As a system, it has the effect of extending the service life .

以下に本発明の実施例を述べる。   Examples of the present invention will be described below.

まず第1の実施例を図1、図2、図3及び図4により説明する。図1は第1の実施例を実現するためのハードウエア構成であり、図2は本実施例に用いるフラッシュメモリチップの内部構成を示した図であり、図3は格納データ管理のメインルーチンのフローチャートであり、図4は消去管理ルーチンのフローチャートである。   First, a first embodiment will be described with reference to FIG. 1, FIG. 2, FIG. 3, and FIG. FIG. 1 is a hardware configuration for realizing the first embodiment, FIG. 2 is a diagram showing an internal configuration of a flash memory chip used in this embodiment, and FIG. 3 is a main routine for storing data management. FIG. 4 is a flowchart of an erasure management routine.

最初に図2によりフラッシュメモリの動作について述べる。図中11はメモリチップ全体、12はデータ書き込み単位、13はデータ消去の最小単位で消去ブロックと呼ぶこととする。フラッシュメモリは電気的消去可能なPROMであり、一種のEEPROMであるが、ノーマルなEEPROMがデータの書き込み単位と消去(書換え)単位が同一であるのに対し、フラッシュメモリは書き込み単位より消去単位が極めて大きく、一度書き込んだデータを書き換えるためには他の多くのデータも同時に消去しなければならない。その代りの利点としてノーマルなEEPROMより集積度を高くでき、大容量の記憶装置に適している。図2においてメモリチップ全体11が一つ以上の消去ブロック13に分割されており、書き込み単位12が1ワード(メモリにおけるワードでありメモリ構成に従う)であるのに対し、消去ブロック13はそれより大きい領域となる。フラッシュメモリを補助記憶装置として用いる際には、磁気ディスク装置の仕様に合わせ、512バイトを消去単位とすると使いやすくなる。   First, the operation of the flash memory will be described with reference to FIG. In the figure, 11 is the entire memory chip, 12 is a data write unit, 13 is the minimum unit for data erasure, and is called an erase block. The flash memory is an electrically erasable PROM, which is a kind of EEPROM, but the normal EEPROM has the same data writing unit and erasing (rewriting) unit, whereas the flash memory has an erasing unit more than the writing unit. It is extremely large, and many other data must be erased at the same time in order to rewrite the data once written. As an alternative advantage, the degree of integration can be higher than that of a normal EEPROM, which is suitable for a large-capacity storage device. In FIG. 2, the entire memory chip 11 is divided into one or more erase blocks 13, and the write unit 12 is 1 word (a word in the memory and follows the memory configuration), whereas the erase block 13 is larger than that. It becomes an area. When a flash memory is used as an auxiliary storage device, it becomes easier to use 512 bytes as an erasing unit according to the specifications of the magnetic disk device.

次にこのメモリを用いた記憶装置の第1の実施例のシステム構成とその動作を図1及び図3、図4を用いて説明する。なお以下の説明ではファイルデータの記憶単位をセクタと呼ぶこととし、本実施例では1セクタが1消去ブロックと一致するものとする。図中、1はファイルデータの記憶をするフラッシュメモリチップ群、2はフラッシュメモリ1のアクセス信号を生成するアクセスコントローラ、3は記憶データやステータスデータを操作してフラッシュメモリによる外部記憶システムを構築するマイクロプロセッサ、4はプロセッサ3を動作させる制御プログラムを格納したプログラムメモリ、5はある論理アドレスで示されるセクタ(論理セクタ)のデータがフラッシュメモリ1上のどこにマッピングされているかを参照するための論理セクタテーブル、6はフラッシュメモリ1上の物理的なアドレスで示される物理セクタにマッピングされたファイルデータの論理セクタ番号を参照するための物理セクタテーブル、7は各物理セクタの消去回数の累計を記録する消去回数管理テーブル、8は各物理セクタのステータスを参照するステータステーブル、9はデータの書き込みを高速化するために書き込みデータを一時的に保存するライトバッファである。次に動作を説明する。本システムに対しデータのアクセス要求をするシステム(ホストシステム)よりデータのリードアクセス要求があると、プロセッサ3は論理セクタテーブル5を参照して該当する論理セクタが格納されている物理セクタを割り出し、その物理セクタをアクセスして要求されたデータをホストシステムに送出する。ホストシステムからのデータの書き込み要求に対しては、図3のフローチャートを用いて説明する。図3のフローチャートはプログラムメモリ4に格納されているプログラムのメインルーチンのフローチャートでありその流れを説明すると、まず、次のデータの書き込みをするセクタを示す書き込みポインタが設定されており、このポインタが示すセクタが書き込み可能な状態にあるかをステータステーブル8により判別する(a)。ステータステーブルでは消去回数が多くなり劣化して使いものにならなくなったことを示すフラグやすでにデータが書き込まれていることを示すフラグがあり、これらが立っていて書き込み不可能であれば次のセクタにポインタを移す(b)。そして書き込み可能であればそのセクタへのデータの書き込みを行う(c)。そして既に一度書き込んだことのある論理セクタの書き換えである場合は、前回書き込んだ当該論理セクタのデータはもはや不要であるため、論理セクタテーブルより不要になったデータが書き込まれている物理セクタを捜し出してこれを消去し、同時に前回の書き込みの際に書いた物理セクタテーブル6の内容を消去する(d)。セクタの消去が行われたら消去管理ルーチンへ飛ぶ。消去管理ルーチンについては後述する。そして論理セクタテーブル5に書き込みポインタの示す物理セクタ番号を、物理セクタテーブル6には書き込みポインタの示す場所に書き込んだ論理セクタ番号を書き込む(e)。なお(b)においてはデータが書き込まれているかの判断をステータステーブル8に書き込むことにしても良いし、物理セクタテーブル6により判断することもできる。物理セクタテーブル6は未書き込みセクタである場合には全ビットHにするかあるいはLにすれば判別が容易になる。次に先述の消去管理ルーチンについて図4を用いて説明する。まずデータを消去した物理セクタに対応する消去管理テーブルの消去回数カウンタを1インクリメントし(a)、消去回数が規定回数に達していなければメインルーチンに復帰し、規定回数に達していたら、データの入替えを行う(b)。データの入替えを行うためにはまず他の全セクタの消去管理テーブルを調べ、消去回数が最小でかつまだデータの入替えを行っていないセクタを捜しだす(c)。捜し当てた消去回数が最小のセクタに格納されているデータを、先程消去を行ったセクタに書き込む(d)。書き込みを行ったら両セクタのステータステーブルの入替えフラグを立てる(e)。この入替えフラグは、消去回数の少ない物理セクタが、本ルーチンにより消去が頻繁に起こるようになるのに、それを示す手段がないと再び消去回数が少ないセクタに選ばれてしまうことが考えられ、この時にデータを入れ替えた消去回数の多いセクタは、また消去が頻繁に起こるようになってしまう、ということが起こるのを防ぐものである。この入替えフラグを立てたら、該当する論理セクタテーブルの内容と物理セクタテーブルの内容を書き換える(f)。以上が終了したらメインルーチンに復帰する。なお消去回数が最小として選ばれたセクタは一度消去されることになるため、消去管理テーブルの消去回数カウンタをインクリメントする必要がある。また入替えフラグは全てのセクタのフラグが立ったらクリアされるか、あるいは論理の判断を反転する。つまり1のとき入替えが行われたと判断していたものを0になったら入替えが行われたことにする。また(b)の規定回数は、フラッシュメモリの書換え可能回数の保証値より小さな値の倍数とすべきで、例えば10000回の保証回数であれば、1000回の倍数回や、2000回、5000回の倍数回等が適当である。このルーチンにより、限られたブロックに消去が頻繁に起きたら消去回数の少ないブロックのデータと入替えをして、消去回数の多いブロックに消去があまり起きないセクタのデータを格納することにより、消去回数の平均化を図るものである。これは通常の補助記憶装置の格納データには大変効果があると考えられる。例えばオペレーションシステムプログラムを格納した領域ではデータの書換えは全く起きないが、アプリケーションプログラムのデータとなるグラフィックデータやテキストデータの領域では頻繁にデータの書換えが起きる。そのため消去回数の平均化を行わないと、システムプログラム領域のメモリはデータが変化しようがないため、消去回数の増加による劣化は全く起きないことになり、それ以外のデータ領域のメモリは限られたメモリ空間で頻繁に消去が行われ、消去回数を急増させることになる。つまり使用可能領域が少ない状態で特に大きな効果があるといえる。   Next, the system configuration and operation of the first embodiment of the storage device using this memory will be described with reference to FIG. 1, FIG. 3, and FIG. In the following description, the file data storage unit is referred to as a sector, and in this embodiment, one sector corresponds to one erase block. In the figure, 1 is a flash memory chip group that stores file data, 2 is an access controller that generates an access signal for the flash memory 1, and 3 is an external storage system that uses flash memory by operating stored data and status data. Microprocessor 4 is a program memory storing a control program for operating processor 3, and 5 is a logic for referring to where on the flash memory 1 data of a sector (logical sector) indicated by a certain logical address is mapped. A sector table, 6 is a physical sector table for referring to a logical sector number of file data mapped to a physical sector indicated by a physical address on the flash memory 1, and 7 is a record of the total number of erasures of each physical sector. Erase count management table, The status table for referring to the status of each physical sector, 9 is a write buffer for temporarily storing write data to speed up the writing of data. Next, the operation will be described. When there is a data read access request from a system (host system) that makes a data access request to this system, the processor 3 refers to the logical sector table 5 to determine the physical sector in which the corresponding logical sector is stored, The physical sector is accessed and the requested data is sent to the host system. The data write request from the host system will be described with reference to the flowchart of FIG. The flowchart of FIG. 3 is a flowchart of the main routine of the program stored in the program memory 4. The flow will be described. First, a write pointer indicating a sector to which the next data is written is set. It is determined from the status table 8 whether the indicated sector is in a writable state (a). In the status table, there are a flag indicating that the number of erasures has increased and it has deteriorated and is no longer usable, and a flag indicating that data has already been written. Move the pointer (b). If writing is possible, data is written to the sector (c). And when rewriting a logical sector that has already been written once, the data of the logical sector that was written last time is no longer necessary, so the physical sector where the unnecessary data is written is searched from the logical sector table. This is erased, and at the same time, the contents of the physical sector table 6 written at the previous writing are erased (d). When the sector is erased, the process jumps to the erase management routine. The erase management routine will be described later. The physical sector number indicated by the write pointer is written in the logical sector table 5, and the logical sector number written in the location indicated by the write pointer is written in the physical sector table 6 (e). In (b), whether data has been written may be written in the status table 8 or may be judged by the physical sector table 6. If the physical sector table 6 is an unwritten sector, it can be easily discriminated by setting all bits to H or L. Next, the above-described erasure management routine will be described with reference to FIG. First, the erase counter of the erase management table corresponding to the physical sector from which the data has been erased is incremented by 1 (a). If the erase count has not reached the specified count, the process returns to the main routine. Replacement is performed (b). In order to replace data, first, the erasure management table of all other sectors is examined to find a sector that has the smallest number of erasures and has not yet been replaced (c). The data stored in the sector with the smallest number of erases found is written into the sector that has been erased (d). After writing, a replacement flag is set in the status table of both sectors (e). This replacement flag is considered to be selected as a sector with a small number of erasures again if there is no means to indicate that a physical sector with a small number of erasures is frequently erased by this routine. In this case, a sector with a large number of erases in which data is replaced prevents the occurrence of frequent erasure. When this replacement flag is set, the contents of the corresponding logical sector table and the physical sector table are rewritten (f). When the above is completed, the process returns to the main routine. Since the sector selected with the minimum number of erases is erased once, it is necessary to increment the erase number counter of the erase management table. The replacement flag is cleared when all the sector flags are set, or the logic judgment is reversed. In other words, if the value determined to have been replaced at 1 becomes 0, it is determined that the replacement has been performed. Further, the specified number of times of (b) should be a multiple of a value smaller than the guaranteed value of the number of rewritable times of the flash memory. For example, if the guaranteed number of times is 10,000, it is a multiple of 1000 times, 2000 times, 5000 times Multiple times, etc. are appropriate. This routine replaces the data of a block with a small number of erasures when frequent erasures occur in a limited block, and stores the data of a sector where erasures do not occur so much in a block with a large number of erasures. Are to be averaged. This is considered to be very effective for data stored in a normal auxiliary storage device. For example, data rewriting does not occur at all in the area where the operation system program is stored, but data rewriting frequently occurs in the area of graphic data or text data which is the data of the application program. Therefore, if the number of times of erasure is not averaged, the data in the system program area will not change, so there will be no deterioration due to an increase in the number of times of erasure, and the memory in other data areas is limited. Erase is frequently performed in the memory space, and the number of erasures is increased rapidly. In other words, it can be said that it is particularly effective when the usable area is small.

以上が第1の実施例の動作の説明である。本実施例によればプロセッサを搭載したことによりプログラムメモリの内容に従った細かな制御ができるようになり、またライトバッファにより書き込みの高速化が図れ、ステータステーブルを備えたことにより各セクタの状態を記録するのに拡張性がある。そしてフラッシュメモリの寿命を延ばすために、消去回数を管理した最適なファイル管理が行える効果がある。   The above is the description of the operation of the first embodiment. According to the present embodiment, since the processor is installed, it becomes possible to perform fine control according to the contents of the program memory, the writing speed can be increased by the write buffer, and the status of each sector is provided by providing the status table. Is scalable to record. In order to extend the life of the flash memory, there is an effect that the optimum file management in which the number of erasures is managed can be performed.

次に第2の実施例について図5、図6、図7、図8及び図9を用いて説明する。図5は第2の実施例におけるハードウエア構成であり、図6は本実施例におけるフラッシュメモリ内の記憶構成を示した図であり、図7はデータ書き込みのためのメインルーチンのフローチャート、図8は不必要なデータを格納したセクタを未書き込みセクタにするための整理ルーチンのフローチャート、図9は消去回数の管理をする消去管理ルーチンのフローチャートである。   Next, a second embodiment will be described with reference to FIG. 5, FIG. 6, FIG. 7, FIG. 5 is a hardware configuration in the second embodiment, FIG. 6 is a diagram showing a storage configuration in the flash memory in this embodiment, FIG. 7 is a flowchart of a main routine for writing data, and FIG. FIG. 9 is a flowchart of an arrangement routine for making a sector storing unnecessary data an unwritten sector, and FIG. 9 is a flowchart of an erasure management routine for managing the number of erasures.

まず図6により本実施例におけるフラッシュメモリのチップとその使用法を説明する。図中、52は第1の実施例で用いたセクタと呼ぶファイルデータを記憶する記憶領域の単位である。53はデータ消去の最小単位で消去ブロックと呼び、複数のセクタ52により構成される。すなわち第1の実施例とは異なり消去ブロック53とセクタ52の記憶容量は異なるものとする。54はメモリチップ全体であり、図では複数の消去ブロックにより構成されているが、1チップに1消去ブロックであることも考えられる。本実施例ではセクタ単位にファイルデータの格納を行うが、そのファイルデータの書換えの要求があって消去するためには他のセクタも同時に消去されてしまうようなメモリチップに適応するものである。図5は本実施例のハードウエア構成で、図中、41は書き込みデータの記憶領域であるフラッシュメモリで一つ一つはメモリチップ54である。42はフラッシュメモリ41をアクセスするアクセスコントローラ、43は記憶データやステータスデータを操作するプロセッサ、44はプロセッサ3を動かすための制御プログラムが格納されているプログラムメモリ、45はフラッシュメモリ41の物理セクタ51が記憶している論理セクタ番号を参照するための物理セクタテーブル、46は記憶してある論理セクタ番号のデータがフラッシュメモリ1のどこの物理セクタに記憶されているかを参照するために物理セクタ番号が記録されている論理セクタテーブル、47は各ブロックの消去回数を記録する消去管理テーブル、48は各ブロックのステータスを記憶するステータステーブル、49は既書き込みセクタ数を参照するための書き込みセクタ数テーブル、50は書き込みの高速化を図るため、書き込みデータを一時的に保持するライトバッファ、51は整理ルーチンを行う際に用いる整理バッファである。   First, referring to FIG. 6, a flash memory chip and its usage in the present embodiment will be described. In the figure, 52 is a unit of a storage area for storing file data called a sector used in the first embodiment. 53 is a minimum unit of data erasure and is called an erasure block, and is composed of a plurality of sectors 52. That is, unlike the first embodiment, the storage capacities of the erase block 53 and the sector 52 are different. Reference numeral 54 denotes the entire memory chip, which is composed of a plurality of erase blocks in the figure, but one erase block per chip is also conceivable. In this embodiment, the file data is stored in units of sectors. However, in order to erase the file data in response to a request for rewriting the file data, the present invention is adapted to a memory chip in which other sectors are also erased at the same time. FIG. 5 shows the hardware configuration of this embodiment. In FIG. 5, reference numeral 41 denotes a flash memory which is a storage area for write data, and each one is a memory chip 54. 42 is an access controller for accessing the flash memory 41, 43 is a processor for operating stored data and status data, 44 is a program memory storing a control program for operating the processor 3, and 45 is a physical sector 51 of the flash memory 41. Is a physical sector table for referring to the stored logical sector number, and 46 is a physical sector number for referring to which physical sector of the flash memory 1 the data of the stored logical sector number is stored. , 47 is an erase management table for recording the number of times of erasure of each block, 48 is a status table for storing the status of each block, and 49 is a write sector number table for referring to the number of written sectors. , 50 is faster writing Aim for, write buffer for temporarily holding write data, 51 is a sort buffer used in performing organizing routine.

次に動作を説明する。リードアクセス時は第1の実施例同様、論理セクタテーブル45と物理セクタテーブル46を参照して行う。一方ライトアクセスは、図7を用いて説明すると、まず書き込みポインタを設定し、その書き込みポインタで示されたブロックのステータステーブルを参照する(a)。すなわち本実施例における書き込みポインタはブロック単位のポインタである。そしてこわれていたら次のブロックにポインタを移す(b)。こわれていなければそのブロックの書き込みセクタ数テーブル49を参照する(c)。そして既にブロック内の全セクタが書き込み済であったら整理ルーチンに飛ぶ。整理ルーチンについては後述する。もし未書き込みセクタがあったらデータの書き込みを行い(d)、該当する書き込みセクタ数テーブルを1インクリメントする(e)。従って、例えば図6において一つ前の書き込みを第1ブロックの第3物理セクタに書き込んだ場合、次の書き込みは第1ブロックの第4物理セクタに書き込みを行うことになる。実際のライトアクセス制御はアクセスコントローラ2により行う。ここで書き込みを行ったブロックのセクタが全て書き込まれてしまったら整理ルーチンに飛ぶ(f)。そして書き込み後は物理セクタテーブルおよび論理セクタテーブルに書き込んだセクタ番号をそれぞれ記録する(g)。もし以前に書き込んでいる論理セクタの再書き込みであれば、以前物理セクタテーブルに書き込んだ論理セクタ番号を消去する。これはその物理セクタのデータは無効であることを示すための動作である。なお(f)の動作は整理時間短縮のために設けられておりフラッシュメモリの消去効率を高くするためには行うべきでない。次に整理ルーチンについて説明すると、整理ルーチンとは書き込みポインタの指し示すブロックがすでに全セクタ書き込まれており、書き込み不可能である時の動作ルーチンである。整理ルーチンが必要となる理由は、これまで説明した書き込み方法では同じファイルのデータの書き替えにおいて別の物理セクタへ書き込みを行う。すなわち書き換える前に書き込んだデータは不要となるがメモリ上には記憶されたままであり消去すべきデータである。しかし不要となるたびに消去していたのでは消去回数が有限であるフラッシュメモリにとっては寿命を短くすることになる。そこで整理ルーチンによって消去する。整理ルーチンはブロックが書き込みデータで一杯になったときに行う。整理の具体的な方法は、図8のフローチャートに従って行う。以下フローチャート内の各部の説明をする。整理ブロックの物理セクタテーブルを参照し、ブロック内に消去可能なセクタすなわち他の物理セクタに新たに書き換えられたため不必要となったセクタがないかをチェックする(a)。消去可能なセクタが一つもなかったらメインルーチンに復帰し、一つでもあったら整理を行う。まず整理するブロック内のデータを整理バッファ51に退避し(b)、整理するブロックの消去を行う(c)。消去を行ったら図9の消去管理ルーチンに飛ぶがこれについては後で説明する(d)。そして整理バッファの中で必要なセクタだけを整理するブロックに復帰させる(e)。復帰したときのセクタの位置は、元々の場所に復帰させれば論理セクタテーブル45や物理セクタテーブル46を書き換える必要がない。また復帰の際にはそのブロックの若いセクタ番号から埋めていく方法を取ると、次の新しいセクタの書き込みがし易くなるが、論理セクタテーブル45と物理セクタテーブル46を書き換える必要がある。いずれの場合も書き込みセクタ数テーブルは復帰したセクタ数に書き換えることになる(f)。次に消去管理ルーチンについて説明する。図9は消去管理ルーチンのフローチャートであり、基本的には第1の実施例で説明したものと同様であるが、消去の管理がセクタではなくブロック単位に行う点が異なる。まず消去が行われたブロックの消去回数が一定数に達したか、をチェックし(a)、もし達していなければこのルーチンを脱出。達していたら(b)全ブロックの消去回数を検索し、消去回数が最小のブロックを捜しだす(c)。整理を行ったブロックと消去回数が最小のブロックが一致していなければこの2つのブロックのデータを入れ替える(d)。入替えには図5の整理データバッファ51を利用する。そして入替えを行ったブロックの入替えフラグを立てる(e)。消去回数カウンタをインクリメントするとともに論理セクタテーブル及び物理セクタテーブルを書き換える(f)。以上が本実施例における消去管理ルーチンの動作である。第1の実施例同様このルーチンにより、限られたブロックに消去が頻繁に起きたら消去回数の少ないブロックのデータと入替えをして、消去回数の平均化を図るものである。   Next, the operation will be described. The read access is performed with reference to the logical sector table 45 and the physical sector table 46 as in the first embodiment. On the other hand, the write access will be described with reference to FIG. 7. First, a write pointer is set, and the status table of the block indicated by the write pointer is referred to (a). That is, the write pointer in this embodiment is a block unit pointer. If it is broken, the pointer is moved to the next block (b). If not broken, the write sector number table 49 of the block is referred to (c). If all sectors in the block have already been written, the process jumps to the organizing routine. The organizing routine will be described later. If there is an unwritten sector, data is written (d), and the corresponding write sector number table is incremented by 1 (e). Therefore, for example, when the previous write in FIG. 6 is written in the third physical sector of the first block, the next write is performed in the fourth physical sector of the first block. Actual write access control is performed by the access controller 2. When all the sectors of the block where writing has been performed are written, the process jumps to the organizing routine (f). After the writing, the sector numbers written in the physical sector table and the logical sector table are recorded (g). If the previously written logical sector is rewritten, the logical sector number previously written in the physical sector table is erased. This is an operation for indicating that the data of the physical sector is invalid. The operation (f) is provided for shortening the arrangement time and should not be performed in order to increase the erase efficiency of the flash memory. Next, the organizing routine will be described. The organizing routine is an operation routine when the block indicated by the write pointer has already been written to all sectors and cannot be written. The reason why the organizing routine is necessary is that writing to another physical sector is performed in rewriting data of the same file in the writing method described so far. In other words, the data written before rewriting is unnecessary, but is stored in the memory and should be erased. However, if the flash memory is erased whenever it becomes unnecessary, the life of the flash memory with a finite number of erases is shortened. Therefore, it is erased by a cleaning routine. The cleanup routine is performed when a block is full of write data. A specific arrangement method is performed according to the flowchart of FIG. Hereinafter, each part in the flowchart will be described. With reference to the physical sector table of the rearrangement block, it is checked whether there is a sector that is unnecessary because it has been newly rewritten to another erasable sector in the block (a). If there is no erasable sector, the process returns to the main routine. First, the data in the block to be organized is saved in the organization buffer 51 (b), and the block to be organized is deleted (c). When erasure is performed, the process jumps to the erasure management routine of FIG. 9, which will be described later (d). Then, it returns to a block that arranges only necessary sectors in the arrangement buffer (e). When the sector is restored, the logical sector table 45 and the physical sector table 46 do not need to be rewritten if the sector is restored to its original location. Further, if the method of filling in from the young sector number of the block at the time of restoration, it becomes easy to write the next new sector, but it is necessary to rewrite the logical sector table 45 and the physical sector table 46. In either case, the write sector number table is rewritten to the restored sector number (f). Next, the erase management routine will be described. FIG. 9 is a flowchart of the erasure management routine, which is basically the same as that described in the first embodiment, except that erasure management is performed in units of blocks instead of sectors. First, it is checked whether the erase count of the erased block has reached a certain number (a). If not, this routine is exited. If it has reached (b) the number of erases of all blocks is searched, and the block with the smallest number of erases is searched (c). If the arranged block does not match the block with the smallest erase count, the data of these two blocks are exchanged (d). The rearrangement data buffer 51 in FIG. 5 is used for the replacement. Then, a replacement flag is set for the replaced block (e). The erase counter is incremented and the logical sector table and physical sector table are rewritten (f). The above is the operation of the erase management routine in the present embodiment. As in the first embodiment, this routine is used to replace the data of a block with a small number of erasures when the erasure frequently occurs in a limited block, thereby averaging the number of erasures.

以上が第2の実施例の動作説明である。本実施例によれば、消去ブロックが書き込むセクタの単位としては大き過ぎるときに、消去ブロックを分割して効率良く使える効果がある。   The above is the description of the operation of the second embodiment. According to the present embodiment, when the erase block is too large as a sector unit to be written, there is an effect that the erase block can be divided and used efficiently.

次に第3の実施例を図10、図11及び図12を用いて説明する。本実施例においてはメモリチップは第1の実施例と同様の図2の消去ブロックとセクタの容量が一致するものとするが、使用時は図10に示す構成をとる。図中91は複数のセクタよりなるブロックである。本実施例ではセクタと消去ブロックの単位が同一であるため本実施例のブロック91は複数の消去ブロックで構成されることになる。既出の他の番号は図2あるいは図6と同様のものである。ハードウエア構成は図11に示したものであり図中101はブロック91ごとの消去回数を記録した消去管理テーブルであり、詳細は後述するが結果的にブロック91内の消去回数の累計を記憶することになる。他は図1、図5と同様のものである。図12は本実施例の消去管理ルーチンのフローチャートであり、メインルーチンは図3と同様である。メインルーチンの動作は第1の実施例の説明に従うとして、メインルーチンから消去管理ルーチンに飛んでからの動作を図12により説明する。まず消去を行ったセクタを含むブロックの消去管理テーブルの回数カウンタを1インクリメント(a)。消去回数が規定値に達したかを判別し(b)、達していたら前ブロックの消去回数を調べて回数が最小で、かつまだデータの入替えを行っていないブロックを割り出し(c)、2つのブロックのデータを入替える(d)。そして入替えフラグを立てるとともに(e)、各テーブルの内容を書き換える(f)。本実施例の特徴はセクタ単位の消去ができるメモリにおいて消去管理を複数のセクタで行うことにより、消去管理の簡便化を図って、大きなファイルの書換えにおける待ち時間の節約と、消去管理テーブルの削減ができるという効果が期待できる。従って大容量の記憶装置で、消去管理をセクタごとに行うことが困難な場合に適応する。   Next, a third embodiment will be described with reference to FIGS. 10, 11 and 12. FIG. In this embodiment, the memory chip has the same sector capacity as that of the erase block of FIG. 2 as in the first embodiment. However, when used, the memory chip has the configuration shown in FIG. In the figure, reference numeral 91 denotes a block composed of a plurality of sectors. In this embodiment, since the units of the sector and the erase block are the same, the block 91 of this embodiment is composed of a plurality of erase blocks. The other numbers already mentioned are the same as those in FIG. The hardware configuration is as shown in FIG. 11. In FIG. 11, reference numeral 101 denotes an erasure management table that records the number of erasures for each block 91. As will be described in detail later, the cumulative number of erasures in the block 91 is stored as a result. It will be. Others are the same as FIG. 1 and FIG. FIG. 12 is a flowchart of the erasure management routine of this embodiment, and the main routine is the same as that of FIG. Assuming that the operation of the main routine follows the description of the first embodiment, the operation after jumping from the main routine to the erasure management routine will be described with reference to FIG. First, the number counter of the erase management table of the block including the erased sector is incremented by 1 (a). It is determined whether the erase count has reached a specified value (b), and if it has reached, the number of erases of the previous block is checked to determine the block that has the smallest count and has not yet been replaced (c), Replace block data (d). Then, a replacement flag is set (e) and the contents of each table are rewritten (f). The feature of this embodiment is that erasure management is performed in a plurality of sectors in a memory capable of erasing in units of sectors, thereby simplifying erasure management, saving waiting time in rewriting a large file, and reducing the erasure management table. The effect of being able to be expected. Therefore, it is suitable for a case where it is difficult to perform erasure management for each sector in a large-capacity storage device.

ところでこれまで説明した実施例で構成要素となっていた論理セクタテーブル、物理セクタテーブルなどのテーブルについて説明を加える。フラッシュメモリは不揮発性のメモリであるため、当然のことながら本発明のシステムは非動作時には電源の供給を停止してもフラッシュメモリ内のデータが失われることはない。しかしながらいくらデータが保存されていても、テーブルの内容が失われると、どのセクタに何のデータが格納されているかがわからなくなり、フラッシュメモリ内のデータは正体不明の無意味なデータと化してしまう。そのためテーブルに格納されているデータも電源供給停止後に保存されている必要がある。ただしテーブル内の全てのデータを保存する必要はない。例えば論理セクタテーブルのデータは物理セクタテーブルのデータから容易に作成可能である。逆もまた可能であるのでつまりどちらか一方のデータが保存されていれば良いことになる。そこで物理セクタテーブルを電気的消去可能で書き込み可能な不揮発性メモリ(EEPROM)に記憶し、論理セクタテーブルは電源供給を開始するシステムの起動時に物理セクタテーブルより作成することとする。こうすると論理セクタテーブルは揮発性のメモリを使用できる。またこれと同様に各ブロックの使用セクタ数テーブルも物理セクタテーブルより作成可能であるため、システムの起動時に揮発性メモリに作成する。これらのテーブルはメインシステムの主メモリ上に展開することも可能である。その他のテーブルについては、消去管理テーブル、ステータステーブルがあるが、これらは他のテーブルからの作成は不可能であり、消去管理テーブルはデータが失われるべきでないためEEPROMに記憶する。ステータステーブルはもう一度書き込みや消去をしたときに得られるが、二度手間になるためEEPROMに記憶すべきである。しかしメモリの節約のため揮発性メモリに記憶することもできる。これらテーブルの記憶媒体としては同じメモリに格納してチップ数を減らすこともできる。例えば物理セクタテーブルと消去回数テーブルはどちらも不揮発性メモリに格納すべきであるため、同じEEPROMチップに格納してEEPROMは1チップだけにすることができる。またプロセッサをワンチップマイコンとした場合は、使用セクタ数テーブルなどの比較的小さなテーブルはワンチップマイコンに内蔵されているRAMコアに格納する。これらをまとめた第4の実施例の構成図を図13に示した。図中、111はRAM、ROMを内蔵したワンチップマイコン、112はワンチップマイコン内のRAMコア、113はワンチップマイコン内のROMコア、114はEEPROMチップ、115はSRAMまたはDRAM、以下既出の番号は、前述と同様のものである。RAMコア112には使用セクタ数テーブルを格納し、ROMコア113にはマイコンの制御プログラムを格納し、EEPROM114には物理セクタテーブル及び消去管理テーブルを格納し、RAM115には論理セクタテーブルを格納する。またRAM115の空き領域では図9で示した整理ルーチンを行う際の整理データバッファ、及び書き込みの高速化を図るライトバッファとしても用いることとする。このように本実施例によれば記憶媒体の特徴にあわせ、テーブル、バッファ類をまとめてチップ数の削減を図ることができる。これに対し、図24はEEPROMを省略した構成となる実施例である。これは第4の実施例で説明した不揮発性のテーブルデータをフラッシュメモリ1に格納することにより実現する。図中、116はフラッシュメモリ1内に設けたテーブル格納領域である。ただしフラッシュメモリはテーブルデータのような小さい単位のデータの更新には適さないため、フラッシュメモリ1にテーブルのデータを格納するのは電源遮断の直前とし、通常の使用状態においては揮発性のDRAMやSRAM115に格納するものとする。つまり本発明のシステムの電源を遮断する際に、RAM115の内容のうち必要なデータをフラッシュメモリ1に転送してから電源を遮断し、次に電源を投入した時にフラッシュメモリ1からRAM115にデータをロードしてから通常の動作を開始する。従ってフラッシュメモリにはテーブル格納用の記憶領域116を常に確保しておく必要がある。ただしこの格納位置を固定とする必要はない。固定としなかった場合はあらかじめテーブルを格納するアドレスを示す領域を設けておき、テーブルを格納したアドレスを常に記録しておくことにより、電源立ち上げ時にテーブルの位置をサーチする必要がなくなる。   By the way, a description will be given of tables such as a logical sector table and a physical sector table which are constituent elements in the embodiments described so far. Since the flash memory is a non-volatile memory, it is natural that the data of the flash memory is not lost even if the supply of power is stopped when the system of the present invention is not operating. However, no matter how much data is stored, if the contents of the table are lost, it is not possible to know what data is stored in which sector, and the data in the flash memory becomes unidentified and meaningless data. . Therefore, the data stored in the table also needs to be saved after the power supply is stopped. However, it is not necessary to save all the data in the table. For example, data in the logical sector table can be easily created from data in the physical sector table. Since the reverse is also possible, that is, it is only necessary to store either one of the data. Therefore, the physical sector table is stored in an electrically erasable and writable nonvolatile memory (EEPROM), and the logical sector table is created from the physical sector table when the system is started to start power supply. In this way, the logical sector table can use volatile memory. Similarly, since the used sector number table of each block can be created from the physical sector table, it is created in the volatile memory when the system is started. These tables can be expanded on the main memory of the main system. Other tables include an erase management table and a status table, but these cannot be created from other tables, and the erase management table is stored in the EEPROM because data should not be lost. The status table is obtained when writing or erasing is performed once again, but since it is troublesome twice, it should be stored in the EEPROM. However, it can also be stored in volatile memory to save memory. The storage media for these tables can be stored in the same memory to reduce the number of chips. For example, since both the physical sector table and the erase count table should be stored in the nonvolatile memory, they can be stored in the same EEPROM chip so that only one chip can be stored in the EEPROM. When the processor is a one-chip microcomputer, a relatively small table such as a used sector number table is stored in a RAM core built in the one-chip microcomputer. FIG. 13 shows a configuration diagram of the fourth embodiment in which these are summarized. In the figure, 111 is a one-chip microcomputer incorporating RAM and ROM, 112 is a RAM core in the one-chip microcomputer, 113 is a ROM core in the one-chip microcomputer, 114 is an EEPROM chip, 115 is an SRAM or DRAM, and the following numbers Is the same as described above. The RAM core 112 stores a used sector number table, the ROM core 113 stores a microcomputer control program, the EEPROM 114 stores a physical sector table and an erasure management table, and the RAM 115 stores a logical sector table. Further, in the free area of the RAM 115, it is also used as a rearrangement data buffer for performing the rearrangement routine shown in FIG. 9 and a write buffer for speeding up writing. Thus, according to the present embodiment, the number of chips can be reduced by combining tables and buffers according to the characteristics of the storage medium. On the other hand, FIG. 24 shows an embodiment in which the EEPROM is omitted. This is realized by storing the non-volatile table data described in the fourth embodiment in the flash memory 1. In the figure, reference numeral 116 denotes a table storage area provided in the flash memory 1. However, since the flash memory is not suitable for updating small units of data such as table data, the table data is stored in the flash memory 1 immediately before the power is turned off. Assume that the data is stored in the SRAM 115. In other words, when the power of the system of the present invention is shut off, necessary data in the contents of the RAM 115 is transferred to the flash memory 1 and then the power is shut off. Next, when the power is turned on, data is transferred from the flash memory 1 to the RAM 115. Start normal operation after loading. Therefore, it is necessary to always secure the storage area 116 for storing the table in the flash memory. However, this storage position need not be fixed. If the table is not fixed, an area indicating the address for storing the table is provided in advance, and the address at which the table is stored is always recorded, so that it is not necessary to search the position of the table when the power is turned on.

またさらにフラッシュメモリ自体の構成における実施例を図14、図15、図16及び図23に示した。図14はフラッシュメモリチップ内に消去ブロック単位にデータ領域と異なるテーブル用の記憶領域を持たせたものであり、これに各ブロックごとの物理セクタテーブルや消去回数を書き込むことによりEEPROMを省略できる。図中、131は消去ブロック、132は消去ブロック131ごとに付加されるテーブル用の記憶領域である。消去ブロック131に対応するテーブル132に格納されたデータは消去ブロック131と同一のアドレスでアクセス可能とし、信号線による選択やモードの選択によりファイルデータとテーブルのデータを出し分ける。このようにするとデータ領域とテーブル領域の寿命が一致し、データ領域131が使用可能なのに、テーブルがこわれて使用不能に陥るということがなくなる。データ領域とテーブル領域が接近していればその傾向がさらに強くなる。そして消去ブロックごとにテーブルを構成するためアドレスラインの共有化が簡単に実現する。テーブル用の記憶領域132の一例を図23(a)に示した。図中、133は消去単位1ブロック全体を表し、134はブロック内のファイルデータ領域、135はそのブロックの論理番号を格納する領域で8ビットの記憶容量を持つ。136はそのブロックの状態を示すステータステーブルで16ビットの容量である。ステータステーブル136の内容は、消去回数管理テーブル、使用不能フラグ、入替え済みフラグ、訂正フラグ等が挙げられる。このステータステーブル136で余ったビットをブロック番号格納に用いることもできる。図23(b)はさらにエラー訂正領域を持たせたテーブル領域132の一例であり、137はエラー訂正個所を示す領域である。これは訂正能力に応じて記憶容量を設定することとする。たとえば1ワード16ビットのワード構成で、消去ブロックが512Bの構成のメモリチップに対してエラー訂正領域が8ビットであれば、1ワード訂正能力を持つ。つまり不良ビットの存在するワード番号をここに書き込んでおき、訂正データを他の領域に書き込んでおけば、読み出しの際にそのワードのデータを置き換えてしまうことにより実現する。訂正データ領域をこのテーブル内に持たせてもよいし、他の記憶領域にまとめておく方法もある。前者ではデータ訂正をテーブル内で全てまかなうことができるが1ブロックごとに訂正データ領域を持つこととなるためチップ全体で冗長領域が大きくなってしまう。後者では訂正データが書き込まれている領域を示す手段が必要になり、また他の記憶領域をアクセスするためアクセス時間が大きくなってしまうが、訂正データ数に応じて冗長記憶領域を大きくも小さくも設定できる。なお訂正データが書き込まれている領域の指定はステータステーブル領域136の余りビットを使用すると良い。また訂正データ領域の一例として図15を用いて説明する。図15はデータの記憶領域とは別に1バイトや1ワード等の細かい単位で書き込み消去ができるEEPROMタイプの記憶領域138を持たせたものであり、この領域を訂正データテーブルとして、訂正データを書き込んでおき訂正すべき個所のデータの読み出しの際に指定された位置のデータを読み出して置き換えることによりデータ訂正が実現する。また図15は、テーブル領域の構成を、対応するデータ領域の消去ブロックの付近に構成せず、一まとめにして同様の効果を狙った実施例と考えることもできる。この場合図内の構成要素は図14と同様であり、メモリセルの構成がチップ内で一まとめになるため、図14のメモリセルの構成より簡略化される効果がある。   Further, examples of the configuration of the flash memory itself are shown in FIG. 14, FIG. 15, FIG. In FIG. 14, a flash memory chip is provided with a storage area for a table different from the data area in units of erase blocks, and the EEPROM can be omitted by writing the physical sector table and the number of erases for each block. In the figure, 131 is an erase block, and 132 is a table storage area added to each erase block 131. The data stored in the table 132 corresponding to the erase block 131 can be accessed at the same address as the erase block 131, and the file data and the table data are separated according to the selection by the signal line and the mode. In this way, the data area and the table area have the same lifetime, and the data area 131 can be used, but the table is not broken and cannot be used. The tendency becomes stronger if the data area and the table area are close to each other. Since a table is formed for each erase block, address lines can be easily shared. An example of the table storage area 132 is shown in FIG. In the figure, 133 represents the entire block of erasure units, 134 is a file data area in the block, 135 is an area for storing the logical number of the block, and has a storage capacity of 8 bits. A status table 136 indicates the state of the block, and has a capacity of 16 bits. The contents of the status table 136 include an erase count management table, an unusable flag, a replacement flag, a correction flag, and the like. The surplus bits in the status table 136 can also be used for block number storage. FIG. 23B shows an example of a table area 132 having an error correction area. Reference numeral 137 denotes an area indicating an error correction area. In this case, the storage capacity is set according to the correction capability. For example, if the error correction area is 8 bits with respect to a memory chip having a word configuration of 16 bits per word and an erase block of 512 B, it has 1 word correction capability. That is, if the word number where the defective bit exists is written here and the correction data is written in another area, the data of the word is replaced at the time of reading. A correction data area may be provided in this table, or there may be a method of collecting it in another storage area. In the former, all data corrections can be covered within the table, but since each block has a correction data area, the redundant area becomes large in the entire chip. In the latter case, a means for indicating the area where correction data is written is required, and the access time increases because other storage areas are accessed. However, depending on the number of correction data, the redundant storage area can be increased or decreased. Can be set. In addition, it is preferable to use a surplus bit in the status table area 136 for designating an area in which correction data is written. An example of the correction data area will be described with reference to FIG. FIG. 15 has an EEPROM type storage area 138 that can be written and erased in fine units such as 1 byte or 1 word separately from the data storage area, and this area is used as a correction data table to write correction data. The data correction is realized by reading out and replacing the data at the designated position when reading out the data at the location to be corrected. Further, FIG. 15 can also be considered as an example in which the configuration of the table area is not configured near the erase block of the corresponding data area, and the same effect is aimed at as a whole. In this case, the constituent elements in the figure are the same as those in FIG. 14, and the configuration of the memory cells is integrated in the chip. Therefore, there is an effect that the configuration of the memory cells in FIG. 14 is simplified.

また図16は別の構成のフラッシュメモリチップである。データの記憶領域141とは別に、データを一時的に保持するバッファ領域142をメモリチップ内に持たせたものであり、この部分は揮発性のメモリでもよい。143はクロック入力によりカウントアップするアドレスカウンタである。ライトアクセス時はライトデータをバッファ領域142に書き込み、アドレスを入力することにより複数のデータを一気にデータ領域141に転送し書き込めるようにする。このようなメモリを用いれば書き込みの高速化を図る外付けのライトバッファを省略できる。またリード時にも逆にデータ領域141からアドレスを入力することにより複数のデータを一度にバッファ領域142に転送できれば、リードアクセスも簡略化される。この場合バッファはシリアルアクセスメモリとして連続アドレスの入力が必要でなく、内部にアドレスカウンタ143を備え、クロックを入力すれば内部のアドレスカウンタがカウントアップし、連続した領域をアクセスしてデータを出力できるようにすればさらに使い勝手が良くなる。なおバッファ領域はセクタを1単位として構成するのが最も効果的であり、1単位分に限らず複数単位分構成するとバッファ効果を向上させることができる。例えば1セクタが消去ブロック単位であった場合、1セクタのデータを格納するバッファが1つ備えられていれば、1セクタの書き込み読み出しが一度に行われるようになるが、複数備わっていれば複数のセクタのデータの書き込みを受け入れることができ、また読み出しデータを用意することができる。そしてこのバッファを利用すれば外付けの整理バッファも省略できる効果がある。   FIG. 16 shows a flash memory chip having another configuration. In addition to the data storage area 141, a buffer area 142 for temporarily holding data is provided in the memory chip, and this part may be a volatile memory. Reference numeral 143 denotes an address counter that counts up by a clock input. At the time of write access, write data is written to the buffer area 142, and by inputting an address, a plurality of data can be transferred and written to the data area 141 at once. If such a memory is used, an external write buffer for speeding up writing can be omitted. On the other hand, if a plurality of data can be transferred to the buffer area 142 at a time by inputting an address from the data area 141 at the time of reading, the read access is also simplified. In this case, the buffer does not need to input continuous addresses as a serial access memory, and has an internal address counter 143. When a clock is input, the internal address counter counts up, and the continuous area can be accessed to output data. This will make it even easier to use. It is most effective to configure the buffer area with one sector as a unit, and the buffer effect can be improved by configuring the buffer area not only with one unit but with a plurality of units. For example, when one sector is an erase block unit, if one buffer for storing data of one sector is provided, writing / reading of one sector is performed at a time. It is possible to accept writing of data in the sector, and it is possible to prepare read data. If this buffer is used, an external organizing buffer can be omitted.

次にこれまでの実施例で説明してきたフラッシュメモリを用いた記憶装置を情報処理システムに応用する実施例について説明する。図17はフラッシュメモリを用いた記憶装置(以下、フラッシュファイルシステムと称す)を情報処理システム(以下ホストと称す)と接続するためのインタフェース回路を説明する図であり、図中201はホストの外部I/Oバスであり、標準的なバスとしてはISA、EISA、マイクロチャネル、SCSIなどのバスが挙げられる。202は標準バスを専用バスに変換するためのバスバッファあるいはバスコントローラであるが、これが省略されるシステムも考えられる。これらに接続されているのはホスト側が自システム内の主記憶装置あるいは拡張主記憶装置、表示記憶装置等の記憶装置に記憶しきれないデータや電源遮断後も保持したいデータなどを記憶するために設置している外部記憶装置あるいは補助記憶装置である。フロッピディスクドライブ203、ハードディスクドライブ204等が一般的であるが、それに加えフラッシュファイルシステム205が接続されている。なおこれら全ての補助記憶装置がホストシステムに接続される必要はなく、ユーザが適宜選択して接続するものである。フラッシュファイルシステム205にはインタフェース回路206が付加されており、207はインタフェースレジスタ群、208はインタフェースレジスタ群の中のレジスタの一つであるコマンドレジスタ、209はインタフェースレジスタ群のアドレスデコード回路、210はコマンド割込み信号である。以下既出の番号はこれまでの説明で述べてきたものと同様のものである。ただしプログラムメモリ4に格納されているプログラムはこれまでの説明で述べてきたファイルデータの制御、管理に加え、ホストからのアクセス要求を中心としたコマンドへの対応のプログラムが格納されている。ホストはホストバス201を通して補助記憶装置にコマンドを出す。これはインタフェース回路206内のインタフェースレジスタ群207の一つであるコマンドレジスタ208にコマンドコードを書き込むことによって行なわれる。インタフェースレジスタ群207は、ハードディスクドライブがインタフェースレジスタとして持つレジスタを全て備え、またレジスタの仕様も一致し、ホストからはハードディスクをアクセスするのと何ら変わらないようにしている。なおこのレジスタをフロッピディスクドライブや光ディスクドライブ等、他の補助記憶装置のインタフェースに合わせることも有効であると考える。あるいは複数の補助記憶装置のインタフェースを同時にサポートし、ホストからは別の補助記憶装置を利用しているようにみえるが、実際には1台のフラッシュファイルシステムでまかなうというのはスペース的に非常に有効である。さてコマンドレジスタ208はホストによりコマンドを書き込まれると割込み信号210をプロセッサ3に対して発し、これを受けたプロセッサ3は書き込まれたコマンドコードを解釈して、ホストのコマンド要求に応える。なおインタフェースレジスタ群207やコマンドは全てハードディスクドライブに対応するものであるが、記憶媒体が異なるものであるため、不必要なものや処理が異なるものもある。例えばフォーマットは磁気ディスク装置には不可欠のものであるが、半導体ディスクドライブでは不必要であるため、特に処理を行なわないようにしたり、単に規則的なデータに書き換えたりといった処理にする。以下、ファイルデータのリードライトに関してはこれまでの実施例で説明したものと同様の動作とする。なお図は第1の実施例を適用しているが、これまで説明したあるいはこの後説明する他の実施例にそのまま適用することも可能である。   Next, an embodiment in which the storage device using the flash memory described in the above embodiments is applied to an information processing system will be described. FIG. 17 is a diagram for explaining an interface circuit for connecting a storage device using flash memory (hereinafter referred to as a flash file system) to an information processing system (hereinafter referred to as a host). An I / O bus, and standard buses include ISA, EISA, microchannel, and SCSI buses. Reference numeral 202 denotes a bus buffer or bus controller for converting a standard bus into a dedicated bus, but a system in which this is omitted is also conceivable. The host is connected so that the host can store data that cannot be stored in the main storage device, expanded main storage device, display storage device, etc. in its own system, or data that it wants to retain even after the power is turned off. It is an external storage device or auxiliary storage device installed. A floppy disk drive 203, a hard disk drive 204, and the like are common, but in addition, a flash file system 205 is connected. Note that all these auxiliary storage devices do not have to be connected to the host system, but are selected and connected by the user as appropriate. An interface circuit 206 is added to the flash file system 205, 207 is an interface register group, 208 is a command register which is one of the registers in the interface register group, 209 is an address decoding circuit of the interface register group, and 210 is Command interrupt signal. The numbers already described are the same as those described above. However, the program stored in the program memory 4 stores a program corresponding to a command centered on an access request from the host, in addition to the control and management of the file data described above. The host issues a command to the auxiliary storage device through the host bus 201. This is performed by writing a command code to the command register 208 which is one of the interface register groups 207 in the interface circuit 206. The interface register group 207 includes all the registers that the hard disk drive has as interface registers, and the register specifications are the same, so that it is not different from accessing the hard disk from the host. It is considered effective to match this register with an interface of another auxiliary storage device such as a floppy disk drive or an optical disk drive. Or, it seems to support the interface of multiple auxiliary storage devices at the same time, and it seems that the host uses another auxiliary storage device. It is valid. When the command is written by the host, the command register 208 issues an interrupt signal 210 to the processor 3, and the processor 3 that receives the command interprets the written command code and responds to the host command request. The interface register group 207 and commands all correspond to the hard disk drive. However, since the storage media are different, there are some unnecessary ones and different ones. For example, the format is indispensable for the magnetic disk device, but is unnecessary for the semiconductor disk drive, so that the processing is not particularly performed or is simply rewritten into regular data. Hereinafter, file data read / write is performed in the same manner as described in the above embodiments. Although the first embodiment is applied to the drawing, it can be applied as it is to the other embodiments described so far or described later.

図18はフラッシュファイルシステムを補助記憶装置とするパーソナルコンピュータの一例の構成図である。図中、221は本情報機器のCPU、222はコプロセッサ、223は本実施例の情報処理システム内部に構築した標準I/Oバス、224は標準I/Oバス223を構築するバスユニット、225は主メモリや拡張メモリなど高速メモリをアクセスするメモリ制御ユニット、226は主メモリ、227は基本制御プログラムが格納されたBIOS ROM、228はキーボードコントローラでこの先にはキーボードが接続されているものとする。229は表示アダプタでこの先には何らかの表示装置が接続されているものとする。230は拡張メモリ、231はプリンタなどを接続するパラレルポートI/F、232はマウスやRS232CなどのシリアルポートI/F、233はフロッピディスクドライブ、234は標準I/Oバス223より標準のHDDI/Fに変換するバッファコントローラ、235はフラッシュファイルシステムである。このフラッシュファイルシステム235の内部は、これまでの実施例で示したものにより構成されており、236はファイルアクセスを受け付けてデータの受渡しを行なうI/Fユニットであり、図17におけるインタフェースレジスタ群207及びアドレスデコード209にあたる。237はフラッシュファイルシステム235内部のデータ管理や制御を行なうコントロールユニットであり、図17におけるプロセッサ3及びプログラムメモリ4、アクセスコントローラ2、ライトバッファ9よりなる。238はファイルデータを格納するフラッシュメモリアレイ、239はデータ及びメモリ管理のための情報を記憶するインフォメーションテーブルであり、図17におけるテーブル5、6、7、8を全て含むものである。次に動作を説明する。電源が投入されて動作を開始するとまずCPU221はBIOS ROM227を標準I/Oバス223を通してアクセスし、初期診断、初期設定を行なう。そして補助記憶装置からシステムプログラムを主メモリ226にロードする。本実施例では補助記憶装置としてフラッシュファイルシステム235を採用している。ただしCPU221は標準I/Oバス223を通してHDDコントローラ234にHDDをアクセスするものとして動作する。従ってフラッシュファイルシステム235は内部のI/Fユニット236によってHDD完全互換のI/F機能をサポートしている。システムプログラムのロードが終了すると、ユーザの処理要求に従い、処理を進めていく。なおユーザは標準I/Oバス223上のKBDC228や表示アダプタ229により処理の入出力を行ないながら作業を進める。そして必要に応じてパラレルI/F231、シリアルI/F232に接続された入出力装置を活用する。また本体上の主メモリ226では主記憶容量が不足する場合は、拡張RAM230により主記憶を補う。ユーザがファイルを読み書きしたい場合にはユーザはHDDが補助記憶装置であるものとして補助記憶装置へのアクセスを要求し、フラッシュファイルシステム235はそれを受けてファイルデータのアクセスを行なう。本実施例によれば標準的なパーソナルコンピュータの標準的なI/Oバス上に、現在最も一般的な補助記憶装置であるHDDを搭載しているかのように、フラッシュファイルシステムを採用している。従って新しい記憶媒体としてフラッシュファイルシステムを採用してもBIOS ROMやシステムプログラムをHDDを搭載していたものに対し変更を加えなくてもそのまま使用できる。なお上記実施例は標準的なパーソナルコンピュータを例にしており、主メモリや拡張メモリが標準I/Oバス上にあったり、コプロセッサやパラレルI/F、シリアルI/Fが存在しない構成の情報機器も考えられこれらに関しても本発明の適用が可能である。   FIG. 18 is a configuration diagram of an example of a personal computer having a flash file system as an auxiliary storage device. In the figure, 221 is a CPU of this information device, 222 is a coprocessor, 223 is a standard I / O bus constructed in the information processing system of this embodiment, 224 is a bus unit that constructs a standard I / O bus 223, 225 Is a memory control unit for accessing a high-speed memory such as a main memory and an expansion memory, 226 is a main memory, 227 is a BIOS ROM in which a basic control program is stored, 228 is a keyboard controller, and a keyboard is connected to this point. . It is assumed that 229 is a display adapter to which some display device is connected. 230 is an expansion memory, 231 is a parallel port I / F for connecting a printer, 232 is a serial port I / F such as a mouse or RS232C, 233 is a floppy disk drive, 234 is a standard HDD I / O from a standard I / O bus 223 A buffer controller 235 for converting to F is a flash file system. The inside of the flash file system 235 is configured by the ones shown in the embodiments so far. Reference numeral 236 denotes an I / F unit that receives file access and transfers data. The interface register group 207 in FIG. And the address decode 209. A control unit 237 performs data management and control inside the flash file system 235, and includes the processor 3, the program memory 4, the access controller 2, and the write buffer 9 in FIG. 238 is a flash memory array for storing file data, 239 is an information table for storing data and information for memory management, and includes all the tables 5, 6, 7, and 8 in FIG. Next, the operation will be described. When the power is turned on and the operation is started, the CPU 221 first accesses the BIOS ROM 227 through the standard I / O bus 223 to perform initial diagnosis and initial setting. Then, the system program is loaded from the auxiliary storage device into the main memory 226. In this embodiment, a flash file system 235 is employed as an auxiliary storage device. However, the CPU 221 operates as accessing the HDD to the HDD controller 234 through the standard I / O bus 223. Therefore, the flash file system 235 supports the HDD fully compatible I / F function by the internal I / F unit 236. When the loading of the system program ends, the process proceeds according to the user's processing request. It should be noted that the user proceeds with input / output of processing through the KBDC 228 and the display adapter 229 on the standard I / O bus 223. If necessary, an input / output device connected to the parallel I / F 231 and the serial I / F 232 is utilized. Further, when the main memory 226 on the main body has insufficient main storage capacity, the expansion RAM 230 supplements the main memory. When the user wants to read / write a file, the user requests access to the auxiliary storage device assuming that the HDD is an auxiliary storage device, and the flash file system 235 receives it and accesses file data. According to this embodiment, the flash file system is adopted as if the HDD, which is currently the most common auxiliary storage device, is mounted on the standard I / O bus of a standard personal computer. . Therefore, even if the flash file system is adopted as a new storage medium, the BIOS ROM and the system program can be used as they are without changing the HDD loaded with the HDD. In the above embodiment, a standard personal computer is taken as an example, and information on a configuration in which the main memory and the expansion memory are on the standard I / O bus, and there is no coprocessor, parallel I / F, and serial I / F. Devices are also conceivable, and the present invention can be applied to these devices.

次にフラッシュメモリの不良発生に対処する実施例について図19を用いて説明する。フラッシュメモリは原理的に書き換え回数に限界があることはすでに述べているが、書き換えによる劣化が進むとデータ消去書き込みの消費時間が長くなり、またデータの保持信頼性に問題が出てくる。そこでメモリの劣化により使用すべきでない状態に達した、と判断されたときにはその記憶領域あるいはメモリチップの使用を中止すべきである。そしてそのような領域が増え、フラッシュファイルシステム全体の寿命が近づいたと判断されたときには、そのフラッシュファイルシステムの使用を中止すべきである。フラッシュメモリの劣化を検出する方法としては、消去を繰返し行っても規定回数以内で消去が完全にならない、あるいは消去時間がある規定時間以上かかってしまう、という消去不良から判断する方法。そして書き込みを繰返し行っても規定回数以内で書き込みが完全にならない、という書き込み不良から判断する方法。また消去回数を管理して規定回数以上に達してしまったことから判断する方法が考えられる。そして劣化して使用不能に陥った記憶容量がある規定値に達したところでフラッシュファイルシステムとしての寿命と判断する。図19はそれをユーザに警告するための手段を実現する一実施例であり、図中240はフラッシュファイルシステム235内のコントローラが自システムの使用限界を認識し、これをホストシステムに伝えるための割込み信号であり、241は使用限界に達したことを示すエラー報告レジスタである。ホストはHDDバッファ234を通して割込み信号240を受けるとフラッシュファイルシステム内のレジスタ241をアクセスして状況を把握し、適宜ユーザに報告する。図20はこの動作を実現するソフトウェアをフローチャートで示したものであり、(1)はフラッシュファイルシステム内でのチェックルーチンのフローチャート、(2)はホストシステムでのユーザへの警告プログラムのフローチャートである。図の説明を兼ねながら動作説明を行なう。フラッシュファイルシステムのコントローラは使用限界に達したと見られる記憶領域が検出できたらこのルーチンにジャンプしてくる。そして使用限界の記憶領域の容量を加算していく(a)。そしてある限界値に達した場合(b)には、自システム内のエラー報告レジスタにエラー内容として使用限界に達したことを示す値を書き込む(c)。そしてホストへの割込み信号を出力して(d)、本ルーチンを終了する。なお(a)の容量の加算値はフラッシュメモリ内あるいは他のメモリに保持しておく必要がある。また(b)の残り容量の限界値はシステムに応じて適宜設定するものとする。さて(d)による割込み信号を受けたホストシステムでは、区切りの良いところで処理を中断し(2)のフローチャートで示したルーチンに入り、まずフラッシュファイルシステム内のエラー報告レジスタをアクセスし割込みを受けた理由を判別し(e)、これがフラッシュファイルシステムの使用限界に達したための使用中止要求であったら(f)、それ以後のフラッシュファイルシステムのアクセスを禁止し(g)、ユーザに警告する(h)。警告の方法としては、情報機器の表示装置を利用したり警告インジケータを取り付けるなど視覚的に訴える方法と、警告音を発するなどの聴覚的に訴える方法が考えられる。また、書き込みアクセスだけを禁止しリードアクセスは許可するようにするとファイルデータのバックアップがとれるようになる。本実施例によればフラッシュファイルシステムが使用限界に達したらすぐにユーザに知らせることができ、データの信頼性を増すことができる。別の実施例として図18における割込み信号240は設けずに、ホストシステムがアクセスの度にエラー報告レジスタを読み出すこととして、図20(2)のルーチンを実行する。本実施例によればホストシステムのハードウェア構成を従来と全く変えずに、HDDをそのまま置き換えて、使用限界報告ができる。また別の実施例としては、定期的に保守プログラムをホストシステムで実行し、その際にエラー報告レジスタ241を読み出して、使用限界に達していないかをチェックすることにより、使用限界を認識する。本実施例によればホストシステムのBIOSプログラムやシステムプログラムに全く変更を加える必要がない。   Next, an embodiment for coping with the occurrence of defects in the flash memory will be described with reference to FIG. As described above, the flash memory has a limit in number of rewrites in principle. However, as the deterioration due to rewrite progresses, the consumption time of data erasing / writing becomes longer, and a problem arises in data retention reliability. Therefore, when it is determined that the memory device has not been used due to the deterioration of the memory, the use of the storage area or the memory chip should be stopped. When it is determined that the number of such areas has increased and the lifetime of the entire flash file system is approaching, the use of the flash file system should be stopped. As a method of detecting the deterioration of the flash memory, a method of judging from the erasure failure that the erasure is not completed within a specified number of times even if the erasure is repeated, or the erasure time is longer than a specified time. A method of judging from a writing failure that writing is not completed within a specified number of times even if writing is repeated. In addition, it is conceivable to manage the number of erasures and judge from the fact that the number of erasures has reached a predetermined number. When the storage capacity that has deteriorated and becomes unusable reaches a specified value, it is determined that the lifetime of the flash file system is reached. FIG. 19 shows an embodiment for realizing a means for alerting the user. In FIG. 19, a controller 240 in the flash file system 235 recognizes the use limit of the system and informs the host system of this. An interrupt signal 241 is an error report register indicating that the use limit has been reached. When the host receives the interrupt signal 240 through the HDD buffer 234, the host accesses the register 241 in the flash file system to grasp the situation and reports it to the user as appropriate. FIG. 20 is a flowchart showing software that realizes this operation. (1) is a flowchart of a check routine in the flash file system, and (2) is a flowchart of a warning program for a user in the host system. . The operation will be described while also serving as an illustration. The controller of the flash file system jumps to this routine when it detects a storage area that seems to have reached the usage limit. Then, the capacity of the use limit storage area is added (a). When a certain limit value is reached (b), a value indicating that the use limit has been reached is written in the error report register in the own system as the error content (c). Then, an interrupt signal is output to the host (d), and this routine is terminated. The added value of the capacity (a) needs to be stored in the flash memory or in another memory. Further, the limit value of the remaining capacity in (b) is appropriately set according to the system. The host system that received the interrupt signal in (d) interrupted the processing at a good break and entered the routine shown in the flowchart of (2). First, the error report register in the flash file system was accessed and an interrupt was received. The reason is determined (e), and if this is a use stop request due to reaching the usage limit of the flash file system (f), access to the flash file system thereafter is prohibited (g) and the user is warned (h) ). As a warning method, a method of visually appealing such as using a display device of an information device or attaching a warning indicator, and a method of visually appealing such as generating a warning sound can be considered. If only write access is prohibited and read access is allowed, file data can be backed up. According to the present embodiment, the user can be notified as soon as the flash file system reaches the usage limit, and the reliability of the data can be increased. As another embodiment, the interrupt signal 240 in FIG. 18 is not provided, and the routine of FIG. 20 (2) is executed by reading the error report register every time the host system accesses. According to the present embodiment, it is possible to report the usage limit by replacing the HDD without changing the hardware configuration of the host system at all. As another embodiment, the maintenance limit is recognized by periodically executing a maintenance program on the host system, reading the error report register 241 at that time, and checking whether the usage limit has been reached. According to the present embodiment, there is no need to make any changes to the BIOS program or system program of the host system.

次に電源遮断時の処理に対応する実施例を示す。本発明のフラッシュファイルシステムは基本的に補助記憶装置であり、ホストシステムより電源を供給される構成が一般的である。しかし動作的にはホストとは非同期であるため、ホストが非動作中にもフラッシュファイルシステムが動作している場合もある。しかしホストを扱うユーザがそれを認識していないとホストの電源を落してしまい、動作中のフラッシュファイルシステムへの電源供給が停止してしまう、ということが起こり得る。そこでこれに対応する発明の実施例を図21に示す。図21はホストからの電源供給が停止した後も、フラッシュファイルシステムが動作を続けられるようバッテリでバックアップ電源を供給する構成のシステムの図であり、図中、251はホストとなるパーソナルコンピュータ等の情報機器、252はフラッシュファイルシステム、253はバックアップ用のバッテリ、254はホスト251の電源が遮断されたときに、バッテリ253の電力がホスト251に逆流しないための逆流遮断回路である。255はホスト251からの電源供給が絶たれたことを検出する検出回路、256はその出力である検出信号、257はバッテリ253のフラッシュファイルシステム252への電力供給を遮断する遮断回路、258はフラッシュファイルシステム252が処理途中であった処理を終了し、電源供給を必要としなくなったため遮断回路257を動作させる遮断信号である。ホスト251から電源が供給されている間は、ホスト251の電源によりフラッシュファイルシステムが駆動される。これはバッテリ253の出力電圧とホスト251の供給電圧をうまく調整することによりバッテリ253にトリクル充電を施すことができる。ただしバッテリ253が2次電池でない場合には流入防止のダイオードなどを付加する必要がある。そしてホスト251の電源が落されてフラッシュファイルシステム252への電力供給が停止されると、バッテリ253から電源が供給されてフラッシュファイルは動作を続けることができる。そして電源遮断検出回路255が電源遮断を検出すると、検出信号256によりフラッシュファイルシステムがこれを認識し、処理中の作業を完了させ、その後電源遮断処理を行う。電源遮断処理では最後に遮断信号258によりバッテリ遮断回路257を遮断させて、フラッシュファイルシステムの動作を終了する。なお逆流遮断回路254は逆流防止用ダイオードを用いる方法が挙げられる。本実施例によればホスト251はフラッシュファイルシステムと信号上は完全に分離しているため、ホストのアクセス要求によるデータのやりとりだけとなり、ホストの動作停止はホスト内で閉じることができる。つまりホストはフラッシュファイルシステムを接続したことによるハード上の変更の必要がない。   Next, an embodiment corresponding to the process at the time of power-off will be shown. The flash file system of the present invention is basically an auxiliary storage device and generally has a configuration in which power is supplied from a host system. However, since the operation is asynchronous with the host, the flash file system may be operating even when the host is not operating. However, if the user handling the host does not recognize it, the host may be turned off, and the power supply to the flash file system in operation may be stopped. An embodiment of the invention corresponding to this is shown in FIG. FIG. 21 is a diagram of a system configured to supply backup power with a battery so that the flash file system can continue to operate even after power supply from the host is stopped. In FIG. 21, reference numeral 251 denotes a personal computer or the like serving as a host. An information device 252 is a flash file system, 253 is a backup battery, and 254 is a backflow cut-off circuit for preventing the power of the battery 253 from flowing back to the host 251 when the host 251 is powered off. 255 is a detection circuit that detects that the power supply from the host 251 has been cut off, 256 is a detection signal that is an output of the detection circuit, 257 is a cutoff circuit that shuts off the power supply to the flash file system 252 of the battery 253, and 258 is a flash This is a shut-off signal that causes the shut-off circuit 257 to operate because the processing that the file system 252 is in the middle of processing is terminated and power supply is no longer required. While the power is supplied from the host 251, the flash file system is driven by the power of the host 251. This can trickle charge the battery 253 by adjusting the output voltage of the battery 253 and the supply voltage of the host 251 well. However, when the battery 253 is not a secondary battery, it is necessary to add an inflow prevention diode or the like. When the host 251 is powered off and power supply to the flash file system 252 is stopped, power is supplied from the battery 253 and the flash file can continue to operate. When the power shutdown detection circuit 255 detects the power shutdown, the flash file system recognizes this by the detection signal 256, completes the work being processed, and then performs the power shutdown process. In the power cut-off process, the battery cut-off circuit 257 is finally cut off by the cut-off signal 258, and the operation of the flash file system is ended. The backflow blocking circuit 254 may be a method using a backflow prevention diode. According to the present embodiment, since the host 251 is completely separated from the flash file system in terms of signals, only the data exchange by the host access request is performed, and the host operation stop can be closed within the host. In other words, the host does not need to change the hardware by connecting the flash file system.

図22はホストの電源遮断に対応する別の実施例である。ただし図22の例では実際にはホストの電源による供給を続ける方式である。図中、258はホスト251からフラッシュファイルシステム252に供給される電源ライン、259はフラッシュファイルシステム252が作業中であり、電源供給の必要があることを示す電源ビジー信号である。ホスト251の電源回路は電源スイッチがOFFになっても電源ビジー信号259がアクティブの間は電源供給を停止せずに、フラッシュファイルシステムの処理が全て終了して電源ビジー信号259がインアクティブになったら電源供給を停止する。つまりユーザにとってはホストの情報機器の電源スイッチを切り、電源を遮断してしまったものとした時でも実動作上は遮断されずに、フラッシュファイルシステム252の作業終了を待機する。本実施例によればフラッシュファイルシステムの動作終了をホストが認識して電源を制御することにより、バックアップ電源などが必要なくフラッシュファイルシステムの電源回路の構成がシンプルになる効果がある。   FIG. 22 shows another embodiment corresponding to host power-off. However, in the example shown in FIG. 22, the supply by the power source of the host is actually continued. In the figure, 258 is a power supply line supplied from the host 251 to the flash file system 252 and 259 is a power supply busy signal indicating that the flash file system 252 is working and needs to be supplied with power. The power supply circuit of the host 251 does not stop the power supply while the power supply busy signal 259 is active even when the power switch is turned off, and all processing of the flash file system is completed and the power supply busy signal 259 becomes inactive. Then stop the power supply. That is, for the user, even if it is assumed that the power switch of the host information device is turned off and the power supply is cut off, the operation is not cut off in actual operation, and the end of the operation of the flash file system 252 is waited. According to this embodiment, since the host recognizes the end of the operation of the flash file system and controls the power supply, there is an effect that the configuration of the power supply circuit of the flash file system is simplified without requiring a backup power supply.

次に本発明の第5の実施例を述べる。図25は本発明を実現するためのハードウエア構成であり、図26は本発明のフラッシュメモリ内の記憶構成を示した図であり、図27はデータ書き込みのためのフローチャートである。便宜上図26より説明する。図中、311は512バイト(4キロビット)を単位とする記憶領域で、実際にデータを書き込むセクタであるため物理セクタと呼ぶ。これに対し記憶データの供給側は、論理セクタと呼ぶ仮想のセクタによりデータを管理することとする。全ての物理セクタ311および論理セクタにはそれぞれ相関性の全くない番号を付す。312はデータを一括消去する単位となる消去ブロックであり、その容量はメモリにより異なる。例えば消去ブロック単位が16キロバイトであれば32物理セクタが1ブロックとなる。313はメモリチップであり、消去単位16キロバイトで4メガビットのチップであれば32ブロック1024セクタに区分けされる。チップ単位でしか消去できないものは1チップ1ブロック、物理セクタごとに消去できるものはブロック数と物理セクタ数は同一である。フラッシュメモリは消去が行われたブロックに対しては、そのブロック内においてランダムライトアクセスが可能である。ただし一回書き込んだら次の消去を行わなければ書き込みはできない。従って複数セクタを1ブロックとするメモリにおいては、各セクタが全て書き込まれてから消去すべきである。以下の説明においてはフラッシュメモリは4メガビットのチップで、消去ブロックが16キロバイト(128キロビット)のものを使用することとする。図26はまさにその構成のメモリを図示している。図25はこのメモリチップ313を用いた場合のハードウエア構成で、図中301は書き込みデータの記憶領域であるフラッシュメモリ、302はフラッシュメモリ301をアクセスするアクセスコントローラ、303は記憶データやステータスデータを操作するプロセッサ、304は記憶してある論理セクタ番号のデータがフラッシュメモリ301のどこの物理セクタに記憶されているかを参照するために物理セクタ番号が記録されている論理セクタテーブル、305はフラッシュメモリ301の物理セクタ311が記憶している論理セクタ番号を参照するための物理セクタテーブル、306は各ブロックのステータスを記憶するブロックテーブルで、そのブロックが使用可能であるか、あるいはそのブロックには何セクタ書き込まれているか、などが記録される。307はフラッシュメモリは書き込み速度が読みだしに比べ非常に遅いため、書き込みデータを一時的に保持してデータの供給側に速くバス権を復帰させるためのライトバッファである。308は後述の整理ルーチンにおいて整理データを一時的に保持する整理データバッファである。図27は図25の構成において書き込みを行うための図25のプロセッサ303の動作を説明するフローチャートである。以下このフローチャートに従って動作を説明する。書き込むデータを記憶する際は1セクタ=512バイト単位により行う。すなわち512バイトに満たないデータも512バイトの記憶領域に格納される。その1セクタ単位のデータに番号を付し、これを論理セクタ番号とする。データの供給側はこの論理セクタ番号だけを意識すればよいものとする。今、データ供給側が1セクタの書き込みを要求したとすると、このデータに、ある論理セクタ番号を付し、以後このデータは書替えが起こっても先の論理セクタ番号で扱われる。一方データの記憶側ではこのデータの格納場所を決定する。格納場所は書き込みポインタに指し示されたブロックの未書き込みの最初のセクタである。つまり一つ前の書き込みをした物理セクタの次のセクタである。例えば図26において一つ前の書き込みを第1ブロックの第3物理セクタに書き込んだ場合、次の書き込みは第1ブロックの第4物理セクタに書き込みを行うものとする。この際のデータの格納場所の判断をプロセッサ303がブロックテーブルをアクセスして行う。この作業がフロチャート内の(a)である。(b)は書き込みに問題ない場合はそのブロックの書き込みセクタ数をインクリメントしてデータを書き込む。実際のライトアクセス制御はアクセスコントローラ302により行う。そして書き込み後は物理セクタテーブルおよび論理セクタテーブルに書き込んだセクタ番号をそれぞれ記録する。また以前に書き込んでいる論理セクタの再書き込みであれば、物理セクタテーブルに以前書き込んだ論理セクタ番号を消去する。これはその物理セクタのデータは無効であることを示すための動作である。(c)の整理ルーチンとは書き込みポインタの指し示すブロックがすでに全セクタ書き込まれており、書き込み不可能である時の動作ルーチンである。これは後述の図28のフローチャートにより説明する。(d)はブロックがこわれていたり、整理ルーチンに入った場合には書き込みが不可能であるため、そのブロックへの書き込みを中止し、次のブロックへの書き込みを行うための動作である。一方リードアクセスの際は必要なデータが格納されている論理セクタ番号で論理セクタテーブルを参照し、物理セクタ番号を割り出して必要なデータを読み出す。次に整理ルーチンについて説明する。整理ルーチンが必要となる理由は、これまで説明した書き込み方法では同じファイルのデータの書き替えにおいて別の物理セクタへ書き込みを行う。すなわち書き替える前に書き込んだデータは不要となるがメモリ上には記憶されたままであり消去すべきデータである。しかし不要となるたびに消去していたのでは消去回数が有限であるフラッシュメモリにとっては寿命を短くすることになる。そこで整理ルーチンによって消去する。整理ルーチンはブロックが書き込みデータで一杯になったときに行う。整理の具体的な方法は、図28のフローチャートに従って行う。以下フローチャート内の各部の説明をする。(a)整理するブロック内の全データを一度図25の整理データバッファ308に退避する。(b)退避し消去可能になったところでそのブロックを消去する。(c)整理データバッファにある各セクタの物理セクタテーブルを参照して、データが必要か不必要かを判断する。(d)必要なデータであれば再びそのブロックに書き込む。以上が本発明の一実施例の動作説明である。本実施例によればフラッシュメモリの各消去ブロックの消去が一部に集中せずに順番に行われるため、寿命が延びるという効果が期待できる。また書き込みにおいてフラッシュメモリの書き込み速度が遅いという欠点を補う効果がある。また不必要なデータを効率的に消去するため、半導体ディスクとして常に記憶容量を保っていられる効果がある。   Next, a fifth embodiment of the present invention will be described. FIG. 25 is a hardware configuration for realizing the present invention, FIG. 26 is a diagram showing a storage configuration in the flash memory of the present invention, and FIG. 27 is a flowchart for data writing. For convenience, FIG. 26 will be described. In the figure, reference numeral 311 denotes a storage area in units of 512 bytes (4 kilobits), which is a sector in which data is actually written and is called a physical sector. On the other hand, the storage data supply side manages data by virtual sectors called logical sectors. All physical sectors 311 and logical sectors are assigned numbers having no correlation. Reference numeral 312 denotes an erasure block which is a unit for collectively erasing data, and its capacity varies depending on the memory. For example, if the erase block unit is 16 kilobytes, 32 physical sectors are one block. Reference numeral 313 denotes a memory chip. If the chip is an erase unit of 16 kilobytes and a 4-megabit chip, it is divided into 32 blocks and 1024 sectors. Those that can be erased only on a chip basis have one block per chip, and those that can be erased for each physical sector have the same number of blocks and physical sectors. The flash memory allows random write access to an erased block within the block. However, once written, it cannot be written unless the next erase is performed. Therefore, in a memory having a plurality of sectors as one block, all the sectors should be erased after being written. In the following description, it is assumed that the flash memory is a 4 megabit chip and the erase block is 16 kilobytes (128 kilobits). FIG. 26 illustrates a memory with exactly that configuration. FIG. 25 shows a hardware configuration when this memory chip 313 is used. In FIG. 25, 301 is a flash memory that is a storage area for write data, 302 is an access controller that accesses the flash memory 301, and 303 is storage data and status data. The processor to be operated, 304 is a logical sector table in which the physical sector number is recorded in order to refer to which physical sector of the flash memory 301 the data of the stored logical sector number is stored, and 305 is the flash memory 301 is a physical sector table for referring to the logical sector number stored in the physical sector 311, and 306 is a block table for storing the status of each block. Whether the block is usable or what is in the block Sector is written Or, and the like are recorded. Reference numeral 307 denotes a write buffer for temporarily storing write data and quickly restoring the bus right to the data supply side because the flash memory has a writing speed much slower than that of reading. Reference numeral 308 denotes an arrangement data buffer that temporarily holds arrangement data in an arrangement routine described later. FIG. 27 is a flowchart for explaining the operation of the processor 303 of FIG. 25 for performing writing in the configuration of FIG. The operation will be described below with reference to this flowchart. When data to be written is stored, one sector = 512 bytes. That is, data less than 512 bytes is also stored in the 512-byte storage area. A number is assigned to the data of one sector unit, and this is used as a logical sector number. The data supply side need only be aware of this logical sector number. Assuming that the data supply side requests writing of one sector, a certain logical sector number is assigned to this data, and this data is handled with the previous logical sector number even if rewriting occurs thereafter. On the other hand, the data storage side determines the storage location of this data. The storage location is the first unwritten sector of the block pointed to by the write pointer. In other words, it is the sector next to the physical sector where the previous writing was performed. For example, in FIG. 26, when the previous write is written in the third physical sector of the first block, the next write is performed in the fourth physical sector of the first block. At this time, the processor 303 determines the data storage location by accessing the block table. This operation is (a) in the flowchart. In (b), when there is no problem in writing, the number of write sectors in the block is incremented and data is written. Actual write access control is performed by the access controller 302. After writing, the sector numbers written in the physical sector table and the logical sector table are recorded. If the logical sector previously written is rewritten, the logical sector number previously written in the physical sector table is erased. This is an operation for indicating that the data of the physical sector is invalid. The organizing routine (c) is an operation routine when the block indicated by the write pointer has already been written to all sectors and cannot be written. This will be described with reference to the flowchart of FIG. (D) is an operation for stopping writing to the block and writing to the next block because writing is impossible when the block is broken or the cleaning routine is entered. On the other hand, at the time of read access, the logical sector table is referred to by the logical sector number in which necessary data is stored, the physical sector number is determined, and necessary data is read out. Next, the organizing routine will be described. The reason why the organizing routine is necessary is that writing to another physical sector is performed in rewriting data of the same file in the writing method described so far. In other words, the data written before rewriting is unnecessary, but is stored in the memory and is data to be erased. However, if the flash memory is erased whenever it becomes unnecessary, the life of the flash memory with a finite number of erases is shortened. Therefore, it is erased by a cleaning routine. The cleanup routine is performed when a block is full of write data. A specific arrangement method is performed according to the flowchart of FIG. Hereinafter, each part in the flowchart will be described. (A) All the data in the block to be organized is once saved in the organized data buffer 308 of FIG. (B) The block is erased when it can be saved and erased. (C) Refer to the physical sector table of each sector in the organized data buffer to determine whether data is necessary or not. (D) If it is necessary data, it is written in the block again. The above is the description of the operation of the embodiment of the present invention. According to the present embodiment, the erasure of each erase block of the flash memory is performed sequentially without concentrating on a part, so that an effect of extending the life can be expected. In addition, there is an effect to compensate for the disadvantage that the writing speed of the flash memory is slow in writing. In addition, since unnecessary data is efficiently erased, there is an effect that the storage capacity of the semiconductor disk can always be maintained.

次に他の実施例を説明する。図29はフラッシュメモリの劣化を判定する装置の1構成例であり、図中401はフラッシュメモリセル、402は消去制御の開始から終了するまでの時間を測定する消去時間測定タイマ、403はフラッシュメモリセル401に書き込まれているデータを消去するための制御を行う消去制御回路、404はフラッシュメモリセル401の劣化度を記憶する劣化度管理テーブル、405はこれらを統括制御するコントローラ、406は劣化管理コントローラ405が消去制御回路403に消去を開始させる際に消去時間測定タイマ402を同時に起動するための起動信号、407は消去制御回路403が消去処理の終了を消去時間測定タイマ402に知らせる終了信号、408は消去時間測定タイマが測定した測定データである。図30は図29のコントローラ405の動作を説明するフローチャートであり、フラッシュメモリの劣化の判定をこのフローチャートに従って行う。次に動作を図29、図30を用いて説明する。まずシステム全体の制御からあるメモリセル401に消去の動作が必要になったとき、コントローラ405が消去要求を受ける(図30a)。するとコントローラ405は消去制御回路403に消去箇所と消去動作の開始を指示する(図30b)。これを受けた消去制御回路403は該当するメモリセル401の消去動作を開始する(図30c)。これと同時にコントローラ405は消去時間測定タイマ402を起動する(図30d)。コントローラ405は消去終了まで待機し、メモリ制御回路403がメモリセル401の消去を完了すると、コントローラ405にそれを伝える(図30e)。コントローラ405は消去時間測定タイマ402を参照して消去に費やした時間を認識し、劣化の度合いを判別してそれに応じた番号をその記憶領域に付す。例えば劣化の度合いを8段階に分け、未使用状態と同様な消去時間であれば"0"、劣化が進んで使用不可能な状態を"7"としその間の段階を"1"から"6"の番号をあてる。そしてその記憶領域に付した番号を劣化度管理テーブル404に格納する(図30f)。劣化度を8段階にすることにより、一つの記憶領域を1バイトに割り当てられ、管理がし易くなる。各記憶領域の扱いは、この劣化度管理テーブルをもとにする。劣化度が一つ進んでしまった領域はその都度劣化の小さい領域のデータを転送して劣化の進行をとめ、全記憶領域の劣化の平均化を図る。また劣化が最終段階に達した領域は使用を禁止する。これは記憶システム全体を統括して制御するコントローラが行う処理である。この記憶システムのコントローラの動作フローを図31に示した。同図を追って順に説明すると、ホストシステムから記憶システムにライトアクセス要求があり、データの書き込みを行う際に記憶システムのコントローラが消去動作を必要とすると判断したら(図31a)、図29のコントローラ405に消去と劣化管理の要求を出す(図31b)。消去動作が終了すると、消去を行った記憶領域の劣化度を図29の劣化度管理テーブル404により参照し(図31b)、劣化が進んでいた場合は劣化が最も進んでおらず、かつ入替えをまだ行っていない領域を探し出して(図31c)、データを転送して入替えを行う(図31d)。この劣化が最も進んでおらず、かつ入替えをまだ行っていないという判断は、第1の実施例で説明した入換えフラグを利用した方が効率的である。これは一度上記入替え処理を行った領域は、格納されているデータが劣化の進まないデータ(書換えが起きにくいデータ)ではないため、劣化平均化の入換えに使用すべきではなく、入換えフラグを立てて明示する。なお本実施例では記憶システム全体の制御と劣化判定の装置における制御を分け、コントローラを別のものにしているが、コントローラ405を記憶システムのコントローラと共用しても良い。また消去時間測定タイマ402もハードウェアとして構成されているが、コントローラによるソフト制御による消去時間測定でもよい。記憶システムの部品点数削減を目指すならこれらはなすべきことである。本実施例によれば劣化管理のためのテーブルをこれまでの実施例で採用していた消去管理テーブルに変えることができ、使用する記憶領域を飛躍的に節約することができる。しかもメモリの劣化という判定においては消去回数よりも消去時間の方がより直接的な判定材料となるため、より正確な劣化度の把握と、劣化の平均化が図れる効果がある。   Next, another embodiment will be described. FIG. 29 shows an example of the configuration of a device for determining deterioration of the flash memory. In the figure, 401 is a flash memory cell, 402 is an erase time measuring timer for measuring the time from the start to the end of erase control, and 403 is a flash memory An erasure control circuit that performs control for erasing data written in the cell 401, 404 is a deterioration degree management table that stores the deterioration degree of the flash memory cell 401, 405 is a controller that performs overall control thereof, and 406 is deterioration management. An activation signal for simultaneously activating the erase time measurement timer 402 when the controller 405 causes the erase control circuit 403 to start erasure; 407, an end signal that informs the erase time measurement timer 402 that the erase control circuit 403 has terminated the erase process; Reference numeral 408 denotes measurement data measured by the erase time measurement timer. FIG. 30 is a flowchart for explaining the operation of the controller 405 in FIG. 29, and the determination of the deterioration of the flash memory is performed according to this flowchart. Next, the operation will be described with reference to FIGS. First, when the memory cell 401 needs to be erased from the control of the entire system, the controller 405 receives an erase request (FIG. 30a). Then, the controller 405 instructs the erase control circuit 403 to start the erase location and erase operation (FIG. 30b). Receiving this, the erase control circuit 403 starts the erase operation of the corresponding memory cell 401 (FIG. 30c). At the same time, the controller 405 activates the erase time measurement timer 402 (FIG. 30d). The controller 405 waits until the erasing is completed, and when the memory control circuit 403 completes erasing of the memory cell 401, it notifies the controller 405 (FIG. 30e). The controller 405 recognizes the time spent for erasing with reference to the erasing time measurement timer 402, discriminates the degree of deterioration, and assigns a number corresponding thereto to the storage area. For example, the degree of deterioration is divided into 8 stages, and if the erasing time is the same as that in the unused state, “0” is assumed, and the state in which deterioration is advanced and unusable is “7”. Number is assigned. Then, the number assigned to the storage area is stored in the deterioration management table 404 (FIG. 30f). By setting the degree of deterioration to 8 levels, one storage area can be allocated to 1 byte, and management becomes easy. Each storage area is handled based on this deterioration management table. In the area where the degree of deterioration has advanced by one, the data of the area with small deterioration is transferred each time to stop the progress of deterioration, and the deterioration of all storage areas is averaged. Also, use of the area where the deterioration has reached the final stage is prohibited. This is processing performed by a controller that controls the entire storage system. The operation flow of the controller of this storage system is shown in FIG. If the host system has a write access request to the storage system and the controller of the storage system determines that an erasing operation is required when data is written (FIG. 31a), the controller 405 of FIG. Request for erasure and deterioration management (FIG. 31b). When the erasing operation is completed, the degree of deterioration of the erased storage area is referred to by the degree-of-degradation management table 404 in FIG. 29 (FIG. 31b). An area that has not yet been searched is found (FIG. 31c), and the data is transferred and replaced (FIG. 31d). It is more efficient to use the replacement flag described in the first embodiment to determine that this deterioration has not progressed the most and replacement has not yet been performed. This is because the area that has been subjected to the above replacement process is not data whose deterioration does not progress (data that is unlikely to be rewritten) and therefore should not be used for replacement of deterioration averaging. Make it clear. In this embodiment, the control of the entire storage system and the control in the apparatus for determining deterioration are separated and the controller is separate, but the controller 405 may be shared with the controller of the storage system. The erase time measurement timer 402 is also configured as hardware, but may be erase time measurement by software control by a controller. These are things you should do if you want to reduce the number of parts in your storage system. According to the present embodiment, the table for deterioration management can be changed to the erasure management table employed in the previous embodiments, and the storage area to be used can be drastically saved. In addition, in the determination of the deterioration of the memory, the erasure time is a more direct determination material than the number of erasures, so that there is an effect that the deterioration degree can be grasped more accurately and the deterioration can be averaged.

次に図24の実施例を利用した消去回数管理の別の実施例を図32により説明する。これまでの実施例における消去回数管理の方法は、消去が行われると1回ずつカウントアップして消去回数を細かく把握していたが、本実施例では消去回数管理テーブルの記憶容量削減のため下位のビットを切り捨ててしまう。図24の実施例では通常の使用状態においては消去回数をSRAMやDRAMなどの揮発性メモリに最下位ビットまで格納し、電源遮断時にフラッシュメモリに転送することとしていたが、この転送時に下位のビットから1ビット以上を切り捨てる(図32a)。あるいは桁上げして転送する(図32b)。なお捨ててしまう下位のビットは、消去回数の把握による劣化の認識が確度を失わない程度として、フラッシュメモリの消去回数の制限値により最適値を考えるべきであり、ビット切捨てにより切り捨てられてしまう消去回数の最大値がフラッシュメモリの消去回数の保証値の1%を越えない程度とする。つまり消去回数の保証値が1万回であれば、100回を越えない6ビット(最大値63)を切捨ての限度とする。本実施例によれば消去回数の把握が正確でなくなるが、誤差はフラッシュメモリの消去回数の保証値の1%以下としたため、もともと保証値の確度が一桁程度の幅があることから、消去が起きる傾向が強いデータか否かを判断するものであると考えれば、本質的な問題とはならない。これにより消去回数の管理に使用するフラッシュメモリの容量を削減することができる効果は大きい。   Next, another embodiment of the erase count management using the embodiment of FIG. 24 will be described with reference to FIG. The method of managing the number of erasures in the embodiments so far has been counted up once each time erasure is performed, and the number of erasures is grasped in detail. Truncates the bits. In the embodiment of FIG. 24, in the normal use state, the erase count is stored in the volatile memory such as SRAM or DRAM up to the least significant bit and transferred to the flash memory when the power is cut off. One bit or more is discarded from (Fig. 32a). Alternatively, carry and transfer (FIG. 32b). For the lower bits that are discarded, the optimum value should be considered based on the limit value of the number of erases of the flash memory, so that the recognition of deterioration by grasping the number of erases does not lose accuracy. It is assumed that the maximum value of the number of times does not exceed 1% of the guaranteed value of the number of erases of the flash memory. That is, if the guaranteed value of the number of erasures is 10,000 times, 6 bits (maximum value 63) not exceeding 100 times are set as the limit of truncation. According to the present embodiment, the erasure count is not accurately grasped, but since the error is 1% or less of the guaranteed value of the erase count of the flash memory, the accuracy of the guaranteed value originally has a width of about one digit. If it is considered to be data that has a strong tendency to occur, it is not an essential problem. As a result, the effect of reducing the capacity of the flash memory used for managing the number of erases is great.

次にテーブル領域を削減するための他の実施例を説明する。図33はこれまでの実施例で説明している物理セクタテーブル及び論理セクタテーブルを省略した記憶システムの構成図である。ただしこれらの代わりになるアドレス変換テーブル411を備える。他の既出の番号はアドレス変換テーブル411は劣化度平均化のためのデータ入替えを行っていない記憶領域のアドレス入力に対しては変換を行わず、データ入替えを行っている記憶領域のアドレス入力に対しては、入れ替えた先のアドレスを出力するテーブルである。従って物理セクタテーブルや論理セクタテーブルを必要とせず、基本的にはシステムからアクセス要求のあったアドレスをそのままメモリ上の物理的なアドレスに対応してアクセスし、その領域の劣化が進んで劣化度の平均化のためのデータの入替えを行ったら、アドレス変換の対象となる。本実施例は第1に実施例のような、ファイルデータの記憶単位(セクタ)と消去単位が一致している場合にだけ適用できる。そしてアドレス変換テーブルの容量は変換可能にできる領域の容量に依存する。すなわちアドレス変換テーブルの容量を小さくすれば変換を行える記憶容量が小さくなり、大きな領域を確保すれば多くの領域のアドレスを変換できるようになる。これはシステムの寿命に直接関与する要因である。なお図33は第1の実施例に改良を加えた形となっているが、消去管理テーブル7の代わりに図29により説明した劣化度管理テーブルを備えた実施例にも適用できる。本実施例によれば、データ管理が簡素化され、またテーブル領域を大きく削減できる効果がある。   Next, another embodiment for reducing the table area will be described. FIG. 33 is a configuration diagram of a storage system in which the physical sector table and logical sector table described in the above embodiments are omitted. However, an address conversion table 411 is provided instead of these. The other conversion numbers are the address conversion table 411 that does not convert the address input of the storage area that has not been subjected to data replacement for averaging the deterioration level, but is used as the address input of the storage area to which data replacement has been performed. On the other hand, it is a table for outputting the replaced address. Therefore, there is no need for a physical sector table or logical sector table. Basically, the address requested by the system is accessed as it is in correspondence with the physical address on the memory, and the degradation of the area progresses. If the data is replaced for averaging, the address is converted. This embodiment can be applied only when the file data storage unit (sector) and the erasure unit are the same as in the first embodiment. The capacity of the address conversion table depends on the capacity of the area that can be converted. That is, if the capacity of the address conversion table is reduced, the storage capacity that can be converted is reduced, and if a large area is secured, addresses in many areas can be converted. This is a factor directly related to the life of the system. FIG. 33 is a modification of the first embodiment, but it can also be applied to an embodiment provided with the deterioration management table described with reference to FIG. According to the present embodiment, data management is simplified and the table area can be greatly reduced.

次に動作中を示すインジケータを設ける実施例を説明する。図34は本実施例を示した内部構成例を示した図であり、図17をもとにしており既出の番号は図17と同様のものである。その他図中421はライトバッファ9からフラッシュメモリ1へのデータの転送中を示すプロセッサ3の出力ポート信号、422は出力ポート信号421により転送中であることを発光により示すインジケータである。インジケータとしては発光ダイオードが適当である。図35は本実施例の外観図であり、(1)はカード形状の全体図、(2)は使用中の例を示した図である。図中423は本発明の補助記憶装置であるICカード、424はコネクタ、425は発光ダイオード、426はホストパソコンである。図34において標準IOバス201によりホストのパソコンが補助記憶装置205に書き込みアクセス処理の要求をして来ると、プロセッサ3はライトデータをライトバッファ9に格納するよう処理する。そしてそれが完了すると標準バス201に書き込み完了を示す信号を出力する。その後、プロセッサ3はライトバッファ9に格納されたデータをフラッシュメモリ1に転送、格納する。この処理を行っている間プロセッサ3は出力ポート信号421をアクティブにしてインジケータ422を発光させる。そしてライトバッファ9からフラッシュメモリ1への転送が終了したらプロセッサ3は出力ポート421をインアクティブにしてインジケータ425の発光を停止する。図35(1)はICカード形状で適用した例で、コネクタとは反対側の側面にインジケータ425を取付け、パソコン本体に取り付けた状態でインジケータ425の点灯が確認できるようにしている。(2)はノート型パソコンに実際に挿入した様子を示しており、ユーザはインジケータ425の点灯、非点灯を確認しながら作業ができる。ただしユーザが点灯を確認しなければならないのは基本的に電源を遮断するときだけである。本実施例によれば、回路構成が比較的単純であり、またインジケータの視認性が良くユーザの誤操作が防げる効果がある。   Next, an embodiment in which an indicator indicating the operation is provided will be described. FIG. 34 is a diagram showing an example of the internal configuration showing the present embodiment. The numbers already described are based on FIG. 17 and the same numbers as those in FIG. In the other figures, reference numeral 421 denotes an output port signal of the processor 3 indicating that data is being transferred from the write buffer 9 to the flash memory 1, and reference numeral 422 denotes an indicator which indicates that light is being transferred by the output port signal 421 by light emission. A light emitting diode is suitable as the indicator. FIG. 35 is an external view of the present embodiment, (1) is an overall view of the card shape, and (2) is a view showing an example in use. In the figure, 423 is an IC card which is an auxiliary storage device of the present invention, 424 is a connector, 425 is a light emitting diode, and 426 is a host personal computer. In FIG. 34, when the host personal computer makes a request for write access processing to the auxiliary storage device 205 via the standard IO bus 201, the processor 3 performs processing to store the write data in the write buffer 9. When this is completed, a signal indicating completion of writing is output to the standard bus 201. Thereafter, the processor 3 transfers and stores the data stored in the write buffer 9 to the flash memory 1. During this process, the processor 3 activates the output port signal 421 to cause the indicator 422 to emit light. When the transfer from the write buffer 9 to the flash memory 1 is completed, the processor 3 deactivates the output port 421 and stops the indicator 425 from emitting light. FIG. 35 (1) shows an example of application in the form of an IC card. An indicator 425 is attached to the side opposite to the connector so that the indicator 425 can be turned on when attached to the personal computer body. (2) shows a state where it is actually inserted into a notebook computer, and the user can work while confirming whether the indicator 425 is lit or not. However, the user has to confirm the lighting only when the power is cut off. According to the present embodiment, the circuit configuration is relatively simple, the visibility of the indicator is good, and there is an effect that an erroneous operation of the user can be prevented.

本発明における第1の実施例のハードウエア構成図。The hardware block diagram of the 1st Example in this invention. 本発明における第1の実施例のフラッシュメモリチップの記憶構成図。1 is a storage configuration diagram of a flash memory chip according to a first embodiment of the present invention. FIG. 本発明における第1の実施例の動作を示すメインルーチンのフローチャートThe flowchart of the main routine which shows operation | movement of 1st Example in this invention. 本発明における第1の実施例の消去管理動作を示す消去管理ルーチンのフローチャートFlowchart of an erase management routine showing the erase management operation of the first embodiment of the present invention. 本発明における第2の実施例のハードウエア構成図。The hardware block diagram of the 2nd Example in this invention. 本発明における第2の実施例のフラッシュメモリチップの記憶構成図。The memory block diagram of the flash memory chip of 2nd Example in this invention. 本発明における第2の実施例の動作を示すメインルーチンのフローチャートThe flowchart of the main routine showing the operation of the second embodiment of the present invention. 本発明における第2の実施例のセクタ整理動作を示す整理ルーチンのフローチャートArrangement routine flowchart showing the sector arrangement operation of the second embodiment of the present invention. 本発明における第2の実施例の消去管理動作を示す消去管理ルーチンのフローチャートFlowchart of the erase management routine showing the erase management operation of the second embodiment of the present invention. 本発明における第3の実施例のハードウエア構成図。The hardware block diagram of the 3rd Example in this invention. 本発明における第3の実施例のフラッシュメモリチップの記憶構成図。The memory block diagram of the flash memory chip of 3rd Example in this invention. 本発明における第3の実施例の消去管理動作を示す消去管理ルーチンのフローチャートFlowchart of the erase management routine showing the erase management operation of the third embodiment of the present invention. 本発明における第4の発明のハードウエア構成図Hardware configuration diagram of the fourth invention in the present invention 消去ブロックごとにテーブルを持たせたフラッシュメモリチップの構成図Configuration diagram of a flash memory chip with a table for each erase block データ領域とは別に情報を格納する領域を持たせたフラッシュメモリチップの構成図Configuration diagram of a flash memory chip with an area for storing information in addition to the data area データ領域とは別にバッファ領域をもたせたフラッシュメモリチップの構成図Configuration diagram of a flash memory chip with a buffer area separate from the data area 本発明における第4の実施例のフラッシュファイルシステムのインターフェース部分のハードウエア構成図。The hardware block diagram of the interface part of the flash file system of 4th Example in this invention. 本発明における第4の実施例のフラッシュファイルシステムを補助記憶装置とする情報機器の構成図。The block diagram of the information equipment which uses the flash file system of 4th Example in this invention as an auxiliary storage device. 本発明における使用限界を報告する実施例の構成図Configuration diagram of an embodiment for reporting the use limit in the present invention 本発明における使用限界を報告する実施例のフローチャートFlowchart of an embodiment for reporting the use limit in the present invention 本発明におけるバックアップ電池を備えた実施例の構成図The block diagram of the Example provided with the backup battery in this invention 本発明における電源制御信号を備えた実施例の構成図The block diagram of the Example provided with the power supply control signal in this invention データ領域とは別に情報格納領域をもたせたフラッシュメモリのデータ格納の実施例Example of flash memory data storage with an information storage area separate from the data area 図13に対しEEPROMを省略した実施例の構成図Configuration diagram of the embodiment in which the EEPROM is omitted from FIG. 本発明における第5の実施例のハードウエア構成図Hardware configuration diagram of fifth embodiment of the present invention 本発明における第5の実施例のフラッシュメモリチップの記憶構成図Storage configuration diagram of a flash memory chip according to a fifth embodiment of the present invention 本発明における第5の実施例の動作を示すメインルーチンのフローチャートMain routine flowchart showing the operation of the fifth embodiment of the present invention. 本発明における第5の実施例のセクタ整理動作を示す整理ルーチンのフローチャートArrangement routine flowchart showing the sector arrangement operation of the fifth embodiment of the present invention. 時間による劣化の管理によりシステムの長寿命化を図る実施例の構成図Configuration diagram of an embodiment that extends the life of the system by managing deterioration over time 図29の実施例における劣化管理コントローラの動作フローOperation flow of the deterioration management controller in the embodiment of FIG. 図29の実施例における記憶システムコントローラの動作フローOperation flow of the storage system controller in the embodiment of FIG. 消去管理テーブルの記憶容量を節減する実施例の説明図Explanatory drawing of the Example which saves the memory capacity of an erasure | elimination management table セクタの管理テーブルの記憶容量を節減するためにアドレス変換テーブルを採用した実施例の構成図Configuration diagram of an embodiment that employs an address conversion table to reduce the storage capacity of the sector management table 補助記憶装置の動作中を示すインジケータを設けた実施例の構成図Configuration diagram of an embodiment provided with an indicator indicating that the auxiliary storage device is operating 補助記憶装置の動作中を示すインジケータを設けた実施例の外観図External view of an embodiment provided with an indicator indicating that the auxiliary storage device is in operation

符号の説明Explanation of symbols

1 フラッシュメモリ
3 プロセッサ
5 論理セクタテーブル
6 物理セクタテーブル
7 消去回数管理テーブル
8 ステータステーブル
9 ライトバッファ
13 消去ブロック
49 書き込みセクタ数テーブル
51 整理バッファ
52 物理セクタ
111 ワンチップマイコン
112 RAMコア
113 ROMコア
114 EEPROM
115 DRAMまたはSRAM
116 テーブル領域
132 テーブル格納領域
142 バッファ領域
143 アドレスカウンタ
207 I/Fレジスタ群
227 BIOSROM
236 I/Fユニット
241 エラー報告レジスタ
253 バックアップバッテリ
259 電源ビジー信号
402 消去時間測定タイマ
404 劣化度管理テーブル
411 アドレス変換テーブル
421 出力ポート信号
422 インジケータ
425 インジケータ(外観)
1 Flash memory 3 Processor 5 Logical sector table 6 Physical sector table 7 Erase count management table 8 Status table 9 Write buffer 13 Erase block 49 Write sector number table 51 Arrangement buffer 52 Physical sector 111 One-chip microcomputer 112 RAM core 113 ROM core 114 EEPROM
115 DRAM or SRAM
116 Table area 132 Table storage area 142 Buffer area 143 Address counter 207 I / F register group 227 BIOSROM
236 I / F unit 241 Error report register 253 Backup battery 259 Power supply busy signal 402 Erasing time measurement timer 404 Deterioration degree management table 411 Address conversion table 421 Output port signal 422 Indicator 425 Indicator (appearance)

Claims (6)

記憶装置であって、
電気的に消去可能なラッシュメモリと、
外部のホストシステムからのアクセス要求に応答して、前記フラッシュメモリをアクセスするための制御部とを備え、
前記フラッシュメモリは、セクタ単位でデータを記憶可能で
前記制御部は、前記ホストシステムからの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、次のデータの書き込みをするセクタを示すポインタをインクリメントすることによってデータが書き込まれていなくて書き込み可能なセクタをさがし出し、前記データが書き込まれていなくて書き込み可能なセクタに前記ホストシステムからの書き込み要求に伴うデータを書き込むことを特徴とする記憶装置。
A storage device,
And the flash memory can be electrically erased,
A controller for accessing the flash memory in response to an access request from an external host system,
The flash memory can store data in units of sectors ,
When the write request from the host system is a rewrite request to a logical sector to which data has already been written, the control unit writes data by incrementing a pointer indicating a sector to which next data is written. A storage device that searches for a sector that is not yet writable and writes data that accompanies a write request from the host system to a sector in which the data is not yet written.
前記制御部は、論理セクタのデータが前記フラッシュメモリのどこの物理セクタに記載されているかを参照するための情報を用いて、前記ホストシステムからのアクセス要求がされた前記論理セクタに対応する物理セクタの番号を割り出すことを特徴とする請求項1に記載の記憶装置。   The control unit uses the information for referring to which physical sector of the flash memory the data of the logical sector is described, and uses the physical sector corresponding to the logical sector for which an access request is made from the host system. 2. The storage device according to claim 1, wherein a sector number is determined. 前記制御部は、論理セクタのデータが前記フラッシュメモリのどこの物理セクタに記載されているかを参照するための情報に、前記ポインタの示すセクタの物理セクタ番号を書き込むことを特徴とする請求項1に記載の記憶装置。  The control unit writes the physical sector number of the sector indicated by the pointer into information for referring to which physical sector of the flash memory the data of the logical sector is described. The storage device described in 1. 前記制御部は、前記ホストシステムからの書き込み要求が既にデータが書き込まれている前記論理セクタへの書き換え要求である場合に、前記データが書き込まれていなくて書き込み可能なセクタに前記ホストシステムからの書き込み要求に伴うデータを書き込んだ後に、前記ホストシステムからの書き込み要求がされた前記論理セクタに対応するセクタ内のデータを消去することを特徴とする請求項1から3の何れかに記載の記憶装置。  When the write request from the host system is a rewrite request to the logical sector in which data has already been written, the control unit sends a write-in sector to which the data has not been written from the host system. 4. The storage according to claim 1, wherein the data in the sector corresponding to the logical sector requested to be written from the host system is erased after the data accompanying the write request is written. 5. apparatus. 記憶装置であって、  A storage device,
電気的に消去可能なフラッシュメモリと、  Electrically erasable flash memory,
外部のホストシステムからのアクセス要求に応答して、前記フラッシュメモリをアクセスするための制御部とを備え、  A controller for accessing the flash memory in response to an access request from an external host system,
前記フラッシュメモリは、セクタ単位でデータを記憶可能で、  The flash memory can store data in units of sectors,
前記制御部は、前記ホストシステムからの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、前記フラッシュメモリ上のセクタについてデータが書き込まれているか否かを示すテーブルを参照してデータが書き込まれていなくて書き込み可能なセクタをさがし出し、前記データが書き込まれていなくて書き込み可能なセクタに前記ホストシステムからの書き込み要求に伴うデータを書き込み、前記ホストシステムからの書き込み要求に伴うデータを書き込んだセクタについてデータが書き込まれていることを示す情報を前記テーブルに書き込むことを特徴とする記憶装置。  The control unit includes a table indicating whether or not data is written for a sector on the flash memory when a write request from the host system is a rewrite request to a logical sector in which data has already been written. The sector in which data is not written is referred to, and a writable sector is searched for. The data accompanying the write request from the host system is written in the writable sector in which the data is not written, and writing from the host system is performed. A storage device, wherein information indicating that data is written is written in the table for a sector in which data accompanying a request is written.
前記制御部は、前記ホストシステムからの書き込み要求が既にデータが書き込まれている論理セクタへの書き換え要求である場合に、前記テーブルを参照して次のデータの書き込みをするセクタを示すポインタをインクリメントすることによって前記データが書き込まれていなくて書き込み可能なセクタをさがし出すことを特徴とする請求項に記載の記憶装置。
Wherein the control unit increments the when a write request from the host system is already rewritten request to the logical sector in which data is written, referring to said table pointer indicating the sector to the writing of the next data memory device according to claim 5, characterized in that out looking writable sectors if no said data is written by.
JP2003432025A 1991-11-28 2003-12-26 Storage device Expired - Fee Related JP3826936B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003432025A JP3826936B2 (en) 1991-11-28 2003-12-26 Storage device

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP31429791 1991-11-28
JP3175692 1992-02-19
JP23091492 1992-08-31
JP2003432025A JP3826936B2 (en) 1991-11-28 2003-12-26 Storage device

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2002320623A Division JP3587204B2 (en) 1991-11-28 2002-11-05 Storage device

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2004210922A Division JP2004303278A (en) 1991-11-28 2004-07-20 Information processing system

Publications (2)

Publication Number Publication Date
JP2004103043A JP2004103043A (en) 2004-04-02
JP3826936B2 true JP3826936B2 (en) 2006-09-27

Family

ID=32303580

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003432025A Expired - Fee Related JP3826936B2 (en) 1991-11-28 2003-12-26 Storage device

Country Status (1)

Country Link
JP (1) JP3826936B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004303278A (en) * 1991-11-28 2004-10-28 Hitachi Ltd Information processing system
JP2006252535A (en) * 2005-02-09 2006-09-21 Hitachi Ulsi Systems Co Ltd Storage apparatus
JP2009043286A (en) * 2005-02-09 2009-02-26 Hitachi Ulsi Systems Co Ltd Storage device
JP4933861B2 (en) * 2005-09-22 2012-05-16 株式会社日立製作所 Storage control device, data management system, and data management method
KR100873825B1 (en) * 2007-05-02 2008-12-15 삼성전자주식회사 Multibit Programming Device and Method of Nonvolatile Memory
JP5374313B2 (en) * 2009-10-16 2013-12-25 ファナック株式会社 Information processing apparatus having nonvolatile memory protection function

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2251323B (en) * 1990-12-31 1994-10-12 Intel Corp Disk emulation for a non-volatile semiconductor memory

Also Published As

Publication number Publication date
JP2004103043A (en) 2004-04-02

Similar Documents

Publication Publication Date Title
JP3407317B2 (en) Storage device using flash memory
KR960012360B1 (en) Storage device employing a flash memory
US8031536B2 (en) Storage device employing a flash memory
JPWO2008018258A1 (en) Storage device
JP4086083B2 (en) Information equipment with flash memory
JP3587204B2 (en) Storage device
JP3938208B2 (en) Information equipment with flash memory
JP3826936B2 (en) Storage device
JP4442708B2 (en) Information equipment with flash memory
KR100932801B1 (en) Memory management methods, memory devices, and computer readable storage media
JP4396765B2 (en) Information equipment with flash memory
JP2004303278A (en) Information processing system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040123

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040601

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050201

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050404

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050927

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051021

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20051219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060404

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060427

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060516

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060613

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060626

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090714

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100714

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110714

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120714

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees