KR20090098799A - 비휘발성 메모리에 대한 최상위 다중-레벨 상태의 고속 프로그래밍 - Google Patents

비휘발성 메모리에 대한 최상위 다중-레벨 상태의 고속 프로그래밍 Download PDF

Info

Publication number
KR20090098799A
KR20090098799A KR1020097010567A KR20097010567A KR20090098799A KR 20090098799 A KR20090098799 A KR 20090098799A KR 1020097010567 A KR1020097010567 A KR 1020097010567A KR 20097010567 A KR20097010567 A KR 20097010567A KR 20090098799 A KR20090098799 A KR 20090098799A
Authority
KR
South Korea
Prior art keywords
programming
state
states
verify
step size
Prior art date
Application number
KR1020097010567A
Other languages
English (en)
Other versions
KR101130332B1 (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/554,223 external-priority patent/US7596031B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20090098799A publication Critical patent/KR20090098799A/ko
Application granted granted Critical
Publication of KR101130332B1 publication Critical patent/KR101130332B1/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
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • 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
    • 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

Landscapes

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

Abstract

하위 상태들로의 프로그래밍을 위해서 비정밀/정밀 기법이 이용되며, 반면에 최상위 상태(들)로의 프로그래밍을 위해서는 표준 기법(비정밀/정밀 기법이 아님)이 이용된다. 하지만, 하위 상태들의 프로그래밍이 종료하는 때에, 최상위 상태를 프로그래밍하기 위해서는 많은 수의 프로그래밍 펄스들이 여전히 필요하다. 프로그래밍 속도를 향상시키기 위해서, 최하위 상태들이 프로그래밍된 때부터 더 큰 스텝 사이즈 및 더 긴 프로그래밍 펄스가 이용될 수 있다. 이와 동시에 최상위 상태를 위한 프로그래밍 기법은 비정밀/정밀 프로그래밍 기법으로 전환될 수 있다.
비정밀, 정밀, 하위 상태, 최상위 상태, 스텝 사이즈

Description

비휘발성 메모리에 대한 최상위 다중-레벨 상태의 고속 프로그래밍{FASTER PROGRAMMING OF HIGHEST MULTI-LEVEL STATE FOR NON-VOLATILE MEMORY}
본 발명은 비휘발성 메모리의 프로그래밍에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스들에서 점점 더 폭 넓게 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 휴대폰, 디지털 카메라, 휴대용 개인단말기(Personal Digital Assistant : PDA), 이동형 컴퓨팅 장치, 고정형 컴퓨팅 장치 등등에 이용되고 있다. 전기적으로 소거 및 프로그래밍 가능한 판독전용 메모리(Electrical Erasable Programmable Read Only Memory : EEPROM)와 플래시 메모리는 가장 많이 사용되는 비휘발성 반도체 메모리들 중 하나이다.
EEPROM과 플래시 메모리 둘다는 플로팅 게이트를 갖는 트랜지스터 구조를 이용하는바, 상기 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치하고 있을 뿐만 아니라, 반도체 기판의 채널 영역으로부터 절연되어 있으며 채널 영역 위에 자리잡고 있다. 플로팅 게이트 위에 제공되는 제어 게이트는 상기 플로팅 게이트로부터 절연된다. 트랜지스터의 임계전압 Vt 는 플로팅 게이트 상에서 유지되고 있는 전하의 양에 의해 제어된다. 즉, 소스와 드레인 사이에서 도통을 허용하기 위해서 트랜지스터가 턴온되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소량은, 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
상기 플로팅 게이트는 전하들의 2개 범위를 저장하는데 이용될 수 있으며, 따라서 상기 트랜지스터는 2개의 가능한 상태들, 즉 소거 상태와 프로그래밍된 상태를 갖는 메모리 소자를 제공할 수 있다. 이러한 플래시 메모리 디바이스는 때때로 이진(binayr) 플래시 메모리 디바이스라고 지칭되는바, 이는 각각의 메모리 소자가 1 비트의 데이터를 저장할 수 있기 때문이다.
다수개의 서로다른 허용된/유효한(allowed/valid) 프로그래밍된 임계전압 범위들을 식별함으로써, 다중-상태 또는 다중-레벨 플래시 메모리 디바이스가 구현될 수 있다. 각각의 상이한 임계전압 범위는, 메모리 디바이스에 인코딩된 데이터 비트들의 세트의 소정값에 대응한다. 예를 들어, 4개의 상이한 임계전압 범위들에 상응하는 4개의 상이한 전하 대역들(bands) 중 하나에 메모리 소자가 위치될 수 있다면, 각각의 메모리 소자는 2 비트의 데이터를 저장할 수 있다.
일반적으로는, 프로그래밍 동작 동안에 프로그램 전압 Vpgm 이 제어 게이트에 인가되는바, 파형으로서 또는 시간이 지남에 따라 그 크기가 증가하는 일련의 펄스들로서 프로그램 전압이 인가된다. 가능한 하나의 방법에 있어서, 상기 펄스들의 크기는, 각각의 연속적인 펄스들에 대해서 0.2V ~ 0.4V 정도의 소정의 스텝 사이즈 만큼 증가된다. 프로그램 펄스들 사이의 시간에서 검증 동작이 수행된다. 즉, 병렬로 프로그래밍되는 소자들의 그룹의 각 소자의 프로그래밍 레벨이 연속적인 프로그래밍 펄스들 사이에서 판독되어, 각 소자의 프로그래밍 레벨이 각각의 소자가 프로 그래밍될 예정인 검증 레벨과 같거나 또는 이보다 큰지를 판별한다. 다중 상태 플래시 메모리 소자들의 어레이의 경우에는, 소자의 각각의 상태에 대해서 검증 단계가 수행되어, 상기 소자가 데이터에 관련된 검증 레벨(data-associated verify level)에 도달했는지를 판별할 수 있다. 예를 들어, 4개의 상태들로 데이터를 저장할 수 있는 다중 상태 메모리 소자는, 3개의 비교 포인트에 대해 검증 동작을 수행할 필요가 있을 수도 있다.
또한, EEPROM 또는 낸드(NAND) 스트링의 낸드 플래시 메모리 디바이스와 같은 플래시 메모리 디바이스를 프로그래밍하는 경우, Vpgm 이 제어 게이트에 인가되고 비트라인은 접지되는 것이 전형적인바, 이는 셀 또는 메모리 소자(예컨대, 저장 소자)의 채널로부터 플로팅 게이트로 전자들이 주입되게 한다. 플로팅 게이트에 전자들이 축적되면, 상기 플로팅 게이트는 음으로(negatively) 충전되며 그리고 메모리 소자의 임계전압은 상승하게 되는바, 따라서 이러한 메모리 소자는 프로그래밍된 상태에 있다고 간주된다. 이러한 프로그래밍에 관한 좀더 상세한 내용은, "Source Side Self Boosting Technique For N0n-Volatile Memory" 라는 명칭의 미국등록특허 US 6,859,397 와 "Detecting Over Programmed Memory" 라는 명칭의 미국공개특허 2005/0024939 에서 찾아볼 수 있으며, 이들 미국등록특허와 미국공개특허 모두는 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다.
다중-레벨 저장 디바이스에서는, 프로그래밍된 임계전압 분포들을 더 좁게 만들고 그리고 프로그래밍 속도를 더 빠르게 하기 위해서, 다양한 프로그래밍 기법 들이 이용될 수 있다. 예를 들어, 비정밀/정밀(coarse/fine) 프로그래밍 기법이 이용될 수 있다. 비정밀/정밀(coarse/fine) 프로그래밍 기법에서는, 최종 검증 레벨보다는 낮은 소정의 검증 레벨에 도달한 저장 소자들에게는 중간 정도의 비트라인 전압이 인가된다. 이러한 점은 프로그래밍을 느리게 하며 따라서, 임계전압 분포들은 좀더 세밀하게 제어될 수 있다.
다른 전자 디바이스들과 마찬가지로, 메모리 디바이스들에서도, 가능한한 빨리 프로그래밍하고자 하는 사용자 요구가 존재한다. 예를 들어, 플래시 메모리 카드 상에 이미지를 저장하는 디지털 카메라의 사용자는, 사진과 사진 사이에서 쓸데없이 긴 시간을 기다리는 것을 원치 않는다. 상당한 속도로 프로그래밍하는 것 이외에도, 다중-상태 메모리 셀에 대해서 적절한 데이터 저장을 획득하기 위해서는, 다중-상태 메모리 셀의 임계전압들의 복수의 범위들은 충분한 마진을 두고 서로 분리되어야만 하는바, 그래야만 메모리 셀의 레벨이 명백한(unambiguous) 방식으로 프로그래밍 및 판독될 수 있기 때문이다. 조밀한(tight) 임계전압 분포가 바람직하다. 조밀한 임계전압 분포를 얻기 위하여, 작은 프로그램 스텝들(steps)이 이용되는 것이 통상적이며, 이에 의하면 셀들의 임계전압에 대한 프로그래밍이 느려진다. 원하는 임계전압 분포가 더 조밀할 수록 상기 스텝들은 더 작아지며 그리고 프로그래밍 프로세스 또한 더 느려진다.
통상적으로는, 프로그래밍 시간들을 유지하기 위해서, 최상위(highest) 메모리 상태(가장 큰 양의 임계전압 범위에 해당하는 상태)에 대해서는 비정밀/정밀 프로그래밍 알고리즘들이 적용되지 않는다. 상기 최상위(highest) 상태는 상 위(higher) 상태와 구분될 필요는 없다. 일반적으로, 다음 최하위 상태(next lowest state)와 구별하기 위해서, 최상위 상태에 대한 셀들을 최소 임계 레벨 위로 프로그래밍할 필요가 있을 뿐이다. 따라서, 이들 셀들의 분포는, 디바이스 성능을 저하시키지 않으면서, 더 넓은 임계전압 분포를 차지할 수 있다. 전술한 바와같이, 비정밀/정밀 프로그래밍 방법은 더 많은 검증 단계들을 필요로 한다. 또한, 비정밀/정밀 프로그래밍 방법의 이용은, 필요한 프로그래밍 펄스들의 총 갯수를 증가시킬 수도 있다. 대부분의 경우에 있어서, 최상위 임계전압 상태는 그렇게 조밀한 임계전압 분포를 요구하지 있지 않으므로, 전체적인 프로그래밍 시간들을 감소시키기 위해서 비정밀/정밀 프로그래밍이 이용되지 않는 것이 일반적이다.
프로그래밍 시간들을 증가시키는 것 이외에, 최상위 임계전압 상태에 대해서 비정밀/정밀 프로그래밍 방법을 이용하는 것은, 낸드 아키텍쳐로 구현된 플래시 메모리 디바이스 내에서 프로그램 혼란(program disturb)의 빈도를 증가시킬 수 있다(이에 대해서는 상세히 후술될 것임). 선택된 낸드 스트링 상의 선택된 셀의 제어 게이트에 프로그램 전압을 인가하기 위해서, 상기 프로그램 전압은 적절한 워드라인에 인가된다. 이 워드라인은 또한, 메모리 셀들의 선택된 블록에 있는 다른 모든 낸드 스트링 상의 메모리 셀에도 연결될 것이다. 이들 메모리 셀들 중 몇몇은 프로그래밍되지 않아야 하는 것들 일 수도 있다. 소정 워드라인에 연결된 다른 메모리 셀들을 프로그래밍함이 없이, 동일한 워드라인에 연결된 하나의 셀을 프로그래밍하고자 하는 경우에, 문제가 발생한다. 상기 프로그램 전압은 워드라인에 연결된 모든 셀들에게 인가되기 때문에, 그 워드라인에 연결된 비선택 셀(프로그래밍되 지 않아야 될 셀)이 의도와 달리 (inadvertently) 프로그래밍될 수도 있다. 선택된 워드라인 상의 비선택 셀에 대한 의도하지 않은 프로그래밍은, "프로그램 혼란(program disturb)" 이라고 지칭된다.
프로그램 혼란을 일소하거나 또는 제한하고자 하는 수 많은 기법들이 존재하고 있긴 하지만, 몇몇 디바이스 구조에서는, 프로그램 혼란의 가능성을 감소시키기 위해서, 최상위 임계전압 메모리 상태에 대해서는 비정밀/정밀 프로그래밍 알고리즘을 사용하지 않는다. 대부분의 경우, 워드라인에 매우 큰 프로그램 전압들이 인가되어 있는 경우에, 프로그램 혼란이 발생한다. 비정밀/정밀 프로그래밍에 의해 요구되는 프로그래밍 펄스들의 증가된 갯수는, 비정밀/정밀 프로그래밍이 사용되지 않았을 경우에 도달했었을 레벨 보다 더 높은 레벨에 프로그래밍 전압이 도달하게끔 할 수 있다. 따라서, 낸드 아키텍쳐의 몇몇 구현예에서는, 최상위 임계전압 상태에 대해서는 비정밀/정밀 프로그래밍을 적용하지 않는바, 이는 프로그램 혼란의 발생 빈도를 최소화하기 위한 것이다.
최상위 상태(들)로의 프로그래밍을 위해서는 표준 기법(비정밀/정밀 프로그래밍이 아님)이 이용되는 반면에, 낮은 상태들로의 프로그래밍을 위해서는 비정밀/정밀 프로그래밍 기법이 이용된다. 하지만, 낮은 상태들의 프로그래밍이 완료되는 때에, 상기 최상위 상태를 프로그래밍하기 위해서는 여전히 많은 수의 프로그래밍 펄스들을 필요로 한다. 프로그래밍 속도를 향상시키기 위해서, 최하위(lowest) 상태들이 프로그래밍된 직후부터, 더 큰 스텝 사이즈 및 더 긴 프로그래밍 펄스가 이용될 수 있다. 이와 동시에, 최상위 상태를 위한 프로그래밍 기법은 비정밀/정밀 프로그래밍 기법으로 변경될 수 있다.
본 발명의 원리가 이용되는 예시적인 실시예들을 기술하고 있는, 후술될 발명의 상세한 설명과 첨부된 도면을 참조하여 본 발명의 특징들 및 장점들이 좀더 상세하게 이해될 것이다.
도1은 낸드 스트링의 평면도이다.
도2는 낸드 스트링의 등가 회로도이다.
도3은 낸드 플래시 메모리 셀 어레이의 일부에 대한 블록도이다.
도4는 비휘발성 메모리 시스템의 블록도이다.
도5는 비휘발성 메모리 시스템의 블록도이다.
도6은 감지 블록에 대한 일실시예를 도시한 블록도이다.
도7은 메모리 어레이의 블록도이다.
도8은 임계전압 분포들의 세트에 대한 일례이다.
도9는 투 패스(two pass) 프로그래밍 기법에 대한 일세트의 임계전압 분포를 예시한 도면이다.
도10A 내지 도10C는 플로팅 게이트간 커플링을 감소시키는 프로그래밍 기법에 대한 일세트의 임계전압 분포를 각각 예시한 도면들이다.
도11A는 통상적인 프로그래밍 프로세스에 대한 임계전압 대 시간 관계를 예시한 도면이다.
도12A는 비정밀/정밀 프로그래밍 프로세스에 대한 임계전압 대 시간 관계를 예시한 도면이다.
도13A는 수정된 비정밀/정밀 프로그래밍 프로세스에 대한 임계전압 대 시간 관계를 예시한 도면이다.
도11B, 도12B, 도13B는 도11A, 도12A, 도13A 각각에 대해서 비트라인 전압 대 시간 관계를 예시한 도면들이다.
도14는 다중 레벨 비휘발성 저장소자를 프로그래밍하는 일련의 프로그래밍 펄스들을 예시한 도면이다.
도15는 다중 레벨 비휘발성 저장소자를 프로그래밍하는 일련의 프로그래밍 펄스들을 예시한 도면이다.
도16은 최하위 상태들에 대한 프로그래밍이 완료되기 전에 저장소자들의 프로그래밍을 검증하는데 이용되는 일련의 검증 펄스들을 예시한 도면이다.
도17은 최하위 상태들에 대한 프로그래밍이 완료된 후에 저장소자들의 프로그래밍을 검증하는데 이용되는 일련의 검증 펄스들을 예시한 도면이다.
도18 및 도19는 각각, 도14 및 도15의 실시예에 따라 비휘발성 메모리를 프로그래밍하는 과정을 설명하는 순서도이다.
반도체 메모리 시스템의 일례는 낸드(NAND) 플래시 메모리 구조를 이용하는데, 이는 낸드 스트링의 2개의 선택 게이트들 사이에 직렬로 위치한 다수의 트랜지스터들을 포함한다. 도1은 이러한 낸드 스트링(150)을 도시한 평면도이다. 도2는 이의 등가회로도이다. 도1 및 도2에 도시된 낸드 스트링은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 직렬로 배치된 4개의 트랜지스터들(100, 102, 104, 106)을 포함한다. 제 1 선택 게이트(120)는 낸드 스트링(150)과 비트라인(126)과의 연결을 게이팅한다. 제 2 선택 게이트(122)는 낸드 스트링(150)과 소스라인(128)과의 연결을 게이팅한다. 제 1 선택 게이트(120)는 제어 게이트(120CG)에 적절한 전압을 인가함으로써 제어된다. 제 2 선택 게이트(122)는 제어 게이트(122CG)에 적절한 전압을 인가함으로써 제어된다. 각각의 트랜지스터들(100, 102, 104, 106)은 제어 게이트와 플로팅 게이트를 갖는다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 갖는다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 갖는다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 갖는다.
제어 게이트(100CG)는 워드라인(WL3)에 연결되며, 제어 게이트(102CG)는 워드라인(WL2)에 연결되며, 제어 게이트(104CG)는 워드라인(WL1)에 연결되며, 제어 게이트(106CG)는 워드라인(WL0)에 연결된다. 일실시예에서, 트랜지스터들(100, 102, 104, 106)은 메모리 셀로 이용된다. 다른 실시예들에서, 메모리 셀들은 다수의 트랜지스터들을 포함할 수도 있으며 또는 도1 및 도2에 도시된 것과 다를 수도 있다. 제 1 선택 게이트(120)는 드레인 선택라인(SGD)에 연결된다. 제 2 선택 게이트(122)는 소스 선택라인(SGS)에 연결된다.
비록, 도1 및 도2에는 낸드 스트링이 4개의 트랜지스터들을 갖는 것으로 도 시되어 있지만, 4개의 트랜지스터들을 사용하는 것은 단지 일례일 뿐이며, 8개의 메모리 셀, 16개의 메모리 셀, 32개의 메모리 셀, 64개의 메모리 셀 등등과 같은 통상적인 구성을 포함하는 다른 구성들도 능히 이용가능함을 유의해야 한다.
도3은 도1 내지 도2에 도시된 바와같은 낸드 셀 어레이의 일례를 예시적으로 도시한 도면이다. 각각의 컬럼(column)을 따라, 낸드 스트링(150)의 각각의 드레인 선택 게이트(120)의 드레인 단자(126)에 비트라인(206)이 연결된다. 낸드 스트링의 각각의 로우(row)를 따라, 낸드 스트링들의 소스 선택 게이트들(122)의 소스 단자들(128) 각각에 소스 라인(204)이 연결될 수 있다. 낸드형 플래시 메모리들에 대한 관련 일례들 및 이들의 동작은 다음의 미국등록특허들에 설명되어 있으며, 이들 미국등록특허들 각각은 본 발명에 대한 참조로서 그 전체내용이 본 명세서에 통합된다. 미국등록특허 US 5,386,422, US 5,570,315, US 5,774,397, US 6,046,935, US 6,456,528, US 6,522,580.
메모리 셀들의 어레이는 매우 큰 수의 메모리 셀들의 블록들로 나뉘어진다. 플래시 EEPROM 시스템에 대해서도 공통적인 바와같이, 상기 블록은 소거의 단위이다. 즉, 각각의 블록은 함께 소거되는 최소 개수의 메모리 셀들을 포함하고 있다. 통상적으로 각각의 블록은 다수의 페이지들로 나뉘어진다. 페이지는 프로그래밍의 단위이다. 일실시예에서, 각각의 페이지는 세그먼트들(segments))로 분할될 수 있으며, 상기 세그먼트는 기본 프로그래밍 동작으로서 한번에 기입되는 가장 적은 갯수의 셀들을 포함할 수 있다. 일반적으로, 1 페이지 이상의 데이터가 메모리 셀들의 하나의 로우(row)에 저장된다. 하나의 페이지는 하나 이상의 섹터들(sectors)을 저장할 수 있다. 하나의 섹터는 사용자 데이터와 오버헤드(overhead) 데이터를 포함한다. 일반적으로, 오버헤드 데이터는 에러 보정 코드(Error Correction Code : ECC)를 포함하는바, 이는 그 섹터의 사용자 데이터로부터 계산된다. 제어기(아래에 후술될 것임)의 일부는, 데이터가 상기 어레이 내로 프로그래밍될 때에 ECC를 계산하며, 그리고 또한 데이터가 상기 어레이로부터 판독될 때에 그것을 체크한다. 대안적으로, 상기 ECC 및/또는 다른 오버헤드 데이터는, 이들과 관련된 사용자 데이터와는 상이한 페이지들에 저장되며, 심지어는 상이한 블록들에 저장된다. 일반적으로, 사용자 데이터의 일 섹터는 512 byte이며, 이는 자기(magnetic) 디스크 드라이브의 일 섹터의 크기에 대응한다. 통상적으로 오버헤드 데이터는 추가적인 16-20 byte 이다. 많은 수의 페이지들이 블록을 구성하는바, 예를 들면 대략 8 페이지에서 32 페이지 정도 또는 64 페이지, 128 페이지 혹은 그 이상의 페이지들이 블록을 구성한다.
도4는, 메모리 셀들의 페이지를 병렬로 판독 및 프로그래밍하기 위한 판독/기입(read/write) 회로를 구비한 메모리 디바이스(296)의 일실시예를 도시한 도면이다. 메모리 디바이스(296)는 하나 이상의 메모리 다이(298)를 포함할 수 있다. 메모리 다이(298)는, 메모리 셀들의 2차원 어레이(300), 제어회로(310), 그리고 판독/기입 회로(365)를 포함한다. 몇몇 실시예에서, 상기 메모리 셀들의 어레이는 3차원이 될 수도 있다. 메모리 어레이(300)는 로우 디코더(330)를 통한 워드라인들과 컬럼 디코더(360)를 통한 비트라인들에 의해 어드레스 가능하다. 판독/기입 회로(365)는, 다수의 감지 블록들(400)을 포함하며, 그리고 메모리 셀들의 페이지가 병렬로 판독 및 프로그래밍되는 것을 가능케 한다. 상기 하나 이상의 메모리 다이(298)와 같이, 제어기(350)는 동일한 메모리 디바이스(296)(예컨대, 착탈가능한 메모리 카드) 내에 포함되는 것이 일반적이다. 명령들(commands) 및 데이터는, 라인(320)을 통해 호스트와 제어기(350) 사이에서 전송되며, 그리고 라인(318)을 통해 제어기와 하나 이상의 메모리 다이(298) 사이에서 전송된다.
제어회로(310)는 판독/기입 회로(365)와 협동하여 메모리 어레이(300) 상에 메모리 동작들을 수행한다. 상기 제어회로(310)는, 상태머신(312), 온-칩 어드레스 디코더(314), 그리고 전력 제어 모듈(316)을 포함한다. 상태머신(312)은 메모리 동작들에 대한 칩-레벨(chip-level) 제어를 제공한다. 온-칩 어드레스 디코더(314)는, 호스트 혹은 메모리 제어기에 의해 이용되는 어드레스와 디코더들(330, 360)에 의해 이용되는 하드웨어 어드레스 사이에서 어드레스 인터페이스를 제공한다. 전력 제어 모듈(316)은, 메모리 동작 동안에 워드라인들 및 비트라인들에 공급되는 전력 및 전압들을 제어한다.
몇몇 실시예들에서, 도4의 소정의 구성요소들은 결합될 수도 있다. 다양한 설계예에서, 메모리 셀 어레이(300)을 제외한 도4의 하나 이상의 구성요소들(단독으로 또는 결합하여)은, 관리회로로 간주될 수도 있다. 예를 들어, 관리회로는 제어회로(310), 상태머신(312), 디코더들(314/360), 전력 제어 모듈(316), 감지 블록(400), 판독/기입 회로(365), 제어기(350) 등등 중 어느 하나 또는 이들의 조합을 포함할 수 있다.
도5는 도4에 도시된 메모리 디바이스(296)의 또 다른 배치를 도시한 것이다. 다양한 주변회로들에 의한 메모리 어레이(300)로의 액세스는, 어레이의 대향 측면들 상에서 대칭적인 방식으로 구현되며, 따라서 액세스 라인들의 밀도와 각 측면 상의 회로의 밀도가 절반으로 감소될 수 있다. 상기 로우 디코더는 로우 디코더(330A)와 로우 디코더(330B)로 나뉘어지며, 컬럼 디코더는 컬럼 디코더(360A)와 컬럼 디코더(360B)로 나뉘어진다. 이와 유사하게, 상기 판독/기입 회로(365)는, 어레이의 바닥에서 비트라인들에 연결되는 판독/기입 회로(365A)와 어레이의 꼭대기에서 비트라인들에 연결되는 판독/기입 회로(365B)로 나뉘어진다. 이러한 방식으로, 판독/기입 모듈들의 밀도는 본질적으로 절반만큼 감소된다. 또한, 도4의 디바이스에 대해서 전술한 바와같이, 도5의 디바이스는 제어기를 포함할 수 있다.
도6은 각각의 감지 블록(400)에 대한 블록도로서 감지 블록은, 감지 모듈(380)로 지칭되는 중심부와 공통부(390)로 나뉘어진다. 일실시예에서, 각각의 비트라인에 대해서는 개별적인 감지 모듈(380)이 있게 될 것이며 그리고 다수의 감지 모듈(380)들의 세트에 대해서는 하나의 공통부(390)가 있게 될 것이다. 본 발명의 일례에서, 감지 블록은 하나의 공통부(390)와 8개의 감지 모듈(380)을 포함할 것이다. 그룹에 있는 각각의 감지 모듈들은 데이터 버스(372)를 통해 관련 공통부와 통신할 것이다. 좀더 상세한 내용은, "Non-Volatile Memory & Method with Shared Processing for an Aggregate of Sense Amplifiers" 라는 명칭의 미국 공개특허(공개번호 2006/0140007)를 참조하기 바란다. 상기 미국공개특허는 본 발명에 대한 참조로서 그 전체내용이 본 명세서에 통합된다.
감지 모듈(380)은, 연결된 비트라인의 도통 전류가 소정의 임계 레벨보다 큰 지 작은지를 판별하는 감지 회로를 포함한다. 또한, 감지 모듈(380)은, 상기 연결된 비트라인 상에서 전압 조건을 설정하는데 이용되는 비트라인 래치(382)를 포함한다. 예를 들어, 비트라인 래치(382)에 래치된 소정 상태는, 상기 연결된 비트라인이 프로그램 금지를 나타내는 소정 상태(예컨대, Vdd)로 풀업되게 할 것이다.
공통부(390)는 프로세서(392), 데이터 래치들(394)의 세트, 데이터 래치들(394)의 세트 사이에 결합된 I/O 인터페이스(396), 그리고 데이터 버스(320)를 포함한다. 프로세서(392)는 계산을 수행한다. 예를 들어, 그 기능들 중 하나는, 감지된 메모리 셀에 저장된 데이터를 판별하는 것이며 그리고 판별된 데이터를 데이터 래치들의 세트에 저장하는 것이다. 데이터 래치들(394)의 세트는, 판독 동작동안에 프로세서(392)에 의해 판별된 데이터 비트들을 저장하는데 이용된다. 또한, 데이터 래치들(394)의 세트는, 프로그램 동작 동안에 데이터 버스(320)로부터 입수된 데이터 비트들 저장하는데 이용된다. 상기 입수된 데이터 비트들은, 메모리에 프로그래밍될 기입 데이터를 나타낸다. I/O 인터페이스(396)는 데이터 래치들(394)과 데이터 버스(320) 사이에서 인터페이스를 제공한다.
판독 및 감지 동안에, 시스템의 동작은 상태 머신(312)의 제어하에 있으며, 상태 머신(312)은 어드레싱된 셀에게 상이한 제어 게이트 전압들을 공급하는 것을 제어한다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응하는 다양한 소정의 제어 게이트 전압들을 통과(step through)함에 따라, 상기 감지 모듈(380)은 이들 전압들 중 하나를 트립(trip)할 수 있으며, 그리고 버스(372)를 통해 감지 모듈(380)로부터 프로세서(392)에게로 출력이 제공될 것이다. 그 시점에서, 프로세 서(392)는, 감지 모듈의 트립핑(tripping) 이벤트(들) 및 입력 라인들(393)을 통해 상태머신으로부터 인가된 제어 게이트 전압에 대한 정보를 고려함으로써, 결과적인 메모리 상태를 판별한다. 이후, 메모리 상태에 대한 이진 인코딩을 계산하고 그 결과 데이터 비트들을 데이터 래치(394)에 저장한다. 중심부에 대한 또 다른 실시예에서, 비트라인 래치(382)는 이중 임무(double duty)를 수행하는바, 감지 모듈(380)의 출력을 래치하기 위한 래치로서의 임무와 전술한 바와같은 비트라인 래치로서의 임무 둘다를 수행한다.
몇몇 구현예들은 다수의 프로세서들(392)을 포함할 수도 있다는 점을 유의해야 한다. 일실시예에서, 각각의 프로세서(392)는 출력 라인(도6에는 미도시)을 포함할 것인바, 출력 라인들 각각은 함께 와이어-논리합(wired-OR'd)된다. 몇몇 실시예들에서, 상기 출력 라인들은 상기 와이어-논리합 라인에 연결되기 전에 반전(inverting) 된다. 이러한 구성은, 프로그래밍 검증 프로세스 동안에, 상기 프로그래밍 프로세스가 언제 완료되는지에 대한 빠른 판별을 가능케 하는바, 이는 상기 와이어-논리합(wired-OR)을 수신하는 상태 머신이, 프로그래밍되는 모든 비트들이 원하는 레벨에 언제 도달했는지를 판별할 수 있기 때문이다. 예를 들어, 각각의 비트가 원하는 레벨에 도달하면, 그 비트에 대해서 논리 0이 와이어-논리합 라인으로 보내질 것이다(또는, 데이터 1 이 반전된다). 모든 비트들이 데이터 0을 출력하면(또는, 반전된 데이터 1), 상태머신은 프로그래밍 프로세스를 종료해야함을 알게된다. 각각의 프로세서가 8개의 감지 모듈과 통신하는 일실시예에서, 상기 상태 머신은 와이어-논리합 라인을 8번 판독해야만 하며, 또는 관련 비트라인들의 결과들을 축적하도록 논리회로(logic)가 프로세서에 부가되는바, 따라서 상기 상태머신은 와이어-논리합 라인을 한번만 판독하면 된다.
프로그램 또는 검증 동안에, 프로그래밍될 데이터는 데이터 버스(320)로부터 데이터 래치들(394)의 세트 내에 저장된다. 상태 머신(312)의 제어하에서, 프로그래밍 동작은, 어드레스된 메모리 셀들의 제어 게이트들에 인가되는 일련의 프로그래밍 전압 펄스들을 포함하는바, 이에 대해서는 상세히 후술될 것이다. 각각의 프로그래밍 펄스에 뒤이어서, 메모리 셀이 원하는 상태로 프로그래밍되었는지를 판별하는 검증 동작이 수반된다. 프로세서는, 원하는 메모리 상태와 관련하여, 검증된 메모리 상태를 모니터링한다. 두개의 상태(원하는 메모리 상태와 검증된 메모리 상태)가 서로 일치하면, 상기 프로세서(392)는 비트라인 래치(382)을 세팅하는바, 이는 프로그램 금지를 나타내는 소정 상태로 그 비트라인을 끌어올리기(pull) 위함이다. 이는, 상기 비트라인에 접속된 셀에 대한 후속 프로그래밍을 금지하는바, 심지어 프로그래밍 펄스들이 상기 셀의 제어 게이트에 인가되더라도, 프로그래밍이 금지된다. 다른 실시예에서, 상기 프로세서는 초기에 비트라인 래치(382)를 로드(load)하며 그리고 감지 회로는 검증 프로세스 동안에 그것을 초기값으로 세팅한다.
데이터 래치 스택(394)은 감지 모듈에 대응하는 데이터 래치들의 스택을 포함한다. 일실시예에서는, 감지 모듈(380) 하나당 3개의 데이터 래치들이 존재한다. 몇몇 실시예들에서(하지만, 필수적인 것은 아님), 상기 데이터 래치들은 쉬프트 레지스터로 구현되며 따라서 여기에 저장된 병렬 데이터는 데이터 버스(320)에 대해 서 직렬 데이터로 변환되며, 그 반대의 경우도 가능하다. 바람직한 실시예에서, m 개의 메모리 셀들의 판독/기입 블록에 대응하는 모든 데이터 래치들은 함께 링크되어 블록 쉬프트 레지스터를 형성할 수 있으며, 따라서 데이터의 블록이 직렬 전송에 의하여 입력 또는 출력될 수 있다. 특히, r 개의 판독/기입 모듈들의 뱅크(bank)가 개조될 수 있는바, 그것의 데이터 래치들의 세트 각각은, 마치 이들이 전체 판독/기입 블록에 대한 쉬프트 레지스터의 일부인 것처럼, 데이터 버스로 또는 데이터 버스로부터 데이터를 차례차례로(in sequence) 쉬프트할 것이다.
비-휘발성 저장 디바이스들의 다양한 실시예들의 구조 및/또는 동작에 대한 좀더 상세한 내용은, 다음의 특허문헌들에서 찾아볼 수 있으며, 이들 특허문헌들은 본 발명에 대한 참조로서 그 전체내용이 본 명세서에 통합된다. "Non-Volatile Memory And Method with Improved Sensing" 라는 명칭의 미국등록특허 US 7,023,736. "Improved Memory Sensing Circuit And Method For Low Voltage Operation" 라는 명칭의 미국등록특허 US 7,046,568. "Non-Volatile Memory And Method With Reduced Source Line Bias Errors" 라는 명칭의 미국공개특허(공개번호 2004/0057287). "Reference Sense Amplifier For Non-Volatile Memory" 라는 명칭의 미국공개특허(공개번호 2006/0158947). "Compensating for Coupling During Read Operations of Non- Volatile Memory" 라는 명칭의 미국특허출원(출원번호 11/099,133).
도7을 참조하여 메모리 셀 어레이(300)의 예시적인 구조가 설명된다. 하나의 일례로서, 1024 개의 블록들로 나뉘어진 낸드 플래시 EEPROM 이 설명된다. 각각의 블록에 저장된 데이터는 동시에 소거될 수 있다. 일실시예에서, 상기 블록은 동시에 소거되는 메모리 셀들의 최소 단위이다. 이러한 일례에서 각각의 블록에는, 비트라인 BL0, BL1 ... BL8511 에 대응하는 8512 개의 컬럼들이 존재한다. 일실시예에서, 블록의 모든 비트라인들은 판독 및 프로그래밍 동작 동안에, 동시에 선택될 수 있다. 공통 워드라인을 따라 있으며 임의의 비트라인에 연결된 메모리 셀들은 동시에 프로그래밍될 수 있다.
다른 실시예에서, 비트라인들은 짝수 비트라인과 홀수 비트라인으로 분리된다. 짝수/홀수 비트라인 구조에서, 공통 워드라인을 따라 있으며 홀수 비트라인에 연결된 메모리 셀들은 한번에 프로그래밍될 수 있으며 반면에, 공통 워드라인을 따라 있으며 짝수 비트라인에 연결된 메모리 셀들은 다른 한번에 프로그래밍될 수 있다.
도7의 아랫부분은 4개의 메모리 셀들을 갖는 블록 i를 도시하고 있는바, 이들 4개의 메모리 셀들은 전술한 바와같이 직렬로 연결되어 하나의 낸드 스트링을 구성한다. 각각의 낸드 스트링이 4개의 셀들을 포함하고 있는 것으로 도시되어 있지만, 4개보다 더 많거나 더 적은 셀들(예컨대, 8개, 16개, 32개, 64개 또는 다른 갯수)이 사용될 수도 있다. 낸드 스트링의 하나의 단자는 드레인 선택 게이트(SGD)를 통해 해당 비트라인에 연결되며, 다른 하나의 단자는 소스 선택 게이트(SGS)를 통해 공통 소스에 연결된다.
각각의 메모리 셀은, 디지털 혹은 아날로그 형식으로 표현되는 데이터를 저장할 수 있다. 1 비트의 디지털 데이터를 저장하는 경우, 메모리 셀의 가능한 임계 전압 범위들은, 논리 데이터값 "1" 과 "0" 에 할당되는 2개의 범위로 나뉘어진다. 낸드형 플래시 메모리의 일례에서, 메모리 셀이 소거된 후의 임계전압은 음(negative)이며, 이는 논리 "1" 로 정의된다. 프로그램 동작 이후의 임계전압은 양(positive)이며, 이는 논리 "0" 으로 정의된다. 임계전압이 음인 경우, 0 볼트를 제어 게이트에 인가함으로써 판독 동작이 개시되는바, 메모리 셀은 턴온되어 논리 "1"이 상기 메모리 셀에 저장되어 있음을 나타낼 것이다. 임계전압이 양인 경우, 0 볼트를 제어 게이트에 인가함으로써 판독 동작이 개시되는바, 메모리 셀은 턴온되지 않을 것이며, 이는 논리 "0"이 저장되어 있음을 나타낸다. 1 비트의 디지털 데이터를 저장하는 메모리 셀은 일반적으로, 이진(binary) 메모리 셀이라 호칭된다.
다중 비트의 디지털 데이터를 저장할 수 있는 메모리 셀은, 다중-상태 셀 또는 다중-레벨 셀이라고 호칭된다. 다중 상태 메모리 셀의 임계전압 윈도우는 여러 범위들로 분할된다. 예를 들어, 4개의 상태가 사용된다면, 논리 데이터 값 "11", "10", "01", 및 "00" 에 할당되는 4개의 임계전압 범위들이 있을 것이다. 낸드형 메모리의 전형적인 일례에서, 소거 동작 후의 임계전압은 음의 값이며 이는 "11"로 정의된다. 양의 임계전압들은 "10", "01", "00" 상태를 위해 이용된다.
일반적으로, 본 명세서에서 설명된 기법들은, 파울러-노드하임(Fowler-Nordheim) 터널링에 의해 프로그래밍 및 소거되는 디바이스들에 이용될 수 있다. 또한, 본 명세서에 개시된 내용은, 플로팅 게이트 대신에 전하들을 저장하기 위해 3중 유전체층(예컨대, 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물(ONO)로 형성된 유전체)의 질화물층을 이용하는 디바이스들에게도 적용될 수 있다. ONO로 구 성된 3중 유전체층은, 메모리 소자의 채널 위에 있는 반-전도성(semi-conductive) 기판의 표면과 전도성 제어 게이트 사이에 샌드위치된다. 몇몇 경우에 있어서는, 3개 이상의 유전체층들이 이용될 수도 있다. 또한, 알루미늄 산화물(aluminum oxide)과 같은 다른 층들이 이용될 수도 있다. 후자에 관한 일례로는, Si-Oxide-SiN-Al2O3-TaN (TANOS) 구조를 들 수 있는데, 상기 구조에서는 실리콘 산화물, 실리콘 질화물 및 알루미늄 산화물의 3중 층이 사용된다. 또한, 본 명세서에 개시된 내용은, 예컨대 플로팅 게이트 대신에 전하 저장 영역들로서 나노 크리스탈(nano crystal)과 같은 전도성 물질의 소형 아일랜드(small islands)를 이용하는 디바이스들에게도 적용될 수 있다. 이러한 메모리 디바이스들은, 낸드 플래시 디바이스에 기반하는 플로팅 게이트와 유사한 방식으로 프로그래밍 및 소거될 수 있다.
성공적인 프로그래밍 프로세스의 결과로서, 메모리 셀들의 임계전압들은, 프로그래밍된 메모리 셀에 대한 임계전압 분포들 중 하나 내에 또는 소거된 메모리 셀들에 대한 하나의 임계전압 분포 내에 있어야만 한다. 도8은 각각의 저장소자가 2비트의 데이터를 저장하는 경우에, 저장 소자 어레이에 대한 전형적인 임계전압 분포들을 예시한 것으로서, 이는 소거된 저장소자들에 대한 제 1 임계전압 분포(E)와 프로그래밍된 저장소자들에 대한 3개의 추가적인 임계전압 분포들(A, B, C)을 포함한다. 일실시예에서, E 분포 내의 임계전압들은 음이며, A, B 및 C 분포 내의 임계전압들은 양이다. 도8에 도시된 임계전압들의 상이한 각각의 범위는, 데이터 비트들의 세트에 대한 소정의 값들에 대응한다. 저장소자로 프로그래밍되는 데이터 와 저장소자의 임계 전압 레벨들 사이의 특정한 관계는, 그 저장소자에 적용된 데이터 인코딩 체계에 의존한다. 예를 들어, "Novel Multi-State Memory" 라는 명칭의 미국등록특허(US 6,222,762)와 "Tracking Cells For A Memory System" 라는 명칭의 미국공개특허(공개번호 2004/0255090)에는 다중-상태 플래시 저장소자들에 대한 다양한 데이터 인코딩 체계가 설명되어 있는데, 이들 미국등록특허 및 미국공개특허 모두는 본 발명에 대한 참조로서 그 전체내용이 본 명세서에 통합된다. 일실시예에서는, 그레이 코드 할당(Gray code assignment)을 이용하여 데이터 값들이 임계전압 범위들에 할당되는바, 따라서 플로팅 게이트의 임계전압이, 오류로 인해 인접한 물리적인 상태로 쉬트프되더라도, 오직 1 비트만이 영향을 받을 것이다. 일례로서, 논리값 "11"은 임계전압 범위 E에 할당되며, 논리값 "10"은 임계전압 범위 A에 할당되며, 논리값 "00"은 임계전압 범위 B에 할당되며, 논리값 "01"은 임계전압 범위 C에 할당된다. 하지만, 다른 실시예에서는 그레이 코드가 이용되지 않을 수도 있다. 비록 도8에는 4개의 상태들이 도시되어 있지만, 본 발명은 4개보다 더 많거나 또는 더 적은 상태들을 포함하는 또 다른 다중 상태 구조들 및 구성들에서 이용될 수 있다.
또한, 도8에는 3개의 판독 참조 전압들(Vra, Vrb, Vrc) 및 6개의 검증 참조 전압들(Vva, Vva-L, Vvb, Vvb-L, Vc, 및 Vvc-L)이 도시되어 있다. 판독 동작에 있어서, 저장소자의 임계전압이 측정되며 그리고 상기 저장소자가 어떤 상태에 있는지를 판별하기 위하여 관련 참조 전압과 비교된다.
저장소자가 상태 A로 프로그래밍되는 표준적인 프로그래밍 동작의 경우, 임계전압이 측정되며 그리고 검증전압 Vva 과 비교된다. 임계전압이 상기 검증전압 Vva 보다 낮은 경우에는, 그 저장소자에 대한 프로그래밍은 계속될 것이다. 비정밀/정밀 프로그래밍 기법이 이용되는 경우에는, 더 낮은 검증전압인 Vva-L 이 또한 이용되며, 임계전압이 2개의 검증 포인트들 사이에 있으면, 프로그래밍이 느리게 될 것이다(부분적으로 금지됨). 이와 유사하게, 저장소자가 상태 B로 프로그래밍되는 표준적인 프로그래밍 동작의 경우, 임계전압이 측정되며 그리고 검증전압 Vvb 과 비교된다. 임계전압이 상기 검증전압 Vvb 보다 낮은 경우에는, 그 저장소자에 대한 프로그래밍은 계속될 것이다. 비정밀/정밀 프로그래밍 기법이 이용되는 경우에는, 더 낮은 검증전압인 Vvb-L 이 또한 이용되며, 임계전압이 2개의 검증 포인트들 사이에 있으면, 프로그래밍이 느리게 될 것이다(부분적으로 금지됨). 이와 유사하게, 저장소자가 상태 C로 프로그래밍되는 표준적인 프로그래밍 동작의 경우, 임계전압이 측정되며 그리고 검증전압 Vvc 과 비교된다. 임계전압이 상기 검증전압 Vvc 보다 낮은 경우에는, 그 저장소자에 대한 프로그래밍은 계속될 것이다. 비정밀/정밀 프로그래밍 기법이 이용되는 경우에는, 더 낮은 검증전압인 Vvc-L 이 또한 이용되며, 임계전압이 2개의 검증 포인트들 사이에 있으면, 프로그래밍이 느리게 될 것이다(부분적으로 금지됨).
풀 시퀀스 프로그래밍(full sequence programming) 이라고 알려진 일실시예 에서, 저장소자들은 소거 상태 E 로부터 프로그래밍 상태 A, B, C 중 어느 하나로 곧바로 프로그래밍될 수 있다. 예를 들어, 프로그래밍될 저장소자들의 집단(population)은 먼저 소거될 수도 있으며, 따라서 상기 집단 내의 모든 저장소자들은 소거상태 E에 있게 된다. 몇몇 저장소자들은 상태 E에서 상태 A로 프로그래밍되지만, 반면에 다른 저장소자들은 상태 E에서 상태 B로 프로그래밍되거나 및/또는 상태 E에서 상태 C로 프로그래밍된다.
도9는 상이한 2개의 페이지들(하위(lower) 페이지와 상위(upper) 페이지)에 대해 데이터를 저장하는 다중 상태 저장소자를 프로그래밍하는 투 패스(two-pass) 기법의 일례를 예시한 것이다. 상태 E(11), 상태 A(10),상태 B(00),상태 C(01)의 4개의 상태들이 도시되어 있다. 상태 E의 경우, 2개의 페이지들 모두는 "1"을 저장한다. 상태 A의 경우, 하위(lower) 페이지는 "0"을 저장하고 상위(upper) 페이지는 "1"을 저장한다. 상태 B의 경우, 2개의 페이지들 모두는 "0"을 저장한다. 상태 C의 경우, 하위 페이지는 "1"을 저장하고 상위 페이지는 "0"을 저장한다. 비록, 특정한 비트 패턴들이 각각의 상태에 대해서 할당되었지만, 이와 다른 비트 패턴들도 할당될 수 있음을 유의해야 한다.
제 1 프로그래밍 패스에서, 저장소자의 임계전압 레벨은, 하위 논리 페이지로 프로그래밍될 비트에 따라 설정된다. 만일, 상기 비트가 논리 "1" 이라면, 이전에 소거되었던 결과로서 임계전압이 이미 적절한 상태에 있기 때문에, 임계전압은 변화되지 않는다. 하지만, 프로그래밍될 비트가 논리 "0" 이라면, 저장소자의 임계전압은 상태 A로 상승하는바, 이는 화살표 500 으로 도시된다.
제 2 프로그래밍 패스에서, 저장소자의 임계전압 레벨은, 상위 논리 페이지로 프로그래밍될 비트에 따라 설정된다. 만일, 상위 논리 페이지 비트가 논리 "1"을 저장할 예정이라면, 하위 페이지 비트의 프로그래밍에 따라 상기 저장소자가 상태 E 또는 A 중 어느 하나에 있기 때문에 프로그래밍이 일어나지 않으며, 상기 상태 E, A 둘다는 논리 "1"의 상위 페이지 비트를 갖는다. 만일, 상위 페이지 비트가 논리 "0"을 저장할 예정이라면, 임계전압은 쉬프트된다. 제 1 패스의 결과 상기 저장소자가 소거 상태 E에 남아있게 된다면, 제 2 패스에서 상기 저장소자는 프로그래밍되며, 따라서 상태 C 내에 있도록 임계전압이 증가되는바, 이는 화살표 520으로 도시된다. 만일, 제 1 프로그래밍 패스의 결과로서 저장소자가 상태 A로 프로그래밍되었다면, 상기 저장소자는 제 2 패스에서 추가로 프로그래밍되며, 따라서 임계전압은 화살표 510으로 도시된 바와같이 상태 B에 있도록 증가된다. 제 2 패스의 결과는, 하위 페이지에 대한 데이터를 변경하는 일 없이, 상위 페이지에 대해 논리 "0"을 저장하도록 명시된 소정 상태로 저장소자를 프로그래밍하는 것이다.
일실시예에서는, 하나의 워드라인을 채우기에 충분한 데이터가 기입된다면, 풀 시퀀스 기입(full sequence writing)을 수행하도록 시스템이 셋업될 수 있다. 만일, 충분치 못한 데이터가 기입된다면, 프로그래밍 프로세스는 수신된 데이터로 하위 페이지를 프로그래밍할 수 있다. 후속 데이터가 수신되는 경우, 상기 시스템은 상위 페이지를 프로그래밍할 것이다. 본 발명의 또 다른 실시예에서, 상기 시스템은 하위 페이지를 프로그래밍하는 모드에서 기입을 개시할 수 있으며, 그리고 하나의 워드라인 전체에 대한 대부분의 저장소자들 또는 모든 저장소자들을 채우기에 충분한 데이터가 후속으로 수신된다면, 상기 시스템은 풀 시퀀스 프로그래밍 모드로 전환할 수 있다. 이러한 실시예에 대한 좀더 상세한 내용은, "Pipelined Programming of Non-Volatile Memories Using Early Data" 라는 명칭의 미국공개특허(공개번호 2006/0126390)에 개시되어 있으며, 상기 미국공개특허는 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다.
도10A 내지 도10C는 비휘발성 메모리를 프로그래밍하기 위한 또 다른 프로세스를 도시한 것으로, 상기 또 다른 프로세스에서는 앞선 페이지들에 대해서 인접한 메모리 소자들을 기입한 이후에, 소정 페이지에 관하여 특정 메모리 소자를 기입함으로써, 상기 특정 메모리 소자에 대한 플로팅 게이트간 커플링(floating gate-to-floating gate coupling)을 감소시킨다. 예시적인 일 구현예에서, 비휘발성 메모리 소자들 각각은, 4개의 데이터 상태들을 이용하여 2 비트의 데이터를 저장한다. 예를 들어, 상태 E는 소거 상태이며, 상태 A, B, 및 C는 프로그래밍된 상태라고 가정하자. 상태 E는 데이터 11을 저장하며, 상태 A는 데이터 01을 저장하며, 상태 B는 데이터 10을 저장하며, 상태 C는 데이터 00을 저장한다. 이러한 것은 논-그레이(non-Gray) 코딩의 일례인바, 이는 2개의 비트들이 인접한 상태 A와 상태 B 사이에서 변경되기 때문이다. 물리적인 데이터 상태들로 데이터를 인코딩하는 또 다른 인코딩 기법들이 이용될 수도 있다. 각각의 메모리 소자는 2개의 데이터 페이지들로부터의 비트들을 저장한다. 참조를 위한 목적으로, 이들 데이터 페이지들은 상위 페이지와 하위 페이지로 호칭될 것이다. 하지만, 다른 명칭(label)들이 이용될 수도 있다. 상태 A에 대해서, 상위 페이지는 비트 0을 저장하고 하위 페이지는 비트 1을 저장한다. 상태 B에 대해서, 상위 페이지는 비트 1을 저장하고 하위 페이지는 비트 0을 저장한다. 상태 C에 대해서, 2개의 페이지들 모두는 데이터 비트 0을 저장한다. 워드라인 WLn 에 있는 메모리 셀들에 대한 하위 페이지 데이터는, 도10A에 도시된 제 1 단계에서 프로그래밍되며, 그리고 상기 셀들에 대한 상위 페이지 데이터는 도10C에 도시된 제 2 단계에서 프로그래밍된다. 만일, 하위 페이지가 데이터 1 로 남아있을 것이라면, 상기 메모리 소자의 임계전압은 상기 제 1 단계 동안에 상태 E로 남아있는다. 만일, 데이터가 0으로 프로그래밍될 것이라면, 메모리 셀의 임계전압 Vt는 상태 B' 으로 상승한다. 상태 B'은 Vvb 보다는 낮은 검증 레벨 Vvb'을 갖는 중간(interim) 상태 B 이다.
일실시예에서, 메모리 소자에 대한 하위 페이지 데이터가 상태 E에서 상태 B'으로 프로그래밍된 이후, 인접한 워드라인 WLn+1 상에 있는 인접한 메모리 소자가 그 하위 페이지에 관하여 프로그래밍된다. 예를 들어, 워드라인 WL2 상의 메모리 셀들에 대한 하위 페이지는, 워드라인 WL1 상의 메모리 셀들에 대한 하위 페이지 이후에, 프로그래밍될 수도 있다. 타겟 메모리 셀을 프로그래밍한 이후에 인접한 메모리 셀의 임계전압이 상태 E에서 상태 B'으로 상승된다면, 플로팅 게이트 커플링은, 상기 타겟 메모리 셀의 외견상(apparent) 임계전압을 상승시킬 수도 있다. 워드라인 WLn 상의 메모리 셀들에 대한 점증적인(cumulative) 커플링 효과는, 도10B에 도시된 바와같이, 상기 메모리 셀들에 대한 임계전압들의 외견상 임계전압 분포를 넓히게 될 것이다. 임계전압 분포의 명백한 확장(widening)은, 관심있는 워 드라인에 대한 상위 페이지를 프로그래밍할 때에 치유될 수 있다.
도10C는 워드라인 WLn 상의 메모리 소자에 대한 상위 페이지를 프로그래밍하는 프로세스를 도시한 것이다. 만일, 상기 메모리 소자가 소거 상태 E에 있고 그리고 상위 페이지 비트가 1로 남아있을 것이라면, 상기 메모리 소자는 상태 E에 남아있을 것이다. 만일, 상기 메모리 소자가 상태 E에 있고 그리고 그 상위 페이지 데이터가 0으로 프로그래밍될 예정이라면, 상기 메모리 소자의 임계전압는 상기 메모리 소자가 상태 A에 있도록 상승될 것이다. 만일, 상기 메모리 소자가 중간 임계전압 분포 550을 갖는 상태 B'에 있으며 그리고 상위 페이지 데이터가 1로 남아있을 예정이라면, 상기 메모리 소자는 최종 상태 B로 프로그래밍될 것이다. 만일, 상기 메모리 소자가 중간 임계전압 분포 550을 갖는 상태 B'에 있으며 그리고 상위 페이지 데이터가 데이터 0이 될 예정이라면, 상기 메모리 소자의 임계전압은, 상기 메모리 소자가 상태 C에 있도록 상승하게 될 것이다. 도10A 내지 도10C에 의해 도시된 프로세스는 플로팅 게이트간 커플링을 감소시키는바, 이는 인접 메모리 소자들의 오직 상위 페이지 프로그래밍만이, 주어진 메모리 소자의 외견상 임계전압에 대해서 영향을 미칠 것이기 때문이다. 상기 기법에 대한 대안적인 상태 코딩의 일례는, 상위 페이지 데이터가 1 인 경우, 중간 상태 B'으로부터 상태 C로 이동시키는 것이며, 그리고 상위 페이지 데이터가 0 인 경우, 상태 B로 이동시키는 것이다. 비록, 4개의 데이터 상태들 및 2개의 데이터 페이지들에 관한 일례가 도10A 내지 도10C에 도시되어 있긴 하지만, 본 발명의 개념은 4개 보다 많거나 적은 상태들 및 2개 보다 많거나 적은 페이지들을 갖는 또 다른 구현예들에 적용될 수 있다. 다양한 프로그래밍 체계들과 플로팅 게이트간 커플링에 관한 좀더 상세한 내용은, "Compensating For Coupling During Read Operations Of Non-Volatile Memory" 라는 명칭의 미국특허출원(출원번호 11/099,133)에서 찾아볼 수 있다.
도11 내지 도13은, 도8-10의 프로그래밍 프로세스를 구현하는데 이용될 수 있는 상이한 3개의 프로그래밍 기법들 동안에, 임계전압들 및 비트라인 전압을 예시한 것이다. 도11A 와 도11B는 표준적인(standard) 또는 통상적인(conventional) 프로그래밍 프로세스를 예시한 것이며, 도12A 와 도12B는 제 1 비정밀/정밀 프로그래밍 프로세스를 예시한 것이고, 도13A 와 도13B는 수정된 비정밀/정밀 프로그래밍 프로세스를 예시한 것이다. 상기 비정밀/정밀 기법들은 다중-레벨 낸드 저장소자들을 프로그램하는데 이용되지만, 이진 디바이스들을 프로그래밍하는 경우에도 이용될 수 있다.
도11A는 표준 프로그래밍 프로세스에 대해서, 임계전압과 시간 사이의 관계를 예시한 것이다. 앞서 설명된 바와같이, 선택된 제어 게이트들에게 일련의 프로그래밍 펄스들이 인가된다. t1, t2, t3, 등등과 같은 프로그래밍 동안의 소정의 시간 간격 또는 검증 포인트들에서, 검증 동작이 수행되는바, 상기 검증 동작에서는 저장소자의 임계전압 Vt 가 측정된다. 선택된 저장소자의 측정된 임계전압 Vt가 소정의 검증 레벨 Vver1 보다 작다면, 그 저장소자에 대한 프로그래밍은 계속되며, 그리고 비트라인 전압 Vbl은 낮은 상태(전형적으로는 0 볼트)로 남아있는바, 이는 도11B에 도시된 바와같다. 시간 t3에서, 상기 저장소자는 Vver1 보다 높은 임계전압 레 벨에 도달하게 되며, 그리고 비트라인 전압 Vbl은 금지전압 Vinhibit 으로 상승하게 되는바, 이는 상기 저장소자에 대한 후속 프로그래밍을 완전히 금지하기 위한 것이다. 일반적으로, 금지전압 Vinhibit 은 전원 공급 전압 Vdd 처럼 비교적 높은 전압이다. 따라서, 이러한 표준적인 프로그래밍 방식은 하나의 검증 레벨을 이용하고 있으며, 그리고 그 임계전압 Vt가 검증 레벨 Vver1에 도달할 때까지 저장소자에 대한 프로그래밍이 계속될 것이다. 이후에, 비트라인 전압을 고전압인 금지전압 Vinhibit 으로 상승시킴으로써 후속 프로그래밍이 금지된다.
도12A는 비정밀/정밀 프로그래밍 프로세스에 대해서 임계전압과 시간 사이의 관계를 예시한 것이다. 이러한 기법에서는, 2개의 검증 레벨들이 이용되며 그리고 상위 검증 레벨인 Vver1 과 하위 검증 레벨인 Vver2 사이에 임계전압이 도달하는 때인 시간 t3에서, 저장소자에 대한 프로그래밍이 부분적으로 금지된다. 따라서, 비트라인 전압을 고전압 레벨로 상승시키는 대신에, 비트라인 전압은 중간 전압 레벨 V1(전형적으로는, 대략 0.5 ~ 1.0 볼트)으로 상승되며, 상기 중간 전압 레벨은 도12B에 도시된 바와같이 저장소자에 대한 프로그래밍을 부분적으로 금지시킨다. 또한, 프로그래밍 동안의 채널 전압은 대략 V1 과 비슷해질 것이다. 시간 t4에서, 임계전압 Vt는 여전히 상위 검증 레벨과 하위 검증 레벨 사이에 있으며, 따라서 비트라인 전압 Vbl은 중간 전압 V1 으로 남아있는다. 하지만, 시간 t5에서, 임계전압 Vt 는, 상위 검증 레벨 Vver1 보다 높은 소정 전압으로 증가되며, 바로 그때 비트라인 전압은 Vinhibit 으로 상승하게 되는바, 이는 프로그래밍을 완전히 금지하기 위한 것이다. 비정밀/정밀 프로그래밍 프로세스를 사용함으로써, 프로그래밍된 Vt 분포는, 표준적인 프로그래밍 프로세스 보다 더 좁아지게 되는데, 이는 일단, 임계전압 Vt가 요망하는 프로그래밍된 상태의 타겟 임계전압 값에 더 가까워지게 되면, 저장소자의 임계전압 쉬프트가 감소되기 때문이다.
도13A는 수정된 비정밀/정밀 프로그래밍 프로세스에 대해서 임계전압과 시간 사이의 관계를 예시한 것으로, 수정된 비정밀/정밀 프로그래밍 프로세스에서는, 상이한 부분 금지전압 V2가 그 비트라인에 대해서 사용된다. 이러한 일례에서는, Vver1 과 Vver2 사이에 임계전압 Vt가 위치하는 때인 시간 t3에서 저장소자에 대한 프로그래밍이 부분적으로 금지되는바, 이는 도12A에 도시된 바와같다. 바로 그 때에, 비트라인 전압은 중간 전압 V2로 상승된다. 중간 전압 V2의 값이 선택되어, 하나의 추가적인 프로그래밍 펄스가 인가된 이후인 시간 t4에서, 상기 저장소자의 임계전압 Vt가 Vver1 보다 높아지며, 비트라인 전압 Vbl 은 V2 에서 Vinhibit 으로 상승하여 프로그래밍을 완전히 금지시킨다. 수정된 비정밀/정밀 프로그래밍에 관한 좀더 상세한 내용은 "Programming Non-volatile Memory" 라는 명칭의 미국공개특허(공개번호 2005/0157552)에서 찾아볼 수 있다.
수정된 비정밀/정밀 프로그래밍 기법을 이용하여 최상의 성능을 획득하기 위 해서는, 다음번 프로그래밍 펄스 동안에 저장소자의 임계전압 Vt 에서의 쉬프트가 △Vpgm/2 가 되도록, 중간 금지전압 V2 가 적절하게 선택되어야만 한다. 만일, 검증 제한들 Vver1 및 Vver2 가 적절한 방식으로 선택된다면, 오직 하나의 추가 프로그래밍 펄스 이후에, 저장소자의 Vt는 Vver1 (타겟 값)보다 높아지게 될 것이다. 따라서, 하나의 추가 펄스 이후에 저장소자의 임계전압 Vt가 최종 타겟 레벨인 Vver1 보다 높은지 또는 낮은지에 상관없이, 오직 하나의 추가 프로그래밍 펄스가 제공된다. 수정된 비정밀/정밀 프로그래밍 프로세스의 장점은, 통상적인 비정밀/정밀 프로그래밍 프로세스보다 더 적은 수의 프로그래밍 펄스를 필요로 한다는 점이며, 이는 특히, 최상위(highest) 프로그래밍된 Vt 상태를 위해 이용되는 경우, 프로그래밍 시간을 더 짧게하며 그리고 프로그램 혼란을 감소시킨다.
일실시예에서, 낮은 상태들(예컨대, 상태 A 및 B)로의 프로그래밍을 위해서는 비정밀/정밀 프로그래밍 기법이 이용되며, 반면에 최상위 상태(들)(예컨대, 상태 C)로의 프로그래밍을 위해서는 표준 기법(비정밀/정밀 프로그래밍이 아닌)이 이용된다. 하지만, 낮은 상태들의 프로그래밍이 완료된 때에, 최상위 상태(예컨대, 상태 C)를 프로그래밍하기 위해서는 다수의 프로그래밍 펄스들을 여전히 필요로 한다. 프로그래밍 속도를 개선하기 위해서는, 상기 낮은 상태들(예컨대, 상태 A 및 B)이 프로그래밍되었던 그 순간부터, 더 큰 스텝 사이즈와 더 긴 프로그래밍 펄스들이 이용될 수 있다. 이와 동시에, 최상위 상태를 위한 프로그래밍 기법은, 전술한 바와같은 비정밀/정밀 프로그래밍 기법들 또는 해당 기술분야에서 공지된 비정 밀/정밀 프로그래밍 기법들 중 하나로 변경될 수 있다. 따라서, 바람직하게는, 낮은 상태들에 대한 프로그래밍이 완료되는 때에, 프로그래밍 방법은 고속 기법으로 전환될 수 있다. 이러한 것은, 최상위 상태에 대한 임계전압 분포를 부당하게 확장시킬 수 있지만, 비정밀/정밀 프로그래밍으로의 전환은, 최상위 상태에 대한 전압 분포의 이러한 확장을 제한한다. 또한, 다음과 같은 점을 유의해야 하는바, 몇몇 경우에 있어서는, 모든 메모리 셀들이 상태 A 또는 상태 B에 도달했는지를 기다릴 필요가 없다는 점이다. 사실, 몇몇 메모리 셀들은 상태 A 또는 상태 B로 성공적으로 프로그래밍되지 않을 수도 있다. 따라서, 모든 메모리 셀들이 상태 A 또는 상태 B에 도달한 때에 또는, 미리 결정된 최대 갯수의 오류있는 메모리 셀들을 제외한 모든 메모리 셀들이 상태 A 또는 상태 B에 도달한 때에, 고속 프로그래밍 방법으로의 전환이 개시되어야만 한다. 기껏해야 상기 미리 결정된 최대 갯수의 오류있는 셀들이 존재한다고 가정하면, 에러 보정의 사용은, 적절히 프로그래밍되는데 실패한 오류있는 메모리 셀들을 효과적으로 보정할 수 있다. 따라서, 모든 메모리 셀들 또는 미리 결정된 최대 갯수의 오류있는 메모리 셀들을 제외한 모든 메모리 셀들이 상태 B에 도달한 때에, 상태 B는 프로그래밍이 종료 또는 완료된다.
도14는 바로 앞에 설명된 바와같이, 다중-레벨 비휘발성 저장소자의 최상위 레벨(들)을 더 빨리 프로그래밍하는데에 이용될 수 있는 일련의 프로그래밍 펄스를 예시한 것이다. 상기 도면에는 4-상태 디바이스의 풀 시퀀스 프로그래밍을 위한 프로그래밍 펄스들이 도시되어 있지만, 다른 방법들 역시도 이용될 수 있다.
"B-레벨 프로그래밍" 이라고 명명된 시퀀스 부분은, 메모리 셀들이 상태 B로 프로그래밍되고 있는 시간에 해당한다. 이들은 또한, 상태 A 또는 상태 C로 프로그래밍될 수도 있다(상기 시간의 적어도 일부 동안에). "C-레벨 프로그래밍" 이라고 명명된 시퀀스 부분은, 메모리 셀들이 상태 C로 프로그래밍되고 있는 시간에 해당한다. "B-레벨 프로그래밍" 은 시간 t12 이후에 종료하며, 상태 A 또는 상태 B로 프로그래밍될 예정인 모든 저장소자들은 그 시점에서 최종 타겟 임계전압 레벨에 도달하며 그리고 이제는 후속 프로그래밍으로부터 록 아웃(lock out)된다. 이 시점에서 추가 프로그래밍은, 상태 C(즉, 최상위 상태)로 프로그래밍될 저장소자들만을 위한 것이다.
선택된 저장소자들에게 초기 프로그램 펄스 Vpgm 가 인가된다. 각각의 후속 펄스는 펄스 스텝 △Vpgm 에 의해 증가된다. 각각의 프로그래밍 펄스들 사이에서, 하나 이상의 검증 동작들이 수행되는바, 예컨대 도16에 도시된 바와같은 일련의 검증 펄스들이 저장소자에 인가되며, 그리고 관심있는 셀에 대한 프로그래밍을 계속할 것인지 또는 금지할 것인지를 판단하기 위하여, 임계전압 Vt는 적절한 검증 레벨과 비교된다.
상태 B에 대한 프로그래밍이 완료되었다고 판단되는 때(예컨대, 상태 A 또는 상태 B로 프로그래밍될 모든 저장소자들 또는 거의 모든 저장소자들이 최종 타겟 임계전압 레벨에 도달하였으며 그리고 이제는 후속 프로그래밍으로부터 록 아웃됨)에는, 상태 C에 대한 고속 프로그래밍을 허용하는 소정의 펄스 시퀀스들이 인가될 수도 있다. 도14를 참조하면, 다음 펄스에 대해서 스텝 사이즈는, △Vpgm1 (통상적으 로 0.4V)에서 △Vpgm2 (통상적으로 0.8V)으로 증가한다. 상기 △Vpgm2 는 △Vpgm1 의 대략 2배의 크기인 것이 바람직하다. 또한, 스텝 사이즈가 조정되는 것과 동시에, 프로그래밍 펄스의 길이도 증가된다. 예를 들어, 앞선 프로그래밍 방법에 대한 전형적인 펄스 길이는 10 ㎲ 이며, 증가된 펄스 길이는 20 ㎲ 가 될 수 있다. 하지만 이러한 값들은 구현예에 따라 변경될 수 있다. 또한, 도16에 도시된 바와 같은 하나의 검증 레벨을 갖는 표준 기입 방법(write method)이 이용되는 통상적인 프로그래밍 방법을 C 상태 프로그래밍을 위해서 이용하는 대신에, 도17에 도시된 바와 같이 2개의 검증 레벨들을 갖는 비정밀/정밀 프로그래밍 방법이 C 상태 프로그래밍을 위해서 이용될 수 있다. 따라서, 상태 C로 프로그래밍되는 저장소자들의 경우, 임계전압 Vt는 검증 레벨들 Vvc , Vvc-L(여기서, Vvc-L > Vvc)과 비교될 수 있다. Vt < Vvc-L 이라면, 프로그래밍은 계속된다. Vvc > Vt > Vvc-L 라면, 중간 전압이 비트라인에 인가되어 프로그래밍 속도를 늦춘다. Vt > Vvc 인 경우, 고전압이 비트라인에 인가되어 후속 프로그래밍을 금지시킨다. 다음과 같은 점을 유의해야 하는바, 몇몇 실시예에서는 펄스 길이와 펄스 폭을 증가시키는 동시에 비정밀/정밀 프로그래밍 방법으로 전환할 필요는 없다. 몇몇 경우에 있어서, 하나의 검증 레벨을 계속해서 사용하는 것이 수용가능할 수도 있는데, 이는 상태 C에 대해서 결과적으로 더 확장된 Vt 분포가 수용가능할 수도 있기 때문이다. 이러한 방식으로, 검증 동작들의 갯수가 감소될 수 있으며, 따라서 더 빠른 프로그래밍을 얻을 수 있다.
상태 B에 대한 프로그래밍이 완료된 이후에, 다음 펄스는 스텝 사이즈 △ Vpgm3 (전형적으로 1.2V)에 의해 증가되지만, 스텝 사이즈 △Vpgm2 (전형적으로 0.8V)를 갖는 펄스들이 후속된다는 점을 제외하면, 도15는 도14와 유사하다. △Vpgm3 는 △Vpgm2 보다 큰 것이 바람직하다. 상태 B에대한 프로그래밍 동안에, 가장 빠른 몇몇 셀들은 상태 C에 이미 도달할 것이라는 점을 유의해야 한다. 따라서, 이러한 C 상태 셀들은 작은 스텝 사이즈 △Vpgm1 으로 프로그래밍되며, 그리고 이들 셀들에 대해서는 비정밀/정밀 방법에 적용될 필요는 없다. 하지만, 모든 또는 거의 모든 B 상태 셀들이 프로그래밍을 완료한 때에, 스텝 사이즈 및 검증 방법 둘다가 변경된다. 스텝 사이즈는 증가하며, 그리고 도16에 도시된 바와 같은 오직 하나의 검증 레벨을 갖는 통상적인 기입 방법을 이용하는 대신에, 도17에 도시된 바와같이 2개의 검증 레벨들을 이용하는 비정밀/정밀 방법으로 프로그래밍이 전환된다. 수정된 퀵 패스 기입 방법(modified quick pass write method)이 C 상태를 기입하는데에 사용되는 것이 바람직한데, 이는 프로그래밍 펄스들의 갯수 뿐만 아니라 프로그램 혼란을 제한하기 위해서이다. 하지만, 전술한 바와같이 몇몇 실시예들에서는, 검증 방법을 전환할 필요가 없을 수도 있는데, 이는 상태 C에 대해서 결과적으로 확장된 Vt 분포가 수용가능할 수도 있기 때문이다.
t1 - t11 사이의 시간 간격에 대해서, 도16에 도시된 검증 펄스들의 세트가 인가된다. 이러한 일례에서, 검증 펄스들의 세트는 5개의 펄스들을 포함한다. 제 1 펄스(591)는 상태 A에 대한 하위 검증 레벨을 체크하기 위해서 Vva-L 의 크기를 갖는 다. 제 2 펄스(592)는 상태 A에 대한 상위 검증 레벨을 체크하기 위해서 Vva 의 크기를 갖는다. 제 3 펄스(593)는 상태 B에 대한 하위 검증 레벨을 체크하기 위해서 Vvb-L 의 크기를 갖는다. 제 4 펄스(594)는 상태 B에 대한 상위 검증 레벨을 체크하기 위해서 Vvb 의 크기를 갖는다. 제 5 펄스(595)는 상태 C에 대한 하나의 검증 레벨을 체크하기 위해서 Vvc 의 크기를 갖는다. 따라서, 하위 상태들을 프로그래밍하는 동안에는, 2개의 검증 레벨들을 갖는 비정밀/정밀 기법이 하위 상태 A 및 B를 프로그램하는데 이용되며, 반면에 최상위 상태 C를 프로그램하는데에는 하나의 검증 레벨을 갖는 표준 기법이 이용된다. 몇몇 경우에 있어서는, 각각의 프로그래밍 펄스 이후에, 5개의 검증 동작들 모두가 수행되는 것은 아니다. 예를 들어, 제 1 프로그래밍 펄스 이후의 시간 t1 에서 임의의 셀이 상태 C에 도달한다는 것은 매우 드문 경우일 것이다. 따라서, C 상태 검증 동작은 소정 갯수의 펄스들에 대해서 연기될 수도 있으며, 이후 상기 소정 갯수의 프로그래밍 펄스들이 완료된 후에 시작될 수 있다. 요구되는 검증 동작들의 총 갯수를 감소시키기 위해서 다양한 기법들이 이용될 수 있다.
시간 t12에서, 시스템은 하위 상태들 A 및 B가 프로그래밍을 완료했는지를 확인하며, 그리고 상태 C를 프로그래밍하기 위한 비정밀/정밀 검증 기법을 구현하기 위해서 도17에 도시된 바와같은 검증 펄스들의 상이한 세트가 인가된다. 상태 A와 상태 B는 프로그래밍을 완료했기 때문에, 상태 C를 체크하기 위한 검증 펄스들 만이 필요할 뿐이다. 따라서 검증 펄스들의 수정된 상기 세트는, 상태 C에 대한 하위 검증 레벨을 체크하기 위해 Vvc-L 크기를 갖는 제 1 검증 펄스(596)와 상태 C에 대한 상위 검증 레벨을 체크하기 위해 Vvc 크기를 갖는 제 2 검증 펄스(597) 를 포함한다. 전술한 바와같이 몇몇 실시예들에서는, 상태 C에 대한 하위 검증 레벨을 체크하기 위한 제 1 검증 펄스(596)를 생략할 수도 있다는 점을 유의해야 하며, 따라서 상태 C는 펄스(597)만을 이용하여 검증된다. 이러한 점은, 필요로 하는 검증 동작들의 총 갯수를 감소시키며 따라서, C 상태에 대해서 Vt 분포가 넓어지는 대신에 프로그래밍 시간의 총합을 감소시키게 될 것이다.
각각의 프로그래밍 펄스들 이후에 다수의 검증 동작들을 수행하는 것은, 프로그래밍 프로세스를 느리게 한다. 검증 동작의 시간 부담을 경감할 수 있는 한 가지 수단은, 좀더 효율적인 검증 프로세스를 이용하는 것이다. 예를 들어, "Smart Verify for Multi-State Memories" 라는 명칭의 미국등록특허(등록번호 US 7,073,103)에는 "Smart Verify" 라고 지칭되는 프로세스가 개시되어 있는바, 상기 미국등록특허는 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다. 스마트 검증 프로세스(Smart Verify process)를 이용하는 프로그램/검증 시퀀스 동안에 다중 상태 메모리를 위한 기입 프로세스의 예시적인 일실시예에서, 프로세스의 초기에는, 선택된 메모리 셀들이 프로그래밍되는 다중-상태 범위 중에서 오직 최하위 상태(예컨대, 상태 A)만이 검증 페이즈 동안에 체크된다. 일단, 하나 이상의 메모리 셀들이 제 1 저장 상태(예컨대, 상태 A)에 도달하면, 다중 상태 시퀀스 의 다음 상태(예컨대, 상태 B)가 검증 프로세스에 추가된다. 가장 빠른 셀들이 시퀀스의 상기 이전 상태에 도달하는 즉시, 상기 다음 상태가 검증 프로세스에 추가될 수도 있으며, 또는 여러 싸이클들의 지연 이후에 검증 프로세스에 추가될 수도 있는데, 이는 일반적으로 메모리는 상태들 간의 이동을 위해서 다수의 프로그래밍 단계들을 갖도록 설계되기 때문이다. 지연량(amount of delay)은 고정될 수도 있으며, 또는 파라미터-기반의 실행을 이용할 수도 있는바, 이는 디바이스의 특성에 따라 지연량을 설정하는 것을 가능케 한다. 검증 페이즈에서 체크 중인 세트에 상태들을 추가하는 것은, 최상위 상태가 추가될 때까지 앞서와 같이 계속된다. 이와 유사하게, 이들 레벨들에 관한 모든 메모리 셀들이 타겟 값들을 성공적을 검증하고 그리고 후속 프로그래밍으로부터 록 아웃됨에 따라, 검증 세트로부터 하위 상태들이 제거될 수 있다.
도14 및 도15에서, 상태 B에 대한 프로그래밍 동안에, 가장 빠른 셀들 중 몇몇은 이미 상태 C에 도달할 것이며, 이들 C 상태 셀들은 작은 스텝 사이즈 △Vpgm1 에 의해 프로그래밍될 것이다. 따라서, 이들 셀들에 대해서는, 비정밀/정밀 방법은 필요하지 않다. 하지만, 이러한 새로운 기법들의 핵심은, 모든 B 상태 셀들이 프로그래밍을 완료한 때에 펄스 스텝 사이즈와 펄스 길이가 증가한다는 것이며, 그리고 종래 방법의 그것과 대략 동일한 C 상태 Vt 분포 폭을 유지하기 위하여, 바람직하게는 상기 프로그래밍이 2개의 검증 레벨들을 이용하는 비정밀/정밀 방법으로 전환한다는 점이다. 전술한 바와같이 몇몇 실시예들에서는, 결과적으로 확장된 C 상태 Vt 분포가 몇몇 경우에서는 수용할만 하기 때문에, 비정밀/정밀 방법으로 전환하는 것이 필요하지 않을 수도 있다.
도18은, 예를 들어 도14에 도시된 바와 같은, 비휘발성 메모리를 프로그래밍하기 위한 방법에 대한 일실시예의 순서도이다. 몇몇 구현예에서, 메모리 셀들은 프로그래밍되기 전에 소거된다(블록 단위 또는 다른 단위로). 일반적으로, p-웰을 충분한 시간 동안 소거 전압(예컨대, 18V)으로 상승시키고, 선택 블록의 워드라인들을 접지시키고, 그리고 소스 및 비트라인들을 플로팅시킴으로써, 메모리 셀들이 소거된다. 용량성 커플링(capacitive coupling) 때문에, 비선택 워드라인들, 비트라인들, 선택 라인들, 및 c-소스 역시도, 소거 전압의 상당한 일부분까지 상승한다. 따라서, 강한 전기장이 선택 메모리 셀들의 터널 산화막들에 인가되며, 그리고 플로팅 게이트의 전자들이 전형적으로는 파울러-노드하임 터널링 매커니즘에 의해 기판 측으로 방출됨에 따라, 선택 메모리 셀들의 데이터가 소거된다. 플로팅 게이트로부터 p-웰 영역으로 전자들이 이송됨에 따라, 선택 메모리 셀의 임계전압이 낮아진다. 소거 동작은, 전체 메모리 어레이, 별도의 블록들, 또는 셀들의 다른 단위에 대해서 수행될 수 있다.
도18의 단계 601에서, 제어기에 의해 "데이터 로드(load)" 명령이 발행되며, 제어회로(310)에 의해 수신된다. 단계 603에서, 페이지 어드레스를 나타내는 어드레스 데이터가, 제어기 또는 호스트로부터 디코더(314)에 입력된다. 단계 605에서, 어드레스된 페이지에 대한 일 페이지의 프로그램 데이터가 프로그래밍을 위해서 데이터 버퍼에 입력된다. 상기 데이터는 래치들의 적절한 세트에 래치된다. 단계 607 에서, "프로그램(program)" 명령이 제어기에 의해 상태 머신(312)으로 발행된다.
"프로그램(program)" 명령을 트리거링함으로써, 단계 605에서 래치된 상기 데이터가 상태 머신(312)에 의해 제어되어, 적절한 선택 워드라인에 인가된 스텝핑(stepping)된 펄스들을 이용하여 선택 메모리 셀들 안으로 프로그래밍될 것이다. 단계 609에서, 프로그래밍 방법이 설정된다. 예를 들어, 상태 A 및 상태 B로 프로그래밍될 메모리 셀들에 대해서는 비정밀/정밀 프로그래밍 방법이 설정되며, 반면에 상태 C로 프로그래밍될 메모리 셀들에 대해서는 표준 방법(비정밀/정밀 프로그래밍 방법이 아님)이 설정된다. 단계 611에서, 프로세스 변수들이 초기화된다. 따라서, 프로그램 전압 Vpgm 이 시작 펄스 크기(예컨대, 12V 또는 다른 값)로 초기화되며, 펄스들의 길이(PW)가 초기값(예컨대, 10㎲)으로 설정되며, 펄스 스텝 사이즈 △Vpgm 이 △Vpgm1 (예컨대, 0.4V)으로 설정되며, 그리고 상태 머신(312)에 의해 유지되는 프로그램 카운터(PC)가 0으로 초기화된다.
단계 613에서, 도14에 도시된 바와같이 프로그래밍 펄스 Vpgm 가 선택 워드라인에 인가된다. 어떤 메모리 셀이 프로그래밍되어야만 한다면, 해당 비트라인은 접지된다. 다른 한편으로, 어떤 메모리 셀이 현재의 데이터 상태를 유지해야 한다면, 해당 비트라인은 프로그래밍을 금지하기 위하여 Vdd에 연결된다.
단계 615에서, 선택 메모리 셀들이 검증되어, 이들이 완전히 프로그래밍되었는지가 판별된다. 선택 메모리 셀의 타겟 임계전압이 적절한 레벨에 도달했음이 검출되면, 그 메모리 셀은 후속 프로그래밍으로부터 록 아웃된다. 상기 임계전압이 적절한 레벨에 도달하지 않았다고 검출되면, 그 메모리 셀은 후속 프로그래밍으로부터 록 아웃되지 않는다. 단계 617에서, 시스템은 하위 상태들이 프로그래밍되었는지를 체크한다. 일실시예에서, 상기 하위 상태들은, 최상위 상태를 제외한 프로그래밍된 모든 상태들이다. 도8의 일례에서, 하위 상태들은 상태 A 및 B 이다. 따라서, 상기 시스템은, 상태 A 또는 상태 B로 프로그래밍될 모든 셀들 또는 거의 모든 셀들이 프로그래밍을 완료했는지를 판별할 것이다. 다른 실시예에서, 하위 상태들의 세트는, 상태들의 상이한 세트를 포함할 수 있다. 하위 상태들로 프로그래밍될 모든 셀들 또는 거의 모든 셀들이 프로그래밍을 완료하지 않았다고 판단되면, 단계 618에서, 프로그램 카운터(PC)가 PCMAX 와 비교된다. 프로그램 카운터(PC)가 PCMAX 보다 작으면, 단계 619에서, 프로그램 펄스들 Vpgm 의 크기는 스텝 사이즈에 의해 증가되며, 프로그램 카운터(PC)는 1 만큼 증가한다. 단계 619 이후에, 상기 프로세스 루프(loop)는 단계 613으로 되돌아가며, 그리고 또 다른 프로그램 펄스가 선택 워드라인에 인가된다. 만일, 프로그램 카운터(PC)가 PCMAX 보다 작지 않으면, 상기 프로그래밍 프로세스는 실패한 것이다.
만일, 상태 A 또는 상태 B로 프로그래밍될 모든 셀들 또는 거의 모든 셀들이 프로그래밍을 완료했다고 판별되면, 단계 621에서 프로그래밍 방법이 전환되며, 따라서 상위 상태(들)(예컨대, 도8의 상태 C)로 프로그래밍될 메모리 셀들에 대해서는 비정밀/정밀 프로그래밍 방법이 이용된다. 전술한 바와같이, 상기 단계는 선택적인 것이며, 모든 실시예들에서 필수적인 것은 아닐 수도 있다. 단계 623에서, 프 로세스 변수들이 변경되는바, 펄스들의 폭(PW)이 증가되며(예컨대, 20㎲로 증가됨), 그리고 스텝 사이즈 △Vpgm 이 증가된다(예컨대, 0.4V 대신에 0.8V 인 △Vpgm2 로 증가됨). 단계 625에서, 모든 또는 거의 모든 메모리 셀들이 프로그래밍을 완료했는지가 검증된다. 만일 그렇다면, 프로그래밍 프로세스는 성공적으로 완료된 것이다. 만일, 그렇지 않다면, 상기 프로그래밍 프로세스는 단계 627로 진행하며, 여기서 프로그램 카운터(PC)는 프로그램 제한 값인 PCMAX 에 대해서 체킹된다. 프로그램 제한 값에 대한 일례는 20 이다. 하지만, 다른 값들이 이용될 수도 있다. 만일, 상기 프로그램 카운터(PC)가 20보다 작지 않다면 상기 프로그래밍 프로세스는 실패한 것이다. 많은 실시예들에서, 루프들의 최대 숫자에 도달한 이후에, 상기 시스템은, 프로그래밍을 완료하지 못한 셀들이 소정 숫자보다 작은지를 체크한다. 만일, 프로그래밍을 완료하지 못한 셀들이 소정 숫자보다 작다면, 프로그래밍 프로세스는 여전히 통과(pass)로 간주된다. 프로그램 카운터(PC)가 PCMAX 보다 작다면, 단계 629에서 프로세스 변수들이 갱신된다. 프로그램 전압 Vpgm 은 스텝 사이즈 △Vpgm2 만큼 증가된다. 프로그램 카운터(PC)가 증분된다. 단계 631에서, 다음 프로그래밍 펄스가 인가되며, 그리고 단계 633에서 상기 메모리 셀들이 검증되어 프로그래밍을 완료했는지가 판별된다. 단계 633 이후에, 프로세스 루프는 단계 625로 되돌아간다. 단계 629에서 프로그램 카운터(PC)는 1 만큼 증가한다는 점을 유의해야 한다. 하지만, 프로그램 전압 Vpgm 이 더 큰 스텝 사이즈에 의해 증가되기 때문에, 몇몇 실시예들에서는 Vpgm 스텝 사이즈에서의 변경을 반영하기 위해서 프로그램 카운 터(PC)를 2 만큼(또는, 더 큰 수로) 증가시키는 것이 바람직할 수도 있다.
도19는 도15에 도시된 바와 같은, 비휘발성 메모리를 프로그래밍하기 위한 방법에 대한 일실시예의 순서도이다. 단계 601 내지 단계 619는 도18에 도시된 것과 동일하다. 만일, 단계 617에서, 하위 상태들로 프로그래밍될 모든 또는 거의 모든 메모리 셀들이 프로그래밍을 완료했다고 판별되면, 단계 645에서, 모든 또는 거의 모든 상기 메모리 셀들이 프로그래밍을 완료하기 위해서 검증되었는지가 판별된다. 만일 그렇다면, 프로그래밍 프로세스는 성공적으로 완료된다. 그렇지 않다면, 프로그래밍 프로세스는 단계 647로 진행하며, 여기에서는 상위 상태(들)(예컨대, 도8의 상태 C)로 프로그래밍될 메모리 셀들에 대해서는 비정밀/정밀 프로그래밍 방법이 이용되도록 프로그래밍 방법이 전환된다. 전술한 바와같이, 이는 선택적인 단계이며, 모든 실시예들에서 필수적인 것은 아닐 수도 있다. 단계 649에서, 프로세스 변수들이 변경되는바, 펄스들의 폭(PW)이 증가되며(예컨대, 20㎲로 증가됨), 그리고 스텝 사이즈 △Vpgm 이 증가된다(예컨대, 0.4V 대신에 1.2V 인 △Vpgm3 로 증가됨). 단계 651에서, 프로세스 변수들이 갱신된다. 상기 프로그램 전압 Vpgm 은 스텝 사이즈 △Vpgm2 에 의해 증가된다. 상기 프로그램 카운터(PC)가 증분된다. 단계 651에서, 상기 프로그램 카운터(PC)는 1 만큼 증가한다는 점을 유의해야 한다. 하지만, 프로그램 전압 Vpgm 이 더 큰 스텝 사이즈에 의해 증가되기 때문에, 몇몇 실시예들에서는 Vpgm 스텝 사이즈에서의 변경을 반영하기 위해서 프로그램 카운터(PC)를 2 만큼(또는, 더 큰 수로) 증가시키는 것이 바람직할 수도 있다. 단계 653에서, 다음 프로그램 전압 펄스(새로운 크기의)가 선택 워드라인에 인가된다. 단계 655에서, 선택 메모리 셀들이 검증되어 프로그래밍을 완료했는지가 판별된다. 단계 657에서, 프로그래밍을 완료하기 위해 모든 또는 거의 모든 메모리 셀들이 검증되었는지가 판별된다. 만일 그렇다면, 프로그래밍 프로세스는 성공적으로 완료된 것이다. 만일, 그렇지 않다면, 상기 프로그래밍 프로세스는 단계 659로 진행하며, 여기서 프로그램 카운터(PC)는 프로그램 제한 값인 PCMAX 에 대해서 체킹된다. 프로그램 카운터(PC)가 PCMAX 보다 작지 않다면, 프로그래밍 프로세는 실패한 것이다. 만일, 프로그램 카운터(PC)가 PCMAX 보다 작다면, 단계 661에서, 프로세스 변수들이 갱신된다. 프로그램 전압 Vpgm은 스텝 사이즈 △Vpgm2 에 의해 증가된다. 프로그램 카운터(PC)가 증분된다. 다음과 같은 점을 유의해야 하는바, 단계 661에서, 상기 프로그램 카운터(PC)는 1 만큼 증가된다. 하지만, 프로그램 전압 Vpgm 이 더 큰 스텝 사이즈에 의해 증가되기 때문에, 몇몇 실시예들에서는 Vpgm 스텝 사이즈에서의 변경을 반영하기 위해서 프로그램 카운터(PC)를 2 만큼(또는, 더 큰 수로) 증가시키는 것이 바람직할 수도 있다. 단계 661 이후에, 상기 프로세스 루프는 단계 653으로 되돌아가며 그리고 다음 프로그램 펄스가 인가된다.
앞서 설명된 본 발명의 상세한 설명은 예시 및 설명을 위한 목적으로 제공된 것이다. 이는, 실시예에 대한 모든 것을 속속들이 규명한다던가 또는 개시된 실시예들만으로 본 발명을 제한하고자 의도된 것이 아님을 유의해야 한다. 전술한 가르 침에 비추어 볼때, 다양한 변형예와 수정예들이 가능할 것이다. 본 발명의 기술적 사상과 그의 실제적인 응용을 최적으로 설명하기 위해, 본 발명의 실시예들이 선택되었다. 따라서, 해당 기술분야의 당업자들은 다양한 실시예들을 통해서 본 발명을 가장 잘 활용할 수 있을 것이며, 고려중인 특정한 용도에 적합한 다양한 변형예들을 가장 잘 활용할 수 있을 것이다. 본 발명의 범위는 첨부된 청구항들에 의해서 정의되어야 한다.

Claims (21)

  1. 비휘발성 저장소자들의 세트를 프로그래밍하는 방법으로서,
    일련의 프로그래밍 펄스들을 상기 비휘발성 저장소자들에게 인가하는 단계, 하위 상태들(lower states)에 대한 프로그래밍이 완료될 때까지 연속적인 각각의 펄스는 제 1 스텝 사이즈에 의해 증가되고, 이후 상기 연속적인 각각의 펄스는 제 2 스텝 사이즈에 의해 증가되며; 그리고
    상기 하위 상태들에 대한 프로그래밍이 완료된 때에 상기 프로그래밍 펄스들의 펄스 길이를 증가시키는 단계
    를 포함하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  2. 제1항에 있어서,
    일련의 프로그래밍 펄스들을 인가하는 상기 단계는,
    상기 하위 상태들에 대한 프로그래밍이 완료될 때까지 비정밀/정밀(coarse/fine) 프로그래밍을 이용하지 않는 통상적인 기법을 이용하여 최상위(highest) 상태쪽으로 프로그래밍하며, 그리고
    상기 하위 상태들에 대한 프로그래밍이 완료된 이후에 비정밀/정밀 기법을 이용하여 상기 최상위 상태쪽으로 프로그래밍하는 것
    을 포함하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  3. 제2항에 있어서,
    상기 통상적인 기법을 이용하는 프로그래밍하는 것은, 하나의 검증 레벨을 이용하는 것을 포함하며, 그리고
    상기 비정밀/정밀 기법을 이용하여 프로그래밍하는 것은, 적어도 2개 이상의 검증 레벨들을 이용하는 것을 포함하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  4. 제3항에 있어서,
    상기 비정밀/정밀 기법은,
    제 1 검증 레벨보다는 크지만 제 2 검증 레벨보다는 작은 임계전압을 갖는 저장소자들에게 중간(intermediate) 비트라인 전압을 인가하는 것을 포함하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  5. 제3항에 있어서,
    상기 비정밀/정밀 기법은,
    제 2 검증 레벨보다 큰 임계전압을 갖는 저장소자들에게 높은(high) 비트라인 전압을 인가하는 것을 포함하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  6. 제1항에 있어서,
    상기 각각의 저장소자는 하나의 공백 상태(empty state)와 3개의 프로그래밍된 상태들로 프로그래밍될 수 있으며, 상기 3개의 프로그래밍된 상태들 중 하나는 최상위 상태이며,
    상기 하위 상태들이 프로그래밍될 때까지 검증 펄스들의 제 1 세트를 상기 저장소자들에게 인가하고, 이후 검증 펄스들의 제 2 세트를 상기 저장소자들에게 인가하는 단계를 더 포함하며,
    검증 펄스들의 상기 제 1 세트는 상기 하위 상태들에 대한 적어도 2개의 검증 레벨들과 상기 최상위 상태에 대한 하나의 검증 레벨을 포함하며, 그리고
    검증 펄스들의 상기 제 2 세트는 상기 최상위 상태에 대한 적어도 2개의 검증 레벨들을 포함하는 것을 특징으로 하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  7. 제6항에 있어서,
    일련의 프로그래밍 펄스들을 인가하는 상기 단계는,
    상기 하위 상태들에 대한 프로그래밍이 완료될 때까지 상기 제 1 스텝 사이즈에 의해 연속적인 각각의 펄스들을 증가시키고, 이후 제 3 스텝 사이즈에 의해 하나의 펄스를 증가시키며, 이후 상기 제 2 스텝 사이즈에 의해 연속적인 각각의 펄스들을 증가시키는 것을 특징으로 하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  8. 제1항에 있어서,
    증가된 펄스 길이를 갖는 제 1 프로그래밍 펄스는 제 3 스텝 사이즈에 의해 증가되며, 그리고
    증가된 펄스 길이를 갖는 후속 펄스들은 상기 제 2 스텝 사이즈에 의해 증가되는 것을 특징으로 하는 비휘발성 저장소자들의 세트를 프로그래밍하는 방법.
  9. 비휘발성 저장 시스템으로서,
    다수의 비휘발성 저장소자들; 및
    상기 다수의 비휘발성 저장소자들과 통신하는 적어도 하나의 관리회로
    를 포함하며,
    상기 관리회로는 일련의 프로그래밍 펄스들을 상기 비휘발성 저장소자들에게 인가하며, 연속적인 각각의 펄스는 하위 상태들에 대한 프로그래밍이 완료될 때까지 제 1 스텝 사이즈에 의해 증가되며, 이후 연속적인 각각의 펄스는 제 2 스텝 사이즈에 의해 증가되며, 그리고
    상기 관리회로는 상기 하위 상태들에 대한 프로그래밍이 완료되는 때에 상기 프로그래밍 펄스들의 펄스 길이를 증가시키는 것을 특징으로 하는 비휘발성 저장 시스템.
  10. 제9항에 있어서,
    상기 관리회로는 상기 하위 상태들에 대한 프로그래밍이 완료될 때까지 제 1 기법을 이용하여 최상위 상태를 프로그래밍하며, 상기 하위 상태들에 대한 프로그래밍이 완료된 이후에 제 2 기법을 이용하여 상기 최상위 상태를 프로그래밍하는 것을 특징으로 하는 비휘발성 시스템.
  11. 제10항에 있어서,
    상기 제 1 기법은 하나의 검증 레벨을 포함하며, 그리고
    상기 제 2 기법은 적어도 2개의 검증 레벨을 포함하는 것을 특징으로 하는 비휘발성 시스템.
  12. 제11항에 있어서,
    상기 제 1 기법은 비정밀/정밀 프로그래밍을 이용하지 않으며,
    상기 제 2 기법은 비정밀/정밀 프로그래밍을 이용하는 것을 특징으로 하는 비휘발성 시스템.
  13. 제11항에 있어서,
    상기 제 2 기법에 있어서 상기 관리회로는, 타겟 검증 레벨보다 큰 임계전압을 갖는 저장소자들에게 높은 비트라인 전압을 인가하는 것을 특징으로 하는 비휘발성 시스템.
  14. 제9항에 있어서,
    각각의 저장소자는 하나의 공백 상태(empty state)와 3개의 프로그래밍된 상태들로 프로그래밍될 수 있으며, 상기 3개의 프로그래밍된 상태들 중 하나는 최상위 상태이며,
    상기 관리회로는 상기 하위 상태들이 프로그래밍될 때까지 검증 펄스들의 제 1 세트를 상기 저장소자들에게 인가하고, 이후 검증 펄스들의 제 2 세트를 상기 저장소자들에게 인가하며,
    검증 펄스들의 상기 제 1 세트는 상기 하위 상태들에 대한 적어도 2개의 검증 레벨들과 상기 최상위 상태에 대한 하나의 검증 레벨을 포함하며, 그리고
    검증 펄스들의 상기 제 2 세트는 상기 최상위 상태에 대한 적어도 2개의 검증 레벨들을 포함하는 것을 특징으로 하는 비휘발성 시스템.
  15. 제14항에 있어서,
    상기 관리회로는,
    상기 하위 상태들에 대한 프로그래밍이 완료될 때까지 상기 제 1 스텝 사이즈에 의해 연속적인 각각의 펄스들을 증가시키고, 이후 제 3 스텝 사이즈에 의해 하나의 펄스를 증가시키며, 이후 상기 제 2 스텝 사이즈에 의해 연속적인 각각의 펄스들을 증가시키는 것을 특징으로 하는 비휘발성 시스템.
  16. 제15항에 있어서,
    상기 제 3 스텝 사이즈와 상기 제 2 스텝 사이즈는 상기 제 1 스텝 사이즈보 다 큰 것을 특징으로 하는 비휘발성 시스템.
  17. 제16항에 있어서,
    상기 제 3 스텝 사이즈는 상기 제 2 스텝 사이즈보다 큰 것을 특징으로 하는 비휘발성 시스템.
  18. 제9항에 있어서,
    상기 관리회로는,
    상기 일련의 프로그래밍 펄스들 중 증가된 펄스 길이를 갖는 제 1 프로그래밍 펄스를 제 3 스텝 사이즈에 의해 증가시키며, 그리고
    후속하는 일련의 프로그래밍 펄스들을 상기 제 2 스텝 사이즈에 의해 증가시키는 것을 특징으로 하는 비휘발성 시스템.
  19. 제9항에 있어서,
    상기 관리회로는, 상기 하위 상태들에 대한 프로그래밍이 완료되는 때에 상기 펄스 길이를 2배로 하는 것을 특징으로 하는 비휘발성 시스템.
  20. 제9항에 있어서,
    상기 관리회로는,
    비정밀/정밀 기법을 이용하여 상기 하위 상태들을 프로그래밍하며,
    상기 하위 상태들에 대한 프로그래밍이 완료될 때까지 통상적인 기법을 이용하여 최상위 상태들을 프로그래밍하며, 그리고
    상기 하위 상태들에 대한 프로그래밍이 완료된 이후에 비정밀/정밀 기법을 이용하여 상기 최상위 상태들을 프로그래밍하는 것을 특징으로 하는 비휘발성 시스템.
  21. 제20항에 있어서,
    상기 관리회로는,
    상기 하위 상태들에 대한 프로그래밍이 완료될 때까지 상기 제 1 스텝 사이즈에 의해 연속적인 각각의 펄스들을 증가시키고, 이후 제 3 스텝 사이즈에 의해 하나의 펄스를 증가시키며, 이후 상기 제 2 스텝 사이즈에 의해 연속적인 각각의 펄스들을 증가시키는 것을 특징으로 하는 비휘발성 시스템.
KR1020097010567A 2006-10-30 2007-10-15 비휘발성 메모리에 대한 최상위 다중-레벨 상태의 고속 프로그래밍 KR101130332B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US55423906A 2006-10-30 2006-10-30
US11/554,223 2006-10-30
US11/554,223 US7596031B2 (en) 2006-10-30 2006-10-30 Faster programming of highest multi-level state for non-volatile memory
US11/554,239 2006-10-30
PCT/US2007/081419 WO2008054986A2 (en) 2006-10-30 2007-10-15 Faster programming of highest multi-level state for non-volatile memory

Publications (2)

Publication Number Publication Date
KR20090098799A true KR20090098799A (ko) 2009-09-17
KR101130332B1 KR101130332B1 (ko) 2012-03-26

Family

ID=39183027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097010567A KR101130332B1 (ko) 2006-10-30 2007-10-15 비휘발성 메모리에 대한 최상위 다중-레벨 상태의 고속 프로그래밍

Country Status (6)

Country Link
EP (1) EP2067142B1 (ko)
JP (1) JP2010508615A (ko)
KR (1) KR101130332B1 (ko)
CN (1) CN101595527B (ko)
TW (1) TWI353605B (ko)
WO (1) WO2008054986A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111554338A (zh) * 2019-02-11 2020-08-18 爱思开海力士有限公司 半导体装置及操作半导体装置的方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100816161B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
US8045375B2 (en) * 2008-10-24 2011-10-25 Sandisk Technologies Inc. Programming non-volatile memory with high resolution variable initial programming pulse
US8243523B2 (en) 2010-03-09 2012-08-14 Micron Technology, Inc. Sensing operations in a memory device
US20120014183A1 (en) * 2010-07-16 2012-01-19 Pavel Poplevine 3 transistor (n/p/n) non-volatile memory cell without program disturb
JP5330425B2 (ja) * 2011-02-09 2013-10-30 株式会社東芝 不揮発性半導体メモリ
US9343141B2 (en) 2014-07-15 2016-05-17 Sandisk Technologies Inc. Reprogramming memory with single program pulse per data state
US9324419B2 (en) * 2014-07-15 2016-04-26 Sandisk Technologies Inc. Multiple pass programming for memory with different program pulse widths

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0773685A (ja) * 1993-09-06 1995-03-17 Hitachi Ltd 半導体不揮発性記憶装置
DE69533429T2 (de) 1995-06-07 2005-08-18 Macronix International Co. Ltd., Hsinchu Automatischer progammier-algorithmus für flash-speicher im seitenmodus mit variabler programmierimpulshöhe und -breite
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP4012152B2 (ja) * 2002-02-28 2007-11-21 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US6882567B1 (en) * 2002-12-06 2005-04-19 Multi Level Memory Technology Parallel programming of multiple-bit-per-cell memory cells on a continuous word line
US6888758B1 (en) * 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
JP2005235287A (ja) * 2004-02-19 2005-09-02 Nec Electronics Corp 不揮発性半導体記憶装置のプログラミング方法、プログラミング装置、及び、不揮発性半導体記憶装置
US7173859B2 (en) * 2004-11-16 2007-02-06 Sandisk Corporation Faster programming of higher level states in multi-level cell flash memory
KR100616214B1 (ko) * 2005-06-30 2006-08-28 주식회사 하이닉스반도체 멀티-레벨 셀을 가지는 플래시 메모리 장치의 프로그램제어 회로 및 그 프로그램 제어 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111554338A (zh) * 2019-02-11 2020-08-18 爱思开海力士有限公司 半导体装置及操作半导体装置的方法
US11101007B2 (en) 2019-02-11 2021-08-24 SK Hynix Inc. Semiconductor device and method of operating semiconductor device
CN111554338B (zh) * 2019-02-11 2023-06-06 爱思开海力士有限公司 半导体装置及操作半导体装置的方法

Also Published As

Publication number Publication date
CN101595527B (zh) 2013-10-30
CN101595527A (zh) 2009-12-02
KR101130332B1 (ko) 2012-03-26
TWI353605B (en) 2011-12-01
EP2067142B1 (en) 2015-01-28
WO2008054986A3 (en) 2008-06-12
EP2067142A2 (en) 2009-06-10
JP2010508615A (ja) 2010-03-18
WO2008054986A2 (en) 2008-05-08
TW200845006A (en) 2008-11-16

Similar Documents

Publication Publication Date Title
KR101519081B1 (ko) 비휘발성 저장소에서 채널 부스팅을 증가시키기 위한 강화된 비트라인 프리챠지 방식
KR101600551B1 (ko) 고해상도의 가변 초기 프로그램 펄스를 이용한 비휘발성 메모리의 프로그램
EP1964127B1 (en) Method for programming non-volatile memory with reduced program disturb using modified pass voltages
JP4954223B2 (ja) フローティングゲート結合に対する補償を伴う不揮発性記憶装置に対する読み出し動作
EP2577671B1 (en) Programming non-volatile storage with synchronized coupling
EP2467854B1 (en) Selective memory cell program and erase
EP2446441B1 (en) Reduced programming pulse width for enhanced channel boosting in non-volatile storage
EP2446443B1 (en) Forecasting program disturb in memory by detecting natural threshold voltage distribution
US7596031B2 (en) Faster programming of highest multi-level state for non-volatile memory
EP2345038B1 (en) Multi-pass programming for memory using word line coupling
JP5174829B2 (ja) 隣接メモリセルの記憶状態を考慮した不揮発性メモリセルの読み出し
KR101428767B1 (ko) 비휘발성 저장소자의 판독 동작 동안에 파워 소모의 감소
US20070297247A1 (en) Method for programming non-volatile memory using variable amplitude programming pulses
KR20110049782A (ko) 최소 여분 시간 패널티를 갖는 혼란을 감소시키기 위한 개선된 프로그래밍 알고리즘
WO2008083131A2 (en) Method for programming with initial programming voltage based on trial
KR101130332B1 (ko) 비휘발성 메모리에 대한 최상위 다중-레벨 상태의 고속 프로그래밍
US7733701B2 (en) Reading non-volatile storage with efficient setup
KR101012132B1 (ko) 다른 전압들을 이용한 비휘발성 저장 장치에 대한 검증 동작
EP1946323A1 (en) Method for programming of multi-state non-volatile memory using smart verify
KR20080080529A (ko) 타이밍 정보를 이용한 리버스 커플링 효과
WO2008002832A2 (en) Method for programming non-volatile memory using variable amplitude programming pulses
WO2008057927A2 (en) Reducing program disturb in non-volatile memory using multiple boosting modes
EP1964129A1 (en) Reading non-volatile storage with efficient control of non-selected word lines

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150224

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160218

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200218

Year of fee payment: 9