KR101094422B1 - 결합 보상을 포함하는 비휘발성 메모리 판독 동작들에 대한 마지닝된 이웃 판독 - Google Patents

결합 보상을 포함하는 비휘발성 메모리 판독 동작들에 대한 마지닝된 이웃 판독 Download PDF

Info

Publication number
KR101094422B1
KR101094422B1 KR1020097016025A KR20097016025A KR101094422B1 KR 101094422 B1 KR101094422 B1 KR 101094422B1 KR 1020097016025 A KR1020097016025 A KR 1020097016025A KR 20097016025 A KR20097016025 A KR 20097016025A KR 101094422 B1 KR101094422 B1 KR 101094422B1
Authority
KR
South Korea
Prior art keywords
state
storage element
nonvolatile storage
voltage
read
Prior art date
Application number
KR1020097016025A
Other languages
English (en)
Other versions
KR20090117713A (ko
Inventor
니마 모크흐레시
Original Assignee
샌디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/618,616 external-priority patent/US7518923B2/en
Priority claimed from US11/618,624 external-priority patent/US7606070B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20090117713A publication Critical patent/KR20090117713A/ko
Application granted granted Critical
Publication of KR101094422B1 publication Critical patent/KR101094422B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/30Power supply circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5646Multilevel memory with flag bits, e.g. for showing that a "first page" of a word line is programmed but not a "second page"
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)

Abstract

비휘발성 메모리 셀의 플로팅 게이트(또는 다른 전하 저장 요소) 상에 저장된 외관상 전하의 시프트는, 인접하는 플로팅 게이트들(또는 다른 인접하는 전하 저장 요소들)에 저장된 전하에 기초하는 전계 결합때문에 발생할 수 있다. 이러한 문제는 서로 다른 시간에 프로그램된 인접하는 메모리 셀들의 세트들 사이에서 가장 뚜렷하게 일어난다. 이러한 결합을 고려하기 위해, 특정 메모리 셀에 대한 판독 프로세스는 인접하는 메모리 셀에 대한 보상을 제공함으로써, 이러한 인접하는 메모리 셀이 상기 특정 메모리 셀에 대해 갖는 결합 효과를 감소시킨다. 인접하는 셀을 판독할 때, 적절한 보상을 결정하기 위해, 마지닝된 판독 전압이 이용될 수 있다.
비휘발성 메모리 셀, 판독, 전계 결합, 마지닝, 마니징 전압, 보상 마진

Description

결합 보상을 포함하는 비휘발성 메모리 판독 동작들에 대한 마지닝된 이웃 판독{MARGINED NEIGHBOR READING FOR NON-VOLATILE MEMORY READ OPERATIONS INCLUDING COUPLING COMPENSATION}
본 발명은 비휘발성 메모리 기술에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스들에서 보다 대중적으로 이용되어 왔다. 예를 들어, 비휘발성 반도체 메모리는 셀룰러 전화들, 디지털 카메라들, 개인 휴대 단말기들, 이동 계산 디바이스들, 비 이동 계산 디바이스들 및 기타 디바이스들에서 이용된다. 전기적으로 소거가능하고 프로그램가능한 읽기 전용 메모리(Electrical Erasable Programmable Read Only Memory : EEPROM)(플래시 EEPORM을 포함함) 및 전기적으로 프로그램가능한 판독 전용 메모리(EPROM)가 그 중에서 가장 일반적인 비휘발성 반도체 메모리들이다.
EEPROM과 플래시 메모리는, 반도체 기판 내의 채널 영역 위에 위치하고 이 채널 영역으로부터 절연되는 플로팅 게이트를 이용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치된다. 제어 게이트가 플로팅 게이트 위에 위치되어, 이 플로팅 게이트로부터 절연된다. 이러한 트랜지스터의 임계 전압은 플로팅 게이트 상에 유지되는 전하의 양에 의해 제어된다. 즉, 소스와 드레인 사이의 도통을 허용하기 위해 트랜지스터가 턴온되기 전에 제어 게이트에 인가되어야 하는 최소량의 전압은 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
EEPROM 또는 NAND 플래시 메모리 디바이스와 같은 플래시 메모리 디바이스를 프로그램할 때, 전형적으로, 프로그램 전압이 제어 게이트에 인가되고 비트라인이 접지된다. 채널로부터의 전자들이 플로팅 게이트 내에 주입된다. 전자들이 플로팅 게이트에 누적되면, 그 플로팅 게이트는 음으로 대전되고, 메모리 셀의 임계 전압이 올라가게 되어, 그 메모리 요소는 프로그램 상태가 된다. 일부 EEPROM 및 플래시 메모리 디바이스들은 2 범위의 전하들을 저장하는 데에 이용되는 플로팅 게이트를 가지며, 이에 따라 메모리 셀은 2개의 상태들(소거 상태 및 프로그램 상태) 사이에서 프로그램/소거될 수 있다. 이러한 플래시 메모리 디바이스는 종종 이진 플래시 메모리 디바이스(binary flash memory device)라 불린다. 다중 상태 플래시 메모리 디바이스는, 금지된 범위들(forbidden ranges)들에 의해 분리되는 다수의 개별적인 허가된/유효한(allowed/valid) 프로그램 임계 전압 범위들을 식별함으로써 실시된다. 각각의 개별적인 임계 전압 범위는 메모리 디바이스에 엔코드된 데이터 비트들의 세트에 대한 소정의 값에 해당한다. 프로그래밍에 대한 보다 많은 정보는, 그 명칭이 "Source Side Self Boosting Technique for Non-Volatile Memory"인 미국 특허 6,859,397호; 및 그 명칭이 "Detecting Over Programmed Memory"인 미국 특허 6,917,542호에서 찾아볼 수 있으며, 이들 모두는 그 전체가 본원의 참조로서 인용된다.
플로팅 게이트 또는 다른 전하 영역 상에 저장된 외관상(apparent) 전하들의 시프트들은, 인접하는 플로팅 게이트들에 저장된 전하에 기초하는 전계의 결합때문에 일어날 수 있다. 이러한 플로팅 게이트 대 플로팅 게이트 결합 현상(floating gate to floating gate coupling phenomenon)(즉, 플로팅 게이트 간의 결합 현상)은, 그 전체가 본원의 참조로서 인용되는 미국 특허 5,867,429호에서 설명된다. 목표 플로팅 게이트(target floating gate)에 대한 인접하는 플로팅 게이트는, 동일한 비트라인에 상에 있는 이웃 플로팅 게이트들, 동일한 워드라인 상의 이웃 플로팅 게이트들, 또는 목표 플로팅 게이트로부터 대각선에 있는 플로팅 게이트들(이들이 이웃 비트라인과 이웃 워드라인 모두 상에 있기 때문임)을 포함할 수 있다.
플로팅 게이트 간의 결합은, 서로 다른 시간에 프로그램된 인접하는 메모리 셀들의 세트들 사이에서 가장 뚜렷하게 일어난다. 예를 들어, 제 1 메모리 셀은 그 플로팅 게이트에 제 1 세트의 데이터에 해당하는 전하 레벨을 부가하도록 프로그램될 수 있다. 이후, 하나 이상의 인접하는 메모리 셀들이 자신들의 플로팅 게이트들에 제 2 세트의 데이터에 해당하는 전하 레벨을 부가하도록 프로그램된다. 하나 이상의 인접하는 메모리 셀들이 프로그램된 후, 제 1 메모리 셀로부터 판독되는 전하 레벨은 프로그램된 것과 다르게 나타나는데, 이는 이러한 제 1 메모리 셀에 결합되어 있는 인접하는 메모리 셀들 상의 전하의 영향때문이다. 인접하는 메모리 셀들로부터의 결합은 판독되는 외관상 전하 레벨을, 저장된 데이터의 잘못된 판독을 야기하기에 충분한 양 만큼 시프트시킬 수 있다.
플로팅 게이트 간의 결합의 효과는 다중 상태 디바이스들에 있어서 상당히 더 중요한데, 그 이유는 이러한 다중 상태 디바이스들에서, 허가된 임계 전압 범위 들 및 금지된 범위들은 이진 디바이스들에서 보다 좁기 때문이다. 따라서, 플로팅 게이트 간의 결합에 의해, 메모리 셀들은 허가된 임계 전압 범위로부터 금지된 범위로 시프트될 수 있다.
메모리 셀들의 사이즈가 계속해서 작아짐에 따라, 단 채널 효과(short channel effects), 보다 큰 산화물 두께/결합 비 변화 및 보다 많은 채널 도펀트 변동(channel dopant fluctuation)으로 인해, 임계 전압들의 자연적인 프로그래밍 및 소거 분포들이 증가할 것으로 기대되어, 인접하는 상태들 간의 유효한 간격(available separation)을 감소시킨다. 이러한 영향은 단지 2개의 상태들 만을 이용하는 메모리들(이진 메모리들) 보다 다중 상태 메모리들에 대해 훨씬 더 크다. 또한, 워드라인들 간의 간격 및 비트라인들 간의 간격의 축소 역시 인접하는 플로팅 게이트들 간의 결합을 증가시킬 것이다.
플로팅 게이트들 간의 결합을 고려하기 위해, 특정 메모리 셀에 대한 판독 프로세스는 인접하는 메모리 셀이 이러한 특정 메모리 셀에 대해 미치는 결합 효과를 줄이기 위해 상기 인접하는 메모리 셀에 대한 보상을 제공한다. 인접하는 메모리 셀을 판독하여, 그 셀의 전하, 상태, 또는 다른 상태 정보를 결정한다. 인접하는 메모리 셀로부터의 정보는, 판독 프로세스 동안 상기 특정 메모리 셀을 판독할 때에 그에 대한 적절한 보상을 제공하는 데에 이용된다. 인접하는 메모리 셀을 판독할 때, 마지닝된 기준 전압(margined reference voltage)을 이용하여, 그 인접하는 메모리 셀의 외관상 임계 전압의 시프트를 고려할 수 있다.
일 실시예는 비휘발성 메모리를 판독하는 방법을 포함하는 바, 이는 비선택(unselected) 비휘발성 저장 요소에 이웃하는 선택(selected) 비휘발성 저장 요소에 대한 판독 프로세스 동안, 비선택 비휘발성 저장 요소의 상태를 결정하기 위해, 비선택 비휘발성 저장 요소에 특정 상태에 해당하는 판독 전압을 제 1 전압 레벨로 인가하는 단계와; 상기 판독 프로세스 동안, 선택 비휘발성 저장 요소에 상기 판독 전압을 제 2 전압 레벨로 인가하는 단계와; 상기 비선택 비휘발성 저장 요소의 상태에 기초하여, 상기 선택 비휘발성 저장 요소에 상기 판독 전압을 인가할 때 상기 비선택 비휘발성 저장 요소에 대해 특정 전압을 이용하는 단계와; 그리고 상기 판독 프로세스 동안 상기 선택 비휘발성 저장 요소의 상태를 감지하는 단계를 포함한다.
하나의 예시적인 구현은 다수의 비휘발성 저장 요소들과, 그리고 본 개시의 프로세스들을 수행하기 위해 이러한 다수의 비휘발성 저장 요소들과 통신하는 관리 회로를 포함한다. 일 실시예에서, 다수의 비휘발성 저장 요소들과 통신하는 관리 회로는 제 2 비휘발성 저장 요소의 프로그래밍을 검증할 때 제 1 비휘발성 저장 요소에 제 1 패스 전압(pass voltage)을 인가하고; 제 3 비휘발성 저장 요소에 대한 판독 프로세스 동안 상기 제 2 비휘발성 저장 요소의 현재 상태를 결정할 때 상기 제 1 비휘발성 저장 요소에 제 2 패스 전압을 제공하고; 상기 현재 상태를 결정할 때 상기 제 2 비휘발성 저장 요소에 특정 상태에 해당하는 제 1 판독 전압을 제공하며; 그리고 판독 프로세스 동안 상기 제 3 비휘발성 저장 요소의 상태를 결정하기 위해, 상기 제 3 비휘발성 저장 요소에 상기 특정 상태에 해당하는 제 2 판독 전압을 제공한다. 일 실시예에서, 상기 제 1 판독 전압은 상기 제 1 패스 전압과 상기 제 2 패스 전압 간의 차이에 기초한다.
도 1은 NAND 스트링의 평면도이다.
도 2는 NAND 스트링의 등가 회로도이다.
도 3은 NAND 플래시 저장 요소들의 어레이의 블록도이다.
도 4는 비휘발성 메모리 시스템의 블록도이다.
도 5는 감지 블록의 일 실시예를 도시하는 블록도이다.
도 6은 프로그래밍 및 프로그램 검증 동안 비휘발성 메모리 셀들의 제어 게이트들에 인가되는 예시적인 파형이다.
도 7은 비휘발성 메모리를 프로그램하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 8은 임계 전압 분포들의 예시적인 세트를 도시한다.
도 9는 임계 전압 분포들의 예시적인 세트를 도시한다.
도 10A-C는 다양한 임계 전압 분포들을 보여주며, 비휘발성 메모리를 프로그램하기 위한 프로세스를 설명한다.
도 11A-11G는 다양한 실시예들에서 비휘발성 메모리를 프로그램하는 순서를 도시하는 테이블들이다.
도 12는 판독/검증 동작들 동안 특정 신호들의 작용(behavior)을 설명하는 타이밍도이다.
도 13은 비휘발성 메모리를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 14는 비휘발성 메모리에 대한 판독 동작을 수행하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 15는 2개의 이웃하는 메모리 셀들 간의 용량성 결합(capacitive coupling)을 도시하는 블록도이다.
도 16은 데이터를 복구(recover)하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 17은 다수의 워드라인들로부터 데이터를 복구하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 18은 하위 페이지로부터 데이터를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 19는 상위 페이지로부터 데이터를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 20은 데이터를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 21은 상위 페이지로부터 데이터를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 22는 보상을 이용하지 않으면서 데이터를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 23은 플로팅 게이트 간의 (또는 유전 영역 간의) 결합을 보상하면서 데이터를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 24는 데이터 값들을 결정하기 위한 프로세스를 도시하는 테이블이다.
도 25는 교정(correction)을 이용하여 상위 페이지 데이터를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 26은 2 세트의 판독 기준 전압들 및 임계 전압에 있어서의 외관상 시프트를 나타내는 예시적인 임계 전압 분포들의 세트를 도시한다.
도 27은 서로 다른 세트의 판독 기준 전압들을 이용하여 이웃 셀들을 판독하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 28은 서로 다른 세트의 판독 기준 전압들을 이용하여 이웃 워드라인을 판독하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 29는 2 세트의 판독 기준 전압들 및 임계 전압에 있어서의 외관상 시프트를 나타내는 예시적인 임계 전압 분포들의 세트를 도시한다.
플래시 메모리 시스템의 일 예는 2개의 선택 게이트 사이에 다수의 트랜지스터들을 직렬로 배열하는 것을 포함하는 NAND 구조를 이용한다. 직렬의 트랜지스터들 및 선택 게이트들은 NAND 스트링으로 지칭된다. 도 1은 하나의 NAND 스트링(30)을 도시하는 평면도이다. 도 2는 그 등가 회로이다. 도 1 및 2에 도시된 NAND 스트링은 직렬의 4개의 트랜지스터들(10, 12, 14 및 16)을 포함하는 바, 이들은 제 1 선택 게이트(12)와 제 2 선택 게이트(22) 사이에 직렬로 연결되어 있다. 선택 게이트(12)는 비트라인(26)에 NAND 스트링을 연결한다. 선택 게이트(22)는 소스 라인(28)에 NAND 스트링을 연결한다. 선택 게이트(12)는 선택 라인(SGD)을 통해 제어 게이트(20CG)에 적절한 전압을 인가하여 제어된다. 선택 게이트(22)는 선택 라인(SGS)을 통해 제어 게이트(22CG)에 적절한 전압을 인가하여 제어된다. 트랜지스터들(10, 12, 14 및 16) 각각은 제어 게이트와 플로팅 게이트를 가짐으로써, 메모리 셀의 게이트 요소들을 형성한다. 예를 들어, 트랜지스터(10)는 제어 게이트(10CG)와 플로팅 게이트(10FG)를 갖는다. 트랜지스터(12)는 제어 게이트(12CG)와 플로팅 게이트(12FG)를 갖는다. 트랜지스터(14)는 제어 게이트(14CG)와 플로팅 게이트(14FG)를 포함한다. 트랜지스터(16)는 제어 게이트(16CG)와 플로팅 게이트(16FG)를 포함한다. 제어 게이트(10CG)는 워드 라인(WL3)에 연결되고, 제어 게이트(12CG)는 워드 라인(WL2)에 연결되고, 제어 게이트(14CG)는 워드 라인(WL1)에 연결되며, 그리고 제어 게이트(16CG)는 워드 라인(WL0)에 연결된다.
플래시 EEPROM 시스템들에서 유용한 다른 타입의 메모리 셀은 비휘발적인 방식으로 전하를 저장하기 위한 전도성의 플로팅 게이트 대신에 비전도성의 유전 물질을 이용한다. 이러한 셀은, Chan 등의 논문, "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95에 개시되어 있다. 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물로 형성되는 3층 유전체("ONO")가 메모리 셀 채널 윗쪽의 반전도성의 기판의 표면과 전도성의 제어 게이트 사이에 샌드위치된다. 이러한 셀은 셀 채널로부터의 전자들을 실리콘 질화물 내에 주입시킴으로써 프로그램되는 바, 이러한 질화물에서 전자들은 트랩되어 한정된 영역에 저장된다. 이렇게 저장된 전하는 검출가능한 방식으로 셀 채널의 일부분의 임계 전압을 변화시킨다. 셀은 질화물 내에 열 정공들을 주입시킴으로써 소거된다. 또한, Nozaki 등의 논문, "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501을 참조해야 하는 바, 이는 도핑된 폴리실리콘 게이트가 개별적인 선택 트랜지스터를 형성하기 위해 메모리 셀 채널의 일부 위로 연장되는 분할 게이트(split-gate) 구성의 유사한 셀에 대해 개시한다. 상기 2개의 논문들은 그 전체가 본원의 참조로서 인용된다. William D. Brown 및 Joe E. Brewer에 의해 발행된 "Nonvolatile Semiconductor Memory Technology," IEEE Press, 1998의 1.2절에서 언급되는 프로그래밍 기술들 역시 유전체의 전하 트래핑 디바이스들에 적용가능한 것으로서 설명되어 있으며, 이 또한 본원의 참조로서 인용된다. 이 단락에서 설명되는 메모리 셀들 역시 이용될 수 있다. 따라서, 여기에서 설명되는 기술은 서로 다른 메모리 셀들의 유전 영역들 간의 결합에도 적용된다.
각 셀 내에 2개의 비트들을 저장하기 위한 다른 시도는, Eitan 등의 논문 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21. no. 11, 2000년 11월, 543-545 페이지에 설명되어 있다. ONO 유전층은 소스 확산부와 드레인 확산부 사이의 채널에 걸쳐서 연장된다. 하나의 데이터 비트에 대한 전하가 드레인에 인접하는 유전층 내에 국부화(localize)되고, 다른 데이터 비트에 대한 전하가 소스에 인접하는 유전층 내에 국부화된다. 유전층 내에 공간적으로 분리된 전하 저장 영역들의 이진 상태들을 개별적으로 판독함으로써, 다중 상태 데이터 저장을 달성할 수 있다. 이 단락에서 설명되는 메모리 셀들도 이용될 수 있다.
주목할 사항으로서, 도 1 및 도 2가 NAND 스트링 내에 4개의 메모리 셀들을 나타내었지만, 이러한 4개의 트랜지스터들의 이용은 단지 예로서 제공된 것이다. NAND 스트링은 4개 보다 많거나 적은 메모리 셀들을 가질 수 있다. 예를 들어, 일부 NAND 스트링들은 8개의 메모리 셀들, 16개의 메모리 셀들, 32개의 메모리 셀들 등을 포함할 것이다. 여기에서의 논의는 NAND 스트링 내의 메모리 셀들의 임의의 특정 수로 제한되지 않는다. NAND 타입 플래시 메모리들 및 이들의 동작에 대한 관련 예들은, 본 명세서에 그 전체가 참조 문헌으로서 이용되는 다음의 미국 특허들, 즉 미국 특허 5,570,315호, 5,774,397호, 6,046,935호, 5,386,422호, 6,456,528호 및 미국 특허 출원 번호 09/893,277호(미국 공개 2003/0002348)에서 제공된다. NAND 플래시 메모리 이외의 다른 타입의 비휘발성 메모리도 실시예들에 따라 이용될 수 있다.
NAND 구조를 이용하는 플래시 메모리 시스템에 대한 전형적인 아키텍쳐는 복수개의 NAND 스트링들을 포함할 것이다. 도 3은 도 1 및 2에 나타낸 것과 같은 NAND 스트링들의 예시적인 어레이(100)를 도시한다. 각 컬럼을 따라, 비트라인(26)은 NAND 스트링에 대한 비트라인 선택 게이트의 드레인 단자에 결합된다. NAND 스트링들의 각 로우를 따라, 소스 라인은 NAND 스트링들의 소스 라인 선택 게이트들 의 모든 소스 단자들을 연결할 수 있다.
메모리 셀들의 어레이(100)는 많은 수의 메모리 셀들의 블록들로 분할된다. 플래시 EEPROM 시스템에 대해 공통적인 바와 같이, 블록은 소거의 단위이고, 소거 블록 또는 물리 블록으로서 지칭될 수 있다. 각 블록은 함께 소거되는 최소수의 메모리 셀들을 포함할 수 있지만, 다수의 블록들이 동시에 소거될 수도 있다. 일부 구현들에서는, 보다 작은 단위의 셀들이 함께 소거될 수 있다. 도 3에서, 하나의 블록은 워드라인들(WL0-WL3)의 공통 세트에 연결된 셀들을 포함한다. 예를 들어, 블록(90)은 워드라인들(WL0-WL3)에 연결된 각 NAND 스트링(30)을 포함한다.
일 실시예에서, 메모리 셀들의 각 블록은 컬럼들을 형성하는 비트라인들의 세트 및 로우들을 형성하는 워드라인들의 세트를 포함한다. 전형적으로, 각 블록은 다수의 페이지들로 분할된다. 전형적으로, 하나의 페이지가 프로그래밍 또는 판독의 최소 단위이긴 하지만, 단일 동작으로 하나 이상의 페이지가 프로그램 또는 판독될 수도 있다. 다른 실시예에서, 개별적인 페이지들은 세그먼트들로 분할되고, 세그먼트들은 기본적인 프로그래밍 동작으로서 한번에 기록되는 최소수의 셀들을 포함한다. 전형적으로, 하나 이상의 데이터 페이지들이 메모리 셀들의 하나의 로우에 저장된다. 페이지는 하나 이상의 데이터 섹터들을 저장할 수 있는 바, 그 사이즈는 일반적으로 호스트 시스템에 의해 정해진다. 섹터는 사용자 데이터 및 오버헤드 데이터를 저장한다. 전형적으로, 오버헤드 데이터는 섹터의 사용자 데이터로부터 계산되는 에러 정정 코드(ECC)를 포함한다. (하기 설명되는) 제어기의 일부는 데이터가 어레이 내에 프로그램되고 있을 때에 ECC를 계산하며, 그리고 또한 언제 데이터가 어레이로부터 판독되는 지를 체크한다. 대안적으로, ECC들 그리고/또는 다른 오버헤드 데이터는 이들이 관련되는 사용자 데이터와 다른 페이지들 내에, 또는 심지어 다른 블록들 내에 저장될 수 있다. 전형적으로, 사용자 데이터의 섹터는 512 바이트들인데, 이는 자기 디스크 드라이브들 내의 섹터의 사이즈에 대응한다. 전형적으로, 오버헤드 데이터는 부가적인 16-20 바이트들이다. 많은 수의 페이지들은, 8페이지로부터, 예를 들어 최대 32, 64, 또는 그 이상의 페이지들까지 어디에서든지 블록을 형성한다. 일부 실시예들에서, NAND 스트링들의 하나의 로우는 하나의 블록을 포함한다.
일 실시예에서, 비트라인들은 짝수 비트라인들(BLe) 및 홀수 비트라인들(BLo)로 분할된다. 이러한 홀수/짝수 비트라인 아키텍쳐에 있어서, 공통 워드 라인을 따라 있으며 홀수 비트라인들에 연결된 메모리 셀들은 어느 하나의 시간(one time)에 프로그램되는 반면, 공통 워드 라인을 따라 있고 짝수 비트라인들에 연결된 메모리 셀들은 다른 시간(another time)에 프로그램된다. 동시에 판독 또는 프로그램되는 데이터는 논리 페이지를 형성한다.
다른 실시예들에서, 비트라인들은 홀수 비트라인 및 짝수 비트라인으로 분할되지 않는다. 이러한 아키텍쳐들은 일반적으로 모드 비트라인 아키텍쳐(all bit line architecture)라 불린다. 이러한 모든 비트라인 아키텍쳐에서, 한 블록의 모든 비트라인들은 판독 또는 프로그램 동작 동안 동시에 선택된다. 공통 워드라인을 따라 있으며 임의의 비트라인에 연결된 메모리 셀들은 동시에 프로그램된다. 다른 실시예들에서, 비트라인들 또는 블록은 다른 그룹들(예를 들어, 왼쪽 및 오른쪽, 2 개 이상이 그룹들 등)로 분할될 수 있다.
도 4는 메모리 셀들의 페이지를 병렬로 판독 및 프로그램하기 위한 판독/기록 회로들을 갖는 메모리 디바이스(110)를 도시한다. 메모리 디바이스(110)는 하나 이상의 메모리 다이 또는 칩들(112)을 포함한다. 이러한 메모리 다이(112)는 메모리 셀들의 2차원 어레이(100), 제어 회로(120) 및 판독/기록 회로들(130A 및 130B)을 포함한다. 도 4의 실시예에서, 다양한 주변 회로들에 의한 메모리 어레이(100)로의 액세스는, 어레이의 반대측들 상에서, 대칭적인 방식으로 실시되며, 이에 따라 각 측 상의 회로들 및 액세스 라인들의 밀도는 반으로 줄어든다. 다른 실시예들에서, 상기 다양한 주변 회로들은 어레이의 단일측 상에 비대칭 방식으로 제공될 수 있다. 판독/기록 회로들(130A 및 130B)은 다수의 감지 블록들(200)을 포함하여, 메모리 셀들의 페이지가 병렬로 판독 또는 프로그램될 수 있게 한다. 메모리 어레이(100)는 로우 디코더들(140A 및 140B)을 통해 워드라인에 의해 어드레스가능하고, 컬럼 디코더들(142A 및 142B)을 통해 비트라인들에 의해 어드레스가능하다. 전형적인 실시예에서, 제어기(144)는 하나 이상의 메모리 다이(112)와 동일한 메모리 디바이스(110)(예를 들어, 제거가능한 저장 카드 또는 패키지) 내에 포함된다. 커맨드들 및 데이터는 라인들(132)을 통해 호스트와 제어기(144) 사이에, 그리고 라인들(134)을 통해 제어기와 하나 이상의 메모리 다이(112) 사이에 전송된다.
제어 회로(112)는 메모리 어레이(100) 상에서 메모리 동작들을 수행하기 위해 판독/기록 회로들(130A 및 130B)과 협동한다. 제어 회로(120)는 상태 머신(122), 온칩 어드레스 디코더(124) 및 전력 제어 모듈(126)을 포함한다. 상태 머신(122)은 메모리 동작들의 칩 레벨 제어를 제공한다. 온칩 어드레스 디코더(124)는 디코더들(140A, 140B, 142A 및 142B)에 의해 이용되는 하드웨어 어드레스와 호스트 또는 메모리 제어기에 의해 이용되는 어드레스 간에 어드레스 인터페이스를 제공한다. 전력 제어 모듈(126)은 메모리 동작들 동안 워드 라인들 및 비트라인들에 공급되는 전력 및 전압들을 제어한다.
도 5는 감지 모듈(150)로서 지칭되는 코어 부분 및 공통 부분(160)으로 분할되는 개별적인 감지 블록(200)의 블록도이다. 일 실시예에서는, 각 비트라인에 대해 개별적인 감지 모듈(150)이 있고, 다수의 감지 모듈들(150)의 세트에 대해 하나의 공통 부분(160)이 있다. 일 예에서, 감지 블록은 하나의 공통 부분(160) 및 8개의 감지 모듈들(150)을 포함한다. 그룹 내의 각 감지 모듈들은 데이터 버스(156)를 통해 관련 공통 부분과 통신한다. 보다 상세한 사항들에 대해서는, 2004년 12월 29일 출원되었으며 그 명칭이 "Non-Volatile Memory & Method with Shared Processing for an Aggregate of Sense Amplifiers"인 미국 특허 출원 11/026,536호를 참조하기 바라며, 이는 그 전체가 본원의 참조로서 인용된다.
감지 모듈(150)은 감지 회로(154)를 포함하는데, 이 감지 회로는 연결된 비트라인 내의 도통 전류가 소정의 임계 레벨 이상인지, 아니면 미만인지를 결정한다. 감지 모듈(150)은 또한, 연결된 비트라인 상에 전압 조건을 설정하는 데에 이용되는 비트라인 래치(152)를 포함한다. 예를 들어, 비트라인 래치(152)에 래치된 소정의 상태는, 연결된 비트라인이 프로그램 금지를 나타내는 상태(예를 들어, Vdd)가 되게 한다.
공통 부분(160)은 프로세서(162)와, 데이터 래치들의 세트(164)와, 그리고 데이터 버스(168)와 데이터 래치들의 세트(164)의 사이에 결합된 I/O 인터페이스(166)를 포함한다. 프로세서(162)는 계산들을 수행한다. 예를 들어, 그 기능들중 하나는 감지된 메모리 셀에 저장된 데이터를 결정하고, 결정된 데이터를 데이터 래치들의 세트에 저장하는 것이다. 데이터 래치들의 세트(164)는 판독 동작 동안 프로세서(162)에 의해 결정된 데이터 비트들을 저장하는 데에 이용된다. 이는 또한 프로그램 동작 동안 데이터 버스(168)로부터 들어오는 데이터 비트들을 저장하는 데에도 이용된다. 들어오는 데이터 비트들은 메모리 내에 프로그램될 것으로 의도되는 기록 데이터를 나타낸다.
판독 또는 감지 동안, 시스템의 동작은 어드레스되는 저장 요소로의 서로 다른 제어 게이트 전압들의 공급을 제어하는 상태 머신(122)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 해당하는 미리 정해진 제어 게이트 전압들을 통해 스텝(step)을 밟을 때, 감지 모듈(150)은 이러한 전압들중 하나에 트립(trip)되고, 감지 모듈(150)로부터 버스(156)를 통해 프로세서(162)에 출력이 제공된다. 이때, 프로세서(162)는 입력 라인들(158)을 통해 상태 머신으로부터 인가되는 제어 게이트 전압에 대한 정보 및 감지 모듈의 트리핑 이벤트(tripping event)(들)를 고려하여 결과적인 메모리 상태를 결정한다. 그런 다음, 메모리 상태에 대한 이진 엔코딩을 계산하고, 결과적인 데이터 비트들을 데이터 래치들(164)에 저장한다. 코어 부분의 다른 실시예에서, 비트라인 래치(152)는, 감지 모듈(150)의 출력을 래치하기 위한 래치로서, 그리고 상기 설명한 비트라인 래치로서의 이중 임무를 하게 된다.
어떠한 구현들은 다수의 프로세서들(162)를 포함할 것임이 예상된다. 일 실시예에서, 각 프로세서(162)는 출력 라인(미도시)을 포함하며, 이에 따라 출력 라인들 각각은 함께 와이어드-OR(wired-OR)된다. 어떠한 실시예들에서, 출력 라인들은 와이어드-OR 라인에 결합되기 전에 인버트(즉, 반전)된다. 이러한 구성은, 프로그램 검증 프로세스 동안, 프로그래밍 프로세스가 완료될 때를 빠르게 결정할 수 있게 하는데, 그 이유는 와이어드-OR 결과를 수신하는 상태 머신이 프로그램되는 모든 비트들이 언제 요구되는 레벨에 도달하는 지를 결정할 수 있기 때문이다. 예를 들어, 각 비트가 자신의 요구되는 레벨에 도달할 때, 그 비트에 대한 논리 제로가 와이어드-OR 라인에 전송된다(또는 데이터 1이 인버트된다). 모든 비트들이 데이터 0을 출력하면(또는 데이터 1이 인버트되면), 상태 머신은 프로그래밍 프로세스를 종료해야함을 알게 된다. 각 프로세서가 8개의 감지 모듈들과 통신하기 때문에, 상태 머신은 와이어드-OR 라인을 8번 판독할 필요가 있거나, 또는 관련된 비트라인들의 결과들을 누적하기 위해 프로세서(162)에 논리가 부가되며, 이에 따라 상태 머신은 단지 와이어드-OR 라인을 단지 한번만 판독하면 된다. 유사하게, 논리 레벨들을 정확하게 선택함으로써, 글로벌 상태 머신은 첫 번째 비트가 언제 자신의 상태를 변경할 수 있는 지를 검출할 수 있고, 그에 따라 알고리즘들을 변경할 수 있다.
프로그램 또는 검증 동안, 프로그램되어야 하는 데이터는 데이터 버스(168) 로부터 데이터 래치들(164)의 세트에 저장된다. 상태 머신의 제어하에서의 프로그램 동작은 어드레스되는 저장 요소들의 제어 게이트들에 인가되는 일련의 프로그래밍 전압 펄스들을 포함한다. 각 프로그래밍 펄스 다음에는, 셀이 요구되는 상태로 프로그램되었는 지를 결정하는 리드백(read back)(검증)이 뒤따른다. 프로세서(162)는 요구되는 메모리 상태에 대하여 검증된 메모리 상태를 모니터한다. 두개가 일치하면, 프로세서(162)는 비트라인이 프로그램 금지를 나타내는 상태로 풀링(pulling)될 수 있도록 비트라인 래치(152)를 설정한다. 이는, 그 제어 게이트 상에 프로그래밍 펄스들이 나타날지라도, 그 비트라인에 결합된 셀이 더 프로그램되는 것을 막는다. 다른 실시예들에서는, 프로세서가 먼저 비트라인 래치(152)를 로드하고, 감지 회로가 그것을 검증 프로세스 동안 금지 값으로 설정한다.
데이터 래치 스택(164)은 감지 모듈에 해당하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(150) 마다 3개의 데이터 래치들이 있다. 어떠한 구현들에 있어서(하지만, 필수는 아니다), 데이터 래치들은 시프트 레지스터로서 구현되며, 이에 따라 그 내에 저장된 병렬 데이터가 데이터 버스(168)에 대해 직렬 데이터로 변환되고, 그 반대 경우의 변환도 행해진다. 바람직한 실시예에서, m개의 메모리 셀들의 판독/기록 블록에 해당하는 모든 데이터 래치들은 블록 시프트 레지스터를 형성하도록 함께 링크될 수 있으며, 이에 따라 데이터의 블록은 직렬 전송에 의해 입력 또는 출력될 수 있다. 특히, r개의 판독/기록 모듈들의 뱅크는, 이들이 전체 판독/기록 블록에 대한 시프트 레지스터의 일부인것 처럼, 자신의 데이터 래치들의 세트 각각이 데이터 버스로/로부터 직렬로 데이터를 시프트하도록 적합하게 된다.
비휘발성 저장 디바이스들의 다양한 실시예들의 구조 그리고/또는 동작들의 대한 부가적인 정보는, (1) 2004년 3월 25일 공개되었으며, 그 명칭이 "Non-Volatile Memory And Method With Reduced Source Line Bias Errors"인 미국 특허 출원 공개 2004/0057287호; (2) 2004년 6월 10일 공개되었으며, 그 명칭이 "Non-Volatile Memory And Method with Improved Sensing"인 미국 특허 출원 공개 2004/0109357호; (3) 2004년 12월 16일, 발명자 Raul-Adrian Cernea에 의해 출원되었으며, 그 명칭이 "Improved Memory Sensing Circuit And Method For Low Voltage Operation"인 미국 특허 출원 11/015,199호; (4) 2005년 4월 5일, 발명자 Jian Chen에 의해 출원되었으며, 그 명칭이 "Compensating for Coupling During Read Operations of Non-Volatile Memory"인 미국 특허 출원 11/099,133호; 및 (5) 2005년 12월 28일, 발명자들 Siu Lung Chan 및 Raul-Adrian Cernea에 의해 출원되었으며, 그 명칭이 "Reference Sense Amplifier For Non-Volatile Memory"인 미국 특허 출원 11/321,953호에서 찾아볼 수 있다. 바로 위에서 리스트된 5개의 모든 특허 문서들은 그 전체가 본원의 참조로서 인용된다.
일 실시예에서, 데이터는 공통 워드라인을 따라 메모리 셀들에 프로그램된다. 따라서, 도 9의 프로그램 펄스들을 인가하기 전에, 워드라인들중 하나가 프로그래밍을 위해 선택된다. 이 워드라인은 선택 워드라인(selcted word line)으로서 지칭된다. 블록의 나머지 워드라인들은 비선택 워드라인들(unselected word lines)로서 지칭된다. 선택 워드라인은 하나 또는 두개의 이웃하는 워드라인들을 가질 수 있다. 만일 선택 워드라인이 2개의 이웃하는 워드라인을 갖는 다면, 드레인측 상의 이웃하는 워드라인은 드레인측 이웃 워드라인으로서 지칭되고, 소스측 상의 이웃하는 워드라인은 소스측 이웃 워드라인으로서 지칭된다. 예를 들어, 만일 도 2의 WL2가 선택 워드라인이라면, WL1이 소스측 이웃 워드라인이고, WL3이 드레인측 이웃 워드라인이다.
일 예에서 메모리 셀을 프로그램할 때, 드레인 및 p웰은 0V를 인가받고, 제어 게이트는 증가되는 크기들을 갖는 일련의 프로그래밍 펄스들을 받는다. 일 실시예에서, 일련의 프로그래밍 펄스들의 크기들은 12V 내지 24V의 범위를 갖는다. 다른 실시예들에서, 일련의 펄스들의 범위는 다를 수 있는데, 예를 들어 12V 보다 높은 시작 레벨을 가질 수 있다. 메모리 셀들을 프로그래밍하는 동안, 프로그래밍 펄스들 사이의 기간들에서 검증 동작들이 수행될 수 있다. 즉, 병렬로 프로그램되고 있는 셀들의 그룹의 각 셀의 프로그래밍 레벨을 각 프로그래밍 펄스 사이에서 판독함으로써, 그것이 프로그램되고 있는 검증 레벨에 도달했는지 아니면 초과했는 지를 결정한다. 프로그래밍을 검증하는 하나의 수단은 특정의 비교 포인트에서 도통을 테스트하는 것이다. 충분히 프로그램된 것으로 검증된 셀들은, 이러한 셀들에 대한 프로그래밍 프로세스를 중지하기 위해, 예를 들어 NAND 셀들 내에서, 비트라인 전압을 0V로부터 VDD(예를 들어, 1.8V-3.3V)로 올림으로써, 모든 후속의 프로그램 펄스들에 대해 로크 아웃(lock out)된다. 어떠한 경우들에 있어서, 펄스들의 수는 제한되고(예를 들어, 20개의 펄스들로 제한됨), 만일 소정의 메모리 셀이 마지막 펄스에 의해 충분히 프로그램되지 않으면, 에러로 추정된다. 어떠한 구현들에서, 메모리 셀들은 프로그래밍되기 전에 (블록들 또는 다른 단위로) 소거된다.
도 6은 일 실시예에 따른 프로그램 전압 신호를 도시한다. 이 신호는 증가되는 크기들을 갖는 펄스들의 세트를 갖는다. 펄스들의 크기는 각 펄스에 대해 소정의 스텝 사이즈(step size) 만큼 증가된다. 다수의 데이터 비트를 저장하는 메모리 셀들을 포함하는 일 실시예에서, 예시적인 스텝 사이즈는 0.2V (또는 0.4V)이다. 각 프로그램 펄스들 사이에는, 검증 펄스들이 있다. 도 6의 신호는 4개의 상태의 메모리 셀을 가정하며, 이에 따라 3개의 검증 펄스들을 포함한다. 예를 들어, 프로그래밍 펄스들(240 및 242) 사이에는, 3개의 연속적인 검증 펄스들이 있다. 제 1 검증 펄스(244)는 0V의 검증 전압 레벨로 도시된다. 제 2 검증 펄스(246)가 제 2 검증 전압 레벨로 제 1 검증 펄스 다음에 온다. 제 3 검증 펄스(248)가 제 3 검증 전압 레벨로 제 2 검증 펄스 다음에 온다. 예를 들어, 8개의 상태로 데이터를 저장할 수 있는 다중 상태 메모리 셀은 7개의 비교 포인트들에서 검증 동작들을 수행할 필요가 있다. 따라서, 2개의 연속적인 프로그래밍 펄스들 사이에서 7개의 검증 펄스들이 차례로 인가됨으로써, 7개의 검증 레벨들로 7번의 검증 동작들이 수행된다. 이러한 7번의 검증 동작들에 기초하여, 시스템은 메모리 셀들의 상태를 결정할 수 있게 된다. 검증의 시간적 부담을 줄이기 위한 하나의 수단은 보다 효율적인 검증 프로세스를 이용하는 것인데, 이것은 예를 들어 다음의 특허 출원들에 개시되어 있으며, 이들은 그 전체가 본원의 참조로서 인용된다: 2002년 12월 5일 출원되었으며 그 명칭이 "Smart Verify for Multi-State Memories"인 미국 특허 출원 10/314,055호; 2005년 10월 27일 출원되었으며 그 명칭이 "Apparatus for Programming of Multi-State Non-Volatile Memory Using Smart Verify"인 미국 특허 출원 11/259,799호; 및 2005년 10월 27일 출원되었으며 그 명칭이 "Method for Programming of Multi-State Non-Volatile Memory Using Smart Verify"인 미국 특허 출원 11/260,658호.
도 7은 비휘발성 메모리를 프로그램하는 방법의 일 실시예를 설명하는 흐름도이다. 단계(200)에서, 프로그램될 메모리 셀들이 소거된다. 단계(200)는 프로그램될 메모리 셀들 보다 더 많은 메모리 셀들을, (예를 들어, 블록들 또는 다른 단위로) 소거하는 것을 포함할 수 있다. 단계(202)에서, 소프트 프로그래밍을 수행하여, 소거되는 메모리 셀들에 대한 소거 임계 전압들의 분포를 좁힌다. 일부 메모리셀들은 소거 프로세스의 결과로서 필요한 것 보다 더 깊은 소거 상태에 있을 수 있다. 소프트 프로그래밍은 소거되는 메모리 셀들의 임계 전압을 소거 검증 레벨에 더 가깝게 이동시키기 위해 작은 프로그래밍 펄스들을 인가할 수 있다. 단계(204)에서, "데이터 로드" 커맨드가 제어기(144)에 의해 발행되어, 제어 회로(120)에 입력됨으로써, 데이터가 데이터 입/출력 버퍼에 입력될 수 있게 한다. 입력 데이터는 커맨드로서 인식되며, 제어 회로(120)에 입력되는 커맨드 래치 신호(미도시)에 의해 상태 머신(122)에 의해 래치된다. 단계(206)에서, 페이지 어드레스를 나타내는 어드레스 데이터가 제어기 또는 호스트로부터 로우 제어기들 또는 디코더들(140A 및 140B)에 입력된다. 입력 데이터는 페이지 어드레스로서 인식되며, 제어 회로에 입력되는 어드레스 래치 신호에 의해 영향을 받는 상태 머신(122)에 의해 래치된다. 단계(208)에서, 어드레스되는 페이지에 대한 프로그램 데이터의 페이지가 프로그래밍을 위해 데이터 입/출력 버퍼에 입력된다. 일 실시예에서는, 예를 들어 532 바이트의 데이터가 입력될 수 있다. 이 데이터는 선택된 비트라인들에 대한 적절한 레지스터(register)들 내에 래치된다. 어떠한 실시예들에서, 이 데이터는 또한 검증 동작들에 대해 이용될 선택된 비트라인들에 대한 제 2 레지스터 내에 래치된다. 단계(210)에서, "프로그램" 커맨드가 제어기에 의해 발행되어, 데이터 입/출력 버퍼에 입력된다. 이 커맨드는 제어 회로에 입력된 커맨드 래치 신호를 통해 상태 머신(122)에 의해 래치된다.
"프로그램" 커맨드에 의해 트리거되면, 단계(208)에서 래치된 데이터는, 적절한 워드라인에 인가되는 도 6의 스텝형(stepped) 펄스들을 이용하여 상태 머신(122)에 의해 제어되는 선택된 메모리 셀들 내에 프로그램될 것이다. 단계(212)에서, 선택된 워드라인에 인가되는 프로그래밍 펄스 전압 레벨(VPGM)은 시작 펄스(예를 들어, 12V)로 초기화되고, 상태 머신(122)에 의해 유지되는 프로그램 카운터(PC)는 0으로 초기화된다. 단계(214)에서는, 제 1 VPGM 펄스가 선택된 워드라인에 인가된다. 만일 특정의 데이터 래치에 논리 "0"이 저장되어, 해당하는 메모리 셀이 프로그램되어야 함을 나타내면, 해당하는 비트라인은 접지된다. 한편, 만일 특정의 데이터 래치에 논리 "1"이 저장되어, 해당하는 메모리 셀이 자신의 현재 데이터 상태를 유지해야 함을 나타내면, 해당하는 비트라인은 VDD에 연결되어 프로그래밍을 금지한다.
단계(216)에서, 선택된 메모리 셀들의 상태들이 검증된다. 만일 선택된 셀의 목표 임계 전압이 적절한 레벨에 도달했다고 검출되면, 해당하는 데이터 래치에 저장된 데이터는 논리 "1"로 변경된다. 만일 임계 전압이 적절한 레벨에 도달하지 않은 것으로 검출되면, 해당하는 데이터 래치에 저장된 데이터는 변경되지 않는다. 이러한 방식으로, 자신의 해당하는 데이터 래치에 논리 "1"이 저장되어 있는 비트라인은 프로그램될 필요가 없다. 모든 데이터 래치들이 논리 "1"을 저장하고 있을 때, 상태 머신은 선택된 모든 셀들이 프로그램되었음을 알게 된다. 단계(218)에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있는 지를 체크한다. 모든 데이터 래치들이 논리 "1"을 저장하고 있으면, 프로그래밍 프로세스는 완료되고 성공적이 되는데, 그 이유는 선택된 모든 메모리 셀들이 자신들의 목표 상태들로 프로그램되고 검증되었기 때문이다. 단계(220)에서, "패스(PASS)"의 상태가 보고된다.
단계(218)에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있지 않는 것으로 결정되면, 프로그래밍 프로세스가 계속된다. 단계(222)에서, 프로그램 카운터(PC)가 프로그램 제한 값에 대해 체크된다. 프로그램 제한 값의 일 예는 20이지만, 다른 값들도 이용될 수 있다. 만일 프로그램 카운터(PC)가 20 보다 작지 않으면, 단계(226)에서, 성공적으로 프로그램되지 않은 셀들의 수가 소정 수와 같거나 작은 지를 결정한다. 만일 성공적으로 프로그램되지 않은 비트들의 수가 소정 수와 같거나 작다면, 프로그래밍 프로세스는 패스된 것으로서 플래그(flag)되며, 단계(228)에서 패스의 상태가 보고된다. 성공적으로 프로그램되지 않은 비트들은 판독 프로세스 동안 에러 정정을 이용하여 정정될 수 있다. 하지만, 성공적으로 프로그램되지 않은 비트들의 수가 소정 수 보다 많다면, 프로그램 프로세스는 실패한 것으로서 플래그되고, 단계(230)에서 실패의 상태가 보고된다. 프로그램 카운터(PC)가 20 보다 작으면, 단계(224)에서, VPGM 레벨이 스텝 사이즈 만큼 증가하고, 프로그램 카운터(PC)가 증분된다. 단계(224) 이후, 프로세스는 단계(214)로 돌아가, 다음 VPGM 펄스를 인가한다.
도 7의 흐름도는 이진 저장에 대해 적용될 수 있는 단일-패스 프로그래밍(single-pass programming) 방법을 도시한다. 다중-레벨 저장에 적용될 수 있는 2-패스 프로그래밍(2-pass programming) 방법에서는, 예를 들어 다수의 프로그래밍 또는 검증 단계들이 흐름도의 단일 반복(iteration)에서 이용될 수 있다. 단계들(212-230)은 프로그래밍 동작의 각 패스에 대해 수행될 수 있다. 제 1 패스에서, 하나 이상의 프로그램 펄스들이 인가되고, 그 결과들이 검증되어, 셀이 적절한 중간 상태(intermediate state)에 있는 지를 결정한다. 제 2 패스에서, 하나 이상의 프로그램 펄스들이 인가되고, 그 결과들이 검증되어, 셀이 적절한 최종 상태(final state)에 있는 지를 결정한다.
성공적인 프로그래밍 프로세스의 끝에서, 메모리 셀들의 임계 전압들은, 프로그램되는 메모리 셀들에 대한 임계 전압들의 하나 이상의 분포들 내에 또는 소거되는 메모리 셀들에 대한 임계 전압들의 분포 내에 있어야 한다. 메모리 셀의 가능한 임계 전압들의 범위는 개별적인 메모리 상태들을 나타내는 범위들로 분할될 수 있다. 예를 들어, 논리 데이터 "1" 및 "0"이 할당되는 2개의 메모리 상태들을 확립하기 위해 2개의 임계 전압들의 범위들이 이용될 수 있다. 메모리 셀은 또한, 개별적인 메모리 상태들을 나타내기 위해 2개 이상의 임계 전압들의 범위를 이용함으로써 다중 비트의 디지털 데이터를 저장할 수 있다. 임계 전압 윈도우(threshold voltage window)는 요구되는 메모리 상태들의 수 및 개별적인 상태들을 획정(resolve)하는 데에 이용되는 다수의 전압 브레이크포인트 레벨(voltage breakpoint level)들로 분할될 수 있다. 예를 들어, 4개의 상태들이 이용된다면, 4개의 개별적인 메모리 상태들(11, 10, 01 및 00의 데이터 값들이 할당될 수 있음)을 나타내는 4개의 임계 전압 범위들이 있게 될 것이다. 메모리 셀 내에 프로그램되는 데이터와 그 셀의 임계 전압 범위들 간의 특정의 관계는 메모리 셀들에 대해 채택되는 데이터 엔코딩 방식에 의존한다. 2003년 6월 13일 출원되었으며 그 명칭이 "Tracking Cells For A Memory System"인 미국 특허 출원 10/461,244호 및 미국 특허 6,222,762호는 다중 상태 플래시 저장 요소들에 대한 다양한 데이터 엔코딩 방식들을 설명하며, 이러한 2개의 인용 문헌들은 그 전체가 본원의 참조로서 인용된다.
도 8은 각 메모리 셀이 2비트의 데이터를 저장할 때, 메모리 셀들의 그룹에 대한 임계 전압 분포들을 도시한다. 도 8은 소거된 메모리 셀들에 대한 제 1 임계 전압 분포(E) 및 프로그램된 메모리 셀들에 대한 3개의 임계 전압 분포들(A, B 및 C)을 나타낸다. 일 실시예에서, E 분포 내의 임계 전압들은 음(negative)이며, A, B 및 C 분포들 내의 임계 전압들은 양(positive)이다. 도 8의 각각의 별개의 임계 전압 범위는 데이터 비트들의 세트에 대한 소정의 값들에 해당한다. 메모리 셀 내에 프로그램되는 데이터와 그 셀의 임계 전압 레벨들 간의 특정의 관계는 셀들에 대해 채택되는 데이터 엔코딩 방식에 의존한다. 일 실시예에서, 데이터 값들은 그레이 코드 할당(gray code assignment)을 이용하여 임계 전압 범위들에 할당되며, 이에 따라 플로팅 게이트의 임계 전압이 그 이웃의 물리 상태로 잘못하여 시프트되더라도, 단지 1개의 비트 만이 영향을 받게 될 것이다. 하지만, 다른 실시예들에서는, 그레이 코딩이 이용되지 않는다. 하나의 예는 임계 전압 범위(E)(상태 E)에 대해 "11"을, 임계 전압 범위(A)(상태 A)에 대해 "10"을, 임계 전압 범위(B)(상태 B)에 대해 "00"을, 그리고 임계 전압 범위(C)(상태 C)에 대해 "01"을 할당한다. 비록 도 8이 4개의 상태들을 나타내었지만, 본 개시에 따른 실시예들은 4개 보다 많거나 적은 상태를 포함하는 것들을 포함하는 다른 이진 또는 다중 상태 구조들에 대해서도 이용될 수 있다.
도 8은 풀 시퀀스 프로그래밍(full sequence programming) 기술을 도시한다. 이러한 풀 시퀀스 프로그래밍에서, 메모리 셀들은 소거 상태(E)로부터 프로그램 상태들(A, B 또는 C)중 임의의 상태로 바로 프로그램될 수 있다. 프로그램되어야 하는 저장 요소들의 집단(population)이 먼저 소거됨으로써, 그 집단 내의 모든 메모리 셀들이 소거 상태(E)가 된다. 그런 다음, 일련의 프로그래밍 펄스들이 선택된 메모리 셀들의 제어 게이트들에 인가되어, 그 메모리 셀들을 상태들(A, B 또는 C)로 프로그램한다. 어떠한 메모리 셀들이 상태(E)로부터 상태(A)로 프로그램되는 동안, 다른 메모리 셀들은 상태(E)로부터 상태(B)로 그리고/또는 상태(E)로부터 상태(C)로 프로그램된다.
도 9는 2개의 다른 페이지들, 즉 하위 페이지 및 상위 페이지에 대해 데이터를 저장하는 다중 상태 메모리 셀들을 프로그래밍하는 2-패스 기술의 일례를 도시한다. 4개의 상태가 도시된다. 상태 E에 대해, 양 페이지들은 "1"을 저장한다. 상태 A에 대해, 하위 페이지는 "0"을 저장하고, 상위 페이지는 "1"을 저장한다. 상태 B에 대해, 양 페이지들은 "0"을 저장한다. 상태 C에 대해, 하위 페이지는 "1"을 저장하고, 상위 페이지는 "0"을 저장한다. 비록 특정의 비트 패턴들이 각 상태들에 할당되었지만, 다른 비트 패턴들도 할당될 수 있다는 것을 주목하자.
제 1 프로그래밍 패스에서, 셀의 임계 전압 레벨은 하위 논리 페이지 내에 프로그램될 비트에 따라 설정된다. 만일 그 비트가 논리 "1"이라면, 임계 전압은 변하지 않는데, 그 이유는 이전에 소거된 결과로서 임계 전압이 적절한 상태에 있기 때문이다. 하지만, 만일 프로그램될 비트가 논리 "0"이라면, 셀의 임계 레벨은 화살표(250)로 나타낸 바와 같이 상태 A로 증가한다. 이에 의해, 제 1 프로그래밍 패스가 끝난다.
제 2 프로그래밍 패스에 있어서, 셀의 임계 전압 레벨은, 상위 논리 페이지 내에 프로그램되고 있는 비트에 따라 설정된다. 만일 상위 논리 페이지 비트가 논리 "1"을 저장하는 경우에는, 어떠한 프로그래밍도 일어나지 않는데, 그 이유는 셀은 하위 페이지 비트의 프로그래밍에 따라, 상태 E 또는 상태 A중 하나에 있기 때문이며, 이들 모두는 "1"의 상위 페이지 비트를 보유(carry)한다. 만일 상위 페이지 비트가 논리 "0"이 될 예정이라면, 임계 전압은 시프트된다. 만일 제 1 패스로 인해 셀이 소거 상태 E로 남아있다면, 제 2 페이즈에서, 그 셀이 프로그램됨으로써, 화살표(254)로 나타낸 바와 같이 임계 전압이 증가하여 상태 C 내에 있게 된다. 만일 셀이 제 1 프로그래밍 패스의 결과로서 상태 A로 프로그램되면, 그 메모리 셀은 제 2 패스에서 한층 더 프로그램되어, 화살표(252)로 나타낸 바와 같이, 임계 전압이 증가하여 상태 B 내에 있게 된다. 제 2 패스의 결과는, 하위 페이지에 대한 데이터를 변경하지 않으면서, 상위 페이지에 대해 논리 "0"을 저장하도록 지정된 상태로 셀을 프로그램하는 것이다.
도 10A-10C는 비휘발성 메모리를 프로그램하는 다른 프로세스를 개시하는 바, 이는 임의의 특정의 메모리 셀에 대하여, 이전의 페이지들에 대해 인접하는 메모리 요소들을 기록한 이후 특정 페이지에 관하여 상기 특정의 메모리 셀을 기록함으로써, 플로팅 게이트 간의 결합 효과를 감소시킨다. 여기에서 이 기술은 프로그래밍의 마지막 제 1 모드(last first mode)(LM)라 불린다. 도 10A-10C의 예에서, 각 셀은 4개의 데이터 상태를 이용하여 메모리 셀 마다 2개의 데이터 비트를 저장한다. 소거 상태 E는 데이터 11을 저장하고, 상태 A는 데이터 01을 저장하고, 상태 B는 데이터 10을 저장하며, 그리고 상태 C는 데이터 00을 저장한다. 또한, 물리 데이터 상태들에 대한 다른 데이터 엔코딩도 이용될 수 있다. 각 메모리 셀은 데이터의 2개의 논리 페이지들의 일부를 저장한다. 참조를 위해, 이러한 데이터 페이지는 상위 페이지 및 하위 페이지라 불려지지만, 이것들에는 다른 라벨들이 붙여질 수 있다. 상태 A는 상위 페이지에 대해서는 비트 0을 저장하고 하위 페이지에 대해서는 비트 1을 저장하도록 엔코드되고, 상태 B는 상위 페이지에 대해서는 비트 1을 저장하고 하위 페이지에 대해서는 비트 0을 저장하도록 엔코드되며, 그리고 상태 C 는 양 페이지들에 대해 비트 0을 저장하도록 엔코드된다. 워드라인(WLn)에서의 메모리 셀들에 대한 하위 페이지 데이터는 도 10A에 도시된 제 1 단계에서 프로그램되고, 셀들에 대한 상위 페이지 데이터는 도 10c에 도시된 제 2 단계에서 프로그램된다. 하위 페이지 데이터가 셀에 대해 데이터 1을 유지하는 경우, 그 셀의 임계 전압은 제 1 단계 동안 상태 E로 유지된다. 하위 페이지 데이터가 0으로 프로그램되어야 하는 경우, 메모리 셀의 임계 전압은 상태 B'로 올라간다. 상태 B'는 Vvb 보다 낮은 검증 레벨(Vvb')을 갖는 중간 상태(B)이다.
일 실시예에서, 메모리 셀에 대한 하위 페이지 데이터가 프로그램된 후, 인접하는 워드라인(WLn+1)에서의 이웃 메모리 셀들은 자신들의 하위 페이지에 대하여 프로그램될 것이다. 예를 들어, 도 1-3의 WL2에서의 메모리 셀들에 대한 하위 페이지는, WL1에서의 메모리 셀들에 대한 하위 페이지 이후에 프로그램될 수 있다. 메모리 셀(12)을 프로그램한 후 메모리 셀(10)의 임계 전압이 상태 E로부터 상태 B'로 올라가는 경우, 플로팅 게이트 결합은 상기 메모리 셀(12)의 외관상 임계 전압을 올릴 수 있다. WLn에서의 메모리 셀들에 대한 누적 결합 효과는 도 10B에 나타낸 것과 같이 셀들에 대한 임계 전압들의 외관상 임계 전압 분포를 확장(widening)시킬 것이다. 이와같은 임계 전압 분포의 확장은 도 10C에 나타낸 바와 같이 관심의 워드라인에 대한 상위 페이지를 프로그램할 때에 교정(remedy)될 수 있다.
도 10C는 WLn의 셀에 대한 상위 페이지를 프로그램하는 프로세스를 도시한다. 만일 메모리 셀이 소거 상태 E이고, 그 상위 페이지 비트가 1로 유지된다면, 그 메모리 셀은 상태 E로 유지된다. 만일 메모리 셀이 상태 E이고, 그 상위 페이지 데이터 비트가 0으로 프로그램되어야 한다면, 메모리 셀의 임계 전압은 상태 A에 대한 범위 내에 있도록 올라간다. 만일 메모리 셀이 중간 임계 전압 분포(B')에 있고, 그 상위 페이지 데이터가 1로 유지될 것이라면, 그 메모리 셀은 최종 상태 B로 프로그램된다. 만일 메모리 셀이 중간 임계 전압 분포(B')에 있고, 그 상위 페이지 데이터가 데이터 0으로 될 것이라면, 그 메모리 셀의 임계 전압은 상태 C에 대한 범위 내에 있도록 올라간다. 도 10A-10C에 도시된 프로세스는 플로팅 게이트 간의 결합 효과를 감소시키는데, 그 이유는 이웃하는 메모리 셀들의 상위 페이지 프로그래밍 만이 소정의 메모리 셀의 외관상 임계 전압에 영향을 미치기 때문이다. 이러한 기술에 대한 교번적인 상태 코딩(alternate state coding)의 예는, 상위 페이지 데이터가 1일 때에는 중간 상태 B'로부터 상태 C로 이동시키고, 상위 페이지 데이터가 0일 때는 상태 B로 이동시키는 것이다. 비록 도 10A-10C가 4개의 데이터 상태들 및 2개의 데이터 페이지들에 대한 예를 제공하지만, 이러한 개념은 4개 보다 많거나 적은 상태들 및 다른 수의 페이지들을 갖는 다른 구현들에도 적용될 수 있다.
도 11A-11F는 도 8, 9 및 10A-10C에서 설명된 방법들의 다양한 실시예들에 따른 프로그래밍의 순서를 설명하는 다양한 테이블들이다.
도 11A는 모든 비트라인 프로그래밍에 대한 비트라인을 따라 메모리 셀들을 프로그램하는 순서를 설명하는 테이블이다. 이러한 실시예에서, 4개의 워드라인들을 갖는 블록은 4개의 페이지들(페이지 0-3)을 포함한다. 페이지 0이 먼저 기록되고, 그 다음 페이지 1이 기록되고, 그 다음 페이지 2가 기록되고, 그 다음 페이지 3이 기록된다. 페이지 0 내의 데이터는 워드라인(WL0)에 연결된 모든 메모리 셀들에 의해 저장되는 데이터를 포함한다. 페이지 1 내의 데이터는 워드라인(WL1)에 연결된 모든 메모리 셀들에 의해 저장되는 데이터를 포함한다. 페이지 2 내의 데이터는 워드라인(WL2)에 연결된 모든 메모리 셀들에 의해 저장되는 데이터를 포함한다. 페이지 3 내의 데이터는 워드라인(WL3)에 연결된 모든 메모리 셀들에 의해 저장되는 데이터를 포함한다. 도 11의 실시예는 도 8과 관련하여 상기 설명된 풀 시퀀스 프로그래밍을 가정한다.
도 11B는 도 8과 관련하여 상기 설명된 풀 시퀀스 프로그래밍 방법을 이용할 때 홀수/짝수 프로그래밍 동안의 프로그래밍 순서를 도시한다. 이러한 실시예에서, 4개의 워드라인들을 갖는 블록은 8개의 데이터 페이지들을 포함한다. 워드라인(WL0)에 연결된 짝수 비트라인들 상의 메모리 셀들은 페이지 0에 대한 데이터를 저장한다. 워드라인(WL0)에 연결된 홀수 비트라인들 상의 메모리 셀들은 페이지 1에 대한 데이터를 저장한다. 워드라인(WL1)에 연결된 짝수 비트라인들 상의 메모리 셀들은 페이지 2에 대한 데이터를 저장한다. 워드라인(WL1)에 연결된 홀수 비트라인들 상의 메모리 셀들은 페이지 3에 대한 데이터를 저장한다. 워드라인(WL2)에 연결된 짝수 비트라인들 상의 메모리 셀들은 페이지 4에 대한 데이터를 저장한다. 워드라인(WL2)에 연결된 홀수 비트라인들 상의 메모리 셀들은 페이지 5에 대한 데이터를 저장한다. 워드라인(WL3)에 연결된 짝수 비트라인들 상의 메모리 셀들은 페이지 6에 대한 데이터를 저장한다. 워드라인(WL3)에 연결된 홀수 비트라인들 상의 메모리 셀들은 페이지 7에 대한 데이터를 저장한다. 데이터는 페 이지 0으로부터 페이지 7까지의 페이지 번호에 따라 번호순(numerical order)으로 프로그램된다.
도 11C는 모든 비트라인 프로그래밍을 수행하는 메모리 어레이에 대한 도 9의 2 페이즈 프로그래밍 프로세스에 따른 프로그래밍 순서를 설명한다. 4개의 워드라인들을 갖는 블록은 8개의 페이지들을 포함하는 것으로 도시된다. 워드라인(WL0)에 연결된 메모리 셀들에 대해, 데이터의 하위 페이지는 페이지 0을 형성하고, 상위 페이지 데이터는 페이지 1을 형성한다. 워드라인(WL1)에 연결된 메모리 셀들에 대해, 데이터의 하위 페이지는 페이지 2를 형성하고, 상위 페이지 데이터는 페이지 3을 형성한다. 워드라인(WL2)에 연결된 메모리 셀들에 대해, 데이터의 하위 페이지는 페이지 4를 형성하고, 상위 페이지 데이터는 페이지 5를 형성한다. 워드라인(WL3)에 연결된 메모리 셀들에 대해, 데이터의 하위 페이지는 페이지 6을 형성하고, 상위 페이지 데이터는 페이지 7을 형성한다. 데이터는 페이지 0으로부터 페이지 7까지의 페이지 번호에 따라 번호순으로 프로그램된다.
도 11D는 홀수/짝수 프로그래밍을 수행하는 메모리 아키텍쳐에 대한 도 9의 2-페이즈 프로그래밍 프로세스를 프로그램하는 순서를 설명하는 테이블이다. 4개의 워드라인들을 갖는 블록은 16개의 페이지들을 포함하며, 이러한 페이지들은 페이지 0에서부터 페이지 15까지의 페이지 번호에 따라 번호순으로 프로그램된다. 워드라인(WL0)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 0을 형성하고 상위 페이지 데이터는 페이지 2를 형성한다. 워드라인(WL0)에 연결된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 1을 형성하고 상위 페이지 데이터는 페이지 3을 형성한다. 워드라인(WL1)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 4를 형성하고 상위 페이지 데이터는 페이지 6을 형성한다. 워드라인(WL1)에 연결된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 5를 형성하고, 상위 페이지 데이터는 페이지 7을 형성한다. 워드라인(WL2)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 8을 형성하고 상위 페이지 데이터는 페이지 10을 형성한다. 워드라인(WL2)에 연결된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 9를 형성하고 상위 페이지 데이터는 페이지 11을 형성한다. 워드라인(WL3)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 12를 형성하고 상위 페이지 데이터는 페이지 14를 형성한다. 워드라인(WL3)에 연결된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 13을 형성하고 상위 페이지 데이터는 페이지 15를 형성한다. 대안적으로, 도 14E에서와 같이, 짝수 비트라인의 각 워드라인 아래의 하위 페이지와 상위 페이지는 모두, 이러한 동일한 워드라인에 대한 홀수 비트라인들의 양쪽의 페이지들을 프로그램하기 전에, 프로그램된다.
도 11F 및 11G는 도 10A-10C의 프로그래밍 방법을 이용하여 메모리 셀들을 프로그램하는 순서를 설명한다. 도 11F는 모든 비트라인 프로그래밍을 수행하는 아키텍쳐와 관련된다. 워드라인(WL0)에 연결된 메모리 셀들에 대해, 하위 페이지는 페이지 0을 형성하고 상위 페이지는 페이지 2를 형성한다. 워드라인(WL1)에 연결된 메모리 셀들에 대해, 하위 페이지는 페이지 1을 형성하고 상위 페이지는 페이지 4 를 형성한다. 워드라인(WL2)에 연결된 메모리 셀들에 대해, 하위 페이지는 페이지 3을 형성하고 상위 페이지는 페이지 6을 형성한다. 워드라인(WL3)에 연결된 메모리 셀들에 대해, 하위 페이지는 페이지 5를 형성하고 상위 페이지는 페이지 7을 형성한다. 메모리 셀들은 페이지 0으로부터 페이지 7까지의 페이지 번호에 따라 번호순으로 프로그램된다.
도 11G의 테이블은 홀수/짝수 프로그래밍을 수행하는 메모리 아키텍쳐와 관련된다. 워드라인(WL0)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 0을 형성하고 상위 페이지 데이터는 페이지 4를 형성한다. 워드라인(WL0)에 연결된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 1을 형성하고 상위 페이지 데이터는 페이지 5를 형성한다. 워드라인(WL1)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 2를 형성하고 상위 페이지 데이터는 페이지 8을 형성한다. 워드라인(WL1)에 연결된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 3을 형성하고 상위 페이지 데이터는 페이지 9를 형성한다. 워드라인(WL2)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 6을 형성하고 상위 페이지 데이터는 페이지 12를 형성한다. 워드라인(WL2)에 연결된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 7을 형성하고 상위 페이지 데이터는 페이지 13을 형성한다. 워드라인(WL3)에 연결된 짝수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 10을 형성하고 상위 페이지 데이터는 페이지 14를 형성한다. 워드라인(WL3)에 연결 된 홀수 비트라인 상의 메모리 셀들에 대해, 하위 페이지 데이터는 페이지 11을 형성하고 상위 페이지 데이터는 페이지 15를 형성한다. 메모리 셀들은 페이지 0으로부터 페이지 15까지의 페이지 번호에 따라 번호순으로 프로그램된다. 마지막으로, 짝수 비트라인과 홀수 비트라인 모두를 갖는 아키텍쳐들 각각은, 예를 들어 칩의 왼쪽에 물리적으로 함께 위치되는 모든 짝수 비트라인들, 및 예를 들어 칩의 오른쪽에 함께 위치되는 모든 홀수 비트라인들에 의해 구현될 수 있다.
주목할 사항으로서, 도 11A-11G의 실시예들에서, 메모리 셀들은 소스측으로부터 드레인측까지의 NAND 스트링을 따라 프로그램된다. 또한, 테이블들은 4개의 워드라인들을 갖는 실시예 만을 도시한다. 이러한 테이블들 내에 도시된 다양한 방법들은, 4개 보다 많거나 적은 워드라인들을 가지며, 순서를 적절히 바꿈으로써 다른 방향으로(예를 들어, 드레인으로부터 소스로) 프로그램하는 시스템들에 적용될 수 있다. 짝수/홀수 프로그래밍을 이용하는 아키텍쳐의 예들은 미국 특허 6,522,580호 및 6,643,188호에서 찾아볼 수 있으며, 이들은 그 전체가 본원의 참조로서 인용된다. 모든 비트라인 프로그래밍을 이용하는 아키텍쳐에 대한 보다 많은 정보는 그 전체 본원의 참조로서 인용되는 하기의 미국 특허 문서들에서 찾아볼 수 있다. 미국 특허 출원 공개 2004/0057283호; 미국 특허 출원 공개 2004/0060031호; 미국 특허 출원 공개 2004/0057285호; 미국 특허 출원 공개 2004/0057287호; 미국 특허 출원 공개 2004/0057318호; 미국 특허 6,771,536호 및 미국 특허 6,781,877.
일 실시예에서, 메모리 셀들은, 충분한 시간 주기 동안 p-웰을 소거 전압(예를 들어, 20V)으로 올리고, 소스 및 비트라인들이 플로팅되는 동안, 선택된 블록의 워드라인들을 접지시킴으로써, 소거된다. 선택된 메모리 셀들의 터널 산화물층들에 강한 전계가 걸리게 되고, 플로팅 게이트들의 전자들이 기판측으로 방출됨에 따라, 선택된 메모리 셀들의 데이터가 소거된다. 전자들이 플로팅 게이트로부터 p-웰 영역으로 이동함에 따라, 선택된 셀의 임계 전압이 낮아진다. 소거가 금지되는 셀들의 워드라인들은 플로팅 조건으로 설정된다. 용량성 결합으로 인해, 비선택 워드라인들, 비트라인들, 선택 라인들 및 공통 소스 라인들 역시 소거 전압의 상당 부분(significant fraction)까지 올라감으로써, 비선택 셀들의 소거를 금지시킨다. 소거는 전체 메모리 어레이, 개별적인 블록들 또는 다른 단위의 셀들에 대해 수행될 수 있다.
비휘발성 메모리를 판독하기 위해, 일반적으로 적어도 하나의 기준 임계 전압 레벨이 각 상태 사이에 설정되어, 메모리 셀의 임계 전압 메모리 윈도우(window)를 이용되는 범위들의 수로 분할한다. 기준 임계 전압 레벨에 해당하는 소정의 고정된 전압들(예를 들어, 판독 기준 전압들)을 그 메모리 셀의 게이트에 인가함으로써 셀을 판독할 때, 그 소스/드레인의 도통 상태는 그 도통과 브레이크포인트 레벨 또는 기준 전압을 비교함으로써 설정된다. 일반적으로, 모든 비트라인들을 함께 프로그램하는 아키텍쳐들은 모든 비트라인들로부터 데이터를 함께 판독할 것이다. 유사하게, 홀수 비트라인과 짝수 비트라인을 개별적으로 프로그램하는 아키텍쳐들은 일반적으로 홀수 비트라인과 짝수 비트라인을 개별적으로 판독할 것이다. 하지만, 이러한 제한들이 필수는 아니다. 데이터를 판독하기 위해 여기에서 설명되는 기술은 모든 비트라인 프로그래밍 또는 홀수/짝수 비트라인 프로그래밍에 대해 이용될 수 있다. 데이터를 판독하기 위해 여기에서 설명되는 기술은 도 8-9 및 도 10A-10C의 프로그래밍 방식들중 어느 하나 뿐 아니라 다른 프로그래밍 방식들에 대해서도 이용될 수 있다.
도 8은 메모리 셀들로부터 데이터를 판독하기 위한 3개의 판독 기준 전압들(VrA, VrB 및 VrC)을 보여준다. 소정의 메모리 셀의 임계 전압이 VrA, VrB 및 VrC 보다 큰지 또는 작은지를 테스트함으로써, 시스템은 그 메모리 셀이 어느 상태에 있는 지를 결정할 수 있다. 메모리 셀이 그 제어 게이트에 인가된 VrA에 의해 도통된다면, 그 메모리 셀은 상태 E에 있게 된다. 메모리 셀이 VrB 및 VrC에서 도통되지만, VrA에서는 도통되지 않는 다면, 그 메모리 셀은 상태 A에 있게 된다. 메모리 셀이 VrC에서는 도통하지만, VrA 및 VrB에서는 도통되지 않는 다면, 그 메모리 셀은 상태 B에 있게 된다. 메모리 셀이 VrA, VrB 및 VrC에서 도통되지 않는 다면, 그 메모리 셀은 상태 C에 있게 된다. 도 8은 또한 3개의 검증 기준 전압들(VvA, VvB 및 VvC)을 나타낸다. 메모리 셀들을 상태(A)로 프로그램할 때, 시스템은 이러한 메모리 셀들이 VvA 보다 크거나 같은 임계 전압을 갖는 지를 테스트한다. 메모리 셀들을 상태(B)로 프로그램할 때, 시스템은 이러한 메모리 셀들이 VvB 보다 크거나 같은 임계 전압을 갖는 지를 테스트한다. 메모리 셀들을 상태(C)로 프로그램할 때, 시스템은 이러한 메모리 셀들이 VvC 보다 크거나 같은 자신들의 임계 전압을 갖는 지를 테스트한다.
도 12는 판독 또는 검증 프로세스를 한번 반복하는 동안 다양한 신호들의 작용을 도시하는 타이밍도이다. 도 12의 프로세스의 각각의 반복은 각 셀 메모리에 대한 단일 감지 동작을 나타낸다. 만일 메모리 셀들이 이진 메모리 셀들이라면, 도 12의 프로세스는 한번 수행될 수 있다. 메모리 셀들이 4개의 상태들(예를 들어, E, A, B 및 C)을 갖는 다중 상태 메모리 셀들이라면, 도 12의 프로세스는 각 메모리 셀에 대해 3번(3번의 감지 동작들) 수행될 수 있다.
일반적으로, 판독 및 검증 동작 동안, 선택된 워드라인(예를 들어, 도 3의 WL2)은 판독 기준 전압(Vcgr)에 연결되는데, 이 전압의 레벨은 관련된 메모리 셀의 임계 전압이 이러한 레벨에 도달했는 지를 결정하기 위해, 각각의 판독 및 검증 동작에 대해 특정된다. 선택된 블록의 선택 게이트들은 하나 이상의 선택 전압들로 올라가고, 선택된 블록의 비선택 워드라인들(예를 들어, 도 3의 WL0, WL1 및 WL3)은 판독 패스 전압(Vread)(예를 들어, 4.5V)로 올라감으로써, 트랜지스터들을 패스 게이트들로서 동작하게 한다. 워드라인 전압을 인가한 후, 메모리 셀의 도통 전류를 측정하여, 이러한 인가된 전압에 응답하여 그 메모리 셀이 턴온되었는 지를 결정한다. 도통 전류가 특정값 보다 큰 것으로 측정되면, 그 메모리 셀은 턴온되었으며, 상기 워드라인에 인가된 전압은 그 메모리 셀의 임계 전압 보다 큰 것으로 추정된다. 도통 전류가 특정값 보다 큰 것으로 측정되지 않으면, 그 메모리 셀은 턴온되지 않았으며, 상기 워드라인에 인가된 전압은 그 메모리 셀의 임계 전압 보다 크지 않은 것으로 추정된다.
판독 또는 검증 동안 메모리 셀의 도통 전류를 측정하는 많은 방법들이 있다. 일 예에서, 메모리 셀의 도통 전류는 그 메모리 셀이 감지 증폭기 내의 전용 캐패시터를 방전시키는 속도(rate)에 의해 측정된다. 다른 예에서, 선택된 메모리 셀의 도통 전류는 그 메모리 셀을 포함하고 있는 NAND 스트링으로 하여금 비트라인을 방전시킬 수 있게 하거나(또는 허용하지 않는다). 비트라인 상의 전하를 일정 시간 주기 이후 측정하여, 그 비트라인이 방전되었는 지의 여부를 확인한다.
도 12는 신호들(SGD, WL_unsel, WLn+1, WLn, SGS, Selected BL(선택된 BL), BLCLAMP, 및 Vss(약 0V)에서 시작하는 소스(Source))을 나타낸다. SGD는 드레인측 선택 게이트의 게이트 선택 라인이다. SGS는 소스측 선택 게이트의 게이트 선택 라인이다. WLn은 판독/검증을 위해 선택되는 워드라인이다. WLn+1은 WLn에 대해 드레인측 이웃 워드라인인 비선택 워드라인이다. WL_unsel은 드레인측 이웃 워드라인 이외의 비선택 워드라인들을 나타낸다. Selected BL은 판독/검증을 위해 선택되는 비트라인이다. 소스는 메모리 셀들에 대한 소스 라인이다(도 3 참조). BLCLAMP는 감지 증폭기로부터 충전될 때 비트라인의 값을 설정하는 아날로그 신호이다. 주목할 사항으로서, SGS, Selected BL 및 BLCLAMP의 두개의 변형들이 도시되어 있다. 이러한 신호들의 하나의 세트인 SGS(B), Selected BL (B) 및 BLCLAMP (B)는, 비트라인이 방전되었는 지의 여부를 결정함으로써 메모리 셀의 도통 전류를 측정하는 메모리 셀들의 어레이에 대한 판독/기록 동작을 도시한다. 이러한 신호들의 다른 세트인 SGS(C), Selected BL (C) 및 BLCLAMP (C)는, 메모리 셀이 감지 증폭기 내의 전용 캐패시터를 방전시키는 속도에 의해 그 메모리 셀의 도통 전류를 측정하는 메모리 셀들의 어레이에 대한 판독/기록 동작을 도시한다.
먼저, SGS(B), Selected BL (B) 및 BLCLAMP (B)와 관련하여, 비트라인이 방전되었는 지의 여부를 결정함으로써 메모리 셀의 도통 전류를 측정하는 것과 관련된 메모리 셀들의 어레이 및 감지 회로들의 작동에 대해 설명한다. 도 12의 시간(tl)에서, SGD는 VDD(예를 들어, 약 3.5V)로 올라가고, 비선택 워드라인들(WL_unsel)은 Vread(예를 들어, 5.5V)로 올라가고, 드레인측 이웃 워드라인(WLn+ 1)은 VreadX로 올라가고, 선택된 워드라인(WLn)은 판독 동작에 대해서는 Vcgr(예를 들어, 도 8, 9 및 10A-10C의 Vra, Vrb, 또는 Vrc)로 올라가거나, 또는 검증 동작에 대해서는 검증 레벨인 Vcgv(예를 들어, Vva, Vvb, 또는 Vvc)로 올라가고, BLCLAMP (B)는 선택된 비트라인 Selected BL (B)를 (예를 들어, 약 0.7V로) 프리챠지시키기 위해 프리챠징 전압으로 올라간다. Vread 및 VreadX는 패스 전압들로서 기능하고(그 이유는 이들이 (물리적인 상태 또는 임계 전압에 상관없이) 비선택 메모리 셀들을 턴온시키기 때문이다), 패스 게이트들로서 기능한다. 시간(t2)에서, BLCLAMP (B)는 Vss로 낮아지며, 이에 따라 NAND 스트링은 비트라인을 제어할 수 있다. 시간(t2)에서, 소스측 선택 게이트는 SGS (B)를 VDD로 올림으로써 턴온된다. 이는 비트라인 상의 전하를 방출(dissipate)시키기 위한 경로를 제공한다. 만일 판독을 위해 선택된 메모리 셀의 임계 전압이 선택된 워드라인(WLn)에 인가된 Vcgr 또는 Vcgv 보다 크다면, 신호 라인(260)에 의해 도시된 바와 같이, 그 선택된 메모리 셀은 턴온되지 않을 것이며, 비트라인은 방전되지 않을 것이다. 만일 판독을 위해 선택된 메모리 셀의 임계 전압이 선택된 워드라인(WLn)에 인가된 Vcgr 또는 Vcgv 보다 작다면, 신호 라인(262)에 의해 도시된 바와 같이, 판독을 위해 선택된 메모리 셀은 턴온될 것이며, 비트라인 전압은 저하될 것이다. (특정의 구현에 의해 결정되는), 시간(t2) 이후의 그리고 시간(t3) 이전의 어떠한 시점에서, 감지 증폭기는 비트라인이 충분한 양 만큼 방전되었는 지를 결정할 것이다. t2와 t3의 사이에서, BLCLAMP (B)은 감지 증폭기가 평가 대상의 BL 전압을 측정할 수 있도록 올라간 다음, 낮아진다. 시간(t3)에서, 도시된 신호들은 Vss(또는 스탠바이(standby) 또는 복구를 위한 다른 값)로 낮아질 것이다. 주목할 사항으로서, 다른 실시예들에서, 이러한 신호들중 일부의 타이밍은 변경될 수 있다(예를 들어, 이웃의 워드라인에 인가되는 신호를 시프트시킨다).
다음으로, SGS(C), Selected BL (C) 및 BLCLAMP (C)와 관련하여, 메모리 셀이 감지 증폭기 내의 전용 캐패시터를 방전시키는 속도에 의해 그 메모리 셀의 도통 전류를 측정하는 메모리 셀들의 어레이 및 감지 회로들의 작동에 대해 설명한다. 도 12의 시간(tl)에서, SGD는 VDD(예를 들어, 약 3.5V)로 올라가고, 비선택 워드라인들(WL_unsel)은 Vread(예를 들어, 5.5V)로 올라가고, 드레인측 이웃 워드라인(WLn+1)은 VreadX로 올라가고, 선택된 워드라인(WLn)은 판독 동작에 대해서는 Vcgr(예를 들어, 도 11의 Vra, Vrb, 또는 Vrc)로 올라가거나, 또는 검증 동작에 대해서는 Vcgv(예를 들어, 도 11의 Vva, Vvb, 또는 Vvc)로 올라가며, 그리고 BLCLAMP (C)가 올라간다. 이 경우, 감지 증폭기는 NAND 스트링의 상태가 어떻게 변화하는 지에 상관없이 비트라인 전압을 일정하게 유지(holding)시키며, 이에 따라 감지 증폭기는 그 전압으로 "클램프(claim)"된 비트라인에 흐르는 전류를 측정한다. 따라서, BLCLAMP (C)는 t1에서 올라간 다음, t1에서 t3까지 변하지 않는다. (특정의 구현에 의해 결정되는), 시간(t1) 이후의 그리고 시간(t3) 이전의 어떠한 시점에서, 감지 증폭기는 그 감지 증폭기 내의 캐패시터가 충분한 양 만큼 방전되었는 지를 결정할 것이다. t3에서, 도시된 신호들은 Vss(또는 스탠바이 또는 복구를 위한 다른 값)로 낮아질 것이다. 주목할 사항으로서, 다른 실시예들에서, 이러한 신호들중 일부의 타이밍은 달라질 수 있다.
도 13은 도 8, 9 또는 도 10A-10C의 기술들에 따라 프로그램된 것들과 같은 비휘발성 메모리 셀들로부터 데이터를 판독하기 위한 일 실시예를 설명하는 흐름도이다. 도 13은 시스템 레벨에서의 판독 프로세스를 제공한다. 단계(300)에서, 데이터 판독 요청을 수신한다. 단계(302)에서, 데이터 판독 요청에 응답하여, 특정 페이지에 대해 판독 동작이 수행된다. 일 실시예에서, 페이지에 대한 데이터가 프로그램될 때, 시스템은 에러 정정 코드(ECC)들에 대해 이용되는 추가의 비트(extra bit)들을 생성한 다음, 이러한 ECC 비트들을 그 데이터 페이지와 함께 기록한다. ECC 기술들은 당업계에 잘 알려져있다. 이용되는 ECC 프로세스는 당업계에 알려져있는 임의의 적절한 ECC 프로세스를 포함할 수 있다. 페이지로부터 데이터를 판독할 때, 단계(304)에서, ECC 비트들은 데이터 중에 어떠한 에러들이 있는 지를 결정하는 데에 이용될 수 있다. ECC 프로세스는 제어기, 상태 머신에 의해, 또는 시스템 내의 어떤 다른 곳에서 수행될 수 있다. 만일 데이터에 어떠한 에러도 없다면, 단계(306)에서, 그 데이터가 사용자에게 보고된다. 단계(304)에서 에러가 발견되면, 단계(308)에서, 그 에러가 정정가능한지를 결정한다. 이러한 에러는 플로팅 게이트 간의 결합 또는 다른 이유들로 인한 것일 수 있다. 다양한 ECC 방법들은 데이터의 세트 내의 소정 수의 에러들을 정정할 수 있는 능력을 갖는다. 만일 ECC 프로세스가 데이터를 정정할 수 있다면, 그 ECC 프로세스는 단계(310)에서 그 데이터를 정정하는 데에 이용되며, 정정된 데이터는 단계(312)에서 사용자에게 보고된다. 만일 데이터가 ECC 프로세스에 의해 정정가능하지 않다면, 단계(314)에서, 데이터 복구 프로세스가 수행된다. 어떠한 실시예들에서, ECC 프로세스는 단계(314) 이후 수행될 것이다. 데이터 복구 프로세스에 대한 보다 상세한 사항은 하기에서 설명된다. 데이터가 복구된 후, 그 데이터는 보고된다(단계 316). 단계(318)에서, 프로세스는 부가적인 페이지들이 판독될 것이라면 단계(302)로 되돌아가고, 그렇지 않으면 단계(320)에서 끝난다. 주목할 사항으로서, 도 13의 프로세스는 모든 비트라인 프로그래밍 또는 홀수/짝수 비트라인 프로그래밍으르 이용하여 프로그램되는 데이터에 대해 이용될 수 있다.
도 14는 페이지에 대해 판독 동작을 수행하는 프로세스(도 13의 단계 302)의 일 실시예를 설명하는 흐름도이다. 도 14의 프로세스는 블록의 모든 비트라인을 포함하거나, 블록의 홀수 비트라인들 만을 포함하거나, 블록의 짝수 비트라인들 만을 포함하거나, 또는 블록의 비트라인들의 다른 서브세트들을 포함하는 페이지에 대해 수행될 수 있다. 단계(320)에서, 판독 기준 전압(Vra)이 그 페이지와 관련된 적절한 워드라인에 인가된다. 단계(322)에서, 그 페이지와 관련된 비트라인들을 감지함으로써, 어드레스되는 메모리 셀들의 제어 게이트들에 Vra가 인가되는 것에 기초하여 이러한 메모리 셀들이 턴온되는지 아니면 턴온되지 않는 지를 결정한다. 도통하는 비트라인들은 메모리 셀들이 턴온되었음을 나타내며, 이에 따라 이러한 메모리 셀들의 임계 전압들은 (예를 들어, 상태 E에서) Vra 미만이다. 단계(324)에서, 비트라인들에 대한 감지 결과가 이러한 비트라인들에 대한 적절한 래치들(예를 들어, 래치들 202)에 저장된다. 단계(326)에서, 판독 기준 전압(Vrb)이 판독되고 있는 페이지와 관련된 워드라인들에 인가된다. 단계(328)에서, 상기 설명한 바와 같이 비트라인들이 감지된다. 단계(330)에서, 비트라인들에 대한 적절한 래치들 내에 결과들이 저장된다. 단계(332)에서, 판독 기준 전압(Vrc)이 그 페이지와 관련된 워드라인들에 인가된다. 단계(334)에서, 상기 설명한 바와 같이, 비트라인들을 감지하여 어떤 메모리 셀들이 턴온되는 지를 결정한다. 단계(336)에서, 감지 단계로부터의 결과들은 비트라인들에 대한 적절한 래치들 내에 저장된다. 단계(338)에서, 각 비트라인에 대한 데이터 값들이 결정된다. 예를 들어, 메모리 셀이 Vra에서 도통된다면, 그 메모리 셀은 상태 E에 있다. 메모리 셀이 Vrb 및 Vrc에서 도통되지만, Vra에서는 도통되지 않으면, 그 메모리 셀은 상태 A에 있다. 메모리 셀이 Vrc에서는 도통되지만, Vra 및 Vrb에서는 도통되지 않으면, 그 메모리 셀은 상태 B에 있다. 메모리 셀이 Vra, Vrb 또는 Vrc에서 도통되지 않으면, 그 메모리 셀은 상태 C에 있다. 일 실시예에서, 프로세서(162)에 의해 데이터 값들이 결정된다. 단계(340)에서, 프로세서(162)는 결정된 데이터 값들을 각 비트라인에 대한 적절한 래치들(예를 들어, 래치들 164)에 저장할 것이다. 다른 실시예들에서, 다양한 레벨들(Vra, Vrb 및 Vrc)의 감지는 다른 순서로 일어날 수 있다.
단계들(320-324)은, Vcgr=Vra 및 VreadX=Vread를 이용하여, 도 12에 도시된 동작을 수행하는 것을 포함할 수 있다. 단계들(326-330)은, Vcgr=Vrb 및 VreadX=Vread를 이용하여, 도 12에 도시된 동작을 수행하는 것을 포함할 수 있다. 단계들(332-336)은, Vcgr=Vrc 및 VreadX=Vread를 이용하여, 도 12에 도시된 동작을 수행하는 것을 포함할 수 있다.
플로팅 게이트 결합은 판독 동작들 동안 에러들을 야기할 수 있다. 메모리 셀의 플로팅 게이트 상에 저장된 전하는 외관상 시프트를 겪을 수 있는데, 이는 이웃하는 메모리 셀의 플로팅 게이트 또는 다른 전하 저장 영역(예를 들어, 유전체 전하 저장 영역)에 저장된 전하와 관련된 전계의 결합때문이다. 이론적으로, 메모리 어레이 내의 임의의 메모리 셀의 플로팅 게이트 상의 전하로부터의 전계는 그 어레이 내의 임의의 다른 메모리 셀의 플로팅 게이트에 영향을 미칠 수 있기는 하지만, 이전에 언급한 바와 바와 같이, 이러한 영향은 인접하는 메모리 셀들에 대해 가장 뚜렷하고 현저하다. 외관상 전하 시프트는, 메모리 셀의 메모리 상태를 판독할 때 에러들을 야기할 수 있다.
플로팅 게이트 결합의 영향은, 목표 메모리 셀에 인접하는 메모리 셀이 그 목표 메모리 셀 이후에 프로그램되는 상황들에서 가장 뚜렷하기는 하지만, 이러한 효과들은 다른 상황들에서도 나타날 수 있다. 인접하는 메모리 셀의 플로팅 게이트 상에 놓여지는 전하량 또는 이러한 전하량의 일부는 전계 결합을 통해 목표 메모리 셀에 효과적으로 결합될 것이며, 결과적으로 목표 메모리 셀의 임계 전압의 외관상 시프트를 야기한다. 메모리 셀의 외관상 임계 전압은 프로그램된 후 이러한 정도로 시프트될 수 있게 됨으로써, 프로그램될 것으로 의도되었던 메모리 상태에서 메모리 셀에 대해 기대되는 판독 기준 전압들의 인가하에서 턴온 및 턴오프(도통)되지 않게 된다.
전형적으로, 메모리 셀들의 로우들은 소스측 선택 게이트 라인에 인접하는 워드라인(WL0)에서 시작하여 프로그램된다. 이후, 프로그래밍은 셀들의 스트링들을 통해 워드라인(WL1, WL2, WL3 등)에 의해 순차적으로 진행되며, 이에 따라 이전의 워드라인(WLn)의 프로그래밍을 완료한 후(즉, 그 워드라인의 각 셀을 자신의 최종 상태가 되게 한 후), 인접하는 워드라인(WLn+1)에서 적어도 하나의 데이터 페이지가 프로그램된다. 이러한 프로그래밍 패턴은, 플로팅 게이트 결합으로 인해, 프로그래밍된 후 메모리 셀들의 임계 전압의 외관상 시프트를 야기한다. 프로그램될 NAND 스트링의 마지막 워드라인을 제외한 모든 워드라인에 있어서, 관심있는 워드라인의 프로그래밍이 완료된 다음에, 인접하는 워드라인이 프로그램된다. 보다 나중에 프로그램된 인접하는 워드라인 상의 메모리 셀들의 플로팅 게이트들에 부가되는 음 전하는 관심있는 워드라인 상의 메모리 셀들의 외관상 임계 전압을 올린다.
도 15는 플로팅 게이트 간의 결합의 개념을 도해적으로 설명한다. 도 15는 동일한 NAND 스트링 상에 있는 이웃하는 플로팅 게이트들(350 및 352)을 도시한다. 이러한 플로팅 게이트들(350 및 352)은, 소스/드레인 영역들(356, 358 및 360)을 갖는 웰 또는 기판과, NAND 채널/영역들(354) 윗쪽에 위치된다. 플로팅 게이트(350) 위에는, 워드라인(WLn)에 연결되고 그 일부인 제어 게이트(362)가 있다. 플로팅 게이트(352) 위에는, 워드라인(WLn+1)에 연결되고 그 일부인 제어 게이트(364)가 있다. 비록 플로팅 게이트(350)가 다수의 다른 플로팅 게이트들로부터의 결합에 영향을 받을 가능성이 있기는 하지만, 단순함을 위해, 도 15는 하나의 이웃 하는 메모리 셀로부터의 영향들 만을 나타낸다. 도 15는 그 이웃으로부터 플로팅 게이트(350)에 제공되는 결합 성분들, 즉 r1, r2 및 Cr을 나타낸다. 성분(r1)은 이웃하는 플로팅 게이트들(350 및 352) 간의 결합 비로서, 이는 이웃하는 플로팅 게이트들의 캐패시턴스를, 플로팅 게이트(350)를 둘러싸는 다른 모든 전극들에 대한 그 플로팅 게이트(350)의 모든 용량성 결합들의 합으로 나눔으로써 계산된다. 성분(r2)은 플로팅 게이트(350)와 드레인측 이웃 제어 게이트(364) 간의 결합 비로서, 이는 플로팅 게이트(350) 및 제어 게이트(364)의 캐패시턴스를, 플로팅 게이트(350)를 둘러싸는 다른 모든 전극들에 대한 플로팅 게이트(350)의 모든 용량성 결합들의 합으로 나눔으로써 계산된다. 성분(Cr)은 제어 게이트 결합 비로서, 이는 플로팅 게이트(352)와 그의 해당하는 제어 게이트(364) 간의 캐패시턴스를, 플로팅 게이트(352)를 둘러싸는 다른 모든 전극들에 대한 플로팅 게이트(352)의 모든 용량성 결합들의 합으로 나눔으로써 계산된다.
일 실시예에서, 요구되는 보상의 양(ΔVread)은, 선택된 워드라인(WLn)의 메모리 셀을 판독할 때에 다음과 같이 계산될 수 있다.
Figure 112011042721002-pct00001
여기서, ΔVTn+1은 WLn의 프로그램/검증의 시간과 현재 시간 간의 드레인측 이웃 메모리 셀의 임계 전압의 변경이다. ΔVTn+1 및 r1이 워드라인 간의 기생 결합 효과(word line to word line parasitic coupling effect)의 근본 원인(root cause)인데, 이는 본 방법에 의해 완화될 수 있다. ΔVread는 이러한 효과를 없애기 위해 유지되는 보상이다.
여기에서 설명되는 결합에 대한 보상은, 이웃하는 플로팅 게이트들 간의 동일한 기생 패캐시턴스 뿐 아니라, 플로팅 게이트와 이웃하는 제어 게이트 간의 캐패시턴스를 이용함으로써 달성될 수 있다. 제어 게이트/플로팅 게이트 스택은 전형적으로 하나의 식각 단계로 형성되기 때문에, 이러한 보상은 메모리 셀 간의 간격의 변동에 의존(track)한다. 따라서, 2개의 이웃들이 더 멀리 떨어져 있으면, 결합은 더 작아지게 되며, 이에 따라 이러한 효과에 대해 요구되는 보상은 당연히 더 작아지게 된다. 2개의 이웃들이 보다 가까이 있으면, 결합은 더 커지게 되며, 이에 따라 보상은 더 커지게 된다. 이는 비례적인 보상을 구성한다.
상기 설명한 보상은 또한 에치백 깊이(etch back depth)의 변동의 영향도 보상한다. 어떠한 디바이스들에 있어서, 제어 게이트는 플로팅 게이트를 부분적으로 둘러싸고 있다. 겹쳐지는 양은 "에치백"이라 불린다. 에치백 깊이에 있어서의 변화들은 결합의 양에 영향을 미칠 수 있다. 상기한 보상 기술에 의하면, 보상의 효과는 유사하게, 에치백 깊이에 의존하여 변화한다.
플로팅 게이트 간의 결합 효과를 줄일 수 있는 능력의 결과로서, 임계 전압 분포들 간의 마진들이 보다 작아지게 되거나, 또는 메모리 시스템이 보다 빠르게 프로그램될 수 있게 된다.
본 방법의 다른 중요한 장점은, WLn 그리고/또는 WLn+1 상의 전압들을 구동하는 디지털 아날로그 변환기들의 분해능(resolution)이 일부 종래 기술(이는 선택된 워드라인(WLn)에 인가되는 전압들을 변화시키는 것을 통해 보상을 달성한다)과 비교하여 정교(fine)할 필요가 없다는 것이다. 선택된 워드라인에 보상이 적용될 때에 보상에 요구되는 변화는 본 발명과 비교하여 훨씬 더 세밀히 구별(refine)되어야 하며, 본원 발명에서는 보상의 변화가 기생 결합들을 통해 간접적으로 작용하고, 그에 따라 Vread의 훨씬 더 거친(coarse) 분해능이 WLn 마지닝 전압(margining voltage)의 훨씬 더 정교한 등가의 분해능으로 변환된다.
도 16은 보상으로서 이웃 워드라인에 인가되는 판독 패스 전압에 있어서의 변화(ΔVread)를 이용하여 데이터를 복구하는(단계 620) 프로세스의 일 실시예를 설명하는 흐름도이다. 플로팅 게이트 간의 결합 효과(또는 다른 원인)으로 인해, 데이터는 에러를 포함할 수 있다. 도 16의 프로세스는 플로팅 게이트 간의 결합 효과(또는 에러의 다른 원인)를 보상하면서 데이터를 판독하고자 시도한다. 이러한 보상은 이웃하는 워드라인을 살펴보고, 이러한 이웃하는 워드라인의 프로그래밍이 플로팅 게이트 간의 결합 효과를 어떻게 생성하는 지를 결정하는 것을 포함한다. 예를 들어, 워드라인(WLn)(도 3의 WLn2) 상의 데이터를 판독할 때, 프로세스는 또한 워드라인(WLn+1)(도 3의 WL3)의 데이터도 판독할 것이다. 만일 워드라인(WLn+1) 상의 데이터가 WLn 상의 데이터의 외관상 변경을 야기했다면, 판독 프로세스는 이러한 의도적이지 않은 변경을 보상할 것이다.
도 16의 판독 프로세스에 따라 특정의 메모리 셀을 판독할 때, 인접하는 메모리 셀이 그 특정의 메모리 셀에 대해 갖는 결합 효과를 줄이기 위해 상기 인접하는 메모리 셀에 대해 보상이 제공된다. 이러한 실시예에서, WLn+1에 인가되는 패스 전압(Vread로서 알려져있음)은 전형적인 값(예를 들어, 6V)으로부터, 예를 들어 3V 로 감소될 수 있다. Vread를 3V를 줄이는 것은 도 8에 도시된 풀 시퀀스 구현들 또는 도 9에 도시된 상위/하위 페이지 구현들에 대해 적절하다. 도 10A-10C에 나타낸 구현이 이용될 때, Vread는 약 4.5V로 보다 작은 양 만큼 감소될 수 있는데, 그 이유는 이러한 구현들에서는 보상이 요구되는 플로팅 게이트 결합의 양이 보다 적기 때문이다.
보상은, 프로그램/검증 동작들의 검증 페이즈 동안 이용되었던 전압과 비교하여 더 높은 전압을, WLn 상에서 수행되는 판독 동작 동안 WLn+1에 인가하는 것을 포함한다. 이러한 보상은 변화/델타(change/delta): ΔVread = [[Vread(WLn의 판독 동안의 WLn+1) - Vread(WLn의 검증 동안의 WLn+1)]] 로 이루어질 수 있다. 검증 동안 보다 낮은 Vread를 이용하는 것의 장점은, 요구되는 ΔVread를 유지하면서, 판독 동작들 동안 Vread의 공칭 값(nominal value)들을 이후에 인가하는 것을 가능하게 한다는 것이다. 이것은 검증 동안 Vread의 정상 값(normal value) 보다 작은 값의 이용에 대한 것이 아니었기 때문에, 충분한 ΔVread의 인가를 가능하게 하는 판독 동안의 Vread의 필요한 값은, 예를 들어 6+3=9V 인데, 이는 판독 디스터브 상태(read disturb condition)를 야기할 수 있는 높은 전압이다. 이후의 보상에 대한 이러한 설정의 하나의 예는, 다른 비선택 워드라인들에 Vread를 인가하는 동안 드레인측 이웃 워드라인에 VreadX를 인가하는 것으로서 도 12에 도시된다. 종래의 많은 디바이스들에 있어서, 모든 비선택 워드라인들에 Vread를 인가한다. 도 12의 실시예에서, 드레인측 이웃을 제외한 모든 비선택 워드라인들에 Vread를 인가하는 바, 상기 드레인측 이웃에 VreadX를 인가한다.
도 16에 도시된 프로세스는, 하나의 논리 페이지의 2개의 비트들이 각 셀에 저장되고 함께 판독 및 보고되는, 도 8과 관련하여 상기 설명된 풀 시퀀스 프로그래밍에 적용된다. 만일 이웃하는 워드라인 상의 메모리 셀이 상태 E에 있다면, 어떠한 플로팅 게이트 간의 결합 효과도 없을 것이다. 만일 이웃하는 워드라인 상의 메모리 셀이 상태 A에 있다면, 작은 결합 효과가 있을 것이다. 만일 이웃하는 워드라인 상의 메모리 셀이 상태 B에 있다면, 중간의 플로팅 게이트 간의 결합 효과가 있을 것이다. 만일 이웃하는 워드라인 상의 메모리 셀이 상태 C에 있다면, 보다 큰 플로팅 게이트 간의 결합 효과가 있을 것이다. 이웃하는 워드라인으로 인한 정확한 결합 효과는 어레이 구현에 의해 달라지며, 디바이스를 특징화함으로써 결정된다.
도 16의 단계(370)는 이웃하는 워드라인(WLn+1)에 대해 판독 동작을 수행하는 것을 포함한다. 일 실시예에서, 이는 이웃하는 워드라인에 대해 도 14의 프로세스를 수행하는 것을 포함한다. 예를 들어, 워드라인(WL1) 내의 페이지가 판독되고 있으면, 단계(370)는 워드라인(WL2) 상에서 도 14의 프로세스를 수행하는 것을 포함한다. 단계(370)의 결과들은 단계(372)에서 적절한 래치들 내에 저장된다. 어떠한 실시예들에서, WLn+1에 대해 수행되는 판독 동작에 의해, WLn+1 상에 저장된 실제 데이터를 결정하게 된다. 다른 실시예들에서, WLn+1에 대해 수행된 판독 동작에 의해, WLn+1 상에서의 전하 레벨들을 결정하게 되는데, 이는 WLn+1 상에 저장된 데이터를 정확하게 반영하거나 또는 반영하지 못할 수도 있다.
단계(374)에서, 관심의 워드라인(WLn)에 대해 판독 동작이 수행된다. 이는 VreadX = Vread1 에 의해 도 14의 프로세스를 수행하는 것을 포함한다. 일 실시예에서, Vread1 = Vread 이다. 따라서, 모든 비선택 워드라인들(도 12의 WL_unsel 및 WLn+1 참조)에 Vread를 인가하게 된다. 이는 최대의 보상을 제공하는데, 그 이유는 판독 동작들 동안 WLn+1 상에서 이용되는 Vread 값과 프로그램/검증의 검증 페이즈 동안 이전에 이용된 Vread 값 간의 차이에 의해 보상이 결정되기 때문이다. 보상값(compC)은 다음과 같이 정해질 수 있다: compC = Vread1 - Vreadp = 5.5- 3 = 2.5V, 여기서 Vreadp는 프로그램/검증 동안 이용되는 Vread 값이다. 단계(374)의 결과들은, (단계 370에서) 이웃 셀(WLn+1)이 상태 C에 있는 것으로 결정되었던 메모리 셀들을 갖는 비트라인들에 대한 적절한 래치들에 저장된다. 따라서, 최대 보상(CompC)은, 상태 E로부터 상태 C로 프로그램됨으로써 그 드레인측 이웃들이 임계 전압에 있어서 가장 큰 변화를 경험한 셀들에 대해 관여(engage)된다. 주목할 사항으로서, 이러한 드레인측 이웃들은 WLn의 프로그램/검증 동안에는 상태 E에 있었지만, 이제는 상태 C에 있다. 모든 환경들 하에서 보상되어야 하는 것은, WLn의 기록 시간과 WLn 판독의 현재 시간 사이에 겪게 되는 WLn+1 상의 드레인측 이웃의 상태 변화이다. 드레인측 이웃들이 현재 상태 C에 있는 것으로 검출되지 않는 다른 비트라인들에 대해, WLn+1 상의 Vread1을 이용했던 이러한 WLn 판독의 데이터는 무시될 것이다.
단계(378)에서, WLn에 대해 판독 프로세스가 수행된다. 이러한 판독 프로세스 동안, 드레인측 이웃 워드라인(WLn+1)은 Vread2를 수신할 것이다. 즉, VreadX = Vread2 인데, 여기서 Vread2 는 Vread1 과 비교하여, 프로그래밍 동안 이용되는 Vreadp 와 가까운 값이다. 이는 드레인측 이웃들이 현재 상태 B에 있게 되는 셀들에 대해 적절한 보다 작은 보상량을 부여(deliver)한다. 보상량의 하나의 예는 compB = Vread2 - Vreadp = 4.9 - 3 = 1.9V 이다. 따라서, Vread2는 compB 만큼 Vreadp와 다르다. 단계(380)에서, 단계(378)의 결과들이, 이웃하는 메모리 셀들(예를 들어, WLn+1)이 상태 B에 있는 메모리 셀들을 갖는 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 무시될 것이다.
단계(382)에서, WLn에 대해 판독 프로세스가 수행된다. 이 판독 프로세스 동안, 드레인측 이웃 워드라인(WLn+1)은 Vread3을 수신할 것이다. 즉, VreadX = Vread3 인데, 여기서 Vread3 은 Vread2 와 비교하여, 프로그래밍 동안 이용되는 Vreadp 와 가까운 값이다. 이는 드레인측 이웃들이 현재 상태 A에 있게 되는 셀들에 대해 적절한 더욱 더 작은 보상량을 부여한다. 보상량의 하나의 예는 compA = Vread3 - Vreadp = 4.3 - 3 = 1.3V 이다. 따라서, Vread3은 compA 만큼 Vreadp와 차이가 난다. 단계(384)에서, 단계(382)의 결과들이, 이웃하는 메모리 셀들(예를 들어, WLn+1)이 상태 A에 있는 메모리 셀들을 갖는 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 무시될 것이다.
단계(386)에서, WLn에 대해 판독 프로세스가 수행된다. 이 판독 프로세스 동안, 드레인측 이웃 워드라인(WLn+1)은 Vread4를 수신할 것이다. 즉, VreadX = Vread4 인데, 여기서 Vread4 는 프로그래밍 동안 이용되는 Vreadp 와 값에 있어서 동일하다. 이는 드레인측 이웃들이 상태 E에 있는 셀들에 대해 적절한 어떠한 보상량도 부여하지 않는데, 그 이유는 이들이 프로그램/검증의 시간에 있었기 때문이다. 보상량은 compE = Vread4 - Vreadp = 3 - 3 = 0.0V 이다. 단계(388)에서, 단계(386)의 결과들이, 이웃하는 메모리 셀들(예를 들어, WLn+1)이 상태 E에 있는 메모리 셀들을 갖는 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 무시될 것이다. 도 16의 프로세스 동안, 이웃하는 비트라인에는 4개의 전압들이 인가되지만, 판독되고 있는 각각의 선택된 메모리 셀에는 단지 하나의 적절한 전압 만이 인가될 것이다.
다른 구현들에서는, 디바이스 특성, 실험 그리고/또는 시뮬레이션에 기초하여, Vread1, Vread2, Vread3 및 Vread4의 다른 값들이 결정될 수 있다.
상기 논의에서, 도 16의 프로세스는 도 13의 데이터 복구 단계(314)의 일부로서 수행된다. 다른 실시예에서, 도 16의 프로세스는 데이터 판독 요청에 응답하여 수행되는 최초 판독 프로세스로서 이용될 수 있다. 예를 들어, 도 13의 단계(300)에서 데이터 판독 요청을 수신한 후, 시스템은 단계(302)에서 판독 동작을 수행할 것이다. 이러한 실시예에서, 단계(302)는 도 16의 프로세스를 수행함으로써 구현된다. 단계(302)를 구현하기 위해 도 16의 프로세스를 이용하는 실시예는 부가적인 데이터 복구 단계(314)를 갖지 않을 수도 있으며, 이에 따라 에러가 교정가능하지 않은 경우, 시스템은 에러를 보고한다.
도 17은 프로그램될 마지막 워드라인을 제외한, 블록의 모든 워드라인들에 대해, 데이터 복구 프로세스(예를 들어, 도 16의 방법)가 수행될 수 있음을 나타내는 흐름도이다. 예를 들어, x개의 워드라인들이 있다면, 복구 프로세스는 워드라인들(WL0 내지 WLx-1)에 대해 이용될 수 있다. 워드라인(WLx)(예를 들어, 드레인에 가장 가까운 워드라인)에 대해 복구 프로세스를 수행하는 것이 반드시 필요한 것은 아닌데, 그 이유는 이 워드라인이 자신 다음에 프로그램된 어떠한 이웃(이것이 플로팅 게이트 간의 결합 효과를 야기하게 될 것이다)도 갖지 않기 때문이다. 비록 도 17이 모든 워드라인들에 대해 복구 프로세스가 순차적으로 수행되는 실시예를 나타내었지만, 도 13과 관련하여 상기 설명된 일 실시예에서, 이러한 복구 프로세스는 교정될 수 없는 ECC 에러들이 있는 경우에만 그리고 워드라인들에 대해 개별적인 시간들에 수행될 수 있다.
상기 설명된 도 14 및 16의 방법들은 도 8의 하나의 논리 페이지의 2 비트를 저장하는 풀 시퀀스 프로그래밍과 관련하여 설명되었다. 이러한 프로세스들은, 2개의 논리 페이지들 각각으로부터 하나의 비트를 저장하는 도 9의 2-단계 프로세스에 따라 프로그램된 데이터를 판독할 때에는 약간 변경될 수 있다. 예를 들어, 표준 판독 동작(예를 들어, 도 13의 단계 302)을 수행할 때, 하위 페이지를 판독하는 것은, 메모리 셀들의 제어 게이트들에 Vra 및 Vrc를 인가하고, 판독 포인트들을 감지하여 하위 페이지에 대하여 데이터가 상태(E/C)(데이터 1)에 있는지 아니면 상태(A/B)(데이터 0)에 있는 지를 결정하는 것을 필요로 한다. 따라서, 도 14는 하위 페이지 판독에 대해 단지 단계들(320, 322, 324, 332, 334, 336, 338 및 340) 만을 수행함으로써 변경될 수 있다. 상위 페이지의 판독을 수행하기 위해, 판독 비교 포인트(Vrb)를 이용하여, 상위 페이지 데이터가 상태(E/A)(데이터 1)에 있는지 아니면 상태(B/C)(데이터 0)에 있는 지를 결정할 수 있다. 따라서, 상위 페이지 판독에 대해, 도 14의 프로세스는 단계들(326, 328, 330, 338 및 340) 만을 수행하도록 수정될 수 있다. 부가적으로, 데이터를 복구할 때(단계 314), 프로세스는 하위 페이지에 대한 데이터를 복구하기 위한 도 18의 방법 및 상위 페이지에 대한 데이터를 복구하기 위한 도 19의 프로세스를 수행한다.
도 18의 단계(400)에서, 이웃하는 워드라인(WLn+1)에 대해 판독 동작이 수행된다. 일 실시예에서, 도 14의 방법이 단계(400)에서 수행된다. 어떠한 실시예들에서, WLn+1에 대해 수행되는 판독 동작에 의해, WLn+1 상에 저장된 실제 데이터가 결정된다. 다른 실시예들에서는, WLn+1에 대해 수행되는 판독 동작에 의해, WLn+1 상에서의 전하 레벨들(또는 다른 상태들)이 결정되는데, 이는 WLn+1 상에 저장된 데이터를 정확하게 반영하거나 또는 반영하지 않을 수도 있다. 이러한 판독 동작의 결과들은 단계(402)에서 적절한 래치들에 저장된다. 단계(404)에서, 관심의 워드라인(WLn)에 대해 판독 동작이 수행되는데, 이는 WLn에 인가되는 Vra 및 VreadX=Vread4 를 이용하여 도 12의 프로세스를 수행하는 것을 포함한다. 단계(406)에서, 비트라인들이 감지된다. 단계(408)에서, 적절한 래치들에 결과들이 저장된다. 단계(404)의 다른 실시예에서, 판독 프로세스는 VreadX=Vread1 을 이용하여 수행된다. 일 실시예에서, 단계(404)에서의 VreadX의 값은 검증 프로세스 동안 이용되는 것과 동일해야 한다.
단계(410)에서, 판독 기준 전압(Vrc)이 워드라인(WLn)에 인가되고, VreadX=Vread1 을 이용하여 관심의 워드라인(WLn)에 대해 판독 동작이 수행된다. 단계(412)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(414)에서, 감지 단계(412)의 결과들이 상태 C의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다.
단계(416)에서, 판독 기준 전압(Vrc)이 워드라인(WLn)에 인가되고, WLn+1에 대해 VreadX=Vread2 를 이용하여 관심의 워드라인(WLn)에 대해 판독 동작이 수행된다. 단계(418)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(420)에서, 단계(418)의 결과들이 상태 B의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 무시될 것이다.
단계(422)에서, 판독 기준 전압(Vrc)이 워드라인(WLn)에 인가되고, WLn+1에 대해 VreadX=Vread3 을 이용하여 관심의 WLn에 대해 판독 동작이 수행된다. 단계(424)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(426)에서, 단계(424)의 결과들이 상태 A의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 무시될 것이다.
단계(428)에서, 판독 기준 전압(Vrc)이 워드라인(WLn)에 인가되고, WLn+1에 대해 VreadX=Vread4 를 이용하여 WLn에 대해 판독 동작이 수행된다. 단계(430)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(432)에서, 단계(430)의 결과들이 상태 E의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 무시될 것이다.
단계(434)에서, 프로세서(162)는 감지 단계들로부터 저장된 데이터에 기초하여 데이터 값들을 결정할 것이다. 단계(436)에서, 단계(434)로부터 결정된 데이터 값들은 데이터의 판독을 요청하는 사용자에게 궁극적으로 전달하기 위해 래치들 내에 저장될 것이다. 다른 실시예에서, 상태 A와 관련된 단계들(404-408)은 단계들(432 및 434) 사이에서 수행될 수 있다. 또한, 도 18의 단계들 뿐 아니라 다 른 흐름도들의 단계들을 수행하는 다른 순서들도 이용될 수 있다.
주목할 사항으로서, 도 18에 의해 설명되는 프로세스에서, 보상은 상태 C로부터 상태 B를 구별하기 위해 Vrc에 대해서만 적용된다. Vra에서 판독할 때에는 보상이 필요하지 않은 것으로 가정하는데, 이는 일반적으로 소거 상태의 음의 임계 전압은 (비록 WLn+1에 의해 영향을 받기는 하지만) 상태 A로부터 충분히 멀리 분리되어 교정을 요구하지 않기 때문이다. 이것이 현재 세대 메모리들에 대해 실용적인 가정이기는 하지만, 이것은 미래 세대 메모리들에 대해서는 그렇지 않을 수도 있으며, Vrc와 관련하여 설명된 보상 프로세스들은 Vra에 대해 이용될 수도 있다.
단계(434)에서 데이터 값들을 결정할 때, 메모리 셀이 Vra에 반응하여 도통되면, 하위 페이지 데이터는 "1"이다. 메모리 셀이 Vra에 반응하여 도통하지 않고, Vrc에 반응해서도 도통하지 않으면, 하위 페이지 데이터는 마찬가지로 "1"이다. 메모리 셀이 Vra에 반응하여 도통하지 않지만, Vrc에 반응하여 도통한다면, 하위 페이지 데이터는 "0"이다.
도 19의 프로세스는 상위 페이지에 대한 데이터를 판독 또는 복구하는 데에 이용된다. 단계(450)에서, 이웃하는 워드라인(WLn+1)에 대해 판독 동작이 수행된다. 어떠한 실시예들에서, WLn+1에 대해 수행되는 판독 동작에 의해, WLn+1 상에 저장된 실제 데이터가 결정된다. 다른 실시예들에서는, WLn+1에 대해 수행되는 판독 동작에 의해, WLn+1 상에서의 전하 레벨들이 결정되는데, 이는 WLn+1 상에 저장된 데이터를 정확하게 반영하거나 또는 반영하지 않을 수도 있다. 단계(452)에서, 단계(450)의 결과들이 비트라인들 각각에 대해 래치들에 저장된다.
단계(454)에서, 판독 기준 전압(Vrb)이 워드라인(WLn)에 인가되고, WLn+1에 대한 VreadX=Vread1 을 이용하여 WLn에 대해 판독 동작이 수행된다. 단계(456)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(458)에서, 단계(456)의 결과들이 상태 C의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 폐기(discard)될 것이다.
단계(460)에서, 판독 기준 전압(Vrb)이 워드라인(WLn)에 인가되고, WLn+1에 대한 VreadX=Vread2 를 이용하여 WLn에 대해 판독 동작이 수행된다. 단계(462)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(464)에서, 단계(462)의 결과들이 상태 B의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 폐기될 것이다.
단계(466)에서, 판독 기준 전압(Vrb)이 워드라인(WLn)에 인가되고, WLn+1에 대한 VreadX=Vread3 을 이용하여 WLn에 대해 판독 동작이 수행된다. 단계(468)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(470)에서, 단계(468)의 결과들이 상태 A의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 폐기될 것이다.
단계(472)에서, 판독 기준 전압(Vrb)이 워드라인(WLn)에 인가되고, WLn+1에 대한 VreadX=Vread4 를 이용하여 WLn에 대해 판독 동작이 수행된다. 단계(474)에서, 상기 설명한 바와 같이 데이터가 감지된다. 단계(476)에서, 단계(474)의 결과들이 상태 E의 데이터를 저장하는 이웃 셀들과 관련된 비트라인들에 대해 저장될 것이다. 다른 비트라인들에 대한 데이터는 폐기될 것이다.
단계(478)에서, 프로세서(162)는 저장되어 있는 감지된 데이터에 기초하여 데이터 값들을 결정한다. 메모리 셀이 Vrb에 반응하여 턴온된다면, 상위 페이지 데이터는 "1"이다. 메모리 셀이 Vrb에 반응하여 턴온되지 않는 다면, 상위 페이지 데이터는 "0"이다. 단계(480)에서, 프로세서(162)에 의해 결정되는 데이터 값들은 사용자에게 전달하기 위해 데이터 래치들에 저장된다.
다른 실시예에서는, 데이터를 복구하기 위해 도 18 및 19의 방법들을 이용하는 것이 아니라, 도 18 및 19의 방법들은 데이터 판독 요청에 반응하여 수행되는 최초의 데이터 판독들에 대해 이용될 수 있다. 예를 들어, 도 13의 단계(300)에서 데이터 판독 요청을 수신한 후, 시스템은 단계(302)에서 판독 동작을 수행할 것이다. 이러한 실시예에서, 단계(302)는 도 18 그리고/또는 도 19의 프로세스를 수행함으로써 구현된다. 단계(302)를 구현하기 위해 도 18 그리고/또는 도 19의 프로세스를 이용하는 실시예는 부가적인 데이터 복구 단계(314)를 갖지 않을 수도 있으며, 이에 따라 에러가 정정가능하지 않은 경우, 시스템은 에러를 보고한다.
도 18 및 도 19는 도 9의 상위 페이지 및 하위 페이지 프로세스를 이용하여 프로그램되는 데이터를 판독하기 위한 것이다. 도 18 및 도 19의 두 방법들은 모든 비트라인 프로그래밍 또는 홀수/짝수 비트라인 프로그래밍에 의해 프로그램되는 데이터를 판독하는 데에 이용될 수 있다. 모든 비트라인 프로그래밍과 함께 이용될 때, 모든 비트라인들은 전형적으로 동시에 판독된다. 홀수/짝수 비트라인 프로그래밍과 함께 이용될 때, 짝수 비트라인들은 전형적으로 최초에 동시에 판독되고, 전형적으로 홀수 비트라인들은 그것과는 다른 시간에 동시에 판독된다.
도 20 내지 도 25는 도 10A 내지 도 10C와 관련된 방법에 따라 프로그램되는 데이터를 판독하는 데에 이용되는 프로세스들을 설명한다. 도 20의 프로세스는, ECC들을 이용하는 것과 독립적으로 그리고/또는 ECC들을 이용하는 것과 관련하여, 이전의 데이터의 하나 이상의 특정의 페이지들(또는 다른 그룹들)에 대한 판독 요청에 반응하여 수행되는 데이터를 판독하는 전체 프로세스로서 구현될 수 있다. 다른 실시예들에서, 도 20의 프로세스는 도 13의 데이터 복구 단계(314)의 일부로서 수행될 수 있다. 도 10A-도 10C의 프로세스에 따라 프로그램되는 데이터를 판독할 때, 이웃하는 셀들의 하위 페이지를 프로그램하는 것으로 인한 플로팅 게이트 간의 결합으로부터의 임의의 변동(perturbation)은 문제의 메모리 셀의 상위 페이지를 프로그램할 때에 정정되어야 한다. 따라서, 이웃하는 셀들로부터의 플로팅 게이트 간의 결합 효과를 보상하고자 시도할 때, 프로세스의 일 실예는 이웃하는 셀들의 상위 페이지의 프로그래밍으로 인한 결합 효과 만을 고려하기만 하면 된다. 따라서, 도 20의 단계(500)에서, 프로세스는 이웃하는 워드라인에 대한 상위 페이지 데이터를 판독한다. 이웃하는 워드라인의 상위 페이지가 프로그램되지 않았다면(단계 502), 판독 대상의 페이지는 플로팅 게이트 간의 결합 효과를 보상하지 않으면서 판독될 수 있다(단계 504). 이웃하는 워드라인의 상위 페이지가 프로그램되었다면(단계 502), 판독 대상의 페이지는 플로팅 게이트 간의 결합 효과에 대한 어떠한 보상을 이용하여 판독되어야 한다(단계 506). 어떠한 실시예들에서, 이웃하는 워드라인에 대해 수행되는 판독 동작에 의해, 이러한 이웃하는 워드라인 상에서의 전하 레벨들이 결정되는데, 이는 그 위에 저장된 데이터를 정확하게 반영하거나 또는 반영하지 않을 수도 있다. 또한, 주목할 사항으로서, 판독되어야 하는 선택된 워드라인(즉, WLn) 자체는 하위 페이지 데이터 만을 포함할 수도 있다. 이는, 전체 블록이 아직 프로그램되지 않았을 때에 일어날 수 있다. 이러한 상황에서는, WLn+1 상의 셀들이 여전히 소거되도록 항상 보장되는 바, 이에 따라 어떠한 결합 효과도 WLn 셀들을 괴롭히지 않는다(즉, WLn 셀들은 어떠한 결합 효과의 영향도 받지 않는다). 이는 어떠한 보상도 요구되지 않음을 의미한다. 따라서, 그 상위 페이지가 여전히 프로그램되어야 하는 워드라인의 하위 페이지 판독은 어떠한 보상 기술도 필요로 하지 않으면서 여느 때와 같이 진행될 수 있다.
일 실시예에서, 도 10A-10C의 프로그래밍 프로세스를 구현하는 메모리 어레이는 하나 이상의 플래그들을 저장하기 위해 메모리 셀들의 세트를 지정(reserve)할 것이다. 예를 들어, 메모리 셀들의 하나의 컬럼은 메모리 셀들의 각각의 로우들의 하위 페이지가 프로그램되었는 지의 여부를 나타내는 플래그들을 저장하는 데에 이용될 수 있고, 메모리 셀들의 다른 컬럼은 메모리 셀들의 각각의 로우들의 상위 페이지가 프로그램되었는 지의 여부를 나타내는 플래그들을 저장하는 데에 이용될 수 있다. 어떠한 실시예들에서는, 리던던트 셀(redundant cell)들을 이용하여 플래그의 카피(copy)들을 저장할 수 있다. 적절한 플래그를 체크함으로써, 이웃하는 워드라인에 대한 상위 페이지가 프로그램되었는 지의 여부를 결정할 수 있다. 이러한 플래그 및 프로그래밍을 위한 프로세스에 대한 보다 상세한 사항들은, 명칭이 "Semiconductor Memory Device For Storing Multi-Valued Data"인 Shibata 등의 미 국 특허 6,657,891호에서 찾아볼 수 있으며, 이는 그 전체가 본원의 참조로서 인용된다.
도 21은 드레인측 이웃과 같은 이웃하는 워드라인에 대한 상위 페이지 데이터를 판독하는 프로세스(도 20의 단계 500)의 일 실시예를 설명한다. 단계(510)에서, 판독 기준 전압(Vrc)이 판독되고 있는 페이지와 관련된 워드라인에 인가된다. 단계(512)에서, 비트라인이 상기 설명한 바와 같이 감지된다. 단계(514)에서, 단계(512)의 결과들이 적절한 래치들에 저장된다. 단계(516)에서, 시스템은 판독되고 있는 페이지와 관련된 상위 페이지 프로그래밍을 나타내는 플래그를 체크한다. 일 실시예에서, 이러한 플래그를 저장하는 메모리 셀은, 그 플래그가 설정되어 있지 않으면 데이터를 상태 E로 저장하고, 플래그가 설정되어 있으면 데이터를 상태 C로 저장한다. 따라서, 단계(512)에서 특정 메모리 셀이 감지될 때, 이 메모리 셀이 도통(턴온)되면, 이 메모리 셀은 데이터를 상태 C로 저장하지 않고 있으며, 플래그가 설정되어 있지 않다. 메모리 셀이 도통되지 않으면, 단계(516)에서, 그 메모리 셀이 상위 페이지가 프로그램되었음을 나타내고 있다고 추정된다.
다른 실시예에서, 플래그는 바이트 내에 저장될 수 있다. 모든 비트들을 상태 C로 저장하는 것이 아니라, 바이트는 고유의(unique) 8-비트 코드(이는 플래그를 나타내고 상태 머신(312)에게 알려져있다)를 포함할 것이며, 이에 따라 이러한 8-비트 코드는 상태 E의 적어도 하나의 비트와, 상태 A의 적어도 하나의 비트와, 상태 B의 적어도 하나의 비트와, 그리고 상태 C의 적어도 하나의 비트를 갖는다. 만일 상위 페이지가 프로그램되지 않았으면, 메모리 셀들의 바이트는 모두 상태 E 에 있게 될 것이다. 만일 상위 페이지가 프로그램되었으면, 메모리 셀들의 바이트는 상기의 코드를 저장할 것이다. 일 실시예에서, 단계(516)는 이러한 코드를 포함하고 있는 바이트의 메모리 셀들중 임의의 것이 Vrc에 반응하여 턴온되지 않는 지를 체크함으로써 수행된다. 다른 실시예에서, 단계(516)는 플래그를 포함하는 메모리 셀들의 바이트를 어드레싱 및 판독하고, 데이터를 상태 머신에 전송하는 것을 포함하는데, 이는 메모리 셀들 내에 저장된 코드가 상태 머신에 의해 기대되는 코드와 일치하는 지를 검증할 것이다. 일치한다면, 상태 머신은 상위 페이지가 프로그램되었다고 결론을 내린다.
만일 플래그가 설정되지 않았으면(단계 518), 도 21의 프로세스는 상위 페이지가 프로그램되지 않았다는 결론과 함께 끝나게 된다. 플래그가 설정되었으면(단계 518), 상위 페이지가 프로그램된 것으로 추정되고, 단계(522)에서, 판독되고 있는 페이지와 관련된 워드라인에 전압(Vrb)이 인가된다. 단계(524)에서, 상기 설명한 바와 같이 비트라인들이 감지된다. 단계(526)에서, 단계(524)의 결과들이 적절한 래치들에 저장된다. 단계(528)에서, 판독되고 있는 페이지와 관련된 워드라인에 전압(Vra)이 인가된다. 단계(530)에서, 비트라인들이 감지된다. 단계(532)에서, 단계(530)의 결과들이 적절한 래치들에 저장된다. 단계(534)에서, 프로세서(162)는 3개의 감지 단계들(512, 524 및 530)의 결과에 기초하여, 판독되고 있는 메모리 셀들 각각에 의해 저장되는 데이터 값들을 결정한다. 단계(536)에서, 단계(534)에서 결정된 데이터 값들이 궁극적으로 사용자에게 전달하기 위해 적절한 데이터 래치들에 저장된다. 단계(534)에서, 프로세서(162)는 선택되는 특정의 상태 코딩에 의존하는 잘 알려져있는 간단한 논리 기술들을 이용하여 상위 페이지 데이터 및 하위 페이지 데이터의 값들을 결정한다. 예를 들어, 도 10A-10C에서 설명된 코딩에 대해, 하위 페이지 데이터는 Vrb* (Vrb에서 판독할 때에 저장된 값의 보수(complement))이고, 상위 페이지 데이터는 Vra*OR (Vrb AND Vrc*)이다.
일 실시예에서, 도 21의 프로세스는 드레인측 이웃 워드라인에 Vread를 인가하는 것을 포함한다. 이에 따라, 도 21의 프로세스에 대해, VreadX = Vread 이다. 도 21의 프로세스의 다른 실시예에서, VreadX = Vread4 이다.
도 22는 시스템이 이웃하는 워드라인으로부터의 플로팅 게이트 간의 결합을 보상할 필요가 없을 때, 고려되고 있는 워드라인의 데이터를 판독하기 위한 프로세스(도 20의 단계 504)의 일 실시예를 설명하는 흐름도이다. 단계(550)에서, 이러한 판독이 고려되고 있는 워드라인과 관련된 상위 페이지에 대한 것인지, 아니면 하위 페이지에 대한 것인 지가 결정된다. 만일 판독이 하위 페이지에 대한 것이라면, 단계(552)에서, 판독되고 있는 페이지와 관련된 워드라인에 전압(Vrb)이 인가된다. 단계(554)에서, 비트라인들이 감지된다. 단계(556)에서, 감지 단계(554)의 결과들이 적절한 래치들에 저장된다. 단계(558)에서, 플래그를 체크하여, 그 페이지가 상위 페이지 데이터를 포함하고 있는 지를 결정한다. 어떠한 플래그도 없다면, 현재의 임의의 데이터는 중간 상태에 있을 것이며, Vrb는 사용하기에 부적절한 비교 전압임을 의미한다. 계속해서, 프로세스는 단계(560)에서 워드라인에 Vra가 인가된다. 단계(562)에서 비트라인들이 재감지되고, 단계(564)에서 결과가 저장된다. 단계(566)에서, 프로세서(162)는 저장될 데이터 값을 결정한다. 일 실시예에서, 하위 페이지를 판독할 때, 메모리 셀이 워드라인에 인가되고 있는 Vrb(또는 Vra)에 반응하여 턴온되면, 하위 페이지 데이터는 "1"이고, 그렇지 않으면 하위 페이지 데이터는 "0"이다.
페이지 어드레스가 상위 페이지에 해당하는 것으로 결정되면(단계 550), 상위 페이지 판독 어드레스가 수행된다(단계 570). 일 실시예에서, 단계(570)의 상위 페이지 판독 프로세스는 도 21에서 설명된 동일한 방법을 포함하는 바, 이는 플래그 및 3개의 모든 상태를 판독하는 것을 포함하는데, 그 이유는 기록되지 않은 상위 페이지가 판독을 위해 또는 다른 이유로 어드레스될 수 있기 때문이다.
일 실시예에서, 도 22의 프로세스는 드레인측 이웃 워드라인에 Vread를 인가하는 것을 포함한다. 따라서, 도 22의 프로세스에 대해 VreadX = Vread 이다. 도 21의 프로세스의 다른 실시예에서, VreadX = Vread4 이다.
도 23은 플로팅 게이트 간의 결합을 보상하면서 데이터를 판독하기 위한 프로세스(도 20의 단계(506) 참조)의 일 실시예를 설명하는 흐름도이다. 도 23의 단계(580)에서, 시스템은 플로팅 게이트 간의 결합에 대한 보상을 이용할 것인 지를 결정한다. 이는 각 비트라인에 대해 개별적으로 수행된다. 적절한 프로세서(162)는 이웃하는 워드라인들로부터의 데이터에 기초하여 어느 비트라인들이 보상을 이용할 필요가 있는 지를 결정할 것이다. 만일 이웃하는 워드라인이 상태 E 또는 B에 있다면(또는 상태 E 또는 B를 명백히 나타내는 전하를 갖는다면), 판독되고 있는 특정의 워드라인은 플로팅 게이트 간의 결합 효과를 보상할 필요가 없다. 만일 이웃하는 워드라인이 상태 E에 있다면, 이는 어떠한 결합에도 기여하지 않는 것으로 추정하는데, 이는 현재 워드라인이 기록된 이후 임계치가 변화하지 않았기 때문이다. 만일 이웃하는 워드라인이 상태 B에 있다면, 이는 B'로부터 변화된 것이고, B'로부터 B로의 이동은 작으며, 무시될 수 있다. 다른 실시예에서, 상태 B'로부터 상태 B로의 작은 변화는 비례하는 작은 ΔVread를 인가함으로써 보상될 수 있다.
일 실시예에서, 단계(580)의 프로세스는 단계(500)와 동시에 수행될 수 있다. 예를 들어, 도 24는 특정의 비트라인에 대해 오프셋(offset)을 이용할 것인 지의 결정을 수행하기 위한 단계들을 설명하는 챠트를 제공한다. 제 1 단계는 워드라인 상의 Vra를 이용하여 판독 프로세스를 수행하는 것이다. 제 2 단계는 Vrb를 이용하여 판독을 수행하는 것이다. Vra에서 판독할 때, 래치는 메모리 상태가 상태 E에 있을 때에는 1을 저장하고, 메모리 셀이 상태 A, B, C에 있을 때에는 0을 저장한다. Vrb에서 판독할 때, 래치는 메모리 상태가 상태 E 및 A에 있을 때에는 1을 저장하고, 메모리 셀이 상태 B 및 C에 있을 때에는 0을 저장한다. 도 24의 제 3 단계는 제 1 단계로부터의 결과들과 제 2 단계로부터의 인버트된 결과들에 대해 XOR 연산을 수행하는 것을 포함한다. 제 4 단계에서, 워드라인에서 Vrc를 이용하여 판독이 수행된다. 래치는 상태 E, A 및 B에 대해서는 1을 저장하고, 상태 C에 대해서는 0을 저장한다. 제 5 단계에서, 제 4 단계 및 제 3 단계의 결과들이 논리 AND 연산에 의해 연산된다. 주목할 사항으로서, 제 1, 2 및 4 단계는 도 21의 일부로서 동작할 수 있다. 도 2의 제 3 및 5 단계는 전용 하드웨어에 의해 또는 프로세서(162)에 의해 수행될 수 있다. 제 5 단계의 결과들이 래치에 저장되는 바, 어떠한 보상도 필요하지 않을 때에는 1이 저장되고, 보상이 필요할 때에는 0이 저 장된다. 따라서, A 또는 C 상태의 WLn+1 상의 이웃하는 메모리 셀들을 갖는 WLn 상에서 판독되는 셀들에 대해 보상이 요구될 것이다. WLn+1로부터 풀 데이터를 저장하는 어떠한 이전의 방법들이 2개 이상의 래치들을 필요로 하는 것과 대조적으로, 이러한 시도는 WLn을 교정할 것인 지를 결정하는 데에 단지 하나의 래치 만을 요구한다.
이전에 설명한 바와 같이, 도 10A-10C의 프로그래밍 기술을 구현하는 일 실시예에서, WLn에 대한 프로그램 검증 동안 WLn+1에 인가되는 보다 낮은 Vreadp는 약 4.5V로 낮아질 수 있다. 이웃하는 메모리 셀이 상태 E 또는 B에 있는 경우와 같이, WLn에서 판독할 때에 플로팅 게이트 결합에 어떠한 보상도 적용하지 않기 위해, VreadX = Vread4가 WLn+1에 적용될 수 있는데, 여기서 Vread4는 WLn에 대한 프로그램 검증 동안 WLn+1에 인가되었던 Vreadp (4.5V)와 같다. 만일 상태 B에 있는 이웃 셀들을 보상하기 위한 구현에서 작은 보상이 이용되어야 한다면, 0.5V의 보상을 달성하기 위해 약 5V의 VreadX가 WLn+1에 인가될 수 있다. 도 23 및 25에서, 이러한 이동에 대한 보상은 도시되지 않았지만, 설명된 바와 같이 적용될 수 있다. 상태 A 또는 상태 C에 있는 이웃 메모리 셀에 기초하여 보상을 적용하기 위해, VreadX = Vread3이 WLn+1에 적용될 수 있는데, 여기서 Vread3은 약 6V와 같다. 이는 1.5V (6V-4.5V) 보상을 제공할 것이다.
도 23의 단계(582)를 참조하면, 판독되고 있는 페이지가 상위 페이지인지 아니면 하위 페이지인지를 결정한다. 판독되고 있는 페이지가 하위 페이지이면, 단계(1204)의 판독 프로세스 동안, 판독되고 있는 페이지와 관련된 워드라인(WLn)에 Vrb가 인가되고, 드레인측 이웃 워드라인(WLn+1)에 Vread4가 인가된다. 주목할 사항으로서, 도 10A-10C에서 설명된 상태 코딩에 대해, Vrb에서의 판독은 하위 페이지 데이터를 결정하기에 충분하다. 단계(588)에서, 단계(586)로부터의 감지 결과들이 비트라인들과 관련된 적절한 래치들에 저장된다. 단계(590)에서, 판독 프로세스 동안, 판독되고 있는 페이지에 대한 워드라인(WLn)에 Vrb가 인가되고, 드레인측 이웃 워드라인(WLn+1)에 Vread3이 인가된다(도 12 참조). 단계(592)에서, 비트라인들이 감지된다. 단계(594)에서, 단계(592)의 감지 결과들을 이용하여, 단계(580)에서 보상을 이용하는 것으로 결정되었던 비트라인들에 대해 단계(588)에서 저장된 결과들을 오버라이트(overwrite)한다. 만일 특정의 비트라인이 보상을 이용하지 말아야 하는 것으로 결정되면, 단계(592)로부터의 데이터는 저장되지 않는다. 단계(596)에서, 프로세서(162)는 하위 페이지에 대한 데이터가 1인지 아니면 0인지를 결정할 것이다. 메모리 셀이 Vrb에 반응하여 턴온되면, 하위 페이지 데이터는 1이고, 그렇지 않으면, 하위 페이지 데이터는 0이다. 단계(598)에서, 하위 페이지 데이터는 사용자에게 전달하기 위해 적절한 래치들에 저장된다.
단계(582)에서, 판독되고 있는 페이지가 상위 페이지인 것으로 결정되면, 단계(600)에서 상위 페이지 정정 프로세스가 수행된다. 도 25는 이러한 상위 페이지 정정 프로세스를 설명하는 흐름도를 제공한다. 도 25의 단계(610)에서, 판독 프로세스의 일부로서 판독 기준 전압(Vrc)이 판독되고 있는 페이지와 관련된 워드라인에 인가되고, Vread4가 드레인측 이웃 워드라인(WLn+1)에 인가된다. 단계(612)에서, 비트라인들이 감지된다. 단계(614)에서, 감지 단계의 결과들이 적절한 래치들에 저장된다. 단계(616)에서, 판독 프로세스의 일부로서 Vrc가 판독되고 있는 페이지와 관련된 워드라인에 인가되고, Vread3이 드레인측 이웃 워드라인(WLn+1)에 인가된다. 단계(618)에서, 비트라인들이 감지된다. 단계(620)에서, 감지 단계(618)의 결과들을 이용하여, 보상이 요구되는 임의의 비트라인(단계 580 참조)에 대해 단계(614)에서 저장된 결과들을 오버라이트한다.
단계(622)에서, 판독 프로세스의 일부로서 Vrb가 워드라인에 인가되고, Vread4가 드레인측 이웃 워드라인(WLn+1)에 인가된다. 단계(624)에서, 비트라인들이 감지된다. 단계(626)에서, 감지 단계(624)의 결과들이 저장된다. 단계(628)에서, 판독 프로세스의 일부로서 Vrb가 판독되고 있는 페이지와 관련된 워드라인에 인가되고, Vread3이 드레인측 이웃 워드라인(WLn+1)에 인가된다. 단계(630)에서, 비트라인들이 감지된다. 단계(632)에서, 감지 단계(630)의 결과들을 이용하여, 보상이 요구되는 비트라인들(단계 580 참조)에 대해 단계(626)에서 저장된 결과들을 오버라이트한다.
단계(634)에서, 판독 프로세스의 일부로서 Vra가 판독되고 있는 페이지와 관련된 워드라인에 인가되고, Vread4가 드레인측 이웃 워드라인(WLn+1)에 인가된다. 단계(636)에서, 비트라인들이 감지된다. 단계(638)에서, 감지 단계(618)의 결과들이 적절한 래치들에 저장된다. 단계(640)에서, 판독 프로세스의 일부로서 Vra가 판독되고 있는 페이지와 관련된 워드라인에 인가되고, Vread3이 드레인측 이웃 워드라인(WLn+1)에 인가된다. 단계(642)에서, 비트라인들이 감지된다. 단계(644)에서, 단계(642)의 결과들을 이용하여, 보상이 요구되는 비트라인들(단계 580 참조)에 대해 단계(638)에서 저장된 결과들을 오버라이트한다. 단계(646)에서, 프로세서(162)는 이전에 설명된 종래에 알려진 다른 방법과 동일한 방법으로 데이터 값들을 결정한다. 단계(648)에서, 프로세서(162)에 의해 결정된 데이터 값들은 사용자에게 통지하기 위해 적절한 데이터 래치들에 저장된다. 다른 실시예들에서, 판독의 순서(Vra, Vrb, Vra)는 바뀔 수 있다.
도 20과 관련된 상기 논의에서는, 데이터 페이지의 판독을 수반하는 예가 설명되었다. 반드시 요구되는 것은 아니지만, 데이터 판독 요청이 다수의 데이터 페이지들의 판독을 요구할 가능성이 있다. 일 실시예에서, 다수의 데이터 페이지들을 판독하는 프로세스의 속도를 높이기 위해, 판독 프로세스는 사용자가 이전 페이지 데이터를 옮기는(transfer out) 동안 상태 머신이 다음 페이지 감지를 실행하도록 파이프라이닝(pipelining)될 것이다. 이러한 구현에서는, 플래그 페치 프로세스(flag fetch process)가 이러한 파이프라인된 판독 프로세스를 인터럽트(interrupt)할 수 있다. 이러한 인터럽션을 피하기 위해, 일 실시예는, (플래그를 판독한 다음, 이 플래그를 상태 머신에 전송하는 것이 아니라), 소정의 페이지가 판독될 때 그 소정의 페이지에 대한 플래그를 판독하고, 이 플래그를 체크하기 위해 와이어드-OR 검출 프로세스를 이용하는 것을 포함한다. 예를 들어, (이웃하는 워드라인을 판독하는) 도 20의 단계(500)에서, 프로세스는 먼저 기준 전압으로서 Vrc를 이용하여 데이터를 판독한다. 이 시점에서, 만일 와이어드-OR 라인이 각 상태가 데이터 1을 저장하고 있음을 나타내면, 상위 페이지는 프로그램되지 않았으며, 이에 따라 어떠한 보상도 필요하지 않고, 시스템은 플로팅 게이트 간의 결합을 보상하지 않으면서 판독할 것이다(단계 504). 만일 플래그가 각 데이터 상태의 데이터를 포함하는 1-바이트 코드인 경우, 그 플래그가 설정되어 있다면, 적어도 플래그 메모리 셀들은 상태 C의 데이터를 가질 것이다. 만일 와이어드-OR 라인이 어떠한 메모리 셀들도 상태 C의 데이터를 갖지 않음을 나타내면, 상태 머신은 플래그가 설정되지 않았다고 결론을 내리며, 이에 따라 이웃하는 워드라인에 대한 상위 페이지는 프로그램되지 않았으며, 플로팅 게이트 결합에 대한 보상이 요구되지 않는다. 파이프라이닝 판독을 수행하는 것에 대한 보다 많은 정보는, 2005년 4월 5일 발명자 Jian Chen에 의해 출원되었으며 그 명칭이 "Compensating for Coupling During Read Operations of Non-Volatile Memory"인 미국 특허 출원 11/099,133호에서 찾아볼 수 있다.
WLn 상의 데이터를 판독하는 것이 목적일 때, WLn+1의 ECC 정정 판독을 할 필요가 없으며(왜냐하면 잘못 판독된 비트들은 아마도 대부분 분포들의 꼬리부(tail)에 있기 때문이다), 그리고 이들을 착각할 필요가 없는데, 그 이유는 다른 데이터 상태에 속하게 되는 것이 WLn 상의 해당 셀(들)을 판독하기 위해 요구되는 보상량을 결정하는 데에 있어서 큰 에러를 야기하지 않기 때문이다. 예를 들어, 상태 B로 프로그램되는 것으로 의도되었던 WLn+1 상의 약간 오버 프로그램된 셀(slightly over programmed cell)(이는 이후 WLn+2의 프로그래밍 동안 용량성 결합 효과를 겪게 된다)은, WLn+1이 WLn의 판독 프로세스의 일부로서 보상없이 판독될 때(도 16의 단계 370)에 상태 C에 있는 것으로서 잘못 판독될 수 있다. 이러한 잘못된 판독(즉, 오판독)(misreading)은 다음의 이유들로 인해, 즉 1) WLn+1 상의 데이터를 판독하지 않는 것이 목적이고, 2) WLn+1 상의 셀의 외관상 상태(상태 C)에 기초하여 해당 셀의 판독에 적용되는 정정이, WLn+1 상의 셀의 정확한 판독, 즉 상태 B에 기초했었던 것 보다 실제로 더 나은 정정이라는 이유로 인해, 문제가 되지 않을 수도 있다. 이는, 상태 C에 있는 것으로 잘못 판독되는 WLn+1 상의 셀에 대한 모든 원인들은, 이들이 첫 번째 장소(first place)에서의 오버 프로그래밍(over-programming)이건, 아니면 WLn+2 셀로부터의 이후의 결합이건 간에, 작용하여 보다 강한 결합 효과(이는 WLn+1 셀에 의해 야기되어, WLn 셀에 의해 겪게 된다)를 야기하기 때문이다. WLn 상의 셀에 의해 겪게 되는 이러한 보다 강한 결합에 직면하게 되면, 상태 B가 아닌, 상태 C에 있는 WLn+1 셀에 해당하는 정정을 적용하는 것이 실제로 더 나을 수 있다.
어떠한 경우들에 있어서, 이웃하는 워드라인(WLn+1)의 메모리 셀의 현재의 외관상 상태를 잘못 판독하는 것은, 선택된 워드라인에 대한 판독 동작들에 대해 부정적인 영항을 미칠 수 있다. 따라서, 일 실시예는 이웃하는 워드라인을 판독하기 위한 마지닝된 판독 기준 전압들을 제공한다. 마지닝된 값들은, 이웃하는 워드라인에서 감지할 때에는 보다 정확한 결과들을 제공하고, 그리고/또는 이러한 정보에 기초하여 선택된 워드라인을 판독할 때에는 결과들을 개선할 수 있다. 상기 설명한 바와 같이, WLn+1을 판독할 때의 목적은 WLn+1의 메모리 셀들에 의해 저장된 실제 데이터를 결정하는 것이 아니라, WLn을 판독할 때에 존재하는 WLn+1의 메모리 셀들의 외관상 상태를 결정하는 것이다. WLn+1을 프로그래밍한 이후 WLn+1의 셀들의 임계 전압의 어떠한 변경은 WLn에 대한 데이터를 판독하는 때를 검출하는 데에 유익한데, 그 이유는 이러한 변경이 WLn에 대한 즉각적인(immediate) 판독 동작 동안 WLn에서의 셀들의 외관상 임계 전압에 영향을 미치기 때문이다. WLn을 판독할 때 적절한 보상을 제공하기 위해 WLn+1을 판독하기 위한 개념에서 이용되는 오판독이, WLn을 판독할 때에 존재하는 WLn+1의 셀들의 외관상 상태를 오판독하는 것을 참조(refer)한다는 것을 주목하는 것이 중요하다. 이것은, WLn+1 판독이 아닌, WLn 판독의 궁극적인 목적인, 셀 내에 원래 프로그램되었던 데이터를 오판독하는 것과는 다르다. WLn을 판독하고자 시도할 때, 원래 프로그램되었던 실제 상태로 분류(categorize)하는 것이 아니라, WLn+1의 셀들의 외관상 상태를 분류하는 것이 중요하다.
선택된 워드라인(WLn)을 판독하는 것의 일부로서 수행되는 드레인측 이웃 워드라인(WLn+1)에 대한 판독 프로세스를 고려한다. 워드라인(WLn+1)이 프로그램되었으면, 이 WLn+1을 검증할 때에, 판독 패스 전압(Vreadp)이 워드라인(WLn+2)(WLn+1의 드레인측 이웃 워드라인)에 인가된다. Vreadp는 낮은 판독 패스 전압이다. 이전에 설명한 바와 같이, 어떠한 실시예들에서, Vreadp는 Vread4와 같을 수 있다. 이러한 Vreadp의 낮은 값은, 이웃하는 셀의 상태에 기초하여 판독 패스 전압을 Vreadp로부터 Vread3, Vread2 또는 Vread1 중 어느 하나로 증가시킴으로써, 이후의 판독 동작들 동안 보상을 가능하게 한다.
Vreadp의 낮은 값은 드레인측 상의 패스 전압으로서 이용될 수 있는데, 그 이유는 프로그램 검증 동안, 드레인측 이웃 워드라인은 완전히 프로그램되지 않도록 보장되기 때문이다. 풀 시퀀스(도 8) 또는 표준의 상위/하위 페이지 프로그래밍(도 9)의 경우, WLn+2는 소거될 것이다. 도 10A-10C의 프로그래밍 기술에 있어서, 드레인측 이웃 워드라인은 기껏해야 부분적으로 프로그램된다. 따라서, 낮은 판독 패스 전압은, WLn+1의 셀들을 검증할 때에 WLn+2의 메모리 셀들이 온(on)되도록 보장하는 데에 충분하다.
WLn을 판독하기 위해 WLn+1에서 보상되지 않은 판독 동작을 이후 수행할 때, 보다 큰 값의 판독 패스 전압이 WLn+2에 대해 이용될 수 있다. WLn+1을 판독할 때, WLn+2 상의 메모리 셀들의 상태는 이들의 프로그래밍의 결과로서 변경될 수 있다. 이러한 셀들은 이제 임의의 프로그램된 상태에 있게 되며, 프로그래밍 동안 존재하는 보장(guarantee)들이 더 이상 적용가능하지 않게 된다. 따라서, 보다 큰 판독 패스 전압이 인가됨으로써, 상태에 상관없이, 모든 메모리 셀이 턴온되도록 보장한다. 전형적으로, (Vcgr을 받는) WLn+1을 제외한 모든 워드라인은 WLn에서의 보상되지 않는 판독 동안 Vread를 받을 것이다. Vread는 모든 셀들의 도통을 보장하기 위해 자신의 가장 높은 값으로 설정될 것이다. 예를 들어, Vread1과 같은 Vread가 이용될 수 있다.
WLn+1의 셀들을 검증하고 판독하는 것의 사이에 WLn+2에 인가되는 판독 패스 전압의 변화는 WLn+1의 메모리 셀들의 외관상 임계 전압에 있어서의 음(negative)의 시프트를 야기할 수 있다. WLn+2에서의 워드라인 전압의 일부는 프로그램 검증 및 판독 동안 WLn+1에서의 메모리 셀들의 플로팅 게이트들에 결합될 것이다. WLn+2에서의 워드라인 전압의 양(positive)의 증가는 검증과 판독 사이에 일어나기 때문에, WLn+1의 메모리 셀들의 임계 전압은 감소하는 것으로 보일 수 있다.
외관상 임계 전압에 있어서의 이러한 타입의 변경은 도 26에 도시되어 있는 바, 도 26은 메모리 어레이의 특정의 워드라인에 연결된 것들과 같은 메모리 셀들의 세트에 대한 임계 전압들의 분포를 도시한다. 메모리 셀들의 세트는 각 메모리 셀을 상태 E, 상태 A, 상태 B, 또는 상태 C가 되도록 하기 위해 프로그래밍을 받는다. 분포(701)는 상태 E의 메모리 셀들의 임계 전압들의 분포이다. 분포(702)는 상태 A의 메모리 셀들의 임계 전압들의 분포이다. 분포(706)는 상태 B의 메모리 셀들의 임계 전압들의 분포이다. 분포(710)는 상태 C의 메모리 셀들의 임계 전압들의 분포이다. 분포들(701, 702, 706 및 710)은 프로그래밍을 완료했을 때의 실제 임계 전압 분포들을 나타낸 것으로서, 이는 프로그래밍 동작을 위해 메모리 셀들을 검증하는 감지 증폭기에 의해 확인된다.
도 26에서, 제 2 세트의 분포들은 파선으로 도시되어 있다. 이러한 임계 전압들의 분포는 메모리 셀들의 임계 전압들을 나타낸 것으로서, 이는 프로그래밍 및 검증 이후에 수행되는 판독 동작 동안 감지 증폭기에 의해 확인될 수 있다. 보다 구체적으로, 제 2 세트의 분포들은 선택된 워드라인(WLn)을 판독하기 위한 정보를 결정할 때에 보상없이 판독되는 이웃 워드라인(WLn+1)의 메모리 셀들의 외관상 임계 전압들을 나타낸다. 분포(700)는 상태 A에 있는 메모리 셀들의 외관상 임계 전압들을 나타낸다. 분포(704)는 상태 B에 있는 메모리 셀들의 외관상 임계 전압들을 나타낸다. 분포(708)는 상태 C에 있는 메모리 셀들의 외관상 임계 전압들을 나타내다. 제 2 분포가 소거 상태 E에 대해서 도시되지는 않았지만, 이 상태도 외관상 임계 전압들에 있어서 유사한 시프트를 겪을 수 있다.
제 2 세트의 외관상 임계 전압 분포들은 제 1 세트의 실제 임계 전압 분포들과 비교하여 시프트 다운된다. 이웃하는 워드라인(WLn+1)을 판독할 때, 그 이웃하는 워드라인(WLn+2)에 인가되는 보다 큰 판독 패스 전압은 WLn+1의 메모리 셀들의 외관상 임계 전압들을 감소시킬 수 있다. 워드라인(WLn+2)에 인가되는 보다 큰 양(positive)의 바이어스의 일부는 WLn+1의 메모리 셀들의 플로팅 게이트에 용량적으로 결합될 것이다. WLn+2에서의 보다 큰 양의 전압에 기초하는 이러한 용량적인 결합은 WLn+1에서의 메모리 셀들의 외관상 임계 전압을 감소시킬 수 있다.
도 26은 본 개시의 일 실시예에 따른 판독 기준 전압들에 대한 두 세트의 레벨들을 도시한다. 도 26에서, 판독 기준 전압들의 값들은 선택된 워드라인(WLn)을 판독하는 데에 이용되는 레벨들 아래로 마진된다. 프로그램된 상태 A에 해당하는 판독 기준 전압(Vra)의 제 1 값(Vra1)은 선택된 워드라인을 판독할 때에 이용된다. 선택된 워드라인을 판독할 때에 이용되는 정보를 결정하기 위해 이웃하는 워드라인을 판독할 때, 판독 기준 전압(Vra)의 제 2 값(Vra2)이 이용된다. 상태 B에 해당하는 판독 기준 전압(Vrb)의 제 1 값(Vrb1)은 선택된 워드라인(WLn)을 판독할 때에 이용된다. 워드라인(WLn+1)을 판독할 때, 판독 기준 전압(Vrb)의 제 2 값(Vrb2)이 이용된다. 프로그램된 상태 C에 해당하는 판독 기준 전압(Vrc)의 제 1 값(Vrc1)은 선택된 워드라인(WLn)을 판독할 때에 이용된다. 제 2 값(Vrc2)은, 선택된 워드라인을 판독하는 프로세스의 일부로서 이웃 워드라인(WLn+1)를 판독할 때에 이용된다.
도 27은 마지닝된 판독 기준 전압들을 이용하는 이웃하는 워드라인에 대한 판독 동작의 원리들을 도시한다. 도 27은 메모리 셀들의 블록의 선택된 워드라인(WLn)을 판독하기 위한 단계들을 도시하는 흐름도이다. 단계(660)에서, 데이터 판독 요청이 수신된다. 요청되는 데이터에 해당하는 어드레스들의 범위는 워드라인(WLn)에 저장된 데이터를 포함한다. 단계(662)에서, WLn+1에서의 메모리 셀들로부터의 정보는 판독 기준 전압들에 대한 제 1 세트의 값들을 이용하여 감지된다. 예를 들어, 일 실시예에서는, 판독 기준 전압 레벨들(Vra2, Vrb2 및 Vrc2)이 이용된다. 단계(664)에서, 제 1 패스 전압이 블록의 각각의 비선택 워드라인에 인가된다. 단계(666)에서, 판독되고 있는 선택된 워드라인(WLn)과 인접하는 워드라인(WLn+1)에 제 2 패스 전압이 제 1 레벨로 인가된다.
이후, 단계(668)에서, 판독 기준 전압들에 대한 제 2 세트의 레벨들을 이용하여, WLn에서의 판독 동작이 수행된다. 예를 들어, Vra1, Vrb1 및 Vrc1(각각 상태 A, B 및 C에 해당함)이 선택된 워드라인 및 각각의 인가시 감지되는 비트라인에 인가될 수 있다. 하기 좀더 상세히 설명되는 바와 같이, WLn+1에서 이용되는 제 1 세트의 레벨들은 선택된 워드라인(WLn)에서 이용되는 레벨들 보다 위 또는 아래로 마지닝될 수 있다.
일 실시예에서, 단계들(664, 666 및 668)을 반복적으로 되풀이함으로써, 4개의 서브 판독(sub-read)들이 수행된다. 각 반복 동안, 워드라인(WLn)에 대한 워드라인(WLn+1)의 플로팅 게이트 결합 효과에 기초하여 보상을 제공하기 위해 비트라인들의 도통을 감지하면서, 단계(666)에서, 제 2 패스 전압의 다른 값이 WLn+1에 인가된다. 제 1 값은 상태 E의 WLn+1의 메모리 셀들에 해당한다. 제 2 값은 상태 A의 WLn+1의 메모리 셀들에 해당한다. 제 3 값은 상태 B의 WLn+1의 메모리 셀들에 해당한다. 제 4 값은 상태 C의 WLn+1의 메모리 셀들에 해당한다. 단계(670)에서, WLn 데이터가 저장된다. 상태 E의 WLn+1에서 이웃하는 메모리 셀을 갖는 비트라인들에 대해, 제 2 패스 전압을 제 1 값으로 인가하면서 단계(668)에서의 감지 결과들이 저장된다. 상태 A의 WLn+1에서 이웃하는 메모리 셀을 갖는 비트라인들에 대해, 제 2 패스 전압을 제 2 값으로 인가하면서 단계(668)에서의 감지 결과들이 저장된다. 상태 B의 WLn+1에서 이웃하는 메모리 셀을 갖는 비트라인들에 대해, 제 2 패스 전압을 제 3 값으로 인가하면서 단계(668)에서의 감지 결과들이 저장된다. 상태 C의 WLn+1에서 이웃하는 메모리 셀을 갖는 비트라인들에 대해, 제 2 패스 전압을 제 4 값으로 인가하면서 단계(668)에서의 감지 결과들이 저장된다.
도 27은 WLn에서의 한 세트의 판독 기준 전압 레벨들 및 WLn+1에서의 다른 세트의 이용을 도시하는 개요이다. 도 28은 일 실시예에 따라 선택된 워드라인(WLn)에 대한 판독 프로세스의 일부로서 이웃 워드라인의 판독의 특정한 프로세스를 도시하는 흐름도이다. 일 실시예에서, 도 28의 방법은 도 16의 단계(370), 도 18의 단계(400) 및 도 19의 단계(450)에 대해 수행될 수 있다.
단계(750)에서, 상태 A 판독 기준 전압의 마지닝된 값(Vra2)이 WLn+1에 인가된다. Vra2가 WLn+1에 인가되는 동안, 판독 패스 전압(Vread)이 선택된 블록의 나머지 워드라인 각각에 인가된다. 판독 동작 동안, 패스 전압을 받는 임의의 프로그램된 셀들이 턴온되어, WLn+1에서의 셀들의 감지가 가능해지도록 보장하기 위해, Vread의 보다 큰 값(전형적으로, Vread1)을 이용한다. Vread1은, WLn+1의 프로그래밍을 검증할 때 이용되는 판독 패스 전압 보다 더 큰 판독 패스 전압이다. Vreadp 의 보다 낮은 판독 패스 전압(예를 들어, Vread4)은 이전에 설명한 바와 같이 검증 동안 이용되었다. Vra2의 전압 레벨은, 판독 패스 전압에 있어서의 증가와 관련된 결합 효과들을 보상하도록 선택된다.
단계(752)에서, 비트라인들을 감지하여, 어드레스되는 메모리 셀들이 자신들의 제어 게이트에 Vra2가 인가될 때에 도통되는 지를 결정한다. 도통되는 비트라인은 그 비트라인의 어드레스되는 메모리 셀이 도통되며, 이에 따라 (예를 들어, 상태 E에서) Vra2 아래의 임계 전압을 가짐을 나타낸다. 단계(754)에서, 비트라인들의 감지 결과가 이러한 비트라인들을 위한 적절한 래치들에 저장된다.
단계(756)에서, 상태 B 판독 기준 전압의 마지닝된 값(Vrb2)이 WLn+1에 인가되며, Vread가 각각의 나머지 워드라인에 인가된다. 단계(758)에서, Vra2 판독 기준 전압 레벨이 인가에 대해, 상기 설명한 바와 같이 비트라인들이 감지된다. 단계(760)에서, 결과들이 비트라인들에 대한 적절한 래치들에 저장된다. 단계(762)에서, 상태 C 판독 기준 전압의 마지닝된 값(Vrc2)이 WLn+1에 인가되며, Vread가 각각의 나머지 워드라인에 인가된다. 단계(764)에서, 비트라인들을 다시 감지하여, 어떤 것이 도통이 됨으로써, 인가된 레벨(Vrc2) 미만의 임계 전압을 갖는 셀을 나타내는 지를 결정한다. 단계(766)에서, 결과들이 비트라인들에 대한 적절한 래치들에 저장된다.
단계(768)에서, 각 비트라인에 대한 데이터 값들이 결정된다. Vrb2 및 Vrc2에서는 도통되지만, Vra2에서는 도통되지 않는 셀은 상태 A에 있다. Vrc2에서는 도통되지만, Vrb2 및 Vra2에서는 도통되지 않는 셀은 상태 B에 있다. 만일 셀이 인가 되는 판독 기준 전압 값들중 어느 것에서도 도통되지 않으면, 그 셀은 상태 C에 있다. 일 실시예에서, 데이터 값들은 프로세서(162)에 의해 결정된다. 단계(770)에서, 프로세서(162)는 결정된 데이터 값들을 각 비트라인에 대한 적절한 래치들에 저장한다. 도 28에서, WLn+1에 대한 실제 데이터 값들이 결정된다. 다른 실시예들에서, 마지닝된 판독 기준 전압들에 의해 이웃 워드라인을 판독하게 되면, WLn+1에 대한 전하 레벨들 또는 다른 상태 정보를 결정할 수 있는데, 이는 WLn+1 상에 저장된 데이터를 정확하게 반영하거나 또는 반영하지 않을 수도 있다.
이웃하는 워드라인의 상위 페이지 판독을 수행할 때, 도 21과 관련하여 설명된 것과 유사한 기술들이 이용될 수 있다. 이웃하는 워드라인의 상위 페이지 판독은, 도 10A-10C에 도시된 기술에 따라 프로그램되었던 선택된 워드라인을 판독하는 프로세스의 일부로서 수행될 수 있다. 단계(510)에서의 상태 C 판독 기준 전압, 단계(522)에서의 상태 B 판독 기준 전압, 그리고/또는 단계(528)에서의 상태 A 판독 기준 전압을 인가할 때, 마지닝된 기준 전압들이 이용될 수 있다. 예를 들어, 일 실시예에서는, 기준 전압들(Vra2, Vrb2 그리고/또는 Vrc3)이 이용될 수 있다.
선택된 워드라인에 이웃하는 워드라인에 대한 판독 기준 전압들은 서로 다른 실시예들에서 다양한 방식들로 마지닝될 수 있다. 예를 들어, 이웃하는 워드라인(예를 들어, WLn+1)에 인가되는 판독 기준 전압들의 값들은, 도 26에 도시된 선택된 워드라인(WLn)에 인가되는 레벨들 보다 낮은 레벨들로 마지닝될 수 있다. 다른 실시예에서, 이웃하는 워드라인에 인가되는 값들은 선택된 워드라인에 인가되는 레벨들 보다 높은 레벨들로 마지닝된다. 예를 들어, 소거되는 분포의 셀들은 시간에 따라 외관상 또는 실제 임계 전압에 있어서 증가하게 된다. (예를 들어, 동일한 워드라인의) 다른 셀들을 프로그램하게 되면, 소거되는 셀들의 전압을 의도하지 않게 시프트시킴으로써, 이러한 셀들에 대해 소거 동작이 수행될 때 보다 더 높은 전압들에서의 분포를 야기할 수 있게 된다. 이에 따라, 이웃하는 워드라인을 판독할 때의 상태 A에 대한 판독 기준 전압은, 선택된 워드라인을 판독할 때에 이용되는 기준 전압과 비교할 때 시프트업(shift up)될 수 있다.
(예를 들어, Vra, Vrb 및 Vrc와 같은) 판독 기준 전압들의 세트 내의 임의의 수의 판독 기준 전압들이 WLn+1 판독을 위해 마지닝될 수 있다. 예를 들어, 마지닝된 값은 하나의 기준 전압(예를 들어, Vra) 또는 두개의 기준 전압(예를 들어, Vrb 및 Vrc)에 대해서만 이용될 수 있다. 일부 판독 기준 전압들을 보다 높은 레벨들로 마지닝하고, 나머지 판독 기준 전압들은 보다 낮은 레벨들로 마지닝하는 것과 같은 다른 결합들이 또한 이용될 수 있다.
이웃하는 워드라인에 인가되는 판독 기준 전압들의 마지닝된 값들은 다른 값들 또는 파라미터들에 대해 마지닝될 수 있다. 예를 들어, 일 실시예는 선택된 워드라인(WLn)에 인가되는 해당하는 판독 기준 전압의 값을 조정함으로써, 이웃하는 워드라인에 대한 마지닝된 판독 기준 전압을 제공한다. 예를 들어, Vra2는 Vra1 등의 레벨로부터 오프셋될 수 있다. 다른 실시예들에서, 이웃하는 워드라인에 대한 판독 기준 전압(들)은 기준 전압에 이웃하는 상태들의 임계 전압들에 대해 마지닝된다. 마지닝되는 값들에 대한 보다 상세한 사항들은 하기에서 제공된다.
도 26에서, 판독 기준 전압들에 대한 제 2 세트의 레벨들은 WLn에서 시용되는 제 1 세트의 레벨들에 대해 상대적으로 마지닝된다. Vra2는 Vra1로부터 특정량 만큼 오프셋되고, Vrb2는 Vrb1로부터 특정량 만큼 오프셋되며, 그리고 Vrc2는 Vrc1로부터 특정량 만큼 오프셋된다. 이러한 오프셋들은 각 상태에 대해 동일할 수도 있고, 동일하지 않을 수도 있다. 예를 들어, Vra2는, Vrb1으로부터의 Vrb2의 오프셋 이상 만큼, Vra1로부터 오프셋될 수 있다.
도 29는 WLn을 판독할 때에 이용되는 최초의 판독 기준 전압에 기초하지 않는 판독 기준 전압들을 마지닝하는 실시예를 도시한다. 보유 손실(retention loss) 및 리랙세이션(relaxation)(임계 전압에 있어서의 양의 시프트)와 같은 요인(factro)들이 메모리 셀로부터의 상태 판독에 영향을 줄 수 있다. 전형적으로, WLn의 셀에 저장된 데이터를 판독할 것이 요구될 때, 이용되는 판독 기준 레벨들은 이러한 요인들이 셀들로부터 판독되는 상태에 영향을 주지 않도록 선택된다. 판독 동작은 이러한 보유 손실 또는 리랙세이션을 검출할 것을 필요로 하지 않는데, 그 이유는 판독 동작은 셀이 처음에 프로그램되었던 상태를 결정할 것을 필요로 하기 때문이다. 하지만, WLn에 대한 적절한 보상을 제공하기 위해 WLn+1에서 판독할 때, 이러한 요인들로 인한 임계 전압의 변경을 검출하는 것이 요구될 수 있다. 이를 테면, WLn+1의 셀의 외관상 상태 또는 임계 전압이 그 셀이 프로그램된 이후 시프트된다면, 이러한 시프트를 검출하는 것(또는 그 셀의 현재의 외관상 상태를 검출하는 것)이 유익하다. 이러한 시프트는 WLn의 셀들의 외관상 임계 전압에 영향을 미칠 것이다. WLn에 대해 실제 데이터가 요구되기 때문에, WLn+1에서의 시프트를 고려하는 보상을 제공하게 되면, WLn에서 보다 나은 결과들이 얻을 수 있게 된다.
도 29는 메모리 셀들의 프로그램된 세트에 대한 임계 전압 분포들(701, 702, 706 및 710)과, 그리고 시프트된 분포들(700, 704 및 708)을 도시한다. 또한, Vra1 상태 A 판독 기준 전압, Vrb1 상태 B 판독 기준 전압 및 Vrc1 상태 C 판독 기준 전압이 도시되어 있다. 도 29는 또한 상태들 각각 간의 평균(mean) 임계 전압 레벨을 도시한다. 이러한 평균 임계 레벨은 하기 설명되는 다양한 방법들로 정의될 수 있다. Vma는 상태들 E 및 A에 해당하는 평균 임계 전압이다. Vmb는 상태들 A 및 B에 해당하는 평균 임계 전압이다. Vmc는 상태들 B 및 C에 해당하는 평균 임계 전압이다.
이웃하는 워드라인(WLn+1)을 감지할 때에 이용되는 판독 기준 전압 레벨들은 상태 A에 대해 Vra2, 상태 B에 대해 Vrb2 및 상태 C에 대해 Vrc2에 도시되어 있다. 이러한 판독 기준 전압들은 상기 언급한 평균 임계 전압 레벨들(Vma, Vmb 및 Vmc)에 대해 마지닝된다. 이는, 도 26에서의 이웃하는 워드라인에 대한 판독 기준 전압 레벨들의 제 2 세트와 대비되어야 한다. 도 26의 실시예에서, 판독 기준 전압 레벨들의 제 2 세트는 판독 기준 전압들의 제 1 세트에 대해 마지닝되었다. 이는 상기 설명한 바와 같이 어떠한 방식들에서 중요한 것으로 입증되었다.
선택된 워드라인을 판독할 때에 이용되는 판독 기준 전압 레벨들은 인접하는 메모리 상태 전압 분포들 간의 중심점(midpoint)에 제공되지 않을 수도 있다. 예를 들어, 도 21에서, Vrb 및 Vrc 각각은 보다 낮은 상태 전압 분포에 더 가까운 레벨로 제공된다. Vrb는 상태 B 보다 상태 A에 더 가깝고, Vrc는 상태 C 보다 상태 B에 더 가깝다. 이러한 구성은 데이터 보유를 위한 어떠한 플래시 메모리 시스템들에 제공된다. 예를 들어, 상태 B로 프로그램된 메모리 셀이 시간의 경과에 따라 음 전하를 손실한다면, Vrb1을 상태 A에 더 가까운 레벨로 위치시키는 것이 유익하다. 셀의 전하가 그 셀의 임계 전압이 Vrb1 미만으로 떨어질 정도로 충분히 감소한다면, 그 셀은 상태 A로서 오판독될 수 있다. 이에 따라, 일부 구현들은 이러한 오판독을 극복하기 위해 판독 기준 전압 레벨들을 보다 낮은 상태에 더 가까워지도록 위치시킬 수 있다.
이웃하는 워드라인을 판독하기 위한 마지닝된 판독 기준 전압 레벨들이 WLn에서 시용되는 레벨들에 대하여 마지닝된다면, 어떠한 경우들에서는 다른 타입의 오판독이 일어날 수 있다. 보다 낮은 상태에 있는 셀이 보다 높은 상태에 있는 것으로서 오판독될 수 있다. 예를 들어, Vrb1이 상태 A 분포의 상위 에지에 비교적 가깝게 위치될 때 Vrb1에 대해 시프트되는 Vrb2의 값이 이용된다면, 상태 A 셀은 상태 B에 있는 것으로서 오판독될 수 있다. WLn+1의 셀을 프로그램한 후, WLn+1의 셀에 이웃하는 WLn+2의 셀이 상태 C로 프로그램된다면, WLn+1의 셀의 임계 전압은 음의 전하 결합때문에 증가하는 것으로 나타난다. 또한, WLn에서 판독할 때에는 검출할 것이 요구되지 않는 보유 등은, 상기 설명한 바와 같이 WLn+1에서 판독할 때에는 검출할 것이 요구될 수 있다.
이에 따라, 도 29의 실시예는 2개의 이웃하는 메모리 상태들에 해당하는 평균 임계 전압에 대한 제 2 세트의 판독 기준 전압들을 마지닝한다. Vra2는 상태들 E 및 A의 평균 임계 전압에 대해 마지닝되고, Vrb2는 상태들 A 및 B의 평균 임계 전압에 대해 마지닝되며, 그리고 Vrc2는 상태들 B 및 C의 평균 임계 전압에 대해 마지닝된다.
일 실시예에서, 평균 임계 전압들은 2개의 이웃하는 상태들에 대한 임계 전압 분포들의 하위 에지 값들의 평균에 기초하여 결정된다. 이러한 하위 에지 값들은 프로그램 검증 동안에 이용되는 검증 레벨에 해당하고, 평균 값들을 계산하는 데에 이용될 수 있다. 예를 들어, 평균 임계 전압(Vmb)은, 각각 상태 A 및 B를 프로그램할 때에 인가되는 검증 레벨들(Vva 및 Vvb)의 평균을 이용하여 계산될 수 있다. 이러한 검증 레벨들의 평균이 계산된 후, 이는 평균 임계 전압 레벨(예를 들어, Vmb)을 결정하기 위해, 하위 임계 전압 분포의 반(half) 만큼 오프셋될 수 있다. 다른 실시예들에서, 평균 임게 전압들은 2개의 이웃하는 판독 기준 전압들에 기초하여 계산된다. 예를 들어, 상태들 A와 B 간의 평균 임계 전압(Vmb)은, 이러한 셀들을 판독할 때 인가되는 판독 기준 전압들(Vra 및 Vrb)의 평균으로서 계산될 수 있다. 이 경우, 기준 전압 레벨들은 여전히, 특정의 상태에 해당하는 단일의 임계 전압 레벨이 아닌, 평균 임계 전압 레벨들에 대해 마지닝된다. 일 실시예에서, 판독 기준 전압들은 제 1 분포(예를 들어, 상태 A)의 상위 에지와 제 2 분포(예를 들어, 상태 B)의 하위 에지 간의 중간점에 대하여 마지닝된다.
일 실시예에서, 제 2 세트의 판독 기준 전압들은 프로그램 검증 동작과 판독 동작 사이에서의 Vread의 변경에 기초하여 설정된다. 특정 상태에 대한 판독 기준 전압은, 이웃하는 상태들의 평균 임계 전압에서 ΔVread에 기초한 보상 마진(compensating margin)을 뺀 것과 같은 값으로 설정될 수 있다.
하나의 구현에 있어서, 상기 보상 마진은 다음과 같이 결정된다. 수식 2는 소정의 메모리 셀의 외관상 임계 전압의 변경과 Vread의 변경 간의 관계를 설명한다.
Figure 112011042721002-pct00002
수식 2
WLn의 소정의 메모리 셀의 임계 전압 변화분(ΔVTn)은 2개의 성분(component)들, 즉 그 셀의 이웃에 인가되는 판독 패스 전압의 변화분(ΔVread) 및 그 이웃의 임계 전압 변화분(ΔVTn+1)에 기초한다. 보다 구체적으로, 이러한 변화분은 (음의 전하 결합에 기초하여 임계 전압을 상승시키는) ΔVTn과 관련된 용량성 결합 효과들과 (양의 전하 결합에 기초하여 임계 전압을 저하시키는) ΔVread와 관련된 용량성 결합 효과들 간의 차이와 같다.
Vread의 변화분에 해당하는 적절한 마지닝 값을 얻기 위해, ΔVTn+1은 0으로 설정될 수 있는 바, 이는 WLn+1 메모리 셀에서 VT의 전하가 변경되지 않는 것에 해당한다. 알려져있는 Vread 변화분을 이용하여, 마지닝 값은 드레인측 이웃 워드라인을 판독할 때에 외관상 임계 전압의 변화분을 바로 오프셋하기 위해 ΔVTn의 계산된 값과 같도록 설정될 수 있다.
선택된 워드라인(WLn)에 대한 판독 동작을 고려하는 바, 여기에서는 WLn을 판독할 때에 보상을 적용하기 위해 드레인측 이웃 워드라인(WLn+1)으로부터의 정보가 이용된다. 워드라인(WLn+1)이 프로그래밍 동안 검증되었을 때, 그 드레인측 이웃 워드라인(WLn+2)은 낮은 판독 패스 전압(Vreadp)(예를 들어, Vread4)을 받았다. Vreadp가 약 3.0V라고 가정한다. WLn에 대한 판독 동작의 일부로서 WLn+1을 판독할 때, 판독 패스 전압(Vread1)이 WLn+2에 인가되어, 그 위의 모든 메모리 셀의 도통을 보장한다. Vread1은 약 5.5V이고, 그에 따라 ΔVread는 2.5V라고 가정한다. 또한, r1, r2 및 Crn (Crn+1)의 값들은 각각 0.02, 0.03 및 0.5라고 가정한다. 수식 2로부터의 n 및 n+1을 각각 n+1 및 n+2로 설정하고, ΔVTn+2를 제로로 설정하여, 수식 3을 얻게 된다. WLn+1을 판독할 때의 마지닝의 양은 수식 3으로부터 결정될 수 있다.
Figure 112011042721002-pct00003
수식 3
수식 3은, Vread의 변경에 기초하여, 프로그래밍의 시간으로부터 판독의 시간까지 WLn+1 상의 메모리 셀에 대해 기대될 수 있는 임계 전압에 있어서의 외관상 변경량을 제공한다. WLn+1을 판독할 때에 인가되는 판독 기준 전압 레벨들이 이러한 외관상 변경을 고려한다면, 보다 정확한 판독 동작을 달성할 수 있다. 만일 상기로부터 추정되는 값들을 수식 3에 대입시키면, ΔVread에 기초한 WLn+1에서의 기대되는 VT 변경이 약 -0.2V가 됨을 알 수 있다. 따라서, -0.2V의 보상 판독 마진이 얻어진다.
이전에 설명한 바와 같이, 마진은 이웃하는 워드라인을 서로 다른 방법들로 판독하기 위한 판독 기준 전압들을 마지닝하는 데에 이용될 수 있다. 일 실시예에서, 판독 기준 전압은 2개의 이웃하는 상태들의 프로그램 검증 전압들의 평균과 보상 마진을 더한 것과 같은 값으로 설정된다. 각각 0.8V, 1.6V 및 3.6V와 같은 해당하는 검증 레벨들(Vva, Vvb 및 Vvc)을 갖는 4 상태(E, A, B, C) 디바이스를 가정한 다. 상태 A 기준 전압(Vra2)는 0V로 유지될 수 있다(마지닝되지 않음). 상태 B 기준 전압(Vrb2)는 ((0.8+1.6)/2)-0.2와 같은 1.0V로 설정될 수 있다. 상태 C 기준 전압은 ((1.6+3.6)/2)-0.2V와 같은 2.4V로 설정될 수 있다. 이해될 사항으로서, 상기 설명한 값들은 예시적인 것들로서, 실시에 따라 달라질 것이다.
다른 실시예에서, 판독 기준 전압은 2개의 이웃하는 상태들의 공칭 판독 기준 전압들의 평균에 보상 마진을 더한 것과 같은 값으로 설정될 수 있다. 또 다른 실시예에서, 판독 기준 전압은 2개의 이웃하는 상태들의 평균 임계 전압의 평균에 보상 마진을 더한 것과 같은 값으로 설정될 수 있다. 일 실시예는 상기 설명한 바와 같은 평균 값들을 계산하지 않으면서 보상 마진을 공칭 판독 기준 전압들에 바로 적용한다.
상기의 예에서, 상태 A 기준 전압 레벨에는 어떠한 마진도 제공되지 않았다. 다른 실시예들에서는, 이 레벨에도 마진이 제공된다. 다양한 구현들에 있어서, 상태 A 판독 기준 전압을 마지닝하지 않는 몇 가지 이유들이 존재한다. 상태 기준 전압을 마지닝 다운(down)시키는 데에 요구될 수 있는 음의 전압을 제공하는 것은 종종 어렵다. 또한, 0V 가까이의 정확한 작은 양의 전압들을 제공하는 것은 종종 어렵다. 또한, 상태 A 셀들의 임계 전압은 중성 전하(charge neutral)에 가깝기 때문에, 이들은 현저한 보유 손실을 겪지 않게 된다. 따라서, 상태에서의 공칭 판독 기준 전압은 보유 손실들로부터의 악영향없이 이용될 수 있다. 마지막으로, 상태 A를 프로그램할 때에 프로그램 전압 펄스들에 대해 작은 증분 값(increment value)들이 종종 이용될 수 있는데, 이는 프로그래밍의 정확한 레벨들을 이끌어낸다.
상기 본 발명의 상세한 설명은 예시와 설명의 목적을 위해 제공되었다. 이러한 설명은 본 발명을 속속들이 규명한 것으로서, 또는 본 발명을 개시된 정확한 형태로 한정하는 것으로서 의도되지 않는다. 상기 교시에 비추어 많은 수정들 및 변형들이 가능하다. 설명된 실시예들은 본 발명의 사상과 실제적인 응용예를 최상으로 설명함으로써, 당업자가 다양한 실시예들에서 그리고 고려되는 특정의 용도에 적합한 다양한 변형들에 대해 본 발명을 최상으로 이용할 수 있도록 선택된 것이다. 본 발명의 범위는 첨부된 청구범위에 의해서만 규정된다.

Claims (21)

  1. 비휘발성 메모리를 판독하는 방법으로서,
    선택되지 않은 비휘발성 저장 요소에 이웃하는 선택된 비휘발성 저장 요소에 대한 판독 프로세스 동안, 상기 선택되지 않은 비휘발성 저장 요소의 현재 상태를 결정하기 위해, 상기 선택되지 않은 비휘발성 저장 요소에 특정 상태에 해당하는 판독 전압을 제 1 전압 레벨로 인가함으로써, 상기 선택되지 않은 비휘발성 저장 요소를 판독하는 단계와;
    상기 판독 프로세스 동안, 상기 선택되지 않은 비휘발성 저장 요소의 현재 상태를 결정한 후, 상기 선택된 비휘발성 저장 요소에 상기 판독 전압을 제 2 전압 레벨로 인가하는 단계와;
    상기 선택되지 않은 비휘발성 저장 요소의 상기 현재 상태에 기초하여, 상기 선택된 비휘발성 저장 요소에 상기 판독 전압을 인가하면서, 상기 선택되지 않은 비휘발성 저장 요소가 상기 선택된 비휘발성 저장 요소에 대해 갖는 결합 효과를 줄이기 위한 특정 전압을 상기 선택되지 않은 비휘발성 저장 요소에 인가하는 단계와; 그리고
    상기 판독 프로세스 동안, 상기 선택된 비휘발성 저장 요소의 상태를 감지하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  2. 제 1 항에 있어서,
    상기 선택되지 않은 비휘발성 저장 요소는 제 1 워드라인에 연결되고;
    상기 선택된 비휘발성 저장 요소는 상기 제 1 워드라인과 제 1 방향으로 인접하는 제 2 워드라인에 연결되며;
    상기 방법은,
    상기 제 1 워드라인에 연결된 비휘발성 저장 요소들을 상기 특정 상태로 프로그램하는 단계와;
    상기 제 1 워드라인과 제 2 방향으로 인접하는 제 3 워드라인에 제 1 패스 전압을 인가하면서, 상기 제 1 워드라인에 연결된 상기 비휘발성 저장 요소들의 프로그래밍을 검증하는 단계와; 그리고
    상기 선택되지 않는 비휘발성 저장 요소의 상기 현재 상태를 결정하기 위해, 상기 선택되지 않은 비휘발성 저장 요소에 상기 판독 전압을 인가하면서, 상기 제 3 워드라인에 제 2 패스 전압을 인가하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  3. 제 2 항에 있어서,
    상기 제 1 패스 전압과 상기 제 2 패스 전압 간의 차이로부터 비롯되는 상기 선택되지 않은 비휘발성 저장 요소의 임계 전압의 외관상 변경을 적어도 부분적으로 보상하기 위해, 상기 판독 전압을 상기 제 1 전압 레벨로 제공하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 전압 레벨은 상기 제 2 전압 레벨 보다 낮은 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  5. 제 1 항에 있어서,
    상기 선택되지 않은 비휘발성 저장 요소에 상기 특정 전압을 인가하는 단계는, 상기 선택된 비휘발성 저장 요소에 상기 판독 전압을 인가하면서, 상기 선택되지 않은 비휘발성 저장 요소에 다수의 전압들을 인가하는 단계를 포함하며,
    여기서, 상기 다수의 전압들중 하나는 상기 특정 전압이고, 상기 상태를 감지하는 단계는 상기 특정 전압에 반응하여 수행되는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  6. 제 1 항에 있어서,
    상기 선택되지 않은 비휘발성 저장 요소 및 상기 선택된 비휘발성 저장 요소는 다중 상태 플래시 메모리 셀들이고;
    상기 판독 전압은 제 1 판독 전압이고, 상기 제 1 판독 전압을 인가하는 단계는, 상기 선택되지 않은 비휘발성 저장 요소가 어느 상태에 있는 지를 결정하기 위해, 상기 제 1 판독 전압을 포함하는 다수의 판독 전압들을 인가하는 단계를 포함하고;
    상기 선택되지 않은 비휘발성 저장 요소에 상기 특정 전압을 인가하는 단계는, 상기 선택되지 않은 비휘발성 저장 요소가 프로그램될 수 있는 각 상태에 대해 하나의 전압을 포함하는 다수의 전압들을 상기 선택되지 않은 비휘발성 저장 요소에 인가하는 단계를 포함하고, 상기 다수의 전압들중 하나는 상기 특정 전압이고, 상기 특정 전압은 상기 선택되지 않은 비휘발성 저장 요소가 프로그램되는 상태와 관련되고;
    상기 다수의 전압들 중에서 상기 선택되지 않은 비휘발성 저장 요소가 프로그램되는 상태와 관련되지 않는 전압들에 반응하여 감지되는 데이터는 폐기(discard)되며; 그리고
    상기 상태를 감지하는 단계는 상기 특정 전압에 반응하여 수행되는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  7. 제 1 항에 있어서,
    상기 선택된 비휘발성 저장 요소는, 풀 시퀀스 프로그래밍(full sequence programming)을 이용하여 상기 선택된 비휘발성 저장 요소 내로 프로그램되는 적어도 2 비트의 데이터를 저장하는 다중 상태 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  8. 제 1 항에 있어서,
    상기 선택된 비휘발성 저장 요소는 다중 상태 플래시 메모리 셀이고;
    상기 선택된 비휘발성 저장 요소는 제 1 상태, 제 2 상태, 제 3 상태 또는 제 4 상태가 될 수 있고;
    상기 판독 전압은 상기 제 3 상태와 상기 제 4 상태 사이의 제 1 판독 전압이고, 상기 특정 전압은 상기 제 4 상태이고;
    상기 방법은 상기 선택되지 않은 비휘발성 저장 요소의 상기 현재 상태와 상관없이, 상기 제 1 상태와 상기 제 2 상태 사이의 제 2 판독 전압에 반응하여 상기 선택된 비휘발성 저장 요소의 상태를 감지하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  9. 제 8 항에 있어서,
    상기 방법은 상기 선택되지 않은 비휘발성 저장 요소의 상기 현재 상태를 결정하는 것의 일부로서, 상기 제 2 판독 전압을 제 3 전압 레벨로 인가하는 단계를 더 포함하며; 그리고
    상기 선택된 비휘발성 저장 요소의 상기 상태를 감지하는 단계는 상기 선택된 비휘발성 저장 요소에 상기 제 2 판독 전압을 상기 제 3 전압 레벨로 인가하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  10. 제 1 항에 있어서,
    상기 선택된 비휘발성 저장 요소는, 이웃하는 비휘발성 저장 요소들이 제 1 그룹의 데이터(first grouping of data)에 대해 프로그램된 이후, 제 2 그룹의 데이터에 대해 프로그램되는 것을 특징으로 하는 비휘발성 메모리를 판독하는 방법.
  11. 비휘발성 메모리 시스템으로서,
    다수의 비휘발성 저장 요소들과; 그리고
    상기 다수의 비휘발성 저장 요소들과 통신하며, 선택된 워드라인에 연결된 선택된 비휘발성 저장 요소에 대한 판독 프로세스를 수행하는 관리 회로를 포함하며,
    여기서, 상기 관리 회로는, 선택되지 않은 비휘발성 저장 요소의 현재 상태를 결정하기 위해, 상기 선택되지 않은 비휘발성 저장 요소에 특정 상태에 해당하는 판독 전압을 제 1 전압 레벨로 인가함으로써, 상기 선택되지 않은 비휘발성 저장 요소를 판독하고; 상기 판독 프로세스 동안, 상기 선택되지 않은 비휘발성 저장 요소의 현재 상태를 결정한 후, 상기 선택된 비휘발성 저장 요소에 상기 판독 전압을 제 2 전압 레벨로 인가하고; 상기 선택되지 않은 비휘발성 저장 요소의 상기 현재 상태에 기초하여, 상기 선택된 비휘발성 저장 요소에 상기 판독 전압을 인가하면서, 상기 선택되지 않은 비휘발성 저장 요소가 상기 선택된 비휘발성 저장 요소에 대해 갖는 결합 효과를 줄이기 위한 특정 전압을 상기 선택되지 않은 비휘발성 저장 요소에 인가하며; 그리고 상기 판독 프로세스 동안 상기 선택된 비휘발성 저장 요소의 상태를 감지하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  12. 제 11 항에 있어서,
    상기 선택되지 않은 비휘발성 저장 요소는 제 1 워드라인에 연결되고;
    상기 선택된 비휘발성 저장 요소는 상기 제 1 워드라인과 제 1 방향으로 인접하는 제 2 워드라인에 연결되며;
    상기 관리 회로는, 상기 제 1 워드라인에 연결된 비휘발성 저장 요소들을 상기 특정 상태로 프로그램하고; 상기 제 1 워드라인과 제 2 방향으로 인접하는 제 3 워드라인에 제 1 패스 전압을 인가하면서, 상기 제 1 워드라인에 연결된 상기 비휘발성 저장 요소들의 프로그래밍을 검증하며; 그리고 상기 선택되지 않은 비휘발성 저장 요소의 상기 현재 상태를 결정하기 위해, 상기 선택되지 않은 비휘발성 저장 요소에 상기 판독 전압을 인가하면서, 상기 제 3 워드라인에 제 2 패스 전압을 인가하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  13. 제 12 항에 있어서,
    상기 관리 회로는, 상기 제 1 패스 전압과 상기 제 2 패스 전압 간의 차이로부터 비롯되는 상기 선택되지 않은 비휘발성 저장 요소의 임계 전압의 외관상 변경을 적어도 부분적으로 보상하기 위해, 상기 판독 전압을 상기 제 1 전압 레벨로 제공하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  14. 제 11 항에 있어서,
    상기 제 1 전압 레벨은 상기 제 2 전압 레벨 보다 낮은 것을 특징으로 하는 비휘발성 메모리 시스템.
  15. 제 11 항에 있어서,
    상기 선택되지 않은 비휘발성 저장 요소에 상기 특정 전압을 인가하는 상기 관리 회로는, 상기 선택된 비휘발성 저장 요소에 상기 판독 전압을 인가하면서, 상기 선택되지 않은 비휘발성 저장 요소에 다수의 전압들을 인가하며,
    여기서, 상기 다수의 전압들중 하나는 상기 특정 전압이고, 상기 상태를 감지하는 것은 상기 특정 전압에 반응하여 수행되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  16. 제 11 항에 있어서,
    상기 선택되지 않은 비휘발성 저장 요소 및 상기 선택된 비휘발성 저장 요소는 다중 상태 플래시 메모리 셀들이고;
    상기 판독 전압은 제 1 판독 전압이고, 상기 제 1 판독 전압을 인가하는 것은, 상기 선택되지 않은 비휘발성 저장 요소가 어느 상태에 있는 지를 결정하기 위해, 상기 제 1 판독 전압을 포함하는 다수의 판독 전압들을 인가하는 것을 포함하고;
    상기 선택되지 않은 비휘발성 저장 요소에 상기 특정 전압을 인가하는 상기 관리 회로는, 상기 선택되지 않은 비휘발성 저장 요소가 프로그램될 수 있는 각 상태에 대해 하나의 전압을 포함하는 다수의 전압들을 상기 선택되지 않은 비휘발성 저장 요소에 인가하며, 여기서 상기 다수의 전압들중 하나는 상기 특정 전압이고, 상기 특정 전압은 상기 선택되지 않은 비휘발성 저장 요소가 프로그램되는 상태와 관련되고;
    상기 관리 회로는 상기 다수의 전압들 중에서 상기 선택되지 않은 비휘발성 저장 요소가 프로그램되는 상태와 관련되지 않는 전압들에 반응하여 감지되는 데이터를 폐기하며; 그리고
    상기 관리 회로는 상기 특정 전압에 반응하여 상기 상태의 감지를 수행하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  17. 제 11 항에 있어서,
    상기 선택된 비휘발성 저장 요소는, 풀 시퀀스 프로그래밍을 이용하여 상기 선택된 비휘발성 저장 요소 내로 프로그램되는 적어도 2 비트의 데이터를 저장하는 다중 상태 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 메모리 시스템.
  18. 제 11 항에 있어서,
    상기 선택된 비휘발성 저장 요소는, 제 1 페이지 및 제 2 페이지 내로 프로그램되는 적어도 2 비트의 데이터를 저장하는 다중 상태 플래시 메모리 셀이고;
    상기 선택된 비휘발성 저장 요소는 제 1 상태, 제 2 상태, 제 3 상태 또는 제 4 상태가 될 수 있고;
    상기 판독 전압은 상기 제 3 상태와 상기 제 4 상태 사이의 제 1 판독 전압이고, 상기 특정 전압은 상기 제 4 상태이고;
    상기 관리 회로는, 상기 제 1 판독 전압을 이용하여 상기 제 1 페이지를 판독하는 프로세스의 일부로서, 상기 선택된 비휘발성 저장 요소에 상기 판독 전압을 인가하고, 상기 특정 전압을 인가하고, 상기 상태를 감지하며; 그리고
    상기 관리 회로는 또한 상기 선택되지 않은 비휘발성 저장 요소의 상기 현재 상태와 상관없이, 상기 제 1 상태와 상기 제 2 상태 사이의 제 2 판독 전압에 반응하여 상기 선택된 비휘발성 저장 요소의 상태를 감지하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  19. 제 18 항에 있어서,
    상기 관리 회로는, 상기 선택되지 않은 비휘발성 저장 요소의 상기 현재 상태를 결정하는 것의 일부로서, 상기 제 2 판독 전압을 제 3 전압 레벨로 인가하며; 그리고
    상기 선택된 비휘발성 저장 요소의 상기 상태를 감지하는 것은 상기 선택된 비휘발성 저장 요소에 상기 제 2 판독 전압을 상기 제 3 전압 레벨로 인가하는 것을 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
  20. 제 11 항에 있어서,
    상기 선택된 비휘발성 저장 요소는, 이웃하는 비휘발성 저장 요소들이 제 1 그룹의 데이터에 대해 프로그램된 이후, 제 2 그룹의 데이터에 대해 프로그램되는 것을 특징으로 하는 비휘발성 메모리 시스템.
  21. 제 11 항에 있어서,
    상기 관리 회로는 제어기와 상태 머신 중에서 적어도 하나를 포함하는 것을 특징으로 하는 비휘발성 메모리 시스템.
KR1020097016025A 2006-12-29 2007-12-27 결합 보상을 포함하는 비휘발성 메모리 판독 동작들에 대한 마지닝된 이웃 판독 KR101094422B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/618,616 US7518923B2 (en) 2006-12-29 2006-12-29 Margined neighbor reading for non-volatile memory read operations including coupling compensation
US11/618,624 2006-12-29
US11/618,616 2006-12-29
US11/618,624 US7606070B2 (en) 2006-12-29 2006-12-29 Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation
PCT/US2007/088899 WO2008083196A2 (en) 2006-12-29 2007-12-27 Margined neighbor reading for non-volatile memory read operations including coupling compensation

Publications (2)

Publication Number Publication Date
KR20090117713A KR20090117713A (ko) 2009-11-12
KR101094422B1 true KR101094422B1 (ko) 2011-12-15

Family

ID=39472436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097016025A KR101094422B1 (ko) 2006-12-29 2007-12-27 결합 보상을 포함하는 비휘발성 메모리 판독 동작들에 대한 마지닝된 이웃 판독

Country Status (7)

Country Link
EP (1) EP2100307B1 (ko)
JP (1) JP5159790B2 (ko)
KR (1) KR101094422B1 (ko)
CN (1) CN101627442B (ko)
AT (1) ATE525727T1 (ko)
TW (1) TWI380311B (ko)
WO (1) WO2008083196A2 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101291667B1 (ko) * 2007-08-20 2013-08-01 삼성전자주식회사 불휘발성 메모리 장치 및 그 독출 방법
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
JP2010134983A (ja) * 2008-12-03 2010-06-17 Toshiba Corp デプレッションタイプnandフラッシュメモリ
US7813181B2 (en) * 2008-12-31 2010-10-12 Sandisk Corporation Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations
WO2012039511A1 (en) 2010-09-24 2012-03-29 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US8099652B1 (en) * 2010-12-23 2012-01-17 Sandisk Corporation Non-volatile memory and methods with reading soft bits in non uniform schemes
US8498152B2 (en) 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
US8782495B2 (en) 2010-12-23 2014-07-15 Sandisk Il Ltd Non-volatile memory and methods with asymmetric soft read points around hard read points
KR101798013B1 (ko) 2010-12-30 2017-11-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
KR101772951B1 (ko) 2011-03-10 2017-09-13 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 읽기 방법
KR101913291B1 (ko) 2011-09-09 2018-12-28 삼성전자주식회사 비휘발성 메모리 장치, 그 데이터 판독 방법 및 기록 매체
JP2013127828A (ja) 2011-12-16 2013-06-27 Samsung Electronics Co Ltd 半導体記憶装置
US9552251B2 (en) * 2014-04-22 2017-01-24 Sandisk Technologies Llc Neighboring word line program disturb countermeasure for charge-trapping memory
US9336891B2 (en) * 2014-07-02 2016-05-10 Sandisk Technologies Inc. Look ahead read method for non-volatile memory
US9355732B2 (en) * 2014-10-01 2016-05-31 Sandisk Technologies Inc. Latch initialization for a data storage device
KR102395722B1 (ko) 2015-09-17 2022-05-10 에스케이하이닉스 주식회사 저장 장치 및 이의 동작 방법
US9548127B1 (en) 2015-12-28 2017-01-17 Kabushiki Kaisha Toshiba Memory system
US10008273B2 (en) * 2016-06-13 2018-06-26 Sandisk Technologies Llc Cell current based bit line voltage
KR102395563B1 (ko) * 2016-07-25 2022-05-06 에스케이하이닉스 주식회사 비휘발성 메모리 소자 및 이의 제조 방법
KR102489551B1 (ko) * 2018-03-23 2023-01-17 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
CN110648710A (zh) * 2018-06-26 2020-01-03 北京兆易创新科技股份有限公司 字线电压的施加方法、装置、电子设备和存储介质
WO2021102777A1 (en) * 2019-11-28 2021-06-03 Yangtze Memory Technologies Co., Ltd. Methods of enhancing speed of reading data from memory device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040213031A1 (en) 2003-04-22 2004-10-28 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and electric device with the same
WO2005073978A1 (en) 2004-01-26 2005-08-11 Sandisk Corporation Method of reading nand memory to compensate for coupling between storage elements
US20050254302A1 (en) 2004-05-17 2005-11-17 Kabushiki Kaisha Toshiba Semiconductor memory device
WO2006107731A1 (en) 2005-04-05 2006-10-12 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100276653B1 (ko) * 1998-08-27 2001-01-15 윤종용 스프릿 게이트형 불휘발성 메모리 셀의 구동방법 및 이 셀들을구비한 반도체 메모리 장치의 구동방법
WO2007103038A1 (en) * 2006-03-03 2007-09-13 Sandisk Corporation Read operation for non-volatile storage with compensation for floating gate coupling

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040213031A1 (en) 2003-04-22 2004-10-28 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device and electric device with the same
WO2005073978A1 (en) 2004-01-26 2005-08-11 Sandisk Corporation Method of reading nand memory to compensate for coupling between storage elements
US20050254302A1 (en) 2004-05-17 2005-11-17 Kabushiki Kaisha Toshiba Semiconductor memory device
WO2006107731A1 (en) 2005-04-05 2006-10-12 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling

Also Published As

Publication number Publication date
JP5159790B2 (ja) 2013-03-13
TW200841346A (en) 2008-10-16
EP2100307B1 (en) 2011-09-21
TWI380311B (en) 2012-12-21
WO2008083196A2 (en) 2008-07-10
KR20090117713A (ko) 2009-11-12
WO2008083196A3 (en) 2008-08-28
JP2010515203A (ja) 2010-05-06
ATE525727T1 (de) 2011-10-15
EP2100307A2 (en) 2009-09-16
CN101627442B (zh) 2013-07-24
CN101627442A (zh) 2010-01-13

Similar Documents

Publication Publication Date Title
KR101094422B1 (ko) 결합 보상을 포함하는 비휘발성 메모리 판독 동작들에 대한 마지닝된 이웃 판독
EP1991989B1 (en) Read operation for non-volatile storage with compensation for floating gate coupling
USRE46279E1 (en) Read operation for non-volatile storage with compensation for coupling
US7518923B2 (en) Margined neighbor reading for non-volatile memory read operations including coupling compensation
US7436733B2 (en) System for performing read operation on non-volatile storage with compensation for coupling
US7606070B2 (en) Systems for margined neighbor reading for non-volatile memory read operations including coupling compensation
US7310272B1 (en) System for performing data pattern sensitivity compensation using different voltage
US7450421B2 (en) Data pattern sensitivity compensation using different voltage
US7843739B2 (en) System for verifying non-volatile storage using different voltages
JP4892566B2 (ja) 交互列に基づいた不揮発性メモリの読み出し及び書き込み
EP2022060B1 (en) Verify operation for non-volatile storage using different voltages
WO2007143399A2 (en) Nand flash verify method with different compensated pass voltages

Legal Events

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

Payment date: 20141120

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee