KR101904233B1 - 비휘발성 메모리에 대한 다중-상태 프로그래밍 - Google Patents
비휘발성 메모리에 대한 다중-상태 프로그래밍 Download PDFInfo
- Publication number
- KR101904233B1 KR101904233B1 KR1020177024859A KR20177024859A KR101904233B1 KR 101904233 B1 KR101904233 B1 KR 101904233B1 KR 1020177024859 A KR1020177024859 A KR 1020177024859A KR 20177024859 A KR20177024859 A KR 20177024859A KR 101904233 B1 KR101904233 B1 KR 101904233B1
- Authority
- KR
- South Korea
- Prior art keywords
- bit line
- line bias
- programming
- memory cell
- state
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
- G11C11/5621—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
- G11C11/5628—Programming or writing circuits; 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/5642—Sensing or reading circuits; Data output circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/107—Programming all cells in an array, sector or block to the same state prior to flash erasing
-
- 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
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/56—Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
- G11C2211/562—Multilevel memory programming aspects
- G11C2211/5622—Concurrent multilevel programming of more than one cell
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Semiconductor Memories (AREA)
- Non-Volatile Memory (AREA)
Abstract
비휘발성 메모리를 프로그래밍하기 위한 방법이 제공된다. 방법은 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 그리고 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써, 짝수 비트 라인들에 대해 메모리 셀들을 프로그래밍하는 것을 포함한다. 방법은 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 그리고 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써, 홀수 비트 라인들에 대해 메모리 셀들을 프로그래밍하는 것을 또한 포함한다. 각각의 메모리 셀에 대해, 대응하는 비트 라인은 메모리 셀이 프로그래밍되는 것이 금지되어야 하는 경우 제1 비트 라인 바이어스들로 바이어싱되고, 메모리 셀이 최종 상태로 프로그래밍되어야 하는 경우 복수의 프로그래밍 비트 라인 바이어스들 중 하나로 바이어싱된다.
Description
반도체 메모리는 셀룰러 전화, 디지털 카메라, 개인용 디지털 보조 단말, 의료 전자기기, 모바일 컴퓨팅 디바이스, 및 비-모바일 컴퓨팅 디바이스들과 같은 다양한 전자 디바이스들에서 널리 사용된다. 반도체 메모리는 비휘발성 메모리 또는 휘발성 메모리를 포함할 수 있다. 비휘발성 메모리는 심지어 비휘발성 메모리가 전원(예를 들어, 배터리)에 접속되지 않을 때에도 저장되고 유지되도록 한다. 비휘발성 메모리의 예들은 플래시 메모리(예를 들어, NAND-타입 및 NOR-타입 플래시 메모리) 및 전기적 소거가능한 프로그래밍가능 판독-전용 메모리(EEPROM)를 포함한다.
전하-트랩핑(charge-trapping) 재료는 데이터 상태를 나타내는 전하를 저장하기 위해 비휘발성 메모리 디바이스들에서 사용될 수 있다. 전하-트랩핑 재료는 3차원(3D) 스택화된 메모리 구조체에서 수직으로 배열될 수 있다. 3D 메모리 구조체의 일 예는 교번하는 전도층 및 유전층의 스택을 포함하는 BiCS(Bit Cost Scalable) 아키텍처이다. 메모리 홀이 스택 내에 형성되고, NAND 스트링이 이후 전하-트랩핑 층을 포함하는 재료들로 메모리 홀을 채움으로써 형성되어 메모리 셀들의 수직 열을 생성한다. 직선 NAND 스트링이 하나의 메모리 홀에서 확장한다. 메모리 셀들의 제어 게이트들은 전도층들에 의해 제공된다.
일부 비휘발성 메모리 디바이스들은 2개 범위들의 전하들을 저장하기 위해 사용되고, 따라서 메모리 셀은 2개의 데이터 상태들, 즉, 소거 상태(예를 들어, 데이터 "1") 및 프로그래밍된 상태(예를 들어, 데이터 "0")에 대응하는 2개 범위들의 임계 전압들 사이에서 프로그래밍/소거될 수 있다. 그러한 디바이스는 바이너리 또는 2 상태 디바이스라고 지칭될 수 있다.
다중-상태(또는 멀티-레벨) 비휘발성 메모리는, 임계 전압들의 다중의, 다른 허용된 범위들을 식별함으로써 구현된다. 임계 전압들의 각각의 다른 범위는 데이터 비트들의 세트에 대해 미리 결정된 값이 할당된 데이터 상태에 대응한다. 메모리 셀 내로 프로그래밍된 데이터와 임계 전압들의 범위들 사이의 특정 관계는 메모리 셀들에 대해 채택되는 데이터 인코딩 방식에 의존한다. 예를 들어, 미국 특허 제6,222,762호 및 미국 특허 공보 제2004/0255090호는 둘 모두 다중-상태 플래시 메모리 셀들에 대한 다양한 데이터 인코딩 방식들을 기술한다. 다중-상태 비휘발성 메모리가 바이너리 비휘발성 메모리보다 더 많은 데이터를 저장할 수 있지만, 프로그래밍 및 프로그래밍의 검증을 위한 프로세스는 다중-상태 비휘발성 메모리에 대해서 더 오래 걸릴 수 있다.
동일한 번호의 엘리먼트들은 상이한 도면들에서 공통 컴포넌트들을 지칭한다.
도 1은 3D 스택화된 비휘발성 메모리 디바이스의 투시도이다.
도 2는 도 1의 3D 스택화된 비휘발성 메모리 디바이스(100)의 예인, 메모리 디바이스(200)의 기능 블록도이다.
도 3a는 제어기 내의 하나 이상의 프로세서들을 프로그래밍하기 위한 소프트웨어 모듈들을 도시하는 블록도이다.
도 3b는 메모리 다이 상의 상태 머신 또는 다른 프로세서를 프로그래밍하기 위한 소프트웨어 모듈들을 도시하는 블록도이다.
도 4a는 2개 면들을 가지는 메모리 구조체의 블록도이다.
도 4b는 메모리 셀들의 블록의 일부분의 최상부 도면이다.
도 4c는 메모리 셀들의 블록의 일부분의 단면도이다.
도 4d는 선택 게이트 층들 및 워드 라인 층들의 도면이다.
도 4e는 메모리 셀들의 수직 열의 단면도이다.
도 5는 감지 증폭기의 개략도이다.
도 6은 도 5의 감지 증폭기 내에 도시되는 특정 신호들의 행동을 기술하는 타이밍도이다.
도 7은 도 5의 회로의 동작의 일 실시예를 기술하는 플로우 차트이다.
도 8a 및 8b는 임계 전압 분포들을 도시한다.
도 9a, 9b 및 9c는 임계 전압 분포들을 도시한다.
도 10은 프로그래밍을 위한 프로세스의 일 실시예를 기술하는 플로우 차트이다.
도 11은 예시적인 프로그래밍 프로세스를 도시한다.
도 12는 감지 증폭기의 개략도이다.
도 13a-13e는 도 12의 감지 증폭기에 도시되는 특정 신호들의 행동을 기술하는 타이밍도들이다.
도 1은 3D 스택화된 비휘발성 메모리 디바이스의 투시도이다.
도 2는 도 1의 3D 스택화된 비휘발성 메모리 디바이스(100)의 예인, 메모리 디바이스(200)의 기능 블록도이다.
도 3a는 제어기 내의 하나 이상의 프로세서들을 프로그래밍하기 위한 소프트웨어 모듈들을 도시하는 블록도이다.
도 3b는 메모리 다이 상의 상태 머신 또는 다른 프로세서를 프로그래밍하기 위한 소프트웨어 모듈들을 도시하는 블록도이다.
도 4a는 2개 면들을 가지는 메모리 구조체의 블록도이다.
도 4b는 메모리 셀들의 블록의 일부분의 최상부 도면이다.
도 4c는 메모리 셀들의 블록의 일부분의 단면도이다.
도 4d는 선택 게이트 층들 및 워드 라인 층들의 도면이다.
도 4e는 메모리 셀들의 수직 열의 단면도이다.
도 5는 감지 증폭기의 개략도이다.
도 6은 도 5의 감지 증폭기 내에 도시되는 특정 신호들의 행동을 기술하는 타이밍도이다.
도 7은 도 5의 회로의 동작의 일 실시예를 기술하는 플로우 차트이다.
도 8a 및 8b는 임계 전압 분포들을 도시한다.
도 9a, 9b 및 9c는 임계 전압 분포들을 도시한다.
도 10은 프로그래밍을 위한 프로세스의 일 실시예를 기술하는 플로우 차트이다.
도 11은 예시적인 프로그래밍 프로세스를 도시한다.
도 12는 감지 증폭기의 개략도이다.
도 13a-13e는 도 12의 감지 증폭기에 도시되는 특정 신호들의 행동을 기술하는 타이밍도들이다.
중간 상태들로부터 타겟 데이터 상태들로 메모리 셀들을 동시에 프로그래밍하기 위한 방법들 및 장치가 제공된다. 예시적인 방법은 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써 짝수 비트 라인들에 대해 메모리 셀들을 프로그래밍하는 것을 포함한다. 방법은 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써, 홀수 비트 라인들에 대해 메모리 셀들을 프로그래밍하는 것을 또한 포함한다.
후속하는 논의는 제안되는 기술을 구현할 수 있는 메모리 디바이스들에 대한 적절한 구조의 일 예의 상세항목들을 제공한다.
도 1은 기판(102)을 포함하는, 3차원(3D) 스택화된 비휘발성 메모리 디바이스(100)의 투시도이다. 메모리 셀들(비휘발성 저장 엘리먼트들)의 예시적인 블록들(BLK0 및 BLK1)이 기판(102) 상에 그리고 기판(102) 위에 있다. 또한 블록들(BLK0 및 BLK1)에 의한 사용을 위한 지지 회로들을 가지는 주변 영역(104)이 기판(102) 상에 있다. 기판(102)은 또한, 회로들의 신호들을 운반하기 위해 전도성 경로들 내에 패터닝되는 하나 이상의 하부 금속층들과 함께, 블록들 하에서 회로들의 신호들을 운반할 수 있다.
블록들(BLK0 및 BLK1)은 메모리 디바이스(100)의 중간 영역(106) 내에 형성된다. 메모리 디바이스(100)의 상부 영역(108) 내에서, 하나 이상의 상부 금속층들이 전도성 경로들 내에 패터닝되어 회로들의 신호들을 운반한다. 블록들(BLK0 및 BLK1) 각각은 메모리 셀들의 스택화된 영역을 포함하고, 스택의 교번하는 레벨들은 워드 라인들을 나타낸다. 2개의 블록들(BLK0 및 BLK1)이 예로서 도시되지만, 추가적인 블록들이 사용되어, x-방향 및/또는 y-방향으로 확장할 수 있다.
일 예시적인 구현예에서, x-방향으로의 면의 길이는, 워드 라인들에 대한 신호 경로가 확장하는 방향(워드 라인 또는 SGD 라인 방향)을 나타내고, y-방향으로의 면의 폭은 비트 라인들에 대한 신호 경로들이 확장하는 방향(비트 라인 방향)을 나타낸다. z-방향은 메모리 디바이스의 높이를 나타낸다.
도 2는 도 1의 3D 스택화된 비휘발성 메모리 디바이스(100)의 예인, 예시적인 메모리 디바이스(200)의 기능 블록도이다. 도 2에 도시된 컴포넌트들은 전기 회로들이다. 메모리 디바이스(200)는 하나 이상의 메모리 다이(202)를 포함한다. 각각의 메모리 다이(202)는 메모리 셀들의 3차원 메모리 구조체(204)(예컨대, 메모리 셀들의 3D 어레이와 같은), 제어 회로(206), 및 판독/기입 회로들(208)를 포함한다. 다른 실시예들에서, 메모리 셀들의 2차원 어레이가 사용될 수 있다.
메모리 구조체(204)는 워드 라인들에 의해 행 디코더(210)를 통해, 그리고 비트 라인들에 의해 열 디코더(212)를 통해 어드레싱가능하다. 판독/기입 회로들(208)은 다수의 감지 블록들(SB1, SB2,.,SBp)(감지 회로)을 포함하고, 메모리 셀들의 페이지가 병렬로 판독 또는 프로그래밍되도록 한다. 일부 시스템들에서, 제어기(214)는 하나 이상의 메모리 다이(202)와 동일한 메모리 디바이스(200)(예를 들어, 제거가능한 저장 카드)에 포함된다. 그러나, 다른 시스템들에서, 제어기(214)는 메모리 다이(202)로부터 분리될 수 있다.
일부 실시예들에서, 하나의 제어기(214)는 다중 메모리 다이(202)와 통신할 것이다. 다른 실시예들에서, 각각의 메모리 다이(202)는 자신만의 제어기를 가진다. 코맨드들 및 데이터는 데이터 버스(218)를 통해 호스트(216)와 제어기(214) 사이에서, 그리고 라인들(220)을 통해 제어기(214)와 하나 이상의 메모리 다이(202) 사이에서 전달된다. 일 실시예에서, 메모리 다이(202)는 라인들(220)에 접속하는 입력 및/또는 출력(I/O) 핀들의 세트를 포함한다.
메모리 구조체(204)는 3D 어레이를 포함하는 메모리 셀들의 하나 이상의 어레이들을 포함할 수 있다. 메모리 구조체(204)는 다수의 메모리 셀들이, 중재 기판들이 없는, 웨이퍼와 같은 단일 기판 위에(그리고 단일 기판 내가 아닌) 형성되는 모놀리식 3차원 메모리 구조체를 포함할 수 있다. 메모리 구조체(204)는 실리콘 기판 위에 배치되는 활성 영역을 가지는 메모리 셀들의 어레이들의 하나 이상의 물리적 레벨들에서 모놀리식 방식으로 형성되는 임의의 타입의 비휘발성 메모리를 포함할 수 있다. 메모리 구조체(204)는, 연관된 회로가 기판 위에 있든 또는 기판 내에 있든 간에, 메모리 셀들의 동작과 연관된 회로를 가지는 비휘발성 메모리 디바이스 내에 있을 수 있다.
제어 회로(206)는 판독/기입 회로들(208)과 협력하여 메모리 구조체(204) 상에서 메모리 동작들(예를 들어, 소거, 프로그램, 판독 등)을 수행하며, 상태 머신(222), 온-칩 어드레스 디코더(224), 및 전력 제어 모듈(226)을 포함한다. 상태 머신(222)은 메모리 동작들의 칩-레벨 제어를 제공한다. 코드 및 파라미터 저장소(228)가 동작 파라미터들 및 소프트웨어를 저장하기 위해 제공될 수 있다. 일 실시예에서, 상태 머신(222)은 코드 및 파라미터 저장소(228)에 저장되는 소프트웨어에 의해 프로그래밍가능하다. 다른 실시예들에서, 상태 머신(222)은 소프트웨어를 사용하지 않으며, 하드웨어(예를 들어, 전자 회로들)로 완전히 구현가능하다.
온-칩 어드레스 디코더(224)는 디코더들(210 및 212)에 의해 사용되는 하드웨어 어드레스에 호스트(216) 또는 메모리 제어기(214)에 의해 사용되는 어드레스들 사이의 어드레스 인터페이스를 제공한다. 전력 제어 모듈(226)은 메모리 동작들 동안 워드 라인들 및 비트 라인들에 공급되는 전력 및 전압들을 제어한다. 전력 제어 모듈(226)은 3D 구성에서 워드 라인 층들(하기에 논의됨)을 위한 드라이버들, 선택 트랜지스터들(예를 들어, SGS 및 SGD 트랜지스터들, 하기에 논의됨) 및 소스 라인들을 포함할 수 있다. 전력 제어 모듈(226)은 전압들을 생성하기 위한 전하 펌프들을 포함할 수 있다. 감지 블록들(SB1, SB2,.,SBp)은 비트 라인 드라이버들을 포함한다. SGS 트랜지스터는 NAND 스트링의 소스 단부에서의 선택 게이트 트랜지스터이고, SGD 트랜지스터는 NAND 스트링의 드레인 단부에서의 선택 게이트 트랜지스터이다.
제어 회로(206), 상태 머신(222), 디코더들(224/210/212), 코드 및 파라미터 저장소(228), 전력 제어 모듈(226), 감지 블록들(SB1, SB2,.,SBp), 판독/기입 회로들(208), 및 제어기(214) 중 임의의 하나 또는 이들의 임의의 조합이 본원에 기술되는 기능들을 수행하는 하나 이상의 제어 회로들로 간주될 수 있다.
(온-칩 또는 오프-칩) 제어기(214)는 ROM(214a) 및 RAM(214b)와 같은 저장 디바이스들(메모리) 및 프로세서(214c)를 포함할 수 있다. 저장 디바이스들(ROM(214a) 및 RAM(214b))은 명령들의 세트와 같은 코드를 포함하고, 프로세서(214c)는 본원에 기술된 기능성을 제공하기 위해 명령들의 세트를 실행하도록 동작가능하다. 대안적으로 또는 추가로, 프로세서(214c)는 하나 이상의 워드 라인들에 접속되는 메모리 셀들의 예약된 영역과 같은, 메모리 구조체(204) 내의 저장 디바이스로부터의 코드에 액세스할 수 있다.
메모리 구조체(204) 내의 다수의 메모리 엘리먼트들은 이들이 직렬로 접속되도록, 또는 각각의 엘리먼트가 개별적으로 액세스가능하도록 구성될 수 있다. 비-제한적 예로써, NAND 구성 내의 플래시 메모리 디바이스들(NAND 플래시 메모리)은 직렬로 접속된 메모리 엘리먼트들을 통상적으로 포함한다. NAND 스트링은 직렬-접속형 메모리 셀들 및 선택 게이트 트랜지스터들의 세트의 예이다.
NAND 플래시 메모리 어레이는, NAND 스트링이 단일 비트 라인을 공유하는 다수의 메모리 셀들로 이루어지며 그룹으로서 액세스되는 다수의 NAND 스트링들로 이루어지도록 구성될 수 있다. 대안적으로, 메모리 엘리먼트들은 각각의 엘리먼트, 예를 들어, NOR 메모리 어레이가 개별적으로 액세스 가능하도록 구성될 수 있다. NAND 및 NOR 메모리 구성들은 예시적이며, 메모리 셀들은 다른 방식으로 구성될 수 있다.
메모리 셀들은 복수의 행들 및/또는 열들에서와 같이, 정렬된 어레이에서 단일 메모리 디바이스 레벨로 배열될 수 있다. 그러나, 메모리 엘리먼트들이 불규칙적이거나 비-직교 구성들로, 또는 어레이들로 고려되지 않는 구조체들로 배열될 수 있다.
3차원 메모리 어레이는, 메모리 셀들이 다수의 면들 또는 다수의 메모리 디바이스 레벨들을 점유하고, 이에 의해 3차원으로 구조체를 형성함으로써(즉, x, y 및 z 방향들로, 여기서 기판의 주요 면에 대해, z 방향은 실질적으로 직교하며, x 및 y 방향들은 실질적으로 평행함) 배열된다.
비-제한적 예로서, 3차원 메모리 구조체는 다수의 2차원 메모리 디바이스 레벨들의 스택으로서 수직으로 배열될 수 있다. 또다른 비-제한적 예로서, 3차원 메모리 어레이는 각각의 열이 다수의 메모리 셀들을 가지는 다수의 수직 열들(예를 들어, 기판의 주요 면에 대해 실질적으로 직교로, 즉, y 방향으로 확장하는 열들)로서 배열될 수 있다. 수직 열들은 2차원 구성으로, 예를 들어, x-y 면으로 배열되어, 다수의 수직으로 스택화된 메모리 면들 상의 메모리 셀들과 함께, 메모리 셀들의 3차원 배열을 초래할 수 있다. 3차원의 메모리 엘리먼트들의 다른 구성들이 또한 3차원 메모리 어레이를 구성할 수 있다.
비-제한적 예로써, 3차원 NAND 메모리 어레이에서, 메모리 엘리먼트들이 함께 커플링되어 다수의 수평 메모리 디바이스 레벨들을 지나는(traverse) 수직 NAND 스트링을 형성할 수 있다. 일부 NAND 스트링들이 단일 메모리 레벨 내에 메모리 엘리먼트들을 포함하고 다른 스트링들이 다수의 메모리 레벨들에 걸쳐 있는 메모리 엘리먼트들을 포함하는 다른 3차원 구성들이 예상될 수 있다. 3차원 메모리 어레이들이 또한 NOR 구성으로 그리고 ReRAM 구성으로 설계될 수 있다.
본 기술분야의 통상의 기술자는, 이 기술이 단일의 특정 메모리 구조체로 제한되는 것이 아니라, 본원에 기술되는 바와 같은 그리고 본 기술분야의 통상의 기술자에 의해 이해되는 바와 같은 기술의 사상 및 범위 내의 많은 관련 메모리 구조들을 커버한다는 것을 인지할 것이다.
도 3a는 도 2의 제어기(214) 내의 하나 이상의 프로세서들을 프로그래밍하기 위한 소프트웨어 모듈들을 도시하는 블록도이다. 도 3a는 ROM(214a)에 저장되는 판독 모듈(300), 프로그래밍 모듈(302) 및 소거 모듈(304)을 도시한다. 이들 소프트웨어 모듈들은 또한 RAM 또는 메모리 다이(202)에 저장될 수 있다. 판독 모듈(300)은 판독 동작들을 수행하도록 프로세서(들)(214c)를 프로그래밍하는 소프트웨어를 포함한다. 프로그래밍 모듈(302)은 (프로그래밍의 검증을 포함하는) 프로그래밍 동작들을 수행하도록 프로세서(들)(214c)를 프로그래밍하는 소프트웨어를 포함한다. 소거 모듈(304)은 소거 동작들을 수행하도록 프로세서(들)(214c)를 프로그래밍하는 소프트웨어를 포함한다. 소프트웨어에 기초하여, 제어기(214)는 메모리 동작들을 수행하도록 메모리 다이(202)에 명령한다.
도 3b는 도 2의 상태 머신(222)(또는 메모리 다이(202) 상의 다른 프로세서)을 프로그래밍하기 위한 소프트웨어 모듈들을 도시하는 블록도이다. 도 3b는 코드 및 파라미터 저장소(228) 상에 저장되는 판독 모듈(310), 프로그래밍 모듈(312) 및 소거 모듈(314)을 도시한다. 이들 소프트웨어 모듈들은 또한 RAM에 또는 도 2의 메모리 구조체(204)에 저장될 수 있다. 판독 모듈(310)은 판독 동작들을 수행하도록 상태 머신(222)을 프로그래밍하는 소프트웨어를 포함한다. 프로그래밍 모듈(302)은 (프로그래밍의 검증을 포함하는) 프로그래밍 동작들을 수행하도록 상태 머신(222)을 프로그래밍하는 소프트웨어를 포함한다. 소거 모듈(304)은 소거 동작들을 수행하도록 상태 머신(222)을 프로그래밍하는 소프트웨어를 포함한다. 대안적으로, (전자 회로인) 상태 머신(222)은, 이러한 기능들을 수행하기 위해 어떠한 소프트웨어도 요구되지 않도록 하드웨어를 이용하여 완전히 구현될 수 있다.
도 4a는, 2개 면들(402 및 404)로 분할되는, 메모리 구조체(204)의 일 예시적인 조직을 설명하는 블록도이다. 각각의 면은 이후 M개 블록들로 분할된다. 일 예에서, 각각의 면은 약 2000개의 블록들을 가진다. 그러나, 상이한 개수의 블록들 및 면들이 또한 사용될 수 있다.
도 4b-4e는 예시적인 3D NAND 구조체를 도시한다. 도 4b는 메모리 구조체(204)로부터 하나의 블록의 일부분의 최상부 뷰를 도시하는 블록도이다. 도 4b에 도시된 블록의 일부분은 도 4a의 블록(2) 내의 일부분(406)에 대응한다. 도 4b에 도시된 블록은 화살표(408) 방향으로 그리고 화살표(410) 방향으로 확장한다. 일 실시예에서, 메모리 어레이는 48개 층들을 가질 것이다. 다른 실시예들은 48개 미만의 또는 48개 초과의 층들을 가진다. 그러나, 도 4b는 단지 최상부층을 도시한다.
도 4b는 수직 열들을 나타내는 복수의 원들을 도시한다. 수직 열들 각각은 다수의 선택 트랜지스터들 및 다수의 메모리 셀들을 포함한다. 일 실시예에서, 각각의 수직 열은 NAND 스트링을 구현한다. 수직 열들의 더 상세한 항목들이 하기에 제공된다. 도 4b에 도시된 블록이 화살표(408) 방향으로 그리고 화살표(410) 방향으로 확장하기 때문에, 블록은 도 4b에 도시된 것보다 더 많은 수직 열들을 포함한다.
도 4b는 또한 비트 라인들(412)의 세트를 도시한다. 도 4b는, 블록의 일부분만이 도시되기 때문에, 24개의 비트 라인들을 도시한다. 다른 실시예들에서, 24개 초과의 비트 라인들이 블록의 수직 열들에 접속된다. 수직 열들을 나타내는 원들 각각은 하나의 비트 라인에 대한 그것의 접속을 나타내기 위한 "x"를 가진다.
도 4b에 도시된 블록은, 다양한 층들을 수직 열들 아래의 소스 라인에 접속시키는 로컬 상호접속들(414, 416, 418, 420 및 422)의 세트를 포함한다. 로컬 상호접속들(414, 416, 418, 420 및 422)은 또한 블록의 각각의 층을 4개 영역들로 분할하는 역할을 한다. 예를 들어, 도 4b에 도시된 최상부층은 영역들(424, 426, 428 및 430)로 분할된다.
메모리 셀들을 구현하는 블록의 층들에서, 4개 영역들은 로컬 상호접속들에 의해 분리되는 워드 라인 핑거들이라 지칭된다. 일 실시예에서, 블록의 공통 레벨 상의 워드 라인 핑거들은 블록의 단부에서 함께 접속하여 단일 워드 라인을 형성한다. 또다른 실시예에서, 동일한 레벨 상의 워드 라인 핑거들은 함께 접속되지 않는다.
일 예시적인 구현예에서, 비트 라인만이 영역들(424, 426, 428 및 430) 각각 내의 하나의 수직 열에 접속한다. 그 구현예에서, 각각의 블록은 활성 열들의 16개 행들을 가지고, 각각의 비트 라인은 각각의 블록 내의 4개 행들에 접속한다. 일 실시예에서, 공통 비트 라인에 접속되는 4개 행들 모두는 (함께 접속되는 동일한 레벨 상의 상이한 워드 라인 핑거들을 통해) 동일한 워드 라인에 접속된다. 따라서, 시스템은 메모리 동작(프로그램, 검증, 판독 및/또는 소거)을 거칠 4개 중 하나(또는 또다른 서브세트)를 선택하기 위해 소스 선택 라인들 및 드레인 선택 라인들을 사용한다.
도 4b가 수직 행들의 4개 행들을 가지는 각각의 영역, 4개 영역들, 및 블록 내의 수직 열들의 16개 행들을 도시하지만, 그 정확한 수들은 예시적인 구현예이다. 다른 실시예들은 블록 당 더 많거나 더 적은 영역들, 영역 당 수직 열들의 더 많거나 더 적은 행들, 및 블록 당 수직 열들의 더 많거나 더 적은 행들을 포함할 수 있다.
도 4b는 지그재그인(stagger) 수직 열들을 또한 도시한다. 다른 실시예들에서, 상이한 지그재그 패턴들이 사용될 수 있다. 일부 실시예들에서, 수직 열들은 지그재그가 아니다.
도 4c는 도 4b의 라인 AA을 따르는 단면도를 도시하는 3차원 메모리 구조체(204)의 실시예의 일부분을 도시한다. 이러한 단면도는 수직 열들(432 및 434) 및 영역(426)을 통과하여 절단한다(도 4b를 참조). 도 4c의 구조체는 2개 드레인 선택층들(SGD1 및 SGD1), 2개 소스 선택층들(SGS1 및 SGS2), 4개의 더미 워드 라인층들(DWLL1a, DWLL1b, DWLL2a 및 DWLL2b), 및 데이터 메모리 셀들에 접속하기 위한 32개 워드 라인층들(WLL0-WLL31)을 포함한다. 다른 실시예들은 2개 초과 또는 2개 미만의 드레인 선택층들, 2개 초과 또는 2개 미만의 소스 선택층들, 4개 초과 또는 4개 미만의 더미 워드 라인층들, 및 32개 초과 또는 32개 미만의 워드 라인층들을 구현할 수 있다.
수직 열들(432 및 434)은 드레인 선택층들, 소스 선택층들, 더미 워드 라인층들 및 워드 라인층들을 통해 돌출하는 것으로 도시된다. 일 실시예에서, 수직 열들(432 및 434) 각각은 NAND 스트링을 포함한다. 수직 열들(432 및 434) 및 하기에 열거되는 층들인 기판(102) 상의 절연 필름(436), 및 절연 필름(436) 상의 소스 라인(SL)이 기판(102) 위에 배치된다. 수직 열(432)은 커넥터(440)를 통해 비트 라인(438)에 접속된다. 로컬 상호접속들(416 및 418)이 또한 도시된다.
참조의 용이함을 위해, 드레인 선택층들(SGD1 및 SGD1), 소스 선택층들(SGS1 및 SGS2), 더미 워드 라인층들(DWLL1a, DWLL1b, DWLL2a 및 DWLL2b), 및 워드 라인들(WLL0-WLL31)은 집합적으로 전도층들이라 지칭된다. 일 실시예에서, 전도층들은 TiN과 텅스텐의 조합물로 만들어진다. 다른 실시예들에서, 도핑된 폴리실리콘, 텅스텐과 같은 금속 또는 금속 규화물과 같은 다른 재료들이 사용되어 전도층들을 형성할 수 있다. 일부 실시예들에서, 상이한 전도층들은 상이한 재료들로 형성될 수 있다.
전도층들 사이에 유전층들(DL0-DL19)이 있다. 예를 들어, 유전층들(DL10)은 워드 라인층(WLL26) 위에 그리고 워드 라인층(WLL27) 아래에 있다. 일 실시예에서, 유전층들은 SiO2로 만들어진다. 다른 실시예들에서, 다른 유전 재료들이 사용되어 유전층들을 형성할 수 있다.
워드 라인층(WLL0-WLL31)은 메모리 셀들(또한 데이터 메모리 셀들이라 명명됨)에 접속한다. 더미 워드 라인층들(DWLL1a, DWLL1b, DWLL2a 및 DWLL2b)은 더미 메모리 셀들에 접속한다. 비-데이터 메모리 셀이라고도 지칭되는 더미 메모리 셀은 사용자 데이터를 저장하지 않는 반면, 데이터 메모리 셀은 사용자 데이터를 저장할 수 있다(eligible). 따라서, 데이터 메모리 셀들이 프로그래밍될 수 있다. 드레인 선택층들(SGD1 및 SGD1)이 사용되어 비트 라인들로부터 NAND 스트링들을 전기적으로 접속 및 접속해제시킨다. 소스 선택층들(SGS1 및 SGS2)이 사용되어 NAND 스트링들을 소스 라인(SL)으로부터 전기적으로 접속 및 접속해제시킨다.
도 4d는 도 4c에 부분적으로 도시된 블록에 대한 전도층들(SGD1, SGD1, SGS1, SGS2,DWLLla,DWLLlb, DWLL2a, DWLL2b, 및 WLL0-WLL31)의 투시도를 도시한다. 도 4b에 대해 위에서 언급된 바와 같이, 로컬 상호접속들(414, 416, 418, 420 및 422)은 각각의 전도층들을 4개 영역들로 나눈다. 예를 들어, 드레인 선택 게이트 층(SGD1)(최상부 층)은 영역들(424, 426, 428 및 430)로 분할된다. 유사하게, 워드 라인층(WLL31)은 영역들(442, 444, 446 및 448)로 분할된다. 워드 라인 층들(WLL0-WLL31)에 대해, 영역들은 워드 라인 핑거들이라 지칭되는데; 예를 들어, 워드 라인 층(WLL31)은 워드 라인 핑거들(442, 444, 446 및 448)로 분할된다.
도 4e는 수직 열(432)의 일부분을 포함하는 도 4c의 영역(450)의 단면도를 도시한다. 일 실시예에서, 수직 열들은 둥글며 4개 층들을 포함한다. 그러나, 다른 실시예들에서, 4개 초과의 또는 4개 미만의 층들이 포함될 수 있고, 다른 형상들이 사용될 수 있다. 일 실시예에서, 수직 열(432)은 SiO2와 같은 유전체로 만들어진 내부 코어층(452)을 포함한다. 다른 재료들이 또한 사용될 수 있다. 수직 폴리실리콘 채널(454)이 내부 코어(452)를 둘러싼다. 폴리실리콘이 아닌 재료들이 또한 사용될 수 있다. 수직 폴리실리콘 채널(454)이 비트 라인에 접속한다는 것에 유의한다. 터널링 유전체(456)가 수직 폴리실리콘 채널(454)을 둘러싼다. 일 실시예에서, 터널링 유전체(456)는 산화물-질화물-산화물(ONO) 구조를 가진다. (예를 들어) 트랩 밀도를 증가시키는 특별히 성형된 실리콘 질화물과 같은 전하 트랩핑 층(458)이 터널링 유전체(456)를 둘러싼다.
도 4e는 유전층들(DLL11, DLL12, DLL13, DLL14 및 DLL15) 뿐만 아니라 워드 라인 층들(WLL27, WLL28, WLL29, WLL30, 및 WLL31)을 도시한다. 워드 라인층들 각각은, 블록 산화물(SiO2)층(464)에 의해 둘러싸이는, 알루미늄 산화물 층(462)에 의해 둘러싸인 워드 라인 영역(460)을 포함한다. 워드 라인층들과 수직 열의 물리적 상호작용은 메모리 셀들을 형성한다. 따라서, 메모리 셀은, 일 실시예에서, 수직 폴리실리콘 채널(454), 터널링 유전체(456), 전해 트랩핑 층(458), 차단 산화물층(464), 알루미늄 산화물층(462) 및 워드 라인 영역(460)을 포함한다.
예를 들어, 워드 라인 층(WLL31) 및 수직 열(432)의 일부분은 메모리 셀(MC1)을 포함한다. 워드 라인층(WLL30) 및 수직 열(432)의 일부분은 메모리 셀(MC2)을 포함한다. 워드 라인층(WLL29) 및 수직 열(432)의 일부분은 메모리 셀(MC3)을 포함한다. 워드 라인층(WLL28) 및 수직 열(432)의 일부분은 메모리 셀(MC4)을 포함한다. 워드 라인층(WLL27) 및 수직 열(432)의 일부분은 메모리 셀(MC5)을 포함한다. 다른 아키텍처들에서, 메모리 셀은 상이한 구조체를 가질 수 있지만, 메모리 셀은 여전히 저장 유닛일 것이다.
메모리 셀이 프로그래밍될 때, 전자들이 메모리 셀과 연관된 전하 트랩핑층(458)의 일부분에 저장된다. 이러한 전자들은, 워드 라인 영역(460) 상의 적절한 전압에 응답하여, 수직 폴리실리콘 채널(454)로부터, 터널링 층(458)을 통해, 전하 트랩핑 층(458) 내로 끌려온다. 메모리 셀의 임계 전압(Vth)은 저장된 전하의 양에 비례하여 증가한다. 소거 동작 동안, 전자들이 채널로 되돌아오거나 또는 정공들이 전하들과 재결합한다.
실시예에서, 메모리 셀들은 충분한 시간 기간 동안 채널을 소거 전압(Vera)(예를 들어, 20-24볼트)으로 상승시키고, 소스 및 비트 라인들이 플로팅되는 동안 선택된 블록의 워드 라인들을 접지시킴으로써 소거된다. 소거되도록 선택되지 않은 블록들에서, 워드 라인들이 플로팅된다. 용량성 커플링으로 인해, 선택되지 않은 워드 라인들, 비트 라인들, 선택 라인들, 및 공통 소스 라인은 또한 소거 전압(Vera)의 상당 부분으로 상승하고, 이에 의해 소거되도록 선택되지 않은 블록들 상에서의 소거를 억제한다.
도 5는 감지 증폭기 회로(500)를 도시하는 개략도이다. 각각의 감지 블록(SB1, SB2, SBp)(도 2)은 다수의 감지 증폭기 회로들을 포함한다. 하기에 기술되는 바와 같이, 감지 증폭기 회로(500)는 커패시터(또는 다른 전하 저장 디바이스)를 사전-충전 크기로 사전-충전하고, 스트로브 시간 동안 메모리 셀을 통해 커패시터를 방전시키고, 스트로브 시간 이후 커패시터에서의 전압을 감지한다. 감지 전압은 전류가 감지되는 메모리 셀이 도통되는지를 나타내는데, 이는 메모리 셀의 임계 전압이 (제어 게이트 전압에 대응하는) 테스트되는 임계 전압보다 더 큰지 또는 더 작은지를 나타낸다.
메모리 셀의 임계 전압이 테스트되는 임계 전압보다 더 큰 경우, 검증 동작 동안, 메모리 셀은, 본원에 기술되는 프로세스들에 기초하여 적절한 경우, 프로그래밍을 완료할 것이다. 감지 증폭기 회로(500)는 비트 라인에 접속되는 트랜지스터(502)를 포함한다. 트랜지스터(502)는 그것의 게이트에서 신호(BLC)를 수신하고, 전압 클램프로서 사용된다. 게이트 전압(BLC)은 바람직한 비트 라인 전압 더하기 트랜지스터(502)의 임계 전압과 동일한 정전압에서 바이어싱된다. 따라서, 트랜지스터(502)의 기능은, 비트 라인을 통하는 전류가 변경하더라도, 감지 동작 동안(판독 또는 검증 동안) 일정한 비트 라인 전압을 유지하는 것이다.
트랜지스터(502)는 트랜지스터들(504 및 506)에 접속된다. 트랜지스터(504)는 SEN으로 마킹된 노드에서 커패시터(508)에 접속된다. 트랜지스터(504)의 목적은, 커패시터(508)가 비트 라인과 선택적으로 통신하도록, 커패시터(508)를 비트 라인에 접속시키고 커패시터(508)를 비트 라인으로부터 접속해제시키는 것이다. 다시 말해, 트랜지스터(504)는 스트로브 시간을 조절(regulate)한다. 즉, 트랜지스터(504)가 턴 온되는 동안, 커패시터(508)는 비트 라인을 통해 방전할 수 있고, 트랜지스터(504)가 턴 오프될 때, 커패시터(508)는 비트 라인을 통해 방전할 수 없다.
SEN 노드는 또한 트랜지스터(510) 및 트랜지스터(512)에 접속된다. 트랜지스터(510)는 트랜지스터들(506,514 및 516)에 접속된다. 트랜지스터(516)는 또한 트랜지스터(518)에 접속된다. 트랜지스터들(516 및 518)은 PMOS 트랜지스터들인 반면, 감지 증폭기 회로(500)의 다른 트랜지스터들은 NMOS 트랜지스터들이다. 트랜지스터들(510,516, 및 518)은 커패시터(508)에 사전-충전 경로를 제공한다. 전압(예를 들어, Vdd 또는 다른 전압)이 트랜지스터(518)의 소스에 인가된다. 트랜지스터들(510, 516 및 518)을 적절히 바이어싱함으로써, 트랜지스터(518)의 소스에 인가되는 전압은 커패시터(508)를 사전-충전하기 위해 사용될 수 있다. 사전-충전 이후, (트랜지스터(502)가 도통된다고 가정하면) 커패시터(508)는 트랜지스터(504)를 거쳐 비트 라인을 통해 방전할 수 있다.
인버터들(530 및 532)은 래치 회로를 형성한다. 인버터(532)의 출력은 인버터(530)의 입력에 접속되고, 인버터(530)의 출력은 인버터(532)의 입력 뿐만 아니라 트랜지스터들(518 및 520)에 접속된다. 인버터(532)의 입력은 Vdd를 수신하고, 2개의 인버터들(530, 532)은 Vdd를 저장할 래치로서 작용할 것이다. 인버터(532)의 입력은 또한 또다른 값에 접속될 수 있다. 트랜지스터들(514 및 520)은 인버터들(530 및 532)에 의해 저장되는 데이터를 통신하기 위한 경로를 트랜지스터(512)에 제공한다. 트랜지스터(520)는 그것의 게이트에서 신호(FCO)를 수신한다. 트랜지스터(514)는 그것의 게이트에서 신호(STRO)를 수신한다. FCO 및 STRO를 높이거나 낮춤으로써, 경로가 인버터들(530, 532)과 트랜지스터(감지 스위치)(512) 사이에 제공되거나 차단된다. 트랜지스터(512)의 게이트는 노드(SEN)에서 커패시터(508), 트랜지스터(504) 및 트랜지스터(510)에 접속된다. 커패시터(508)의 다른 단부가 신호(CLK)에 접속된다.
위에서 논의된 바와 같이, 커패시터(508)는 트랜지스터들(510, 516 및 518)을 통해 사전-충전된다. 이는 SEN 노드에서의 전압을 사전-충전 전압 레벨(Vpre)로 상승시킬 것이다. 트랜지스터(504)가 턴온될 때, 커패시터(508)는, 메모리 셀의 임계 전압이 테스트되는 전압 레벨 미만인 경우 비트 라인 및 선택된 메모리 셀을 통해 방전할 것이다. 커패시터(508)가 방전할 수 있는 경우, 커패시터에서의(SEN 노드에서의) 전압은 감소할 것이다.
SEN 노드에서의 사전-충전 전압(Vpre)은 트랜지스터(512)의 임계 전압보다 더 크다. 따라서, 스트로브 시간 이전에, 트랜지스터(512)는 온된다(도통). 트랜지스터(512)가 스트로브 시간 동안 온 되기 때문에, 트랜지스터(514)는 오프되어야 한다. 커패시터가 스트로브 시간 동안 방전하지 않는 경우, SEN 노드에서의 전압은 트랜지스터(512)의 임계 전압을 초과하여 유지할 것이고, 인버터들(530, 532)에서의 전하는 STRO가 트랜지스터(514)를 턴온시킬 때 CLK 신호 내로 방전될 수 있다.
커패시터가 스트로브 시간 동안 충분히 방전되는 경우, SEN 노드에서의 전압은 트랜지스터(512)의 임계 전압 미만으로 감소할 것이고, 이에 의해 트랜지스터(512)를 턴오프시키고, 인버터들(530, 532)에 저장되는 데이터(예를 들어, Vdd)가 CLK을 통해 방전되는 것을 방지한다. 따라서, 인버터들(530, 532)이 이들의 충전 또는 방전을 유지하는지의 여부를 테스트하는 것은 검증 프로세스의 결과를 나타낼 것이다. 일 실시예에서, 결과는 트랜지스터(534) 게이트 신호(NCO)를 턴온 시킴으로써 트랜지스터(534)(데이터 출력)를 통해 노드 A에서 판독될 수 있다.
커패시터(508)의 사전-충전 레벨(및 따라서, 노드 SEN에서의 사전-충전 전압)은 트랜지스터(510)를 통하는 전류에 의해 제한된다. 트랜지스터(510)를 통하는 전류는 게이트 전압(H00)에 의해 제한된다. 따라서, 노드 SEN에서의 사전-충전 전압은 트랜지스터(510)의 임계 전압 미만의 전압(H00)에 의해 제한된다. 이 배열을 가지고, 시스템은 H00를 조절함으로써 노드(SEN)에서의 사전-충전 전압을 조절할 수 있다. H00에서의 더 큰 전압은 사전-충전할 때 SEN 노드에서의 더 큰 전압을 초래한다. H00에서의 더 낮은 전압은 사전-충전할 때 SEN 노드에서의 더 낮은 전압을 초래한다.
시스템이 판독 또는 검증 동작을 수행할 때(둘 모두 감지 동작들임), 셀의 제어 게이트에 인가되는 전압은 셀의 (비트 라인에 접속되는) 채널이 도통하도록 할 수 있다. 이것이 발생할 때, 커패시터는 채널을 통해 방전되어, 그것이 방전함에 따라 전압을 낮춘다.
도 6은 도 5의 다양한 신호들의 행동을 기술하는 타이밍도이다. 신호(BLC)는 Vbl + Vsrc + Vth이고, Vbl은 비트 라인의 전압이고, Vsrc는 소스 라인의 전압이고, Vth는 트랜지스터(502)의 임계 전압이다. 신호(FLA)는 t0에서 Vss에서 시작하여 t6에서 Vdd로 간다. 신호(FLA)가 Vss일 때, 사전-충전 경로는 트랜지스터(510)에 의해 조절된다.
t0에서, H00의 전압은 접지에서 사전-충전 레벨로 상승한다. H00에서의 전압의 상승은 트랜지스터(510)를 턴온시키고 사전-충전 경로를 개방한다. H00에서의 전압의 크기가 설정된다. 도 6은 H00가 Vhoo로 가는 것을 도시한다. 신호(H00)는 시간(t1)까지 사전-충전 전압(Vhoo)에서 머무를 것이다. H00가 하이(high)인 동안, 트랜지스터(510)가 턴 온하고, 커패시터(512)는, SEN에서의 전압에 의해 도시되는 바와 같이, t0와 t1사이에서 사전-충전할 것이다. 시간(t1)에서, H00는 Vss로 낮아지고, 사전-충전이 완료된다.
신호(X00)가 사용되어 커패시터(512)가 비트 라인과 통신하게 하고, 따라서 커패시터는 비트 라인 및 선택된 메모리 셀을 통해 방전할 수 있다. 시간(t3)에서, X00는 Vblc로 상승하고, Vblc는 (위에서 논의된) 신호(BLC)의 전압이다. 시간(t4)에서, X00에서의 전압은 Vss로 낮아진다. 스트로브 시간으로서 알려진 시간들(t3 및 t4) 사이에서, 커패시터(512)는 비트 라인과 통신하여 (선택된 메모리 셀의 임계 전압에 따라) 그것이 비트 라인 및 선택된 메모리 셀을 통해 방전하도록 할 것이다. 신호(CLK)는 시간(t2)에서 Vblc로 상승하고 시간(t5)에서 Vss로 다시 낮아져서 회로 내의 임의의 분쟁 조건들을 방지하고, 커패시터(512)의 적절한 방전을 허용한다.
위에서 논의된 바와 같이, H00가 t0와 t1사이에서 높아지기 때문에, 커패시터(512)(및 SEN 노드)는 t0와 t1 사이에서 충전한다(사전-충전). 이는 Vss로부터 Vpre로 충전하는 SEN 노드를 가지고 도 6에 도시된다. Vpre에 대한 실선은, VhOO가 트랜지스터(506)의 게이트에 인가되는 것에 응답하여 노드(SEN)(및 커패시터(512))의 예시적인 사전-충전을 나타낸다.
X00가 t3에서 상승할 때, 커패시터(512)는 비트 라인을 초기에 사전-충전하고, 이후 (임계 전압이 적절한 레벨에 있는 경우) 비트 라인을 통해 방전할 수 있다. 도 6에 도시된 바와 같이 t3와 t4 사이에서, SEN 노드에서의 전압은, 메모리 셀의 임계 전압이 그것의 제어 게이트에 인가되는 전압보다 더 작거나 같기 때문에 메모리 셀이 턴 온(도통)하는 경우, Vpre로부터 Vpost로 소멸할 것이다. 테스트되는 메모리 셀에 대한 임계 전압이 그것의 제어 게이트에 인가되는 전압보다 더 높은 경우, 커패시터(508)는 방전하지 않을 것이고 전압은 Vpre에서 유지될 것이다. t3와 t4 사이의 기간이 스트로브 시간이며, 전술된 바와 같이 조정될 수 있다.
도 6은 신호(FCO)가 t7에서 Vdd로 상승하고 t9에서 Vss로 낮아지는 것을 도시한다. 신호(STRO)는 t8 에서 Vdd로 상승하고 t9에서 낮아진다. 시간들 t8과 t9 사이에서, 인버터들(530, 532)과 트랜지스터(512) 사이의 경로가 존재한다. 노드(SEN)에서의 전압이 트랜지스터(512)의 임계 전압보다 더 큰 경우, 인버터들(530, 532)로부터 CLK로의 경로가 존재할 것이며, 인버터들(530, 532)에서의 데이터는 신호(CLK)를 통해 그리고 트랜지스터(512)를 통해 소멸할 것이다.
노드(SEN)에서의 전압이 트랜지스터(512)의 임계 전압보다 더 낮은 경우(예를 들어, 커패시터가 방전하는 경우), 트랜지스터(512)가 턴 오프할 것이고, 인버터들(530, 532)에 의해 저장되는 전압은 CLK로 방전하지 않을 것이다. 도 6은 Vdd에서 노드 A에서의 전압 레벨을 도시한다. 커패시터의 전압이 (예를 들어, 선택된 메모리 셀의 임계 전압이 테스트되는 전압보다 더 크기 때문에 충분한 전류가 흐르지 않는 것으로 인해) 소멸하지 않는 경우, 트랜지스터(512)는 온으로 유지할 것이며, 노드 A에서의 전압은 (점선에 의해 도시되는 바와 같이) Vss로 소멸할 것이다.
커패시터의 전압이 (예를 들어, 선택된 메모리 셀의 임계 전압이 테스트되는 전압보다 더 낮기 때문에 충분한 전류가 흐르는 것으로 인해) 소멸하는 경우, 트랜지스터(512)는 턴오프할 것이고, 노드 A에서의 전압은 (실선에 의해 도시되는 바와 같이) Vdd에서 유지할 것이다. 노드 A의 출력은 신호(NCO)에 Vdd를 인가함으로써 트랜지스터(534)를 통해 데이터 출력 신호에 제공된다.
도 7은 도 6의 타이밍도에 따라 수행되는 단일 스트로브 감지 동작을 기술하는 플로우 차트이다. 단계(702)에서, 적절한 검증 기준 전압(예를 들어, Vv,Vv1, Vv2, Vv3, Vv4, Vv5, Vv6, 또는 Vv7 - 도 8a 참조)이 선택된 워드 라인에 인가된다. 선택된 워드 라인은 프로그래밍되고 검증되는 메모리 셀들에 접속된다. 프로그래밍되고 검증되는 메모리 셀들에 접속되는 비트 라인들은 미리 결정된 사전-충전 레벨로 충전된다.
단계(704)에서, SEN 노드들 모두가 사전-충전된다. 단계(706)에서, 비트 라인들은, 예를 들어, 커패시터(508)를 방전시킴으로써, 방전되도록 한다(도 6의 t5-t6 참조). "스트로브 시간" 또는 "적분 시간"이라 지칭되는, 미리 결정된 시간 기간 이후, 커패시터(508)(또는 SEN 노드)의 전압은 단계(708)에서 각자의 메모리 셀(들)이 도통되었는지를 알기 위해 전술된 바와 같이 샘플링된다. 전술된 바와 같이, 검증 프로세스가 동일한 워드 라인 및 상이한 비트 라인들에 접속되는 수천 개의 메모리 셀들에 대해 동시에 수행된다.
성공적인 프로그래밍 프로세스(검증과 함께)의 종료 시, 메모리 셀들의 임계 전압들은 적절한 경우, 프로그래밍된 메모리 셀들의 임계 전압의 하나 이상의 분포들 내에, 또는 소거된 메모리 셀들에 대한 임계 전압들의 분포 내에 있어야 한다. 도 8a는 각각의 메모리 셀이 4개의 데이터 비트들을 저장할 때 메모리 셀 어레이에 대한 예시적인 임계 전압 분포들을 예시한다. 그러나, 다른 실시예들은 메모리 셀 당 다른 데이터 용량들(예를 들어, 메모리 셀 당 1개, 2개, 3개, 또는 5개의 데이터 비트들과 같은)을 사용할 수 있다.
도 8a는 16개의 임계 전압 분포들(16개의 데이터 상태들에 대응함)을 도시한다. 제1 임계 전압 분포(데이터 상태) S0는 소거된 메모리 셀들을 나타낸다. 다른 15개의 임계 전압 분포들(데이터 상태들)(S1 - S15)은 프로그래밍된 메모리 셀들을 나타낸다. 각각의 임계 전압 분포(데이터 상태)는 데이터 비트들의 세트에 대한 미리 결정된 값들에 대응한다.
메모리 셀 내에 프로그래밍된 데이터와 메모리 셀의 임계 전압 레벨들 사이의 특정 관계는 셀들에 대해 채택되는 데이터 인코딩 방식에 의존한다. 일 실시예에서, 데이터 값들은 그레이(Gray) 코드 할당을 사용하여 임계 전압 범위들에 할당되고, 따라서 플로팅 게이트의 임계 전압이 그것의 이웃하는 물리적 상태로 잘못 시프트하는 경우, 단 1개의 비트만 영향을 받을 것이다. 상태(N-1)가 상태(N)에 대해 인접하는 더 낮은 데이터 상태라는 것에 유의한다. 예를 들어, 상태 7은 상태 8에 대한 인접하는 더 낮은 데이터 상태이다.
도 8a는 메모리 셀들로부터 데이터를 판독하기 위한 15개의 판독 기준 전압들(Vr1, Vr2, Vr3, Vr4, Vr5, Vr6, Vr7, Vr8, Vr9, Vr10, Vr11, Vr12, Vr13, Vr14 및 Vr15)을 또한 도시한다. 주어진 메모리 셀의 임계 전압이 15개의 판독 기준 전압들 초과인지 또는 미만인지를 테스트함으로써, 시스템은 메모리 셀이 있는 어느 데이터 상태(즉, SO, S1, S2, S3,...)에 있는지를 결정할 수 있다.
도 8a는 15개의 검증 기준 전압들(Vv1, Vv2, Vv3, Vv4, Vv5, Vv6, Vv7, Vv8, Vv9, Vv1O, Vv11, Vv12, Vv13, Vv14 및 Vv15)을 또한 도시한다. 메모리 셀들을 데이터 상태(Si)로 프로그래밍할 때, 시스템은 해당 메모리 셀들이 Vvi보다 더 크거나 같은 임계 전압을 가지는지를 테스트할 것이다. 예를 들어, 메모리 셀들을 데이터 상태(S1)로 프로그래밍할 때, 시스템은 그 메모리 셀들이 Vv1보다 더 크거나 같은 임계 전압을 가지는지를 테스트할 것이다. 메모리 셀들을 데이터 상태(S2)로 프로그래밍할 때, 시스템은 메모리 셀들이 Vv2보다 더 크거나 같은 임계 전압들을 가지는지를 테스트하는 등의 식이다.
전체 시퀀스 프로그래밍으로 알려진, 일 실시예에서, 메모리 셀들은 소거된 데이터 상태(S0)로부터 프로그래밍된 데이터 상태들(S1-S15) 중 임의의 것으로 직접 프로그래밍될 수 있다. 예를 들어, 프로그래밍될 메모리 셀들의 점유가 먼저 소거될 수 있고 따라서 점유된 모든 메모리 셀들은 소거된 데이터 상태(S0)에 있다. 이후, 프로그래밍 프로세스가 사용되어 메모리 셀들을 직접 데이터 상태들(S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14 및/또는 S15)로 프로그래밍된다.
예를 들어, 일부 메모리 셀들이 데이터 상태(S0)로부터 데이터 상태(S1)로 프로그래밍되지만, 다른 메모리 셀들은 데이터 상태(S0)로부터 데이터 상태(S2)로 그리고/또는 데이터 상태(S0)로부터 데이터 상태(S3)로 등의 식으로 프로그래밍된다. 도 8a의 화살표는 전체 시퀀스 프로그래밍을 나타낸다.
도 8b는 에러 정정이 에러 상태인 특정 비율의 메모리 셀들을 핸들링할 수 있기 때문에 부분적으로 오버랩할 수 있는 데이터 상태들(S0-S15)에 대응하는 임계 전압 분포들의 또다른 실시예를 예시한다. 도면의 크기 때문에, 데이터 상태들에 대한 기준들은, S0보다는 0이 사용되고, S1보다는 1이 사용되고, S2보다는 2가 사용되는 등의 식이 되도록 절단되었다.
도 9a-c는 4개의 데이터 비트들을 저장하는 메모리 셀들 내로 데이터를 프로그래밍하기 위한 3 스테이지 프로그래밍 프로세스를 기술한다. 프로그래밍 이전에, 블록에 대한 메모리 셀들 모두가 소거된 임계 전압 분포로 소거될 것이다. 예를 들어, 도 9a는 소거된 임계 전압 분포(E)에서 시작하는 메모리 셀들의 블록을 도시한다(점선으로 도시됨). 일부 실시예들에서, 소거된 임계 전압(E)은 0 볼트 미만이다. 다른 실시예들에서, 소거된 임계 전압 분포(E)는 0볼트 초과이거나, 또는 부분적으로 0볼트 초과이다.
이 실시예에서, 프로그래밍 프로세스는 3개 단계(phase)들을 포함한다. 프로그래밍의 제1 단계 동안, (해당 메모리 셀들에 저장되는 데이터로 인해) 그것의 타겟들이 데이터 상태들(S4, S5, S6 또는 S7)인 메모리 셀들은 중간 상태(IMO)로 프로그래밍된다. 그것의 타겟들이 데이터 상태들(S8, S9, S10 또는 S11)인 메모리 셀들은 중간 상태(FM1)로 프로그래밍된다. 그것의 타겟들이 데이터 상태들(S12, S13, S14 또는 S15)인 메모리 셀들은 중간 상태(FM2)로 프로그래밍된다. 그것의 타겟들이 데이터 상태들(SO, S1, S2 또는 S3)인 메모리 셀들은 소거된 임계 전압 분포(E)에서 유지된다. 제1 단계는 도 9a에 의해 도해적으로 도시된다.
프로그래밍 프로세스의 제2 단계 동안, 소거된 임계 전압 분포(E)에 있는 메모리 셀들은 이들의 타겟 데이터 상태들로 프로그래밍된다. 예를 들어, 데이터 상태(S3)로 프로그래밍될 메모리 셀들은 소거된 임계 전압 분포(E)로부터 데이터 상태(S3)로 프로그래밍되고, 데이터 상태(S2)로 프로그래밍될 메모리 셀들은 소거 임계 전압 분포(E)로부터 데이터 상태(S2)로 프로그래밍되고, 데이터 상태(S1)로 프로그래밍될 메모리 셀들은 소거 임계 전압 분포(E)로부터 데이터 상태(S1)로 프로그래밍되고, 데이터 상태(S0)에 있을 메모리 셀들은 프로그래밍 프로세스의 제2 단계 동안 프로그래밍되지 않는다. 따라서, 소거된 임계 전압 분포(E)는 데이터 상태(S0)가 된다.
또한, 제2 단계 동안, 메모리 셀들은 중간 상태(IM0)로부터 다양한 데이터 상태들(S4-S7)로 프로그래밍된다. 예를 들어, 데이터 상태(S7)로 프로그래밍될 메모리 셀들은 중간 상태(IM0)로부터 데이터 상태(S7)로 프로그래밍되고, 데이터 상태(S6)에 있도록 타겟팅되는 메모리 셀들은 중간 상태(IM0)로부터 데이터 상태(S6)로 프로그래밍되고, 데이터 상태(S5)로 프로그래밍될 메모리 셀들은 중간 상태(IM0)로부터 데이터 상태(S5)로 프로그래밍되고, 데이터 상태(S4)로 프로그래밍될 메모리 셀들은 중간 상태(IM0)로부터 데이터 상태(S4)로 프로그래밍된다.
메모리 셀들은 또한 중간 상태(IM1)로부터 다양한 데이터 상태들(S8-11)로 프로그래밍된다. 예를 들어, 데이터 상태(S11)로 프로그래밍될 메모리 셀들은 중간 상태(IM1)로부터 데이터 상태(S11)로 프로그래밍되고, 데이터 상태(S10)에 있도록 타겟팅되는 메모리 셀들은 중간 상태(IM1)로부터 데이터 상태(S10)로 프로그래밍되고, 데이터 상태(S9)로 프로그래밍될 메모리 셀들은 중간 상태(IM1)로부터 데이터 상태(S9)로 프로그래밍되고, 데이터 상태(S8)로 프로그래밍될 메모리 셀들은 중간 상태(IM1)로부터 데이터 상태(S8)로 프로그래밍된다.
메모리 셀들은 또한 중간 상태(IM2)로부터 다양한 데이터 상태들(S12-S15)로 프로그래밍된다. 예를 들어, 데이터 상태(S15)로 프로그래밍될 메모리 셀들은 중간 상태(IM2)로부터 데이터 상태(S15)로 프로그래밍되고, 데이터 상태(S14)에 있도록 타겟팅되는 메모리 셀들은 중간 상태(IM2)로부터 데이터 상태(S14)로 프로그래밍되고, 데이터 상태(S13)로 프로그래밍될 메모리 셀들은 중간 상태(IM2)로부터 데이터 상태(S13)로 프로그래밍되고, 데이터 상태(S12)로 프로그래밍될 메모리 셀들은 중간 상태(IM2)로부터 데이터 상태(S12)로 프로그래밍된다. 이러한 제2 프로그래밍 단계가 도 9b에 예시된다.
도 9b에서 알 수 있는 바와 같이, 프로그래밍의 제2 단계의 단부에서 데이터 상태들(S1-S15)은 이웃 데이터 상태들과 오버랩한다. 예를 들어, 데이터 상태(S1)는 데이터 상태(S2)와 오버랩하고, 데이터 상태(S2)는 데이터 상태들(S1 및 S3)과 오버랩하고, 데이터 상태(S3)는 데이터 상태들(S2 및 S4)과 오버랩하고, 데이터 상태(S4)는 데이터 상태들(S3 및 S5)과 오버랩하고, 데이터 상태(S5)는 데이터 상태들(S4 및 S6)과 오버랩하고, 데이터 상태(S6)는 데이터 상태들(S5 및 S7)과 오버랩하는 등의 식이다. 일부 실시예들에서, 데이터 상태들 전부 또는 일부는 오버랩하지 않는다.
프로그래밍의 제3 단계에서, 데이터 상태들(S1-S15) 각각이 타이트해져서 이들은 이웃 상태들과 더 이상 오버랩하지 않는다. 이것이 도 9c에 의해 도해적으로 도시된다. 일부 실시예들에서, 데이터 상태(S0)는 데이터 상태들(S1-S15)보다 더 넓다.
도 10은 하나 이상의 타겟들(예를 들어, 데이터 상태들 또는 임계 전압 범위들)로 공통 워드 라인에 접속되는 메모리 셀들을 프로그래밍하기 위한 프로세스의 일 실시예를 기술하는 플로우 차트이다. 도 10의 프로세스는 데이터를 메모리 셀들의 세트로 프로그래밍하도록 한번 또는 다수번 수행될 수 있다. 예를 들어, 도 10의 프로세스는 도 8a의 전체 시퀀스 프로그래밍에서 S0로부터 S1-S15 중 임의의 것으로 메모리 셀들을 프로그래밍하기 위해 사용될 수 있다. 도 10의 프로세스는 도 9a-c의 3개 단계들 중 임의의 것에 대해 메모리 셀들을 프로그래밍하기 위해 사용될 수 있다.
NAND 플래시 메모리 디바이스와 같은 플래시 메모리 디바이스를 프로그래밍할 때, 프로그래밍 전압(Vpgm)이 메모리 셀의 워드 라인에 통상적으로 인가되고, 비트 라인은 접지된다. 채널로부터의 전자들이 플로팅 게이트 내에 주입된다. 전자들이 플로팅 게이트에 누적될 때, 플로팅 게이트는 음으로 충전되고, 메모리 셀이 프로그래밍된 상태에 있도록 메모리 셀의 임계 전압이 상승된다.
통상적으로, 프로그램 동작 동안 제어 게이트에 인가되는 프로그램 전압은 일련의 프로그램 펄스들로서 인가된다. 프로그래밍 펄스들 사이에 검증을 수행하기 위한 검증 펄스들의 세트가 있다. 많은 구현예들에서, 프로그램 펄스들의 크기는 각각의 연속적인 펄스를 이용하여 미리 결정된 스텝 크기만큼 증가한다.
도 10의 단계(1000)에서, 프로그래밍 전압(Vpgm)은 시작 크기(예를 들어, ~12-16V 또는 또다른 적절한 레벨)로 초기화되고, 상태 머신(222)(도 2)에 의해 유지되는 프로그램 카운터(PC)는 1에서 초기화된다. 단계(1002)에서, 프로그램 신호(Vpgm)의 프로그램 펄스가 선택된 워드 라인(프로그래밍을 위해 선택된 워드 라인)에 인가된다. 일 실시예에서, 동시에 프로그래밍되는 메모리 셀들의 그룹은 모두 동일한 워드 라인(선택된 워드 라인)에 접속된다. 선택되지 않은 워드 라인들은 하나 이상의 부스팅 전압들(예를 들어, ~7-11볼트)을 수신하여 본 기술분야에 공지된 부스팅 방식들을 수행한다.
실시예에서, 메모리 셀이 프로그래밍되는 경우, 대응하는 비트 라인은 접지된다. 반면, 메모리 셀이 그것의 현재 임계 전압에서 유지되는 경우, 대응하는 비트 라인은 프로그래밍을 금지하기 위해 Vdd(예를 들어, 2.2V)에 접속된다. 이는, 심지어 셀이 셀의 워드 라인상에서 프로그래밍 펄스들을 거치더라도, 비트 라인에 커플링된 셀이 추가로 프로그래밍되는 것을 금지한다.
단계(1002)에서, 프로그램 펄스는 선택된 워드 라인에 접속되는 모든 메모리 셀들에 동시에 인가되고, 따라서 선택된 워드 라인에 접속되는 메모리 셀들 모두는 동시에 프로그래밍된다. 즉, 이들은 동시에 또는 오버랩하는 시간들 동안(이들 둘 모두 동시로 간주됨) 프로그래밍된다. 이러한 방식으로, 선택된 워드 라인에 접속되는 메모리 셀들 모두는, 이들이 프로그래밍할 수 없게 되지 않는 한(locked out), 이들의 임계 전압이 동시에 변경하게 할 것이다.
단계(1004)에서, 적절한 메모리 셀들은 타겟 레벨들의 적절한 세트를 사용하여 하나 이상의 검증 동작들을 수행하여 검증된다. 일 실시예에서, 검증 프로세스는, 프로그래밍을 위해 선택되는 메모리 셀들의 임계 전압들이 적절한 검증 기준 전압(예를 들어, Vv1, Vv2, Vv3, Vv4, Vv5, Vv6, 및 Vv7)에 도달했는지에 대한 테스트를 적용함으로써 수행된다.
단계(1006)에서, 모든 메모리 셀들이 이들의 타겟 임계 전압들에 도달했는지(통과)에 대한 결정이 이루어진다. 만약 그러하다면, 모든 선택된 메모리 셀들이 이들의 타겟 상태들로 프로그래밍되고 검증되었기 때문에, 프로그래밍 프로세스는 완료되고 성공적이다. "통과"의 상태는 단계(1008)에서 보고된다. 1006에서, 메모리 셀들 모두가 이들의 타겟 임계 전압들에 도달하지는 않는다는 결정이 이루어지는 경우(실패), 프로그래밍 프로세스는 단계(1010)로 계속된다.
단계(1010)에서, 시스템은 이들의 각자의 타겟 임계 전압 분포에 도달하지 않은 메모리 셀들의 수를 카운트한다. 즉, 시스템은 검증 프로세스에 실패한 메모리 셀들의 수를 카운트한다. 이러한 카운팅은 상태 머신, 제어기 또는 다른 로직에 의해 이루어질 수 있다. 일 구현예에서, 감지 블록들 각각은 이들의 각자의 셀들의 상태(성공/실패)를 저장할 것이다. 일 실시예에서, 하나의 전체 카운트가 존재하는데, 이는 마지막 검증 단계에 실패한 현재 프로그래밍되는 메모리 셀들의 전체 수를 반영한다. 또다른 실시예에서, 별도의 카운트들이 각각의 데이터 상태에 대해 유지된다.
단계(1012)에서, 단계(1010)로부터의 카운트가 미리 결정된 제한보다 더 적거나 같은지에 대한 결정이 이루어진다. 일 실시예에서, 미리 결정된 제한은 메모리 셀들의 페이지에 대한 판독 프로세스 동안 ECC에 의해 정정될 수 있는 비트들의 수이다. 실패한 셀들의 수가 미리 결정된 제한보다 더 적거나 같은 경우, 프로그래밍 프로세스는 중단할 수 있고, 단계(1008)에서 "통과"의 상태가 보고된다. 이 상황에서, 완전히 프로그래밍되지 않은 몇몇 나머지 메모리 셀들이 판독 프로세스 동안 ECC를 사용하여 정정될 수 있도록 충분한 메모리 셀들이 프로그래밍된다. 일부 실시예들에서, 단계(1010)는 각각의 섹터, 각각의 타겟 데이터 상태 또는 다른 단위에 대해 실패한 셀들의 수를 카운트할 것이고, 그 카운트들은 단계(1012)에서 개별적으로 또는 총체적으로 임계와 비교될 것이다.
또다른 실시예에서, 미리 결정된 제한은 추후 에러들을 허용하기 위해 판독 프로세스 동안 ECC에 의해 정정될 수 있는 비트들이 수보다 더 적을 수 있다. 페이지에 대한 메모리 셀들 모두보다 더 적은 메모리 셀들을 프로그래밍하거나, 또는 단 하나의 데이터 상태(또는 모두보다 더 적은 상태들)에 대한 카운트를 비교할 때, 미리 결정된 제한은 메모리 셀들의 페이지에 대판 판독 프로세스 동안 ECC에 의해 정정될 수 있는 비트들의 수의 일부분(비례하는(pro-rata) 또는 비례하지 않는)일 수 있다. 일부 실시예들에서, 제한은 미리 결정되지 않는다. 대신, 그것은 페이지에 대해 이미 카운트된 에러들의 수, 수행된 프로그램-소거 사이클들이 수 또는 다른 기준들에 기초하여 변경한다.
실패한 메모리 셀들의 수가 미리 결정된 제한보다 더 적은 경우, 프로그래밍 프로세스는 단계(1014)에서 계속되고, 프로그램 카운터(PC)는 프로그램 제한 값(PL)에 대해 체크된다. 프로그램 제한 값들의 예들은 20 및 30을 포함하지만, 다른 값들이 사용될 수 있다. 프로그램 카운터(PC)가 프로그램 제한 값(PL)보다 더 적지 않은 경우, 프로그램 프로세스는 실패한 것으로 간주되고, 실패의 상태가 단계(1018)에서 보고된다. 프로그램 카운터(PC)가 프로그램 제한 값(PL)보다 더 적은 경우, 프로세스는 단계(1016)에서 계속되고, 그 동안 프로그램 카운터(PC)는 1씩 증분되고, 프로그램 전압(Vpgm)은 다음 크기로 증가된다.
예를 들어, 다음 펄스는 스텝 크기(예를 들어, 0.1-0.4볼트의 스텝 크기)만큼 이전 펄스보다 더 큰 크기를 가질 것이다. 단계(1016) 이후, 프로세스는 단계(1002)로 되돌아가고, 또다른 프로그램 펄스가 선택된 워드 라인에 인가된다.
전술된 실시예에서, 2개의 상이한 비트 라인 바이어스들, 즉, 대응하는 메모리가 프로그래밍되는 것이 금지되는 경우 제1 비트 라인 바이어스(예를 들어, Vdd), 및 대응하는 메모리 셀이 프로그래밍될 경우 제2 비트 라인 바이어스(예를 들어, 0V)가 사용된다. 따라서, 이러한 비트 라인 바이어싱 방식에서, 프로그래밍되는 모든 메모리 셀들에 대해, 메모리 셀의 타겟 상태와는 무관하게 단일 비트 라인 바이어스가 사용된다(예를 들어, 0V).
또다른 실시예에서, 2개 초과의 비트 라인 바이어스들, 즉, 대응하는 메모리 셀이 프로그래밍되는 것이 금지되는 경우 제1 비트 라인 바이어스(예를 들어, Vdd), 및 프로그래밍되는 대응하는 메모리 셀들에 대해 다수의 프로그래밍 비트 라인 바이어스들이 사용된다. 특히, 메모리 셀이 프로그래밍되는 경우, 대응하는 비트 라인은 프로그래밍되는 메모리 셀의 타겟 데이터 상태에 기초하여 바이어싱된다.
도 11은 대응하는 메모리 셀들의 동시적인 프로그래밍을 위해 다수의 프로그래밍 비트 라인 바이어스들을 사용하는 예시적인 프로그래밍 프로세스를 기술한다. 예시된 예에서, 4개의 데이터 비트들을 저장하는 메모리 셀들 내로 데이터를 프로그래밍하기 위한 프로그래밍 프로세스가 기술된다. 프로그래밍 이전에, 블록에 대한 메모리 셀들 모두가 소거된 임계 전압 분포로 소거된다. 예를 들어, 메모리 셀들의 블록이 소거된 임계 전압 분포(E)(점선으로 도시됨)에서 시작한다. 일부 실시예들에서, 소거된 임계 전압(E)은 0 볼트 미만이다. 다른 실시예들에서, 소거된 임계 전압 분포(E)는 0 볼트를 초과하거나, 또는 부분적으로 0 볼트를 초과한다.
프로그래밍 프로세스는 2개의 단계들을 포함한다. 제1 프로그래밍 단계 동안, (해당 메모리 셀들에 저장될 데이터로 인해) 그것의 타겟들이 데이터 상태들(S4, S5, S6 또는 S7)인 메모리 셀들이 중간 상태(IM0)로 프로그래밍된다. 그것의 타겟들이 데이터 상태들(S8, S9, S10 또는 S11)인 메모리 셀들은 중간 상태(IM1)로 프로그래밍된다. 그것의 타겟들이 데이터 상태들(S12, S13, S14 또는 S15)인 메모리 셀들은 중간 상태(IM2)로 프로그래밍된다. 그것의 타겟들이 데이터 상태들(SO, S1, S2 또는 S3)인 메모리 셀들은 소거된 임계 전압 분포(E)로 유지된다.
제2 프로그래밍 단계 동안, 메모리 셀들은 중간 상태 또는 소거 상태로부터 타겟 데이터 상태들로 동시에 프로그래밍되고, 대응하는 비트 라인은 표 1에 설명되는 바와 같이, 프로그래밍되는 메모리 셀의 타겟 데이터 상태에 기초하여 바이어싱된다:
따라서, 이 예에서, 4개의 프로그래밍 비트 라인 바이어스들(Vbl1, Vbl2, Vbl3 및 Vbl4)이 4개의 데이터 비트들을 저장하는, 프로그래밍되는 대응하는 메모리 셀들에 대해 사용된다.
도 11을 다시 참조하면, 메모리 셀들은 타겟 데이터 상태에 기초하여 바이어싱되는 대응하는 비트 라인을 이용하여 중간 상태(IM2)로부터 다양한 데이터 상태들(S12-S15)로 프로그래밍된다. 예를 들어, 데이터 상태(S15)로 프로그래밍될 메모리 셀들은 제1 프로그래밍 비트 라인 바이어스(Vbl1)(예를 들어, 0V)를 사용하여 중간 상태(IM2)로부터 데이터 상태(S15)로 프로그래밍되고, 데이터 상태(S14)에 있도록 타겟팅되는 메모리 셀들은 제2 프로그래밍 비트 라인 바이어스(Vbl2)(예를 들어, 0.4V)를 사용하여 중간 데이터 상태(IM2)로부터 데이터 상태(S14)로 프로그래밍되고, 데이터 상태(S13)로 프로그래밍될 메모리 셀들은 제3 프로그래밍 비트 라인 바이어스(Vbl3)(예를 들어, 0.8V)를 사용하여 중간 상태(IM2)로부터 데이터 상태(S13)로 프로그래밍되고, 데이터 상태(S12)로 프로그래밍될 메모리 셀들은 제4 프로그래밍 비트 라인 바이어스(Vbl4)(예를 들어, 1.2V)를 사용하여 중간 상태(IM2)로부터 데이터 상태(S12)로 프로그래밍된다. 제1 프로그래밍 비트 라인 바이어스(Vbl1), 제2 프로그래밍 비트 라인 바이어스(Vbl2), 제3 프로그래밍 비트 라인 바이어스(Vbl3) 및 제4 프로그래밍 비트 라인 바이어스(Vbl4)는 위에서 열거되고 도 11에 도시된 예시적인 값들이 아닌 값들을 가질 수 있다.
메모리 셀들은 또한 타겟 데이터 상태에 기초하여 바이어싱되는 대응하는 비트 라인을 이용하여 중간 상태(IM1)로부터 다양한 데이터 상태들(S8-S11)로 동시에 프로그래밍된다. 예를 들어, 데이터 상태(S11)로 프로그래밍될 메모리 셀들은 제1 프로그래밍 비트 라인 바이어스(Vbl1)를 사용하여 중간 상태(IM1)로부터 데이터 상태(S11)로 프로그래밍되고, 데이터 상태(S10)에 있도록 타겟팅되는 메모리 셀들은 제2 프로그래밍 비트 라인 바이어스(Vbl2)를 사용하여 중간 데이터 상태(IM1)로부터 데이터 상태(S10)로 프로그래밍되고, 데이터 상태(S9)로 프로그래밍될 메모리 셀들은 제3 프로그래밍 비트 라인 바이어스(Vbl3)를 사용하여 중간 상태(IM1)로부터 데이터 상태(S9)로 프로그래밍되고, 데이터 상태(S8)로 프로그래밍될 메모리 셀들은 제4 프로그래밍 비트 라인 바이어스(Vbl4)를 사용하여 중간 상태(IM1)로부터 데이터 상태(S8)로 프로그래밍된다.
메모리 셀들은 또한 타겟 데이터 상태에 기초하여 바이어싱되는 대응하는 비트 라인을 이용하여 중간 상태(IM0)로부터 다양한 데이터 상태들(S4-S7)로 동시에 프로그래밍된다. 예를 들어, 데이터 상태(S7)로 프로그래밍될 메모리 셀들은 제1 프로그래밍 비트 라인 바이어스(Vbl1)를 사용하여 중간 상태(IM0)로부터 데이터 상태(S7)로 프로그래밍되고, 데이터 상태(S6)에 있도록 타겟팅되는 메모리 셀들은 제2 프로그래밍 비트 라인 바이어스(Vbl2)를 사용하여 중간 데이터 상태(IM0)로부터 데이터 상태(S6)로 프로그래밍되고, 데이터 상태(S5)로 프로그래밍될 메모리 셀들은 제3 프로그래밍 비트 라인 바이어스를 사용하여 중간 상태(IM0)로부터 데이터 상태(S5)로 프로그래밍되고, 데이터 상태(S4)로 프로그래밍될 메모리 셀들은 제4 프로그래밍 비트 라인 바이어스(Vbl4)를 사용하여 중간 상태(IM0)로부터 데이터 상태(S4)로 프로그래밍된다.
메모리 셀들은 또한 타겟 데이터 상태에 기초하여 바이어싱되는 대응하는 비트 라인을 이용하여 소거된 임계 전압 분포(E)로부터 다양한 데이터 상태들(S1-S3)로 동시에 프로그래밍된다. 예를 들어, 데이터 상태(S3)로 프로그래밍될 메모리 셀들은 제1 프로그래밍 비트 라인 바이어스(Vbl1)를 사용하여 소거된 임계 전압 분포(E)로부터 데이터 상태(S3)로 프로그래밍되고, 데이터 상태(S2)에 있도록 프로그래밍되는 메모리 셀들은 제2 프로그래밍 비트 라인 바이어스(Vbl2)를 사용하여 소거된 임계 전압 분포(E)로부터 데이터 상태(S2)로 프로그래밍되고, 데이터 상태(S1)로 프로그래밍될 메모리 셀들은 제3 프로그래밍 비트 라인 바이어스(Vbl3)를 사용하여 소거된 임계 전압 분포(E)로부터 데이터 상태(S1)로 프로그래밍되고, 데이터 상태(S0)에 있을 메모리 셀들은 프로그래밍 프로세스의 제2 단계 동안 프로그래밍되지 않는다. 따라서 소거된 임계 전압 분포(E)는 데이터 상태(S0)가 된다.
도 11로부터 알 수 있는 바와 같이, 프로그래밍 동안 사용되는 비트 라인 바이어스는 중간 상태 분포와 타겟 상태 분포 사이의 전압차에 대응한다. 즉, 데이터 상태들(S15, S11, S7 및 S3)은 중간 상태 분포들(IM2, IM1, IM0 및 E)로부터의 가장 큰 전압차를 가지며, 제1 프로그래밍 비트 라인 바이어스(Vbl1)를 사용하여 프로그래밍된다. 마찬가지로, 데이터 상태들(S14, S10, S6 및 S2)은 중간 상태 분포들(IM2, IM1, IM0 및 E)로부터의 첫번째 더 낮은 전압차를 가지며, 제2 프로그래밍 비트 라인 바이어스(Vbl2)를 사용하여 프로그래밍된다. 유사하게, 데이터 상태들(S13, S9, S5 및 S1)은 중간 상태 분포들(IM2, IM1, IM0 및 E)로부터의 두번째 더 낮은 전압차를 가지며, 제3 프로그래밍 비트 라인 바이어스(Vbl3)를 사용하여 프로그래밍된다. 마지막으로, 데이터 상태들(S12, S8, 및 S4)은 중간 상태 분포들(IM2, IM1, IM0 및 E)로부터의 세번째 더 낮은 전압차를 가지며, 제4 프로그래밍 비트 라인 바이어스(Vbl4)를 사용하여 프로그래밍된다.
비트 라인들 사이의 커플링을 감소시키기 위해, 짝수 메모리 셀들은 홀수 메모리 셀들과는 별도로 프로그래밍되어야 한다.
도 11이 4개의 데이터 비트들을 저장하는 메모리 셀들 내로 데이터를 프로그래밍하기 위한 2-단계 프로그래밍 프로세스를 기술하지만, 유사한 멀티-비트 라인 바이어스 기법들이 4개 초과의 또는 4개 미만의 데이터 비트들을 저장하는 메모리 셀들 내로 데이터를 프로그래밍하기 위해 사용될 수 있다. 추가로, 도 11이 4개의 프로그래밍 비트 라인 바이어스들을 사용하는 프로그래밍 프로세스를 기술하지만, 4개 초과의 또는 4개 미만의 프로그래밍 비트 라인 바이어스들이 사용될 수 있다. 추가로, 도 11이 2-단계 프로그래밍 프로세스를 기술하지만, 유사한 멀티-비트 바이어스 라인 바이어스 기법들이 2개 초과의 단계들을 사용하는 프로그래밍 프로세스들에 대해 사용될 수 있다.
도 11에 기술되는 실시예에서, 5개의 상이한 비트 라인 바이어스들, 즉, 대응하는 메모리가 프로그래밍되는 것이 금지되는 경우 금지 비트 라인 바이어스(예를 들어, Vdd), 및 프로그래밍되는 대응하는 메모리 셀들에 대한 4개의 프로그래밍 비트 라인 바이어스들이 사용되며, 프로그래밍 비트 라인은 프로그래밍되는 메모리 셀의 타겟 데이터 상태에 기초한다.
도 12는 프로그래밍되는 메모리 셀의 타겟 데이터 상태에 기초하여 금지 비트 라인 바이어스 및 다수의 프로그래밍 비트 라인 바이어스들을 제공하는 감지 증폭기 회로(1200)를 도시하는 개략도이다.
감지 증폭기 회로(1200)는 비트 라인 및 COM 노드에 접속하는 트랜지스터(1202)를 포함한다. 트랜지스터(1202)는 그것의 게이트에서 신호(BLC)를 수신하고, 신호(BLC)의 전압 레벨에 기초하여 비트 라인을 COM 노드에 접속시키거나 접속해제시킨다. 신호(BLC)가 하이(예를 들어, Vdd)인 경우, 트랜지스터(1202)는 온되고, 비트 라인은 COM 노드의 전위로 충전한다. 신호(BLC)가 로우(예를 들어, 0V)인 경우, 트랜지스터(1202)는 오프되고 비트 라인은 플로팅한다.
트랜지스터(1202)는 COM 노드에서 n-채널 트랜지스터들(1204 및 1206)에 접속되는 n-채널 트랜지스터이다. 트랜지스터(1204)는 그것의 게이트에서 신호(BLY)를 수신하고, 신호(BLY)의 전압 레벨에 기초하여 COM 노드를 COMY 노드에 접속시키거나 접속해제시킨다. 신호(BLY)가 하이인 경우, 트랜지스터(1204)는 온되고, COM 노드는 COMY 노드에 접속된다. 신호(BLY)가 로우인 경우, 트랜지스터(1204)는 오프되고, COM 노드는 COMY 노드로부터 접속해제된다.
트랜지스터(1206)는 그것의 게이트에서 신호(XXL)를 수신하고, 신호(XXL)의 전압 레벨에 기초하여 COM 노드를 SEN 노드에 접속시키거나 접속해제시킨다. 신호(XXL)가 하이인 경우, 트랜지스터(1206)는 온되고, COM 노드는 SEN 노드에 접속된다. 신호(XXL)가 로우인 경우, 트랜지스터(1206)는 오프되고, COM 노드는 SEN 노드로부터 접속해제된다.
트랜지스터(1204)는 COMY 노드에서 p-채널 트랜지스터(1208) 및 n-채널 트랜지스터(1210)에 접속된다. 트랜지스터(1208)는 그것의 게이트에서 신호(OSP)를 수신하고, 게이트에서 신호(INV)를 수신하는 p-채널 트랜지스터(1212)를 통해 신호(Vdd)에 커플링된다. 트랜지스터(1210)는 그것의 게이트에서 신호(GRS)를 수신하고, 노드(Vx)에서, 게이트에서 신호(INV)를 수신하며 신호(SGND)에 커플링되는 드레인 단자를 가지는, n-채널 트랜지스터(1214)의 소스 단자에 커플링된다.
신호(INV, OSP 및 XXL)가 로우이고, 신호들(BLY 및 BLC)이 하이인 경우, 트랜지스터들(1202, 1204, 1208 및 1212)은 온되고, 트랜지스터들(1206 및 1214)은 오프되며, 비트 라인은 금지 비트 라인 바이어스인, Vdd(예를 들어, 2.2V)로 충전된다. Vdd의 다른 값들이 사용될 수 있다.
신호(INV, GRS, BLY 및 BLC)가 하이이고, 신호(XXL)이 로우이고, 신호 SGND = Vss (예를 들어, 0V)인 경우, 트랜지스터들(1202, 1204, 1210 및 1214)은 온되고, 트랜지스터들(1206 및 1212)은 오프되고, 비트 라인은 제1 프로그래밍 비트 라인 바이어스(Vbl1)인, Vss로 충전된다.
트랜지스터(1206)는 SEN 노드에서, n-채널 트랜지스터들(1216, 1218, 1220 및 1222)에 그리고 p-채널 트랜지스터(1224)에 접속된다. 트랜지스터(1216)는 SEN 노드에 커플링되는 드레인 단자, 및 Vss에 커플링되는 게이트 단자를 가지며, 오프된다. 트랜지스터(1218)는 SEN 노드에 커플링되는 게이트 단자, 및 Vss에 커플링되는 소스 단자를 가진다. 트랜지스터(1220)는 트랜지스터(122)의 소스 단자에 커플링되는 드레인 단자, 신호(LSL)에 커플링되는 게이트 단자를 가지고, n-채널 트랜지스터(1226)의 드레인 단자에 커플링되는 소스 단자를 가진다. 트랜지스터(12264)는 신호(LBUS)에 커플링되는 게이트 단자를 가지고, Vss에 커플링되는 소스 단자를 가진다.
트랜지스터(1224)는 Vdd에 커플링되는 소스 단자, SEN 노드에 커플링되는 게이트 단자, 및 p-채널 트랜지스터(1228)의 소스 단자에 커플링되는 드레인 단자를 가진다. 트랜지스터(1228)는 신호(VG1)에 커플링되는 게이트 단자, 및 n-채널 트랜지스터(1230)의 드레인 단자에 커플링되는 드레인 단자를 가진다. 트랜지스터(1230)는 신호(VG2)에 커플링되는 게이트 단자, 및 트랜지스터(1218)의 드레인 단자에 커플링되는 소스 단자를 가진다.
트랜지스터(1222)는 신호(VG3)에 커플링되는 게이트 단자, 및 p-채널 트랜지스터(1232)의 드레인 단자에 커플링되는 드레인 단자를 가진다. 트랜지스터(1232)는 신호(LBUS)에 커플링되는 게이트 단자, 및 Vdd에 커플링되는 소스 단자를 가진다.
신호들(BLC, XXL, LSL, LBUS 및 VG1)이 하이이고, 신호들(BLY, VG2 및 VG3)이 로우인 경우, 트랜지스터들(1202, 1206, 1220 및 1226)은 온 되고, 트랜지스터들(1204, 122 및 1228)은 오프되고, SEN 노드는 Vss에 접속되고, 비트 라인은 제1 프로그래밍 비트 라인 바이어스(Vbl1)인, Vss로 충전된다.
N-채널 트랜지스터(1234)는 신호(LBUS)에 커플링되는 드레인 단자, 신호(BLCM)에 커플링되는 게이트 단자, 및 노드(INV)에서 n-채널 트랜지스터(1236)의 게이트 단자에 커플링되는 소스 단자를 가진다. 기생 커패시터(Cp)는 노드(INV와 Vss) 사이에 커플링되며, 약 10 fF의 값을 가진다. 트랜지스터(1236)는 트랜지스터(1216)의 드레인 단자에 커플링되는 드레인 단자, 및 Vss에 커플링되는 소스 단자를 가진다.
n-채널 트랜지스터(1238)는 트랜지스터(1228)의 드레인 단자에 커플링되는 드레인 단자, Vss에 커플링되는 게이트 단자, 및 트랜지스터(1222)의 소스 단자에 커플링되는 소스 단자를 가진다. 트랜지스터(1238)는 오프된다.
LBUS가 하이이고, 신호(BLCM)이 적어도 노드(INV)보다 더 높은 임계 전압인 경우, 노드(INV)는:
[수학식 1]
INV = BLCM - Vt
이고, 여기서 Vt는 트랜지스터(1234)의 임계 전압이다.
실시예에서, 신호(BLCM)은 후속하는 값들: V2 = Vbl2 + 2Vt, V3 = Vbl3 + 2Vt, 및 V4 = Vbl4 + 2xVt을 가지고, 여기서, Vbl2, Vbl3, 및 Vbl4은 제2 프로그래밍 비트 라인 바이어스, 제3 프로그래밍 비트 라인 바이어스, 및 제4 프로그래밍 비트 라인 바이어스(전술됨)이고, Vt는 트랜지스터(1234)의 임계 전압이다. BLCM 값들(V2, V3 및 V4) 각각에 대해, INV는 대응하는 값들 V2A = Vbl2 + Vt, V3A = Vbl3 + Vt, 및 V4A = Vbl4 + Vt을 가진다. 실시예에서, Vbl2 = 0.4V, Vbl3 = 0.8V 및 Vbl4 = 1.2V이지만, 다른 값들이 사용될 수 있다.
신호들(BLC, BLY, OSP 및 GRS)이 하이이고, 신호(XXL)가 로우이고, 신호 SGND = Vdd인 경우, 트랜지스터들(1202, 1204 및 1210)은 온되고, 트랜지스터들(1206 및 1208)은 오프된다. 신호(INV)가 수학식(1)에 따라 설정되는 경우, 그리고 트랜지스터(1214)가 임계 전압(Vt)를 가지는 경우, 노드(Vx)에서의 전압은 다음과 같이 주어진다:
[수학식 2]
Vx = INV-Vt = BLCM -2Vt
따라서, 전압 및 노드(Vx)는 다음 값들: Vbl2, Vbl3, 및 Vbl4을 가질 수 있고, 신호(BLCM)의 값에 기초하여 선택될 수 있다. 트랜지스터들(1202, 1204 및 1210)이 온되기 때문에, 비트 라인은 BLCM의 값에 기초하여, 제2 프로그래밍 비트 라인 바이어스(Vbl2), 제3 프로그래밍 비트 라인 바이어스(Vbl3), 및 제4 프로그래밍 비트 라인 바이어스(Vbl4)로 충전된다.
감지 증폭기(1200)는 또한 LBUS에 커플링되는 데이터 래치들(ADL, BDL, CDL 및 DDL)을 포함한다. 데이터 래치들(ADL, BDL, CDL 및 DDL)은 메모리 셀 내로 프로그래밍될 데이터를 저장한다. 4개 데이터 비트들을 저장하는 메모리 셀에 대해, 4개의 데이터 래치들이 사용되고, 3개 데이터 비트들을 저장하는 메모리 셀에 대해, 3개 데이터 래치들이 사용되는 등의 식이다. 신호(LBUS)의 값은 데이터 래치들(ADL, BDL, CDL 및 DDL)에 저장되는 데이터에 기초하여 구성된다.
도 13a-13e는 도 12의 다양한 신호들을 기술하는 타이밍도들이다. 도 13a는 금지 비트 라인 바이어스(예를 들어, Vdd)에서 비트 라인을 바이어싱하기 위한 신호들을 기재하고, 도 13b는 제4 프로그래밍 비트 라인 바이어스(Vbl4)(예를 들어, 1.2V)에서 비트 라인을 바이어싱하기 위한 신호들을 기재하고, 도 13c는 제3 프로그래밍 비트 라인 바이어스(Vbl3)(예를 들어, 0.8V)에서 비트 라인을 바이어싱하기 위한 신호들을 기재하고, 도 13d는 제2 프로그래밍 비트 라인 바이어스(Vbl2)(예를 들어, 0.4V)에서 비트 라인을 바이어싱하기 위한 신호들을 기재하고, 도 13e는 제1 프로그래밍 비트 라인 바이어스(Vbl1)(예를 들어, 0V)에서 비트 라인을 바이어싱하기 위한 신호들을 기재한다.
도 12 및 13a를 참조하면, 시간(t0) 이전에, SEN 노드는 플로팅하고, VG1은 Vdd(하이)에 있고, 모든 다른 신호들은 Vss(로우)에 있다. t0에서 t1까지, BLC 및 BLY는 하이로 가고, INV, OSP 및 XXL은 로우이고, 트랜지스터들(1202, 1204, 1208 및 1212)은 턴온되고, 트랜지스터들(1206 및 1214)는 오프된다. 따라서, 비트 라인은 트랜지스터들(1202, 1204, 1208 및 1212)을 통해 금지 비트 라인 전압(Vdd)으로 충전한다. t2에서 t3까지, BLC 및 BLY가 로우로 가서, 트랜지스터들(1202 및 1204)을 턴오프시키고, 비트 라인을 플로팅시킨다. 동시에, OSP가 하이로 가서, 트랜지스터(1208)를 턴오프시킨다. LBUS는 데이터 래치들(ADL, BDL, CDL 및 DDL) 내의 데이터 값에 기초하여 제어된다. INV 및 LBUS는 로우로 유지하여, 트랜지스터(1214 및 1226)를 계속 오프시킨다. 따라서, 비트 라인은 기간의 나머지 동안 플로팅 상태로 유지한다.
도 12 및 13b를 참조하면, 시간(t0) 이전에, SEN 노드는 플로팅이고, INV 및 VG1은 Vdd(하이)에 있고, 모든 다른 신호들은 Vss(로우)에 있다. t0에서 t1까지, BLC, BLY 및 GRS는 하이로 가고, XXL은 로우이고, 트랜지스터들(1202, 1204, 1210 및 1214)은 턴온되고, 트랜지스터들(1206 및 1212)는 턴오프되고, SGND = Vss이다. 따라서, 비트 라인은 트랜지스터들(1202, 1204, 1210 및 1214)을 통해 Vss로 풀링된다. t2에서 t3까지, BLC, BLY, 및 GRS은 로우로 가고, OSP 및 BLCM은 하이로 가서, 트랜지스터들(1202, 1204, 1208, 1210 및 1214)을 턴오프시키고, 트랜지스터(1234)를 턴온시켜서 INV를 로우로 풀링한다. t3에서, 데이터 래치들(ADL, BDL, CDL 및 DDL) 내의 데이터 값에 기초하여 제어되는 LBUS, 및 LSL 모두 하이로 가서, 트랜지스터들(1220 및 1226)을 턴온시키고 SEN 노드를 Vss로 풀링한다. t3에서 t4까지, BLCM는 V4로 램프 업한다. INV는 V4A 로 램프 업 하고, 이후 BLCM이 INV 미만으로 떨어짐에 따라 트랜지스터(1234)가 턴오프되는 것의 결과로서 플로팅된다. t7에서 t8까지, SGND는 Vdd로 램프업한다. t8에서, LBUS는 로우로 가서 트랜지스터(1226)를 턴오프시키고, SEN 노드를 플로팅시킨다. t8에서 t9까지, BLC, BLY 및 GRS는 하이로 가서, 트랜지스터들(1202, 1204 및 1210)을 턴온시킨다. 따라서, 비트 라인은 트랜지스터들(1202, 1204 및 1210)을 통해 노드(Vx)에 존재하는 제4 프로그래밍 비트 라인 바이어스(Vbl4)로 충전한다. 비트 라인은 기간의 나머지 동안 제4 프로그래밍 비트 라인 바이어스(Vbl4)에서 구동되어 유지된다.
도 12 및 13c를 참조하면, 시간(t0) 이전에, SEN 노드는 플로팅되고, INV 및 VG1은 Vdd(하이)에 있고, 모든 다른 신호들은 Vss(로우)에 있다. t0에서 t1까지, BLC, BLY 및 GRS는 하이로 가고, XXL은 로우이고, 트랜지스터들(1202, 1204, 1210 및 1214)은 턴온되고, 트랜지스터들(1206 및 1212)은 턴오프되고, SGND = Vss이다. 따라서, 비트 라인은 트랜지스터들(1202, 1204, 1210 및 1214)을 통해 Vss로 풀링된다. t2에서 t3까지, BLC, BLY, 및 GRS는 로우로 가고, OSP 및 BLCM는 하이로 가서, 트랜지스터들(1202, 1204, 1208, 1210 및 1214)을 턴오프시키고, 트랜지스터(1234)를 턴온시켜서 INV를 로우로 풀링한다. t3에서, LSL 및 VG3는 하이로 간다. LBUS는 로우이고, 따라서, 트랜지스터들(1222 및 1232)이 턴온되고, SEN 노드는 Vdd로 풀링된다. t5에서, 데이터 래치들(ADL, BDL, CDL 및 DDL)에서의 데이터 값에 기초하여 제어되는 LBUS는 하이로 가서, 트랜지스터(1232)를 턴오프시키고 트랜지스터(1226)를 턴온시킨다. 트랜지스터(1220) 또한 턴온되어서 SEN 노드를 Vss로 풀링시킨다. t5에서 t6까지, BLCM은 V3로 램프 업한다. INV는 V3A로 램프 업하고, 이후 BLCM이 INV 아래로 떨어짐에 따라 트랜지스터(1234)가 턴오프되는 것의 결과로서 플로팅된다. t7에서 t8까지, SGND는 Vdd로 램프 업한다. t8에서, LBUS가 로우로 가서, 트랜지스터(1226)를 턴오프시키고, SEN 노드를 플로팅시킨다. t8에서 t9까지, BLC, BLY 및 GRS가 하이로 가서, 트랜지스터들(1202, 1204 및 1210)을 턴온시킨다. 따라서, 비트 라인은 트랜지스터들(1202, 1204 및 1210)을 통해 노드(Vx)에 존재하는 제3 프로그래밍 비트 라인 바이어스(Vbl3)로 충전한다. 비트 라인은 기간의 나머지 동안 제3 프로그래밍 비트 라인 바이어스(Vbl3)에서 구동된 채 유지된다.
도 12 및 13d를 참조하면, 시간(t0) 이전에, SEN 노드는 플로팅되고, INV 및 VG1은 Vdd(하이)에 있고, 모든 다른 신호들은 Vss(로우)에 있다. t0에서 t1까지, BLC, BLY 및 GRS는 하이로 가고, XXL은 로우이고, 트랜지스터들(1202, 1204, 1210 및 1214)은 턴온되고, 트랜지스터들(1206 및 1212)은 턴오프되고, SGND = Vss이다. 따라서, 비트 라인은 트랜지스터들(1202, 1204, 1210 및 1214)을 통해 Vss로 풀링된다. t2에서 t3까지, BLC, BLY, 및 GRS는 로우로 가고, OSP 및 BLCM는 하이로 가서, 트랜지스터들(1202, 1204, 1208, 1210 및 1214)을 턴오프시키고, 트랜지스터(1234)를 턴온시켜서 INV를 로우로 풀링한다. t3에서, LSL 및 VG3는 하이로 간다. LBUS는 로우이고, 따라서, 트랜지스터들(1222 및 1232)이 턴온되고, SEN 노드는 Vdd로 풀링된다. t7에서, 데이터 래치들(ADL, BDL, CDL 및 DDL)에서의 데이터 값에 기초하여 제어되는 LBUS는 하이로 가서, 트랜지스터(1232)를 턴오프시키고 트랜지스터(1226)를 턴온시킨다. 트랜지스터(1220)가 또한 턴온 되어서 SEN 노드를 Vss로 풀링한다. t7에서 t8까지, BLCM은 V2로 램프 업한다. INV는 V2A로 램프 업 하고, 이후 BLCM이 INV 아래로 떨어짐에 따라 트랜지스터(1234)가 턴오프되는 것의 결과로서 플로팅된다. t7에서 t8까지, SGND는 Vdd로 램프 업한다. t8에서, LBUS가 로우로 가서, 트랜지스터(1226)를 턴오프시키고, SEN 노드를 플로팅시킨다. t8에서 t9까지, BLC, BLY 및 GRS가 하이로 가서, 트랜지스터들(1202, 1204 및 1210)을 턴온시킨다. 따라서, 비트 라인은 트랜지스터들(1202, 1204 및 1210)을 통해 노드(Vx)에 존재하는 제2 프로그래밍 비트 라인 바이어스(Vbl2)로 충전한다. 비트 라인은 기간의 나머지 동안 제2 프로그래밍 비트 라인 바이어스(Vbl2)에서 구동된 채 유지된다.
도 12 및 13e를 참조하면, 시간(t0) 이전에, SEN 노드는 플로팅되고, INV 및 VG1은 Vdd(하이)에 있고, 모든 다른 신호들은 Vss(로우)에 있다. t0에서 t1까지, BLC, BLY 및 GRS는 하이로 가고, XXL은 로우이고, 트랜지스터들(1202, 1204, 1210 및 1214)은 턴온되고, 트랜지스터들(1206 및 1212)은 턴오프되고, SGND = Vss이다. 따라서, 비트 라인은 트랜지스터들(1202, 1204, 1210 및 1214)을 통해 Vss로 풀링된다. t2에서 t3까지, BLC, BLY, 및 GRS는 로우로 가고, OSP 및 BLCM는 하이로 가서, 트랜지스터들(1202, 1204, 1208, 1210 및 1214)을 턴오프시키고, 트랜지스터(1234)를 턴온시켜서 INV를 로우로 풀링한다. t3에서, LSL 및 VG3는 하이로 간다. LBUS는 로우이고, 따라서, 트랜지스터들(1222 및 1232)이 턴온되고, SEN 노드는 Vdd로 풀링된다. t8에서, 데이터 래치들(ADL, BDL, CDL 및 DDL)에서의 데이터 값에 기초하여 제어되는 LBUS는 하이로 가서, 트랜지스터(1232)를 턴오프시키고 트랜지스터(1226)를 턴온시킨다. 트랜지스터(1220)가 또한 턴온 되어서 SEN 노드를 Vss로 풀링한다. t8에서 t9까지, BLC는 및 XXL은 하이로 가서, 트랜지스터들(1220 및 1226)을 턴온시킨다. 따라서, 비트 라인은, 트랜지스터들(1202,1206,1220 및 1226)을 통해, 제1 프로그래밍 비트 라인 바이어스(Vbl1)인, Vss로 풀링된다. 비트 라인은 기간의 나머지 동안 제1 프로그래밍 비트 라인 바이어스(Vbl1)로 풀링된 채 유지된다.
일 실시예는 비휘발성 메모리를 프로그래밍하기 위한 방법을 포함한다. 방법은 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써, 짝수 비트 라인들에 대해 메모리 셀들을 프로그래밍하는 것을 포함한다. 방법은 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써, 홀수 비트 라인들에 대해 메모리 셀들을 프로그래밍하는 것을 또한 포함한다.
일 실시예는 메모리 셀들을 프로그래밍하도록 구성되는 제어기를 포함하는 비휘발성 메모리를 포함한다. 제어기는, 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써, 짝수 비트 라인들에 대해 메모리 셀들을 프로그래밍한다. 제어기는, 메모리 셀들을 소거 상태로부터 복수의 중간 데이터 상태들로 프로그래밍하고, 중간 데이터 상태들 각각에 대해, 메모리 셀들을 복수의 타겟 데이터 상태들로 동시에 프로그래밍함으로써, 홀수 비트 라인들에 대해 메모리 셀들을 프로그래밍한다.
일 실시예는, 각각의 메모리 셀이 대응하는 비트 라인을 포함하는, 복수의 메모리 셀들을 포함하는 비휘발성 메모리에 대한 감지 증폭기를 포함한다. 감지 증폭기는 프로그래밍되는 대응하는 메모리 셀의 타겟 데이터 상태에 기초하여 각각의 비트 라인을 바이어싱하도록 구성되는 회로를 포함한다.
이 문서의 목적을 위해, 도면들에 도시된 다양한 피쳐들의 디멘젼들이 반드시 축척에 맞게 그려지지 않을 수도 있다는 것에 유의해야 한다.
이 문서의 목적을 위해, "실시예", "일 실시예", "일부 실시예", 또는 "또다른 실시예"에 대한 명세서에서의 참조는 상이한 실시예들 또는 동일한 실시예를 기술하기 위해 사용될 수 있다.
이 문서의 목적을 위해, 접속은 직접 접속 또는 간접 접속(예를 들어, 하나 이상의 다른 파트들을 통하는)일 수 있다. 일부 경우들에서, 엘리먼트가 또다른 엘리먼트에 접속되거나 커플링되는 것으로서 지칭될 때, 엘리먼트는 다른 엘리먼트에 직접 접속되거나 또는 중재 엘리먼트들을 통해 다른 엘리먼트에 간접적으로 접속될 수 있다. 엘리먼트가 또다른 엘리먼트에 직접 접속되는 것으로서 지칭될 때, 그 엘리먼트와 다른 엘리먼트 사이에 중재 엘리먼트들이 존재하지 않는다. 2개의 디바이스들은, 이들이 직접적으로 또는 간접적으로 접속되어 따라서 이들이 이들 사이에 전자 신호들을 통신할 수 있는 경우 "통신 중"이다.
이 문서의 목적을 위해, 용어 "~에 기초하는"은 "~에 적어도 부분적으로 기초하는" 것으로서 판독될 수 있다.
이 문서의 목적을 위해, 추가적인 문맥 없이, "제1" 오브젝트, "제2" 오브젝트, 및 "제3" 오브젝트와 같은 수치 용어들의 사용은 오브젝트들의 순서화를 내포하는 것이 아니라, 대신 상이한 오브젝트들을 식별하기 위한 식별 목적으로 사용될 수 있다.
이 문서의 목적을 위해, 용어 오브젝트들의 "세트"는 오브젝트들 중 하나 이상의 "세트"를 지칭할 수 있다.
앞의 상세한 기재는 예시 및 기재의 목적으로 제시되었다. 그것은 완전한 것으로도, 또는 개시된 정확한 형태로 제한하는 것으로도 의도되지 않는다. 많은 수정들 및 변형들이 위의 교시의 견지에서 가능하다. 기술된 실시예들은 제안된 기술의 원리들 및 그것의 실제 응용을 가장 잘 설명하기 위해 선택되어, 이에 의해 본 기술분야의 통상의 기술자가 다양한 실시예들에서, 그리고 예상되는 특별한 사용에 적합한 경우 다양한 수정들과 더불어, 그것을 가장 잘 이용할 수 있게 한다. 그 범위가 본원에 첨부되는 청구항들에 의해 정의된다는 것이 의도된다.
Claims (21)
- 방법으로서,
메모리 셀을 소거 상태(erased state)로부터 중간 데이터 상태로 프로그래밍하는 것, 및
비트 라인을 복수의 비트 라인 바이어스 전압들 중 하나의 비트 라인 바이어스 전압으로 바이어싱함으로써 상기 메모리 셀을 상기 중간 데이터 상태로부터 타겟 데이터 상태로 프로그래밍하는 것 - 상기 비트 라인 바이어스 전압은 상기 타겟 데이터 상태에 기초하여 결정됨 -
에 의해, 상기 비트 라인에 커플링된 상기 메모리 셀을 프로그래밍하는 단계
를 포함하고,
상기 비트 라인 바이어스 전압은 중간 상태 분포와 타겟 상태 분포 사이의 전압차에 기초하는 방법. - 제1항에 있어서,
상기 메모리 셀을 상기 소거 상태로부터 복수의 중간 데이터 상태들 중 하나로 프로그래밍하는 단계; 및
상기 비트 라인을 상기 복수의 비트 라인 바이어스 전압들 중 하나의 비트 라인 바이어스 전압으로 바이어싱함으로써 상기 메모리 셀을 상기 복수의 중간 데이터 상태들 중 하나로부터 상기 타겟 데이터 상태로 프로그래밍하는 단계
를 추가로 포함하는 방법. - 제1항에 있어서,
제2 비트 라인을 복수의 다른 비트 라인 바이어스 전압들 중 하나의 다른 비트 라인 바이어스 전압으로 바이어싱함으로써 제2 메모리 셀을 상기 소거 상태로부터 제2 타겟 데이터 상태로 프로그래밍하는 것에 의해, 상기 제2 비트 라인에 커플링된 상기 제2 메모리 셀을 프로그래밍하는 단계를 추가로 포함하고, 상기 다른 비트 라인 바이어스 전압은 상기 제2 타겟 데이터 상태에 기초하여 결정되는 방법. - 제1항에 있어서,
상기 복수의 비트 라인 바이어스 전압들의 수는 상기 메모리 셀에 저장될 수 있는 데이터 상태들의 수와 동일한 방법. - 제1항에 있어서,
상기 복수의 비트 라인 바이어스 전압들은 4개의 비트 라인 바이어스 전압들을 포함하는 방법. - 제1항에 있어서,
상기 복수의 비트 라인 바이어스 전압들은 0V의 제1 비트 라인 바이어스 전압, 0.4V의 제2 비트 라인 바이어스 전압, 0.8V의 제3 비트 라인 바이어스 전압, 및 1.2V의 제4 비트 라인 바이어스 전압을 포함하는 방법. - 제1항에 있어서,
상기 메모리 셀은 2차원 또는 3차원 비휘발성 메모리의 메모리 디바이스를 포함하는 방법. - 비휘발성 메모리로서,
비트 라인;
상기 비트 라인에 커플링된 메모리 셀; 및
상기 비트 라인을 복수의 비트 라인 바이어스 전압들 중 하나의 비트 라인 바이어스 전압으로 바이어싱함으로써 상기 메모리 셀을 타겟 데이터 상태로 프로그래밍하도록 구성된 제어기 - 상기 비트 라인 바이어스 전압은 상기 타겟 데이터 상태에 기초하여 결정됨 -
를 포함하고,
상기 비트 라인 바이어스 전압은 중간 상태 분포와 타겟 상태 분포 사이의 전압차에 기초하는 비휘발성 메모리. - 제8항에 있어서,
상기 비휘발성 메모리는 상기 비트 라인과 상기 제어기에 커플링된 감지 증폭기를 추가로 포함하고,
상기 제어기는 상기 감지 증폭기로 하여금 상기 비트 라인을 상기 복수의 비트 라인 바이어스 전압들 중 하나의 비트 라인 바이어스 전압으로 바이어싱하게 하도록 추가로 구성되는 비휘발성 메모리. - 제9항에 있어서,
상기 제어기는,
상기 메모리 셀을 소거 상태로부터 중간 데이터 상태로 프로그래밍하고;
상기 비트 라인을 상기 복수의 비트 라인 바이어스 전압들 중 하나의 비트 라인 바이어스 전압으로 바이어싱함으로써 상기 메모리 셀을 상기 중간 데이터 상태로부터 상기 타겟 데이터 상태로 프로그래밍하도록
추가로 구성되는 비휘발성 메모리. - 제8항에 있어서,
상기 제어기는, 상기 비트 라인을 상기 복수의 비트 라인 바이어스 전압들 중 하나의 비트 라인 바이어스 전압으로 바이어싱함으로써 상기 메모리 셀을 소거 상태로부터 상기 타겟 데이터 상태로 프로그래밍하도록 추가로 구성되는 비휘발성 메모리. - 제8항에 있어서,
상기 복수의 비트 라인 바이어스 전압들의 수는 상기 메모리 셀에 저장될 수 있는 데이터 상태들의 수와 동일한 비휘발성 메모리. - 제8항에 있어서,
상기 복수의 비트 라인 바이어스 전압들은 4개의 비트 라인 바이어스 전압들을 포함하는 비휘발성 메모리. - 제8항에 있어서,
상기 복수의 비트 라인 바이어스 전압들은 0V의 제1 비트 라인 바이어스 전압, 0.4V의 제2 비트 라인 바이어스 전압, 0.8V의 제3 비트 라인 바이어스 전압, 및 1.2V의 제4 비트 라인 바이어스 전압을 포함하는 비휘발성 메모리. - 제8항에 있어서,
상기 비휘발성 메모리는 2차원 또는 3차원 비휘발성 메모리를 포함하는 비휘발성 메모리. - 감지 증폭기로서,
메모리 셀의 비트 라인에 커플링된 제1 회로 - 상기 제1 회로는, 상기 메모리 셀이 프로그래밍되는 것을 금지하기 위해 상기 비트 라인을 제1 비트 라인 바이어스 전압으로 바이어싱하도록 구성됨 -; 및
상기 메모리 셀의 상기 비트 라인에 커플링된 제2 회로 - 상기 제2 회로는, 상기 메모리 셀을 프로그래밍하기 위해 상기 비트 라인을 제2 비트 라인 바이어스 전압으로 바이어싱하도록 구성됨 -
를 포함하고,
상기 제2 비트 라인 바이어스 전압은 복수의 비트 라인 바이어스 전압들 중 하나이고, 상기 제2 비트 라인 바이어스 전압은 상기 메모리 셀의 타겟 데이터 상태에 기초하여 구성되고,
상기 제2 비트 라인 바이어스 전압은 중간 상태 분포와 타겟 상태 분포 사이의 전압차에 기초하는 감지 증폭기. - 제16항에 있어서,
상기 제2 회로는,
입력 신호 전압에 커플링된 입력 단자;
제1 임계 전압, 상기 입력 단자에 커플링된 제1 제어 단자, 및 제2 단자를 포함하는 제1 트랜지스터; 및
제2 임계 전압, 상기 제2 단자에 커플링된 제2 제어 단자, 및 상기 비트 라인에 커플링된 제3 단자를 포함하는 제2 트랜지스터
를 포함하고,
상기 제2 비트 라인 바이어스 전압은, 상기 입력 신호 전압에서 상기 제1 임계 전압 및 상기 제2 임계 전압을 뺀 것과 동일한 감지 증폭기. - 제16항에 있어서,
상기 복수의 비트 라인 바이어스 전압들의 수는 상기 메모리 셀에 저장될 수 있는 데이터 상태들의 수와 동일한 감지 증폭기. - 제16항에 있어서,
상기 복수의 비트 라인 전압들은 4개의 비트 라인 전압들을 포함하는 감지 증폭기. - 제16항에 있어서,
상기 복수의 비트 라인 전압들은 0V의 제1 비트 라인 바이어스 전압, 0.4V의 제2 비트 라인 바이어스 전압, 0.8V의 제3 비트 라인 바이어스 전압, 및 1.2V의 제4 비트 라인 바이어스 전압을 포함하는 감지 증폭기. - 제16항에 있어서,
비휘발성 메모리는 2차원 또는 3차원 비휘발성 메모리를 포함하는 감지 증폭기.
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201562167428P | 2015-05-28 | 2015-05-28 | |
US62/167,428 | 2015-05-28 | ||
US14/929,156 US9595317B2 (en) | 2015-05-28 | 2015-10-30 | Multi-state programming for non-volatile memory |
US14/929,156 | 2015-10-30 | ||
PCT/US2016/033704 WO2016191339A1 (en) | 2015-05-28 | 2016-05-23 | Multi-state programming for non-volatile memory |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170126895A KR20170126895A (ko) | 2017-11-20 |
KR101904233B1 true KR101904233B1 (ko) | 2018-10-05 |
Family
ID=56098413
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177024859A KR101904233B1 (ko) | 2015-05-28 | 2016-05-23 | 비휘발성 메모리에 대한 다중-상태 프로그래밍 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9595317B2 (ko) |
JP (1) | JP2018513516A (ko) |
KR (1) | KR101904233B1 (ko) |
CN (1) | CN107408410B (ko) |
DE (1) | DE112016000654T5 (ko) |
WO (1) | WO2016191339A1 (ko) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10366739B2 (en) | 2017-06-20 | 2019-07-30 | Sandisk Technologies Llc | State dependent sense circuits and sense operations for storage devices |
US10366729B2 (en) | 2017-06-22 | 2019-07-30 | Sandisk Technologies Llc | Sense circuit with two-step clock signal for consecutive sensing |
US10037810B1 (en) | 2017-06-27 | 2018-07-31 | Sandisk Technologies Llc | Method and apparatus for coupling up a voltage-setting transistor for a control line in a programming operation |
US10510383B2 (en) | 2017-10-03 | 2019-12-17 | Sandisk Technologies Llc | State dependent sense circuits and pre-charge operations for storage devices |
US10438636B2 (en) * | 2017-12-07 | 2019-10-08 | Advanced Micro Devices, Inc. | Capacitive structure for memory write assist |
KR102509640B1 (ko) | 2018-06-15 | 2023-03-16 | 삼성전자주식회사 | 페이지 버퍼 및 이를 포함하는 메모리 장치 |
US11004484B2 (en) | 2018-06-15 | 2021-05-11 | Samsung Electronics Co., Ltd. | Page buffer and memory device including the same |
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 |
KR20200129239A (ko) | 2019-05-07 | 2020-11-18 | 삼성전자주식회사 | 페이지 버퍼, 이를 포함하는 메모리 장치 |
US11049578B1 (en) * | 2020-02-19 | 2021-06-29 | Sandisk Technologies Llc | Non-volatile memory with program verify skip |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100124124A1 (en) * | 2008-11-19 | 2010-05-20 | Ju Yeab Lee | Nonvolatile memory device and method of programming the same |
US20140016415A1 (en) * | 2012-07-11 | 2014-01-16 | Teruhiko Kamei | Programming method to tighten threshold voltage width with avoiding program disturb |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6222762B1 (en) | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
JP2000251485A (ja) * | 1999-02-26 | 2000-09-14 | Sony Corp | 不揮発性半導体記憶装置およびそのデータ書き込み方法 |
US6714457B1 (en) | 2001-09-19 | 2004-03-30 | Aplus Flash Technology, Inc. | Parallel channel programming scheme for MLC flash memory |
US7630237B2 (en) * | 2003-02-06 | 2009-12-08 | Sandisk Corporation | System and method for programming cells in non-volatile integrated memory devices |
US7237074B2 (en) | 2003-06-13 | 2007-06-26 | Sandisk Corporation | Tracking cells for a memory system |
JP4836548B2 (ja) * | 2005-11-11 | 2011-12-14 | 株式会社東芝 | 半導体集積回路装置 |
US7696035B2 (en) * | 2006-11-13 | 2010-04-13 | Sandisk Corporation | Method for fabricating non-volatile memory with boost structures |
US7619930B2 (en) * | 2007-02-20 | 2009-11-17 | Sandisk Corporation | Dynamic verify based on threshold voltage distribution |
CN102005244B (zh) * | 2007-02-20 | 2015-10-21 | 桑迪士克科技公司 | 非易失性存储的可变编程 |
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 |
US8526230B2 (en) * | 2008-07-01 | 2013-09-03 | Lsi Corporation | Methods and apparatus for write-side intercell interference mitigation in flash memories |
WO2010039869A1 (en) * | 2008-09-30 | 2010-04-08 | Lsi Corporation | Methods and apparatus for soft data generation for memory devices using reference cells |
KR20100043935A (ko) * | 2008-10-21 | 2010-04-29 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
JP2010218623A (ja) * | 2009-03-17 | 2010-09-30 | Toshiba Corp | 不揮発性半導体記憶装置 |
KR101662277B1 (ko) * | 2010-05-12 | 2016-10-05 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 그것의 프로그램 방법 |
US8274838B2 (en) * | 2010-07-19 | 2012-09-25 | Sandisk Technologies Inc. | Programming non-volatile memory with bit line voltage step up |
KR101772578B1 (ko) * | 2011-04-19 | 2017-08-30 | 삼성전자주식회사 | 불휘발성 메모리 장치의 프로그램 방법 |
US8582381B2 (en) * | 2012-02-23 | 2013-11-12 | SanDisk Technologies, Inc. | Temperature based compensation during verify operations for non-volatile storage |
KR101927212B1 (ko) * | 2012-05-09 | 2019-03-07 | 삼성전자주식회사 | 비휘발성 메모리 장치의 프로그래밍 방법 |
US9135989B2 (en) * | 2012-09-06 | 2015-09-15 | Sandisk Technologies Inc. | Write data preservation for non-volatile storage |
-
2015
- 2015-10-30 US US14/929,156 patent/US9595317B2/en active Active
-
2016
- 2016-05-23 DE DE112016000654.3T patent/DE112016000654T5/de active Pending
- 2016-05-23 JP JP2017545886A patent/JP2018513516A/ja active Pending
- 2016-05-23 KR KR1020177024859A patent/KR101904233B1/ko active IP Right Grant
- 2016-05-23 WO PCT/US2016/033704 patent/WO2016191339A1/en active Application Filing
- 2016-05-23 CN CN201680013979.3A patent/CN107408410B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100124124A1 (en) * | 2008-11-19 | 2010-05-20 | Ju Yeab Lee | Nonvolatile memory device and method of programming the same |
US20140016415A1 (en) * | 2012-07-11 | 2014-01-16 | Teruhiko Kamei | Programming method to tighten threshold voltage width with avoiding program disturb |
Also Published As
Publication number | Publication date |
---|---|
KR20170126895A (ko) | 2017-11-20 |
CN107408410A (zh) | 2017-11-28 |
US9595317B2 (en) | 2017-03-14 |
US20160351254A1 (en) | 2016-12-01 |
WO2016191339A1 (en) | 2016-12-01 |
DE112016000654T5 (de) | 2017-12-28 |
CN107408410B (zh) | 2021-01-26 |
JP2018513516A (ja) | 2018-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101904233B1 (ko) | 비휘발성 메모리에 대한 다중-상태 프로그래밍 | |
CN106067322B (zh) | 利用两阶段编程的非易失性存储器 | |
US7447075B2 (en) | Charge packet metering for coarse/fine programming of non-volatile memory | |
US7139198B2 (en) | Efficient verification for coarse/fine programming of non-volatile memory | |
US7002843B2 (en) | Variable current sinking for coarse/fine programming of non-volatile memory | |
US9548130B2 (en) | Non-volatile memory with prior state sensing | |
US9875805B2 (en) | Double lockout in non-volatile memory | |
US9318209B1 (en) | Digitally controlled source side select gate offset in 3D NAND memory erase | |
DE102018105685A1 (de) | Multi-Zustands-Programm, das gesteuertes schwaches Boosten für einen nichtflüchtigen Speicher verwendet | |
US11276467B2 (en) | Method of programming memory device and related memory device having a channel-stacked structure | |
US11670383B2 (en) | Semiconductor memory | |
US9947395B2 (en) | Programming techniques for non-volatile memories with charge trapping layers | |
CN111602200A (zh) | 通过基于选定字线修改沟道放电的持续时间来减少双层存储器设备中的读取干扰 | |
US9530504B2 (en) | Memory cells using multi-pass programming | |
US9711211B2 (en) | Dynamic threshold voltage compaction for non-volatile memory | |
US20160189786A1 (en) | Methods and apparatus for reducing read time for nonvolatile memory devices | |
WO2016164319A1 (en) | Multiple bit line voltage sensing for non-volatile memory | |
CN117672313A (zh) | 用于改善相邻字线干扰的双向感测方案 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |