JP2007149119A - Flash eeprom system - Google Patents

Flash eeprom system Download PDF

Info

Publication number
JP2007149119A
JP2007149119A JP2007027673A JP2007027673A JP2007149119A JP 2007149119 A JP2007149119 A JP 2007149119A JP 2007027673 A JP2007027673 A JP 2007027673A JP 2007027673 A JP2007027673 A JP 2007027673A JP 2007149119 A JP2007149119 A JP 2007149119A
Authority
JP
Japan
Prior art keywords
memory
sector
data
controller
address
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
JP2007027673A
Other languages
Japanese (ja)
Other versions
JP4090071B2 (en
Inventor
Eliyahou Harari
ハラリ エリヤホウ
Robert D Norman
ディー. ノーマン ロバート
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 JP2007027673A priority Critical patent/JP4090071B2/en
Publication of JP2007149119A publication Critical patent/JP2007149119A/en
Application granted granted Critical
Publication of JP4090071B2 publication Critical patent/JP4090071B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To provide a flash EEPROM system. <P>SOLUTION: The flash EEPROM system of the present invention comprises a processor 21 and a memory system. The memory system comprises an array 33 of a nonvolatile floating gate memory cell divided into a plurality of sectors. The sectors each include a definite group of the memory cell array 33 erasable simultaneously as one unit. At least one user data section and overhead section of memory cell is provided in each sector. In response to receiving an address in a format for designating at least one magnetic disc sector from a processor, the address of at least one nonvolatile memory sector corresponding to at least one magnetic disc sector is designated. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、一般的には半導体の電気的に消去可能なプログラムリードオンリーメモリ(EEprom)に関し、さらに詳しく言えばフラッシュEEpromチップ回路を集積したシステムに関する。   The present invention relates generally to semiconductor electrically erasable program read only memory (EEprom), and more particularly to a system with integrated flash EEprom chip circuitry.

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

EEpromとフラッシュEEpromは同様に固体記憶装置である。しかしながら、不揮発性であり、そして電力が落とされた後でも、その記憶を維持している。しかしながら、通常のフラッシュEEpromは、それらが耐えられる書込み(またはプログラム)/消去回数の数において有限の寿命をもっている。典型的にはそれらの装置は102 から103 の書込み/消去回数を過ぎると信頼できなくなる。そこで従来そのような素子、それらは半永久的なデータとかプログラムの蓄積が要求される場合であって、再プログラムの必要性にある種の制限があってもいい場合において利用されている。
米国特許出願第204,175号
EEprom and flash EEprom are solid state storage devices as well. However, it is non-volatile and maintains its memory even after power is removed. However, normal flash EEproms have a finite lifetime in the number of write (or program) / erase times they can withstand. Typically, these devices become unreliable after 10 2 to 10 3 write / erase cycles. Therefore, such elements are conventionally used in cases where semi-permanent data or program storage is required, and there may be certain restrictions on the need for reprogramming.
US Patent Application No. 204,175

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

前記目的および追加の目的はEEpromチップのシステムの構造や回路や技術における改良によって達成される。   These and additional objectives are achieved by improvements in the system structure, circuitry and technology of the EEprom chip.

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

本発明の他の特徴によれば、欠陥のあるフラッシュEEpromメモリセルから発生する誤りを訂正するために使用する改良された誤り訂正回路または、技術が使用されることである。本発明の一つの特徴はセルのレベルにおいて、欠陥セルのマッピングを許容することであり、それによって同じセクタのセルで欠陥のセルを置き換えることを可能にしている。欠陥セルを置き換えられたセルのアドレスに接続するための欠陥ポインタは欠陥マップに記憶されている。欠陥のあるセルはアクセスされるたびごとに、その悪いデータは、代替のセルの良いデータに置き換えられる。   According to another aspect of the invention, an improved error correction circuit or technique is used that is used to correct errors arising from defective flash EEprom memory cells. 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 in 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 an alternative cell.

本発明のさらに他の特徴はセクタレベルにおいて欠陥マッピングを許容することである。一つのセクタにおける欠陥セルの数がある一定の数を超えたときにその欠陥セルを含むセクタは他のセクタによって代替される。   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 including the defective cell is replaced by another sector.

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

本発明のさらに他の特徴によれば、書込みキャッシュを設けることにより、フラッシュEEpromへの書込みの回数を最小にすることができることである。これにより、このフラッシュEEpromメモリは書込み/消去回数によって発生させられる、より少ないストレスに従属させることにより、その老朽化を防止することである。最もアクティブなデータファイルは、フラッシュEEpromメモリの代わりにキャッシュメモリに書込まれる。活動のレベルが予め定められたレベルに減少されたときは、データファイルがキャッシュメモリからフラッシュEEpromメモリに書込まれる。本発明の他の利点はより早いキャッシュメモリを使用することによって増大させられる。   According to still another feature of the present invention, the number of writes to the flash EEprom can be minimized by providing a write cache. Thus, the flash EEprom memory is subject to less stress caused by the number of write / erase times, thereby preventing its aging. 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, the data file is written from the cache memory to the flash EEprom memory. Another advantage of the present invention is increased by using faster cache memory.

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

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

(EEpromシステム)
本発明の種々の特徴が盛り込まれているコンピュータシステムが一般的に図1Aに示されている。典型的なコンピュータシステムはバスライン23に接続されているマイクロプロセッサ21、それにより主システムメモリ25にランダムアクセスすることができ、そして少なくとも1または2以上の入出力装置27、例えばキーボード、モニタ、モデム等々が設けられている。典型的なコンピュータシステムバス23に接続されている他の主たるコンピュータの要素は大量の長期間使用可能な不揮発性メモリ29である。典型的にそのようなメモリは10メガバイトのデータ蓄積能力をもつディスク駆動システムである。データは、システムの中の揮発性メモリ25の中に容易に引き出されて利用され、容易に補充されたり、または変えられたり、変更されたりする。
(EEprom system)
A computer system incorporating the various features of the present invention is generally illustrated in FIG. 1A. A typical computer system has a microprocessor 21 connected to 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 memory is a disk drive system with a 10 megabyte data storage capability. Data is easily retrieved and utilized in volatile memory 25 in the system and is easily replenished, altered, or modified.

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

全体の記憶装置29はコンピュータのシステムバス23に接続されているメモリコントローラ31とEEpromの集積回路チップのアレイ33から構成されている。データと命令はコントローラ31からシリアルデータ線35を介して一義的にEEpromアレイ33に通信される。同様にして、データとステータス信号は、EEprom33からコントローラ30にシリアルデータ線37を介して通信される。図1Aにはコントローラ31とEEpromアレイ33間のその他の制御やステータス回路は示されていない。   The entire storage device 29 comprises a memory controller 31 connected to a computer system bus 23 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, data and status signals 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.

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

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 includes a respective chip select and enable line 49, 51, 53 from the interface circuit 40. 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 transmitted to the memory chips 43, 45, 47, etc. through the bus 55, the logic and register circuit 57, and the other bus 59. The

図1Aと図1Bに示されている全体のメモリ29は、1枚のプリント回路カードに適当なメモリの大きさで製造されている。図1Bの種々のシステムバス39と41は他のコンピュータシステムとともに、そのようなカードの接続ピンに接続されている。さらに前記カードやその要素には種々の標準的な電力供給電圧(図示せず)が接続されている。   The entire memory 29 shown in FIGS. 1A and 1B is manufactured in a memory size suitable 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.

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

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

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

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

本発明においては、フラッシュEEpromメモリはいくつかのセクタに分割され、そこにおいてそのセクタに含まれるセルは同時に消去することができる。各々のセクタは、別々にアドレスされ、そして選択的に消去される。最も重要な特徴は一緒に消去すべきいくつかのセクタの組合せを選択できることである。これにより、各々を独立して消去するという従来の技術に見られるものに比較してより早い消去システムを提供することができるのである。   In the present invention, the flash EEprom memory is divided into several sectors, in which 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 provides a faster erasure system compared to that found in the prior art of erasing each independently.

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

図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 state where one or more sectors are selected or not selected for erasure in a flash EEprom (eg, chip 201 of FIG. 2). In practice, each sector, for example 211 or 213, is provided in relation to each sector, depending on the setting of the state of an erasable register such as 211, 213 or whether a tag is attached or selected by setting , Each sector 221, 223 is selected. The selection and 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 by 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, the address information is supplemented by the address register 231 and decoded by the address decoder 233.

一例として、セクタ211を消去のために選択するためには、前記コントローラはセクタ211のアドレスを回路220に送る。このアドレスは、線235の中にデコードされ、そしてそれは、レジスタ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 decoded into line 235 and it is used in combination with the erase enable signal on enable bus 237 to set output 239 of register 221 high. As a result, the sector 211 can be continuously erased. Similarly, if sector 213 is required to be erased as well, its associated register 23 in register 223 will be set high.

図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 derived from clearing the erase enable signal in bus 237 that is gated by address decoding in line 235. In this way, when an erase enable signal or a signal for clearing the erase enable signal is generated in all sectors, the signal is valid only for the addressed sector.

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

図4の(1)〜(11)は、図3Aの回路220に関連して用いられるアルゴリズムを図示している。図4の(1)でコントローラは回路220の中でデコードされた消去されるべきセクタに関連させられている消去イネーブルレジスタにアドレスをシフトさせる。図4の(2)においてコントローラはアドレスされたセクタの消去イネーブルレジスタへアドレスデコードされた信号をラッチするために用いられる消去イネーブルコマンドをセットするためにデコードする。このタグはそのセクタの引き続く消去のためである。図4の(3)において、もしそれ以上のより多くのセクタがタグが付されるべきであるときには消去されるべき全てのセクタにタグが付加されるまで図4の(1)から図4の(2)に示されている関連して記述されている操作を繰り返す。消去されるべき全てのセクタにタグが付された後にコントローラは図4の(4)に示されている消去のサイクルを開始させる。   4 (1)-(11) illustrate the algorithm used in connection with the circuit 220 of FIG. 3A. 4 (1), the controller shifts the address to the erase enable register associated with the sector to be erased decoded in circuit 220. FIG. In FIG. 4 (2), 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 that sector. In FIG. 4 (3), if more sectors are to be tagged, all of the sectors to be erased will be tagged until (1) to FIG. Repeat the operations described in the related manner shown in (2). After all sectors to be erased are tagged, the controller initiates the erase cycle shown in FIG. 4 (4).

最適化された消去の構成は同時継続中の米国特許出願に開示されている。それらは同時出願継続中の米国特許出願第204,175号(特許文献1)でエリヤホウ ハラリ博士により1988年6月8日に出願されたものと本出願と同時に、サンジャイ メハロトラとハラリ博士によって出願された「多状態EEprom読み書き回路およびその技術」に示されているものである。フラッシュEEpromセルは消去パルスを印加することによって消去され、引続き読みによりそのセルが消去されて消去状態にあるかどうかということが検証される。もしそうでない場合、そのセルが消された状態にあると検証されるまでパルスの印加と検証が繰り返される。この制御された方法によって消去することによりセルはEEpromを老化させるかまたはプログラムを困難にするであろう過剰消去にさらされないようにする。   An optimized erasure configuration is disclosed in a co-pending US patent application. They were filed on June 8, 1988 by Dr. Eriyaho Harari in US Patent Application No. 204,175 (Patent Document 1), which was filed concurrently, and at the same time as this application. Further, it is shown in “Multi-state EEprom read / write circuit and its technology”. The flash EEprom cell is erased by applying an erase pulse, and subsequent reading verifies that the cell is erased and in the erased state. If not, the pulse application and verification is repeated until it is verified that the cell is in the erased state. By erasing in this controlled manner, the cell is not exposed to over-erasing that would age EEprom or make programming difficult.

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

図4(4)を再度参照すると、全ての消去されるべきセクタにタグが付されるとコントローラはタグが付されたセクタのグループの消去サイクルを開始する。図4の(5)では、消去が行なわれるべきタグEEpromチップ中にグローバル消去イネーブルと呼ばれるグローバルコマンドをシフトさせる。これは図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 are tagged, the controller begins an erase cycle for the group of sectors that are tagged. In FIG. 4 (5), a global command called global erase enable is shifted into the tag EEprom chip to be erased. This means that in (5) of FIG. 4, the controller increases the erase voltage (VE) by a certain value for a certain duration. The controller reduces this voltage at the end of the erase period. In (6) of FIG. 4, the controller performs read verification of the sector selected for erasure. If none of the sectors is verified in (7) of FIG. 4, the sequence shown in (5) to (7) of FIG. 4 is repeated. 4 (8) to 4 (9), if it is verified that one or more sectors are erased, they are taken from the sequence. Referring also to FIG. 3A, this lowers the erasable register by clearing the erase command in bus 237 with 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 that erase cycle, the controller transitions to a no-operation (NOP) instruction and the global erasable command is pulled up to protect it from erroneous erasures.

どのセクタを消去すべきであるか、消去すべきでないかを選択する能力は、どの消去を止めることが有効であるかと同様に有効である。これにより遅く消去されるセクタより前に消去が完了されたものが消去のシーケンスから分離されてその装置により以上のストレスを与えることから保護することができる。このことにより、システムの信頼性を向上させることができるであろう。もしセクタが良くないものであるとき、あるいはある理由によって使用できないときそのセクタをとばし、そのセクタにおいて消去が起こらないようにすることに利点がある。例えばもしあるセクタが欠陥をもっていて回路の短絡があったならば、それはより多くの電力を消去するであろう。本発明によっては消去サイクルをとばすことにより、そのチップの中で消去に必要とする電力を減少させることができるという有意義なシステムの利点を得ることができる。   The ability to select which sectors should be erased or not erased is as effective as which erasures are effective. As a result, those that have been erased before the sector to be erased later can be protected from being stressed by the device by being separated from the erase sequence. This will improve the reliability of the system. If a sector is bad or cannot be used for some reason, it is advantageous to skip the sector and prevent erasure 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 can provide a significant system advantage in that the power required for erasing in the chip can be reduced.

その装置の中で消去されるべきセクタを選びだす能力を持つことはそのシステムの電力消費を少なくするという他の配慮に繋がる。本発明における消去構造の弾力性により、そのシステムの電力の能力にしたがって、消去の要求を採用することができる。これは、このシステムをソフトウエアによって、異なった消去の状態を与えるか、または他のシステムとの間の基本的な構造によって与えるかによって成し遂げられるであろう。それは例えばラップトップコンピュータのようなシステムで電圧のレベルを監視することによって消去の量を変化するようにコントローラにさせることもできるだろう。   Having the ability to select sectors to be erased in the device leads to another consideration of reducing the power consumption of the system. Due to the elasticity of the erase structure in the present invention, the erase requirement can be adopted according to the power capability of the system. This may be accomplished by providing this system with software, with different erasure states, or with 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.

本発明におけるシステムのさらに他の動作の能力は、すべての消去イネーブルラッチをクリアするフラッシュEEpromチップにリセットコマンドを発する能力であり、そして消去サイクルがさらに発生しないようにすることである。これは図3Aおよび図3Bに線261のリセット信号によって図示されている。全てのチップに不変的にこの作業を行なうことによって全ての消去イネーブルレジスタをリセットする時間を短くすることができるであろう。   Yet another operational capability of the system in the present invention is the ability to issue a reset command to the flash EEprom chip that clears all erase enable latches, and prevents further erase cycles from occurring. This is illustrated by the reset signal on line 261 in FIGS. 3A and 3B. By performing this operation invariably on all chips, the time to reset all erase enable registers could be shortened.

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

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

本発明の一つの重要な応用は、フラッシュ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. This EEprom system is preferably set to be equal to or greater than a conventional disk and can be considered a “solid disk”.

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

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

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

本発明の他の特徴は、誤り訂正へのアプローチに適していることである。誤り訂正コード(ECC)は常時ソフトの誤りを訂正するとともに、発生するであろうハードの誤りの訂正に利用される。ハードの誤りが検出されるとすぐに、欠陥マッピングはその欠陥セルをそれの同じセクタブロックに存在する予備のセルと置き換えるために使用される。欠陥セルの数がその特定のセクタのための欠陥マッピングの能力を越えた場合においてのみ、その全体のセクタは、通常のディスクシステムのように置き換えられる。このスキームにより、信用性を損なうことなく最小の損失で食い止めることができる。   Another feature of the present invention is that it is suitable for an approach to error correction. The error correction code (ECC) is always used for correcting a soft error and correcting a hardware error 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 when the number of defective cells exceeds the capability of defect mapping for that particular sector, the entire sector is replaced like a normal disk system. With this scheme, it is possible to stop with minimal loss without compromising credibility.

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

セクタの中で、一つの欠陥セルが発見される度に欠陥データ領域の代替部407の中の一つの良いセルが欠陥セルと指定されたデータをバックアップするために割当てられる。かくして、もし欠陥セルにデータが誤って記憶されたとしても、バックアップセルの中には誤りのないコピーが記憶される。欠陥セルとバックアップセルのアドレスは欠陥マップ409の中の欠陥ポインタに記憶される。   Each time one defective cell is found in the sector, one good cell in the replacement part 407 of the defective data area is assigned to back up the data designated as the defective cell. Thus, even 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 the defect pointer in the defect map 409.

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

読出し動作において、コントローラは最初にヘッダ、欠陥マップ、それから代替欠陥データ部分を読出す。その後実際のデータを読む。それは欠陥マップによって欠陥セルのトラックと代替データの位置を保っている。欠陥セルに遭遇するために、コントローラはその不良データを欠陥代替セルの良いデータで代用する。   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 defective cells and the position of alternative data by defect map. In order to encounter a defective cell, the controller substitutes the defective data with good data from the defective replacement cell.

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

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

次にコントローラ31は欠陥ポインタを読出し、これらの不良アドレスの位置をホールディングレジスタファイル509にロードする。これにコントローラの欠陥データの読出しが続き、その欠陥データの代替はそれが書込まれたときに、その誤ったビットを置き換えるために書込まれているものであった。代替ビットは、欠陥データの代替ファイル517の中に記憶されており、それはデータビットが読出されるときにアクセスされる。   Next, the controller 31 reads out the defect pointer and loads the positions of these defective addresses into the holding register file 509. This was followed by reading the controller's defective data, and the replacement for the defective data was what 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.

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

パイプライン構造が受信機515から、FIFO519へコントローラを開始してデータがゲートされるときの有効な処理能力を提供するために用いられる。各々のデータビットがメモリから受信されたときに、コントローラは送られるべきデータのアドレス(アドレス発生器507に蓄積されたもの)を欠陥ポインタマップ(レジスタファイル509に蓄積されたもの)と比較を続ける。もし、比較器521の出力のマッチにより、そのアドレスが悪い位置にあると決定されると、受信器515により受信されたメモリからの悪いビットは、その位置の良いビットと置き換えられる。良いビットは欠陥データ代替ファイルから得られる。これは受信機515からの悪いビットの代わりに、欠陥データ代替ファイルからの良いビットを受信するようにマルチプレクサ523をスイッチングすることによってなされる。FIFOの中に訂正されたデータがあるときに、それはバッファメモリまたはシステムメモリ(図示せず)へ送られるべき状態にある。そのデータはコントローラのFIFO519からコントローラのDMAコントローラ507によってシステムメモリへ送られる。このコントローラ507はそれからリクエストしてシステムバスへのアクセスを得、そして一つのアドレスを出し、そしてデータを出力インタフェース255経由でゲートしてシステムバスへ出す。これは各バイトがFIFO519へロードすることによってなされる。訂正されたデータがFIFOにロードされると、それはまたECCハードウエア527にもゲートされ、そこでデータファイルはECCによって処理される。   A pipeline structure is used to start the controller from the receiver 515 to the FIFO 519 to provide effective 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 the memory received by receiver 515 is replaced with the good bit in that location. Good bits are obtained from the defect data replacement file. This is done by switching multiplexer 523 to receive good bits from the defective data replacement file instead of bad bits from 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 sent from the controller FIFO 519 to the system memory by the controller DMA controller 507. The controller 507 then makes a request to gain access to the system bus, issues an address, and gates data out through the output interface 255 to the system bus. This is done by loading each byte into FIFO 519. When corrected data is loaded into the FIFO, it is also gated to ECC hardware 527 where the data file is processed by ECC.

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

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

図7は、好適な実施例における書込みデータパス制御を図示している。書込みの順序の最初の部分は既に説明した読みのシーケンスと共通している。マイクロプロセッサはまず初めに読みのシーケンスと同様にメモリ装置33とDMAのためのアドレスポインタをロードする。それは望まれるヘッダをアドレス発生器503にロードし、そしてコマンドキューをコマンドシーケンサ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 order is the same as the reading sequence already described. The microprocessor first loads the memory device 33 and the address pointer for the DMA as well as the read sequence. It loads the desired header into the address generator 503 and loads the command queue into the command sequencer 511. The command queue is loaded with the read header command first. Thereafter, control is passed to the controller 31. The controller then gates the address and command to the memory device 33 as well as the read sequence. The memory device returns the header data via the controller receiver 515. The controller compares the received header data with the expected value (stored in the holding register 509). If the result of the comparison is correct, the normal position has been verified and the sequence continues. The controller then loads the defective address pointer from the memory device 33 into the holding register file 509 and loads the replacement data into the defective data replacement file 527.

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

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

選ばれたメモリ装置の中に書込みサイクルのバイトがロードされた後に、コントローラはプログラムコマンドをメモリ装置に発生して書込みサイクルを開始する。フラッシュEEprom装置のための書込み操作の理想的な構造は先に引用した同時継続中の米国特許出願第204,175号(特許文献1)であって、一つは多状態EEpromの読み、書き回路と技術と呼ばれているものに示されており、前記関連する部分をここで参考として挙げる。簡単に言えば、書込みのサイクルの間中にコントローラはプログラム(または書込み)電圧パルスを供給していることである。これは、全てのビットのプログラムが適当であるかということを決定するためのベリファイ読みが続く。もし、そのビットがベリファイされなかったときは、コントローラはプログラム/ベリファイサイクルを全てのビットが正しくプログラムされるまで繰り返す。   After the write cycle byte is loaded into the selected memory device, the controller issues a program command to the memory device to initiate the write cycle. The ideal structure of the write operation for the flash EEprom device is the above-referenced co-pending US Patent Application No. 204,175, one of which is a multi-state EEprom read and write circuit. And what is referred to as technology, the relevant parts of which are hereby incorporated by reference. Simply put, the controller is supplying a program (or write) voltage pulse during the write cycle. This is followed by a verify read to determine if all bits are properly programmed. If the bit is not verified, the controller repeats the program / verify cycle until all bits are programmed correctly.

もし、一つのビットがプログラム/ベリファイサイクルを延ばした後でもベリファイに失敗したときは、コントローラはそのビットを欠陥ビットであると指定し、そしてそれにしたがって欠陥マップを更新するであろう。更新は欠陥セルが検出されるや否や、ダイナミックに行なわれる。同様な操作が消去ベリファイの失敗の場合においても、採用される。   If a bit fails verification after extending a program / verify cycle, the controller will designate that 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 adopted even when the erase verify fails.

全てのビットがプログラムされてベリファイされた後に、コントローラはFIFO601から次のデータビットをロードし、アドレスセクタの中の次の位置をアドレスする。そしてコントローラはそれから他のプログラム/ベリファイシーケンスを次のバイトについて行なう。このシーケンスはそのセクタの最後のデータまで、連続して行なわれる。一度このことが発生するとセクタ(図5参照)に関連する影のメモリ(ヘッダ領域)をアドレスし、そしてECCレジスタの内容をこの領域に書込む。   After all bits are 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 for 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 into this area.

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

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

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

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

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

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

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

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

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

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

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

図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 to a microprocessor system (not shown) via a host interface 703. This cache system 708 has two memories. One is a cache memory 705 that temporarily holds 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. 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 is caused to respond to the power detection input 715 connected to the power supply unit of the microprocessor system via the host interface 703 and the line 717 as well as the information stored in the tag memory. Microprocessor system power degradation 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.

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

フラッシュ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 was done in a normal cache system.

ホストシステムがファイルの中のデータの処理を完了して、それをフラッシュEEpromメモリ33の中に書き戻そうと希望したときに、それはキャッシュシステム701に書込みサイクルの要求によりアクセスする。コントローラはこれによりこの要求を受け入れてそのサイクルで動作させる。   When the host system has finished 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 thereby accepts this request and operates on that cycle.

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

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

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

全ての具体例において、いつでもキャッシュメモリ705は充填されるように使われる。コントローラが予め決めた十分に満たされた状態に達したことを検出したときにはコントローラはキャッシュメモリ705の中のその他のファイルに優先してフラッシュメモリ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 starts saving by writing into the flash memory 33 in preference to the other files in the cache memory 705. .

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

コントローラは新しいよく働くファイルのための空間を形成するために、最初に動かされた最も活用されないファイルをフラッシュメモリ33にもどすことに対する責任ももたされている。各ファイルの活動の水準を追跡して保持するために各ファイルのためのタイムスタンプはそのファイルの新しい活動のためにリセットされない限り、動作させられる度ごとにコントローラによって集積される。このタイミングはタイマ711によって提供されている。すべてのタイムステップ(カウント)にコントローラはキャッシュメモリの中のデータファイルに系統的にアクセスしてこのデータファイルのために、最後に書き込まれスタンプを読む。コントローラはそれからこのタイムスタンプを他のタイムステップ(すなわちカウントを1上昇)でインクリメントする。   The controller is also responsible for returning the least utilized file that was moved first to the flash memory 33 to make room for new well-behaved files. In order to keep track of the level of activity for each file, the time stamp for each file is accumulated by the controller each time it is operated unless reset for new activity for that file. This timing is provided by a 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 timestamp by another time step (ie, incrementing the count by 1).

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

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

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

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

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

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

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

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

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

本発明によるフラッシュEEpromメモリシステムを含むマイクロプロセッサシステムのブロック図である。1 is a block diagram of a microprocessor system including a flash EEprom memory system according to the present invention. FIG. ある数のフラッシュEEpromメモリチップと一つのコントローラチップを含むシステムを示すブロック図である。1 is a block diagram illustrating a system including a number of flash EEprom memory chips and a controller chip. FIG. 消去されるべく選択されるメモリセクタを含むフラッシュEEpromチップシステムの略図である。1 is a schematic diagram of a flash EEprom chip system including memory sectors that are selected to be erased. 本発明による多数のセクタの選択的消去を実現するためのコントローラの回路を示すブロック図である。FIG. 3 is a block diagram illustrating a controller circuit for realizing selective erasure of a plurality of sectors according to the present invention. 図2Aに示された消去のために一つのセクタを選択するために使用される典型的なレジスタの詳細を示す回路図である。2B is a circuit diagram illustrating details of an exemplary register used to select one sector for erasure shown in FIG. 2A. FIG. 複数のセクタ消去選択の消去シーケンスを図示した流れ図である。5 is a flowchart illustrating an erase sequence of a plurality of sector erase selections. 一つのフラッシュEEpromセクタをデータ領域と予備の冗長領域に分けたことを示す略図である。6 is a schematic diagram showing that one flash EEprom sector is divided into a data area and a spare redundant area. 本発明による欠陥マッピングを使用した読込み操作中におけるデータパスを示したブロック図である。FIG. 5 is a block diagram illustrating a data path during a read operation using defect mapping according to the present invention. 本発明による欠陥マッピングを使用した書込み時におけるデータの制御パスを図示したブロック図である。FIG. 5 is a block diagram illustrating a data control path during writing using defect mapping according to the present invention. コントローラの中の書込みキャッシュ回路を図示したブロック図である。2 is a block diagram illustrating a write cache circuit in a controller. FIG.

符号の説明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 lines 43, 45, 47 EEprom chips 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 holding register file 511 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

Claims (2)

ホストコンピュータシステムとの接続を確立するための電気端子を有するメモリシステムにおいて、
不揮発性フローティングゲートメモリセルアレイであって、前記アレイは複数のセクタに分割され、各セクタは1つのユニットとして同時に消去可能な前記メモリセルの明確なグループを有し、かつユーザデータを記憶するユーザデータ部と予備部のデータを記憶する予備部にさらに分割される不揮発性フローティングゲートメモリセルアレイと、
アレイの動作を制御するために前記電気端子と前記メモリセルアレイ間に接続されるメモリコントローラであって、前記コントローラは、
1以上の不揮発性メモリセクタをアドレス指定するために、前記端子を介して1以上の大容量メモリ記憶ブロックのアドレスを受け取ることに応答するアドレス指定手段であって、前記アドレス指定手段は、使用不能なあらゆる不揮発性メモリセクタの特定に応答する手段と別の使用可能なセクタに置き換える手段とを含むアドレス指定手段と、
アドレス指定されたセクタに記憶される予備部のデータを読出す手段と、
アドレス指定されたセクタからユーザデータを読出すか、もしくは前記セクタにユーザデータを書込むかのいずれかのために読出される予備部のデータに応答する手段と、
消去動作用に複数のセクタを選択し、選択された複数のセクタのみに同時に消去動作を実行する手段と、
を含むメモリシステム。
In a memory system having electrical terminals for establishing a connection with a host computer system,
A non-volatile floating gate memory cell array, wherein the array is divided into a plurality of sectors, each sector having a distinct group of memory cells that can be simultaneously erased as one unit, and storing user data A nonvolatile floating gate memory cell array that is further divided into a spare part for storing data of the spare part and the spare part;
A memory controller connected between the electrical terminals and the memory cell array to control the operation of the array, the controller comprising:
Addressing means responsive to receiving an address of one or more mass memory storage blocks via the terminal to address one or more non-volatile memory sectors, the addressing means being unusable Addressing means including means for responding to the identification of any non-volatile memory sector and means for replacing with another usable sector;
Means for reading spare portion data stored in the addressed sector;
Means for responding to spare portion data read for either reading user data from the addressed sector or writing user data to the sector;
Means for selecting a plurality of sectors for an erasing operation and simultaneously performing an erasing operation only on the selected plurality of sectors;
Including memory system.
ホストコンピュータシステムとの接続を確立するための電気端子を有するメモリシステムにおいて、
不揮発性フローティングゲートメモリセルアレイであって、前記アレイは複数のセクタに分割され、各セクタは1つのユニットとして同時に消去可能な前記メモリセルの明確なグループを有し、かつユーザデータを記憶するユーザデータ部と予備部のデータを記憶する予備部にさらに分割される不揮発性フローティングゲートメモリセルアレイと、
アレイの動作を制御するために前記電気端子と前記メモリセルアレイ間に接続されるメモリコントローラであって、前記コントローラは、
1以上の不揮発性メモリセクタをアドレス指定するために、前記端子を介して1以上の大容量メモリ記憶ブロックのアドレスを受け取ることに応答するアドレス指定手段であって、前記アドレス指定手段は、使用不能なあらゆる不揮発性メモリセクタの特定に応答する手段と別の使用可能なセクタに置き換える手段とを含むアドレス指定手段と、
アドレス指定されたセクタに記憶される予備部のデータを読出す手段であって、アドレス指定されたセクタの予備部のデータから前記アドレス指定されたセクタの1つのアドレスを読出す手段を含み、さらに読出された予備部のデータのアドレスと前記セクタのアドレスを比較することにより、所望のセクタがアドレス指定されたことを特定する手段を含む予備部のデータを読出す手段と、
アドレス指定されたセクタからユーザデータを読出すか、もしくは前記セクタにユーザデータを書込むかのいずれかのために読出される予備部のデータに応答する手段と、
を含むメモリシステム。
In a memory system having electrical terminals for establishing a connection with a host computer system,
A non-volatile floating gate memory cell array, wherein the array is divided into a plurality of sectors, each sector having a distinct group of memory cells that can be simultaneously erased as one unit, and storing user data A nonvolatile floating gate memory cell array that is further divided into a spare part for storing data of the spare part and the spare part;
A memory controller connected between the electrical terminals and the memory cell array to control the operation of the array, the controller comprising:
Addressing means responsive to receiving an address of one or more mass memory storage blocks via the terminal to address one or more non-volatile memory sectors, the addressing means being unusable Addressing means including means for responding to the identification of any non-volatile memory sector and means for replacing with another usable sector;
Means for reading spare portion data stored in the addressed sector, the means for reading one address of the addressed sector from the spare portion data of the addressed sector; Means for reading spare portion data including means for identifying that the desired sector has been addressed by comparing the address of the sector with the address of the read spare portion data;
Means for responding to spare portion data read for either reading user data from the addressed sector or writing user data to the sector;
Including memory system.
JP2007027673A 2007-02-07 2007-02-07 Flash EEprom system Expired - Lifetime JP4090071B2 (en)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Related Parent Applications (1)

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

Publications (2)

Publication Number Publication Date
JP2007149119A true JP2007149119A (en) 2007-06-14
JP4090071B2 JP4090071B2 (en) 2008-05-28

Family

ID=38210391

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP4090071B2 (en)

Also Published As

Publication number Publication date
JP4090071B2 (en) 2008-05-28

Similar Documents

Publication Publication Date Title
JP3226042B2 (en) Flash EEprom system
US7492660B2 (en) Flash EEprom system
US6462992B2 (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
JP4090071B2 (en) Flash EEprom system
JP3944326B2 (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: 20070626

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20070926

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20071001

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071226

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080129

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080225

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20110307

Year of fee payment: 3

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110307

Year of fee payment: 3