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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3418—Disturbance prevention or evaluation; Refreshing of disturbed memory data
- G11C16/3427—Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50004—Marginal testing, e.g. race, voltage or current testing of threshold voltage
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/563—Multilevel memory reading aspects
- G11C2211/5634—Reference cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2216/00—Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
- G11C2216/12—Reading and writing aspects of erasable programmable read-only memories
- G11C2216/14—Circuits 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
Description
본 발명은 비휘발성 메모리를 프로그래밍하는 것에 관한 것이다.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
유의할 것으로, 비록 도 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 타입 플래시 메모리 및 그 동작의 관련 예들은 다음과 같은 미국 특허/특허 출원, 즉, 미국 특허 번호 제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
메모리 셀들에 저장된 데이터는 컬럼 제어 회로(304)에 의해 판독되고, 그리고 데이터 입력/출력 버퍼(312)를 통해 외부 I/O에 출력된다. 메모리 셀들에 저장될 프로그램 데이터가 외부 I/O 라인을 통해 데이터 입력/출력 버퍼(312)에 입력되고, 그리고 컬럼 제어 회로(304)에 전달된다. 외부 I/O 라인이 제어기(318)에 연결된다.Data stored in the memory cells is read by the
컬럼 제어 회로(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
플래시 메모리 디바이스를 제어하는 컴맨드 데이터(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
제어기(318)는 개인용 컴퓨터, 디지털 카메라, 혹은 개인 휴대용 정보 단말기, 등과 같은 호스트 시스템에 접속될 수 있거나 이러한 호스트 시스템과 접속가능하다. 이것은 메모리 어레이(302)에 데이터를 저장하는 것 혹은 메모리 어레이(302)로부터 데이터를 판독하는 것과 같은 컴맨드들을 개시시키고, 그리고 이러한 데이터를 제공하거나 수신하는 호스트와 통신한다. 제어기(318)는 이러한 컴맨드를, 제어 회로(315)의 일부인 컴맨드 회로(314)에 의해 해석될 수 있고 실행될 수 있는 컴맨드 신호로 변환한다. 컴맨드 회로(314)는 상태 머신(316)과 통신한다. 제어기(318)는 전형적으로 메모리 어레이에 기입되거나 혹은 메모리 어레이로부터 판독되는 사용자 데이터에 대한 버퍼 메모리를 포함한다.The
하나의 예시적 메모리 시스템은, 제어기(318)를 포함하는 하나의 집적 회로와, 그리고 그 각각이 메모리 어레이와 그 관련 제어 회로, 입력/출결 회로, 및 상태 머신 회로를 포함하는 하나 또는 그 이상의 집적 회로 칩들을 포함한다. 시스템의 메모리 어레이 및 제어기 회로를 하나 또는 그 이상의 집적 회로 칩들 상에 함께 집적시키려는 경향이 있다. 메모리 시스템은 호스트 컴퓨터의 일부로서 매입될 수 있고, 또는 호스트 시스템으로 탈착가능하게 삽입되는 메모리 카드(혹은 다른 패키지)에 포함될 수 있다. 이러한 카드는 전체 메모리 시스템(예를 들어, 제어기 포함)을 포함할 수 있거나, 혹은 단지 관련 주변 회로들(호스트에 매입되는 제어기 혹은 제어 기능을 가짐)만을 갖는 메모리 어레이(들)만을 포함할 수 있다. 따라서, 제어기는 호스트에 매입될 수 있고, 또는 탈착가능한 메모리 시스템에 포함될 수 있다.One example memory system includes one integrated circuit that includes a
도 5를 참조하면, 메모리 셀 어레이(302)의 예시적 구조가 설명된다. 예를 들어, 1,024개의 블럭으로 나누어져 있는 NAND 플래시 EEPROM이 설명된다. 각각의 블럭에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블럭은 동시에 소거될 수 있는 최소 셀 단위이다. 메모리 셀들은 p-웰을 소거 전압(예를 들어, 20 볼트)까지 상승시키고, 아울러 선택된 블럭의 워드 라인들을 접지시킴으로써 소거된다. 소스 라인 및 비트 라인은 플로팅 상태이다. 소거는 전체 메모리 어레이 또는 개별 블럭들에 관해 수행될 수 있고, 또는 또 다른 셀 단위로 수행될 수 있다. 전자들이 플로팅 게이트로부터 p-웰 영역으로 전달되고, 그리고 (일 예에서) 임계 전압은 음의 값이 된다.5, an exemplary structure of a
도 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,
프로그램 동작 및 검증 동작 동안, 셀들의 세트에 프로그래밍될 데이터가 각각의 비트 라인에 대해 데이터 래치들(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 (
도 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
앞서 설명된 소거 동작, 판독 동작, 및 검증 동작은 본 발명의 기술 분야에서 공지된ㄴ 기술에 따라 수행된다. 따라서, 설명된 상세한 설명중 많은 부분은 본 발명의 기술 분야에서 숙련된 자에 의해 다양하게 변경될 수 있다.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
제 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
일 실시예에서, 시스템은, 만약 충분한 데이터가 전체 페이지를 채우도록 기입된다면, 풀 시퀀스 기입을 수행하도록 설정될 수 있다. 만약 충분한 데이터가 전체 페이지에 대해 기입되지 않는다면, 그러면 프로그래밍 프로세스는 수신된 데이터로 아래쪽 페이지를 프로그래밍할 수 있다. 후속적 데이터가 수신될 때, 시스템은 위쪽 페이지를 프로그래밍한다. 또 다른 실시예에서, 시스템은 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
도 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.
도 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
도 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
상태(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,
다른 상태로 프로그래밍되는 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
메모리 셀들의 겉보기 임계 전압에서의 증가는 판독 에러를 일으킬 수 있다. 도 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
워드 라인(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
판독 동작이 먼저, 어떠한 커플링 영향도 보상하지 않은 공칭 판독 기준 전압 레벨(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
일 실시예에서, 메모리 셀에 대한 아래쪽 페이지 데이터가 프로그래밍된 이후, 인접하는 워드 라인(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
도 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
상태(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
도 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
해당 셀을 판독하기 위한 적절한 오프셋을 결정하고자 할 때 인접한 워드 라인의 오판독은 실제로 도 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
만약 상태(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
종래 기술에서, 다양한 프로그램 상태로 메모리 셀들을 프로그래밍하느 것은 도 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.
시프트된 프로그램 검증 레벨(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
분포(682, 686, 및 690)는 이웃하는 워드 라인(WLn+1)이 프로그래밍된 이후의 플로팅 게이트 커플링의 영향을 나타낸 것이다(예를 들어, 도 12C에서 도시된 바와 같이). 도 14에서, Vrb 판독 레벨은 겉보기 A 상태 분포(682)와 겉보기 B 상태 분포(686) 사이에 잘 이격되어 있다. 결과적으로, 오판독이 덜 일어날 수 있는데, 왜냐하면 이웃하는 워드 라인으로부터의 커플링 영향이 고려된 이후에도, Vrb 판독 레벨은 상태(A)에 있으려는 임의의 셀의 임계 전압과 오버랩하지 않기 때문이다. 일 실시예에서, 기준 레벨(Vrb)이, 도 12C에서 도시된 공칭 값(Vvb)으로부터의 프로그램 검증 레벨(Vvbl)에서의 시프트에 대응하는 양만큼, 기존의 사용되고 있는 레벨(예를 들어, 도 12C의 Vrb)로부터 시프트된다. Vrb가 상태(A)에서의 임의의 메모리 셀의 가장 높은 임계 전압을 넘어 시프트될 수 있기 때문에, 단일의 기준 값(Vrb)이 판독 동안 사용될 수 있고, 그리고 어떠한 보상도 적용되지 않는다.
따라서, 판독 기준 전압에 대한 오프셋은 일 실시에에서 상태(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
프로그래밍될 메모리 셀들은 단계(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
프로그램 컴맨드에 의해 트리거되고, 단계(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
단계(866)에서, 선택 메모리 셀들의 상태가 검증된다. 지금까지, 도 15에 도시된 프로세스는 공지된 기술에 따라 진행된다. 그러나, 단계(866)에서 프로세스는 선택 레벨의 더 정확한 판독을 용이하게 하는 비균등하게 이격된 마진들을 생성하기 위한 신규한 기술을 포함한다. 더 큰 마진이 두 개의 프로그래밍 상태들 간에 생성된다. 일 실시예에서, 더 큰 마진이 더 낮은 레벨들 간에 생성되고, 반면에 가장 높은 상태는 공칭 위치에서 유지된다. 일 실시예에서, 더 큰 마진이 상태(B)와 상태(A) 사이에 존재하도록 검증이 수행된다. 다른 실시예들에서, 가장 높은 레벨 상태 혹은 더 높은 레벨 상태는 또한 이러한 레벨들에서의 더 큰 검증 전압을 사용함으로써 양의 방향으로 시프트될 수 있다. 그러나, 전체적으로 더 높은 양의 전압으로 분포를 시프트하는 것은, 전압 레벨(예를 들어, Vpgm)이 프로그램 방해를 최소화시키는 것 등과 같은 그러한 이유로 특정 최대 레벨로 유지되어야 하는 일부 실시예에서는 수용될 수 없다.In
일 실시예에서, 비균등하게 이격된 검증 레벨이 비균등 마진을 생성하기 위해 단계(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
인가된 기준 전압으로 감지한 이후에, 데이터 래치들 모두가 단계(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
설명된 바와 같이, 단계(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,
박스(891 및 899)에서 도시된 바와 같이, 비균등하게 이격된 검증 레벨로 인해, 결과적으로 상태 A와 B 간의 제 1 크기의 마진과 상태 B와 C 간의 제 2 크기의 마진이 생긴다. 상태 A와 B 간의 마진은 시프트된 Vvb 검증 레벨로 인해 상태 B와 C 간의 마진보다 더 크다.As shown in
도 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
일 실시예에서, 메모리 어레이는 하나 또는 그 이상의 플래그들을 저장하기 위해 메모리 셀들의 세트를 보유한다. 예를 들어, 메모리 셀들의 컬럼은 메모리 셀들의 각각의 로우들의 아래쪽 페이지가 프로그래밍되었는지 여부를 나타내는 플래그를 저장하기 위해 사용될 수 있고, 그리고 또 다른 컬럼이 메모리 셀들의 각각의 로우들에 대한 위쪽 페이지가 프로그래밍되었는지 여부를 나타내는 플래그를 저장하기 위해 사용될 수 있다. 적절한 플래그를 점검함으로서, 이웃하는 워드 라인에 대한 위쪽 페이지가 프로그래밍되었는지 여부가 결정될 수 있다. 이러한 플래그 및 프로그래밍에 대한 프로세스에 대한 더 상세한 설명은 미국 특허 번호 제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
단계(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
도 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
만약 페이지 어드레스가 단계(950)에서 위쪽 페이지에 대응하다고 결정된다면, 위쪽 페이지 판독 프로세스가 단계(970)에서 수행된다. 일 실시예에서, 단계(970)에서의 위쪽 페이지 판독은 도 18에서 설명된 방법과 동일한 방법을 포함하고, 이것은 플래그 및 세 개의 상태를 판독하는 것을 포함하는데, 왜냐하면 기입되지 않은 위쪽 페이지가 판독 혹은 또 다른 이유로 처리될 수 있기 때문이다.If the page address is determined to correspond to the upper page at
도 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
만약 단계(967)에서, 판독되는 페이지가 아래쪽 페이지라고 결정된다면, Vrb가 단계(968)에서 판독되는 페이지와 관련된 워드 라인에 인가된다. Vrb에서의 판독은 도 12A 내지 도 12C에 도시된 인코딩에 대한 아래쪽 페이지 데이터를 결정하기에 충분하다. 단계(969)에서, 비트 라인이 감지되고, 그리고 단계(970)에서, 그 결과가 비트 라인들에 대해 적절한 래치에 저장된다. 도 14에 도시된 바와 같이, 어떠한 보상 오프셋들이 Vrb 레벨에서 인가되지 않았고, 그래서 단계(969)에서 단지 아래쪽 페이지 감지만이 수행된다. 상태 A와 B 간의 더 큰 마진을 생성하도록 셀들이 프로그래밍 되기 때문에, 정확한 판독이 커플링 보상 없이 성취될 수 있다. 아래쪽 페이지에 대한 데이터가 단계(971)에서 결정된다. 만약 셀이 Vrb에 응답하여 턴온된다면, 아래쪽 페이지 데이터는 1이고, 만약 그렇지 않으면 아래쪽 페이지 데이터는 0이다. 단계(972)에서, 아래쪽 페이지 데이터는 사용자에게 전달하기 위해 적절한 래치에 저장된다.If at
만약 단계(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
본 발명의 앞서의 상세한 설명은 예시적이고 설명적 목적으로 제공되는 것이다. 개시되는 형태만이 정확히 본 발명의 전부가 되는 것이 아니며 또는 본 발명을 이러한 개시되는 형태에 정확히 한정시키려는 것도 아니다. 많은 수정 및 변형이 앞서의 설명으로부터 가능하다. 본 발명의 원리를 가장 잘 설명하기 위해서, 그리고 그 실질적인 애플리케이션의 원리를 가장 잘 설명하기 위해서, 그럼으로써 본 발명의 기술분야에서 숙련된 기술을 가진 다른 사람들이 다양한 실시예들 및 특정 사용에 적합한 것으로 고려되는 다양한 수정된 형태로 본 발명을 가장 잘 이용할 수 있도록 하기 위해, 상기 설명된 실시예들이 선택되었다. 본 발명의 범위는 아래 에 첨부되는 특허청구범위에 의해 정의된다.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)
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)
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)
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 |
-
2007
- 2007-05-25 KR KR1020107019325A patent/KR101041595B1/en active IP Right Grant
- 2007-05-25 CN CN201110112129.8A patent/CN102306501B/en not_active Expired - Fee Related
- 2007-05-25 KR KR1020087023382A patent/KR101020812B1/en active IP Right Grant
- 2007-05-25 JP JP2009516620A patent/JP4912460B2/en not_active Expired - Fee Related
- 2007-05-25 WO PCT/US2007/069713 patent/WO2007149678A2/en active Application Filing
- 2007-05-29 TW TW099133735A patent/TWI451422B/en not_active IP Right Cessation
- 2007-05-29 TW TW096119147A patent/TWI336080B/en not_active IP Right Cessation
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 |