KR20110061625A - 비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선 - Google Patents

비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선 Download PDF

Info

Publication number
KR20110061625A
KR20110061625A KR1020117009039A KR20117009039A KR20110061625A KR 20110061625 A KR20110061625 A KR 20110061625A KR 1020117009039 A KR1020117009039 A KR 1020117009039A KR 20117009039 A KR20117009039 A KR 20117009039A KR 20110061625 A KR20110061625 A KR 20110061625A
Authority
KR
South Korea
Prior art keywords
nonvolatile storage
data
programming
dummy
storage elements
Prior art date
Application number
KR1020117009039A
Other languages
English (en)
Other versions
KR101566460B1 (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
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20110061625A publication Critical patent/KR20110061625A/ko
Application granted granted Critical
Publication of KR101566460B1 publication Critical patent/KR101566460B1/ko

Links

Images

Classifications

    • 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/10Programming or data input circuits
    • 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/5628Programming or writing circuits; Data input 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells

Abstract

비휘발성 스토리지를 가동하는 기법들이 본 명세서에서 개시된다. 이 기법들은 서로 다른 워드 라인들 상의 비휘발성 저장 소자들이 경험하는 플로팅 게이트 커플링 효과의 차이들을 보상해준다. 한 그룹의 비휘발성 저장 소자들의 소거가 수행된다(1102). 한 세트의 비휘발성 저장 소자들은 데이터를 저장하기 위한 것이고 비휘발성 저장 소자들 중 적어도 하나는 데이터를 저장하기 위한 것이 아닌 더미이다. 이 더미는 데이터 비휘발성 저장 소자들 중 하나의 이웃이다. 데이터 비휘발성 저장 소자들은 소거된 후 일정 시점에 프로그램된다(1104). 그런 다음, 더미의 임계 전압을 증가시켜 그 이웃 비휘발성 저장 소자에 대한 플로팅 게이트 커플링 효과에 의해 그 이웃이 프로그래밍 과정에서 경험한 더 작은 플로팅 게이트 커플링 효과를 보상해주도록 프로그래밍 전압이 더미 비휘발성 저장 소자에 가해진다(1106).

Description

비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선{IMPROVING DATA RETENTION OF LAST WORD LINE OF NON-VOLATILE MEMORY ARRAYS}
본 발명은 비휘발성 저장 기술에 관한 것이다.
반도체 메모리 디바이스는 다양한 전자 장치에서 더욱 보편적으로 사용되어 왔다. 예를 들면, 비휘발성 반도체 메모리는 개인 항법 장치(personal navigatoin devices), 휴대폰, 디지털 카메라, PDA(personal digital assistants), 휴대용 컴퓨터, 비-휴대용 컴퓨터 및 기타 장치들에서 사용된다. EEPROM(Electrical Erasable Programmable Read Only Memory) 및 플래시 메모리(flash memory)가 가장 보편적인 비휘발성 반도체 메모리들에 속한다.
EEPROM과 플래시 메모리는 모두 반도체 기판의 채널 영역 상부에 위치하며 이 채널 영역으로부터 절연되는 플로팅 게이트(floating gate)를 이용한다. 플로팅 게이트와 채널 영역은 소오스(source)와 드레인(drain) 영역 사이에 위치한다. 컨트롤 게이트(control gate)는 플로팅 게이트 위에 제공되며 플로팅 게이트와 절연된다. 트랜지스터의 임계 전압(threshold voltage)은 플로팅 게이트 상에 유지된 전하량에 의해 제어된다. 즉, 트랜지스터가 그 소오스와 드레인 간에 전도되도록 턴온(turn on)되기 전에 컨트롤 게이트에 가해야할 최소 전압 크기는, 플로팅 게이트 상의 전하 레벨에 의해 제어된다.
일부 EEPROM이나 플래시 메모리 디바이스들은 낸드 구성(NAND configuration)으로 불리는 구성을 가지며 이 구성에서는 메모리 셀들이 낸드 스트링(string)들로 그룹을 이루고 각 낸드 스트링은 비트 라인(bit line)과 관련된다. 낸드 플래쉬 메모리 디바이스와 같은 플래쉬 메모리 디바이스 또는 EEPROM을 프로그램할 때, 전형적으로 프로그램 전압이 컨트롤 게이트에 가해지고 비트 라인은 접지된다. 채널로부터 전자들이 플로팅 게이트로 주입된다. 플로팅 게이트에 전자들이 축적되면, 플로팅 게이트가 음전하를 띄게 되고 메모리 셀의 임계 전압은 올라가므로 그 메모리 셀은 프로그램된 상태에 놓이게 된다. 프로그래밍에 대한 더 많은 정보는 "Source Side Self Boosting Technique for Non-Volatile Memory"라는 제목의 미국등록특허 제6,859,397호, "Detecting Over Programmed Memory"라는 제목의 미국등록특허 제6,917,542호, "Programming Non-Volatile Memory,"라는 제목의 미국등록특허 제6,888,758호에서 찾을 수 있으며, 세 인용 특허 모두는 본 명세서에서 전체로서 참조하여 원용한다.
많은 경우에, 프로그램 전압은 일련의 펄스들(프로그래밍 펄스라고 함)로서 컨트롤 게이트에 가해지고 펄스들의 크기는 각 펄스마다 증가한다. 프로그래밍 펄스들간에, 프로그램되고 있는 메모리 셀(들)이 목표 레벨(target level)에 도달했는지를 판별하기 위해 하나 이상의 검증 작업들의 세트가 수행된다. 메모리 셀이 목표 레벨에 도달했다면, 그 메모리 셀에 대한 프로그래밍을 멈춘다. 메모리 셀이 목표 레벨에 도달하지 못했다면, 그 메모리 셀에 대한 프로그래밍을 계속할 것이다.
이웃한 플로팅 게이트에 저장된 전하에 근거한 전기장의 커플링(coupling) 때문에 플로팅 게이트 상에 저장된 피상 전하(apparent charge)의 쉬프트(shift)가 일어날 수 있다. 이 현상은 미국등록특허 제5,867,429호에서 서술되어 있고, 이는 본 명세서에서 전체로서 참조하여 원용한다. 이 문제는 서로 다른 시기에 프로그램된 인접 메모리 셀들의 세트들간에 가장 확연히 발생한다. 예를 들면, 제1 메모리 셀이 프로그램되어 하나의 세트의 데이터에 대응되는 전하 레벨이 그 플로팅 게이트에 더해진다. 그 뒤에, 하나 이상의 인접 메모리 셀들이 프로그램되어 제2 세트의 데이터에 대응되는 전하 레벨이 그 플로팅 게이트에 더해진다. 하나 이상의 인접 메모리 셀들이 프로그램된 후에, 제1 메모리 셀과 커플링되고 있는 인접 메모리 셀들 상에서의 전하의 영향때문에 제1 메모리 셀로부터 읽혀진 전하 레벨이 프로그램된 것과는 다르게 나타날 수 있다. 인접 메모리 셀들로부터의 커플링에 의해 읽혀지고 있는 피상 전하 레벨은 저장된 데이터가 잘못 읽히기에 충분한 양만큼 쉬프트된다. 플로팅 게이트 커플링 문제는 인접 플로팅 게이트들 간의 커플링(플로팅 게이트-플로팅 게이트 커플링) 및 한 메모리 셀의 채널로부터 인접 메모리 셀의 플로팅 게이트로의 커플링(채널-플로팅 게이트 커플링)에 기인할 수 있다.
다중-상태 디바이스(multi-state device)는 더 많은 양의 전하를 저장할 뿐 아니라 이진 디바이스(binary device)에 비해 전형적으로 상태들 간의 임계 전압 마진(threshold voltage margin)이 더 작기 때문에, 플로팅 게이트 커플링의 영향은 다중-상태 디바이스에서 더 큰 관심의 대상이다. 게다가, 다중-상태 디바이스의 가장 낮은 상태와 가장 높은 상태 간의 저장된 전하의 차이는 이진 메모리 디바이스의 소거된 상태(erased state)와 프로그램된 상태(programmed state) 간의 저장된 전하의 차이보다 더 클 것이다. 인접 플로팅 게이트들 간에 커플링되는 전압의 크기는 인접 플로팅 게이트들 상에 저장된 전하의 크기에 의거한다.
일부 구현예들에서는, 각 낸드 스트링이 수 개의 데이터 워드 라인들과 하나 이상의 더미(dummy) 워드 라인들에 연결된다. 낸드 스트링 상의 각 메모리 셀은 워드 라인들 중 하나에 연결된다. 주어진 워드 라인은 많은 낸드 스트링들에 연결된다. 예를 들면, 한 낸드 스트링은 사용자 데이터를 저장하는 64개의 메모리 셀들(각각이 별도의 워드 라인에 연결됨)과 사용자 데이터를 저장하지 않는 하나 이상의 더미 메모리 셀들(더미 워드 라인에 연결됨)을 가질 수도 있다. 더미 워드 라인들에 연결되는 더미 메모리 셀들은 데이터 저장에 이용되지 않는다. 더미 워드 라인들을 이용하는 메모리 어레이에서는, 데이터 메모리 셀들 중 일부가 양측에 또 다른 데이터 메모리 셀을 가진다. 하지만, 낸드 스트링의 끝에 있는 메모리 셀은 한 측에는 데이터 메모리 셀을 가지고 다른 한 측에는 더미 메모리 셀을 가진다. 이는 마지막 워드 라인 상의 메모리 셀들이 경험하는 플로팅 게이트 커플링의 양에서의 차이로 나타날 수 있다.
본 명세서에서 개시된 기법들은 플로팅 게이트 커플링의 영향에 대응하는 기법을 포함하여 비휘발성 저장 디바이스들을 가동하기 위한 것이다. 더욱 상세하게는, 이 기법들은 서로 다른 워드 라인들 상의 메모리 셀들이 경험하는 플로팅 게이트 커플링 효과(floating gate coupling effect)에서의 차이를 보상해준다. 한 구현예에서는, 이 기법들이 낸드 스트링 상의 드레인측 더미(dummy) 워드 라인 바로 옆에 있는 마지막 워드 라인 상의 메모리 셀들이 경험하는 차이들을 보상해주는데 이용된다.
한 구현예에서는, 다음과 같이 인근의 데이터 비휘발성 저장 소자들을 프로그램한 후 하나 이상의 프로그램 전압(program voltage)들을 더미 비휘발성 저장 소자에 가한다. 먼저, 비휘발성 저장 소자들이 소거(erase)된다. 한 세트의 비휘발성 저장 소자들은 데이터 비휘발성 저장 소자들과 데이터를 저장하는데 이용되지 않는 적어도 하나의 더미 비휘발성 저장 소자를 포함한다. 더미는 데이터 비휘발성 저장 소자들 중 하나와 이웃한 것이다. 데이터 비휘발성 저장 소자들은 소거 후 일정 시점에 프로그램된다. 프로그램으로 인해 적어도 일부의 데이터 비휘발성 저장 소자들이 임계 전압의 피상적 증가(apparent increase)를 경험하는데, 이는 데이터 비휘발성 저장 소자들 중 또 다른 하나를 후속적으로 프로그램함으로써 발생하는 플로팅 게이트 커플링에 기인한다. 그런 다음, 더미 비휘발성 저장 소자에 프로그래밍 전압이 가해진다. 프로그래밍 전압은 다른 데이터 비휘발성 저장 소자들을 프로그램하는 과정에서 이웃의 비휘발성 저장 소자가 경험하는 더 작은 플로팅 게이트 커플링을 보상해주는 목표 레벨로 더미 비휘발성 저장 소자의 임계 전압을 증가시킨다.
한 구현예에서는, 데이터 저장 소자들을 프로그램하는 것은 각 저장 소자에 하나 이상의 프로그래밍 전압들을 가하는 것과 각 개별 저장 소자가 그 저장 소자에 대한 목표 레벨로 프로그램되었는지를 검증(verification)하는 것을 포함한다. 하지만, 더미에 프로그래밍 전압을 가한 후에는, 다른 데이터 비휘발성 저장 소자들을 프로그램하는 과정에서 이웃의 비휘발성 저장 소자가 경험하는 더 작은 플로팅 게이트 커플링을 보상해주는 목표 레벨로 그 더미가 프로그램되었는지에 대한 검증은 이루어지지 않는다.
한 구현예에서는, 프로그램 전압을 더미에 가한 후에, 더미의 임계 전압이 목표 레벨에 도달하였는지에 대한 검증이 수행된다. 하나 이상의 추가적인 프로그래밍 전압들이 그 더미가 목표 레벨에 도달할 때까지 더미에 가해진다.
한 실시예에서는, 더미에 가해지는 프로그래밍 전압은 "소프트 프로그래밍(soft programming)" 전압이다. 소프트 프로그래밍은 비휘발성 저장 소자들의 임계 전압들을 살짝 높게 올림(nudge)으로써 소거 임계 분포(erase threshold distribution)를 압축하는데 이용되는 기법이다. 이렇게 하여, 프로그래밍 전압은 예컨대 소거된 상태로부터 프로그램된 상태로 임계 전압을 이동시키는데에 이용되었을 것보다 상당히 더 낮다. 소프트 프로그램 전압을 가한 후에, 더미의 임계 전압이 목표 레벨에 도달했는지에 관한 판별이 이루어진다. 이 경우에 목표 레벨은 0 볼트 이하일 수도 있다.
한 실시예에서는, 소거를 수행한 후 비휘발성 저장 소자들을 프로그램하기 전에 비휘발성 저장 소자들의 그룹이 소프트 프로그램된다. 소프트 프로그래밍은 데이터 비휘발성 저장 소자들에 제1 프로그램 전압을 가하는 것에 반하여 더미 비휘발성 저장 소자에 제2 프로그램 전압을 가하는 것을 포함한다. 제2 프로그램 전압은 제1 프로그램 전압보다 작다. 결과는 더미 비휘발성 저장 소자가 데이터 비휘발성 저장 소자들보다 더 깊게 소거된 상태에 머문다. 후에 더미 비휘발성 저장 소자가 더 깊게 소거된 상태로부터 더 높은 임계 레벨로 프로그램된다. 이는 더미가 그렇게 깊게 소거되지 않았을 때보다 더 큰 플로팅 게이트 커플링 효과를 초래하게 한다.
한 예시적인 구현예에는 한 그룹의 비휘발성 저장 소자들과 이 비휘발성 저장 소자 그룹과 통신하는 하나 이상의 관리 회로(managing circuit)가 포함된다. 이 그룹의 비휘발성 저장 소자들에는 데이터 비휘발성 저장 소자들과 적어도 하나의 더미 비휘발성 저장 소자를 포함하는 하나 이상의 세트들(예컨대, 낸드 스트링들)이 포함된다. 더미는 데이터 비휘발성 저장 소자들 중 하나의 이웃이다. 관리 회로는 비휘발성 저장 소자들의 그룹을 소거한다. 관리 회로는 소거 후 일정 시점에 데이터 비휘발성 저장 소자들을 프로그램한다. 프로그래밍으로 인해 적어도 일부의 데이터 비휘발성 저장 소자들이 임계 전압의 피상적 증가(apparent increase)를 경험하는데, 이는 데이터 비휘발성 저장 소자들 중 또 다른 하나를 후속적으로 프로그램함으로써 발생하는 플로팅 게이트 커플링에 기인한다. 그런 다음, 관리 회로는 더미 비휘발성 저장 소자에 프로그래밍 전압을 가한다. 프로그래밍 전압은 다른 데이터 비휘발성 저장 소자들을 프로그램하는 과정에서 이웃의 비휘발성 저장 소자가 경험하는 더 작은 플로팅 게이트 커플링을 보상해주는 목표 레벨로 더미 비휘발성 저장 소자의 임계 전압을 증가시킨다.
도 1은 낸드 스트링의 평면도이다.
도 2는 낸드 스트링의 등가 회로도이다.
도 3은 비휘발성 메모리 시스템의 블록도이다.
도 4는 메모리 어레이의 한 실시예를 도시한 블록도이다.
도 5는 감지 블록(sense block)의 한 실시예를 도시한 블록도이다.
도 6A는 Vt 분포들의 예시적인 세트를 도시한 것이다.
도 6B는 Vt 분포들의 예시적인 세트를 도시한 것이다.
도 7은 메모리 셀들을 소거하고 프로그램하는 절차의 한 실시예를 설명하는 순서도(flow chart)이다.
도 8은 메모리 셀들을 소거하는 한 실시예를 도시한 것이다.
도 9는 메모리 셀들을 소프트 프로그램하는 한 실시예를 도시한 것이다.
도 10은 선택된 워드 라인에 연결된 메모리 셀들을 프로그램하기 위한 절차의 한 실시예를 설명하는 순서도이다.
도 11은 비휘발성 메모리 셀들을 가동하는 한 실시예를 도시한 것이다.
도 12는 더미 워드 라인에 하나의 단일 의사(pseudo) 프로그래밍 전압을 가하는 한 실시예를 도시한 것이다.
도 13은 더미 메모리 셀들의 임계 전압을 검증하는 것과 함께, 더미 메모리 셀들을 의사 프로그램하기 위한 절차의 한 실시예를 도시한 것이다.
도 14는 데이터 및 더미 메모리 셀들에 대한 예시적인 임계 분포들을 도시한 것이다.
플래쉬 메모리 시스템의 한 예로 낸드 구조가 이용되는데, 이 구조는 복수의 트랜지스터들을 일렬로 두 셀렉트 게이트(select gate)들 사이에 샌드위치된 형태로 배열하는 것을 포함한다. 일렬의 트랜지스터들과 셀렉트 게이트들을 낸드 스트링(NAND string)이라고 한다. 도 1은 하나의 낸드 스트링을 도시한 평면도이다. 도 2는 그것의 등가 회로이다. 도 1 및 도 2에 도시된 낸드 스트링은 일렬로 그리고 제1 셀렉트 게이트(120)(드레인 측)와 제2 셀렉트 게이트(122)(소오스 측) 사이에 샌드위치된 4개의 트랜지스터들(100, 102, 104, 106)을 포함한다. 셀렉트 게이트(120)는 낸드 스트링을 비트 라인 콘택(contact)(126)을 통해 비트 라인에 연결한다. 셀렉트 게이트(122)는 낸드 스트링을 소오스 라인(128)에 연결한다. 셀렉트 게이트(120)는 셀렉트 라인(SGD)에 적절한 전압들을 가함으로써 제어된다. 셀렉트 게이트(122)는 셀렉트 라인(SGS)에 적절한 전압들을 가함으로써 제어된다. 트랜지스터들(100, 102, 104, 106) 각각은 컨트롤 게이트와 플로팅 게이트를 가진다. 예를 들면, 트랜지스터(100)는 컨트롤 게이트(100CG)와 플로팅 게이트(100FG)를 가진다. 트랜지스터(102)는 컨트롤 게이트(102CG)와 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 컨트롤 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 컨트롤 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 컨트롤 게이트(100CG)는 워드 라인(WL3)에 연결되고, 컨트롤 게이트(102CG)는 워드 라인(WL2)에 연결되고, 컨트롤 게이트(104CG)는 워드 라인(WL1)에 연결되면, 컨트롤 게이트(106CG)는 워드 라인(WL0)에 연결된다.
유의할 점은 도 1 및 도 2는 낸드 스트링의 4개의 메모리 셀들을 도시한 것이지만, 4개의 트랜지스터들을 사용한 것은 단지 예로서 제공된다는 것이다. 하나의 낸드 스트링은 4개보다 더 적은 메모리 셀들을 가질 수 있고 또는 4개보다 더 많은 메모리 셀들을 가질 수 있다. 예를 들면, 일부 낸드 스트링들은 8개, 16개, 32개, 64개, 128개 등의 메모리 셀들을 포함할 것이다. 본 명세서에서의 논의는 하나의 낸드 스트링에서 어느 특정한 개수의 메모리 셀들에 제한되지 않는다.
낸드 구조를 이용하는 플래쉬 메모리 시스템의 전형적인 아키텍처(architecture)는 복수의 낸드 스트링들을 포함할 것이다. 각 낸드 스트링은 셀렉트 라인(SGS)에 의해 제어되는 소오스 셀렉트 게이트에 의해 소오스 라인에 연결되고 셀렉트 라인(SGD)에 의해 제어되는 드레인 셀렉트 게이트에 의해 관련 비트 라인에 연결된다. 비트 라인 컨택을 통해 비트 라인에 연결되는 각 낸드 스트링(들)과 각 비트 라인은 메모리 셀들의 어레이의 열(column)들을 구성한다. 비트 라인들은 복수의 낸드 스트링들에 의해 공유된다. 전형적으로, 비트 라인은 워드 라인에 수직인 방향으로 낸드 스트링의 위에서 이어지고 하나 이상의 감지 증폭기(sense amplifier)들에 연결된다.
각 메모리 셀은 데이터(아날로그 또는 디지털)를 저장할 수 있다. 한 비트의 디지털 데이터를 저장할 때, 그 메모리 셀의 가능한 임계 전압들의 범위는 논리 데이터 "1" 및 "0"이 할당되는 두 개의 범위로 나뉜다. 낸드형의 플래쉬 메모리의 한 예에서, 메모리 셀이 소거된 후의 임계 전압은 음(negative)이고, 논리값 "1"로 정의된다. 프로그램한 후의 임계 전압은 양(positive)이고 논리값 "0"으로 정의된다. 임계 전압이 음이고 0 볼트를 컨트롤 게이트에 가하여 읽기(read)를 시도할 때, 그 메모리 셀은 논리값 1이 저장되어 있음을 표시하도록 켜질 것이다. 임계 전압이 양이고 컨트롤 게이트에 0 볼트를 가하여 읽기 작업을 시도하면, 그 메모리 셀은 켜지지 않으며, 이는 논리값 0이 저장되어 있음을 표시한다.
다중 레벨의 데이터를 저장하는 경우에는, 가능한 임계 전압들의 범위는 데이터 레벨의 개수만큼으로 나뉜다. 예를 들면, 4개 레벨의 정보가 저장된다면(2개 비트의 데이터), 데이터 값들 "11", "10", "01", "00"으로 할당되는 4개의 임계 전압 범위들이 있을 것이다. 낸드형 메모리의 한 예에서, 소거 작업 후의 임계 전압은 음이고 "11"로 정의된다. 양의 임계 전압들은 데이터 상태들 "10", "01", "00"에 대해 이용된다. 8개 레벨의 정보(또는 상태들)가 저장된다면(예컨대, 3개 비트의 데이터), 데이터 값들 "000", "001", "010", "011", "100", "101", "110", "111"로 할당되는 8개 임계 전압 범위들이 있을 것이다.
메모리 셀로 프로그램되는 데이터와 그 셀의 임계 전압 레벨들의 특정 관계는 그 셀에 대해 채택되는 데이터 인코딩 방식(data encoding scheme)에 따라 결정된다. 예를 들면, 미국등록특허 제6,222,762호 및 미국등록특허 제7,237,074호는 다중-상태 플래쉬 메모리 셀들에 대한 다양한 데이터 인코딩 방식들을 설명하고 있는데, 이들 모두는 본 명세서에서 전체로서 참조하여 원용한다. 한 실시예에서는, 데이터 값들이 그레이 코드(Gray code)를 이용하여 임계 전압 범위들로 할당되므로 플로팅 게이트의 임계 전압이 그 이웃의 물리적 상태로 잘못 쉬프트(shift)되면, 단지 한 비트만이 영향받을 것이다. 일부 실시예들에서는, 메모리 셀들 상에서의 데이터 패턴 민감도(data pattern sensitivity) 및 심지어는 마모(wear)를 감소시키기 위하여 데이터 인코딩 방식이 서로 다른 워드 라인들에 대해 바뀔 수 있고, 데이터 인코딩 방식이 시간이 지남에 따라 바뀔 수 있고, 또는 랜덤 워드라인들에 대한 데이터 비트들이 반전되거나 아니면 랜덤화될 수 있다.
낸드형 플래시 메모리들과 이들의 동작에 대한 관련 예들은 다음의 미국등록특허들/특허출원들, 미국등록특허 제5,570,315호, 미국등록특허 제5,774,397호, 미국등록특허 제6,046,935호, 미국등록특허 제6,456,528호, 그리고 미국특허공개번호 제US2003/0002348호에서 제공되며, 이들 모두는 본 명세서에서 전체로서 참조하여 원용한다. 본 명세서에서의 논의는 또한 다른 유형의 비휘발성 메모리 뿐만 아니라 낸드 이외의 다른 유형의 플래시 메모리에도 적용될 수 있다.
낸드 플래시 메모리 이외에도, 다른 유형의 비휘발성 저장 디바이스들이 이용될 수 있다. 예를 들면, 질화물층(nitride layer)(플로팅 게이트 대신에) 내에 전하를 트랩(trap)하는 것을 이용하는 것으로서 기본적으로 메모리 셀인, 소위 TANOS 구조(실리콘 기판 위에 TaN-Al2O3-SiN-SiO2 적층 레이어로 구성되는)도 또한 본 발명에 이용될 수 있다. 플래시 EEPROM 시스템에서 유용한 또 다른 유형의 메모리 셀에서는 비휘발성 방식으로 전하를 저장하기 위해 전도성 플로팅 게이트 대신에 비전도성 유전물질(dielectric material)이 이용된다. 이러한 메모리 셀은 Chan 등의 논문인 "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95 에 서술되어 있다. 실리콘 산화물(silicon oxide), 실리콘 질화물(silicon nitride) 및 실리콘 산화물로 형성된 3중층의 유전체("ONO")가 메모리 셀 채널 위의 반-전도성(semi-conductive) 기판의 표면과 전도성 컨트롤 게이트 사이에 샌드위치된다. 이 셀은 셀 채널로부터 질화물 안으로 전자들을 주입함으로써 프로그램되며, 질화물에서는 전자들이 제한된 영역에 트랩되고 그리고 저장된다. 그런 다음 이 저장된 전하는 셀 채널의 일부분의 임계전압을 검출가능한 방식으로 변화시킨다. 이 메모리 셀은 질화물 내에 핫 홀(hot hole)들을 주입함으로써 소거된다. 이에 관해서는 또한 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 configuraton)의 유사한 메모리 셀이 서술되어 있다. 상기 2개의 저술들은 본 명세서에서 전체로서 참조하여 원용한다. 본 명세서에서 참조하여 원용되는 "Nonvolatile Semiconductor Memory Technology," edited by William D. Brown and Joe E. Brewer, IEEE Press, 1998 의 1.2 절에 언급된 프로그래밍 기법도 또한 유전체 전하-트랩 디바이스(dielectric charge-trapping device)들에 적용가능한 것으로 그 절에서 서술되어 있다. 다른 유형의 메모리 디바이스들도 또한 이용될 수 있다.
도 3은 하나 이상의 메모리 다이 또는 칩들(212)을 포함할 수 있는 비휘발성 저장 디바이스(210)를 예시한 것이다. 메모리 다이(212)는 메모리 셀들의 어레이(200)(2차원 또는 3차원), 제어 회로(220), 및 읽기/쓰기(read/write) 회로들(230A, 230B)을 포함한다. 한 실시예에서는, 다양한 주변 회로들에 의한 메모리 어레이(200)로의 액세스가 어레이의 맞은편 측면들 상에서 대칭적인 방식으로 구현되므로, 각 측면에서의 액세스 라인들과 회로들의 밀도가 절반으로 감소된다. 읽기/쓰기 회로들(230A, 230B)은 한 페이지의 메모리 셀들을 병렬로 읽고 또는 프로그램할 수 있게 해주는 복수의 감지 블록(sense block)들(300)을 포함한다. 메모리 어레이(200)는 행(row) 디코더들(240A, 240B)을 통해 워드라인들에 의해 그리고 열 디코더들(242A, 242B)을 통해 비트 라인들에 의해서 어드레스(address)될 수 있다. 전형적인 실시예에서는, 컨트롤러(controller)(244)가 하나 이상의 메모리 다이(212)와 동일한 메모리 디바이스(210)(예컨대, 착탈가능한 저장 카드 또는 패키지) 내에 포함된다. 명령들 및 데이터들이 라인들(232)을 통해 호스트(host)와 컨트롤러(244) 간에 전달되고 라인들(234)을 통해서 컨트롤러와 하나 이상의 메모리 다이(212) 간에 전달된다. 한 구현예에서는 복수의 칩들(212)이 포함될 수 있다.
제어 회로(220)는 메모리 어레이(200) 상에서 메모리 작업들을 수행하기 위해 읽기/쓰기 회로(230A, 230B)와 협력한다. 제어 회로(220)는 스테이트 머신(state machine)(222), 온-칩(on-chip) 어드레스 디코더(224) 및 전력 제어 모듈(226)을 포함한다. 스테이트 머신(222)은 메모리 작업들에 대해 칩 레벨의 제어를 제공한다. 온-칩 어드레스 디코더(224)는 호스트나 메모리 컨트롤러에 의해 이용되는 어드레스와 디코더들(240A, 240B, 242A, 242B)에 의해 이용되는 하드웨어 어드레스 간에 변환을 위한 어드레스 인터페이스를 제공한다. 전력 제어 모듈(226)은 메모리 작업들 과정에서 워드 라인들 및 비트 라인들에 공급되는 전력 및 전압들을 제어한다. 한 실시예에서는, 전력 제어 모듈(226)은 공급 전압보다 더 큰 전압들을 생성할 수 있는 하나 이상의 전하 펌프(charge pump)를 포함한다.
한 실시예에서는, 제어 회로(220), 전력 제어 회로(226), 디코더 회로(224), 스테이트 머신 회로(222), 디코더 회로(242A), 디코더 회로(242B), 디코더 회로(240A), 디코더 회로(240B), 읽기/쓰기 회로들(230A), 읽기/쓰기 회로들(230B), 및/또는 컨트롤러(244) 중 어느 하나 또는 이들의 임의의 조합을 하나 이상의 관리회로들이라고 지칭할 수 있다.
도 4는 메모리 셀 어레이(200)의 예시적인 구조를 도시한 것이다. 한 실시예에서는, 메모리 셀들의 어레이가 M개의 메모리 셀들의 블록들로 나누어진다. 플래시 EEPROM 시스템에서는 통상적인 것처럼, 블록은 소거 단위이다. 즉, 각 블록은 함께 소거되는 최소 개수의 메모리 셀들을 포함한다. 각 블록은 전형적으로 몇 개의 페이지들로 나누어진다. 하나의 페이지는 프로그램 단위이다. 하나 이상의 데이터 페이지들이 전형적으로 한 행의 메모리 셀들에 저장된다. 예를 들면, 한 행에는 전형적으로 복수의 인터리빙된(interleaved) 페이지들이 들어있거나 또는 한 행이 하나의 페이지로 구성될 수도 있다. 한 구현예에서는, 한 페이지를 구성하는 모든 저장 소자들이 함께 읽히거나 프로그램될 것이다. 한 페이지는 하나 이상의 섹터들로부터 사용자 데이터(user data)를 저장할 수 있다. 한 섹터는 사용자 데이터의 편의상 단위로서 호스트에 의해 이용되는 논리적 개념으로서, 섹터에는 오버헤드 데이터(overhead data)가 들어있지 않고, 오버헤드 데이터는 컨트롤러에 국한된다. 오버헤드 데이터는 섹터의 사용자 데이터로부터 계산된 에러 정정 코드(Error Correction Code, ECC)를 포함할 수 있다. 컨트롤러의 일부(후술함)는 데이터가 어레이로 프로그램되고 있을 때 ECC를 계산하고, 또한 데이터가 어레이로부터 읽혀지고 있을 때 ECC를 체크한다. 그 대신에, ECC 및/또는 다른 오버헤드 데이터가 이들과 관련된 사용자 데이터와는 다른 페이지에 저장되거나, 심지어 다른 블록에 저장된다.
또 다른 실시예에서는, 비트 라인들이 짝수 비트 라인들과 홀수 비트 라인들로 나누어진다. 홀수/짝수 비트 라인 아키텍처에서는, 공통 워드 라인을 따라 홀수 비트 라인들에 연결된 메모리 셀들이 한번에 프로그램되는 반면, 공통 워드 라인을 따라 짝수 비트 라인들에 연결된 메모리 셀들은 다른 한번에 프로그램된다.
도 4는 메모리 어레이(200)의 블록 i를 더 자세히 도시한 것이다. 블록 i는 X+1개의 비트 라인들과 X+1개의 낸드 스트링들을 포함한다. 블록 i는 또한 64개의 데이터 워드 라인들(WL0 - WL63), 2개의 더미 워드 라인들(WL_d0, WL_d1), 드레인측 셀렉트 라인(SGD) 및 소오스측 셀렉트 라인(SGS)을 포함한다. 각 낸드 스트링의 한쪽 종단(terminal)은 드레인 셀렉트 게이트(셀렉트 라인 SGD에 연결됨)를 통하여 해당 비트 라인에 연결되며, 다른 한쪽 종단은 소오스 셀렉트 게이트(셀렉트 라인 SGS에 연결됨)를 통하여 소오스 라인에 연결된다. 64개의 데이터 워드 라인들과 2개의 더미 워드 라인들이 있기 때문에, 각 낸드 스트링은 64개의 데이터 메모리 셀과 2개의 더미 메모리 셀을 포함한다. 다른 실시예들에서는, 낸드 스트링들이 64개보다 많거나 적은 데이터 메모리 셀들과 2개의 더미 메모리 셀들을 포함할 수 있다. 데이터 메모리 셀은 사용자 데이터 또는 시스템 데이터를 저장할 수 있다. 더미 메모리 셀은 전형적으로 사용자 데이터 또는 시스템 데이터를 저장하는데 이용되지 않는다. 일부 실시예들에서는, 낸드 스트링마다 2개보다 많거나 적은 더미 메모리 셀들이 포함된다.
도 5는 감지 모듈(sense module)(480)로 지칭되는 코어부와 그리고 공통부(490)로 분할되는 개별 감지 블록(300)의 블록도이다. 한 실시예에서는, 각 비트 라인에 대해 별도의 감지 모듈(480)이 있을 것이고 한 세트의 복수의 감지 모듈들(480)에 대해서 하나의 공통부(490)가 있을 것이다. 한 예에서는, 한 감지 블록(300)이 하나의 공통부(490)와 8개의 감지 모듈(480)들을 포함한다. 한 그룹 내의 감지 모듈들 각각(480)은 데이터 버스(472)를 통해 관련 공통부(490)와 통신할 것이다. 더 상세한 내용에 관해서는, 미국특허출원공개 제2006/0140007호를 참조할 것이며, 이 특허출원은 본 명세서에서 전체로서 참조하여 원용한다.
감지 모듈(480)은 연결된 비트 라인에서의 전도 전류(conduction current)가 소정의 임계 레벨보다 위인지 아래인지를 판별하는 감지 회로(sense circuitry)(470)를 포함한다. 일부 실시예들에서는, 감지 모듈(480)은 보통 감지 증폭기(sense amplifier)라고 지칭되는 회로를 포함한다. 감지 모듈(480)은 또한 연결된 비트 라인의 전압 조건을 설정하는데 이용되는 비트 라인 래치(latch)(482)를 포함한다. 예를 들면, 비트 라인 래치(482)에 래치된 소정의 상태는 연결된 비트 라인을 프로그램 방지(program inhibit)로 지정된 소정의 상태(예컨대, Vdd)로 끌어올리게 할 수 있다.
공통부(490)는 프로세서(492), 데이터 래치들의 세트(494), 및 데이터 래치들의 세트(494)와 데이터 버스(420) 간에 연결된 I/O 인터페이스(496)를 포함한다. 프로세서(492)는 연산(computation)을 수행한다. 예를 들면, 그 기능들 중 하나는 감지된 메모리 셀에 저장된 데이터를 판별하고 그 판별된 데이터를 데이터 래치들의 세트에 저장하는 것이다. 데이터 래치들의 세트(494)는 읽기 작업 과정에서 프로세서(492)에 의해 판별된 데이터 비트들을 저장하는데 이용된다. 그것은 또한 프로그램 작업 과정에서 데이터 버스(420)로부터 입수된 데이터 비트들을 저장하는데 이용된다. 입수된 데이터 비트들은 메모리 내로 프로그램될 예정인 쓰기 데이터(write data)에 해당된다. I/O 인터페이스(496)는 데이터 래치들(494)과 데이터 버스(420) 간의 인터페이스를 제공한다.
읽기 또는 감지하는 과정에서, 시스템의 동작은 어드레스된 셀에 서로 다른 컨트롤 게이트 전압들을 공급하는 것을 제어하는 스테이트 머신(222)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응되는 다양한 기정의된 컨트롤 게이트 전압들을 거치면서, 감지 모듈(480)은 이들 전압들 중 하나에서 트립(trip)될 수 있고 출력이 버스(472)를 통해 감지 모듈(480)로부터 프로세서(492)로 제공될 것이다. 그 시점에, 프로세서(492)는 감지 모듈의 트립핑 이벤트(들)와 입력라인들(493)을 통해 스테이트 머신으로부터 가해진 컨트롤 게이트 전압에 관한 정보를 고려함으로써 결과적인 메모리 상태를 판별한다. 그런 다음 프로세서는 메모리 상태에 대한 이진 인코딩을 계산하여 그 결과 데이터 비트들을 데이터 래치들(494)로 저장한다. 코어부에 관한 또 다른 실시예에서는, 비트 라인 래치(482)가 이중 임무, 즉 감지 모듈(480)의 출력을 래치하는 래치로서 그리고 앞서 서술한 것처럼 비트 라인 래치로서의 임무를 모두 수행한다.
일부 실시예들에는 복수의 프로세서들(492)이 포함될 것으로 예상된다. 한 실시예에서는, 각 프로세서(492)는 출력 라인(도 5에는 미도시됨)을 포함할 것이고, 출력 라인들 각각은 함께 연결-논리합(wired-OR)으로 구성된다. 일부 실시예들에서는, 출력 라인들이 연결-논리합 라인에 연결되기 전에 반전(inverted) 된다. 이러한 구성은 연결-논리합(wired-OR) 라인을 받는 스테이트 머신이 프로그램되고 있는 모든 비트들이 원하는 레벨에 언제 도달했는지를 판별할 수 있기 때문에 프로그램 검증 절차 과정에서 프로그래밍 절차가 언제 완료되었는지에 대한 빠른 판별을 가능하게 해준다. 예를 들면, 각 비트가 원하는 레벨에 도달하면, 그 비트에 대해서 논리값 0이 연결-논리합 라인으로 보내질 것이다(또는 데이터 1이 반전된다). 모든 비트들이 데이터 0을 출력하면(또는 반전된 데이터 1), 스테이트 머신은 프로그래밍 절차를 종료해야 함을 알게 된다. 각 프로세서가 8개의 감지 모듈들과 통신하는 실시예들에서는, 스테이트 머신은 연결-논리합 라인을 8번 읽어야만 할 수도 있으며(일부 실시예들에서는), 또는 스테이트 머신이 연결-논리합 라인을 한 번만 읽으면 되도록 관련 비트 라인들의 결과들을 축적하는 논리회로가 프로세서(492)에 부가될 수도 있다.
프로그램 또는 검증 과정에서, 프로그램될 데이터는 데이터 버스(420)로부터 데이터 래치들의 세트(494)에 저장된다. 스테이트 머신의 제어하에서, 프로그램 작업은 어드레스된 메모리 셀들의 컨트롤 게이트들에 일련의 프로그래밍 전압 펄스들(점점 크기가 증가하는)을 가하는 것을 포함한다. 각 프로그래밍 펄스에 이어서 메모리 셀이 원하는 상태로 프로그램되었는지를 판별하는 검증 절차가 뒤따른다. 프로세서(492)는 원하는 메모리 상태와 비교하여 검증된 메모리 상태를 관찰한다. 두 개의 상태들이 서로 일치하면, 프로세서(492)는 프로그램 방지로 지정된 상태로 그 비트 라인이 끌어올려 지도록 비트 라인 래치(482)을 셋(set)한다. 이는 프로그래밍 펄스들이 그 컨트롤 게이트에 가해진다 하더라도 비트 라인에 연결된 셀에 대한 더 이상의 프로그램을 방지한다. 다른 실시예들에서는 프로세서가 초기에 비트 라인 래치(482)를 로드(load)하고 감지 회로가 검증 절차 과정에서 비트 라인 래치를 프로그램 방지 값(inhibit value)으로 설정한다.
데이터 래치 스택(494)은 감지 모듈에 대응되는 데이터 래치들의 스택을 가지고 있다. 한 실시예에서는, 감지 모듈(480)마다 3개 내지 5개(또는 다른 개수)의 데이터 래치들이 존재한다. 한 실시예에서는, 래치들은 각각 1 비트이다. 일부 실시예들에서는(하지만 필수적인 것은 아님), 데이터 래치들은 쉬프트 레지스터(shift register)로 구현되므로 여기에 저장된 병렬 데이터는 데이터 버스(420)에 대해서 직렬 데이터로 변환되며, 또한 그 반대의 경우로 된다. 한 바람직한 실시예에서는, 블록 쉬프트 레지스터를 형성하기 위하여 m개의 메모리 셀들의 읽기/쓰기 블록에 대응되는 모든 데이터 래치들은 함께 연결될 수 있으므로, 한 블록의 데이터가 직렬 전송에 의하여 입출력될 수 있다. 특히, 읽기/쓰기 모듈들의 뱅크(bank)는 조정되므로 그 세트의 데이터 래치들 각각은 마치 이들이 전체 읽기/쓰기 블록에 대한 쉬프트 레지스터의 일부인 것처럼 데이터 버스로 또는 데이터 버스로부터 차례로 데이터를 쉬프트할 것이다.
읽기 작업 및 감지 증폭기에 관한 추가적인 정보는 (1) "Non-Volatile Memory And Method With Reduced Source Line Bias Errors" 라는 제목의 미국등록특허 제7,196,931호, (2) "Non-Volatile Memory And Method with Improved Sensing" 이라는 제목의 미국등록특허 제7,023,736호, (3) 미국등록특허 제7,046,568호, (4) "Compensating for Coupling During Read Operations of Non- Volatile Memory" 라는 제목의 미국등록특허 제7,196,928호, (5) "Reference Sense Amplifier For Non-Volatile Memory" 라는 제목의 미국등록특허 제7,327,619호에서 찾을 수 있다. 위의 5개 특허 문헌들 모두는 본 명세서에서 전체로서 참조하여 원용한다.
성공적인 프로그래밍 절차(검증과 함께)의 마지막 단계에서, 적절한 대로 메모리 셀들의 임계 전압들은 프로그램된 메모리 셀들에 대한 하나 이상의 임계 전압 분포들 내에 있어야 하거나 또는 소거된 메모리 셀들에 대한 임계 전압 분포 내에 있어야만 한다. 도 6A는 각 메모리 셀이 4 비트의 데이터를 저장할 때 메모리 셀 어레이에 대한 데이터 상태들에 대응되는 예시적인 Vt 분포들을 도시한 것이다. 하지만 다른 실시예에서는, 메모리 셀마다 4개 비트보다 많거나 적은 데이터가 이용될 수도 있다. 도 6A는 데이터 상태들 0 내지 15에 대응되는 16개의 Vt 분포들을 도시한 것이다. 한 실시예에서는, 상태 0에서의 임계 전압들은 음이며 상태 1 내지 15에서의 임계 전압들은 양이다. 하지만, 상태들 1 내지 15 중 하나 이상의 상태들에서의 임계 전압들이 음일 수도 있다.
데이터 상태들 0 내지 15 각각의 사이에는 메모리 셀로부터 데이터를 읽는데 이용되는 읽기 기준 전압(read reference voltage)들이 존재한다. 예를 들면, 도 6A에는 데이터 상태들 0과 1 사이에 존재하는 읽기 기준 전압 Vr1, 그리고 데이터 상태들 1과 2 사이에 존재하는 읽기 기준 전압 Vr2가 도시되어 있다. 주어진 메모리 셀의 임계 전압이 각각의 읽기 기준 전압보다 높은지 또는 낮은지를 테스트함으로써, 시스템은 그 메모리 셀이 어떤 상태에 있는지를 판별할 수 있다.
각 데이터 상태 0 내지 15의 하위 가장자리 또는 그 인근에는 검증 기준 전압(verify reference volatge)들이 존재한다. 예를 들면, 도 6A에는 상태 1에 대한 Vv1, 상태 2에 대한 Vv2가 도시되어 있다. 메모리 셀들을 주어진 상태로 프로그램할 때, 시스템은 그 메모리 셀들이 검증 기준 전압 이상의 임계 전압을 가지는지를 테스트할 것이다.
도 6B는 또 다른 실시예를 예시한 것인데, 이 실시예에서는 정정 알고리듬이 에러 상태에 있는 일정 비율의 셀들을 다룰 수 있기 때문에 데이터 상태들 0 내지 15에 대응되는 Vt 분포들이 부분적으로 겹칠 수 있다. 유의할 점은 도시된 16개 상태들의 균일한 간격/폭과는 반대로, 데이터 보존 손실(data retention loss)에 대한 각기 다른 양의 민감도(susceptibility)에 부응하기 위해 여러 상태들이 서로 다른 간격들/폭들을 가질 수 있다는 것이다. 일부 실시예들에서는, 상태들 0 및/또는 15가 다른 상태들보다 폭이 더 넓다.
또한 유의할 점은 음의 임계 전압을 측정가능한 양의 범위로 쉬프트시키기 위해 소오스를 통한 보디 효과(body effect) 또는 보디 바이어싱(body biasing)이 이용되기 때문에 Vt 축은 컨트롤 게이트에 가해지는 실제 전압으로부터 옵셋이 더해질 수도 있다는 것이다.
도 7은 메모리 셀들을 소거하고 프로그램하기 위한 절차의 한 실시예를 서술하는 순서도이다. 도 7의 절차는 앞서 서술된 하나 이상의 관리 회로들에 의해 수행된다. 702 단계에서는, 시스템이 데이터 소거 요청(request)를 수신할 것이다. 한 실시예에서는, 전용 소거 명령(erase command)이 없을 수도 있다. 더 정확히 말하면, 시스템이 프로그램 요청에 응하여 소거(프로그램하기 전에)할 것이다. 704 단계에서는, 소거될 블록들이 선택된다. 706 단계에서는, 메모리 셀들이 소거된다.
도 7의 708 단계에서는, 시스템이 데이터 프로그램 요청을 수신할 것이다. 706 단계와 708 단계를 잇는 선은 점선으로 도시되었는데, 이는 두 단계들 사이에서 긴 시간 경과가 아마도 있을 수 있기 때문이다. 710 단계에서는, 메모리 셀들이 프로그램될 것이다. 710 단계에서 데이터 메모리 셀들은 당해 기술 분야에서 알려진 다양한 여러가지 프로그래밍 방법에 따라 프로그램될 수 있다. 본 명세서에서는 인근의 데이터 메모리 셀들이 프로그램된 후에 더미 메모리 셀에 하나 이상의 프로그래밍 펄스들을 가하는 기법들이 개시된다. 일부 실시예들에서는, 하나 이상의 프로그래밍 펄스들을 더미에 가하여 프로그램 과정에서 더미의 이웃 메모리 셀이 경험하는 더 작은 플로팅 게이트 커플링 효과를 보상해준다.
도 8은 메모리 셀들을 소거하고 그 메모리 셀들이 소거되었는지를 검증하는 절차(800)를 서술하는 순서도이다. 한 실시예에서는, 도 8의 절차(800)가 절차(700)의 704 단계의 다음 단계로서 이용된다. 802 단계에서는, 하나 이상의 소거 전압들이 가해진다. 한 구현예에서는, 802 단계가 충분한 시간 동안 p-웰을 소거 전압(예컨대, 20 볼트)으로 올리는 것과 소오스 및 비트 라인들을 플로팅(floating)으로 둔 채 선택된 블록의 워드 라인들을 접지시키는 것을 포함한다. 용량성 결합(capacitive coupling)으로 인해, 선택되지 않은 워드 라인들, 비트 라인들, 셀렉트 라인들 및 공통 소오스 라인도 역시 소거 전압의 상당한 비율까지 올려진다. 이와 같이 선택된 메모리 셀들의 터널 산화물층들에 강한 전기장이 가해지고, 전형적으로 Fowler-Nordheim 터널링 메카니즘에 의해 플로팅 게이트의 전자들이 기판 측으로 방출되면서 선택된 메모리 셀들의 데이터는 소거된다. 전자들이 플로팅 게이트로부터 p-웰 영역으로 전달되면서, 선택된 셀의 임계 전압은 낮춰진다. 소거는 전체 메모리 어레이 상에서, 개별 블록들 상에서, 또는 또 다른 단위의 셀들 상에서 수행될 수 있다.
804 단계에서는, 한 세트의 소거 검증 조건(erase verify condition)들이 메모리 셀들에 가해진다. 한 구현예에서는, 804 단계에 비트 라인을 접지로 방전하는 것이 포함되는데, 이는 드레인 측 셀렉트 게이트(SGD)를 턴온(turn on)함으로써 이루어질 수도 있다. 그런 다음, 영 전압(zero voltage)보다 큰 전압(예컨대, 2.2 V)이 공통 소오스 라인에 가해지고, 일정 전압(예컨대, 0 V)이 워드 라인들에 가해진다. 보디 효과로 인해 낸드 스트링에서 적어도 하나의 메모리 셀이 턴오프(turn off)될 때까지 주어진 낸드 스트링의 비트 라인 상에 전하가 축적된다.
806 단계에서는, 낸드 스트링들 각각이 감지되어 낸드 스트링 상의 메모리 셀들이 충분히 소거되었는지를 판별한다. 806 단계는 전하가 비트 라인 상에 축적되는 소정의 시간 동안 기다린 후에 수행된다. 한 구현예에서는, 해당 낸드 스트링 상의 임의의 메모리 셀들이 목표값보다 위의 Vt를 가지는 지를 판별하기 위해 주어진 비트 라인 상의 전압이 기준값과 비교된다. 목표값은 음의 값일 수 있다. 일부 구현예들에서는, 메모리 셀들이 -3V 정도로 소거된다.
한 실시예에서는, 낸드 스트링 상의 각 메모리 셀의 Vt가 목표 레벨에 도달하였다는 것이 검출되면, 해당 데이터 래치에 저장된 데이터가 논리값 "1"로 바뀐다. 낸드 스트링이 적절한 목표 레벨에 도달하지 못한 Vt를 갖는 적어도 하나의 메모리를 가지는 것이 검출되면, 해당 데이터 래치에 저장된 데이터는 바뀌지 않는다.
808 단계에서는, 충분한 낸드 스트링들이 소거 검증을 통과하였는지에 관한 판별이 행해진다. 한 구현예에서는, 일정 개수의 낸드 스트링들에 대해 소거 검증이 실패하는 것이 허용된다. 예를 들면, 32개보다 적은 낸드 스트링들에 대해 소거 검증이 실패했다면, 전체 소거 검증은 통과한 것이다. 소거를 통과했다면, 소거 분포를 압축하기 위해 소프트 프로그램을 수행하도록 도 9의 절차(900) 중 902 단계로 제어 흐름이 넘어간다.
808 단계에서, 소거 검증이 실패한 것으로 판별된다면, 810 단계에서 소거 전압이 증가된다. 소거 전압은 0.2 V, 0.5 V, 1.0 V 등과 같은 임의의 원하는 양만큼 증가될 수 있다. 802 단계에서 새로운 소거 전압이 가해진다.
도 9는 메모리 셀들을 소프트 프로그램하는 절차(900)를 서술하는 순서도이다. 한 실시예에서는, 절차(800)의 808 단계에서 메모리 셀들이 충분히 소거된 것으로 결정되면 도 9의 절차(900)가 이용된다. 902 단계에서는, 하나 이상의 소프트 프로그래밍 전압들이 메모리 셀들에 가해진다.
한 실시예에서는, 다음의 파라미터(parameter)들이 902 단계 과정에서 이용된다. 라벨(label)들은 도 4와 관련된다(Cpwell은 도 4에 미도시됨). Cpwell은 P웰에 가해지는 전압을 말한다. 이 실시예에서는, 동일한 소프트 프로그램 전압이 더미 워드 라인들(예컨대, WL_d1, WL_d0)과 데이터 워드 라인들(예컨대, WL0 - WL63)에 가해진다.
Figure pct00001
또 다른 실시예에서는, 다른 워드 라인들에 가해지는 것과는 다른 소프트 프로그램 전압이 드레인 측 더미 워드 라인(WL_d1)에 가해진다. 구체적으로, 더 낮은 소프트 프로그래밍 전압이 WL_d1에 가해진다. 이로 인해 더미 워드 라인 상의 메모리 셀들이 더 작게 소프트 프로그램된다. 도 14는 데이터 워드 라인들 상의 메모리 셀들과 더미 워드 라인들 상의 메모리 셀들에 대한 임계 전압 분포들에 있어서 예시적인 쉬프트들을 도시한 것이다. 예를 들어 도 14를 보면, 분포(1402)는 소프트 프로그래밍의 결과로서 소거된 분포(E)의 압축으로부터 유발되는 데이터 메모리 셀들에 대한 임계 전압 분포의 변화를 도시한 것이다. 분포(1405)는 소거된 분포(E)에서 메모리 셀들의 소프트 프로그래밍으로부터 유발되는 더미 메모리 셀들에 대한 임계 전압 분포의 변화를 도시한 것이다. 유의할 점은 더미 메모리 셀들이 그 임계 전압에 있어서 많은 변화를 받지 않는다는 것이다.
본 명세서의 다른 곳에서 논의된 것처럼, 프로그램 과정에서 더미의 이웃이 경험하는 더 작은 플로팅 게이트 커플링을 보상해주도록 데이터 메모리 셀들이 프로그램된 후에 하나 이상의 프로그램 전압들(예컨대, 펄스들)이 더미 메모리 셀에 가해질 수도 있다. 아래에서는 분포(1405)에 의해 도시된 것처럼 더미 메모리 셀들의 임계 분포를 더 낮게 가지는 것의 이점들에 대해 논의한다. 평균적으로, 더미 메모리 셀이 분포(1405)의 어느 곳으로부터 프로그램 상태 "A"의 어느 곳으로 프로그램되면, 데이터 메모리 셀이 압축된 소거 분포(1402)에서 상태 A로 프로그램되는 경우에 비해 그 임계 전압은 더 많이 증가된다. 그러므로, 더 많은 전하가 더미의 플로팅 게이트에 더해지고, 이로 인해 그 이웃 메모리 셀에 더 큰 플로팅 게이트 커플링 효과를 일으킨다. 하지만, 더미는 그래도 상태 A로 프로그램되어야만 한다. 그러므로, 더미에 가해지는 프로그램 전압 및/또는 프로그래밍 전압들의 개수에서 조금이라도 증가가 있다면 여분의 플로팅 게이트 효과가 조금이나마 달성될 수 있다. 결과적으로, 만약에 있다 하더라도 데이터 메모리 셀들 상의 추가적인 프로그램 디스터브(program disturb)는 최소한으로 하면서 추가의 플로팅 게이트 커플링 효과가 달성될 수 있다. 또 다른 대안으로서, 더미 메모리 셀들이 상태 A보다 작은 임계 전압으로 프로그램될 수 있으며 그래도 동일한 양의 플로팅 게이트 커플링 효과를 가진다. 하지만, 이 경우에 더 낮은 프로그램 전압 및/또는 더 적은 개수의 프로그래밍 전압들을 이용하는 것이 가능할 수 있다. 결과적으로, 더 작은 프로그램 디스터브를 가지면서 동일한 플로팅 게이트 커플링 효과를 달성하는 것이 가능할 수 있다.
아래의 테이블에 다른 워드 라인들과는 다른 소프트 프로그램 전압을 더미 워드 라인에 가하는 한 구현예에 대한 예시적인 파라미터 값들이 제공되어 있다. 이 예에서는, 드레인 측 셀렉트 라인(SGD)에 가까운 더미 워드 라인만이 더 낮은 소프트프로그램 전압을 받는다. 즉, 이 구현예에서는 소오스 셀렉트 게이트(SGS)에 가까운 더미 워드 라인이 데이터 워드 라인들과 동일한 소프트 프로그램 전압을 받는다. 그 이유는 일부 구현예에서는 WL0로부터 WL63으로 워드 라인들을 순차적으로 프로그램함으로 인해 WL63에서는 플로팅 게이트 커플링 효과의 차이가 있지만 WL0에서는 플로팅 게이트 커플링 효과의 차이가 없기 때문이다. 하지만, 원한다면 더미 워드 라인 WL_d0도 역시 더 낮은 소프트 프로그램 전압을 받을 수 있다.
Figure pct00002
더미 워드 라인에 가해지는 더 낮은 소프트 프로그램 전압은 더미 메모리 셀들이 데이터 워드 라인들보다 더 깊게 소거된 상태에 있게 할 임의의 편리한 전압일 수 있다. 한 예로서, 소프트 프로그래밍을 위해 데이터 워드 라인에 15 V가 가해진다면, 더미 워드 라인에는 0 V 내지 10 V 사이의 임의의 값이 가해질 수도 있다. 일부 구현예들에서는, 그 전압이 이미 이용가능한 편리한 값이다. 예를 들면, Vpass가 이용될 수 있다. 한 구현예에서는 Vpass는 대략 5 V이다.
904 단계에서는, 한 세트의 소프트 프로그램 검증 조건(program verify condition)들이 메모리 셀들에 가해진다. 한 구현예에서는, 비트 라인들이 접지되어 미리 방전된 다음에 영 전압(zero voltage)보다 높은 전압(예컨대, 2.2 V)이 공통 소오스 라인에 가해진다. 이는 전류가 소오스로부터 비트 라인들로 흐르게 하고 비트 라인들이 소오스 라인 전압으로 충전되게 한다. 보디 효과에 의해 낸드 체인에서 메모리 셀들 중 적어도 하나가 턴오프되면 비트 라인의 충전은 멈춘다. 일부 구현예들에서는, 감지가 낸드 스트링을 기초로 하여 수행된다. 즉, 주어진 낸드 스트링 상의 메모리 셀들 중 임의의 것이 일정값 위의 임계 전압을 가지는 지에 대한 판별이 행해진다. 하지만, 감지는 개별 워드 라인들을 기초로 수행될 수 있다.
906 단계에서는, 얼마나 많은 낸드 스트링들이 한계 전류(demarcation current)에 못 미치는 전도 전류를 가지는 지를 결정하기 위해 낸드 스트링들 각각이 감지된다. 낮은 전도 전류를 가지는 것은 그 낸드 스트링이 과하게 소프트 프로그램되었다는 것을 표시한다. 앞서 논의된 것처럼, 소프트 프로그래밍은 메모리 셀들이 일정 레벨 위의 Vt로 프로그램되도록 함이 없이 최저 Vts를 갖는 메모리 셀들의 Vts를 올리도록(nudge) 의도된 것이다. 그 레벨은 소거 목표 레벨일 수 있다. 하지만, 그 레벨은 더 높은 전압일 수 있다. 따라서, 소프트 프로그래밍을 멈춰야 하는지를 검증하는 한 기법은 얼마나 많은 낸드 스트링들에서 일정 레벨 위의 Vt를 갖는 적어도 하나의 메모리 셀이 있는지 테스트하는 것이다. 언제 소프트 프로그래밍을 멈출지를 판별하기 위해 다른 기법들이 이용될 수 있다. 906 단계는 전하가 비트 라인들에 축적되는 소정의 시간 동안 기다린 후에 수행된다. 한 구현예에서는, 비트 라인들 상의 전압들을 기준값과 비교하여 낸드 스트링들 중 임의의 것이 너무 많이 프로그램되었는지를 판별한다.
유의할 점은, 더미 워드 라인들이 더 낮은 소프트 프로그램 전압으로 프로그램되는 한 실시예에서는, 더미 메모리 셀들에서 그 임계 전압들이 실질적으로 증가해서는 안 된다는 것이다. 그러므로, 일반적으로 과하게 소프트 프로그램되는 것들은 데이터 메모리 셀들이어야 한다. 하지만, 더미 메모리 셀이 낸드 스트링을 과하게 소프트 프로그램되도록 하는 것일 가능성이 있다.
908 단계에서는, 906 단계의 결과들을 토대로 소프트 프로그래밍을 멈출지에 대해 판별한다. 예를 들면, 얼마나 많은 낸드 스트링들이 한계 전류에 못 미치는 전도 전류를 가지는 지에 대한 판별이 행해진다. 너무 많은 낸드 스트링들이 낮은 전도 전류를 가진다면, 소프트 프로그래밍을 멈춰야 한다. 소프트 프로그래밍을 멈춰야 한다면, 절차(900)는 끝난다.
908 단계에서, 추가의 소프트 프로그래밍을 원하는 것으로 판별되면, 910 단계에서 소프트 프로그래밍 전압을 증가시킨다. 소프트 프로그래밍 전압은 0.1 V, 0.2 V 등과 같은 임의의 원하는 양만큼 증가될 수 있다. 902 단계에서 새로운 소프트 프로그래밍 전압이 가해진다.
소프트 프로그래밍 절차(900)는 그 절차가 끝날 때까지 블록의 각 낸드 스트링을 프로그램하는 것으로 서술되었다. 하지만, 각 낸드 스트링이 절차 내내 프로그래밍을 계속 받는 것이 필수적인 것은 아니다. 한 실시예에서는, 주어진 낸드 스트링이 충분히 프로그램되었을 때마다, 더 이상 프로그래밍이 안 되도록 락 아웃(lock out)된다.
도 10은 선택된 워드 라인에 연결된 메모리 셀들을 프로그램하기 위한 절차(1000)의 한 실시예를 서술하는 순서도이다. 한 실시예에서는, 도 10의 절차가 한 페이지의 데이터를 프로그램하는데 이용된다. 따라서, 절차(700)의 710 단계에서 쓰여지고 있는 블록에서 서로 다른 페이지들을 프로그램하기 위해 도 10의 절차가 여러번 이용될 수 있다.
도 10의 절차의 한 구현예에서는, 프로그램하기 전에 메모리 셀들이 소거된다. 도 8의 절차(800)가 메모리 셀들을 소거하는데 이용될 수 있다. 그런 다음, 도 9의 절차(900)가 소거 분포를 압축하도록 메모리 셀들을 소프트 프로그램하는데에 이용될 수 있다. 소거는 전체 메모리 어레이 상에서, 개별 블록들 상에서, 또는 또 다른 단위의 셀들 상에서 수행될 수 있다. 한 블록의 메모리 셀들이 소거된 후에, 본 명세서에서 서술된 것처럼 여러 메모리 셀들이 프로그램될 수 있고 또는 부분적으로 프로그램될 수 있다. 유의할 점은 한 블록의 각 워드 라인이 프로그램되기 전에 소거가 수행되어야 할 필요는 없을 것이라는 점이다. 더 정확히 말하자면, 블록이 소거될 수 있고 그런 다음 각 워드 라인이 워드 라인들을 프로그램하는 사이에 소거없이 프로그램될 수 있다.
1006 단계에서는, "데이터 로드(data load)" 명령이 컨트롤러(244)에 의해 보내져 스테이트 머신(222)으로 입력된다. 1008 단계에서는, 페이지 어드레스를 지정하는 어드레스 데이터가 디코더(224)로 제공된다. 1010 단계에서는, 그 어드레스된 페이지에 대한 한 페이지의 프로그램 데이터가 프로그래밍을 위해 입력된다. 예를 들면, 한 실시예에서는 528 바이트의 데이터가 입력될 수 있다. 그 데이터는 선택된 비트 라인들에 대한 적절한 레지스터들/래치들에 래치된다. 일부 실시예들에서는, 그 데이터가 검증 작업들에 이용되도록 선택된 비트 라인들에 대한 제2 레지스터에 또한 래치된다. 1012 단계에서는, "프로그램(program)" 명령이 컨트롤러(244)로부터 수신되어 스테이트 머신(222)으로 제공된다.
"프로그램" 명령에 의해 트리거(trigger)되면, 1010 단계에서 래치된 데이터는 적절한 워드 라인에 가해지는 전압들을 이용하여 스테이트 머신(222)에 의해 제어되는 선택된 메모리 셀들로 프로그램될 것이다. 1014 단계에서, 프로그래밍 신호, "Vpgm"(예컨대, 일련의 전압 펄스들)이 시작 크기(예컨대, ~12 V 또는 다른 적합한 레벨)로 초기화되고 스테이터 머신(222)에 의해 유지되는 프로그램 카운터(program counter, PC)가 0으로 초기화된다. 1016 단계에서, 프로그래밍 신호(Vpgm)의 펄스가 선택된 워드 라인에 가해진다. 선택되지 않은 워드 라인들은 "Vpass"라고 지칭되는 하나 이상의 부스트 전압(boosting voltage)들을 받는다. 특정 데이터 래치에 해당 메모리 셀이 프로그램되어야 한다고 표시하는 논리값 "0"이 저장되면, 해당 비트 라인은 접지된다. 반면에, 특정 래치에 해당 메모리 셀이 현 데이터 상태로 남아있어야 한다고 표시하는 논리값 "1"이 저장되면, 프로그램 방지를 위해 해당 비트 라인은 VDD로 연결된다. 유의할 점은 프로그래밍 신호는 한 세트의 전압 펄스들을 포함하며, 펄스들의 크기는 각 연속되는 펄스마다 증가된다는 것이다. 전압 펄스들 간에 한 세트의 검증 펄스들이 존재한다.
1018 단계에서, 앞서 논의된 것처럼 선택된 메모리 셀들의 상태들이 적절한 세트의 목표 레벨들을 이용하여 검증된다. 선택된 셀의 임계 전압이 적절한 목표 레벨에 도달되었다는 것이 검출되면, 해당 데이터 래치에 저장된 데이터가 논리값 "1"로 바뀐다. 임계 전압이 적절한 목표 레벨에 도달되지 않았다는 것으로 검출되면, 해당 데이터 래치에 저장된 데이터는 바뀌지 않는다. 이런 방식으로, 해당 데이터 래치에 논리값 "1"이 저장된 비트 라인은 프로그램될 필요가 없다. 모든 데이터 래치들이 논리값 "1"을 저장하고 있으면, 스테이트 머신(222)은 선택된 셀들 모두 프로그램된 것으로 안다. 1020 단계에서, 모든 데이터 래치들이 논리값 "1"을 저장하고 있는지 체크한다. 그렇다면, 선택된 메모리 셀들 모두 그 목표 상태들로 프로그램되었고 검증되었기 때문에 프로그래밍 절차는 완료되고 성공적이다. 1022 단계에서 "PASS" 상태가 보고된다. 유의할 점은 일부 구현예들에서는, 1020 단계에서 적어도 소정 개수의 데이터 래치들이 논리값 "1"을 저장하고 있는지 체크한다는 것이다. 이 소정의 개수는 모든 데이터 래치들의 개수보다 적을 수 있으며, 따라서 모든 메모리 셀들이 적절한 검증 레벨들에 도달하기 전에 프로그래밍 절차가 멈추게 할 수 있다. 성공적으로 프로그램되지 않은 메모리 셀들은 읽기 절차 과정에서 에러 정정을 이용하여 바로 잡을 수 있다.
1020 단계에서, 모든 데이터 래치들이 논리값 "1"을 저장하고 있는 것으로 판별되지 않으면, 프로그래밍 절차는 계속된다. 1024 단계에서, 프로그램 카운터(PC)가 프로그램 한계값(program limit value)과 대조된다. 프로그램 한계값의 한 예는 20이지만, 여러 구현예들에서 다른 값들이 이용될 수 있다. 프로그램 카운터(PC)가 프로그램 한계값보다 적지 않으면, 1028 단계에서 성공적으로 프로그램되지 않았던 메모리 셀들의 개수가 소정의 개수보다 같거나 적은지 판별한다. 성공적으로 프로그램되지 못한 메모리 셀들의 개수가 소정의 개수보다 같거나 적으면, 프로그래밍 절차는 패스된 것으로 표시되고 1030 단계에서 PASS 상태가 보고된다. 많은 경우들에 있어서, 성공적으로 프로그램되지 않은 메모리 셀들은 읽기 절차 과정에서 에러 정정을 이용하여 바로 잡을 수 있다. 하지만, 성공적으로 프로그램되지 않은 메모리 셀들의 개수가 소정의 개수보다 크면, 프로그램 절차는 실패한 것으로 표시되고 1032 단계에서 FAIL 상태가 보고된다. 1024 단계에서 프로그램 카운터가 프로그램 한계값(예컨대, 20)보다 적은 것으로 판별되면, 1026 단계에서 다음 Vpgm 전압 펄스의 크기가 스텝 크기(step size)(예컨대, 0.1 내지 0.5 볼트 스텝 크기)만큼 증가되고 프로그램 카운터가 올라간다. 1026 단계 후에, 절차는 루프를 형성하며 1016 단계로 돌아가서 다음 Vpgm 전압 펄스를 가한다.
일반적으로, 검증 작업들(도 10의 1018 단계 동안에 수행되는 검증 작업들과 같은) 및 읽기 작업들 과정에서, 선택된 워드 라인이 어떤 전압에 연결되는데, 이 전압의 레벨은 대상 메모리 셀의 임계 전압이 이러한 레벨에 도달되었는지 판별하기 위하여 읽기 및 검증 작업 각각에 대해 특정된다. 워드 라인 전압을 가한 후에, 메모리 셀이 워드 라인에 가해진 전압에 응하여 턴온되었는지 판별하기 위해 그 메모리 셀의 전도 전류를 측정한다. 전도 전류가 일정 값보다 큰 것으로 측정되면, 그 메모리 셀이 턴온된 것이고 워드 라인에 가해진 전압이 메모리 셀의 임계 전압보다 큰 것으로 가정한다. 전도 전류가 일정 값보다 큰 것으로 측정되지 않으면, 그 메모리 셀은 턴온되지 않은 것이고 워드 라인에 가해진 전압은 그 메모리 셀의 임계 전압보다 크지 않은 것으로 가정한다.
도 11은 비휘발성 메모리 셀들을 가동하는 한 실시예를 도시한 것이다. 1102 단계에서는, 메모리 셀들이 소거된다. 도 8의 절차(800)가 메모리 셀들을 소거하는데 이용될 수 있다. 그런 다음, 도 9의 절차(900)가 소거 분포를 압축하기 위해 메모리 셀들을 소프트 프로그램하는데 이용될 수 있다. 전형적으로, 하나 이상의 메모리 셀 블록들이 한번에 소거된다.
1104 단계에서는, 데이터 워드 라인들이 프로그램된다. 한 구현예에서는, 데이터 워드 라인들이 WL0로부터 WL63으로 순차적으로 프로그램된다. 도 11은 한 워드 라인과 관련되는 메모리 셀들을 프로그램하기 위한 절차(1100)의 한 실시예를 도시한 것이다. 절차(1100)는 각 데이터 워드 라인에 대해 한번 이상 수행될 수도 있다. 예를 들면, 절차(1100)는 한 페이지의 데이터를 프로그램하는데 이용될 수 있다. 주어진 워드 라인은 하나 이상의 페이지들을 가질 수 있다. 따라서, WL0 상의 한 페이지 데이터를 프로그램하고, 다음으로 WL1 상의 또 다른 한 페이지 데이터를 프로그램하는 등 WL63이 프로그램될 때까지 절차(1100)가 이용될 수 있다. 하지만, 반드시 WL0로부터 WL63으로 순차적으로 프로그램해가야 하는 것은 아니다.
1106 단계에서는, 더미 워드 라인의 의사 프로그래밍(pseudo programming)이 수행된다. 예를 들면, WL_d1이 의사 프로그램된다. 의사 프로그래밍은 마치 메모리 셀들이 프로그램되고 있는 것처럼 하나 이상의 프로그래밍 전압들이 더미 워드 라인에 가해지는 것을 의미한다. 그러므로, 더미 메모리셀들의 임계 전압 뿐만 아니라, 더미 메모리 셀들의 플로팅 게이트 상의 전하도 영향을 받는다. 게다가, 프로그래밍 전압들은 일정 임계 전압을 야기하도록 의도될 수 있다. 하지만, 데이터는 더미 메모리 셀들에는 저장되지 않는다. 여기서, "의사(pseudo)" 프로그램 전압 등의 용어는 더미 워드 라인의 메모리 셀들을 의사 프로그램할 때 더미 워드 라인에 가해지는 전압을 지칭한다.
한 실시예에서는, 하나의 단일 프로그래밍 전압이 더미 워드 라인에 가해진다. 하지만, 더 많은 단일 프로그래밍 전압이 더미 워드 라인에 가해질 수 있다. 도 12의 절차(1200)는 하나 이상의 단일 프로그래밍 전압들을 더미 워드 라인에 가하는 한 실시예를 도시한 것이다. 이 경우에 검증은 수행될 필요가 없다(즉, 1108 단계는 수행안됨).
임의적인 단계인 1108 단계에서는, 더미 워드 라인의 의사 프로그래밍이 검증된다. 도 13의 절차(1300)는, 더미 메모리 셀들의 임계 전압들이 목표 레벨에 도달했는지를 검증하는 것과 함께, 더미 워드 라인을 의사 프로그래밍하는 한 실시예를 도시한 것이다.
도 12의 절차(1200)는 하나의 단일 프로그래밍 전압을 더미 워드 라인에 가하는 한 실시예를 도시한 것이다. 1208 단계에서는, 프로그램될 더미 워드 라인을 지정하는 어드레스 데이터가 디코더(224)에 제공된다.
1210 단계에서, 더미 워드 라인에 대한 "의사(pseudo)" 프로그램 데이터가 프로그래밍을 위해 입력된다. 유의할 점은 그 목적이 특정한 데이터를 더미 메모리 셀들로 프로그램하는 것이 아니라, 임계 전압들을 일정 목표 레벨로 올리는 것이라는 점이다. 따라서, 의사 프로그램 데이터의 목적은 더미 메모리 셀들과 관련된 비트 라인들이 프로그램 방지되지 않도록 보장하는 것이다. 예를 들면, 한 구현예에서는, 해당 더미 메모리 셀이 "의사 프로그램"되어야 한다는 것을 표시하는 논리값 "0"이 각 데이터 래치에 저장된다. 반면에, 한 구현예에서는, 논리값 "1"이 주어진 데이터 래치에 저장되었다면, 해당 더미 메모리 셀은 프로그램 방지될 것이고, 이는 원하는 바가 아니다.
1212 단계에서, 프로그램 명령이 컨트롤러(244)로부터 수신되어 스테이트 머신(222)으로 제공된다. 프로그램 명령에 의해 트리거되면, 더미 메모리 셀들의 임계 전압은 더미 워드 라인에 가해지는 전압을 이용하여 스테이트 머신(222)의 제어 하에서 증가될 것이다.
1214 단계에서, 프로그래밍 신호, "Vpgm"(예컨대, 단일 전압 펄스)이 시작 크기(예컨대, 0 내지 10 V의 범위 또는 다른 적합한 레벨)로 초기화된다. 의사 프로그래밍 전압은 절차(1000)에서 이용된 첫번째 프로그래밍 전압의 크기와 반드시 동일하지는 않다. 한 구현예에서는, 의사 프로그래밍 전압이 절차(1000)에서 이용되는 첫번째 프로그래밍 전압보다 크기에 있어서 상당히 낮다. 다른 크기들도 또한 이용될 수 있다.
적합한 약한 프로그래밍 전압을 결정하는 근거는 다음과 같을 수 있다. 더미 워드 라인이 소거된 상태로 유지되면 마지막 데이터 워드 라인(예컨대, WL63) 상의 프로그램된 메모리 셀들은 다른 워드 라인들 상의 메모리 셀들 만큼 플로팅 게이트 커플링 효과를 받지 않을 수 있다. 예를 들면, WL63 상의 메모리 셀은 WL62 상의 3개의 셀들, 더미 워드 라인 상의 3개의 더미 메모리 셀들 및 WL63 상의 2개의 셀들과 이웃한다. 더미 메모리 셀들이 소거된 상태로 유지되면, WL63 상의 메모리 셀들은 더미 메모리 셀들의 플로팅 게이트 상의 전하의 변화로 인한 플로팅 게이트 효과를 전혀 경험하지 않을 것이다.
한 구현예에서는, 워드 라인들이 WL0로부터 WL63으로 순차적으로 프로그램된다. 이 구현예에서는, 각 연속된 워드 라인이 프로그램되면서, 이전 워드 라인 상의 메모리 셀들이 일정 양의 플로팅 게이트 커플링 효과를 경험할 것이다. 예를 들면, 먼저 WL0 상의 메모리 셀들이 그 목표 레벨들로 프로그램되고 검증된다. 다음으로, WL1 상의 메모리 셀들이 각각의 목표 레벨들로 프로그램되고 검증된다. 목표 레벨들은 저장될 데이터에 따라 결정될 것이다. 따라서, WL1 상의 메모리 셀들을 프로그램함으로써 그 메모리 셀들의 플로팅 게이트 상의 전하가 변경된다. 한 구현예에서는, 평균적으로 WL0 상의 메모리 셀이 WL1의 프로그래밍으로 인해 약 0.2 V만큼 임계 전압이 증가될 것으로 예상된다. 유의할 점은 이 값은 평균값이고 WL1 상의 메모리 셀들의 플로팅 게이트에 더해지는(또는 제거되는) 실제 전하량에 따라 변화될 것이라는 점이다.
하지만, 유의할 점은 WL63 상의 메모리 셀들을 프로그램한 후에는, 프로그램할 또 다른 데이터 워드 라인이 없다는 것이다. 그러므로, 더미 워드 라인 상의 메모리 셀들이 소거된 상태로 유지되면, WL63 상의 메모리 셀들은 앞서 논의된 것처럼 WLn+1 상의 메모리 셀들을 프로그램함으로 인한 임계 전압의 피상적 증가는 경험하지 않을 것이다.
마지막 워드 라인 상의 메모리 셀들이 경험하는 플로팅 게이트 커플링 효과의 차이를 보상해주는데 이용될 수 있는 한 기법은 마지막 워드 라인 상의 메모리 셀들의 임계 전압을 증가시키는 것이다. 예를 들면, WL63 상의 메모리 셀을 주어진 상태로 프로그램할 때, 그 상태로 프로그램되는 다른 메모리 셀들보다 약 0.2 V만큼 고의적으로 더 높게 임계 전압을 설정할 수 있다. 하지만, 메모리 셀들을 더 높은 임계 전압으로 프로그램하면 추가적인 프로그래밍 전압들이 들어갈 수 있다. 따라서, WL63 상의 메모리 셀들을 프로그램하는 것이 다른 워드 라인들 상의 메모리 셀들의 경우보다 더 오래 걸릴 수 있다. 게다가, 임계 전압을 증가시키면 WL63 상의 메모리 셀들의 전자들의 수가 증가될 수 있다. 전자장의 관점에서 보면, 마지막 워드 라인 상의 메모리 셀들은 다른 워드 라인 상의 메모리 셀들보다 더 높은 전자장을 가진다(동일한 프로그램 상태에 대하여). 유의할 점은 주어진 메모리 셀의 플로팅 게이트가 다른 것들보다 더 많은 전자들을 가진다면, 더 많은 정도로 데이터 보존 문제를 겪을 수 있다. 즉, 플로팅 게이트 상의 전하 손실률은 플로팅 게이트 상의 전하량에 비례할 수 있다.
하지만, 마지막 워드 라인(즉, 더미 WL의 이웃 WL) 상의 메모리 셀들이 프로그램된 후에 더미 메모리 셀들의 임계 전압이 소거된 상태로부터 증가되면, 마지막 워드 라인 상의 메모리 셀들은 일정한 플로팅 게이트 커플링 효과를 받게될 것이다. 즉, 마지막 메모리 셀들에서 그 피상 임계 전압들이 일정 양만큼 증가될 것이다. 프로그래밍으로 인해 다른 워드 라인들 상의 메모리 셀들이 평균적으로 받게되는 것과 대략 동일한 양만큼 플로팅 게이트 커플링 효과로 인한 임계 전압의 피상적 증가를 마지막 메모리 셀들이 경험하도록 그 양이 선택될 수 있다.
메모리 디바이스의 성능 검증(engineering qualification)을 기초로 하여, 더미 메모리 셀들의 임계 전압이 주어진 프로그래밍 전압에 대해 얼마나 많이 변할 것으로 예상되는지에 대해 판별할 수 있다. 실제로, 일부 메모리 셀들은 다른 것들보다 "더 빠를(faster)" 수 있고 또는 "더 느릴(slower)" 수 있다. 즉, 일부 메모리 셀들은 주어진 프로그램 전압에 대하여 다른 것들보다 더 많은 임계 전압의 변화를 경험할 수 있다.
1216 단계에서, 프로그래밍 신호(Vpgm)의 하나 이상의 펄스들이 더미 워드 라인에 가해진다. 한 구현예에서는, 하나의 단일 펄스가 가해진다. 또 다른 구현예에서는, 하나보다 많은 펄스가 가해진다. 하나보다 많은 펄스가 가해질 때, 각 펄스들의 크기는 동일할 수 있다. 그 대신에, 펄스들이 서로 다른 크기를 가질 수도 있다. 선택되지 않은 워드 라인들은 "Vpass"로 지칭되는 하나 이상의 부스트 전압(boosting voltage)들을 받을 수 있다. 각 데이터 래치에 논리값 "0"이 저장되었기 때문에, 각 비트 라인은 접지된다. 달리 말하면, 비트 라인들 중 어느 것도 프로그램 방지를 위해 VDD로 연결되지 않는데, 프로그램 방지는 주어진 래치에 논리값 "1"이 저장된 경우일 것이다.
이 구현예에서는, 더미 메모리 셀들의 임계 전압들이 주어진 레벨에 도달했는지에 대한 검증은 수행되지 않는다. 따라서, 더미 워드 라인을 프로그램하는 것은 아주 효율적인 절차이다.
도 13은, 더미 메모리 셀들의 임계 전압을 검증하는 것과 함께, 더미 메모리 셀들을 의사 프로그램하는 절차(1300)의 한 실시예를 도시한 것이다. 더미 메모리 셀들은 목표 레벨로 프로그램되며, 이 목표 레벨은 보상해주지 않을 경우에 더미 워드 라인 바로 옆의 워드 라인 상의 메모리 셀들이 경험하는 더 작은 플로팅 게이트 커플링 효과를 보상해주도록 설계된다. 절차(1300)에 대한 목표 임계 전압은 절차(1200)의 목표 임계 전압과 유사할 수 있다. 즉, 마지막 워드 라인 상의 메모리 셀들의 피상 임계 전압을 목표량만큼 증가시켜주도록 목표가 선택된다.
한 실시예에서는, WL_d1(드레인 측 셀렉트 라인(SGD)의 바로 옆 더미)이 프로그램된다. 소오스 측 셀렉트 게이트 라인(SGS) 바로 옆 더미 워드 라인(WL_d0)과 관련된 메모리 셀들은 반드시 프로그램할 필요가 없을 수도 있다. 이는 WL1 상의 메모리 셀들이 나중에 프로그램될 때 WL0 상의 메모리 셀들이 상당한 플로팅 게이트 커플링을 경험할 수 있기 때문일 수 있다. 하지만, 프로그래밍 순서에 따라, 소오스 측 더미 워드 라인(WL_d0)에 의사 프로그램 전압을 가하는 것이 이득일 수도 있다. 1208 내지 1214 단계들은 도 12의 절차(1200)의 것과 동일하다. 1360 단계에서는, 의사 프로그램 전압이 더미 워드 라인에 가해진다. 의사 프로그래밍 전압은 목표 임계 전압 레벨이 오버슈트되지 않을 수 있도록 선택된다.
1362 단계에서는, 더미 메모리 셀들의 임계 전압이 검증된다. 한 구현예에서는, 목표 레벨이 데이터 상태들 중 하나에 대응된다. 예를 들면, 도 6A를 보면 목표 레벨이 0 내지 15의 상태들 중 임의의 것에 대한 목표 검증 레벨일 수 있다. 2개의 특정 검증 레벨들(Vv1, Vv2)이 데이터 상태들 1 및 2에 대해 각각 도시되어 있다. 유의할 점은 일부 구현예들에서는, 데이터 상태들이 더 많거나 더 적게 존재한다는 것이다. 예를 들면, 한 구현예에서는, 4개의 상태들, 소거된 상태(E) 및 메모리 셀들이 프로그램되는 3개의 상태들(A, B, C)이 존재한다. 하지만, 목표 레벨이 데이터 상태들 중 하나에 대한 검증 레벨에 반드시 대응되는 것은 아니다. 예를 들면, 원하는 플로팅 게이트 커플링의 양을 달성하기 위하여 더미 메모리 셀들이 데이터 상태들 중 하나에 대한 검증 레벨에 매우 가까운 임계 전압으로 프로그램되어야 하는지 판별될 수 있다. 이 경우에, 해당 검증 레벨이 이용될 수 있다. 하지만, 일부 경우들에서는, 더미에 대한 목표 임계 레벨에 가까운 데이터 상태 검증 레벨이 존재하지 않을 것이고, 이 경우에는 별도의 더미 임계 전압 검증 레벨이 설정될 수 있다.
1362 단계에서 주어진 더미 셀의 임계 전압이 적절한 목표 레벨에 도달했다는 것이 검출되면, 해당 데이터 래치에 저장된 데이터는 논리값 "1"로 바뀐다. 임계 전압이 적절한 목표 레벨에 도달하지 않았다면, 해당 데이터 래치에 저장된 데이터는 바뀌지 않는다. 이런 방식으로, 해당 데이터 래치에 논리값 "1"이 저장된 비트 라인은 프로그램될 필요가 없다. 모든 데이터 래치들이 논리값 "1"을 저장하고 있을 때, 스테이트 머신(222)은 모든 더미 셀들이 의사 프로그램된 것으로 안다.
1364 단계에서는, 모든 데이터 래치들이 논리값 "1"을 저장하고 있는지를 체크한다. 그렇다면, 이웃하는 워드 라인(예컨대, WL63) 상의 메모리 셀들에 원하는 양의 플로팅 게이트 커플링 효과를 유발하기 위하여 선택된 모든 더미 메모리 셀들이 원하는 임계 전압으로 프로그램되었고 검증되었기 때문에 의사 더미 프로그래밍 절차는 완료된다. 1366 단계에서 "PASS" 상태가 보고된다. 유의할 점은 일부 구현예들에서는, 1364 단계에서 적어도 소정 개수의 데이터 래치들이 논리값 "1"을 저장하고 있는지 체크한다는 것이다. 이 소정의 개수는 모든 데이터 래치들의 개수보다 적을 수 있어서, 모든 더미 메모리 셀들이 그 적절한 검증 레벨들에 도달하기 전에 프로그래밍 절차가 멈추게 할 수 있다. 이것은 일부 경우에 절차가 더 빨리 완료되도록 한다.
1364 단계에서, 모든 데이터 래치들이 논리값 "1"을 저장하고 있지 않는 것으로 판별된다면, 의사 프로그래밍 절차는 계속된다. 1368 단계에서, 프로그램 카운터(PC)가 프로그램 한계값과 대조된다. 프로그램 한계값의 한 예는 20이지만, 여러 구현예들에서는 다른 값들이 이용될 수 있다. 1368 단계에서 프로그램 카운터(PC)가 프로그램 한계값(예컨대, 20)보다 큰 것으로 판별되면, 절차는 끝난다. 더미 메모리 셀들은 데이터를 저장하는데 이용되지 않기 때문에, 데이터가 더미 워드 라인들로부터 잘못 읽힐 수는 없다. 하지만, 이웃 워드 라인들 상의 메모리 셀들에 대한 플로팅 게이트 커플링 효과의 양은 원하는 만큼 크지 않을 수 있다.
하지만, 1368 단계에서 프로그램 카운터가 프로그램 한계값(예컨대, 20)보다 적은 것으로 판별되면, 다음 Vpgm 전압의 크기는 스텝 크기(예컨대, 0.2 내지 0.4 볼트 스텝 크기)만큼 증가되고 1372 단계에서 프로그램 카운터(PC)가 올라간다. 1372 단계 후에, 절차는 루프를 형성하며 1360 단계로 돌아가서 다음 Vpgm 전압 펄스를 가한다.
읽기 또는 검증 작업 과정에서 메모리 셀의 전도 전류를 측정하는 방법은 많이 존재한다. 한 예에서는, 메모리 셀의 전도 전류가 감지 증폭기 내의 전용 커패시터를 충전하거나 방전하는 비율에 의해 측정된다. 또 다른 예에서는, 선택된 메모리 셀의 전도 전류로 인해 그 메모리 셀을 포함하는 낸드 스트링이 해당 비트 라인을 방전할 수 있다(또는 방전하는데 실패한다). 방전되었는지 여부를 보기 위해 일정 시간 후에 비트 라인 상의 전압이 측정된다.
위의 예들은 낸드형 플래쉬 메모리에 대하여 제공된다. 하지만, 본 발명의 원리들은 현재 존재하는 것들과 개발중인 신기술을 이용하도록 고려된 것들을 포함하여 다른 유형의 비휘발성 메모리들에도 적용된다. 예를 들면, 한 구현예에서는, 메모리 셀들이 MONOS(metal-oxide-nitride-oxide-silicon)이다. MONOS 디바이스의 경우에는, 플로팅 게이트 커플링 효과가 낸드 디바이스들에 비해서 훨씬 더 작은 문제일 수 있다. 하지만, MONOS 디바이스는 채널 대 인접한 전하 트랩층(charge trap layer, CTL)의 커플링 효과의 문제를 겪을 수 있다. MONOS에서의 채널 대 인접한 CTL 문제는 낸드에서의 채널 대 플로팅 게이트 커플링 문제와 유사할 수 있다. 예를 들면, 메모리 셀 n+1의 CTL이 메모리 셀 n의 CTL 후에 프로그램되면, 메모리 셀 n의 임계 전압이 증가될 수 있다. 본 발명의 실시예들은 이 채널 대 인접 CTL 문제를 감소시키거나 제거한다.
본 발명의 전술한 상세한 설명은 예시 및 설명의 목적으로 제시되었다. 상기 상세한 설명은 본 발명을 빠짐없이 완전히 제시한 것이라거나 본 발명을 개시된 특정 형태로 제한하고자 의도된 것이 아니다. 상기 교시 내용의 관점에서 수많은 수정 및 변경이 가능하다. 상기 서술된 실시예들은 본 발명의 원리 및 그 실제적인 응용을 가장 잘 설명함으로써 당해 기술분야의 숙련된 자들이 다양한 실시예들에서 그리고 예기된 특정 용도에 적합하게 다양한 수정들을 가하여 본 발명을 가장 잘 이용할 수 있도록 선택되었다. 본 발명의 범위는 본 명세서에 첨부된 청구항들에 의해 정의되도록 의도하는 바이다.

Claims (15)

  1. 복수의 비휘발성 저장 소자들의 소거를 수행하는 단계(1102)와, 여기서 상기 복수의 비휘발성 저장 소자들의 세트는 데이터 비휘발성 저장 소자들과 상기 데이터 비휘발성 저장 소자들 중 하나와 이웃인 더미(dummy) 비휘발성 저장 소자를 포함하며;
    상기 데이터 비휘발성 저장 소자들을 프로그램하는 단계(1104)와, 여기서 상기 데이터 비휘발성 저장 소자들의 적어도 일부는 상기 데이터 비휘발성 저장 소자들 중 또 다른 것을 후속적으로 프로그램함으로써 발생하는 커플링 효과(coupling effect)로 인하여 임계 전압(threshold voltage)의 피상적 증가(apparent increase)를 경험하며; 그리고,
    상기 데이터 비휘발성 저장 소자들을 프로그램한 후에 상기 더미 비휘발성 저장 소자에 프로그래밍 전압을 가하는 단계(1106)를 포함하며, 상기 프로그래밍 전압은 상기 더미 비휘발성 저장 소자의 상기 임계 전압을 상기 데이터 비휘발성 저장 소자들 중 다른 데이터 비휘발성 저장 소자들을 프로그램하는 과정에서 상기 이웃 비휘발성 저장 소자가 경험하는 더 작은 커플링 효과를 보상해주는 목표 레벨(target level)로 증가시키는 것인
    비휘발성 저장 디바이스의 가동 방법.
  2. 제1항에 있어서,
    상기 더미 비휘발성 저장 소자에 프로그래밍 전압을 가하는 단계는 그 후에 상기 더미 비휘발성 저장 소자에 대한 상기 목표 임계 전압 레벨이 도달되었는지에 대한 어떤 검증(verification)도 뒤따르지 않는 것인 비휘발성 저장 디바이스의 가동 방법.
  3. 제1항 또는 제2항에 있어서,
    오직 하나의 단일 프로그래밍 펄스만이 상기 더미 비휘발성 저장 소자에 가해지는 것인 비휘발성 저장 디바이스의 가동 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 더미 비휘발성 저장 소자에 프로그래밍 전압을 가하는 단계는 적어도 하나의 소프트 프로그래밍 전압을 상기 더미 비휘발성 저장 소자에 가하는 것을 포함하는 것인 비휘발성 저장 디바이스의 가동 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 소거를 수행하는 단계 후에 그리고 상기 데이터 비휘발성 저장 소자들을 프로그램하는 단계 전에 상기 그룹의 비휘발성 저장 소자들을 소프트 프로그램하는 단계를 더 포함하되,
    상기 소프트 프로그램하는 단계는 상기 데이터 비휘발성 저장 소자들에 제1 소프트 프로그램 전압을 가하는 것에 반하여 상기 더미 비휘발성 저장 소자에 상기 제1 소프트 프로그램 전압보다 작은 제2 소프트 프로그램 전압을 가하는 것을 포함하는 것인 비휘발성 저장 디바이스의 가동 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은 드레인 측 셀렉트 소자(drain side select element)와 관련된 것이며,
    상기 더미 비휘발성 저장 소자는 상기 드레인 측 셀렉트 소자와 상기 이웃 비휘발성 저장 소자의 사이에 있는 것인 비휘발성 저장 디바이스의 가동 방법.
  7. 제6항에 있어서,
    상기 데이터 비휘발성 저장 소자들을 프로그램하는 단계는 상기 데이터 비휘발성 저장 소자들을 상기 드레인 측 셀렉트 소자 방향으로 순차적으로 프로그램하는 것을 포함하는 것인 비휘발성 저장 디바이스의 가동 방법.
  8. 제1항에 있어서,
    상기 더미 비휘발성 저장 소자가 상기 목표 레벨로 프로그램되었는지를 검증하는 단계와;
    상기 더미 비휘발성 저장 소자가 상기 목표 레벨에 도달하지 않았다면 하나 이상의 추가적인 프로그래밍 전압들을 상기 더미 비휘발성 저장 소자에 가하는 단계와; 그리고
    상기 검증하는 단계와 상기 하나 이상의 추가적인 프로그래밍 전압들을 가하는 단계를 상기 더미 비휘발성 저장 소자가 상기 목표 레벨로 프로그램되었는지 검증될 때까지 반복하는 단계를
    더 포함하는 비휘발성 저장 디바이스의 가동 방법.
  9. 비휘발성 저장 소자들의 그룹(블록 i)과, 여기서 상기 그룹의 비휘발성 저장 소자들의 세트는 데이터 비휘발성 저장 소자들과 상기 데이터 비휘발성 저장 소자들 중 하나와 이웃인 더미(dummy) 비휘발성 저장 소자를 포함하며; 그리고
    상기 그룹의 비휘발성 저장 소자들과 통신하는 관리 회로(managing circuit)(220, 242, 230, 240, 242, 244)를 포함하며, 상기 관리 회로는 상기 그룹의 비휘발성 저장 소자들의 소거를 수행하고, 상기 관리 회로는 상기 데이터 비휘발성 저장 소자들을 프로그램하고, 상기 데이터 비휘발성 저장 소자들의 적어도 일부는 상기 관리 회로에 의해 상기 데이터 비휘발성 저장 소자들 중 또 다른 것을 후속적으로 프로그램함으로써 발생하는 커플링(coupling)으로 인하여 임계 전압(threshold voltage)의 피상적 증가(apparent increase)를 경험하고, 상기 관리 회로는 상기 데이터 비휘발성 저장 소자들을 프로그램한 후에 상기 더미 비휘발성 저장 소자에 프로그래밍 전압을 가하고, 상기 프로그래밍 전압은 상기 데이터 비휘발성 저장 소자들 중 다른 데이터 비휘발성 저장 소자들을 프로그램하는 과정에서 상기 이웃 비휘발성 저장 소자가 경험하는 더 작은 커플링을 보상해주는 목표 레벨(target level)로 상기 더미 비휘발성 저장 소자의 상기 임계 전압을 증가시키는 것인
    비휘발성 저장 디바이스.
  10. 제9항에 있어서,
    상기 더미 비휘발성 저장 소자에 프로그래밍 전압을 가한 후에 상기 관리 회로가 상기 더미 비휘발성 저장 소자에 대한 상기 목표 임계 전압 레벨이 도달되었는지를 검증(verification)하지 않는 것인 비휘발성 저장 디바이스.
  11. 제9항 또는 제10항에 있어서,
    상기 관리 회로는 오직 하나의 단일 프로그래밍 펄스만을 상기 더미 비휘발성 저장 소자에 가하는 것인 비휘발성 저장 디바이스.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 관리 회로가 상기 더미 비휘발성 저장 소자에 프로그래밍 전압을 가하는 것은 상기 관리 회로가 상기 더미 비휘발성 저장 소자에 적어도 하나의 소프트 프로그래밍 전압을 가하는 것을 포함하는 것인 비휘발성 저장 디바이스.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서,
    상기 소거를 수행한 후에 그리고 상기 데이터 비휘발성 저장 소자들을 프로그램하기 전에 상기 관리 회로가 상기 그룹의 비휘발성 저장 소자들을 소프트 프로그램하는 것을 더 포함하되,
    상기 소프트 프로그래밍은 상기 관리 회로가 상기 데이터 비휘발성 저장 소자들에 제1 소프트 프로그램 전압을 가하는 것에 반하여 상기 관리 회로가 상기 더미 비휘발성 저장 소자에 상기 제1 소프트 프로그램 전압보다 작은 제2 소프트 프로그램 전압을 가하는 것인 비휘발성 저장 디바이스.
  14. 제9항 내지 제13항 중 어느 한 항에 있어서,
    상기 세트의 비휘발성 저장 소자들은 드레인 측 셀렉트 소자와 관련된 것이며,
    상기 더미 비휘발성 저장 소자는 상기 드레인 측 셀렉트 소자와 상기 이웃 비휘발성 저장 소자의 사이에 있는 것인 비휘발성 저장 디바이스.
  15. 제14항에 있어서,
    상기 관리 회로가 상기 데이터 비휘발성 저장 소자들을 프로그램하는 것은 상기 관리 회로가 상기 데이터 비휘발성 저장 소자들을 상기 드레인 측 셀렉트 소자 방향으로 순차적으로 프로그램하는 것을 포함하는 것인 비휘발성 저장 디바이스.
KR1020117009039A 2008-09-24 2009-09-21 비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선 KR101566460B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/237,321 US7983078B2 (en) 2008-09-24 2008-09-24 Data retention of last word line of non-volatile memory arrays
US12/237,321 2008-09-24

Publications (2)

Publication Number Publication Date
KR20110061625A true KR20110061625A (ko) 2011-06-09
KR101566460B1 KR101566460B1 (ko) 2015-11-05

Family

ID=41258099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117009039A KR101566460B1 (ko) 2008-09-24 2009-09-21 비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선

Country Status (7)

Country Link
US (2) US7983078B2 (ko)
EP (1) EP2340537A1 (ko)
JP (1) JP5439488B2 (ko)
KR (1) KR101566460B1 (ko)
CN (1) CN102160118B (ko)
TW (1) TW201015555A (ko)
WO (1) WO2010036597A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9007827B2 (en) 2012-10-31 2015-04-14 Samsung Electronics Co., Ltd. Nonvolatile memory device and method of programming nonvolatile memory device
KR20170047098A (ko) * 2015-10-22 2017-05-04 삼성전자주식회사 메모리 장치 및 메모리 장치의 에지 워드라인 관리 방법

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7983078B2 (en) * 2008-09-24 2011-07-19 Sandisk Technologies Inc. Data retention of last word line of non-volatile memory arrays
US8266503B2 (en) 2009-03-13 2012-09-11 Fusion-Io Apparatus, system, and method for using multi-level cell storage in a single-level cell mode
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
WO2011094454A2 (en) 2010-01-27 2011-08-04 Fusion-Io, Inc. Apparatus, system, and method for determining a read voltage threshold for solid-state storage media
US8854882B2 (en) 2010-01-27 2014-10-07 Intelligent Intellectual Property Holdings 2 Llc Configuring storage cells
US8380915B2 (en) 2010-01-27 2013-02-19 Fusion-Io, Inc. Apparatus, system, and method for managing solid-state storage media
US9245653B2 (en) 2010-03-15 2016-01-26 Intelligent Intellectual Property Holdings 2 Llc Reduced level cell mode for non-volatile memory
US8259499B2 (en) * 2010-06-29 2012-09-04 Macronix International Co., Ltd. Method and apparatus of performing an erase operation on a memory integrated circuit
US9424930B2 (en) 2010-09-15 2016-08-23 Sandisk Technologies Llc Apparatus, system, and method for non-volatile storage element programming
US8681562B2 (en) * 2011-01-10 2014-03-25 Micron Technology, Inc. Memories and methods of programming memories
CN102347069B (zh) * 2011-05-26 2013-04-03 忆正存储技术(武汉)有限公司 多层式存储闪存阵列的编程方式及其切换控制方法
KR101216876B1 (ko) * 2011-09-20 2012-12-28 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR101913331B1 (ko) 2012-01-19 2018-10-30 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함하는 비휘발성 메모리 시스템, 그것의 프로그램 방법, 그리고 그것을 제어하는 컨트롤러 동작 방법
US20130314995A1 (en) 2012-05-24 2013-11-28 Deepanshu Dutta Controlling Dummy Word Line Bias During Erase In Non-Volatile Memory
FR2993089B1 (fr) 2012-07-09 2014-07-18 Inside Secure Procede d'effacement ou de programmation d'une memoire factice protege contre la detection
US8988941B2 (en) * 2012-12-18 2015-03-24 SanDisk Tehcnologies Inc. Select transistor tuning
US8885420B2 (en) 2013-01-02 2014-11-11 Sandisk Technologies Inc. Erase for non-volatile storage
JP5801341B2 (ja) 2013-03-26 2015-10-28 株式会社東芝 半導体メモリ
KR102065665B1 (ko) 2013-10-17 2020-01-13 삼성전자 주식회사 더미 워드라인을 포함하는 불휘발성 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작방법
KR20150072099A (ko) 2013-12-19 2015-06-29 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US9136003B1 (en) 2014-04-10 2015-09-15 Apple Inc. Mitigation of data retention drift by progrmming neighboring memory cells
KR20160058521A (ko) * 2014-11-17 2016-05-25 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
US9305653B1 (en) * 2014-12-05 2016-04-05 Macronix International Co., Ltd. Memory array and operating method of same
CN105989886B (zh) * 2015-02-16 2019-09-17 华邦电子股份有限公司 非易失性半导体存储装置
KR20160135055A (ko) * 2015-05-15 2016-11-24 에스케이하이닉스 주식회사 더미 메모리 셀들을 포함하는 반도체 메모리 장치 및 그것의 동작 방법
US9911500B2 (en) 2016-04-18 2018-03-06 Sandisk Technologies Llc Dummy voltage to reduce first read effect in memory
US10347315B2 (en) 2017-10-31 2019-07-09 Sandisk Technologies Llc Group read refresh
US10978156B2 (en) * 2018-06-29 2021-04-13 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
TWI708253B (zh) 2018-11-16 2020-10-21 力旺電子股份有限公司 非揮發性記憶體良率提升的設計暨測試方法
KR20200130008A (ko) * 2019-05-10 2020-11-18 에스케이하이닉스 주식회사 스토리지 장치 및 그 동작 방법
JP6820380B2 (ja) * 2019-06-18 2021-01-27 ウィンボンド エレクトロニクス コーポレーション ダミーセルの制御方法および半導体装置
JP2022052154A (ja) * 2020-09-23 2022-04-04 キオクシア株式会社 半導体記憶装置
CN114743585B (zh) * 2022-06-10 2022-08-30 芯天下技术股份有限公司 用于测试闪速存储器的编程方法、装置及闪速存储器

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4005895B2 (ja) 2002-09-30 2007-11-14 株式会社東芝 不揮発性半導体メモリ装置
JP4398750B2 (ja) * 2004-02-17 2010-01-13 株式会社東芝 Nand型フラッシュメモリ
US6987696B1 (en) 2004-07-06 2006-01-17 Advanced Micro Devices, Inc. Method of improving erase voltage distribution for a flash memory array having dummy wordlines
JP4410188B2 (ja) * 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法
DE102005058601A1 (de) 2004-12-27 2006-07-06 Hynix Semiconductor Inc., Icheon Flash-Speicherbauelement
KR100680479B1 (ko) * 2005-04-11 2007-02-08 주식회사 하이닉스반도체 비휘발성 메모리 장치의 프로그램 검증 방법
KR100754894B1 (ko) 2005-04-20 2007-09-04 삼성전자주식회사 더미 메모리 셀을 가지는 낸드 플래시 메모리 장치
KR100704025B1 (ko) 2005-09-09 2007-04-04 삼성전자주식회사 셀스트링에 배치되는 더미셀을 가지는 불휘발성 반도체메모리 장치
KR100984563B1 (ko) * 2005-09-09 2010-10-01 샌디스크 코포레이션 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법
US7259999B2 (en) 2005-10-26 2007-08-21 Freescale Semiconductor, Inc Non-volatile memory cell array for improved data retention and method of operating thereof
EP1946325A1 (en) * 2005-11-10 2008-07-23 SanDisk Corporation Reverse coupling effect with timing information
JP5142478B2 (ja) * 2006-04-13 2013-02-13 株式会社東芝 半導体記憶装置
KR101297283B1 (ko) 2006-07-10 2013-08-19 삼성전자주식회사 낸드형 셀 스트링을 가지는 비휘발성 기억 장치
JP4945183B2 (ja) * 2006-07-14 2012-06-06 株式会社東芝 メモリコントローラ
JP2008084471A (ja) 2006-09-28 2008-04-10 Toshiba Corp 半導体記憶装置
KR101047168B1 (ko) * 2006-10-13 2011-07-07 샌디스크 코포레이션 비휘발성 메모리에서의 분할된 소프트 프로그래밍
JP2008140488A (ja) * 2006-12-04 2008-06-19 Toshiba Corp 半導体記憶装置
JP2008146771A (ja) 2006-12-12 2008-06-26 Toshiba Corp 半導体記憶装置
US7535764B2 (en) * 2007-03-21 2009-05-19 Sandisk Corporation Adjusting resistance of non-volatile memory using dummy memory cells
US7983078B2 (en) 2008-09-24 2011-07-19 Sandisk Technologies Inc. Data retention of last word line of non-volatile memory arrays

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9007827B2 (en) 2012-10-31 2015-04-14 Samsung Electronics Co., Ltd. Nonvolatile memory device and method of programming nonvolatile memory device
US9183938B2 (en) 2012-10-31 2015-11-10 Samsung Electronics Co., Ltd. Nonvolatile memory device and method of programming nonvolatile memory device
KR20170047098A (ko) * 2015-10-22 2017-05-04 삼성전자주식회사 메모리 장치 및 메모리 장치의 에지 워드라인 관리 방법

Also Published As

Publication number Publication date
US7983078B2 (en) 2011-07-19
US8432733B2 (en) 2013-04-30
WO2010036597A1 (en) 2010-04-01
TW201015555A (en) 2010-04-16
US20100074016A1 (en) 2010-03-25
CN102160118B (zh) 2013-12-25
JP5439488B2 (ja) 2014-03-12
EP2340537A1 (en) 2011-07-06
JP2012503837A (ja) 2012-02-09
CN102160118A (zh) 2011-08-17
KR101566460B1 (ko) 2015-11-05
US20110188313A1 (en) 2011-08-04

Similar Documents

Publication Publication Date Title
KR101566460B1 (ko) 비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선
EP2467854B1 (en) Selective memory cell program and erase
US7616500B2 (en) Non-volatile storage apparatus with multiple pass write sequence
EP2348511B1 (en) Variable program for non-volatile storage
US7768834B2 (en) Non-volatile storage system with initial programming voltage based on trial
US7349258B2 (en) Reducing read disturb for non-volatile storage
US7262994B2 (en) System for reducing read disturb for non-volatile storage
US7551482B2 (en) Method for programming with initial programming voltage based on trial
WO2011062917A1 (en) Data coding for improved ecc eddiciency in a nonvolatile storage system

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right