JPH11339485A - Flash eeprom system - Google Patents

Flash eeprom system

Info

Publication number
JPH11339485A
JPH11339485A JP11023842A JP2384299A JPH11339485A JP H11339485 A JPH11339485 A JP H11339485A JP 11023842 A JP11023842 A JP 11023842A JP 2384299 A JP2384299 A JP 2384299A JP H11339485 A JPH11339485 A JP H11339485A
Authority
JP
Japan
Prior art keywords
sector
memory
sectors
address
controller
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.)
Granted
Application number
JP11023842A
Other languages
Japanese (ja)
Other versions
JP3944326B2 (en
Inventor
Eliyahou Harari
ハラリ エリヤホウ
D Norman Robert
ディー. ノーマン ロバート
Sanjay Mehrotra
メーロトラ サンジェイ
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.)
SanDisk Corp
Original Assignee
SanDisk Corp
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 SanDisk Corp filed Critical SanDisk Corp
Priority to JP02384299A priority Critical patent/JP3944326B2/en
Publication of JPH11339485A publication Critical patent/JPH11339485A/en
Application granted granted Critical
Publication of JP3944326B2 publication Critical patent/JP3944326B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a flash EEPROM system. SOLUTION: The flash EEPROM system comprises a processor 21 and a memory system comprising an array 33 of nonvolatile floating gate memory cells divided into a plurality of sectors. The sector includes a definite group of the memory cell arrays erasable simultaneously as one unit. At least one user data section and overhead section of memory cell are provided in each sector, an address in a format for designating at least one magnetic disc sector from a processor, and the address of at least one nonvolatile memory sector corresponding to at least one magnetic disc sector is designated in response to that address.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は一般的には半導体の
電気的に消去可能なプログラムリードオンリーメモリ
(EEprom)に関し、さらに詳しく言えばフラッシ
ュEEpromチップ回路を集積したシステムに関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates generally to a semiconductor electrically erasable program read only memory (EEprom), and more particularly to a system integrating flash EEprom chip circuits.

【0002】[0002]

【従来の技術】コンピュータシステムは、通常、大量の
データを蓄積するために磁気ディスクを使用する。しか
しながら、ディスクドライブはそれらが大型であるこ
と、およびそれらが高度に精密な機械的な駆動機構を必
要とする点において欠点をもっている。したがって、そ
れらは頑丈なものではなく、信頼性について問題がある
ばかりでなく、かなりの電力を消費する。固体記憶装置
であるDRAMとSRAMはこれらの欠点を持ち合わせ
ていない。しかしながら、それらはかなり高価なもので
あり、それらの記憶(揮発性)を維持するためには定常
的に電力を必要とし、かつ高価である。
2. Description of the Related Art Computer systems typically use magnetic disks to store large amounts of data. However, disk drives have disadvantages in that they are large and that they require highly precise mechanical drives. Therefore, they are not rugged, have not only reliability problems, but also consume considerable power. DRAMs and SRAMs, which are solid-state storage devices, do not have these disadvantages. However, they are fairly expensive, require constant power to maintain their memory (volatility), and are expensive.

【0003】EEpromとフラッシュEEpromは
同様に固体記憶装置である。しかしながら、不揮発性で
あり、そして電力が落とされた後でも、その記憶を維持
している。しかしながら、通常のフラッシュEEpro
mは、それらが耐えられる書込み(またはプログラム)
/消去回数の数において有限の寿命をもっている。典型
的にはそれらの装置は102 から103 の書込み/消去
回数を過ぎると信頼できなくなる。そこで従来そのよう
な素子、それらは半永久的なデータとかプログラムの蓄
積が要求される場合であって、再プログラムの必要性に
ある種の制限があってもいい場合において利用されてい
る。
[0003] EEprom and Flash EEprom are similarly solid state storage devices. However, it is non-volatile and retains its memory even after power has been lost. However, normal flash EEpro
m is the write (or program) they can withstand
/ Has a finite life in the number of times of erasing. Typically, these devices become unreliable after 10 2 to 10 3 write / erase cycles. Conventionally, such devices have been used where semi-permanent data or program storage is required, and where there may be some restrictions on the need for reprogramming.

【0004】[0004]

【発明が解決しようとする課題】したがって、本発明の
一つの目的はかなりの数の書込み/消去回数に耐性で信
頼性を維持することができる機能を拡張したフラッシュ
EEprom記憶システムを提供することである。さら
に他の目的はコンピュータシステムにおける不揮発性メ
モリとして使用することができる改良されたフラッシュ
EEpromシステムを提供することである。本発明の
さらに他の目的は、コンピュータシステムの磁気ディス
ク装置の代わりに使用することができる改良されたフラ
ッシュEEpromシステムを提供することである。本
発明のさらに他の目的は、消去動作において改良を施さ
れたフラッシュEEpromシステムを提供することに
ある。本発明のさらに他の目的は、改良された誤り訂正
を行なうことができるフラッシュEEpromシステム
を提供することにある。本発明のさらに他の目的は、書
込み動作を改良することによりフラッシュEEprom
システムに対するストレスを最小にすることができるフ
ラッシュEEpromを提供することにある。本発明の
さらに他の目的は書込み動作において向上させたフラッ
シュEEpromシステムを提供することにある。
SUMMARY OF THE INVENTION Accordingly, one object of the present invention is to provide a flash EEprom storage system having an extended function capable of withstanding a considerable number of times of writing / erasing and maintaining reliability. is there. Yet another object is to provide an improved flash EEprom system that can be used as non-volatile memory in a computer system. It is yet another object of the present invention to provide an improved flash EEprom system that can be used instead of a magnetic disk drive in a computer system. It is yet another object of the present invention to provide a flash EEprom system with improved erase operations. Still another object of the present invention is to provide a flash EEprom system capable of performing improved error correction. Yet another object of the present invention is to provide a flash EEprom by improving write operations.
An object of the present invention is to provide a flash EEprom that can minimize stress on a system. It is still another object of the present invention to provide a flash EEprom system with improved write operations.

【0005】[0005]

【課題を解決するための手段】上記および追加の目的は
EEpromチップのシステムの構造や回路や技術にお
ける改良によって達成される。
SUMMARY OF THE INVENTION The above and additional objects are achieved by improvements in the structure, circuitry, and technology of EEprom chip systems.

【0006】本発明の一つの特徴はチップ上のEEpr
omセルのアレイがセクタに構成され、そしてその各々
のセルに含まれる全てのセルが同時に消去されることで
ある。フラッシュEEpromメモリシステムは、コン
トローラの制御下にある1またはそれ以上のフラッシュ
EEpromチップを持っている。本発明においては、
チップ間のセクタの任意の組合せを選択し、それらを同
時に消去することを許容している。これにより、本発明
によるシステムは従来のすべてのセクタが毎回消去され
るか、または一つのセクタが一時に消去される従来の構
成に比べて、より早くかつ効果的になっている。本発明
においては、セクタの消去のための任意の組合せ、また
は、消去動作において、さらに消去されることを阻止す
るために、選ばれないという任意の組合せを可能にして
いる。この特徴は最初に正確に「消去された」状態にさ
れたセクタを余分に消去することを停止することにおい
て重要であり、これによりフラッシュEEpromシス
テムに不必要なストレスを与えることを防止している。
本発明においては、全システムにおける全てのセクタを
全体として選ばないことを許容することにより、消去の
ために全てのセクタが選ばれないという状態を可能にし
ている。この全体的なリセットは、このシステムをその
当初の消去のために選択されるべきセクタを選択する状
態に早急に戻すということである。本発明のさらに他の
特徴は、特定のチップを書込み、読みまたは書込みの動
作に選択するチップセレクト信号と独立して選択が行な
われることである。したがって、EEpromチップの
あるチップを他の読み、または書込み動作が行なわれて
いる他のチップに含まれないものを消去のために選択で
きるということである。
One feature of the present invention is that the EEpr on chip
An array of om cells is organized into sectors, and all cells contained in each of those cells are erased simultaneously. Flash EEprom memory systems have one or more flash EEprom chips under the control of a controller. In the present invention,
It allows any combination of sectors between chips to be erased simultaneously. This makes the system according to the invention faster and more effective than the conventional arrangement in which all conventional sectors are erased every time or one sector is erased at a time. In the present invention, any combination for erasing a sector or any combination that is not selected in order to prevent further erasure in an erasing operation is made possible. This feature is important in stopping extra erasing of sectors that were initially correctly "erased", thereby preventing unnecessary stress on the flash EEprom system. .
In the present invention, by allowing all sectors in the entire system not to be selected as a whole, it is possible to prevent all sectors from being selected for erasure. The overall reset is to return the system to a state of selecting a sector to be selected for its initial erase. Yet another feature of the invention is that the selection is made independently of a chip select signal that selects a particular chip for a write, read or write operation. This means that one chip of the EEprom chip can be selected for erasing that is not included in another chip on which another read or write operation is being performed.

【0007】本発明の他の特徴によれば、欠陥のあるフ
ラッシュEEpromメモリセルから発生する誤りを訂
正するために使用する改良された誤り訂正回路または、
技術が使用されることである。本発明の一つの特徴はセ
ルのレベルにおいて、欠陥セルのマッピングを許容する
ことであり、それによって同じセクタのセルで欠陥のセ
ルを置き換えることを可能にしている。欠陥セルを置き
換えられたセルのアドレスに接続するための欠陥ポイン
タは欠陥マップに記憶されている。欠陥のあるセルはア
クセスされるたびごとに、その悪いデータは、代替のセ
ルの良いデータに置き換えられる。
In accordance with another aspect of the invention, an improved error correction circuit used to correct errors originating from defective flash EEprom memory cells, or
Technology is to be used. One feature of the present invention is to allow mapping of defective cells at the cell level, thereby allowing replacement of defective cells with cells of the same sector. A defect pointer for connecting the defective cell to the address of the replaced cell is stored in the defect map. Each time a defective cell is accessed, its bad data is replaced with good data from a replacement cell.

【0008】本発明のさらに他の特徴はセクタレベルに
おいて欠陥マッピングを許容することである。一つのセ
クタにおける欠陥セルの数がある一定の数を超えたとき
にその欠陥セルを含むセクタは他のセクタによって代替
される。
[0008] Yet another feature of the present invention is to allow defect mapping at the sector level. When the number of defective cells in one sector exceeds a certain number, the sector containing the defective cell is replaced by another sector.

【0009】本発明の重要な特徴は、欠陥のあるセルや
欠陥のあるセクタが発見されると、直ちにリマップされ
ることである。これにより、誤り訂正コードを適当に修
正することにより、そのシステムで生じる可能性がある
誤りを最小にすることができる。
An important feature of the present invention is that defective cells and defective sectors are remapped as soon as they are found. Thus, by appropriately correcting the error correction code, errors that may occur in the system can be minimized.

【0010】本発明のさらに他の特徴によれば、書込み
キャッシュを設けることにより、フラッシュEEpro
mへの書込みの回数を最小にすることができることであ
る。これにより、このフラッシュEEpromメモリは
書込み/消去回数によって発生させられる、より少ない
ストレスに従属させることにより、その老朽化を防止す
ることである。最もアクティブなデータファイルは、フ
ラッシュEEpromメモリの代わりにキャッシュメモ
リに書込まれる。活動のレベルが予め定められたレベル
に減少されたときは、データファイルがキャッシュメモ
リからフラッシュEEpromメモリに書込まれる。本
発明の他の利点はより早いキャッシュメモリを使用する
ことによって増大させられる。
In accordance with yet another aspect of the present invention, the provision of a write cache provides a flash EEpro.
That is, the number of times of writing to m can be minimized. This is to prevent the flash EEprom memory from being aged by subjecting it to less stress generated by the number of times of writing / erasing. The most active data file is written to cache memory instead of flash EEprom memory. When the level of activity is reduced to a predetermined level, a data file is written from cache memory to flash EEprom memory. Another advantage of the present invention is increased by using faster cache memory.

【0011】本発明のさらに他の特徴によれば、コンピ
ュータシステムメモリとして長期間、不揮発性蓄積のた
めにコントローラとEEprom回路チップを持つプリ
ント回路基板が提供されるが、ハードディスクシステム
の代わりに提供されることである。そしてそのプリント
回路カードは本発明の他のいろいろな特徴を単独で、ま
たは組合せて盛り込むことができる。
In accordance with yet another aspect of the present invention, a printed circuit board having a controller and an EEprom circuit chip for long term non-volatile storage is provided as a computer system memory, but is provided instead of a hard disk system. Is Rukoto. The printed circuit card can then incorporate various other features of the present invention, alone or in combination.

【0012】さらに他の目的,特徴および本発明の利点
は、添付の図面を参照して本発明の好適な実施例の以下
の記載により理解されたい。
Further objects, features and advantages of the present invention will be understood from the following description of a preferred embodiment of the present invention with reference to the accompanying drawings.

【0013】[0013]

【発明の実施の形態】(EEpromシステム)本発明
の種々の特徴が盛り込まれているコンピュータシステム
が一般的に図1Aに示されている。典型的なコンピュー
タシステムはバスライン23に接続されているマイクロ
プロセッサ21、それにより主システムメモリ25にラ
ンダムアクセスすることができ、そして少なくとも1ま
たは2以上の入出力装置27、例えばキーボード、モニ
タ、モデム等々が設けられている。典型的なコンピュー
タシステムバス23に接続されている他の主たるコンピ
ュータの要素は大量の長期間使用可能な不揮発性メモリ
29である。典型的にそのようなメモリは10メガバイ
トのデータ蓄積能力をもつディスク駆動システムであ
る。データは、システムの中の揮発性メモリ25の中に
容易に引き出されて利用され、容易に補充されたり、ま
たは変えられたり、変更されたりする。
DETAILED DESCRIPTION OF THE INVENTION (EEprom System) A computer system incorporating various features of the present invention is shown generally in FIG. 1A. A typical computer system has a microprocessor 21 connected to a bus line 23, thereby allowing random access to main system memory 25, and at least one or more input / output devices 27, such as a keyboard, monitor, modem And so on. Another major computer element connected to a typical computer system bus 23 is a large amount of long-term non-volatile memory 29. Typically such a memory is a disk drive system with 10 megabytes of data storage capacity. Data is easily retrieved and used in volatile memory 25 in the system, and is easily replenished, changed, or changed.

【0014】本発明の一つの態様は、前記のようなディ
スクドライブのシステムをある半導体メモリに変えるこ
とであるが、その際に不揮発性,メモリへのデータの消
去および再書込の容易性,アクセス速度,コストおよび
信頼性を犠牲にしないことである。これは電気的に消去
可能でありプログラム可能なリードオンリーメモリ(E
Eprom)の半導体回路チップを用いることによっ
て、完成される。この形式のメモリはハードディスクで
磁気的なメモリ媒体を駆動するものに比較して、動作電
力が少なく、非常に軽量という付加的な利点を備えるも
のであり、これにより電池で動作させられる可搬型のコ
ンピュータに適しているということができる。
One aspect of the present invention is to change the above-described disk drive system to a certain semiconductor memory. In this case, the system is non-volatile, and the erasing and rewriting of data in the memory is easy. Do not sacrifice access speed, cost and reliability. This is an electrically erasable and programmable read only memory (E
It is completed by using a semiconductor circuit chip of Eprom). This type of memory has the additional advantages of lower operating power and very light weight compared to those that drive magnetic memory media with a hard disk, thereby making it portable and battery operated. It can be said that it is suitable for computers.

【0015】全体の記憶装置29はコンピュータのシス
テムバス23に接続されているメモリコントローラ31
とEEpromの集積回路チップのアレイ33から構成
されている。データと命令はコントローラ31からシリ
アルデータ線35を介して一義的にEEpromアレイ
33に通信される。同様にして、データとステータス信
号は、EEprom33からコントローラ30にシリア
ルデータ線37を介して通信される。図1Aにはコント
ローラ31とEEpromアレイ33間のその他の制御
やステータス回路は示されていない。
The entire storage device 29 is a memory controller 31 connected to the system bus 23 of the computer.
And an array 33 of EEprom integrated circuit chips. Data and instructions are uniquely communicated from the controller 31 to the EEprom array 33 via the serial data line 35. Similarly, the data and the status signal are communicated from the EEprom 33 to the controller 30 via the serial data line 37. FIG. 1A does not show other control and status circuits between the controller 31 and the EEprom array 33.

【0016】図1Bを参照すると、コントローラ31
は、好ましくは一つの集積回路チップ上に形成されてい
る。システムバス23の一部であるシステムアドレスと
データバス39はシ、ステム制御線41に接続されてお
り、そのシステム制御線41は読込み,書込みおよにそ
の他通常のコンピュータシステム制御線を含んでいる。
Referring to FIG. 1B, the controller 31
Are preferably formed on one integrated circuit chip. A system address and data bus 39, which is part of the system bus 23, is connected to a system and system control line 41, which includes read, write and other normal computer system control lines. .

【0017】EEpromアレイ33はEEpromの
集積回路チップ43、45、47等々を複数個含んでい
る。それぞれはインタフェース回路40からのそれぞれ
のチップセレクトおよびイネーブル線49、51、53
を含んでいる。インタフェース回路40は、さらに回路
57とシリアルデータ線35、37とのインタフェース
として働く。EEpromチップ43、45、47に書
込まれるか、または読出されるメモリの位置アドレスと
データはバス55、論理およびレジスタ回路57、さら
に他のバス59を通してメモリチップ43、45、47
等々に伝達される。
The EEprom array 33 includes a plurality of EEprom integrated circuit chips 43, 45, 47, and the like. Each is provided with a respective chip select and enable line 49, 51, 53 from the interface circuit 40.
Contains. The interface circuit 40 further functions as an interface between the circuit 57 and the serial data lines 35 and 37. Memory location addresses and data written to or read from the EEprom chips 43, 45, 47 are transferred to the memory chips 43, 45, 47 via a bus 55, a logic and register circuit 57 and another bus 59.
And so on.

【0018】図1Aと図1Bに示されている全体のメモ
リ29は、1枚のプリント回路カードに適当なメモリの
大きさで製造されている。図1Bの種々のシステムバス
39と41は他のコンピュータシステムとともに、その
ようなカードの接続ピンに接続されている。さらに前記
カードやその要素には種々の標準的な電力供給電圧(図
示せず)が接続されている。
The entire memory 29 shown in FIGS. 1A and 1B is manufactured in a memory size appropriate for one printed circuit card. The various system buses 39 and 41 of FIG. 1B, along with other computer systems, are connected to the connection pins of such a card. In addition, various standard power supply voltages (not shown) are connected to the card and its components.

【0019】大量のメモリのためには、一つのアレイ3
3に形成されているものでは十分でない場合がありえ
る。そのような場合には、制御チップ31のシリアルデ
ータ線35、37に付加的なEEpromアレイを接続
することができる。このことは好ましくは一つのプリン
ト回路カードによって行なわれることが望ましいのであ
るが、それをするために十分なスペースのない場合に
は、1またはそれ以上のEEpromアレイを第2のプ
リント回路カードの上に形成し、そしてそれを物理的に
第1のものの上に設けるか、設けてそれを共通のコント
ローラチップ31に接続することによって行なうことが
できる。
For large amounts of memory, one array 3
3 may not be enough. In such a case, an additional EEprom array can be connected to the serial data lines 35, 37 of the control chip 31. This is preferably done by one printed circuit card, but if there is not enough space to do so, one or more EEprom arrays may be placed on the second printed circuit card. And providing it physically on the first one, or by providing it and connecting it to a common controller chip 31.

【0020】(メモリ構造の消去)蓄積されるデータが
ファイルまたはブロックとして行なわれるシステムデザ
インにおいては、そのデータは定期的に改定されたり、
または新しい情報が挿入される必要がある。そして、も
はや不必要となった情報の上に、さらに書込みを行なう
ことにより、追加の情報を収容することが望まれる場合
がある。フラッシュEEpromメモリにおいては、メ
モリセルはまず初めに情報を蓄積する前に消される必要
がある。すなわち、このことは書込み(またはプログラ
ム)の操作の前に常に消去の動作が先行されるというこ
とである。
(Erase of Memory Structure) In a system design in which data to be stored is performed as a file or a block, the data is periodically revised,
Or new information needs to be inserted. In some cases, it is desired to store additional information by performing further writing on information that is no longer needed. In flash EEprom memories, memory cells must first be erased before storing information. In other words, this means that an erase operation always precedes a write (or program) operation.

【0021】従来のフラッシュ消去メモリ装置において
は、消去の動作はいくつかの方法があり、その一つより
行なわれる。例えば、インテル・コーポレイションの2
7F−256、CMOSはフラッシュEEpromにお
いては、全体のチップが一時に消去される。もしチップ
の中の情報の全てが消去されるべきではないときには、
まず初めに一時的にその情報が救済されなくてはならな
い。そしてそれは、他のメモリ(典型的にはRAM)に
書込まれる。そしてその情報はその装置に再度プログラ
ムすることによって、不揮発性のフラッシュ消去メモリ
の中に回復される。これは時間を要することであり、費
用もかかり、作業空間も必要である。
In a conventional flash erase memory device, there are several methods of erasing operation, one of which is performed. For example, Intel Corporation 2
7F-256, CMOS flash EEprom erases entire chip at once. If not all of the information on the chip should be erased,
First, the information must be temporarily rescued. It is then written to another memory (typically RAM). The information is then restored into the nonvolatile flash erase memory by reprogramming the device. This is time consuming, expensive, and requires work space.

【0022】他の装置、例えばシーク・テクノロジー・
インコーポレイテッドのモデル48512フラッシュE
Epromチップにおいては、メモリはブロック(また
はセクタ)に分割されており、それらは別々に分離して
消去可能である。しかしながら、毎回一つずつ行なわな
ければならない。希望するセクタの選択により、消去の
段階に入り、指定された領域が消去される。一時的な記
憶装置の必要はなくなるのであるが、種々のメモリ領域
の消去は依然として時間がかかる逐次作業を必要とす
る。
Other devices, such as Seek Technology
Incorporated Model 48512 Flash E
In Eprom chips, the memory is divided into blocks (or sectors), which can be separately separated and erased. However, it must be done one by one each time. Upon selection of a desired sector, an erasing step is started, and the designated area is erased. Although the need for temporary storage is eliminated, erasing various memory areas still requires time consuming sequential work.

【0023】本発明においては、フラッシュEEpro
mメモリはいくつかのセクタに分割され、そこにおいて
そのセクタに含まれるセルは同時に消去することができ
る。各々のセクタは、別々にアドレスされ、そして選択
的に消去される。最も重要な特徴は一緒に消去すべきい
くつかのセクタの組合せを選択できることである。これ
により、各々を独立して消去するという従来の技術に見
られるものに比較してより早い消去システムを提供する
ことができるのである。
In the present invention, the flash EEpro
The m-memory is divided into several sectors, where the cells contained in that sector can be erased simultaneously. Each sector is addressed separately and selectively erased. The most important feature is that several sector combinations can be selected to be erased together. This can provide a faster erasing system as compared to what is found in the prior art of erasing each independently.

【0024】図2は、消去のために選ばれたいくつかの
セクタを略図している。一つのフラッシュEEprom
システムは、例えば、201、203、205のように
1またはそれ以上のフラッシュEEpromチップを含
んでいる。それらは線209を介してコントローラ31
と通信している。典型的にはコントローラ31それ自身
は図示されていないマイクロプロセサシステムと通信し
ている。各フラッシュEEpromチップの中のメモリ
はセクタに分離されており、その一つのセクタの中の全
ての記憶セルは同時に消去できる。使用者に利用可能な
ものとして、例えば各々のセクタが512バイト(すな
わち512×8セル)があり、一つのチップは1024
セクタを持っている。各セクタは独立してアドレス可能
に分割されており、そして例えばセクタに211、21
3、215、217等のように複数のセクタが消去可能
に選択される。図2に図示されているように、選択され
たセクタは一つのEEpromチップに限られるか、ま
たはシステム中のいくつかのチップ内に分散させられる
ことができる。選ばれたセクタは同時に消去されるであ
ろう。この能力は、この発明によるメモリシステムに従
来の構造のものよりも、より早い操作を許容するもので
ある。
FIG. 2 schematically illustrates several sectors selected for erasure. One Flash EEprom
The system includes one or more flash EEprom chips, eg, 201, 203, 205. They are connected via line 209 to controller 31
Communicating with Typically, controller 31 itself is in communication with a microprocessor system (not shown). The memory in each flash EEprom chip is divided into sectors, and all storage cells in one sector can be erased simultaneously. Available to the user, for example, each sector has 512 bytes (ie, 512 × 8 cells), and one chip has 1024 bytes.
Have a sector. Each sector is independently addressably divided and, for example, sectors 211, 21
A plurality of sectors, such as 3, 215, 217, etc., are selected to be erasable. As shown in FIG. 2, the selected sector can be limited to one EEprom chip or distributed among several chips in the system. The selected sectors will be erased at the same time. This capability allows the memory system according to the present invention to operate faster than with conventional structures.

【0025】図3Aは、フラッシュEEprom(例え
ば図2のチップ201など)で、1またはそれ以上のセ
クタが消去のために選択または選択されなかった状態を
示すブロックダイヤグラムである。実際上は各セクタ、
例えば211、または213が各セクタに関連して設け
られている、例えば211、213のような消去可能レ
ジスタの状態の設定または、設定によりタグをつけると
か選択されるかによって、各々のセクタ221、223
が選択される。選択と引き続く消去動作は、コントロー
ラ31(図2参照)のコントロールの下に行なわれる。
回路220はコントローラ31と複数の線209によっ
て通信させられている。コントロールからのコマンド情
報は直列インタフェース227を介してコマンドレジス
タ225によって、回路220内で捕捉される。そして
それは、コマンドデコーダ229によってデコードさ
れ、コマンドデコーダ229は種々の制御信号を出力す
る。同様にアドレス情報はアドレスレジスタ231によ
って補足され、そしてアドレスデコーダ233によって
デコーダされる。
FIG. 3A is a block diagram illustrating a flash EEprom (eg, chip 201 of FIG. 2) with one or more sectors selected or not selected for erasing. In practice, each sector,
For example, 211 or 213 is provided in association with each sector. For example, depending on whether the state of an erasable register such as 211 or 213 is set or whether a tag is selected or selected depending on the setting, 223
Is selected. The selection and the subsequent erasing operation are performed under the control of the controller 31 (see FIG. 2).
The circuit 220 is in communication with the controller 31 via a plurality of lines 209. Command information from the control is captured in circuit 220 by command register 225 via serial interface 227. Then, it is decoded by the command decoder 229, and the command decoder 229 outputs various control signals. Similarly, address information is captured by address register 231 and decoded by address decoder 233.

【0026】一例として、セクタ211を消去のために
選択するためには、前記コントローラはセクタ211の
アドレスを回路220に送る。このアドレスは、線23
5の中にデコードされ、そしてそれは、レジスタ221
の出力239をハイ(HIGH)にセットするためにイ
ネーブルバス237の消去イネーブル信号と共同して組
み合わせて用いられる。これにより、セクタ211は引
き続く消去動作が可能になる。同様にして、もしセクタ
213も同様に消去されるべきであると要求されている
ときは、レジスタ223のその関連するレジスタ23も
ハイにセットされるであろう。
As an example, to select sector 211 for erasure, the controller sends the address of sector 211 to circuit 220. This address is on line 23
5, which is decoded in register 221
Is used in conjunction with the erase enable signal on enable bus 237 to set output 239 to HIGH. As a result, the sector 211 can perform a subsequent erasing operation. Similarly, if sector 213 is required to be erased as well, its associated register 23 of register 223 will also be set high.

【0027】図3Bは、レジスタ221または223の
構造をより詳細に示してある。消去イネーブルレジスタ
221はSET/RESETラッチである。そのセット
入力端子241はアドレスデコード線235によってゲ
ートされたバス237の消去イネーブル信号セットから
得られる。同様にして、リセット入力243は線235
中のアドレスデコードによってゲートされるバス237
中の消去イネーブル信号をクリアするものから得られ
る。このようにして消去イネーブル信号または消去イネ
ーブル信号をクリアする信号がすべてのセクタに発生さ
せられたときにアドレスされたセクタのみにその信号が
有効となる。
FIG. 3B shows the structure of the register 221 or 223 in more detail. The erase enable register 221 is a SET / RESET latch. The set input terminal 241 is obtained from the erase enable signal set of the bus 237 gated by the address decode line 235. Similarly, reset input 243 is connected to line 235
Bus 237 gated by address decode in
Obtained from those that clear the erase enable signal inside. In this way, when the erase enable signal or the signal for clearing the erase enable signal is generated in all the sectors, the signal becomes valid only in the addressed sector.

【0028】全ての消去されるべきセクタが選択された
後にコントローラは回路220、同様に全てのグローバ
ル消去コマンドが251によって現れているときに線2
09に沿って消去のための高電圧が発生させられる。か
くしてその装置は、全ての選択されたセクタ(例えばセ
クタ211と213)が同時に消去されるでろう。チッ
プ内の希望するセクタが消去されることに加えて本発明
による構造では、同時消去のために異なる種類のチップ
上のセクタの選択を許容している。
After all sectors to be erased have been selected, the controller returns to circuit 220, also when all global erase commands are represented by 251 at line 2.
A high voltage for erasing is generated along 09. Thus, the device will erase all selected sectors (eg, sectors 211 and 213) simultaneously. In addition to the desired sectors in the chip being erased, the structure according to the invention allows the selection of sectors on different types of chips for simultaneous erasure.

【0029】図4の(1)〜(11)は、図3Aの回路
220に関連して用いられるアルゴリズムを図示してい
る。図4の(1)でコントローラは回路220の中でデ
コードされた消去されるべきセクタに関連させられてい
る消去イネーブルレジスタにアドレスをシフトさせる。
図4の(2)においてコントローラはアドレスされたセ
クタの消去イネーブルレジスタへアドレスデコードされ
た信号をラッチするために用いられる消去イネーブルコ
マンドをセットするためにデコードする。このタグはそ
のセクタの引き続く消去のためである。図4の(3)に
おいて、もしそれ以上のより多くのセクタがタグが付さ
れるべきであるときには消去されるべき全てのセクタに
タグが付加されるまで図4の(1)から図4の(2)に
示されている関連して記述されている操作を繰り返す。
消去されるべき全てのセクタにタグが付された後にコン
トローラは図4の(4)に示されている消去のサイクル
を開始させる。
FIGS. 4 (1)-(11) illustrate the algorithm used in connection with the circuit 220 of FIG. 3A. In FIG. 4 (1), the controller shifts the address in circuit 220 to the erase enable register associated with the sector to be erased that has been decoded.
In FIG. 4B, the controller decodes to set the erase enable command used to latch the address decoded signal into the erase enable register of the addressed sector. This tag is for subsequent erasure of the sector. In FIG. 4 (3), if more sectors are to be tagged, FIG. 4 (1) to FIG. The related operation shown in (2) is repeated.
After all the sectors to be erased have been tagged, the controller initiates the erase cycle shown in FIG. 4 (4).

【0030】最適化された消去の構成は同時継続中の米
国特許出願に開示されている。それらは同時出願継続中
の米国特許出願第204,175号でエリヤホウ ハラ
リ博士により1988年6月8日に出願されたものと本
出願と同時に、サンジャイ メハロトラとハラリ博士に
よって出願された「多状態EEprom読み書き回路お
よびその技術」に示されているものである。フラッシュ
EEpromセルは消去パルスを印加することによって
消去され、引続き読みによりそのセルが消去されて消去
状態にあるかどうかということが検証される。もしそう
でない場合、そのセルが消された状態にあると検証され
るまでパルスの印加と検証が繰り返される。この制御さ
れた方法によって消去することによりセルはEEpro
mを老化させるかまたはプログラムを困難にするであろ
う過剰消去にさらされないようにする。
An optimized erase arrangement is disclosed in a co-pending US patent application. They were filed on June 8, 1988 by Dr. Eliyahou Harari in co-pending U.S. patent application Ser. Read / Write Circuit and Its Technology ". The flash EEprom cell is erased by applying an erase pulse, and subsequent reading verifies that the cell has been erased and is in an erased state. If not, the pulse application and verification are repeated until the cell is verified to be in the erased state. By erasing in this controlled manner, the cell is EEpro
m is aged or protected from over-erasure which would make programming difficult.

【0031】選択されたセクタのグループが消去サイク
ルにあるときに他のものはより早く消去された状態に達
することもある。本発明の他の重要な特徴は選択された
グループの中から消去用に検証されたセクタを除去する
能力であり、これにより過剰消去を防いでいる。
Others may reach an erased state sooner when a selected group of sectors is in an erase cycle. Another important feature of the present invention is the ability to remove sectors that have been verified for erasure from the selected group, thereby preventing over-erasure.

【0032】図4(4)を再度参照すると、全ての消去
されるべきセクタにタグが付されるとコントローラはタ
グが付されたセクタのグループの消去サイクルを開始す
る。図4の(5)では、消去が行なわれるべきタグEE
promチップ中にグローバル消去イネーブルと呼ばれ
るグローバルコマンドをシフトさせる。これは図4の
(5)において、コントローラが一定の持続する期間、
一定の値だけ消去電圧(VE)を上げるということにな
る。コントローラはこの電圧を消去期間経過の終わりに
低下させる。図4の(6)において、コントローラは消
去のために選択されたセクタの読み出し検証を実行す
る。図4の(7)において、セクタのいずれもが検証さ
れない場合には図4の(5)〜(7)に図示されている
シーケンスが繰り返される。図4の(8)から図4の
(9)において、もし1または2以上のセクタが消去さ
れたと検証されたときは、それらはそのシーケンスから
取り出される。同様に図3Aを参照すると、このことは
各検証されたセクタに対応するコントローラのアドレス
をバス237の中の消去コマンドをクリアすることによ
って、消去可能なレジスタを低電圧にする。図4の
(5)から(10)に示されているシーケンスは図4の
(11)に示されているようにそのグループが消去され
たと検証されるまで繰り返される。その消去サイクルの
完了によってコントローラは不動作状態(NOP)命令
に移行し、そして、グローバル消去可能コマンドは引き
上げられて誤った消去から保護される。
Referring again to FIG. 4 (4), once all sectors to be erased have been tagged, the controller initiates an erase cycle for the group of tagged sectors. In (5) of FIG. 4, the tag EE to be erased is used.
Shift a global command called global erase enable through the prom chip. This means that in FIG. 4 (5), the controller has a certain duration,
This means that the erase voltage (VE) is increased by a certain value. The controller reduces this voltage at the end of the erasure period. In (6) of FIG. 4, the controller performs read verification of a sector selected for erasing. In (7) of FIG. 4, if none of the sectors is verified, the sequence shown in (5) to (7) of FIG. 4 is repeated. 4 (8) to 4 (9), if one or more sectors are verified as erased, they are taken out of the sequence. Referring also to FIG. 3A, this lowers the erasable register by clearing the erase command in bus 237 to the address of the controller corresponding to each verified sector. The sequence shown in (5) to (10) of FIG. 4 is repeated until it is verified that the group has been erased as shown in (11) of FIG. Upon completion of the erase cycle, the controller transitions to a no-operation state (NOP) command, and the global erasable command is pulled up to protect against erroneous erasure.

【0033】どのセクタを消去すべきであるか、消去す
べきでないかを選択する能力は、どの消去を止めること
が有効であるかと同様に有効である。これにより遅く消
去されるセクタより前に消去が完了されたものが消去の
シーケンスから分離されてその装置により以上のストレ
スを与えることから保護することができる。このことに
より、システムの信頼性を向上させることができるであ
ろう。もしセクタが良くないものであるとき、あるいは
ある理由によって使用できないときそのセクタをとば
し、そのセクタにおいて消去が起こらないようにするこ
とに利点がある。例えばもしあるセクタが欠陥をもって
いて回路の短絡があったならば、それはより多くの電力
を消去するであろう。本発明によっては消去サイクルを
とばすことにより、そのチップの中で消去に必要とする
電力を減少させることができるという有意義なシステム
の利点を得ることができる。
The ability to select which sectors to erase or not to erase is as effective as stopping which erases is effective. As a result, those which have been erased before the sector to be erased later are separated from the erase sequence, and can be protected from being subjected to the above stress by the device. This would improve the reliability of the system. It is advantageous to skip a sector if it is bad or unavailable for some reason, so that erasure does not occur in that sector. For example, if a sector is defective and there is a short circuit, it will erase more power. By skipping the erase cycle, the present invention has the significant system advantage of reducing the power required for erasure in the chip.

【0034】その装置の中で消去されるべきセクタを選
びだす能力を持つことはそのシステムの電力消費を少な
くするという他の配慮に繋がる。本発明における消去構
造の弾力性により、そのシステムの電力の能力にしたが
って、消去の要求を採用することができる。これは、こ
のシステムをソフトウエアによって、異なった消去の状
態を与えるか、または他のシステムとの間の基本的な構
造によって与えるかによって成し遂げられるであろう。
それは例えばラップトップコンピュータのようなシステ
ムで電圧のレベルを監視することによって消去の量を変
化するようにコントローラにさせることもできるだろ
う。
Having the ability to select the sectors to be erased in the device leads to another consideration in reducing the power consumption of the system. The resiliency of the erasure structure in the present invention allows erasure requirements to be adopted according to the power capabilities of the system. This may be accomplished by providing the system with different erase states by software or by providing a basic structure with other systems.
It could also cause the controller to change the amount of erasure by monitoring the voltage level in a system such as a laptop computer.

【0035】本発明におけるシステムのさらに他の特性
は、すべての消去イネーブルラッチをクリアするフラッ
シュEEpromチップにリセットコマンドを発する能
力であり、そして消去サイクルがさらに発生しないよう
にすることである。これは図2Aおよび図2Bに線26
1のリセット信号によって図示されている。全てのチッ
プに不変的にこの作業を行なうことによって全ての消去
イネーブルレジスタをリセットする時間を短くすること
ができるであろう。
Still another feature of the system in the present invention is the ability to issue a reset command to the flash EEprom chip to clear all erase enable latches, and to prevent further erase cycles. This is shown in FIG. 2A and FIG.
One reset signal is shown. Performing this operation invariably for all chips would reduce the time to reset all erase enable registers.

【0036】その他の付加的な能力はチップセレクトに
無関係に消去動作をする能力をもつことである。あるメ
モリチップにおいて消去動作が開始されるとコントロー
ラは他のメモリチップにアクセスしてそれらの読み、書
きの動作をさせることができる。加得るに消去装置の消
去を行なっているということが選択され、そして次の消
去のためのコマンドのアドレスを蓄積することもでき
る。
Another additional capability is the ability to perform an erase operation independent of chip select. When an erasing operation is started in a certain memory chip, the controller can access other memory chips to read and write them. In addition, it is selected that the erasing device is erasing, and the address of the command for the next erasing can be stored.

【0037】(欠陥マッピング)メモリ装置における物
理的な欠陥は困難な誤動作を巻き起こす。データは、欠
陥のあるセルに蓄積される度に破壊されてしまう。従来
のメモリ装置、例えばRAMやディスクにおいては、製
造過程で生じるあらゆる物理的な欠陥は工場において修
正されている。RAMにおいては、予備の冗長メモリセ
ルがチップに設けられていて、それが欠陥セルの代わり
に接続される。従来のディスクドライブ装置において媒
体が不完全であるときには、欠陥の問題となりやすかっ
た。これらの問題を解決するために製造業者は存在する
これらの欠陥についての様々な方法を案出しており、そ
してもっとも通常用いられるものはセクタの欠陥のマッ
ピングである。通常のディスクシステムにおいては、媒
体はシリンダとセクタに分割されている。セクタはデー
タが蓄積される基本単位である。システムにおいて、種
々のセクタに分けられ、悪いものであるとマークをつけ
られたものは、そのシステムにおいては使用されないよ
うにする。これは、種々の方法によって実現されてい
る。欠陥マップのテーブルが使用されるディスクの特定
の位置に設けられており、インターフェイスコントロー
ラを介して利用される。さらに、欠陥のある悪いセクタ
は物理的に特殊なIDが施されて、IDとフラッグマー
カーが付されている。欠陥のあるものがアドレスされた
ときは、そのデータは通常は他の代替位置に配置されて
いる。この代わりのセクタの要請のために、余分なセク
タがある間隔で、またはある位置離れて設けられてい
る。これは、メモリの容量を減少させるものであり、ど
のように代わりのセクタを設けられているかという問題
を提供している。
(Defect Mapping) Physical defects in the memory device cause difficult malfunctions. Data is destroyed each time it is stored in a defective cell. In conventional memory devices, such as RAMs and disks, any physical defects that occur during the manufacturing process are corrected at the factory. In a RAM, a spare redundant memory cell is provided on a chip, which is connected instead of a defective cell. When the medium is incomplete in the conventional disk drive device, it is liable to be a defect problem. To solve these problems, manufacturers have devised various methods for these defects that exist, and the most commonly used is the mapping of sector defects. In a normal disk system, a medium is divided into cylinders and sectors. A sector is a basic unit for storing data. In the system, those which are divided into various sectors and which are marked as bad are not used in the system. This has been achieved in various ways. A table of defect maps is provided at a specific position on the disk to be used and is used via the interface controller. Further, a bad sector having a defect is physically given a special ID, and is given an ID and a flag marker. When the defective one is addressed, the data is usually located at another alternate location. Due to the requirement of this alternative sector, extra sectors are provided at certain intervals or at certain locations. This reduces the capacity of the memory and offers the problem of how to provide alternative sectors.

【0038】本発明の一つの重要な応用は、フラッシュ
EEpromチップのアレイによって実現されるシステ
ムによって、通常のディスク記憶装置を置き換えること
である。このEEpromシステムは従来のディスクと
同等、またはそれ以上であるように設定することが好ま
しく、「固体ディスク」とみなすことができる。
One important application of the present invention is to replace conventional disk storage with a system implemented by an array of flash EEprom chips. The EEprom system is preferably set to be equal to or more than a conventional disk, and can be regarded as a “solid disk”.

【0039】そのような固体メモリ装置により作られた
「ディスク」システムにおいては、欠陥を効率的に処理
するために、低価格でそれが成し遂げられるという配慮
が必要となる。本発明の他の重要な特徴は、より多くの
メモリを可能な限り保存することができるように誤り訂
正を可能にすることである。現実問題として、それはセ
ルごとに欠陥セルが捜し出されることにより全体のセク
タ,例えば(通常512バイト)において、欠陥が起こ
る度に捨ててしまうことをなくすことである。この提案
は特にフラッシュEEprom媒体に適している。なぜ
ならば、大多数の誤りはビットの誤りとして起こり、従
来のディスク媒体に通常みられるストリームが長い近接
した欠陥ではないことによる。
In a "disk" system made with such a solid-state memory device, care must be taken that it can be achieved at a low cost in order to handle defects efficiently. Another important feature of the invention is that it allows error correction so that more memory can be saved as much as possible. As a practical matter, it means that a defective cell is searched for every cell so that the entire sector, for example (usually 512 bytes), is not thrown away every time a defect occurs. This proposal is particularly suitable for flash EEprom media. This is because the majority of errors occur as bit errors, and the streams typically found on conventional disk media are not long, adjacent defects.

【0040】RAMと磁気ディスクの両方の先行技術に
おいては、一度その装置が工場から出荷されるとそこで
は、通常の動作の後に現れる物理的欠陥から生ずるハー
ドの誤りを置き換えるための手段がほとんどもしくは全
くないことである。そのために、欠陥の訂正は主として
誤り訂正コード(ECC)を用いることに依存して行な
われている。
In the prior art, both RAM and magnetic disk, once the device is shipped from the factory, there is little or no means to replace hard errors resulting from physical defects that appear after normal operation. There is nothing at all. For this reason, defect correction is mainly performed by using an error correction code (ECC).

【0041】フラッシュEEprom装置の性質上、書
込み/消去の回数が増加するにしたがって、セルの欠陥
が次第に増加することが予想できる。使用して蓄積され
るハードの誤りが最終的にはECCを圧倒してしまい、
その装置を使用不能なものにしてしまうのである。本発
明の一つの重要な特徴は、そのシステムのハードの誤り
が発生するごとに、そのシステムのハードの誤りを訂正
するという能力をもっていることである。また、読出し
操作の期間においても、欠陥セルが発見され、そしてE
CCにより位置づけられる。欠陥のセルが特定されると
直ちにコントローラはその欠陥セルを通常はそれと同じ
セクタに存在する空きセルによって置き換えるための欠
陥マッピングを供給するであろう。この動的なハードの
誤りの訂正は、通常の誤り訂正スキームに加えて装置の
寿命を有効に引き延ばすことができる。
Due to the nature of the flash EEprom device, cell defects can be expected to increase gradually as the number of times of writing / erasing increases. Errors in the hardware that accumulates when used eventually overwhelm the ECC,
It renders the device unusable. One important feature of the present invention is the ability to correct the system hardware error whenever the system hardware error occurs. Also during the read operation, a defective cell is found and E
Positioned by CC. As soon as a defective cell is identified, the controller will provide a defect mapping to replace the defective cell with a free cell, which is normally located in the same sector. This dynamic hard error correction can effectively extend the life of the device in addition to the normal error correction scheme.

【0042】本発明の他の特徴は、誤り訂正へのアプロ
ーチに適していることである。誤り訂正コード(EC
C)は常時ソフトの誤りを訂正するとともに、発生する
であろうハードの誤りの訂正に利用される。ハードの誤
りが検出されるとすぐに、欠陥マッピングはその欠陥セ
ルをそれの同じセクタブロックに存在する予備のセルと
置き換えるために使用される。欠陥セルの数がその特定
のセクタのための欠陥マッピングの能力を越えた場合に
おいてのみ、その全体のセクタは、通常のディスクシス
テムに置き換えられる。このスキームにより、信用性を
損なうことなく最小の損失で食い止めることができる。
Another feature of the present invention is that it is suitable for an approach to error correction. Error correction code (EC
C) is always used to correct soft errors and to correct hard errors that may occur. As soon as a hard error is detected, the defect mapping is used to replace the defective cell with a spare cell present in its same sector block. Only if the number of defective cells exceeds the capability of defect mapping for that particular sector is the entire sector replaced by a regular disk system. This scheme can be halted with minimal loss without compromising credibility.

【0043】図5は、セルをリマッピングするスキーム
のメモリ構造を図示したものである。前述したように、
このフラッシュEEpromメモリはセクタに分割され
ており、各セクタに属するセルは同時に消去可能であ
る。典型的なセクタ401のメモリ構造は、データ部4
03と予備(または影)部405に分けられている。デ
ータ部403はユーザによって使用可能なメモリ空間で
ある。予備部405はさらに欠陥データの代替部領域4
07、欠陥マッピング領域409、ヘッダ領域411、
およびECCと他の領域413に分けられている。これ
らの領域は、コントローラにより、ヘッダやECC等の
ように欠陥領域や他のオーバーヘッド情報を操作するた
めに使用することもできる情報を含む。
FIG. 5 illustrates the memory structure of the cell remapping scheme. As previously mentioned,
The flash EEprom memory is divided into sectors, and cells belonging to each sector can be erased at the same time. A typical memory structure of the sector 401 is a data section 4
03 and a spare (or shadow) unit 405. The data section 403 is a memory space that can be used by a user. The spare part 405 further includes a substitute part area 4 for defect data.
07, a defect mapping area 409, a header area 411,
And an ECC and another area 413. These areas include information that can also be used by the controller to manipulate defective areas and other overhead information, such as headers and ECC.

【0044】セクタの中で、一つの欠陥セルが発見され
る度に欠陥データ領域の代替部407の中の一つの良い
セルが欠陥セルと指定されたデータをバックアップする
ために割当てられる。かくして、もし欠陥セルにデータ
が誤って記憶されたとしても、バックアップセルの中に
は誤りのないコピーが記憶される。欠陥セルとバックア
ップセルのアドレスは欠陥マップ409の中の欠陥ポイ
ンタに記憶される。
Each time a defective cell is found in a sector, one good cell in the defective data area replacement section 407 is allocated to back up data designated as a defective cell. Thus, if data is erroneously stored in the defective cell, an error-free copy is stored in the backup cell. The addresses of the defective cell and the backup cell are stored in a defect pointer in the defect map 409.

【0045】ユーザデータ領域403と予備部405間
は、厳格に区別される必要がないというように理解され
たい。各々に割当られた領域の相対的な大きさは論理的
に再割当することができる。さらにまた、種々の領域の
グループ分けは、主として議論のために必要であって、
物理的に必要なものではない。例えば欠陥データ領域の
代替部407は、予備部405の中にそれが専有する領
域はユーザーは利用できないものであることを示すだけ
のものである。
It should be understood that there is no need to strictly distinguish between the user data area 403 and the spare section 405. The relative size of each assigned area can be logically reassigned. Furthermore, the grouping of various areas is needed mainly for discussion,
Not physically required. For example, the replacement part 407 of the defective data area merely indicates that the area occupied by the spare part 405 is not available to the user.

【0046】読出し動作において、コントローラは最初
にヘッダ、欠陥マップ、それから代替欠陥データ部分を
読出す。その後実際のデータを読む。それは欠陥マップ
によって欠陥セルのトラックと代替データの位置を保っ
ている。欠陥セルに遭遇するために、コントローラはそ
の不良データを欠陥代替セルの良いデータで代用する。
In a read operation, the controller first reads the header, the defect map, and then the replacement defect data portion. Then read the actual data. It keeps track of the defective cell and the location of the replacement data by the defect map. To encounter a defective cell, the controller substitutes the bad data with good data from the defective replacement cell.

【0047】図6は、好適な実施例におけるの読出デー
タパス制御を図示している。メモリ装置33はコントロ
ーラ31の制御下にある複数のフラッシュEEprom
チップを含んでいる。コントローラ31それ自体は、マ
イクロプロセッサ(図示せず)の制御下にあるマイクロ
プロセッサシステムの一部を形成している。セクタの読
出しを開始するにあたり、マイクロプロセッサはコント
ローラ中のアドレス発生器503に読出し操作を開始す
るためのアドレスをロードする。この情報は、マイクロ
プロセッサのインターフェイスポート505を介してロ
ードされる。それから、マイクロプロセサはDMAコン
トローラ507にバッファメモリまたはデータリードが
送られるべきアドレスバスのスタート位置をロードす
る。それからマイクロプロセッサはヘッダの情報(ヘッ
ド、シリンダ、セクタ)を保持レジスタファイル509
にロードする。最終的にマイクロプロセッサはコマンド
シーケンサ511にコントローラ31への制御前にリー
ドコマンドをロードする。
FIG. 6 illustrates the read data path control in the preferred embodiment. The memory device 33 includes a plurality of flash EEproms under the control of the controller 31.
Includes chips. The controller 31 itself forms part of a microprocessor system under the control of a microprocessor (not shown). To start reading a sector, the microprocessor loads the address generator 503 in the controller with the address to start the read operation. This information is loaded via the interface port 505 of the microprocessor. The microprocessor then loads the DMA controller 507 with a buffer memory or a start location on the address bus where data reads are to be sent. The microprocessor then stores the header information (head, cylinder, sector) in the register file 509.
To load. Finally, the microprocessor loads a read command into the command sequencer 511 before controlling the controller 31.

【0048】制御開始後に、コントローラ31はまず初
めにセクタのヘッダにアドレスし、そしてユーザが指定
したアドレスの位置でメモリがアクセスされたことを検
証する。これは次のシーケンスによって実現される。コ
ントローラはメモリ装置33の中の一つのメモリチップ
(チップセレクト)を選択し、そしてヘッダ領域のアド
レスをアドレス発生器503の出力からメモリ装置33
の選択されたメモリへシフトする。コントローラはマル
チプレクサ513をスイッチし、そしてメモリ装置33
にリードコマンド出力をシフトする。それからメモリ装
置は送られたアドレスを読み、そしてコントローラにア
ドレスされたセクタからの直列データの送信を開始す
る。コントローラ中のレシーバ515はこのデータを受
け、そしてそれを並列形式にする。一つの実施形態にお
いては、1バイト(8ビット)が一度にコンパイルさ
れ、マイクロプロセッサによって保持レジスタファイル
509に予め記憶されたヘッダ情報と受信したデータと
を比較する。もし、その比較の結果が正しければ、正し
い情報、正しい位置がベリファイ(検証)されて動作は
継続する。
After starting the control, the controller 31 first addresses the sector header and verifies that the memory has been accessed at the address specified by the user. This is achieved by the following sequence. The controller selects one memory chip (chip select) in the memory device 33, and outputs the address of the header area from the output of the address generator 503 to the memory device 33.
Is shifted to the selected memory. The controller switches the multiplexer 513 and the memory device 33
To shift the read command output. The memory device then reads the sent address and begins transmitting serial data from the addressed sector to the controller. A receiver 515 in the controller receives this data and places it in a parallel format. In one embodiment, one byte (8 bits) is compiled at a time and the microprocessor compares the received data with the header information pre-stored in holding register file 509. If the result of the comparison is correct, correct information and a correct position are verified (verified), and the operation continues.

【0049】次にコントローラ31は欠陥ポインタを読
出し、これらの不良アドレスの位置をホールディングレ
ジスタファイル509にロードする。これにコントロー
ラの欠陥データの読出しが続き、その欠陥データの代替
はそれが書込まれたときに、その誤ったビットを置き換
えるために書込まれているものであった。代替ビット
は、欠陥データの代替ファイル517の中に記憶されて
おり、それはデータビットが読出されるときにアクセス
される。
Next, the controller 31 reads the defect pointer and loads the positions of these defective addresses into the holding register file 509. This was followed by reading of the controller's defective data, the replacement of which was written to replace the wrong bit when it was written. The replacement bits are stored in a replacement file 517 of defective data, which is accessed when the data bits are read.

【0050】ヘッダがマッチしており、そして欠陥ポイ
ンタと代替ビットのロードが完了すると、コントローラ
は読まれるべき希望するセクタの最低のアドレスのシフ
トアウトを開始する。メモリ装置33の中のセクタから
のデータはコントローラチップ31に移送される。受信
機515はそのデータを並列形式に変換し、各バイトを
一時的なホルダであるFIFO519へコントローラか
ら送り出されるべく移送する。
When the headers match and the loading of the defective pointer and replacement bits is completed, the controller begins shifting out the lowest address of the desired sector to be read. Data from a sector in the memory device 33 is transferred to the controller chip 31. Receiver 515 converts the data into a parallel format and transports each byte to a temporary holder, FIFO 519, for transmission from the controller.

【0051】パイプライン構造が受信機515から、F
IFO519へコントローラを開始してデータがゲート
されるときの有効な処理能力を提供するために用いられ
る。各々のデータビットがメモリから受信されたとき
に、コントローラは送られるべきデータのアドレス(ア
ドレス発生器507に蓄積されたもの)を欠陥ポインタ
マップ(レジスタファイル509に蓄積されたもの)と
比較を続ける。もし、比較器521の出力のマッチによ
り、そのアドレスが悪い位置にあると決定されると、受
信器515により受信されたメモリからの悪いビット
は、その位置の良いビットと置き換えられる。良いビッ
トは欠陥データ代替ファイルから得られる。これは受信
機515からの悪いビットの代わりに、欠陥データ代替
ファイルからの良いビットを受信するようにマルチプレ
クサ523をスイッチングすることによってなされる。
FIFOの中に訂正されたデータがあるときに、それは
バッファメモリまたはシステムメモリ(図示せず)へ送
られるべき状態にある。そのデータはコントローラのF
IFO519からコントローラのDMAコントローラ5
07によってシステムメモリへ送られる。このコントロ
ーラ507はそれからリクエストしてシステムバスへの
アクセスを得、そして一つのアドレスを出し、そしてデ
ータを出力インタフェース255経由でゲートしてシス
テムバスへ出す。これは各バイトがFIFO519へロ
ードすることによってなされる。訂正されたデータがF
IFOにロードされると、それはまたECCハードウエ
ア527にもゲートされ、そこでデータファイルはEC
Cによって処理される。
When the pipeline structure is changed from the receiver 515 to F
Used to start the controller to IFO 519 to provide efficient processing power when data is gated. As each data bit is received from memory, the controller continues to compare the address of the data to be sent (stored in address generator 507) with the defect pointer map (stored in register file 509). . If the match of the output of comparator 521 determines that the address is in a bad location, the bad bit from memory received by receiver 515 is replaced with a good bit in that location. The good bits come from the defective data replacement file. This is done by switching the multiplexer 523 to receive good bits from the defective data replacement file instead of bad bits from the receiver 515.
When there is corrected data in the FIFO, it is ready to be sent to buffer memory or system memory (not shown). The data is
DMA controller 5 from I / O 519
07 to the system memory. The controller 507 then requests access to the system bus, and issues an address, and gates data via the output interface 255 onto the system bus. This is done by loading each byte into FIFO 519. The corrected data is F
When loaded into the IFO, it is also gated to the ECC hardware 527, where the data file is
Processed by C.

【0052】このように前述した方法により、メモリ装
置33から読まれたデータはコントローラ31を介して
前記システムに送り出されるべくゲートされる。このプ
ロセスはアドレスされたデータの最後のビットが移送さ
れるまで続く。
Thus, in the manner described above, data read from memory device 33 is gated to be sent to the system via controller 31. This process continues until the last bit of the addressed data has been transferred.

【0053】前もって検出された欠陥セルの欠陥マッピ
ングにもかかわらず、最後のマッピング移行に新しいハ
ードの誤りが発生するかもしれない。ダイナミック欠陥
マッピングが恒久的に新しい欠陥セルを押し出すにした
がって欠陥マッピングの間に発生するであろう最新のハ
ードの誤りはECCによって十分に取り扱われる。デー
タがコントローラ31によってゲートされるにしたがっ
てコントローラは蓄積されていた値がちょうど計算され
た残りの値とマッチするかどうかを決定するために、E
CCビットをECCハードウエア227へゲートとして
入れる。もしそれがマッチすればシステムメモリに移送
されたデータは正しいものであったとして、読み込み動
作は完成させられた。しかしながら、もしECCレジス
タに誤りがあったならば、システムメモリに送られるデ
ータについての訂正計算が行なわれる。そして訂正され
たデータが再送信される。誤りを計算する方法はハード
ウエアでもソフトウエアでも通常の方法によって行なわ
れる。ECCは誤りに原因する欠陥セルについての計算
と位置出しをすることができる。これはコントローラ3
1によって欠陥セルが発見されたセクタに関連して欠陥
マップを更新するのに用いられる。このようにしてハー
ドエラーは常にフラッシュEEpromシステムから除
かれる。
Despite the defect mapping of the previously detected defective cell, a new hard error may occur at the last mapping transition. The latest hard errors that may occur during defect mapping as dynamic defect mapping permanently pushes out new defect cells are fully handled by the ECC. As the data is gated by the controller 31, the controller determines whether the stored value matches the remaining value just calculated,
The CC bit is gated into the ECC hardware 227. If it matches, the read operation has been completed, assuming that the data transferred to system memory was correct. However, if there is an error in the ECC register, a correction calculation is performed on the data sent to system memory. Then, the corrected data is retransmitted. The method of calculating the error is performed by a usual method in hardware or software. The ECC can calculate and locate defective cells due to errors. This is controller 3
1 is used to update the defect map in relation to the sector in which the defective cell was found. In this way, hard errors are always excluded from the flash EEprom system.

【0054】図7は、好適な実施例における書込みデー
タパス制御を図示している。書込みの順序の最初の部分
は既に説明した読みのシーケンスと共通している。マイ
クロプロセッサはまず初めに読みのシーケンスと同様に
メモリ装置33とDMAのためのアドレスポインタをロ
ードする。それは望まれるヘッダをアドレス発生器50
3にロードし、そしてコマンドキューをコマンドシーケ
ンサ511にロードする。コマンドキューはリードヘッ
ダコマンドファーストと一緒にロードされる。その後、
制御はコントローラ31に渡される。コントローラはそ
れからアドレスとコマンドをメモリ装置33にリードシ
ーケンスと同様にゲートする。メモリ装置は、ヘッダデ
ータをコントローラの受信機515を介して戻す。コン
トローラは受信したヘッダデータを予期された値(ホー
ルディングレジスタ509に蓄積されていたもの)と比
較する。もし比較の結果が正しかったならば、正常な位
置がベリファイされたものであって、シーケンスが連続
する。それからコントローラはメモリ装置33からの欠
陥アドレスポインタをホールディングレジスタファイル
509にロードし、代替データを欠陥データ代替ファイ
ル527へロードする。
FIG. 7 illustrates write data path control in the preferred embodiment. The first part of the writing sequence is common to the reading sequence already described. The microprocessor first loads the memory device 33 and the address pointer for the DMA as in the reading sequence. It stores the desired header in the address generator 50.
3 and then load the command queue into the command sequencer 511. The command queue is loaded together with the read header command first. afterwards,
Control is passed to the controller 31. The controller then gates the address and command to the memory device 33 as in a read sequence. The memory device returns the header data via the controller's receiver 515. The controller compares the received header data with the expected value (stored in holding register 509). If the result of the comparison is correct, the normal position has been verified and the sequence continues. Then, the controller loads the defective address pointer from the memory device 33 into the holding register file 509 and loads the substitute data into the defective data substitute file 527.

【0055】次にコントローラはシステムメモリ(図示
せず)から書込みデータのフェッチを開始する。コント
ローラはこれをシステムバスにアクセスすることにより
行い、記憶またはバスアドレスを出力し、リードサイク
ルを行なう。コントローラはデータをインプット入力イ
ンタフェース603を介してFIFO601に引き込
む。そしてコントローラはそれから、スターティングセ
クタのアドレス(最も低いバイトのアドレス)をアドレ
ス発生器503から選ばれたメモリ装置33へシフトす
る。これはFIFO601からのデータによって追従さ
れる。これらのデータはマルチプレクサ605と513
を通じて送られ、そしてメモリ装置33に送り出される
前に直列フォーマットに変換される。このシーケンスは
書きサイクルのためのすべてのバイトが選ばれたメモリ
にロードされるまで続く。
Next, the controller starts fetching write data from a system memory (not shown). The controller performs this by accessing the system bus, outputs a memory or bus address, and performs a read cycle. The controller pulls data into the FIFO 601 via the input input interface 603. The controller then shifts the address of the starting sector (address of the lowest byte) from the address generator 503 to the selected memory device 33. This is followed by data from the FIFO 601. These data are stored in multiplexers 605 and 513.
And is converted to a serial format before being sent to the memory device 33. This sequence continues until all bytes for the write cycle have been loaded into the selected memory.

【0056】データがFIFO601からゲートされ
て、選択されたメモリ33にゲートされるときに効果的
な有効な処理能力を提供するためにパイプライン構造が
採用されている。データはFIFO601からゲートさ
れてECCハードウエア527へ送られ、ここにおい
て、残りの値はECCの中で計算されるであろう。次の
ステージにおいてデータがマルチプレクサ605と51
3を介してメモリ装置に送られているときに比較器52
1はアドレス発生器503からのそのアドレスをホール
ディングレジスタファイル509にある欠陥ポインタの
アドレスと比較する。マッチが発生したときは、欠陥位
置が書込まれようとしていることを示し、コントローラ
はこのビットを欠陥データ代替ファイル517へ記憶す
る。同時にメモリに送られる全ての誤りビットは0とし
て送られるであろう。
A pipeline structure is employed to provide effective and effective processing power when data is gated from FIFO 601 and gated to selected memory 33. The data is gated from FIFO 601 and sent to ECC hardware 527, where the remaining values will be calculated in the ECC. In the next stage, the data is transferred to the multiplexers 605 and 51.
3 when sent to the memory device via
1 compares that address from address generator 503 with the address of the defect pointer in holding register file 509. When a match occurs, it indicates that the defective location is about to be written, and the controller stores this bit in the defective data replacement file 517. All error bits sent to memory at the same time will be sent as zeros.

【0057】選ばれたメモリ装置の中に書込みサイクル
のバイトがロードされた後に、コントローラはプログラ
ムコマンドをメモリ装置に発生して書込みサイクルを開
始する。フラッシュEEprom装置のための書込み操
作の理想的な構造は先に引用した同時継続中の米国特許
出願第204、175号であって、一つは多状態EEp
romの読み、書き回路と技術と呼ばれているものに示
されており、前記関連する部分をここで参考として挙げ
る。簡単に言えば、書込みのサイクルの間中にコントロ
ーラはプログラム(または書込み)電圧パルスを供給し
ていることである。これは、全てのビットのプログラム
が適当であるかということを決定するためのベリファイ
読みが続く。もし、そのビットがベリファイされなかっ
たときは、コントローラはプログラム/ベリファイサイ
クルを全てのビットが正しくプログラムされるまで繰り
返す。
After the write cycle bytes have been loaded into the selected memory device, the controller issues a program command to the memory device to begin the write cycle. An ideal structure for a write operation for a flash EEprom device is the above-cited co-pending U.S. patent application Ser.
rom read and write circuits and techniques are shown in what is referred to as such, and the relevant portions are hereby incorporated by reference. Briefly, during a write cycle, the controller is supplying program (or write) voltage pulses. This is followed by a verify read to determine if programming of all bits is appropriate. If that bit is not verified, the controller repeats the program / verify cycle until all bits are correctly programmed.

【0058】もし、一つのビットがプログラム/ベリフ
ァイサイクルを延ばした後でもベリファイに失敗したと
きは、コントローラはそのビットを欠陥ビットであると
指定し、そしてそれにしたがって欠陥マップを更新する
であろう。更新は欠陥セルが検出されるや否や、ダイナ
ミックに行なわれる。同様な操作が消去ベリファイの失
敗の場合においても、採用される。
If the verify fails even after one bit extends the program / verify cycle, the controller will designate the bit as a defective bit and update the defect map accordingly. The update is performed dynamically as soon as a defective cell is detected. A similar operation is employed in the case where the erase verify fails.

【0059】全てのビットがプログラムされてベリファ
イされた後に、コントローラはFIFO601から次の
データビットをロードし、アドレスセクタの中の次の位
置をアドレスする。そしてコントローラはそれから他の
プログラム/ベリファイシーケンスを次のバイトについ
て行なう。このシーケンスはそのセクタの最後のデータ
まで、連続して行なわれる。一度このことが発生すると
セクタ(図5参照)に関連する影のメモリ(ヘッダ領
域)をアドレスし、そしてECCレジスタの内容をこの
領域に書込む。
After all bits have been programmed and verified, the controller loads the next data bit from FIFO 601 and addresses the next location in the address sector. The controller then performs another program / verify sequence on the next byte. This sequence is continuously performed until the last data of the sector. Once this occurs, the shadow memory (header area) associated with the sector (see FIG. 5) is addressed, and the contents of the ECC register are written to this area.

【0060】さらに、欠陥があるとしてフラグがたてら
れそして欠陥データ代替ファイル516の中に蓄積され
たビットの集合は代替欠陥データ位置(図5参照)に書
き込まれ、これによって引き続く読みに使用される良い
ビットの価値を保つ。一度これらのデータグループが書
込まれ、そして検証されるとそのセクタの書込みは完全
なものと考えられる。
In addition, the set of bits flagged as defective and stored in the defective data replacement file 516 are written to the replacement defective data location (see FIG. 5), and are thereby used for subsequent readings. Keep a good bit worth. Once these data groups have been written and verified, writing to that sector is considered complete.

【0061】この発明は全体のセクタの欠陥をマッピン
グする規定をもっているが、しかしそれはその特定のセ
クタの欠陥セクタマッピング能力を越える欠陥が存在し
た後のことである。各セクタの中における欠陥セルの数
としてカウントが保存される。あるセクタの中の数があ
る一定量を越えたときに、コントローラはそのセクタは
欠陥としてそれを他のセクタにマップする。関連するセ
クタの欠陥ポインタは欠陥セクタマップの中に保存され
るであろう。セクタ欠陥マップは最初の欠陥セクタにお
いて、その余分な領域が欠陥がない場合において設け、
そのセクタの中に設けられる。しかしながら、セクタの
データ領域が大量の欠陥が発生した場合においては、そ
の余白の領域も同時に欠陥が多くなる可能性が強い。
The present invention has provisions for mapping defects for the entire sector, but only after a defect exists that exceeds the defect sector mapping capability of that particular sector. The count is stored as the number of defective cells in each sector. When the number in a sector exceeds a certain amount, the controller maps that sector to the other sector as defective. The defect pointer of the relevant sector will be stored in the defective sector map. A sector defect map is provided in the first defective sector when the extra area is free of defects,
It is provided in that sector. However, when a large number of defects occur in the data area of the sector, there is a strong possibility that the number of defects also increases in the blank area at the same time.

【0062】そのような理由により、他の実施例におい
ては、コントローラに保持される他のメモリの中に、セ
クタマップを位置させることが好ましい。メモリはコン
トローラのハードウエアか、またはフラッシュEEpr
omのメモリから離れた部分に位置させられるであろ
う。コントローラがアクセスで多領域のアドレスを与え
られると、そのコントローラはこのアドレスをセクタ欠
陥マップと比較する。もし、マッチが起こるならば欠陥
セクタへのアクセスが拒否され、そして欠陥マップの中
に存在する代替アドレスが入力され、そして対応する代
替セクタが代わりにアクセスされる。
For such a reason, in another embodiment, it is preferable to locate the sector map in another memory held by the controller. The memory is either the controller hardware or the flash EEpr
om will be located away from memory. When a controller is given a multi-region address in an access, the controller compares this address to a sector defect map. If a match occurs, access to the defective sector is denied, and an alternative address present in the defect map is entered, and the corresponding alternative sector is accessed instead.

【0063】さらに他の具体例においてはセクタの再マ
ッピングはマイクロプロセッサによって遂行される。マ
イクロプロセッサは入ってきたアドレスとアドレスを見
てそれをセクタ欠陥マップと比較する。もしマッチがあ
れば、それはコントローラにコマンドを発生する代わり
に、新しいコマンドとして他の位置を代替する。
In yet another embodiment, the remapping of the sectors is performed by a microprocessor. The microprocessor looks at the incoming address and the address and compares it with the sector defect map. If there is a match, it substitutes another location as a new command instead of issuing a command to the controller.

【0064】固体ディスクのより速いスピードから離れ
て、さらに他の利点は、機械的な部分が存在しないとい
うことである。ディスク駆動に本来的に存在する回転性
に原因する長いサーチ時間は存在しない。さらにこれに
加得るに、長い同期時間、同期マークの検出時間、書込
みギャップ等も必要でない。かくして、どこに読出され
るべきデータが存在するか、またはどこに書込まれるべ
きであるかという位置にアクセスするために必要なオー
バーヘッド時間はより少なくなる。これらの単純性、お
よび無理がないということは、オーバーヘッドを少なく
したより速いシステムとして現れる。加得るに、ファイ
ルはメモリの中に希望する任意のアドレスの順序で配列
され、そしてコントローラには必要なデータにどうして
得るかということが必要なだけである。
Apart from the faster speed of solid disks, a further advantage is that there are no mechanical parts. There is no long search time due to the rotational nature inherent in disk drive. In addition to this, no long synchronization time, synchronization mark detection time, write gap, etc. are required. Thus, less overhead time is required to access the location where the data to be read exists or where it should be written. Their simplicity and reasonableness manifest themselves as faster systems with less overhead. In addition, the files are arranged in memory in any desired address order, and the controller only needs to know how to get the required data.

【0065】本発明のさらに他の特徴は欠陥マッピング
は、セクタにまたはセクタからの移動させられるデータ
の流れを妨げる必要がない状態で構成されていることで
ある。ブロック中で誤りを含むデータはそれに係わらず
返送され、そしてそれは後に訂正される。順次アドレス
を保存することによって、それ自身高い速い速度を得る
ことができるであろう。さらにまた、それはその装置の
読み書きのデータパスにおける効果的なパイプライン構
造の実現を許容する。
[0065] Yet another feature of the invention is that the defect mapping is configured in such a way that it is not necessary to obstruct the flow of data being moved into or out of the sector. The data containing the error in the block is returned regardless, and it is corrected later. By storing the addresses sequentially, one would be able to obtain a high fast speed by itself. Furthermore, it allows the realization of an effective pipeline structure in the read / write data path of the device.

【0066】(書込みキャッシュシステム)キャッシュ
メモリは一般的に遅いアクセスの装置のシステムの能力
の速度を上げるために用いられている。例えば、コンピ
ュータシステムにおいてディスク記憶装置からのデータ
のアクセスは遅い。そしてもしデータがより速いラムR
AMから得られるならば、スピードはより速くなるであ
ろう。典型的に、RAMのシステムの部分はディスクか
らもっとも最近にアクセスされたものを仮に保持するた
めにキャッシュが使用されている。次にそのデータが要
るときには遅いディスクの代わりにより速いキャッシュ
からそれを得ることができる。そのシステムは、同じデ
ータが繰り返されて使用されるような状況において、う
まく動作する。これは最も多くの構成やプログラムにお
いて見られるものであり、これはコンピュータというも
のはプログラムを走らせているときには、非常に狭い記
憶領域でのみ働く傾向があるからである。キャッシング
の他の例は通常より安いが、しかし遅いDRAMにアク
セスする時間を速くするために、より速いSRAMキャ
ッシュを利用することである。
(Write Cache System) A cache memory is generally used to speed up the performance of a slow access device system. For example, accessing data from a disk storage device in a computer system is slow. And if the data is faster Ram R
If obtained from the AM, the speed will be faster. Typically, a portion of the RAM system uses a cache to temporarily hold the most recently accessed from disk. The next time that data is needed, it can be obtained from a faster cache instead of a slower disk. The system works well in situations where the same data is used repeatedly. This is found in most configurations and programs, because computers tend to work only in very small storage areas when running programs. Another example of caching is to utilize a faster SRAM cache to speed up access to less expensive but slower DRAM.

【0067】ほとんどの従来のキャッシュの設計は、メ
モリからの読み取りのスピードアップのための読出し
(リード)キャッシュである。ある状況においては、メ
モリに書き込む速度を上げるために、書込みキャッシュ
が使用される。しかしながら、キャッシュには同時に書
込まれるのに対して、システムメモリ(例えばディス
ク)への書込みの場合においては、データはそれらが発
生するごとにその都度直接書込まれる。これは電力がな
くなったときに更新され、ファイルが無くなってしまう
という懸念のために、このことが成されるのである。も
し書込みデータがキャッシュメモリ(揮発性)にのみに
記憶されているときに、電力が無くなるということは新
しく更新されたデータが、システムメモリ(不揮発性)
の中の古いデータを更新する前に、キャッシュメモリか
ら更新されたファイルがなくなってしまうということで
ある。これらのファイルが引き続き利用されるときに
は、そのシステムは古いデータに基づいて操作されると
いうことになるであろう。主メモリを毎回書き込む必要
性は、キャッシュ機構を書込みのために壊してしまうこ
とになる。読出しキャッシュにおいては、この懸念は全
くなく、キャッシュからなくなるであろうデータはディ
スクでバックアップされているからである。
Most conventional cache designs are read caches to speed up reading from memory. In some situations, a write cache is used to speed up writing to memory. However, in the case of writes to system memory (eg, disk), data is written directly each time they occur, whereas the cache is written simultaneously. This is updated when power is lost, and this is done due to concerns that files will be lost. If the write data is stored only in the cache memory (volatile), the loss of power means that the newly updated data is stored in the system memory (non-volatile).
Before the old data in the file is updated, the updated file disappears from the cache memory. When these files continue to be used, the system will operate on old data. The need to write main memory every time would break the cache mechanism for writing. In a read cache, there is no such concern, since data that would be lost from the cache is backed up on disk.

【0068】本発明においては、フラッシュEEpro
mのシステムは従来のディスク形の記憶装置をもつシス
テムに置き換えられて用いられる。しかしながら、フラ
ッシュEEpromは過度のプログラム(消去サイク
ル)による消耗に曝されている。同時継続中の米国特許
出願第No204、175号,発明の名称「多状態のEE
prom読みおよび書きサーキットとその技術」、サン
ジャイ・メハロポラとエリヤホウ・ハラリ博士により本
発明と同時に出願された願書に開示されている改良され
たフラッシュEEpromメモリ装置においてさえ、耐
久力の限界はほぼ106 のプログラム/消去サイクルに
限定されている。この装置の寿命を10年に引き延ばし
て考えてみると5分間に1回ずつの消去に限定される。
これは通常のコンピュータの使用においては限界的なも
のである。
In the present invention, the flash EEpro
The system m is used in place of a conventional system having a disk-type storage device. However, the flash EEprom is subject to wear due to excessive program (erase cycles). US patent application Ser. No. 204,175, entitled "Multi-State EE"
Even in the improved flash EEprom memory device disclosed in the application filed concurrently with the present invention by Sanjay Mehalopola and Dr. Eliyahou Harari, the endurance limit is almost 10 6. Program / erase cycle. If the life of this device is extended to 10 years, erasure is limited to once every 5 minutes.
This is a limit in normal computer use.

【0069】この問題を解決するために、キャッシュメ
モリシステムは、非常に多くのプログラム/消去サイク
ルに耐えることから切り離すことができるように新規な
方法で用いられる。キャッシュの第1次的な機能は、フ
ラッシュEEpromメモリに書込むために用いられ、
従来のキャッシュの使用とは違ってフラッシュEEpr
omメモリからの読みには用いない。フラッシュEEp
romメモリに書込む代わりに、毎回データは更新さ
れ、そのデータはフラッシュEEpromメモリへ送ら
れる前に、キャッシュの中で、数回動作させられるであ
ろう。これにより、フラッシュEEpromメモリへの
書込みの回数を減らすことができる。さらにまた、主と
してより速いキャッシュメモリの中に書込むことによ
り、より遅いフラッシュEEpromへの書込みの回数
を減らし、全体のシステムにおける書込み効率を増強さ
せることができるという利点が得られる。
To solve this problem, cache memory systems are used in a novel way so that they can be decoupled from surviving numerous program / erase cycles. The primary function of the cache is used to write to flash EEprom memory,
Flash EEpr unlike traditional cache usage
It is not used for reading from the om memory. Flash EEp
Instead of writing to rom memory, each time the data is updated, the data will be operated several times in the cache before being sent to flash EEprom memory. Thus, the number of times of writing to the flash EEprom memory can be reduced. Still further, by writing primarily into the faster cache memory, the advantage is obtained that the number of writes to the slower flash EEprom can be reduced and write efficiency in the overall system can be increased.

【0070】本発明を実現するにあたって、比較的小さ
い大きさのキャッシュメモリが極めて有効である。これ
は電源断の間に揮発性のキャッシュメモリの中における
データ損失の問題を克服するのに役立つ。そのようなと
きには、キャッシュメモリを十分長い時間、十分な電源
で維持することと、フラッシュEEpromメモリの中
に特別に予約された空間である不揮発性メモリの中にそ
れらのデータを詰め込んでおくということもできる。こ
のシステムにおける電力断、または電力障害において、
書込みキャッシュシステムは全体のシステムから切り離
されて、準備されていた再充電可能な電力供給はキャッ
シュシステムの電源とフラッシュEEpromメモリに
準備された空間への電源にのみ利用される。
In realizing the present invention, a cache memory having a relatively small size is extremely effective. This helps to overcome the problem of data loss in volatile cache memory during power down. In such a case, maintaining the cache memory for a sufficiently long time with a sufficient power supply and packing the data in a nonvolatile memory which is a special reserved space in the flash EEprom memory. Can also. In the event of power loss or power failure in this system,
The write cache system is decoupled from the entire system, and the prepared rechargeable power supply is only used for powering the cache system and the space provided in the flash EEprom memory.

【0071】図8は、本発明による装置のコントローラ
の一部を形成するキャッシュシステム701を略図的に
示した図である。キャッシュシステム701の一方側は
フラッシュEEpromメモリアレイ33に接続されて
いる。一方側において、それはマイクロプロセッサシス
テム(図示せず)にホストインタフェース703を介し
て接続されている。このキャッシュシステム708は2
つのメモリをもっている。1つは一時的に書込みデータ
ファイルを保持するキャッシュメモリ705である。他
はキャッシュメモリ705の中に保持されるデータファ
イルに関連する情報を記憶するためのタグメモリ709
である。メモリタイミング/コントロール回路713は
キャッシュメモリ705からフラッシュEEpromメ
モリ33へのデータファイルの書込みを制御する。メモ
リコントロール回路713はタグメモリの中に蓄積され
ている情報と同様にマイクロプロセッサシステムの電源
装置にホストインタフェース703と線717を介して
接続されている電力検出入力715に応答させられる。
マイクロプロセッサシステムの電力の劣化はメモリコン
トロール回路713によって検出され、それは揮発性の
キャッシュメモリ705の中のデータファイルの全てを
不揮発性のフラッシュEEpromメモリ33にダウン
ロードするであろう。
FIG. 8 schematically shows a cache system 701 forming part of the controller of the device according to the invention. One side of the cache system 701 is connected to the flash EEprom memory array 33. On one side, it is connected via a host interface 703 to a microprocessor system (not shown). This cache system 708 is 2
Has two memories. One is a cache memory 705 for temporarily storing a write data file. The other is a tag memory 709 for storing information related to the data file held in the cache memory 705.
It is. The memory timing / control circuit 713 controls writing of a data file from the cache memory 705 to the flash EEprom memory 33. The memory control circuit 713 causes the power supply of the microprocessor system to respond to the power detection input 715 connected via the host interface 703 and line 717 as well as the information stored in the tag memory.
The degradation of the microprocessor system power is detected by the memory control circuit 713, which will download all of the data files in the volatile cache memory 705 to the non-volatile flash EEprom memory 33.

【0072】本発明において、フラッシュEEprom
メモリアレイ33は、セクタ(典型的には512バイト
の大きさ)に組織されており、各セクタ内の全てのメモ
リセルは、一緒に消去可能である。かくして各々のセク
タは、データファイルとみなされ、そしてメモリアレイ
上の書込み操作は、1または2以上のそのようなファイ
ルにおいて行なわれる。
In the present invention, the flash EEprom
The memory array 33 is organized into sectors (typically 512 bytes in size), and all memory cells in each sector can be erased together. Thus, each sector is considered a data file, and write operations on the memory array are performed on one or more such files.

【0073】フラッシュEEpromメモリ33の中に
おける新しいセクタの読みの間、データファイルは読み
出されて直接的にホストを介してコントローラに送られ
る。このファイルは通常のキャッシュシステムにおいて
行なわれていたようにキャッシュメモリ705を満たす
ために使用されない。
During the reading of a new sector in the flash EEprom memory 33, the data file is read and sent directly to the controller via the host. This file is not used to fill the cache memory 705 as in a normal cache system.

【0074】ホストシステムがファイルの中のデータの
処理を完了して、それをフラッシュEEpromメモリ
33の中に書き戻そうと希望したときに、それはキャッ
シュシステム701に書込みサイクルの要求によりアク
セスする。コントローラはこれによりこの要求を受け入
れてそのサイクルで動作させる。
When the host system has completed processing the data in the file and wishes to write it back into the flash EEprom memory 33, it accesses the cache system 701 by requesting a write cycle. The controller will then accept this request and operate on that cycle.

【0075】本発明の1つの具体例においてはデータフ
ァイルはキャッシュメモリ705へ書込まれる。同時に
データファイルに関連する他の2つの情報片はタグメモ
リ709に書込まれる。第1のものはファイルポインタ
であってキャッシュメモリ705の中に存在するファイ
ルを規定する。第2のものはタイムスタンプであり、そ
れはキャッシュメモリの中に最も最後にファイルされた
かの時間を物語るものである。このようにしてホストが
フラッシュEEpromメモリ33に書込みを欲すると
きはいつでも、そのデータファイルはポインタとタグメ
モリ709の中のタイムスタンプとともにキャッシュメ
モリ705の中に最初に現実に記憶されたものである。
In one embodiment of the present invention, a data file is written to cache memory 705. At the same time, the other two pieces of information relating to the data file are written to tag memory 709. The first is a file pointer that defines a file that exists in the cache memory 705. The second is a timestamp, which tells the time of the last file in the cache memory. In this way, whenever the host wants to write to the flash EEprom memory 33, the data file is the one that was originally actually stored in the cache memory 705 with the pointer and the time stamp in the tag memory 709.

【0076】本発明のさらに他の具体例によれば、ホス
トからの書込みがあったときは、コントローラはまず初
めにそのファイルが既にキャッシュメモリの中に存在し
ていたものであったのか、またはタグメモリ709の中
においてタグが着けられたもののいずれかであったかを
見ることによりチェックする。もしそれがタグが着けら
れていなかったならばフラッシュメモリ33に書込まれ
る。一方、その標識とタイムスタンプはタグメモリ70
9に書込まれる。もし、そのファイルすでにキャッシュ
メモリの中に存在するか、タグが着けられたものであっ
たならば、それはキャッシュメモリの中で更新され、フ
ラッシュメモリの中には書込まれない。この方法により
しばしば用いられないデータファイルのみがフラッシュ
メモリに書込まれる一方、しばしば用いられるデータフ
ァイルはキャッシュメモリの中に捉えられている。
According to yet another embodiment of the present invention, when there is a write from the host, the controller first determines whether the file was already in cache memory, or A check is made by looking in the tag memory 709 to see if any of the tags are attached. If it has not been tagged, it is written to flash memory 33. On the other hand, the sign and the time stamp are stored in the tag memory 70.
Written in 9. If the file already exists in cache memory or is tagged, it is updated in cache memory and not written into flash memory. With this method, only the data files that are not frequently used are written to the flash memory, while the data files that are frequently used are captured in the cache memory.

【0077】本発明のさらに他の具体例によれば、ホス
トからの書込みがあったときは、予め定めた時間(例え
ば5分間のみ)の間にどこかでさらに書込まれたデータ
ファイルであるかどうかを見てチェックする。もしそう
でなかったならばフラッシュメモリ33に書込まれる。
一方、その標識とタイムスタンプはタグメモリ709に
書込まれる。もし、そのデータファイルが予め定めた時
間間隔内に書込まれたものであったならば、それはキャ
ッシュメモリ705の中に書込まれ、フラッシュメモリ
へは書込まれない。同時に、その標識とタイムスタンプ
はタグメモリ709へ他の実施例と同様に書込まれる。
この方法においても同様にほとんど使用されないデータ
ファイルのみがフラッシュメモリに記録される一方、し
ばしば使用されるデータファイルはキャッシュの中に捉
えられている。
According to yet another embodiment of the present invention, when there is a write from the host, it is a data file that has been further written anywhere during a predetermined time (eg, only 5 minutes). Check to see if it is. If not, it is written to the flash memory 33.
On the other hand, the sign and the time stamp are written into the tag memory 709. If the data file was written within a predetermined time interval, it is written into cache memory 705 and not into flash memory. At the same time, the sign and the time stamp are written to the tag memory 709 as in the other embodiments.
In this method as well, only the rarely used data files are recorded in the flash memory, while the frequently used data files are captured in the cache.

【0078】全ての具体例において、いつでもキャッシ
ュメモリ705は充填されるように使われる。コントロ
ーラが予め決めた十分に満たされた状態に達したことを
検出したときにはコントローラはキャッシュメモリ70
5の中のその他のファイルに優先してフラッシュメモリ
33の中に書込むことによって保存することを開始す
る。
In all embodiments, the cache memory 705 is used to be filled at any time. When the controller detects that it has reached a predetermined fully filled state, the controller
5 and starts saving by writing into the flash memory 33 prior to the other files.

【0079】いずれの具体例においても、キャッシュメ
モリ705はいつでも充填される方向にスタートさせら
れている。コントローラがある定められた満たされた状
態に達したことを検出したときにはコントローラはキャ
ッシュメモリ705の中に他のものに優先してあるファ
イルの保存をフラッシュメモリ35の中にそれらを書込
むことによって開始する。これらのファイルのためのフ
ァイルの標識であるタグビットはそのときにリセットさ
せる。そしてこれらのファイルが書き終わったものであ
ることを示す。これにより、キャッシュメモリに入ろう
とする新しいデータのための空間が形成される。
In any of the embodiments, the cache memory 705 is always started in the filling direction. When the controller detects that it has reached a certain fulfilled state, the controller saves the files in cache memory 705 over the others by writing them into flash memory 35. Start. The tag bits, which are the file indicators for these files, are then reset. It indicates that these files have been written. This creates space for new data to enter the cache memory.

【0080】コントローラは新しいよく働くファイルの
ための空間を形成するために、最初に動かされた最も活
用されないファイルをフラッシュメモリ33にもどすこ
とに対する責任ももたされている。各ファイルの活動の
水準を追跡して保持するために各ファイルのためのタイ
ムスタンプはそのファイルの新しい活動のためにリセッ
トされない限り、動作させられる度ごとにコントローラ
によって集積される。このタイミングはタイマ711に
よって提供されている。すべてのタイムステップ(カウ
ント)にコントローラはキャッシュメモリの中のデータ
ファイルに系統的にアクセスしてこのデータファイルの
ために、最後に書き込まれスタンプを読む。コントロー
ラはそれからこのタイムスタンプを他のタイムステップ
(すなわちカウントを1上昇)でインクリメントする。
The controller is also responsible for returning the least recently used files that were moved first to the flash memory 33 to make room for new working files. To keep track of the activity level of each file, the time stamp for each file is accumulated by the controller each time it is activated, unless reset for a new activity in that file. This timing is provided by the timer 711. At every time step (count), the controller systematically accesses the data file in the cache memory and reads the last written stamp for this data file. The controller then increments this time stamp by another time step (ie, increments the count by one).

【0081】ファイルのタイムスタンプに対して、その
ファイルの活動にしたがって2つのことが起こる。1つ
の可能性は、そのタイムスタンプが新しい活動が発生し
たという事象によってリセットされることである。他の
可能性はそのファイルについて新しい活動を発生しない
で、そのタイムスタンプがキャッシュから除去されるま
でインクリメントされることである。実際、タイムスタ
ンプが無制限に増加すると最大の限界に達する。例え
ば、システムによりタイムスタンプが最大5分の不活動
期間までインクリメントされる場合がある。したがって
データファイルがキャシュメモリに書込まれるとき、
ファイルのタイムスタンプは初期値に設定される。その
後、タイムスタンプは、別の書込み更新により初期値に
再度設定されなければ、タイムステップ毎にインクリメ
ントしながら増加し始める。例えば、5分の不活動状態
後には、タイムスタンプは最大値の終端カウントまでイ
ンクリメントされる。
For a file's timestamp, two things happen according to the activity of the file. One possibility is that the timestamp is reset by an event that a new activity has occurred. Another possibility is that no new activity occurs for the file and that the timestamp is incremented until it is removed from the cache. In fact, the maximum limit is reached when the timestamp increases indefinitely. For example, the timestamp may be incremented by the system up to a maximum of 5 minutes of inactivity. Therefore, when a data file is written to cache memory,
The file timestamp is set to the initial value. Thereafter, unless the time stamp is reset to the initial value by another write update, the time stamp starts to increase while incrementing at each time step. For example, after 5 minutes of inactivity, the timestamp is incremented to the maximum terminal count.

【0082】カウントを維持する1つの実施例におい
て、ファイルのカウントインクリメントが生じる度に、
シフトレジスタのある場所にビットがシフトされる場合
がある。もしファイルが更新(新しい活動が発生したこ
と)のときにビットの位置は、シフトレジスタの当初の
位置にセットされるであろう。一方、ファイルが不活動
状態にあるときにはある場合においてビットは次第に最
終的なシフト位置に向かってシフトされるであろう。各
ファイルのカウント値は各タイムステップごとに記憶さ
れ、それからインクリメントされていく。各インクリメ
ント後、カウント値はマスターカウンタと比較され、そ
の差は問題の時間遅れである。
In one embodiment of maintaining the count, each time a file count increment occurs,
Bits may be shifted to certain locations in the shift register. If the file is updated (a new activity has occurred), the bit position will be set to the original position of the shift register. On the other hand, when the file is inactive, in some cases the bits will gradually shift towards the final shift position. The count value of each file is stored for each time step, and is then incremented. After each increment, the count value is compared to a master counter, the difference being the time delay in question.

【0083】かくして、もしファイルが活動状態であれ
ば、その加算されたタイムスタンプはデータファイルが
書き換えられる度に当初の値にリセットされてもどされ
る。この方法により、常に更新されているファイルは低
いスタンプ標識を持ち、そしてその動作が減少するま
で、キャッシュメモリの中に保存されるであろう。不活
動の期間が経過した後に、それらは最大のタイムスタン
プ標識を得る。使われていないファイルは次第にフラッ
シュメモリの中に記憶され、新しい、より使用されるフ
ァイルのためにキャッシュメモリの中のスペースを空け
ていく。タグメモリの中においてもスペースはこれらの
不活性なファイルがフラッシュメモリに移動されるにし
たがってあけられていく。
Thus, if the file is active, the added time stamp is reset back to the original value each time the data file is rewritten. In this way, a file that is constantly being updated will have a low stamp indicator and will be stored in cache memory until its activity is reduced. After the period of inactivity has elapsed, they get the largest timestamp indicator. Unused files are gradually stored in flash memory, freeing up space in cache memory for new, more used files. Even in the tag memory, space is opened as these inactive files are moved to the flash memory.

【0084】いつでもキャッシュメモリに入ろうとする
新しいデータファイルのために場所が空けられている必
要があり、コントローラはいくつかの古いファイルを除
去してそれをフラッシュメモリ33の中に保存する。ス
ケジューリングはコントローラの中のメモリタイミング
/コントロール回路713によってなされる。ファイル
を保存することについての決定はいろいろな領域に基礎
づけられている。コントローラがそのシステムにおける
書込みの発生頻度をいつも監視しており、キャッシュが
どの程度満たされているかをみている。もし、キャッシ
ュの中に、空き部屋、空間、空き間がときには保存がさ
れる必要はない。もし、より多くの空き部屋が要求され
るときは、最も速い時間のタイムスタンプをもつファイ
ルが最初に移動され、フラッシュメモリに記憶される。
At any time, space needs to be made available for a new data file to enter cache memory, and the controller removes some old files and stores them in flash memory 33. Scheduling is performed by a memory timing / control circuit 713 in the controller. The decision to save a file is based on various areas. The controller keeps track of the frequency of writes in the system and sees how full the cache is. If there are empty rooms, spaces, and vacancies in the cache, there is no need to save them. If more room is required, the file with the fastest timestamp is moved first and stored in flash memory.

【0085】本発明はコントローラの中のハードウエア
の中の構成に関連して記述されてきたが、他の構成が可
能であるというようにも理解されたい。例えば、キャッ
シュメモリはそのシステムの中のどこに存在してもよい
し、また現存するマイクロプロセッサシステムに用いら
れるソフトウエアによって実現されても良い。そのよう
な変形は本発明の方の範囲内にある。
Although the invention has been described with reference to hardware components in the controller, it should be understood that other configurations are possible. For example, the cache memory may reside anywhere in the system or may be implemented by software used in existing microprocessor systems. Such variations are within the scope of the present invention.

【0086】いかに多くの回数データがフラッシュメモ
リに書き戻されたかというプロファイルはいろいろな要
素のもとで決定される。それは、キャッシュメモリの大
きさとそのシステムにおける書込みの発生頻度に依存す
る。小さなキャッシュメモリシステムの場合では、最も
頻度の高いファイルのみがキャッシュ化されるだろう。
より少ない頻度でアクセスされるファイルはキャッシュ
メモリの大きさを増大することに関連してキャッシュ化
されるであろう。本発明、すなわち比較的安くて小さい
量のキャッシュメモリを使用する場合においては、好ま
しくは1メガバイト程度のものの利用が有効である。最
も良く用いられるファイル(例えば上位5%)に定常的
に書込まないようにすることにより、フラッシュEEp
romの書込み頻度は、各ミリ秒ごとのものを5分毎秒
程度に減少させることができるであろう。これにより、
メモリの使い尽くし時間は、ほとんど永久というように
延ばすことができる。この改良は書込み時間中のシステ
ムの動作能率を向上させるという改良になって現れる。
The profile of how many times data has been written back to the flash memory is determined based on various factors. It depends on the size of the cache memory and the frequency of writes occurring in the system. In the case of a small cache memory system, only the most frequent files will be cached.
Files that are accessed less frequently will be cached in connection with increasing the size of the cache memory. In the present invention, that is, when a relatively cheap and small amount of cache memory is used, it is preferable to use a cache memory of about 1 megabyte. By avoiding constantly writing to the most frequently used files (eg the top 5%), Flash EEp
The write frequency of rom could be reduced from every millisecond to about 5 minutes per second. This allows
Memory exhaustion time can be extended to be almost permanent. This improvement manifests itself in improving the operating efficiency of the system during write time.

【0087】タイムタグをライトキャッシュの概念の中
に実現するということは、ライトキャッシュバッファメ
モリを比較的小さくするという利点となり、その理由
は.それがしばしば、書かれるデータファイルの記憶に
用いられ、その他のファイルはフラッシュEEprom
メモリに直接書込まれるのである。第2の特徴は、ライ
トキャッシュバッファの入出で、ある移動データファイ
ルの管理は、次にどのデータファイルが呼ばれるかとい
う進んだ知識を要求されないので、自動化できることで
ある。
The realization of a time tag in the concept of a write cache has the advantage of making the write cache buffer memory relatively small. It is often used to store data files to be written, while other files are flash EEprom
It is written directly to memory. The second feature is that the management of a moving data file upon entry and exit of the write cache buffer does not require advanced knowledge of which data file will be called next, so that it can be automated.

【0088】上述した本発明の種々の点は、フラッシュ
EEpromメモリが従来の不揮発性大容量記憶装置と
代替可能なものになるフラッシュEEpromメモリア
レイのシステムに関連するものである。
The various aspects of the present invention described above relate to a flash EEprom memory array system in which flash EEprom memory can replace conventional non-volatile mass storage devices.

【0089】上述した本発明の種々の点の実施例は好適
なじっしれであるが、当業者はそれらの変形例もまた可
能であることを理解されたい。したがって、本発明は添
付の請求の範囲の全範囲内に保護が与えられるべきもの
である。
While the embodiments of the various aspects of the invention described above are suitable, those skilled in the art will appreciate that variations thereof are also possible. Accordingly, the invention is to be protected within the full scope of the appended claims.

【図面の簡単な説明】[Brief description of the drawings]

【図1A】本発明によるフラッシュEEpromメモリ
システムを含むマイクロプロセッサシステムのブロック
図である。
FIG. 1A is a block diagram of a microprocessor system including a flash EEprom memory system according to the present invention.

【図1B】ある数のフラッシュEEpromメモリチッ
プと一つのコントローラチップを含むシステムを示すブ
ロック図である。
FIG. 1B is a block diagram illustrating a system including a number of flash EEprom memory chips and a controller chip.

【図2】消去されるべく選択されるメモリセクタを含む
フラッシュEEpromチップシステムの略図である。
FIG. 2 is a schematic diagram of a flash EEprom chip system including memory sectors selected to be erased.

【図3A】本発明による多数のセクタの選択的消去を実
現するためのコントローラの回路を示すブロック図であ
る。
FIG. 3A is a block diagram showing a circuit of a controller for implementing selective erasure of a large number of sectors according to the present invention.

【図3B】図2Aに示された消去のために一つのセクタ
を選択するために使用される典型的なレジスタの詳細を
示す回路図である。
FIG. 3B is a circuit diagram showing details of an exemplary register used to select one sector for erasure shown in FIG. 2A.

【図4】複数のセクタ消去選択の消去シーケンスを図示
した流れ図である。
FIG. 4 is a flowchart illustrating an erase sequence of a plurality of sector erase selections.

【図5】一つのフラッシュEEpromセクタをデータ
領域と予備の冗長領域に分けたことを示す略図である。
FIG. 5 is a schematic diagram showing that one flash EEprom sector is divided into a data area and a spare redundant area.

【図6】本発明による欠陥マッピングを使用した読込み
操作中におけるデータパスを示したブロック図である。
FIG. 6 is a block diagram illustrating a data path during a read operation using defect mapping according to the present invention.

【図7】本発明による欠陥マッピングを使用した書込み
時におけるデータの制御パスを図示したブロック図であ
る。
FIG. 7 is a block diagram illustrating a data control path at the time of writing using defect mapping according to the present invention.

【図8】コントローラの中の書込みキャッシュ回路を図
示したブロック図である。
FIG. 8 is a block diagram illustrating a write cache circuit in the controller.

【符号の説明】[Explanation of symbols]

21 マイクロプロセッサ 23 システムバス 25 RAM 27 I/O装置 29 バルクメモリ 31 メモリコントローラ 33 EEpromアレイ(メモリ) 35,37 シリアルデータ線 39 データバス 40 インタフェース回路 41 システム制御線 43,45,47 EEpromチップ 49,51,53 チップセレクト(イネイブル) 57 論理およびレジスタ回路 59 バス 201,203,205 EEpromチップ 209 線 211,213 セクタ 221,223 レジスタ 225 コマンドレジスタ 227 シリアルインタフェース 229 コマンドデコーダ 231 アドレスレジスタ 233 アドレスデコーダ 503 メモリアドレス発生器 505 ポート(μpインタフェース) 507 DMAコントローラ 509 ホールディングレジスタファイル 511 コマンドシーケンサ 513 マルチプレクサ 515 受信器 517 欠陥データ代替ファイル 519 FIFO 521 コンパレータ 523 マルチプレクサ 525 出力インタフェース 527 ECCハードウエア 601 FIFO 603 インタフェース 605 マルチプレクサ 21 Microprocessor 23 System Bus 25 RAM 27 I / O Device 29 Bulk Memory 31 Memory Controller 33 EEprom Array (Memory) 35, 37 Serial Data Line 39 Data Bus 40 Interface Circuit 41 System Control Line 43, 45, 47 EEprom Chip 49, 51, 53 Chip select (enable) 57 Logic and register circuit 59 Bus 201, 203, 205 EEprom chip 209 Line 211, 213 Sector 221, 223 Register 225 Command register 227 Serial interface 229 Command decoder 231 Address register 233 Address decoder 503 Memory address Generator 505 port (μp interface) 507 DMA controller 509 Hold Grayed register file 511 the command sequencer 513 multiplexer 515 receiver 517 defective data replacement file 519 FIFO 521 comparator 523 multiplexer 525 output interface 527 ECC hardware 601 FIFO 603 interface 605 multiplexer

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロバート ディー. ノーマン アメリカ合衆国、95120、カリフォルニア 州、サン ホセ,ペブルウッド コート 6656 (72)発明者 サンジェイ メーロトラ アメリカ合衆国、95035、カリフォルニア 州、ミルピタス、バークシャー プレイス 735 ──────────────────────────────────────────────────続 き Continuation of the front page (72) Robert Dee. Norman United States, 95120, San Jose, California, Pebblewood Court 6656 (72) Inventor Sanjay Melotra United States, 95035, California, Milpitas, Berkshire Place 735

Claims (29)

【特許請求の範囲】[Claims] 【請求項1】 プロセッサおよびメモリシステムを含む
コンピュータシステムの操作方法であり、ここにおいて
前記メモリシステムは、複数のセクタに分割された不揮
発性フローティングゲートメモリセルのアレイを含んで
おり、前記セクタはそれぞれ、1つのユニットとして同
時に消去可能な前記メモリセルアレイの明確なグループ
を含むものであるコンピュータシステムの操作方法にお
いて、個々のセクタ内にメモリセルの少なくとも1つの
ユーザデータ部と少なくとも1つのオーバーヘッド部を
供給することと、少なくとも1つの磁気ディスクセクタ
を指定する形式のアドレスをプロセッサからの受ける
と、それに応じて、前記少なくとも1つの磁気ディスク
セクタに対応する少なくとも1つの不揮発性メモリセク
タのアドレスを指定することと、前記少なくとも1つの
不揮発性メモリセクタのユーザデータ部にユーザデータ
を書込むことか、もしくは前記ユーザデータ部からユー
ザデータを読出すことと、前記少なくとも1つの不揮発
性メモリセクタか、もしくは前記少なくとも1つの不揮
発性メモリセクタのユーザデータ部に記憶されるデータ
のいずれかに関するものであるオーバーヘッドデータ
を、前記少なくとも1つの不揮発性メモリセクタの前記
オーバーヘッド部に書込むことか、もしくは前記オーバ
ーヘッド部から読出すことのいずれかからなるコンピュ
ータシステムの操作方法。
1. A method of operating a computer system including a processor and a memory system, wherein the memory system includes an array of non-volatile floating gate memory cells divided into a plurality of sectors, each of the sectors being Providing at least one user data part and at least one overhead part of a memory cell in an individual sector in a method of operating a computer system comprising a distinct group of said memory cell array which can be erased simultaneously as one unit And receiving an address of a format designating at least one magnetic disk sector from the processor, and designating an address of at least one nonvolatile memory sector corresponding to the at least one magnetic disk sector accordingly. Writing user data to or reading user data from a user data portion of the at least one non-volatile memory sector; and Writing overhead data relating to any of the data stored in the user data section of the at least one nonvolatile memory sector to the overhead section of the at least one nonvolatile memory sector, or Operating the computer system, comprising:
【請求項2】 前記方法において、さらに、個々のセク
タが使用不能になるとき予め規定した状態を検出するこ
とと、前記使用不能のセクタのアドレスと使用可能な他
のセクタのアドレスをリンクすることからなる請求項1
記載のコンピュータシステムの操作方法。
2. The method of claim 1, further comprising: detecting a predefined condition when an individual sector becomes unusable; and linking an address of the unusable sector with an address of another available sector. Claim 1 consisting of
Operating method of the computer system described.
【請求項3】 前記方法において、予め規定した状態を
検出することは、個々のセクタが欠陥になるときを検出
することを含む請求項2記載のコンピュータシステムの
操作方法。
3. The method of claim 2, wherein detecting the predefined condition comprises detecting when an individual sector becomes defective.
【請求項4】 前記方法において、個々のセクタが欠陥
になるときを検出することは、セクタ内の個々の欠陥メ
モリセルの数が所定の数を超えるときを決定することを
含む請求項3記載のコンピュータシステムの操作方法。
4. The method of claim 3, wherein detecting when an individual sector becomes defective includes determining when the number of individual defective memory cells in the sector exceeds a predetermined number. How to operate a computer system.
【請求項5】 前記方法において、個々の不揮発性メモ
リセクタのユーザデータ部は、実質的に512バイトの
容量をもつ請求項1記載のコンピュータシステムの操作
方法。
5. The method of claim 1, wherein the user data portion of each non-volatile memory sector has a capacity of substantially 512 bytes.
【請求項6】 前記方法において、個々のセクタのオー
バーヘッド部に記憶される情報は、個々のセクタのそれ
ぞれのオーバーヘッド部のアドレスを含む請求項1記載
のコンピュータシステムの操作方法。
6. The method according to claim 1, wherein the information stored in the overhead section of each sector includes an address of each overhead section of each sector.
【請求項7】 前記方法において、個々のセクタのオー
バーヘッド部に記憶される情報は、個々のセクタの対応
するセクタのユーザデータ部に記憶されるデータから算
出される誤り訂正コードを含む請求項1記載のコンピュ
ータシステムの操作方法。
7. The method of claim 1, wherein the information stored in the overhead section of each sector includes an error correction code calculated from data stored in a user data section of a corresponding sector of each sector. Operating method of the computer system described.
【請求項8】 前記方法において、使用不能のセクタの
アドレスを使用可能なセクタとリンクすることは、前記
使用不能のセクタと使用可能な他のセクタの対応するセ
クタのアドレスをリンクするリストを維持することと、
使用可能なセクタにアクセスすることは、使用不能のセ
クタのアドレスを使用可能なセクタのアドレスに変える
ために前記リストを参照することを含む請求項2記載の
コンピュータシステムの操作方法。
8. The method of claim 1, wherein linking an address of an unavailable sector with an available sector maintains a list linking addresses of corresponding sectors of the unavailable sector and other available sectors. To do
3. The method of claim 2, wherein accessing an available sector comprises referencing the list to change an address of an unavailable sector to an address of an available sector.
【請求項9】 前記方法において、前記使用不能のセク
タのアドレスをリンクすることは、対応する使用可能な
セクタのアドレスを欠陥セクタの個々のセクタ内に記憶
することと、使用不能のセクタに対応する使用可能なセ
クタにアクセスすることは、使用不能のセクタに記憶さ
れる使用可能なセクタアドレスを参照することを含む請
求項2記載のコンピュータシステムの操作方法。
9. The method of claim 1, wherein linking the address of the unusable sector comprises storing an address of a corresponding available sector in each of the defective sectors and corresponding to the unusable sector. 3. The method of claim 2, wherein accessing the available sector comprises referencing an available sector address stored in the unavailable sector.
【請求項10】 前記方法において、コントローラに不
揮発性メモリセクタのアドレスを発生させることは、1
つの磁気ディスクセクタのみに対応する不揮発性メモリ
セクタに対してそのように実行することを含み、個々の
不揮発性メモリセクタのユーザデータ部は、前記1つの
磁気ディスクセクタのユーザデータ部と実質的に同じ容
量をもつ請求項2記載のコンピュータシステムの操作方
法。
10. The method of claim 1, wherein causing the controller to generate an address of a non-volatile memory sector comprises:
Performing such for a non-volatile memory sector corresponding to only one magnetic disk sector, wherein the user data portion of each non-volatile memory sector is substantially the same as the user data portion of said one magnetic disk sector. 3. The method of operating a computer system according to claim 2, having the same capacity.
【請求項11】 前記方法において、メモリセルを分割
することは、予備メモリセル部をさらに含むように個々
のセクタ内の前記メモリセルを分割することを含む請求
項1記載のコンピュータシステムの操作方法。
11. The method of claim 1, wherein dividing the memory cells comprises dividing the memory cells in individual sectors to further include a spare memory cell section. .
【請求項12】 前記方法において、個々のセクタの前
記オーバーヘッド部に記憶されるオーバーヘッドデータ
は、前記セクタの対応するセクタのユーザデータ内のあ
らゆる欠陥セルを確認することを含み、前記方法はさら
に、コントローラに、前記アドレスされた少なくとも1
つの不揮発性メモリセクタのオーバーヘッド部から欠陥
セルの確認を読出させ、その後にアドレスされた少なく
とも1つの不揮発性メモリセクタの予備セル部内にある
他のセルに置き換えさせることからなる請求項11記載
のコンピュータシステムの操作方法。
12. The method, wherein the overhead data stored in the overhead portion of an individual sector comprises identifying any defective cells in user data of a corresponding sector of the sector, the method further comprising: The controller has at least one of said addressed
12. The computer of claim 11, further comprising: reading the identification of a defective cell from an overhead portion of one of the non-volatile memory sectors, and subsequently replacing the defective cell with another cell in a spare cell portion of at least one of the addressed non-volatile memory sectors. How to operate the system.
【請求項13】 前記方法において、個々のセクタは1
つのユーザデータ部のみと1つのオーバーヘッドデータ
部のみを含む請求項1記載のコンピュータシステムの操
作方法。
13. The method according to claim 1, wherein each sector is one.
2. The method according to claim 1, comprising only one user data portion and only one overhead data portion.
【請求項14】 前記方法において、さらに、アレイの
動作を制御するための前記プロセッサに接続可能なメモ
リコントローラを供給することからなる請求項1〜13
記載のコンピュータシステムの操作方法。
14. The method of claim 1, further comprising providing a memory controller connectable to said processor for controlling operation of an array.
Operating method of the computer system described.
【請求項15】 前記方法において、メモリシステム
は、コンピュータシステムに取り外し可能に接続される
カード内に設けられる請求項1〜13記載のコンピュー
タシステムの操作方法。
15. The method of claim 1, wherein the memory system is provided in a card removably connected to the computer system.
【請求項16】 前記方法において、メモリコントロー
ラは、コンピュータシステムに取り外し可能に接続され
るカード内に設けられる請求項14記載のコンピュータ
システムの操作方法。
16. The method of claim 14, wherein the memory controller is provided in a card removably connected to the computer system.
【請求項17】 前記方法において、メモリコントロー
ラおよびメモリシステムは、コンピュータシステムに取
り外し可能に接続されるカード内に設けられる請求項1
4記載のコンピュータシステムの操作方法。
17. The method of claim 1, wherein the memory controller and the memory system are provided in a card that is removably connected to the computer system.
5. The operation method of the computer system according to 4.
【請求項18】 ホストコンピュータシステムと接続す
るための電気端子を有するメモリシステムであり、前記
メモリシステムにおいて、複数のセクタに分割される不
揮発性フローティングゲートメモリセルのアレイであっ
て、前記セクタはそれぞれ、1つのユニットとして同時
に消去可能な前記メモリセルの明確なグループを含むも
のであり、個々のセクタは所定量のユーザデータといく
つかのオーバーヘッドデータを記憶するのに十分なセル
を有するものである不揮発性フローティングゲートメモ
リセルのアレイと、アレイの動作を制御するために前記
電気端子と前記メモリセル間に接続されるメモリコント
ローラであって、前記コントローラにおいて、1以上の
不揮発性メモリセクタをアドレスするために、前記電気
端子を介した1以上の大容量メモリ記憶ブロックのアド
レスの受信に応答する手段であり、前記アドレス指定手
段は、別の使用可能なセクタに置き換えるために使用不
能のあらゆる不揮発性メモリセクタの確認に応答する手
段を含むものである応答手段と、アドレスされたセクタ
に記憶されるオーバーヘッドデータを読出す手段と、ア
ドレスされたセクタからユーザデータを読出すことか、
もしくは前記セクタにユーザデータを書込むことのいず
れかのために読出されたオーバーヘッドデータに応答す
る手段とを含むコントローラからなるメモリシステム。
18. A memory system having electrical terminals for connection to a host computer system, wherein the memory system is an array of non-volatile floating gate memory cells divided into a plurality of sectors, wherein each of the sectors is A well-defined group of said memory cells, which can be erased simultaneously as one unit, wherein each sector has enough cells to store a certain amount of user data and some overhead data An array of non-volatile floating gate memory cells and a memory controller connected between the electrical terminals and the memory cells for controlling the operation of the array, wherein the controller addresses one or more non-volatile memory sectors One or more through the electrical terminals Responsive to receipt of the address of the large memory storage block of claim 1, wherein said addressing means includes means for responding to the identification of any non-volatile memory sector that is unavailable for replacement with another available sector. Responsive means; means for reading overhead data stored in the addressed sector; reading user data from the addressed sector;
Or means responsive to the overhead data read for either writing user data to said sector.
【請求項19】 前記メモリシステムにおいて、あらゆ
る使用不能のセクタを確認することは、使用不能のセク
タのアドレスと対応する使用可能なセクタをリンクする
ものであるメモリシステムユニット内に維持されるリス
トを含む請求項18記載のメモリシステム。
19. In the memory system, ascertaining any unusable sectors comprises creating a list maintained in a memory system unit that links the addresses of the unusable sectors and the corresponding available sectors. 20. The memory system of claim 18, including:
【請求項20】 前記メモリシステムにおいて、あらゆ
る使用不能のセクタを確認することは、使用不能のセク
タのそれぞれのセクタにオーバーヘッドデータの一部と
して記憶される代わりの使用可能なセクタの個々のアド
レスを記憶することを含む請求項18記載のメモリシス
テム。
20. In the memory system, ascertaining any unusable sectors comprises assigning an individual address of an alternate available sector stored in each sector of the unusable sectors as part of overhead data. 20. The memory system of claim 18, including storing.
【請求項21】 前記メモリシステムにおいて、あらゆ
る使用不能のセクタを確認することは、動作不能なセク
タもしくは欠陥セクタを確認すること含む請求項18〜
20のいずれか1項記載のメモリシステム。
21. In the memory system, identifying any unusable sectors includes identifying inoperable or defective sectors.
21. The memory system according to any one of 20.
【請求項22】 前記メモリシステムにおいて、あらゆ
る使用不能のセクタを確認することは、予め設定した数
を超える複数の欠陥セルを保有するセクタの確認を含む
請求項18〜20のいずれか1項記載のメモリシステ
ム。
22. In the memory system, confirming any unusable sectors includes confirming a sector having a plurality of defective cells exceeding a preset number. Memory system.
【請求項23】 前記メモリシステムにおいて、前記所
定量のユーザデータは、実質的に512バイトに等しい
請求項18〜20のいずれか1項記載のメモリシステ
ム。
23. The memory system according to claim 18, wherein in the memory system, the predetermined amount of user data is substantially equal to 512 bytes.
【請求項24】 前記メモリシステムにおいて、前記コ
ントローラは、さらに、消去動作用に複数のセクタを選
択する手段と、選択した複数のセクタのみに同時に消去
動作を実行する手段を含む請求項18〜20のいずれか
1項記載のメモリシステム。
24. In the memory system, the controller further includes means for selecting a plurality of sectors for an erasing operation, and means for performing an erasing operation on only the selected plurality of sectors at the same time. The memory system according to claim 1.
【請求項25】 前記メモリシステムにおいて、前記個
々の不揮発性メモリセクタは、さらに、前記所定量のユ
ーザデータおよび前記オーバーヘッドデータを記憶する
のに必要な数のセルを超える冗長メモリセルをさらに有
し、前記コントローラは、さらに、個々のセクタ内の欠
陥メモリセルの代わりに個々のセクタの冗長メモリセル
に置き換える手段をさらに含む請求項18記載のメモリ
システム。
25. In the memory system, each of the non-volatile memory sectors further includes a redundant memory cell exceeding a required number of cells for storing the predetermined amount of user data and the overhead data. 19. The memory system of claim 18, wherein said controller further comprises means for replacing defective memory cells in individual sectors with redundant memory cells in individual sectors.
【請求項26】 前記メモリシステムにおいて、オーバ
ーヘッドデータ読出手段は、アドレスされたセクタのオ
ーバーヘッドデータからそのセクタのアドレスを読出す
手段を含み、そしてコントローラは、読出したオーバー
ヘッドデータのアドレスをセクタのアドレスと比較する
ことにより、所望のセクタがアドレスされたことを確認
する手段を含む請求項18記載のメモリシステム。
26. In the memory system, the overhead data reading means includes means for reading an address of the addressed sector from the overhead data of the addressed sector, and the controller stores the address of the read overhead data as an address of the sector. 19. The memory system of claim 18, further comprising means for comparing to confirm that a desired sector has been addressed.
【請求項27】 前記メモリシステムにおいて、個々の
セクタに記憶可能な所定量のユーザデータは、ホストコ
ンピュータシステムの個々の大容量メモリ記憶ブロック
の大きさと実質的に等しいものであり、そしてアドレス
指定手段は、大容量メモリ記憶ブロックの個々のブロッ
クのアドレスを不揮発性メモリセクタの固有の個々のセ
クタにマップする請求項18〜20,25および請求項
26のいずれか1項記載のメモリシステム。
27. In the memory system, the predetermined amount of user data storable in individual sectors is substantially equal to the size of individual mass memory storage blocks of the host computer system, and the addressing means. 27. The memory system according to any one of claims 18 to 20, 25 and 26, wherein the addresses map addresses of individual blocks of the mass memory storage block to unique individual sectors of the non-volatile memory sector.
【請求項28】 前記メモリシステムにおいて、前記メ
モリシステムユニットは、単一のプリント回路カード上
で実行される請求項18〜20,25および請求項26
のいずれか1項記載のメモリシステム。
28. In the memory system, the memory system unit executes on a single printed circuit card.
The memory system according to claim 1.
【請求項29】 前記メモリシステムにおいて、コント
ローラのアドレス指定手段が応答する1以上の大容量メ
モリ記憶ブロックのアドレスは、1以上の磁気ディスク
セクタのアドレスからなる請求項18〜20,25およ
び請求項26のいずれか1項記載のメモリシステム。
29. In the memory system, the address of one or more mass memory storage blocks to which the addressing means of the controller responds comprises the address of one or more magnetic disk sectors. 27. The memory system according to claim 26.
JP02384299A 1999-02-01 1999-02-01 Flash EEprom system Expired - Lifetime JP3944326B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP02384299A JP3944326B2 (en) 1999-02-01 1999-02-01 Flash EEprom system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02384299A JP3944326B2 (en) 1999-02-01 1999-02-01 Flash EEprom system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP9911490A Division JP3226042B2 (en) 1989-04-13 1990-04-12 Flash EEprom system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2007027673A Division JP4090071B2 (en) 2007-02-07 2007-02-07 Flash EEprom system

Publications (2)

Publication Number Publication Date
JPH11339485A true JPH11339485A (en) 1999-12-10
JP3944326B2 JP3944326B2 (en) 2007-07-11

Family

ID=12121663

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02384299A Expired - Lifetime JP3944326B2 (en) 1999-02-01 1999-02-01 Flash EEprom system

Country Status (1)

Country Link
JP (1) JP3944326B2 (en)

Also Published As

Publication number Publication date
JP3944326B2 (en) 2007-07-11

Similar Documents

Publication Publication Date Title
JP3226042B2 (en) Flash EEprom system
US5535328A (en) Non-volatile memory system card with flash erasable sectors of EEprom cells including a mechanism for substituting defective cells
US6462992B2 (en) Flash EEprom system
US7492660B2 (en) Flash EEprom system
JP3944326B2 (en) Flash EEprom system
JP4090071B2 (en) Flash EEprom system

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040302

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040531

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040604

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040902

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050222

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20050520

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20050530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050920

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060119

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20060822

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070409

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

EXPY Cancellation because of completion of term