KR20140012608A - Programming non-volatile memory with bit line voltage step up - Google Patents
Programming non-volatile memory with bit line voltage step up Download PDFInfo
- Publication number
- KR20140012608A KR20140012608A KR1020137004047A KR20137004047A KR20140012608A KR 20140012608 A KR20140012608 A KR 20140012608A KR 1020137004047 A KR1020137004047 A KR 1020137004047A KR 20137004047 A KR20137004047 A KR 20137004047A KR 20140012608 A KR20140012608 A KR 20140012608A
- Authority
- KR
- South Korea
- Prior art keywords
- storage elements
- programming
- state
- bit line
- program
- Prior art date
Links
Images
Classifications
-
- 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
- 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/24—Bit-line control 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/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
- 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/3468—Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
- G11C16/3486—Circuits or methods to prevent overprogramming of nonvolatile memory cells, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
타겟 데이터 상태(402, 404, 406)를 갖는 저장 소자들에 대한 비트 라인 전압이, 프로그램 전압에서의 스텝 업과 동일한 비율로 스텝 업되는 프로그래밍 기법을 사용하여, 비휘발성 메모리 디바이스(196)의 임계 전압 분포들(A, B, C)이 좁아지고, 그리고/또는 프로그래밍 시간이 감소된다. 비트 라인 전압의 스텝 업은 저장 소자들의 서로 다른 서브세트들에 대해, 이들의 타겟 데이터 상태(402, 404, 406)에 따라, 프로그래밍 패스에서 서로 다른 시간들에 수행된다. 비트 라인 전압(Vbc)의 스텝 업의 시작 및 중지는 고정 프로그램 펄스 수에 근거하여 설정되거나 프로그래밍 과정에 근거하여 적응적일 수 있다. 변형은 고정 비트 라인 스텝, 가변 비트 랑니 스텝, 데이터 상태-의존 비트 라인 스텝, 하나 이상의 데이터 상태들에 대해 비트 라인을 스텝 업하지 않을 옵션 및 추가의 비트 라인 바이어스를 부가할 옵션을 사용하는 것을 포함한다. Threshold voltage of nonvolatile memory device 196 using a programming technique in which the bit line voltage for storage elements having target data states 402, 404, 406 is stepped up at the same rate as the step up in the program voltage. The distributions A, B, C are narrowed and / or the programming time is reduced. Step-up of the bit line voltage is performed at different times in the programming pass, depending on their target data states 402, 404, 406, for different subsets of the storage elements. The start and stop of the step up of the bit line voltage Vbc may be set based on the fixed program pulse number or adaptive based on the programming process. Variants include using fixed bit line steps, variable bit langney steps, data state-dependent bit line steps, the option not to step up bit lines for one or more data states, and the option to add additional bit line biases. do.
Description
본 발명은 비휘발성 메모리와 관련된다.The present invention relates to a nonvolatile memory.
반도체 메모리는 다양한 전자 디바이스들에서 점점 더 보편적으로 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리가 휴대 전화, 디지털 카메라, PDA(personal digital assistants), 모바일 컴퓨팅 디바이스, 논-모바일 컴퓨팅 디바이스 및 다른 디바이스들에서 사용된다. EEPROM 및 플래시 메모리는 그 중에서도 특히 가장 널리 사용되는 비휘발성 반도체 메모리들이다. 전통적인 풀-피쳐(full-featured) EEPROM과는 대조적으로, 플래시 메모리(역시 EEPROM의 일종임)를 사용하여, 전체 메모리 어레이의 내용 또는 메모리의 일부의 내용이 한 단계(one-step)에서 소거될 수 있다. Semiconductor memories are becoming increasingly common in various electronic devices. For example, nonvolatile semiconductor memory is used in cell phones, digital cameras, personal digital assistants, mobile computing devices, non-mobile computing devices, and other devices. EEPROMs and flash memories are, among others, the most widely used nonvolatile semiconductor memories. In contrast to traditional full-featured EEPROMs, using flash memory (also a kind of EEPROM), the contents of an entire memory array or the contents of a portion of memory can be erased in one-step. Can be.
전통적인 EEPROM과 플래시 메모리는 모두 반도체 기판에서 채널 영역 위에 위치함과 아울러 채널 영역으로부터 절연된 플로팅 게이트를 사용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트는 플로팅 게이트 위에 제공되고 플로팅 게이트로부터 절연된다. 트랜지스터의 임계 전압(Vth)은 따라서 플로팅 게이트 상에 보유되는 전하의 양에 의해 제어된다. 즉, 트랜지스터의 소스와 드레인 사이의 도통(conduction)을 허용하기 위하여 트랜지스터가 턴온(turn on)되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소량이 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.Traditional EEPROM and flash memories both use floating gates that are located above the channel region in a semiconductor substrate and are isolated from the channel region. The floating gate is located between the source and drain regions. The control gate is provided over the floating gate and insulated from the floating gate. The threshold voltage V th of the transistor is thus controlled by the amount of charge retained on the floating gate. That is, the minimum amount of voltage that must be applied to the control gate before the transistor is turned on to allow conduction between the source and drain of the transistor is controlled by the level of charge on the floating gate.
일부 EEPROM과 플래시 메모리 디바이스는, 2 개의 전하 범위들을 저장하는데 사용되는 플로팅 게이트를 구비하며, 따라서, 메모리 소자가 두 상태들, 예를 들어, 소거 상태와 프로그램 상태(programmed state) 사이에서 프로그램/소거 될 수 있다. 이러한 플래시 메모리 디바이스는 때때로 바이너리 플래시 메모리 디바이스라 칭해지는바, 그 이유는 각각의 메모리 소자가 1비트의 데이터를 저장할 수 있기 때문이다.Some EEPROM and flash memory devices have a floating gate that is used to store two charge ranges, so that the memory device is programmed / erased between two states, for example an erased state and a programmed state. Can be. Such flash memory devices are sometimes referred to as binary flash memory devices because each memory element can store one bit of data.
다중-상태(또한 다중-레벨이라고도 칭해짐) 플래시 메모리 디바이스는 복수의 개별(distict) 허용/유효(allowed/valid) 프로그램된 임계 전압 범위들을 식별함으로써 구현된다. 각각의 개별 임계 전압 범위는 메모리 디바이스에서 엔코딩되는 데이터 비트들의 세트에 대한 소정의 값에 대응한다. 예를 들어, 각각의 메모리 소자는 상기 소자가 4개의 개별(distinct) 임계 전압 범위들에 대응하는 4개의 이산(discrete) 전하 밴드들 중 하나에 위치될 수 있을 때 2 비트의 데이터를 저장할 수 있다.Multi-state (also referred to as multi-level) flash memory devices are implemented by identifying a plurality of distinctly allowed / valid programmed threshold voltage ranges. Each individual threshold voltage range corresponds to a predetermined value for the set of data bits encoded at the memory device. For example, each memory device can store two bits of data when the device can be located in one of four discrete charge bands corresponding to four distinct threshold voltage ranges. .
특히, 메모리 디바이스들의 크기가 축소됨에 따라, 프로그래밍 시간을 감소시키면서도 임계 전압 범위들을 정확하게 프로그래밍하기 위한 기법들이 필요하다.In particular, as memory devices shrink in size, techniques are needed to accurately program threshold voltage ranges while reducing programming time.
도 1은 단일 행/열 디코더들 및 판독/기록 회로들을 사용하는 비휘발성 메모리 시스템의 블록도이다.
도 2는 도 1의 감지 블록(100)의 일 실시예를 도시하는 블록도이다.
도 3은 도 1의 메모리 어레이(155) 내의 NAND 플래시 메모리 셀들의 블록들을 도시한다.
도 4a는 1-패스 기록(one-pass write)" 프로그래밍 기법으로 지칭되는, 예시적인 임계 전압 분포 및 1-패스 프로그래밍을 도시한다.
도 4b 및 4c는 "2-패스 기록" 프로그래밍으로 지칭되는, 예시적인 임계 전압 분포 및 2-패스 프로그래밍을 도시한다.
도 5a는 최대 2 개의 프로그래밍 속도들이 "퀵 패스 기록(QPW: quick pass write)" 프로그래밍 옵션에서 사용될 수 있는, 예시적인 임계 전압 분포 및 1-패스 기록 프로그래밍을 도시한다.
도 5b는 제1 프로그래밍 패스에서, 최대 2 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는, 2-패스 프로그래밍 동안의 A-상태를 위한 예시적인 임계 전압 분포를 도시한다.
도 5c는 제2 프로그래밍 패스에서, 최대 2 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는, 2-패스 프로그래밍 동안의 A-상태를 위한 예시적인 임계 전압 분포를 도시한다.
도 6a, 6b, 6c는, 중간 또는 낮은 중앙 하위(lower-middle; LM) 검증 전압이 사용되는 "3-패스 기록" 프로그래밍 기법으로서 칭해지는 3 패스 프로그래밍 동작의 제1, 제2 및 제3 프로그래밍 패스들을 각각 도시한다.
도 6d는 도 6a가 제1 프로그래밍 패스를 도시하고, 최대 2 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는, "2-패스 기록" 프로그래밍 기법으로서 지칭되는 2-패스 프로그래밍 동작의 제2 프로그래밍 패스를 도시한다.
도 7a는 저장 소자들의 세트에 대한 2-패스 프로그래밍 동작을 앞-뒤로의(back-and-forth) 워드 라인 순서로 도시한다.
도 7b는 저장 소자들의 세트에 대한 3-패스 프로그래밍 동작을 앞-뒤로의 워드 라인 순서로 도시한다.
도 8은 저장 소자를 프로그래밍하는데 필요한 최고의 Vpgm과 저장 소자의 비트 라인 전압 사이의 관계를 도시한다.
도 9a는 비트 라인 전압이 스텝 업되는 프로그래밍 기법을 도시한다.
도 9b는 도 9a의 프로그래밍 기법의 예로서, 검증 동작들을 겪는 데이터 상태들을 프로그램 펄스 수의 함수로서 도시한다.
도 10은 도 9b의 순서(960)에 대해, 프로그램-검증 동작들을 프로그램 펄스 수의 함수로서 도시한다.
도 11a는 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝-업을 도시하며, 여기서 모든 데이터 상태들에 대해 공통 스템 사이즈가 사용된다.
도 11b는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 시작하기 위한 트리거 조건을 도시한다.
도 11c는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 정지하기 위한 트리거 조건을 도시한다.
도 12a는 도 11a에 따라, A-상태 저장 소자들에 대해 프로그래밍 속도를 프로그램 펄스 수의 함수로서 도시한다.
도 12b는 도 11a에 따라, B-상태 저장 소자들에 대해 프로그래밍 속도를 프로그램 펄스 수의 함수로서 도시한다.
도 12c는 도 11a에 따라, C-상태 저장 소자들에 대해 프로그램 펄스 수의 함수로서 프로그래밍 속도를 도시한다.
도 13은 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 대해, 더 작은 스텝 사이즈, 그후 더 큰 스텝 사이즈, 그후 더 작은 스텝 사이즈가 사용된다.
도 14는 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 여기서 더 낮은 데이터 상태들에 대해 더 큰 스텝 사이즈가 사용되고, 가장 높은 데이터 상태에 대해 더 작은 스텝 사이즈가 사용된다.
도 15는 서로 다른 데이터 상태들에 대해 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 공통 스텝 사이즈가 모든 데이터 상태들에 대해 사용되고, 추가적인 비트 라인 전압이 임계 전압 레벨에 근거하여 부가된다.1 is a block diagram of a nonvolatile memory system using single row / column decoders and read / write circuits.
FIG. 2 is a block diagram illustrating one embodiment of the
3 shows blocks of NAND flash memory cells in
4A shows an example threshold voltage distribution and one-pass programming, referred to as a "one-pass write" programming technique.
4B and 4C show exemplary threshold voltage distribution and two-pass programming, referred to as "two-pass write" programming.
5A shows an example threshold voltage distribution and 1-pass write programming, where up to two programming speeds may be used in a “quick pass write (QPW)” programming option.
FIG. 5B shows an example threshold voltage distribution for the A-state during two-pass programming, in a first programming pass, up to two programming speeds may be used with the QPW programming option.
5C shows an example threshold voltage distribution for the A-state during two-pass programming, in a second programming pass, up to two programming speeds may be used with the QPW programming option.
6A, 6B, and 6C illustrate first, second, and third programming of a three pass programming operation, referred to as a “three pass write” programming technique, in which a middle or lower middle-middle (LM) verify voltage is used. Show the paths respectively.
FIG. 6D illustrates a second programming pass of a two-pass programming operation, referred to as a “two-pass write” programming technique, in which FIG. 6A shows a first programming pass, and up to two programming speeds may be used with the QPW programming option. Illustrated.
7A shows a two-pass programming operation for a set of storage elements in word line order back-and-forth.
7B shows a three-pass programming operation for a set of storage elements in word-line order back-to-back.
8 shows the relationship between the highest Vpgm needed to program the storage element and the bit line voltage of the storage element.
9A illustrates a programming technique in which the bit line voltage is stepped up.
FIG. 9B illustrates the data states undergoing verify operations as a function of the number of program pulses, as an example of the programming technique of FIG. 9A.
FIG. 10 illustrates the program-verify operations as a function of the number of program pulses, for the
11A shows the step-up of the bit line voltage as a function of the number of program pulses for different data states, where a common stem size is used for all data states.
11B shows a trigger condition for initiating a bit line step up loop for A-state storage elements.
11C shows a trigger condition for stopping the bit line step up loop for the A-state storage elements.
FIG. 12A shows the programming rate as a function of the number of program pulses for A-state storage elements, according to FIG. 11A.
FIG. 12B shows the programming rate as a function of the number of program pulses for B-state storage elements, according to FIG. 11A.
FIG. 12C shows the programming speed as a function of the number of program pulses for the C-state storage elements, according to FIG. 11A.
Figure 13 shows the step up of the bit line voltage as a function of the number of program pulses for different data states, where for all data states, smaller step size, then larger step size, then smaller step size Is used.
Figure 14 shows the step up of the bit line voltage as a function of the number of program pulses for different data states, where a larger step size is used for lower data states, and smaller steps for the highest data state. Size is used.
Figure 15 shows the step up of the bit line voltage as a function of the number of program pulses for different data states, a common step size is used for all data states, and additional bit line voltages are added based on the threshold voltage level. do.
프로그래밍 시간을 감소시키는 한편 임계 전압 범위들을 정확하게 프로그래밍하는 방법 및 비휘발성 저장 시스템이 제공된다.Provided are a method and a non-volatile storage system for accurately programming threshold voltage ranges while reducing programming time.
프로그래밍 동작 중에, 프로그래밍 시간을 감소시키는 것과 서로 다른 데이터 상태들에 대해 좁은 임계 전압 범위들을 달성하는 것 사이에는 트레이드오프(tradeoff)가 존재한다. 더 큰 프로그램 펄스 스텝 사이즈를 사용함으로써 프로그래밍 속도가 증가될 수 있다. 그러나, 이는 결과적으로 검증 레벨을 넘어서는 큰 오버슈트를 야기하여, 넓은 임계 전압(Vth) 범위가 되게 한다. 반면, 더 작은 프로그램 펄스 스텝 사이즈가 사용되면, 증가된 프로그래밍 시간의 비용으로 좁은 Vth 범위가 달성된다. 또 다른 기법은 이중 검증 기법으로, 각각의 상태에 대해 두 개의 개별 검증 레벨들에서 저장 소자들을 검증하는 것이다. 저장 소자의 Vth가 하위 검증 레벨(lower verify level)을 초과할 때, 그것의 프로그래밍 속도는 비트 라인 바이어스를 인가함으로써 느려진다. 비트 라인 바이어스 없이는, 저장 소자의 Vth는, 각 프로그램 펄스마다 프로그램 펄스의 스텝 사이즈와 거의 동일한 양만큼 증가한다. 비트 라인 바이어스를 사용하여, 저장 소자의 Vth는 각각의 프로그램 펄스 마다 프로그램 펄스의 스텝 사이즈보다 작은 양만큼 증가한다. 따라서, 저장 소자는 그 Vth가 타겟 데이터 상태의 하위 검증 레벨을 초과할 때 감소된 속도에서 프로그램될 수 있고, Vth가 타겟 데이터 상태의 상위 검증 레벨(higher verify level)을 초과할 때 추가의 프로그래밍으로부터 록 아웃(lock out)될 수 있다.During a programming operation, there is a tradeoff between reducing programming time and achieving narrow threshold voltage ranges for different data states. The programming speed can be increased by using a larger program pulse step size. However, this results in a large overshoot beyond the verify level, resulting in a wide threshold voltage (Vth) range. On the other hand, if a smaller program pulse step size is used, a narrow Vth range is achieved at the expense of increased programming time. Another technique is a double verify technique, which verifies storage elements at two separate verify levels for each state. When the Vth of the storage element exceeds the lower verify level, its programming speed is slowed down by applying bit line bias. Without the bit line bias, the Vth of the storage element increases by approximately the same amount as the step size of the program pulse for each program pulse. Using bit line bias, the Vth of the storage element is increased for each program pulse by an amount less than the step size of the program pulse. Thus, the storage element can be programmed at a reduced speed when its Vth exceeds the lower verify level of the target data state, and from further programming when the Vth exceeds the higher verify level of the target data state. It can be locked out.
이중 검증 기법에서, 각 상태에 대한 하위 검증 레벨과 상위 레벨 사이의 거리가 실리콘에 대해 최적화되고 Vth 분포가 가장 좁아지는 점으로 설정된다. 하위 검증 레벨과 상위 검증 레벨 사이의 갭이 너무 높으면, 저장 소자의 Vth 증가들이 정상 상태 값(예를 들어, 프로그램 펄스 스텝 사이즈와 동일)으로 다시 변화할 것이고, 따라서 이중 검증 기법의 이점이 실현되지 않는다. 반면에, 하위 검증 레벨과 상위 검증 레벨 사이의 갭이 너무 작으면, 일 프로그램 펄스에서 많은 저장 소자들의 Vth가 갭을 뛰어 넘을(jump over) 수 있고 따라서 이들의 프로그래밍 속도가 느려지지 않는다. 일반적으로, 최적의 갭은 프로그램 펄스 스텝 사이즈의 함수이다. Vth는 각 프로그램 펄스 마다 더 크게 점프하고 따라서 일 프로그램 펄스만을 사용하여 Vth가 갭 바로 위로 점프하지 않고 상위 검증 레벨을 넘어서는 것을 보장하기 위해서 더 큰 갭이 요구되기 때문에, 프로그램 펄스 스텝 사이즈가 클수록 최적의 갭이 증가되는 경향이 있다. In the dual verification technique, the distance between the lower and upper level of verification for each state is set to the point where the silicon is optimized for the Vth distribution and the narrowest Vth distribution. If the gap between the lower verify level and the upper verify level is too high, the Vth increases of the storage element will change back to a steady state value (e.g., equal to the program pulse step size), so the benefit of the double verify technique is not realized. Do not. On the other hand, if the gap between the lower verify level and the upper verify level is too small, Vth of many storage elements may jump over the gap in one program pulse and thus their programming speed does not slow down. In general, the optimum gap is a function of the program pulse step size. The larger the program pulse step size is optimal, because Vth jumps larger for each program pulse and therefore requires a larger gap to ensure that Vth goes beyond the upper verify level without jumping just above the gap using only one program pulse. The gap tends to increase.
또한, 이중 검증 기법으로는, 메모리 디바이스들이 축소(scale down)됨에 따라, 프로그램 노이즈가 더 심해진다. 특정 프로그램 펄스에서, 저장 소자들의 다수의 Vth가 프로그램 펄스 스텝 사이즈와 거의 동일한 양만큼 점프한다 하더라도, 많은 저장 소자들은 그 Vth 점프가 훨씬 더 높다. 결과적으로, 서로 다른 저장 소자들에 대해 최적의 갭이 서로 다르고 최적화하기가 어렵다.In addition, with the double verify technique, as the memory devices scale down, the program noise becomes more severe. In a particular program pulse, even though multiple Vths of the storage elements jump by about the same amount as the program pulse step size, many storage elements have a much higher Vth jump. As a result, the optimum gaps for different storage elements are different and difficult to optimize.
이 문제들을 극복하기 위하여, Vth 분포 폭들이 좁아지도록, 저장 소자들의 다수가 프로그래밍시에 느려지는 것을 보장하는 프로그래밍 기법이 제공된다. 이 기법에서, 특정한 타겟 데이터 상태를 갖는 저장 소자들을 위한 비트 라인 전압(Vbl)은, 복수의 연속적인 프로그램 펄스들의 범위에 대해, 순차적인 프로그램 펄스들로 스텝 업된다. 각각의 타겟 데이터 상태에 대해 서로 다른 범위의 프로그램 펄스들이 사용될 수 있으나, 상기 범위들은 오버랩될 수 있다. 비트 라인 전압 스텝 업은 저장 소자들의 다수가 그들의 타겟 데이터 상태로 프로그래밍을 완료하는 것에 근접한 때 시간 기간 내에 이루어질 수 있다. 이 기간 동안에, 이 저장 소자들의 Vth의 증가 속도가 효과적으로 낮아져, 더 낮은 Vth 분포에 이른다. 또한, 특정한 타겟 데이터 상태로 프로그램되고 있는 모든 저장 소자들의 비트 라인 전압들이 스텝 업되어, 아직 록 아웃되지 않은 그 타겟 상태에 속한 모든 저장 소자들이 프로그래밍시 느려진다. In order to overcome these problems, a programming technique is provided that ensures that many of the storage elements are slow in programming so that the Vth distribution widths are narrowed. In this technique, the bit line voltage Vbl for the storage elements with a particular target data state is steped up with sequential program pulses over a range of a plurality of consecutive program pulses. Different ranges of program pulses may be used for each target data state, but the ranges may overlap. Bit line voltage step up may occur within a time period when a number of storage elements are close to completing programming to their target data state. During this period, the rate of increase of the Vth of these storage elements is effectively lowered, leading to a lower Vth distribution. In addition, the bit line voltages of all storage elements that are being programmed to a particular target data state are stepped up, so that all storage elements belonging to that target state that are not yet locked out are slow in programming.
프로그래밍 기법에 대한 변형은 고정 비트 라인 단계, 가변 비트 라인 단계, 데이터 상태-의존 비트 라인 단계, 하나 이상의 데이터 상태들에 대해 비트 라인을 스텝 업하지 않는 옵션 및 비트 라인 단계에 추가의 비트 라인 바이어스를 부가하는 옵션을 사용하는 것을 포함한다. Modifications to programming techniques include fixed bit line steps, variable bit line steps, data state-dependent bit line steps, the option to not step up bit lines for one or more data states, and additional bit line biases to bit line steps. This includes using additional options.
상기 프로그래밍 기법과 함께 사용될 수 있는 예시적인 메모리 시스템이 다음에 논의된다. 도 1은 단일 행/열 디코더들 및 판독/기록 회로들을 사용하는 비휘발성 메모리 시스템의 블록도이다. 도면은 일 실시예에 따라, 저장 소자들의 페이지를 병렬로 판독 및 프로그래밍하기 위한 판독/기록 회로들을 가지는 메모리 디바이스(196)를 도시한다. 메모리 디바이스(196)는 하나 이상의 메모리 다이(198)를 포함할 수 있다. 메모리 다이(198)는 저장 소자들의 2차원 메모리 어레이(155), 제어 회로(110), 및 판독/기록 회로들(165)을 포함한다. 메모리 어레이(155)는 도 3과 관련하여 더 논의된다.An exemplary memory system that can be used with the programming technique is discussed next. 1 is a block diagram of a nonvolatile memory system using single row / column decoders and read / write circuits. The figure shows a
일부 실시예들에서, 저장 소자들의 어레이는 3차원일 수 있다. 메모리 어레이(155)는 행 디코더(130)를 통해 워드 라인들에 의해 그리고 열 디코더(160)를 통해 비트 라인들에 의해 어드레스 가능하다. 판독/기록 회로들(165)은 복수의 감지 블록들(100)을 포함하며 저장 소자들의 페이지가 병렬적으로(in parallel) 판독 또는 프로그램될 수 있게 해준다. 일반적으로, 제어기(150)가 상기 하나 이상의 메모리 다이(198)와 동일한 메모리 디바이스(196)(예를 들어, 제거가능한 저장 카드)에 포함된다. 명령들 및 데이터는 라인들(120)을 통해 호스트와 제어기(150) 사이에서 그리고 라인들(118)을 통해 제어기와 하나 이상의 메모리 다이(198) 사이에서 전송된다. In some embodiments, the array of storage elements can be three dimensional.
제어 회로(110)는 판독/기록 회로들(165)과 협력하여 메모리 어레이(155)에 대해 메모리 동작들(memory operations)을 수행하며, 상태 머신(112), 온-칩 어드레스 디코더(114) 및 전력 제어 모듈(116)을 포함한다. 상태 머신(112)은 메모리 동작들에 대한 칩-레벨 제어를 제공한다. 온-칩 어드레스 디코더(114)는 호스트 또는 메모리 제어기에 의해 사용되는 어드레스와 디코더들(130, 160)에 의해 사용되는 하드웨어 어드레스 사이의 어드레스 인터페이스를 제공한다. 전력 제어 모듈(116)은 메모리 동작들 동안에 워드 라인들과 비트 라인들에 공급되는 전력 및 전압들을 제어한다. The
일부 구현예들에서, 도 1의 구성요소들의 일부가 결합될 수 있다. 다양한 설계들에서, 메모리 어레이(155) 외의 하나 이상의 구성요소들이 (단독으로 또는 결합하여) 관리 또는 제어 회로로 고려될 수 있다. 예를 들어, 하나 이상의 제어 회로들은 제어 회로(110), 상태 머신(112), 디코더들(114/160), 전력 제어(116), 감지 블록들(100)(도 2의 프로세서(192) 포함), 판독/기록 회로들(165), 및 제어기(150) 등 중 임의의 것, 또는 이들의 조합을 포함할 수 있다. 감지 블록(100)은 도 2와 관련하여 더 논의된다.In some implementations, some of the components of FIG. 1 can be combined. In various designs, one or more components other than
또 다른 실시예에서, 비휘발성 메모리 시스템은 이중 행/열 디코더들 및 판독/기록 회로들을 사용한다. 다양한 주변 회로들에 의한 메모리 어레이(155)로의 액세스가, 어레이의 대향 면들(opposite sides) 상에서, 대칭적인 방식으로 구현되어, 각 면의 액세스 라인들 및 회로의 밀도가 절반으로 줄어든다. 따라서, 행 디코더는 두 개의 행 디코더들로 분할되고 열 디코더는 두 개의 열 디코더들로 분할된다. 마찬가지로, 판독/기록 회로들은, 바닥부(bottom)로부터의 비트 라인들에 연결하는 판독/기록 회로들과 어레이(155)의 최상부(top)로부터의 비트 라인들에 연결하는 판독/기록 회로들로 분할된다. 이러한 식으로 판독/기록 모듈들의 밀도가 본질적으로 절반으로 감소된다. In yet another embodiment, the nonvolatile memory system uses dual row / column decoders and read / write circuits. Access to the
도 2는 감지 블록의 일 실시예를 도시하는 블록도이다. 개별 감지 블록(100)은, 감지 모듈들(180) 또는 감지 증폭기들로 지칭되는 하나 이상의 코어 부분들, 및 관리 회로(190)로 지칭되는 공통 부분으로 분할된다. 일 실시예에서, 각각의 비트 라인을 위한 개별적인 감지 모듈(180)과, 복수의(예컨대, 4 또는 8개의) 감지 모듈들(180)의 세트를 위한 하나의 공통 관리 회로(190)가 존재할 것이다. 그룹 내의 감지 모듈들 각각은 데이터 버스(172)를 통해 관련된 관리 회로와 통신한다. 따라서, 저장 소자들의 세트의 감지 모듈들과 통신하는 하나 이상의 관리 회로들이 존재한다.2 is a block diagram illustrating one embodiment of a sense block. The
감지 모듈(180)은 연결된 비트 라인 내의 도통 전류(conduction current)가 소정의 임계 레벨을 초과하는지 또는 그 미만인지를 결정함으로써 감지를 행하는 감지 회로(170)를 포함한다. 감지 모듈(180)은 또한 연결된 비트 라인에 대한 전압 조건(voltage condition)을 설정하기 위하여 사용되는 비트 라인 래치(182)를 포함한다. 예를 들어, 비트 라인 래치(182)에 래치된 소정의 상태는 결과적으로 연결된 비트 라인이 프로그램 금지를 나타내는 상태(예를 들어, 1.5-3 V)로 풀(pull)되게 할 것이다. 예를 들어, 플래그=0은 프로그래밍을 금지할 수 있고, 반면 플래그=1은 프로그래밍을 금지하지 않는다.The sensing module 180 includes a sensing circuit 170 that performs sensing by determining whether the conduction current in the connected bit line is above or below a predetermined threshold level. Sense module 180 also includes a bit line latch 182 that is used to set a voltage condition for the connected bit line. For example, a predetermined state latched in bit line latch 182 will result in the connected bit line being pulled to a state indicating program prohibition (eg, 1.5-3 V). For example, flag = 0 can inhibit programming, whereas flag = 1 does not inhibit programming.
관리 회로(190)는 프로세서(192), 데이터 래치들의 4개의 예시적인 세트(194-197) 및 상기 데이터 래치들의 세트(194)와 데이터 버스(120) 사이에 연결된 I/O 인터페이스(196)를 포함한다. 각각의 감지 모듈에 대해 데이터 래치들의 일 세트가 제공될 수 있고, QDL, UDL 및 LDL에 의해 식별된 3개의 데이터 래치들이 각 세트에 대해 제공될 수 있다. 프로세서(192)는 감지된 저장 소자 내에 저장된 데이터를 결정하고 그리고 결정된 데이터를 데이터 래치들의 세트에 저장하는 것과 같은 연산들을 수행한다. 데이터 래치들(194-197)의 각각의 세트는, 판독 동작 중에 프로세서(192)에 의해 결정된 데이터 비트들을 저장하기 위해, 그리고 프로그램 동작 중에 데이터 버스(120)로부터 유입되는 데이터 비트들(메모리에 프로그램될 기록 데이터를 나타냄)을 저장하기 위해 사용된다. I/O 인터페이스(196)는 데이터 래치들(194-197)과 데이터 버스(120) 사이의 인터페이스를 제공한다. The management circuitry 190 includes a processor 192, four exemplary sets of data latches 194-197 and an I /
판독 중에, 시스템의 동작은 서로 다른 제어 게이트 전압들을 어드레스된 저장 소자에 공급하는 것을 제어하는 상태 머신(112)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응하는 다양한 소정의 제어 게이트 전압들을 거침(step through)에 따라, 감지 모듈(180)은 이 전압들 중 하나에 트립(trip)할 수 있고 버스(172)를 통해 감지 모듈(180)로부터 프로세서(192)로 대응하는 출력이 제공될 것이다. 그 시점에, 프로세서(192)는 감지 모듈의 트리핑 이벤트(들)(tripping event(s))과 입력 라인들(193)을 통해 상기 상태 머신으로부터 인가된 제어 게이트 전압에 관한 정보를 고려하여 결과적인 메모리 상태를 결정한다. 그후, 그것은 메모리 상태에 대한 바이너리 엔코딩을 연산하고 결과적인 데이터 비트들을 데이터 래치들(194-197)에 저장한다. 관리 회로(190)의 또 다른 실시예에서, 비트 라인 래치(182)는 감지 모듈(180)의 출력을 래치하기 위한 래치로서 그리고 또한 위에 설명된 것과 같은 비트 라인 래치로서의 두가지 역할(double dudy)을 한다. During reading, the operation of the system is under the control of
일부 실시예들은 복수의 프로세서들(492)을 포함할 수 있다. 일 실시예에서, 각각의 프로세서(492)는 각각의 출력 라인들이 함께 와이어드-OR된 것과 같은 출력 라인(도시되지 않음)을 포함할 것이다. 일부 실시예들에서, 출력 라인들은 와이어드-OR 라인에 연결되기 전에 인버팅된다. 이 구성은 프로그램 검증 프로세스 동안에 언제 프로그래밍 프로세스가 완료되었는지에 대한 빠른 결정을 가능하게 하는데, 그 이유는, 와이어드-OR를 수신하는 상태 머신이, 프로그래밍되고 있는 모든 비트들이 언제 요구되는 레벨에 도달했는지를 결정할 수 있기 때문이다. 예를 들어, 각각의 비트가 그것의 요구되는 레벨에 도달했을 때, 그 비트에 대한 논리 0이 와이어드-OR 라인으로 송신(또는 데이터 1이 반전)될 것이다. 모든 비트들이 데이터 0을 출력할 때(또는 데이터 1이 반전될 때), 상태 머신은 프로그래밍 프로세스를 종료할 것을 인지한다. 각각의 프로세서가 8개의 감지 모듈들과 통신하므로, 상태 머신은 와이어드-OR 라인을 8번 판독할 필요가 있거나, 또는 로직이 프로세서(492)에 부가되어, 상태 머신이 와이어드-OR 라인을 한번만 판독하면 되도록, 연관된 비트 라인들의 결과들을 축적한다. 마찬가지로, 로직 레벨들을 정확하게 선택함으로서, 전역 상태 머신(global state machine)이, 제 1비트가 그 상태를 변경하고 이에 따라 알고리즘을 변경하는 때를 검출할 수 있다. Some embodiments may include a plurality of processors 492. In one embodiment, each processor 492 will include an output line (not shown) such that each output line is wired-OR together. In some embodiments, the output lines are inverted before being connected to the wired-OR line. This configuration allows for a quick decision as to when the programming process is completed during the program verification process, because the state machine receiving the wired-OR determines when all the bits being programmed have reached the required level. Because you can decide. For example, when each bit has reached its required level, a logical zero for that bit will be sent to the wired-OR line (or
프로그램 또는 검증 동작들 동안, 프로그램될 데이터(기록 데이터)가 데이터 버스(120)로부터 데이터 래치들(194-197)의 세트에 저장된다. 프로그램 동작은, 상태 머신의 제어하에서, 어드레스된 저장 소자들의 제어 게이트들에 인가되는 일련의 프로그래밍 전압 펄스들을 포함한다. 각각의 프로그램 펄스 다음에는 저장 소자가 요구되는 메모리 상태로 프로그램되었는지를 결정하기 위한 재판독(read back)(검증)이 행해진다. 일부 경우들에, 프로세서(192)는 요구되는 메모리 상태에 관하여 재판독 메모리 상태(read back memory state)를 모니터링 한다. 두 상태들이 일치될 때, 프로세서(192)는 비트 라인 래치(182)를 설정하여, 비트 라인이 프로그램 금지를 나타내는 상태로 풀되게 한다. 프로그램 펄스들이 그 제어 게이트 상에 나타나지 않는다고 할지라도, 이는 비트 라인에 결합된 저장 소자가 추가로 프로그래밍되는 것을 금지시킨다. 다른 실시예들에서, 프로세서는 초기에 비트 라인 래치(182)를 로딩하고, 검증 과정 동안 감지 회로가 그것을 금지 값으로 설정한다.During program or verify operations, the data to be programmed (write data) is stored from the
데이터 래치들(194-197)의 각각의 세트는 각각의 감지 모듈에 대한 데이터 래치들의 스택으로서 구현될 수 있다. 일 실시예에서, 감지 모듈(180) 당 세 개의 데이터 래치들이 존재한다. 일부 실시예들에서, 데이터 래치들은 시프트 레지스터로서 구현되어, 그 안에 저장된 병렬 데이터가 데이터 버스(120)를 위한 직렬 데이터로 변환되거나, 그 역으로 된다. M 개의 저장 소자들의 판독/기록 블록에 대응하는 모든 데이터 래치들이 함께 링크되어 블록 시프트 레지스터를 형성할 수 있고, 따라서 데이터 블록이 직렬 전송(serial transfer)에 의해 입력 또는 출력될 수 있다. 특히, 판독/기록 모듈들의 뱅크가 조정(adapt)되어, 그것의 데이터 래치들의 세트 각각은, 그것들이 마치 전체 판독/기록 블록을 위한 시프트 레지스터의 부분인 것처럼, 데이터를 데이터 버스 내로 또는 데이터 버스 외부로 순차적으로 시프트할 것이다. Each set of data latches 194-197 may be implemented as a stack of data latches for each sense module. In one embodiment, there are three data latches per sense module 180. In some embodiments, the data latches are implemented as a shift register such that the parallel data stored therein is converted to serial data for the
데이터 래치들은 관련된 저장 소자가 프로그래밍 동작들에서 특정 마일포스트에 도달했을 때를 식별한다. 예를 들어, 래치들은 저장 소자의 Vth가 (a) 빠른 프로그래밍 모드에서 하위 검증 레벨(예를 들어, 도 4의 VvaL, VvbL 또는 VvcL) 미만, (b) 느린 프로그래밍 모드에서, 하위 검증 레벨 초과 그러나 상위(higher), 타겟 검증 레벨(예를 들어, 도 4에서 Vva, Vvb 또는 Vvc) 미만, 또는 (c) 금지 또는 로크 아웃 모드에서, 상위, 타겟 검증 레벨 초과임을 식별할 수 있다. 데이터 래치들은 저장 소자가 현재, 데이터의 일 페이지로부터 하나 이상의 비트들을 저장하는지 여부를 표시한다. 예를 들어, LDL 래치들이 데이터의 하위 페이지를 저자하기 위하여 사용될 수 있다. LDL 래치들은 하위 페이지 비트가 관련된 저장 소자 내에 저장되는 때에 (예를 들어, 0에서 1로) 플립된다. ULD 래치들은, 예를 들어, 데이터의 상위 페이지를 저장하기 위해 사용될 수 있다. 상위 페이지 비트가 관련된 저장 소자에 저장될 때 ULD 래치가 플립된다. 이는 관련된 저장 소자가 프로그래밍을 완료할 때 발생하는바, 예를 들어, 그것의 Vth가 Vva, Vvb, 또는 Vvc와 같은 타겟 검증 레벨을 초과할 때 발생한다. QDL 래치들은 관련된 저장 소자가 느린 프로그래밍 모드에 있을 때 플립될 수 있다.The data latches identify when the associated storage element has reached a particular milepost in programming operations. For example, the latches may have a Vth of the storage element below (a) below the lower verify level (eg, VvaL, VvbL or VvcL in FIG. 4), (b) above the lower verify level in slow programming mode. It may be identified that it is higher, above target verification level, in higher, below target verification level (eg, Vva, Vvb or Vvc in FIG. 4), or (c) in prohibition or lock out mode. The data latches indicate whether the storage element currently stores one or more bits from one page of data. For example, LDL latches can be used to author a lower page of data. LDL latches are flipped (eg, from 0 to 1) when the lower page bit is stored in the associated storage element. ULD latches may be used to store an upper page of data, for example. The ULD latch is flipped when the upper page bits are stored in the associated storage element. This occurs when the associated storage element completes programming, for example when its Vth exceeds a target verify level such as Vva, Vvb, or Vvc. QDL latches can be flipped when the associated storage element is in slow programming mode.
도 3은 도 1의 메모리 어레이(155) 내의 NAND 플래시 메모리 셀들의 블록들을 도시한다. 메모리 어레이는 많은 블록들을 포함할 수 있다. 각각의 예시적인 블록(300, 310)은 블록들 사이에서 공유되는 다수의 NAND 스트링들 및 각각의 비트 라인들(예를 들어, BL0, BL1, ...)을 포함한다. 각각의 NAND 스트링은 드레인 선택 게이트(SGD)의 일 단부에 연결되고, 드레인 선택 게이트들의 제어 게이트들은 공통 SGD 라인을 통해 연결된다. NAND 스트링들은 그것들의 타단(other end)에서 소스 선택 게이트에 연결되며, 소스 선택 게이트는 다시 공통 소스 라인(320)에 연결된다. 64개의 워드 라인들(예컨대, WL0-WL63)이 소스 선택 게이트들과 드레인 선택 게이트들 사이에서 확장된다.3 shows blocks of NAND flash memory cells in
NAND 플래시 메모리에 부가하여 다른 타입의 비휘발성 메모리가 또한 사용될 수 있다. 예를 들어, 플래시 EEPROM 시스템에서 유용한 또 다른 타입의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위하여 전도성 플로팅 게이트 대신에 비전도성 유전체 물질을 사용한다. 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물("ONO")로 형성된 3중 층 유전체가 메모리 셀 채널 위에서 반도체 기판의 표면과 전도성 제어 게이트와의 사이에 샌드위치된다. 셀은 전자들을 셀 채널로부터 질화물로 주입하는 것에 의해 프로그래밍되며, 여기서 상기 전자들이 트래핑되고 제한된 영역에 저장된다. 이 저장된 전하는 그후 검출가능한 방식으로 셀의 채널 부분의 Vth를 변경한다. 셀은 열 정공(hot hole)을 질화물 내에 주입함으로써 소거된다. 도핑된 폴리실리콘 게이트가 메모리 셀 채널의 일부에 걸쳐 연장되어 개별적인 선택 트랜지스터를 형성하는 분리-게이트 구조(split-gate configuration)에서 유사한 셀이 제공될 수 있다. In addition to NAND flash memory, other types of nonvolatile memory may also be used. For example, another type of memory cell useful in flash EEPROM systems uses nonconductive dielectric materials instead of conductive floating gates to store charge in a nonvolatile manner. A triple layer dielectric formed of silicon oxide, silicon nitride and silicon oxide (“ONO”) is sandwiched between the surface of the semiconductor substrate and the conductive control gate over the memory cell channel. The cell is programmed by injecting electrons from the cell channel into nitride, where the electrons are trapped and stored in a confined region. This stored charge then changes the Vth of the channel portion of the cell in a detectable manner. The cell is erased by injecting hot holes into the nitride. Similar cells may be provided in a split-gate configuration in which the doped polysilicon gate extends over a portion of the memory cell channel to form individual select transistors.
또 다른 기법에서, NROM 셀들이 사용된다. 예를 들어, 두 개의 비트들이 각각의 NROM 셀에 저장되고, 여기서 ONO 유전체 층이 소스 확산부와 드레인 확산부 사이에서 채널에 걸쳐 연장된다. 일 데이터 비트에 대한 전하가 드레인에 인접한 유전체 층 내에 국부화되고, 다른 데이터 비트에 대한 전하가 소스에 인접한 유전체층 내에 국부화된다. 유전체 내에서 공간적으로 분리된 전하 저장 영역들의 바이너리 상태들을 개별적으로 판독함으로써 다중-상태 데이터 스토리지가 얻어진다. 다른 타입의 비휘발성 메모리가 또한 알려져 있다.In another technique, NROM cells are used. For example, two bits are stored in each NROM cell, where an ONO dielectric layer extends across the channel between the source and drain diffusions. Charge for one data bit is localized in the dielectric layer adjacent to the drain, and charge for the other data bit is localized in the dielectric layer adjacent to the source. Multi-state data storage is obtained by individually reading the binary states of spatially separated charge storage regions within the dielectric. Other types of non-volatile memory are also known.
도 4a는 "1-패스 기록" 프로그래밍 기법으로 지칭되는, 예시적인 Vth 분포 및 1-패스 프로그래밍을 도시한다. 프로그래밍 패스는 일반적으로 저장 소자들의 세트에 대해 초기 Vpgm 레벨로부터 시작하여 하나 이상의 각각의 검증 레벨들이 도달될 때까지 최종 Vpgm 레벨로 진행하며 수행되는 일련의 복수의 프로그램-검증 동작들을 포괄할 것이다. 각각의 저장 소자가 두 개의 데이터 비트들을 저장하는 경우에 대해 저장 소자 어레이를 위한 예시적인 Vth 분포들이 제공된다. 제1 Vth 분포(400)는 소거된(E-상태) 저장 소자들에 대해 제공된다. 세 개의 Vth 분포들(402 404, 406)은 프로그램된 상태들(A, B, C) 각각을 나타낸다. 일 실시예에서, E-상태 분포 내의 임계 전압들은 음이고 A-, B-, C- 상태 분포들 내의 임계 전압들은 양이다.4A shows an example Vth distribution and one-pass programming, referred to as a "one-pass write" programming technique. The programming pass will generally encompass a series of multiple program-verify operations performed starting from an initial Vpgm level for a set of storage elements and proceeding to a final Vpgm level until one or more respective verify levels are reached. Example Vth distributions for the storage element array are provided for the case where each storage element stores two data bits. The
특정 상태에 있는 저장 소자들의 수는 그 Vth가 대응하는 검증 레벨을 초과하는 것으로 결정된 저장 소자들의 총수(count)를 유지함으로써 결정될 수 있다.The number of storage elements in a particular state may be determined by maintaining a count of storage elements whose Vth is determined to exceed a corresponding verify level.
각각의 개별 Vth 범위는 데이터 비트들의 세트에 대한 소정 값들에 대응한다. 저장 소자에 프로그램된 데이터와 저장 소자의 Vth 레벨들 사이의 구체적인 관계는 저장 소자들에 대해 채택된 데이터 엔코딩 기법에 의존한다. 일 실시예에서, 데이터 값들이 그레이 코드 할당을 사용하여 Vth 범위들에 할당되며 따라서 플로팅 게이트의 Vth가 오류로 그것의 이웃하는 물리적 상태로 시프트되면, 1 비트 만이 영향받을 것이다. 일 예는 "11"을 Vth 범위 E(상태 E)에, "10"을 Vth 범위 A(상태 A)에, "00"을 Vth 범위 B(상태 b)에, 그리고 "01"을 Vth 범위 C(상태 C)에 할당한다. 그러나, 다른 실시예들에서, 그레이 코드가 사용되지 않는다. 4개의 상태들이 도시되나, 4개보다 많은 또는 적은 상태들을 포함하는 다른 다중-상태 구조들이 또한 사용될 수 있다.Each individual Vth range corresponds to predetermined values for the set of data bits. The specific relationship between the data programmed into the storage element and the Vth levels of the storage element depends on the data encoding technique adopted for the storage elements. In one embodiment, data values are assigned to the Vth ranges using gray code assignment and thus only one bit will be affected if the Vth of the floating gate is shifted to its neighboring physical state in error. One example is "11" to Vth range E (state E), "10" to Vth range A (state A), "00" to Vth range B (state b), and "01" to Vth range C Assign to (state C). However, in other embodiments, gray code is not used. Four states are shown, but other multi-state structures including more or less than four states may also be used.
저장 소자들로부터의 데이터를 판독하기 위해 3 개의 판독 기준 전압(Vra, Vrb, Vrc)이 또한 제공된다. 주어진 저장 소자의 Vth가 Vra, Vrb 및 Vrc를 초과하거나 그 미만인지를 테스트함으로써, 시스템은 저장 소자가 속한 상태(예를 들어, 프로그래밍 조건)를 결정할 수 있다.Three read reference voltages Vra, Vrb, Vrc are also provided for reading data from the storage elements. By testing whether the Vth of a given storage element is above or below Vra, Vrb and Vrc, the system can determine the state (eg, programming condition) to which the storage element belongs.
또한, 3 개의 타겟 검증 기준 전압들(Vva, Vvb, Vvc)이 제공된다. 저장 소자들을 상태 A로 프로그래밍할 때, 시스템은 그 저장 소자들이 Vva와 동일하거나 그보다 큰 Vth를 갖는지 여부를 테스트할 것이다. 저장 소자들을 상태 B로 프로그램할 때, 시스템은 그 저장 소자들이 Vvb와 동일하거나 그보다 큰 임계 전압을 갖는지 여부를 테스트할 것이다. 저장 소자들을 상태 C로 프로그램할 때, 시스템은 저장 소자들이 Vvc와 동일하거나 그보다 큰 Vth를 갖는지 여부를 결정할 것이다.In addition, three target verification reference voltages Vva, Vvb, Vvc are provided. When programming the storage elements to state A, the system will test whether the storage elements have a Vth equal to or greater than Vva. When programming the storage elements to state B, the system will test whether the storage elements have a threshold voltage equal to or greater than Vvb. When programming the storage elements to state C, the system will determine whether the storage elements have a Vth equal to or greater than Vvc.
일 실시예에서, 완전 시퀀스(full sequence) 프로그래밍으로 알려져 있는 것과 같이, 저장 소자들이 E-상태에서 임의의 프로그램 상태(programmed state)(A, B 또는 C)로 직접 프로그램될 수 있다. 예를 들어, 프로그램될 저장 소자들의 집단(population)이 먼저 소거되어 그 집단의 모든 저장 소자들이 소거 상태 E있게 될 수 있다. 도 10에 도시된 것과 같은 일련의 프로그램 펄스들은 이후 저장 소자들을 상태 A, B 또는 C로 직접 프로그램하기 위해 사용될 것이다. 일부 저장 소자들이 상태 E로부터 상태 A로 프로그램되나, 다른 저장 소자들은 상태 E로부터 상태 B로 그리고/또는 상태 E로부터 상태 C로 프로그램된다.In one embodiment, the storage elements can be programmed directly from the E-state into any programmed state (A, B or C), as known as full sequence programming. For example, a population of storage elements to be programmed may first be erased so that all storage elements in that population are in erased state E. A series of program pulses such as shown in FIG. 10 will then be used to program the storage elements directly into state A, B or C. Some storage elements are programmed from state E to state A, while other storage elements are programmed from state E to state B and / or from state E to state C.
도 4b 및 4c는 "2-패스 기록"프로그래밍 기법으로 칭해지는 예시적인 임계 전압 분포 및 2-패스 프로그래밍을 도시한다. 이 접근법에서, 하나 이상의 데이터 상태들에 대해 하위 또는 상위 검증 레벨이 사용된다. 예를 들어, VvaL 및 Vva는 각각 A-상태에 대한 하위 검증 레벨과 상위 검증 레벨이고, VvbL 및 Vvb는 각각 B-상태에 대한 하위 검증 레벨과 상위 검증 레벨이고, 그리고 VvcL 및 Vvc는 각각 C-상태에 대한 하위 검증 레벨과 상위 검증 레벨이다. 하위 검증 레벨은 상위 검증 레벨로부터의 오프셋이다. 검증 레벨은 전압 또는 전류를 나타낼 수 있다.4B and 4C illustrate exemplary threshold voltage distribution and two-pass programming, referred to as a "two-pass write" programming technique. In this approach, lower or higher verify levels are used for one or more data states. For example, VvaL and Vva are the low and high verify levels for A-state, respectively, VvbL and Vvb are the low and high verify levels for B-state, respectively, and VvcL and Vvc are each C- Low and high verify levels for the state. The lower verify level is an offset from the upper verify level. The verify level can indicate voltage or current.
프로그래밍 동안, (타겟 상태로서 A-상태로 프로그램되도록 의도된) A-상태 저장 소자의 Vth가 VvaL과 같거나 그보다 작으면 저장 소자는 빠른 프로그래밍 모드(past programming mode)로 프로그램된다. 이는 비트 라인을 접지시킴으로써 달성될 수 있다. Vva≥Vth>VvaL일 때, 저장 소자는, 예컨대 관련된 비트 라인 전압을 접지와 완전 금지 또는 로크아웃 레벨 사이에 있는 레벨로 상승시킴으로써, 느린 프로그래밍 모드로 프로그램된다. 이는 Vth의 큰 스텝 증가들(large step increases_을 방지함으로써 더 큰 정밀도를 제공하고 따라서 더 좁은 Vth 분포를 제공한다. Vth>Vva일 때, 저장 소자는 추가의 프로그래밍으로부터 로크아웃된다. 마찬가지로, (B-상태로 프로그램되도록 의도된) B-상태 저장 소자는 빠르고 느린 프로그래밍 모드를 가질 수 있다. 일 기법에서, C-상태와 같은 가장 높은 상태는 다른 상태들보다 이점이 덜하므로, C-상태와 같은 가장 높은 상태에 대해서는 느린 프로그래밍 모드가 사용되지 않는다. C 상태를 위한 느린 프로그래밍 모드를 허용하는 VvcL이 도시된다.During programming, if the Vth of an A-state storage element (which is intended to be programmed to A-state as a target state) is less than or equal to VvaL, the storage element is programmed in a fast programming mode. This can be accomplished by grounding the bit line. When Vva > Vth > VvaL, the storage element is programmed in slow programming mode, for example, by raising the associated bit line voltage to a level between ground and the complete inhibit or lockout level. This provides greater precision by preventing large step increases_ and thus a narrower Vth distribution. When Vth> Vva, the storage element is locked out from further programming. A B-state storage element (which is intended to be programmed to a B-state) may have a fast and slow programming mode: In one technique, the highest state, such as the C-state, is less advantageous than the other states, so The slow programming mode is not used for the same highest state: VvcL is shown to allow the slow programming mode for the C state.
8-상태 프로그래밍의 예에서, 소거 상태 및 7개의 프로그램 상태들(A-G)을 이용하여, 빠르고 느린 프로그래밍 모드들이 예컨대 상태들(A-F)에 대해 사용될 수 있다.In the example of eight-state programming, using the erase state and seven program states A-G, fast and slow programming modes can be used, for example, for states A-F.
제1 프로그래밍 패스(도 4b)에서, A-, B- 및 C-상태 저장 소자들이, E-상태(400)로부터 A-, B-, 및 C- 상태(각각 하위 분포들 401, 403, 405)의 각각의 하위 검증 레벨들(VvaL, VvbL 또는 VvcL)로 프로그램된다. 제2 프로그래밍 패스(도 4c)에서, A-, B-, 및 C-상태 저장 소자들은, 각각 검증 레벨들 Vva, Vvb 및 Vvc을 사용하여, 하위 분포들(401, 403, 405)로부터 최종 분포들(402, 404, 406)로 각각 프로그램된다.In the first programming pass (FIG. 4B), the A-, B- and C-state storage elements are transferred from the E-state 400 to the A-, B-, and C-states (
도 5a는 예시적인 임계 전압 분포 및 1-패스 기록 프로그래밍을 도시하며, 여기서 최대 2개의 프로그래밍 속도들이 QPW 프로그램 옵션으로 사용될 수 있다. 일반적으로, 각각의 타겟 상태에 대해, 그것이 초과될 때 저장 소자에 대해 더 느린(slower) 프로그래밍 속도를 트리거하는 검증 레벨이 정의될 수 있다. 이 검증 레벨은 프로그래밍 패스의 종료를 신호하는 검증 레벨과는 다를 수 있다. 이 예에서, E-상태 분포(500)로부터 A-상태 분포(502)로 A-상태 저장 소자들을 프로그래밍하기 위하여 단일 프로그래밍 패스가 사용되고, 그럼으로써 검증 레벨 Vva-speed를 통과(pass)하며, 상기 검증 레벨 Vva-speed는 예컨대 관련된 비트 라인 전압을 상승시킴으로써 Vva≥Vth>Vva-speed인 각각의 A-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거하기 위한 체크포인트로서 작용한다. Vth≤Vva-speed인 A-상태 저장 소자들은, 예컨대 비트 라인 전압을 접지된 상태로 유지시킴으로써, 더 빠른 속도로 프로그램된다. Vth가 Vva에 도달하는 (분포(502)를 형성하는) 모든 A-상태 저장 소자들은 추가의 프로그래밍으로부터 로크아웃된다. 5A shows an example threshold voltage distribution and 1-pass write programming, where up to two programming speeds can be used as a QPW program option. In general, for each target state, a verify level can be defined that triggers a slower programming speed for the storage element when it is exceeded. This verify level can be different from the verify level that signals the end of the programming pass. In this example, a single programming pass is used to program the A-state storage elements from the
마찬가지로, B-상태 저장 소자들을 E-상태 분포(500)로부터 B-상태 분포(504)로 프로그래밍하기 위하여 단일 프로그래밍 패스가 사용되고, 그럼으로써 검증 레벨 Vvb-speed를 통과하며, 상기 검증 레벨 Vvb-speed은 Vvb≥Vth>Vvb-speed인 각각의 B-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거하기 위한 체크포인트로서 동작한다. Vth≤Vvb-speed를 위한 B-상태 저장 소자들은 더 빠른 속도로 프로그램된다. Vth가 Vvb에 도달하는 (분포(504)를 형성하는) 모든 B-상태 저장 소자들은 추가의 프로그래밍으로부터 로크아웃된다.Similarly, a single programming pass is used to program the B-state storage elements from the
또한, C-상태 저장 소자들을 E-상태 분포(500)로부터 C-상태 분포(506)로 프로그램하기 위하여 단일 프로그래밍 패스가 사용되고, 그럼으로써 검증 레벨 Vvc-speed를 통과하며, 상기 검증 레벨 Vvc-speed은 Vvc≥Vth>Vvb-speed인 각각의 C-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거하는 체크포인트로서 동작한다. Vth≤Vvc-speed인 C-상태 저장 소자들이 더 빠른 속도로 프로그램된다. Vth가 (분포(506)를 형성하는) Vvc에 도달하는 모든 C-상태 저장 소자들은 추가의 프로그래밍으로부터 로크아웃된다.In addition, a single programming pass is used to program the C-state storage elements from the
도 4a-4c의 기법에서와 비교하여, 이 프로그래밍 옵션에서는 최대 2개의 프로그래밍 속도들에 대한 참조와 관련하여, "2-패스 기록" 기법에서 두 개의 프로그래밍 패스가 사용된다. 이는 이웃 저장 소자들로부터의 간섭 효과의 영향을 감소시키기 위해 행해진다. 제1 패스에서, 모든 저장 소자들을 그들의 최종 타겟 Vth에 가깝게 프로그램한다. 이후, 제2 패스 동안, 저장 소자들을 이들의 최종 타겟 Vth에 도달하도록 프로그램한다. 따라서, 제1 경로와 제2 경로 사이의 총 Vth 시프트가 더 작고 따라서 이웃 저장 소자들에 대한 대응하는 간섭 효과 또한 더 작다. 프로그래밍은 예를 들어, 하기에서 논의되는 도 7a 및 7b에 도시된 순서로 될 수 있다. 제2 패스 동안, 저장 소자들은 이미 그들의 목표에 근접하게 프로그램되었으므로, 저장 소자들을 프로그램할 때, 저장 소자들의 Vth가 이들의 정상 상태 값들보다 높기 때문에, 저장 소자들은 처음에 자연적으로 더 느리게 프로그램된다. 이 "패스 기록 효과(pass write effect)"는 최종 Vth 분포를 더 밀집되게 만드는것을 돕는다.Compared to the techniques of FIGS. 4A-4C, two programming passes are used in the "two-pass write" technique in this programming option with reference to up to two programming speeds. This is done to reduce the effects of interference effects from neighboring storage elements. In the first pass, all storage elements are programmed close to their final target Vth. Then, during the second pass, the storage elements are programmed to reach their final target Vth. Thus, the total Vth shift between the first path and the second path is smaller and thus the corresponding interference effect on neighboring storage elements is also smaller. Programming can be, for example, in the order shown in FIGS. 7A and 7B discussed below. During the second pass, the storage elements are already programmed close to their target, so when programming the storage elements, the storage elements are initially programmed slower naturally because the Vth of the storage elements is higher than their steady state values. This "pass write effect" helps to make the final Vth distribution more dense.
최대 두 개의 프로그래밍 속도를 사용할 수 있는 프로그래밍 옵션은 "퀵 패스 기록"(QPW; quick pass write) 기법으로 칭해질 수 있다. QPW는 2 패스 기법의 제1 또는 제2 패스에서, 또는 그 둘 모두에서 독립적으로 사용될 수 있다. 우리가 QPW를 사용하는 각 패스에 대해, 프로그래밍 패스가 종료되고 로크아웃이 발생하는 검증 레벨 미만인 하위-검증 레벨(Vva-speed, Vvb-speed, VVc-speed)이 사용된다. 이 하위 검증 레벨은 프로그래밍을 속도를 느리게 만들기 위한 체크포인트로서 작용하나, 저장 소자의 로크아웃을 트리거하지 않는다. QPW에서, 저장 소자의 관련된 채널 영역에 비트 라인 바이어스를 인가함으로써 저장 소자의 프로그래밍 속도를 인위적으로 느리게 만든다. 또한, QPW-검증 레벨들(Vva-speed, Vvb-speed, Vvc-speed)이 독립적으로 최적화될 수 있음에 주목하여야 한다. Vth 분포를 밀집시키는데 있어서 QPW의 최대의 이점을 얻을 수 있는 Vva-speed와 Vva 사이의 최적의 갭이 존재한다. QPW-검증 레벨들은 이전의 프로그래밍 패스의 검증 레벨들에 의존하지 않는다. 언급된 최적의 갭은 각각의 타겟 상태에 대해 동일하거나 다를 수 있다. QPW에서, 일 프로그래밍 펄스를 사용하여 그 Vth가 Vva-speed 바로 위로 점프하여 Vva에 도달하는 A-상태 저장 소자와 같은 - 두 개의 속도가 아닌 - 단 하나의 속도로 프로그램될 수 있는 몇몇 저장 소자들이 있을 수 있다는 것에 또한 주목하여야 한다. 그러한 저장 소자는 느린 프로그래밍을 경험함이 없이 그 타겟 레벨에 도달한다. 따라서, 모든 저장 소자들이 QPW에서 두 개의 속도로 프로그램되는 것은 아니다. 그러나, 일반적으로 대부분의 저장 소자들이 두 개의 속도로 프로그램된다.A programming option that can use up to two programming speeds can be referred to as a "quick pass write" (QPW) technique. QPW may be used independently in the first or second pass of a two pass technique, or both. For each pass we use QPW, sub-validation levels (Vva-speed, Vvb-speed, VVc-speed) are used that are below the verification level at which the programming pass ends and lockout occurs. This lower verify level acts as a checkpoint to slow programming, but does not trigger lockout of the storage device. In QPW, applying a bit line bias to the associated channel region of the storage device artificially slows the programming speed of the storage device. It should also be noted that the QPW-verification levels (Vva-speed, Vvb-speed, Vvc-speed) can be optimized independently. There is an optimal gap between Vva-speed and Vva that can achieve the maximum benefit of QPW in compacting the Vth distribution. The QPW-verify levels do not depend on the verify levels of the previous programming pass. The optimal gap mentioned may be the same or different for each target state. In QPW, there are several storage devices that can be programmed at only one speed-not two speeds-such as an A-state storage device whose Vth jumps just above Vva-speed to reach Vva using one programming pulse. It should also be noted that there may be. Such storage elements reach their target levels without experiencing slow programming. Thus, not all storage elements are programmed at two speeds in QPW. In general, however, most storage elements are programmed at two speeds.
도 5b는 제1 프로그래밍 패스 동안, 최대 두 개의 프로그래밍 속도들이 QPW 프로그래밍 옵션으로 사용될 수 있는 2-단계 프로그래밍 동안의 A-상태에 대한 예시적인 임계 전압 분포를 도시한다. 명료성을 위해 A-상태 하나만이 검토되지만, 다른 타겟 데이터 상태들이 유사하게 처리될 수 있다. 이 경우, A-상태 저장 소자들은 제1 프로그래밍 패스에서 Vva-speed를 통과하며, 따라서 A-상태 저장 소자들의 프로그래밍은 제1 프로그래밍 패스의 제1 부분에 대해서는 빠르고 1 프로그래밍 패스의 제2 부분에 대해서는 느리다. 따라서, 제1 프로그래밍 패스에서, A-상태 저장 소자들은 E-상태 분포(500)로부터 VvaL에 의해 정의되는 하위 A-상태 분포(501)로 천이하고, 그럼으로써 Vva-speed를 통과하며, 상기 Vva-speed는 각각의 A-상태 저장 소자에 대해 더 느린 프로그래밍 속도를 트리거링하기 위한 체크포인트로서 동작한다. 따라서, A-상태 저장 소자들의 속도는 이들이 하위 A-상태 분포(501)로 천이함에 따라 느려지고, Vth>VvaL인 각각의 A-상태 저장 소자에 대해 제1 프로그래밍 패스의 종료를 신호한다. 제2 프로그래밍 패스에서, A-상태 저장 소자들은 분포(501)로부터, Vva에 의해 정의되는 분포(502)로 프로그램되며, Vth>Vva인 각각의 A-상태 저장 소자에 대해 제2 프로그래밍 패스의 종료를 신호한다. 다음에 논의되는 바와 같이, 제2 프로그래밍 패스 또한 선택적으로 OPW를 사용할 수 있다. 5B shows an exemplary threshold voltage distribution for the A-state during two-stage programming during which a first programming pass, up to two programming speeds may be used with the QPW programming option. Although only one A-state is examined for clarity, other target data states can be similarly processed. In this case, the A-state storage elements pass Vva-speed in the first programming pass, so that the programming of the A-state storage elements is fast for the first part of the first programming pass and for the second part of the one programming pass. slow. Thus, in the first programming pass, the A-state storage elements transition from the
도 5c는 제2 프로그래밍 패스 동안에 최대 두 개의 프로그래밍 속도가 QPW 프로그래밍 옵션으로 사용될 수 있는 2-패스 프로그래밍 동안의 A-상태에 대한 예시적인 임계 전압 분포를 도시한다. 다시, 명료성을 위해 A-상태 하나만이 검토되지만, 다른 타겟 데이터 상태들이 유사하게 처리될 수 있다. 이 경우에, A-상태 저장 소자들은 제2 프로그래밍 패스에서 검증 레벨 Vva_speed1(도 5의 Vva_speed와는 다름)을 통과한다. 먼저, A-상태 저장 소자들이 E-상태 분포(500)로부터, VvaL에 의해 정의된 하위 A-상태 분포(501)로 천이하고, Vth>VvaL인 각각의 A-상태 저장 소자에 대해 제1 프로그래밍 패스의 종료를 신호한다. 도 5b에서 설명되는 바와 같이 제1 프로그래밍 패스는 선택적으로 QPW를 이용할 수 있다. 제2 프로그래밍 패스에서, A-상태 저장 소자들은 처음에, Vth≤Vva_speed1일 때 빠른 속도로, 그리고 그후 Vth>Vva_speed1일 때 느린 속도로, 분포(501)로부터 분포(502)로 천이한다. Vth>Vva인 각각의 A-상태 저장 소자에 대해 제2 프로그래밍 패스의 종료가 신호된다.5C shows an example threshold voltage distribution for the A-state during two-pass programming where up to two programming speeds can be used with the QPW programming option during the second programming pass. Again, only one A-state is examined for clarity, but other target data states can be similarly processed. In this case, the A-state storage elements pass the verify level Vva_speed1 (different from Vva_speed in FIG. 5) in the second programming pass. First, the A-state storage elements transition from the
단계 6a, 6b, 및 6c는, 중간 또는 하위 중간(LM; lower-middle) 상태가 사용되는 "3-패스 기록" 프로그래밍 기법으로서 지칭되는 3-패스 프로그래밍 동작의 제1, 제2, 제3 프로그래밍 단계를 각각 도시한다. 이 프로그래밍 기법은 이전 페이지들에 대해 인접 저장 소자들에 기록한 다음에 특정 페이지에 대해 특정 저장 소자에 기록함으로써, 임의의 특정 저장 소자에 대해, 플로팅 게이트-대-플로팅 게이트 커플링의 효과를 감소시킨다. 일 예시적인 실시예에서, 비휘발성 저장 소자들은 4 데이터 상태들을 이용하여, 저장 소자당 2 비트의 데이터를 저장한다. 예를 들어, E-상태는 소거 상태이고 상태들 A, B, C는 프로그램 상태이다. 앞서와 같이, E-상태는 데이터 11을 저장하고, 상태 A는 데이터 01을 저장하고, 상태 B는 데이터 00을 저장하고, 그리고 상태 C는 데이터 10을 저장한다. 데이터 대 물리적 데이터 상태들(data-to-physical data states)의 다른 엔코딩이 또한 사용될 수 있다. 각각의 저장 소자가 2 페이지의 데이터를 저장한다. 참조의 목적으로, 이 데이터 페이지들은 상위 페이지 및 하위 페이지라 지칭될 것이다. 그러나, 이들이 다르게 표기될 수 있다.Steps 6a, 6b, and 6c are first, second, and third programming of a three-pass programming operation, referred to as a "three-pass write" programming technique, in which an intermediate or lower-middle state is used. Each step is shown. This programming technique reduces the effect of floating gate-to-floating gate coupling on any particular storage element by writing to adjacent storage elements for previous pages and then to a particular storage element for a particular page. . In one exemplary embodiment, the nonvolatile storage elements use two data states to store two bits of data per storage element. For example, the E-state is an erased state and states A, B, and C are program states. As before,
제1 프로그래밍 단계에서, 선택된 워드 라인 WLn에 대해 하위 페이지가 프로그램된다. 예를 들어, 이는 도 7b의 단계 "1"(하기에서 논의됨)에 대응할 수 있다. 하위 페이지가 데이터 1로 남는다면, 저장 소자 상태는 상태 E로 유지된다(분포 600). 데이터가 0으로 프로그램된다면, 저장 소자가 중간(LM 또는 하위 중간) 상태(분포(606))로 프로그램되도록 WLn 상의 저장 소자들의 임계 전압이 상승된다. 따라서 도 6a는 E-상태에서 LM-상태로의 저장 소자들의 프로그래밍을 보여준다. In the first programming step, a lower page is programmed for the selected word line WLn. For example, this may correspond to step “1” (discussed below) in FIG. 7B. If the lower page remains
일 실시예에서, 저장 소자가 E-상태에서 LM-상태로 프로그램된 후, NAND 스트링 내의 인접 워드 라인 WLn+1 상의 그 이웃 저장 소자가 그것의 하위 페이지와 관련하여 프로그램될 것이다. 이는 WLn 상의 저장 소자들에 대해, 상태 LM에 대한 Vth 분포(606)를 넓히는 효과를 가질 것이다. 이 Vth 분포의 뚜렷한 확대(apparent widening)은 상위 페이지를 프로그래밍할 때 처리(remedy)될 것이다. E 상태 분포(600)가 또한 넓어질 것이다. WLn에 대한 제1 프로그래밍 패스가 수행된 후, 도 7b의 단계 "2"로 표시된 것과 같이, 유사한 제1 프로그래밍 패스가 WLn에 대해 수행될 수 있다.In one embodiment, after the storage element is programmed from the E-state to the LM-state, that neighboring storage element on the adjacent word line WLn + 1 in the NAND string will be programmed with respect to its lower page. This would have the effect of widening the
도 6b는 하위 검증 레벨 VvaL, VvaB, VvAc를 이용한 상위 페이지의 프로그래밍을 도시한다. 예를 들어, 이는 도 7b의 단계 "3"에 대응할 수 있다. 더우기, 일 실시예에서, 상위 페이지 프로그래밍 전에, 어느 저장 소자들이 E-상태에 속하는지 그리고 어느 저장 소자들이 LM-상태에 속하는지를 결정하기 위하여 판독 동작이 수행된다. 이 판독 동작은 판독 레벨 Vra에서 또는 E-상태와 LM-상태 Vth 분포 사이의 어떤 다른 적합한 전압 레벨에서 행해질 수 있다. 이 단계는 WLn 상의 하위 페이지를 프로그래밍한 후 래치들의 하위 페이지 데이터가 제거되는 구현예에서 수행되며, 따라서 WLn+1에 대한 하위 페이지 데이터에 대해 래치가 사용될 수 있다. 이 경우, WLn 상의 상위 페이지를 프로그래밍하기 전에, 하위 페이지 데이터를 결정하기 위하여 판독이 수행된다. 워드 라인의 서로 다른 프로그래밍 패스들에 걸쳐 워드 라인의 모든 페이지들에 대한 데이터를 저장할 수 있는 바이너리 캐시가 사용되는 경우와 같은 다른 구현예들에서, 이 판독 단계는 필요하지 않다. 6B shows programming of the upper page with lower verify levels VvaL, VvaB, VvAc. For example, this may correspond to step “3” in FIG. 7B. Furthermore, in one embodiment, prior to upper page programming, a read operation is performed to determine which storage elements belong to the E-state and which storage elements belong to the LM-state. This read operation may be performed at read level Vra or at any other suitable voltage level between the E-state and LM-state Vth distributions. This step is performed in an implementation in which the lower page data of the latches are removed after programming the lower page on WLn, so a latch can be used for the lower page data for WLn + 1. In this case, before programming the upper page on WLn, a read is performed to determine the lower page data. In other implementations, such as when a binary cache is used that can store data for all pages of a word line across different programming passes of the word line, this read step is not necessary.
저장 소자가 E-상태에 있고 상위 페이지가 1이라면, 저장 소자는 E-상태로 유지될 것이다(분포(600)). 저장 소자가 E-상태에 있고 그 상위 페이지 데이터가 0이면, 저장 소자의 Vth는 VvaL을 초과하여 상승될 것이다(분포(602)). 저장 소자가 LM-상태(606)에 있고 상위 페이지 데이터가 0이면, 저장 소자의 Vth는 VvbL을 초과하여 프로그램될 것이다(분포(608)). 저장 소자가 LM-상태(606)에 있고 상위 페이지 데이터가 1이면, 저장 소자의 Vth는 VvcL을 초과하여 상승될 것이다(분포(612)). 이웃 저장 소자들의 상위 페이지 프로그래밍만이 주어진 저장 소자의 겉보기(apparent) Vth에 영향을 줄 것이므로, 도시된 과정은 플로팅 게이트-대-플로팅 게이트 커플링 효과를 감소시킨다. 교번하는 상태 코딩(alterante state coding)의 예는 상위 페이지 데이터가 0일 때 분포(606)로부터 상태(C)로 이동하고, 그리고 상위 페이지 데이터가 1일 때 B-상태로 이동한다. WLn에 대해 제2 프로그래밍 단계가 수행된 후, 도 7b에서 단계 "4"로 표시된 것과 같이 WLn+2에 대해 제1 프로그래밍 단계가 수행될 수 있고, 그리고 도 7b에서 단계 "5"로 표시된 것과 같이 WLn+1에 대해 제2 프로그래밍 단계가 수행될 수 있다.If the storage element is in the E-state and the upper page is 1, the storage element will remain in the E-state (distribution 600). If the storage element is in the E-state and its upper page data is zero, the Vth of the storage element will rise above VvaL (distribution 602). If the storage element is in LM-
도 6c는 A-상태에 대해 분포(602)로부터 분포(604)로의천이를 제공하고, B-상태에 대해 분포(608)로부터 분포(610)로, 그리고 C-상태에 대해 분포(612)로부터 분포(614)로의천이를 제공하기 위하여, 높은 검증 레벨들 Vva, Vvb, Vvc를 이용하여 상위 페이지를 프로그래밍하는 것을 도시한다. 예를 들어, 이는 도 7b의 단계 "6"에 대응할 수 있다.6C provides a transition from
이 3-단계 프로그래밍 예가 4 개의 데이터 상태들 및 2 데이터 페이지들을 제공하나, 이 개념은 4 상태들보다 많거나 적은 상태들을 갖는 그리고 2 페이지들보다 많거나 적은 페이지들을 갖는 다른 구현예들에 적용될 수 있다. 예를 들어, 저장 소자 당 8 개 또는 16 개의 상태들을 갖는 메모리 디바이스들이 현재 계획되거나 또는 생산 중 이다.Although this three-step programming example provides four data states and two data pages, this concept can be applied to other implementations having more or fewer states than four states and having more or fewer pages than two pages. have. For example, memory devices with 8 or 16 states per storage element are currently planned or in production.
일반적으로, 프로그래밍 속도는 도 6a-6c의 프로그래밍 패스들 중 임의의 단계에 대해 조정될 수 있다. 예를 들어, 도 6b의 제2 프로그래밍 패스에서, 우리는 도 5b에 도시된 것과 같이 Vva-speed<VvaL을 설정할 수 있다. 마찬가지로, Vva-speed<VvbL 및 Vvc-speed<VvcL을 설정할 수 있다. 이 경우에, 제2 프로그래밍 패스에서, A-상태 저장 소자들은 Vth≤Vva-speed일 때 빠른 속도로 프로그램되고, Vva-speed<Vth≤VvaL일 때 느린 속도로 프로그램된다. 마찬가지로, B-상태 저장 소자들은 Vth≤Vvb-speed일 때 빠른 속도로 프로그램되고, Vvb-speed<Vth≤VvbL일 때 느린 속도로 프로그램된다. 마찬가지로, C-상태 저장 소자들은 Vth≤Vvb-speed일 때 빠른 속도로 프로그램되고, Vvc-speed<Vth≤VvcL일 때 느린 속도로 프로그램된다.In general, the programming speed may be adjusted for any of the programming passes of FIGS. 6A-6C. For example, in the second programming pass of FIG. 6B, we can set Vva-speed <VvaL as shown in FIG. 5B. Similarly, you can set Vva-speed <VvbL and Vvc-speed <VvcL. In this case, in the second programming pass, the A-state storage elements are programmed at high speed when Vth ≦ Vva-speed, and at low speed when Vva-speed <Vth ≦ VvaL. Likewise, B-state storage elements are programmed at high speed when Vth < Vvb-speed, and at slow speed when Vvb-speed < Vth < Likewise, C-state storage elements are programmed at high speed when Vth < Vvb-speed, and at slow speed when Vvc-speed < Vth <
도 6c의 제2 프로그래밍 단계의 예에서, 도 5c에 도시된 것과 같이 VvaL<Vva_speed<Vva를 설정할 수 있다. 마찬가지로, VvaL<Vvb_speed<Vvb 및 VvcL<Vvc_speed<Vvc를 설정할 수 있다. 이 경우에, 제3 프로그래밍 단계에서, A-상태 저장 소자들은 VvaL<Vth≤Vva_speed일 때 빠른 속도로 프로그램되고, Vva_speed<Vth≤Vva일 ? 느린 속도로 프로그램된다. 마찬가지로, B-상태 저장 소자들은 VvbL<Vth≤Vvb-speed일 때 빠른 속도로 프로그램되고, 그리고 Vvb-speed<Vth≤Vvb일 때 느린 속도로 프로그램된다. 마찬가지로, C-상태 저장 소자들은 VvcL<Vth≤Vvc_speed일 때 빠른 속도로 프로그램되고, Vva-speed<Vth≤Vvc일 때 느린 속도로 프로그램된다.In the example of the second programming step of FIG. 6C, VvaL <Vva_speed <Vva may be set as shown in FIG. 5C. Similarly, you can set VvaL <Vvb_speed <Vvb and VvcL <Vvc_speed <Vvc. In this case, in the third programming step, the A-state storage elements are programmed at high speed when VvaL <Vth ≦ Vva_speed, and Vva_speed <Vth ≦ Vva? It is programmed at a slow speed. Likewise, B-state storage elements are programmed at high speed when VvbL <Vth ≦ Vvb-speed, and at low speed when Vvb-speed <Vth ≦ Vvb. Likewise, C-state storage elements are programmed at high speed when VvcL <Vth ≦ Vvc_speed and at low speed when Vva-speed <Vth ≦ Vvc.
제2 및 제3 프로그래밍 패스에 대한 앞의 예들은 단독으로 또는 결합하여 사용될 수 있다. The previous examples for the second and third programming pass may be used alone or in combination.
도 6d는 "2-패스 기록" 프로그래밍 기법으로 지칭되는 2-단계 프로그래밍 동작의 제2 프로그래밍 패스를 도시하며, 여기서 도 6a가 제1 프로그래밍 패스를 도시하고, 그리고 여기서 최대 2개의 프로그래밍 속도가 QPW 프로그래밍 옵션으로 이용될 수 있다. 이 추가의 대안적인 예에서, 도 5a-5c에 논의된 것과 같이, 검증 레벨 Vva-speed, Vvb-speed 및 Vvc-speed이 프로그래밍 속도를 느리게 만드는 것을 트리거링하기 위하여 사용된다. 구체적으로, A-상태 저장 소자들은 이들의 Vth≤Vva_speed일 때 빠른 속도로 프로그램될 것이고, 이들의 Vva>Vth>Vva-speed일 때 느린 속도로 프로그램될 것이다. Vth>Vva는 프로그래밍 로크아웃 조건을 트리거한다. B-상태 저장 소자들은 이들의 Vth≤Vvb_speed일 ? 빠른 속도로 프로그램될 것이고 이들의 Vvb>Vth>Vvb-spped일 때 느린 속도로 프로그램될 것이다. Vth>Vvb는 프로그래밍 로크아웃 조건을 트리거링한다. C-상태 저장 소자들은 이들의 Vth≤Vvc-speed일 때 빠른 속도로 프로그램될 것이고, 이들의 Vvc>Vth>Vvc-speed일 때 느린 속도로 프로그램될 것이다. Vth<Vvc는 프로그래밍 로크아웃 조건을 트리거한다.FIG. 6D shows a second programming pass of a two-step programming operation, referred to as a “two-pass write” programming technique, where FIG. 6A shows the first programming pass, and where up to two programming speeds are QPW programming. Can be used as an option. In this further alternative example, verify levels Vva-speed, Vvb-speed, and Vvc-speed are used to trigger slow programming speed, as discussed in FIGS. 5A-5C. Specifically, A-state storage elements will be programmed at high speeds when their Vth < Vva_speed and will be programmed at slow speeds when their Vva > Vth > Vva-speed. Vth> Vva triggers a programming lockout condition. Are the B-state storage elements whose Vth≤Vvb_speed? They will be programmed at high speed and will be programmed at slow speed when their Vvb> Vth> Vvb-spped. Vth> Vvb triggers a programming lockout condition. C-state storage elements will be programmed at high speeds when their Vth ≤ Vvc-speed, and programmed at slow speeds when their Vvc> Vth> Vvc-speed. Vth <Vvc triggers a programming lockout condition.
도 7a는 앞-뒤로의 워드 라인 순서인, 저장 소자들의 세트에 대한 2-패스 프로그래밍 동작을 도시한다. 도시된 구성요소들은 저장 소자들, 워드 라인들 및 비트 라인들의 훨씬 더 큰 세트의 서브세트일 수 있다. 한가지 가능한 프로그래밍 동작에서, WLn 상의 (정사각형으로 도시된) 저장 소자들이, 원 표시된 "1"로 나타낸 바와 같이, 제1 프로그래밍 패스에서 프로그램된다. 다음에("2"), WLn+1 상의 저장 소자들이 그 워드 라인에 대해 제1 프로그래밍 패스에서 프로그램된다. 이 예에서, 프로그래밍을 위해 워드 라인이 선택될 때, 각 프로그램 펄스 후에 검증 동작들이 발생한다. 선택된 워드 라인에 대한 검증 동작들 동안에, 선택되지 않은 저장 소자들을 턴온시키기(전도성으로 만들기) 위하여 선택되지 않은 워드 라인들에 검증 전압들이 인가되며 따라서 검증 동작과 같은 감지 동작이 선택된 워드 라인에 대해 발생할 수 있다. 다음에("3"), WLn 상의 저장 소자들이 제2 프로그래밍 패스에서 프로그램된다. 다음에("4"), WLn+2 상의 저장 소자들이 그 워드 라인에 대해 제1 프로그래밍 패스에서 프로그램된다. 다음에("5"), WLn+1 상의 저장 소자들이 제2 프로그래밍 패스에서 이들의 각각의 최종 상태들로 프로그램된다. 7A illustrates a two-pass programming operation for a set of storage elements, in word line order back-to-back. The illustrated components may be a much larger subset of the storage elements, word lines and bit lines. In one possible programming operation, the storage elements (shown in square) on WLn are programmed in the first programming pass, as indicated by the circled " 1 ". Next ("2"), the storage elements on WLn + 1 are programmed in the first programming pass for that word line. In this example, when a word line is selected for programming, verify operations occur after each program pulse. During the verify operations for the selected word line, verify voltages are applied to the unselected word lines to turn on (conduct) the unselected storage elements so that a sense operation, such as a verify operation, occurs for the selected word line. Can be. Next ("3"), the storage elements on WLn are programmed in the second programming pass. Next (“4”), the storage elements on WLn + 2 are programmed in the first programming pass for that word line. Next ("5"), the storage elements on WLn + 1 are programmed to their respective final states in the second programming pass.
복수의 프로그래밍 패스들에서 앞-뒤 방식으로 워드 라인들을 프로그래밍함으로써, 이들의 Vth 분포들을 증가시키고 넓히는 경향이 있는 용량성 커플링-유발 간섭 효과(capacitive coupling-caused interference effect)가 감소된다. 그에 반해, 단일-패스 프로그래밍에서, 각각의 워드 라인은 다음 워드 라인으로 이동하기 전에 완전히 프로그램된다.By programming word lines in a front-to-back fashion in multiple programming passes, the capacitive coupling-caused interference effect, which tends to increase and widen their Vth distributions, is reduced. In contrast, in single-pass programming, each word line is fully programmed before moving to the next word line.
제1 및 제2 프로그래밍 패스들은 여기에서 논의된 프로그래밍 기법들 중 임의의 기법을 사용할 수 있다. 도 7b는 앞-뒤로의 워드 라인 순서로, 저장 소자들의 세트에 대한 3-패스 프로그래밍 동작을 도시한다. 하위 페이지의 초기 프로그래밍 패스가 상위 페이지의 제1 및 제2 프로그래밍 패스 전에 수행된다. 제1 프로그래밍 패스가 하위 데이터 페이지를 프로그램하고, 제2 프로그래밍 단계가 제1 프로그래밍 패스에서의 상위 데이터 페이지를 프로그램하고, 그리고 제3 프로그래밍 패스가 제2 프로그래밍 패스에서의 상위 데이터 페이지의 프로그래밍을 완료한다. "1"에서, 제1 프로그래밍 패스가 WLn에 대해 수행되고, "2"에서 제2 프로그래밍 패스가 WLn+1에 대해 수행되고, "3"에서 제2 프로그래밍 패스가 WLn에 대해 수행되고, "4"에서 제1 프로그래밍 패스가 WLn+2에 대해 수행되고, "5"에서 제2 프로그래밍 패스가 WLn+1에 대해 수행되고, "6"에서 제3 프로그래밍 패스가 WLn에 대해 수행되고, "7"에서 제1 프로그래밍 패스가 WLn+3에 대해 수행되고, "8"에서 제2 프로그래밍 패스가 WLn+2에 대해 수행되고, "9"에서 제3 프로그래밍 패스가 WLn+1에 대해 수행되는 등이다. The first and second programming passes may use any of the programming techniques discussed herein. 7B shows a three-pass programming operation for a set of storage elements, in word line order back-to-back. The initial programming pass of the lower page is performed before the first and second programming passes of the upper page. The first programming pass programs the lower data page, the second programming step programs the upper data page in the first programming pass, and the third programming pass completes the programming of the upper data page in the second programming pass. . At "1", the first programming pass is performed for WLn, at "2" the second programming pass is performed for WLn + 1, at "3", the second programming pass is performed for WLn, and "4" A first programming pass is performed for WLn + 2, a second programming pass is performed for WLn + 1 at "5", a third programming pass is performed for WLn at "6", and "7" A first programming pass is performed for WLn + 3, a second programming pass is performed for WLn + 2 at "8", a third programming pass is performed for WLn + 1 at "9", and so on.
일 가능한 기법에서, 제1 프로그래밍 패스는 도 6a에 도시된 것과 같은 검증 레벨 VvLM을 사용하고, 제2 프로그래밍 패스는 도 6b에 도시된 것과 같은 검증 레벨들의 하위 세트(VvaL, VvbL, VvcL)를 사용하고, 그리고 제3 프로그래밍 패스는 도 6c에 도시된 것과 같은 검증 레벨들의 상위 세트(Vva, Vvb, Vvc)를 사용한다. 가장 조밀한 Vth 분포들의 세트를 달성하기 위하여 제2 프로그래밍 패스에서의 검증 레벨들의 하위 세트와 제3 프로그래밍 패스에서의 검증 레벨들의 상위 세트 사이의 차가 실리콘에 대해 최적화될 수 있다. In one possible technique, the first programming pass uses a verify level VvLM as shown in FIG. 6A and the second programming pass uses a subset of verify levels (VvaL, VvbL, VvcL) as shown in FIG. 6B. And the third programming pass uses a higher set of verify levels (Vva, Vvb, Vvc) as shown in FIG. 6C. The difference between the lower set of verify levels in the second programming pass and the higher set of verify levels in the third programming pass can be optimized for silicon to achieve the most compact set of Vth distributions.
제1, 제2 및 제3 프로그래밍 패스들은 여기에서 논의된 프로그래밍 기법들 중 임의의 기법을 사용할 수 있다.The first, second and third programming passes may use any of the programming techniques discussed herein.
도 8은 저장 소자를 프로그램하는데 필요한 최고의(highest) Vpgm과 저장 소자의 비트 라인 전압 사이의 관계를 도시한다. x-축은 증가하는 비트 라인 전압(Vbl)을 도시하고 y-축은 저장 소자의 프로그래밍을 완료하기 위해 요구되는 최고의 Vpgm 전압을 도시한다.8 shows the relationship between the highest Vpgm needed to program the storage element and the bit line voltage of the storage element. The x-axis shows the increasing bit line voltage Vbl and the y-axis shows the highest Vpgm voltage required to complete the programming of the storage element.
Vbl이 증가함에 따라, 저장 소자의 프로그래밍을 완료하는데 필요한 최고의( Vpgm 또한 증가한다. 일반적으로, 저장 소자의 프로그래밍 속도가 느려지는 정도는 Vbl과 상수 k의 곱에 비례하며, k는 도시된 선의 경사이다. Vbl에서의 1V 증가(예를 들어, △Vbl=1V의 비트 라인 스텝 사이즈)가 오프셋으로, Vpgm의 1V 보다 큰 증가(예를 들어, △Vpgm=1V의 프로그램 펄스 스텝 사이즈)를 요구하기 때문에, 상기 상수는 일반적으로 1보다 크다. 따라서 Vbl을 증가시키는 것은 프로그래밍 속도를 제어하고 Vth 분포의 폭을 좁게 만드는 강력한 도구이다. 그러나, Vbl은 주로 Vsgd (드레인측 선택 게이트) 마진 윈도우에 의해 제한되므로, Vbl이 너무 높게 만들어질 수는 없다. Vbl이 더 높을 때, 저장 소자들을 프로그래밍하기 위해 드레인측 선택 게이트를 턴온시키는 데 필요한 Vsgd 전압 또한 더 높다. 그러나, 더 높은 Vsgd 값은, 프로그램 방해를 야기할 수 있는 금지된 저장 소자들의 채널로부터의 부스트 전위 누설의 위험을 갖는다.As Vbl increases, the maximum required to complete the programming of the storage element (Vpgm also increases. In general, the degree of slow programming of the storage element is proportional to the product of Vbl and the constant k, where k is the slope of the line shown. A 1V increase in Vbl (eg, a bit line step size of ΔVbl = 1V) is an offset, requiring an increase greater than 1V of Vpgm (eg, a program pulse step size of ΔVpgm = 1V). Therefore, the constant is usually greater than 1. Therefore, increasing Vbl is a powerful tool for controlling the programming speed and narrowing the width of the Vth distribution, but Vbl is mainly limited by the Vsgd (drain-side select gate) margin window. (Vbl cannot be made too high.) When Vbl is higher, before Vsgd is required to turn on the drain-side select gate to program the storage elements. The pressure is also higher, but the higher Vsgd value carries the risk of boost potential leakage from the channel of forbidden storage elements that can cause program disturb.
저장 소자의 프로그래밍 속도는 그것의 터널 산화물에 걸친 전계에 의존하며, 이는 플로팅 게이트 아래의 기판 내의 채널의 전압과 플로팅 게이트의 전압 사이의 차에 비례한다. 보통, 제어 게이트 전압, Vpgm이 계단식으로 스텝 업되고, Vbl은 0V로 고정된다. 프로그래밍을 느리게 하기 위하여(Vth 분포를 조밀하게 하기 위하여), 더 작은 Vpgm 스텝 사이즈를 사용할 수 있다. 그러나, 이는 프로그램 펄스들과 검증 동작들의 수를 증가시키며, 그럼으로써 전체적인 프로그래밍 시간을 증가시킨다. Vpgm 스텝 사이즈를 변경하는 것 대신, 유효 Vpgm 스텝 사이즈(△Vpgm-effective)를 감소시키기 위하여, Vpgm 펄스들의 스텝들과 동일한 비율로(in lockstep with) Vbl을 증가시킬 수 있다. △Vpgm-effective=△Vpgm-(k x △Vbl)(여기서, k>1 이고 △Vpgm-effective<△Vpgm)라고 쓸 수 있다. 일반적으로, k 값은 약 1.4일 수 있다. △Vbl이 더 클 수록 결과적으로 △Vpgm-effective가 더 작아진다. 이 기법의 이점은 Vbl이 서로 다른 시간들에 저장 소자들의 서로 다른 서브세트들에 대해 스텝 업될 수 있고, 여기서 각각의 서브세트가 서로 다른 타겟 데이터 상태를 갖는다는 것이다. 따라서, 서로 다른 타겟 데이터 상태에 속하는 저장 소자들의 세트에 대해 서로 다른 프로그래밍 속도를 달성할 수 있다. 다른 한편으로, Vpgm 스텝 사이즈가 감소되면, 이것은 전체 프로그래밍 저장 소자들의 프로그래밍 속도에 영향을 준다. 등가의 더 작은 Vpgm 스텝 사이즈를 사용하는 것과 비교해 볼 때, 특정한 타겟 데이터 상태에 대해 Vbl을 한번에(at a time) 스텝 업함으로써, 프로그래밍을 완료하기 위해 요구되는 프로그램 펄스들의 총 수를 감소시키는 한편, 검증 동작들의 수를 동일하게 유지할 수 있고, 따라서 전체 프로그래밍 시간을 감소시킴으로써 성능이 향상된다. The programming speed of the storage element depends on the electric field across its tunnel oxide, which is proportional to the difference between the voltage of the floating gate and the voltage of the channel in the substrate under the floating gate. Usually, the control gate voltage Vpgm is stepped up stepwise, and Vbl is fixed at 0V. To slow programming (dense the Vth distribution), a smaller Vpgm step size can be used. However, this increases the number of program pulses and verify operations, thereby increasing the overall programming time. Instead of changing the Vpgm step size, one can increase Vbl in lockstep with steps of Vpgm pulses to reduce the effective Vpgm step size (ΔVpgm-effective). ΔVpgm-effective = ΔVpgm- (k × ΔVbl), where k> 1 and ΔVpgm-effective <ΔVpgm. In general, the k value may be about 1.4. The larger ΔVbl results in a smaller ΔVpgm-effective. The advantage of this technique is that Vbl can be stepped up for different subsets of storage elements at different times, where each subset has a different target data state. Thus, different programming speeds can be achieved for a set of storage elements belonging to different target data states. On the other hand, if the Vpgm step size is reduced, this affects the programming speed of the entire programming storage elements. Compared to using an equivalent smaller Vpgm step size, stepping up Vbl at a time for a particular target data state reduces the total number of program pulses required to complete programming, The number of verify operations can remain the same, thus improving performance by reducing the overall programming time.
Vbl의 동일 비율 증가(lockstep increase)는, 예를 들어, 공통 타겟 데이터 상태를 갖는, 그리고 아직 프로그래밍이 로크아웃되지 않은 저장 소자들의 주어진 서브세트에 대해, Vbl이 각각의 프로그램 펄스로 스텝 업될 수 있다는 것을 나타낸다. 프로그래밍이 로크 아웃된 저장 소자의 Vbl은 Vbl-lockout으로 설정된다.The lockstep increase of Vbl is, for example, that Vbl can be steped up with each program pulse for a given subset of storage elements having a common target data state and for which programming has not yet been locked out. Indicates. Vbl of the storage element whose programming is locked out is set to Vbl-lockout.
도 9a는 비트 라인 전압이 스텝 업되는 프로그래밍 기법을 도시한다. 모든 타겟 데이터 상태들의 저장 소자들에 대해 프로그래밍 패스가 단계(900)에서 시작한다. 단계(902-912)는 모든 타겟 데이터 상태들의 저장 소자들에 대해 개별적으로, 그리고 부분적으로 동시에, 수행된다. 단계(902)는 프로그래밍 중에 비트 라인 스텝 업이 없이 하나 이상의 프로그램-검증 동작들을 수행하는 것을 포함한다. 단계(904)에서, 제1 트리거 조건이 만족된다. 이는 예를 들어 하기에서 더 논의되는 것과 같이 Vpgm 레벨, 소정의 프로그램 펄스 수, 또는 비트 스캔에 근거한 것일 수 있다. 제1 트리거 조건은 공통 타겟 데이터 상태를 갖는 저장 소자들의 서브세트에 대해 비트 라인 스텝 업 루프를 시작하기 위한 조건을 나타낸다. 단계(906)는 프로그래밍 중에 비트 라인 스텝 업을 이용하여 하나 이상의 프로그램-검증 동작들을 수행하는 것을 포함한다. 단계(908)에서, 제2 트리거 조건이 만족된다. 이는, 예를 들어 하기에서 논의되는 것과 같이, Vpgm 레벨, 소정의 프로그램 펄스 수 또는 비트 스캔에 근거할 수 있다. 제2 트리거 조건은 공통 타겟 데이터 상태를 갖는 저장 소자들의 서브세트에 대해 비트 라인 스텝 업 루프를 정지시키기 위한 조건을 나타낸다. 단계(910)는 프로그래밍 중에 비트 라인 스텝 업 없이 하나 이상의 프로그램-검증 동작들을 수행하는 것을 포함한다. 이 경우에, 비트 라인은 로크아웃 레벨보다 낮은 최대 허용 레벨에 고정될 수 있다. 관련된 타겟 데이터 상태의 저장 소자들에 대해 프로그래밍-검증 동작들은 단계(912)에서 종료된다. 실제는, 검증 레벨에 도달한 저장 소자들이 추가의 프로그래밍으로부터 로크아웃되어, 특정 타겟 데이터 상태를 갖는 다른 저장 소자들이 계속 프로그램되는 반면, 특정 타겟 데이터 상태를 갖는 일부 저장 소자들은 프로그래밍으로부터 로크아웃될 수 있다. 일부 경우에, 관련된 타겟 데이터 상태의 모든 저장 소자들이 단계(906)에서 로크 아웃될 때와 같이 단계(910)이 수행되지 않는다. 도 9a의 프로그래밍 기법은 하기에서 더 자세히 논의된다. 9A illustrates a programming technique in which the bit line voltage is stepped up. The programming pass begins at step 900 for storage elements of all target data states. Steps 902-912 are performed separately and partially simultaneously for storage elements of all target data states. Step 902 includes performing one or more program-verify operations without bit line step up during programming. In step 904, the first trigger condition is met. This may be based, for example, on the Vpgm level, a predetermined number of program pulses, or a bit scan, as discussed further below. The first trigger condition represents a condition for starting a bit line step up loop for a subset of storage elements having a common target data state. Step 906 includes performing one or more program-verify operations using bit line step up during programming. In
도 9b는, 도 9a의 프로그래밍 기법의 예로서, 프로그램 펄스 수의 함수로서 검증 동작들을 겪는 데이터 상태들을 도시한다. 프로그래밍 동안, 모든 저장 소자들이 함께 프로그램되나, A-상태 검증 레벨이 B-상태 검증 레벨보다 낮고 B-상태 검증 레벨이 C-상태 검증 레벨보다 낮으므로, 하위 타겟 상태들에 속한 저장 소자들은 상위 타겟 상태에 속한 저장 소자들에 대한 것보다 그 타겟 레벨에 더 먼저 도달한다. 따라서, 프로그래밍 시간을 절약하기 위하여, 상위 타겟 상태에 대한 검증 동작이 제1 프로그램 펄스 그 자체에서부터 시작할 필요가 없다. 일반적으로, B-상태 검증 동작들이 초기의 몇몇 프로그램 펄스들에 대해 생략(skip)될 수 있고, C-상태 검증 동작들이 다음의 프로그램 펄스들에 대해 생략될 수 있다. 9B illustrates data states undergoing verify operations as a function of the number of program pulses, as an example of the programming technique of FIG. 9A. During programming, all storage elements are programmed together, but since the A-state verify level is lower than the B-state verify level and the B-state verify level is lower than the C-state verify level, the storage elements belonging to the lower target states are It reaches its target level earlier than for the storage elements in the state. Thus, to save programming time, the verify operation for the higher target state does not have to start from the first program pulse itself. In general, B-state verify operations may be skipped for some initial program pulses and C-state verify operations may be omitted for subsequent program pulses.
예를 들어, Vbl이 여기에서 설명된 것과 같이 스텝 업되지 않으나, 프로그래밍 동안에 0V에 고정이고, △Vpgm=△Vpgm-effective=0.3V일 때, 순서(950)이 발생한다. 먼저, A-상태 저장 소자들이 검증되고, 그후 A-상태 저장 소자들 및 B-상태 저장 소자들이 검증되고, 그후 B-상태 저장 소자들 및 C-상태 저장 소자들이 검증되고, 그리고 마지막으로 C-상태 저장 소자들이 검증된다. 이 순서가 제공되는 3 개의 순서들(950, 960, 970)의 대부분의 프로그래밍 시간을 소비한다. 이 특정한 예에서, 우연히도, A-, B-, 및 C- 상태 저장 소자들이 검증되는 프로그래밍 펄스들의 세트가 없다는 것에 주목하여야한다. 다른 Vpgm 스텝 사이즈 또는 타 디바이스 파라미터들에서의 몇몇 변화들을 갖는다면, 이러한 경우가 되지 않을 수 있다. 즉, 순서(960 및 970)에 도시된 것과 같이, A-, B-, 및 C- 상태 저장 소자들이 검증되는 하나 이상의 프로그래밍 펄스들이 있을 수 있다. For example, when Vbl is not stepped up as described herein, but fixed at 0V during programming, and ΔVpgm = ΔVpgm-effective = 0.3V, an
프로그래밍 동안에 모든 타겟 데이터 상태들에 대해 Vbl이 여기에서 설명된 것과 같이 스텝 업될 때 순서(960)이 발생하며, 여기서, 예를 들어, △Vpgm=0.4V이고 △Vpgm-effective=0.3V이도록 △Vbl이 선택된다. 먼저, A-상태 저장 소자들이 검증되고, 이후 A- 및 B-상태 저장 소자들이 검증되고, 이후 B- 및 C-상태 저장 소자들이 검증되고, 그리고 마지막으로 C-상태 저장 소자들이 검증된다. 이 순서는 순서(950)에 비해 프로그래밍 시간을 단축시킨다. 순서(950) 동안 내내 Vpgm=△Vpgm-effective=0.3V인 것과 비교하여, 순서(960)에서는 비트 라인 스텝 업 전과 후 모두에 △Vpgm=△Vpgm-effective=0.4V이므로, 저장 소자들은 순서(950)에서보다 순서(960)에서 더 빠르게 프로그램된다. 그러나, 순서(950) 및 (960) 둘 모두에서 공통 타겟 데이터 상태를 갖는 저장 소자들의 프로그래밍 동안 △Vpgm-effective=0.3V이므로, 동일한 Vth 분포 폭들이 두 순서들 모두에서 달성될 수 있다. During programming, an
프로그래밍 동안, 최고 타겟 데이터 상태(예를 들어, C-상태)를 제외한 모든 타겟 데이터 상태들에 대해 Vbl이 여기에서 설명된 것과 같이 스텝 업 될 때, 순서(970)가 발생하며, 여기서 △Vpgm=0.4V이고, △Vbl은 △Vpgm-effective=0.3V이도록 선택된다. 먼저, A-상태 저장 소자들이 검증되고, 이후, A- 및 B- 상태 저장 소자들이 검증되고, 이후 A-, B-, 및 C-상태 저장 소자들이 검증되고, 이후 B- 및 C-상태 저장 소자들이 검증되고, 그리고 마지막으로 C-상태 저장 소자들이 검증된다. 저장 소자들의 프로그래밍 동안 C-상태 저장 소자들에 대해 △Vpgm=△Vpgm-effective=0.4V이므로, 이 순서는 순서(960)에 비해 프로그래밍 시간을 더 단축시키며, 따라서 C-상태 저장 소자들의 프로그래밍 시간이 감소된다. 일반적으로, 주어진 프로그램 펄스에 대해 더 많은 검증 동작들이 수행될 때, 프로그램 펄스들의 수 및 관련된 셋업 시간이 단축되므로, 프로그래밍 시간이 단축된다. During programming, an
언급된 바와 같이, 최고의 타겟 데이터 상태에 대해 보통 더 넓은 Vth 분포가 용인될 수 있으며, 따라서 프로그래밍 시간은 최고의 타겟 데이터 상태에 대해 Vbl을 스텝 업하지 않음으로써 더 단축될 수 있다. 구체적으로, Vbl이 스텝 업 되지 않을 때 Vth 분포의 상부 꼬리가 더 높을 것이다. 그러나, 최저 상태 상부 꼬리와 최고 상태 하부 꼬리 사이의 갭으로서 정의되는 Vth 윈도우의 관점에서 이는 그리 중요한 것이 아니다. 최고 타겟 데이터 상태에 대해 Vbl을 스텝 업하지 않는 것의 또 다른 이점은 최고 상태 저장 소자들을 프로그램하는데 필요한 최고 Vpgm이 Vbl이 스텝 업될 때보다 낮다는 것이다. 더 높은 Vpgm은 E-상태 저장 소자들에 대해 증가된 프로그램 방해를 야기할 수 있다. 따라서, 최고 상태 비트 라인 스텝 업을 디스에이블시키는 것이 프로그램 방해 관점에서 바람직할 수 있다. As mentioned, usually a wider Vth distribution can be tolerated for the best target data state, so programming time can be further shortened by not stepping up Vbl for the best target data state. Specifically, the upper tail of the Vth distribution will be higher when Vbl is not stepped up. However, this is not very important in terms of the Vth window defined as the gap between the lowest state upper tail and the highest state lower tail. Another advantage of not stepping up Vbl for the highest target data state is that the highest Vpgm needed to program the highest state storage elements is lower than when Vbl is stepped up. Higher Vpgm can cause increased program disturb for E-state storage elements. Thus, disabling the highest state bit line step up may be desirable in terms of program disturb.
이 예는 4-상태 메모리 디바이스와 관련되나 본 개념은 8 또는 16 상태와 같은 추가의 상태들로 확장될 수 있음에 주목하여야 한다.Note that this example relates to a four-state memory device but that the concept can be extended to additional states, such as the 8 or 16 state.
도 10은 도 9b의 순서(960)에 대한 프로그램 펄스 수의 함수로서의 프로그램-검증 동작들을 도시한다. 일반적으로, 프로그램 동작은 선택된 워드 라인에 펄스 트레인을 인가하는 것을 수반할 수 있고, 여기서 펄스 트레인은 프로그램 펄스들 다음에 하나 이상의 검증 펄스들을 포함한다. 프로그램 펄스 및 후속되는 하나 이상의 검증 펄스들의 각각의 조합은 프로그램-검증 동작 또는 반복(iteration)을 형성한다. 프로그램 펄스는 임의의 개수의 서로 다른 파형 형상들을 가질 수 있음에 주목하여야 한다. 정현파가 도시되었으나, 다중레벨 형상 또는 램프 형상과같은 다른 형상들도 가능하다. 펄스 트레인은 일반적으로 고정 스텝 사이즈를 사용하여, 진폭에 있어서 계단식으로 증가하는 프로그램 펄스들을 일반적으로 포함하나, 변하는 스텝 사이즈가 또한 사용될 수 있다. 다중-패스 프로그래밍 동작의 각각의 프로그래밍 패스에서, 초기 Vpgm 레벨에서 시작하여 최대 허용 Vpgm 레벨 미만인 최종 Vpgm 레벨에서 종료되는 새로운 펄스 트레인이 적용될 수 있다. 초기 Vpgm 레벨들은 서로 다른 프로그래밍 패스들에서 동일하거나 서로 다를 수 있다. 최종 Vpgm 레벨들이 또한 서로 다른 프로그래밍 패스들에서 동일하거나 서로 다를 수 있다. 스텝 사이즈가 서로 다른 프로그래밍 패스들에서 동일하거나 서로 다를 수 있다. 일부 경우들에, Vth 분포 폭을 축소시키기 위하여 더 작은 스텝 사이즈가 최종 프로그래밍 패스에서 사용된다.FIG. 10 illustrates program-verify operations as a function of program pulse number for
펄스 트레인(1000)은 프로그래밍을 위해 선택된 워드 라인 및 비휘발성 저장 소자들의 관련 세트에 인가되는 일련의 프로그램 펄스들(1005, 1010, 1015, 1020, 1025, 1030, 1035, 1040, 1045, 1050, 1055, 1060, 1065, 1070, 1075)을 포함한다.검증되고 있는 타겟 데이터 상태들에 근거하여, 예를 들어 하나, 둘 또는 세 개의 검증 레벨들이 각각의 프로그램 펄스 다음에 제공된다. 0V가 프로그램 펄스와 검증 펄스 사이에서 WLn에 인가될 수 있다. 예를 들어, A-상태 검증 펄스(예컨대, 파형(1006))가 제1, 제2 및 제3 프로그램 펄스들(1005, 1010, 1015) 각각의 다음에 인가될 수 있다. A- 및 B-상태 검증 펄스들(예를 들어, 파형(1021))은 제4, 제5, 및 제6 프로그램 펄스들( 1020, 1025, 및 1030) 각각의 다음에 인가될 수 있다. A-, B- 및 C-상태 검증 펄스들(예를 들어, 파형(1036))은 제7 및 제8 프로그램 펄스들(1035, 1040) 각각의 다음에 인가될 수 있다. B- 및 C-상태 검증 펄스들(예를 들어, 파형(1046))은, 제9, 제10, 및 제11 프로그램 펄스들(1045, 1050 및 1055) 각각의 다음에 인가될 수 있다. 마지막으로, C-상태 검증 펄스(예를 들어, 파형(1061))가 제12, 제13, 제14 및 제15 프로그램 펄스들(1060, 1065, 1070 및 1075) 각각의 다음에 인가될 수 있다. The
도 11a는 서로 다른 데이터 상태들에 대한 프로그램 펄스 수의 함수로서 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 속하는 저장 소자들에 대해 공통 스텝 사이즈가 사용된다. 파형(1100, 1102, 1104)은 A-, B-, 및 C-상태에 대한 비트 라인 전압을 각각 나타낸다. 이 예에서, Vbl은 고정 스텝 사이즈 △Vbl를 사용하여 V1, V2, V3, V4, V5 및 Vbl-max(최대 허용 레벨)로 스텝 업된다. Vbl-lockout은 로크아웃 비트 라인 전압을 표시하며, 이는 Vbl-max보다 높다. 일부 경우에, 특정 타겟 상태의 모든 저장 소자들이 Vbl-max이 도달되기 전에 로크아웃될 수 있고 따라서 Vbl-max는 도달될 수 있거나 도달될 수 없는 세이프가드(safeguard)이다. 11A shows the step up of the bit line voltage as a function of the number of program pulses for different data states, where a common step size is used for storage elements belonging to all data states. Waveforms 1100, 1102, and 1104 represent bit line voltages for the A-, B-, and C-states, respectively. In this example, Vbl is stepped up to V1, V2, V3, V4, V5 and Vbl-max (maximum permissible level) using the fixed step size DELTA Vbl. Vbl-lockout indicates the lockout bit line voltage, which is higher than Vbl-max. In some cases, all storage elements in a particular target state can be locked out before Vbl-max is reached and thus Vbl-max is a safeguard that can or may not be reached.
각각의 타겟 데이터 상태의 저장 소자들에 대해, 비트 라인 스텝 업의 시작 및/또는 비트 라인 스텝 업의 종료가 서로 다른 트리거 조건들에 근거하여 설정될 수 있다. 비적응적(non-adaptive) 일 기법에서, 각각의 타겟 데이터 상태에 대해 비트 라인 스텝 업 제어 루프의 시작 및 종료를 위해 고정 Vpgm 펄스 수가 설정된다. 예를 들어, 메모리 디바이스의 ROM 퓨즈 파라미터는 BL-램프-시작-A=2, BL-램프-종료-A=7, BL-램프-시작-B=5, BL-램프-종료-B=10, BL-램프-시작-C=8 및 BL-램프-종료=13이다. 각각의 데이터 상태는 그 고유의 비트 라인 스텝 업 제어 루프를 가진다. 이 예에서, 요구되는 Vth 분포 폭이 각각의 데이터 상태에 대해 동일하므로, 각각의 비트 라인 스텝 업 제어 루프에서 프로그램 펄스들의 수는 동일하다. 더 넓은 Vth 분포 폭이 허용가능하다면, 비트 라인 스텝 업 제어 루프는, 더 적은 프로그램 펄스들을 갖고, 더 작을 수 있다. For storage elements in each target data state, the start of the bit line step up and / or the end of the bit line step up may be set based on different trigger conditions. In one non-adaptive technique, a fixed Vpgm pulse number is set for the start and end of the bit line step up control loop for each target data state. For example, the ROM fuse parameters of a memory device are BL-lamp-start-A = 2, BL-lamp-end-A = 7, BL-lamp-start-B = 5, BL-lamp-end-B = 10 BL-lamp-start-C = 8 and BL-lamp-end = 13. Each data state has its own bit line step up control loop. In this example, since the required Vth distribution width is the same for each data state, the number of program pulses in each bit line step up control loop is the same. If a wider Vth distribution width is acceptable, the bit line step up control loop may be smaller, with fewer program pulses.
비트 라인 스텝 업 시작 및 종료에 사용되는 Vpgm 펄스 수들은 상대적으로 적은 데이터 상태 저장 소자들이 그 데이터 상태의 비트 라인 스텝 업 제어 루프 전 또는 후에 검증 레벨에 도달하고 그리고 로크아웃 되도록 선택될 수 있으며, 한편 비트 라인 스텝 업 제어 루프 동안에 저장 소자들의 대다수가 검증 레벨에 도달하고 로크 아웃될 것이다. 비트 라인 스텝 업 제어 루프 전 또는 후에 적은 수의 저장 소자들이 검증 레벨에 도달하고 로크 아웃될 수 있게 하는 것은 Vth 분포를 크게 넓히지 않는다. 그러나, 이는 △Vpgm-effective가 낮아지는 시간을 단축시켜 주며, 따라서 전체 프로그래밍 시간이 불필요하게 연장되지 않는다. The number of Vpgm pulses used to start and end the bit line step up may be selected such that relatively few data state storage elements reach the verification level and lock out before or after the bit line step up control loop for that data state. During the bit line step up control loop, the majority of storage elements will reach the verify level and lock out. Enabling a small number of storage elements to reach the verify level and lock out before or after the bit line step up control loop does not significantly widen the Vth distribution. However, this shortens the time that ΔVpgm-effective becomes low, and thus the overall programming time is not unnecessarily extended.
도 11b는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 시작하기 위한 트리거 조건을 도시한다. 예시적인 프로그래밍 패스에서, A-상태 저장 소자들은 E-상태 분포(1110)로부터 시작하여 VvaL을 사용하여 프로그램된다. 하나 이상의 프로그램 펄스들 후, 분포(1112)는 A-상태 저장 소자들을 나타낸다. 분포(1112)의 부분(1114)은 Vth>VvaL인 A-상태 저장 소자들을 나타낸다. 11B shows a trigger condition for initiating a bit line step up loop for A-state storage elements. In an exemplary programming pass, A-state storage elements are programmed using VvaL starting from
도 11c는 A-상태 저장 소자들에 대해 비트 라인 스텝 업 루프를 정지시키기 위한 트리거 조건을 도시한다. 하나 이상의 추가적인 프로그램 펄스들 후, 분포(1120)가 A-상태 저장 소자들을 나타낸다. 분포(1120)의 부분(1116)은 Vth<VvaL인 A-상태 저장 소자들을 나타낸다. 동시에 프로그램될 수 있는 다른 타겟 상태들의 저장 소자들의 Vth 분포는 도시되지 않는다. 11C shows a trigger condition for stopping the bit line step up loop for the A-state storage elements. After one or more additional program pulses,
위에서 기술된 비적응적 기법에 대한 대안으로서, 비트 라인 스텝 업 루프의 시작 및/또는 종료를 설정하기 위해 적응적 기법이 사용될 수 있다. 이는 서로 다른 워드 라인들 상에서와 같은, 동일한 메모리 디바이스 내의 서로 다른 저장 소자들의 세트들에 대해 시작 및/또는 종료 시간이 달라질 수 있게 한다. 또한, 예컨대, 시간에 따른 성능 변화에 기초하여, 프로그램-소거 사이클이 축적됨에 따라, 또는 온도 변화와 같은 서로 다른 환경 조건들에 기초하여, 저장 소자들의 동일한 세트에 대해 시작 및/또는 종료 시간이 달라질 수 있다.As an alternative to the non-adaptive technique described above, an adaptive technique may be used to set the start and / or end of the bit line step up loop. This allows the start and / or end time to be different for different sets of storage elements within the same memory device, such as on different word lines. Furthermore, for example, based on a change in performance over time, as the program-erase cycle accumulates, or based on different environmental conditions such as temperature changes, the start and / or end times for the same set of storage elements may be reduced. Can vary.
예를 들어, 고정 프로그램 펄스 수를 사용하는 대신, 특정 검증 레벨 초과 또는 미만인 저장 소자들의 최소 수에 근거하여 비트 라인 스텝 업 루프를 시작 및/또는 종료할 수 있다. 예컨대, 영역(1114)로 나타낸 저장 소자들은 관련된 저장 소자에 대해 Vth>VvaL인지 결정하기 위하여 각각의 비트 라인의 감지 증폭기가 판독되는 비트 스캔 절차에의해 검출될 수 있다. 비트들, 예를 들어, A-상태 저장 소자들의 최소 수가 VvaL을 초과한 것으로 검출될 때, A-상태에 대한 비트 라인 스텝 업 루프가 시작될 수 있다. 마찬가지로, 비트 라인 스텝 업 루프는 그 Vth가 VvaL 미만인 A-상태 비트들의 수가 특정 수보다 작을 때(또는 Vth>VvaL인 A-상태 비트들의 수가 특정 수를 초과할 때) 정지할 수 있다. 비트 라인 스텝 업 시작 또는 정지 결정이 이루어지는, 비트-스캔 동안의 비트들의 특정 수는 다른 ROM 퓨즈 파라미터에 의해 제어될 수 있다. 비트-스캔을 그들 각각의 검증 레벨들에서 수행함으로써 다른 상태들에 대해 유사한 결정들이 이루어질 수 있다. For example, instead of using a fixed program pulse number, the bit line step up loop can be started and / or terminated based on the minimum number of storage elements above or below a particular verify level. For example, the storage elements represented by
비트 라인 스텝 업을 정지시키기 위한 다른 트리거 조건이 아직 만족되지 않았을 때 Vbl이 과도하게 높은 레벨로 스텝 업되지 않도록 최대 허용(maximum allowed) Vbl(예를 들어, 도 11a의 Vbl-max)을 강제하는 것이 또한 가능하다.Forces a maximum allowed Vbl (e.g., Vbl-max in FIG. 11A) to prevent Vbl from stepping up to an excessively high level when other trigger conditions to stop the bit line step up have not yet been met. It is also possible.
또 다른 기법에서, 비트 라인 스텝 업 루프는, 각각의 데이터 상태에 대해,비트-스캔 을통과한 후, 그리고, 특정 수의 추가적인 프로그램 펄스들의 완료 후 시작될 수 있다. 마찬가지로, 비트 라인 스텝 업이, 각각의 데이터 상태에 대해, 비트-스캔 패스 후, 그리고 특정 수의 추가적인 프로그램 펄스들의 완료 후 종료될 수 있다. In another technique, the bit line step up loop may be started for each data state after passing through the bit-scan and after completion of a certain number of additional program pulses. Similarly, the bit line step up may end for each data state after the bit-scan pass and after completion of a certain number of additional program pulses.
또 다른 기법에서, 일 데이터 상태에 대한 비트 라인 스텝 업 루프는, 다른 하위 데이터 상태에 대한 비트-스캔을 통과한 후에, 그리고 특정 수의 추가적인 프로그램 펄스들의 완료 후 시작될 수 있다. 예를 들어, B-상태 저장 소자들에 대한 비트 라인 스텝 업 루프는, A-상태 저장 소자들에 대해 VvaL에서 비트-스캔을 통과한 후, 그리고 (도 11a에 따른 3개의 프로그램 펄스들과 같은) 특정 수의 추가적인 프로그램 펄스들의 완료 후 시작될 수 있다. 유사한 방법론이 비트 라인 스텝 업을 정지시키기 위해 사용될 수 있다. 그러한 방법을 이용하여, 단지 최저의 상태에 대해서만 비트-스캔 동작들을 수행함으로써 비트 라인 스텝 업의 시작 및 정지가 모든 데이터 상태들에 대해 적응적으로 만들어질 수 있다. In another technique, the bit line step up loop for one data state may begin after passing a bit-scan for another lower data state and after completion of a certain number of additional program pulses. For example, a bit line step up loop for B-state storage elements may pass through a bit-scan at VvaL for A-state storage elements, and then (such as three program pulses according to FIG. 11A). ) Can be started after completion of a certain number of additional program pulses. Similar methodology can be used to stop the bit line step up. Using such a method, the start and stop of bit line step up can be made adaptive for all data states by performing bit-scan operations only for the lowest state.
임의의 특정 타겟 데이터 상태에 대해 언제 비트 라인 스텝 업 루프를 시작 및/또는 종료할지를 결정하기 위해 위의 방법들의 임의의 조합이 또한 사용될 수 있다.Any combination of the above methods may also be used to determine when to start and / or end a bit line step up loop for any particular target data state.
제공된 예들에서, 저장 소자 메모리 디바이스 마다 4-상태, 2-비트의 구현예가 도시된다. 그러나, 본 개념들이, 8개 또는 16개 상태 디바이스들에 대해서도 사용될 수 있다. 그러나, 추가의 비트 라인 전압들을 동시에 발생시키는 것이 필요할 수 있다. In the examples provided, a four-state, two-bit implementation is shown per storage element memory device. However, the present concepts may be used for eight or sixteen state devices. However, it may be necessary to generate additional bit line voltages simultaneously.
도 12a는 도 11a와 일치하는, A-상태 저장 소자들에 대한 프로그램 펄스 수에 따른 프로그래밍 레이트를 도시한다. 언급된 바와 같이, 프로그램 펄스 당 저장 소자의 Vth 변화(△Vth/pulse) 면에서, 프로그래밍 속도 또는 레이트는 Vbl의 함수이다. 비트 라인 바이어스가 인가되지 않으면(Vbl=0V), △Vth/pulse=R2, 즉 더 높은 레이트이다. Vpgm 스텝 업과 같은 비율(lockstep)로 일정한 비트 라인 스텝 업이 적용되면, △Vth/pulse=R1<R2(여기서, R1은 더 낮은 레이트)이다. 도 11a의 예에서, A-상태 저장 소자들에 속한 비트 라인들이 제2 프로그램 펄스에서 스텝 업을 시작하며, 따라서 제2 프로그램 펄스에서 A-상태 저장 소자들에 대해 R2로부터 R1으로의 천이가 발생한다. 마찬가지로, A-상태 저장 소자들에 대한 비트 라인 스텝 업이 8번째 프로그램 펄스에서 정지되고(최종 스텝 업은 7번째 프로그램 펄스에 있음); 따라서 8번째 프로그램 펄스에서 A-상태 저장 소자들에 대해 R1으로부터 다시 R2로의 천이가 발생한다. 실제로, △Vth/pulse는 간결성을 위하여 도시된 스텝 변화를 보이기 보다는 하나 이상의 프로그램 펄스들에 대해 점진적으로 천이할 수 있다. 9번재 프로그래밍 펄스에서, A-상태 저장 소자들이 로크아웃되고 따라서 프로그래밍 속도가 0으로 떨어진다.FIG. 12A shows the programming rate according to the number of program pulses for A-state storage elements, consistent with FIG. 11A. As mentioned, in terms of the Vth change (ΔVth / pulse) of the storage element per program pulse, the programming speed or rate is a function of Vbl. If no bit line bias is applied (Vbl = 0V), then Vth / pulse = R2, i.e., a higher rate. If a constant bit line step up is applied at the same lockstep as Vpgm step up, then DELTA Vth / pulse = R1 <R2 (where R1 is the lower rate). In the example of FIG. 11A, the bit lines belonging to the A-state storage elements start stepping up at the second program pulse, so a transition from R2 to R1 occurs for the A-state storage elements at the second program pulse. do. Similarly, the bit line step up for the A-state storage elements is stopped at the eighth program pulse (the final step up is at the seventh program pulse); Thus, a transition from R1 to R2 occurs for the A-state storage elements at the eighth program pulse. In practice, ΔVth / pulse may gradually transition for one or more program pulses rather than show the step change shown for brevity. At the 9th programming pulse, the A-state storage elements are locked out and thus the programming speed drops to zero.
도 12b는 도 11a와 일치하는, B-상태 저장 소자들에 대한 프로그램 펄스 수에 따른 프로그래밍 레이트를 도시한다. 도 11a의 예에서, B-상태 저장 소자들에 대해, 5번째 프로그램 펄스에서 R2로부터 R1으로의 천이가 발생하고, 그후 11번째 프로그램 펄스에서 R2으로부터 R1으로의 천이가 발생한다. 12번째 프로그램 펄스에서, B-상태 저장 소자들이 로크아웃되고, 따라서 프로그래밍 속도가 0으로 떨어진다.FIG. 12B shows the programming rate according to the number of program pulses for B-state storage elements, consistent with FIG. 11A. In the example of FIG. 11A, for the B-state storage elements, a transition from R2 to R1 occurs at the fifth program pulse, followed by a transition from R2 to R1 at the eleventh program pulse. At the 12th program pulse, the B-state storage elements are locked out, so the programming speed drops to zero.
도 12c는 도 11a와 일치하는, C-상태 저장 소자들에 대한 프로그램 펄스 수에 따른 프로그래밍 레이트를 도시한다. 도 11a의 예에서, C-상태 저장 소자들에 대해, 8번째 프로그램 펄스에서 R2로부터 R1으로의 천이가 발생하고, 그후 14번째 프로그램 펄스에서 R2로부터 R1으로의 천이가 발생한다. 15번째 프로그램 펄스 후, 프로그래밍이 종료되고 따라서 C-상태 저장 소자들을 위한 프로그램 속도가 0으로 떨어진다. FIG. 12C shows the programming rate according to the number of program pulses for the C-state storage elements, consistent with FIG. 11A. In the example of FIG. 11A, for the C-state storage elements, a transition from R2 to R1 occurs at the eighth program pulse, followed by a transition from R2 to R1 at the 14th program pulse. After the fifteenth program pulse, programming ends and thus the program rate for the C-state storage elements drops to zero.
도 13은 서로 다른 데이터 상태들에 대해 프로그램 펄스 수에 따른 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 대해, 작은 스텝 사이즈, 그후 더 큰 스텝 사이즈, 그 후 더 작은 스텝 사이즈가 사용된다. 도 11a의 예에서, Vbl은 고정 스텝 사이즈를 사용하여(즉, 고정 레이트에서) 스텝 업되었다. 이 기법에서, 서로 다른 비트 라인 스텝 업 레이트들이 사용된다. 제1의 작은 비트 라인 스텝 업 레이트를 사용하고 그후 제2의 더 큰 비트 라인 스텝 업 레이트를, 그후 제3의 더 작은 비트 라인 스텝 업 레이트를 이용하는 것이 유용할 수 있다. 제3 비트 라인 스텝 업 레이트는 제2 비트 라인 스텝 업 레이트보다 작고, 제1 비트 라인 스텝 업 레이트와 동일할 수 있다. 이 기법은 가우시안 분포에 따라 저장 소자들의 대부분이 타겟 검증 레벨 및 로크아웃 조건에 도달하고 있을 때 프로그래밍을 가장 느려지게 한다. 주어진 워드 라인 상의 저장 소자들에 대한 본래의 프로그램된 Vth 분포는 일반적으로 특성상 가우시안 분포이며, 따라서 저장 소자들의 대부분의 Vth가 분포의 중앙 근처에서 발생하고 반면에 더 적은 셀들의 Vth는 가우시안 분포의 하부 또는 상부 꼬리들에 존재한다. Figure 13 shows the step up of the bit line voltage according to the number of program pulses for different data states, where for all data states a smaller step size, then a larger step size, and then a smaller step size Used. In the example of FIG. 11A, Vbl was stepped up using a fixed step size (ie at a fixed rate). In this technique, different bit line step up rates are used. It may be useful to use the first small bit line step up rate and then use the second larger bit line step up rate and then the third smaller bit line step up rate. The third bit line step up rate may be less than the second bit line step up rate and may be equal to the first bit line step up rate. This technique causes the slowest programming when most of the storage elements are reaching the target verify level and lockout conditions, depending on the Gaussian distribution. The original programmed Vth distribution for storage elements on a given word line is generally a Gaussian distribution in nature, so that most of the Vth of the storage elements occur near the center of the distribution while Vth of fewer cells are at the bottom of the Gaussian distribution. Or in the upper tails.
따라서, 주어진 타겟 데이터 상태에 대해, 저장 소자들의 대부분이, 가우시안 분포의 피크에서, 동일한 프로그램 펄스 수에 가깝게 로크 아웃될 것이며, 그러므로 이제 최고의 비트 라인 스텝 업 레이트를 사용하여 프로그래밍을 최대한 느려지게 함으로써 최고의 이득 대 비용 비율을 달성할 수 있다. 이점은 Vth 분포를 좁히는 것이고 비용은 프로그래밍 시간의 증가이다. 가우시안 분포의 하부 및 상부 꼬리에 있는 저장 소자들은 저장 소자들 대부분이 로크아웃될 프로그램 펄스와는 거리가 먼 특정 프로그램 펄스 수들에서 로크 아웃될 것이다. 이 경우에, 최고의 이득 대 비용 비율은 그 특정 프로그램 펄스들 동안 낮은(그러나, 0이 아닌) 비트 라인 스텝 업 레이트에 의해 달성될 수 있다. 가우시안 분포의 매우 낮은 그리고 매우 높은 꼬리들에 있는 저장 소자들은, 저장 소자들의 대부분이 로크(lock)될 프로그램 펄스와는 더 먼 다른 프로그램 펄스 수들에서 로크 아웃될 것이다. 이 경우에, 그 다른 프로그램 펄스들 동안 비트 라인 스텝 업을 하지 않음으로써 최고의 이득 대 비용 비율이 달성될 수 있다.Thus, for a given target data state, most of the storage elements will be locked out close to the same number of program pulses, at the peak of the Gaussian distribution, and therefore now by using the highest bit line step up rate to make the programming as slow as possible A gain-to-cost ratio can be achieved. The advantage is to narrow the Vth distribution and the cost is an increase in programming time. Storage elements in the lower and upper tails of the Gaussian distribution will lock out at certain program pulse numbers where most of the storage elements are far from the program pulse to be locked out. In this case, the best gain-to-cost ratio can be achieved by a low (but nonzero) bit line step up rate during those particular program pulses. Storage elements at the very low and very high tails of the Gaussian distribution will lock out at different program pulse numbers farther than the program pulse to which most of the storage elements will be locked. In this case, the best gain-to-cost ratio can be achieved by not performing bit line step up during those other program pulses.
예를 들어, 파형(1300, 1302, 1304)은 각각 A-, B-, 및 C- 상태 저장 소자들에 대한 Vbl을 나타낸다. 각각의 파형은 비트 라인 레벨(V1', V2', V3', V4', V5' 및 Vbl-max)을 포함한다. Vbl이 V1' 및 V2'로 설정될 때 스텝 업 레이트 또는 스텝 사이즈는 상대적으로 작다. 마찬가지로, Vbl이 V5' 및 Vbl-max로 설정될 때 스텝 업 레이트 또는 스텝 사이즈가 또한 상대적으로(그리고 선택적으로, 동일하게) 작다. Vbl이 V3' 및 V4'로 설정될 때 스텝 업 레이트 또는 스텝 사이즈는 상대적으로 크다. For example,
도 14는 서로 다른 데이터 상태들에 대한 프로그램 펄스 수에 따른 비트 라인 전압의 스텝 업을 도시하며, 여기서 하위 데이터 상태들에 대해 더 큰 스텝 사이즈가 사용되고, 그리고 최고의(highest) 데이터 상태에 대해 작은 스텝 사이즈가 사용된다. 이 예는 더 작은 Vbl 스텝 사이즈가 최고의 상태(이 예에서 C-상태)에 대해 사용되는 것을 제외하고는 도 11a의 것과 유사하다. 이 경우에, Vbl은 각각의 타겟 데이터 상태와 관련된 스텝 사이즈를 사용하여 스텝 업되며, 여기서 서로 다른 각각의 스텝 사이즈들은 가능한 타겟 데이터 상태들의 세트의 적어도 두 개의 서로 다른 각각의 타겟 데이터 상태들과 관련된다. 예를 들어, 일 Vbl 스텝 업 레이트가 A- 및 B-상태 저장 소자들에 대해 사용될 수 있고, 다른, 하위 Vbl 스텝 업 레이트가 C-상태 저장 소자들에 대해 사용될 수 있다. 더 작은 Vbl 스텝 업 레이트의 사용은 결과적으로 더 넓은 Vth 분포의 비용으로 더 빠른 프로그래밍이 되게 한다. Figure 14 shows the step up of the bit line voltage according to the number of program pulses for different data states, where a larger step size is used for the lower data states, and a smaller step for the highest data state. Size is used. This example is similar to that of FIG. 11A except that a smaller Vbl step size is used for the highest state (C-state in this example). In this case, Vbl is stepped up using the step size associated with each target data state, where each different step size is associated with at least two different respective target data states of the set of possible target data states. do. For example, one Vbl step up rate may be used for A- and B-state storage elements and another, lower Vbl step up rate may be used for C-state storage elements. The use of smaller Vbl step up rates results in faster programming at the expense of a wider Vth distribution.
파형(1400, 1402 및 1404)은 각각 A-, B-, 및 C-상태 저장 소자들에 대한 Vbl을 나타낸다. 여기서, C-상태에 대해 파형(1404)에서 V1, V2, V3, V4, V5 의 Vbl 레벨들은 도 11a의 것과 동일할 수 있다. 파형(1400, 1402)에서 각각, V1", V2", V3" 및 V4"의 Vbl 레벨들이 A- 및 B-상태들에 대해 사용된다. 언급된 바와 같이, 비트 라인 스텝 업이 없는 것은 결과적으로, 최고의 상태에 대해 더 넓은 Vth 분포가 되게 하고, 이는 일반적으로 프로그래밍 시간을 단축시키기 위한 허용가능한 트레이드오프이다. 반면, 더 큰 Vbl 스텝 업 레이트는 결과적으로 Vth 분포를 더 조밀하게 하나, 프로그래밍 시간을 더 길어지게 한다. 본 예시는 최고의 상태에 대해 비트 라인 스텝 업을 사용하지 않는 것과, 하위 상태들(예를 들어, A-, B-, 및 C- 상태들)에 대해 더 큰 비트 라인 스텝 업을 사용하는 것 사이의 절충(compromise)을 제공한다. 이는 결과적으로, 비트 라인 스텝 업이 사용되지 않는 경우와 비교하여, 최고의 상태에 대해 어느 정도 더 좁은 Vth 분포가 제공된다는 점에서 균형이 되게 한다. 최고의 상태에 대해 Vbl 스텝 업이 사용되지 않았다면 프로그래밍 시간이 더 길지만, 최고의 상태에 대해 더 큰 Vbl 스텝 업이 사용되었다면 프로그래밍 시간은 더 짧다. Waveforms 1400, 1402, and 1404 represent Vbl for A-, B-, and C-state storage elements, respectively. Here, for the C-state, the Vbl levels of V1, V2, V3, V4, and V5 in
도 15는 서로 다른 데이터 상태들에 대한 프로그램 펄스 수에 따른 비트 라인 전압의 스텝 업을 도시하며, 여기서 모든 데이터 상태들에 대해 공통 스텝 사이즈가 사용되고, Vth 레벨에 기초하여 추가의 비트 라인 전압이 부가된다. 일부 프로그래밍 기법들에서, 추가의 비트 라인 전압(Δ)이, 일반적으로 가장 높은 상태를 제외한 모든 상태들에 대해, 프로그래밍을 느려지게 하기 위해 사용된다. 이 추가의 비트 라인 전압은 아직 프로그래밍으로부터 로크아웃되지 않았으며 그 Vth가 각각의 타겟 데이터 상태의 제1 검증 레벨과 제2 검증 레벨 사이에 있는 저장 소자들에 대해 사용될 수 있다. 예를 들어, 예컨대 도 4를 참조하여, 제1 및 제2 검증 레벨은 A-상태에 대해 각각 VvaL 및 Vva일 수 있고, B-상태에 대해 각각 VvbL 및 Vvb일 수 있고, C-상태에 대해 각각 VvcL 및 Vvc일 수 있다. 한가지 가능한 구현예에서, 비트 라인 스텝 업은 일 프로그램 펄스에서 시작하고, 그리고 다른 프로그램 펄스에서 시작하는 추가의 비트 라인 전압이 부가된다. 마찬가지로, 비트 라인 스텝 업이 일 프로그램 펄스에서 정지될 수 있고, 반면 상기 추가의 비트 라인 전압은 다른 프로그램 펄스에서 정지한다. 비트 라인 스텝 업은 공통 타겟 데이터 상태를 갖는 저장 소자들의 서브세트에 동시에 인가될 수 있고, 반면, 서브세트의 프로그래밍 진행과 상관 없이, 추가의 비트 라인 전압이 그 비트 라인을 통해 개별 저장 소자에 인가된다. 추가의 비트 라인 전압을 인가하는 것은 Vbl을 현재 스텝 업 레벨 너머로 추가의 고정 양만큼 증가시킴으로써 달성된다. 이 기법은 주어진 시간에 요구되는 비트 라인 전압들의 수를 증가시킬 수 있다. Figure 15 shows the step up of the bit line voltage according to the number of program pulses for different data states, where a common step size is used for all data states, and additional bit line voltages are added based on the Vth level. do. In some programming techniques, an additional bit line voltage [Delta] is used to slow the programming, generally for all states except the highest state. This additional bit line voltage has not yet been locked out from programming and can be used for storage elements whose Vth is between the first verify level and the second verify level of each target data state. For example, referring to FIG. 4, for example, the first and second verify levels may be VvaL and Vva for the A-state, respectively, VvbL and Vvb for the B-state, and for the C-state, respectively. It may be VvcL and Vvc, respectively. In one possible implementation, the bit line step up starts at one program pulse and adds an additional bit line voltage starting at another program pulse. Similarly, the bit line step up may stop at one program pulse, while the additional bit line voltage stops at another program pulse. Bit line step up may be applied simultaneously to a subset of storage elements having a common target data state, while additional bit line voltages are applied to the individual storage elements via the bit line, regardless of the programming progress of the subset. . Applying an additional bit line voltage is accomplished by increasing Vbl by an additional fixed amount beyond the current step up level. This technique can increase the number of bit line voltages required at a given time.
예를 들어, A-상태 저장 소자들에 대해, 파형(1500, 1502)은 추가적인 비트 라인 전압이 부가되거나 부가되지 않는 비트 라인 스텝 업 레벨을 각각 도시한다. 부가된 추가의 비트 라인 전압이 또한 비트 라인 스텝 업 전 또는 후에 인가될 수 있음에 주목하여야 한다. B-상태 저장 소자들에 대해, 파형(1504, 1506)은 추가의 비트 라인 전압이 부가되거나 부가되지 않은 비트 라인 스텝 업 레벨을 각각 도시한다. C-상태 저장 소자들에 대해, 파형(1508, 1510)은 추가의 비트 라인 전압이 부가되거나 부가되지 않은 비트 라인 스텝 업 레벨을 각각 도시한다. Vbl-max-new는 허용될 수 있는 새로운, 더 높은 Vbl을 나타낸다. 대안적으로, Vbl-max가 강제되어, Vbl-max를 초과하는 것을 방지하기 위하여 비트 라인 스텝 업이 조기에 종료되도록 할 수 있다. 즉, 비트 라인 스텝 업 레벨과 추가의 비트 라인 전압의 합에 대해 최대 허용 Vbl이 강제될 수 있다. For example, for A-state storage elements,
일 실시예에서, 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법은 프로그램 펄스들의 세트를 비휘발성 저장 소자들의 세트에 인가하는 것을 포함하며, 여기서 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자가 각각의 비트 라인과 관련되고, 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함한다. 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각 타겟 데이터 상태의 각 검증 레벨(Vva, Vvb, Vvc)로 프로그램되된다. 본 방법은 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하는 단계를 더 포함한다. 본 방법은, 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업하는 단계를 더 포함한다.In one embodiment, a method of programming a set of nonvolatile storage elements includes applying a set of program pulses to a set of nonvolatile storage elements, wherein each nonvolatile storage element in the set of nonvolatile storage elements is each one of: a. Associated with a bit line of, the set of nonvolatile storage elements includes different subsets of nonvolatile storage elements. Each subset includes one subset of non-volatile storage elements programmed to one verify level of each target data state, and each verify level Vva of each target data state of the plurality of target data states. , Vvb, Vvc). The method further includes determining when the first trigger condition is satisfied for a subset of nonvolatile storage elements during the set of program pulses. The method is characterized in that when the first trigger condition is met, the voltage of each bit line of one subset of non-volatile storage elements that has not yet been locked out from programming is obtained from each of the plurality of consecutive program pulses of the set of program pulses. Step up, at the same rate as the program pulse.
다른 실시예에서, 대응하는 비휘발성 저장 시스템은 비휘발성 저장 소자들의 세트를 포함하며, 여기서 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하고, 그리고 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각각의 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨로 프로그램된다. 각각의 비트 라인은 각각의 비휘발성 저장 소자와 관련된다. 적어도 하나의 제어 회로가 (a) 비휘발성 저장 소자들의 세트에 프로그램 펄스들의 세트를 인가하고, (b) 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하고, 그리고 (c) 제1 트리거 조건이 만족될 때, 프로그래밍으로부터 아직 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로(in lockstep) 스텝 업시킨다.In another embodiment, a corresponding nonvolatile storage system includes a set of nonvolatile storage elements, wherein the set of nonvolatile storage elements includes different subsets of nonvolatile storage elements, and each subset includes: One subset of non-volatile storage elements programmed to one respective verify level of each target data state is programmed to each verify level of each target data state of the plurality of target data states. Each bit line is associated with a respective nonvolatile storage element. At least one control circuit (a) applies a set of program pulses to a set of nonvolatile storage elements, and (b) a first trigger condition is satisfied for a subset of nonvolatile storage elements during the set of program pulses And (c) when the first trigger condition is met, the voltage of each bit line of one subset of non-volatile storage elements not yet locked out from programming, the plurality of consecutive of the set of program pulses. Step up in lockstep with each program pulse of the program pulses.
또 다른 실시예에서, 비휘발성 저장 시스템은 프로그램 펄스들의 세트를 비휘발성 저장 소자들의 세트에 인가하기 위한 수단을 포함하며, 여기서 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자는 각각의 비트 라인과 관련되고, 상기 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함한다. 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨(Vva, Vvb, Vvc)로 프로그램된다. 비휘발성 저장 시스템은 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하기 위한 수단을 더 포함한다. 비휘발성 저장 시스템은, 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업시키기 위한 수단을 더 포함한다. In another embodiment, the nonvolatile storage system includes means for applying a set of program pulses to a set of nonvolatile storage elements, wherein each nonvolatile storage element in the set of nonvolatile storage elements is a respective bit line. In relation to, the set of nonvolatile storage elements includes different subsets of nonvolatile storage elements. Each subset includes one subset of non-volatile storage elements programmed to one verify level of each target data state, each verify level of each target data state of the plurality of target data states. It is programmed as (Vva, Vvb, Vvc). The nonvolatile storage system further includes means for determining when the first trigger condition is satisfied for a subset of nonvolatile storage elements during the set of program pulses. The nonvolatile storage system is configured to determine the voltage of each of the bit lines of one subset of nonvolatile storage elements that have not yet been locked out from programming when the first trigger condition is met, the plurality of consecutive program pulses of the set of program pulses. Means for steping up at the same rate as each program pulse of the two.
다른 실시예에서, 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법은 비휘발성 저장 소자들의 세트에 프로그램 펄스들의 세트를 인가하는 것을 포함하며, 여기서 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자는 각각의 비트 라인과 관련되고, 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하며, 그리고 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨로 프로그램된다. 본 방법은 또한 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업시키는 단계, 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 트리거 조건이 만족될 때를 결정하는 단계, 그리고 트리거 조건이 만족될 때, 프로그램 펄스들의 세트의 하나 이상의 추가적인 프로그램 펄스들의 각각의 프로그램 펄스로 전압을 고정(fix)시키는 단계를 더 포함한다. In another embodiment, a method of programming a set of nonvolatile storage elements includes applying a set of program pulses to a set of nonvolatile storage elements, wherein each nonvolatile storage element in the set of nonvolatile storage elements is each: Associated with a bit line of N, wherein the set of non-volatile storage elements comprises different subsets of non-volatile storage elements, and each subset is non-programmed at one respective verify level of one respective target data state. Programmed to each verify level of each target data state of the plurality of target data states, including one subset of volatile storage elements. The method also steps the voltage of each bit line of one subset of non-volatile storage elements that has not yet been locked out from programming, at a rate equal to each program pulse of the plurality of consecutive program pulses of the set of program pulses. Up, determining when a trigger condition is met for a subset of non-volatile storage elements during the set of program pulses, and when the trigger condition is met, each of the one or more additional program pulses of the set of program pulses. Fixing the voltage with a program pulse of.
다른 실시예에서, 대응하는 비휘발성 저장 시스템은, 비휘발성 저장 소자들의 세트를 포함한다. 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하며, 여기서 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소잗르의 일서브세트를 포함하여, 복수의 타겟 데이터 상태들 중의 각각의 타겟 데이터 상태의 각각의 검증 레벨로 프로그램된다. 각각의 비트 라인은 각각의 비휘발성 저장 소자와 관련된다. 적어도 하나의 제어 회로가 (a) 프로그램 펄스들의 세트를 비휘발성 저장 소자들의 세트에 인가하고, (b) 프로그래밍으로부터 아직 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압을, 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로, 스텝 업 시키고, (c) 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 트리거 조건이 만족될 때를 결정하고, 그리고 (d) 트리거 조건이 만족될 때, 프로그램 펄스들의 세트의 하나 이상의 추가적인 프로그램 펄스들의 각각의 프로그램 펄스로 전압을 고정시키는 단계를 더 포함한다. In another embodiment, a corresponding nonvolatile storage system includes a set of nonvolatile storage elements. The set of nonvolatile storage elements includes different subsets of nonvolatile storage elements, where each subset is a subset of a nonvolatile storage source that is programmed to one respective verify level of one respective target data state. A program is programmed to each verify level of each target data state of the plurality of target data states, including the set. Each bit line is associated with a respective nonvolatile storage element. At least one control circuit is configured to (a) apply a set of program pulses to a set of nonvolatile storage elements, and (b) apply the voltage of each bit line of one subset of nonvolatile storage elements that has not yet been locked out from programming. Step up at the same rate as each program pulse of the plurality of consecutive program pulses of the set of program pulses, and (c) when the trigger condition is satisfied for a subset of non-volatile storage elements during the set of program pulses. And (d) fixing the voltage with each program pulse of one or more additional program pulses of the set of program pulses when the trigger condition is met.
여기에서 제공되는 방법을 수행하기 위한 대응하는 방법, 시스템, 및 컴퓨터 또는 프로세서 판독가능 저장 장치들이 제공된다. Corresponding methods, systems, and computer or processor readable storage devices for performing the methods provided herein are provided.
본 발명의 상기 상세한 설명은 예시 및 설명의 목적으로 제시되었다. 본 상세한 설명이 모든 실시예를 포괄하거나 본 발명을 개시된 특정한 형태로 제한하려 의도된 것은 아니다. 위의 내용에 비추어 많은 수정들 및 변형이 가능하다. 개시된 실시예들은 본 발명의 원리들을 가장 잘 설명함으로써, 본 기술 분야의 당업자들이 다양한 실시예들에서, 그리고 고려되는 특정 용도에 적합한 다양한 수정들로 본 발명을 가장 잘 이용할 수 있게 하기 위하여 선택된 것이다. 본 발명의 범주는 첨부된 청구항들에 의해 한정되는 것으로 의도된다. The foregoing detailed description of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in light of the above. The disclosed embodiments are chosen so that they best explain the principles of the invention, so that those skilled in the art can best use the invention in various embodiments and with various modifications suitable for the particular application contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.
Claims (15)
프로그램 펄스들의 세트(1005, 1010, ...)를 비휘발성 저장 소자들의 세트(155)에 인가하는 단계와, 상기 비휘발성 저장 소자들의 세트 내의 각각의 비휘발성 저장 소자는 각각의 비트 라인(BL0, BL1, ...)과 관련되고, 상기 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하고, 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들(A, B, C) 중의 각 타겟 데이터 상태의 각 검증 레벨(Vva, Vvb, Vvc)로 프로그램되고;
상기 프로그램 펄스들의 세트 동안 상기 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족되는 때를 결정하는 단계와; 그리고
상기 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브 세트의 비휘발성 저장소자들의 각각의 비트 라인들의 전압(Vbl)을, 상기 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로(in lockstep) 스텝 업(step up)시키는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.A method of programming a set of nonvolatile storage elements,
Applying a set of program pulses 1005, 1010,... To a set of nonvolatile storage elements, wherein each nonvolatile storage element in the set of nonvolatile storage elements has its own bit line BL0. , BL1, ...), wherein the set of nonvolatile storage elements comprises different subsets of nonvolatile storage elements, each subset having one respective verify level of one respective target data state. Programmed to each verify level (Vva, Vvb, Vvc) of each target data state of the plurality of target data states (A, B, C), including one subset of non-volatile storage elements programmed into;
Determining when a first trigger condition is satisfied for a subset of the nonvolatile storage elements during the set of program pulses; And
When the first trigger condition is met, the voltage Vbl of each bit line of one subset of non-volatile reservoirs that has not yet been locked out from programming is determined by the plurality of consecutive program pulses of the set of program pulses. And steping up in lockstep with each program pulse.
상기 비휘발성 저장 소자들의 세트는 공통 워드 라인(WLn)과 통신하고; 그리고
상기 프로그램 펄스들의 세트는 상기 공통 워드 라인을 통해 상기 비휘발성 저장 소자들의 세트에 인가되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.The method according to claim 1,
The set of nonvolatile storage elements is in communication with a common word line (WLn); And
And said set of program pulses are applied to said set of nonvolatile storage elements via said common word line.
상기 제1 트리거 조건은 소정의(predetermined) 프로그램 펄스 수에 도달될 때에 근거하여 만족되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법. 3. The method according to claim 1 or 2,
And wherein said first trigger condition is satisfied based upon reaching a predetermined number of program pulses.
상기 제1 트리거 조건은, 상기 일 서브세트 내의 적어도 최소 개수의 상기 비휘발성 저장 소자들의 임계 전압들이 상기 하나의 각 검증 레벨에 도달한 것으로 검증되었을 때에 근거하여 만족되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.3. The method according to claim 1 or 2,
And the first trigger condition is satisfied based on when the threshold voltages of at least the minimum number of the nonvolatile storage elements in the one subset are verified to have reached each of the one verification level. How to program a set of things.
상기 제1 트리거 조건은, 상기 일 서브세트 내의 상기 적어도 최소 개수의 비휘발성 저장 소자들의 임계 전압들이 상기 하나의 각 검증 레벨에 도달한 것으로 검증된 때 만족되고, 그후 상기 비휘발성 저장 소자들의 세트에 고정 개수의 프로그램 펄스들이 인가되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.5. The method of claim 4,
The first trigger condition is satisfied when the threshold voltages of the at least minimum number of nonvolatile storage elements in the subset are verified to have reached each one verify level, and then the set of nonvolatile storage elements. A method of programming a set of nonvolatile storage elements, characterized in that a fixed number of program pulses are applied.
상기 제1 트리거 조건이 만족되기 전에, 상기 제1 트리거 조건을 선행하는(precede) 프로그램 펄스들의 세트의 각각의 프로그램 펄스 동안 상기 전압을 고정(fix)시키는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법. The method according to any one of claims 1 to 5,
And fixing the voltage during each program pulse of the set of program pulses that precede the first trigger condition before the first trigger condition is satisfied. A method of programming a set of storage elements.
임계 전압이 상기 하나의 각 타겟 데이터 상태의 제1 검증 레벨과 제2 검증 레벨 사이에 있는 아직 프로그래밍으로부터 로크 아웃되지 않은 일 서브세트의 비휘발성 저장 소자들에 대해, 상기 전압을 추가의 고정 양(additional fixed amount) 만큼 상승시키는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법. The method according to any one of claims 1 to 6,
For a subset of non-volatile storage elements that have not yet been locked out from programming, wherein the threshold voltage is between the first verify level and the second verify level of each of the target data states, the voltage is added to a fixed amount ( additional fixed amount) further comprising the step of programming the set of non-volatile storage elements.
상기 전압은 상기 하나의 각 타겟 데이터 상태와 관련된 스텝 사이즈를 사용하여 스텝 업되고, 서로 다른 각 스텝 사이즈들은 상기 복수의 타겟 데이터 상태들의 적어도 두 개의 서로 다른 각 타겟 데이터 상태들과 관련되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.The method according to any one of claims 1 to 7, wherein
The voltage is steped up using a step size associated with each one of the target data states, each different step size being associated with at least two different respective target data states of the plurality of target data states. Programming a set of non-volatile storage elements.
상기 전압은 상기 복수의 연속적인 프로그램 펄스들 동안에, 제1 레이트(rate)(R1)에서 스텝 업되고 이후 제2의 더 높은 레이트(R2)에서 스텝 업 되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.The compound according to any one of claims 1 to 8, wherein
Wherein said voltage is stepped up at a first rate (R1) and thereafter at a second higher rate (R2) during said plurality of successive program pulses. How to program it.
상기 전압은, 상기 복수의 연속적인 프로그램 펄스들 동안에, 후속적으로, 상기 제2 레이트보다 낮은 제3 레이트에서 스텝 업되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.The method of claim 8,
The voltage is stepped up during the plurality of consecutive program pulses, subsequently at a third rate lower than the second rate.
상기 프로그램 펄스들의 세트 동안 비휘발성 저장 소자들의 일 서브세트에 대해 제2 트리거 조건이 만족될 때를 결정하는 단계와; 그리고
상기 프로그램 펄스들의 세트의 하나 이상의 추가적인 프로그램 펄스들의 각각의 프로그램 펄스 동안에, 상기 제2 트리거 조건이 만족될 때, 상기 전압을 로크아웃 레벨(Vbl-lockout) 미만으로 고정시키는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.The method according to any one of claims 1 to 10,
Determining when a second trigger condition is satisfied for a subset of non-volatile storage elements during the set of program pulses; And
During each program pulse of the one or more additional program pulses of the set of program pulses, when the second trigger condition is met, further comprising locking the voltage below a lockout level (Vbl-lockout). Programming a set of non-volatile storage elements.
상기 프로그램 펄스들의 세트 동안에 상기 비휘발성 저장 소자들의 또 다른 서브세트에 대해 또 다른 트리거 조건이 만족되는 때를 결정하는 단계와; 그리고
상기 또 다른 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크 아웃되지 않은 또 다른 서브세트의 비휘발성 저장 소자들의 각 비트 라인들의 전압을, 상기 프로그램 펄스들의 세트의 또 다른 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로(in lockstep) 스텝 업시키는 단계를 더 포함하며, 상기 또 다른 트리거 조건은 상기 제1 트리거 조건이 만족된 후에 만족되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.12. The device of claim 1, wherein different subsets of the nonvolatile storage elements are programmed to another respective verify level of another target data state that is higher than the respective target data state. Another subset of non-volatile storage elements,
Determining when another trigger condition is satisfied for another subset of the nonvolatile storage elements during the set of program pulses; And
When the another trigger condition is met, the voltage of each bit line of another subset of non-volatile storage elements that has not yet been locked out from programming is determined by each of the another plurality of consecutive program pulses of the set of program pulses. And steping up at a lock rate equal to a program pulse of wherein the another trigger condition is satisfied after the first trigger condition is satisfied. Way.
상기 또 다른 트리거 조건은 상기 제1 트리거 조건이 만족된 때에 근거하여 만족되고, 그후 고정 수의 프로그램 펄스들을 상기 비휘발성 저장 소자들의 세트에 인가하는 단계가 수행되는 것을 특징으로 하는 비휘발성 저장 소자들의 세트를 프로그래밍하는 방법.13. The method of claim 12,
The another trigger condition is satisfied based on when the first trigger condition is satisfied, and then applying a fixed number of program pulses to the set of nonvolatile storage elements is performed. How to program a set.
비휘발성 저장 소자들의 세트(155)와, 상기 비휘발성 저장 소자들의 세트는 비휘발성 저장 소자들의 서로 다른 서브세트들을 포함하고, 각각의 서브세트는, 하나의 각 타겟 데이터 상태의 하나의 각 검증 레벨로 프로그램되는 비휘발성 저장 소자들의 일 서브세트를 포함하여, 복수의 타겟 데이터 상태들(A, B, C) 중의 각 타겟 데이터 상태의 각 검증 레벨(Vva, Vvb, Vvc)로 프로그램되며,
각각의 비휘발성 저장 소자와 관련된 각 비트 라인(BL0, BL1, ...)과; 그리고
적어도 하나의 제어 회로를 포함하며, 상기 적어도 하나의 제어 회로는, (a) 프로그램 펄스들의 세트(1005, 1010, ...)를 비휘발성 저장 소자들의 세트에 인가하고, (b) 상기 프로그램 펄스들의 세트 동안 상기 비휘발성 저장 소자들의 일 서브세트에 대해 제1 트리거 조건이 만족될 때를 결정하고, 그리고 (c) 상기 제1 트리거 조건이 만족될 때, 아직 프로그래밍으로부터 로크아웃되지 않은 일 서브세트의 비휘발성 저장 소자들의 각각의 비트 라인들의 전압(Vbl)을, 상기 프로그램 펄스들의 세트의 복수의 연속적인 프로그램 펄스들의 각각의 프로그램 펄스와 동일한 비율로 스텝 업 시키는 것을 특징으로 하는 비휘발성 저장 시스템.A non-volatile storage system,
The set of nonvolatile storage elements 155 and the set of nonvolatile storage elements comprise different subsets of nonvolatile storage elements, each subset being one respective verify level of one respective target data state. Programmed to each verify level (Vva, Vvb, Vvc) of each target data state of the plurality of target data states (A, B, C), including one subset of non-volatile storage elements programmed into
Each bit line BL0, BL1, ... associated with each nonvolatile storage element; And
At least one control circuit, (a) applying a set of program pulses 1005, 1010, ... to a set of nonvolatile storage elements, and (b) the program pulse Determine when a first trigger condition is met for the subset of non-volatile storage elements during the set of values, and (c) when the first trigger condition is met, one subset that has not yet been locked out of programming And step-up the voltage Vbl of each of the bit lines of the non-volatile storage elements of the non-volatile storage elements at the same rate as each program pulse of the plurality of consecutive program pulses of the set of program pulses.
상기 제1 트리거 조건은 상기 하나의 서브세트 내의 적어도 최소 개수의 상기 비휘발성 저장 소자들의 임계 전압들이 상기 하나의 각 검증 레벨에 도달한것으로 검증된 때에 근거하여 만족되는 것을 특징으로 하는 비휘발성 저장 시스템.15. The method of claim 14,
And the first trigger condition is satisfied based on when the threshold voltages of at least the minimum number of the nonvolatile storage elements in the one subset are verified to have reached each of the respective verify levels.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/838,902 | 2010-07-19 | ||
US12/838,902 US8274838B2 (en) | 2010-07-19 | 2010-07-19 | Programming non-volatile memory with bit line voltage step up |
PCT/US2011/044016 WO2012012261A1 (en) | 2010-07-19 | 2011-07-14 | Programming non-volatile memory with bit line voltage step up |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140012608A true KR20140012608A (en) | 2014-02-03 |
KR101787802B1 KR101787802B1 (en) | 2017-10-18 |
Family
ID=44628766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020137004047A KR101787802B1 (en) | 2010-07-19 | 2011-07-14 | Programming non-volatile memory with bit line voltage step up |
Country Status (7)
Country | Link |
---|---|
US (1) | US8274838B2 (en) |
EP (1) | EP2596500A1 (en) |
JP (1) | JP2013531331A (en) |
KR (1) | KR101787802B1 (en) |
CN (1) | CN103081015B (en) |
TW (1) | TW201216283A (en) |
WO (1) | WO2012012261A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170032110A (en) * | 2015-09-14 | 2017-03-22 | 에스케이하이닉스 주식회사 | Semiconductor memory device and operating method thereof |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8174895B2 (en) * | 2009-12-15 | 2012-05-08 | Sandisk Technologies Inc. | Programming non-volatile storage with fast bit detection and verify skip |
TWI471862B (en) | 2011-08-19 | 2015-02-01 | Silicon Motion Inc | Flash memory controller |
US8902659B2 (en) | 2012-03-26 | 2014-12-02 | SanDisk Technologies, Inc. | Shared-bit-line bit line setup scheme |
US9053819B2 (en) * | 2012-07-11 | 2015-06-09 | Sandisk Technologies Inc. | Programming method to tighten threshold voltage width with avoiding program disturb |
US8953386B2 (en) | 2012-10-25 | 2015-02-10 | Sandisk Technologies Inc. | Dynamic bit line bias for programming non-volatile memory |
CN103019616B (en) * | 2012-11-23 | 2015-11-25 | 记忆科技(深圳)有限公司 | The charge/discharge control method of a kind of solid state hard disc and flash chip |
US8824214B2 (en) | 2012-12-10 | 2014-09-02 | Apple Inc. | Inter-word-line programming in arrays of analog memory cells |
US8837214B2 (en) | 2012-12-10 | 2014-09-16 | Apple Inc. | Applications for inter-word-line programming |
US20140198576A1 (en) * | 2013-01-16 | 2014-07-17 | Macronix International Co, Ltd. | Programming technique for reducing program disturb in stacked memory structures |
US8879331B2 (en) | 2013-03-12 | 2014-11-04 | Sandisk Technologies Inc. | Shared bit line string architecture |
US8982626B2 (en) * | 2013-06-05 | 2015-03-17 | Sandisk Technologies Inc. | Program and read operations for 3D non-volatile memory based on memory hole diameter |
JP2015041402A (en) * | 2013-08-23 | 2015-03-02 | 株式会社東芝 | Nonvolatile semiconductor storage device and data writing method |
CN104425025B (en) * | 2013-08-27 | 2017-10-24 | 晶豪科技股份有限公司 | Nonvolatile semiconductor memory element |
US9396791B2 (en) | 2014-07-18 | 2016-07-19 | Micron Technology, Inc. | Programming memories with multi-level pass signal |
US9595345B2 (en) * | 2014-08-07 | 2017-03-14 | Sandisk Technologies Llc | Adaptive selective bit line pre-charge for current savings and fast programming |
KR102235492B1 (en) | 2014-08-25 | 2021-04-05 | 삼성전자주식회사 | Nonvolatile memory device and program-verifying method of the same |
US9299443B1 (en) * | 2014-09-29 | 2016-03-29 | Sandisk Technologies Inc. | Modifying program pulses based on inter-pulse period to reduce program noise |
KR102333743B1 (en) * | 2015-01-21 | 2021-12-01 | 삼성전자주식회사 | Nonvolatile memory device and method of operating nonvolatile memory device |
US9875805B2 (en) * | 2015-01-23 | 2018-01-23 | Sandisk Technologies Llc | Double lockout in non-volatile memory |
KR20160117713A (en) * | 2015-03-30 | 2016-10-11 | 에스케이하이닉스 주식회사 | Semiconductor apparatus and operating method thereof |
US9595317B2 (en) * | 2015-05-28 | 2017-03-14 | Sandisk Technologies Llc | Multi-state programming for non-volatile memory |
US9437319B1 (en) * | 2015-06-25 | 2016-09-06 | Macronix International Co., Ltd. | Method for programming non-volatile memory with reduced bit line interference and associated device |
US10381094B2 (en) | 2016-10-11 | 2019-08-13 | Macronix International Co., Ltd. | 3D memory with staged-level multibit programming |
IT201600121618A1 (en) * | 2016-11-30 | 2018-05-30 | St Microelectronics Srl | METHOD OF REDUCING THE DURATION OF A MEMORY OPERATION IN A NON-VOLATILE MEMORY DEVICE AND ITS RELATIVE NON-VOLATILE MEMORY DEVICE |
KR102639697B1 (en) | 2017-01-09 | 2024-02-21 | 삼성전자주식회사 | Non-volatile memory device and programming method thereof |
US10650885B2 (en) * | 2017-03-07 | 2020-05-12 | Alibaba Group Holding Limited | Extending flash storage lifespan and data quality with data retention protection |
CN108962313A (en) * | 2017-05-23 | 2018-12-07 | 旺宏电子股份有限公司 | Memory operating method and storage operation device |
US10297312B1 (en) | 2017-12-06 | 2019-05-21 | Sandisk Technologies Llc | Resistive memory cell programmed by metal alloy formation and method of operating thereof |
US10643720B2 (en) * | 2018-05-23 | 2020-05-05 | Sandisk Technologies Llc | Bit line voltage control for damping memory programming |
US10811109B2 (en) * | 2018-12-27 | 2020-10-20 | Sandisk Technologies Llc | Multi-pass programming process for memory device which omits verify test in first program pass |
US10726929B1 (en) | 2019-01-25 | 2020-07-28 | Sandisk Technologies Llc | Programming process which compensates for data state of adjacent memory cell in a memory device |
US10706941B1 (en) | 2019-04-01 | 2020-07-07 | Sandisk Technologies Llc | Multi-state programming in memory device with loop-dependent bit line voltage during verify |
CN110176269B (en) * | 2019-04-16 | 2020-11-17 | 华中科技大学 | Method and system for accurately regulating and controlling state of nonvolatile storage unit |
US10811075B1 (en) * | 2019-08-19 | 2020-10-20 | Silicon Motion, Inc. | Method for performing access control regarding quality of service optimization of memory device with aid of machine learning, associated memory device and controller thereof |
US11081184B2 (en) * | 2019-10-30 | 2021-08-03 | Sandisk Technologies Llc | Method of concurrent multi-state programming of non-volatile memory with bit line voltage step up |
US11417400B2 (en) | 2020-01-31 | 2022-08-16 | Sandisk Technologies Llc | Controlling timing and ramp rate of program-inhibit voltage signal during programming to optimize peak current |
US11049578B1 (en) * | 2020-02-19 | 2021-06-29 | Sandisk Technologies Llc | Non-volatile memory with program verify skip |
US11250920B2 (en) * | 2020-06-30 | 2022-02-15 | Sandisk Technologies Llc | Loop-dependent switching between program-verify techniques |
US11662941B2 (en) | 2020-10-13 | 2023-05-30 | Western Digital Technologies, Inc. | System and method for mitigating effect of erase cells on adjacent cells |
CN112614531B (en) * | 2021-01-06 | 2021-11-02 | 长江存储科技有限责任公司 | 3D memory device and reading method thereof |
US11475959B1 (en) | 2021-06-30 | 2022-10-18 | Sandisk Technologies Llc | Reduced program time for memory cells using negative bit line voltage for enhanced step up of program bias |
US12046288B2 (en) * | 2021-12-02 | 2024-07-23 | Winbond Electronics Corp. | Memory device comprising source switch to float source line of unselected memory cell block, memory array and program method using the same |
US11972817B2 (en) | 2022-06-10 | 2024-04-30 | Sandisk Technologies, Llc | State look ahead quick pass write algorithm to tighten ongoing natural threshold voltage of upcoming states for program time reduction |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6327183B1 (en) | 2000-01-10 | 2001-12-04 | Advanced Micro Devices, Inc. | Nonlinear stepped programming voltage |
JP3631463B2 (en) * | 2001-12-27 | 2005-03-23 | 株式会社東芝 | Nonvolatile semiconductor memory device |
US6882567B1 (en) | 2002-12-06 | 2005-04-19 | Multi Level Memory Technology | Parallel programming of multiple-bit-per-cell memory cells on a continuous word line |
US7177199B2 (en) * | 2003-10-20 | 2007-02-13 | Sandisk Corporation | Behavior based programming of non-volatile memory |
US7158421B2 (en) | 2005-04-01 | 2007-01-02 | Sandisk Corporation | Use of data latches in multi-phase programming of non-volatile memories |
US7564713B2 (en) | 2005-04-28 | 2009-07-21 | Kabushiki Kaisha Toshiba | Semiconductor integrated circuit device wherein during data write a potential transferred to each bit line is changed in accordance with program order of program data |
TW200727113A (en) | 2006-01-03 | 2007-07-16 | Via Tech Inc | Computer system external power supply connector |
US7656709B2 (en) | 2007-05-03 | 2010-02-02 | Micron Technology, Inc. | NAND step up voltage switching method |
US7508715B2 (en) * | 2007-07-03 | 2009-03-24 | Sandisk Corporation | Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7599224B2 (en) * | 2007-07-03 | 2009-10-06 | Sandisk Corporation | Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing |
US7551477B2 (en) | 2007-09-26 | 2009-06-23 | Sandisk Corporation | Multiple bit line voltages based on distance |
US7688638B2 (en) * | 2007-12-07 | 2010-03-30 | Sandisk Corporation | Faster programming of multi-level non-volatile storage through reduced verify operations |
KR101427896B1 (en) | 2008-08-06 | 2014-08-11 | 삼성전자주식회사 | Flash memory device reducing noise of common source line and memory system including that |
US20100080064A1 (en) | 2008-09-30 | 2010-04-01 | Ercole Rosario Di Iorio | Bit line bias for programming a memory device |
KR101532755B1 (en) | 2008-10-13 | 2015-07-02 | 삼성전자주식회사 | Nonvolatile memory device, memory system having its, proramming method thereof, and precharg voltage boosting method thereof |
JP2010211883A (en) * | 2009-03-11 | 2010-09-24 | Toshiba Corp | Nonvolatile semiconductor memory device |
US7986573B2 (en) * | 2009-11-24 | 2011-07-26 | Sandisk Technologies Inc. | Programming memory with direct bit line driving to reduce channel-to-floating gate coupling |
US8089815B2 (en) * | 2009-11-24 | 2012-01-03 | Sandisk Technologies Inc. | Programming memory with bit line floating to reduce channel-to-floating gate coupling |
-
2010
- 2010-07-19 US US12/838,902 patent/US8274838B2/en active Active
-
2011
- 2011-06-20 TW TW100121487A patent/TW201216283A/en unknown
- 2011-07-14 EP EP11734236.0A patent/EP2596500A1/en not_active Withdrawn
- 2011-07-14 WO PCT/US2011/044016 patent/WO2012012261A1/en active Application Filing
- 2011-07-14 KR KR1020137004047A patent/KR101787802B1/en active IP Right Grant
- 2011-07-14 JP JP2013520751A patent/JP2013531331A/en not_active Withdrawn
- 2011-07-14 CN CN201180035485.2A patent/CN103081015B/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20170032110A (en) * | 2015-09-14 | 2017-03-22 | 에스케이하이닉스 주식회사 | Semiconductor memory device and operating method thereof |
Also Published As
Publication number | Publication date |
---|---|
US8274838B2 (en) | 2012-09-25 |
KR101787802B1 (en) | 2017-10-18 |
TW201216283A (en) | 2012-04-16 |
EP2596500A1 (en) | 2013-05-29 |
CN103081015B (en) | 2016-01-20 |
US20120014184A1 (en) | 2012-01-19 |
WO2012012261A1 (en) | 2012-01-26 |
CN103081015A (en) | 2013-05-01 |
JP2013531331A (en) | 2013-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101787802B1 (en) | Programming non-volatile memory with bit line voltage step up | |
USRE45520E1 (en) | Data state-dependent channel boosting to reduce channel-to-floating gate coupling in memory | |
US7800956B2 (en) | Programming algorithm to reduce disturb with minimal extra time penalty | |
EP2462590B1 (en) | Programming memory with reduced pass voltage disturb and floating gate to-control gate leakage | |
KR101519081B1 (en) | Enhanced bit-line pre-charge scheme for increasing channel boosting in non-volatile storage | |
US7839687B2 (en) | Multi-pass programming for memory using word line coupling | |
US8051240B2 (en) | Compensating non-volatile storage using different pass voltages during program-verify and read | |
US7995394B2 (en) | Program voltage compensation with word line bias change to suppress charge trapping in memory | |
US8395936B2 (en) | Using channel-to-channel coupling to compensate floating gate-to-floating gate coupling in programming of non-volatile memory | |
US8369149B2 (en) | Multi-step channel boosting to reduce channel to floating gate coupling in memory | |
USRE45544E1 (en) | Saw-shaped multi-pulse programming for program noise reduction in memory | |
KR101314306B1 (en) | Method for programming of multi-state non-volatile memory using smart verify |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |