KR20080111458A - Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory - Google Patents

Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory Download PDF

Info

Publication number
KR20080111458A
KR20080111458A KR1020087023382A KR20087023382A KR20080111458A KR 20080111458 A KR20080111458 A KR 20080111458A KR 1020087023382 A KR1020087023382 A KR 1020087023382A KR 20087023382 A KR20087023382 A KR 20087023382A KR 20080111458 A KR20080111458 A KR 20080111458A
Authority
KR
South Korea
Prior art keywords
nonvolatile storage
storage element
state
data
programming
Prior art date
Application number
KR1020087023382A
Other languages
Korean (ko)
Other versions
KR101020812B1 (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
Priority claimed from US11/425,111 external-priority patent/US7606084B2/en
Priority claimed from US11/425,116 external-priority patent/US7352628B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20080111458A publication Critical patent/KR20080111458A/en
Application granted granted Critical
Publication of KR101020812B1 publication Critical patent/KR101020812B1/en

Links

Images

Classifications

    • 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/26Sensing or reading circuits; Data output 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • 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
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • 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/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • 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/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • 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/563Multilevel memory reading aspects
    • G11C2211/5634Reference cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/14Circuits or methods to write a page or sector of information simultaneously into a nonvolatile memory, typically a complete row or word line in flash memory

Abstract

Non-volatile memory read operations compensate for floating gate coupling when the apparent threshold voltage of a memory cell may have shifted. A memory cell of interest can be read using a reference value based on a level of charge read from a neighboring memory cell. Misreading the neighboring cell may have greater effects in particular programming methodologies, and more specifically, when reading the neighboring cell for particular states or charge levels in those methodologies. In one embodiment, memory cells are programmed to create a wider margin between particular states where misreading a neighboring cell is more detrimental. Further, memory cells are read in one embodiment by compensating for floating gate coupling based on the state of a neighboring cell when reading at certain reference levels but not when reading at other reference levels, such as those where a wider margin has been created. ® KIPO & WIPO 2009

Description

비휘발성 메모리에서 개선된 판독 동작을 위해 선택 상태에서 보상을 사용하여 감지 및 다른 크기의 마진 프로그래밍{PROGRAMMING DEFFERENTLY SIZED MARGINS AND SENSING WITH COMPENSATIONS AT SELECT STATES FOR IMPROVED READ OPERATIONS IN NON-VOLATILE MEMORY}PROGRAMMING DEFFERENTLY SIZED MARGINS AND SENSING WITH COMPENSATIONS AT SELECT STATES FOR IMPROVED READ OPERATIONS IN NON-VOLATILE MEMORY}

본 발명은 비휘발성 메모리를 프로그래밍하는 것에 관한 것이다.The present invention relates to programming a nonvolatile memory.

반도체 메모리 디바이스는 다양한 전자 디바이스에서 점점 더 많이 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 셀률러 전화기, 디지털 카메라, 개인 휴대용 정보 단말기(personal digital assistants), 모바일 컴퓨팅 디바이스(mobile computing devices), 비이동형 컴퓨팅 디바이스(non-mobile computing devices ), 및 다른 디바이스들에서 사용된다. 전기적으로 소거가능한 프로그래밍가능 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory, EEPROM)(플래시 EEPROM를 포함함) 및 전기적으로 프로그래밍가능한 판독 전용 메모리(Electronically Programmable Read Only Memory, EPROM)가 가장 널리 사용되는 비휘발성 반도체 메모리들 중의 하나이다.Semiconductor memory devices are increasingly used in various electronic devices. For example, nonvolatile semiconductor memory may include cellular telephones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices, and other devices. Used in the field. Electrically erasable programmable read only memory (EPROM) (including flash EEPROM) and electrically programmable read only memory (EPROM) are the most widely used nonvolatile One of the semiconductor memories.

플래시 메모리 시스템의 일 예는 NAND 구조를 사용하며, 상기 NAND 구조는 두 개의 선택 게이트 사이에 샌드위치(sandwich)되어 있고 직렬 연결된 복수의 트 랜지스터들을 배치하는 구조를 포함한다. 직렬로 연결된 트랜지스터들, 그리고 선택 게이트는 NAND 스트링(NAND string)으로 언급된다. 도 1은 하나의 NAND 스트링을 나타내는 상부도이다. 도 2는 그 등가 회로이다. 도 1 및 도 2에 도시된 NAND 스트링은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 샌드위치되어 있고 직렬 연결된 네 개의 트랜지스터들(100, 102, 104 및 106)을 포함한다. 선택 게이트(120)는 NAND 스트링을 비트 라인(126)에 연결한다. 선택 게이트(122)는 NAND 스트링을 소스 라인(128)에 연결한다. 선택 게이트(120)는 선택 라인(SGD)을 통해 제어 게이트(120G)에 적절한 전압을 인가함으로써 제어된다. 선택 게이트(122)는 선택 라인(SGS)을 통해 제어 게이트(122G)에 적절한 전압을 인가함으로써 제어된다. 트랜지스터들(100, 102, 104 및 106) 각각은 메모리 셀의 게이트 요소를 형성하는 제어 게이트 및 플로팅 게이트를 포함한다. 예를 들어, 트랜지스터(100)는 제어 게이트(100CG) 및 플로팅 게이트(100FG)를 포함한다. 트랜지스터(102)는 제어 게이트(102CG) 및 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 제어 게이트(104CG) 및 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 제어 게이트(106CG) 및 플로팅 게이트(106FG)를 포함한다. 제어 게이트(100CG)는 워드 라인(WL3)에 연결되고, 제어 게이트(102CG)는 워드 라인(WL2)에 연결되고, 제어 게이트(104CG)는 워드 라인(WL1)에 연결되고, 그리고 제어 게이트(106CG)는 워드 라인(WL0)에 연결된다.An example of a flash memory system uses a NAND structure, which includes a structure sandwiching a plurality of transistors sandwiched between two select gates and connected in series. The transistors connected in series, and the select gate, are referred to as a NAND string. 1 is a top view illustrating one NAND string. 2 is an equivalent circuit thereof. 1 and 2 include four transistors 100, 102, 104, and 106 sandwiched between a first select gate 120 and a second select gate 122 and connected in series. Select gate 120 connects the NAND string to bit line 126. Select gate 122 connects the NAND string to source line 128. The select gate 120 is controlled by applying an appropriate voltage to the control gate 120G via the select line SGD. The select gate 122 is controlled by applying an appropriate voltage to the control gate 122G through the select line SGS. Each of the transistors 100, 102, 104, and 106 includes a control gate and a floating gate that form the gate element of the memory cell. For example, transistor 100 includes control gate 100CG and floating gate 100FG. Transistor 102 includes control gate 102CG and floating gate 102FG. Transistor 104 includes control gate 104CG and floating gate 104FG. Transistor 106 includes control gate 106CG and floating gate 106FG. Control gate 100CG is connected to word line WL3, control gate 102CG is connected to word line WL2, control gate 104CG is connected to word line WL1, and control gate 106CG ) Is connected to the word line WL0.

유의할 것으로, 비록 도 1 및 도 2가 NAND 스트링 내의 네 개의 메모리 셀을 보여주고 있지만, 네 개의 트랜지스터들을 사용하는 것은 단지 예로서 제공되는 것 이다. NAND 스트링은 네 개보다 적은 메모리 셀을 가질 수 있거나 혹은 네 개보다 많은 메모리 셀을 가질 수 있다. 예를 들어, 일부 NAND 스트링들은 여덟 개의 메모리 셀, 16개의 메모리 셀, 32개의 메모리 셀, 등을 포함할 수 있다. 본 명세서에서의 설명이 NAND 스트링에서의 임의의 특정 개수의 메모리 셀에만 한정되는 것은 아니다.Note that although FIGS. 1 and 2 show four memory cells in a NAND string, the use of four transistors is provided only as an example. A NAND string can have fewer than four memory cells or can have more than four memory cells. For example, some NAND strings may include eight memory cells, sixteen memory cells, thirty-two memory cells, and the like. The description herein is not limited to any particular number of memory cells in the NAND string.

NAND 구조를 사용하는 플래시 메모리 시스템에 대한 전형적인 아키텍처는 수 개의 NAND 스트링을 포함할 수 있다. 예를 들어, 도 3은 많은 NAND 스트링을 갖는 메모리 어레이의 세 개의 NAND 스트링(202, 204 및 206)을 보여준다. 도 3의 NAND 스트링들 각각은 두 개의 선택 트랜지스터 또는 게이트 및 네 개의 메모리 셀들을 포함한다. 예를 들어, NAND 스트링(202)은 선택 트랜지스터(220 및 230) 및 메모리 셀(222, 224, 226 및 228)을 포함한다. NAND 스트링(204)은 선택 트랜지스터(240 및 250) 및 메모리 셀(242, 244, 246 및 248)을 포함한다. 각각의 스트링은 하나의 선택 게이트(예를 들어, 선택 게이트(230) 및 선택 게이트(250))에 의해 소스 라인에 연결된다. 선택 라인(SGS)은 소스측 선택 게이트를 제어하기 위해 사용된다. 다양한 NAND 스트링이 선택 라인(SGD)에 의해 제어되는 선택 게이트(220, 240, 등)에 의해 각각의 비트 라인에 연결된다. 다른 실시예에서, 선택 라인은 반드시 공통적일 필요는 없다. 워드 라인(WL3)은 메모리 셀(222) 및 메모리 셀(242)에 대한 제어 게이트에 연결된다. 워드 라인(WL2)은 메모리 셀(224) 및 메모리 셀(244)에 대한 제어 게이트에 연결된다. 워드 라인(WL1)은 메모리 셀(226) 및 메모리 셀(246)에 대한 제어 게이트에 연결된다. 워드 라인(WL0)은 메모리 셀(228) 및 메모리 셀(248)에 대한 제어 게이트에 연결된다. 보이는 바와 같이, 비트 라인 및 각각의 NAND 스트링은 메모리 셀들의 어레이의 컬럼(column)을 포함한다. 워드 라인(WL3, WL2, WLl 및 WLO)은 어레이의 로우(rows)를 포함한다. 각각의 워드 라인은 로우에서 각각의 메모리 셀의 제어 게이트들을 연결한다. 예를 들어, 워드 라인(WL2)은 메모리 셀(224, 244 및 252)에 대한 제어 게이트에 연결된다.A typical architecture for a flash memory system using a NAND structure may include several NAND strings. For example, FIG. 3 shows three NAND strings 202, 204 and 206 of a memory array with many NAND strings. Each of the NAND strings of FIG. 3 includes two select transistors or gates and four memory cells. For example, NAND string 202 includes select transistors 220 and 230 and memory cells 222, 224, 226 and 228. NAND string 204 includes select transistors 240 and 250 and memory cells 242, 244, 246 and 248. Each string is connected to the source line by one select gate (eg, select gate 230 and select gate 250). The select line SGS is used to control the source side select gate. Various NAND strings are connected to each bit line by select gates 220, 240, etc., which are controlled by select line SGD. In other embodiments, the select lines do not necessarily need to be common. The word line WL3 is connected to the control gates for the memory cell 222 and the memory cell 242. The word line WL2 is connected to the control gates for the memory cell 224 and the memory cell 244. The word line WL1 is connected to the control gates for the memory cell 226 and the memory cell 246. The word line WL0 is connected to the control gate for the memory cell 228 and the memory cell 248. As can be seen, the bit line and each NAND string comprise a column of an array of memory cells. Word lines WL3, WL2, WLl, and WLO include rows of the array. Each word line connects the control gates of each memory cell in a row. For example, the word line WL2 is connected to the control gates for the memory cells 224, 244 and 252.

NAND 타입 플래시 메모리 및 그 동작의 관련 예들은 다음과 같은 미국 특허/특허 출원, 즉, 미국 특허 번호 제5,570,315호, 미국 특허 번호 제5,774,397호, 미국 특허 번호 제6,046,935호, 미국 특허 번호 제6,456,528호 및 미국 특허 출원 일련 번호 제09/893,277호(공개 번호 US2003/0002348)에서 제공되고 있으며, 이들 문헌 모두는 참조 본 명세서에 통합된다.Related examples of NAND type flash memory and its operation are described in the following U.S. patent / patent applications: U.S. Patent No. 5,570,315, U.S. Patent No. 5,774,397, U.S. Patent No. 6,046,935, U.S. Patent No. 6,456,528 US Patent Application Serial No. 09 / 893,277 (Publication US2003 / 0002348), all of which are incorporated herein by reference.

각각의 메모리 셀이 데이터(아날로그 또는 디지털)를 저장할 수 있다. 한 비트의 디지털 데이터를 저장할 때, 전형적으로 바이너리 메모리 셀(binary memory cell)로서 언급되는 메모리 셀의 가능한 임계 전압의 범위는 논리적 데이터 "1" 및 "0"으로 할당된 두 개의 범위로 나누어진다. NAND 타입 플래시 메모리의 일 예에서, 임계 전압은 메모리 셀이 소거된 이후에 음(negative)의 값이고, 로직 "1"로 정의된다. 프로그램 동작 이후의 임계 전압은 양(positive)의 값이고 로직 "0"으로 정의된다. 임계 전압이 음의 값이고, 제어 게이트에 0 볼트를 인가함으로써 판독이 시도될 때, 메모리 셀은 로직 일이 저장되는 것을 표시하기 위해 턴온(turn on)된다. 임계 전압이 양의 값이고, 제어 게이트에 0 볼트를 인가함으로써 판독 동작이 시도될 때, 메모리 셀은 턴온되지 않고, 이것은 로직 제로(0)가 저장되어 있지 않 다는 것을 표시한다. 복수 상태 메모리 셀은 또한 복수 레벨의 정보, 예를 들어 복수 비트의 디지털 데이터를 저장할 수도 있다. 복수 레벨의 데이터를 저장하는 경우, 가능한 임계 전압의 범위는 다수의 데이터 레벨로 나누어진다. 예를 들어, 만약 네 개의 정보 레벨이 저장된다면, 데이터 값 "11", "10", "01", 및 "00"에 할당되는 네 개의 임계 전압 범위가 있을 수 있다. NAND 타입 메모리의 일 예에서, 소거 동작 이후의 임계 전압은 음의 값이고 "11"로서 정의된다. 세 개의 다른 양의 값을 갖는 임계 전압이 상태 "10", "01", 및 "00"에 대해 사용된다. 메모리 셀에 프로그래밍되는 데이터와 셀의 임계 전압 범위의 특정 관계는 메모리 셀에 대해 채택된 데이터 인코딩 방식에 따라 다르다. 예를 들어, 미국 특허 번호 제6,222,762호 및 미국 특허 출원 번호 제10/461,244호(발명의 명칭: "Tracking Cells For A Memory System", 2003.06.13. 출원)는 복수 상태 플래시 메모리 셀에 대한 다양한 데이터 인코딩 방식을 설명하고 있으며, 두 개의 문헌 모두는 그 전체가 참조로 본 명세서에 통합된다. 추가적으로, 본 개시 내용에 따른 실시예들은 두 비트보다 많은 데이터를 저장하는 메모리 셀에 적용가능하다.Each memory cell can store data (analog or digital). When storing one bit of digital data, the range of possible threshold voltages of a memory cell, typically referred to as a binary memory cell, is divided into two ranges assigned to logical data "1" and "0". In one example of a NAND type flash memory, the threshold voltage is a negative value after the memory cell is erased and defined as logic "1". The threshold voltage after the program operation is a positive value and is defined as logic "0". When the threshold voltage is negative and a read is attempted by applying 0 volts to the control gate, the memory cell is turned on to indicate that a logic one is stored. When the threshold voltage is positive and a read operation is attempted by applying 0 volts to the control gate, the memory cell is not turned on, which indicates that logic zero is not stored. Multi-state memory cells may also store multiple levels of information, such as multiple bits of digital data. When storing multiple levels of data, the range of possible threshold voltages is divided into multiple data levels. For example, if four levels of information are stored, there may be four threshold voltage ranges assigned to data values "11", "10", "01", and "00". In one example of a NAND type memory, the threshold voltage after the erase operation is negative and defined as "11". Threshold voltages with three different positive values are used for states "10", "01", and "00". The specific relationship between the data programmed into the memory cell and the threshold voltage range of the cell depends on the data encoding scheme adopted for the memory cell. For example, US Pat. No. 6,222,762 and US Pat. App. No. 10 / 461,244, entitled "Tracking Cells For A Memory System", filed Jun. 13, 2003, disclose a variety of data for multi-state flash memory cells. The encoding scheme is described, and both documents are incorporated herein by reference in their entirety. Additionally, embodiments in accordance with the present disclosure are applicable to memory cells that store more than two bits of data.

EEPROM 혹은 플래시 메모리 디바이스를 프로그래밍할 때, 전형적으로 프로그램 전압이 제어 게이트에 인가되고, 그리고 비트 라인이 접지된다. 채널로부터의 전자들이 플로팅 게이트에 주입된다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 충전되게 되고, 그리고 메모리 셀의 임계 전압이 상승되어 메모리 셀은 프로그래밍 상태 있다. 플로팅 게이트 전하 및 셀의 임계 전압은 저장된 데이터에 대응하는 특정 상태를 나타낼 수 있다. 프로그래밍에 대한 더 많은 정보는 미 국 특허 출원 제10/379,608호(발명의 명칭: "Self Boosting Technique", 2003.03.05. 출원) 및 미국 특허 출원 제10/629,068호(발명의 명칭: "Detecting Over Programmed Memory", 2003.07.29. 출원)에서 찾을 수 있으며, 이 두 개의 출원은 그 전체가 참조로 본 명세서에 통합된다.When programming an EEPROM or flash memory device, a program voltage is typically applied to the control gate and the bit line is grounded. Electrons from the channel are injected into the floating gate. When electrons accumulate in the floating gate, the floating gate becomes negatively charged, and the threshold voltage of the memory cell is raised so that the memory cell is in a programming state. The floating gate charge and the threshold voltage of the cell can represent a particular state corresponding to the stored data. For more information on programming, see US Patent Application No. 10 / 379,608, entitled "Self Boosting Technique," filed March 5, 2003., and US Patent Application No. 10 / 629,068, titled "Detecting Over." Programmed Memory ", filed Jul. 29, 2003. These two applications are incorporated herein by reference in their entirety.

플로팅 게이트 상에 저장된 겉보기 전하(apparent charge)에서의 시프트(shift)가 이웃하는 플로팅 게이트에 저장된 전하로 인한 전기장의 커플링 때문에 일어날 수 있다. 플로팅 게이트 대 플로팅 게이트 커플링 현상( floating gate to floating gate coupling phenomena)은 미국 특허 번호 제5,867,429호에 설명되어 있고, 이것은 그 전체가 참조로 본 명세서에 통합된다. 플로팅 게이트 대 플로팅 게이트 커플링 현상은, 서로 다른 시간에 프로그래밍되는 인접하는 메모리 셀들의 세트들 사이에서, 반드시 그런 것은 아니지만, 가장 명확히 일어난다. 예를 들어, 제 1 메모리 셀이 프로그래밍 되어 전하의 레벨이 데이터 세트에 대응하는 플로팅 게이트에 더해진다. 후속적으로, 하나 또는 그 이상의 인접하는 메모리 셀이 프로그래밍되어 전하의 레벨이 데이터 세트에 대응하는 플로팅 게이트에 더해진다. 하나 또는 그 이상의 인접하는 메모리 셀이 프로그래밍된 이후에, 제 1 메모리 셀로부터 판독되는 전하 레벨은 프로그래밍될 때와는 다른 것처럼 보일 수 있는 데, 왜냐하면 인접하는 메모리 셀(들) 상의 전하의 영향은 제 1 메모리 셀에 커플링되기 때문이다. 인접하는 메모리 셀들로부터의 커플링은, 선택된 메모리 셀로부터 판독되는 겉보기 전하 레벨을, 저장된 데이터의 판독시 에러를 일으킬 정도로 충분한 양만큼 시프트시킬 수 있다.A shift in the apparent charge stored on the floating gate can occur due to the coupling of the electric field due to the charge stored in the neighboring floating gate. Floating gate to floating gate coupling phenomena is described in US Pat. No. 5,867,429, which is incorporated herein by reference in its entirety. Floating gate to floating gate coupling occurs most clearly, but not necessarily, between sets of adjacent memory cells that are programmed at different times. For example, a first memory cell is programmed so that the level of charge is added to the floating gate corresponding to the data set. Subsequently, one or more adjacent memory cells are programmed so that the level of charge is added to the floating gate corresponding to the data set. After one or more contiguous memory cells are programmed, the charge level read from the first memory cell may appear different than when programmed, because the effect of the charge on adjacent memory cell (s) is 1 is coupled to the memory cell. Coupling from adjacent memory cells may shift the apparent charge level read from the selected memory cell by an amount sufficient to cause an error in reading stored data.

메모리 셀의 크기가 계속 줄어듦에 따라, 임계 전압의 자연적인 프로그래밍 분포 및 소거 분포는, 단채널 효과(short channel effects), 더 큰 옥사이드 두께/커플링 비율 변화, 및 더 많은 채널 도펀트 변동으로 인해 증가할 것으로 기대되며, 이것은 인접하는 상태들 간의 분리 가용성을 감소시킨다. 이러한 영향은 단지 두 개의 상태만을 이용하는 바이너리 메모리보다 복수 상태 메모리에 대해서 훨씬 더 크다. 워드 라인들 간의 공간 및 비트 라인들 간의 공간의 감소는 또한 인접하는 플로팅 게이트들 간의 커플링을 증가시킬 수 있다. 플로팅 게이트 대 플로팅 게이트 커플링의 영향은 복수 상태 디바이스들에 있어 더 중요한 관심사인데, 왜냐하면, 복수 상태 디바이스에서 허용된 임계 전압 범위 및 금지 범위(개별 메모리 상태들을 나타내는 두 개의 개별 임계 전압 범위들 사이의 범위)는 바이너리 디바이스에서보다 더 좁기 때문이다. 따라서, 프로팅 게이트 대 플로팅 게이트 커플링으로 인해, 결과적으로 메모리 셀은 허용된 임계 전압 범위로부터 금지 범위로 시프트된다.As memory cells continue to shrink in size, the natural programming and erase distributions of the threshold voltages increase due to short channel effects, larger oxide thickness / coupling ratio changes, and more channel dopant variations. It is expected that this will reduce the availability of separation between adjacent states. This effect is much greater for multistate memory than binary memory using only two states. Reducing the space between word lines and the space between bit lines can also increase coupling between adjacent floating gates. The impact of floating gate to floating gate coupling is a more important concern for multi-state devices because, between multi-state devices, the allowed threshold voltage range and the prohibited range (between two separate threshold voltage ranges representing individual memory states) Range) is narrower than that of binary devices. Thus, due to the floating gate to floating gate coupling, the memory cell is eventually shifted from the allowed threshold voltage range to the prohibited range.

따라서, 앞서 언급된 플로팅 게이트 커플링의 문제를 효과적으로 관리하는 비휘발성 메모리를 가질 필요성이 존재한다.Thus, there is a need to have a non-volatile memory that effectively manages the problems of floating gate coupling mentioned above.

본 명세서에서 설명되는 기술은 비휘발성 메모리에서의 플로팅 게이트 커플링의 영향을 처리하고자 하는 것이다.The technique described herein is intended to address the effects of floating gate coupling in nonvolatile memory.

메모리 셀의 겉보기 임계 전압이 시프트될 수 있을 때, 비휘발성 메모리 판독 동작이 플로팅 게이트 커플링을 보상할 수 있다. 해당 메모리 셀이 이웃하는 메모리 셀로부터 판독되는 전하의 레벨에 근거하는 기준 값을 사용하여 판독된다. 이웃하는 셀을 잘못 판독하는 것은 특정 프로그래밍 방법에 큰 영향을 미칠 수 있고, 특히 이러한 방법에서 특정 상태 혹은 전하 레벨에 대한 이웃하는 셀을 판독할 때 더욱 그러하다. 일 실시예에서, 메모리 셀은, 이웃하는 셀을 잘못 판독하는 것이 더 해로운 영향을 미치는 특정 상태들 간의 마진(margin)을 더 넓게 생성하도록 프로그래밍된다. 더욱이, 메모리 셀은, 일 실시예에서, 더 넓은 마진이 생성되는 곳들과 같은, 어떤 기준 레벨에서 판독할 때, 그러나 다른 기준 레벨에서 판독할 때는 아닌 경우에, 이웃하는 셀의 상태에 근거하여 플로팅 게이트 커플링을 보상함으로써 판독된다.When the apparent threshold voltage of the memory cell can be shifted, the nonvolatile memory read operation can compensate for floating gate coupling. The memory cell is read using a reference value based on the level of charge read from the neighboring memory cell. Incorrectly reading a neighboring cell can have a big impact on a particular programming method, especially when reading a neighboring cell for a particular state or charge level in this method. In one embodiment, the memory cell is programmed to create a wider margin between certain states in which misreading a neighboring cell has a more detrimental effect. Furthermore, the memory cells, in one embodiment, are plotted based on the state of neighboring cells when reading at some reference level, but not at other reference levels, such as where wider margins are generated. Read by compensating the gate coupling.

일 실시예에서, 비휘발성 저장소를 판독하는 방법이 제공되는데, 상기 비휘발성 저장소를 판독하는 방법은 제 1 비휘발성 저장 소자를 판독하려는 요청을 수신하는 것에 응답하여, 제 1 비휘발성 저장 소자에 인접한 제 2 비휘발성 저장 소자를 판독한다. 제 1 기준이 제 1 프로그래밍 상태와 제 2 프로그래밍 상태 사이의 레벨에서 제 1 비휘발성 저장 소자를 판독하기 위해 인가되고, 그리고 제 2 기준이 제 2 프로그래밍 상태와 제 3 프로그래밍 상태 사이의 레벨에서 제 1 비휘발성 저장 소자를 판독하기 위해 인가된다. 제 1 비휘발성 저장 소자의 데이터는, 제 2 비휘발성 저장 소자가 물리적 상태의 제 1 서브세트에 있을 때, 제 1 레벨에서의 제 1 기준을 인가하는 것의 결과 및 제 2 레벨에서 제 2 기준을 인가하는 것의 결과를 이용하여 결정된다. 제 2 비휘발성 저장 소자가 물리적 상태의 제 2 서브세트에 있을 때, 제 1 비휘발성 저장 소자의 데이터를 결정하는 것은 제 1 레벨에서의 제 1 기준을 인가하는 것의 결과 및 제 3 레벨에서 제 2 기준을 인가하는 것의 결과를 이용하여 수행된다.In one embodiment, a method of reading nonvolatile storage is provided, wherein the method of reading nonvolatile storage is adjacent to the first nonvolatile storage device in response to receiving a request to read the first nonvolatile storage device. Read the second nonvolatile storage element. The first reference is applied to read the first nonvolatile storage element at a level between the first programming state and the second programming state, and the second reference is at a level between the second programming state and the third programming state. It is applied to read the nonvolatile storage element. The data of the first nonvolatile storage element may result in the application of the first reference at the first level and the second reference at the second level when the second nonvolatile storage element is in the first subset of physical states. It is determined using the result of applying. When the second nonvolatile storage element is in a second subset of physical states, determining the data of the first nonvolatile storage element is the result of applying the first criterion at the first level and the second at the third level. This is done using the results of applying the criteria.

비휘발성 메모리 시스템이 일 실시예에서 제공되며, 상기 비휘발성 메모리 시스템은 함께 프로그래밍되는 메모리 셀들의 세트로부터의 메모리 셀들의 제 1 그룹과, 상기 세트로부터의 메모리 셀들의 제 2 그룹과, 그리고 상기 세트로부터의 메모리 셀들의 제 3 그룹을 포함한다. 제 1 그룹은 임계 전압의 제 1 범위와 관련된 제 1 프로그래밍 상태에 프로그래밍 되고, 그리고 제 2 그룹은 임계 전압의 제 2 범위와 관련된 제 2 프로그래밍 상태에 프로그래밍 된다. 임계 전압의 제 1 범위 및 임계 전압의 제 2 범위는 제 1 프로그래밍 상태와 제 2 프로그래밍 상태 사이에 제 1 크기의 제 1 마진을 정의한다. 제 3 그룹은 임계 전압의 제 3 범위와 관련된 제 3 프로그래밍 상태에 프로그래밍 된다. 임계 전압의 제 2 범위 및 임계 전압의 제 3 범위는 제 2 프로그래밍 상태와 제 3 프로그래밍 상태 사이에 제 2 크기의 제 2 마진을 정의하며, 제 2 크기는 제 1 크기보다 더 작다.A nonvolatile memory system is provided in one embodiment, wherein the nonvolatile memory system includes a first group of memory cells from a set of memory cells that are programmed together, a second group of memory cells from the set, and the set A third group of memory cells from. The first group is programmed to a first programming state associated with a first range of threshold voltages, and the second group is programmed to a second programming state associated with a second range of threshold voltages. The first range of threshold voltages and the second range of threshold voltages define a first margin of a first magnitude between the first programming state and the second programming state. The third group is programmed to a third programming state associated with the third range of threshold voltages. The second range of threshold voltages and the third range of threshold voltages define a second margin of a second magnitude between the second and third programming states, the second magnitude being smaller than the first magnitude.

본 명세서에서 설명되는 기술의 여러 실시예들의 다른 특징들, 실시형태들, 및 목적들은 발명의 상세한 설명, 도면, 및 특허청구범위를 검토함으로써 알 수 있다.Other features, embodiments, and objects of various embodiments of the technology described herein can be seen by reviewing the description, the drawings, and the claims.

도 1은 NAND 스트링의 상부도이다.1 is a top view of a NAND string.

도 2는 도 1의 NAND 스트링의 등가 회로도이다.FIG. 2 is an equivalent circuit diagram of the NAND string of FIG. 1.

도 3은 세 개의 NAND 스트링을 도시한 회로도이다.3 is a circuit diagram illustrating three NAND strings.

도 4는 비휘발성 메모리 시스템의 일 실시예의 블럭도이다.4 is a block diagram of one embodiment of a nonvolatile memory system.

도 5는 메모리 어레이의 예시적 구조를 나타낸다.5 shows an exemplary structure of a memory array.

도 6은 일 실시예에 따른 프로그램 전압 신호를 나타낸다.6 illustrates a program voltage signal according to an embodiment.

도 7은 임계 전압 분포의 예시적 세트 및 풀 시퀀스 프로그래밍 프로세스를 나타낸 것이다.7 illustrates an example set of threshold voltage distributions and a full sequence programming process.

도 8은 임계 전압 분포의 예시적 세트 및 2-패스 프로그래밍 프로세스를 나타낸 것이다.8 shows an exemplary set of threshold voltage distributions and a two-pass programming process.

도 9A는 프로그래밍되기 전에 제 1 워드 라인에 연결된 메모리 셀들의 그룹에 대한 예시적 임계 전압 분포를 나타낸다.9A shows an example threshold voltage distribution for a group of memory cells connected to a first word line before being programmed.

도 9B는 프로그래밍된 이후에 도 9A의 제 1 워드 라인에 인접한 제 2 워드 라니에 연결된 메모리 셀들의 그룹에 대한 예시적 임계 전압 분포를 나타낸 것이다.9B shows an exemplary threshold voltage distribution for a group of memory cells connected to a second word line adjacent to the first word line of FIG. 9A after being programmed.

도 10A는 프로그래밍된 이후에 도 9A의 메모리 셀들의 그룹에 대한 임계 전압 분포를 나타낸 것이다.Figure 10A shows the threshold voltage distribution for the group of memory cells of Figure 9A after being programmed.

도 10B는 도 10A에서 도시된 메모리 셀들의 그룹을 프로그래밍 한 이후에 도 9B의 메모리 셀들의 그룹에 대한 임계 전압 분포를 나타낸 것이다.FIG. 10B shows the threshold voltage distribution for the group of memory cells of FIG. 9B after programming the group of memory cells shown in FIG. 10A.

도 11은 플로팅 게이트 커플링을 보상하기 위해 사용되는 오프셋 판독 기준 전압을 갖는 도 10B의 메모리 셀들의 임계 분포를 나타낸다.FIG. 11 illustrates the threshold distribution of the memory cells of FIG. 10B with an offset read reference voltage used to compensate for floating gate coupling.

도 12A 내지 도 12C는 플로팅 게이트 커플링 효과를 감소시키기 위해 인접 메모리 셀들의 그룹에 대한 이전 페이지 프로그래밍 이후에 메모리 셀들의 그룹에 대한 데이터의 선택 페이지를 프로그래밍하는 프로그래밍 프로세스 및 메모리 셀들의 그룹에 대한 예시적 임계 전압 분포를 나타낸 것이다.12A-12C illustrate an example of a programming process and group of memory cells for programming a selection page of data for a group of memory cells after previous page programming for a group of adjacent memory cells to reduce floating gate coupling effect. Red threshold voltage distribution.

도 13A 및 도 13B는 도 12A 내지 도 12C의 프로세스에 따라 프로그래밍되는 메모리 셀들에 대한 플로팅 게이트 커플링의 효과 및 플로팅 게이트 커플링을 보상하기 위해 사용되는 예시적 판독 기준 전압을 나타낸 것이다.13A and 13B illustrate exemplary read reference voltages used to compensate for the effects of floating gate coupling and floating gate coupling for memory cells programmed according to the process of FIGS. 12A-12C.

도 14는 일 실시예에 따른 프로그래밍 및 판독 기술, 그리고 프로그래밍 기술에 따라 프로그래밍되는 메모리 셀들의 그룹의 임계 전압 분포를 나타낸 것이다.14 illustrates a programming and reading technique and a threshold voltage distribution of a group of memory cells programmed according to the programming technique, according to one embodiment.

도 15는 선택 메모리 상태들 간의 더 큰 마진을 생성하기 위해 비휘발성 메모리를 프로그래밍하는 프로세스의 일 실시예를 나타낸 흐름도이다.15 is a flow diagram illustrating one embodiment of a process for programming a nonvolatile memory to create a larger margin between select memory states.

도 16은 선택 메모리 상태들 간의 더 큰 마진을 생성하기 위해 비휘발성 메모리의 프로그래밍을 검증하는 프로세스의 일 실시예를 나타낸 흐름도이다.16 is a flow diagram illustrating one embodiment of a process for verifying programming of a nonvolatile memory to create a larger margin between select memory states.

도 17은 비휘발성 메모리를 판독하는 프로세스의 일 실시예를 나타낸 흐름도이다.17 is a flow diagram illustrating one embodiment of a process for reading a nonvolatile memory.

도 18은 비휘발성 메모리 셀들로부터 위쪽 페이지 데이터를 판독하는 프로세스의 일 실시예를 나타낸 흐름도이다.18 is a flow diagram illustrating one embodiment of a process for reading upper page data from nonvolatile memory cells.

도 19는 보상을 사용함이 없이 데이터를 판독하는 프로세스의 일 실시예를 나타낸 흐름도이다.19 is a flow diagram illustrating one embodiment of a process for reading data without using compensation.

도 20은 플로팅 게이트 커플링에 대한 보상을 사용하는 동안 데이터를 판독하는 프로세스의 일 실시예를 나타낸 흐름도이다.20 is a flow diagram illustrating one embodiment of a process for reading data while using compensation for floating gate coupling.

도 21은 플로팅 게이트 커플링에 대한 보상을 사용하여 위쪽 페이지 데이터 를 판독하는 프로세스의 일 실시예를 나타낸 흐름도이다.21 is a flow diagram illustrating one embodiment of a process for reading top page data using compensation for floating gate coupling.

도 4는 본 발명의 하나 또는 그 이상의 실시예들을 구현하기 위해 사용될 수 있는 플래시 메모리 시스템의 일 실시예를 나타낸 블럭도이다. 다른 시스템 및 실시예들이 사용될 수 있다. 메모리 셀 어레이(302)는 컬럼 제어 회로(304), 로우 제어 회로(304), c-소스 제어 회로(310) 및 p-웰 제어 회로(308)에 의해 제어된다. 컬럼 제어 회로(304)는 메모리 셀 어레이(302)의 비트 라인에 연결되어 메모리 셀들에 저장된 데이터를 판독하고, 프로그래밍 동작 동안 메모리 셀들의 상태를 결정하고, 그리고 비트 라인의 포텐셜 레벨을 제어하여 프로그래밍 및 소거를 촉진시키거나 혹은 금지시킨다. 로우 제어 회로(306)가 워드 라인에 연결되어 워드 라인을 선택하고, 판독 전압을 인가하고, 컬럼 제어 회로(304)에 의해 제어되는 비트 라인 포텐셜 레벨과 결합된 프로그램 전압을 인가하고, 그리고 소거 전압을 인가한다. c-소스 제어 회로(310)는 메모리 셀들에 연결된 공통 소스를 제어한다. P-웰 제어 회로(308)는 p-웰 전압을 제어한다.4 is a block diagram illustrating one embodiment of a flash memory system that may be used to implement one or more embodiments of the present invention. Other systems and embodiments can be used. The memory cell array 302 is controlled by the column control circuit 304, the row control circuit 304, the c-source control circuit 310 and the p-well control circuit 308. The column control circuit 304 is connected to the bit line of the memory cell array 302 to read data stored in the memory cells, determine the state of the memory cells during a programming operation, and control the potential level of the bit line to program and Promote or inhibit eradication. Row control circuit 306 is coupled to the word line to select the word line, apply a read voltage, apply a program voltage coupled with the bit line potential level controlled by column control circuit 304, and erase voltage. Is applied. The c-source control circuit 310 controls a common source connected to the memory cells. P-well control circuit 308 controls the p-well voltage.

메모리 셀들에 저장된 데이터는 컬럼 제어 회로(304)에 의해 판독되고, 그리고 데이터 입력/출력 버퍼(312)를 통해 외부 I/O에 출력된다. 메모리 셀들에 저장될 프로그램 데이터가 외부 I/O 라인을 통해 데이터 입력/출력 버퍼(312)에 입력되고, 그리고 컬럼 제어 회로(304)에 전달된다. 외부 I/O 라인이 제어기(318)에 연결된다.Data stored in the memory cells is read by the column control circuit 304 and output to external I / O through the data input / output buffer 312. Program data to be stored in the memory cells is input to the data input / output buffer 312 via an external I / O line and transferred to the column control circuit 304. An external I / O line is connected to the controller 318.

컬럼 제어 회로(304)는 복수의 감지 블럭들(330)을 포함할 수 있고, 그 각각 은 감지 동작을 수행하는 하나 또는 그 이상의 비트 라인들과 관련되어 있다. 예를 들어, 단일 감지 블럭이 여덟 개의 비트 라인들과 관련되어 있을 수 있고, 그리고 하나의 공통 부분을 포함할 수 있고, 그리고 개별 비트 라인들을 위한 여덟 개의 개별 감지 모듈들을 포함할 수 있다. 더 상세한 설명에 대해서는, 미국 특허 출원 번호 제11/026,536호(발명의 명칭: "Non-Volatile Memory & Method with Shared Processing for an Aggregate of Sense Amplifiers", 2004.12.29. 출원)를 참조하기 바라며, 이 문헌은 그 전체가 참조로 본 명세서에 통합된다. 감지 모듈(320)은 연결된 비트 라인에서의 전도 전류, 혹은 다른 파라미터가 미리 결정된 임계 레벨 위에 있는지 혹은 아래에 있는지 여부를 결정한다. 감지 모듈은 감지된 메모리 셀에 저장된 데이터를 결정할 수 있고, 그리고 데이터 래치 스택(data latch stack)(322)에 저장된 데이터를 저장할 수 있다. 데이터 래치 스택(322)은 판독 동작 동안 결정된 데이터 비트들을 저장하는데 사용된다. 이것은 또한 프로그램 동작 동안 메모리에 프로그래밍되는 데이터 비트들을 저장하는데 사용된다. 일 실시예에서, 각각의 감지 모듈에 대한 데이터 래치 스택(322)은 세 개의 데이터 래치들을 포함한다. 감지 모듈은 또한 연결된 비트 라인 상의 전압 조건을 설정하기 위해 사용되는 비트 라인 래치를 포함할 수 있다. 예를 들어, 비트 라인 래치에 래치된 미리 결정된 상태는, 결과적으로, 연결된 비트 라인이 프로그램 금지를 지정하는 상태로 되게 한다(예를 들어, Vdd).The column control circuit 304 can include a plurality of sense blocks 330, each associated with one or more bit lines that perform a sense operation. For example, a single sense block may be associated with eight bit lines, and may include one common portion, and may include eight individual sense modules for individual bit lines. For a more detailed description, see US patent application Ser. No. 11 / 026,536, entitled "Non-Volatile Memory & Method with Shared Processing for an Aggregate of Sense Amplifiers," filed Dec. 29, 2004. The document is incorporated herein by reference in its entirety. The sensing module 320 determines whether the conduction current, or other parameter, at the connected bit line is above or below a predetermined threshold level. The sensing module can determine the data stored in the sensed memory cell, and store the data stored in the data latch stack 322. The data latch stack 322 is used to store the data bits determined during the read operation. It is also used to store data bits that are programmed into memory during program operation. In one embodiment, the data latch stack 322 for each sense module includes three data latches. The sensing module may also include a bit line latch used to set the voltage condition on the connected bit line. For example, the predetermined state latched in the bit line latch results in the connected bit line being in a state that specifies program prohibition (eg, Vdd).

플래시 메모리 디바이스를 제어하는 컴맨드 데이터(command data)가 제어기(318)로 입력된다. 컴맨드 데이터는 어떤 동작이 요청되는지를 플래시 메모리에 알려준다. 입력 컴맨드가 제어 회로(315)의 일부인 상태 머신(316)으로 전달된다. 상태 머신(316)은 컬럼 제어 회로(304), 로우 제어 회로(306), c-소스 제어(310), p-웰 제어 회로(308), 및 데이터 입력/출력 버퍼(312)를 제어한다. 상태 머신(316)은 또한 준비/실행중(READY/BUSY) 혹은 패스/실패(PASS/FAIL)와 같은 플래시 메모리의 상태 데이터를 출력할 수도 있다.Command data for controlling the flash memory device is input to the controller 318. Command data tells flash memory what action is requested. The input command is passed to the state machine 316 which is part of the control circuit 315. State machine 316 controls column control circuit 304, row control circuit 306, c-source control 310, p-well control circuit 308, and data input / output buffer 312. The state machine 316 may also output state data in flash memory, such as READY / BUSY or PASS / FAIL.

제어기(318)는 개인용 컴퓨터, 디지털 카메라, 혹은 개인 휴대용 정보 단말기, 등과 같은 호스트 시스템에 접속될 수 있거나 이러한 호스트 시스템과 접속가능하다. 이것은 메모리 어레이(302)에 데이터를 저장하는 것 혹은 메모리 어레이(302)로부터 데이터를 판독하는 것과 같은 컴맨드들을 개시시키고, 그리고 이러한 데이터를 제공하거나 수신하는 호스트와 통신한다. 제어기(318)는 이러한 컴맨드를, 제어 회로(315)의 일부인 컴맨드 회로(314)에 의해 해석될 수 있고 실행될 수 있는 컴맨드 신호로 변환한다. 컴맨드 회로(314)는 상태 머신(316)과 통신한다. 제어기(318)는 전형적으로 메모리 어레이에 기입되거나 혹은 메모리 어레이로부터 판독되는 사용자 데이터에 대한 버퍼 메모리를 포함한다.The controller 318 may be connected to or may be connected to a host system such as a personal computer, digital camera, personal digital assistant, or the like. This initiates commands such as storing data in or reading data from the memory array 302 and communicating with a host that provides or receives this data. The controller 318 converts this command into a command signal that can be interpreted and executed by the command circuit 314 that is part of the control circuit 315. The command circuit 314 is in communication with the state machine 316. Controller 318 typically includes buffer memory for user data that is written to or read from the memory array.

하나의 예시적 메모리 시스템은, 제어기(318)를 포함하는 하나의 집적 회로와, 그리고 그 각각이 메모리 어레이와 그 관련 제어 회로, 입력/출결 회로, 및 상태 머신 회로를 포함하는 하나 또는 그 이상의 집적 회로 칩들을 포함한다. 시스템의 메모리 어레이 및 제어기 회로를 하나 또는 그 이상의 집적 회로 칩들 상에 함께 집적시키려는 경향이 있다. 메모리 시스템은 호스트 컴퓨터의 일부로서 매입될 수 있고, 또는 호스트 시스템으로 탈착가능하게 삽입되는 메모리 카드(혹은 다른 패키지)에 포함될 수 있다. 이러한 카드는 전체 메모리 시스템(예를 들어, 제어기 포함)을 포함할 수 있거나, 혹은 단지 관련 주변 회로들(호스트에 매입되는 제어기 혹은 제어 기능을 가짐)만을 갖는 메모리 어레이(들)만을 포함할 수 있다. 따라서, 제어기는 호스트에 매입될 수 있고, 또는 탈착가능한 메모리 시스템에 포함될 수 있다.One example memory system includes one integrated circuit that includes a controller 318, and one or more integrated circuits, each of which includes a memory array and its associated control circuitry, input / output circuitry, and state machine circuitry. Circuit chips. There is a tendency to integrate the memory array and controller circuit of a system together on one or more integrated circuit chips. The memory system may be embedded as part of the host computer, or may be included in a memory card (or other package) that is removably inserted into the host system. Such a card may include the entire memory system (eg, including a controller) or may only include memory array (s) having only relevant peripheral circuits (having a controller or control function embedded in the host). . Thus, the controller can be embedded in the host or can be included in a removable memory system.

도 5를 참조하면, 메모리 셀 어레이(302)의 예시적 구조가 설명된다. 예를 들어, 1,024개의 블럭으로 나누어져 있는 NAND 플래시 EEPROM이 설명된다. 각각의 블럭에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블럭은 동시에 소거될 수 있는 최소 셀 단위이다. 메모리 셀들은 p-웰을 소거 전압(예를 들어, 20 볼트)까지 상승시키고, 아울러 선택된 블럭의 워드 라인들을 접지시킴으로써 소거된다. 소스 라인 및 비트 라인은 플로팅 상태이다. 소거는 전체 메모리 어레이 또는 개별 블럭들에 관해 수행될 수 있고, 또는 또 다른 셀 단위로 수행될 수 있다. 전자들이 플로팅 게이트로부터 p-웰 영역으로 전달되고, 그리고 (일 예에서) 임계 전압은 음의 값이 된다.5, an exemplary structure of a memory cell array 302 is described. For example, a NAND flash EEPROM that is divided into 1,024 blocks is described. Data stored in each block can be erased at the same time. In one embodiment, the block is the smallest cell unit that can be erased simultaneously. Memory cells are erased by raising the p-well to an erase voltage (eg, 20 volts) and grounding the word lines of the selected block. Source lines and bit lines are floating. Erasing may be performed on the entire memory array or individual blocks, or may be performed on another cell basis. Electrons are transferred from the floating gate to the p-well region, and the threshold voltage (in one example) is negative.

도 5의 예에서 각각의 블럭에는 8,512개의 컬럼이 존재한다. 각각의 블럭은 전형적으로 프로그래밍의 단위일 수 있는 여러 페이지들로 나누어진다. 프로그래밍에 대한 다른 데이터 단위가 또한 가능하고 고려될 수 있다. 일 실시예에서, 개개의 페이지들은 세그먼트들로 나누어질 수 있고, 그리고 이러한 세그먼트들은 기본 프로그래밍 동작으로서 한번에 기입되는 가장 적은 개수의 셀들을 포함할 수 있다. 하나 또는 그 이상의 데이터 페이지는 전형적으로 메모리 셀의 하나의 로우에 저장 된다.In the example of FIG. 5, there are 8,512 columns in each block. Each block is typically divided into pages, which can be a unit of programming. Other data units for programming are also possible and may be considered. In one embodiment, individual pages may be divided into segments, and these segments may include the fewest number of cells written at a time as a basic programming operation. One or more data pages are typically stored in one row of memory cells.

도 5에서의 예의 각각의 블럭에서, 짝수 컬럼 및 홀수 컬럼으로 나누어진 8,512개의 컬럼이 존재한다. 비트 라인들은 짝수 비트라인들(BLe) 및 홀수 비트 라인들(BLo)로 나누어진다. 홀수/짝수 비트 라인 아키텍처에서, 공통 워드 라인을 따라서 있고 홀수 비트 라인들에 연결되는 메모리 셀은 한번에 프로그래밍되고, 반면에 공통 워드 라인을 따라서 있고 짝수 비트 라인들에 연결되는 메모리 셀은 또 다른 한번에 프로그래밍된다. 도 5는 NAND 스트링을 형성하는 직렬 연결된 네 개의 메모리 셀들을 나타낸다. 비록 네 개의 메모리 셀이 각각의 NAND 스트링에 포함되도록 도시되었지만, 네 개보다 많거나 혹은 적은 개수가 사용될 수도 있다(예를 들어 16개, 32개, 혹은 또 다른 개수). NAND 스트링의 하나의 단자는 제 1 선택 트랜지스터 혹은 선택 게이트(이것은 선택 게이트 드레인 라인(Select Gate Drain line)(SGD)에 연결됨)를 통해 대응하는 비트 라인에 연결되고, 그리고 NAND 스트링의 또 다른 단자는 제 2 선택 트랜지스터(이것은 선택 게이트 소스 라인(Select Gate Source line)(SGS)에 연결됨)을 통해 c-소스(c-source)에 연결된다.In each block of the example in FIG. 5, there are 8,512 columns divided into even columns and odd columns. The bit lines are divided into even bit lines BLe and odd bit lines BLO. In odd / even bit line architectures, memory cells along a common word line and connected to odd bit lines are programmed at one time, while memory cells along a common word line and connected to even bit lines are programmed at another time. do. 5 shows four series of memory cells connected in series to form a NAND string. Although four memory cells are shown to be included in each NAND string, more or less than four may be used (eg, 16, 32, or another). One terminal of the NAND string is connected to the corresponding bit line through a first select transistor or a select gate (which is connected to a Select Gate Drain line (SGD)), and another terminal of the NAND string It is connected to the c-source via a second select transistor, which is connected to a Select Gate Source line (SGS).

일 실시예의 판독 동작 및 프로그래밍 동작 동안, 4,256 개의 메모리 셀들이 동시에 선택된다. 선택된 메모리 셀들은 동일한 워드 라인(예를 들어, WL2)을 가지고, 동일한 종류의 비트 라인(예를 들어, 홀수 개의 비트 라인들)을 갖는다. 따라서, 532 바이트의 데이터가 동시에 판독될 수 있거나 프로그래밍될 수 있다. 동시에 판독 및 프로그래밍되는 이러한 532 바이트의 데이터가 하나의 논리적 페이지를 형성한다. 따라서, 일 예에서, 하나의 블럭은 적어도 여덟 개의 페이지를 저장할 수 있다. 각각의 메모리 셀이 두 비트의 데이터를 저장할 때(예를 들어, 복수 상태 셀), 이와 같은 블럭은 16 개의 페이지들을 저장할 수 있다(혹은, 예를 들어, 8 개의 페이지들 각각이 1064 바이트를 포함할 수 있음). 다른 크기의 블럭들 및 페이지들이 또한 여러 실시예들과 함께 사용될 수 있다. 일 실시예에서, 동시에 선택되는 메모리 셀들의 세트는 하나 보다 많은 데이터 페이지를 저장할 수 있다.During the read and program operations of one embodiment, 4,256 memory cells are selected simultaneously. The selected memory cells have the same word line (eg WL2) and the same kind of bit line (eg odd bit lines). Thus, 532 bytes of data can be read or programmed simultaneously. These 532 bytes of data being read and programmed at the same time form one logical page. Thus, in one example, one block can store at least eight pages. When each memory cell stores two bits of data (e.g., a multi-state cell), such a block can store 16 pages (or, for example, each of the eight pages contains 1064 bytes). You can). Other sized blocks and pages may also be used with the various embodiments. In one embodiment, a set of memory cells that are simultaneously selected may store more than one data page.

도 4 및 도 5와는 다른 아키텍처가 여러 실시예들에 따라 사용될 수 있다. 일 실시예에서, 비트 라인들은 홀수 비트 라인들 및 짝수 비트 라인들로 나누어 지지 않는다. 이러한 아키텍처는 공통적으로 모든 비트 라인 아키텍처로서 언급된다. 모든 비트 라인 아키텍처에서, 블럭의 비트 라인들 모두는 판독 동작 및 프로그래밍 동작 동안 동시에 선택된다. 공통 워드 라인을 따라서 있고 임의의 비트 라인에 연결된 메모리 셀들은 동시에 프로그래밍된다. 다른 비트 라인 아키텍처 및 그 관련 동작가능한 기술에 관한 더 많은 정보를 위해서는, 미국 특허 출원 번호 제11/099,133호(발명의 명칭: "Compensating for coupling during Read Operations of Non-Volatile Memory", 200.04.05. 출원)를 참조하기 바라며, 이 문헌은 그 전체가 참조로 본 명세서에 통합된다.Architectures other than FIGS. 4 and 5 may be used in accordance with various embodiments. In one embodiment, the bit lines are not divided into odd bit lines and even bit lines. This architecture is commonly referred to as all bit line architectures. In all bit line architectures, all of the bit lines of a block are simultaneously selected during read and program operations. Memory cells along a common word line and connected to any bit line are programmed simultaneously. For more information regarding other bit line architectures and related operable technologies, see US Patent Application No. 11 / 099,133, entitled "Compensating for coupling during Read Operations of Non-Volatile Memory," 200.04.05. Application), which is hereby incorporated by reference in its entirety.

판독 동작 및 검증 동작에서, 선택된 블럭의 선택 게이트들은 하나 또는 그 이상의 선택 전압까지 상승되고, 그리고 선택된 블럭의 선택되지 않은 워드 라인들(예를 들어, WLO, WLl 및 WL3)은 판독 패스 전압(예를 들어, 4.5 볼트)까지 상승되어, 트랜지스터가 패스 케이트로서 동작하게 한다. 선택된 블럭의 선택되지 않은 워드 라인(예를 들어, WL2)은 기준 전압에 연결되고, 그 레벨은 각각의 판독 동작 및 검증 동작에 대해 특정되어 있는데, 왜냐하면 관련 메모리 셀의 임계 전압이 이러한 레벨 위에 있는지 혹은 아래에 있는지 여부를 결정하기 위해서이다. 예를 들어, 한 비트 메모리 셀의 판독 동작에 있어서, 선택된 워드 라인(WL2)은 접지되고, 그래서 임계 전압이 0 볼트(0V)보다 더 높은지 여부가 결정된다. 한 비트 메모리 셀의 검증 동작에 있어서, 선택된 워드 라인(WL2)은 0.8V에 연결되고, 그래서 프로그래밍이 진행함에 따라 임계 전압이 0.8V에 도달했는지 안 했는지 여부가 검증된다. 소스 및 p-웰은 판독 및 검증 동안 0V에 있다. 선택 비트 라인(BLe)이 예를 들어, 0.7V의 레벨까지 사전 충전된다. 만약 임계 전압이 판독 레벨 혹은 검증 레벨보다 더 높다면, 관련 비트 라인(BLe)의 포텐셜 레벨은 관련 비전도성 메모리 셀 때문에 높은 레벨을 유지한다. 달리 말하면, 만약 임계 전압은 판독 레벨 혹은 검증 레벨보다 더 낮다면, 전도성 메모리 셀 때문에, 관련 비트 라인(BLe)의 포텐셜 레벨은 낮은 레벨(예를 들어, 0.5V보다 적은 레벨)로 감소한다. 다른 전류 및 전압 감지 기술은 본 발명의 여러 실시예들에 따라 사용될 수 있다. 복수 상태 셀에 대한 판독 혹은 감지 동안, 상태 머신(316)은, 다양한 메모리 상태에 따라 다양한 미리 결정된 제어 게이트 기준 전압을 통해 스텝핑(stepping)한다. 복수 상태 셀들에 대한 판독 또는 감지 동안, 상태 머신(316)은 다양한 메모리 상태에 대응하는 미리 정의된 제어 게이트 기준 전압을 통해 스텝핑한다. 감지 모듈은 여러 전압들 중 하나에서 트립핑(tripping)하고, 그리고 출력은 감지 모듈로부터 제공된다. 감지 모듈에서의 프로세서는 트립핑 이벤트(들)를 고려함으로써, 그리고 상태 머신으로부터의 인가된 제어 게이트 전압에 대한 정보를 고려함으로써, 결과적인 메모리 상태 를 결정할 수 있다. 메모리 상태에 대한 바이너리 인코딩은 계산되어 데이터 래치에 저장된다.In the read and verify operations, the select gates of the selected block are raised to one or more select voltages, and the unselected word lines (e.g., WLO, WLl, and WL3) of the selected block are read pass voltages (e.g., For example, to 4.5 volts), allowing the transistor to operate as a pass gate. The unselected word lines (e.g., WL2) of the selected block are connected to a reference voltage, the level of which is specified for each read and verify operation because the threshold voltage of the associated memory cell is above this level. Or to determine if it is below. For example, in a read operation of one bit memory cell, the selected word line WL2 is grounded, so it is determined whether the threshold voltage is higher than zero volts (0V). In the verify operation of one bit memory cell, the selected word line WL2 is connected to 0.8V, so as the programming proceeds it is verified whether or not the threshold voltage has reached 0.8V. Source and p-well are at 0V during read and verify. The select bit line BLe is precharged to a level of, for example, 0.7V. If the threshold voltage is higher than the read or verify level, the potential level of the associated bit line BLe remains at a high level because of the associated nonconductive memory cell. In other words, if the threshold voltage is lower than the read or verify level, because of the conductive memory cell, the potential level of the associated bit line BLe decreases to a lower level (e.g., less than 0.5V). Other current and voltage sensing techniques can be used in accordance with various embodiments of the present invention. During the read or detect of a multi-state cell, state machine 316 steps through various predetermined control gate reference voltages according to various memory states. During the read or sense of multiple state cells, state machine 316 steps through a predefined control gate reference voltage corresponding to various memory states. The sense module trips at one of several voltages, and the output is provided from the sense module. The processor in the sensing module may determine the resulting memory state by considering the tripping event (s) and by considering information about the applied control gate voltage from the state machine. The binary encoding for the memory state is calculated and stored in the data latch.

프로그램 동작 및 검증 동작 동안, 셀들의 세트에 프로그래밍될 데이터가 각각의 비트 라인에 대해 데이터 래치들(322)의 세트에 저장될 수 있다. 메모리의 드레인 및 p-웰이 0V를 수신하고, 반면에 어드레싱된 메모리 셀들의 제어 게이트들은 증가하는 크기를 갖는 프로그래밍 펄스들을 수신한다. 일 실시예에서, 일련의 펄스들의 범위는 12V로부터 24V까지이다. 다른 실시예에서는 이러한 범위는 달라 질 수 있으며, 예를 들어 12V보다 더 높은 시작 레벨을 가질 수 있다. 프로그래밍 동안, 검증 동작들이 프로그래밍 펄스들 간에 수행될 수 있다. 병렬로 프로그래밍되는 각각의 셀의 프로그래밍 레벨이 각각의 프로그래밍 펄스 사이에서 판독되어 프로그래밍되는 상태에 대한 검증 레벨에 도달했는지 혹은 이러한 검증 레벨을 초과하였는지 여부가 결정된다. 검증 레벨은 대응하는 메모리 상태에서의 셀들에 대한 타겟 최소 임계 전압일 수 있다. 프로그래밍을 검증하는 한 가지 수단은 특정 비교 포인트들에서 전도도를 테스트하는 것이다. 충분히 프로그래밍된 것으로 검증되는 셀들은 더 이상의 프로그래밍을 금지시키기 위해 락아웃(lockout)된다. 검증된 셀들 비트 라인의 전압은 이러한 셀들에 대한 프로그래밍 프로세스를 종료시키기 위해 후속적 프로그래밍 펄스 동안 0V로부터 Vdd(예를 들어, 2.5 볼트)까지 상승된다. 일부의 경우에, 펄스들의 개수는 제한되고(예를 들어, 20개의 펄스), 그리고 만약 주어진 메모리 셀들이 마지막 펄스에 의해 충분히 프로그래밍되지 않는다면, 에러가 발생했다고 간주된다.During the program operation and the verify operation, data to be programmed in the set of cells may be stored in the set of data latches 322 for each bit line. The drain and p-well of the memory receive 0V, while the control gates of the addressed memory cells receive programming pulses of increasing magnitude. In one embodiment, the series of pulses ranges from 12V to 24V. In other embodiments, this range may vary, for example having a starting level higher than 12V. During programming, verify operations can be performed between programming pulses. It is determined whether the programming level of each cell programmed in parallel has reached or exceeded the verify level for the state being read and programmed between each programming pulse. The verify level can be the target minimum threshold voltage for the cells in the corresponding memory state. One means of verifying programming is to test the conductivity at specific comparison points. Cells that are verified as fully programmed are locked out to prevent further programming. The voltage of the verified cells bit line is raised from 0 V to Vdd (eg 2.5 volts) during subsequent programming pulses to terminate the programming process for these cells. In some cases, the number of pulses is limited (eg 20 pulses), and if a given memory cell is not sufficiently programmed by the last pulse, an error has been considered.

도 6은 일 실시예에 따른 프로그램 전압 신호를 나타낸다. 이러한 신호는 증가하는 크기를 갖는 펄스들의 세트를 가진다. 펄스들의 크기는 미리 결정된 스텝 크기만큼 각각의 펄스와 함께 증가된다. 복수의 데이터 비트를 저장하는 메모리 셀들을 포함하는 일 실시예에서, 예시적인 스텝 사이즈는 0.2 볼트(혹은 0.4 볼트)이다. 프로그래밍 펄스들 각각 사이에 검증 펄스들이 있다. 도 6의 신호는 네 개의 상태 메모리 셀을 나타내고 있으며, 따라서 이것은 세 개의 검증 펄스들을 포함한다. 예를 들어, 프로그래밍 펄스들(330 및 332) 사이에는 세 개의 순차적 검증 펄스들이 있다. 제 1 검증 펄스(34)가 0V 검증 전압 레벨에서 도시되어 있다. 제 1 검증 펄스(334)가 0V 검증 전압 레벨에서 도시되어 있다. 제 2 검증 펄스(336)가 제 2 검증 전압 레벨에서 제 1 검증 펄스의 뒤를 따른다. 제 3 검증 펄스(338)이 제 3 검증 레벨에서 제 2 검증 펄스의 뒤를 따른다. 여덟 개의 상태에서 데이터를 저장할 수 있는 복수 상태 메모리 셀은 일곱 개의 비교 포인트들에서 검증 동작을 수행할 필요가 있을 수 있다. 따라서, 일곱 개의 검증 펄스가 순차적으로 인가되어 두 개의 연속적인 프로그래밍 펄스들 사이에서 일곱 개의 검증 레벨에서 일곱 번의 검증 동작을 수행한다. 일곱 번의 검증 동작에 근거하여, 시스템은 메모리 셀의 상태를 결정할 수 있다. 검증으로 인해 부가되는 시간을 감소시키는 한 가지 수단은 더 효율적인 검증 프로세스를 사용하는 것으로, 이러한 것은 예를 들어, 미국 특허 출원 번호 제10/314,055호(발명의 명칭: "Smart Verify for Multi-State Memories", 2002.12.05. 출원), 미국 특허 출원 번호 제11/259,799호(발명의 명칭: "Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify", 2005.10.27. 출원), 그리고 미국 특허 출원 번호 제11/260,658호(발명의 명칭: "Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify", 2205.10.27. 출원)에서 설명되어 있으며, 이러한 문헌들 모두는 그 전체가 참조로 본 명세서에 통합된다.6 illustrates a program voltage signal according to an embodiment. This signal has a set of pulses with increasing magnitudes. The magnitude of the pulses is increased with each pulse by a predetermined step size. In one embodiment including memory cells that store a plurality of data bits, an exemplary step size is 0.2 volts (or 0.4 volts). There are verify pulses between each of the programming pulses. The signal of FIG. 6 represents four state memory cells, so it contains three verify pulses. For example, there are three sequential verify pulses between programming pulses 330 and 332. The first verify pulse 34 is shown at the 0V verify voltage level. The first verify pulse 334 is shown at the 0 V verify voltage level. The second verify pulse 336 follows the first verify pulse at the second verify voltage level. The third verify pulse 338 follows the second verify pulse at the third verify level. A multi-state memory cell capable of storing data in eight states may need to perform a verify operation at seven comparison points. Thus, seven verify pulses are applied sequentially to perform seven verify operations at seven verify levels between two consecutive programming pulses. Based on the seven verify operations, the system can determine the state of the memory cell. One means of reducing the time added due to verification is to use a more efficient verification process, such as, for example, US Patent Application No. 10 / 314,055 (named "Smart Verify for Multi-State Memories"). , Filed Dec. 5, 2002, US Patent Application No. 11 / 259,799, entitled "Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify", filed Oct. 27, 2005, and US patent Application No. 11 / 260,658, entitled "Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify", filed 2205.10.27. All of these documents are incorporated by reference in their entirety. Incorporated herein.

앞서 설명된 소거 동작, 판독 동작, 및 검증 동작은 본 발명의 기술 분야에서 공지된ㄴ 기술에 따라 수행된다. 따라서, 설명된 상세한 설명중 많은 부분은 본 발명의 기술 분야에서 숙련된 자에 의해 다양하게 변경될 수 있다.The erase, read, and verify operations described above are performed in accordance with techniques known in the art. Therefore, many of the detailed descriptions described may be variously modified by those skilled in the art.

성공적인 프로그래밍 프로세스의 끝에서, 메모리 셀들의 임계 전압은 프로그래밍된 메모리 셀들에 대한 임계 전압의 하나 또는 그 이상의 분포들에 내에 있어야만 하거나 또는 적절하게는 소거된 메모리 셀들에 대한 임계 전압의 분포 내에 있어야 한다. 도 7은 각각의 메모리 셀이 두 비트의 데이터를 저장할 때 메모리 셀들의 그룹에 대한 임계 전압 분포를 나타낸다. 도 7은 소거된 메모리 셀들에 대한 제 1 임계 전압 분포(E)와 프로그래밍된 메모리 셀들에 대한 세 개의 임계 전압 분포(A, B, 및 C)를 나타낸다. 일 실시예에서, 분포(E)에서의 임계 전압은 음의 값이고 분포(A, B, 및 C)에서의 임계 전압은 양의 값이다.At the end of a successful programming process, the threshold voltages of the memory cells must be in one or more distributions of the threshold voltages for the programmed memory cells or suitably within the distribution of the threshold voltages for the erased memory cells. 7 shows the threshold voltage distribution for a group of memory cells as each memory cell stores two bits of data. 7 shows a first threshold voltage distribution E for erased memory cells and three threshold voltage distributions A, B, and C for programmed memory cells. In one embodiment, the threshold voltages in distribution E are negative and the threshold voltages in distributions A, B, and C are positive values.

도 7의 각각의 개개의 임계 전압 범위는 데이터 비트들의 세트에 대한 미리 결정된 값들에 대응한다. 메모리 셀들로 프로그래밍되는 데이터와 셀의 임계 전압 레벨들 간의 특정 관계는 셀들에 대해 채택된 데이터 인코딩 방식에 따라 다르다. 일 실시예에서, 데이터 값은 그레이 코드 할당(gray code assignment)을 사용하여 임계 전압 범위에 할당되며, 그래서 만약 플로팅 게이트의 임계 전압이 그 이웃하 는 물리적 상태로 잘못 시프트할 지라도 단지 하나의 비트만이 영향을 받는다. 그러나, 다른 실시예들에서는 그레이 코딩이 사용되지 않는다. 일 예로서, 임계 전압 범위(E)(상태(E))에 "11"이 할당되고, 임계 전압 범위(A)(상태(A))에 "10"이 할당되고, 임계 전압범위(B)(상태(B))에 "00"이 할당되고, 그리고 임계 전압 범위(C)(상태(C))에 "01"이 할당된다. 도 7이 비록 네 개의 상태를 도시하고 있지만, 본 개시 내용을 따르는 실시예들은 또한, 네 개보다 많거나 혹은 적은 상태들을 포함하는 다른 복수 상태 구조와 함께 사용될 수도 있다.Each individual threshold voltage range of FIG. 7 corresponds to predetermined values for the set of data bits. The specific relationship between the data programmed into the memory cells and the threshold voltage levels of the cell depends on the data encoding scheme adopted for the cells. In one embodiment, the data value is assigned to the threshold voltage range using gray code assignment, so that only one bit, even if the threshold voltage of the floating gate incorrectly shifts to its neighboring physical state. This is affected. However, in other embodiments gray coding is not used. As an example, "11" is assigned to threshold voltage range E (state E), "10" is assigned to threshold voltage range A (state A), and threshold voltage range B is "00" is assigned to (state B), and "01" is assigned to the threshold voltage range C (state C). Although FIG. 7 illustrates four states, embodiments in accordance with the present disclosure may also be used with other multi-state structures that include more or less than four states.

도 7은 메모리 셀들로부터 데이터를 판독하기 위한 세 개의 판독 기준 전압(Vra, Vrb 및 Vrc)을 도시하고 있다. 주어진 메모리 셀들의 임계 전압이 Vra, Vrb 및 Vrc보다 높은지 혹은 낮은지 여부를 테스트함으로서, 시스템은 메모리 셀이 어떤 상태에 있는지를 결정할 수 있다. 만약 메모리 셀이 Vra에서 전도 상태라면, 그러면 메모리 셀은 상태(E)에 있다. 만약 메모리 셀이 Vrb 및 Vrc에서 전도 상태이지만 Vra에서는 전도 상태가 아니라면, 그러면 메모리 셀은 상태(A)에 있다. 만약 메모리 셀이 Vrc에서 전도 상태이지만 Vra 및 Vr에서는 전도 상태가 아니라면, 그러면 메모리 셀은 상태(C)에 있다. 도 7은 또한 세 개의 검증 기준 전압(Vva, Vvb 및 Vvc)을 도시하고 있으며, 이것은 서로 균등하게 이격되어 있다. 상태(A)로의 메모리 셀들의 프로그래밍시, 시스템은 이러한 메모리 셀들이 Vva보다 큰 임계 전압 혹은 Vva와 동일한 임계 전압을 가지고 있는지 여부를 테스트한다. 상태(B)로의 메모리 셀들의 프로그래밍시, 시스템은 이러한 메모리 셀들이 Vvb보다 큰 임계 전압 혹은 Vvb와 동일한 임계 전압을 가지고 있는지 여부를 테스트한다. 상태(C)로 의 메모리 셀들의 프로그래밍시, 시스템은 메모리 셀들이 Vvc보다 큰 임계 전압 혹은 Vvc와 동일한 임계 전압을 가지고 있는지 여부를 결정한다. 검증 전압은 특정 물리적 상태에 할당된 임계 전압의 범위를 정의하고 그리고 이들 사이의 금지 범위(forbidden ranges)를 정의한다. 검증 레벨은, 한 상태에서의 가장 높은 임계 전압과 다음 상태에서의 가장 낮은 임계 전압 간에 충분한 마진을 제공하도록 이격되어 있다. 소거 상태(E)와 제 1 프로그래밍 상태(A) 사이에 자연적으로 일어나는 더 큰 마진이 존재한다.7 shows three read reference voltages Vra, Vrb, and Vrc for reading data from memory cells. By testing whether the threshold voltages of a given memory cell are above or below Vra, Vrb and Vrc, the system can determine which state the memory cell is in. If the memory cell is in a conductive state at Vra, then the memory cell is in state E. If the memory cell is in the conductive state at Vrb and Vrc but not at the Vra, then the memory cell is in state (A). If the memory cell is conducting at Vrc but not at Vra and Vr, then the memory cell is in state (C). 7 also shows three verification reference voltages Vva, Vvb and Vvc, which are evenly spaced from each other. In programming memory cells to state A, the system tests whether these memory cells have a threshold voltage greater than Vva or a threshold voltage equal to Vva. In programming memory cells to state B, the system tests whether these memory cells have a threshold voltage greater than Vvb or the same threshold voltage as Vvb. In programming memory cells to state C, the system determines whether the memory cells have a threshold voltage greater than Vvc or a threshold voltage equal to Vvc. The verify voltage defines the range of threshold voltages assigned to a particular physical state and forbidden ranges between them. The verify levels are spaced apart to provide sufficient margin between the highest threshold voltage in one state and the lowest threshold voltage in the next state. There is a larger margin naturally occurring between the erase state E and the first programming state A.

도 7은 풀 시퀀스 프로그래밍(full sequence programming)을 또한 도시하고 있다. 풀 시퀀스 프로그래밍에서, 메모리 셀들은 소거 상태(E)로부터 직접적으로 프로그래밍 상태들(A, B, 혹은 C) 중 어느 하나로 프로그래밍된다, 프로그래밍될 한 무리의 메모리 셀들이 먼저 소거될 수 있고 그래서 메모리 셀들 모두는 소거 상태(E)에 있다. 일련의 프로그래밍 전압 펄스들이 선택된 메모리 셀들의 제어 게이트에 인가되어, 메모리 셀들을 상태(A, B 또는 C)에 직접적으로 프로그래밍한다. 일부 메모리 셀들이 상태(E)로부터 상태(A)로 프로그래밍되고, 다른 메모리 셀들은 상태(E)로부터 상태(B)로 프로그래밍되며 그리고/또는 상태(E)로부터 상태(C)로 프로그래밍된다.7 also shows full sequence programming. In full sequence programming, memory cells are programmed into either of the programming states A, B, or C directly from the erase state E, so that a bunch of memory cells to be programmed can be erased first so that all of the memory cells Is in the erased state (E). A series of programming voltage pulses are applied to the control gate of the selected memory cells to program the memory cells directly to state A, B or C. Some memory cells are programmed from state (E) to state (A), other memory cells are programmed from state (E) to state (B) and / or from state (E) to state (C).

도 8은 두 개의 서로 다른 페이지, 즉, 아래쪽 페이지(lower page) 및 위쪽 페이지(upper page)에 대한 복수 상태 메모리 셀들을 프로그래밍하는 2-패스 기술(two-pass technique)의 예를 나타낸다. 네 개의 상태, 즉, 상태(E)(11), 상태(A)(10), 상태(B)(00), 및 상태(C)(01)가 도시되어 있다. 상태(E)에 대해, 양쪽 페이지는 "1"을 저장한다. 상태(A)에 대해, 아래쪽 페이지는 "0"을 저장하고 그리고 위쪽 페이지는 "1"을 저장한다. 상태(B)에 대해, 양쪽 페이지는 "0"을 저장한다. 상태(C)에 대해, 아래쪽 페이지는 "1"을 저장하고 그리고 위쪽 페이지는 "0"을 저장한다. 유의할 것으로, 비록 특정 비트 패턴들이 상태들 각각에 할당되지만, 다른 비트 패턴들이 또한 할당될 수도 있다. 제 1 프로그래밍 패스에서, 셀의 임계 전압 레벨은 아래쪽의 논리적 페이지로 프로그래밍될 비트에 따라 설정된다. 만약 비트가 로직 "1"이라면, 임계 전압은 변하지 않는데, 왜냐하면, 더 일찍 소거된 결과로서 적절한 상태에 있기 때문이다. 그러나, 만약 프로그래밍될 비트가 로직 "0"이라면, 셀의 임계 레벨은 화살표(450)에 의해 도시된 바와 같이 상태(A)가 되도록 증가한다. 이것은 결론적으로 제 1 프로그래밍 패스이다.8 shows an example of a two-pass technique for programming multi-state memory cells for two different pages, a lower page and an upper page. Four states are shown: state (E) 11, state (A) 10, state (B) (00), and state (C) (01). For state E, both pages store "1". For state A, the lower page stores "0" and the upper page stores "1". For state B, both pages store "0". For state C, the lower page stores "1" and the upper page stores "0". Note that although specific bit patterns are assigned to each of the states, other bit patterns may also be assigned. In the first programming pass, the threshold voltage level of the cell is set according to the bit to be programmed into the lower logical page. If the bit is a logic " 1, " the threshold voltage does not change because it is in the proper state as a result of the earlier erasing. However, if the bit to be programmed is a logic "0", the threshold level of the cell is increased to be state A, as shown by arrow 450. This is the first programming pass in conclusion.

제 2 프로그래밍 패스에서, 셀의 임계 전압 레벨은 위쪽의 논리적 페이지로 프로그래밍되는 비트에 따라 설정된다. 만약 위쪽의 논리적 비트가 로직 "1"을 저장해야 한다면, 어떠한 프로그래밍도 일어나지 않는데, 왜냐하면 셀은 아래쪽 페이지 비트의 프로그래밍에 따라 상태(E) 또는 상태(A) 중 하나에 있기 때문이며, 이들 모두는 "1"의 위쪽 페이지 비트를 지니고 있다. 만약 위쪽 페이지 비트가 로직 "0"이 되어야 한다면, 그러면 임계 전압은 시프트된다. 만약 제 1 패스로 셀이 소거 상태(E)에 남아 있다면, 그러면 제 2 위상에서 셀이 프로그래밍 되어 임계 전압은 화살표(454)에 의해 도시된 바와 같이 상태(C)에 있게 되도록 증가한다. 만약 셀이 제 1 프로그래밍 패스의 결과로서 상태(A)로 프로그래밍 된다면, 그러면 메모리 셀은 제 2 패스에서 또한 프로그래밍 되어 임계 전압은 화살표(452)에 의해 도 시된 바와 같이 상태(B)에 있도록 증가된다. 제 2 패스의 결과는 아래쪽 페이지에 대한 데이터를 변경함이 없이 위쪽 페이지에 대한 로직 "0"을 저장하도록 지정된 상태로 셀을 프로그래밍하는 것이다.In the second programming pass, the threshold voltage level of the cell is set according to the bit programmed into the upper logical page. If the upper logical bit has to store a logic "1", no programming takes place because the cell is in either state (E) or state (A), depending on the programming of the lower page bit, all of which are " It has a 1 "top page bit. If the upper page bit should be a logic "0", then the threshold voltage is shifted. If the cell remains in the erased state E in the first pass, then the cell is programmed in the second phase so that the threshold voltage increases to be in state C as shown by arrow 454. If the cell is programmed to state A as a result of the first programming pass, then the memory cell is also programmed in the second pass so that the threshold voltage is increased to be in state B as shown by arrow 452. . The result of the second pass is to program the cell with the specified state to store logic "0" for the upper page without changing the data for the lower page.

일 실시예에서, 시스템은, 만약 충분한 데이터가 전체 페이지를 채우도록 기입된다면, 풀 시퀀스 기입을 수행하도록 설정될 수 있다. 만약 충분한 데이터가 전체 페이지에 대해 기입되지 않는다면, 그러면 프로그래밍 프로세스는 수신된 데이터로 아래쪽 페이지를 프로그래밍할 수 있다. 후속적 데이터가 수신될 때, 시스템은 위쪽 페이지를 프로그래밍한다. 또 다른 실시예에서, 시스템은 2-패스 기술을 사용하여 데이터를 기입하기 시작하고, 그리고 만약 충분한 데이터가 후속적으로 수신되어 전체(또는 대부분의) 워드 라인의 메모리 셀들을 채울 수 있다면, 풀 시퀀스 프로그래밍 모드로 전환한다. 이러한 실시예의 더 상세한 설명은 미국 특허 출원 제11/013,125호(발명의 명칭: "Pipelined Programming of Non- Volatile Memories Using Early Data", 2004.12.14. 출원, 발명자: Sergy Anatolievich Gorobets 및 Yan Li)에서 설명되어 있으며, 이 문헌은 참조로 그 전체가 본 명세서에 통합된다.In one embodiment, the system may be configured to perform full sequence writing if enough data is written to fill the entire page. If not enough data is written for the entire page, then the programming process can program the lower page with the received data. When subsequent data is received, the system programs the upper page. In another embodiment, the system begins writing data using a two-pass technique, and if enough data is subsequently received to fill the memory cells of the entire (or most) word line, the full sequence Switch to programming mode. A more detailed description of this embodiment is described in US patent application Ser. No. 11 / 013,125, entitled "Pipelined Programming of Non-Volatile Memories Using Early Data", Dec. 14, 2004. Applicant, inventors: Sergy Anatolievich Gorobets and Yan Li. Which is hereby incorporated by reference in its entirety.

플로팅 게이트 커플링은 판독 동안 에러 복구의 수행이 필요할 수 있는 판독 동작 동안 회복할 수 없는 에러를 일으킬 수 있다. 메모리 셀의 플로팅 게이트상에 저장된 전하는, 이웃하는 메모리 셀의 플로팅 게이트 혹은 다른 전하 저장 영역(예를 들어, 유전체 전하 저장 영역)에서 저장된 전하로부터의 전계 커플링(electrical field coupling)으로 인해 겉보기 시프트를 경험할 수 있다. 이론상 메모리 어레이에서의 임의의 메모리 셀의 플로팅 게이트 상의 전하로부터의 전계는 어레이 내의 임의의 다른 메모리 셀의 플로팅 게이트에 연결될 수 있고, 그 영향은 인접한 메모리 셀들과 함께 가장 명백하고 확실하다. 인접하는 메모리 셀들은 동일한 비트 라인 상에 있는 이웃하는 메모리 셀들, 동일한 워드 라인 상의 이웃하는 메모리 셀들, 혹은 이웃하는 비트 라인과 이웃하는 워드 라인 양쪽 모두 상에 있는 따라서 대각선 방향에서 서로 인접하고 있는 이웃하는 메모리 셀들을 포함할 수 있다. 전하에서의 겉보기 시프트로 인해, 결과적으로 메모리 셀의 메모리 상태 판독시 에러가 일어날 수 있다.Floating gate coupling can cause unrecoverable errors during read operations that may require performing error recovery during reads. The charge stored on the floating gate of the memory cell causes apparent shifts due to electrical field coupling from charge stored in the floating gate or other charge storage region (e.g., dielectric charge storage region) of the neighboring memory cell. You can experience it. In theory, the electric field from the charge on the floating gate of any memory cell in the memory array can be connected to the floating gate of any other memory cell in the array, the effect of which is most obvious and obvious with the adjacent memory cells. Adjacent memory cells are neighboring memory cells on the same bit line, neighboring memory cells on the same word line, or adjacent neighboring each other in a diagonal direction on both neighboring bit lines and neighboring word lines. It may include memory cells. The apparent shift in charge can result in errors in reading the memory state of the memory cell.

플로팅 게이트 커플링의 영향은, 타겟 메모리 셀에 인접한 메모리 셀이 타겟 메모리 셀로 후속적으로 프로그래밍 되는 상황에서 가장 명백하지만, 그러나 그 영향은 다른 상황에서도 또한 관측될 수 있다. 인접한 메모리 셀의 플로팅 게이트 상에 놓여진 전하 혹은 전하의 일부는 전계 커플링을 통해 타겟 메모리에 효과적으로 커플링되고, 그 결과 타겟 메모리 셀의 임계 전압의 겉보기 시프트가 일어난다. 메모리 셀의 겉보기 임계 전압은, 프로그래밍된 이후에, 메모리 상태에서 메모리 셀에 대해 예측되는 바와 같이, 인가된 기준 하에서 판독 기준 전압을 턴온 및 턴오프 (전도) 시키지 않는 그러한 정도까지 시프트될 수 있다.The effect of floating gate coupling is most apparent in the situation where a memory cell adjacent to the target memory cell is subsequently programmed into the target memory cell, but the effect can also be observed in other situations. The charge or a portion of the charge placed on the floating gate of the adjacent memory cell is effectively coupled to the target memory through electric field coupling, resulting in an apparent shift in the threshold voltage of the target memory cell. The apparent threshold voltage of the memory cell may be shifted to such an extent that after being programmed, the read reference voltage does not turn on and off (conduct) under the applied reference, as expected for the memory cell in the memory state.

전형적으로, 메모리 셀들의 로우는 소스 측 선택 게이트 라인에 인접한 워드 라인(WL0)과 함께 시작하여 프로그래밍된다. 따라서 프로그래밍은 셀들의 스트링을 통해 워드 라인(WLl, WL2, WL3, 등)에 의해 순차적으로 진행하고, 그래서 적어도 하나의 데이터 페이지가 이전의 워드 라인(WLn)의 프로그래밍 완료(워드 라인의 각 각의 셀을 그 최종 상태에 놓는 것) 이후에 인접한 워드 라인(WLn+1)에 프로그래밍된다. 이러한 프로그래밍 패턴은, 이들이 프로그래밍 된 이후에 플로팅 게이트 커플링으로 인한 메모리 셀들의 임계 전압의 겉보기 시프트를 일으킨다. 프로그래밍될 스트링의 마지막 워드 라인 이외의 모든 워드 라인에 대해, 인접한 워드 라인이 해당 워드 라인의 프로그래밍 완료에 후속하여 프로그래밍 된다. 인접한 이후에 프로그래밍되는 워드 라인 상의 메모리 셀들의 플로팅 게이트에 더해지는 음의전하는 해당 워드 라인 상의 메모리 셀들의 겉보기 임계 전압을 상승시킨다.Typically, a row of memory cells is programmed starting with word line WL0 adjacent to the source side select gate line. Thus, programming proceeds sequentially by word lines WLl, WL2, WL3, etc. through strings of cells, so that at least one data page has completed programming of the previous word line WLn (each of the word lines). After the cell is put into its final state, it is programmed to the adjacent word line WLn + 1. This programming pattern causes an apparent shift in the threshold voltages of the memory cells due to floating gate coupling after they are programmed. For all word lines other than the last word line of the string to be programmed, adjacent word lines are programmed following the completion of programming of that word line. Negative charge added to the floating gate of memory cells on a word line that is subsequently contiguous then increases the apparent threshold voltage of the memory cells on that word line.

도 9A 내지 도 10B는 도 7에 도시된 바와 같이 풀 시퀀스 프로그래밍을 사용하여 프로그래밍되는 메모리 셀들의 세트에 대한 플로팅 게이트 커플링의 영향을 도시한다. 도 9B는 프로그래밍된 이후에 선택된 워드 라인(WLn)의 메모리 셀들의 세트에 대한 임계 전압 분포를 나타낸 것이다. 분포(500)는 소거된(프로그래밍되지 않은) 상태(E)에서의 WLn에서의 셀들의 실제 임계 전압 분포를 나타낸 것이고, 분포(505)는 상태(A)로 프로그래밍되는 WLn에서의 셀들의 실제 임계 전압 분포를 나타낸 것이고, 분포(510)는 상태(B)로 프로그래밍되는 WLn에서의 셀들의 실제 임계 전압 분포를 나타낸 것이고, 그리고 분포(520)는 상태(C)로 프로그래밍되는 WLn에서의 셀들의 실제 임계 전압 분포를 나타낸 것이다. 메모리 셀들의 세트는 선택된 로우 혹은 워들 라인(WLn)의 각각의 메모리 셀 혹은 특정 타입의 비트 라인(짝수 혹은 홀수)에 연결된 WLn의 셀들을 단지 포함할 수 있다. 도 9A는 프로그래밍 전에 인접한 워드 라인(WLn+1)의 메모리 셀들에 대한 임계 전압 분포를 나타낸다. WLn+1의 셀들은 WLn의 셀들을 프로그래밍 이후에 프로그래밍된다. WLn+1에서의 각각의 셀이 소거되고 아직 프로그래밍되지 않았기 때문에, 이들은 WLn의 셀들 상에 어떠한 역 플로팅 게이트 커플링 영향을 일으키지 않는다. 더 중요한 것은, 이들은 WLn을 프로그래밍할 때 이들이 존재하는 상태와 동일한 상태에 있고, 그래서 WLn의 셀은 프로그래밍 동안 검증된 레벨과 동일한 겉보기 임계 전압을 갖는다.9A-10B illustrate the effect of floating gate coupling on a set of memory cells that are programmed using full sequence programming as shown in FIG. 9B shows a threshold voltage distribution for a set of memory cells of a selected word line WLn after being programmed. Distribution 500 shows the actual threshold voltage distribution of cells in WLn in an erased (unprogrammed) state E, and distribution 505 shows the actual threshold of cells in WLn programmed to state A. Shows a voltage distribution, distribution 510 shows the actual threshold voltage distribution of cells in WLn programmed to state B, and distribution 520 shows the actual threshold voltage of cells in WLn programmed to state C The threshold voltage distribution is shown. The set of memory cells may only include each memory cell of the selected row or word line WLn or cells of WLn connected to a particular type of bit line (even or odd). 9A shows threshold voltage distributions for memory cells in adjacent word line WLn + 1 prior to programming. The cells of WLn + 1 are programmed after programming the cells of WLn. Since each cell at WLn + 1 has been erased and not yet programmed, they do not cause any reverse floating gate coupling effect on the cells of WLn. More importantly, they are in the same state in which they are present when programming WLn, so the cells in WLn have an apparent threshold voltage equal to the level verified during programming.

도 10A는 프로그래밍 이후의 WLn+1의 메모리 셀들의 세트에 대한 임계 전압 분포를 도시한 것이다. 메모리 셀들은 소거된 임계 전압 분포(E)로부터 프로그래밍된 임계 전압 분포(A, B, 및 C)로 프로그래밍된다. 워드 라인(WLn)을 프로그래밍 한 이후에 워드 라인(WLn+1)의 메모리 셀들의 플로팅 게이트들 상에 놓여진 전하는 감지 동안 메모리 시스템에 의해 관측된 바와 같이 WLn의 메모리 셀들의 메모리 상태를 변경시킬 수 있다. 워드 라인(WLn+1)의 플로팅 게이트들 상의 전하들과 관련된 전계는 워드 라인(WLn)에서의 메모리 셀들의 플로팅 게이트에 커플링된다. 전계는 WLn에서의 메모리 셀들의 임계 전압에서 겉보기 시프트를 일으킬 수 있다.Figure 10A shows the threshold voltage distribution for a set of WLn + 1 memory cells after programming. The memory cells are programmed from the erased threshold voltage distribution (E) to the programmed threshold voltage distributions (A, B, and C). The charge placed on the floating gates of the memory cells of word line WLn + 1 after programming the word line WLn may change the memory state of the memory cells of WLn as observed by the memory system during sensing. . The electric field associated with the charges on the floating gates of word line WLn + 1 is coupled to the floating gate of the memory cells in word line WLn. The electric field may cause an apparent shift in the threshold voltage of the memory cells at WLn.

도 10B는 WLn+1의 프로그래밍 이후에 워드 라인(WLn)에서의 메모리 셀들에 대한 겉보기 임계 전압 분포를 나타낸 것이다. 각각의 프로그래밍 상태가 네 개의 서로 다른 대응하는 임계 전압 분포로 도시되어 있다. 각각의 물리적 상태에 대한 전체 분포가, 워드 라인(WLn+1)에서의 인접하는 메모리 셀들이 프로그래밍되는 상태에 근거하여 네 개의 개개의 분포들로 나누어질 수 있다. 상태(A)로 프로그래밍되는 (동일 비트 라인 상의) WLn+1에서의 인접하는 메모리 셀을 갖는 워드 라인(WLn)에서의 각각의 메모리 셀은 그 겉보기 임계 전압에서의 제 1 시프트 레벨을 경험한다. 상태(B)에서 WLn+1에서의 인접하는 셀을 갖는 WLn에서의 각각의 셀은 겉 보기 임계 전압에서 제2의 더 큰 시프트를 경험한다. 상태(C)에서의 인접하는 메모리 셀을 갖는 각각의 셀이 제3의 더 큰 시프트를 경험한다.Figure 10B shows the apparent threshold voltage distribution for memory cells in word line WLn after programming WLn + 1. Each programming state is shown with four different corresponding threshold voltage distributions. The overall distribution for each physical state can be divided into four individual distributions based on the state in which adjacent memory cells in the word line WLn + 1 are programmed. Each memory cell in word line WLn having an adjacent memory cell at WLn + 1 (on the same bit line) programmed to state A experiences a first shift level at its apparent threshold voltage. Each cell at WLn with an adjacent cell at WLn + 1 in state B experiences a second larger shift in apparent threshold voltage. Each cell with an adjacent memory cell in state C experiences a third larger shift.

상태(A)에서의 WLn에서의 셀들에 대해, 분포(502)는 프로그래밍 이후의 소거 상태(E)에 남아있는 워드 라인(WLn+1) 상에 인접하는 메모리 셀을 가지는 그러한 셀들에 대한 임계 전압을 나타낸다. 분포(504)는 상태(A)로 프로그래밍 되는 워드 라인(WLn+1)에서의 인접한 셀들을 가지는 셀들에 대한 임계 전압을 나타낸다. 분포(506)는 상태(B)로 프로그래밍되는 워드 라인(WLn+1)에서의 인접한 셀들을 가지는 셀들에 대한 임계 전압을 나타낸다. 분포(508)는 상태(C)로 프로그래밍 되는 워드 라인(WLn+1)에서의 인접한 셀들을 가지는 셀들에 대한 임계 전압을 나타낸다.For cells at WLn in state A, distribution 502 is the threshold voltage for those cells having adjacent memory cells on word line WLn + 1 remaining in erased state E after programming. Indicates. Distribution 504 represents the threshold voltage for cells with adjacent cells in word line WLn + 1 that are programmed to state A. Distribution 506 represents the threshold voltage for cells with adjacent cells in word line WLn + 1 that are programmed to state B. Distribution 508 represents the threshold voltage for cells with adjacent cells in word line WLn + 1 that are programmed to state C.

다른 상태로 프로그래밍되는 WLn에서의 메모리 셀들은 유사한 커플링 효과를 경험한다. 따라서, 네 개의 개개의 임계 전압 분포가 또한 상태(B) 및 상태(C)에 대해 도시된다. 상태(B)로 프로그래밍되는 워드 라인(WLn)에서의 메모리 셀들은 워드 라인(WLn+1)에서의 인접한 메모리 셀들의 후속적으로 프로그래밍 되는 상태에 근거하여 네 개의 서로 다른 임계 전압 분포(512, 514, 516, 및 518)를 가지는 것처럼 보인다. 상태(C)로 프로그래밍 되는 WLn의 메모리 셀들은 마찬가지로 네 개의 서로 다른 분포(522, 524, 526, 및 528)를 가진다. 유의해야만 하는 것으로, WLn의 소거된 메모리 셀은 또한 커플링 영향을 경험한다. 시프트가 도시되지 않았는데, 왜냐하면 소거 상태(E)와 상태(A) 사이에 자연적으로 일어나는 마진은 일반적으로 충분하여, 시프팅은 소거된 셀들의 판독시 어떠한 에러도 일으키지 않는다. 그러나, 이러한 영향은 존재하며, 그리고 개시되는 기술은 이러한 것들을 잘 처리할 수 있다.Memory cells in WLn programmed to different states experience similar coupling effects. Thus, four individual threshold voltage distributions are also shown for state B and state C. FIG. Memory cells in word line WLn programmed to state B may have four different threshold voltage distributions 512 and 514 based on the subsequently programmed state of adjacent memory cells in word line WLn + 1. , 516, and 518). The memory cells of WLn programmed to state C likewise have four different distributions 522, 524, 526, and 528. It should be noted that erased memory cells of WLn also experience coupling effects. The shift is not shown because the naturally occurring margin between the erased state (E) and state (A) is generally sufficient, so that the shifting does not cause any error in reading the erased cells. However, these effects exist and the technology disclosed can handle these well.

메모리 셀들의 겉보기 임계 전압에서의 증가는 판독 에러를 일으킬 수 있다. 도 10B에 도시된 바와 같이, 본래 상태(A)로 프로그래밍 되는 WLn의 일부 메모리 셀들은 판독 기준 전압 레벨(Vrb)을 넘어 시프트된 임계 전압을 가질 수 있다. 이것은 결과적으로 판독시 에러를 일으킬 수 있다. 판독 기준 전압(Vrb)이 인가되는 경우, 이러한 메모리 셀들은 이들이 상태(A)로 프로그래밍될 지라도 전도하지 않을 수 있다. 상태 머신 및 제어기는 (Vrb가 인가된 경우 어떠한 전도도 감지하지 못한 이후) 메모리 셀들이 상태(A)에 있다기보다는 상태(B)에 있다고 결정할 수 있다. 상태(B)로 본래 프로그래밍 되는 WLn의 일부 메모리 셀들은 또한 판독 기준 전압(Vrc)을 넘어 시프트할 수 있고, 이것은 잠재적으로 동일한 방식에서 판독 에러를 일으킬 수 있다.An increase in the apparent threshold voltage of the memory cells can cause a read error. As shown in FIG. 10B, some memory cells of WLn programmed into the original state A may have a threshold voltage shifted beyond the read reference voltage level Vrb. This may result in errors in reading. When a read reference voltage Vrb is applied, these memory cells may not conduct even though they are programmed to state A. The state machine and controller may determine that the memory cells are in state B rather than in state A (after Vrb has not detected any conduction). Some memory cells of WLn originally programmed to state B may also shift beyond the read reference voltage Vrc, which could potentially cause a read error in the same manner.

도 11은 도 10B에서 도시된 임계 전압에서의 겉보기 시프트들의 일부를 처리하는데 사용될 수 있는 판독 기술을 설명한다. 도 11에서, 도 10B에 도시된 WLn에서의 셀들의 각각의 상태에 대한 네 개의 분포가 한 무리의 메모리 셀들 상에서의 커플링의 누적적 영향을 나타내는 분포(530, 540, 및 550)로 줄어들었다. 분포(530)는 WLn+1을 프로그래밍한 이후에 상태(A)에서의 WLn의 셀들을 나타내고, 분포(540)는 WLn+1을 프로그래밍한 이후에 상태(B)에서의 WLn의 셀들을 나타내고, 그리고 분포(550)는 WLn+1을 프로그래밍한 이후에 상태(C)에서의 WLn의 셀들을 나타낸다. 분포(530)는 개개의 분포(502-508)를 분포하고, 분포(540)는 개개의 분포(512-518)를 분포하고, 그리고 분포(550)는 개개의 분포(522-528)를 분포한다.FIG. 11 illustrates a read technique that can be used to handle some of the apparent shifts in the threshold voltage shown in FIG. 10B. In FIG. 11, four distributions for each state of the cells in WLn shown in FIG. 10B have been reduced to distributions 530, 540, and 550 indicating the cumulative effect of coupling on a group of memory cells. . Distribution 530 represents cells of WLn in state A after programming WLn + 1, distribution 540 represents cells of WLn in state B after programming WLn + 1, And distribution 550 represents the cells of WLn in state C after programming WLn + 1. Distribution 530 distributes individual distributions 502-508, distribution 540 distributes individual distributions 512-518, and distribution 550 distributes individual distributions 522-528. do.

워드 라인(Wln) 상의 데이터 판독 시, 워드 라인(WLn+1)의 데이터가 또한 판독될 수 있으며, 그리고 만약 워드 라인(WLn+1) 상의 데이터가 WLn 상의 데이터를 방해한다면, WLn에 대한 판독 프로세스가 그러한 방해를 보상할 수 있다. 예를 들어, 워드 라인(WLn)을 판독할 때, 워드 라인(WLn+1)에서의 메모리 셀들에 대한 상태 혹은 전하 레벨 정보가 워드 라인(WLn)의 개개의 메모리 셀들을 판독하기 위한 적절한 판독 기준 전압을 선택하기 위해 결정될 수 있다. 도 11은 워드 라인(WLn+1)에서의 인접한 메모리 셀의 상태에 근거하여 WLn을 판독하기 위한 개개의 판독 기준 전압을 나타낸 것이다. 일반적으로, 공칭 판독 기준 전압에 대한 서로 다른 오프셋(예를 들어, OV, 0.1V, 0.2V, 0.3V)이 사용되고, 그리고 서로 다른 오프셋에서의 감지의 결과가 이웃하는 워드 라인 상의 메모리 셀의 상태의 함수로서 선택된다. 일 실시예에서, 워드 라인(WLn)에서의 메모리 셀들은 서로 다른 판독 기준 전압들 각각을 사용하여 감지된다. 주어진 메모리 셀에 대해, 판독 기준 전압들 중 적절한 하나에서의 감지로부터의 결과는 워드 라인(WLn+1)에서의 인접하는 메모리 셀의 상태에 근거하여 선택될 수 있다. 일부 실시예에서, WLn+1에 대한 판독 동작은 WLn+1에서 저장된 실제 데이터를 결정하고, 반면에 다른 실시예에서, WLn+1에 대한 판독 동작은 단지 이러한 셀들의 전하 레벨을 결정하는데, 이것은 WLn+1에 저장된 데이터를 실제로 반영할 수도 있고 반영하지 않을 수도 있다. 일부 실시예들에서, WLn+1을 판독하기 위해 사용되는 레벨들 및/또는 레벨들의 개수는 WLn을 판독하기 위해 사용되는 것과 정확히 동일하지 않을 수 있다. 플로팅 게이트 임계 전압 값의 어떤 근사값이 일부 실시예들에서 WLn 정정을 위해 충분할 수 있다. 일 실 시예에서, WLn+1에서의 판독의 결과는 WLn 판독시 사용될 각각의 비트 라인에서 래치(322)에 저장될 수 있다.In reading the data on the word line Wln, the data of the word line WLn + 1 can also be read, and if the data on the word line WLn + 1 interferes with the data on the WLn, then the read process for the WLn. Can compensate for such disturbances. For example, when reading the word line WLn, the state or charge level information for the memory cells in the word line WLn + 1 is an appropriate read criterion for reading the individual memory cells of the word line WLn. Can be determined to select the voltage. 11 shows the individual read reference voltages for reading WLn based on the state of adjacent memory cells in word line WLn + 1. In general, different offsets (eg, OV, 0.1V, 0.2V, 0.3V) are used for the nominal read reference voltages, and the state of the memory cell on the neighboring word line results from sensing at different offsets. Is selected as a function of In one embodiment, memory cells in the word line WLn are sensed using each of the different read reference voltages. For a given memory cell, the result from sensing at the appropriate one of the read reference voltages may be selected based on the state of the adjacent memory cell at word line WLn + 1. In some embodiments, the read operation for WLn + 1 determines the actual data stored at WLn + 1, while in other embodiments, the read operation for WLn + 1 only determines the charge level of these cells, which is The data stored in WLn + 1 may or may not be reflected. In some embodiments, the levels and / or number of levels used to read WLn + 1 may not be exactly the same as used to read WLn. Any approximation of the floating gate threshold voltage value may be sufficient for WLn correction in some embodiments. In one embodiment, the result of the read at WLn + 1 may be stored in latch 322 at each bit line to be used in reading the WLn.

판독 동작이 먼저, 어떠한 커플링 영향도 보상하지 않은 공칭 판독 기준 전압 레벨(Vra, Vrb, 및 Vrc)에서의 해당 워드 라인(WLn)에 대해 수행될 수 있다. 공칭 기준 레벨에서의 판독의 결과가 WLn+1에서의 이웃하는 셀이 상태(E)에 있는 것으로 결정되는 메모리 셀들을 갖는 비트 라인들에 대해 적절한 래치에 저장된다. 다른 비트 라인들에 대해, 데이터는 무시되고, 그리고 WLn+1 데이터는 유지된다. 판독 동작이 그 다음에, 판독 기준 전압에 제 1 오프셋 세트를 사용하여 워드 라인(WLn)에 대해 수행된다. 판독 프로세스는 Vra1(Vra + 0.1V), Vrbl(Vrb + 0.1V) 및 Vrcl(Vrc + 0.1V)를 사용할 수 있다. 이러한 기준 값들을 사용한 결과는 상태(A)에서의 WLn+1에서의 이웃하는 메모리 셀들을 가지는 메모리 셀들을 갖는 비트 라인들에 대해 저장된다. 그 다음에 판독 동작이 Vra2(Vra + 0.2V), Vrb2(Vrb + 0.2V) 및 Vrc2(Vrc + 0.2V)를 사용하여 제 2 오프셋 세트를 사용하여 수행된다. 그 결과는 상태(B)에서의 WLn+1에서의 이웃들을 가지는 메모리 셀들을 갖는 비트 라인들에 대해 래치에 저장된다. 판독 동작이 Vra3(Vra + 0.3V), Vrb3(Vrb + 0.3V) 및 Vrc3(Vrc + 0.3V)를 사용하여 제 3 오프셋 세트를 사용하여 워드 라인(WLn)에 대해 수행되고, 그리고 그 결과는 상태(C)에서의 WLn+1에서의 이웃하는 셀들을 가지는 메모리 셀들을 갖는 그러한 비트 라인들에 대해 저장된다. 일부 실시예들에서, 상태(E)와 상태(A) 간의 더 큰 자연적 마진으로 인해, 어떠한 오프셋들도 Vra에서 사용되지 않는다. 단일의 판독 기준 전압(Vra)이 상태(A) 레벨에서 도시된 도 11에 그러한 실시예가 도시되어 있다. 다른 실시예들은 또한 이러한 레벨에 대한 오프셋들을 사용할 수 있다.A read operation may first be performed for the corresponding word line WLn at nominal read reference voltage levels Vra, Vrb, and Vrc that do not compensate for any coupling effect. The result of the read at the nominal reference level is stored in the appropriate latch for the bit lines with memory cells whose neighboring cell at WLn + 1 is determined to be in state E. For other bit lines, data is ignored, and WLn + 1 data is maintained. A read operation is then performed on word line WLn using the first set of offsets for the read reference voltage. The read process may use Vra1 (Vra + 0.1V), Vrbl (Vrb + 0.1V) and Vrcl (Vrc + 0.1V). The result of using these reference values is stored for bit lines with memory cells having neighboring memory cells at WLn + 1 in state A. A read operation is then performed using the second set of offsets using Vra2 (Vra + 0.2V), Vrb2 (Vrb + 0.2V) and Vrc2 (Vrc + 0.2V). The result is stored in the latch for bit lines with memory cells having neighbors at WLn + 1 in state B. A read operation is performed on word line WLn using a third set of offsets using Vra3 (Vra + 0.3V), Vrb3 (Vrb + 0.3V) and Vrc3 (Vrc + 0.3V), and the result is Stored for those bit lines with memory cells having neighboring cells at WLn + 1 in state C. In some embodiments, due to the greater natural margin between state E and state A, no offsets are used in Vra. Such an embodiment is shown in FIG. 11 in which a single read reference voltage Vra is shown at the state A level. Other embodiments may also use offsets for this level.

공칭 판독 기준 전압에 대한 서로 다른 오프셋들이 인접하는 워드 라인 상의 메모리 셀의 상태의 함수로서 선택될 수 있다. 예를 들어, 오프셋 값들의 세트는 상태(E)에서의 인접한 셀에 대응하는 0V 오프셋과, 상태(A)에서의 인접한 셀에 대응하는 0.1V 오프셋과, 상태(B)에서의 인접한 셀에 대응하는 0.2V 오프셋과, 그리고 상태(C)에서의 인접한 셀에 대응하는 0.3V 오프셋을 포함할 수 있다. 오프셋 값들은 실시예에 따라 변한다. 일 실시예에서, 오프셋 값들은 대응하는 상태로 프로그래밍되는 인접하는 셀로부터 일어나는 겉보기 임계 전압에서의 시프트의 양과 동일하다. 예를 들어, 0.3V는 WLn+1에서의 인접하는 셀이 상태(C)로 후속적으로 프로그래밍될 때, WLn에서의 셀에 대한 겉보기 임계 전압에서의 시프트를 나타낼 수 있다. 오프셋 값들은 모든 기준 전압에 대해 동일할 필요는 없다. 예를 들어, Vrb 기준에 대한 오프셋 값들은 OV, 0.1V, 0.2V, 및 0.3V일 수 있으며, 반면에 Vrc 기준 전압에 대한 오프셋 값들은 OV, 0.15V, 0.25V, 및 0. 35V일 수 있다, 추가적으로 오프셋들에서의 증분은 모든 상태에 대해 동일할 필요가 없다. 예를 들어, 일 실시에에서 오프셋 세트는 상태(E, A, B, 및 C)에서의 인접하는 셀들에 대해 각각 OV, 0.1V, 0.3V, 및 0.4V를 포함할 수 있다.Different offsets for the nominal read reference voltage may be selected as a function of the state of the memory cell on the adjacent word line. For example, the set of offset values corresponds to an 0V offset corresponding to an adjacent cell in state E, a 0.1V offset corresponding to an adjacent cell in state A, and an adjacent cell in state B. 0.2V offset, and 0.3V offset corresponding to the adjacent cell in state (C). Offset values vary depending on the embodiment. In one embodiment, the offset values are equal to the amount of shift in the apparent threshold voltage resulting from the adjacent cell programmed to the corresponding state. For example, 0.3V may represent a shift in apparent threshold voltage for the cell at WLn when the adjacent cell at WLn + 1 is subsequently programmed to state C. Offset values need not be the same for all reference voltages. For example, the offset values for the Vrb reference can be OV, 0.1V, 0.2V, and 0.3V, while the offset values for the Vrc reference voltage can be OV, 0.15V, 0.25V, and 0.35V. In addition, the increments in the offsets need not be the same for all states. For example, in one embodiment the offset set may include OV, 0.1V, 0.3V, and 0.4V for adjacent cells in states E, A, B, and C, respectively.

일 실시예에서, 주어진 상태에 대한 복수의 개개의 판독 기준 레벨을 사용하여 판독하는 것, 그리고 인접하는 메모리 셀의 상태에 근거하여 그 결과를 선택하는 것은 약 50 퍼센트만큼 플로팅 게이트 전하 커플링의 영향을 감소시킬 것으로 예측될 수 있다. 감지 모듈에 의해 판독되는 바와 같이 메모리 셀들의 워드 라인에 대한 임계 전압 분포는 이러한 기술을 사용하여 약 50 퍼센트만큼 효과적으로 좁혀질 수 있다.In one embodiment, reading using a plurality of individual read reference levels for a given state, and selecting the result based on the state of adjacent memory cells, affects the floating gate charge coupling by about 50 percent. It can be expected to reduce. As read by the sensing module, the threshold voltage distribution for the word line of memory cells can be effectively narrowed by about 50 percent using this technique.

플로팅 게이트 커플링으로부터 임계 전압에서의 겉보기 시프트를 감소시키기 위해 비휘발성 메모리에 대한 프로그래밍 프로세스를 구성하는 것이 가능하다. 도 12A 내지 도 12C는, 임의의 특정 메모리 셀에 대해, 이전의 페이지에 대한 인접하는 메모리 셀들에 기입 이후에, 특정 페이지에 대한 그 특정 메모리 셀에 기입함으로써, 플로팅 게이트 대 플로팅 게이트 커플링을 감소시키는 비휘발성 메모리를 프로그래밍하기 위한 프로세스를 나타낸다. 도 12A 내지 도 12C의 예에서, 각각의 셀은, 네 개의 데이터 상태를 사용하여, 메모리 셀당 두 비트의 데이터를 저장한다. 소거 상태(E)는 데이터(11)를 저장하고, 상태(A)는 데이터(01)를 저장하고, 상태(B)는 데이터(10)를 저장하고, 그리고 상태(C)는 데이터(00)를 저장한다. 물리적 데이터 상태로 데이터를 인코딩하는 다른 여러 방법들이 또한 사용될 수도 있다. 각각의 메모리 셀들은 두 개의 논리적 데이터 페이지의 일부를 저장한다. 참고 목적으로, 이러한 페이지들은 위쪽 페이지 및 아래쪽 페이지로 언급되지만, 다른 명칭이 부여될 수 있다. 상태(A)는 위쪽 페이지에 대해 비트 0을 저장하도록 인코딩되고, 그리고 아래쪽 페이지에 대해 비트 1을 저장하도록 인코딩되며, 상태(B)는 위쪽 페이지에 대해 비트 1을 저장하도록 인코딩되고, 그리고 아래쪽 페이지에 대해 비트 0을 저장하도록 인코딩되며, 그리고 상태(C)는 양쪽 페이지에 대해 비트 0을 저장하도록 인코딩된다. 워드 라인(WLn)에서의 메모리 셀들에 대한 아래쪽 페이 지 데이터는 도 12A에 도시된 제 1 단계에서 프로그래밍되고, 그리고 셀들에 대한 위쪽 페이지 데이터는 도 12C에 도시된 제 2 단계에서 프로그래밍된다. 만약 아래쪽 페이지 데이터가 셀에 대해 데이터 1을 유지하여야 한다면, 그러면 셀의 임계 전압은 제 1 단계 동안 상태(E)에서 유지된다. 만약 데이터가 0으로 프로그래밍되어야 한다면, 메모리 셀의 임계 전압은 상태(B')로 상승된다. 상태(B')는 Vvb보다 더 낮은 검증 레벨 Vvb'를 갖는 중간 상태(interim state)(B)이다.It is possible to configure a programming process for nonvolatile memory to reduce the apparent shift in threshold voltage from floating gate coupling. 12A-12C reduce floating gate to floating gate coupling by writing to a particular memory cell for a particular page after writing to adjacent memory cells for a previous page, for any particular memory cell. A process for programming a nonvolatile memory is described. In the example of Figures 12A-12C, each cell stores two bits of data per memory cell, using four data states. The erased state E stores the data 11, the state A stores the data 01, the state B stores the data 10, and the state C stores the data 00. Save it. Several other methods of encoding data into the physical data state may also be used. Each memory cell stores a portion of two logical data pages. For reference purposes, these pages are referred to as the top page and the bottom page, but may be given other names. State A is encoded to store bit 0 for the upper page, and is encoded to store bit 1 for the lower page, state B is encoded to store bit 1 for the upper page, and Is encoded to store bit 0 for, and state C is encoded to store bit 0 for both pages. The lower page data for the memory cells in the word line WLn is programmed in the first step shown in FIG. 12A, and the upper page data for the cells is programmed in the second step shown in FIG. 12C. If the lower page data should hold data 1 for the cell, then the cell's threshold voltage is maintained in state E during the first step. If the data is to be programmed to zero, the threshold voltage of the memory cell is raised to state B '. State B 'is an interim state B with a lower verify level Vvb' than Vvb.

일 실시예에서, 메모리 셀에 대한 아래쪽 페이지 데이터가 프로그래밍된 이후, 인접하는 워드 라인(WLn+1)에서의 이웃하는 메모리 셀들은 그들의 아래쪽 페이지에 관하여 프로그래밍된다. 예를 들어, 도 3의 WL2에서의 메모리 셀들에 대한 아래쪽 페이지 데이터는 WL1에서의 메모리 셀들에 대한 아래쪽 페이지 이후에 프로그래밍될 수 있다. 플로팅 게이트 커플링은, 만약 메모리 셀(226)의 프로그래밍 이후에 메모리 셀(224)의 임계 전압이 상태(E)로부터 상태(B')로 상승된다면, 메모리 셀(226)의 겉보기 임계 전압을 상승시킬 수 있다. WLn에서의 메모리 셀들 상의 누적적 커플링 영향은 도 12B에서 도시된 바와 같이, 셀들에 대한 임계 전압의 겉보기 임계 전압 분포의 폭을 넓힌다. 임계 전압 분포의 겉보기 폭 넓어짐은 해당 워드 라인에 대한 위쪽 페이지를 프로그래밍할 때 치유될 수 있다.In one embodiment, after the lower page data for a memory cell is programmed, neighboring memory cells in adjacent word line WLn + 1 are programmed with respect to their lower page. For example, the lower page data for memory cells in WL2 of FIG. 3 may be programmed after the lower page for memory cells in WL1. Floating gate coupling raises the apparent threshold voltage of memory cell 226 if the threshold voltage of memory cell 224 rises from state E to state B 'after programming memory cell 226. You can. The cumulative coupling effect on the memory cells at WLn widens the apparent threshold voltage distribution of the threshold voltage for the cells, as shown in FIG. 12B. The apparent widening of the threshold voltage distribution can be cured when programming the upper page for that word line.

도 12C는 WLn에서의 셀에 대한 위쪽 페이지를 프로그래밍하는 프로세스를 나타낸다. 만약 메모리 셀이 소거 상태(E)에 있고, 그리고 위쪽 페이지 비트가 1에서 유지되어야 한다면, 메모리 셀은 상태(E)에서 유지된다. 만약 메모리 셀이 소거 상태(E)에 있고, 그리고 위쪽 페이지 비트가 0으로 프로그래밍되어야 한다면, 메모리 셀의 임계 전압은 상태(A)에 대한 범위 내에 있도록 상승된다. 만약 메모리 셀이 중간 임계 전압 분포(B')에 있고, 그리고 그 위쪽 페이지 데이터가 1을 유지해야 한다면, 메모리 셀은 최종 상태(B)로 프로그래밍 된다. 만약 메모리 셀이 중간 임계 전압 분포(B')에 있고, 그리고 그 위쪽 페이지 데이터가 0을 유지해야 한다면, 메모리 셀의 임계 전압은 상태(C)에 대한 범위 내에 있도록 상승된다. 도 12A 내지 도 12C에 의해 도시된 프로세스는 플로팅 게이트 커플링의 영향을 감소시키는데, 왜냐하면 단지 이웃 메모리 셀들의 위쪽 페이지 프로그래밍만이 주어진 메모리 셀의 겉보기 임계 전압에 영향을 미치기 때문이다. 이러한 기술을 위한 교번적 상태 코딩(alternate state coding)의 예는 위쪽 페이지 데이터가 1일 때 중간 상태(B')에서 상태(C)로 이동하는 것이고, 그리고 위쪽 페이지 데이터가 '0'일 때 상태(B)로 이동하는 것이다. 도 12A 내지 도 12C가 비록 네 개의 데이터 상태 및 두 개의 데이터 페이지에 관한 예를 제공하지만, 도 12A 내지 도 12C에 의해 설명된 개념들은 네 개보다 많거나 혹은 적은 상태들 및 다른 개수의 페이지를 가진 다른 실시예들에도 적용될 수 있다.12C shows the process of programming the upper page for the cell at WLn. If the memory cell is in the erase state (E), and the upper page bit should be kept at 1, the memory cell is kept in the state (E). If the memory cell is in the erase state E, and the upper page bit should be programmed to zero, the threshold voltage of the memory cell is raised to be within the range for state A. If the memory cell is in the intermediate threshold voltage distribution B ', and its upper page data must remain 1, then the memory cell is programmed to its final state B. If the memory cell is in the intermediate threshold voltage distribution B ', and its upper page data must remain zero, the threshold voltage of the memory cell is raised to fall within the range for state C. The process illustrated by FIGS. 12A-12C reduces the effect of floating gate coupling, because only upper page programming of neighboring memory cells affects the apparent threshold voltage of a given memory cell. An example of alternate state coding for this technique is to move from intermediate state (B ') to state (C) when the upper page data is 1, and state when the upper page data is' 0'. Go to (B). Although FIGS. 12A-12C provide examples of four data states and two data pages, the concepts described by FIGS. 12A-12C may have more or fewer states than four and different numbers of pages. It may be applied to other embodiments.

도 13A는 도 12A 내지 도 12C의 프로그래밍 기술에 대한 플로팅 게이트 커플링의 영향을 나타낸 것이고, 그리고 도 13B는 이러한 영향들 중 일부를 극복하기 위해 보상 오프셋들 사용하는 판독 방법을 나타낸 것이다. 워드 라인(WLn)에 인접하는 워드 라인(WLn+1)의 메모리 셀은 제 3 패스 동안 프로그래밍되어 도 12C에 도시된 바와 같이 그들의 위쪽 페이지 데이터가 프로그래밍된다. 제 2 패스 동안, 메모리 셀들은 상태(E)로부터 상태(A)로 혹은 중간 상태(B')로부터 상태(B) 또는 상 태(C)로 프로그래밍 된다. 해당 워드 라인(WLn)의 메모리 셀이 도 13A에 도시되고, 그리고 워드 라인(WLn+1)에서의 메모리 셀에 대한 아래쪽 페이지가 프로그래밍된 이후에 그들의 위쪽 페이지에 관하여 프로그래밍된다. 따라서, 도 12C에 도시된 위쪽 페이지 프로그래밍이 단지 워드 라인(WLn)에서의 메모리 셀에 대한 겉보기 임계 전압에 영향을 미치는 프로그래밍이다.FIG. 13A illustrates the influence of floating gate coupling on the programming technique of FIGS. 12A-12C, and FIG. 13B illustrates a read method using compensation offsets to overcome some of these effects. The memory cells of word line WLn + 1 adjacent to word line WLn are programmed during the third pass so that their upper page data is programmed as shown in FIG. 12C. During the second pass, the memory cells are programmed from state E to state A or from intermediate state B 'to state B or state C. The memory cells of the corresponding word line WLn are shown in FIG. 13A, and the lower pages for the memory cells in the word line WLn + 1 are programmed with respect to their upper page after programming. Thus, the upper page programming shown in FIG. 12C is only programming that affects the apparent threshold voltage for the memory cell at word line WLn.

상태(E)로부터 상태(A)로 프로그래밍되는 워드 라인(WLn+1)의 메모리 셀은 중간 상태(B')로부터 상태(C)로 프로그래밍되는 셀들에서와 같이 임계 전압에서의 유사한 변화를 경험한다. 중간 상태(B')로부터 상태(B) 프로그래밍되는 인접한 워드 라인(WLn+1)의 메모리 셀은 임계 전압에서의 큰 증가를 경험하지 못하고, 그리고 WLn에서의 셀들의 겉보기 임계 전압에 거의 영향을 미치지 못한다. 상태(A)로 프로그래밍되는 WLn의 메모리 셀들은 각각 상태(E)에서, 상태(B)에서, 상태(A)에서, 그리고 상태(C)에서의 WLn+1에서의 이웃하는 셀을 갖는 셀들에 대응하는 개개의 분포(652, 654, 656, 및 658)에 의해 나타내진다. 상태(B)로 프로그래밍되는 WLn의 메모리 셀들은 각각 상태(E)에서, 상태(B)에서, 상태(A)에서, 그리고 상태(C)에서의 WLn+1에서의 이웃하는 셀을 갖는 상태(B) 셀들에 대응하는 개개의 분포(662, 664, 666, 및 668)에 의해 나타내진다. 상태(C)로 프로그래밍되는 WLn의 메모리 셀들은 각각 상태(E)에서, 상태(B)에서, 상태(A)에서, 그리고 상태(C)에서의 WLn+1에서의 이웃하는 셀을 갖는 상태(C) 셀들에 대응하는 개개의 분포(672, 674, 676, 및 678)에 의해 나타내진다.The memory cell of word line WLn + 1 programmed from state E to state A experiences a similar change in threshold voltage as in cells programmed from intermediate state B 'to state C. . Memory cells of adjacent word lines WLn + 1 programmed from state B 'to intermediate B experience little increase in threshold voltage and have little effect on the apparent threshold voltages of the cells in WLn. can not do it. The memory cells of WLn programmed to state A are assigned to cells having neighboring cells at state E, at state B, at state A, and at WLn + 1 in state C, respectively. It is represented by the corresponding individual distributions 652, 654, 656, and 658. The memory cells of WLn programmed to state B each have a neighboring cell at state E, at state B, at state A, and at WLn + 1 in state C, respectively. B) represented by the individual distributions 662, 664, 666, and 668 corresponding to the cells. The memory cells of WLn programmed to state C each have a neighboring cell at state E, at state B, at state A, and at WLn + 1 in state C, C) represented by the individual distributions 672, 674, 676, and 678 corresponding to the cells.

도 13A에 도시된 바와 같이, WLn의 일부 메모리 셀은 판독 기준 전압(Vrb 혹 은 Vrc)에 가깝거나 혹은 판독 기준 전압(Vrb 혹은 Vrc)을 넘어 시프트되는 그들의 겉보기 임계 전압을 가질 수 있다. 이것은 판독 에러를 일으킬 수 있다. 앞서 설명된 바와 같이, 설명된 커플링 영향은 WLn 소거 분포에 적용가능하고, 그리고 개시된 기술은 동등하게 적용가능하다. 소거된 셀들 상의 영향은 상태(E)와 상태(C) 간의 자연적 마진 때문에 원리적으로 설명되지 않았다.As shown in FIG. 13A, some memory cells of WLn may have their apparent threshold voltages shifted to or near the read reference voltage Vrb or Vrc or beyond the read reference voltage Vrb or Vrc. This can cause reading errors. As described above, the described coupling effect is applicable to the WLn cancellation distribution, and the disclosed technique is equally applicable. The effect on the erased cells has not been explained in principle because of the natural margin between state (E) and state (C).

도 13B는 도 12A 내지 도 12C의 프로그래밍 기술과 함께 사용될 수 있는 판독 기준 레벨에 대한 오프셋들을 도시한다. 명확한 설명을 위해, 분포(652, 654, 656, 및 658)가 단일의 결합된 분포(651)로 도시되었고, 분포(662, 664, 666, 및 668)가 결합된 분포(661)로 도시되었고, 그리고 분포(672, 674, 676, 및 678)가 결합된 분포(671)로 도시되었다. 분포(650, 660, 및 670)는 WLn+1에서의 위쪽 페이지 데이터를 프로그래밍하기 전의 WLn의 셀들을 나타낸다. 도 13B의 실시예에서, 상태(A)로부터 상태(C)로 프로그래밍되는 인접하는 워드 라인 상의 셀들로부터의 유사한 커플링 영향들이 함께 그룹화되어 이러한 상태 레벨들 각각에 대해 단일의 오프셋이 형성된다. 오프셋 기준 전압(Vrbl 및 Vrcl)에서의 감지의 결과가 상태(A) 또는 상태(C)에서의 워드 라인(WLn+1)에서의 인접한 셀을 가지는 메모리 셀들에 대해 사용된다. 중간 상태(B')로부터 상태(B)로의 프로그래밍으로부터 사소한 커플링 효과는 무시된다. 공칭 기준 전압(Vrb 및 Vrc)을 사용할 때의 감지의 결과는 상태(E) 또는 상태(B)에서의 워드 라인(WLn+1)에서의 인접하는 셀을 가진 메모리 셀에 대해 사용된다. WLn+1의 각각의 특정 상태에 대한 추가적인 오프셋들이 일 실시예에서 사용될 수 있다. 도 13b에서 도시된 기술은 플로팅 게이트 커플링의 영향 에 추가적 감소를 제공하지만, 에러는 여전히 존재할 수 있다.13B shows offsets for the read reference level that may be used with the programming technique of FIGS. 12A-12C. For clarity, the distributions 652, 654, 656, and 658 are shown as a single combined distribution 651, and the distributions 662, 664, 666, and 668 are shown as a combined distribution 661. , And distributions 672, 674, 676, and 678 are shown as combined distribution 671. Distributions 650, 660, and 670 represent the cells of WLn before programming the upper page data at WLn + 1. In the embodiment of FIG. 13B, similar coupling effects from cells on adjacent word lines programmed from state A to state C are grouped together to form a single offset for each of these state levels. The result of the sensing at offset reference voltages Vrbl and Vrcl is used for memory cells having adjacent cells at word line WLn + 1 in state A or state C. Minor coupling effects from programming from intermediate state B 'to state B are ignored. The result of the sensing when using the nominal reference voltages Vrb and Vrc is used for memory cells with adjacent cells in word line WLn + 1 in state E or state B. Additional offsets for each particular state of WLn + 1 may be used in one embodiment. Although the technique shown in FIG. 13B provides further reduction in the effects of floating gate coupling, errors may still exist.

해당 셀을 판독하기 위한 적절한 오프셋을 결정하고자 할 때 인접한 워드 라인의 오판독은 실제로 도 12A 내지 도 12C의 기술로 프로그래밍되는 셀들에 대해 더 문제가 많을 수 있다. 상태(B)에 판독 기준 전압(Vrb)을 인가할 때, 워드 라인(WLn+1)에서의 메모리 셀의 오판독을 고려한다. 만약 WLn+1에서의 메모리 셀이 상태(A)로 프로그래밍되고, 그리고 상태(B)에 있는 것으로 오판독 된다면, 공칭 판독 기준 전압을 사용하여 워드 라인(WLn)에서의 대응하는 메모리 셀에 대한 판독 동작의 결과가 선택되고 보고된다. 플로팅 게이트 커플링에 대한 어떠한 보상도 사용되지 않는데, 왜냐하면 WLn+1에서의 셀이 상태(B)에 있고 따라서 WLn을 프로그래밍한 이후에 임계 전압에서의 사소한 변화만을 경험한다고 결정되기 때문이다. 그러나, 사실, WLn+1에서의 메모리 셀은 WLn에서의 셀의 겉보기 임계 전압에 강한 영향을 보여줄 수 있다. WLn+1에서의 셀이 상태(A) 분포의 위쪽 끝에 있을 수 있고, 이것이 오판독되는 이유이다. 따라서, WLn+1에서의 메모리 셀은, 상태(E)로부터 상태(A)의 위쪽 끝으로 프로그래밍되는 경우, 그 플로팅 게이트에서 전하에서의 큰 변화를 경험한다 WLn+1에서의 셀에 의해 저장된 전하에서의 큰 변화는 WLn에서의 셀의 겉보기 임계 전압에서의 큰 시프트를 일으킨다. 그러나 WLn+1에서의 오판독 때문에 이러한 시프트에 대한 어떠한 보상도 사용되지 않는다. 따라서, WLn에서의 메모리 셀은 오판독된 WLn+1의 결과로서 오판독될 수 있다.Misreading of adjacent word lines can be more problematic for cells that are actually programmed with the techniques of FIGS. 12A-12C when trying to determine an appropriate offset for reading that cell. When the read reference voltage Vrb is applied to the state B, misreading of the memory cell in the word line WLn + 1 is taken into account. If the memory cell at WLn + 1 is programmed to state A, and is incorrectly read as being in state B, the read for the corresponding memory cell at word line WLn using a nominal read reference voltage. The result of the action is selected and reported. No compensation for floating gate coupling is used because it is determined that the cell at WLn + 1 is in state B and therefore only experiences a slight change in threshold voltage after programming WLn. In fact, however, a memory cell at WLn + 1 can show a strong effect on the apparent threshold voltage of the cell at WLn. The cell at WLn + 1 may be at the upper end of the state (A) distribution, which is why it is misread. Thus, the memory cell at WLn + 1 experiences a large change in charge at its floating gate when programmed from state E to the upper end of state A. The charge stored by the cell at WLn + 1 The large change in causes a large shift in the apparent threshold voltage of the cell at WLn. However, no compensation for this shift is used because of a misread at WLn + 1. Thus, the memory cell at WLn may be misread as a result of misread WLn + 1.

만약 상태(B)로 프로그래밍되는 워드 라인(WLn+1)에서의 인접하는 메모리 셀은 상태(A)에서와 마찬가지로 오판독되며, 유사한 문제들이 발생할 수 있다. 상 태(A)에 있는 것으로 판독되는 워드 라인(WLn+1)에서의 메모리 셀은, 사실 상태(B)에 있을 때, 상태(B) 분포의 아래쪽 끝에서 임계 전압을 가질 수 있다. WLn+1에서의 메모리 셀을 프로그래밍한 이후에 메모리 셀은 임계 전압에서의 매우 작은 변화를 경험한다. 결과적으로, WLn에서의 대응하는 셀의 겉보기 임계 전압에서의 매우 작은 시프트가 일어날 수 있거나 혹은 어떠한 시프트도 일어나지 않는다. 그러나, 대응하는 메모리 셀에 대한 WLn에서의 판독 동작의 결과는, 보상된 기준 레벨에서의 판독으로부터의 결과를 선택한다. 해당 메모리 셀이 겉보기 임계 전압에서 큰 시프트를 경험하지 못했기 때문에, 보상된 기준 레벨이 사용될 때의 결과를 선택하는 것은 WLn에서 오판독 혹은 에러를 일으킬 수 있다.If the adjacent memory cell in word line WLn + 1 programmed to state B is misread as in state A, similar problems may occur. The memory cell in word line WLn + 1, which is read as being in state A, may have a threshold voltage at the lower end of the state B distribution when in fact state B. After programming the memory cell at WLn + 1, the memory cell experiences a very small change in threshold voltage. As a result, a very small shift in the apparent threshold voltage of the corresponding cell in WLn may occur or no shift occurs. However, the result of the read operation at WLn for the corresponding memory cell selects the result from the read at the compensated reference level. Since the memory cell has not experienced a large shift in the apparent threshold voltage, selecting a result when the compensated reference level is used can cause a misread or error in WLn.

종래 기술에서, 다양한 프로그램 상태로 메모리 셀들을 프로그래밍하느 것은 도 13A 내지 도 13B에 도시된 등간격으로 이격된 검증 레벨을 사용하여 수행되었다. 이것은, 즉, 상태(A), 상태(B), 및 상태(C)에 대한 검증 레벨이 서로 등간격으로 이격되어 있어, 검증 레벨(Vvb)과 검증 레벨(Vva) 간의 전압에서의 차이는 검증 레벨(Vvc)과 검증 레벨(Vvb) 간의 전압에서의 차이와 동일하다. 프로그래밍 검증 레벨들의 등간격으로 인해, 다양한 프로그래밍 상태들 간의 마진이 동일하거나 혹은 실질적으로 동일하다. 이러한 마진은 물리적 상태들 간의 금지 전압 영역에 대응한다. 상태(A)와 상태(B) 사이의 마진은 상태(A)에서의 메모리 셀의 최대 임계 전압 및 상태(B)에서의 메모리 셀의 최소 임계 전압에 의해 정의된다. 정확한 판독 동작이 수행될 수 있도록 프로그래밍 상태들 간의 충분한 마진이 제공된다. 플로팅 게이트 커플링 때문에, 물리적 상태들 간의 마진은 감소하고 그리고 결과적은 판독 시 에러가 발생할 수 있다.In the prior art, programming memory cells with various program states has been performed using equally spaced verify levels shown in FIGS. 13A-13B. This means that the verify levels for states A, B, and C are spaced at equal intervals from each other, so that the difference in voltage between verify level Vvb and verify level Vva is verified. It is equal to the difference in voltage between level Vvc and verify level Vvb. Due to the equal spacing of the programming verify levels, the margin between the various programming states is the same or substantially the same. This margin corresponds to the forbidden voltage region between physical states. The margin between state A and state B is defined by the maximum threshold voltage of the memory cell in state A and the minimum threshold voltage of the memory cell in state B. Sufficient margin is provided between programming states so that accurate read operations can be performed. Because of floating gate coupling, the margin between physical states is reduced and consequently errors in reading may occur.

본 발명의 실시예에 따르면, 시프트된 검증 레벨이, 하나 또는 그 이상의 선택된 상태들, 예를 들어 상태(B)를 프로그래밍할 때 사용되어, 개선된 감지 정확도를 위해 특정 상태들 간에 더 큰 마진이 생성된다. 일 실시예에서, 오프셋으로 보상된 판독 기준 레벨이 더 폭 넓은 마진에 대응하는 레벨에서 사용되지 않지만, 그러나 더 높은 성능을 위해 더 효율적인 판독을 제공하도록 다른 레벨에서 사용된다. 선택 물리적 상태들 간의 더 폭 넓은 마진과 오프셋 기준 레벨의 선택적 인가의 결합은 요구된 레벨의 성능을 유지하면서 정확한 감지 기술을 제공한다. 도 14는 본 발명의 일 실시한 예에 따라 프로그래밍되는 메모리 셀들의 세트에 대한 임계 전압 분포를 나타낸다. 분포(678, 680, 684, 및 688)는 프로그래밍 후, 그러나 인접한 워드 라인(WLn+1)에서의 셀들의 프로그래밍 전의, 메모리 셀들의 세트를 도시한 것이다.According to an embodiment of the present invention, the shifted verify level is used when programming one or more selected states, for example state B, so that a larger margin between certain states for improved sensing accuracy. Is generated. In one embodiment, the offset-compensated read reference level is not used at the level corresponding to the wider margin, but at other levels to provide more efficient reads for higher performance. The combination of wider margins between selective physical states and selective application of offset reference levels provides accurate sensing techniques while maintaining the required level of performance. Figure 14 illustrates a threshold voltage distribution for a set of memory cells programmed according to one embodiment of the present invention. Distributions 678, 680, 684, and 688 illustrate a set of memory cells after programming but before programming of cells in adjacent word line WLn + 1.

시프트된 프로그램 검증 레벨(Vvbl)이, 메모리 셀들을 상태(B)에 프로그래밍할 때, 도 14에서 사용된다. 도 14의 실시예는 도 12A 내지 도 12C에 도시된 기술에 따른 프로그래밍 시에 사용될 수 있다. 검증 레벨(Vvbl)은 도 12C에 도시된 종래 동작에서의 Vvb보다 더 높고, 그래서 더 큰 마진이 상태(A)와 상태(B) 사이에 생성된다. 상태(A)에서의 임의의 메모리 셀의 가장 높은 임계 전압은 종래 기술에서와 동일한 채로 있다. 그러나 상태(B)에서의 임의의 셀의 가장 낮은 임계 전압은 양의 방향으로 시프트된다. 메모리 셀들을 상태(B)로 프로그래밍할 때의 증가된 검증 레벨이 상태(A)와 상태(B) 간의 마진을 증가시킨다. 도 14에서 도시된 바와 같 이, 상태(A)와 상태(B) 간의 마진(683)은 상태(B)와 상태(C) 간의 마진(685)보다 더 크다. 결과적으로, 상태(B)에서 기준 전압 레벨(Vrb)을 감지시 오판독이 덜 일어날 수 있다.The shifted program verify level Vvbl is used in FIG. 14 when programming memory cells to state B. FIG. The embodiment of FIG. 14 may be used in programming according to the techniques shown in FIGS. 12A-12C. The verify level Vvbl is higher than Vvb in the conventional operation shown in Fig. 12C, so a larger margin is created between state A and state B. The highest threshold voltage of any memory cell in state A remains the same as in the prior art. However, the lowest threshold voltage of any cell in state B is shifted in the positive direction. Increased verify level when programming memory cells to state B increases the margin between state A and state B. FIG. As shown in FIG. 14, the margin 683 between state A and state B is greater than the margin 685 between state B and state C. As shown in FIG. As a result, less misreading may occur when sensing the reference voltage level Vrb in state B. FIG.

분포(682, 686, 및 690)는 이웃하는 워드 라인(WLn+1)이 프로그래밍된 이후의 플로팅 게이트 커플링의 영향을 나타낸 것이다(예를 들어, 도 12C에서 도시된 바와 같이). 도 14에서, Vrb 판독 레벨은 겉보기 A 상태 분포(682)와 겉보기 B 상태 분포(686) 사이에 잘 이격되어 있다. 결과적으로, 오판독이 덜 일어날 수 있는데, 왜냐하면 이웃하는 워드 라인으로부터의 커플링 영향이 고려된 이후에도, Vrb 판독 레벨은 상태(A)에 있으려는 임의의 셀의 임계 전압과 오버랩하지 않기 때문이다. 일 실시예에서, 기준 레벨(Vrb)이, 도 12C에서 도시된 공칭 값(Vvb)으로부터의 프로그램 검증 레벨(Vvbl)에서의 시프트에 대응하는 양만큼, 기존의 사용되고 있는 레벨(예를 들어, 도 12C의 Vrb)로부터 시프트된다. Vrb가 상태(A)에서의 임의의 메모리 셀의 가장 높은 임계 전압을 넘어 시프트될 수 있기 때문에, 단일의 기준 값(Vrb)이 판독 동안 사용될 수 있고, 그리고 어떠한 보상도 적용되지 않는다.Distributions 682, 686, and 690 show the effect of floating gate coupling after neighboring word line WLn + 1 has been programmed (eg, as shown in FIG. 12C). In FIG. 14, the Vrb read level is well spaced between the apparent A state distribution 682 and the apparent B state distribution 686. As a result, less misreading can occur because the Vrb read level does not overlap the threshold voltage of any cell to be in state A, even after the coupling effect from the neighboring word lines is taken into account. In one embodiment, the reference level Vrb is a previously used level (e.g., FIG. Is shifted from Vrb of 12C). Since Vrb can be shifted beyond the highest threshold voltage of any memory cell in state A, a single reference value Vrb can be used during reading, and no compensation is applied.

따라서, 판독 기준 전압에 대한 오프셋은 일 실시에에서 상태(B)에서의 판독시 사용되지 않는다. 도 14의 실시예에서, 판독 기준 전압에 대한 오프셋이 가장 높은 상태, 상태(C)에 대해서만 단지 사용된다. 더 높은 검증 레벨에 의해 존재하는 상태(A)와 상태(B) 간의 더 큰 마진은 플로팅 게이트 커플링을 직접적으로 보상함이 없이 상태(B) 레벨에서의 정확히 판독을 가능하게 한다. 이러한 기술은 오판독을 감소시킬 뿐만 아니라 판독 시간도 개선하는데, 왜냐하면 오프셋 레벨에서의 추가적인 판독이 단지 선택 상태에서만 사용되기 때문이다. 도 14에서, 단지 하나의 추가적인 감지 동작만이 수행된다. 성능 및 판독 시간을 개선하는 것에 추가하여, 감소된 개수의 감지 동작은 선택된 메모리 셀을 감지할 때 인접하는 메모리 셀들에 관한 데이터를 유지하기 위해 필요한 캐시 회로의 복잡도 및 크기를 감소시킨다.Thus, an offset to the read reference voltage is not used in the read in state B in one embodiment. In the embodiment of Fig. 14, only the offset for the read reference voltage is used only for the state C, which is the highest. The larger margin between state A and state B, which is present by the higher verify level, allows accurate readings at state B level without directly compensating the floating gate coupling. This technique not only reduces false readings but also improves read time, since additional readouts at offset levels are only used in the selected state. In FIG. 14 only one additional sensing operation is performed. In addition to improving performance and read time, a reduced number of sensing operations reduce the complexity and size of cache circuitry needed to maintain data about adjacent memory cells when sensing a selected memory cell.

비한정적인 예로서, 다음의 판독기준 및 프로그램 검증 레벨은 도 14의 기술을 구현할 때의 일 실시예에서 사용될 수 있다. 도 12A 내지 도 12C에서 설명된 종래 기술에서, 상태(A)와 상태(B) 사이의 마진은 일 예시적 시스템에서 약 0.7일 것으로 예측될 수 있으며, 상태(B)와 상태(C) 사이의 마진도 대략 동일할 것으로 예측된다. 이러한 종래 기술의 시스템은, 셀에 프로그래밍할 때 그리고 셀로부터 판독할 때, Vva=0.5V, Vvb=2.0V, Vvc=3.5V, Vra=0.0V, Vrb=1.5V, 및 Vrc=3.0V의 검증 및 판독 레벨을 사용할 수 있다. 그러나 도 14에서, 상태(B)에 대해 시프트된 검증 레벨은 결과적으로 이러한 시스템이 약 0.7V의 상태(A)와 상태(B) 사이의 마진을 가지도록 하며 약 0.1V의 상태(B)와 상태(C) 사이의 마진을 가지도록 한다. 이러한 마진을 달성하기 위해 도 14에서 사용될 수 있는 전형적인 판독 기준 및 프로그램 검증 레벨은 Vva=0.5V, Vvb=2.3V, Vvc=3.5V, Vra=0.0V, Vrb=1.8V, Vrc=3.0V, 및 Vrcl=3.6V을 포함할 수 있다. 예시된 바와 같은 일 실시예에서, 각각의 상태에서의 판독 기준 및 프로그램 검증 레벨에서의 차이는 Vvb가 시프트될 때 동일하게 유지되는데, 왜냐하면 Vrb가 동일한 양만큼 시프트되기 때문이다. 따라서 Vva-Vra = Vvb-Vrb = Vvc-Vrc이다.As a non-limiting example, the following reading criteria and program verify levels may be used in one embodiment when implementing the technique of FIG. In the prior art described in Figures 12A-12C, the margin between state A and state B can be expected to be about 0.7 in one exemplary system, and between state B and state C The margin is expected to be about the same. This prior art system has a Vva = 0.5V, Vvb = 2.0V, Vvc = 3.5V, Vra = 0.0V, Vrb = 1.5V, and Vrc = 3.0V when programming to and reading from the cell. Verify and read levels can be used. However, in FIG. 14, the shifted verification level for state B results in such a system having a margin between state A and state B of about 0.7 V and a state B of about 0.1 V. Have a margin between states (C). Typical readout criteria and program verify levels that can be used in FIG. 14 to achieve this margin include Vva = 0.5V, Vvb = 2.3V, Vvc = 3.5V, Vra = 0.0V, Vrb = 1.8V, Vrc = 3.0V, And Vrcl = 3.6V. In one embodiment as illustrated, the difference in read criterion and program verify level in each state remains the same when Vvb is shifted, because Vrb is shifted by the same amount. Thus, Vva-Vra = Vvb-Vrb = Vvc-Vrc.

도 15는 도 14에 도시된 바와 같이 비균등한 크기를 갖는 마진을 달성하기 위해 비휘발성 메모리를 프로그래밍하는 방법의 일 실시예를 나타낸 흐름도이다. 도 15에 도시된 프로그래밍 방법은, 단일의 워드 라인에 연결된 것과 같은, 병렬로 메모리 셀들의 그룹을 프로그래밍하는데 사용될 수 있다. 도 15는 또한 짝수/홀수 비트 라인 아키텍처와 같은 워드 라인의 선택 메모리 셀들을 프로그래밍하기 위해 사용될 수도 있다. 일 실시예에서, 단계(860)로부터 단계(882)를 통해 제 1 반복 세트가 메모리 셀들의 그룹에 대한 제 1 논리적 페이지를 프로그래밍하기 위해 사용되고, 그리고 단계들(860-882)를 통해 제 2 반복 세트가 메모리 셀들의 그룹에 대한 제 2 논리적 페이지를 프로그래밍하기 위해 사용될 수 있다.FIG. 15 is a flow diagram illustrating one embodiment of a method of programming a nonvolatile memory to achieve a margin with non-uniform size as shown in FIG. 14. The programming method shown in FIG. 15 can be used to program a group of memory cells in parallel, such as connected to a single word line. 15 may also be used to program select memory cells of a word line, such as an even / odd bit line architecture. In one embodiment, the first iteration set from step 860 through step 882 is used to program the first logical page for the group of memory cells, and the second iteration through steps 860-882. The set can be used to program a second logical page for a group of memory cells.

프로그래밍될 메모리 셀들은 단계(850)에서 소거된다, 단계(850)는 프로그래밍될 메모리 셀들보다 더 많은 메모리 셀들을 소거하는 것을 포함한다(예를 들어, 블럭 단위 혹은 다른 단위로). 단계(852)에서, 소프트 프로그래밍이 소거된 메모리 셀들에 대한 소거된 임계 전압의 분포를 좁히기 위해 수행된다. 일부 메모리 셀들은 소거 프로세스의 결과로서 필요한 것보다 더 깊은 소거 상태에 있을 수 있다. 소프트 프로그래밍은 소거된 메모리 셀들의 임계 전압을 소거된 검증 레벨에 더 가깝게 이동시키기 위해 작은 프로그래밍 펄스들을 인가할 수 있다. 이것은 소거된 메모리 셀들에 대해 좁은 분포를 제공한다. 단계(854)에서 데이터 로드 컴맨드(data load command)가 제어기(318)에 의해 발행되고, 컴맨드 회로(314)에 입력되어, 데이터가 데이터 입력/출력 버퍼(312)에 입력되게 된다. 입력 데이터는 컴맨드로서 인식되고, 컴맨드 회로(314)에 입력되는 미도시된 컴맨드 래치 신호를 통해 상태 머신(316)에 의해 래치된다. 단계(856)에서, 페이지 어드레스를 지정하는 어드레스 데이터가 호스트로부터 로우 제어기(row controller)(306)에 입력된다. 입력 데이터는 페이지 어드레스로서 인식되고, 그리고 상태 머신(316)을 통해 래치되며, 이것은 컴맨드 회로(314)에 입력되는 어드레싱된 래치 신호에 의해 영향을 받는다. 단계(858)에서, 어드레싱된 페이지에 대한 프로그램 데이터의 페이지는 프로그래밍을 위한 데이터 입력/출력 버퍼(312)에 입력된다. 예를 들어, 532 바이트의 데이터가 예시적 실시예에서 입력될 수 있다. 입력 데이터가 선택된 비트 라인에 대해 적절한 레지스터에 래치된다. 일부 실시예들에서, 데이터는 또한 검증 동작을 위해 사용될 선택된 비트 라인에 대해 제 2 레지스터에 래치된다. 단계(860)에서, 프로그램 컴맨드가 제어기에 의해 발행되고, 그리고 데이터 입력/출력 버퍼(312)에 입력된다. 컴맨드가 컴맨드 회로(314)에 입력된 컴맨드 래치 신호를 통해 상태 머신(316)에 의해 래치된다.The memory cells to be programmed are erased in step 850, where step 850 includes erasing more memory cells than the memory cells to be programmed (e.g., in block or other units). In step 852, soft programming is performed to narrow the distribution of erased threshold voltages for erased memory cells. Some memory cells may be in an erased state deeper than necessary as a result of the erase process. Soft programming may apply small programming pulses to move the threshold voltage of the erased memory cells closer to the erased verify level. This provides a narrow distribution for erased memory cells. In step 854 a data load command is issued by the controller 318 and input to the command circuit 314 so that data is input to the data input / output buffer 312. The input data is recognized as a command and latched by the state machine 316 via a not shown command latch signal input to the command circuit 314. In step 856, address data specifying a page address is input from a host to a row controller 306. The input data is recognized as a page address and latched through the state machine 316, which is affected by the addressed latch signal input to the command circuit 314. In step 858, a page of program data for the addressed page is input to the data input / output buffer 312 for programming. For example, 532 bytes of data may be input in an example embodiment. The input data is latched in the appropriate register for the selected bit line. In some embodiments, the data is also latched in the second register for the selected bit line to be used for the verify operation. In step 860, a program command is issued by the controller and input to the data input / output buffer 312. The command is latched by the state machine 316 via a command latch signal input to the command circuit 314.

프로그램 컴맨드에 의해 트리거되고, 단계(858)에서 래치된 데이터가 상태 머신(316)에 의해 제어되는 선택된 메모리 셀들로 프로그래밍된다. 도 6의 프로그램 전압 신호에서 도시된 것들과 같은 스템핑된 프로그램 전압 펄스들을 사용하여, 프로그램 전압 신호가 프로그래밍되는 셀들의 페이지 혹은 다른 단위에 대응하는 적절한 워드 라인에 인가된다. 단계(862)에서, Vpgm, 프로그래밍 펄스 전압 레벨이 시작 펄스(예를 들어, 12V)로 초기화되고, 그리고 상태 머신(316)에 의해 유지되는 프로그램 카운터(Program Counter, PC)가 제로에서 초기화된다. 단계(864)에서, 제 1 Vpgm 펄스가 선택된 워드 라인에 인가된다. 만약 로직 제로가 대응하는 메모리 셀이 프로그래밍되어야 한다고 표시하는 특정 데이터 래치에 저장된다면, 대응하는 비트 라인은 접지된다. 반면에, 만약 로직 1이 대응하는 메모리 셀이 현재의 데이터 상태에서 유지되어야 한다고 표시하는 특정 데이터 래치에 저장된다면, 대응하는 비트 라인은 VDD에 연결되어 프로그래밍을 금지시킨다.The data triggered by the program command and latched in step 858 is programmed into selected memory cells controlled by the state machine 316. Using stamped program voltage pulses, such as those shown in the program voltage signal of FIG. 6, the program voltage signal is applied to an appropriate word line corresponding to the page or other unit of cells being programmed. In step 862, Vpgm, the programming pulse voltage level is initialized to a start pulse (e.g., 12V), and a program counter (PC), maintained by state machine 316, is initialized at zero. In step 864, a first Vpgm pulse is applied to the selected word line. If logic zero is stored in a particular data latch indicating that the corresponding memory cell should be programmed, the corresponding bit line is grounded. On the other hand, if logic 1 is stored in a particular data latch indicating that the corresponding memory cell should be maintained in the current data state, the corresponding bit line is connected to V DD to inhibit programming.

단계(866)에서, 선택 메모리 셀들의 상태가 검증된다. 지금까지, 도 15에 도시된 프로세스는 공지된 기술에 따라 진행된다. 그러나, 단계(866)에서 프로세스는 선택 레벨의 더 정확한 판독을 용이하게 하는 비균등하게 이격된 마진들을 생성하기 위한 신규한 기술을 포함한다. 더 큰 마진이 두 개의 프로그래밍 상태들 간에 생성된다. 일 실시예에서, 더 큰 마진이 더 낮은 레벨들 간에 생성되고, 반면에 가장 높은 상태는 공칭 위치에서 유지된다. 일 실시예에서, 더 큰 마진이 상태(B)와 상태(A) 사이에 존재하도록 검증이 수행된다. 다른 실시예들에서, 가장 높은 레벨 상태 혹은 더 높은 레벨 상태는 또한 이러한 레벨들에서의 더 큰 검증 전압을 사용함으로써 양의 방향으로 시프트될 수 있다. 그러나, 전체적으로 더 높은 양의 전압으로 분포를 시프트하는 것은, 전압 레벨(예를 들어, Vpgm)이 프로그램 방해를 최소화시키는 것 등과 같은 그러한 이유로 특정 최대 레벨로 유지되어야 하는 일부 실시예에서는 수용될 수 없다.In step 866, the state of selected memory cells is verified. Up to now, the process shown in FIG. 15 proceeds according to known techniques. However, in step 866 the process includes a novel technique for generating non-uniformly spaced margins that facilitate more accurate reading of the selection level. Larger margins are created between the two programming states. In one embodiment, larger margins are created between the lower levels, while the highest state is maintained at the nominal position. In one embodiment, verification is performed so that a larger margin exists between state B and state A. In other embodiments, the highest or higher level state can also be shifted in the positive direction by using a larger verify voltage at these levels. However, shifting the distribution to a higher positive voltage as a whole is not acceptable in some embodiments where the voltage level (eg, Vpgm) must be kept at a certain maximum level for such reasons as to minimize program disturb. .

일 실시예에서, 비균등하게 이격된 검증 레벨이 비균등 마진을 생성하기 위해 단계(866)에서 사용된다. 도 14에 도시된 바와 같이, 제 2 프로그래밍 상태(B)에 대한 검증 레벨(Vvb1)이 제 1 프로그래밍 상태, 즉 상태(A)에 대한 검증 레벨로 부터, 제 3 프로그래밍 상태, 즉 상태(C)에 대한 검증 레벨이 제 2 프로그래밍 상태, 즉 상태(B)에 대한 검증 레벨로부터 이격되어 있는 양과는 다른 양만큼 이격되어 있다. 검증 레벨(Vva, Vvb 및 Vvc)은 그들의 특정 상태에 대해 가장 낮은 최소 임계 전압을 정의한다. 비균등하게 이격된 검증 레벨을 사용함으로써, 상태(A)와 상태(B) 사이에 생성되는 마진은 상태(B)와 상태(C) 사이에 생성되는 마진보다 더 크다.In one embodiment, non-uniformly spaced verification levels are used in step 866 to generate non-uniform margins. As shown in FIG. 14, the verify level Vvb1 for the second programming state B is from the first programming state, i.e., the verify level for state A, to the third programming state, i. The verify level for is spaced by an amount different from the amount spaced apart from the second programming state, i.e., the verify level for state (B). Verify levels (Vva, Vvb, and Vvc) define the lowest minimum threshold voltage for their particular state. By using unequally spaced verification levels, the margin generated between state A and state B is greater than the margin generated between state B and state C.

인가된 기준 전압으로 감지한 이후에, 데이터 래치들 모두가 단계(868)에서 로직 1을 저장하고 있는지 여부가 점검된다. 만약 그렇다면, 프로그램 프로세스는 완료되고 그리고 성공적인데, 왜냐하면, 모든 선택된 메모리 셀들은 그들의 타겟 상태에 프로그래밍되고 검증되었기 때문이다. 패스의 상태가 단계(876)에서 보고된다. 만약 단계(868)에서 데이터 래치들 모두가 로직 1을 저장하고 있는 것이 아니라고 결정된다면, 프로세스는 프로그램 카운터(PC)가 프로그램 리미트 값에 대하여 점검되는 단계(872)에서 계속된다. 프로그램 리미트 값의 일 예는 20이지만, 다양한 실시예에서는 다른 값들이 사용될 수도 있다. 만약 프로그램 카운터(PC)가 20보다 작지 않다면, 단계(874)에서 비성공적으로 프로그래밍된 메모리 셀들의 개수가 미리 결정된 개수보다 작은지 혹은 미리 결정된 개수와 동일한지 여부가 결정된다. 만약 비성공적으로 프로그래밍된 셀들의 개수가 이러한 개수와 동일하거나 혹은 이러한 개수보다 더 적다면, 프로세스는 패스된 것으로 플래그되고, 그리고 패스의 상태가 단계(876)에서 보고된다. 성공적으로 프로그래밍되지 않은 비트들은 판독 프로세스 동안 에러 정정을 사용하여 정정될 수 있다. 만약 비성공적으로 프로그래 밍된 메모리 셀들이 미리 결정된 개수보다 더 크다면, 프로그램 프로세스는 실패로 플래그 되고, 그리고 실패의 상태가 단계(878)에서 보고된다. 만약 프로그램 카운터(PC)가 20보다 작다면, Vpgm 레벨은 스텝 사이즈만큼 증가되고, 그리고 프로그램 카운터(PC)가 단계(880)에서 증분된다. 단계(880) 이후에, 프로세스는 단계(864)로 되돌아가 다음 Vpgm 펄스를 인가한다.After sensing with an applied reference voltage, it is checked whether all data latches are storing logic 1 at step 868. If so, the program process is complete and successful because all selected memory cells have been programmed and verified in their target state. The status of the pass is reported at step 876. If at step 868 it is determined that not all of the data latches are storing logic 1, the process continues at step 872 where the program counter PC is checked for a program limit value. One example of a program limit value is 20, although other values may be used in various embodiments. If the program counter PC is not less than 20, then in step 874 it is determined whether the number of unsuccessfully programmed memory cells is less than or equal to the predetermined number. If the number of unsuccessfully programmed cells is equal to or less than this number, the process is flagged as passed and the status of the pass is reported at step 876. Bits that were not successfully programmed can be corrected using error correction during the read process. If the unsuccessfully programmed memory cells are larger than the predetermined number, the program process is flagged as a failure and the status of the failure is reported at step 878. If the program counter PC is less than 20, the Vpgm level is increased by the step size, and the program counter PC is incremented at step 880. After step 880, the process returns to step 864 to apply the next Vpgm pulse.

설명된 바와 같이, 단계(866)는, 비균등하게 이격된 마진이 프로그래밍된 메모리 셀들에 대해 존재하도록, 비균등하게 이격된 검증 레벨의 사용을 포함한다. 도 16은 도 15의 단계(866)의 일 실시예를 나타낸 것이다. 단계(882)에서, 제 1 프로그래밍 상태 검증 레벨(Vva)이 인가된다. 단계(884)에서, 비트 라인이 각각의 비트 라인에서 메모리 셀에 인가된 Vva로 감지된다. 단계(886)에서, 그 결과가 상태(A)로 프로그래밍되는 셀들에 대해 저장된다. 단계(886)는 비트 라인에 대한 데이터 래치를, 프로그래밍이 그 메모리 셀에 대해 계속 중이라는 것을 표시하는 로직 1에 설정하거나, 또는 메모리 셀이 타겟 레벨 있거나 혹은 타겟 레벨 보다 위에 있어 그 메모리 셀에 대한 프로그래밍은 정지되어야만 하는 것을 표시하는 로직 0에 설정하는 것을 포함할 수 있다. 단계(888)에서, 제 2 프로그래밍 상태 검증 레벨(Vvb1)이 검증되는 각각의 메모리 셀에 인가된다. 검증 레벨(Vvb1)이 제1의 양만큼 검증 레벨(Vva)로부터 이격되어 있다. 예를 들어, Vva 및 Vvbl는 약 0.8V와 동일한 양만큼 서로 떨어져 있을 수 있다. 단계(890)에서, 비트 라인들은 각각의 메모리 셀에 인가된 Vvb1으로 감지된다. 그 결과가, 대응하는 메모리 셀이 그 타겟 레벨에 도달했는지 여부를 각각의 비트 라인에 대한 데이터 래치에서 지시함으로써 892에서 저장된다. 단계(894)에서, 제 3 검증 레벨(Vvc)이 제 3 프로그래밍 상태에 대해 인가된다. 검증 레벨(Vvc)이 Vva 및 Vvb1을 분리시키는 제1의 양과는 다른 제2의 양만큼 검증 레벨(Vvb1)로부터 이격되어 있다. 도 14에 도시된 바와 같이, 검증 레벨 Vvb1 및 Vvc 간의 간격은 검증 레벨 Vva 및 Vvbl 간의 간격보다 더 작다. 단계(896)에서, 비트 라인은 각각의 메모리 셀에 인가된 Vvc로 감지된다. 단계(898)에서, 예를 들어, 셀들이 후속 프로그래밍을 경험해야 하는지 여부를 데이터 래치에서 표시함으로써, 상태(C)로 프로그래밍되는 셀들에 대한 결과가 저장된다.As described, step 866 includes the use of non-uniformly spaced verify levels such that non-uniformly spaced margins exist for programmed memory cells. FIG. 16 illustrates one embodiment of step 866 of FIG. 15. In step 882, a first programming state verify level Vva is applied. In step 884, a bit line is sensed with Vva applied to the memory cell at each bit line. In step 886, the result is stored for the cells that are programmed to state A. Step 886 sets the data latch for the bit line to logic 1 indicating that programming is continuing for that memory cell, or the memory cell is at or above the target level for that memory cell. Programming may include setting to logic 0 indicating that it should be stopped. In step 888, a second programming state verify level Vvb1 is applied to each memory cell being verified. The verify level Vvb1 is spaced apart from the verify level Vva by a first amount. For example, Vva and Vvbl may be spaced apart from each other by an amount equal to about 0.8V. In step 890, the bit lines are sensed as Vvb1 applied to each memory cell. The result is stored at 892 by indicating in the data latch for each bit line whether the corresponding memory cell has reached its target level. In step 894, a third verify level Vvc is applied for the third programming state. The verify level Vvc is spaced apart from the verify level Vvb1 by a second amount different from the first amount that separates Vva and Vvb1. As shown in FIG. 14, the interval between verify levels Vvb1 and Vvc is smaller than the interval between verify levels Vva and Vvbl. In step 896, the bit line is sensed with Vvc applied to each memory cell. In step 898, the result for the cells programmed to state C is stored, for example by indicating in the data latch whether the cells should experience subsequent programming.

박스(891 및 899)에서 도시된 바와 같이, 비균등하게 이격된 검증 레벨로 인해, 결과적으로 상태 A와 B 간의 제 1 크기의 마진과 상태 B와 C 간의 제 2 크기의 마진이 생긴다. 상태 A와 B 간의 마진은 시프트된 Vvb 검증 레벨로 인해 상태 B와 C 간의 마진보다 더 크다.As shown in boxes 891 and 899, non-uniformly spaced verify levels result in a first size margin between states A and B and a second size margin between states B and C. The margin between states A and B is larger than the margin between states B and C due to the shifted Vvb verify level.

도 17은 특정된 하나 또는 그 이상의 페이지 혹은 다른 데이터 그룹을 판독하려는 요청에 응답하여 수행되는 데이터 판독을 위한 전체 프로세스를 나타낸 흐름도이다. 다른 실시예들에서, 도 17의 프로세스는 종래 판독 프로세스에 응답하여 에러를 검출한 이후의 데이터 복구 동작의 일부로서 수행될 수 있다. 도 12A 내지 도 12C의 프로세스에 따라 프로그래밍되는 데이터를 판독할 때, 이웃하는 셀들의 아래쪽 페이지의 프로그래밍으로 인해 플로팅 게이트 커플링으로부터의 임의의 섭동(perturbation)이, 해당 셀의 위쪽 페이지를 프로그래밍할 때 정정된다. 따라서, 이웃하는 셀들로부터의 플로팅 게이트 커플링 영향을 보상하고자 할 때, 프로세스 는 단지 이웃하는 셀들의 위쪽 페이지의 프로그래밍으로 인한 커플링 영향만을 고려할 필요가 있다.FIG. 17 is a flow diagram illustrating an overall process for reading data that is performed in response to a request to read a specified one or more pages or other data group. In other embodiments, the process of FIG. 17 may be performed as part of a data recovery operation after detecting an error in response to a conventional read process. When reading data programmed according to the process of FIGS. 12A-12C, any perturbation from floating gate coupling due to programming of the lower page of neighboring cells results in programming the upper page of that cell. Corrected. Thus, in order to compensate for the floating gate coupling effect from neighboring cells, the process only needs to consider the coupling effect due to programming of the upper page of neighboring cells.

도 17의 단계(902)에서, 해당 워드 라인에 이웃하는 후속적으로 프로그래밍되는 워드 라인에 대한 위쪽 페이지 데이터가 판독된다. 만약 이웃하는 워드 라인의 위쪽 페이지가 단계(904)에서 결정된 바와 같이 프로그래밍되지 않는다면, 해당 워드 라인 혹은 페이지는 단계(908)에서 플로팅 게이트 커플링 영향을 보상함이 없이 판독된다. 만약 이웃하는 워드 라인의 위쪽 페이지가 프로그래밍 된다면, 해당 페이지가 단계(906)에서 플로팅 게이트 커플링 영향에 대한 보상을 사용하여 판독된다. 일부 실시예들에서 이웃하는 워드 라인의 셀들을 판독함으로써, 결과적으로 이웃하는 워드 라인 상의 전하 레벨이 결정되고, 이것은 저장된 데이터를 정확히 반영할 수도 있고 반영하지 않을 수도 있다.In step 902 of Fig. 17, upper page data for a subsequently programmed word line neighboring the word line is read. If the top page of a neighboring word line is not programmed as determined in step 904, then that word line or page is read without compensating for the floating gate coupling effect in step 908. If the upper page of a neighboring word line is programmed, the page is read using a compensation for the floating gate coupling effect at step 906. In some embodiments, by reading the cells of a neighboring word line, the charge level on the neighboring word line is determined as a result, which may or may not accurately reflect the stored data.

일 실시예에서, 메모리 어레이는 하나 또는 그 이상의 플래그들을 저장하기 위해 메모리 셀들의 세트를 보유한다. 예를 들어, 메모리 셀들의 컬럼은 메모리 셀들의 각각의 로우들의 아래쪽 페이지가 프로그래밍되었는지 여부를 나타내는 플래그를 저장하기 위해 사용될 수 있고, 그리고 또 다른 컬럼이 메모리 셀들의 각각의 로우들에 대한 위쪽 페이지가 프로그래밍되었는지 여부를 나타내는 플래그를 저장하기 위해 사용될 수 있다. 적절한 플래그를 점검함으로서, 이웃하는 워드 라인에 대한 위쪽 페이지가 프로그래밍되었는지 여부가 결정될 수 있다. 이러한 플래그 및 프로그래밍에 대한 프로세스에 대한 더 상세한 설명은 미국 특허 번호 제6,657,891호(발명자: Shibata 등, 발명의 명칭: "Semiconductor Memory Device For Storing Multi-Valued Data")에서 찾을 수 있으며, 이러한 문헌은 그 전체가 참조로 본 명세서에 통합된다.In one embodiment, the memory array holds a set of memory cells to store one or more flags. For example, a column of memory cells can be used to store a flag indicating whether the bottom page of each row of memory cells has been programmed, and another column is the top page for each row of memory cells. Can be used to store a flag indicating whether it has been programmed. By checking the appropriate flag, it can be determined whether the upper page for the neighboring word line has been programmed. A more detailed description of these flags and the process for programming can be found in US Pat. No. 6,657,891 (Inventor: Shibata et al., Titled "Semiconductor Memory Device For Storing Multi-Valued Data") Which is incorporated herein by reference in its entirety.

도 18은 도 17의 단계(902)에서 사용될 수 있는 이웃하는 워드 라인에 대한 위쪽 페이지 데이터를 판독하는 프로세스의 일 실시예를 나타낸다. 판독 기준 전압(Vrc)이 단계(910)에서 워드 라인에 인가되고, 그리고 단계(912)에서 비트 라인이 앞서 설명된 바와 같이 감지된다. 감지의 결과가 단계(914)에서 적절한 래치에 저장된다. 먼저 Vrc에서의 판독이 위쪽 페이지 데이터를 고유하게(uniquely) 결정하기 위해 선택되는데, 왜냐하면, 아래쪽 페이지 데이터는 정상적으로 이미 WLn+1에 기입되었기 때문이고, 그리고 Vra 또는 Vrb에서의 판독은 고유한 결과를 보장하지 않는데, 왜냐하면 중간 분포(B')(도 12B)는 이러한 값들과 오버랩할 수 있기 때문이다.FIG. 18 illustrates one embodiment of a process for reading top page data for a neighboring word line that may be used in step 902 of FIG. 17. The read reference voltage Vrc is applied to the word line in step 910, and in step 912 the bit line is sensed as described above. The result of the sensing is stored in the appropriate latch in step 914. First the read at Vrc is chosen to uniquely determine the top page data, because the bottom page data has already been written normally to WLn + 1, and the read at Vra or Vrb yields unique results. It is not guaranteed because the intermediate distribution B '(FIG. 12B) may overlap these values.

단계(916)에서, 판독되는 페이지와 관련된 위쪽 페이지 프로그래밍을 나타내는 플래그가 점검된다. 만약 플래그가 단계(918)에서 결정된 바와 같이 설정되지 않았다면, 프로세스는 위쪽 페이지는 단계(920)에서 프로그래밍되지 않았다는 결론과 함께 종료된다. 만약 플래그가 설정된다면, 위쪽 페이지가 프로그래밍되었다고 가정된다. 판독 기준 전압(Vrb)이 단계(922)에서 판독되는 페이지와 관련된 워드 라인에 인가된다. 단계(924)에서, 비트 라인들이 감지되고 그리고 그 결과가 단계(926)에서 적절한 래치에 저장된다. 단계(928)에서, 판독 기준 전압(Vra)이 인가된다. 단계(930)에서, 비트 라인이 감지되고, 그리고 그 결과가 단계(932)에서 적절한 래치에 저장된다. 단계(934)에서, 판독되는 메모리 셀들 각각에 의해 저장된 데이터 값은 감지 단계(12, 924 및 930)의 결과에 근거하여 결정된다. 데이터 값들이 궁극적으로 사용자에게 전달하기 위해 단계(936)에서 적절한 데이터 래치에 저장될 수 있다. 위쪽 페이지 및 아래쪽 페이지 데이터는 선택된 특정 상태 인코딩에 따라 달라지는 공지된 로직 기술을 사용하여 결정된다. 도 12A 내지 도 12C에서 설명된 예시적 코딩에 대해, 아래쪽 페이지 데이터는 vrb*(Vrb에서 판독시 저장된 값의 보수(complement))이고, 그리고 위쪽 페이지 데이터는 Vra* OR (Vrb AND Vrc*)이다. 도 18의 프로세스는, 비록 WLn+1을 판독하기 위해 사용되는 것으로서 본 명세서에서 설명되었지만, 아래에서 설명되는 바와 같이 WLn을 판독하기 위해 사용될 수도 있다.In step 916, a flag indicating upper page programming associated with the page being read is checked. If the flag was not set as determined in step 918, the process ends with the conclusion that the upper page was not programmed in step 920. If the flag is set, it is assumed that the upper page has been programmed. A read reference voltage Vrb is applied to the word line associated with the page read in step 922. In step 924, the bit lines are sensed and the result is stored in an appropriate latch in step 926. In step 928, a read reference voltage Vra is applied. In step 930, the bit line is sensed and the result is stored in the appropriate latch in step 932. In step 934, the data value stored by each of the memory cells being read is determined based on the results of the sensing steps 12, 924 and 930. The data values may be stored in an appropriate data latch at step 936 for ultimate delivery to the user. Upper page and lower page data are determined using known logic techniques that depend on the particular state encoding selected. For the example coding described in FIGS. 12A-12C, the lower page data is vrb * (complement of the value stored upon reading in Vrb), and the upper page data is Vra * OR (Vrb AND Vrc *) . Although the process of FIG. 18 has been described herein as being used to read WLn + 1, it may be used to read WLn as described below.

도 19는 이웃하는 워드 라인으로부터의 플로팅 게이트 커플링에 대한 보상이 필요없는 경우(도 17의 단계(908)), 해당 워드 라인의 데이터를 판독하기 위한 실시예를 나타내는 흐름도이다. 단계(950)에서, 해당 워드 라인과 관련된 위쪽 페이지 혹은 아래쪽 페이지가 판독되고 있는지 여부가 결정된다. 만약 위쪽 페이지가 판독되고 있다면, 판독 기준 전압(Vrb)이 단계(952)에서 적절한 워드 라인에 인가된다. 단계(954)에서, 비트 라인이 감지되고, 그리고 단계(956)에서 그 결과가 적절한 래치에 저장된다. 단계(958)에서, 플래그가 해당 페이지가 위쪽 페이지 데이터를 포함하고 있는지 여부를 결정하기 위해 점검된다. 만약 어떠한 플래그도 설정되지 않았다면, 임의의 프로그래밍된 데이터가 중간 상태(B')에 있게 된다. 따라서, Vrb는 임의의 정확한 감지 결과를 만들지 못하고, 그래서 프로세스는 Vra가 워드 라인에 인가되는 단계(960)에서 계속된다. 비트 라인이 단계(962)에서 재감지되 고, 그리고 단계(964)에서 그 결과가 저장된다. 단계(966)에서, 저장될 데이터 값이 결정된다. 일 실시예에서, 만약 메모리 셀이 턴온되고, Vrb(혹은 Vra)가 워드 라인에 인가된다면, 아래쪽 페이지 데이터는 "1"이다. 만약 그렇지 않다면 아래쪽 페이지 데이터는 "0"이다.FIG. 19 is a flowchart illustrating an embodiment for reading data of a word line when no compensation for floating gate coupling from neighboring word lines is required (step 908 of FIG. 17). In step 950, it is determined whether the upper or lower page associated with the word line is being read. If the upper page is being read, the read reference voltage Vrb is applied to the appropriate word line at step 952. In step 954, the bit line is detected, and in step 956 the result is stored in the appropriate latch. In step 958, a flag is checked to determine whether the page contains upper page data. If no flag is set, any programmed data is in an intermediate state B '. Thus, Vrb does not produce any accurate sensing results, so the process continues at step 960 where Vra is applied to the word line. The bit line is rediscovered at step 962 and the result is stored at step 964. In step 966, the data value to be stored is determined. In one embodiment, if the memory cell is turned on and Vrb (or Vra) is applied to the word line, the lower page data is "1". If not, the bottom page data is "0".

만약 페이지 어드레스가 단계(950)에서 위쪽 페이지에 대응하다고 결정된다면, 위쪽 페이지 판독 프로세스가 단계(970)에서 수행된다. 일 실시예에서, 단계(970)에서의 위쪽 페이지 판독은 도 18에서 설명된 방법과 동일한 방법을 포함하고, 이것은 플래그 및 세 개의 상태를 판독하는 것을 포함하는데, 왜냐하면 기입되지 않은 위쪽 페이지가 판독 혹은 또 다른 이유로 처리될 수 있기 때문이다.If the page address is determined to correspond to the upper page at step 950, then the upper page reading process is performed at step 970. In one embodiment, reading the top page in step 970 includes the same method as described in FIG. 18, which includes reading a flag and three states, because an unwritten top page is read or This can be done for another reason.

도 20은 플로팅 게이트 커플링에 대한 보상을 하면서 데이터를 판독하는 프로세스의 일 예를 나타낸 흐름도이고, 이것은 예를 들어 도 17의 단계(906)에서 수행될 수 있다. 단계(966)에서 플로팅 게이트 커플링에 대한 보상을 위해 오프셋을 사용할지 여부가 결정된다. 단계(966)가 각각의 비트 라인에 대해 개별적으로 수행된다. 이웃하는 워드 라인들로부터의 데이터가 어느 비트 라인 오프셋을 사용할 필요가 있는지를 결정하기 위해 사용된다. 만약 이웃하는 셀이 상태 E 또는 B에 있다면, 판독되는 워드 라인에서의 메모리 셀은 감지 동안 인가되는 보상을 필요로 하지 않는다. 만약 WLn+1에서의 셀이 상태 E에 있다면, 어떠한 커플링에도 기여하지 못하는데, 왜냐하면 임계 전압이 해당 워드 라인이 기입되기 전과 동일하기 때문이다. 만약 WLn+1에서의 셀이 상태 B에 있다며, 중간 상태(B')로부터 프로그래밍되고, 이것은 전하에서의 작은 변화이고, 그리고 대부분의 경우에 무시될 수 있다. 판독 오프셋은 상태 A 또는 상태 C에서 WLn+1에서의 이웃하는 메모리 셀을 갖는 WLn 상의 그러한 셀들에 대해 사용된다.20 is a flow diagram illustrating an example of a process for reading data while compensating for floating gate coupling, which may be performed, for example, at step 906 of FIG. In step 966 it is determined whether to use an offset to compensate for floating gate coupling. Step 966 is performed separately for each bit line. Data from neighboring word lines is used to determine which bit line offset needs to be used. If the neighboring cell is in state E or B, the memory cell at the word line being read does not need compensation applied during sensing. If the cell at WLn + 1 is in state E, it does not contribute to any coupling because the threshold voltage is the same as before the word line was written. If the cell at WLn + 1 is in state B, it is programmed from the intermediate state B ', which is a small change in charge, and can be ignored in most cases. The read offset is used for those cells on WLn with neighboring memory cells at WLn + 1 in state A or state C.

만약 단계(967)에서, 판독되는 페이지가 아래쪽 페이지라고 결정된다면, Vrb가 단계(968)에서 판독되는 페이지와 관련된 워드 라인에 인가된다. Vrb에서의 판독은 도 12A 내지 도 12C에 도시된 인코딩에 대한 아래쪽 페이지 데이터를 결정하기에 충분하다. 단계(969)에서, 비트 라인이 감지되고, 그리고 단계(970)에서, 그 결과가 비트 라인들에 대해 적절한 래치에 저장된다. 도 14에 도시된 바와 같이, 어떠한 보상 오프셋들이 Vrb 레벨에서 인가되지 않았고, 그래서 단계(969)에서 단지 아래쪽 페이지 감지만이 수행된다. 상태 A와 B 간의 더 큰 마진을 생성하도록 셀들이 프로그래밍 되기 때문에, 정확한 판독이 커플링 보상 없이 성취될 수 있다. 아래쪽 페이지에 대한 데이터가 단계(971)에서 결정된다. 만약 셀이 Vrb에 응답하여 턴온된다면, 아래쪽 페이지 데이터는 1이고, 만약 그렇지 않으면 아래쪽 페이지 데이터는 0이다. 단계(972)에서, 아래쪽 페이지 데이터는 사용자에게 전달하기 위해 적절한 래치에 저장된다.If at step 967 it is determined that the page being read is the lower page, then Vrb is applied to the word line associated with the page being read at step 968. Reading in Vrb is sufficient to determine the lower page data for the encoding shown in Figures 12A-12C. In step 969, the bit line is sensed, and in step 970, the result is stored in an appropriate latch for the bit lines. As shown in FIG. 14, no compensation offsets were applied at the Vrb level, so only the bottom page detection is performed at step 969. Since the cells are programmed to produce a larger margin between states A and B, accurate reading can be achieved without coupling compensation. Data for the lower page is determined at step 971. If the cell is turned on in response to Vrb, the lower page data is 1, otherwise the lower page data is 0. In step 972, the bottom page data is stored in an appropriate latch for delivery to the user.

만약 단계(967)에서 판독되는 페이지가 위쪽 페이지라고 결정된다면, 위쪽 페이지는 단계(976)에서 보상을 사용하여 판독된다. 도 21은 오프셋 판독 기준 레벨을 사용하는 위쪽 페이지 판독을 설명하는 흐름도이다. 도 21의 단계(974)에서, 판독 기준 전압(Vrc)이 판독되는 페이지와 관련된 워드 라인에 인가된다. 비트 라인이 단계(975)에서 감지되고, 그리고 그 결과가 단계(976)에서 적절한 래치에 저장된다. 단계(977)에서, Vrc와 오프셋(예를 들어 0.1V)의 합이 판독되는 페이지와 관련된 워드 라인에 인가된다. 단계(978)에서, 비트 라인이 감지되고, 그리고 단계(979)에서 단계(978)에서의 감지의 결과가 사용되어 단계(976)에서 저장된 결과를, 오프셋이 요구되는 임의의 비트 라인에 대해 오버라이팅(overwriting)하는데 사용된다. 단계(980)에서, Vrb가 워드 라인에 인가되고, 그리고 단계(981)에서 비트 라인이 감지된다. 단계(981)에서의 감지의 결과가 단계(982)에서 저장된다. Vra가 단계(983)에서 판독되는 페이지와 관련된 워드 라인에 인가된다. 비트 라인이 단계(984)에서 감지되고, 그리고 단계(985)에서 그 결과가 적절한 래치에 저장된다. 도 20에서, 상태(E)와 상태(A) 간의 자연적으로 발생하는 마진이 Vra와 관련된 오프셋이 불필요할 정도로 충분하다고 가정한다. 다른 실시예에서, Vra 레벨에 대한 오프셋이 사용될 수 있다. 데이터 값이 단계(986) 및 단계(987)에서 결정되고, 데이터 값이 사용자로의 전달을 위해 적절한 데이터 래치에 저장된다. 다른 실시예들에서, 판독의 순서(Vrc, Vrb, Vra)는 변경될 수 있다.If it is determined in step 967 that the page being read is an upper page, the upper page is read using the compensation in step 976. 21 is a flow chart illustrating upper page reading using the offset reading reference level. In step 974 of FIG. 21, a read reference voltage Vrc is applied to the word line associated with the page being read. The bit line is sensed at step 975 and the result is stored in the appropriate latch at step 976. In step 997, the sum of Vrc and an offset (e.g., 0.1V) is applied to the word line associated with the page being read. In step 978, the bit line is sensed, and in step 979 the result of the detection in step 978 is used to overwrite the result stored in step 976 for any bit line for which an offset is required. Used for overwriting. In step 980, Vrb is applied to the word line, and in step 981 the bit line is sensed. The result of the sensing at step 981 is stored at step 982. Vra is applied to the word line associated with the page read in step 983. The bit line is sensed in step 984 and the result is stored in a suitable latch in step 985. In FIG. 20, it is assumed that the naturally occurring margin between state E and state A is sufficient such that the offset associated with Vra is unnecessary. In other embodiments, offsets to Vra levels may be used. The data values are determined in steps 986 and 987 and the data values are stored in the appropriate data latches for delivery to the user. In other embodiments, the order of reading (Vrc, Vrb, Vra) may be changed.

본 발명의 앞서의 상세한 설명은 예시적이고 설명적 목적으로 제공되는 것이다. 개시되는 형태만이 정확히 본 발명의 전부가 되는 것이 아니며 또는 본 발명을 이러한 개시되는 형태에 정확히 한정시키려는 것도 아니다. 많은 수정 및 변형이 앞서의 설명으로부터 가능하다. 본 발명의 원리를 가장 잘 설명하기 위해서, 그리고 그 실질적인 애플리케이션의 원리를 가장 잘 설명하기 위해서, 그럼으로써 본 발명의 기술분야에서 숙련된 기술을 가진 다른 사람들이 다양한 실시예들 및 특정 사용에 적합한 것으로 고려되는 다양한 수정된 형태로 본 발명을 가장 잘 이용할 수 있도록 하기 위해, 상기 설명된 실시예들이 선택되었다. 본 발명의 범위는 아래 에 첨부되는 특허청구범위에 의해 정의된다.The foregoing detailed description of the invention is provided for illustrative and illustrative purposes. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Many modifications and variations are possible in light of the above description. In order to best explain the principles of the present invention, and to best explain the principles of its practical application, others skilled in the art of the present invention will find it suitable for various embodiments and specific uses. In order to best utilize the present invention in various modified forms contemplated, the embodiments described above have been selected. The scope of the invention is defined by the claims appended hereto.

Claims (26)

비휘발성 저장장치(non-volatile storage)를 판독하는 방법으로서,A method of reading non-volatile storage, 제 1 비휘발성 저장 소자를 판독하기 위한 요청을 수신하는 단계와;Receiving a request to read a first nonvolatile storage element; 상기 요청에 응답하여 제 2 비휘발성 저장 소자를 판독하는 단계와, 여기서 상기 제 2 비휘발성 저장 소자는 상기 제 1 비휘발성 저장 소자에 인접하여 있고 그리고 적어도 네 개의 물리적 상태들로 데이터를 저장할 수 있으며,Reading a second nonvolatile storage element in response to the request, wherein the second nonvolatile storage element is adjacent to the first nonvolatile storage element and can store data in at least four physical states; , 제 1 프로그래밍 상태와 제 2 프로그래밍 상태 사이의 레벨에서 상기 제 1 비휘발성 저장 소자를 판독하기 위해 제 1 기준을 인가하는 단계와;Applying a first reference to read the first nonvolatile storage element at a level between a first programming state and a second programming state; 상기 제 2 프로그래밍 상태와 상기 제 3 프로그래밍 상태 사이의 레벨에서 상기 제 1 비휘발성 저장 소자를 판독하기 위해 제 2 기준을 인가하는 단계와;Applying a second reference to read the first nonvolatile storage element at a level between the second programming state and the third programming state; 제 1 레벨에서 상기 제 1 기준을 인가한 결과 및 제 2 레벨에서 상기 제 2 기준을 인가한 결과를 사용하여, 상기 제 2 비휘발성 저장 소자가 상기 물리적 상태들의 제 1 서브세트에 있을 때, 상기 제 1 비휘발성 저장 소자의 데이터를 결정하는 단계와; 그리고Using the result of applying the first criterion at a first level and the result of applying the second criterion at a second level, when the second non-volatile storage element is in a first subset of the physical states, the Determining data of the first nonvolatile storage element; And 상기 제 1 레벨에서 상기 제 1 기준을 인가한 결과 및 제 3 레벨에서 상기 제 2 기준을 인가한 결과를 사용하여, 상기 제 2 비휘발성 저장 소자가 상기 물리적 상태들의 제 2 서브세트에 있을 때, 상기 제 1 비휘발성 저장 소자의 데이터를 결정하는 단계를 포함하여 구성되는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.When the second non-volatile storage element is in the second subset of physical states, using the result of applying the first reference at the first level and the result of applying the second reference at the third level, And determining the data of the first non- volatile storage element. 제1항에 있어서,The method of claim 1, 상기 제 1 레벨에서 상기 제 1 기준의 인가는 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 플로팅 게이트 커플링을 보상하지 않으며,The application of the first reference at the first level does not compensate for floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element, 상기 제 2 레벨에서 상기 제 2 기준의 인가는 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 플로팅 게이트 커플링을 보상하지 않으며, 그리고Application of the second reference at the second level does not compensate for floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element, and 상기 제 3 레벨에서 상기 제 2 기준의 인가는 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 플로팅 게이트 커플링을 보상하는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.The application of the second reference at the third level compensates for the floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element. 제2항에 있어서,The method of claim 2, 상기 제 2 비휘발성 저장 소자가 상기 물리적 상태들의 상기 제 2 서브세트에 있을 때, 상기 제 1 비휘발성 저장 소자의 데이터를 결정하는 단계는,When the second nonvolatile storage element is in the second subset of the physical states, determining data of the first nonvolatile storage element may include: 상기 제 1 비휘발성 저장 소자의 제어 게이트에 상기 제 1 레벨에서의 상기 제 1 기준에 대응하는 제 1 전압을 인가하고 그리고 상기 제 1 비휘발성 저장 소자의 전도(conduction)를 감지하는 것과;Applying a first voltage corresponding to the first reference at the first level to a control gate of the first nonvolatile storage element and sensing conduction of the first nonvolatile storage element; 상기 제 1 비휘발성 저장 소자의 상기 제어 게이트에 상기 제 2 레벨에서의 상기 제 2 기준에 대응하는 제 2 전압을 인가하고 그리고 상기 제 1 비휘발성 저장 소자의 전도를 감지하는 것과;Applying a second voltage corresponding to the second reference at the second level to the control gate of the first nonvolatile storage element and sensing conduction of the first nonvolatile storage element; 상기 제 1 비휘발성 저장 소자의 상기 제어 게이트에 상기 제 3 레벨에서의 상기 제 2 기준에 대응하는 제 3 전압을 인가하고 그리고 상기 제 1 비휘발성 저장 소자의 전도를 감지하는 것과, 상기 제 3 전압은 상기 제 2 전압과 오프셋의 합과 동일하고;Applying a third voltage corresponding to the second reference at the third level to the control gate of the first nonvolatile storage element and sensing conduction of the first nonvolatile storage element; Is equal to the sum of the second voltage and the offset; 상기 제 1 전압을 인가한 상기 결과를 선택하고, 상기 제 3 전압을 인가한 상기 결과를 선택하고, 그리고 상기 제 2 전압을 인가한 상기 결과를 무시함으로써, 상기 제 1 비휘발성 저장 소자의 상기 데이터를 결정하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.Selecting the result of applying the first voltage, selecting the result of applying the third voltage, and ignoring the result of applying the second voltage, thereby causing the data of the first non-volatile storage element And determining the nonvolatile storage device. 제2항에 있어서,The method of claim 2, 상기 오프셋은 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 상기 플로팅 게이트 커플링에 근거하는 상기 제 1 비휘발성 저장 소자의 임계 전압에서의 겉보기 변화(apparent change)와 실질적으로 동일한 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.The offset is substantially equal to an apparent change in a threshold voltage of the first nonvolatile storage element based on the floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element. A method of reading a nonvolatile storage device. 제1항에 있어서,The method of claim 1, 상기 제 1 비휘발성 저장 소자는 제 1 워드 라인에 연결된 비휘발성 저장 소자들의 세트의 일부이고, 상기 방법은,The first nonvolatile storage element is part of a set of nonvolatile storage elements connected to a first word line, the method further comprising: 상기 제 1 프로그래밍 상태, 상기 제 2 프로그래밍 상태, 및 상기 제 3 프로그래밍 상태를 포함하는 복수의 물리적 상태들에 상기 비휘발성 저장 소자들의 세 트를 프로그래밍하는 단계와;Programming the set of nonvolatile storage elements in a plurality of physical states including the first programming state, the second programming state, and the third programming state; 상기 제 1 상태에 프로그래밍될 상기 세트의 비휘발성 저장 소자들이 상기 제 1 상태에 대응하는 제 1 타겟 레벨에 도달했는지 여부를 검증하는 단계와;Verifying whether the set of non-volatile storage elements to be programmed to the first state has reached a first target level corresponding to the first state; 상기 제 2 상태에 프로그래밍될 상기 세트의 비휘발성 저장 소자들이 상기 제 2 상태에 대응하는 제 2 타겟 레벨에 도달했는지 여부를 검증하는 단계와, 상기 제 2 타겟 레벨은 상기 제 1 타겟 레벨로부터 제1의 양만큼 이격되어 있고;Verifying whether the set of nonvolatile storage elements to be programmed to the second state has reached a second target level corresponding to the second state, wherein the second target level is a first from the first target level; Spaced apart by; 상기 제 3 상태에 프로그래밍될 상기 세트의 비휘발성 저장 소자들이 상기 제 3 상태에 대응하는 제 3 타겟 레벨에 도달했는지 여부를 검증하는 단계를 더 포함하여 구성되며,And verifying whether the set of nonvolatile storage elements to be programmed to the third state has reached a third target level corresponding to the third state, 상기 제 3 타겟 레벨은 상기 제 2 타겟 레벨로부터 상기 제1의 양보다 작은 제2의 양만큼 이격되어 있는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.And wherein the third target level is spaced apart from the second target level by a second amount less than the first amount. 제1항에 있어서,The method of claim 1, 상기 물리적 상태들의 제 1 서브세트는 상기 제 1 프로그래밍 상태 및 상기 제 3 프로그래밍 상태를 포함하고, 그리고The first subset of physical states comprises the first programming state and the third programming state, and 상기 물리적 상태들의 제 2 서브세트는 상기 제 2 프로그래밍 상태 및 소거 상태를 포함하는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.And wherein said second subset of physical states comprises said second programming state and an erased state. 제6항에 있어서,The method of claim 6, 상기 제 1 프로그래밍 상태는 상기 소거 상태 및 상기 제 2 프로그래밍 상태에 인접하여 있고, 그리고The first programming state is adjacent to the erase state and the second programming state, and 상기 제 2 프로그래밍 상태는 상기 제 1 프로그래밍 상태 및 상기 제 3 프로그래밍 상태에 인접하여 있는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.And said second programming state is adjacent to said first programming state and said third programming state. 제1항에 있어서,The method of claim 1, 상기 제 2 비휘발성 저장 소자는 위쪽 페이지 데이터 및 아래쪽 페이지 데이터를 저장하고,The second nonvolatile storage device stores upper page data and lower page data; 상기 요청에 응답하여 상기 제 2 비휘발성 저장 소자를 판독하는 단계는 상기 제 2 비휘발성 저장 소자에 대해 상기 위쪽 페이지 데이터를 판독하는 것을 포함하고,Reading the second nonvolatile storage element in response to the request includes reading the top page data for the second nonvolatile storage element, 상기 제 2 기준에 대한 상기 제 1 레벨 및 상기 제 2 레벨은 상기 제 2 비휘발성 저장 소자에 대해 상기 위쪽 페이지 데이터에는 근거하지만 상기 아래쪽 페이지 데이터에는 근거하지 않으며,The first level and the second level for the second reference are based on the upper page data but not the lower page data for the second non-volatile storage element, 상기 물리적 상태들의 제 1 서브세트는 상기 위쪽 페이지에 대해 제 1 데이터를 저장하는 상기 제 2 비휘발성 저장 소자에 대응하고,The first subset of physical states corresponds to the second non-volatile storage element storing first data for the upper page, 상기 물리적 상태들의 제 2 서브세트는 상기 위쪽 페이지에 대해 제 2 데이터를 저장하는 상기 제 2 비휘발성 저장 소자에 대응하는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.And wherein said second subset of physical states corresponds to said second nonvolatile storage element storing second data for said upper page. 제1항에 있어서,The method of claim 1, 상기 제 1 비휘발성 저장 소자는 제 1 논리적 페이지 및 제 2 논리적 페이지에 대해 데이터를 저장하고,The first nonvolatile storage device stores data for a first logical page and a second logical page, 상기 제 2 비휘발성 저장 소자는 제 3 논리적 페이지 및 제 4 논리적 페이지에 대해 데이터를 저장하고,The second nonvolatile storage device stores data for a third logical page and a fourth logical page, 상기 제 1 비휘발성 저장 소자에 의해 저장된 상기 제 2 논리적 페이지에 대한 상기 데이터는, 상기 제 2 비휘발성 저장 소자에 의해 저장된 상기 제 3 논리적 페이지에 대해 상기 데이터를 프로그래밍한 이후 상기 제 2 비휘발성 저장 소자에 의해 상기 제 4 논리적 페이지에 대해 저장된 상기 데이터를 프로그래밍하기 전에 프로그래밍되는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.The data for the second logical page stored by the first nonvolatile storage element is stored in the second nonvolatile storage after programming the data for the third logical page stored by the second nonvolatile storage element. And programmed by the device prior to programming the data stored for the fourth logical page. 제1항에 있어서,The method of claim 1, 상기 제 1 비휘발성 저장 소자는 제 1 워드 라인에 연결되고,The first nonvolatile storage device is connected to a first word line; 상기 제 2 비휘발성 저장 소자는 상기 제 1 워드 라인에 인접한 제 2 워드 라인에 연결되고,The second nonvolatile storage element is connected to a second word line adjacent to the first word line, 여기서, 상기 제 1 워드 라인에 연결된 비휘발성 저장 소자들에 대한 데이터의 프로그래밍은, 상기 제 2 워드 라인에 연결된 비휘발성 저장 소자들에 대한 데이터의 프로그래밍이 시작되기 전에, 시작되는 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.Here, programming of data for nonvolatile storage elements connected to the first word line is started before programming of data for nonvolatile storage elements connected to the second word line begins. How to read volatile storage. 제1항에 있어서,The method of claim 1, 상기 제 1 비휘발성 저장 소자는 복수 상태 NAND 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.And wherein said first non-volatile storage element is a multi-state NAND flash memory device. 제1항에 있어서,The method of claim 1, 상기 제 1 비휘발성 저장 소자는 복수 상태 NAND 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.And wherein said first non-volatile storage element is a multi-state NAND flash memory device. 제1항에 있어서,The method of claim 1, 상기 제 1 비휘발성 저장 소자는 플래시 메모리 디바이스들의 어레이의 일부이고,The first non-volatile storage element is part of an array of flash memory devices, 상기 어레이는 호스트 시스템으로부터 탈착가능한 것을 특징으로 하는 비휘발성 저장장치를 판독하는 방법.And said array is removable from a host system. 비휘발성 메모리 시스템으로서,A nonvolatile memory system, 적어도 네 개의 물리적 상태들로 데이터를 저장할 수 있는 복수의 비휘발성 저장 소자들과;A plurality of nonvolatile storage elements capable of storing data in at least four physical states; 상기 복수의 비휘발성 저장 소자들과 통신하는 관리 회로를 포함하여 구성되며,And a management circuit in communication with the plurality of nonvolatile storage elements, 상기 관리 회로는 제 1 비휘발성 저장 소자를 판독하기 위한 요청을 수신하고, 그리고 상기 요청에 응답하여 상기 제 1 비휘발성 저장 소자에 인접한 제 2 비휘발성 저장 소자를 판독하고,The management circuitry receives a request to read a first nonvolatile storage element, and in response to the request reads a second nonvolatile storage element adjacent to the first nonvolatile storage element, 상기 관리 회로는 제 1 프로그래밍 상태와 제 2 프로그래밍 상태 사이의 레벨에서 상기 제 1 비휘발성 저장 소자를 판독하기 위해 제 1 기준을 인가함으로써, 그리고 상기 제 2 프로그래밍 상태와 상기 제 3 프로그래밍 상태 사이의 레벨에서 상기 제 1 비휘발성 저장 소자를 판독하기 위해 제 2 기준을 인가함으로써, 상기 제 1 비휘발성 저장 소자를 판독하고,The management circuit applies a first reference to read the first nonvolatile storage element at a level between a first programming state and a second programming state, and a level between the second programming state and the third programming state. Read the first nonvolatile storage element by applying a second reference to read the first nonvolatile storage element at 상기 관리 회로는 제 1 레벨에서 상기 제 1 기준을 인가한 결과 및 제 2 레벨에서 상기 제 2 기준을 인가한 결과를 사용하여, 상기 제 2 비휘발성 저장 소자가 상기 물리적 상태들의 제 1 서브세트에 있을 때, 상기 제 1 비휘발성 저장 소자의 데이터를 결정하고,The management circuit uses the result of applying the first criterion at a first level and the result of applying the second criterion at a second level, such that the second nonvolatile storage element is assigned to the first subset of physical states. When present, determine the data of the first nonvolatile storage element, 상기 관리 회로는 상기 제 1 레벨에서 상기 제 1 기준을 인가한 결과 및 제 3 레벨에서 상기 제 2 기준을 인가한 결과를 사용하여, 상기 제 2 비휘발성 저장 소자가 상기 물리적 상태들의 제 2 서브세트에 있을 때, 상기 제 1 비휘발성 저장 소자의 데이터를 결정하는 것을 특징으로 하는 비휘발성 메모리 시스템.The management circuit uses the result of applying the first criterion at the first level and the result of applying the second criterion at a third level, such that the second non-volatile storage element has a second subset of the physical states. And when at, determine the data of the first non- volatile storage element. 제14항에 있어서,The method of claim 14, 상기 제 1 레벨에서 상기 제 1 기준의 인가는 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 플로팅 게이트 커플링을 보상하지 않으며,The application of the first reference at the first level does not compensate for floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element, 상기 제 2 레벨에서 상기 제 2 기준의 인가는 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 플로팅 게이트 커플링을 보상하지 않으며, 그리고Application of the second reference at the second level does not compensate for floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element, and 상기 제 3 레벨에서 상기 제 2 기준의 인가는 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 플로팅 게이트 커플링을 보상하는 것을 특징으로 하는 비휘발성 메모리 시스템.The application of the second reference at the third level compensates for the floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element. 제15항에 있어서,The method of claim 15, 상기 관리 회로는,The management circuit, 상기 제 1 비휘발성 저장 소자의 제어 게이트에 상기 제 1 레벨에서의 상기 제 1 기준에 대응하는 제 1 전압을 인가하고 그리고 상기 제 1 비휘발성 저장 소자의 전도를 감지함으로써;By applying a first voltage corresponding to the first reference at the first level to a control gate of the first nonvolatile storage element and sensing conduction of the first nonvolatile storage element; 상기 제 1 비휘발성 저장 소자의 상기 제어 게이트에 상기 제 2 레벨에서의 상기 제 2 기준에 대응하는 제 2 전압을 인가하고 그리고 상기 제 1 비휘발성 저장 소자의 전도를 감지함으로써;By applying a second voltage corresponding to the second reference at the second level to the control gate of the first nonvolatile storage element and sensing conduction of the first nonvolatile storage element; 상기 제 1 비휘발성 저장 소자의 상기 제어 게이트에 상기 제 3 레벨에서의 상기 제 2 기준에 대응하는 제 3 전압을 인가하고 그리고 상기 제 1 비휘발성 저장 소자의 전도를 감지함으로써, 상기 제 3 전압은 상기 제 2 전압과 오프셋의 합과 동일하고;By applying a third voltage corresponding to the second reference at the third level to the control gate of the first nonvolatile storage element and sensing conduction of the first nonvolatile storage element, the third voltage is Equal to the sum of the second voltage and the offset; 상기 제 1 전압을 인가한 상기 결과를 선택하고, 상기 제 3 전압을 인가한 상기 결과를 선택하고, 그리고 상기 제 2 전압을 인가한 상기 결과를 무시함으로써,By selecting the result of applying the first voltage, selecting the result of applying the third voltage, and ignoring the result of applying the second voltage, 상기 제 2 비휘발성 저장 소자가 상기 물리적 상태들의 상기 제 2 서브세트에 있을 때, 상기 제 1 비휘발성 저장 소자의 데이터를 결정하는 것을 특징으로 하는 비휘발성 메모리 시스템.And determine the data of the first nonvolatile storage element when the second nonvolatile storage element is in the second subset of the physical states. 제15항에 있어서,The method of claim 15, 상기 오프셋은 실질적으로 상기 제 1 비휘발성 저장 소자와 상기 제 2 비휘발성 저장 소자 간의 상기 플로팅 게이트 커플링에 근거하는 상기 제 1 비휘발성 저장 소자의 임계 전압에서의 겉보기 변화와 동일한 것을 특징으로 하는 비휘발성 메모리 시스템.The offset is substantially equal to an apparent change in threshold voltage of the first nonvolatile storage element based on the floating gate coupling between the first nonvolatile storage element and the second nonvolatile storage element. Volatile Memory System. 제14항에 있어서,The method of claim 14, 상기 제 1 비휘발성 저장 소자는 제 1 워드 라인에 연결된 비휘발성 저장 소자들의 세트의 일부이고, 상기 관리 회로는,The first nonvolatile storage element is part of a set of nonvolatile storage elements connected to a first word line, and the management circuitry includes: 상기 제 1 프로그래밍 상태, 상기 제 2 프로그래밍 상태, 및 상기 제 3 프로그래밍 상태를 포함하는 복수의 물리적 상태들에 상기 비휘발성 저장 소자들의 세트를 프로그래밍하고;Program the set of non-volatile storage elements into a plurality of physical states including the first programming state, the second programming state, and the third programming state; 상기 제 1 상태에 프로그래밍될 상기 세트의 비휘발성 저장 소자들이 상기 제 1 상태에 대응하는 제 1 타겟 레벨에 도달했는지 여부를 검증하고;Verify whether the set of non-volatile storage elements to be programmed to the first state has reached a first target level corresponding to the first state; 상기 제 2 상태에 프로그래밍될 상기 세트의 비휘발성 저장 소자들이 상기 제 2 상태에 대응하는 제 2 타겟 레벨에 도달했는지 여부를 검증하고, 상기 제 2 타겟 레벨은 상기 제 1 타겟 레벨로부터 제1의 양만큼 이격되어 있으며;Verify whether the set of nonvolatile storage elements to be programmed to the second state has reached a second target level corresponding to the second state, wherein the second target level is a first amount from the first target level; Spaced apart by; 상기 제 3 상태에 프로그래밍될 상기 세트의 비휘발성 저장 소자들이 상기 제 3 상태에 대응하는 제 3 타겟 레벨에 도달했는지 여부를 검증하고,Verify whether the set of nonvolatile storage elements to be programmed to the third state has reached a third target level corresponding to the third state, 여기서 상기 제 3 타겟 레벨은 상기 제 2 타겟 레벨로부터 상기 제1의 양보다 더 작은 제2의 양만큼 이격되어 있는 것을 특징으로 하는 비휘발성 메모리 시스템.Wherein the third target level is spaced apart from the second target level by a second amount less than the first amount. 제14항에 있어서,The method of claim 14, 상기 물리적 상태들의 제 1 서브세트는 상기 제 1 프로그래밍 상태 및 상기 제 3 프로그래밍 상태를 포함하고, 그리고The first subset of physical states comprises the first programming state and the third programming state, and 상기 물리적 상태들의 제 2 서브세트는 상기 제 2 프로그래밍 상태 및 소거 상태를 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.And the second subset of physical states comprises the second programming state and an erase state. 제19항에 있어서,The method of claim 19, 상기 제 1 프로그래밍 상태는 상기 소거 상태 및 상기 제 2 프로그래밍 상태에 인접하여 있고, 그리고The first programming state is adjacent to the erase state and the second programming state, and 상기 제 2 프로그래밍 상태는 상기 제 1 프로그래밍 상태 및 상기 제 3 프로그래밍 상태에 인접하여 있는 것을 특징으로 하는 비휘발성 메모리 시스템.And the second programming state is adjacent to the first programming state and the third programming state. 제14항에 있어서,The method of claim 14, 상기 제 2 비휘발성 저장 소자는 위쪽 페이지 데이터 및 아래쪽 페이지 데이터를 저장하고,The second nonvolatile storage device stores upper page data and lower page data; 상기 요청에 응답하여 상기 제 2 비휘발성 저장 소자를 판독하는 것은 상기 제 2 비휘발성 저장 소자에 대해 상기 위쪽 페이지 데이터를 판독하는 것을 포함하고,Reading the second nonvolatile storage element in response to the request includes reading the top page data for the second nonvolatile storage element, 상기 제 2 기준에 대한 상기 제 1 레벨 및 상기 제 2 레벨은 상기 제 2 비휘발성 저장 소자에 대해 상기 위쪽 페이지 데이터에는 근거하지만 상기 아래쪽 페이지 데이터에는 근거하지 않으며,The first level and the second level for the second reference are based on the upper page data but not the lower page data for the second non-volatile storage element, 상기 물리적 상태들의 제 1 서브세트는 상기 위쪽 페이지에 대해 제 1 데이터를 저장하는 상기 제 2 비휘발성 저장 소자에 대응하고,The first subset of physical states corresponds to the second non-volatile storage element storing first data for the upper page, 상기 물리적 상태들의 제 2 서브세트는 상기 위쪽 페이지에 대해 제 2 데이터를 저장하는 상기 제 2 비휘발성 저장 소자에 대응하는 것을 특징으로 하는 비휘발성 메모리 시스템.And the second subset of physical states corresponds to the second non- volatile storage element storing second data for the upper page. 제14항에 있어서,The method of claim 14, 상기 제 1 비휘발성 저장 소자는 제 1 논리적 페이지 및 제 2 논리적 페이지에 대해 데이터를 저장하고,The first nonvolatile storage device stores data for a first logical page and a second logical page, 상기 제 2 비휘발성 저장 소자는 제 3 논리적 페이지 및 제 4 논리적 페이지 에 대해 데이터를 저장하고,The second nonvolatile storage device stores data for a third logical page and a fourth logical page, 상기 제 1 비휘발성 저장 소자에 의해 저장된 상기 제 2 논리적 페이지에 대한 상기 데이터는, 상기 제 2 비휘발성 저장 소자에 의해 저장된 상기 제 3 논리적 페이지에 대해 상기 데이터를 프로그래밍한 이후에, 그리고 상기 제 2 비휘발성 저장 소자에 의해 상기 제 4 논리적 페이지에 대해 저장된 상기 데이터를 프로그래밍하기 전에, 프로그래밍되는 것을 특징으로 하는 비휘발성 메모리 시스템.The data for the second logical page stored by the first non-volatile storage element is determined after programming the data for the third logical page stored by the second non-volatile storage element and the second. And program the data stored for the fourth logical page prior to programming by the nonvolatile storage element. 제14항에 있어서,The method of claim 14, 상기 제 1 비휘발성 저장 소자는 제 1 워드 라인에 연결되고,The first nonvolatile storage device is connected to a first word line; 상기 제 2 비휘발성 저장 소자는 상기 제 1 워드 라인에 인접한 제 2 워드 라인에 연결되고,The second nonvolatile storage element is connected to a second word line adjacent to the first word line, 여기서, 상기 제 1 워드 라인에 연결된 비휘발성 저장 소자들에 대한 데이터의 프로그래밍은, 상기 제 2 워드 라인에 연결된 비휘발성 저장 소자들에 대한 데이터의 프로그래밍이 시작되기 전에, 시작되는 것을 특징으로 하는 비휘발성 메모리 시스템.Here, programming of data for nonvolatile storage elements connected to the first word line is started before programming of data for nonvolatile storage elements connected to the second word line begins. Volatile Memory System. 제14항에 있어서,The method of claim 14, 상기 제 1 비휘발성 저장 소자는 복수 상태 NAND 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 메모리 시스템.And said first non-volatile storage element is a multi-state NAND flash memory device. 제14항에 있어서,The method of claim 14, 상기 제 1 비휘발성 저장 소자는 복수 상태 NAND 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 메모리 시스템.And said first non-volatile storage element is a multi-state NAND flash memory device. 제14항에 있어서,The method of claim 14, 상기 제 1 비휘발성 저장 소자는 플래시 메모리 디바이스들의 어레이의 일부이고,The first non-volatile storage element is part of an array of flash memory devices, 상기 어레이는 호스트 시스템으로부터 탈착가능한 것을 특징으로 하는 비휘발성 메모리 시스템.And said array is removable from a host system.
KR1020087023382A 2006-06-19 2007-05-25 Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory KR101020812B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/425,111 US7606084B2 (en) 2006-06-19 2006-06-19 Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US11/425,116 US7352628B2 (en) 2006-06-19 2006-06-19 Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory
US11/425,111 2006-06-19
US11/425,116 2006-06-19

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020107019325A Division KR101041595B1 (en) 2006-06-19 2007-05-25 Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory

Publications (2)

Publication Number Publication Date
KR20080111458A true KR20080111458A (en) 2008-12-23
KR101020812B1 KR101020812B1 (en) 2011-03-09

Family

ID=38834213

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020107019325A KR101041595B1 (en) 2006-06-19 2007-05-25 Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
KR1020087023382A KR101020812B1 (en) 2006-06-19 2007-05-25 Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020107019325A KR101041595B1 (en) 2006-06-19 2007-05-25 Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory

Country Status (5)

Country Link
JP (1) JP4912460B2 (en)
KR (2) KR101041595B1 (en)
CN (1) CN102306501B (en)
TW (2) TWI451422B (en)
WO (1) WO2007149678A2 (en)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7639532B2 (en) * 2007-10-10 2009-12-29 Micron Technology, Inc. Non-equal threshold voltage ranges in MLC NAND
US7800956B2 (en) * 2008-06-27 2010-09-21 Sandisk Corporation Programming algorithm to reduce disturb with minimal extra time penalty
JP5710475B2 (en) * 2008-07-01 2015-04-30 エルエスアイ コーポレーション Method and apparatus for soft demapping and inter-cell interference mitigation in flash memory
JP5535219B2 (en) 2008-09-30 2014-07-02 エルエスアイ コーポレーション Method and apparatus for soft data generation in a memory device using a reference cell
US7813181B2 (en) 2008-12-31 2010-10-12 Sandisk Corporation Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations
US8429500B2 (en) 2010-03-31 2013-04-23 Lsi Corporation Methods and apparatus for computing a probability value of a received value in communication or storage systems
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8504885B2 (en) 2010-03-31 2013-08-06 Lsi Corporation Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems
JP2012069192A (en) * 2010-09-22 2012-04-05 Toshiba Corp Memory system
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US9502117B2 (en) * 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
CN102347069B (en) * 2011-05-26 2013-04-03 忆正存储技术(武汉)有限公司 Programming method for multi-layered flash memory array and switching control method thereof
US9030870B2 (en) * 2011-08-26 2015-05-12 Micron Technology, Inc. Threshold voltage compensation in a multilevel memory
US8934306B2 (en) * 2012-03-06 2015-01-13 Micron Technology, Inc. Memory and sense parameter determination methods
US9146850B2 (en) * 2013-08-01 2015-09-29 SMART Storage Systems, Inc. Data storage system with dynamic read threshold mechanism and method of operation thereof
US11443175B2 (en) * 2018-07-11 2022-09-13 Silicon Storage Technology, Inc. Compensation for reference transistors and memory cells in analog neuro memory in deep learning artificial neural network
US11081189B1 (en) * 2020-02-25 2021-08-03 Micron Technology, Inc. Charge loss compensation

Family Cites Families (15)

* 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
US5870335A (en) * 1997-03-06 1999-02-09 Agate Semiconductor, Inc. Precision programming of nonvolatile memory cells
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
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
US6963505B2 (en) * 2002-10-29 2005-11-08 Aifun Semiconductors Ltd. Method circuit and system for determining a reference voltage
JP3935139B2 (en) * 2002-11-29 2007-06-20 株式会社東芝 Semiconductor memory device
US6657891B1 (en) 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
JP3878573B2 (en) * 2003-04-16 2007-02-07 株式会社東芝 Nonvolatile semiconductor memory device
JP3913704B2 (en) * 2003-04-22 2007-05-09 株式会社東芝 Nonvolatile semiconductor memory device and electronic device using the same
US6956770B2 (en) * 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US6888758B1 (en) * 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
US7020017B2 (en) * 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7173859B2 (en) * 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
JP4177847B2 (en) * 2006-01-06 2008-11-05 株式会社東芝 Nonvolatile semiconductor memory device

Also Published As

Publication number Publication date
JP2009541910A (en) 2009-11-26
KR101020812B1 (en) 2011-03-09
KR101041595B1 (en) 2011-06-15
TW201124991A (en) 2011-07-16
TWI451422B (en) 2014-09-01
TW200805381A (en) 2008-01-16
KR20100111735A (en) 2010-10-15
CN102306501A (en) 2012-01-04
CN102306501B (en) 2014-03-19
TWI336080B (en) 2011-01-11
JP4912460B2 (en) 2012-04-11
WO2007149678A2 (en) 2007-12-27
WO2007149678A3 (en) 2008-04-10

Similar Documents

Publication Publication Date Title
KR101020812B1 (en) Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7606084B2 (en) Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7352628B2 (en) Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory
KR100916679B1 (en) Faster programming of higher level states in multi-level cell flash memory
EP2345038B1 (en) Multi-pass programming for memory using word line coupling
JP4954223B2 (en) Read operation for non-volatile memory with compensation for floating gate coupling
CN101213613B (en) Starting program voltage shift with cycling of non-volatile memory
TWI424436B (en) Compensating for coupling during read operations in non-volatile storage
KR101736414B1 (en) Programming non-volatile storage includng reducing impact from other memory cells
KR101094422B1 (en) Margined neighbor reading for non-volatile memory read operations including coupling compensation
KR20110056423A (en) Data state-based temperature compensation during sensing in non-volatile memory
KR20110038083A (en) Read disturb mitigation in non-volatile memory
EP2078303B1 (en) Reading of a nonvolatile memory cell by taking account of the stored state of a neighboring memory cell
KR101012132B1 (en) Verify operation for non-volatile storage using different voltages

Legal Events

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

Payment date: 20140204

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150130

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160127

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170201

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 10