KR101565563B1 - 메모리에 대한 적응적 소거 및 소프트 프로그래밍 - Google Patents
메모리에 대한 적응적 소거 및 소프트 프로그래밍 Download PDFInfo
- Publication number
- KR101565563B1 KR101565563B1 KR1020117015947A KR20117015947A KR101565563B1 KR 101565563 B1 KR101565563 B1 KR 101565563B1 KR 1020117015947 A KR1020117015947 A KR 1020117015947A KR 20117015947 A KR20117015947 A KR 20117015947A KR 101565563 B1 KR101565563 B1 KR 101565563B1
- Authority
- KR
- South Korea
- Prior art keywords
- erase
- pulses
- soft programming
- verify
- storage elements
- 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/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
- 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
- G11C11/5635—Erasing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/14—Circuits for erasing electrically, e.g. erase voltage switching circuits
- G11C16/16—Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3404—Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
Abstract
비휘발성 저장 장치의 소거 시퀀스는 소프트 프로그래밍 동작(930)이 뒤따르는 소거 동작(910)을 포함한다. 소거 동작은 소거 레벨이 만족될 때까지(924), 예를 들어, 기판을 통해, 상기 저장 소자들(920)에 하나 이상의 소거 펄스들을 인가한다. 소거 펄스들의 개수는 ((926) 상기 저장 장치가 겪은 프로그래밍-소거 사이클들의 개수의 표시(indica)로서) 트래킹되고 기록된다. 소프트 프로그래밍 동작(930)은 소프트 프로그래밍 검증 레벨이 만족될때까지(950) 소프트 프로그래밍 펄스들(944)을 상기 저장 소자들에 인가한다. 소거 펄스들의 개수에 근거하여, 소프트 프로그래밍 동작 시간이 단축된다. 소거 펄스 개수의 함수인 특정 개수의 초기의 소프트 프로그래밍 펄스들에 대한 검증 동작들(946)을 스킵함으로써 소프트 프로그래밍 동작 시간이 단축된다. 또한, 시작 진폭, 스텝 사이즈 또는 펄스 지속기간과 같은 소프트 프로그래밍 동작의 특성이 최적화될 수 있다.
Description
본 발명은 비휘발성 메모리에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스들에서 점점 더 보편적으로 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 셀룰러 전화기, 디지털 카메라, PDA(Personal Digital Assistants), 모바일 컴퓨팅 디바이스, 논-모바일 컴퓨팅 디바이스 및 다른 디바이스들에서 사용되고 있다. EEPROM(Electrical Erasable Programmable Read Only Memory) 및 플래시 메모리는 가장 보편적인 비휘발성 반도체 메모리들 중 하나이다. 종래의 전기능(full-featured) EEPROM과는 대조적으로, EEPROM의 한 종류인 플래시 메모리에서는, 전체 메모리 어레이의 내용 또는 메모리의 일부의 내용이 한번에(in one step) 소거 될 수 있다.
EEPROM과 플래시 메모리 둘 모두는 반도체 기판에서 채널 영역 위에 위치함과 아울러 채널 영역으로부터 절연되어 있는 플로팅 게이트를 사용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트는 플로팅 게이트 위에 제공되고 플로팅 게이트로부터 절연되어 있다. 트랜지스터의 임계 전압(VTH)은 플로팅 게이트 상에 보유되는 전하의 양에 의해 제어된다. 즉, 트랜지스터의 소스와 드레인 사이의 도통(conduction)를 허용하기 위하여 트랜지스터가 턴온(turn on)되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소량은 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
일부 EEPROM과 플래시 메모리 디바이스는 두 범위의 전하들을 저장하는데 사용되는 플로팅 게이트를 가지고 있고, 따라서 메모리 셀은 두 상태들(소거 상태 및 프로그래밍 상태) 사이에서 프로그래밍/소거될 수 있다. 이러한 플래시 메모리 디바이스는, 각각의 메모리 소자가 1 비트의 데이터를 저장할 수 있으므로, 종종 바이너리 플래시 메모리 디바이스(binary flash memory device)로 지칭된다.
복수-상태(multi-state)(복수-레벨이라고도 칭해짐) 플래시 메모리 디바이스는 복수의 개별적인 허용된/유효 프로그래밍된(allowed/valid programmed) 임계 전압 범위들을 식별함으로써 구현된다. 각각의 개별 임계 전압 범위는 메모리 디바이스내의 인코딩된 데이터 비트들의 세트에 대한 소정의 값에 대응된다. 예를 들어, 각각의 메모리 소자가 4개의 개별 임계 전압 범위들에 대응하는 4개의 분리된 전하 밴드들 중 하나에 위치될 수 있을 때, 상기 소자는 2 비트의 데이터를 저장할 수 있다.
일반적으로, 프로그램동작 중 제어 게이트에 인가되는 프로그램 전압 VPGM은 시간에 따라 크기가 증가하는 일련의 펄스들로서 인가된다. 가능한 한가지 기법에서, 펄스들의 크기는 각각의 연속적인 펄스에 대해 소정의 스텝 사이즈, 예를 들어, 0.2-0.4 V 만큼 증가된다. VPGM은 플래시 메모리 소자들의 제어 게이트들에 인가될 수 있다. 프로그램 펄스들 사이의 기간들 내에, 검증 동작들이 수행된다. 즉, 병렬로 프로그래밍되는 소자들의 그룹의 각각의 소자의 프로그래밍 레벨이 연속적인 플로그래밍 펄스들 사이에서 판독되어, 상기 레벨이 상기 소자가 프로그래밍되는 검증 레벨 이상인지가 결정된다. 복수-상태 플래시 메모리 소자들의 어레이들에 대해, 소자가 그것의 데이터-관련 검증 레벨에 도달했는지를 결정하기 위하여, 소자의 각각의 상태에 대해 검증 단계가 수행될 수 있다. 예를 들어, 4개의 상태들로 데이터를 저장할 수 있는 복수-상태 메모리 소자는 3개의 비교 포인트들에 대해 검증 동작들을 수행할 필요가 있을 것이다.
또한, NAND 스트링 내의 NAND 플래시 메모리 디바이스와 같은 플래시 메모리 디바이스 또는 EEPROM을 프로그래밍할 때, 일반적으로 VPGM이 제어 게이트에 인가되고 비트 라인이 접지되어, 셀 또는 메모리 소자(예를 들어 저장 소자)의 채널로부터의 전자들을 플로팅 게이트로 주입(injection)되게 한다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 충전되고 메모리 소자의 임계 전압이 상승되어 메모리 소자는 프로그램 상태(programmed state)에 있는 것으로 간주된다.
저장 소자들의 세트가 프로그래밍될 수 있게되기 전에, 상기 저장 소자들의 세트는 소거 시퀀스에서 소거되는바, 상기 소거 시퀀스는 소거 동작 및 소프트 프로그래밍 동작을 포함한다. 소거 동작은 프로그래밍된 저장 소자들의 플로팅 게이트들로부터 전하를 끌어내는(drawing) 높은 기판 전압을 인가하는 단계를 포함한다. 후속적으로, 소프트 프로그래밍에서, 저장 소자들의 임계 전압이 좁아지고 소거 상태와 관련된 레벨로 상승된다. 그러나, 소거 시퀀스는 시간이 소모된다.
본 발명은 소거 시퀀스 동안에 메모리 디바이스의 성능을 향상시키기 위한 기법들을 제공함으로써 상기의 문제점들 및 다른 문제점들을 해소한다.
일 실시예에서, 비휘발성 저장소자를 동작시키는(operating) 방법은, 제1 검증 조건이 만족될 때까지 비휘발성 저장 소자들의 세트에 하나 이상의 소거 펄스들을인가하는 단계, 및 인가된 소거 펄스들의 카운트를 결정하는 단계를 포함한다. 상기 방법은 검증 동작들을 수행함이 없이 NSPGM-SKIP개의 하나 이상의 소프트 프로그래밍 펄스들을 상기 비휘발성 저장 소자들의 세트에 인가하는 단계를 더 포함하며, 여기서 NSPGM-SKIP은 상기 카운트에 근거한다. 본 방법은 또한 후속적으로, 제2 검증 조건이 만족될때까지 상기 비휘발성 저장 소자들의 세트에 하나 이상의 추가적인 소프트 프로그래밍 펄스들을 인가하는 단계를 포함하며, 여기서 상기 하나 이상의 추가적인 소프트 프로그래밍 펄스들의 각각의 소프트 프로그래밍 펄스에는 검증 동작이 뒤따른다.
또 다른 실시예에서, 비휘발성 저장 소자를 동작시키는 방법은 소거 시퀀스의 소거 동작을 수행하는 것을 포함하며, 상기 소거 동작을 수행하는 것은, 소거 검증 조건이 만족될 때까지 비휘발성 저장 소자들의 세트에 하나 이상의 소거 펄스들을 인가하는 단계, 인가된 소거 펄스들의 카운트를 결정하는 단계, 및 소거 시퀀스의 소프트 프로그래밍 동작을 수행하는 단계를 포함하고, 상기 소프트 프로그래밍 동작을 수행하는 단계는 소프트 프로그래밍 검증 조건이 만족될 때까지 비휘발성 저장 소자들의세트에 하나 이상의 소프트 프로그래밍 펄스들을 인가하는 것을 포함한다. 하나 이상의 소프트 프로그래밍 펄스들의 특성은 카운트에 근거하여 설정된다.
또 다른 실시예에서, 비휘발성 저장 소자를 동작시키는 방법은, 제1 소거 동작에서, 제1 검증 조건이 만족될 때까지 비휘발성 저장 소자들의 세트에 하나 이상의 소거 펄스들을 인가하는 것을 포함한다. 상기 방법은, 제1 소거 동작에서 인가된 소거 펄스들의 카운트를 결정하고 상기 제1 소거 동작 후에, 검증 동작을 수행함이 없이 NERASE-SKIP개(상기 NERASE-SKIP은 상기 소거 펄스들의 카운트에 근거한다)의 하나 이상의 소거 펄스들을 인가하는 것을 포함하는 제2 소거 동작을 수행하는 단계, 및 후속적으로 하나 이상의 추가적인 소거 펄스들을 인가하는 단계를 포함한다. 하나 이상의 추가적인 소거 펄스들에서 각각의 소거 펄스에는 검증 동작이 뒤따른다.
또 다른 실시예에서, 비휘발성 저장 소자는 비휘발성 저장 소자들의 세트 및 하나 이상의 제어 회로들을 포함한다. 상기 하나 이상의 제어 회로들은 제1 검증 조건이 만족될 때까지 비휘발성 저장 소자들의 세트에 하나 이상의 소거 펄스들을 인가하며, 인가된 소거 펄스들의 카운트를 결정한다. 하나 이상의 제어 회로들은 또한 검증 동작들을 수행함이 없이 비휘발성 저장 소자들의 세트에 NSPGM-SKIP개의 하나 이상의 소프트 프로그래밍 펄스들을 더 인가하며, 여기서 NSPGM-SKIP은 카운트에 근거한다. 하나 이상의 제어 회로들은 후속적으로, 제2 검증 조건이 만족될 때까지 비휘발성 저장 소자들의 세트에 하나 이상의 추가적인 소프트 프로그래밍 펄스들을 인가한다. 상기 하나 이상의 추가적인 소프트 프로그래밍 펄스들에서 각각의 소프트 프로그래밍 펄스에는 검증 동작이 뒤따른다.
대응하는 방법들, 시스템들 및 여기에서 제시되는 방법들을 수행하기 위한 실행가능한 코드가 수록된 컴퓨터 또는 프로세서 판독가능 저장 디바이스들이 또한 제공될 수 있다.
도 1은 NAND 스트링의 평면도이다.
도 1b는 도 1a의 NAND 스트링의 등가회로도이다.
도 1c는 NAND 플래시 저장 소자들의 어레이의 블록도이다.
도 2는 기판 위에 형성된 NAND 스트링의 단면도를 도시한다.
도 3은 소거 상태 및 더 높은 데이터 상태들의 임계 전압 분포들을 도시한다.
도 4는 프로그램 소거 사이클들의 개수에 따른 비휘발성 저장 소자들의 세트의 동작을 도시한다.
도 5는 소프트 프로그래밍 검증 스킵들과 소거 펄스 개수의 관계를 도시한다.
도 6은 소거 펄스 개수에 근거하여 설정될 수 있는 서로 다른 소프트 프로그래밍 특성들을 도시한다.
도 7a는 인접 소거 펄스들 사이에 홀수 및 짝수 검증 펄스들을 가진 일련의 소거 펄스들을 도시한다.
도 7b는 인접 소거 펄스들 사이에 단일의 검증 펄스를 가진 일련의 소거 펄스들을 도시한다.
도 8a는 사이클된 디바이스에 적합한, 인접 소거 펄스들 사이에 홀수 및 짝수 검증 펄스들을 가진 일련의 소거 펄스들을 도시하며, 여기서 검증 동작들은 스킵되지 않는다.
도 8b는 플래시 디바이스에 적합한, 처음 10개의 펄스들 뒤에 검증 펄스가 오지 않는 일련의 소프트 프로그래밍 펄스들을 도시한다.
도 8c는 미드 라이프 디바이스에 적합한, 처음 5개의 펄스들 뒤에 검증 펄스가 오지 않는 일련의 소프트 프로그래밍 펄스들을 도시한다.
도 8d는 고, 중, 저 진폭을 가진 일련의 소프트 프로그래밍 펄스들을 도시하며, 여기서 처음 5개의 펄스들 뒤에 검증 동작이 행해지지 않는다.
도 8e는 3개의 가능한 스텝 사이즈들을 가진 일련의 소프트 프로그래밍 펄스들을 도시하며, 여기서 처음 5개의 펄스들 뒤에 검증 동작이 행해지지 않는다.
도 8f는 3개의 가능한 펄스 폭들을 가진 일련의 소프트 프로그래밍 펄스들을 도시한다.
도 9a는 소거 동작에서 사용되는 소거 펄스 개수에 근거하여 소프트 프로그래밍을 조정하는 것을 포함하는, 저장 소자들을 소거 및 프로그래밍하는 방법을 도시한다.
도 9b는 소거 동작에서 사용되는 소거 펄스 개수를 카운팅하는 것 및 후속적인 소프트 프로그래밍 동작에서 스킵할 소프트 프로그래밍 검증 동작들의 개수를 설정하는 것을 포함하는 소거 동작을 수행하는 방법을 도시한다.
도 9c는 다수의 검증 동작을 스킵하여 소프트 프로그래밍 동작을 행하는 방법을 도시한다.
도 10a는 소거 동작에서 스킵할 검증 동작들의 개수를 결정하는 방법을 도시한다.
도 10b는 다수의 검증 동작들을 스킵하는 것을 포함하는 소거 동작을 수행하는 방법을 도시한다.
도 10c는 처음 세개의 펄스들 뒤에 검증 펄스가 오지 않는 일련의 소거 펄스들을 도시한다.
도 11은 NAND 플래시 저장 소자들의 어레이의 블록도이다.
도 12는 단일의 행/열 디코더들 및 판독/기록 회로들을 사용하은 비휘발성 메모리 시스템의 블록도이다.
도 13은 감지 블록의 일 실시예를 도시하는 블록도이다.
도 14는 전체 비트라인 메모리 구조 및 홀수-짝수 메모리 구조에 대해 메모리 어레이를 블록들로 조직화하는 예를 도시한다.
도 15는 비휠성 메모리를 프로그래밍하기 위한 방법의 일 실시예를 도시하는 흐름도이다.
도 16a는 프로그래밍 중에 비휘발성 저장 소자들의 제어 게이트들에 인가되는 예시적인 펄스 트레인을 도시하며, 여기서 홀수 및 짝수 비트 라인들의 저장 소자들에 대해 검증 동작들이 동시에 수행된다.
도 16b는 프로그래밍 중에 비휘발성 저장 소자들의 제어 게이트들에 인가되는 예시적인 펄스 트레인을 도시하며, 여기서 홀수 및 짝수 비트 라인들의 저장 소자들에 대해 검증 동작들은 별도로 수행된다.
도 1b는 도 1a의 NAND 스트링의 등가회로도이다.
도 1c는 NAND 플래시 저장 소자들의 어레이의 블록도이다.
도 2는 기판 위에 형성된 NAND 스트링의 단면도를 도시한다.
도 3은 소거 상태 및 더 높은 데이터 상태들의 임계 전압 분포들을 도시한다.
도 4는 프로그램 소거 사이클들의 개수에 따른 비휘발성 저장 소자들의 세트의 동작을 도시한다.
도 5는 소프트 프로그래밍 검증 스킵들과 소거 펄스 개수의 관계를 도시한다.
도 6은 소거 펄스 개수에 근거하여 설정될 수 있는 서로 다른 소프트 프로그래밍 특성들을 도시한다.
도 7a는 인접 소거 펄스들 사이에 홀수 및 짝수 검증 펄스들을 가진 일련의 소거 펄스들을 도시한다.
도 7b는 인접 소거 펄스들 사이에 단일의 검증 펄스를 가진 일련의 소거 펄스들을 도시한다.
도 8a는 사이클된 디바이스에 적합한, 인접 소거 펄스들 사이에 홀수 및 짝수 검증 펄스들을 가진 일련의 소거 펄스들을 도시하며, 여기서 검증 동작들은 스킵되지 않는다.
도 8b는 플래시 디바이스에 적합한, 처음 10개의 펄스들 뒤에 검증 펄스가 오지 않는 일련의 소프트 프로그래밍 펄스들을 도시한다.
도 8c는 미드 라이프 디바이스에 적합한, 처음 5개의 펄스들 뒤에 검증 펄스가 오지 않는 일련의 소프트 프로그래밍 펄스들을 도시한다.
도 8d는 고, 중, 저 진폭을 가진 일련의 소프트 프로그래밍 펄스들을 도시하며, 여기서 처음 5개의 펄스들 뒤에 검증 동작이 행해지지 않는다.
도 8e는 3개의 가능한 스텝 사이즈들을 가진 일련의 소프트 프로그래밍 펄스들을 도시하며, 여기서 처음 5개의 펄스들 뒤에 검증 동작이 행해지지 않는다.
도 8f는 3개의 가능한 펄스 폭들을 가진 일련의 소프트 프로그래밍 펄스들을 도시한다.
도 9a는 소거 동작에서 사용되는 소거 펄스 개수에 근거하여 소프트 프로그래밍을 조정하는 것을 포함하는, 저장 소자들을 소거 및 프로그래밍하는 방법을 도시한다.
도 9b는 소거 동작에서 사용되는 소거 펄스 개수를 카운팅하는 것 및 후속적인 소프트 프로그래밍 동작에서 스킵할 소프트 프로그래밍 검증 동작들의 개수를 설정하는 것을 포함하는 소거 동작을 수행하는 방법을 도시한다.
도 9c는 다수의 검증 동작을 스킵하여 소프트 프로그래밍 동작을 행하는 방법을 도시한다.
도 10a는 소거 동작에서 스킵할 검증 동작들의 개수를 결정하는 방법을 도시한다.
도 10b는 다수의 검증 동작들을 스킵하는 것을 포함하는 소거 동작을 수행하는 방법을 도시한다.
도 10c는 처음 세개의 펄스들 뒤에 검증 펄스가 오지 않는 일련의 소거 펄스들을 도시한다.
도 11은 NAND 플래시 저장 소자들의 어레이의 블록도이다.
도 12는 단일의 행/열 디코더들 및 판독/기록 회로들을 사용하은 비휘발성 메모리 시스템의 블록도이다.
도 13은 감지 블록의 일 실시예를 도시하는 블록도이다.
도 14는 전체 비트라인 메모리 구조 및 홀수-짝수 메모리 구조에 대해 메모리 어레이를 블록들로 조직화하는 예를 도시한다.
도 15는 비휠성 메모리를 프로그래밍하기 위한 방법의 일 실시예를 도시하는 흐름도이다.
도 16a는 프로그래밍 중에 비휘발성 저장 소자들의 제어 게이트들에 인가되는 예시적인 펄스 트레인을 도시하며, 여기서 홀수 및 짝수 비트 라인들의 저장 소자들에 대해 검증 동작들이 동시에 수행된다.
도 16b는 프로그래밍 중에 비휘발성 저장 소자들의 제어 게이트들에 인가되는 예시적인 펄스 트레인을 도시하며, 여기서 홀수 및 짝수 비트 라인들의 저장 소자들에 대해 검증 동작들은 별도로 수행된다.
본 발명은 소거 시퀀스 동안 메모리 디바이스의 성능을 향상시키는 기법들을 제공한다.
본 발명을 실시하는 데 적합한 메모리 시스템의 일 예는 NAND 플래시 메모리 구조를 사용하는바, 이는 두 개의 선택 게이트들 사이에 복수의 트랜지스터들을 직렬로 배열하는 것을 포함한다. 직렬의 트랜지스터들 및 선택 게이트들은 NAND 스트링이라 칭해진다. 도 1a은 하나의 NAND 스트링을 보여 주는 평면도이다. 도 1b는 그것의 등가 회로이다. 도 1a 및 도 1b에 도시된 NAND 스트링은 네 개의 트랜지스터들(100, 102, 104 및 106)을 포함하는데, 이들은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에서 직렬로 연결되어 있고 그리고 샌드위치되어 있다. 선택 게이트(120)는 비트 라인(126)에 대한 NAND 스트링 연결을 게이트제어(gating)한다. 선택 게이트(122)는 소스 라인(128)에 대한 NAND 스트링 연결을 게이트제어한다. 선택 게이트(120)는 적절한 전압을 제어 게이트(120CG)에 인가함으로써 제어된다. 선택 게이트(122)는 적절한 전압을 제어 게이트(122CG)에 인가함으로써 제어된다. 트랜지스터들(100, 102, 104 및 106) 각각은 제어 게이트와 플로팅 게이트를 갖는다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 제어 게이트(1OOCG)는 워드 라인(WL3)에 연결되고, 제어 게이트(102CG)는 워드 라인(WL2)에 연결되고, 제어 게이트(104CG)는 워드 라인(WL1)에 연결되고, 그리고 제어 게이트(106CG)는 워드 라인(WL0)에 연결된다. 일 실시예에서, 트랜지스터들(100, 102, 104 및 106) 각각은 저장 소자들이며, 또한 메모리 셀이라고도 칭해진다. 다른 실시예들에서, 저장 소자들은 복수의 트랜지스터들을 포함하거나 도 1a 및 1b에 도시된 것과 다를 수 있다. 선택 게이트(120)는 선택 라인(SGD)에 연결된다. 선택 게이트(122)는 선택 라인(SGS)에 연결된다.
도 1c는 3개의 NAND 스트링들을 도시하는 회로도이다. NAND 구조를 사용하는 플래시 메모리 시스템에 대한 일반적인 아키텍쳐는 몇개의 NAND 스트링들을 포함할 수 있다. 예를 들어, 세개의 NAND 스트링들(320, 340, 360)이 더 많은 NAND 스트링들을 가지는 메모리 어레이 내에 도시된다. NAND 스트링들 각각은 두개의 선택 게이트들 및 4개의 저장 소자들을 포함한다. 간결성을 위하여 4개의 저장 소자들이 도시되었으나, 최신 NAND 스트링들은 예를 들어 32개 또는 64개의 저장 소자들까지 가질 수 있다.
예를 들어, NAND 스트링(320)은 선택 게이트들(322, 327) 및 저장 소자들(323-326)을 포함하며, NAND 스트링(340)은 선택 게이트들(342, 327) 및 저장 소자들(343-346)을 포함하고, NAND 스트링(360)은 선택 게이트들(362, 367) 및 저장 소자들(363-366)을 포함한다. 각각의 NAND 스트링은 그것의 선택 게이트들(예를 들어, 선택 게이트들 327, 347 또는 367)에 의해 소스 라인에 연결된다. 소스측 선택 게이트들을 제어하기 위해 선택 라인(SGS)이 사용된다. 다양한 NAND 스트링들(320, 340, 360)이 선택 게이트들(322, 342, 362, 등)의 선택 트랜지스터들에 의해 각각의 비트라인들(321, 341, 361)에 연결된다. 이 선택 트랜지스터들은 드레인 선택 라인(SGD)에 의해 제어된다. 다른 실시예들에서, 선택 라인들은 NAND 스트링들 사이에서 반드시 공통적일 필요는 없다. 즉, 서로 다른 NAND 스트링들에 대해 서로 다른 선택 라인들이 제공될 수 있다. 워드 라인(WL3)은 저장 소자들(323, 343, 363)의 제어 게이트들에 연결된다. 워드 라인(WL2)은 저장 소자들(324, 344, 364)의 제어 게이트들에 연결된다. 워드 라인(WL1)은 저장 소자들(325, 345, 365)의 제어 게이트들에 연결된다. 워드 라인(WL0)은 저장 소자들(326, 346, 366)의 제어 게이트들에 연결된다. 볼 수 있는 바와 같이, 각각의 비트 라인 및 각각의 NAND 스트링은 어레이의 열들 또는 저장 소자들의 세트를 포함한다. 워드 라인들(WL3, WL3, WL1 및 WL0)은 어레이 또는 세트의 행들을 포함한다. 각각의 워드 라인은 행 내의 각각의 저장 소자의 제어 게이트들을 연결한다. 즉, 게어 게이트들은 워드 라인들 그 자체에 의해 제공될 수 있다. 예를 들어, 워드 라인(WL2)은 저장 소자들(324, 344, 364)에 대한 제어 게이트들을 제공한다. 실제로, 한 워드 라인 상에 수천개의 저장 소자들이 존재할 수 있다.
각각의 저장 소자는 데이터를 저장할 수 있다. 예를 들어, 1 비트의 디지털 데이터를 저장할 때, 저장 소자의 가능한 임계 전압들(VTH)의 범위는 논리 데이터 "1"과 "0"이 할당되는 두개의 범위로 분할된다. NAND 타입 플래시 메모리의 일 예에서, 저장 소자가 소거된 후 VTH는 음이며, 논리 "1"로서 정의된다. 프로그램 동작 후의 VTH는 양이며, 논리 "0"으로서 정의된다. VTH가 음이고 판독이 시도될 때, 저장 소자는 턴온되어 논리 1이 저장됨을 표시할 것이다. VTH가 양이고 판독 동작이 시도될 때, 저장 소자는 턴온되지 않을 것이며, 이는 논리 0이 저장됨을 표시한다. 저장 소자는 또한 복수 레벨들의 정보, 예를 들어 복수 비트의 디지털 데이터를 저장할 수 있다. 이 경우에, VTH 값의 범위는 데이터의 레벨들의 수로 나뉘어진다. 예를 들어, 만약 4개 레벨의 정보가 저장되면, 데이터 값들 "11", "10", "01", "00"에 할당되는 4개의 VTH 범위들이 존재할 것이다. NAND 타입 메모리의 일 예에서, 소거 동작 후 VTH는 음이며 "11"로 정의된다. "10", "01", 그리고 "00"의 상태들에 대해 양의 VTH 값들이 사용된다. 저장 소자들에 프로그래밍된 데이터와 소자의 임계 전압 범위들 간의 특정 관계는 상기 저장 소자들에 채택된 데이터 인코딩 기법에 의존한다.
플래시 저장 소자를 프로그래밍할 때, 프로그램 전압이 저장 소자의 제어 게이트에 인가되고 상기 저장 소자와 관련(association)된 비트 라인이 접지된다. 채널로부터의 전자들이 플로팅 게이트 내부로 주입된다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 충전되고 저장 소자의 VTH가 상승된다. 프로그래밍되는 저장 소자의 제어 게이트에 프로그램 전압을 인가하기 위하여, 프로그램 전압은 적절한 워드 라인 상에 인가된다. 위에서 논의된 바와 같이, NAND 스트링들 각각의 한 저장 소자는 동일한 워드 라인을 공유한다. 예를 들어, 도 1c의 저장 소자(324)를 프로그래밍할 때, 프로그램 전압은 또한 저장 소자들(344, 364)의 제어 게이트들에 인가될 것이다.
도 2는 기판 위에 형성된 NAND 스트링의 단면도를 도시한다. 이 도면은 간략화된 것이며 스케일된 것이 아니다. NAND 스트링(400)은 기판(438) 위에 형성된, 소스측 선택 게이트(406), 드레인측 선택 게이트(424), 및 8개의 저장 소자들(408, 410, 412, 414, 416, 418, 420, 422)을 포함한다. 다수의 소스/드레인 영역들(그 일 예는 소스/드레인 영역(430)임)이 각각의 저장 소자 및 선택 게이트들(406, 424)의 양 측에 제공된다. 일 기법에서, 기판(438)은, P-타입 기판 영역(436) 내에 N-우물(434)이 있고, N-우물 영역(434) 내에 P-우물(432)이 있는 것을 포함하는 3중-우물(triple-well) 기법을 사용한다. NAND 스트링 및 그것의 비휘발성 저장 소자들이 적어도 부분적으로 P-우물 영역 위에 형성될 수 있다. VBL 전위를 가진 비트 라인(426)에 부가하여, VSOURCE 전위를 가진 소스 공급 라인(404)이 제공된다. 바디 바이어스 전압들(body bias voltages)과 같은 전압들은 또한 단자(402)를 통해 P-우물 영역(432)에 그리고/또는 단자(403)를 통해 N-우물 영역(434)에 적용될 수 있다.
프로그램 동작 중에, 제어 게이트 전압 VPGM이, 저장 소자(414)와 관련된 선택된 워드 라인(이 예에서는 WL3)에 제공된다. 또한, 저장 소자의 제어 게이트가 워드 라인의 일부로서 제공될 수 있음을 상기하도록 한다. 예를 들어, WL0, WL1, WL2, WL3, WL4, WL5, WL6, 및 WL7은 저장 소자들(408, 410, 412, 414, 416, 418, 420, 및 422) 각각의 제어 게이트들을 통해 연장될 수 있다. 한가지 가능한 부스팅 기법(boosting scheme)에서, 통과 전압(VPASS)이 NAND 스트링(400)과 관련된 나머지 워드 라인들에 인가된다. VSGS 및 VSGD는 선택 게이트들(406, 424) 각각에 인가된다. 소거 동작 중에, 높은 양 전압 펄스들이 기판(436)에 인가되어, 저장 소자들의 플로팅 게이트들로부터 전하를 끌어낸다.
도 3은 소거 상태 및 더 높은 데이터 상태들의 임계 전압 분포들을 도시한다. x-축은 임계 전압을 나타내고 y-축은 저장 소자들의 개수를 나타낸다. 이 예에서, 4개의 데이터 상태들, 소거(E) 상태(442), A 상태(444), B 상태(446) 및 C 상태(448)가 존재한다. 추가의 데이터 상태들(예를 들어, 8개 또는 16개의 데이터 상태들)을 가진 메모리 디바이스들이 보다 일반적일 것으로 예상된다. 소거 시퀀스는 소거 오퍼레이션 및 소프트 프로그래밍 오퍼레이션을 포함한다. 저장 소자들이 소거 상태(442)를 지나 전형적으로 과소거(over-erase)될 때 소거 동작 후 분포(440)가 실현된다. 소거 동작에서, 소거되는 저장 소자들의 임계 전압이 소거 검증 레벨 VERASE-VERIFY 미만으로 천이(transition)될 때까지 하나 이상의 소거 펄스들이 기판에 인가된다. 이 천이는 좌측을 향하는 화살표로 표시된다. 일단 소거 동작이 완료되면, 소프트 프로그래밍 동작이 수행되며, 소프트 프로그래밍 동작에서는 다수의 양 전압 펄스들이 워드 라인을 통해서와 같이 저장 소자들의 제어 게이트들에 인가되어, 분포(440) 내의 VSPGM-VERIFY 미만이면서 VSPGM-VERIFY 에 가까운 저장 소자들의 전부 또는 일부의 임계 전압들을 소거 상태(442)로 증가시킨다. 예를 들어, VSPGM-VERIFY에 가까운 그러나 VSPGM-VERIFY 미만인 VTH를 가진 다른 저장 소자들을 남겨두고, 저장 소자들의 일부가 VSPGM-VERIFY 보다 높은 VTH를 가지도록 소프트 프로그래밍될 수 있다. 이 천이는 우측을 향하는 화살표로 표시된다. VSPGM-VERIFY는 일반적으로 VERASE-VERIFY 이상이다. 유익하게도, 소프트 프로그래밍 동작은 결과적으로 좁은 소거 상태 분포(442)가 되게 한다. 소프트 프로그래밍 동작이 완료되면, 검증 레벨들 VVERIFY-A, VVERIFY-B, VVERIFY-C 각각을 사용하여, 상태들(A, B, C)로와 같은 더 높은 데이터 상태들로의 프로그래밍이 발생할 수 있다. 후속적인 판독 동작은 레벨 VREAD-A, VREAD-B 및 VREAD-C를 사용할 수 있다.
VERASE-VERIFY 및 VSPGM-VERIFY는 동일하거나 서로 다를 수 있음에 주목하여야 한다. 또한, VERASE-VERIFY의 제1 검증 조건이 만족될 때 비휘발성 저장 소자들의 세트는, 적어도 부분적으로, 소거 상태(442) 보다 낮은 제1 임계 전압 분포(440)를 가지며, VSPGM-VERIFY의 제2 검증 조건이 만족될 때 제2의 보다 촘촘한 임계 전압 분포(442)가 된다.
도 4는 프로그램-소거 사이클 개수에 따른 비휘발성 저장 소자들의 세트의 동작을 도시한다. 메모리 디바이스는 시간에 걸쳐 프로그래밍 및 소거 사이클들을 겪게되므로, 그 성능은 변화한다. 예를 들어, 메모리 디바이스는 10,000번 이상의 싸이클을 견딜것으로 기대될 수 있다. 일반적으로, 소프트 프로그래밍 동작을 완료하기 위해 요구되는 소프트 프로그래밍 펄스들, 또는 루프들의 수가 감소되는 반면, 소거 동작을 완료하기 위해 요구되는 소거 펄스들, 또는 루프들의 개수는 증가(곡선(452))한다. 다이 소트(die sort) 동안, VERASE(예를 들어, 도 7a 및 7b 참조) 및 VSPGM(도 8a-8f 참조)의 값들은 일반적으로 각각의 디바이스에 대해 최적인 소정의 값들로 트리밍된다. 보통, 디바이스가 프레시(fresh)일 때, VERASE는, 저장 소자들이 단 하나의 소거 펄스로 소거될 수 있게끔 충분히 높게 트리밍된다. VSPGM은 충분히 낮게 트리밍되어 소프트 프로그래밍은 특정 개수의 펄스들을 필요로한다. VERASE-VERIFY 및 VSPGM-VERIFY은 일반적으로 소정 값들로 설정된다. 각각의 소프트 프로그래밍 펄스 후 검증 오퍼레이션이 수행될 때 소프트 프로그래밍은 상당양의 시간을 소모한다. 또한, 검증 동작은 홀수 및 짝수 비트 라인들의 저장 소자들에 대해 개별적인 검증을 수반하여, 검증 시간을 더 증가시킨다. 결과적으로, 특히 상대적으로 많은 소프트 프로그램 펄스들 및 관련된 검증 펄스들이 적용되는 저 범위 및 중 범위 개수의 사이클들에 대해 소거 시퀀스의 성능은 최적화되지 않는다.
도 5는 소거 펄스 개수와 소프트 프로그래밍 검증 스킵들의 관계를 도시한다. x-축은 소거 펄스들의 수를 표시하며 y-축은 검증 스킵들의 수를 표시한다. 소거 시퀀스, 특히 소프트 프로그래밍 동작에 의해 소비되는 시간을 줄이기 위하여, 소거 동작 동안 사용되는 소거 펄스들의 수에 근거하여 다수의 초기 검증 동작들이 스킵될 수 있다. 소거 펄스들의 수는 메모리 디바이스의 사이클 수에 대한 표시자(indicator)로서 기능한다. 그러나, 소거 펄스들의 수가 사이클들의 수보다 디바이스의 상태에 대한 더 정확한 표시자인데, 동일한 또는 유사한 사이클 카운트를 가진 서로 다른 디바이스들은 서로 다른 성능을 가질 수 있으므로 소거 펄스들의 수가 메모리 디바이스의 실제 현재의 특성(current behavior)(사이클 카운트에 근거한 예측된 특성과 상관없을 수 있음)을 반영하기 때문이다. 그러나, 사이클 카운트를 사용하는 것 또한 가능하다.
구체적으로, 곡선(500)은 측정된 소거 펄스들의 수에 따라 설정될 수 있는 검증 스킵 수의 관계를 표시한다. 계단(staircase)(510)은 소거 펄스들의 수가, 세개의 그룹들(G1, G2, G3)에서와 같은 검증 스킵들의 다수의 불연속 레벨들(discrete levels)로 변환될 수 있게 해준다. 예를 들어, G1은 제1 개수의 검증 스킵들, 예를 들어, 10개의 스킵들과 관련된 1개의 소거 펄스를 나타낼 수 있고, G2는 제2 개수의 검증 스킵들, 예를 들어, 5개의 스킵들과 관련된 2 내지 4개의 소거 펄스들을 나타낼 수 있으며, G3은 제3 개수의 검증 스킵들, 예를 들어, 0개의 스킵과 관련된 5 또는 6개의 소거 펄스들을 나타낼 수 있다. 그룹 G1은, 예를 들어 0-c1 사이클 범위를 가지는 프레시(fresh) 디바이스 또는 초기(early life) 디바이스에 대응되며, 상기 디바이스들에 대해서는 많은 수의 검증 스킵들이 적합하다. 그룹 G2는, 예를 들어 c1-c2 사이클 범위를 가지는 중 범위(mid range) 또는 중기(mid life) 디바이스에 대응되며, 상기 디바이스들에 대해서는 중 범위 수의 검증 스킵들이 적합하다. 그룹 G3는, 예를 들어 c2-c3 사이클 범위를 가지는 사이클된 또는 말기(end life) 디바이스에 대응되며, 상기 디바이스들에 대해서는 0개의 또는 적은 수의 검증 스킵들이 적합하다. 변수들 c1, c2, c3는 디바이스에 대해 특정되는 수들을 나타낸다.
검증 스킵들의 수와 각각의 서로 다른 소거 펄스들의 수를 관련시키는것 또한 가능하다. 메모리 디바이스는 소거 펄스들의 수를 트래킹하는 성능을 포함하도록 그리고 검증 스킵들의 수와 소거 펄스들의 수를 관련시키기 위한 표 또는 식을 유지하도록 변경될 수 있다. 소거 펄스들의 수에 대응하는 검증 스킵들의 수를 검색하기 위하여 검색 기능(lookup function)이 사용될 수 있다. 또한, 예를 들어, 복수 레벨의 저장 소자들을 포함하는 디바이스들에서 메모리 디바이스 내의 서로 다른 비휘발성 저장 소자 세트들(예를 들어, 서로 다른 워드 라인들, 블록들, 어레이들, 및 면(plane)들)에 대해 (a) 검증 스킵들의 수와 (b) 소거 펄스들의 수에 대한 서로 다른 관계가 설정될 수 있다. 이는 서로 다른 세트들은 서로 다른 수의 사이클들을 겪으며 그리고/또는 공통 수(common number)의 사이클들을 겪을때 조차도 서로 다른 특성들(behaviors)을 가지므로 적합하다. 또는, 전체 메모리 디바이스에 대해 공통의 검증 스킵-대-소거 펄스(verify skip-to erase pulse) 관계가 확립될 수 있다. 적합한 데이터 구조들 및 제어 로직이 메모리 칩 외부에 있는 또는 칩 상에 있는 제어기 메모리에서 구현될 수 있다.
검증 스킵들의 수는, 검증 스킵들이 부과(impose)될 때 메모리 디바이스가 검증 레벨에 도달하지 않도록 충분히 낮으면서도, 최대의 시간 절약을 달성할 수 있을 만큼 높게 설정되어야 한다. 검증 스킵들의 최적의 수는 실험으로부터 결정될 수 있다. 예를 들어, 소거 펄스들의 수를, 저장 소자들이 소프트 프로그래밍 검증 레벨을 지나 천이되게 하는 제1 소프트 프로그래밍 펄스의 식별값(identification)과 상관시키고 그리고 그 식별된 펄스 미만의 펄스 마진을 제공함으로써 결정될 수 있다. 예를 들어, 프레시 디바이스들에 대해, 평균적으로 12번째 소프트 프로그래밍 펄스가 저장 소자들이 소프트 프로그래밍 검증 레벨을 지나 천이되게 한다면, 검증 스킵들의 수는 10(예를 들어, 12에서 마진 2 를 뺀 값)으로 설정될 수 있다. 바람직한 레벨의 신뢰도를 가진 검증 스킵들의 수를 설정하기 위하여, 다수의 메모리 디바이스들이 검사되어, 저장 소자들이 소프트 프로그래밍 검증 레벨을 지나 천이되게 하는 소프트 프로그래밍 펄스들의 수에 대한 표준 편자(standard deviation)와 같은 통계적 수치(statistical metrics)을 얻을 수 있다. 이 방법은 검증 스킵들의 최적 수를 설정하기 위하여 서로 다른 수의 소거 펄스들 및 사이클들에 대해 반복될 수 있다.
도 6은 소거 펄스들의 수를 근거로 설정될 수 있는 서로 다른 소프트 프로그래밍 특성들을 도시한다. 소거 펄스들의 수에 근거하여 검증 스킵들의 수를 설정하는 것에 부가하여, 또는 그 대안으로서, 하나 이상의 소프트 프로그래밍 동작 특성들이 소거 펄스들의 수에 근거하여 설정될 수 있다. 이 특성들은, 전압 VSPGM과 같은 시작 진폭(starting amplitude), 스텝 사이즈, 펄스 기간, 최대 허용 펄스 수 및 최대 펄스폭을 포함한다. 시작 진폭과 관련하여, 도 8d를 참조하기로 한다. 스텝 사이즈와 관련하여, 도 8e를 참조하기로 한다. 펄스 지속기간과 관련하여, 도 8f를 참조하기로 한다. 최대 허용 펄스 수와 관련하여, 한가지 가능한 실시예에서, 최대값은 프레시 디바이스에 비해 사이클된 디바이스에서 더 낮은데, 이는 사이클된 디바이스가 더 적은 소프트 프로그래밍 펄스들을 가지고 소프트 프로그래밍을 완료할 수 있어야 하기 때문이다. 최대 펄스 진폭과 관련하여, 한가지 가능한 실시예에서, 최대값은 프레시 디바이스에 비해 사이클된 디바이스에서 더 낮은바, 이는 사이클된 디바이스가 더 낮은 최대 진폭 프로그래밍 펄스를 가지고 소프트 프로그래밍을 완료할 수 있어야 하기 때문이다. 펄스 진폭은 프로그래밍 펄스의 전기 신호를 나타낸다. 주목할 점은, 일반적으로, 프로그래밍은 저장 소자의 상태를 변경하기 위하여 전압 또는 전류와 같은 신호들을 저장 소자에 인가하는 것을 수반한다는 것이다.
도 7a는 인접한 소거 펄스들 사이에 홀수 및 짝수 검증 펄스들을 가진 일련의 소거 펄스들(700)을 도시한다. VERASE1 내지 VERASE8은 일 예시적인 실시예에서 소거 동작 중에 메모리 디바이스의 기판에 인가되는 소거 펄스들을 나타낸다. 소거 펄스들은 고정 또는 가변 스텝 사이즈에 따라 진폭이 증가하거나 고정된 진폭(fixed amplitude)을 가질 수 있다. 인접한 소거 펄스들 사이에서, 홀수 및 짝수 비트 라인들의 저장 소자들에 대한 개별적인 소거 검증 펄스들이 저장 소자들의 제어 게이트들에 인가된다. 소거 검증 펄스들은 VERASE-VERIFY의 진폭을 가진다. 펄스(710)는 홀수 비트 라인들의 저장 소자들에 대한 예시적인 소거 검증 펄스이고, 펄스(712)는 짝수 비트 라인들의 저장 소자들에 대한 예시적인 소거 검증 펄스이다.
소거 동작, 소프트 프로그래밍 동작 또는 보통의 프로그래밍 동작에서 검증 동작은, 전압 또는 전류가 저장 소자에 인가될 때 저장 소자가 도통 상태에 있는지를 판단하는 것을 수반한다. 상기 판단의 결과에 의존하여, 하나 이상의 추가적인 펄스들이 인가된다. 예를 들어, 소거 검증 펄스(710)가 인가될 때, 홀수 비트 라인들의 저장 소자들이 도통인지에 대한 판단이 이루어진다. 상기 저장 소자들이 도통상태라면, 이는 그것들의 임계 전압이 충분히 낮아서 소거 동작이 완료될 수 있다는 것을 의미한다. 유사하게, 소거 검증 펄스(712)가 인가될 때, 짝수 비트 라인들의 저장 소자들이 도통인지에 대한 결정이 이루어진다. 소거 펄스의 인가 및 관련된 검증 동작은 소거 루프로서 간주된다.
도 7b는 인접한 소거 펄스들 사이에 단일의 검증 펄스가 있는 일련의 소거 펄스들(713)을 도시한다. 이 경우, 전체 비트 라인 소거 검증 동작에서, 홀수 및 짝수 비트 라인들의 저장 소자들이 동시에 검증된다. 예시적인 소거 검증 펄스(714)가 인가될 때, 홀수 짝수 비트 라인들의 저장 소자들이 도통인지에 대한 결정이 이루어진다.
도 8a는 인접한 소프트 프로그래밍 펄스들 사이에 홀수 및 짝수 검증 펄스들이 있는 일련의 소프트 프로그래밍 펄스들을 도시하며, 여기서, 사이클된 디바이스에 적합하게, 검증 동작들은 스킵되지 않는다. 15개의 소프트 프로그래밍 펄스들이 예로 사용된다. 용어 "소프트" 프로그래밍은, 데이터 상태를 변경하는 "레귤러" 또는 "하드" 프로그래밍과는 대조적으로, 프로그래밍이 저장 소자들의 데이터 상태를 변경하지 않음을 나타낸다. 일 예시적인 실시예에서, VSPGM1 내지 VSPGM15는 검증 동작 중에 저장 소자들의 제어 게이트들에 인가되는 소프트 프로그래밍 펄스들을 나타낸다. 다른 경우에, 전류가 인가될 수 있다. 소프트 프로그래밍 펄스들은 예를 들어, 스텝 사이즈에 따라 진폭이 증가하거나, 고정된 진폭을 가질 수 있다. 인접한 소프트 프로그래밍 펄스들 사이에서, 홀수 및 짝수 비트 라인들의 저장 소자들에 대해 개별 검증 펄스들이 상기 저장 소자들에 적용된다. 소거 검증 펄스들은 VSPGM VERIFY의 진폭을 가진다. 펄스(810)는 홀수 비트 라인들의 저장 소자들에 대한 예시적인 소프트 프로그래밍 검증 펄스이고, 펄스(812)는 짝수 비트 라인들의 저장 소자들에 대한 예시적인 소프트 프로그래밍 검증 펄스이다. 또 다른 옵션은, 인접한 소프트 프로그래밍 펄스들 사이에 단 하나의 검증 펄스만을 가져서, 홀수 및 짝수 비트 라인들의 저장 소자들이 동시에 검증되게 하는 것이다.
도 8a에는, 검증 스킵들이 존재하지 않는다. 즉, 검증 동작들이, 제1 소프트 프로그래밍 펄스들 후 그리고 각각의 후속적인 소프트 프로그래밍 펄스 후에 수행된다. 이 시나리오는 상대적으로 많은 수의 프로그램-소거 사이클들을 겪은 사이클된 디바이스에 적절할 것이다. 많은 수의 사이클들을 겪은 메모리 디바이스에 대해 0개의 검증 스킵이 적절하다는 것을 나타내는 도 5를 상기하도록 한다.
도 8b는, 프레시 디바이스에 적절한 것으로서, 처음 10개의 펄스들에 검증 펄스가 뒤따르지 않는 일련의 소프트 프로그래밍 펄스들을 도시한다. 여기서, 10개의 검증 스킵들이 존재한다. 11번째 소프트 프로그래밍 펄스 VSPGM11 및 후속적인 각각의 프로그래밍 펄스 뒤에 검증 동작이 수행된다. 프레시 메모리 디바이스에 대해 최대 수의 검증 스킵들이 적절하다는 것을 나타내는 도 5를 상기하도록 한다. 상당한 수의 검증 동작들의 스킵하는 것은, 전력 소모를 줄여주는 것에 부가하여, 소프트 프로그래밍 시간을 현저히 줄여주어, 결과적으로 더 나은 성능이 되게 한다.
도 8c는 중기(mid-life) 디바이스에 적절한 것으로서, 첫번째 5개의 펄스들에 검증 펄스가 뒤따르지 않는 일련의 소프트 프로그래밍 펄스들을 도시한다. 여기서, 첫번째 5개의 소프트 프로그래밍 펄스들에는 검증 동작이 뒤따르지 않으므로, 5개의 검증 스킵들이 존재한다. 6번째 소프트 프로그래밍 펄스(VSPGM6) 및 각각의 후속적인 프로그래밍 펄스에는 검증 동작이 뒤따른다. 중범위 수의 사이클들을 가진 메모리 디바이스에 대해 중 범위 수의 검증 스킵들이 적절함을 나타내는 도 5를 상기하도록 한다.
도 8d는 고, 중, 저 진폭을 가진 일련의 소프트 프로그래밍 펄스들(860)을 도시하는바, 여기서 첫번째 5개의 펄스들에는 검증 펄스가 뒤따르지 않는다. 도 6과 관련하여 언급한 바와 같이, 소거 동작을 완료하는데 필요한 소거 펄스들의 수에 근거하여 소프트 프로그래밍 동작의 적어도 하나의 특성이 설정될 수 있다. 이 예에서, 상기 특성은 소프트 프로그래밍 펄스들의 진폭이다. 제1 소프트 프로그래밍 펄스의 진폭은 스텝 사이즈와 함께 특정될 수 있는바, 상기 스텝 사이즈로부터, 나머지 펄스들의 진폭들이 결정될 수 있다. 사이클들의 수가 증가함에 따라, 메모리 디바이스는 프로그래밍하기 더 쉬워지며, 따라서 프레시 디바이스에 비해 더 낮은 진폭의 펄스들이 사용될 수 있다. 또한, 더 낮은 진폭의 펄스들을 사용함으로써 오버-프로그래밍이 방지되거나 감소될 수 있다. 예를 들어, 프레시, 중기 그리고 사이클된 디바이스에 대해 각각 고, 중, 저 진폭들이 사용될 수 있다. 소프트 프로그래밍 펄스 진폭을 증가시키는 것이 결과적으로 더 빠른 소프트 프로그래밍이 되게 할 수 있는 한편, 소프트 프로그래밍 펄스 진폭을 감소시키는 것은 결과적으로 전력 소모를 줄여줄 수 있다. 또한, 예로서, 다수의 검증 스킵들이 또한 구현될 수 있다. 예를 들어, 고, 중, 저 진폭들은 각각 10V, 7.5V, 5V일 수 있다.
도 8e는 3개의 가능한 스텝 사이즈들을 가진 일련의 소프트 프로그래밍 펄스들(880)을 도시하며, 여기서 첫번째 5개의 펄스들에는 검증 펄스가 뒤따르지 않는다. ΔV1, ΔV2 및 ΔV3는 각각 제1, 제2 및 제3 스텝 사이즈들을 표시한다. 소프트 프로그래밍을 위한 일반적인 스텝 사이즈는 약 0.2V, 또는 소거 동작을 위해서는 0.5V이다. 이 예에서, 소거 펄스들의 수에 근거하여 설정되는 소프트 프로그래밍 특성은 소프트 프로그래밍 펄스들의 스텝 사이즈이다. 사이클들의 수가 증가함에 따라, 메모리 디바이스는 프로그래밍하기 더 쉬워지며, 따라서 소프트 프로그래밍을 완료하기 위해서 프레시 디바이스에 비해 더 작은 스텝 사이즈가 사용될 수 있다. 예를 들어, 고, 중, 저 스텝 사이즈들은 각각, 프레시, 중 범위, 사이클된 디바이스에 대해 사용될 수 있다. 스텝 사이즈를 감소시키는 것은 결과적으로 더 나은 프로그래밍 정확도가 되게하고 전력 소모를 줄여주며, 한편, 스텝 사이즈를 증가시키는 것은 결과적으로 더 빠른 소프트 프로그래밍이 되게 한다. 또한, 예를 들어, 다수의 검증 스킵들이 또한 실시될 수 있다.
도 8f는 3개의 가능 펄스폭을 가진 일련의 소프트 프로그래밍 펄스들(890)을 도시한다. 상세하게 보이기 위하여, 3개의 펄스들만이 도시된다. 시간 기간 t1, t2, t3는 제1, 제2, 제3 소프트 프로그래밍 펄스폭 또는 지속기간을 각각 표시한다. 이 예에서, 소거 펄스들의 수에 근거하여 설정되는 소프트 프로그래밍 특성은 소프트 프로그래밍 펄스들의 폭이다. 사이클들의 수가 증가함에 따라, 메모리 디바이스는 프로그래밍하기 더 쉬워지고, 따라서, 소프트 프로그래밍을 완료하기 위하여 프레시 디바이스에 비해 더 작은 펄스폭이 사용될 수 있다. 예를 들어, 프레시, 중 범위, 및 사이클된 디바이스 각각에 대해 긴 펄스, 중간 펄스 그리고 짧은 펄스들이 사용될 수 있다. 펄스 폭을 감소시키는 것은 결과적으로 전력 소비를 감소시킬 수 있고, 한편, 펄스 폭을 증가시키는 것은 결과적으로 더 빠른 소프트 프로그래밍이 되게 한다.
도 9a는 소거 동작에서 사용되는 소거 펄스들의 수에 근거하여 소프트 프로그래밍 동작을 조정하는 것을 포함하는 저장 소자들을 소거 및 프로그래밍하는 방법을 도시한다. 단계(900)는 소거 동작 수행의 시작을 포함한다. 단계(901)는 소거 동작에서 사용되는 소거 펄스들의 수 NERASE를 식별하는 것을 포함한다. 이는 소거 펄스들의 카운트에 근거한 측정치(metric)의 예이다. 이 단계는 각각의 소거 시퀀스에 대해 개별적으로 수행될 수 있다. 또는, 마지막 몇개의 소거 시퀀스들에서 소거 펄스들 수의 연속 평균(rolling average)을 얻기위해서와 같이, 하나 이상의 앞선 소거 시퀀스들에 대한 히스토리컬 데이터가 사용될 수 있다. 단계(901)는, NERASE에 근거하여 메모리 디바이스, 또는 저장 소자들의 세트를 복수의 그룹들, 예를 들어, G1, G2, 및 G3 중 하나로 선택적으로 분류(categorizing)하는 것을 포함한다. 예를 들어, 도 5를 참조하면, 적은 수의 소거 펄스들이 프레시 디바이스(그룹 G1)와 상관될 수 있고, 중범위 수의 소거 펄스들이 중범위 디바이스(그룹 G2)와 상관될 수 있고, 그리고 높은 수의 소거 펄스들이 사이클된 디바이스(그룹 G3)와 상관될 수 있다. 단계(903)는 상기 그룹에 근거하여(또는 NERASE에 직접 근거하여) 검증 동작을 수행함이 없이 적용할 소프트 프로그래밍 펄스들의 수 NSPGM-SKIP를 설정하는 것을 포함한다. 단계(904)는 상기 그룹에 근거하여(또는 NERASE에 직접 근거하여) 소프트 프로그래밍 특성을 설정하는 것을 포함한다. 단계들(903, 904) 중 하나 또는 상기 두 단계들 모두가 수행될 수 있다. 단계들(900, 905, 906)에 대한 보다 자세한 사항은 도 9b, 9c, 및 도 15와 관련하여 각각 설명된다.
도 9b는 소거 동작에서 사용되는 소거 펄스들의 수를 카운팅하는 것과 후속적인 소프트 프로그래밍 동작에서의 스킵할 소프트 프로그래밍 검증 동작들의 수를 설정하는 것을 포함하는 소거 동작을 수행하는 방법을 도시한다. 소거 동작은 단계(910)에서 시작된다. 단계(912)에서 소거 펄스들(NERASE)의 수의 카운터가 1로 설정된다. 결정 단계(916)에서, NERASE가 소거 펄스들의 최대 허용 개수보다 크면, 단계(918)에서 실패가 선언된다. 결정 단계(916)가 거짓(false)이라면, 단계(920)에서 소거 펄스가 적용되고, 단계(922)에서 검증 동작이 수행된다. 한가지 가능한 실시예에서, 소거 검증 동작은 도 3의 VVERIFY-ERASE를 사용한다는 것을 상기하도록 한다. 결정 단계(924)에서, 검증이 성공적이라면, 예를 들어, 모든 또는 거의 모든 저장 소자들이 검증 레벨 VERASE VERIFY을 패스했다면, NERASE의 현재 값이 단계(926)에 저장되고, 소거 동작은 단계(928)에서 종료된다. 결정 단계(924)가 참인것은 제1 검증 조건이 만족됨을 나타낸다. 결정 단계(924)에서, 검증이 성공적이지 않다면, 단계(914)에서 NERASE가 증분되고, 그리고 결정 단계(916)에서 소거 펄스들의 최대 허용 개수가 초과되지 않는 한, 단계(920)에서 추가의 소거 펄스가 적용된다.
도 9c는 다수의 검증 동작들을 스킵함으로써 소프트 프로그래밍 동작을 수행하는 방법을 도시한다. 단계(930)에서 시작되는 소프트 프로그래밍 동작은, 소거 동작의 완료에 응답하여, 도 9b의 소거 동작 바로 뒤에 올 수 있다. 단계(932)는 NERASE에 근거하여 스킵할 소프트 프로그래밍 펄스들의 수(NSPGM-SKIP)를 결정하는 것을 포함한다. 이 단계는 소거 동작과 관련하여 대안적으로 수행될 수 있으며, 따라서, NSPGM-SKIP이 메모리 내에 저장되고 소프트 프로그래밍 동작에서의 사용을 위해 검색됨에 주목하여야 한다. 실제로, 소거 동작 및 후속하는 소프트 프로그래밍 동작은 소거 시퀀스의 일부로서 수행되며, 따라서 공통 프로세스의 일부이다. 선택적인 단계(934)는 NERASE에 근거하여 소프트 프로그래밍의 하나 이상의 특성들을 설정하는 것을 포함한다. 즉, 이 단계는 소거 동작과 관련하여 대안적으로 수행될 수 있으며, 따라서, 하나 이상의 특성들이 메모리 내에 저장되고 소프트 프로그래밍 동작에서의 사용을 위해 검색된다.
소프트 프로그래밍 펄스 수의 카운터, NSPGM는 단계(936)에서 1로 설정된다. 결정 단계(940)에서, NSPGM이 소프트 프로그래밍 펄스들의 최대 허용수보다 크다면, 단계(942)에서 실패가 선언된다. 결정 단계(940)가 거짓이라면, 소프트 프로그래밍 펄스가 단계(944)에 적용된다. 결정 단계(946)에서, NSGPM이 검증 스킵들의 수 NSPGM-SKIP 보다 크다면, 단계(948)에서 검증 동작이 수행된다. 이 시점에서, NSPGM 소프트 프로그래밍 펄스들은 검증 동작들을 수행함이 없이 앞서서 적용되었다. 소프트 프로그래밍 검증 동작이 도 3의 VVERIFY-SPGM을 사용한다는 것을 상기하기로 한다. 결정 단계(946)에서, NSPGM이 검증 스킵들의 수 NSPGM-SKIP보다 크지 않다면, 검증 동작은 수행되지 않는다. 이는 프로세스가 여전히 검증 스킵 단계에 있음을 의미한다. 검증 동작들을 수행하지 않음으로써, 소프트 프로그래밍 동작이 더 빠르게 수행될 수 있다. 결정 단계(946)에서 참이 아니면, 단계(938)에서 NSPGM이 증분되고, 결정 단계(940)에서 소프트 프로그래밍 펄스들의 최대 허용수가 초과되지 않는한 추가의 소프트 프로그래밍 펄스가 단계(944)에서 적용된다.
결정 단계(950)에서, 검증이 성공적이라면, 예를 들어, 모든 또는 거의 모든 저장 소자들이 검증 레벨 VSPGM VERIFY을 통과했다면, 소프트 프로그래밍 동작은 단계(952)에서 종료된다. 후속적으로, 레귤러 또는 하드 프로그래밍 동작에서, 저장 소자들은 더 높은 데이터 상태들, 예를 들어, A, B, 또는 C로 프로그래밍될 수 있다. 결정 단계(950)가 참인것는 제2 검증 조건이 만족됨을 나타낸다. 결정 단계(950)에서, 검증이 성공적이지 않다면, NSPGM은 단계(938)에서 증분되고, 단계(940)에서 소프트 프로그래밍 펄스들의 최대 허용수가 초과되지 않았다면, 단계(944)에서 추가의 소프트 프로그래밍 펄스가 적용된다.
도 10a는 소거 동작에서 스킵할 검증 동작들의 수를 결정하는 방법을 도시한다. 전의 소거 동작을 완료하는데 필요한 소거 펄스들의 수에 의해 결정될 수 있는 검출된 메모리 디바이스 동작에 따라, 소프트 프로그래밍 검증 동작들이 필요하지 않을 때 소프트 프로그래밍 검증 동작들을 스킵함으로써 소프트 프로그래밍 시간이 감소될 수 있다는 것이 위에서 논의되었다. 마찬가지로, 소거 검증 동작들이 필요하지 않을때 소거 검증 동작들을 수행하지 않음으로써 소거 동작 시간이 감소될 수 있다. 이는 단독으로 수행되거나, 소프트 프로그래밍 시간을 감소시키는 것 그리고/또는 디바이스의 현재 특성에 근거하여 소프트 프로그래밍의 특성들을 조정하기 위한 상기 언급된 기법들과 함께 수행될 수 있다. 예시적인 프로세스에서, 단계(1000)는 복수의 소거 동작들에서 사용되는 펄스들의 수를 식별하는 것을 포함한다. 단계(1002)는 각각의 동작에서 사용되는 소거 펄스들의 평균 수 NERASE-AVG를 계산하는 것을 포함한다. 단계(1004)는 검증 동작을 수행함이 없이 다음 소거 동작에 적용하기 위한 소거 펄스들의 수를 NERASE-SKIP=NERASE-AVG-NMARGIN 로 설정하는 것을 포함한다. 예를 들어, NMARGIN은 하나 또는 두개의 펄스들일 수 있다. 예로서, 사이클된 디바이스는 평균 4개의 소거 펄스들을 필요로하며, NMARGIN은 1개의 펄스로 설정될 수 있고, 그 경우에 NERASE-SKIP=4-1=3 이다. NERASE-SKIP은 또한, 복수의 앞선 소거 동작들로부터의 평균(average, mean) 또는 다른 계측치(metric) 보다 오히려 한개의 이전 소거 동작에 근거하여 설정될 수 있음에 주목하여야 한다.
미래의 디바이스들은, 예를 들어 8 내지 15개 까지의 소거 펄스들과 같은 더 많은 수의 소거 펄스들을 사용할 것으로 예상되므로, 소거 검증 동작들을 스킵하는 것으로부터의 시간 절약은 상당할 수 있따. 전력 소비가 또한 감소된다.
도 10b는 다수의 검증 동작들을 스킵함으로써 소거 동작을 수행하는 방법을 도시한다. 프로세스는 도 10a의 프로세스와 함께 수행될 수 있다. 소거 동작은 단계(1010)에서 시작된다. 단계(1012)에서 소거 펄스들 수의 카운터(NERASE)가 1로 설정된다. 결정 단계(1016)에서, NERASE가 소거 펄스들의 최대 허용수보다 크다면, 단계(1018)에서 실패가 선언된다. 결정 단계(1016)가 실패라면, 소거 펄스가 단계(1020)에서 적용된다. 결정 단계(1022)에서, NERASE가 소거 검증 스킵들의 수, NERASE-SKIP보다 크다면, 단계(1024)에서 검증 동작이 수행된다. 이 시점에서, 검증 동작들을 수행함이 없이 NERASE 개의 소거 펄스들이 앞서서 적용되었다. 소거 검증 동작이 도 3으로부터의 VVERIFY-ERASE를 사용한다는 것을 상기하도록 한다. 결정 단계(1022)에서, NERASE가 NERASE-SKIP보다 크지 않다면, 검증 동작이 수행되지 않는다. 이는 프로세스가 여전히 검증 스킵 단계에 있다는 것을 의미한다. 검증 동작들을 수행하지 않음으로써, 소거 동작이 더 빠르게 수행될 수 있다.
결정 단계(1022)가 거짓이면, 단계(1014)에서 NERASE가 증분되고, 결정 단계(1016)에서 소거 펄스들의 최대 허용수가 초과되지 않는한, 단계(1020)에서 추가의 소거 펄스가 적용된다. 결정 단계(1026)에서, 검증이 성공적이면, 소거 동작은 단계(1028)에서 완료된다. 결정 단계(1026)에서, 검증이 성공적이지 않으면, 단계(1014)에서 NERASE가 증분되고, 소거 펄스들의 최대 허용 수가 결정 단계(1016)에서 초과되지 않는 한 단계(1020)에서 추가의 소거 펄스가 적용된다.
소거 동작 시간을 감소시키기 위하여 그리고 또한 사용되는 소거 펄스들의 수 및 소프트 프로그래밍 검증 스킵들의 적정 수를 결정하기 위하여 도 9b 및 10b의 프로세스들이 결합될 수 있다는 것에 주목하여야 한다.
한가지 가능한 실시예에서, 상술된 기법들은 하기에서 보다 자세히 논의되는 바와 같이 NAND 메모리 디바이스와 함께 사용될 수 있다.
도 10c는 처음 세개의 펄스들에 검증 펄스이 뒤따르지 않는 일련의 소거 펄스들(1030)을 도시한다. 예를 들어, 일련의 펄스들(1030)에서, 첫번째 소거 검증 펄스(1032)는 4번째 소거 펄스 VERASE4 들 후에 그리고 각각의 연속적인 소거 펄스 후에 발생된다.
도 11은 도 1a 및 1b에 도시된 것과 같은 NAND 저장 소자들의 어레이(1100)의 예를 도시한다. 각각의 열을 따라, 비트 라인(1106)이 NAND 스트링(1150)의 드레인 선택 게이트의 드레인 단자(1126)에 연결된다. NAND 스트링들의 각각의 행을 따라, 소스 라인(1104)이 NAND 스트링들의 소스 선택 게이트들의 모든 소스 단자들(1128)을 연결할 수 있다.
저장 소자들의 어레이는 다수의 저장 소자 블록들로 분할된다. 플래시 EEPROM 시스템들에서 일반적인 바와 같이, 블록은 소거의 단위(unit)이다. 즉, 각각의 블록은 함께 소거되는 최소 수의 저장 소자들을 포함한다. 각각의 블록은 일반적으로 다수의 페이지들로 분할된다. 페이지는 프로그래밍의 최소 단위이다. 하나 이상의 데이터 페이지들은 일반적으로 저장 소자들의 일 행에 저장된다. 예를 들어, 행은 일반적으로 몇개의 인터리빙된(interleaved) 페이지들을 포함하거나 1 페이지를 구성할 수 있다. 한 페이지의 모든 저장 소자들이 함께 판독 또는 프로그래밍될 것이다. 또한, 페이지는 하나 이상의 섹터들로부터의 사용자 데이터를 저장할 수 있다. 섹터는 편리한 사용자 데이터 단위로서 호스트에 의해 사용되는 논리 개념이며, 일반적으로 제어기에 국한되는 오버헤드 데이터를 포함하지 않는다. 오버헤드 데이터는 섹터의 사용자 데이터로부터 계산된 ECC(에러 정정 코드)를 포함할 수 있다. 제어기의 부분(하기에서 설명됨)은, 데이터가 어레이로 프로그래밍될 때 ECC를 계산하며, 그리고 또한 데이터가 어레이로부터 판독될 때 ECC를 검사한다. 대안적으로, ECC들 및/또는 다른 오버헤드 데이터는 그것들이 적용되는 사용자 데이터와는 다른 페이지들 또는 심지어 다른 블록들에 저장된다.
사용자 데이터의 섹터는 일반적으로 자기 디스크 드라이브에서의 섹터의 사이즈에 대응하는 512 바이트이다. 오버헤드 데이터는 일반적으로 추가적인 16-20 바이트이다. 8 페이지 이상, 예를 들어, 32, 62, 128 이상의 페이지들과 같은 다수의 페이지들이 블록을 형성한다. 일부 실시예들에서, NAND 스트링들의 행은 블록을 포함한다.
일 실시예에서 메모리 저장 소자들은 충분한 시간 기간 동안 p-우물을 소거 전압(예를 들어, 14-22V)까지 상승시키고, 소스 및 비트 라인들이 플로팅인 상태에서 선택된 블록의 워드 라인들을 접지함으로써 소거된다. 용량성 커플링으로 인하여, 선택되지 않은 워드 라인들, 비트 라인들, 선택 라인들, 및 c-소스가 또한 소거 전압의 상당분(significant fraction)으로 상승한다. 따라서 강한 전계가 선택된 저장 소자들의 터널 산화물층들에 인가되며, 일반적으로 포울러-노드하임 터널링(Fowler-Nordheim tunneling) 메커니즘에 의해, 플로팅 게이트들의 전자들이 기판측으로 방출됨에 따라 선택된 저장 소자들의 데이터가 소거된다. 전자들이 플로팅 게이트로부터 p-우물 영역으로 전달됨에 따라, 선택된 저장 소자의 임계 전압이 낮아진다. 소거는 전체 메모리 어레이, 개별 블록들, 또는 저장 소자들의 또다른 유닛에 대해 수행될 수 있다.
도 12는 단일의 행/열 디코더들 및 판독/기록 회로들을 사용하는 비휘발성 메모리 시스템의 블록도이다. 이 도면은 본 발명의 일 실시예에 따라 저장 소자들의 페이지를 병렬로 판독 및 프로그래밍하기 위한 판독/기록 회로들을 구비한 메모리 디바이스(1296)를 도시한다. 메모리 디바이스(1296)는 하나 이상의 메모리 다이(1298)를 포함할 수 있다. 메모리 다이(1298)는 저장 소자들(1100)의 2차원 어레이, 제어 회로(1210), 및 판독/기록 회로들(1265)을 포함한다. 몇몇 실시예들에서, 저장 소자들의 어레이는 3차원일 수 있다. 메모리 어레이(1100)는 행 디코더(1230)를 통해 워드 라인들에 의해, 그리고 열 디코더(1260)를 통해 비트 라인들에 의해 어드레싱된다. 판독/기록 회로들(1265)은 복수의 감지 블록들(1200)을 포함하며, 저장 소자들의 페이지가 병렬로 판독 또는 프로그래밍될 수 있게 해준다. 일반적으로, 제어기(1250)는 하나 이상의 메모리 다이(1298)로서 동일한 메모리 디바이스(1296)(예를 들어, 제거가능 저장 카드)에 포함된다. 명령들 및 데이터는 라인들(1220)을 통해 호스트와 제어기(1250) 사이에서 그리고 라인들(1218)을 통해 제어기와 하나 이상의 메모리 다이(1298) 사이에서 전달된다.
제어 회로(1210)는 메모리 어레이(1100) 상의 메모리 동작들을 수행하기 위하여 판독/기록 회로들(1265)과 함께 작동한다. 제어 회로(1210)는 상태 머신(1212), 온-칩 어드레스 디코더(1214), 및 전력 제어 모듈(1216)를 포함한다. 상태 머신(1212)은 선-충전(pre-charging) 제어를 포함하는 메모리 동작들에 대한 칩레벨 제어를 제공한다. 온-칩 어드레스 디코더(1214)는 호스트 또는 메모리 제어기에 의해 사용되는 어드레스와 디코더들(1230, 1260)에 의해 사용되는 하드웨어 어드레스 사이의 어드레스 인터페이스를 제공한다. 전력 제어 모듈(1216)은 메모리 동작들 중에 워드 라인들 및 비트 라인들에 공급되는 전력 및 전압들을 제어한다.
일부 실시예들에서, 도 12의 일부 컴포넌트들은 결합될 수 있다. 다양한 설계에서, 저장 소자 어레이(1100) 외의 하나 이상의 컴포넌트들(단독으로 또는 결합하여)은 관리 회로로서 간주될 수 있다. 예를 들어, 하나 이상의 관리 회로들은 제어 회로(1210), 상태 머신(1212), 디코더들(1214/1260), 전력 제어(1216), 감지 블록들(1200), 판독/기록 회로들(1265), 제어기(1260) 중 하나 또는 이것들의 조합을 포함할 수 있다.
언급된 바와 같이, 적절한 데이터 구조들 및 제어 로직이, 예를 들어 메모리 칩 외부에 있는 또는 상기 칩 상에 있는 제어기 내에 구현될 수 있다.
또 다른 기법에서, 이중 행/열 디코더들 및 판독/기록 회로들이 사용된다. 다양한 주변 회로들에 의한 메모리 어레이(1100)로의 액세스가, 어레이의 대향 측들에서 대칭적인 형태로 구현되어, 각 측의 액세스 라인들 및 회로의 밀도는 절반으로 줄어든다. 따라서, 열 디코더는 2개의 열 디코더들로 분할되고 행 디코더는 2개의 행 디코더들로 분할된다. 마찬가지로, 판독/기록 회로들은 어레이(1100)의 하부(bottom)로부터의 비트 라인들에 연결되는 판독/기록 회로들과 어레이(1100)의 상부로부터의 비트 라인들에 연결되는 판독/기록 회로들로 분할된다. 이러한 식으로, 판독/기록 모듈들의 밀도가 본질적으로 절반으로 줄어든다.
도 13은 감지 블록의 일 실시예를 도시하는 블록도이다. 개별 감지 블록(1200)은 감지 모듈(1280)로 표시된 코어부, 및 공통부(1290)으로 나뉜다. 일 실시예에서, 각각의 비트 라인에 대해 개별적인 감지 모듈(1280)이, 그리고 복수의 감지 모듈들(1280)의 세트에 대해 하나의 공통부(1290)가 존재할 것이다. 일 실시예에서, 감지 블록은 하나의 공통부(1290) 및 8개의 감지 모듈들(1280)을 포함할 것이다. 그룹내의 감지 모듈들 각각은 데이터 버스(1272)를 통해 관련된 공통부와 통신할 것이다.
감지 모듈(1280)은 연결된 비트 라인에서의 전도 전류가 소정의 임계 레벨을 초과하는지 또는 소정의 임계 레벨 미만인지를 결정하는 감지 회로(1270)를 포함한다. 감지 모듈(1280)은 또한 연결된 비트 라인에 대한 전압 조건을 설정하는데 사용되는 비트 라인 래치(1282)를 포함한다. 예를 들어, 비트 라인 래치(1282)에 래치되는 소정의 상태는 결과적으로, 연결된 비트 라인을 프로그램 금지를 나타내는 상태(예를 들어, 1.5-3V)로 되게할 것이다.
공통부(1290)은 프로세서(1292), 데이터 래치들의 세트(1294), 및 데이터 래치들의 세트(1294)와 데이터 버스(1220) 사이에 결합된 VO 인터페이스(1296)을 포함한다. 프로세서(1292)는 연산을 수행한다. 예를 들어, 그것의 기능들 중 하나는 감지된 저장 소자 내에 저장된 데이터를 결정하여 상기 결정된 데이터를 데이터 래치들의 세트 내에 저장하는 것이다. 데이터 래치들의 세트(1294)는 판독 동작 둥안 프로세서(1292)에 의해 결정된 데이터 비트들을 저장하는데 사용된다. 그것은 또한 프로그램 동작 중에 데이터 버스(1220)로부터 유입(importing)된 데이터 비트들을 저장하는 데 사용된다. 유입된 데이터 비트들은 메모리 내에 프로그램될 기록 데이터를 나타낸다. I/O 인터페이스(1296)는 데이터 래치들(1294)과 데이터 버스(1220) 사이에 인터페이스를 제공한다.
판독 또는 감지 중에, 시스템의 동작은 서로 다른 제어 게이트 전압들을 어드레싱된 저장 소자에 공급하는 것을 제어하는 상태 머신(1212)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응하는 다양한 미리정의된 제어 게이트 전압들을 거침(step through)에 따라, 감지 모듈(1280)은 이 전압들 중 하나에 트립(trip)할 수 있고 버스(1272)를 통해 감지 모듈(1280)로부터 프로세서(1292)로 출력이 제공될 것이다. 그 시점에서, 프로세서(1292)는 입력 라인들(1293)을 통해 상태 머신으로부터 인가된 제어 게이트 전압에 대한 정보 및 감지 모듈의 트립핑 이벤트(들)을 고려하여 결과적인 메모리 상태를 결정한다. 그후 프로세서(1292)는 메모리 상태에 대한 바이너리 엔코딩을 연산하고 결과적인 데이터 비트들을 데이터 래치들(1294)에 저장한다. 코어부분의 또 다른 실시예에서, 비트 라인 래치(1282)는 감지 모듈(1280)의 출력을 래치하기 위한 래치로서, 그리고 상술된 것과 같은 비트 라인 래치로서의 두가지 역할을 수행한다.
몇몇 실시예들은 복수의 프로세서들(1292)을 포함할 것으로 예상된다. 일 실시예에서, 각각의 프로세서(1292)는 각각의 출력 라인들이 함께 와이어드-OR 되도록 된 출력 라인(도시되지 않음)을 포함할 것이다. 몇몇 실시예들에서, 출력 라인들은 와이어드-OR 라인에 연결되기 전에 인버팅된다. 이러한 구성은 프로그램 검증 프로세스 동안 언제 프로그래밍 공정이 완료된 때에 대한 빠른 결정을 가능하게 해주는바, 이는 와이어드-OR를 수신하는 상태 머신이, 프로그래밍되는 모든 비트들이 요구된 레벨에 도달했을 때를 결정할 수 있기때문이다. 예를 들어, 각각의 비트가 그것의 요구되는 레벨에 도달했을 때, 그 비트에 대한 논리 0이 와이어드-OR 라인으로 송신될 것이다(또는 데이터 1이 반전된다). 모든 비트들이 데이터 0을 출력할 때(또는 데이터 1이 반전될 때), 상태 머신은 프로그래밍 프로세스를 종료할 것을 인지한다. 각각의 프로세서가 8개의 감지 모듈들과 통신하기 때문에, 상태 머신은 와이어드-OR 라인을 8번 판독해야 하거나, 또는 상태 머신이 한번만 와이어드-OR 라인을 판독하게끔 관련 비트 라인들의 결과들을 축적하기 위하여 로직이 프로세서(1292)에 부가된다. 마찬가지로, 로직 레벨들을 정확하게 선택함으로써, 전역 상태 머신은, 제1 비트가 그것의 상태를 변경할 때와 그에 따라 알고리즘들을 변경할 때를 검출할 수 있다.
프로그래밍 또는 검증 중에, 프로그래밍될 데이터는 데이터 버스(1220)로부터 데이터 래치들(1294)의 세트 내에 저장된다. 상태 머신의 제어하의 프로그램 동작은, 어드레싱된 저장 소자들의 제어 게이트들에 인가되는 일련의 프로그래밍 전압 펄스들을 포함한다. 각각의 프로그래밍 펄스에는, 저장 소자가 요구된 저장 상태로 프로그래밍되었는지를 판단하기 위한 판독(read back)(검증)이 뒤따른다. 프로세서(1292)는 요구되는 메모리 상태와 관련하여 판독된 메모리 상태를 모니터링한다. 두 상태가 일치할 때, 프로세서(1292)는 비트 라인이 프로그램 금지를 나타내는 상태로 풀(pull)되도록 비트 라인 래치(1282)를 설정한다. 이것은 저장 소자의 제어 게이트 상에 프로그래밍 펄스들이 나타나더라도 비트 라인에 결합된 저장 소자들이 더 프로그래밍되는 것이 금지되게 한다. 다른 실시예들에서, 프로세서는 처음에 비트 라인 래치(1282)를 로딩하고, 감지 회로는 검증 프로세스 중에 그것을 금지 값으로 설정한다.
데이터 래치 스택(1294)은 감지 모듈에 대응하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(1280)당 3개의 데이터 래치들이 존재한다. 일부 구현예들에서(그러나, 반드시는 그러한 것은 아님), 데이터 래치들은 시프트 레지스터로서 구현되어 그 내부에 저장된 병렬 데이터가 데이터 버스(1220)를 위한 직렬 데이터로 변환되거나 그 반대의 경우도 가능하다. 바람직한 실시예에서, m 개의 저장 소자들의 판독/기록 블록에 대응하는 모든 데이터 래치들이 함께 링크되어 블록 시프트 레지스터를 형성할 수 있으며, 따라서 데이터 블록이 직렬 전송(serial transfer)에 의해 입력 또는 출력될 수 있다. 특히, 판독/기록 모듈들의 뱅크가 조정(adapt)되어, 그것의 데이터 래치들의 세트 각각은, 그것들이 마치 전체 판독/기록 블록을 위한 시프트 레지스터의 부분인 것처럼, 데이터를 데이터 버스 내로 또는 데이터 버스 외부로 순차적으로 시프트할 것이다.
도 14는 전체 비트 라인 메모리 구조 및 홀수 짝수 메모리 구조에 대하여, 메모리 어레이의 블록들로의 구성의 예를 도시한다. 메모리 어레이(1100)의 예시적인 구조들이 기술된다. 일 예로서, NAND 플래시 EEPROM은 1,024 블록들로 파티션되는 것으로 기술된다. 각각의 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 이 예에서는, 각각의 블록에서, 비트 라인들 BL0, BL1, ..., BL8511에 대응하는 8,512개의 열들이 존재한다. 전체 비트 라인(ABL) 구조(구조(1410)를 참조하는 일 실시예에서, 판독 및 프로그램 동작들 중에, 블록의 전체 비트 라인들이 동시에 선택될 수 있다. 공통 워드 라인을 따라 있으며 임의의 비트 라인에 연결된 저장 소자들이 동시에 프로그래밍될 수 있다.
제시된 예에서, 4개의 저장 소자들이 직렬로 연결되어 NAND 스트링을 형성한다. 각각의 NAND 스트링 내에 4개의 저장 소자들이 포함된 것으로 도시되지만, 4개보다 더 많거나 적은(예를 들어, 16, 32, 64 또는 다른 수) 저장 소자들이 사용될 수 있다. NAND 스트링의 일 단자는 드레인 선택 게이트(선택 게이트 드레인 라인들(SGD)에 연결됨)를 통해 대응하는 비트 라인에 연결되고, 또 다른 단자는 소스 선택 게이트(선택 게이트 소스 라인(SGS)에 연결됨)를 통해 c-소스에 연결된다.
홀수 짝수 구조(구조(1400))를 참조하는 또 다른 실시예에서, 비트 라인들은 짝수 비트 라인들(BLe)과 홀수 비트 라인들(BLo)로 분할된다. 홀수/짝수 비트 라인 아키텍쳐에서, 공통 워드 라인을 따라 있으며 홀수 비트 라인들에 연결된 저장 소자들이 한번에 프로그래밍되며, 공통 워드 라인을 따라 있으며 짝수 비트 라인들에 연결된 저장 소자들은 또 다른 시간에 프로그래밍된다. 이 예에서, 각각의 블록에는, 짝수 열들 및 홀수 열들로 분할되는 8,512개의 열들이 존재한다. 이 예에서, 4개의 저장 소자들이 직렬로 연결되어 NAND 스트링을 형성한다.
판독 및 프로그래밍 동작들의 일 구성 중에, 4,256개의 저장 소자들이 동시에 선택된다. 선택된 저장 소자들은 동일한 워드 라인 및 동일한 종류의 비트 라인(예를 들어, 짝수 또는 홀수 비트 라인)을 가진다. 따라서, 논리 페이지를 형성하는 532 데이터 바이트들이 동시에 판독되거나 프로그래밍될 수 있으며, 메모리의 일 블록이 적어도 8개의 논리 페이지들(각각 홀수 및 짝수 페이지들을 가진 4개의 워드 라인들)에 저장될 수 있다. 복수-상태 저장 소자들에서, 각각의 저장 소자가 2 비트의 데이터를 저장할 때, 이 2 비트들 각각은 서로 다른 페이지에 저장되며, 1 블록이 16개의 논리 페이지들을 저장한다. 다른 사이즈의 블록들 및 페이지들이 또한 사용될 수 있다.
ABL 또는 홀수 짝수 구조 모두에 대해, p-우물을 소거 전압(예를 들어, 20V)으로 상승시키고 선택된 블록의 워드 라인들을 접지시킴으로써 저장 소자들이 소거될 수 있다. 소스 및 비트 라인들은 플로팅상태이다. 전체 메모리 어레이, 개별 블록들, 또는 메모리 디바이스의 일부인 저장 소자들의 또 다른 유닛에 대해 소거가 행해질 수 있다. 전자들이 저장 소자들의 플로팅 게이트들로부터 p-우물 영역으로 이동되어, 저장 소자들의 VTH가 음이된다.
판독 및 검증 동작들에서, 선택 게이트들(SGD 및 SGS)이 2.5-4.5V 범위 내의 전압에 연결되고, 선택되지 않은 워드 라인들(예를 들어, WL2가 선택된 워드 라인일 때, WL0, WL1, WL3)은 판독 패스 전압 VREAD (일반적으로 4.5 내지 6V 범위 내의 전압)으로 상승되어 트랜지스터를 패스 게이트들로서 동작하게 한다. 선택된 워드 라인(WL2)이 전압에 연결되고, 상기 전압의 레벨이 각각의 판독 및 검증 동작에 대해 특정되는바, 이는 고려되는 저장 소자의 VTH가 그러한 레벨을 초과하는지 또는 그 미만인지를 결정하기 위한 것이다. 예를 들어, 2 레벨 저장 소자의 판독 동작에서, 선택된 워드 라인 WL2 은 접지될 수 있으며, 따라서 VTH가 0보다 높은지가 검출된다. 2 레벨 저장 소자에 대한 검증 동작에서, 선택된 워드 라인 WL2은 예를 들어, 0.8V에 연결되며, 따라서 VTH가 적어도 0.8V에 도달했는지 여부가 검증된다. 소스 및 p-우물은 0V에 있다. 짝수 비트 라인들(BLe)로 가정되는 선택된 비트 라인들은 예를 들어, 0.7V의 레벨로 선충전된다. VTH가 워드 라인에 대한 판독 또는 검증 레벨보다 높다면, 관심 저장 소자와 관련(association)된 비트 라인(BLe)의 전위 레벨은, 도비전도성(non-conductive) 저장 소자 때문에, 고 레벨을 유지한다. 반면, VTH가 판독 또는 검증 레벨 미만이면, 전도성 저장 소자가 비트 라인을 방전시키기 때문에, 고려되는 비트 라인(BLe)의 전위 레벨은 저 레벨, 예를 들어 0.5V 미만으로 감소된다. 따라서, 저장 소자의 상태는 비트 라인에 연결된 전압 비교기 감지 증폭기에 의해 검출될 수 있다.
도 15는 비휘발성 메모리를 프로그래밍하는 방법의 일 실시예를 도시하는 순서도이다. 언급한 바와 같이, 소거 시퀀스가 완료된 후, 소거 상태를 초과하는 더 높은 데이터 상태들로의 프로그래밍이 발생할 수 있다. 일 실시예에서, 저장 소자들은 프로그래밍 전에 (블록 단위 또는 다른 단위들로) 소거된다. 단계(1500)에서, 제어기 및 제어기 회로(1210)에 의해 수신된 입력에 의해 "데이터 로드" 명령이 발행된다(도 12 참조). 단계(1505)에서, 페이지 어드레스를 지정하는 어드레스 데이터가 제어기 또는 호스트로부터 디코더(1214)에 입력된다. 단계(1510)에서, 어드레싱된 페이지에 대한 프로그램 데이터의 페이지가 프로그래밍을 위해 데이터 버퍼에 입력된다. 그 데이터는 적절한 래치들의 세트에 래칭된다. 단계(1515)에서, 제어기에 의해 상태 머신(1212)에 "프로그램" 명령이 발행된다.
"프로그램" 명령에 의해 트리거링되어, 단계(1510)에서 래치된 데이터가, 적절한 선택된 워드 라인에 인가된 계단형(stepped) 프로그램 펄스들을 사용하여, 상태 머신(1212)에 의해 제어되는 선택된 저장 소자들에 프로그래밍된다. 단계(1520)에서, 프로그램 전압 VPGM이 시작 펄스(예를 들어, 12V 또는 다른 값)로 초기화되고, 상태 머신(1212)에 의해 유지되는 프로그램 카운터(PC)는 0으로 초기화된다. 단계(1530)에서, 제1 VPGM 펄스가 선택된 워드 라인에 인가되어 상기 선택된 워드 라인과 관련된 저장 소자들의 프로그래밍을 시작한다. 특정 데이터 래치 내에 논리 "0"이 저장되어 대응하는 저장 소자가 프로그래밍되어야 함을 나타낸다면, 대응하는 비트 라인이 접지된다. 반면, 논리 "1"이 특정 래치에 저장되어 대응하는 저장 소자가 그것의 현재 데이터 상태로 유지되어야 함을 나타낸다면, 대응하는 비트 라인이 1.5-3 V에 연결되어 프로그래밍을 금지한다.
단계(1535)에서, 선택된 저장 소자들의 상태들이 검증된다. 선택된 저장 소자의 타겟 임계 전압이 적정 레벨에 도달하였음이 검출되면, 대응하는 데이터 래치 내에 저장된 데이터는 논리 "1"로 변경된다. 만약 임계 전압이 적정 레벨에 도달하지 않았음이 검출되면, 대응하는 데이터 래치 내에 저장된 데이터는 변경되지 않는다. 이러한 식으로, 대응하는 데이터 래치 내에 논리 "1"이 저장된 비트라인은 프로그래밍될 필요가 없다. 데이터 래치들 전체가 논리 "1"을 저장할 때, 상태 머신(상술된 와이어드-OR 타입 메커니즘)은 모든 선택된 저장 소자들이 프로그래밍되었음을 인지한다. 단계(1540)에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있는지에 대한 검사가 이루어진다. 모든 데이터 래치들이 논리 "1"을 저장하고 있다면, 모든 선택된 저장 소자들이 프로그래밍되었고 검증되었으므로 프로그래밍 프로세스는 완료되며 성공적인 것이된다. 단계(1545)에서 "패스" 상태가 보고된다. 일부 실시예들에서는, 선택된 저장 소자들 모두가 프로그래밍된것으로 검증되지는 않았다하더라도, 프로그래밍 프로세스가 완료되고 성공적인 것으로 간주된다. 그러한 경우, 불충분한 프로그래밍된 저장 소자들로 인하여 후속적인 판독 동작들 동안 에러들이 발생할 수 있다. 그러나 이 에러들은 ECC에 의해 정정될 수 있다.
만약, 단계(1540)에서, 모든 데이터 래치들 논리 "1"을 저장하는 것은 아님이 결정되면, 프로그래밍 프로세스가 계속된다. 일부 실시예들에서는, 모든 데이터 래치들이 논리 "1"을 저장하는 것은 아니더라도 프로그래밍 프로세스가 중단된다. 단계(1550)에서, 프로그램 제한값 PCmax에 대해 프로그램 카운터(PC)가 검사된다. 프로그램 제한 값의 일 예는 20이다. 그러나, 다른 수들이 또한 사용될 수 있다. 만약 프로그램 카운터(PC)가 PCmax보다 작지 않으면, 프로그래밍 프로세스는 실패하며 단계(1555)에서 "FAIL" 상태가 보고된다. 만약 프로그램 카운터(PC)가 PCmax보다 작으면, 단계(1560)에서 VPGM이 스텝 사이즈만큼 증가되고 프로그램 카운터(PC)가 증분된다. 그후 프로세스는 다음 VPGM 펄스를 적용하기 위하여 단계(1530)으로 되돌아간다.
도 16a는 프로그래밍 중에 비휘발성 저장 소자들의 제어 게이트들에 인가되는 예시적인 펄스 트레인을 도시하며, 여기서 홀수 및 짝수 비트 라인들에 대해 검증 동작들이 동시에 수행된다. 펄스 트레인(1600)은 프로그래밍을 위해 선택된 워드 라인에 인가되는 일련의 프로그램 펄스들(1602, 1604, 1606, 1608, 1610)을 포함한다. 일 실시예에서, 프로그래밍 펄스들은, 12V에서 시작하고 예를 들어, 20-25V의 최대값에 도달할 때까지 각각의 연속적인 프로그래밍 펄스들에 대해 증분값, 예를 들어 0.5V만큼 증가하는 전압 VPGM1을 가진다. 프로그램 펄스들 사이에는 검증 펄스들, 예를 들어, 3개의 검증 펄스들이 존재한다. 일부 실시예들에서, 데이터가, 예를 들어, 상태 A, B 및 C로 프로그래밍되고 있는 각각의 상태에 대한 검증 펄스가 존재할 수 있다. 다른 실시예들에서, 더 많은 또는 더 적은 검증 펄스들이 존재할 수 있다. 각각의 세트 내의 검증 펄스들은, 예를 들어, VVERIFY-A, VVERIFY-B 및 VVERIFY-C (도 3)의 진폭들을 가질 수 있다. 예시적인 검증 펄스들(1603)의 세트가 홀수 및 짝수 비트 라인들 모두의 저장 소자들에 적용된다.
도 16b는 프로그래밍 중에 비휘발성 저장 소자들의 제어 게이트들에 적용되는 예시적인 펄스 트레인을 도시하며, 여기서 검증 동작들은 홀수 및 짝수 비트 라인들에 대해 개별적으로 수행된다. 펄스 트레인(1640)은 프로그래밍을 위해 선택된 워드 라인에 인가되는 일련의 펄스들(1642, 1644, 1646, 1648, 1650, ...,)을 포함한다. 예시적인 검증 펄스들의 세트(1643)는 홀수 비트 라인들의 저장 소자들에 적용되고 예시적인 검증 펄스들의 세트(1645)는 짝수 비트 라인들의 저장 소자들에 적용된다.
앞에서 설명된 본 발명의 세부적인 설명은 예시 및 설명의 목적으로 제공된 것이다. 본 발명을 개시되는 이러한 형태에 정확히 한정시키려 하거나 이러한 형태만이 본 발명의 전부가 되도록 의도된 것이 아니다. 상기의 설명으로부터 많은 수정 및 변경이 가능하다. 상기 설명된 실시예들은 본 발명의 원리 및 그 실제 응용을 가장 잘 설명하기 위해서, 그러므로써 본 발명의 기술분야에서 숙련된 기술을 가진자들이 다양한 실시예 및 고려되는 특별한 사용에 적합한 다양한 수정을 통해 본 발명을 가장 잘 이용할 수 있도록 하기 위해서 선택되었다. 본 발명의 범위는 본 명세서에 첨부되는 특허청구범위에 의해 정의되도록 의도되었다
Claims (15)
- 비휘발성 저장소자를 동작시키는(operating) 방법으로서,
제1 검증 조건(Verase verify)이 만족될 때까지 하나 이상의 소거 펄스들(Verase1-Verase8)을 비휘발성 저장 소자들의 세트(1100)에 인가하는 단계와;
상기 인가된 소거 펄스들의 카운트(count)(Nerase)를 결정하는 단계와;
검증 동작들을 수행함이 없이 Nspgm-skip개의 하나 이상의 소프트 프로그래밍 펄스들(Vspgm1-Vspgm5)을 상기 비휘발성 저장 소자들의 세트에 인가하고, 여기서 상기 Nspgm-skip은 상기 카운트에 근거하며, 그리고 후속적으로, 제2 검증 조건(Vspgm verify)이 만족될때까지 상기 비휘발성 저장 소자들의 세트에 하나 이상의 추가적인 소프트 프로그래밍 펄스들(Vspgm6-Vspgm15)을 인가하는 단계를 포함하며, 여기서 상기 하나 이상의 추가적인 소프트 프로그래밍 펄스들의 각각의 소프트 프로그래밍 펄스에는 검증 동작(710, 712, 714, 810, 812)이 뒤따르는 것을 특징으로하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
상기 카운트에 근거하여 상기 비휘발성 저장 소자들의 세트를 복수의 사용가능한 그룹들(G1, G2, G3) 중의 한 그룹으로 분류하는 단계를 더 포함하며, 여기서 Nspgm-skip은 상기 비휘발성 저장 소자들의 세트가 분류된 그룹에 근거한 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
상기 제2 검증 조건이 만족됨에 응답하여, 상기 세트 내의 비휘발성 저장 소자들 중 적어도 하나를 더 높은 데이터 상태(A, B, C)로 프로그래밍하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
Nspgm-skip은 복수의 소거 동작들에 적용된 소거 펄스들의 카운트(1002)에 근거한 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
상기 비휘발성 저장 소자들의 세트는 상기 제1 검증 조건이 만족될 때, 적어도 부분적으로, 소거 상태(442) 보다 낮은 제1 임계 전압 분포(440)를 가지고, 그리고 상기 제2 검증 조건이 만족될 때 상기 소거 상태에서 더 촘촘한 임계 전압 분포(442)를 가지는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
상기 하나 이상의 소프트 프로그래밍 펄스들 중 제1 소프트 프로그래밍 펄스(Vspgm1)의 레벨(고, 중, 저)은 상기 카운트를 근거로 설정되는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
상기 하나 이상의 소프트 프로그래밍 펄스들의 스텝 사이즈(△V1, △V2, △V3)는 상기 카운트에 근거하여 설정되는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
상기 하나 이상의 소프트 프로그래밍 펄스들의 펄스 폭(t1, t2, t3)은 상기 카운트에 근거하여 설정되는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항에 있어서,
소프트 프로그래밍 펄스들의 개수에 대한 최대 한계값(허용되는 최대값)은 상기 카운트에 근거하여 설정되는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제1 항 내지 9 항 중 어느 한 항에 있어서,
상기 하나 이상의 소거 펄스들을 인가하는 단계는, 제1 소거 시퀀스의 소거 동작(700, 712)의 일부이며, 그리고 상기 Nspgm-skip개의 소프트 프로그래밍 펄스를 인가하는 단계는 상기 제1 소거 시퀀스의 소프트 프로그래밍 동작 (800, 820, 840, 860, 880)의 일부인 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 제10 항에 있어서,
상기 카운트에 근거하여 다수의 소거 검증 펄스들이 스킵되는 제2 소거 시퀀스의 추가적인 소거 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 소자를 동작시키는 방법. - 비휘발성 저장 장치로서,
비휘발성 저장 소자들의 세트(1100)와;
제1 검증 조건(Verase verify)이 만족될 때까지 상기 비휘발성 저장 소자들의 세트에 하나 이상의 소거 펄스들(Verase1-Verase8)을 인가하기 위한 수단(1210, 1250)과;
인가된 소거 펄스들의 카운트(Nerase)를 결정하기 위한 수단(1210, 1250)과; 그리고
검증 동작들을 수행함이 없이 Nspgm-skip개의 하나 이상의 소프트 프로그래밍 펄스들(Vspgm1-Vspgm5)을 상기 비휘발성 저장 소자들의 세트에 인가하고, 여기서 상기 Nspgm-skip은 상기 카운트에 근거하며, 그리고 후속적으로, 제2 검증 조건(Vspgm verify)이 만족될때까지 상기 비휘발성 저장 소자들의 세트에 하나 이상의 추가적인 소프트 프로그래밍 펄스들(Vspgm6-Vspgm15)을 인가하기 위한 수단(1210, 1250)을 포함하여 구성되며, 여기서 상기 하나 이상의 추가적인 소프트 프로그래밍 펄스들의 각각의 소프트 프로그래밍 펄스에는 검증 동작(710, 712, 714, 810, 812)이 뒤따르는 것을 특징으로 하는 비휘발성 저장 장치. - 제12 항에 있어서,
상기 비휘발성 저장 소자들의 세트를 상기 카운트에 근거하여 복수의 사용가능한 그룹들 중의 1 그룹(G1, G2, G3)으로 분류하는 수단을 더 포함하며, 여기서 Nspgm-skip은 상기 비휘발성 저장 소자들의 세트가 분류된 그룹에 근거한 것을 특징으로 하는 비휘발성 저장 장치. - 제12 항에 있어서,
상기 하나 이상의 소거 펄스들을 인가하는 단계는 제1 소거 시퀀스의 소거 동작(700, 713)의 일부이고, 상기 Nspgm-skip개의 하나 이상의 소프트 프로그래밍 펄스들을 인가하는 단계는 상기 제1 소거 시퀀스의 소프트 프로그래밍 동작(800, 820, 840, 860, 880)의 일부인 것을 특징으로 하는 비휘발성 저장 장치. - 제12 내지 14 항 중 임의의 한 항에 있어서,
상기 하나 이상의 소프트 프로그래밍 펄스들 중 적어도 하나의 펄스의 펄스 폭(t1, t2, t3), 스텝 사이즈(△V1, △V2, △V3), 레벨 (고, 중, 저) 중 적어도 하나는 상기 카운트에 근거하여 설정되는 것을 특징으로 하는 비휘발성 저장 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/332,646 US7839690B2 (en) | 2008-12-11 | 2008-12-11 | Adaptive erase and soft programming for memory |
US12/332,646 | 2008-12-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110106874A KR20110106874A (ko) | 2011-09-29 |
KR101565563B1 true KR101565563B1 (ko) | 2015-11-03 |
Family
ID=41347840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020117015947A KR101565563B1 (ko) | 2008-12-11 | 2009-09-23 | 메모리에 대한 적응적 소거 및 소프트 프로그래밍 |
Country Status (7)
Country | Link |
---|---|
US (2) | US7839690B2 (ko) |
EP (1) | EP2368248B1 (ko) |
JP (1) | JP5250117B2 (ko) |
KR (1) | KR101565563B1 (ko) |
CN (1) | CN102292775B (ko) |
TW (1) | TWI494931B (ko) |
WO (1) | WO2010068323A1 (ko) |
Families Citing this family (128)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8189396B2 (en) | 2006-12-14 | 2012-05-29 | Mosaid Technologies Incorporated | Word line driver in a hierarchical NOR flash memory |
KR101348173B1 (ko) * | 2007-05-25 | 2014-01-08 | 삼성전자주식회사 | 플래시 메모리 장치, 그것의 소거 및 프로그램 방법들,그리고 그것을 포함한 메모리 시스템 |
WO2009095902A2 (en) | 2008-01-31 | 2009-08-06 | Densbits Technologies Ltd. | Systems and methods for handling immediate data errors in flash memory |
WO2009037697A2 (en) | 2007-09-20 | 2009-03-26 | Densbits Technologies Ltd. | Improved systems and methods for determining logical values of coupled flash memory cells |
US8694715B2 (en) | 2007-10-22 | 2014-04-08 | Densbits Technologies Ltd. | Methods for adaptively programming flash memory devices and flash memory systems incorporating same |
WO2009053961A2 (en) | 2007-10-25 | 2009-04-30 | Densbits Technologies Ltd. | Systems and methods for multiple coding rates in flash devices |
WO2009072105A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | A low power chien-search based bch/rs decoding system for flash memory, mobile communications devices and other applications |
US8453022B2 (en) | 2007-12-05 | 2013-05-28 | Densbits Technologies Ltd. | Apparatus and methods for generating row-specific reading thresholds in flash memory |
WO2009072103A2 (en) | 2007-12-05 | 2009-06-11 | Densbits Technologies Ltd. | Flash memory apparatus and methods using a plurality of decoding stages including optional use of concatenated bch codes and/or designation of 'first below' cells |
WO2009074979A2 (en) | 2007-12-12 | 2009-06-18 | Densbits Technologies Ltd. | Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications |
US8359516B2 (en) | 2007-12-12 | 2013-01-22 | Densbits Technologies Ltd. | Systems and methods for error correction and decoding on multi-level physical media |
WO2009078006A2 (en) | 2007-12-18 | 2009-06-25 | Densbits Technologies Ltd. | Apparatus for coding at a plurality of rates in multi-level flash memory systems, and methods useful in conjunction therewith |
US8972472B2 (en) | 2008-03-25 | 2015-03-03 | Densbits Technologies Ltd. | Apparatus and methods for hardware-efficient unbiased rounding |
US8332725B2 (en) | 2008-08-20 | 2012-12-11 | Densbits Technologies Ltd. | Reprogramming non volatile memory portions |
US7839690B2 (en) * | 2008-12-11 | 2010-11-23 | Sandisk Corporation | Adaptive erase and soft programming for memory |
US8250417B2 (en) * | 2009-01-14 | 2012-08-21 | Micron Technology, Inc. | Method for detecting flash program failures |
KR101005145B1 (ko) * | 2009-03-06 | 2011-01-04 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 프로그램 방법 |
US8819385B2 (en) | 2009-04-06 | 2014-08-26 | Densbits Technologies Ltd. | Device and method for managing a flash memory |
US8458574B2 (en) | 2009-04-06 | 2013-06-04 | Densbits Technologies Ltd. | Compact chien-search based decoding apparatus and method |
US8566510B2 (en) | 2009-05-12 | 2013-10-22 | Densbits Technologies Ltd. | Systems and method for flash memory management |
JP5316299B2 (ja) * | 2009-08-07 | 2013-10-16 | 富士通セミコンダクター株式会社 | 半導体メモリ、システムおよび半導体メモリの動作方法 |
US8305812B2 (en) * | 2009-08-26 | 2012-11-06 | Densbits Technologies Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8995197B1 (en) | 2009-08-26 | 2015-03-31 | Densbits Technologies Ltd. | System and methods for dynamic erase and program control for flash memory device memories |
US9330767B1 (en) * | 2009-08-26 | 2016-05-03 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory module and method for programming a page of flash memory cells |
US8868821B2 (en) | 2009-08-26 | 2014-10-21 | Densbits Technologies Ltd. | Systems and methods for pre-equalization and code design for a flash memory |
US8730729B2 (en) | 2009-10-15 | 2014-05-20 | Densbits Technologies Ltd. | Systems and methods for averaging error rates in non-volatile devices and storage systems |
US8724387B2 (en) | 2009-10-22 | 2014-05-13 | Densbits Technologies Ltd. | Method, system, and computer readable medium for reading and programming flash memory cells using multiple bias voltages |
US8626988B2 (en) | 2009-11-19 | 2014-01-07 | Densbits Technologies Ltd. | System and method for uncoded bit error rate equalization via interleaving |
US9037777B2 (en) | 2009-12-22 | 2015-05-19 | Densbits Technologies Ltd. | Device, system, and method for reducing program/read disturb in flash arrays |
US8607124B2 (en) | 2009-12-24 | 2013-12-10 | Densbits Technologies Ltd. | System and method for setting a flash memory cell read threshold |
US8700970B2 (en) | 2010-02-28 | 2014-04-15 | Densbits Technologies Ltd. | System and method for multi-dimensional decoding |
US9104610B2 (en) | 2010-04-06 | 2015-08-11 | Densbits Technologies Ltd. | Method, system and medium for analog encryption in a flash memory |
US8527840B2 (en) | 2010-04-06 | 2013-09-03 | Densbits Technologies Ltd. | System and method for restoring damaged data programmed on a flash device |
US8745317B2 (en) | 2010-04-07 | 2014-06-03 | Densbits Technologies Ltd. | System and method for storing information in a multi-level cell memory |
US9021177B2 (en) | 2010-04-29 | 2015-04-28 | Densbits Technologies Ltd. | System and method for allocating and using spare blocks in a flash memory |
JP2011258260A (ja) * | 2010-06-07 | 2011-12-22 | Toshiba Corp | 不揮発性半導体記憶装置 |
US8510639B2 (en) | 2010-07-01 | 2013-08-13 | Densbits Technologies Ltd. | System and method for multi-dimensional encoding and decoding |
US8539311B2 (en) | 2010-07-01 | 2013-09-17 | Densbits Technologies Ltd. | System and method for data recovery in multi-level cell memories |
JP5566797B2 (ja) * | 2010-07-02 | 2014-08-06 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US20120008414A1 (en) | 2010-07-06 | 2012-01-12 | Michael Katz | Systems and methods for storing, retrieving, and adjusting read thresholds in flash memory storage system |
US8351276B2 (en) * | 2010-07-13 | 2013-01-08 | Freescale Semiconductor, Inc. | Soft program of a non-volatile memory block |
US8964464B2 (en) | 2010-08-24 | 2015-02-24 | Densbits Technologies Ltd. | System and method for accelerated sampling |
US8508995B2 (en) | 2010-09-15 | 2013-08-13 | Densbits Technologies Ltd. | System and method for adjusting read voltage thresholds in memories |
JP2012069186A (ja) * | 2010-09-22 | 2012-04-05 | Toshiba Corp | 不揮発性半導体記憶装置 |
US9063878B2 (en) | 2010-11-03 | 2015-06-23 | Densbits Technologies Ltd. | Method, system and computer readable medium for copy back |
US8850100B2 (en) | 2010-12-07 | 2014-09-30 | Densbits Technologies Ltd. | Interleaving codeword portions between multiple planes and/or dies of a flash memory device |
US8391068B2 (en) * | 2010-12-20 | 2013-03-05 | Texas Instruments Incorporated | Adaptive programming for flash memories |
US10079068B2 (en) | 2011-02-23 | 2018-09-18 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Devices and method for wear estimation based memory management |
US8693258B2 (en) | 2011-03-17 | 2014-04-08 | Densbits Technologies Ltd. | Obtaining soft information using a hard interface |
US8990665B1 (en) | 2011-04-06 | 2015-03-24 | Densbits Technologies Ltd. | System, method and computer program product for joint search of a read threshold and soft decoding |
JP4902002B1 (ja) | 2011-04-20 | 2012-03-21 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US8996790B1 (en) | 2011-05-12 | 2015-03-31 | Densbits Technologies Ltd. | System and method for flash memory management |
US9396106B2 (en) | 2011-05-12 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9195592B1 (en) | 2011-05-12 | 2015-11-24 | Densbits Technologies Ltd. | Advanced management of a non-volatile memory |
US9372792B1 (en) | 2011-05-12 | 2016-06-21 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Advanced management of a non-volatile memory |
US9501392B1 (en) | 2011-05-12 | 2016-11-22 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of a non-volatile memory module |
US9110785B1 (en) | 2011-05-12 | 2015-08-18 | Densbits Technologies Ltd. | Ordered merge of data sectors that belong to memory space portions |
US8667211B2 (en) | 2011-06-01 | 2014-03-04 | Densbits Technologies Ltd. | System and method for managing a non-volatile memory |
US8456911B2 (en) | 2011-06-07 | 2013-06-04 | Sandisk Technologies Inc. | Intelligent shifting of read pass voltages for non-volatile storage |
US8588003B1 (en) | 2011-08-01 | 2013-11-19 | Densbits Technologies Ltd. | System, method and computer program product for programming and for recovering from a power failure |
US8553468B2 (en) * | 2011-09-21 | 2013-10-08 | Densbits Technologies Ltd. | System and method for managing erase operations in a non-volatile memory |
US8488382B1 (en) * | 2011-12-21 | 2013-07-16 | Sandisk Technologies Inc. | Erase inhibit for 3D non-volatile memory |
US8947941B2 (en) | 2012-02-09 | 2015-02-03 | Densbits Technologies Ltd. | State responsive operations relating to flash memory cells |
US8996788B2 (en) | 2012-02-09 | 2015-03-31 | Densbits Technologies Ltd. | Configurable flash interface |
US8996793B1 (en) | 2012-04-24 | 2015-03-31 | Densbits Technologies Ltd. | System, method and computer readable medium for generating soft information |
US8838937B1 (en) | 2012-05-23 | 2014-09-16 | Densbits Technologies Ltd. | Methods, systems and computer readable medium for writing and reading data |
US8879325B1 (en) | 2012-05-30 | 2014-11-04 | Densbits Technologies Ltd. | System, method and computer program product for processing read threshold information and for reading a flash memory module |
US8971125B2 (en) | 2012-07-02 | 2015-03-03 | Micron Technology, Inc. | Erase operations with erase-verify voltages based on where in the erase operations an erase cycle occurs |
KR102009435B1 (ko) * | 2012-08-24 | 2019-08-12 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
US9921954B1 (en) | 2012-08-27 | 2018-03-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Method and system for split flash memory management between host and storage controller |
US9368225B1 (en) | 2012-11-21 | 2016-06-14 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Determining read thresholds based upon read error direction statistics |
US9069659B1 (en) | 2013-01-03 | 2015-06-30 | Densbits Technologies Ltd. | Read threshold determination using reference read threshold |
US8971128B2 (en) | 2013-01-31 | 2015-03-03 | Sandisk Technologies Inc. | Adaptive initial program voltage for non-volatile memory |
US9070474B2 (en) | 2013-02-14 | 2015-06-30 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US9240224B2 (en) | 2013-04-30 | 2016-01-19 | Freescale Semiconductor, Inc. | Non-volatile memory (NVM) with variable verify operations |
US8879330B1 (en) * | 2013-04-30 | 2014-11-04 | Freescale Semiconductor, Inc. | Non-volatile memory (NVM) with variable verify operations |
US9183940B2 (en) | 2013-05-21 | 2015-11-10 | Aplus Flash Technology, Inc. | Low disturbance, power-consumption, and latency in NAND read and program-verify operations |
US9136876B1 (en) | 2013-06-13 | 2015-09-15 | Densbits Technologies Ltd. | Size limited multi-dimensional decoding |
WO2014210424A2 (en) | 2013-06-27 | 2014-12-31 | Aplus Flash Technology, Inc. | Novel nand array architecture for multiple simultaneous program and read |
WO2015013689A2 (en) | 2013-07-25 | 2015-01-29 | Aplus Flash Technology, Inc. | Nand array hiarchical bl structures for multiple-wl and all -bl simultaneous erase, erase-verify, program, program-verify, and read operations |
US9343172B2 (en) | 2013-08-13 | 2016-05-17 | Freescale Semiconductor, Inc. | Extended protection for embedded erase of non-volatile memory cells |
US9293205B2 (en) | 2013-09-14 | 2016-03-22 | Aplus Flash Technology, Inc | Multi-task concurrent/pipeline NAND operations on all planes |
US9413491B1 (en) | 2013-10-08 | 2016-08-09 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for multiple dimension decoding and encoding a message |
US9348694B1 (en) | 2013-10-09 | 2016-05-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9786388B1 (en) | 2013-10-09 | 2017-10-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Detecting and managing bad columns |
US9397706B1 (en) | 2013-10-09 | 2016-07-19 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System and method for irregular multiple dimension decoding and encoding |
WO2015100434A2 (en) | 2013-12-25 | 2015-07-02 | Aplus Flash Technology, Inc | A HYBRID NAND WITH ALL-BL m-PAGE OPERATION SCHEME |
US9536612B1 (en) | 2014-01-23 | 2017-01-03 | Avago Technologies General Ip (Singapore) Pte. Ltd | Digital signaling processing for three dimensional flash memory arrays |
US10120792B1 (en) | 2014-01-29 | 2018-11-06 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Programming an embedded flash storage device |
KR102116674B1 (ko) * | 2014-03-21 | 2020-06-08 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그것을 포함하는 저장 장치 및 그것의 동작 방법 |
CN105006252A (zh) * | 2014-04-17 | 2015-10-28 | 晶豪科技股份有限公司 | 抹除非易失性存储器的方法 |
US9542262B1 (en) | 2014-05-29 | 2017-01-10 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Error correction |
US9892033B1 (en) | 2014-06-24 | 2018-02-13 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Management of memory units |
US9972393B1 (en) | 2014-07-03 | 2018-05-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Accelerating programming of a flash memory module |
US9584159B1 (en) | 2014-07-03 | 2017-02-28 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Interleaved encoding |
US9449702B1 (en) | 2014-07-08 | 2016-09-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Power management |
WO2016014731A1 (en) | 2014-07-22 | 2016-01-28 | Aplus Flash Technology, Inc. | Yukai vsl-based vt-compensation for nand memory |
US9257191B1 (en) | 2014-08-29 | 2016-02-09 | Sandisk Technologies Inc. | Charge redistribution during erase in charge trapping memory |
US9524211B1 (en) | 2014-11-18 | 2016-12-20 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Codeword management |
US9552885B2 (en) | 2014-12-10 | 2017-01-24 | Sandisk Technologies Llc | Partial block erase for open block reading in non-volatile memory |
US9543023B2 (en) | 2015-01-23 | 2017-01-10 | Sandisk Technologies Llc | Partial block erase for block programming in non-volatile memory |
US10305515B1 (en) | 2015-02-02 | 2019-05-28 | Avago Technologies International Sales Pte. Limited | System and method for encoding using multiple linear feedback shift registers |
CN105989895B (zh) * | 2015-02-03 | 2019-03-15 | 华邦电子股份有限公司 | 快闪存储器晶圆测试方法以及机台 |
US9343160B1 (en) | 2015-02-11 | 2016-05-17 | Sandisk Technologies Inc. | Erase verify in non-volatile memory |
US9236139B1 (en) | 2015-02-11 | 2016-01-12 | Sandisk Technologies Inc. | Reduced current program verify in non-volatile memory |
KR20160108770A (ko) | 2015-03-06 | 2016-09-20 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
US10628255B1 (en) | 2015-06-11 | 2020-04-21 | Avago Technologies International Sales Pte. Limited | Multi-dimensional decoding |
CN106328212B (zh) * | 2015-07-01 | 2019-09-24 | 华邦电子股份有限公司 | 快闪存储器晶片测试方法以及中测台 |
US9851921B1 (en) | 2015-07-05 | 2017-12-26 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Flash memory chip processing |
FR3039921B1 (fr) * | 2015-08-06 | 2018-02-16 | Stmicroelectronics (Rousset) Sas | Procede et systeme de controle d'une operation d'ecriture d'une donnee dans une cellule-memoire du type eeprom |
JP6088602B2 (ja) * | 2015-08-12 | 2017-03-01 | ウィンボンド エレクトロニクス コーポレーション | 不揮発性半導体記憶装置 |
KR102347182B1 (ko) * | 2015-09-04 | 2022-01-04 | 삼성전자주식회사 | 메모리 장치, 메모리 시스템, 상기 메모리 장치의 동작 방법 및 상기 메모리 시스템의 동작 방법 |
JP6144741B2 (ja) * | 2015-09-28 | 2017-06-07 | ウィンボンド エレクトロニクス コーポレーション | 不揮発性半導体メモリ |
TWI596477B (zh) | 2015-12-18 | 2017-08-21 | 群聯電子股份有限公司 | 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置 |
US9954558B1 (en) | 2016-03-03 | 2018-04-24 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Fast decoding of data stored in a flash memory |
US9852800B2 (en) * | 2016-03-07 | 2017-12-26 | Sandisk Technologies Llc | Adaptive determination of program parameter using program of erase rate |
US10074440B2 (en) | 2016-10-28 | 2018-09-11 | Sandisk Technologies Llc | Erase for partially programmed blocks in non-volatile memory |
US10379769B2 (en) * | 2016-12-30 | 2019-08-13 | Western Digital Technologies, Inc. | Continuous adaptive calibration for flash memory devices |
US10522229B2 (en) * | 2017-08-30 | 2019-12-31 | Micron Technology, Inc. | Secure erase for data corruption |
KR102524916B1 (ko) * | 2018-03-13 | 2023-04-26 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
KR102513498B1 (ko) * | 2018-04-06 | 2023-03-24 | 에스케이하이닉스 주식회사 | 컨트롤러, 그것의 동작방법 및 컨트롤러를 포함하는 메모리 시스템 |
US10747909B2 (en) * | 2018-09-25 | 2020-08-18 | Northrop Grumman Systems Corporation | System architecture to mitigate memory imprinting |
KR20210111584A (ko) * | 2020-03-03 | 2021-09-13 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그 동작 방법 |
US11342029B2 (en) | 2020-09-28 | 2022-05-24 | Sandisk Technologies Llc | Non-volatile memory with switchable erase methods |
KR20220076974A (ko) * | 2020-12-01 | 2022-06-08 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 이의 프로그램 방법 |
US11475957B2 (en) * | 2021-01-14 | 2022-10-18 | Sandisk Technologies Llc | Optimized programming with a single bit per memory cell and multiple bits per memory cell |
US12057172B2 (en) * | 2022-01-12 | 2024-08-06 | Sandisk Technologies Llc | Hybrid multi-block erase technique to improve erase speed in a memory device |
US11972805B2 (en) | 2022-08-05 | 2024-04-30 | Sandisk Technologies Llc | Non-volatile memory with narrow and shallow erase |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003242787A (ja) | 2002-02-14 | 2003-08-29 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US20060044919A1 (en) | 2004-08-30 | 2006-03-02 | Spansion Llc | Non-volatile memory device and erasing method therefor |
US20080137409A1 (en) | 2006-11-28 | 2008-06-12 | Kabushiki Kaisha Toshiba | Semiconductor memory device and method for erasing the same |
JP2009283117A (ja) | 2008-05-23 | 2009-12-03 | Hynix Semiconductor Inc | 不揮発性メモリ装置のプログラム方法 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5268870A (en) | 1988-06-08 | 1993-12-07 | Eliyahou Harari | Flash EEPROM system and intelligent programming and erasing methods therefor |
US5270979A (en) | 1991-03-15 | 1993-12-14 | Sundisk Corporation | Method for optimum erasing of EEPROM |
JP3088247B2 (ja) * | 1994-09-12 | 2000-09-18 | 日本電気株式会社 | 不揮発性半導体記憶装置及びその消去方法 |
KR100323554B1 (ko) | 1997-05-14 | 2002-03-08 | 니시무로 타이죠 | 불휘발성반도체메모리장치 |
US6452836B1 (en) | 2001-03-09 | 2002-09-17 | Micron Technology, Inc. | Non-volatile memory device with erase cycle register |
US6614695B2 (en) * | 2001-08-24 | 2003-09-02 | Micron Technology, Inc. | Non-volatile memory with block erase |
US6639844B1 (en) * | 2002-03-13 | 2003-10-28 | Advanced Micro Devices, Inc. | Overerase correction method |
US6901010B1 (en) * | 2002-04-08 | 2005-05-31 | Advanced Micro Devices, Inc. | Erase method for a dual bit memory cell |
JP4170682B2 (ja) | 2002-06-18 | 2008-10-22 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
JP2004334994A (ja) * | 2003-05-09 | 2004-11-25 | Renesas Technology Corp | 半導体集積回路装置 |
US7200708B1 (en) | 2003-12-31 | 2007-04-03 | Intel Corporation | Apparatus and methods for storing data which self-compensate for erase performance degradation |
US6888758B1 (en) * | 2004-01-21 | 2005-05-03 | Sandisk Corporation | Programming non-volatile memory |
ITMI20041904A1 (it) * | 2004-10-07 | 2005-01-07 | Atmel Corp | "metodo e sistema per un approccio di programmazione per un dispositivo elettronico non volatile" |
US7408804B2 (en) | 2005-03-31 | 2008-08-05 | Sandisk Corporation | Systems for soft programming non-volatile memory utilizing individual verification and additional soft programming of subsets of memory cells |
KR100921014B1 (ko) * | 2005-03-31 | 2009-10-09 | 샌디스크 코포레이션 | 메모리 셀들의 서브세트들에 대한 개별 검증 및 추가소거를 이용한 비휘발성 메모리의 소거 |
ITMI20050798A1 (it) * | 2005-05-03 | 2006-11-04 | Atmel Corp | Metodo e sistema per la generazi0ne di impulsi di programmazione durante la programmazione di dispositivi elettronici non volatili |
US7339834B2 (en) | 2005-06-03 | 2008-03-04 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
TWI286318B (en) * | 2005-10-04 | 2007-09-01 | Elite Semiconductor Esmt | An erase method to reduce erase time and to prevent over-erase |
JP2008084471A (ja) | 2006-09-28 | 2008-04-10 | Toshiba Corp | 半導体記憶装置 |
US7385851B1 (en) * | 2006-12-22 | 2008-06-10 | Spansion Llc | Repetitive erase verify technique for flash memory devices |
US7414891B2 (en) | 2007-01-04 | 2008-08-19 | Atmel Corporation | Erase verify method for NAND-type flash memories |
EP2458592B1 (en) * | 2007-02-20 | 2014-03-26 | SanDisk Technologies, Inc. | Multiple pass write sequence for non-volatile storage |
US7564711B2 (en) | 2007-02-20 | 2009-07-21 | Sandisk Corporation | Multiple pass write sequence for non-volatile storage |
US7679961B2 (en) | 2007-04-25 | 2010-03-16 | Micron Technology, Inc. | Programming and/or erasing a memory device in response to its program and/or erase history |
US7978527B2 (en) * | 2008-06-03 | 2011-07-12 | Sandisk Technologies Inc. | Verification process for non-volatile storage |
US7839690B2 (en) | 2008-12-11 | 2010-11-23 | Sandisk Corporation | Adaptive erase and soft programming for memory |
US8036044B2 (en) * | 2009-07-16 | 2011-10-11 | Sandisk Technologies Inc. | Dynamically adjustable erase and program levels for non-volatile memory |
-
2008
- 2008-12-11 US US12/332,646 patent/US7839690B2/en active Active
-
2009
- 2009-09-23 EP EP09792888A patent/EP2368248B1/en active Active
- 2009-09-23 JP JP2011540722A patent/JP5250117B2/ja active Active
- 2009-09-23 KR KR1020117015947A patent/KR101565563B1/ko not_active IP Right Cessation
- 2009-09-23 CN CN200980154949.4A patent/CN102292775B/zh active Active
- 2009-09-23 WO PCT/US2009/058002 patent/WO2010068323A1/en active Application Filing
- 2009-12-08 TW TW098141958A patent/TWI494931B/zh not_active IP Right Cessation
-
2010
- 2010-10-06 US US12/899,403 patent/US8081519B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003242787A (ja) | 2002-02-14 | 2003-08-29 | Mitsubishi Electric Corp | 不揮発性半導体記憶装置 |
US20060044919A1 (en) | 2004-08-30 | 2006-03-02 | Spansion Llc | Non-volatile memory device and erasing method therefor |
US20080137409A1 (en) | 2006-11-28 | 2008-06-12 | Kabushiki Kaisha Toshiba | Semiconductor memory device and method for erasing the same |
JP2009283117A (ja) | 2008-05-23 | 2009-12-03 | Hynix Semiconductor Inc | 不揮発性メモリ装置のプログラム方法 |
Also Published As
Publication number | Publication date |
---|---|
US20110019483A1 (en) | 2011-01-27 |
US20100149881A1 (en) | 2010-06-17 |
JP2012511790A (ja) | 2012-05-24 |
KR20110106874A (ko) | 2011-09-29 |
CN102292775B (zh) | 2014-05-21 |
EP2368248A1 (en) | 2011-09-28 |
US7839690B2 (en) | 2010-11-23 |
US8081519B2 (en) | 2011-12-20 |
EP2368248B1 (en) | 2012-10-24 |
WO2010068323A1 (en) | 2010-06-17 |
TW201027543A (en) | 2010-07-16 |
CN102292775A (zh) | 2011-12-21 |
TWI494931B (zh) | 2015-08-01 |
JP5250117B2 (ja) | 2013-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101565563B1 (ko) | 메모리에 대한 적응적 소거 및 소프트 프로그래밍 | |
KR101569862B1 (ko) | 비휘발성 저장 소자를 위한 소거-검증 프로세스 | |
JP5460721B2 (ja) | 高分解能可変初期プログラミングパルスを用いた不揮発性メモリのプログラミング | |
JP4931915B2 (ja) | 不揮発性メモリを繰返すに連れてプログラム電圧のシフトを開始する方法 | |
KR101736414B1 (ko) | 다른 메모리 셀들로부터의 영향을 감소시키는 것을 포함하는 비휘발성 저장 소자의 프로그래밍 | |
EP2577671B1 (en) | Programming non-volatile storage with synchronized coupling | |
JP4754631B2 (ja) | 不揮発性メモリを自己調整式の最大プログラムループでプログラムする方法 | |
KR101595045B1 (ko) | 워드 라인 결합을 이용한 메모리의 다중-패스 프로그램 | |
TWI389124B (zh) | 於非揮發性記憶體中使用不同參考位準以改良感測之粗略/精細程式化確認方法及系統 | |
JP2007533055A (ja) | 非揮発性メモリの可変プログラミング | |
JP4855474B2 (ja) | スマート検証を利用してマルチステート不揮発性メモリをプログラミングする方法 | |
JP5367697B2 (ja) | 不揮発性記憶装置における読み出し動作中の消費電力の低減 | |
WO2008083131A2 (en) | Method for programming with initial programming voltage based on trial | |
WO2014120943A1 (en) | Adaptive initial program voltage for non-volatile memory | |
KR20090007297A (ko) | 다른 전압들을 이용한 비휘발성 저장 장치에 대한 검증 동작 | |
KR100984563B1 (ko) | 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법 | |
EP2084710B1 (en) | Resistance sensing and compensation for non-volatile storage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |