JP5236949B2 - Erased sector detection mechanism - Google Patents

Erased sector detection mechanism Download PDF

Info

Publication number
JP5236949B2
JP5236949B2 JP2007548468A JP2007548468A JP5236949B2 JP 5236949 B2 JP5236949 B2 JP 5236949B2 JP 2007548468 A JP2007548468 A JP 2007548468A JP 2007548468 A JP2007548468 A JP 2007548468A JP 5236949 B2 JP5236949 B2 JP 5236949B2
Authority
JP
Japan
Prior art keywords
data
erased
content
data unit
error correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2007548468A
Other languages
Japanese (ja)
Other versions
JP2008525937A (en
Inventor
アナトリエヴィッチ ゴロベッツ,セルゲイ
Original Assignee
サンディスク テクノロジィース インコーポレイテッド
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 サンディスク テクノロジィース インコーポレイテッド filed Critical サンディスク テクノロジィース インコーポレイテッド
Publication of JP2008525937A publication Critical patent/JP2008525937A/en
Application granted granted Critical
Publication of JP5236949B2 publication Critical patent/JP5236949B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Investigating Or Analysing Biological Materials (AREA)
  • Pinball Game Machines (AREA)
  • Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
  • Electrotherapy Devices (AREA)
  • Burglar Alarm Systems (AREA)
  • Power Steering Mechanism (AREA)

Abstract

The present invention presents a non-volatile memory and method for its operation that allows instant and accurate detection of erased sectors when the sectors contain a low number of zero bits, due to malfunctioning cells or other problems, and the sector can still be used as the number of corrupted bits is under the ECC correction limit. This method allows the storage system to become tolerant to erased sectors corruption, as such sectors can be used for further data storage if the system can correct this error later in the written data by ECC correction means.

Description

本発明は、一般的には、不揮発性メモリおよびその動作に関し、さらに具体的には、再書き込み可能なメモリの一部分が消去されたかどうか、およびその破壊レベルを決定する手法に関する。   The present invention relates generally to non-volatile memories and their operation, and more specifically to techniques for determining whether a portion of a rewritable memory has been erased and its level of destruction.

フラッシュEEPROMデバイスの通常の応用は、電子デバイスの大容量データ記憶サブシステムとしての応用である。そのようなサブシステムは、通常、複数のホストシステムへ挿入可能で取り外し可能なメモリカードとして実現されるか、またはホストシステム内の取り外し不可能な埋め込み形記憶装置として実現される。双方の実現において、サブシステムは1つまたは複数のフラッシュデバイスを含み、また多くの場合、サブシステムコントローラを含む。   A typical application for flash EEPROM devices is as an electronic device mass data storage subsystem. Such a subsystem is typically implemented as a removable memory card that can be inserted into and removed from multiple host systems, or as a non-removable embedded storage device within the host system. In both implementations, the subsystem includes one or more flash devices and often includes a subsystem controller.

フラッシュEEPROMデバイスは、トランジスタセルから成る1つまたは複数のアレイから構成され、各々のセルは1つまたは複数のデータビットを不揮発的に記憶することができる。したがって、フラッシュメモリは、その中にプログラムされたデータを保持するための電力を必要としない。しかし、一度プログラムされると、セルは、新しいデータ値で再プログラムされる前に、消去されなければならない。セルから成るこれらのアレイはグループへ区分され、読み出し、プログラミング、および消去機能の効率的な実現を提供する。大容量記憶装置の典型的なフラッシュメモリ構造は、セルの大きなグループを消去可能ブロックへ配列する。この場合、1つのブロックは、一時に消去できる最小数のセル(消去単位)を含む。   A flash EEPROM device is composed of one or more arrays of transistor cells, each cell being capable of storing one or more data bits in a nonvolatile manner. Thus, flash memory does not require power to hold the programmed data therein. However, once programmed, the cell must be erased before being reprogrammed with new data values. These arrays of cells are partitioned into groups to provide an efficient implementation of read, programming, and erase functions. The typical flash memory structure of mass storage devices arranges large groups of cells into erasable blocks. In this case, one block includes the minimum number of cells (erase units) that can be erased at one time.

1つの商業形態において、各々のブロックは、ユーザデータおよび幾つかのオーバーヘッドデータから成る1つのセクタを記憶するのに十分なセルを含む。このオーバーヘッドデータは、ユーザデータ、および/またはそれが記憶されるブロックに関連している。1つのセクタに含まれるユーザデータ量は、1つの種類のそのようなメモリシステムでは標準の512バイトであるが、他のサイズであってもよい。セルの個々のブロックを相互に隔離することは、それらのブロックを個別に消去できるようにするために必要であるが、そのような隔離は集積回路チップ上で空間を取るので、他の種類のフラッシュメモリはブロックを著しく大きくし、そのような隔離に必要な空間を小さくしている。しかし、はるかに小さなセクタの中のユーザデータを取り扱うことも所望されるから、各々の大きなブロックは、多くの場合、ユーザデータを読み出しおよびプログラムするための基本単位である個別にアドレス可能なページへさらに区分される。各々のページは、通常、ユーザデータから成る1つのセクタを記憶するが、ページは部分セクタまたは複数セクタを記憶してよい。「セクタ」とは、本願明細書では、ホストの間で1つの単位として転送されるユーザデータ量を意味する。   In one commercial form, each block contains enough cells to store one sector of user data and some overhead data. This overhead data is associated with user data and / or the block in which it is stored. The amount of user data contained in one sector is standard 512 bytes in one type of such memory system, but may be other sizes. Isolating individual blocks of cells from each other is necessary so that those blocks can be individually erased, but such isolation takes up space on the integrated circuit chip, so other types of Flash memory significantly increases the blocks and reduces the space required for such isolation. However, since it is also desirable to handle user data in a much smaller sector, each large block often goes to an individually addressable page, which is the basic unit for reading and programming user data. It is further divided. Each page typically stores one sector of user data, but a page may store partial sectors or multiple sectors. In this specification, “sector” means the amount of user data transferred as a unit between hosts.

大きなブロックのシステムにおけるサブシステムコントローラは、多くの機能を実行する。そのような機能の中には、ホストからメモリサブシステムによって受け取られた論理アドレスとメモリセルアレイ内の物理アドレスとの間の変換が含まれる。この変換は、多くの場合、論理ブロック番号(LBN)および論理ページのための中間用語 (intermediate terms) の使用を含む。コントローラは、さらに、一連のコマンドを介して低レベルのフラッシュ回路動作を管理する。コントローラは、インターフェイスバスを介して、前述した一連のコマンドをフラッシュメモリデバイスへ発する。コントローラが実行する他の機能は、様々な手段、例えば、誤り訂正符号(ECC)を使用して、サブシステムへ記憶されたデータの完全性を維持することである。   Subsystem controllers in large block systems perform many functions. Such functions include conversion between logical addresses received by the memory subsystem from the host and physical addresses in the memory cell array. This conversion often involves the use of logical block numbers (LBN) and intermediate terms for logical pages. The controller further manages low level flash circuit operation through a series of commands. The controller issues the above-described series of commands to the flash memory device via the interface bus. Another function performed by the controller is to maintain the integrity of the data stored in the subsystem using various means such as error correction codes (ECC).

フラッシュおよび幾つかの他のメモリシステムでは、データのページを再書き込みする前に、それを消去しなければならない。したがって、データを記憶するためデータのページを選択する前に、消去されたページを発見する必要がある。したがって、メモリのどの部分が消去された状態にあるかを、できるだけ迅速かつ便宜的に決定できることがシステムにとって重要である。その理由は、メモリ部分をまだ使用しなければならないのか、またはメモリ部分が消去プロセスを受けた前に書き込まれたセクタであるのかを決定するためである。これは、必ずしも、コントローラが消去動作を導入したブロックを単に追跡する直接的な場合ではない。例えば、そのようなメモリ回路の動作中に電力が停止した場合、例えば、メモリカードがホストから取り除かれるか、集積メモリを有するデバイスへの電力が失われるとき、メモリは消去動作中であったかも知れず、不完全な動作を生じることになる。さらに、セクタは消去されたが、少数の破壊ビットを含む場合、セクタの単純な読み出しは、あたかもデータを保持しているように見せかける。   In flash and some other memory systems, a page of data must be erased before it can be rewritten. Therefore, before selecting a page of data for storing data, it is necessary to find the erased page. It is therefore important for the system to be able to determine as quickly and expediently as possible which part of the memory is erased. The reason is to determine whether the memory portion must still be used or whether the memory portion is a sector that was written before undergoing the erase process. This is not necessarily the direct case where the controller simply tracks the block that introduced the erase operation. For example, if power is interrupted during operation of such a memory circuit, the memory may have been in an erase operation, for example, when the memory card is removed from the host or when power to the device with integrated memory is lost. Incomplete operation will occur. Furthermore, if the sector has been erased but contains a small number of corrupted bits, a simple read of the sector will appear to hold the data.

多くのセクタ消去手法が知られる。例えば、単にセクタの内容を読み出すことができる。しかし、可能性として破壊ビットがあるかも知れない問題とは別に、実際に消去されたセクタと、同じデータ、即ち、たまたま対応するオールFFで書き込まれたセクタとが、これによって区別されない。本願明細書において参照により援用されている米国特許第5,928,370号(特許文献1)で見い出される1つの従来技術の解決法は、ECCエンジンを使用して、「理想的な」消去されたセクタを検出する解決法である。セクタデータを使用して新しいECCフィールドを生成し、この新しいECCフィールドを、オールFFについて事前に生成された参照ECCフィールドと比較することができる。ECCフィールドが同じであれば、セクタは、消去されたと考えられる(オールFFを含む)。しかし、これは、依然として誤った検出の公算が存在するという問題を有する。さらに、この方法は、消去されたセクタが1つだけのゼロ・ビットを有しても、消去されたセクタを検出することができない。
米国特許第5,928,370号 米国特許第6,522,586号 米国特許出願第10/086,495号 米国特許第6,282,130号 米国特許第5,546,341号 米国特許出願第09/956,201号 米国特許出願第10/751,096号 米国特許出願第10/841,379号 2002年10月25日に出願されたエリヤホウ・ハラリ、ジョージ・サマチサ、ジャック・エイチ・ユアン、およびダニエル・シー・グッターマンによる「誘電体記憶素子を用いる多状態不揮発性集積回路メモリシステム」という米国特許出願 米国特許第5,768,192号 米国特許第4,630,086号 米国特許第5,991,193号 米国特許第5,892,706号
Many sector erase techniques are known. For example, it is possible to simply read the contents of the sector. However, apart from the problem that there may possibly be a broken bit, this does not distinguish between an actually erased sector and the same data, that is, a sector that happens to be written with the corresponding all-FF. One prior art solution found in US Pat. No. 5,928,370, which is incorporated herein by reference, is an “ideal” elimination using an ECC engine. It is a solution to detect the sector. The sector data can be used to generate a new ECC field, and this new ECC field can be compared to the reference ECC field previously generated for all FFs. If the ECC field is the same, the sector is considered erased (including all FFs). However, this still has the problem that there is a chance of false detection. Furthermore, this method cannot detect an erased sector even if the erased sector has only one zero bit.
US Pat. No. 5,928,370 US Pat. No. 6,522,586 US patent application Ser. No. 10 / 086,495 US Pat. No. 6,282,130 US Pat. No. 5,546,341 US patent application Ser. No. 09 / 956,201 US patent application Ser. No. 10 / 751,096 US patent application Ser. No. 10 / 841,379 US patent entitled "Multi-state non-volatile non-volatile integrated circuit memory system using dielectric storage elements" by Eliyaho Harari, George Samatissa, Jack H. Ewan, and Daniel C. Gutterman, filed Oct. 25, 2002 application US Pat. No. 5,768,192 U.S. Pat. No. 4,630,086 US Pat. No. 5,991,193 US Pat. No. 5,892,706

第1の態様によれば、本発明は、誤作動するセルまたは他の問題のためにセクタが低い数のゼロ・ビットを含み、破壊されたビットの数がECC訂正限度よりも下にあるためセクタを依然として使用できるとき、消去されたセクタの即時および正確な検出を可能にする不揮発性メモリおよびその動作方法を提供する。この方法によって、記憶システムは、消去されたセクタの破壊に対して耐性を有するようになる。なぜならば、システムが、後にECC訂正手段による書き込みデータの中でこの誤りを訂正できるならば、そのようなセクタをさらなるデータ記憶に使用できるからである。   According to the first aspect, the present invention is because the sector contains a low number of zero bits due to malfunctioning cells or other problems, and the number of corrupted bits is below the ECC correction limit. Provided is a non-volatile memory and method of operation thereof that allows for immediate and accurate detection of erased sectors when the sectors are still available. This method makes the storage system resistant to the destruction of erased sectors. This is because if the system can later correct this error in the write data by the ECC correction means, such a sector can be used for further data storage.

実施形態の第1の集合は、ページの内容(ECCフィールドを含む)を反転し、幾つかの破壊(0ビット)を有する消去されたページ(オールFF)が、破壊に起因する幾つかの高ビットを除いて、ゼロ・データを有するページになるようにする。次に、システムは、消去されたページを有効データとして解釈し、システムの標準ECC方法をそれに適用することができる。新しいシンドロームが生成され、この新しいシンドロームを使用してページが訂正される。ページが成功裏に訂正されたならば、それがオール・ゼロを含むかどうかを検査する。含むならば、消去されたセクタが発見されたことになる。   The first set of embodiments inverts the contents of the page (including the ECC field), and an erased page (all FFs) with some destruction (0 bits) has some high Except for bits, the page has zero data. The system can then interpret the erased page as valid data and apply the system's standard ECC method to it. A new syndrome is generated and the page is corrected using this new syndrome. If the page was successfully corrected, check if it contains all zeros. If so, an erased sector has been found.

本発明のさらなる態様において、追加の実施形態は、部分的に消去されたセクタ(オーバーヘッドおよびECC領域を有する主なデータ)を検出する方法を説明する。この方法では、そのようなページが検出されるだけでなく、破壊レベルが数量化されるので、ページがさらなる使用に適しているかどうかを決定できるようになる。セクタデータがコントローラへ転送されたとき、ファームウェアまたはECCカスタマイズされた回路は、セクタの中、またはセクタが複数の隣接またはインターリーブされた符号語へ分割されるときには全ての符号語の中で、ゼロ・ビット(BCHについて)、または少なくとも1つのゼロ・ビットを有する記号(リード・ソロモンについて)を検出およびカウントする。こうして、カウンタの値は、セクタの中(またはセクタの全ての符号語の中)で、消去されなかったビットまたは記号の数を含むことになる。これらの値は、消去されたセクタの破壊レベルを示す。   In a further aspect of the invention, an additional embodiment describes a method for detecting partially erased sectors (main data with overhead and ECC areas). This method not only detects such pages, but also quantifies the destruction level so that it can be determined whether the pages are suitable for further use. When the sector data is transferred to the controller, the firmware or ECC customized circuit can detect zeros in the sector or in all codewords when the sector is divided into multiple adjacent or interleaved codewords. Detect and count bits (for BCH) or symbols with at least one zero bit (for Reed-Solomon). Thus, the value of the counter will contain the number of bits or symbols that were not erased in the sector (or in all codewords of the sector). These values indicate the destruction level of the erased sector.

本発明の追加の態様では、これらの実施形態の任意のものについて、消去されたセクタの検出プロセスを、ページが非破壊消去済状態にあるかどうかの予備検査、およびページが限定数のゼロ・ビットを含むかどうかを決定するプロセスによって先行させることができる。   In an additional aspect of the present invention, for any of these embodiments, the erased sector detection process includes a preliminary check to see if the page is in a non-destructive erased state, and the page has a limited number of zero It can be preceded by a process that determines whether to include a bit.

本発明の追加の態様、特徴、および利点は、添付の図面と結びつけて考慮されるべきである例示的な実施形態の以下の説明に含まれる。   Additional aspects, features, and advantages of the present invention are included in the following description of exemplary embodiments that should be considered in conjunction with the accompanying drawings.

例示的な不揮発性メモリシステム
具体的な例を提供するため、図1〜図6を参照して、本発明の様々な態様が実現される具体的な不揮発性メモリシステムが説明される。消去プロセスにおける妨害量を低減するため、本発明は、選択されない記憶素子のコントロールゲートを、その下にあるウェル構造と同じ電圧レベルに維持する。例示的な実施形態において、記憶素子はウェル構造の上に形成される。消去プロセスの間、ウェルの上の選択された記憶素子および選択されない記憶素子の双方は消去電圧へ上げられ、並行してこの電圧レベルをウェルの中に確立する。次に、この電圧はウェルおよび選択されない記憶素子の上で維持されることによって、妨害に関連するいかなる消去の機会も低減される。その間に、選択された記憶素子は放電を許され、必要な消去条件を生成する。さらに、これは、回路のピッチ領域を増加することなく、またはメモリアレイの中に新しい配線を追加することなく達成可能であり、最小の追加の周辺領域が回路へ追加される結果となる。
To provide a specific example of an exemplary non-volatile memory system, a specific non-volatile memory system in which various aspects of the present invention are implemented will be described with reference to FIGS. In order to reduce the amount of interference in the erase process, the present invention maintains the control gates of unselected storage elements at the same voltage level as the underlying well structure. In the exemplary embodiment, the storage element is formed over the well structure. During the erase process, both selected and non-selected storage elements above the well are raised to the erase voltage and in parallel establish this voltage level in the well. This voltage is then maintained on the wells and unselected storage elements, thereby reducing any erase opportunity associated with the disturbance. Meanwhile, the selected storage element is allowed to discharge and generates the necessary erase conditions. In addition, this can be achieved without increasing the circuit pitch area or adding new wiring into the memory array, resulting in the addition of minimal additional peripheral areas to the circuit.

具体的にするため、本発明をNAND形EEPROMフラッシュメモリについて説明する。もっとも、以下で一般化についてさらに説明する。特に、現在の解説は、米国特許第6,522,580号(特許文献2)、および前に参照により援用されているNANDシステムに関連した他の出願で説明されるようなシステムを使用する。以下で具体的な電圧が必要になるとき、消去電圧Verase は15〜20ボルトの範囲で取られ、低い論理レベルは接地によって取られ、高い論理レベルVddは1.5〜3ボルトの範囲で取られる。もっとも、設計に依存して他の値が使用されてよい。 To be specific, the present invention will be described with respect to a NAND EEPROM flash memory. However, the generalization will be further described below. In particular, the current discussion uses systems such as those described in US Pat. No. 6,522,580 and other applications related to NAND systems previously incorporated by reference. When a specific voltage is required below, the erase voltage V erase is taken in the range of 15-20 volts, the low logic level is taken by ground, and the high logic level V dd is in the range of 1.5-3 volts. Taken at. However, other values may be used depending on the design.

図1は、フラッシュメモリシステムのブロック図である。行列として配列された複数の記憶ユニットMを含むメモリセルアレイ1は、列制御回路2、行制御回路3、cソース制御回路4、およびc−pウェル制御回路5によって制御される。列制御回路2は、メモリセルアレイ1のビット線(BL)へ接続され、メモリセル(M)内に記憶されたデータを読み出し、プログラミング動作の間にメモリセル(M)の状態を決定し、ビット線(BL)の電位レベルを制御して、プログラミングを促進するか、プログラミングを禁止する。行制御回路3は、ワード線(WL)へ接続されて、ワード線(WL)の1つを選択し、読み出し電圧を印加し、列制御回路2によって制御されるビット線電位レベルと組み合わされたプログラミング電圧を印加し、メモリセル(M)が形成されるp形領域(図3で「c−pウェル」11とラベルを付けられている)の電圧と結合された消去電圧を印加する。cソース制御回路4は、メモリセル(M)へ接続された共通のソース線(図2で「cソース」とラベルを付けられている)を制御する。c−pウェル制御回路5は、c−pウェルの電圧を制御する。   FIG. 1 is a block diagram of a flash memory system. A memory cell array 1 including a plurality of storage units M arranged as a matrix is controlled by a column control circuit 2, a row control circuit 3, a c source control circuit 4, and a cp well control circuit 5. The column control circuit 2 is connected to the bit line (BL) of the memory cell array 1, reads the data stored in the memory cell (M), determines the state of the memory cell (M) during the programming operation, and Control the potential level of the line (BL) to facilitate programming or inhibit programming. The row control circuit 3 is connected to the word line (WL), selects one of the word lines (WL), applies a read voltage, and is combined with the bit line potential level controlled by the column control circuit 2 A programming voltage is applied and an erase voltage combined with the voltage of the p-type region (labeled “cp well” 11 in FIG. 3) in which the memory cell (M) is formed. The c source control circuit 4 controls a common source line (labeled “c source” in FIG. 2) connected to the memory cell (M). The cp well control circuit 5 controls the voltage of the cp well.

メモリセル(M)の中に記憶されたデータは、列制御回路2によって読み出され、I/O線およびデータ入出力バッファ6を介して外部I/O線へ出力される。メモリセルの中に記憶されるべきプログラムデータは、外部I/O線を介してデータ入出力バッファ6へ入力され、列制御回路2へ転送される。外部I/O線はコントローラ20へ接続される。フラッシュメモリデバイスを制御するためのコマンドデータは、コントローラ20と接続される外部制御線へ接続されたコマンドインターフェイスへ入力される。コマンドデータは、どのような動作が要求されるかをフラッシュメモリに通知する。入力コマンドは、列制御回路2、行制御回路3、cソース制御回路4、c−pウェル制御回路5、およびデータ入出力バッファ6を制御する状態マシン8へ転送される。状態マシン8は、フラッシュメモリのステータスデータ、例えば、作動可能/動作中(READY/BUSY)または合格/不合格(PASS/FAIL)を出力することができる。   Data stored in the memory cell (M) is read by the column control circuit 2 and output to the external I / O line via the I / O line and the data input / output buffer 6. Program data to be stored in the memory cell is input to the data input / output buffer 6 via the external I / O line and transferred to the column control circuit 2. The external I / O line is connected to the controller 20. Command data for controlling the flash memory device is input to a command interface connected to an external control line connected to the controller 20. The command data notifies the flash memory of what operation is required. Input commands are transferred to the state machine 8 that controls the column control circuit 2, row control circuit 3, c source control circuit 4, cp well control circuit 5, and data input / output buffer 6. The state machine 8 can output flash memory status data, eg ready / busy (READY / BUSY) or pass / fail (PASS / FAIL).

コントローラ20は、ホストシステム、例えば、パーソナルコンピュータ、デジタルカメラ、または個人用携帯情報端末(PDA)へ接続されるかまたは接続可能である。ホストは、コマンド、例えば、メモリアレイ1へデータを記憶しまたはメモリアレイからデータを読み出すコマンドを起動し、それぞれ、そのようなデータを提供または受け取る。コントローラは、そのようなコマンドをコマンド回路7によって解釈および実行可能であるコマンド信号へ変換する。コントローラは、さらに、典型的には、メモリアレイへ書き込まれるか、またはメモリアレイから読み出されるユーザデータのために、バッファメモリを含む。典型的なメモリシステムは、コントローラ20を含む1つの集積回路チップ21、および各々がメモリアレイおよび関連した制御回路、入出力回路、および状態マシン回路を含む1つまたは複数の集積回路チップ22を含む。傾向としては、もちろん、システムのメモリアレイおよびコントローラ回路を一緒に1つまたは複数の集積回路チップの上に集積することである。メモリシステムは、ホストシステムの一部として埋め込まれるか、またはホストシステムの嵌合ソケットへ取り外し可能に挿入できるメモリカードの中に含まれてよい。そのようなカードはメモリシステムの全体を含むか、または関連する周辺回路を有するコントローラおよびメモリアレイが別個のカードに設けられてよい。   The controller 20 is connected to or connectable to a host system, such as a personal computer, digital camera, or personal digital assistant (PDA). The host initiates a command, eg, a command to store data in the memory array 1 or read data from the memory array, and provide or receive such data, respectively. The controller converts such commands into command signals that can be interpreted and executed by the command circuit 7. The controller further typically includes a buffer memory for user data to be written to or read from the memory array. A typical memory system includes one integrated circuit chip 21 that includes a controller 20 and one or more integrated circuit chips 22 that each include a memory array and associated control circuitry, input / output circuitry, and state machine circuitry. . The trend is, of course, to integrate the system's memory array and controller circuitry together on one or more integrated circuit chips. The memory system may be included in a memory card that can be embedded as part of the host system or removably inserted into the mating socket of the host system. Such a card may comprise the entire memory system or a controller and memory array with associated peripheral circuitry may be provided on separate cards.

図2を参照して、メモリセルアレイ1の例示的な構造を説明する。NAND形のフラッシュEEPROMを例として説明する。メモリセル(M)は、多数、特定の例では、1024のブロックへ区分される。各々のブロックの中に記憶されたデータは同時に消去される。したがって、ブロックは、同時に消去可能な多数のセルの最小単位である。各々のブロックの中には、米国特許第6,522,580号(特許文献2)でさらに説明されているように、N個の列、この例ではN=8,512の列が存在する。これらの列は左の列と右の列へ分割される。ビット線も、左ビット線(BLL)と右ビット線(BLR)へ分割される。各々のゲート電極でワード線(WL0〜WL3)へ接続された4つのメモリセルは直列に接続されて、NANDセルユニットを形成する。NANDセルユニットの1つの端子は、ゲート電極が第1の(ドレイン)選択ゲート線(SGD)へ結合された第1の選択トランジスタ(S)を介して、対応するビット線(BL)へ接続され、他の端子は、ゲート電極が第2の選択ゲート線(SGS)へ結合された第2の(ソース)選択トランジスタ(S)を介して、cソースへ接続される。図を簡略化するため、4つのフローティングゲートトランジスタが各々のセルユニットの中に含まれるように示されているが、他の数、例えば、8、16、またはさらには32ものトランジスタが使用される。図2は、さらに、ウェル電圧を供給する接続c−pウェルを含む。   An exemplary structure of the memory cell array 1 will be described with reference to FIG. A NAND flash EEPROM will be described as an example. The memory cell (M) is divided into a large number, in a specific example, 1024 blocks. The data stored in each block is erased simultaneously. Thus, a block is the smallest unit of many cells that can be erased simultaneously. Within each block, there are N columns, in this example N = 8,512 columns, as further described in US Pat. No. 6,522,580. These columns are divided into a left column and a right column. The bit line is also divided into a left bit line (BLL) and a right bit line (BLR). Four memory cells connected to the word lines (WL0 to WL3) at each gate electrode are connected in series to form a NAND cell unit. One terminal of the NAND cell unit is connected to a corresponding bit line (BL) via a first select transistor (S) whose gate electrode is coupled to a first (drain) select gate line (SGD). The other terminal is connected to the c source via a second (source) select transistor (S) whose gate electrode is coupled to a second select gate line (SGS). For simplicity of illustration, four floating gate transistors are shown to be included in each cell unit, but other numbers, eg, 8, 16, or even 32 transistors are used. . FIG. 2 further includes a connection cp well that supplies the well voltage.

各々のブロックの中で、この例では、8,512の列が偶数列および奇数列へ分割される。ビット線は、さらに、偶数ビット線(BLe)および奇数ビット線(BLo)へ分割される。各々のゲート電極でワード線(WL0〜WL3)へ接続された4つのメモリセルは、直列に接続されてNANDセルユニットを形成する。NANDセルユニットの1つの端子は、ゲート電極が第1の選択ゲート線(SGD)へ結合された第1の選択トランジスタ(S)を介して、対応するビット線(BL)へ接続され、他の端子は、ゲート電極が第2の選択ゲート線(SGS)へ結合された第2の選択トランジスタ(S)を介して、cソースへ接続される。図を簡略化するため、4つのフローティングゲートトランジスタが各々のセルユニットに含まれるように示されているが、より高い数、例えば、8、16、またはさらには32ものトランジスタが使用される。   Within each block, in this example, 8,512 columns are divided into even and odd columns. The bit line is further divided into an even bit line (BLe) and an odd bit line (BLo). Four memory cells connected to the word lines (WL0 to WL3) at each gate electrode are connected in series to form a NAND cell unit. One terminal of the NAND cell unit is connected to the corresponding bit line (BL) via a first selection transistor (S) whose gate electrode is coupled to the first selection gate line (SGD), and the other The terminal is connected to the c source via a second selection transistor (S) whose gate electrode is coupled to a second selection gate line (SGS). For simplicity of illustration, four floating gate transistors are shown to be included in each cell unit, but higher numbers, for example, 8, 16, or even 32 transistors, are used.

実施形態の代替の集合において、本願明細書において参照により援用されている2002年2月27日に出願された米国特許出願第10/086,495号(特許文献3)で説明されるように、アレイは、奇数・偶数配列の代わりに、左および右の部分へ分割可能である。左側および右側は追加的に独立のウェル構造を有してよく、アレイの右側および左側の各々は、そのような別々のウェル構造の上に形成され、図1のc−pウェル制御回路5によって電圧レベルを独立に設定できるようにされる。さらなる変形例では、これによってブロックの全区画よりも小さいサブブロックの消去が可能になる。本発明と互換的なさらなる変形例が、米国特許出願第10/086,495号(特許文献3)にも説明されている。   In an alternative set of embodiments, as described in US patent application Ser. No. 10 / 086,495, filed Feb. 27, 2002, which is incorporated herein by reference, The array can be divided into left and right parts instead of odd and even arrays. The left and right sides may additionally have independent well structures, and each of the right and left sides of the array is formed on such a separate well structure and is controlled by the cp well control circuit 5 of FIG. The voltage level can be set independently. In a further variant, this allows the erasing of sub-blocks that are smaller than the entire block section. Further variations compatible with the present invention are also described in US patent application Ser. No. 10 / 086,495.

例示的な実施形態において、ページサイズは512バイトである。これは、同じワード線の上のセル数よりも小さい。このページサイズは、ユーザ選好および慣行に基づく。1ページ分のセルより多くのセルにワード線のサイズを対応させることは、Xデコーダ(行制御回路3)の空間を節約する。なぜならば、異なるページ分のデータがデコーダを共用できるからである。ユーザデータの読み出しおよびプログラミング動作の間、N=4,256のセル(M)が、この例では同時に選択される。選択されたセル(M)は、同じワード線(WL)、例えば、WL2、および同じ種類のビット線(BL)を有する。したがって、532バイトのデータを同時に読み出しまたはプログラムすることができる。同時に読み出されるか、またはプログラムされるこの532バイトのデータは、論理的に「ページ」を形成する。したがって、1つのブロックは少なくとも8つのページを記憶することができる。各々のメモリセル(M)が2つのデータビットを記憶するとき、即ち、マルチレベルセルであるとき、1つのブロックは、セル当たり2ビットの記憶装置の場合に16ページを記憶する。この実施形態において、各々のメモリセルの記憶素子、この場合、各々のメモリセルのフローティングゲートは、ユーザデータの2つのビットを記憶する。   In the exemplary embodiment, the page size is 512 bytes. This is smaller than the number of cells on the same word line. This page size is based on user preferences and practices. Associating the size of the word line with more cells than one page saves the space of the X decoder (row control circuit 3). This is because data for different pages can share the decoder. During user data read and programming operations, N = 4,256 cells (M) are simultaneously selected in this example. The selected cell (M) has the same word line (WL), for example, WL2, and the same type of bit line (BL). Therefore, 532 bytes of data can be read or programmed simultaneously. These 532 bytes of data that are read or programmed at the same time logically form a “page”. Thus, one block can store at least 8 pages. When each memory cell (M) stores two data bits, i.e., a multi-level cell, one block stores 16 pages for a storage device of 2 bits per cell. In this embodiment, the storage element of each memory cell, in this case the floating gate of each memory cell, stores two bits of user data.

図3は、図2の略図で示されている形のNANDセルユニットのビット線(BL)方向における断面図を示す。p形半導体基板9の表面にp形領域c−pウェル11が形成され、左および右のc−pウェルの各々はn形領域10によって囲まれて、p形基板からc−pウェルを電気的に絶縁する。n形領域10は、第1の接触孔(CB)およびn形拡散層12を介して、第1の金属M0から作られたc−pウェル線へ接続される。p形領域c−pウェル11も、第1の接触孔(CB)およびp形拡散層13を介して、c−pウェル線へ接続される。c−pウェル線はc−pウェル制御回路5(図1)へ接続される。   FIG. 3 shows a cross-sectional view in the bit line (BL) direction of a NAND cell unit of the form shown in the schematic diagram of FIG. A p-type region cp well 11 is formed on the surface of the p-type semiconductor substrate 9, and each of the left and right cp wells is surrounded by the n-type region 10, thereby electrically connecting the cp well from the p-type substrate. Insulate. The n-type region 10 is connected to a cp well line made from the first metal M0 via the first contact hole (CB) and the n-type diffusion layer 12. The p-type region cp well 11 is also connected to the cp well line via the first contact hole (CB) and the p-type diffusion layer 13. The cp well line is connected to the cp well control circuit 5 (FIG. 1).

例示的な実施形態はフラッシュEEPROM記憶ユニットを使用する。この場合、各々のメモリセルは、セルに記憶されているデータに対応する電荷量を記憶するフローティングゲート(FG)、ゲート電極を形成するワード線(WL)、およびp形拡散層12から作られたドレインおよびソース電極を有する。フローティングゲート(FG)は、トンネル酸化膜(14)を介してc−pウェルの表面に形成される。ワード線(WL)は、絶縁膜(15)を介してフローティングゲート(FG)の上に積み重ねられる。ソース電極は、第2の選択トランジスタ(S)および第1の接触孔(CB)を介して、第1の金属(M0)から作られた共通ソース線(cソース)へ接続される。共通ソース線は、cソース制御回路(4)へ接続される。ドレイン電極は、第1の選択トランジスタ(S)、第1の接触孔(CB)、第1の金属(M0)の中間配線、および第2の接触孔(V1)を介して、第2の金属(M1)から作られたビット線(BL)へ接続される。ビット線は列制御回路(2)へ接続される。   The exemplary embodiment uses a flash EEPROM storage unit. In this case, each memory cell is made up of a floating gate (FG) that stores an amount of charge corresponding to data stored in the cell, a word line (WL) that forms a gate electrode, and a p-type diffusion layer 12. Having drain and source electrodes. The floating gate (FG) is formed on the surface of the cp well via the tunnel oxide film (14). The word line (WL) is stacked on the floating gate (FG) through the insulating film (15). The source electrode is connected to a common source line (c source) made of the first metal (M0) via the second selection transistor (S) and the first contact hole (CB). The common source line is connected to the c source control circuit (4). The drain electrode is connected to the second metal via the first selection transistor (S), the first contact hole (CB), the intermediate wiring of the first metal (M0), and the second contact hole (V1). The bit line (BL) made from (M1) is connected. The bit line is connected to the column control circuit (2).

図4および図5は、ワード線(WL2)の方向におけるメモリセル(図3の断面4−4)および選択トランジスタ(図3の断面5−5)の断面図をそれぞれ示す。各々の列は、シャロートレンチ分離 (shallow trench isolation) (STI)として知られるように、基板の中に形成されて絶縁材料で充填されるトレンチによって隣接する列から分離される。トレンチは、フローティングゲート(FG)は、STIおよび絶縁膜15およびワード線(WL)によって、相互から分離される。選択トランジスタ(S)のゲート電極(SG)は、フローティングゲート(FG)およびワード線(WL)と同じ形成プロセスステップで形成されるので、積層ゲート構造を示す。これらの2つの選択ゲート線(SG)は、線の終わりに分路を作られる。   4 and 5 show cross-sectional views of the memory cell (section 4-4 in FIG. 3) and the select transistor (section 5-5 in FIG. 3) in the direction of the word line (WL2), respectively. Each column is separated from adjacent columns by trenches formed in the substrate and filled with an insulating material, known as shallow trench isolation (STI). In the trench, the floating gate (FG) is separated from each other by the STI, the insulating film 15 and the word line (WL). Since the gate electrode (SG) of the selection transistor (S) is formed in the same formation process steps as the floating gate (FG) and the word line (WL), a stacked gate structure is shown. These two select gate lines (SG) are shunted at the end of the line.

前に参照により援用されている米国特許第6,522,580号(特許文献2)は、メモリセルアレイ1を動作させる様々な電圧を説明する。特定の例において、各々のメモリセルのフローティングゲートは2つのビットを記憶し、状態「11」、「10」、「01」、「00」の1つを有する。ワード線「WL2」および「BLe」のビット線が消去、読み出し、またはプログラミングのために選択される場合について、ここで前述した米国特許を簡単に概説する。c−pウェルをVerase =15〜20Vの消去電圧へ上げ、選択されたブロックのワード線(WL)を接地することによって、選択されたブロックのデータが消去される。選択されないブロックのワード線(WL)、ビット線(BL)、選択線(SG)、およびcソースの全ては浮遊状態に置かれるので、これらも、c−pウェルとの容量結合によって、ほぼVerase へ上げられる。したがって、選択されたメモリセル(M)のトンネル酸化膜14(図4および図5)だけに強い電界が印加され、選択されたメモリセルのデータは、トンネル電流がトンネル酸化膜14を横切って流れるので消去される。消去されたセルは、この例では、4つの可能なプログラミング状態の1つ、即ち、「11」である。 US Pat. No. 6,522,580, previously incorporated by reference, describes various voltages for operating the memory cell array 1. In a particular example, the floating gate of each memory cell stores two bits and has one of the states “11”, “10”, “01”, “00”. The case where the bit lines of the word lines “WL2” and “BLe” are selected for erasing, reading or programming will be briefly outlined here. The data of the selected block is erased by raising the cp well to an erase voltage of V erase = 15 to 20 V and grounding the word line (WL) of the selected block. Since the word line (WL), bit line (BL), selection line (SG), and c source of the non-selected block are all placed in a floating state, these are also approximately V due to capacitive coupling with the cp well. Raised to erase . Therefore, a strong electric field is applied only to the tunnel oxide film 14 (FIGS. 4 and 5) of the selected memory cell (M), and the tunnel current flows across the tunnel oxide film 14 in the data of the selected memory cell. So erased. The erased cell is in this example one of four possible programming states, ie “11”.

消去およびプログラミング値で使用される高電圧値は、電荷ポンプ(図1では示されていない)を使用して、より低い供給値から生成可能である。これらの高い電圧値は、メモリチップ22自身の上で生成されるか、またはメモリシステム内の他のチップから供給されてよい。高電圧源の使用およびロケーションは、本願明細書において参照により援用されている米国特許第6,282,130号(特許文献4)、およびそこで引用された追加の参考文献の中で十分に説明されている。   High voltage values used for erase and programming values can be generated from lower supply values using a charge pump (not shown in FIG. 1). These high voltage values may be generated on the memory chip 22 itself or supplied from other chips in the memory system. The use and location of the high voltage source is fully described in US Pat. No. 6,282,130, incorporated herein by reference, and additional references cited therein. ing.

図6は、そのような従来技術の配列を概略的に示す。3つの代表的なワード線WLA 、WLB 、WLC が、それぞれトランジスタ101、103、および105を介して様々な電圧レベルを供給する線107へ接続される。トランジスタ101、103、および105は、線107と一緒に図1の行制御回路3の一部であってよい。図1のc−pウェル制御回路5は、ウェル構造c−pウェル11のために電圧を提供する。次に、ワード線は、ウェル構造11の上で図2に示されているメモリ1の異なるブロックの様々なワード線の任意のものへ続く。消去プロセスでは、選択されたワード線に対応するワード線WLC 、および選択されないWLA およびWLB の双方を使用して、c−pウェルの中の電圧が消去電圧、例えば、17ボルトへ上げられ、線107が接地される。トランジスタ105のゲートはVddの高レベルへ設定され、ワード線WLC が接地され、その間に、トランジスタ101および103の双方は、それらのゲートを接地することによってオフに転換され、WLA およびWLB が浮遊のままに残される。これは前述した消去条件を生じる。その場合、選択されない消去ゲートは、ウェルからの容量結合によって電気量を変えられ(例えば、前に援用されている米国特許第5,546,341号(特許文献5)で説明されているように)、選択された消去ゲートは接地へ強制される。消去プロセスの他の態様は、本願明細書において参照により援用されている2001年9月17日に出願された米国特許出願第09/956,201号(特許文献6)で説明される。具体的には、米国特許出願第09/956,201号(特許文献6)は、選択されないワード線を浮遊させることのできるプロセス、本発明の様々な態様の代替の実施形態へ組み込むことのできるプロセスを説明する。 FIG. 6 schematically shows such a prior art arrangement. Three representative word lines WL A , WL B , and WL C are connected to lines 107 that supply various voltage levels via transistors 101, 103, and 105, respectively. Transistors 101, 103, and 105 may be part of row control circuit 3 of FIG. The cp well control circuit 5 of FIG. 1 provides a voltage for the well structure cp well 11. Next, the word line continues onto any of the various word lines in different blocks of the memory 1 shown in FIG. In the erase process, using both the word line WL C corresponding to the selected word line, and the unselected WL A and WL B , the voltage in the cp well is raised to the erase voltage, eg, 17 volts. And line 107 is grounded. The gate of transistor 105 is set to a high level of V dd and word line WL C is grounded, while both transistors 101 and 103 are turned off by grounding their gates, WL A and WL B is left floating. This produces the erasure condition described above. In that case, the unselected erase gate can be changed in electrical quantity by capacitive coupling from the well (eg, as described in previously incorporated US Pat. No. 5,546,341). ), The selected erase gate is forced to ground. Another aspect of the erasure process is described in US patent application Ser. No. 09 / 956,201 filed Sep. 17, 2001, which is incorporated herein by reference. Specifically, US patent application Ser. No. 09 / 956,201 can be incorporated into alternative embodiments of various aspects of the present invention, processes that can float unselected word lines. Explain the process.

プログラミング動作の間にフローティングゲート(FG)の中に電子を蓄積するため、選択されたワード線WL2はプログラミングパルスVpgmへ接続され、選択されたビット線BLeは接地される。他方では、プログラミングが起こるべきでないメモリセル(M)の上のプログラミングを禁止するため、対応するビット線BLeは、選択されないビット線BLoと同じく、電源のVdd、例えば、3Vへ接続される。選択されないワード線WL0、WL1、およびWL3は10Vへ接続され、第1の選択ゲート(SGD)はVddへ接続され、第2の選択ゲート(SGS)は接地される。その結果、プログラムされているメモリセル(M)のチャネル電位は0Vへ設定される。プログラミング禁止におけるチャネル電位は、ワード線(WL)との容量結合によって引き上げられているチャネル電位の結果として、約6Vへ上げられる。前に説明したように、プログラミングの間、メモリセル(M)のトンネル酸化膜14だけに強い電界が印加され、トンネル電流は消去と比較して逆方向にトンネル酸化膜14を横切って流れ、論理状態は「11」から他の状態「10」、「01」、または「00」の1つへ変更される。 In order to store electrons in the floating gate (FG) during the programming operation, the selected word line WL2 is connected to the programming pulse Vpgm and the selected bit line BLe is grounded. On the other hand, to inhibit programming on the memory cell (M) where programming should not occur, the corresponding bit line BLe, like the unselected bit line BLo, is connected to the power supply V dd , eg 3V. Unselected word lines WL0, WL1, and WL3 are connected to 10V, the first selection gate (SGD) is connected to Vdd , and the second selection gate (SGS) is grounded. As a result, the channel potential of the programmed memory cell (M) is set to 0V. The channel potential in the programming inhibit is raised to about 6V as a result of the channel potential being raised by capacitive coupling with the word line (WL). As described above, during programming, a strong electric field is applied only to the tunnel oxide film 14 of the memory cell (M), and the tunnel current flows across the tunnel oxide film 14 in the opposite direction compared to erasure, and the logic The state is changed from “11” to one of the other states “10”, “01”, or “00”.

プログラミング動作の間にフローティングゲート(FG)へ電子を蓄積するためには、選択されたワード線WL2がプログラミングパルスVpgmへ接続され、選択されたビット線BLeが接地される。他方では、プログラミングが起こるべきでないメモリセル(M)の上でプログラミングを禁止するため、対応するビット線BLeは、選択されないビット線BLoと同じく、電源のVdd、例えば、3Vへ接続される。選択されないワード線WL0、WL1、およびWL3は10Vへ接続され、第1の選択ゲート(SGD)はVddへ接続され、第2の選択ゲート(SGS)は接地される。結果として、プログラムされているメモリセル(M)のチャネル電位は0Vに設定される。プログラミング禁止におけるチャネル電位は約6Vへ上げられる。なぜならば、チャネル電位はワード線(WL)との容量結合によって引き上げられているからである。前に説明したように、プログラミングの間、メモリセル(M)のトンネル酸化膜14だけに強い電界が印加され、トンネル電流は消去と比較して逆方向にトンネル酸化膜14を横切って流れ、論理状態は「11」から他の状態「10」、「01」、または「00」の1つへ変更される。 In order to store electrons in the floating gate (FG) during the programming operation, the selected word line WL2 is connected to the programming pulse Vpgm and the selected bit line BLe is grounded. On the other hand, in order to inhibit programming on memory cells (M) where programming should not occur, the corresponding bit line BLe, like the unselected bit line BLo, is connected to the power supply V dd , eg 3V. Unselected word lines WL0, WL1, and WL3 are connected to 10V, the first selection gate (SGD) is connected to Vdd , and the second selection gate (SGS) is grounded. As a result, the channel potential of the programmed memory cell (M) is set to 0V. The channel potential in programming inhibit is raised to about 6V. This is because the channel potential is raised by capacitive coupling with the word line (WL). As described above, during programming, a strong electric field is applied only to the tunnel oxide film 14 of the memory cell (M), and the tunnel current flows across the tunnel oxide film 14 in the opposite direction compared to erasure, and the logic The state is changed from “11” to one of the other states “10”, “01”, or “00”.

読み出しおよびベリファイ動作において、選択ゲート(SGDおよびSGS)および選択されないワード線(WL0、WL1、およびWL3)は、4.5Vの読み出し合格(パス)電圧へ上げられ、これらを合格(パス)ゲートにする。選択されたワード線(WL2)は、各々の読み出しおよびベリファイ動作のために指定された電圧レベルへ接続される。それは、関係するメモリセルのしきい値電圧が、そのようなレベルへ達したかどうかを決定するためである。例えば、READ10動作では、選択されたワード線WL2が接地されるので、しきい値電圧が0Vよりも高いかどうかが検出される。この読み出しの場合、読み出しレベルは0Vであると言うことができる。VERIFY01動作では、選択されたワード線WL2が2.4Vへ接続され、しきい値電圧が2.4Vへ達したかどうかがベリファイされる。このベリファイの場合、ベリファイレベルは2.4Vと言うことができる。再び、説明されたプロセスの全てについて、引用された電圧レベルは、単に例示的な値である。   In read and verify operations, select gates (SGD and SGS) and unselected word lines (WL0, WL1, and WL3) are raised to a read pass voltage of 4.5V, which is then passed to the pass gate. To do. The selected word line (WL2) is connected to a specified voltage level for each read and verify operation. This is to determine whether the threshold voltage of the relevant memory cell has reached such a level. For example, in the READ10 operation, since the selected word line WL2 is grounded, it is detected whether or not the threshold voltage is higher than 0V. In the case of this reading, it can be said that the reading level is 0V. In the VERIFY01 operation, the selected word line WL2 is connected to 2.4V, and it is verified whether or not the threshold voltage has reached 2.4V. In this verification, the verification level can be said to be 2.4V. Again, for all of the described processes, the cited voltage levels are merely exemplary values.

選択されたビット線(BLe)は、高レベル、例えば、0.7Vへ前もって電気量を変えられる。しきい値電圧が読み出しまたはベリファイレベルよりも高ければ、関係するビット線(BLe)の電位レベルは、導通しないメモリセル(M)のために高レベルを維持する。他方では、しきい値電圧が読み出しまたはベリファイレベルよりも低ければ、関係するビット線(BLe)の電位レベルは、導通メモリセル(M)のために低レベル、例えば、0.5V未満レベルへ減少する。読み出しおよびベリファイ動作のさらなる詳細を以下に説明する。   The selected bit line (BLe) can be precharged to a high level, eg, 0.7V. If the threshold voltage is higher than the read or verify level, the potential level of the relevant bit line (BLe) remains high for the non-conductive memory cell (M). On the other hand, if the threshold voltage is lower than the read or verify level, the potential level of the relevant bit line (BLe) is reduced to a low level, eg, a level below 0.5 V, due to the conducting memory cell (M). To do. Further details of the read and verify operations are described below.

消去されたセクタの検出メカニズムの例
本発明の主な態様は、誤作動するセルまたは他の問題のためにセクタが低い数(しかし、必ずしもゼロではない)のゼロ・ビットを含み、破壊されたビットの数がECC訂正限度よりも下にあるためセクタを依然として使用できるとき、消去されたセクタを即時および正確に検出する手法である。現在までの従来技術のシステムは、そのような場合に耐性がなく、セクタが前に書き込まれて破壊されていると考えて、システムが機能を停止する結果となる。この方法によって、記憶システムは、消去されたセクタのそのような破壊に耐えるようになり、システムがECC訂正手段による書き込みデータの中でこの誤りを後で訂正できるならば、そのようなセクタはさらなるデータ記憶に使用できるようになる。さらに、これらの手法は、2003年12月31日に出願された米国特許出願第10/751,096号(特許文献7)で説明されるソート消去済セクタ打ち切り検出メカニズムと組み合わせられてよい。
Example of Erased Sector Detection Mechanism The main aspect of the present invention is that the sector contains a low number (but not necessarily zero) of zero bits because of a malfunctioning cell or other problem and has been destroyed A technique for detecting erased sectors immediately and accurately when the number of bits is below the ECC correction limit and the sector can still be used. Prior art systems to date are not tolerant in such cases and result in the system stopping functioning, assuming that the sector was previously written and destroyed. This method allows the storage system to withstand such destruction of erased sectors, and if the system can later correct this error in the write data by the ECC correction means, such sectors will be further It can be used for data storage. Further, these techniques may be combined with the sort erased sector abort detection mechanism described in US patent application Ser. No. 10 / 751,096, filed Dec. 31, 2003.

さらに具体的には、本発明は、部分的に消去されたセクタ(主なユーザデータ、およびオーバーヘッドとECC領域)を検出する方法を説明する。この方法では、そのようなページが検出されるだけでなく、破壊レベルが数量化されるので、ページがさらなる使用に適しているかどうかを決定できるようになる。セクタデータがコントローラへ転送されたとき、ファームウェアまたはECCカスタマイズされた回路は、セクタの中、またはセクタが複数の隣接またはインターリーブされた符号語へ分割されるときには全ての符号語の中で、ゼロ・ビット(BCHについて)、または少なくとも1つのゼロ・ビットを有する記号(リード・ソロモンについて)を検出およびカウントする。こうして、カウンタの値は、セクタの中(またはセクタの全ての符号語の中)で、消去されなかったビットまたは記号の数を含むことになる。これらの値は、消去されたセクタの破壊レベルを示す。例えば、BCHの場合、カウンタはゼロ・ビットの数をカウントする。その数がECC訂正可能限度よりも下であれば、ページはプログラミングに使用可能である。ECC方法が4ビットの訂正を許すならば、1つまたは2つの故障ビットを有する消去されたセクタを使用することは全く安全である。   More specifically, the present invention describes a method for detecting partially erased sectors (main user data and overhead and ECC areas). This method not only detects such pages, but also quantifies the destruction level so that it can be determined whether the pages are suitable for further use. When the sector data is transferred to the controller, the firmware or ECC customized circuit can detect zeros in the sector or in all codewords when the sector is divided into multiple adjacent or interleaved codewords. Detect and count bits (for BCH) or symbols with at least one zero bit (for Reed-Solomon). Thus, the value of the counter will contain the number of bits or symbols that were not erased in the sector (or in all codewords of the sector). These values indicate the destruction level of the erased sector. For example, for BCH, the counter counts the number of zero bits. If the number is below the ECC correctable limit, the page is available for programming. If the ECC method allows 4-bit correction, it is quite safe to use an erased sector with one or two failed bits.

例示的な実施形態は、ガロア体の特性およびそれを使用するECCアルゴリズムに基づく。例えば、BCHおよびリード・ソロモン方法は、ゼロ・データについてゼロECCアルゴリズムを生成する。なぜならば、オール・ゼロの符号語は有効な符号語だからである。他の、より複雑な誤り訂正方法には、類似の戦略を使用することができる。以下の説明は、さらに、多くの場合、データセクタの単位を参照する。なぜならば、これはECC符号語が計算される共通の単位だからである。しかし、より一般的には、他のデータ単位について、説明された手法を容易に実行してよい。   The exemplary embodiment is based on the properties of the Galois field and the ECC algorithm that uses it. For example, the BCH and Reed-Solomon methods generate a zero ECC algorithm for zero data. This is because an all-zero codeword is a valid codeword. Similar strategies can be used for other, more complex error correction methods. The following description will further often refer to units of data sectors. This is because this is a common unit in which ECC codewords are calculated. More generally, however, the described techniques may be easily performed for other data units.

図7は、ECCアルゴリズムを使用して、消去されたページ(オールFF)の検出を助ける本発明の第1の例示的な実施形態を示す。セクタがオールFFを含まず、誤り訂正アルゴリズムによってデータを訂正できなければ、手法は、セクタが消去された(オールFF)セクタであったが幾つかのビットが故障(0)していると仮定し、他の試みを行ってセクタデータを訂正する。セクタデータは、「消去」されたセクタデータを有効な符号語にするため、最初に反転される。反転および消去されたセクタ(ECCフィールドを含む)は有効な符号語であるオール0を有する。なぜならば、ゼロ・データはゼロのECCを生成するからである。その結果、幾つかの(ECC限度内で)ビットが高であれば、システムが普通に使用した同じ誤り訂正ルーチンによって、それらのビットを訂正することができる。   FIG. 7 illustrates a first exemplary embodiment of the present invention that uses an ECC algorithm to help detect erased pages (all FFs). If the sector does not contain all FFs and the data cannot be corrected by the error correction algorithm, the technique assumes that the sector was an erased (all FF) sector but some bits are faulty (0) Then, another attempt is made to correct the sector data. The sector data is first inverted to make the “erased” sector data a valid codeword. Inverted and erased sectors (including the ECC field) have all zeros that are valid codewords. This is because zero data produces a zero ECC. As a result, if some bits (within ECC limits) are high, they can be corrected by the same error correction routine that the system normally uses.

第1の段階710は、初期データ誤り検出および訂正動作である。この動作には、セクタが消去されたかどうかの初期検査が含まれる。第1の段階710の次に、消去されたセクタの検出方法が実行される第2の段階750が続く。初期段階710は任意的であり、スキップされてよい。なぜならば、それがなくても消去されたページを検出できるからである。しかし、この初期段階を含めることが好ましい。なぜならば、それはページが消去されたか(破壊を伴わないで)、または有効なデータを含むかの初期検査を提供するからである。   The first stage 710 is an initial data error detection and correction operation. This operation includes an initial check whether the sector has been erased. The first stage 710 is followed by a second stage 750 in which the erased sector detection method is performed. The initial stage 710 is optional and may be skipped. This is because an erased page can be detected without it. However, it is preferable to include this initial stage. This is because it provides an initial check whether a page has been erased (without destruction) or contains valid data.

プロセスは701で開始し、初期検査がステップ711で実行されて、破壊を伴わないでページが消去された(オールFF)かどうかが調べられる。そうであれば、プロセスはステップ763へ直接進んで終了する。そうでなければ、プロセスはステップ713へ続き、正しくて消去されなかったデータをページが含むかどうかが検査される。代替として、段階750へ移動する前に、ステップ719の後にステップ711の検査を置くことができる。   The process begins at 701 and an initial check is performed at step 711 to see if the page has been erased without destruction (all FF). If so, the process proceeds directly to step 763 and ends. Otherwise, the process continues to step 713 where it is checked whether the page contains data that was correct and not erased. Alternatively, step 711 can be followed by step 711 before moving to step 750.

ステップ713は、有効で消去されなかったデータをページが含むかどうかを決定する(715)。含まなければ、プロセスは継続してデータ訂正動作が実行される(717)。これが訂正されたデータを生じるならば、プロセスは終了する(721)。なぜならば、訂正されたデータはECCを使用して抽出されたからである。データを訂正できなければ、誤り訂正段階が開始する。その段階では、そのセクションが消去され、主にFFを含むものと仮定される。   Step 713 determines if the page contains valid and unerased data (715). If not, the process continues with a data correction operation (717). If this results in corrected data, the process ends (721). This is because the corrected data was extracted using ECC. If the data cannot be corrected, the error correction phase begins. At that stage, it is assumed that the section is erased and contains mainly FF.

プロセスは段階750へ移動して、消去されたが破壊されたデータをページが含むかどうかが決定される。これはステップ751で開始し、ECCフィールドを含むセクタデータの全てを反転する。反転および消去されたページは、所与のECCアルゴリズムのために有効な符号語である。ステップ753は、あたかもECCブロックによって生成されたかのように、新しい誤り訂正シンドロームを生成する。1バイトのシンドロームを有するセクタ当たり4符号語の1つの非常に特殊な例では、全ての4つの部分符号語のために、データバイト0〜128および129を使用して最初のバイトを生成することができ、データバイト0〜128および130を使用して第2のバイトを生成することができ、データバイト0〜128および131を使用して第3のバイトを生成することができる。符号語の数およびサイズのさらに一般的な場合は、容易に続く。この新しいシンドロームを使用して、訂正動作が新しいシンドロームを使用して反転データの上で実行される。プロセスが成功しなければ(757〜759)、セクタは訂正できない量の誤りを有すると決定される。データが訂正されたならば(757〜761)、データが0だけで構成されるかどうかがステップ761で検査される。構成されなければ(761〜759)、再び訂正できない誤りが存在し、段階750へ進んだ初期の仮定が間違っていた可能性がある。セクタの誤りは、可能性として、訂正するにはあまりに重大で、誤りは適正に訂正されなかった。セクタがステップ761でオール0を含むならば、消去されたセクタであるが処理可能な破壊量を有するセクタが発見された(763)。   The process moves to step 750 where it is determined whether the page contains erased but corrupted data. This starts at step 751 and inverts all of the sector data including the ECC field. Inverted and erased pages are valid codewords for a given ECC algorithm. Step 753 generates a new error correction syndrome as if it were generated by an ECC block. In one very special example of 4 codewords per sector with 1 byte syndrome, generating the first byte using data bytes 0-128 and 129 for all 4 subcodewords Data bytes 0-128 and 130 can be used to generate the second byte, and data bytes 0-128 and 131 can be used to generate the third byte. The more general case of codeword number and size follows easily. Using this new syndrome, a correction operation is performed on the inverted data using the new syndrome. If the process is not successful (757-759), the sector is determined to have an uncorrectable amount of errors. If the data has been corrected (757 to 761), it is checked in step 761 whether the data consists of only zeros. If not configured (761-759), there may be an error that cannot be corrected again, and the initial assumption that went to step 750 may have been incorrect. Sector errors are potentially too serious to correct, and the errors were not corrected properly. If the sector contains all zeros in step 761, a sector that was erased but had a destructible amount that could be processed was found (763).

図7の様々なステップ、およびこれからの図に関して説明される実施形態は、ハードウェアまたはファームウェア/ソフトウェアで実現可能である。幾つかのステップは、他の形態よりも1つの形態で容易に実現される。例えば、ステップ711(データを検査して、それがオールFFであるかどうかを調べる)は、メモリバス上の受信データを検査することによって、ハードウェアでかなり簡単に検査可能である。ステップ761(データバッファ内のオール0を検査する)の実行は、比較的頻度が少なく、ファームウェアで達成可能である。   The various steps of FIG. 7 and the embodiments described with respect to the following figures can be implemented in hardware or firmware / software. Some steps are easier to implement in one form than others. For example, step 711 (inspect data to see if it is all FF) can be inspected fairly easily in hardware by inspecting the received data on the memory bus. The execution of step 761 (check for all zeros in the data buffer) is relatively infrequent and can be accomplished with firmware.

ステップ711のハードウェアが、データ内のゼロ・ビットの数をカウントできるならば、ステップ761はスキップされてよい。なぜならば、システムは、ゼロ・ビットの初期の数および誤り訂正によって変えられた1ビットの数を知るだけでよいからである。これらが等しければ、ページはオール・ゼロを有する。これは、訂正中にビットを変えるBCHベースの符号について容易に実現される。記号を訂正するリード・ソロモンでは、カウントは非FF記号である。いずれの場合にも、これは、好ましくは、各々の符号語について行われる。(以下で説明されるように、これは図9のステップ771で行われることとほとんど同じである。)   If the hardware at step 711 can count the number of zero bits in the data, step 761 may be skipped. This is because the system only needs to know the initial number of zero bits and the number of 1 bits changed by error correction. If they are equal, the page has all zeros. This is easily achieved for BCH-based codes that change bits during correction. In Reed Solomon that corrects the symbol, the count is a non-FF symbol. In any case, this is preferably done for each codeword. (As explained below, this is almost the same as what is done in step 771 of FIG. 9.)

図7の実施形態は、消去されたページの破壊レベルを数量化しないECC検査方法を使用する。この場合、消去されたページの中で許されるゼロ・ビット(Z)の数は、使用されているECC方法に基づいて固定される。例えば、BCHが使用されるならば、消去されたページをオールFF状態へ訂正できるための消去済ビットの最大数Zは(故障が均一に分散されていれば)、Z=(符号語当たりの訂正可能なビットの最大数)x(セクタ(または他のデータ単位)当たりの符号語の数)となる。リード・ソロモンでは、対応する式は、Z=(符号語当たりの訂正可能な記号の数)x(記号当たりのビット)x(セクタ(または他のデータ単位)当たりの符号語)となる。実用的な実現において、受け入れ規準は、各々の符号語の中の消去されないビット(BCH)または記号(リード・ソロモン)の或る許容数Zを超えないとすることができる。ここで、この実施形態におけるZは、訂正可能なビットまたは記号の数に等しい。図8および図9で示されている実施形態は、消去されたページの破壊レベルの数量化を可能にする。   The embodiment of FIG. 7 uses an ECC inspection method that does not quantify the destruction level of erased pages. In this case, the number of zero bits (Z) allowed in the erased page is fixed based on the ECC method being used. For example, if BCH is used, the maximum number of erased bits Z for correcting an erased page to the all-FF state (if the faults are evenly distributed) is Z = (per codeword Maximum number of correctable bits) x (number of codewords per sector (or other data unit)). In Reed-Solomon, the corresponding formula is Z = (number of correctable symbols per codeword) x (bits per symbol) x (codeword per sector (or other data unit)). In practical implementations, the acceptance criterion may not exceed a certain allowed number Z of non-erased bits (BCH) or symbols (Reed-Solomon) in each codeword. Here, Z in this embodiment is equal to the number of correctable bits or symbols. The embodiment shown in FIGS. 8 and 9 allows quantification of the destruction level of erased pages.

図8に示されている実施形態は、前述した方法に基づくECC検査を含むが、消去されたページの破壊レベルの数量化を含む。消去されたページの中の許容ゼロ・ビット(Z)の数は、ECCアルゴリズムによって識別される。例えば、BCHは、それが訂正できるビット誤り数を与え、リード・ソロモンは、訂正可能なマルチビット記号の数を与える。この場合、破壊レベルは、破壊された記号の数に基づいて受け入れ可能として検出される。セクタが、1つより多い符号語から構成されるならば、セクタの良好度は、最悪最大破壊度の符号語によって定められてよい。   The embodiment shown in FIG. 8 includes ECC checking based on the method described above, but includes quantifying the destruction level of erased pages. The number of allowed zero bits (Z) in the erased page is identified by the ECC algorithm. For example, BCH gives the number of bit errors that it can correct, and Reed-Solomon gives the number of multi-bit symbols that can be corrected. In this case, the destruction level is detected as acceptable based on the number of symbols destroyed. If a sector is composed of more than one codeword, the goodness of the sector may be defined by the worst maximum destruction codeword.

図7の実施形態に対して、図8の新しい要素は、誤り検出ルーチン750の部分段階770に見出される。この実施形態は、反転データのために新しいシンドロームを生成するステップ753の直後にこの部分段階770を置く。図8の他のステップ(段階710をスキップする選択肢およびステップ711の配置を含む)は、図7に関して前述したことと基本的に同じと考えてよい。しかし、消去ページパターンがオール0に対応する場合、ステップ751の反転は、後続する破壊レベルの数量化の前に必要でない。(より一般的には、消去されたページが、反転されたときにのみ、有効な符号語を生成するならば、反転ステップを含めるべきである。)   For the embodiment of FIG. 7, the new elements of FIG. 8 are found in the partial stage 770 of the error detection routine 750. This embodiment places this partial stage 770 immediately after step 753 of generating a new syndrome for the inverted data. The other steps in FIG. 8 (including the option to skip stage 710 and the placement of step 711) may be considered essentially the same as described above with respect to FIG. However, if the erased page pattern corresponds to all 0s, the reversal of step 751 is not necessary prior to subsequent destruction level quantification. (More generally, if an erased page produces a valid codeword only when it is flipped, an inversion step should be included.)

ステップ771は、前述したように、破壊レベルを数量化する。この実施形態では、訂正されたページが、消去されたかどうかを決定するために、ステップ757が使用される。なぜならば、ステップ771が、最も近い有効な符号語に対して誤り量を数量化するからである。最も近い有効な符号語はオール・ゼロであってよいが、任意の他の符号語であってもよい。   Step 771 quantifies the destruction level as described above. In this embodiment, step 757 is used to determine if the corrected page has been erased. This is because step 771 quantifies the error amount for the nearest valid codeword. The nearest valid codeword may be all zeros, but may be any other codeword.

ステップ773は、レベルが、受け入れ可能な限度内であるかどうかを決定する。受け入れ可能な限度内でなければ、誤りは訂正できないほどに高と考えられ、ルーチンはデータの訂正を試みることなく759へ直接進む。レベルが受け入れ可能と決定されるならば、プロセスはステップ755へ進み、図7と同じように継続できるが、消去されたセクタが発見されるならば、終りの結果はステップ763で破壊レベルを含むことが異なる。この実施形態で、763がステップ711から直接到達されるならば、破壊レベルは含まれないことに留意すべきである。   Step 773 determines whether the level is within acceptable limits. If it is not within acceptable limits, the error is considered so high that it cannot be corrected, and the routine proceeds directly to 759 without attempting to correct the data. If the level is determined to be acceptable, the process proceeds to step 755 and can continue as in FIG. 7, but if an erased sector is found, the end result includes a destruction level at step 763. That is different. Note that in this embodiment, the destruction level is not included if 763 is reached directly from step 711.

図8の変形例として、ステップ771をステップ755の一部分にすることができる。この方法では、訂正が完了するときに破壊の数量化が完了し、したがって組み合わせられた結果は、訂正されたビットまたは記号の数である。ステップ771および755が組み合わせられるならば、ステップ773は、組み合わせられたステップ771/755の後に置かれる。   As a modification of FIG. 8, step 771 can be part of step 755. In this way, the destruction quantification is complete when the correction is complete, so the combined result is the number of bits or symbols corrected. If steps 771 and 755 are combined, step 773 is placed after combined steps 771/755.

図9は、消去されたページの破壊レベルの数量化を含む第2の例示的な実施形態である。図9のルーチンは、異なる段階750へ進む前に、他の実施形態で前述した任意的初期段階710で再び始まる。図9は、消去されたページの破壊レベルの数量化を再び含み、これは図8で示したものと類似しているが、ECC検査に基づく方法なしに達成可能である。その代わりに、消去されたページの中の許容ゼロ・ビット(Z)の数は、例えば、ゼロ・ビット(BCH)または非オール・ゼロ記号(リード・ソロモン)をカウントすることによって識別される。   FIG. 9 is a second exemplary embodiment that includes quantifying the destruction level of erased pages. The routine of FIG. 9 begins again at the optional initial stage 710 described above in other embodiments before proceeding to a different stage 750. FIG. 9 again includes quantification of the destruction level of erased pages, which is similar to that shown in FIG. 8, but can be achieved without a method based on ECC inspection. Instead, the number of allowed zero bits (Z) in the erased page is identified, for example, by counting zero bits (BCH) or non-all-zero symbols (Reed-Solomon).

図9のプロセスは、前述した実施形態と同じように、任意的な段階710から再び始まる。前と同じように、ステップ711は段階710の始まりまたは終わりに置かれてよい。ステップ711が、データ内のゼロ・ビットの数をカウントできるハードウェアによって実行されるならば、後のステップ761はスキップされてよい。なぜならば、システムは、ゼロ・ビットの初期の数および誤り訂正によって変えられた1ビットの数を知るだけでよいからである。これらのビット数が等しければ、ページはオール・ゼロを有する。これは、訂正中にビットを変えるBCHベースの符号について容易に実現される。記号を訂正するリード・ソロモンにおいて、カウントは非FF記号のカウントである。いずれの場合にも、これは、好ましくは、各々の符号語について行われる。   The process of FIG. 9 begins again at an optional stage 710, similar to the previously described embodiment. As before, step 711 may be placed at the beginning or end of stage 710. If step 711 is performed by hardware that can count the number of zero bits in the data, the subsequent step 761 may be skipped. This is because the system only needs to know the initial number of zero bits and the number of 1 bits changed by error correction. If these bit numbers are equal, the page has all zeros. This is easily achieved for BCH-based codes that change bits during correction. In Reed-Solomon correcting symbols, the count is the count of non-FF symbols. In any case, this is preferably done for each codeword.

図9の実施形態において、ECCアルゴリズム自身は使用されないが、ECCアルゴリズム特性に関する知識のみが使用される。カウントは、ハードウェア(コントローラまたはメモリの中で)またはファームウェアによって再び行われてよい。結果として、図8のステップ751および753の必要なしに、図9のステップ771で破壊レベルが数量化される。一度、破壊レベルがステップ771で数量化されると、その受け入れ可能度は、前と同じようにステップ773で決定される。レベルが受け入れ可能な限度を超過するならば、データは訂正できない誤り量を有するものと考えられる(759)。   In the embodiment of FIG. 9, the ECC algorithm itself is not used, but only knowledge about the ECC algorithm characteristics is used. The counting may be done again by hardware (in the controller or memory) or firmware. As a result, the failure level is quantified in step 771 of FIG. 9 without the need for steps 751 and 753 of FIG. Once the destruction level is quantified at step 771, its acceptability is determined at step 773 as before. If the level exceeds an acceptable limit, the data is considered to have an uncorrectable amount of error (759).

ステップ771は、消去されたセクタのパターンに対して正しくないビットまたは記号の数を既に決定したので、この誤り量がステップ773で受け入れ可能と決定されるならば、それをオール0へ直接訂正することができる。その結果、図8のステップ755および757は冗長となり、フローチャートから取り除かれるのと同時に、ステップ761は、ここでは訂正された値へデータを設定するステップとなる。図8とは異なり、訂正されたページが消去されたかどうかを決定するステップ757は必要とされない。   Step 771 has already determined the number of incorrect bits or symbols for the erased sector pattern, so if this error amount is determined to be acceptable in step 773, it is corrected directly to all zeros. be able to. As a result, steps 755 and 757 of FIG. 8 are redundant and removed from the flowchart, while step 761 is now a step of setting the data to the corrected value. Unlike FIG. 8, step 757 of determining whether the corrected page has been erased is not required.

これまでの説明は、消去されたセクタの検出を基礎にしている。その場合、消去されることはオールFFのパターンに対応し、ECCはリード・ソロモンまたはBCHアルゴリズムに基づいている。前述したように、これらの方法は、当業者に明らかであるように他のECCアルゴリズムへ拡張可能である。さらに、他の種類のメモリで起こるかも知れない他のデータパターン、例えば、オール0から構成される消去済ページを検出するために、これらの手法を応用できることも明らかである。   The description so far is based on the detection of erased sectors. In that case, erasing corresponds to an all-FF pattern, and ECC is based on a Reed-Solomon or BCH algorithm. As mentioned above, these methods can be extended to other ECC algorithms as will be apparent to those skilled in the art. It is also clear that these techniques can be applied to detect other data patterns that may occur in other types of memory, for example erased pages consisting of all zeros.

他のメモリ形に関して、前述したように、本発明は、例示的な実施形態のNAND形フラッシュメモリへ応用できるだけでなく、他の構造およびメモリ技術、例えば、本願明細書において参照により援用されている2004年5月7日に出願された米国特許出願第10/841,379号(特許文献8)で説明されるものへ応用することができる。例えば、他のEEPROMまたは電荷蓄積セル、例えば、ウェル消去を有するNOR形フラッシュメモリに有用である。それは、同様に、記憶素子がフローティングゲートトランジスタでない場合、例えば、本願明細書において参照により援用されている2002年10月25日に出願されたエリヤホウ・ハラリ、ジョージ・サマチサ、ジャック・エイチ・ユアン、およびダニエル・シー・グッターマンによる「誘電体記憶素子を用いる多状態不揮発性集積回路メモリシステム」という米国特許出願(特許文献9)で説明される種類の誘電体記憶素子へ拡張可能である。これまでの説明は、メモリデバイスとして、電荷蓄積デバイス、例えば、フローティングゲートEEPROMまたはフラッシュセルを使用する実施形態に焦点を当てたが、他の実施形態、例えば、NROMおよびMNOSセル、例えば、エイタンの米国特許第5,768,192号(特許文献10)およびサトウらの米国特許第4,630,086号(特許文献11)でそれぞれ説明されるもの、または磁気RAMおよびFRAMセル、例えば、ギャラガーらの米国特許第5,991,193号(特許文献12)およびシミズらの米国特許第5,892,706号(特許文献13)でそれぞれ説明されるものに説明を当てはめ、使用することができる。これらの特許の全ては、本願明細書において参照により援用されている。   With respect to other memory types, as described above, the present invention is not only applicable to the NAND flash memory of the exemplary embodiments, but is also incorporated by reference herein in other structures and memory technologies, such as this application. It can be applied to what is described in US Patent Application No. 10 / 841,379 (Patent Document 8) filed on May 7, 2004. For example, it is useful for other EEPROM or charge storage cells such as NOR flash memory with well erase. Similarly, if the storage element is not a floating gate transistor, for example, Eliyaho Harari, George Samachisa, Jack H. Yuan, filed Oct. 25, 2002, which is incorporated herein by reference, And can be extended to dielectric storage elements of the type described in the US patent application (Patent Document 9) entitled “Multi-state non-volatile integrated circuit memory system using dielectric storage elements” by Daniel C. Gutterman. The discussion so far has focused on embodiments that use charge storage devices such as floating gate EEPROMs or flash cells as memory devices, but other embodiments such as NROM and MNOS cells such as Eitan. US Pat. No. 5,768,192 and US Pat. No. 4,630,086 to Sato et al., Respectively, or magnetic RAM and FRAM cells, such as Gallagher et al. U.S. Pat. No. 5,991,193 (Patent Document 12) and Shimizu et al., U.S. Pat. No. 5,892,706 (Patent Document 13), respectively. All of these patents are incorporated herein by reference.

本発明の様々な態様を特定の実施形態に関して説明してきたが、本発明は添付の特許請求の範囲の全範囲内においてその権利が保護されるべきであることが理解できよう。   Although various aspects of the invention have been described with reference to specific embodiments, it will be understood that the invention is entitled to protection within the full scope of the appended claims.

本発明の様々な態様の実現が説明される不揮発性メモリシステムのブロック図である。FIG. 6 is a block diagram of a non-volatile memory system in which implementations of various aspects of the invention are described. 図1のメモリアレイがNAND形であるときの既存の回路および組織を示す。Fig. 2 illustrates existing circuitry and organization when the memory array of Fig. 1 is NAND-type. 半導体基板の上に形成されたNAND形メモリアレイの列に沿った断面図を示す。FIG. 3 shows a cross-sectional view along a column of a NAND memory array formed on a semiconductor substrate. 図3の断面4−4で取られたメモリアレイの断面図である。FIG. 4 is a cross-sectional view of the memory array taken at section 4-4 of FIG. 図3の断面5−5で取られたメモリアレイの断面図である。FIG. 5 is a cross-sectional view of the memory array taken at section 5-5 of FIG. 消去メカニズムのための配列を示す。An array for the erase mechanism is shown. 破壊レベルを考慮する消去済ページ検出メカニズムの第1の実施形態のフローチャートである。6 is a flowchart of a first embodiment of an erased page detection mechanism that takes into account the destruction level. 破壊レベルの数量化を考慮する消去済ページ検出メカニズムの第2の実施形態のフローチャートである。12 is a flowchart of a second embodiment of an erased page detection mechanism that takes into account quantification of the destruction level. 破壊レベルの数量化を考慮する消去済ページ検出メカニズムの第3の実施形態のフローチャートである。12 is a flowchart of a third embodiment of an erased page detection mechanism that takes into account quantification of destruction levels.

Claims (28)

メモリのデータ単位が消去されたかどうかを決定する方法であって、
メモリのデータ単位が消去された状態に対応するかどうかの初期決定を実行する初期決定ステップと、
有効で消去されなかったデータを前記データ単位が含むかどうかを決定する決定ステップと、
前記決定ステップにおいて、データ単位の内容の上でデータ訂正動作を実行するデータ訂正動作ステップと、
前記データ訂正動作ステップでデータが訂正されなかった場合、前記データ単位のデータ内容に関連したECCフィールドを反転するステップと、
反転されたデータ内容について誤り訂正符号シンドロームを生成するステップと、
前記シンドロームを使用して、反転されたデータ内容の上でデータ訂正を実行するステップと、
反転されたデータ状態を含む訂正および反転されたデータ内容に基づいて、データ単位のデータ内容が消去されたかどうかを決定するステップと、
を含む方法。
A method for determining whether a data unit of memory has been erased, comprising:
An initial determination step for performing an initial determination of whether the data unit of the memory corresponds to the erased state;
Determining to determine whether the data unit contains valid and unerased data;
In the determining step, a data correction operation step for performing a data correction operation on the content of the data unit ;
Inverting the ECC field associated with the data content of the data unit if the data correction operation does not correct the data;
Generating an error correction code syndrome for the inverted data content;
Performing data correction on the inverted data content using the syndrome; and
Determining whether the data content of the data unit has been erased based on the corrected and inverted data content including the inverted data state ;
Including methods.
請求項1記載の方法において、
前記データ単位が、データのセクタである方法。
The method of claim 1, wherein
The method wherein the data unit is a sector of data.
請求項1記載の方法において、
誤り訂正符号が、リード・ソロモン・アルゴリズムを使用する方法。
The method of claim 1, wherein
A method in which the error correction code uses a Reed-Solomon algorithm.
請求項1記載の方法において、
誤り訂正符号が、BCHアルゴリズムを使用する方法。
The method of claim 1, wherein
A method in which the error correction code uses a BCH algorithm.
請求項1記載の方法において、
前記方法が、ファームウェアによって実行される方法。
The method of claim 1, wherein
The method is performed by firmware.
請求項1記載の方法において、
前記初期決定が、メモリバス上の受信データを検査することによってハードウェアの中で実行される方法。
The method of claim 1 , wherein
The method wherein the initial determination is performed in hardware by examining received data on a memory bus.
メモリのデータ単位が消去されたかどうかを決定する方法であって、
初期データ誤り検出および訂正動作をするステップと、
前記初期データ誤り検出および訂正動作をするステップでデータが訂正されなかった場合、データ単位に基づいてデータ内容を反転してできる新しい誤り訂正符号シンドロームを生成する動作をすることなく、データ単位の内容の破壊レベルを数量化するステップと、
前記初期データ誤り検出および訂正動作をするステップで関連付けられた誤り訂正符号に基づいて、破壊レベルが受け入れ可能かどうかを決定するステップと、
前記破壊レベルが受け入れ可能かどうかを決定するステップに応答して、データ内容を訂正するステップと、
訂正されたデータ内容に基づいて、データ単位のデータ内容が消去されたかどうかを決定するステップと、
を含む方法。
A method for determining whether a data unit of memory has been erased, comprising:
Performing initial data error detection and correction operations;
If the data is not corrected in the step of detecting and correcting the initial data error, the contents of the data unit without performing an operation of generating a new error correction code syndrome that can be reversed based on the data unit. Quantifying the destruction level of
Determining whether a failure level is acceptable based on the error correction code associated in the initial data error detection and correction operation ;
Responsive to determining whether the destruction level is acceptable, correcting data content;
Determining whether the data content of the data unit has been erased based on the corrected data content; and
Including methods.
請求項7記載の方法において、
前記データ単位の内容の破壊レベルを数量化するステップの前に、データ内容について誤り訂正符号シンドロームを生成するステップをさらに含み、前記データ内容を訂正するステップが、前記シンドロームを使用してデータ内容の上で実行され、前記データ単位のデータ内容が消去されたかどうかを決定するステップが、訂正されたデータ内容に基づく方法。
The method of claim 7 , wherein
Before the step of quantifying the destruction level of the content of the data unit, the method further includes generating an error correction code syndrome for the data content, the step of correcting the data content using the syndrome A method based on the corrected data content, wherein the step of determining whether the data content of the data unit has been erased is performed.
請求項8記載の方法において、
前記データ内容について誤り訂正符号シンドロームを生成するステップの前に、データ単位のデータ内容を反転するステップをさらに含み、誤り訂正符号シンドロームが、反転形式のデータ内容を使用して生成され、前記データ内容を訂正するステップが、前記シンドロームを使用して反転形式のデータ内容の上で実行され、前記データ単位のデータ内容が消去されたかどうかを決定するステップが、訂正された反転形式のデータ内容に基づく方法。
The method of claim 8 , wherein
Before the step of generating an error correction code syndrome for the data content, the method further includes the step of inverting the data content of the data unit, wherein the error correction code syndrome is generated using the data content in the inverted format, and the data content Is performed on the inverted data content using the syndrome, and determining whether the data content of the data unit has been erased is based on the corrected inverted data content. Method.
請求項9記載の方法において、
前記データ内容を反転するステップが、関連づけられたECCフィールドを反転するステップを含む方法。
The method of claim 9 , wherein
The method wherein inverting the data content includes inverting an associated ECC field.
請求項8記載の方法において、
前記データ内容について誤り訂正符号シンドロームを生成するステップの前に、消去された状態にデータ内容が対応するかどうかの初期決定を実行するステップをさらに含む方法。
The method of claim 8 , wherein
A method further comprising performing an initial determination of whether the data content corresponds to the erased state prior to generating an error correction code syndrome for the data content.
請求項11記載の方法において、
前記初期決定が、メモリバス上の受信データを検査することによってハードウェアの中で実行される方法。
The method of claim 11 wherein:
The method wherein the initial determination is performed in hardware by examining received data on a memory bus.
請求項8記載の方法において、
前記データ内容について誤り訂正符号シンドロームを生成するステップの前に、有効で消去されなかったデータをデータ単位が含むかどうかを決定するステップをさらに含む方法。
The method of claim 8 , wherein
A method further comprising: prior to generating an error correction code syndrome for the data content, determining whether the data unit includes valid and unerased data.
請求項13記載の方法において、
前記有効で消去されなかったデータをデータ単位が含むかどうかを決定するステップが、データ単位の内容の上でデータ訂正動作を実行するステップをさらに含む方法。
14. The method of claim 13 , wherein
The method of determining whether a data unit includes valid and unerased data further comprises performing a data correction operation on the contents of the data unit.
請求項7記載の方法において、
前記データ単位が、データのセクタである方法。
The method of claim 7 , wherein
The method wherein the data unit is a sector of data.
請求項7記載の方法において、
誤り訂正符号が、リード・ソロモン・アルゴリズムを使用する方法。
The method of claim 7 , wherein
A method in which the error correction code uses a Reed-Solomon algorithm.
請求項7記載の方法において、
誤り訂正符号が、BCHアルゴリズムを使用する方法。
The method of claim 7 , wherein
A method in which the error correction code uses a BCH algorithm.
請求項7記載の方法において、
前記方法が、ファームウェアによって実行される方法。
The method of claim 7 , wherein
The method is performed by firmware.
メモリのデータ単位を処理する方法であって、
初期データ誤り検出および訂正動作をするステップと、
前記初期データ誤り検出および訂正動作をするステップでデータが訂正されなかった場合、データ単位に基づいてデータ内容を反転してできる新しい誤り訂正符号シンドロームを生成する動作をすることなく、消去された状態に対してデータ単位の内容の破壊レベルを決定し、数量化するステップと、
前記初期データ誤り検出および訂正動作をするステップで関連づけられた誤り訂正符号に基づいて、破壊レベルが受け入れ可能かどうかを決定するステップと、
を含む方法。
A method of processing a data unit in memory,
Performing initial data error detection and correction operations;
If the data is not corrected in the step of detecting and correcting the initial data error, the data is erased without performing an operation of generating a new error correction code syndrome that can be obtained by inverting the data content based on the data unit. Determining and quantifying the destruction level of the data unit content for
Determining whether a failure level is acceptable based on the error correction code associated in the initial data error detection and correction operation ;
Including methods.
請求項19記載の方法において、
前記破壊レベルが受け入れ可能かどうかを決定するステップに応答して、データ内容を訂正するステップをさらに含む方法。
The method of claim 19 , wherein
A method further comprising correcting data content in response to determining whether the destruction level is acceptable.
請求項19記載の方法において、
前記破壊レベルを決定し、数量化するステップの前に、消去された状態にデータ内容が対応するかどうかの初期決定を実行するステップをさらに含む方法。
The method of claim 19 , wherein
A method further comprising performing an initial determination of whether data content corresponds to an erased state prior to determining and quantifying the destruction level.
請求項21記載の方法において、
前記初期決定が、メモリバス上の受信データを検査することによってハードウェアの中で実行される方法。
The method of claim 21 , wherein
The method wherein the initial determination is performed in hardware by examining received data on a memory bus.
請求項19記載の方法において、
前記破壊レベルを決定し、数量化するステップの前に、有効で消去されなかったデータをデータ単位が含むかどうかを決定するステップをさらに含む方法。
The method of claim 19 , wherein
A method further comprising the step of determining whether a data unit contains valid and unerased data prior to determining and quantifying the destruction level.
請求項23記載の方法において、
前記有効で消去されなかったデータをデータ単位が含むかどうかを決定するステップが、データ単位の内容の上でデータ訂正動作を実行するステップをさらに含む方法。
24. The method of claim 23 .
The method of determining whether a data unit includes valid and unerased data further comprises performing a data correction operation on the contents of the data unit.
請求項19記載の方法において、
前記データ単位が、データのセクタである方法。
The method of claim 19 , wherein
The method wherein the data unit is a sector of data.
請求項19記載の方法において、
誤り訂正符号が、リード・ソロモン・アルゴリズムを使用する方法。
The method of claim 19 , wherein
A method in which the error correction code uses a Reed-Solomon algorithm.
請求項19記載の方法において、
誤り訂正符号が、BCHアルゴリズムを使用する方法。
The method of claim 19 , wherein
A method in which the error correction code uses a BCH algorithm.
請求項19記載の方法において、
前記方法が、ファームウェアによって実行される方法。
The method of claim 19 , wherein
The method is performed by firmware.
JP2007548468A 2004-12-22 2005-12-15 Erased sector detection mechanism Expired - Fee Related JP5236949B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/020,345 2004-12-22
US11/020,345 US7437653B2 (en) 2004-12-22 2004-12-22 Erased sector detection mechanisms
PCT/US2005/046572 WO2006069235A1 (en) 2004-12-22 2005-12-15 Erased sector detection mechanisms

Publications (2)

Publication Number Publication Date
JP2008525937A JP2008525937A (en) 2008-07-17
JP5236949B2 true JP5236949B2 (en) 2013-07-17

Family

ID=36263993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007548468A Expired - Fee Related JP5236949B2 (en) 2004-12-22 2005-12-15 Erased sector detection mechanism

Country Status (10)

Country Link
US (2) US7437653B2 (en)
EP (2) EP1829049B1 (en)
JP (1) JP5236949B2 (en)
KR (1) KR101368375B1 (en)
CN (1) CN100589206C (en)
AT (1) ATE450044T1 (en)
DE (1) DE602005017936D1 (en)
IL (1) IL184105A0 (en)
TW (1) TW200701238A (en)
WO (1) WO2006069235A1 (en)

Families Citing this family (145)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386655B2 (en) 2004-12-16 2008-06-10 Sandisk Corporation Non-volatile memory and method with improved indexing for scratch pad and update blocks
US7315916B2 (en) * 2004-12-16 2008-01-01 Sandisk Corporation Scratch pad block
US7412560B2 (en) * 2004-12-16 2008-08-12 Sandisk Corporation Non-volatile memory and method with multi-stream updating
US7366826B2 (en) * 2004-12-16 2008-04-29 Sandisk Corporation Non-volatile memory and method with multi-stream update tracking
WO2007132452A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
CN103280239B (en) 2006-05-12 2016-04-06 苹果公司 Distortion estimation in memory device and elimination
KR101202537B1 (en) 2006-05-12 2012-11-19 애플 인크. Combined distortion estimation and error correction coding for memory devices
US7355892B2 (en) * 2006-06-30 2008-04-08 Sandisk Corporation Partial page fail bit detection in flash memory devices
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US20080072119A1 (en) * 2006-08-31 2008-03-20 Rodney Rozman Allowable bit errors per sector in memory devices
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7821826B2 (en) 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
US7545681B2 (en) * 2006-11-27 2009-06-09 Sandisk Corporation Segmented bitscan for verification of programming
US7440319B2 (en) * 2006-11-27 2008-10-21 Sandisk Corporation Apparatus with segmented bitscan for verification of programming
EP2074627B1 (en) * 2006-11-27 2010-09-15 Sandisk Corporation Segmented bitscan for verification of programming
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
WO2008068747A2 (en) 2006-12-03 2008-06-12 Anobit Technologies Ltd. Automatic defect management in memory devices
KR100847560B1 (en) * 2006-12-11 2008-07-21 삼성전자주식회사 Circuits and methods for correcting errors in downloading firmware
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
CN101715595A (en) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 Adaptive estimation of memory cell read thresholds
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8429493B2 (en) 2007-05-12 2013-04-23 Apple Inc. Memory device with internal signap processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
KR101509836B1 (en) 2007-11-13 2015-04-06 애플 인크. Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
KR101486424B1 (en) * 2008-09-12 2015-01-26 삼성전자주식회사 Error correction circuit, flash memory system having the same and operating method thereof
KR101497545B1 (en) * 2008-09-12 2015-03-03 삼성전자주식회사 Method and apparatus for detecting free page and error correction code decoding method and apparatus using the same
US8351290B1 (en) * 2008-09-12 2013-01-08 Marvell International Ltd. Erased page detection
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8291297B2 (en) * 2008-12-18 2012-10-16 Intel Corporation Data error recovery in non-volatile memory
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8276042B2 (en) 2009-02-03 2012-09-25 Micron Technology, Inc. Determining sector status in a memory device
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
KR20110025524A (en) * 2009-09-04 2011-03-10 삼성전자주식회사 Data processing device and method for data processing thereof
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US11614893B2 (en) 2010-09-15 2023-03-28 Pure Storage, Inc. Optimizing storage device access based on latency
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8713406B2 (en) 2012-04-30 2014-04-29 Freescale Semiconductor, Inc. Erasing a non-volatile memory (NVM) system having error correction code (ECC)
US9225356B2 (en) 2012-11-12 2015-12-29 Freescale Semiconductor, Inc. Programming a non-volatile memory (NVM) system having error correction code (ECC)
DE102013211077B4 (en) * 2013-06-13 2015-09-24 Infineon Technologies Ag Method for testing a memory and storage system
TWI533311B (en) * 2013-07-17 2016-05-11 慧榮科技股份有限公司 Flash device and operating method thereof
JP6267497B2 (en) * 2013-11-29 2018-01-24 ラピスセミコンダクタ株式会社 Semiconductor memory control device and unstable memory region detection method
US9582354B2 (en) 2014-01-28 2017-02-28 Infineon Technologies Ag Apparatus and method for improving data storage by data inversion
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US9213485B1 (en) 2014-06-04 2015-12-15 Pure Storage, Inc. Storage system architecture
US11399063B2 (en) 2014-06-04 2022-07-26 Pure Storage, Inc. Network authentication for a storage system
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US10114757B2 (en) 2014-07-02 2018-10-30 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US8874836B1 (en) 2014-07-03 2014-10-28 Pure Storage, Inc. Scheduling policy for queues in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US9558069B2 (en) 2014-08-07 2017-01-31 Pure Storage, Inc. Failure mapping in a storage array
US9948615B1 (en) 2015-03-16 2018-04-17 Pure Storage, Inc. Increased storage unit encryption based on loss of trust
US10082985B2 (en) 2015-03-27 2018-09-25 Pure Storage, Inc. Data striping across storage nodes that are assigned to multiple logical arrays
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US10140149B1 (en) 2015-05-19 2018-11-27 Pure Storage, Inc. Transactional commits with hardware assists in remote memory
US10248418B2 (en) 2015-06-30 2019-04-02 International Business Machines Corporation Cleared memory indicator
US10884945B2 (en) 2015-06-30 2021-01-05 International Business Machines Corporation Memory state indicator check operations
US10635307B2 (en) 2015-06-30 2020-04-28 International Business Machines Corporation Memory state indicator
US11232079B2 (en) 2015-07-16 2022-01-25 Pure Storage, Inc. Efficient distribution of large directories
US10108355B2 (en) * 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10410724B2 (en) 2016-04-08 2019-09-10 SK Hynix Inc. Erase page indicator
US10216420B1 (en) 2016-07-24 2019-02-26 Pure Storage, Inc. Calibration of flash channels in SSD
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10756816B1 (en) 2016-10-04 2020-08-25 Pure Storage, Inc. Optimized fibre channel and non-volatile memory express access
US10979223B2 (en) 2017-01-31 2021-04-13 Pure Storage, Inc. Separate encryption for a solid-state drive
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US10944671B2 (en) 2017-04-27 2021-03-09 Pure Storage, Inc. Efficient data forwarding in a networked device
US11947814B2 (en) 2017-06-11 2024-04-02 Pure Storage, Inc. Optimizing resiliency group formation stability
US10884919B2 (en) 2017-10-31 2021-01-05 Pure Storage, Inc. Memory management in a storage system
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11494109B1 (en) 2018-02-22 2022-11-08 Pure Storage, Inc. Erase block trimming for heterogenous flash memory storage devices
US11995336B2 (en) 2018-04-25 2024-05-28 Pure Storage, Inc. Bucket views
US11436023B2 (en) 2018-05-31 2022-09-06 Pure Storage, Inc. Mechanism for updating host file system and flash translation layer based on underlying NAND technology
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US11520514B2 (en) 2018-09-06 2022-12-06 Pure Storage, Inc. Optimized relocation of data based on data characteristics
US11334254B2 (en) 2019-03-29 2022-05-17 Pure Storage, Inc. Reliability based flash page sizing
US11775189B2 (en) 2019-04-03 2023-10-03 Pure Storage, Inc. Segment level heterogeneity
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11714572B2 (en) 2019-06-19 2023-08-01 Pure Storage, Inc. Optimized data resiliency in a modular storage system
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11507297B2 (en) 2020-04-15 2022-11-22 Pure Storage, Inc. Efficient management of optimal read levels for flash storage systems
US11256587B2 (en) 2020-04-17 2022-02-22 Pure Storage, Inc. Intelligent access to a storage device
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11416338B2 (en) 2020-04-24 2022-08-16 Pure Storage, Inc. Resiliency scheme to enhance storage performance
US11768763B2 (en) 2020-07-08 2023-09-26 Pure Storage, Inc. Flash secure erase
US11513974B2 (en) 2020-09-08 2022-11-29 Pure Storage, Inc. Using nonce to control erasure of data blocks of a multi-controller storage system
US11681448B2 (en) 2020-09-08 2023-06-20 Pure Storage, Inc. Multiple device IDs in a multi-fabric module storage system
US11543992B2 (en) * 2020-12-09 2023-01-03 Western Digital Technologies, Inc. Decreasing physical secure erase times in solid state drives
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11630593B2 (en) 2021-03-12 2023-04-18 Pure Storage, Inc. Inline flash memory qualification in a storage system
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
US11994723B2 (en) 2021-12-30 2024-05-28 Pure Storage, Inc. Ribbon cable alignment apparatus

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4458349A (en) * 1982-06-16 1984-07-03 International Business Machines Corporation Method for storing data words in fault tolerant memory to recover uncorrectable errors
JPS5955071A (en) 1982-09-24 1984-03-29 Hitachi Micro Comput Eng Ltd Non-volatile semiconductor device
JPS6050666A (en) * 1983-08-29 1985-03-20 Hitachi Ltd Recording control system
US4604751A (en) * 1984-06-29 1986-08-05 International Business Machines Corporation Error logging memory system for avoiding miscorrection of triple errors
US4661955A (en) * 1985-01-18 1987-04-28 Ibm Corporation Extended error correction for package error correction codes
US5220568A (en) * 1988-05-31 1993-06-15 Eastman Kodak Company Shift correcting code for channel encoded data
KR960000616B1 (en) 1993-01-13 1996-01-10 삼성전자주식회사 Non-volatile semiconductor memory device
US5798964A (en) 1994-08-29 1998-08-25 Toshiba Corporation FRAM, FRAM card, and card system using the same
US5691994A (en) * 1995-05-08 1997-11-25 Western Digital Corporation Disk drive with fast error correction validation
US5768192A (en) 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
US5928370A (en) 1997-02-05 1999-07-27 Lexar Media, Inc. Method and apparatus for verifying erasure of memory blocks within a non-volatile memory structure
JPH10334697A (en) * 1997-05-28 1998-12-18 Sony Corp Semiconductor storage device nd error correction method therefor
US6021463A (en) * 1997-09-02 2000-02-01 International Business Machines Corporation Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem
US5991193A (en) 1997-12-02 1999-11-23 International Business Machines Corporation Voltage biasing for magnetic ram with magnetic tunnel memory cells
JP2000173289A (en) * 1998-12-10 2000-06-23 Toshiba Corp Flash memory system which can correct error
US6662334B1 (en) * 1999-02-25 2003-12-09 Adaptec, Inc. Method and device for performing error correction on ECC data sectors
JP2000348497A (en) * 1999-06-08 2000-12-15 Toshiba Corp Semiconductor memory device
JP2001092723A (en) * 1999-09-21 2001-04-06 Hitachi Ltd Ecc control circuit and memory system having the same
JP2001167596A (en) * 1999-12-09 2001-06-22 Toshiba Corp Non-volatile semiconductor memory
JP4364384B2 (en) * 2000-02-01 2009-11-18 富士通マイクロエレクトロニクス株式会社 Non-volatile memory that performs erase operation in a short time
JP2001345714A (en) * 2000-06-01 2001-12-14 Matsushita Electric Ind Co Ltd Error correction decoding method and information storage medium recording the same
US7127646B1 (en) * 2000-06-07 2006-10-24 Lsi Logic Corporation System and method for generating real time errors for device testing
US6549467B2 (en) * 2001-03-09 2003-04-15 Micron Technology, Inc. Non-volatile memory device with erase address register
US6522580B2 (en) 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP4112849B2 (en) * 2001-11-21 2008-07-02 株式会社東芝 Semiconductor memory device
US6891690B2 (en) 2002-11-20 2005-05-10 International Business Machines Corporation On-drive integrated sector format raid error correction code system and method
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
JP2004234545A (en) 2003-01-31 2004-08-19 Toshiba Corp Control circuit and memory controller
JP3822171B2 (en) * 2003-02-03 2006-09-13 株式会社東芝 Nonvolatile semiconductor memory device and control method thereof, nonvolatile semiconductor memory device system and control method thereof
US8064351B2 (en) * 2005-10-20 2011-11-22 Schrader Electronics, Ltd. Method for detecting and correcting data errors in an RF data link
US20070113143A1 (en) * 2005-10-25 2007-05-17 Yu Liao Iterative decoder with stopping criterion generated from error location polynomial

Also Published As

Publication number Publication date
CN101120417A (en) 2008-02-06
DE602005017936D1 (en) 2010-01-07
IL184105A0 (en) 2007-10-31
US8327238B2 (en) 2012-12-04
EP2154687A2 (en) 2010-02-17
JP2008525937A (en) 2008-07-17
EP1829049A1 (en) 2007-09-05
KR20070099586A (en) 2007-10-09
EP2154687B1 (en) 2013-10-23
US20090006929A1 (en) 2009-01-01
EP1829049B1 (en) 2009-11-25
EP2154687A3 (en) 2010-08-18
ATE450044T1 (en) 2009-12-15
KR101368375B1 (en) 2014-02-28
CN100589206C (en) 2010-02-10
TW200701238A (en) 2007-01-01
US7437653B2 (en) 2008-10-14
US20060133141A1 (en) 2006-06-22
WO2006069235A1 (en) 2006-06-29

Similar Documents

Publication Publication Date Title
JP5236949B2 (en) Erased sector detection mechanism
JP5085939B2 (en) Flash storage system having write / erase failure detection mechanism
US7616499B2 (en) Retention margin program verification
US8125825B2 (en) Memory system protected from errors due to read disturbance and reading method thereof
US8316278B2 (en) Memory system that detects bit errors due to read disturbance and methods thereof
US8154924B2 (en) Nonvolatile memory device and read method
US9471418B2 (en) Memory system that detects bit errors due to read disturbance and methods thereof
JP2008027511A (en) Semiconductor memory device and control method thereof
US8891304B2 (en) Nonvolatile semiconductor memory device and memory system
US7652918B2 (en) Retention margin program verification
JP6115740B1 (en) Semiconductor memory device
US20160012916A1 (en) Semiconductor memory device and memory system
JP6293846B2 (en) Semiconductor memory device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081205

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110802

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20111021

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20111028

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120131

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20121003

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20121011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130121

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: 20130305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130328

R150 Certificate of patent or registration of utility model

Ref document number: 5236949

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160405

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees