KR100297465B1 - Multiple writes per a single erase for a nonvolatile memory - Google Patents

Multiple writes per a single erase for a nonvolatile memory Download PDF

Info

Publication number
KR100297465B1
KR100297465B1 KR1019980702312A KR19980702312A KR100297465B1 KR 100297465 B1 KR100297465 B1 KR 100297465B1 KR 1019980702312 A KR1019980702312 A KR 1019980702312A KR 19980702312 A KR19980702312 A KR 19980702312A KR 100297465 B1 KR100297465 B1 KR 100297465B1
Authority
KR
South Korea
Prior art keywords
group
levels
cell
level
memory cell
Prior art date
Application number
KR1019980702312A
Other languages
Korean (ko)
Other versions
KR19990063842A (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 피터 엔. 데트킨
Priority claimed from PCT/US1996/015259 external-priority patent/WO1997012368A1/en
Publication of KR19990063842A publication Critical patent/KR19990063842A/en
Application granted granted Critical
Publication of KR100297465B1 publication Critical patent/KR100297465B1/en

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • 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
    • 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
    • G11C17/00Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards
    • G11C17/14Read-only memories programmable only once; Semi-permanent stores, e.g. manually-replaceable information cards in which contents are determined by selectively establishing, breaking or modifying connecting links by permanently altering the state of coupling elements, e.g. PROM
    • G11C17/146Write once memory, i.e. allowing changing of memory content by writing additional bits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

메모리 셀(500)을 삭제하기 전에 복수회의 기록을 수행하는 방법이 설명된다. 상기 메모리 셀의 레벨의 제1그룹에 M 비트가 저장된다. 후속되는 M 대체 비트가 상기 메모리 셀의 삭제 없이 상기 메모리 셀(550)의 제2그룹의 레벨에 저장된다. 다른 메모리 셀 기록 방법은 메모리 셀의 레벨의 제1그룹에 m 비트를 저장하는 단계를 포함하고 있다. 상기 메모리 셀의 후속되는 그룹의 레벨을 식별하기 위해서 그룹 지시기가 조절된다. 다음에, 상기 메모리 셀이 삭제 없이 상기 후속되는 그룹의 레벨에 후속되는 m 대체 비트가 저장된다. 상기 그룹 지시기를 조절하는 상기 단계와 후속되는 m 대체 비트를 저장하는 상기 단계는 반복된다. 메모리 셀의 삭제를 지연시키는 방법이 또한 설명된다. m 비트 값을 저장하는데에 이용할 수 있는 상기 메모리 셀의 2m개의 인접 레벨의 하나의 그룹에 식별하기 위해서 그룹 지시기가 조절된다. 메모리 셀 판독 방법은 그룹 지시기를 제공하는 단계를 포함하고 있다. 상기 그룹 지시기는 상기 메모리 셀의 2m개의 인접 레벨의 하나의 그룹을 식별한다. 다음에, 상기 그룹 지시기에 의해서 식별된 2m개의 인접 레벨의 상기 그룹을 감지함으로써 m 비트 값이 판독된다.A method of performing a plurality of writes before deleting the memory cell 500 is described. M bits are stored in a first group of levels of the memory cells. Subsequent M replacement bits are stored at the level of the second group of memory cells 550 without erasing the memory cells. Another memory cell writing method includes storing m bits in a first group of levels of memory cells. The group indicator is adjusted to identify the level of a subsequent group of memory cells. Next, m replacement bits are stored following the memory cell's level without erasing the memory cell. The step of adjusting the group indicator and the subsequent step of storing the m replacement bits are repeated. A method of delaying the deletion of a memory cell is also described. The group indicator is adjusted to identify one group of 2 m adjacent levels of the memory cell that can be used to store m bit values. The memory cell read method includes providing a group indicator. The group indicator identifies one group of 2 m adjacent levels of the memory cell. Next, the m bit value is read by detecting the group of 2 m adjacent levels identified by the group indicator.

Description

비휘발성 메모리의 일회 삭제당 복수회 기록 방법{MULTIPLE WRITES PER A SINGLE ERASE FOR A NONVOLATILE MEMORY}Multiple writes per erase of non-volatile memory {MULTIPLE WRITES PER A SINGLE ERASE FOR A NONVOLATILE MEMORY}

일반적으로, 반도체 메모리 디바이스는 데이타를 저장하기 위한 다수의 개별적인 셀로 구성되어 있다. 종래의 바이너리 메모리 디바이스에서, 각각의 셀은 데이타의 1 비트를 표현하기 위해서 2가지 상태중 한가지 상태를 저장할 수 있다. 또한, 각각의 메모리 셀은 데이타의 1 비트 이상을 저장할 수 있다. 이러한 메모리 디바이스는 다중 레벨 메모리 디바이스 또는 멀티 비트 메모리 디바이스라고 한다. 다중 레벨 메모리 디바이스는 종래의 바이너리 디바이스 이상으로 기억 용량과 밀도를 증가시킨다. 예컨대, 단위 셀당 2 비트의 데이타를 저장할 수 있는 메모리 디바이스는 동일한 개수의 종래 바이너리 메모리 디바이스에 저장될 수 있는 데이타의 2배를 저장할 수 있는 용량을 가지고 있다.In general, semiconductor memory devices are composed of a number of individual cells for storing data. In a conventional binary memory device, each cell can store one of two states to represent one bit of data. Each memory cell can also store more than one bit of data. Such memory devices are referred to as multi-level memory devices or multi-bit memory devices. Multilevel memory devices increase storage capacity and density beyond conventional binary devices. For example, a memory device capable of storing two bits of data per unit cell has a capacity capable of storing twice the data that can be stored in the same number of conventional binary memory devices.

종래 바이너리 메모리 디바이스의 프로그래밍 동작은 데이타의 1 비트를 대해서 가능한 모든 값을 표현하기 위해서 메모리 셀에 2개의 레벨 또는 상태중 하나의 레벨 또는 상태를 저장 또는 프로그래밍하는 동작으로 이루어져 있다. 예컨대, 기록 동작 동안에 액세스될 때 종래 메모리 셀은 제1상태를 표현하기 위해서 제1전압 또는 문턱 레벨을 저장하고, 그리고 상기 제2상태를 표현하기 위해서 제2전압 또는 문턱 레벨을 저장한다. 하지만, 다중 레벨 메모리 디바이스에서 데이타의 하나의 비트 이상을 표현하기 위해서는, 통상적으로 n가지의 상태중 한가지의 상태가 저장된다. 하나의 비트를 저장하는 능력은 상기 종래 바이너리 메모리 셀에서와 같이 적어도 2개의 레벨을 저장할 수 있는 능력을 필요로 하지만, 여기에서 사용된 "다중 레벨"은 2개 이상의 레벨 또는 상태(즉, 하나 이상의 바이너리 디지트)중 하나의 레벨 또는 상태를 저장할 수 있는 셀을 참조하도록 되어 있고, 그리고 "바이너리"은 단지 2개의 레벨중 하나의 레벨(하나의 바이너리 디지트)을 저장할 수 있는 셀을 참조한다. 예컨대, 각각의 다중 레벨 메모리 셀에 2 비트를 저장하기 위해서는, 각각의 셀이 적어도 4개의 레벨중 하나의 레벨을 저장할 수 있어야 한다. n 비트를 저장할 수 있는 다중 레벨 셀은 각각의 비트가 2개의 레벨중 하나의 레벨을 가질 수 있기 때문에 2n개의 문턱 레벨을 지원할 수 있어야 한다.The programming operation of a conventional binary memory device consists of storing or programming one level or state of one of two levels or states in a memory cell to represent all possible values for one bit of data. For example, a conventional memory cell stores a first voltage or threshold level to represent a first state and, when accessed during a write operation, and stores a second voltage or threshold level to represent the second state. However, to represent more than one bit of data in a multilevel memory device, typically one of n states is stored. The ability to store one bit requires the ability to store at least two levels as in the conventional binary memory cell, but the term "multilevel" as used herein refers to two or more levels or states (ie, one or more levels). It is intended to refer to a cell capable of storing one level or state of one of the binary digits, and a "binary" only refers to a cell capable of storing one of two levels (one binary digit). For example, to store two bits in each multi-level memory cell, each cell must be able to store one of at least four levels. A multi-level cell capable of storing n bits must be able to support 2 n threshold levels since each bit can have one of two levels.

다중 레벨 메모리 셀의 한 유형은 플래시 다중 레벨 메모리 셀이다. 일반적으로, 플래시 메모리 셀은 플로팅 게이트 전계 효과 트랜지스터를 포함하고 있다. 각각의 플로팅 게이트 트랜지스터는 선택 게이트, 플로팅 게이트, 소오스 및 드레인을 가지고 있다. 상기 플로팅 게이트상에 저장되어 있는 전하의 양을 변화시킴으로써 상기 플래시 셀에 정보가 저장된다. 정보가 저장되면, 상기 플로팅 게이트 전계 효과 트랜지스터의 문턱 전압(Vt)이 변동될 수 있다. 통상적인 종래의 바이너리 플래시 메모리 셀은 "프로그래밍 상태" 또는 "삭제 상태"인 2가지 가능한 상태중 하나의 상태일 수 있다. 이론적으로, 상기 플래시 셀은 상기 플로팅 게이트에 가해진 각각의 전자의 별개의 상태를 가지고 있다. 하지만, 실제적으로, 종래 플래시 셀은 플래시 셀 구조의 비일관성, 시간에 따른 전하 손실, 및 상기 플로팅 게이트상에 저장된 전하를 감지할 때의 한계를 포함한 여러 제약으로 인해서 제한된 개수의 상태를 가지고 있다.One type of multilevel memory cell is a flash multilevel memory cell. Generally, flash memory cells include floating gate field effect transistors. Each floating gate transistor has a select gate, a floating gate, a source, and a drain. Information is stored in the flash cell by varying the amount of charge stored on the floating gate. When the information is stored, the threshold voltage V t of the floating gate field effect transistor may vary. A conventional conventional binary flash memory cell can be in one of two possible states, a "programming state" or a "erasing state." In theory, the flash cell has a separate state of each electron applied to the floating gate. In practice, however, conventional flash cells have a limited number of states due to various constraints, including inconsistencies of the flash cell structure, charge loss over time, and limitations in sensing charge stored on the floating gate.

프로그래밍된 셀상에 저장되어 있는 실제 전하는 하나의 프로그래밍된 셀로부터 다른 프로그래밍된 셀로 또는 하나의 삭제된 셀로부터 다른 삭제된 셀로 변동될 수 있다. 이 인자를 수용하기 위해서, 상기 바이너리 플래시 셀은 Vt가 값의 제1범위내에 있으면 "1"을 저장하고 있는 것으로, 그리고 Vt가 값의 제2범위내에 있으면 "0"을 저장하고 있는 것으로 판단된다. 상기 제1범위와 제2범위는 별개이고 그리고 "분리 범위"에 의해서 분리될 수도 있다. 환언하면, 상기 문턱 전압(Vt)이 한 세트의 값내의 값으로 프로그래밍되면, 상기 셀 상태는 "1"이다. 상기 문턱 전압(Vt)이 다른 세트의 값내의 값으로 프로그래밍되면, 상기 셀 상태는 "0"이다. 이들 값의 세트간의 차이를 상기 분리 범위라고 한다.The actual charge stored on the programmed cell can vary from one programmed cell to another programmed cell or from one erased cell to another erased cell. In order to accommodate this factor, by which the binary flash cell is V t is stored in a "1" is within a first range of values, and V t is to be storing a "0" is within a second range of values Judging. The first range and the second range are separate and may be separated by “separation range”. In other words, if the threshold voltage V t is programmed to a value within a set of values, the cell state is "1". If the threshold voltage V t is programmed to a value within another set of values, the cell state is " 0 ". The difference between these sets of values is called the separation range.

플래시 셀이 판독될때, 이 플래시 셀에 의해서 전도된 전류가 상기 분리 범위내에 있는 소정의 전압으로 설정된 문턱 전압(Vt)을 가지고 있는 기준 플래시 셀에 의해서 전도된 전류와 비교된다. 플래시 셀이 판독을 위해서 선택될때, 바이어스 전압이 상기 전계 효과 트랜지스터의 상기 선택 게이트에 인가된다. 동시에, 동일한 바이어스 전압이 상기 기준 셀의 선택 게이트에 인가된다. 상기 플래시 셀이 "프로그래밍 상태"이면, 잉여 전자들이 상기 플로팅 게이트상에 포집되고, 상기 플래시 셀의 문턱 전압(Vt)이 증가되며, 이에 따라 상기 선택된 플래시 셀은 상기 기준 플래시 셀보다 적은 드레인 전류를 전도시킨다. 상기 종래의 바이너리 플래시 셀의 상기 프로그래밍 상태는 일반적으로 논리 0과 관련되어 있다. 상기 종래 플래시 셀이 "삭제 상태"이면, 상기 플로팅 게이트는 보다 적은 전자들을 가지게 되며, 그리고 상기 플래시 셀은 상기 기준 셀보다 많은 드레인-소오스 전류를 전도시킨다. 상기 종래 바이너리 플래시 셀의 삭제 상태는 통상적으로 논리 1과 관련되어 있다.When a flash cell is read, the current conducted by this flash cell is compared with the current conducted by the reference flash cell with a threshold voltage V t set to a predetermined voltage within the isolation range. When a flash cell is selected for reading, a bias voltage is applied to the selection gate of the field effect transistor. At the same time, the same bias voltage is applied to the select gate of the reference cell. If the flash cell is "programmed," excess electrons are collected on the floating gate, and the threshold voltage V t of the flash cell is increased, so that the selected flash cell has a drain current less than that of the reference flash cell. Evangelize The programming state of the conventional binary flash cell is generally associated with logic zero. If the conventional flash cell is "erased," the floating gate will have fewer electrons, and the flash cell conducts more drain-source current than the reference cell. The erase state of the conventional binary flash cell is typically associated with logic one.

다중 레벨 플래시 셀은 2개 이상의 레벨중 하나의 레벨을 저장할 수 있다. 예컨대, 2 비트를 저장할 수 있는 다중 레벨 플래시 셀은 4가지의 상태중 한가지 상태로 놓일 수 있다. 이는 한가지 상태가 유일하게 2비트의 가능한 4가지의 조합, 즉 "00", "01", "10" 및 "11"중 하나의 조합에 할당됨을 의미한다. 2n가지의 상태를 구별하는데에는 2n-1개의 기준이 필요하다. 따라서, 4가지 상태의 경우에는, 3개의 기준 전압과 3개의 분리 범위가 존재해야 한다. 비교를 위해서, 상기 종래 바이너리 플래시 셀은 통상적으로 2가지 상태를 구별하는데에 하나의 기준 전압을 이용한다.A multi-level flash cell can store one of two or more levels. For example, a multi-level flash cell capable of storing two bits may be placed in one of four states. This means that one state is uniquely assigned to one of four possible combinations of two bits, one of "00", "01", "10" and "11". 2 to distinguish the different states of n it requires 2 n -1 of reference. Thus, for the four states, there must be three reference voltages and three separation ranges. For comparison, the conventional binary flash cell typically uses one reference voltage to distinguish two states.

이들 다중 레벨 플래시 셀은 각각의 상기 2n-1개의 전압 기준과 상기 메모리 셀의 드레인-소오스 전류에 의해서 결정된 전압을 비교함으로써 판독된다. 이때, 2n-1개의 비교기의 출력을 n 비트로 변환하기 위해서 디코딩 논리 회로가 사용된다.These multi-level flash cells are read by comparing each of the 2 n -1 voltage references with a voltage determined by the drain-source current of the memory cell. At this time, a decoding logic circuit is used to convert the outputs of the 2 n -1 comparators into n bits.

일반적으로 플래시 메모리 디바이스는 플래시 메모리 셀의 어레이를 포함하고 있다. 일반적으로 이들 어레이는 여러 개의 블록으로 분류되거나 다시 분리된다. 종래의 플래시 메모리는 셀 단위로 프로그래밍될 수 있지만, 플래시 메모리는 단지 여러 개의 셀 블록으로 삭제될 수 있다.Generally, flash memory devices include an array of flash memory cells. In general, these arrays are divided into blocks or separated again. Conventional flash memory can be programmed on a cell-by-cell basis, but flash memory can only be erased into several cell blocks.

상기 종래 기록 기술의 한가지 단점은 블록에 일단 데이타가 기록되면, 이 블록을 먼저 삭제하지 않고서는 이 블록내의 데이타가 수정될 수 없다는 것이다. 환언하면, 상기 종래 기록 기술에서는 삭제 사이클마다 하나의 기록 사이클만이 허용된다.One disadvantage of the conventional recording technique is that once data is written to a block, the data in this block cannot be modified without first deleting the block. In other words, in the conventional recording technique, only one write cycle is allowed per erase cycle.

플래시 메모리의 한가지 응용 분야는 고체 상태 "디스크" 분야이다. 종래의 컴퓨터 디스크 기억 디바이스를 모방하기 위해서, 고체 상태 디스크는 플래시 메모리와 같은 비휘발성 메모리를 사용한다. 일반적으로, 디스크 섹터는 플래시 메모리 셀의 블록상에 물리적으로 또는 논리적으로 맵핑된다. 종래 기억 시스템에서는 각각의 삭제 사이클에 대해 하나의 기록 사이클만이 가능하기 때문에, 데이타를 저장하는데에 있어서 상기 셀을 다시 사용할 수 있기 위해서는, 이전에 셀에 기록된 것을 "삭제"하는 방법이 필요하다. 일반적으로, 블록내의 유효 데이타는 다른 블록 위치의 갱신 데이타로 카피된다. 이때, 삭제를 위해서, 이전의 블록 위치가 표시된다. 상기 삭제 처리는 전체 블록을 삭제하고, 저장을 위해 상기 블록을 다시 사용할 수 있도록 해 준다.One application of flash memory is in solid state "disks". To mimic a conventional computer disk storage device, a solid state disk uses a nonvolatile memory such as flash memory. In general, disk sectors are physically or logically mapped onto a block of flash memory cells. Since only one write cycle is possible for each erase cycle in a conventional storage system, in order to be able to reuse the cell for storing data, a method of "deleting" previously written to the cell is needed. . In general, valid data in a block is copied into update data at another block position. At this time, for deletion, the previous block position is displayed. The deletion process deletes the entire block and makes the block available again for storage.

상기 셀의 각각의 삭제를 위한 종래의 일회 기록 방법의 한가지 단점은 필요한 에너지 소비량이다. 따라서, 저장된 데이타가 자주 수정되어야 하는 응용에서는, 유효 데이타를 새로운 위치로 이동시킬 때에 그리고 정보가 이전에 저장된 블록을 삭제할 때에 상당한 양의 에너지가 소비된다.One disadvantage of the conventional write once method for each deletion of the cell is the required energy consumption. Thus, in applications where stored data must be frequently modified, significant amounts of energy are consumed when moving valid data to a new location and when information is deleted from previously stored blocks.

상기 셀을 다시 프로그래밍하기 위해서 삭제 단계를 수행할 때에 존재하는 다른 단점은 상기 삭제 처리가 일반적으로 상기 프로그래밍 처리보다 상당히 긴 실행 시간을 필요로 한다는 것이다.Another disadvantage that exists when performing an erase step to reprogram the cell is that the delete process generally requires significantly longer execution time than the programming process.

프로그래밍 사이클마다 행하는 삭제의 또 다른 단점은 주기적으로 생기는 신뢰도 오류이다. 상기 플래시 메모리 셀은 각각의 프로그램/삭제 사이클에 따라 열화된다.Another disadvantage of erasing every programming cycle is the reliability error that occurs periodically. The flash memory cell deteriorates with each program / erase cycle.

본 출원은 1995년 9월 29일에 출원된 하스번(Hasbun) 등의 명의의 미국 특허 출원 제08/537,132호의 일부 계속 출원이다.This application is part of a continuation of US patent application Ser. No. 08 / 537,132, filed on September 29, 1995, in Hasbun et al.

본 발명은 메모리 회로 분야에 관한 것이다. 특히, 본 발명은 전기적으로 프로그래밍가능한 비휘발성 메모리에서 삭제 동작 없이 복수회의 기록 동작을 수행하는 것에 관한 것이다.The present invention relates to the field of memory circuits. In particular, the present invention relates to performing a plurality of write operations without an erase operation in an electrically programmable nonvolatile memory.

도 1은 다중 레벨 메모리 셀의 블록에 대한 삭제 상태의 일실시예를 나타낸 도면.1 illustrates one embodiment of an erase state for a block of a multilevel memory cell.

도 2는 다중 레벨 메모리 셀의 블록내의 레벨의 프로그래밍을 나타낸 도면.2 illustrates programming of levels within a block of a multilevel memory cell.

도 3은 다중 레벨 메모리 셀의 블록내의 다른 레벨의 프로그래밍을 나타낸 도면.3 illustrates different levels of programming within a block of multilevel memory cells.

도 4는 "백필" 기술을 이용한 다중 레벨 메모리 셀의 레벨의 프로그래밍을 나타낸 도면.4 illustrates programming of levels of a multilevel memory cell using a "backfill" technique.

도 5는 다중 레벨 메모리 셀의 4개의 레벨을 나타낸 도면.5 shows four levels of multi-level memory cells.

도 6은 j개의 레벨로 된 k개의 그룹으로 분류된 n개의 레벨을 가지고 있는 다중 레벨 메모리 셀의 일실시예를 나타낸 도면.Figure 6 illustrates one embodiment of a multilevel memory cell having n levels categorized into k groups of j levels.

기존의 시스템 및 방법의 한계를 감안하여, 본 발명의 목적중 하나의 목적은 삭제를 수행하지 않고 비휘발성 메모리 셀에 대한 m 비트의 복수회의 대체 기록을 수행하는 방법을 제공하는데 있다. 이 방법은 상기 메모리 셀의 레벨의 제1그룹에 m 비트를 저장하는 단계, 및 상기 메모리 셀을 삭제하지 않고 상기 메모리 셀의 레벨의 제2그룹에 m 대체 비트를 저장하는 단계를 포함하고 있다.In view of the limitations of existing systems and methods, one of the objectives of the present invention is to provide a method of performing m-bit multiple writes for a non-volatile memory cell without erasing. The method includes storing m bits in a first group of levels of the memory cells, and storing m replacement bits in a second group of levels of the memory cells without deleting the memory cells.

다른 기록 방법은 상기 메모리 셀의 레벨의 제1그룹에 m 비트를 저장하는 단계를 포함하고 있다. 상기 메모리 셀의 레벨의 후속되는 그룹을 식별하기 위해서 그룹 지시기가 조절된다. 상기 메모리 셀을 삭제하지 않고, 후속되는 m 대체 비트가 레벨의 상기 후속되는 그룹에 저장된다. 상기 그룹 지시기를 조절하는 단계와 상기 후속되는 m 대체 비트를 저장하는 단계가 반복된다.Another write method includes storing m bits in a first group of levels of the memory cells. The group indicator is adjusted to identify a subsequent group of levels of the memory cell. Without deleting the memory cell, the subsequent m replacement bits are stored in the subsequent group of levels. Adjusting the group indicator and storing the subsequent m replacement bits are repeated.

다른 목적은 최고 k개의 m 대체 비트 값을 저장할 수 있는 메모리 셀을 판독하는 방법을 제공하는데 있다. 이 방법은 상기 메모리 셀의 2m개의 인접 레벨의 한 그룹을 식별하기 위해서 그룹 지시기를 제공하는 단계, 및 m 비트 값을 판독하기 위해서 상기 식별된 레벨의 그룹을 감지하는 단계를 포함하고 있다.Another object is to provide a method of reading a memory cell capable of storing up to k m replacement bit values. The method includes providing a group indicator to identify a group of 2 m adjacent levels of the memory cell, and sensing the group of the identified level to read an m bit value.

또한, 비휘발성 메모리 셀에 대한 삭제 동작을 지연시키는 방법이 제공된다. 상기 삭제 동작은 그룹 지시기를 조절함으로써 지연되며, 이때, 상기 그룹 지시기는 m 비트 값을 저장하기 위해서 상기 메모리 셀의 2m개의 인접 레벨을 식별한다.Also provided is a method of delaying an erase operation for a nonvolatile memory cell. The erase operation is delayed by adjusting a group indicator, where the group indicator identifies 2 m adjacent levels of the memory cell to store an m bit value.

상기 메모리 셀의 주어진 그룹의 레벨에 대해서 일정한 프로그래밍 시간을 확보하는 방법으로서 백필(backfill) 기술이 도입된다.Backfill techniques are introduced as a method of ensuring constant programming time for a given group of levels of memory cells.

기타 다른 목적, 특징 및 이점은 첨부 도면으로부터 그리고 후술되는 상세한 설명으로부터 명백해진다.Other objects, features and advantages will be apparent from the accompanying drawings and from the detailed description below.

본 발명은 예로서 설명되어 있고 첨부 도면에 한정되지 않으며, 이 도면에서 동일한 참조 부호는 유사한 소자를 나타낸다.The invention has been described by way of example and not by way of limitation in the figures of the accompanying drawings in which like reference characters indicate similar elements.

다중 레벨 셀을 단일 비트 기억 디바이스로서 사용함으로써, 삭제가 행해지기 전에 단일 비트가 복수회 기록될 수 있다. n 레벨 다중 레벨 플래시 메모리 셀을 고려하자. 상기 플래시 메모리 셀은 최고 n개의 별개의 레벨을 가질 수 있다. 상기 삭제 상태를 위해서 하나의 레벨이 예약되게 된다. 프로그래밍을 위해서 나머지 n -1개의 레벨을 이용할 수 있다.By using a multilevel cell as a single bit storage device, a single bit can be written multiple times before erasing is performed. Consider an n-level multilevel flash memory cell. The flash memory cell may have up to n distinct levels. One level is reserved for the deletion state. The remaining n -1 levels are available for programming.

삭제 동작 동안에 상기 플래시 메모리 셀의 플로팅 게이트로부터 전하가 제거된다. 프로그래밍 동작 동안에 상기 플래시 메모리 셀의 플로팅 게이트상에 전하가 놓일 수 있다. 프로그래밍 상태 또는 삭제 상태는 프로그램 동작 또는 삭제동작과 구별되어야 한다. 종래의 바이너리 플래시 셀의 프로그래밍 상태(즉, 플로팅 게이트상에 전하를 놓은 상태)는 일반적으로 논리 0과 관련되어 있고, 그리고 삭제 상태(즉, 플로팅 게이트로부터 전하를 제거한 상태)는 통상적으로 논리 1과 관련되어 있다. 삭제 동작은 상기 플로팅 게이트로부터 전하를 공핍시키는 처리이다. 삭제 동작 동안에, 상기 플로팅 게이트상의 전하 레벨이 삭제 동작 후에 상기 문턱 레벨 아래로 되는 것을 보장해 주기 위해서, 상기 플로팅 게이트상의 주어진 문턱 레벨을 초과한 전하가 소모된다. 하지만, 프로그래밍 동작은 저장될 값에 따라 상기 플로팅 게이트상에 전하를 놓거나 놓지 않을 수도 있다. 종래의 바이너리 플래시 셀은 항상 0으로 프로그래밍될 수 있다(즉, 상기 플로팅 게이트상에 놓인 전하를 가질 수 있다). 하지만, 0으로 프로그래밍된 후에, 상기 종래 바이너리 셀이 다시 1을 저장할 수 있기 전에 삭제 동작이 수행되어야 한다.During the erase operation, charge is removed from the floating gate of the flash memory cell. Charge may be placed on the floating gate of the flash memory cell during a programming operation. The programming or erasing state should be distinguished from the program or deleting operation. The programming state of a conventional binary flash cell (i.e., charge on a floating gate) is generally associated with logic zero, and the erase state (i.e., charge removed from a floating gate) is typically associated with logic 1 Related. The erase operation is a process of depletion of charge from the floating gate. During the erase operation, charge above the given threshold level on the floating gate is consumed to ensure that the charge level on the floating gate is below the threshold level after the erase operation. However, a programming operation may or may not charge on the floating gate depending on the value to be stored. Conventional binary flash cells can always be programmed to zero (i.e. they can have a charge placed on the floating gate). However, after being programmed to zero, an erase operation must be performed before the conventional binary cell can again store one.

상기 다중 레벨 셀에서는, 전하 레벨을 선택하여 단일 다중 레벨 값이 저장되지 않고, 주어진 레벨로 단일 비트가 저장될 수 있다. 환언하면, 다중 레벨 메모리 셀에의 복수회의 대체 기록은 n 레벨 다중 레벨 메모리 셀의 제1레벨로 제1비트를 저장(또는 기록)하는 단계, 및 다음에 상기 다중 레벨 메모리 셀의 제2레벨로 제2비트를 저장하는 단계를 수행함으로써 달성된다. 상기 제1값은 상기 제2레벨로 상기 제2비트를 저장함으로써 중첩 기록된다. 따라서, 본질적으로, 삭제 동작이 필요하기 전에 상기 다중 레벨 셀에 복수회의 기록이 행해질 수 있다.In the multilevel cell, a single multilevel value may not be stored by selecting a charge level, but a single bit may be stored at a given level. In other words, a plurality of alternate writes to a multilevel memory cell may include storing (or writing) a first bit at a first level of an n-level multilevel memory cell, and subsequently to a second level of the multilevel memory cell. This is accomplished by performing the step of storing the second bit. The first value is overwritten by storing the second bit at the second level. Thus, in essence, multiple writes can be made to the multi-level cell before an erase operation is needed.

주어진 셀에 저장된 값을 결정하기 위해서는, 마지막으로 기록된 레벨을 알아야 한다. 이는 전류 레벨(또는, 사용하기에 적절한 기준 전압)의 트랙을 유지하기 위해서 트래킹 기구가 필요함을 의미한다. 이 기구는 상태 머신, 메모리, 또는 카운터를 구비하고 있다. 트래킹이 수행되는 정도(즉, 셀 단위, 블록, 블록 그룹, 또는 디바이스 레벨)를 트래킹 해상도라고 한다. 일실시예에서, 상기 트래킹 기구는 셀 단위로 구현된다. 하지만, 셀 단위를 기초로 한 트래킹은 상기 트래킹 기구를 구현할 때에의 실제적인 고려 사항으로 인해서 비효율적일 수도 있다. 또한, 상기 블록내의 하나의 플래시 셀을 어떻게 해서든지 삭제하기 위해서는 상기 블록내의 모든 플래시 셀이 삭제되어야 하기 때문에, 트래킹이 블록 수준에서 또는 심지어 디바이스 수준에서 가장 효율적임이 입증될 수 있다. 그러므로, 다른 실시예에서는 블록 레벨 트래킹 해상도, 복수의 셀 레벨 트래킹 해상도, 또는 디바이스 레벨 트래킹 해상도를 이용한다. 예컨대, 셀 블록내의 서브 세트의 셀로서 물리적으로 배열되어 있는 다수의 셀에 디스크 섹터들이 논리적으로 맵핑되어 있는 고체 상태 디스크 응용에서는 복수 셀 트래킹이 사용될 수 있다.In order to determine the value stored in a given cell, one must know the last recorded level. This means that a tracking mechanism is needed to keep track of the current level (or reference voltage suitable for use). This mechanism is equipped with a state machine, a memory, or a counter. The degree to which tracking is performed (ie, cell level, block, block group, or device level) is called tracking resolution. In one embodiment, the tracking mechanism is implemented on a cell basis. However, tracking on a cell basis may be inefficient due to practical considerations when implementing the tracking mechanism. In addition, tracking can be proved to be most efficient at the block level or even at the device level since all flash cells in the block must be deleted in order to delete one flash cell in the block anyway. Therefore, other embodiments use block level tracking resolution, multiple cell level tracking resolutions, or device level tracking resolutions. For example, multi-cell tracking may be used in solid state disk applications where disk sectors are logically mapped to multiple cells that are physically arranged as a subset of cells in a cell block.

도 1 내지 도 3에는 4개의 4 레벨 셀에 대해 복수회의 기록을 수행한 결과가 예시되어 있다. 도 1에는 하나의 그룹의 삭제된 다중 레벨 셀(110,120,130,140)이 예시되어 있다. 도 2에는 상기 셀에의 시퀀스 "0101"의 기록이 예시되어 있다. 도 3에는 "0110"의 후속되는 기록이 예시되어 있다. (채워진 원은 상기 플로팅 게이트상에 놓인 전하를 나타내며, 그리고 상기 플로팅 게이트상에 전하를 놓는 것은 논리 "0"과 관련되어 있다.) 이들 도면에는 분리 범위가 예시되어 있지 않지만, 도 1을 다시 참조하면, 위에서 설명한 기준 전압은 분리선(160,162,164)에 해당하고, 그리고 셀(110,120,130,140)에 저장된 값을 결정하는데에 사용된다. 상기 제1레벨(150)은 삭제 상태를 나타낸다. 비어 있는 원(예컨대, 170)은 상기 플로팅 게이트가 충분한 전하를 포함하고 있지 않아서 문턱 분리 레벨(1,2)이 초과됨을 지시해 준다. 셀(140)을 감지하고 그 결과를 분리선(160)에 해당하는 기준 전압과 비교하면, 셀(140)을 삭제해야 하는 것으로(즉, 레벨 1의 "1"을 저장해야 하는 것으로) 결정되는데, 이는 분리선(160)에 의해서 설정된 문턱 레벨을 초과하기에 충분하지 않은 전하가 존재하기 때문이다. 실제로, 상기 전하 레벨이 분리선(160)의 문턱 레벨을 초과하지 않는 한, 전하가 레벨 1로 존재할 수도 있다(즉, 채워진 원 또는 부분적으로 채워진 원이 나타날 수 있다).1 to 3 illustrate the results of performing a plurality of recordings for four four level cells. 1 illustrates one group of deleted multi-level cells 110, 120, 130 and 140. In Fig. 2, the recording of the sequence " 0101 " into the cell is illustrated. In FIG. 3 a subsequent record of " 0110 " is illustrated. (The filled circles represent the charge on the floating gate, and placing the charge on the floating gate is associated with logic "0.") Although the separation range is not illustrated in these figures, see FIG. 1 again. The reference voltages described above correspond to the separation lines 160, 162 and 164 and are used to determine the values stored in the cells 110, 120, 130 and 140. The first level 150 indicates a deletion state. An empty circle (e.g., 170) indicates that the threshold isolation level (1,2) is exceeded because the floating gate does not contain sufficient charge. When sensing the cell 140 and comparing the result with the reference voltage corresponding to the dividing line 160, it is determined that the cell 140 should be deleted (ie, having to store "1" of level 1), This is because there is not enough charge to exceed the threshold level set by the separation line 160. Indeed, as long as the charge level does not exceed the threshold level of separation line 160, the charge may be present at level 1 (ie, a filled circle or a partially filled circle may appear).

도 2에는 이전에 삭제된 셀에 "0101"(셀(210)에서부터 시작하여 좌측에서 우측으로 보았을 때임)을 저장하는 것이 예시되어 있다. 주어진 레벨의 "채워진 원" 또는 도트는 상기 셀의 플로팅 게이트가 상기 레벨로 충전되었음을 지시해 주도록 의도된 것이다. 예컨대, 레벨 2의 도트(270)는, 260에 대응되는 기준 전압이 사용될 때, 상기 셀이 삭제될 반대의 레벨 2로 "0"을 저장하고 있거나 레벨 2로 "1"을 저장하고 있는 것으로 간주될 수 있도록, 상기 셀(210)의 플로팅 게이트가 놓여져 있는 충분한 전하를 가지고 있음을 의미한다. 환언하면, 도트(270)는 셀(210)로부터 측정된 어떠한 전압도 분리선(260)에 대응되는 기준 전압의 문턱 레벨보다 높아짐을 내포하고 있다.2 illustrates storing "0101" (viewed from left to right, starting from cell 210) in a previously deleted cell. A "filled circle" or dot of a given level is intended to indicate that the floating gate of the cell has been charged to that level. For example, a dot 270 at level 2 is considered to store "0" at the opposite level 2 or "1" at level 2 when the cell is erased when a reference voltage corresponding to 260 is used. In other words, it means that the floating gate of the cell 210 has a sufficient charge. In other words, the dot 270 implies that any voltage measured from the cell 210 is higher than the threshold level of the reference voltage corresponding to the dividing line 260.

도트(270)에 의해서 표현된 레벨 2로 상기 0을 저장하기 위해서, 상기 플로팅 게이트상의 전하의 양은 레벨 1을 위해서 설정된 문턱 레벨을 초과하게 된다. 따라서, 도트(28)(도 1의 비어 있는 원(180)에 대응됨)는 상기 원이 도 1에 예시된바와 같이 이전에 비어 있는 원이면 채워진 원이 되게 된다.In order to store the zero at level 2 represented by dot 270, the amount of charge on the floating gate will exceed the threshold level set for level one. Thus, the dot 28 (corresponding to the empty circle 180 of FIG. 1) becomes a filled circle if the circle is previously empty as illustrated in FIG. 1.

도 3에는 "0101"을 이전에 저장하고 있는 상기 그룹의 셀에 "0110"을 저장하는 것이 예시되어 있다. 셀(310)의 플로팅 게이트에는 계속적으로 전하가 놓이게 되고 셀(320)의 플로팅 게이트에는 아직 전하가 놓여 있지 않음에 주의하자. 하지만, 셀(340)의 플로팅 게이트에는 레벨 1(350)과 레벨 2(352)를 통해 충분한 전하가 놓여 있어야 한다. 셀(340)은 상기 플로팅 게이트상에 어떤 상당한 양의 전하를 이전에 가지고 있지 않았기 때문에, 적절한 양의 전하를 추가하기 위해서는 이 시점에서 보다 많은 양의 시간과 에너지가 필요하게 된다. 레벨 3(354)이 사용되고 있으므로, 적절한 분리선(즉, 기준 전압)이 지금 사용될 수 있도록 레벨 지시기가 설정되어야 한다.3 illustrates storing "0110" in a cell of the group previously storing "0101". Note that charge is continuously placed in the floating gate of the cell 310 and that charge is not yet placed in the floating gate of the cell 320. However, sufficient charge must lie in the floating gate of cell 340 through level 1 350 and level 2 352. Since cell 340 did not previously have any significant amount of charge on the floating gate, more time and energy is needed at this point to add the appropriate amount of charge. Since level 3 354 is being used, the level indicator must be set so that an appropriate split line (ie, reference voltage) can now be used.

모든 기준 전압들은 위에서 설명한 종래 방법에서 사용된 다중 레벨 셀에 저장된 멀티 비트 값을 결정하는데에 사용된다. 하지만, 이 경우에는 상기 기준 레벨중 어느 기준 레벨이 사용되어야 하는지를 상기 레벨 지시기에 의해서 지시된 전류 레벨이 지정해야 한다.All reference voltages are used to determine the multi bit value stored in the multi level cell used in the conventional method described above. In this case, however, the current level indicated by the level indicator should specify which of the reference levels should be used.

레벨 3은 사용되고 있지 않으며, 이에 따라 이 레벨 3이 기록에 사용될 수 있다. 따라서, n 레벨 다중 레벨 셀인 경우에, 최고 n-1회의 기록이 삭제 동작 전에 수행될 수 있다. 상기 다중 레벨 메모리 셀은 삭제 동작을 수행하기 전에 다음과 같이 1 회 이상 기록될 수 있다: 먼저, n 레벨 다중 레벨 메모리 셀의 제1레벨에 제1비트가 저장된다. 상기 셀을 판독할 때에 사용하기에 적절한 기준 전압을 알아내기 위해서는, 레벨 지시기가 이 제1레벨을 지시할 수 있도록 설정되어야 한다. 제2대체 비트가 상기 셀에 기록되어야 하는 경우에는, 상기 제2비트가 상기 n 레벨 메모리 셀의 제2레벨에 저장된다. 이때, 상기 레벨 지시기는 상기 셀의 제2레벨이 지금 사용중임을 지시해 주기 위해서 갱신된다.Level 3 is not used, so this level 3 can be used for recording. Thus, in the case of n-level multi-level cells, at most n-1 writes can be performed before the erase operation. The multi-level memory cell may be written one or more times before performing an erase operation as follows: First, a first bit is stored in a first level of an n-level multi-level memory cell. In order to find a reference voltage suitable for use in reading the cell, a level indicator must be set to indicate this first level. When a second replacement bit is to be written to the cell, the second bit is stored at the second level of the n level memory cell. At this point, the level indicator is updated to indicate that the second level of the cell is now in use.

상기 다중 레벨 메모리 셀은 의사 삭제될 수 있고 그리고 상기 레벨 지시기를 증가시킴으로써 값을 저장하는데에 사용할 수 있게 되며, 이에 따라 상기 레벨 지시기는 기록될 상기 다중 레벨 셀의 다음 레벨을 지시해 줄 수 있다. 이 절차는 실제 삭제가 필요하기 전에 최고 n-1개의 레벨까지 수행될 수 있다.The multilevel memory cell can be pseudo erased and made available for storing a value by increasing the level indicator, whereby the level indicator can indicate the next level of the multilevel cell to be written. This procedure can be performed up to n-1 levels before the actual deletion is needed.

상기 다중 레벨 메모리 셀의 삭제 수행 전에 복수회의 기록에 관한 한가지 응용으로서 고체 상태 디스크를 고려하자. 플래시 셀은 한번에 1회 프로그래밍되지만, 일반적으로 플래시 셀은 단지 한번에 블록 삭제될 수 있다. 종래의 바이너리 셀은 언제라도 논리 0으로 개별적으로 프로그래밍될 수 있지만, 상기 셀이 일단 논리 0으로 프로그래밍되면, 논리 1을 저장하기 위해서는 상기 셀이 삭제되어야 한다. 이와 같이 블록내의 바이너리 셀과 관련되어 있는 비트가 0에서 1로 변화되어야 하는 경우에는, 상기 셀이 다시 1을 저장할 수 있기 전에 전체 블록이 삭제되어야 한다.Consider a solid state disk as one application for multiple writes before performing the erase of the multilevel memory cell. Flash cells are programmed once at a time, but in general, flash cells can only be block erased at one time. Conventional binary cells can be individually programmed to logic 0 at any time, but once the cell is programmed to logic 0, the cell must be deleted to store logic 1. If a bit associated with a binary cell in a block thus needs to be changed from 0 to 1, the entire block must be deleted before the cell can store 1 again.

일실시예에서, "유효" 정보와 갱신 정보는 상기 플래시 메모리의 자유 영역에 복사된다. 삭제를 위해서 이전의 블록 위치가 표시되며, 이에 따라 장래의 저장을 위해서 그 기억 공간이 삭제되어 비어 있게 된다. 따라서, 상기 고체 상태 디스크의 성능을 개선할 수 있도록 된 삭제 절차가 지연된다.In one embodiment, "valid" information and update information are copied to the free area of the flash memory. The previous block position is displayed for deletion, so that the storage space is deleted and freed for future storage. Thus, the erasing procedure that allows to improve the performance of the solid state disk is delayed.

상기 삭제 동작은 상기 프로그래밍 동작보다 많은 시간과 많은 에너지를 필요로 하도록 되어 있다. 어느 한쪽 동작의 실행 시간이 줄어들면 상기 시스템의 성능이 개선될 수 있다. 종래의 바이너리 셀 대신에 다중 레벨 셀이 사용되면, 해당 셀의 블록을 위해서 상기 레벨 지시기를 간단히 증가시킴으로써 상기 의사 삭제 동작이 달성될 수도 있다. 완전한 삭제는 수행되지 않지만, 상기 블록이 n 레벨 다중 레벨 셀의 블록에 대해 n-1 회까지 기록될 때까지 상기 기술을 이용하여 상기 삭제 동작을 지연시킬 수 있다. 이 기술은 에너지와 삭제 시간을 절감할 수 있는 가능성을 가지고 있다. 실제적인 삭제는 행해지지 않기 때문에, 정상적인 삭제 동작 동안에 공급된 에너지는 메모리 셀의 블록에 대해 레벨 지시기를 증가시키는데에 필요한 양을 제외하고는 보존된다. 필요한 유일한 시간은 상기 블록에 대해서 상기 레벨 지시기를 증가시키는데에 필요한 시간이다. 따라서, 이 기술을 사용하면 에너지와 시간을 절감할 수 있고, 이에 따라 고체 상태 디스크의 성능이 개선될 가능성이 있다.The erase operation is intended to require more time and more energy than the programming operation. Reducing the execution time of either operation can improve the performance of the system. If a multi-level cell is used instead of a conventional binary cell, the pseudo erase operation may be achieved by simply increasing the level indicator for that block of cells. Although a complete erase is not performed, the technique can be used to delay the erase operation until the block is written n-1 times for a block of n level multilevel cells. This technology has the potential to save energy and erase time. Since no actual erase is done, the energy supplied during normal erase operations is conserved except for the amount needed to increase the level indicator for a block of memory cells. The only time needed is the time required to increase the level indicator for the block. Thus, the use of this technique can save energy and time, and thus improve the performance of solid state disks.

시스템 성능을 개선할 수 있는 추가적인 기술은 "백필"하는 것이다. 이 기술은 비트를 셀의 q번째 레벨에서 "0"으로 프로그래밍하는 동작이 이전에 저장된 비트가 "1"인지 아니면 "0"인지에 따라 상이한 시간을 필요로 한다는 것을 인정하고 있다. 환언하면, 상기 셀을 특정 레벨로 프로그래밍하는데에 필요한 시간의 양은 상기 플로팅 게이트상에 이미 놓인 전하의 양과 직접 관련되어 있다.An additional technique that can improve system performance is to "backfill". This technique recognizes that the operation of programming a bit to "0" at the qth level of a cell requires a different time depending on whether the previously stored bit is "1" or "0". In other words, the amount of time required to program the cell to a particular level is directly related to the amount of charge already placed on the floating gate.

도 4에는 백필 기술을 이용하고 있는 도 3의 대안이 예시되어 있다. 도 3에서 레벨 3에 기록할 때에, 3개의 "1"이 상기 셀에 기록되어 있다는 사실로 인해, 셀(320)은 여전히 상기 플로팅 게이트상에 실질적으로 어떠한 전하도 가지고 있지않음에 주의해야 한다. "0"이 레벨 4에 기록되어야 하는 경우에는, 셀(310)의 플로팅 게이트상에 이미 놓인 전하의 양으로 인해 셀(310)을 "0"으로 프로그래밍하는데에 필요한 시간보다 많은 시간이 셀(320)을 "0"으로 프로그래밍하는데에 필요하게 된다. 이와 같이, 상기 프로그래밍 동작은 상기 다중 레벨 셀에 이전에 저장된 값에 민감하다. 하지만, 도 4에는 도 3에서 저장되었던 레벨 3에 저장된 동일 값이 예시되어 있다. 다음 레벨로 진행하기 전에, 선행하는 상기 제1레벨과 제2레벨이 이제 "0"으로 프로그래밍된다는데에 차이가 있다. 도 3의 370은 비어 있는 원이고 도 4의 470은 채워진 원이지만, 레벨 3에 저장된 값은 두 도면에서 동일함에 주의하자.4 illustrates an alternative to FIG. 3 using a backfill technique. It should be noted that when writing to level 3 in FIG. 3, due to the fact that three "1s" are written to the cell, cell 320 still has substantially no charge on the floating gate. If "0" is to be written at level 4, then due to the amount of charge already placed on the floating gate of cell 310, more time is needed than the time required to program cell 310 to "0". ) Is required to program "0". As such, the programming operation is sensitive to values previously stored in the multilevel cell. However, FIG. 4 illustrates the same value stored at level 3 that was stored in FIG. 3. Before proceeding to the next level, there is a difference that the preceding first and second levels are now programmed to "0". Note that 370 in FIG. 3 is an empty circle and 470 in FIG. 4 is a filled circle, but the value stored in level 3 is the same in both figures.

상기 백필 기술은 어떤 레벨에서 상기 셀을 "0"으로 프로그래밍하는 동작이 대략 동일한 양의 시간을 필요로 함을 보장하는데에 도움이 된다. 이 기술은 상기 레벨 지시기가 증가될 때마다 상기 플로팅 게이트에 전하를 추가하는데에 시간과 에너지가 필요하다는 단점을 가지고 있다. 하지만, 이 기술을 이용하여 얻을 수 있는 이점으로는 상기 다중 레벨 셀에 저장되어 있는 현재 값과 실질적으로 관계가 없는 후속되는 보다 높은 레벨에서 프로그래밍 시간이 일정하다는 것을 들 수 있다. 도 1을 다시 참조하면, 상기 백필 기술과 일치되어, 4개의 셀의 플로팅 게이트는 문턱 레벨(160)까지 충전될 수 있다(하지만, 이 문턱 레벨을 초과하지는 않음). 따라서, 전하가 존재함을 나타내기 위해서 170과 180 및 상기 다른 원들이 채워지게 된다. 하지만, 레벨 1은 여전히 상기 삭제 상태를 나타내며, 레벨 2의 프로그래밍은 이제 상기 플로팅 게이트상에 이미 놓여 있는 전하의 양 때문에 보다짧은 시간을 필요로 하게 된다.The backfill technique helps to ensure that at some level the operation of programming the cell to "0" requires approximately the same amount of time. This technique has the disadvantage of requiring time and energy to add charge to the floating gate each time the level indicator is increased. However, an advantage of using this technique is that the programming time is constant at subsequent higher levels that are substantially independent of the current value stored in the multilevel cell. Referring back to FIG. 1, in line with the backfill technique, the floating gates of the four cells may be charged to (but do not exceed) this threshold level 160. Thus, 170 and 180 and the other circles are filled to indicate the presence of charge. However, level 1 still represents the erase state, and programming of level 2 now requires a shorter time due to the amount of charge already placed on the floating gate.

위에서 제시된 예들은 기록 동작들사이에서 삭제 동작을 수행할 필요 없이 메모리에 대해 복수회의 대체 기록을 수행하는 것을 나타낸다. 특히, 삭제 없이 최고 n-1회의 단일 비트 기록이 적어도 n개의 레벨을 가지고 있는 다중 레벨 셀에 대해서 수행될 수 있다.The examples presented above represent performing a plurality of alternate writes to a memory without having to perform an erase operation between write operations. In particular, up to n-1 single-bit writes can be performed on multilevel cells having at least n levels without erasing.

도 5는 n개의 레벨을 가지고 있는 다중 레벨 셀에 대해 삭제 없이 수행될 수 있는 기록의 회수에 관한 일반식을 도출하는데에 유용하다. 도 5에는 4개의 레벨(501,502,503,504)을 가지고 있는 다중 레벨 셀(500)이 예시되어 있다. m 비트를 저장하기 위해서는 2m개의 레벨이 필요하다. 따라서, 예컨대, 단일 비트를 저장하는데에는 2개의 레벨이 필요하다. 제1단일 비트를 저장하기 위해서, 레벨(504) 또는 레벨(503,504)에 전하가 놓이게 되며, 따라서 제1기록 동작 후에 1 또는 0이 저장되는지를 기준(530)이 결정할 수 있다. 각각의 기준은 2개의 관련 레벨로부터 2가지 상태중 한가지 상태를 결정할 수 있다. 기준(530)은 570에 의해서 지시되어 있는 레벨(503,504)과 관련되어 있다. 기준(520)은 560에 의해서 지시되어 있는 레벨(502,503)과 관련되어 있다. 기준(510)은 550에 의해서 지시되어 있는 레벨(501,502)과 관련되어 있다. 이와 같이, 540, 550 및 560은 대체 기록과 관련된 레벨의 여러 개의 그룹을 나타내며, 따라서 550은 560에 대한 대체 기록 그룹이고, 540은 550에 대한 대체 기록 그룹이다.Fig. 5 is useful for deriving a general formula relating to the number of records that can be performed without erasure for multi-level cells having n levels. 5 illustrates a multi-level cell 500 having four levels 501, 502, 503, 504. 2 m levels are required to store m bits. Thus, for example, two levels are required to store a single bit. To store the first single bit, charge is placed at level 504 or levels 503 and 504, and thus the reference 530 can determine whether 1 or 0 is stored after the first write operation. Each criterion may determine one of two states from two related levels. The reference 530 is associated with the levels 503 and 504 indicated by 570. Reference 520 is associated with levels 502 and 503 indicated by 560. The reference 510 is associated with the levels 501 and 502 indicated by 550. As such, 540, 550, and 560 represent several groups of levels associated with the replacement record, such that 550 is an alternative record group for 560 and 540 is an alternative record group for 550.

각각의 기록 동작은 비트당 2m개의 레벨을 필요로 하지만, 후속되는 기록 동작은 후속적으로 기록되는 비트의 최저 레벨을 나타내기 위해서, 이전에 기록된 비트의 최고 레벨을 이용한다. 따라서, 후속되는 기록 동작에 필요한 레벨중 적어도 하나의 레벨이 이전의 기록 동작에 필요한 레벨중 하나의 레벨과 효과적으로 중첩되며, 따라서 상기 후속되는 세트의 비트를 기록하는데에는 2m-1개의 추가적인 레벨만이 필요하다. 도 5를 참조하면, 이것은 2개의 인접 기록 그룹간의 교차에 의해서 입증된다. 따라서, 각각의 기록 그룹(560,550)은 2개의 레벨을 필요로 하며, 하지만 두 기록 그룹에 의해서 레벨(503)이 사용되며, 이에 따라 2개의 기록 그룹을 지원하기 위해서는 하나의 추가적인 레벨만이 필요하다. 따라서, 주어진 후속되는 기록 동작에 대해서 m 비트를 표현하는데에 필요한 추가적인 레벨의 개수는 2m-1개이다.Each write operation requires 2 m levels per bit, but subsequent write operations use the highest level of the previously recorded bit to indicate the lowest level of the bit that is subsequently written. Thus, at least one of the levels required for subsequent write operations effectively overlaps one of the levels required for a previous write operation, so only 2 m-1 additional levels are required for writing the subsequent set of bits. This is necessary. 5, this is evidenced by the intersection between two adjacent recording groups. Thus, each recording group 560, 550 requires two levels, but level 503 is used by both recording groups, so only one additional level is needed to support two recording groups. . Thus, the number of additional levels required to represent m bits for a given subsequent write operation is 2 m −1.

도 6에는 n개의 레벨을 가지고 있는 다중 레벨 셀(600)이 예시되어 있다. 이 n개의 레벨은 j개의 레벨로 이루어진 k개의 그룹으로 분류되어 있다. 각각의 그룹의 레벨이 m 비트 값을 저장할 수 있도록 하기 위해서, j≥2m이다. j개의 레벨로 된 각각의 그룹(610)은 기록 그룹이라고도 하며, 그리고 그룹 지시기에 의해서 식별될 수 있다.6 illustrates a multi level cell 600 having n levels. These n levels are classified into k groups of j levels. In order for each group's level to be able to store m bit values, j ≧ 2 m . Each group 610 of j levels is also called a recording group, and can be identified by a group indicator.

각각의 그룹이 어떤 레벨을 낭비하지 않고 하나의 m 비트 값을 저장할 수 있도록 하기 위해서 셀 기억 레벨의 효율적인 이용을 가정하면, j=2m이다. 그렇지만, 기록 그룹마다 저장될 수 있는 비트의 수는 int(log2(j))이다. 함수 int(x)의 결과는 x의 정수 성분이다. 따라서, 예컨대 int(5/3)=1이다. 함수 log2(x)의 결과는 x의 로그(밑 2)이며, 이에 따라 x=2a이면 log2(x)=a이다. 일실시예에서 j는 2의 정수 제곱이며, 따라서 j = 2m이다.Assuming efficient use of cell memory levels to allow each group to store one m bit value without wasting any level, then j = 2 m . However, the number of bits that can be stored per recording group is int (log 2 (j)). The result of the function int (x) is the integer component of x. Thus, for example, int (5/3) = 1. The result of the function log 2 (x) is the logarithm of x (base 2), so if x = 2 a then log 2 (x) = a. In one embodiment j is an integer square of two, so j = 2 m .

삭제 없이 복수회의 기록을 수행하는 방법은 k회의 기록을 수행하는 방법으로 일반화될 수 있으며, 이때 m 비트값은 각각의 기록을 위해서 기록된다. 일반적인 경우에, 기록에 이용가능한 레벨로 된 k개의 그룹(즉, k개의 기록 그룹)이 존재한다. 상기 제1기록 그룹에 후속되는 각각의 기록 그룹은 선행하는 기록 그룹과 레벨을 공유하고 있다. 상기 제1기록 그룹은 2m개의 레벨을 필요로 한다. 각각의 다음의 k-1개의 기록 그룹은 2m-1개의 추가적인 값을 필요로 한다. 이에 따라, 삭제를 수행하지 않고 m 비트 값의 k회 기록을 가능하게 하는데에 필요한 레벨의 전체 개수(n)의 결정이 가능하다.A method of performing a plurality of recordings without erasing may be generalized to a method of performing k recordings, where the m bit value is recorded for each recording. In the general case, there are k groups (i.e. k recording groups) at levels available for recording. Each recording group following the first recording group shares a level with the preceding recording group. The first recording group requires 2 m levels. Each subsequent k-1 recording groups require 2 m −1 additional values. Accordingly, it is possible to determine the total number n of levels necessary for enabling k recording of m-bit values without performing erasure.

하나의 메모리 셀에 최고 k개의 m 대체 비트 값을 기록하기 위해서, 이때 각각의 후속되는 기록은 이전의 기록 동작에 의해서 저장된 m 비트 값을 대체하며, 상기 메모리 셀은 n개의 레벨을 가지고 있어야 하며, 이때,To write up to k m replacement bit values in one memory cell, each subsequent write replaces the m bit values stored by the previous write operation, and the memory cells must have n levels, At this time,

n≥k(2m- 1)+1n≥k (2 m -1) +1

이다.to be.

변수(k)는 삭제 동작이 필요하기 전에 수행될 기록 동작의 최대 회수를 나타낸다. k에 대해 풀면, 다음과 같다:The variable k indicates the maximum number of write operations to be performed before the erase operation is needed. Solving for k, we get:

이 식을 단일 비트인 경우(즉, m=1)에 적용하면 위에서 제시된 단일 비트 예와 일치하는 k = n - 1이 얻어진다.Applying this equation in the case of a single bit (i.e. m = 1) yields k = n-1 which corresponds to the single bit example presented above.

상기 변수(n,m)는 k가 정수가 되지 않도록 선택될 수 있다. 하지만, 일실시예에서, 부분적인 기록은 허용되지 않으며, 따라서 k는 정수이어야 한다. int(x)≤x(x>0인 경우)가 주어지면, 다음 식이 성립하는 한, 상기 변수(k)가 임의의 정수로서 선택될 수 있다:The variable (n, m) may be chosen such that k is not an integer. However, in one embodiment, partial writing is not allowed, so k must be an integer. Given int (x) ≦ x (where x> 0), the variable k can be selected as any integer, so long as the following equation holds:

일실시예에서, n과 m중 적어도 하나는 정수가 아니다. 다른 실시예에서, n과 m은 정수이고 그리고 다음 식이 성립하도록 선택된다:In one embodiment, at least one of n and m is not an integer. In another embodiment, n and m are integers and are selected such that the following formula is true:

단일 비트인 경우와는 달리, 멀티 비트가 기록될 때(즉, m>1)에는 전압 기준과 기록 그룹간에 일대일 대응 관계가 존재하지 않는다. 각각의 그룹으로부터 2m가지의 상태중 적어도 한가지의 상태를 결정하기 위해서, 2m- 1개의 기준이 필요하게 된다. 따라서, 주어진 기록 그룹은 2m- 1개의 기준과 관련되어 있다. (단일 비트인 경우에는, m = 1이고 2m- 1 = 21- 1 = 1 기준이며, 따라서 기준과 기록 그룹간에 일대일 대응 관계가 존재한다.)Unlike the case of a single bit, there is no one-to-one correspondence between the voltage reference and the write group when multiple bits are written (i.e., m> 1). In order to determine at least one of the 2 m states from each group, 2 m -1 criteria are needed. Thus, a given recording group is associated with 2 m -1 criteria. (In the case of single bits, and m = 1, m 2 - 1 2 = 1 - a 1 = 1 standard, so there is a one-to-one relationship between the reference record and the group.)

m 비트 값이 주어진 기록 그룹에 일단 기록되면, 다음 기록 그룹에 기록하여 삭제를 수행하지 않고 m 대체 비트 값이 상기 다중 레벨 셀에 기록될 수 있다. 환언하면, 메모리 셀 기록 방법은 상기 메모리 셀의 제1기록 그룹에 제1의 m 비트 값을 기록하는 단계를 포함하고 있다. 제2의 m 대체 비트 값은 상기 메모리 셀의 제2기록 그룹에 기록된다.Once an m bit value is written to a given write group, the m replacement bit value can be written to the multilevel cell without writing to the next write group to perform an erase. In other words, the memory cell write method includes writing a first m-bit value to a first write group of the memory cell. A second m replacement bit value is written to the second write group of the memory cell.

상기 단일 비트인 경우에 대해서도 위에서 제시된 레벨 지시기와 유사한 그룹 지시기가 사용될 수 있다. 상기 그룹 지시기는 k개의 그룹중 어떤 그룹이 m 비트 값을 저장하는데에 사용되고 있는지를 결정하는데에 사용된다. 또한, 상기 그룹 지시기는 삭제 없이 이미 수행된 기록의 회수를 지시해 준다. 값을 저장하기 위해 단일 레벨을 증가시키지 않고, 상기 그룹 지시기는 m 비트 값의 후속되는 대체 기록을 위해서 이용가능한 다음 기록 그룹이 결정될 수 있도록 조절된다.Even for the single bit case, a group indicator similar to the level indicator presented above may be used. The group indicator is used to determine which of the k groups is being used to store the m bit value. The group indicator also indicates the number of records already performed without deletion. Without increasing the single level to store the value, the group indicator is adjusted such that the next group of records available for subsequent alternate writing of the m bit value can be determined.

일실시예에서, 상기 그룹 지시기는 후속되는 대체 기록에 이용가능한 다음 기록 그룹을 식별하기 위해서 증가된다.In one embodiment, the group indicator is incremented to identify the next group of records available for subsequent replacement records.

이와 같이, 한가지 메모리 셀 기록 방법은 상기 메모리 셀의 레벨의 제1그룹에 m 비트를 저장하는 단계, 이용가능한 다음 그룹을 식별하기 위해서 그룹 지시기를 조절하는 단계, 및 상기 메모리 셀을 삭제하지 않고 상기 메모리 셀의 레벨의 제2그룹에 후속되는 m 대체 비트를 저장하는 단계를 포함하고 있다.As such, one memory cell write method includes storing m bits in a first group of levels of the memory cell, adjusting a group indicator to identify the next available group, and without deleting the memory cell. Storing the m replacement bits following the second group of levels of memory cells.

k회의 기록 동작이 일단 수행되면, 상기 메모리 셀은 추가적인 기록 동작이 수행될 수 있기 전에 물리적으로 삭제되어야 한다. 상기 그룹 지시기는 완전한 물리적 삭제 또는 부분적 물리적 삭제가 허용되는지에 따라 조절되어야 한다.Once k write operations have been performed, the memory cell must be physically erased before additional write operations can be performed. The group indicator should be adjusted depending on whether full physical deletion or partial physical deletion is allowed.

일실시예에서는 부분적 물리적 삭제가 가능하다. 부분적 물리적 삭제에서, 상기 메모리 셀의 하나의 기록 그룹내에 저장되어 있는 전하는 이 하나의 기록 그룹내에 어떠한 전하도 남지 않을 때까지 제거된다. 이러한 경우에, 상기 그룹 지시기는 다수의 기록 그룹이 삭제되는 방법에 따라 초기화되어야 한다. 상기 현재의 기록 그룹이 기록 그룹(i)이고 충분한 전하가 b개의 기록 그룹을 삭제하기 위해서 제거되면, 상기 그룹 지시기는 i-b로 감소되거나 초기화되어야 한다. 환언하면, 기록 그룹(k-b(단,b<k) 내지 k)이 실질적으로 어떠한 전하도 저장하고 있지 않도록, k개의 기록 그룹을 가지고 있는 n 레벨 메모리 셀로부터 전하를 제거함으로써 부분적 삭제가 달성될 수 있다.In one embodiment, partial physical deletion is possible. In partial physical erase, the charge stored in one write group of the memory cell is removed until no charge remains in this one write group. In such a case, the group indicator should be initialized according to how the plurality of recording groups are deleted. If the current write group is write group i and sufficient charge is removed to erase b write groups, the group indicator should be reduced or initialized to i-b. In other words, partial deletion can be achieved by removing the charge from an n-level memory cell having k write groups so that the write groups kb (where b <k) through k do not store substantially any charge. have.

하지만, 다른 실시예에서 완전한 물리적 삭제만이 허용되면, 물리적인 삭제 동작 동안에 상기 다중레벨 메모리 셀로부터 모든 전하가 실질적으로 제거된다. 이러한 경우에, 상기 그룹 지시기는 상기 완전한 물리적 삭제 동작후에 상기 그룹 지시기가 상기 메모리 셀내의 k개의 이용가능한 그룹중 제1그룹을 지시할 수 있도록 초기화되어야 한다.However, in another embodiment, if only complete physical erase is allowed, all charges are substantially removed from the multilevel memory cell during the physical erase operation. In this case, the group indicator should be initialized after the complete physical erase operation so that the group indicator can indicate the first group of k available groups in the memory cell.

상기 단일 비트 삭제에 대해서 위에서 제시된 예의 경우와 같이, 상기 그룹 지시기가 적절히 조절될 때 상기 메모리 셀은 m 비트 관점에서 삭제되는 것으로 나타난다. 상기 메모리 셀의 이용가능한 2m개의 인접 레벨의 세트를 식별하기 위해서 상기 그룹 지시기가 조절되면, 상기 메모리 셀은 m 비트 관점에서 삭제되는 것으로나타난다. 하지만, k 회의 기록 동작을 위해서 완전 삭제는 지연되는 것이 효과적이다. 이와 같이, 상기 메모리 셀은 2m개의 인접 레벨의 이용가능한 다음 세트 까지 상기 그룹 지시기를 증가시킴으로써 "삭제"된다. 하지만, k회의 기록 후에, 상기 메모리 셀은 또 다른 값이 상기 메모리 셀에 저장될 수 있기 전에 완전히 삭제되어야 한다.As in the case of the example presented above for the single bit erasure, the memory cell appears to be deleted in terms of m bits when the group indicator is properly adjusted. If the group indicator is adjusted to identify a set of available 2m adjacent levels of the memory cell, the memory cell appears to be deleted in terms of m bits. However, it is effective to delay the erasure for k recording operations. As such, the memory cell is " deleted " by incrementing the group indicator to the next available set of 2 m adjacent levels. However, after k writes, the memory cell must be completely erased before another value can be stored in the memory cell.

판독 동작은 상기 메모리 셀에 저장되어 있는 m 비트 값을 결정하기 위해서 2m개의 레벨의 어떤 세트가 감지될 필요가 있는지를 결정하기 위해서 상기 그룹 지시기를 사용한다. 2m개의 레벨의 각각의 세트는 2m-1개의 기준을 필요로 하므로, 상기 그룹 지시기는 상기 메모리 셀에 저장되어 있는 m 비트 값을 결정하기 위해서 2m-1개의 기준의 어떤 세트가 사용되는지를 효율적으로 식별한다. 이와 같이, 상기 그룹 지시기는 상기 메모리 셀의 2m개의 인접 레벨을 식별하기 위해서 제공되어 있다. 이때, 상기 2m개의 인접 레벨의 상태를 결정함으로써 m 비트 값이 상기 메모리 셀로부터 판독된다.A read operation uses the group indicator to determine which set of 2 m levels needs to be detected to determine the m bit value stored in the memory cell. 2 each set of m level 2 because it requires a m -1 of reference, if the group indicator is set which is used in the 2 m -1 different criteria to determine the m-bit value stored in the memory cell, Efficiently identify As such, the group indicator is provided to identify 2 m adjacent levels of the memory cell. At this time, an m bit value is read from the memory cell by determining the states of the 2 m adjacent levels.

단일 비트의 기억에 대하여 위에서 제시된 백필 기술은 복수 비트를 저장하는데에 유사하게 응용될 수 있다. 특히, 제2기록 그룹에 m 대체 비트를 저장하기 전에 상기 제1기록 그룹에 소정의 값을 저장함으로써 백필이 달성된다.The backfill technique presented above for a single bit of memory can be similarly applied to storing multiple bits. In particular, the backfill is achieved by storing a predetermined value in the first write group before storing the m replacement bits in the second write group.

m 비트 값(단, m≥1)의 복수회의 기록을 수행하기 위해서 n 레벨 다중 레벨메모리 셀을 사용하면, 상기 메모리 셀에 저장되어 있는 값을 감지하는 데에 필요한 센스 증폭기의 전체 개수가 줄어들 수 있다. 주어진 기록 그룹내의 모든 전압 기준은 상기 기록 그룹내에 저장되어 있는 값을 감지하기 위해서 필요하다. 하지만, 정상 동작하에서, 상기 n 레벨 셀이 log2(n) 비트를 저장하는데에 사용될 수 있도록, 모든 n개의 레벨은 동일한 기록 그룹에 속해 있다. 따라서, 상기 셀은 새로운 값이 상기 셀에 프로그래밍될 수 있기 전에 삭제되어야 한다. 상기 셀의 내용을 판독하기 위해서는, n-1개의 모든 전압 기준이 동시에 필요하다. 하지만, 각각의 기록 그룹이 2m개의 레벨로 구성되어 있으면, 각각의 감지 동작을 위해서 2m-1개의 전압 기준만이 필요하다. 2m< n인 한, 그것은 각각의 감지 동작을 위해서 n-1개보다 적은 개수의 센스 증폭기가 필요함을 의미한다.Using n-level multilevel memory cells to perform multiple writes of m-bit values (where m≥1) reduces the total number of sense amplifiers needed to detect the values stored in the memory cells. have. All voltage references within a given recording group are needed to sense the values stored in that recording group. However, under normal operation, all n levels belong to the same recording group so that the n level cells can be used to store log 2 (n) bits. Thus, the cell must be deleted before a new value can be programmed to the cell. To read the contents of the cell, all n-1 voltage references are needed at the same time. However, if each recording group is composed of 2 m levels, only 2 m −1 voltage references are needed for each sensing operation. As long as 2 m <n, that means less than n-1 sense amplifiers are needed for each sensing operation.

프로그래밍이 가능한 센스 증폭기가 사용되면, 상기 메모리 셀을 판독하는데에 필요한 센스 증폭기의 전체 개수는 n-1개에서 대략 2m-1 개로 감소될 수 있다. 일반적으로 센스 증폭기는 감지된 값과 기준 전압을 비교하는 비교기이다. 도 1을 참조하면, 셀(110,120,130,140)에 저장되어 있는 값을 결정하기 위해서는 160, 162 및 164로 설정된 대응 가준 전압을 가지고 있는 3개의 센스 증폭기가 필요하다. 도 6을 참조하면, 주어진 판독 동작을 위해서는 현재의 기록 그룹을 판독하는데에 필요한 센스 증폭기만이 필요하다. 다음 기록 그룹을 판독하기 위해서는, 각각의 센스 증폭기의 기준 전압이 2m개의 레벨로 조절되면, 동일한 2m-1 개의 센스 증폭기가 사용될 수 있다. 따라서, 다음 기록 그룹에 저장되어 있는 m 비트 값을 판독하는데에 필요한 기준 전압에 대응하도록 2m-1개의 모든 센스 증폭기의 기준 전압을 시프트시킬 수 있다.If a programmable sense amplifier is used, the total number of sense amplifiers required to read the memory cell can be reduced from n-1 to approximately 2 m −1. In general, a sense amplifier is a comparator that compares the sensed value with a reference voltage. Referring to FIG. 1, three sense amplifiers having corresponding provisional voltages set to 160, 162, and 164 are required to determine values stored in the cells 110, 120, 130, and 140. 6, only a sense amplifier is needed for reading the current write group for a given read operation. To read the next write group, the same 2 m -1 sense amplifiers can be used if the reference voltage of each sense amplifier is adjusted to 2 m levels. Thus, the reference voltages of all 2 m -1 all sense amplifiers can be shifted to correspond to the reference voltages required for reading the m bit values stored in the next write group.

일실시예에서는, 2m개의 인접 레벨의 제1그룹에 저장되어 있는 m 비트 값을 판독하기 위해서, 프로그래밍이 가능한 2m-1 개의 센스 증폭기가 사용된다. 2m개의 인접 레벨의 제2그룹이 저장되어 있는 m 비트 값을 판독하기 위해서, 프로그래밍이 가능한 2m-1개의 동일한 센스 증폭기가 다시 프로그래밍된다. 주어진 센스 증폭기에 대해서 프로그래밍된 상기 기준 전압 레벨은 프로그래밍이 가능한 값으로부터 결정된다. 일실시예에서, 프로그래밍이 가능한 상기 값은 상기 그룹 지시기이다. 따라서, 상기 그룹 지시기가 증가 또는 감소될 때마다, 주어진 센스 증폭기의 기준 전압이 2m개의 레벨로 조절된다.In one embodiment, a programmable 2 m -1 sense amplifier is used to read the m bit values stored in the first group of 2 m adjacent levels. In order to read the m bit value in which a second group of 2 m adjacent levels is stored, a programmable 2 m -1 identical sense amplifier is reprogrammed. The reference voltage level programmed for a given sense amplifier is determined from a programmable value. In one embodiment, the programmable value is the group indicator. Thus, each time the group indicator is increased or decreased, the reference voltage of a given sense amplifier is adjusted to 2 m levels.

따라서, 다중 레벨 메모리 셀로부터 m 비트 값을 판독하는 또 다른 방법이 설명된다. 상기 메모리 셀의 2m개의 인접 레벨의 제1그룹이 식별된다. 상기 제1그룹은 제1세트의 2m-1개의 센스 증폭기를 사용하여 감지된다. 다음에, 상기 메모리 셀의 2m개의 인접 레벨의 제2그룹이 식별된다. 상기 제2그룹은 동일한 상기 제1세트의 2m-1개의 센스 증폭기를 사용하여 감지된다. 일실시예에서, 상기 2m-1개의 센스 증폭기는 상기 그룹 지시기에 따라 프로그래밍되며, 이때, 상기 그룹 지시기가 증가 또는 감소될 때마다 각각의 센스 증폭기의 기준 전압(또는 기준 레벨)이 2m개의 레벨로 조절된다. 이와 같이, 일실시예에서, 상기 그룹 지시기가 증가되면 각각의 2m-1개의 센스 증폭기의 기준 레벨이 2m개의 레벨 증가된다. 이와 유사하게, 상기 그룹 지시기가 감소되면, 각각의 2m-1개의 센스 증폭기의 기준 레벨은 2m개의 레벨로 감소된다.Thus, another method of reading m bit values from a multilevel memory cell is described. A first group of 2 m adjacent levels of the memory cell is identified. The first group is sensed using a first set of 2 m -1 sense amplifiers. Next, a second group of 2 m adjacent levels of the memory cells is identified. The second group is sensed using the same first set of 2 m -1 sense amplifiers. In one embodiment, the 2 m -1 sense amplifiers are programmed according to the group indicator, wherein each time the group indicator is increased or decreased, the reference voltage (or reference level) of each sense amplifier is 2 m. The level is adjusted. As such, in one embodiment, increasing the group indicator increases the reference level of each 2 m -1 sense amplifier by 2 m levels. Similarly, if the group indicator is reduced, the reference level of each 2 m -1 sense amplifier is reduced to 2 m levels.

위에서 제시한 예에서는 플래시 메모리가 사용되었지만, 이들 방법은 후속되는 프로그래밍 동작 동안의 전하의 연속적인 저장 및 연속적으로 변동가능한 전하량(즉, 포지티브 또는 네가티브 전하 변동)의 감지를 허용하는 어떤 메모리에도 적용될 수 있다. 이러한 메모리의 예로는 비다중 레벨 플래시 메모리 셀(non-MLC flash), 전기적으로 삭제가능하고 프로그래밍가능한 판독 전용 메모리(EEPROM), 삭제가능하고 프로그래밍가능한 판독 전용 메모리(EPROM), 판독 전용 메모리(ROM), 및 위에서 설명한 다중 레벨 플래시(MLC 플래시) 셀을 들 수 있다.Although flash memories have been used in the examples presented above, these methods can be applied to any memory that allows for the continuous storage of charges during subsequent programming operations and the detection of continuously variable charge amounts (ie, positive or negative charge variations). have. Examples of such memories include non-MLC flash, electrically erasable and programmable read only memory (EEPROM), erasable and programmable read only memory (EPROM), read only memory (ROM). , And the multi-level flash (MLC flash) cells described above.

이상의 상세한 설명에서, 본 발명은 특정 실시예를 참조하여 설명되었다. 청구의 범위에 설명되어 있는 본 발명의 보다 넓은 취지 및 범위로부터 이탈하지 않고 각종 수정 및 변형이 행해질 수도 있다. 따라서, 명세서 및 도면은 제한적인 의미보다는 예시적인 것으로 간주되어야 한다.In the foregoing detailed description, the invention has been described with reference to specific embodiments. Various modifications and variations may be made without departing from the broader spirit and scope of the invention described in the claims. Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense.

Claims (15)

비휘발성 메모리 다중레벨 셀의 레벨의 제1그룹에 m 비트를 저장하는 단계;Storing m bits in a first group of levels of a nonvolatile memory multilevel cell; 상기 비휘발성 메모리 다중레벨 셀을 삭제하지 않고, 상기 비휘발성 메모리 다중레벨 셀의 레벨의 제2그룹에 m 대체 비트를 저장하는 단계; 및Storing m replacement bits in a second group of levels of the nonvolatile memory multilevel cell without deleting the nonvolatile memory multilevel cell; And 레벨의 제2그룹을 식별하기 위해 그룹 지시기를 조정하는 단계를 포함하고, m은 2 보다 크거나 같은 정수이고, 비휘발성 메모리 다중레벨 셀은 적어도 n개 레벨을 가지고, n은 2 보다 크거나 같은 정수이고, n개 레벨은 k개 그룹을 포함하고, 이 그룹의 각각은 n개 레벨중 j개 레벨을 포함하고, k는 2 보다 크거나 같은 정수인 것을 특징으로 하는 비휘발성 메모리 다중레벨 셀 기록 방법.Adjusting a group indicator to identify a second group of levels, where m is an integer greater than or equal to 2, the nonvolatile memory multilevel cell has at least n levels, and n is greater than or equal to 2 A non-volatile memory multilevel cell writing method, wherein n is an integer, and n levels contain k groups, each of which contains j levels of n levels, and k is an integer greater than or equal to two. . 제 1 항에 있어서, 상기 비휘발성 메모리 다중레벨 셀은 플래시 메모리 셀인 것을 특징으로 하는 비휘발성 메모리 다중레벨 셀 기록 방법.The method of claim 1, wherein the nonvolatile memory multilevel cell is a flash memory cell. 제 1 항에 있어서, j ≥ 2m인 것을 특징으로 하는 비휘발성 메모리 다중레벨 셀 기록 방법.2. The method of claim 1, wherein j &gt; 2 m . 제 3 항에 있어서, j = 2m인 것을 특징으로 하는 비휘발성 메모리 다중레벨 셀 기록 방법.4. The method of claim 3, wherein j = 2 m . 제 1 항에 있어서,인 것을 특징으로 하는 비휘발성 메모리 다중레벨 셀 기록 방법.The method of claim 1, And a nonvolatile memory multilevel cell writing method. 제 1 항에 있어서, 상기 레벨의 제1그룹 및 제2그룹은 공통적으로 적어도 하나의 레벨을 포함하도록 중첩하는 것을 특징으로 하는 비휘발성 메모리 다중레벨 셀 기록 방법.The method of claim 1, wherein the first group and the second group of levels overlap to include at least one level in common. 제 1 항에 있어서, 레벨의 제2그룹에 m 대체 비트를 저장하는 상기 단계 전에 상기 레벨의 제1그룹에 소정의 값을 저장하는 단계를 더 포함하고 있는 것을 특징으로 하는 비휘발성 메모리 다중레벨 셀 기록 방법.2. The non-volatile memory multilevel cell of claim 1, further comprising storing a predetermined value in the first group of levels before the step of storing the m replacement bits in a second group of levels. Recording method. 그룹 지시기에 저장된 값을 판독하는 단계;Reading a value stored in the group indicator; 그룹 지시기에 저장된 값에 기초하여 n레벨 비휘발성 메모리 셀의 인접한 레벨의 하나의 그룹을 식별하는 단계; 및Identifying one group of adjacent levels of the n-level nonvolatile memory cell based on the value stored in the group indicator; And m 비트 값을 판독하기 위해서 상기 하나의 그룹을 감지하는 단계를 포함하고, n은 2 보다 크거나 같은 것을 특징으로 하는 비휘발성 메모리 셀 판독 방법.sensing said one group to read an m bit value, wherein n is greater than or equal to two. 제 7 항에 있어서, 상기 비휘발성 메모리 셀은 플래시 메모리 셀인 것을 특징으로 하는 비휘발성 메모리 셀 판독 방법.8. The method of claim 7, wherein said nonvolatile memory cell is a flash memory cell. 그룹 지시기에 저장된 값을 판독하는 단계;Reading a value stored in the group indicator; 그룹 지시기에 저장된 값에 기초하여 메모리 셀의 2m개의 인접 레벨의 제1그룹을 식별하는 단계;Identifying a first group of 2 m adjacent levels of memory cells based on the value stored in the group indicator; m 비트 값을 판독하기 위해서 제1 세트의 2m-1 센스 증폭기를 사용하여 상기 제1 그룹을 감지하는 단계;sensing the first group using a first set of 2 m −1 sense amplifiers to read m bit values; 그룹 지시기에 저장된 값에 기초하여 메모리 셀의 2m개의 인접 레벨의 제2그룹을 식별하는 단계; 및Identifying a second group of 2 m contiguous levels of memory cells based on values stored in the group indicator; And 또다른 m 비트 값을 판독하기 위해서 상기 제1 세트의 2m-1 센스 증폭기와 동일한 제1 세트의 2m-1 센스 증폭기를 사용하여 상기 제2그룹을 감지하는 단계를 포함하고, m은 2 보다 크거나 같은 것을 특징으로 하는 메모리 셀 판독 방법.Sensing the second group using a first set of 2 m −1 sense amplifiers equal to the first set of 2 m −1 sense amplifiers to read another m bit value, wherein m is 2 A method of reading a memory cell, characterized by being greater than or equal to. 제 10 항에 있어서, 상기 그룹 지시기에 따라 상기 2m-1개의 센스 증폭기의 각각의 기준 레벨을 설정하는 단계를 더 포함하고 있는 것을 특징으로 하는 메모리 셀 판독 방법.11. The method of claim 10, further comprising setting each reference level of the 2 m -1 sense amplifiers according to the group indicator. 제 11 항에 있어서, 상기 그룹 지시기가 증가되면, 상기 2m-1개의 센스 증폭기의 각각의 기준 레벨을 2m레벨로 증가시키는 단계를 더 포함하고 있는 것을 특징으로 하는 메모리 셀 판독 방법.12. The method of claim 11, further comprising increasing each reference level of the 2 m -1 sense amplifiers to a 2 m level when the group indicator is increased. 제 11 항에 있어서, 상기 그룹 지시기가 감소되면, 상기 2m-1개의 센스 증폭기의 각각의 기준 레벨을 2m레벨로 감소시키는 단계를 더 포함하고 있는 것을 특징으로 하는 메모리 셀 판독 방법.12. The method of claim 11, further comprising reducing the reference level of each of the 2 m -1 sense amplifiers to a 2 m level when the group indicator is reduced. a) 메모리 셀의 레벨의 제1그룹에 m 비트를 저장하는 단계;a) storing m bits in a first group of levels of memory cells; b) 상기 메모리 셀의 레벨의 후속하는 그룹을 식별하기 위해서 그룹 지시기를 조절하는 단계;b) adjusting a group indicator to identify a subsequent group of levels of the memory cell; c) 상기 메모리 셀을 삭제하지 않고, 상기 레벨의 후속하는 그룹에 후속하는 m 대체 비트를 저장하는 단계; 및c) storing the m replacement bits following the subsequent group of levels without deleting the memory cells; And d) 단계 b)와 c)를 반복하는 단계를 포함하고, m은 2 보다 크거나 같은 것을 특징으로 하는 메모리 셀 기록 방법.d) repeating steps b) and c), wherein m is greater than or equal to two. 제 14 항에 있어서,The method of claim 14, e) 상기 메모리 셀을 삭제하는 단계; 및e) deleting the memory cell; And f) 상기 그룹 지시기를 초기화하는 단계를 더 포함하고 있는 것을 특징으로 하는 메모리 셀 기록 방법.f) initializing the group indicator.
KR1019980702312A 1995-09-29 1996-09-24 Multiple writes per a single erase for a nonvolatile memory KR100297465B1 (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US08/537132 1995-09-29
US08/537,132 US5815434A (en) 1995-09-29 1995-09-29 Multiple writes per a single erase for a nonvolatile memory
US8/537132 1995-09-29
US08/685,939 US5936884A (en) 1995-09-29 1996-07-22 Multiple writes per a single erase for a nonvolatile memory
US08/685,939 1996-07-22
US8/685939 1996-07-22
US8/685,939 1996-07-22
PCT/US1996/015259 WO1997012368A1 (en) 1995-09-29 1996-09-24 Multiple writes per a single erase for a nonvolatile memory

Publications (2)

Publication Number Publication Date
KR19990063842A KR19990063842A (en) 1999-07-26
KR100297465B1 true KR100297465B1 (en) 2001-08-07

Family

ID=24141356

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1019980702312A KR100297465B1 (en) 1995-09-29 1996-09-24 Multiple writes per a single erase for a nonvolatile memory
KR1019980702309A KR100300438B1 (en) 1995-09-29 1996-09-24 Multiple writes per a single erase for a nonvolatile memory

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1019980702309A KR100300438B1 (en) 1995-09-29 1996-09-24 Multiple writes per a single erase for a nonvolatile memory

Country Status (10)

Country Link
US (2) US5815434A (en)
EP (1) EP0880782B1 (en)
KR (2) KR100297465B1 (en)
CN (1) CN1198241A (en)
AU (1) AU7165596A (en)
DE (1) DE69625520T2 (en)
HK (1) HK1016737A1 (en)
IL (1) IL123687A (en)
TW (2) TW366495B (en)
WO (1) WO1997012367A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8493782B2 (en) 2008-10-28 2013-07-23 Samsung Electronics Co., Ltd. Memory device and program method thereof

Families Citing this family (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
JPH1125681A (en) * 1997-06-27 1999-01-29 Nec Corp Non-volatile semiconductor storage device
US6260103B1 (en) * 1998-01-05 2001-07-10 Intel Corporation Read-while-write memory including fewer verify sense amplifiers than read sense amplifiers
US6088264A (en) * 1998-01-05 2000-07-11 Intel Corporation Flash memory partitioning for read-while-write operation
US6182189B1 (en) 1998-01-05 2001-01-30 Intel Corporation Method and apparatus for placing a memory in a read-while-write mode
JP3578661B2 (en) * 1999-05-07 2004-10-20 Necエレクトロニクス株式会社 Nonvolatile semiconductor memory device
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
DE60102203D1 (en) 2000-12-15 2004-04-08 St Microelectronics Srl Programming method for a multi-level memory cell
EP1215679B1 (en) * 2000-12-15 2004-03-03 STMicroelectronics S.r.l. Programming method for a multilevel memory cell
SG111919A1 (en) * 2001-08-29 2005-06-29 Micron Technology Inc Packaged microelectronic devices and methods of forming same
US6836432B1 (en) * 2002-02-11 2004-12-28 Advanced Micro Devices, Inc. Partial page programming of multi level flash
US6747893B2 (en) 2002-03-14 2004-06-08 Intel Corporation Storing data in non-volatile memory devices
JP2003280979A (en) * 2002-03-20 2003-10-03 Toshiba Corp Information storage device
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7716413B2 (en) * 2004-02-15 2010-05-11 Sandisk Il Ltd. Method of making a multi-bit-cell flash memory
US8019928B2 (en) * 2004-02-15 2011-09-13 Sandisk Il Ltd. Method of managing a multi-bit-cell flash memory
US7748012B2 (en) * 2005-05-09 2010-06-29 Searete Llc Method of manufacturing a limited use data storing device
US7907486B2 (en) * 2006-06-20 2011-03-15 The Invention Science Fund I, Llc Rotation responsive disk activation and deactivation mechanisms
US7694316B2 (en) * 2005-05-09 2010-04-06 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US8099608B2 (en) 2005-05-09 2012-01-17 The Invention Science Fund I, Llc Limited use data storing device
US7770028B2 (en) * 2005-09-09 2010-08-03 Invention Science Fund 1, Llc Limited use data storing device
US8121016B2 (en) 2005-05-09 2012-02-21 The Invention Science Fund I, Llc Rotation responsive disk activation and deactivation mechanisms
US8220014B2 (en) * 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Modifiable memory devices having limited expected lifetime
US8140745B2 (en) 2005-09-09 2012-03-20 The Invention Science Fund I, Llc Data retrieval methods
US8462605B2 (en) * 2005-05-09 2013-06-11 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device
US7668069B2 (en) * 2005-05-09 2010-02-23 Searete Llc Limited use memory device with associated information
US8218262B2 (en) * 2005-05-09 2012-07-10 The Invention Science Fund I, Llc Method of manufacturing a limited use data storing device including structured data and primary and secondary read-support information
US9396752B2 (en) 2005-08-05 2016-07-19 Searete Llc Memory device activation and deactivation
US7916615B2 (en) 2005-06-09 2011-03-29 The Invention Science Fund I, Llc Method and system for rotational control of data storage devices
US7916592B2 (en) * 2005-05-09 2011-03-29 The Invention Science Fund I, Llc Fluid mediated disk activation and deactivation mechanisms
US7596073B2 (en) * 2005-05-09 2009-09-29 Searete Llc Method and system for fluid mediated disk activation and deactivation
US20110181981A1 (en) * 2005-05-09 2011-07-28 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Method and system for rotational control of data storage devices
US7565596B2 (en) 2005-09-09 2009-07-21 Searete Llc Data recovery systems
US8159925B2 (en) 2005-08-05 2012-04-17 The Invention Science Fund I, Llc Limited use memory device with associated information
US7668068B2 (en) 2005-06-09 2010-02-23 Searete Llc Rotation responsive disk activation and deactivation mechanisms
US20070061499A1 (en) * 2005-09-09 2007-03-15 Rudelic John C Methods and apparatus for providing a virtual flash device
US8264928B2 (en) * 2006-06-19 2012-09-11 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US8432777B2 (en) * 2006-06-19 2013-04-30 The Invention Science Fund I, Llc Method and system for fluid mediated disk activation and deactivation
US7850468B2 (en) 2007-06-28 2010-12-14 Super Talent Electronics, Inc. Lipstick-type USB device
US8116083B2 (en) * 2007-12-04 2012-02-14 Super Talent Electronics, Inc. Lipstick-type USB device with tubular housing
DE102007059142B3 (en) * 2007-12-07 2008-10-30 Giesecke & Devrient Gmbh Method for storing a date in a memory device and memory device
US20090150894A1 (en) * 2007-12-10 2009-06-11 Ming Huang Nonvolatile memory (NVM) based solid-state disk (SSD) system for scaling and quality of service (QoS) by parallelizing command execution
US8762620B2 (en) 2007-12-27 2014-06-24 Sandisk Enterprise Ip Llc Multiprocessor storage controller
US8111548B2 (en) * 2008-07-21 2012-02-07 Sandisk Technologies Inc. Programming non-volatile storage using binary and multi-state programming processes
KR101625641B1 (en) 2010-04-08 2016-05-30 삼성전자주식회사 Non volatile memory device, operation method thereof, and devices having the nonvolatile memory device
KR101438072B1 (en) 2010-04-15 2014-09-03 라모트 앳 텔-아비브 유니버시티 리미티드 Multiple programming of flash memory without erase
US8917559B2 (en) 2012-04-04 2014-12-23 Sandisk Technologies Inc. Multiple write operations without intervening erase
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US8913428B2 (en) 2013-01-25 2014-12-16 Sandisk Technologies Inc. Programming non-volatile storage system with multiple memory die
US9026757B2 (en) 2013-01-25 2015-05-05 Sandisk Technologies Inc. Non-volatile memory programming data preservation
US9117530B2 (en) 2013-03-14 2015-08-25 Sandisk Technologies Inc. Preserving data from adjacent word lines while programming binary non-volatile storage elements
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9009568B2 (en) 2013-08-09 2015-04-14 Sandisk Technologies Inc. Sensing parameter management in non-volatile memory storage system to compensate for broken word lines
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9361221B1 (en) * 2013-08-26 2016-06-07 Sandisk Technologies Inc. Write amplification reduction through reliable writes during garbage collection
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
KR20160052278A (en) * 2014-11-04 2016-05-12 에스케이하이닉스 주식회사 Semiconductor device and operating method thereof
US9734912B2 (en) * 2015-11-25 2017-08-15 Macronix International Co., Ltd. Reprogramming single bit memory cells without intervening erasure
US9818476B1 (en) 2016-07-25 2017-11-14 Samsung Electronics Co., Ltd. Reprogram without erase using capacity in multi-level NAND cells
US9627049B1 (en) 2016-07-25 2017-04-18 Samsung Electronics Co., Ltd. Reprogram without erase using capacity in multi-level NAND cells
US9947389B1 (en) * 2016-11-30 2018-04-17 Taiwan Semiconductor Manufacturing Co., Ltd. Single ended memory device
US10360973B2 (en) * 2016-12-23 2019-07-23 Western Digital Technologies, Inc. Data mapping enabling fast read multi-level 3D NAND to improve lifetime capacity
US10261897B2 (en) 2017-01-20 2019-04-16 Samsung Electronics Co., Ltd. Tail latency aware foreground garbage collection algorithm
CN110211622A (en) * 2019-06-14 2019-09-06 山东大学 Improve the data erasing-writing method of multivalue NAND-flash memory data storage total amount
US11482292B1 (en) 2021-06-23 2022-10-25 Western Digital Technologies, Inc. Non-volatile storage with processive writes

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4202044A (en) * 1978-06-13 1980-05-06 International Business Machines Corporation Quaternary FET read only memory
US4287570A (en) * 1979-06-01 1981-09-01 Intel Corporation Multiple bit read-only memory cell and its sense amplifier
US4415992A (en) * 1981-02-25 1983-11-15 Motorola, Inc. Memory system having memory cells capable of storing more than two states
US4388702A (en) * 1981-08-21 1983-06-14 Mostek Corporation Multi-bit read only memory circuit
JPS5949022A (en) * 1982-09-13 1984-03-21 Toshiba Corp Multi-value logical circuit
JPS6013398A (en) * 1983-07-04 1985-01-23 Hitachi Ltd Semiconductor multi-value storage device
EP0136119B1 (en) * 1983-09-16 1988-06-29 Fujitsu Limited Plural-bit-per-cell read-only memory
US4771404A (en) * 1984-09-05 1988-09-13 Nippon Telegraph And Telephone Corporation Memory device employing multilevel storage circuits
US4701884A (en) * 1985-08-16 1987-10-20 Hitachi, Ltd. Semiconductor memory for serial data access
US5012448A (en) * 1985-12-13 1991-04-30 Ricoh Company, Ltd. Sense amplifier for a ROM having a multilevel memory cell
FR2630573B1 (en) * 1988-04-26 1990-07-13 Sgs Thomson Microelectronics ELECTRICALLY PROGRAMMABLE MEMORY WITH MULTIPLE INFORMATION BITS PER CELL
US5043940A (en) * 1988-06-08 1991-08-27 Eliyahou Harari Flash EEPROM memory systems having multistate storage cells
US5293560A (en) * 1988-06-08 1994-03-08 Eliyahou Harari Multi-state flash EEPROM system using incremental programing and erasing methods
JPH07105146B2 (en) * 1988-07-29 1995-11-13 三菱電機株式会社 Non-volatile storage device
EP0935255A2 (en) * 1989-04-13 1999-08-11 SanDisk Corporation Flash EEPROM system
US5172338B1 (en) * 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US5163021A (en) * 1989-04-13 1992-11-10 Sundisk Corporation Multi-state EEprom read and write circuits and techniques
JP2573416B2 (en) * 1990-11-28 1997-01-22 株式会社東芝 Semiconductor storage device
KR0169267B1 (en) * 1993-09-21 1999-02-01 사토 후미오 Nonvolatile semiconductor memory device
US5422845A (en) * 1993-09-30 1995-06-06 Intel Corporation Method and device for improved programming threshold voltage distribution in electrically programmable read only memory array
JP3205658B2 (en) * 1993-12-28 2001-09-04 新日本製鐵株式会社 Reading method of semiconductor memory device
US5440505A (en) * 1994-01-21 1995-08-08 Intel Corporation Method and circuitry for storing discrete amounts of charge in a single memory element
US5497119A (en) * 1994-06-01 1996-03-05 Intel Corporation High precision voltage regulation circuit for programming multilevel flash memory
US5450363A (en) * 1994-06-02 1995-09-12 Intel Corporation Gray coding for a multilevel cell memory system
US5539690A (en) * 1994-06-02 1996-07-23 Intel Corporation Write verify schemes for flash memory with multilevel cells
US5515317A (en) * 1994-06-02 1996-05-07 Intel Corporation Addressing modes for a dynamic single bit per cell to multiple bit per cell memory
US5487033A (en) * 1994-06-28 1996-01-23 Intel Corporation Structure and method for low current programming of flash EEPROMS
US5594691A (en) * 1995-02-15 1997-01-14 Intel Corporation Address transition detection sensing interface for flash memory having multi-bit cells

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8493782B2 (en) 2008-10-28 2013-07-23 Samsung Electronics Co., Ltd. Memory device and program method thereof

Also Published As

Publication number Publication date
AU7165596A (en) 1997-04-17
DE69625520D1 (en) 2003-01-30
TW310433B (en) 1997-07-11
HK1016737A1 (en) 1999-11-05
KR100300438B1 (en) 2001-09-06
EP0880782B1 (en) 2002-12-18
US5815434A (en) 1998-09-29
DE69625520T2 (en) 2003-11-20
IL123687A (en) 2003-05-29
EP0880782A1 (en) 1998-12-02
KR19990063842A (en) 1999-07-26
IL123687A0 (en) 1998-10-30
CN1198241A (en) 1998-11-04
WO1997012367A1 (en) 1997-04-03
TW366495B (en) 1999-08-11
KR19990063839A (en) 1999-07-26
US5936884A (en) 1999-08-10
EP0880782A4 (en) 1999-05-26

Similar Documents

Publication Publication Date Title
KR100297465B1 (en) Multiple writes per a single erase for a nonvolatile memory
US7787307B2 (en) Memory cell shift estimation method and apparatus
US8792272B2 (en) Implementing enhanced data partial-erase for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US9208871B2 (en) Implementing enhanced data read for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
US6297988B1 (en) Mode indicator for multi-level memory
US9263142B2 (en) Programming a memory cell using a dual polarity charge pump
US8713380B2 (en) Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
KR100963707B1 (en) Method of managing a multi-bit-cell flash memory
US6744670B2 (en) Non-volatile semiconductor memory device
US7080192B1 (en) File storage and erasure in flash memory
US8432743B2 (en) Method and system for programming non-volatile memory cells based on programming of proximate memory cells
US8699266B2 (en) Implementing enhanced data write for multi-level cell (MLC) memory using threshold voltage-drift or resistance drift tolerant moving baseline memory data encoding
JP3602294B2 (en) Semiconductor memory and information storage device
US8203886B2 (en) Memory device reference cell programming method and apparatus
EP0852798B1 (en) Multiple writes per a single erase for a nonvolatile memory
JP2021026448A (en) Storage part system, storage part controller, and storage part control method
US8717827B1 (en) Method for the permanently reliable programming of multilevel cells in flash memories
US6377488B1 (en) Fast-erase memory devices and method for reducing erasing time in a memory device
US9576649B2 (en) Charge loss compensation through augmentation of accumulated charge in a memory cell

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20090518

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee