KR101048834B1 - 프로그래밍 중의 커플링 보상 - Google Patents

프로그래밍 중의 커플링 보상 Download PDF

Info

Publication number
KR101048834B1
KR101048834B1 KR1020097003268A KR20097003268A KR101048834B1 KR 101048834 B1 KR101048834 B1 KR 101048834B1 KR 1020097003268 A KR1020097003268 A KR 1020097003268A KR 20097003268 A KR20097003268 A KR 20097003268A KR 101048834 B1 KR101048834 B1 KR 101048834B1
Authority
KR
South Korea
Prior art keywords
volatile storage
storage elements
programming
state
subset
Prior art date
Application number
KR1020097003268A
Other languages
English (en)
Other versions
KR20090073083A (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/459,001 external-priority patent/US7885119B2/en
Priority claimed from US11/459,002 external-priority patent/US7400535B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20090073083A publication Critical patent/KR20090073083A/ko
Application granted granted Critical
Publication of KR101048834B1 publication Critical patent/KR101048834B1/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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • 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
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • G11C16/3427Circuits or methods to prevent or reduce disturbance of the state of a memory cell when neighbouring cells are read or written
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/344Arrangements for verifying correct erasure or for detecting overerased cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

비-휘발성 메모리셀의 플로팅 게이트(또는 다른 전하 저장 소자)상에 저장된 겉보기 전하는 인접한 플로팅 게이트들(또는 다른 인접한 전하 저장 소자)에 저장된 전하를 바탕으로한 전계의 커플링으로 인하여 시프트될 수 있다. 이 커플링을 보상하기 위하여, 주어진 메모리셀에 대해 판독 또는 프로그래밍 방법은 인접한 메모리셀의 프로그램 상태를 고려할 수 있다. 보상이 필요한지 결정하기 위하여, 인접한 메모리셀(예를 들어, 인접한 비트라인 또는 다른 위치의)의 프로그램 상태에 대한 정보를 감지하는 단계를 포함하는 방법이 수행될 수 있다.

Description

프로그래밍 중의 커플링 보상{COMPENSATING FOR COUPLING DURING PROGRAMMING}
본 발명은 비-휘발성(non-volatile) 메모리 기술에 관한 것이다.
반도체 메모리 디바이스는 다양한 전자 장치에서 더욱 더 일반적으로 사용되게 되었다. 예를 들어, 비-휘발성 반도체 메모리는 셀룰러 전화기, 디지털 카메라, 개인 휴대정보 단말기(PDA), 휴대용 연산 장치, 비-휴대용 연산 장치 및 기타 장치에서 사용된다. 그 중에서도, 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory : EEPROM) 및 플래시 메모리가 가장 일반적인 비-휘발성 반도체 메모리이다.
EEPROM과 플래시 메모리 모두는 반도체 기판의 채널 영역으로부터 절연되어 있으며 상기 채널 영역 위에 위치한 플로팅 게이트를 이용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트는 플로팅 게이트로부터 절연되며, 플로팅 게이트 위에 제공된다. 트랜지스터의 드레시홀드 전압(threshold voltage)은 플로팅 게이트상에 유지되는 전하의 양에 의해 제어된다. 즉, 소스와 드레인 사이의 전도(conduction)를 허용하기 위해서, 트랜지스터가 턴온(turn on)되기 직전까지 상기 제어 게이트에 인가되어야만 하는 최소 전압은, 플로팅 게이트 상의 전하 레벨에 의해 제어된다.
EEPROM 또는 플래시 메모리 디바이스, 예컨대 NAND 플래시 메모리 디바이스를 프로그래밍하는 경우, 일반적으로 제어 게이트에는 프로그램 전압이 인가되며, 비트라인은 접지된다. 채널로부터 전자들이 플로팅 게이트 내부로 주입된다. 플로팅 게이트 내에 전자들이 축적되면, 그 플로팅 게이트는 음으로 충전되고 메모리셀의 드레시홀드 전압이 상승하게 되므로, 그 메모리셀은 프로그램 상태(programmed state)에 있게 된다. 프로그래밍에 대한 더 상세한 정보는, "Source Side Self-Boosting Technique For Non-Volatile Memory" 라는 명칭의 미국특허 6,859,397와 "Detecting Over Programmed Memory" 라는 명칭의 미국특허 6,917,545에서 찾아볼 수 있는바, 이들 2개의 특허문서들은 본 출원에 대한 참조로서 본 명세서에 그 전체 내용이 통합된다.
몇몇 EEPROM 및 플래시 메모리 디바이스들은, 2개 범위의 전하들을 저장하기 위하여 사용되는 플로팅 게이트를 구비하며 따라서, 상기 메모리셀은 2개의 상태들(즉, 소거 상태(erased state) 및 프로그램 상태) 사이에서 프로그램/소거될 수 있다. 때때로, 이러한 플래시 메모리 디바이스는 바이너리(binary) 플래시 메모리 디바이스라고 칭해진다.
복수-상태(multi-state) 플래시 메모리 디바이스는, 금지 영역들(forbidden ranges)에 의해서 분리되는 복수의 개별적인 허용/유효(allowed/valid) 프로그램된 드레시홀드 전압 범위들을 구분함으로써 구현된다. 각각의 개별적인 드레시홀드 전압 범위는 메모리 디바이스내의 인코딩된 데이터 비트들 세트에 대한 미리 정의된 값에 대응한다.
플로팅 게이트상에 저장된 겉보기 전하(apparent charge)에서의 시프트(shift)는 인접한 플로팅 게이트에 저장된 전하를 기반으로 한 전계(electric field)의 커플링(coupling)으로 인해 발생할 수 있다. 이러한 플로팅 게이트 대 플로팅 게이트 커플링(floating gate to floating gate coupling) 현상은 미국 특허 5,867,429에 설명되어 있으며, 이것은 그 전체가 참조로 본 명세서에 통합된다. 타겟 플로팅 게이트(target floating gate)에 대한 인접한 플로팅 게이트의 일례는 동일한 워드라인에 연결되며 인접한 비트라인에 연결되는 플로팅 게이트를 포함한다.
플로팅 게이트 대 플로팅 게이트 커플링의 효과는 복수-상태 디바이스에 대해 매우 중요한데, 이는 복수-상태 디바이스들에서 허용되는 드레시홀드 전압 범위 및 금지되는 드레시홀드 전압 범위가 바이너리 디바이스들에서보다 더 좁기 때문이다. 따라서, 플로팅 게이트 대 플로팅 게이트 커플링은 결과적으로 메모리셀이 허용된 드레시홀드 전압 범위에서 금지된 드레시홀드 전압 범위로 시프트되게 한다.
플로팅 게이트 대 플로팅 게이트 커플링 현상은 서로 다른 시간에 프로그래밍된 인접한 메모리셀들의 세트들 간에 발생할 수 있다. 예를 들어, 첫번째 메모리 셀이 데이터의 일 세트에 대응하는 그것의 플로팅 게이트에 임의의 레벨의 전하를 부가하도록 프로그래밍된다. 그 후, 하나 이상의 인접한 메모리셀들이 데이터의 두번째 세트에 대응하는 그것들의 플로팅 게이트들에 임의의 레벨의 전하를 부가하도록 프로그래밍된다. 하나 또는 그 이상의 인접하는 메모리셀들이 프로그래밍된 후, 제1 메모리셀로부터 판독되는 전하 레벨은 프로그래밍된 것과 다르게 나타나며, 이는 제1 메모리셀에 연결되어 있는 인접한 메모리셀들의 전하의 효과 때문이다. 인접한 메모리셀들로부터의 커플링은, 판독되는 겉보기 전하 레벨을, 저장된 데이터가 잘못 판독되게 할 정도로 충분히 시프트할 수 있다.
플로팅 게이트 대 플로팅 게이트의 커플링은 또한 동시에 프로그램된 인접한 메모리셀들의 세트들 사이에서 발생할 수 있다. 예를 들어, 두개의 인접한 복수-상태 메모리셀들은 제1 메모리셀이 낮은 드레시홀드 전압에 해당하는 상태로 프로그래밍되고 제2 메모리셀이 높은 드레시홀드 전압에 해당하는 상태로 프로그래밍되는 것과 같이, 서로 다른 타겟 레벨로 프로그래밍될 수 있다. 낮은 드레시홀드 전압에 해당하는 상태로 프로그래밍된 메모리셀은 제2 메모리셀이 높은 드레시 홀드에 해당하는 상태에 도달하기 전에 타겟 상태에 도달할 것이며 더이상 프로그래밍되지 않을 것이다. 제2 메모리셀이 높은 드레시홀드 전압에 해당하는 상태에 도달한 후, 그것은 제1 메모리셀에 연결되어, 제1 메모리셀이 프로그래밍된 것 보다 더 높은 겉보기 드레시홀드 전압을 갖게할 것이다.
메모리셀들의 사이즈가 계속 작아짐에 따라, 단채널 효과(short channel effect)와 옥사이드 두께/커플링 비율의 더 큰 변화, 그리고 더 많은 채널 도펀트 변동들로 인하여, 드레시홀드 전압의 자연적인 프로그래밍 및 소거 분포들이 증가할 것으로 예측되며 그러므로써 인접한 상태들 간의 가능한 분리를 감소시킬 것으로 예측된다. 이 효과는 단지 두 가지 상태만을 사용하는 메모리들(바이너리 메모리들)보다 복수 상태 메모리들에 대해 훨씬 더 중요하다. 더욱이, 워드라인들 간의 공간의 감소 및 비트라인들 간의 공간의 감소는 또한 인접하는 플로팅 게이트들 간의 커플링을 증가시킨다.
그러므로, 인접한 플로팅 게이트들 간의 커플링 효과를 감소시킬 필요가 있다.
본 명세서에는 인접한 플로팅 게이트들 간의 커플링 효과를 감소시키기 위한 기법이 설명된다. 일 실시예는 서로 다른 비트라인들 상에 있는 인접한 플로팅 게이트들 간의 커플링 효과를 줄이는 단계를 포함한다. 그러나, 본 명세서에 설명된 다른 실시예들은 다른 세트의 플로팅 게이트들(또는 플로팅 게이트들을 사용하지 않는 다른 세트의 메모리셀들) 간의 커플링에 대해서 사용될 수 있다.
일 실시예는 비-휘발성 저장 소자들을 특정한 프로그램 상태(particular programmed state)와 관련된 비정밀(coarse) 검증 레벨로 프로그래밍하는 단계와, 상기 비-휘발성 저장 소자들의 제 1 서브세트를 상기 특정한 프로그램 상태와 관련된 제 1의 정밀(fine) 검증 레벨로 추가적으로 프로그래밍하는 단계와, 상기 비-휘발성 저장 소자들의 제 2 서브세트를 상기 특정한 프로그램 상태와 관련된 제 2 정밀 검증 레벨로 추가적으로 프로그래밍하는 단계를 포함한다.
또 다른 실시예는 하나의 비정밀 검증 레벨을 사용하여 제 1 비정밀 프로그래밍 방법으로, 및 두 개의 정밀 검증 레벨을 사용하여 정밀 프로그래밍 방법으로 상기 비-휘발성 저장 소자들의 제 1 서브세트(subset)를 제 1의 프로그램 상태로 프로그래밍 하는 단계와, 각각의 추가적인 프로그램 상태에 대해서 하나씩의 비정밀 검증 레벨을 사용하여 제 1 비정밀 프로그래밍 방법으로, 및 각각의 추가적인 프로그램 상태에 대해 하나씩의 정밀 검증 레벨을 사용하여 정밀 프로그래밍 방법으로 비-휘발성 저장 소자들의 추가적인 서브세트들을 추가적인 프로그램 상태로 프로그래밍하는 단계를 포함한다.
일 실시예는 특정한 프로그램 상태에 대한 특정한 최종 타겟 레벨(particular final target level)을 사용하여 비-휘발성 저장 소자들의 제1 세트를 특정한 프로그램 상태로 프로그래밍하는 단계와, 상기 특정한 프로그램 상태에 대한 또 다른 최종 타겟 레벨을 사용하여, 비-휘발성 저장 소자들의 제2 세트를 상기 특정한 프로그램 상태로 프로그래밍하는 단계를 포함한다. 비-휘발성 저장 소자들의 제1 세트는 다른 프로그램 상태로 프로그래밍되어야 하는 것으로 식별된(identified) 비-휘발성 저장 소자들에 인접해 있다. 비-휘발성 저장 소자들의 제2 세트는 다른 프로그램 상태로 프로그래밍되어야 하는 것으로 식별된 비-휘발성 저장 소자들에 인접해 있지 않다.
또 다른 실시예는 특정한 프로그램 상태를 위한 특정한 최종 타겟 레벨을 사용하여, 제 1 세트의 비-휘발성 저장 소자들을 특정한 프로그램 상태로 프로그래밍 하는 단계와, 상기 특정한 프로그램 상태를 위한 또 다른 최종 타겟 레벨을 사용하여, 제 2 세트의 비-휘발성 저장 소자들을 상기 특정한 프로그램 상태로 프로그래밍하는 단계와, 그리고 다른 최종 타겟 레벨을 사용하여, 추가적인 비-휘발성 저장 소자들을 다른 프로그램 상태로 프로그래밍하는 단계를 포함한다. 비-휘발성 저장 소자들의 제 1 세트는 다른 프로그램 상태로 프로그래밍되어야 하는 것으로 구분된 비-휘발성 저장 소자들에 인접해 있다.
본 명세서에 설명된 다양한 방법들은 다양한 디바이스들에 의해 실행될 수 있다. 적절한 장치의 일례는 비-휘발성 저장 소자들, 상기 비-휘발성 저장 소자들과 통신하는 제어 라인들, 및 상기 비-휘발성 저장 소자들 및 상기 제어 라인들과 통신하는 관리 회로(managing circuit)을 포함한다. 상기 관리 회로는 본 명세서에서 설명된 방법들을 수행한다. 다양한 실시예들에서, 상기 관리 회로는 제어 회로, 전력 제어 회로, 디코더, 상태 머신(state machine), 제어기, 감지 블록(sence block) 중 어느 것 또는 이들의 조합을 포함한다. 다른 회로도 또한 포함될 수 있다.
도 1은 NAND 스트링(string)의 평면도이다.
도 2는 NAND 스트링의 등가 회로도이다.
도 3은 NAND 스트링의 단면도이다.
도 4는 NAND 플래시 메모리셀 어레이(array) 일부의 블록도 이다.
도 5는 비-휘발성 메모리 시스템의 블록도이다.
도 6은 비-휘발성 메모리 시스템의 블록도이다.
도 7은 메모리 어레이의 블록도이다.
도 8은 감지 블록의 일 실시예를 도시하는 블록도이다.
도 9는 감지 모듈의 일 실시예의 개략도이다.
도 10은 감지 모듈의 일 실시예에 대한 타이밍도이다.
도 11은 비-휘발성 메모리를 프로그래밍하기 위한 방법(process)의 일 실시 예를 설명하는 흐름도이다.
도 12는 비-휘발성 메모리셀들의 제어 게이트들에 적용되는 예시적인 파형이다.
도 13은 드레시홀드 전압 분포의 예시적인 세트를 도시한다.
도 14는 드레시홀드 전압 분포의 예시적인 세트를 도시한다.
도 15는 데이터 판독시 수행되는 방법의 일 실시예를 설명하는 흐름도이다.
도 16은 데이터 판독시 수행되는 방법의 일 실시예를 설명하는 흐름도이다.
도 17은 이웃 비트라인으로부터 데이터를 감지하기 위한 방법의 일 실시예를 설명하는 흐름도이다.
도 18은 이웃 비트라인으로부터 데이터를 감지하기 위한 방법의 일 실시예를 설명하는 타이밍도이다.
도 19는 판독 방법의 일 실시예를 설명하는 흐름도이다.
도 20은 프로그램 상태에 대한 드레시홀드 전압의 분포를 도시한다.
도 21은 프로그래밍 방법의 일 실시예를 설명하는 그래프이다.
도 22는 프로그래밍 방법의 일 실시예를 설명하는 그래프이다.
도 23은 프로그래밍 방법의 일 실시예를 설명하는 흐름도이다.
도 24는 검증을 위한 방법의 일 실시예를 설명하는 흐름도이다.
도 25는 데이터를 판독하기 위한 방법의 일 실시예를 설명하는 흐름도이다.
도 26은 데이터를 판독하기 위한 일 실시예를 설명하는 타이밍도이다.
도 27은 메모리 시스템을 구성 및 사용하는 방법의 일 실시예를 설명하는 흐 름도이다.
도 28은 메모리 시스템을 구성하기 위한 방법의 일 실시예를 설명하는 흐름도이다.
도 29는 메모리 시스템을 구성하기 위한 방법의 일 실시예를 설명하는 흐름도이다.
도 30은 메모리 시스템을 구성하기 위한 방법의 일 실시예를 설명하는 흐름도이다.
도 31은 메모리 시스템을 구성하기 위한 방법의 일 실시예를 설명하는 흐름도이다.
본 발명을 구현하기 위한 적절한 비-휘발성 메모리 시스템의 일례는 NAND 플래시 메모리 구조를 사용하며, 상기 NAND 플래시 메모리 구조는 두개의 선택 게이트들 사이에 복수의 트랜지스터들을 직렬로 배치하는 것을 포함한다. 상기 직렬 트랜지스터들 및 선택 게이트들은 NAND 스트링이라 칭해진다. 도 1은 하나의 NAND 스트링을 도시하는 평면도이다. 도 2는 그것의 등가 회로이다. 도 1 및 도 2에 도시된 NAND 스트링은 제1 선택 게이트(120)와 제2 선택 게이트(122) 사이에 샌드위치된 직렬인 네 개의 트랜지스터들(100, 102, 104, 106)을 포함한다. 선택 게이트(120)는 NAND 스트링의 비트라인(126)으로의 연결을 게이트제어한다. 선택 게이트(122)는 NAND 스트링의 소스 라인(128)으로의 연결을 게이트제어한다. 선택 게이트(120)는 적당한 전압을 제어 게이트(120CG)에 인가함으로써 제어된다. 트랜지스 터들(100, 102, 104, 106) 각각은 제어 게이트와 플로팅 게이트를 구비한다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 구비한다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 제어 게이트(1OOCG)는 워드라인(WL3)에 연결되고, 제어 게이트(102CG)는 워드라인(WL2)에 연결되고, 제어 게이트(104CG)는 워들 라인(WL1)에 연결되고, 그리고 제어 게이트(106CG)는 워드라인(WL0)에 연결된다. 일 실시예에서, 트랜지스터들(100, 102, 104, 106)은 각각의 메모리셀들이다. 다른 실시예들에서, 상기 메모리셀들은 복수의 트랜지스터들을 포함할 수 있거나 또는 도 1 및 도 2에 도시된 것과 다를 수 있다. 선택 게이트(120)는 선택 라인(SGD)에 연결된다. 선택 게이트(122)는 선택 라인(SGS)에 연결된다.
도 3은 위에 설명된 NAND 스트링의 단면도를 제공한다. 도 3에 도시된 바와 같이, NAND 스트링의 트랜지스터들은 p-우물(p-well) 영역(140) 내에 형성된다. 각각의 트랜지스터는 제어 게이트들(100CG, 102CG, 104CG, 106CG)과 플로팅 게이트들(100FG, 102FG, 104FG, 106FG)로 구성되는 적층 게이트 구조(stacked gate structure)를 포함한다. 제어 게이트들 및 플로팅 게이트들은 일반적으로 폴리-실리콘층을 적층함으로써 형성된다. 플로팅 게이트들은 옥사이드 또는 다른 유전체 필름 상단 위의 p-우물의 표면 위에 형성된다. 제어 게이트들은 제어 게이트와 플로팅 게이트를 분리하는 내부-폴리실리콘 유전체층과 함께, 상기 플로팅 게이트 위에 있다. 메모리셀들(100, 102, 104, 106)의 제어 게이트들은 워드라인들을 형성한다. N+ 도핑된 확산 영역들(130, 132, 134, 136, 138)이 이웃 셀들간에 공유되며, 이 셀들을 통하여 셀들은 서로 직렬로 연결되어 NAND 스트링을 형성한다. 이 N+ 도핑된 영역들은 상기 셀들 각각의 소스 및 드레인을 형성한다. 예를 들어, N+ 도핑된 영역(130)은 트랜지스터(122)의 드레인 및 트랜지스터(106)에 대한 소스로서의 역할을 하며, N+ 도핑된 영역(132)은 트랜지스터(106)에 대한 드레인 및 트랜지스터(104)에 대한 소스로서의 역할을 하고, N+ 도핑된 영역(134)은 트랜지스터(104)에 대한 드레인 및 트랜지스터(102)에 대한 소스로서의 역할을 한다. N+ 도핑된 영역(136)은 트랜지스터(102)에 대한 드레인 및 트랜지스터(100)에 대한 소스로서 역할을 하며, N+ 도핑된 영역(138)은 트랜지스터(100)에 대한 드레인 및 트랜지스터(120)에 대한 소스로서의 역할을 한다. N+ 도핑된 영역(126)은 NAND 스트링의 비트라인에 연결되며, N+ 도핑된 영역(128)은 복수의 NAND 스트링들의 공통 소스 라인에 연결된다.
도 1 내지 3은 NAND 스트링에서의 4개의 메모리셀을 도시하지만, 4개의 트랜지스터들의 사용은 단지 예시로서 제공된다는 점에 주목하자. 본 명세서에서 설명된 기법이 사용된 NAND 스트링은 4개의 메모리셀보다 적은 또는 4개의 메모리셀보다 많은 메모리셀을 가질 수 있다. 예를 들어, 일부 NAND 스트링들은 8개의 메모리셀, 16개 메모리셀, 32개 메모리셀, 64개 메모리셀, 기타를 포함할 것이다. 본 명세서에서의 논의는 NAND 스트링 내의 어떤 특정한 수의 메모리셀에 제한되지 않는다.
각각의 메모리셀은 아날로그 또는 디지털 형태로 나타낸 데이터를 저장할 수 있다. 디지털 데이터의 1 비트를 저장할 때, 상기 메모리셀의 가능한 드레시홀드 전압의 범위는 두개의 범위로 나뉘며, 이 두개의 범위에는 로직 데이터(logical data) "1" 및 "0"이 할당된다. NAND-타입 플래시 메모리의 일례에서, 전압 드레시홀드는 상기 메모리셀이 소거된 후 음(negative)의 값이며, 로직(logic) "1"로 정의된다. 프로그램 동작 후 드레시홀드 전압은 양(positive)의 값이며, 로직 "0"으로 정의된다. 드레시홀드 전압이 음이고 제어 게이트에 0 볼트를 인가함으로써 판독 동작이 시도될 때, 로직 "1"이 저장됨을 나타내기 위하여 메모리셀이 턴온 될 것이다. 드레시홀드 전압이 양이고 제어 게이트에 0 볼트를 인가함으로써 판독 동작이 시도될 때, 메모리셀은 턴온되지 않을 것이며, 이는 로직 "0"이 저장됨을 나타낸다. 디지털 데이터의 1 비트를 저장하는 메모리셀은 바이너리 메모리셀로서 칭해진다.
메모리셀은 또한 복수 비트의 디지털 데이터를 저장할 수 있다. 그러한 메모리셀은 복수-상태 메모리셀이라 칭해진다. 복수-상태 메모리셀을 위한 드레시홀드 전압 윈도우(window)는 몇개의 상태들로 나누어진다. 예를 들어, 4개의 상태들이 사용된다면, 데이터 값 "11", "10", "01", "00"에 할당된 4개의 드레시홀드 전압 범위들이 있을 것이다. NAND-타입 메모리의 일례에서, 소거 동작 후 드레시홀드 전압은 음이며, "11"로 정의된다. 양의 드레시홀드 전압들은 "10", "01", 및 "00"의 상태들에 대해 사용된다.
NAND-타입 플래시 메모리 및 그 동작은 다음의 미국 특허들/특허 출원들에서 제공되며, 그것들 전부는 본 명세서에 그 전체가 참조로서 포함된다: 미국 특허 제5,570,315호, 미국 특허 제5,774,397호, 미국 특허 제6,046,935호, 미국 특허 제5,386,422호, 미국 특허 제6,456,528호, 및 미국 특허 출원 번호 09/893,277(공개 번호 US2003/0002348). NAND 플래시 메모리에 추가적으로 다른 타입의 비-휘발성 메모리가 또한 본 발명과 함께 사용될 수 있다.
플래시 EEOROM 시스템에서 유용한 또 다른 타입의 메모리셀은 비-휘발성 방식으로 전하를 저장하기 위하여, 전도성인 플로팅 게이트 대신에 비-전도성인 유전체 물질을 사용한다. 그러한 셀은 IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95, "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device"(Chan et al.)의 문헌에서 설명된다. 실리콘 옥사이드, 실리콘 니트라이드, 그리고 실리콘 옥사이드("ONO")로 형성된 3중 층 유전체가 전도성 제어 게이트와 메모리셀 채널 위의 반-전도성(semi-conductive) 기판 표면 사이에 샌드위치된다. 상기 셀은 상기 셀 채널로부터 상기 질화물로 전자들을 주입함으로써 프로그래밍되며, 여기에서 전자들은 제한된 영역 내에 포획(trap)되고 저장된다. 이 저장된 전하는 검출가능한 방식으로 상기 셀의 채널 일부의 드레시홀드 전압을 변화시킨다. 상기 셀은 고온의 정공(hot hole)들을 상기 질화물 내로 주입함으로써 소거된다. IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501의 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application"(Nozaki et al.)을 또한 참조하면, 여기에서는 도핑된 폴리실리콘 게이트가 메모리셀 채널의 일부분 위로 신장되어 개별적인 선택 트랜지스터를 형성하 는 분리-게이트 구조(split-gate configuration)에서의 유사한 셀을 설명한다. 앞의 두 문헌은 그 전체가 본 명세서에 참조로써 포함된다. William D. Brown과 Joe E. Brewer에 의한 "Nonvolatile Semiconductor Memory Technology," IEEE Press, 1998의 1.2 섹션에 언급된 프로그래밍 기법들은, 본 출원에 대한 참조로서 본 명세서에 통합되며, 또한 이들 기법들은 유전체 전하-포획 디바이스들에도 적용가능하다고 상기 1.2 섹션에 설명되어 있다. 그러므로, 본 명세서에서 설명된 기법은 또한 서로 다른 메모리셀들의 유전체 영역들 간의 커플링에 적용된다.
각각의 셀 내에 두개의 비트들을 저장하기 위한 또 다른 기법이 IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545의 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell"(Eitan et al)에서 설명된다. ONO 유전체층은 소스 및 드레인 확산 영역 사이의 채널을 가로질러 신장된다. 일 데이터 비트를 위한 전하가 드레인에 인접한 유전체층 내에서 로컬화(localize)되며, 다른 데이터 비트를 위한 전하는 상기 소스에 인접한 유전체층 내에서 로컬화된다. 유전체 내에서 공간적으로 분리된 전하 저장 영역들의 바이너리 상태들을 개별적으로 판독함으로써 복수-상태 데이터 저장이 얻어진다. 이 문단에서 설명된 상기 메모리셀들 또한 본 발명과 함께 사용될 수 있다.
도 4는 도 1 내지 3에서 보인 것과 같은 NAND 셀들의 어레이(array)의 예를 도시한다. 각각의 열을 따라, 비트라인(206)이 상기 NAND 스트링(150)에 대한 드레인 선택 게이트의 드레인 단자(126)에 연결된다. NAND 스트링의 각각의 행을 따라, 소스 라인(204)이 NAND 스트링들의 소스 선택 게이트들의 모든 소스 단자(128)들을 연결한다. 메모리 시스템의 일부로서 NAND 구조 어레이 및 그 동작의 예는 미국 특허 제5,570,315호, 제5,774,397호, 제6,046,935호에서 보여진다.
메모리셀들의 어레이는 다수의 메모리셀 블록들로 나누어진다. 플래시 EEPROM 시스템에서 공통적으로, 상기 블록은 소거의 단위이다. 즉, 각각의 블록은 함께 소거되는 최소 개수의 메모리셀들을 포함한다. 각각의 블록은 일반적으로 다수의 페이지들로 나뉜다. 페이지는 프로그래밍의 단위이다. 일 실시예에서, 상기 개별적인 페이지들은 세그먼트(segment)들로 나누어 질 수 있고, 이 세그먼트들은 기본 프로그래밍 동작으로서 한번에 기록되는 극소수의 셀들을 포함할 수 있다. 하나 이상의 데이터 페이지들은 일반적으로 메모리셀의 일 행에 저장된다. 페이지는 하나 이상의 섹터들을 저장할 수 있다. 섹터는 사용자 데이터 및 오버헤드 데이터(overhead data)를 포함한다. 오버헤드 데이터는 일반적으로 섹터의 사용자 데이터로부터 계산되는 에러 정정 코드(ECC)를 포함한다. 제어기의 일부(아래에 설명되는)는 데이터가 어레이로 프로그래밍되는 때 ECC를 계산하고, 또한 데이터가 어레이로부터 판독되는 때에, ECC를 검사(check)한다. 대안적으로, ECC 및/또는 다른 오버헤드 데이터는 그것들에 관련된 사용자 데이터와 다른 페이지들 또는 다른 블록들 내에 저장된다. 사용자 데이터의 섹터는 일반적으로 512 바이트이며, 이는 자기 디스크 드라이브 내의 섹터 사이즈에 해당한다. 오버헤드 데이터는 일반적으로 추가적인 16-20바이트이다. 많은 수의 페이지들, 대략 8페이지부터 예를 들어, 32, 64, 128 또는 더 많은 페이지들이 블록을 형성한다.
도 5는 본 발명의 일 실시예에 따른, 메모리셀의 페이지를 병렬로(in parallel) 판독 및 프로그래밍하기 위한 판독/기록 회로들을 구비한 메모리 디바이스(296)를 도시한다. 메모리 디바이스(296)는 하나 이상의 메모리 다이(memory die)(298)를 포함할 수 있다. 메모리 다이(298)는 메모리셀(300), 제어 회로(310), 및 판독/기록 회로(365)의 2-차원 어레이를 포함한다. 일부 실시예들에서, 메모리셀들의 어레이는 3차원일 수 있다. 상기 메모리셀은 비트라인, 워드라인, 소스 라인, 및 메모리 어레이를 제어하기 위해 사용되는 다른 라인들과 같은 다양한 제어 라인들에 의해서 제어되고 억세스된다. 예를 들어, 메모리 어레이(300)는 행디코더(330)를 통하여 워드라인에 의해, 그리고 열디코더(360)를 통하여 비트라인에 의해 주소지정가능(addressable)하다. 상기 판독/기록 회로(365)는 복수의 감지 블록들(400)을 포함하며 메모리셀 페이지가 병렬로 읽히거나 프로그램되게 해준다. 일반적으로, 제어기(350)는 하나 이상의 메모리 다이(298)와 동일한 메모리 디바이스(296)(예를 들어, 제거가능한 저장 카드)에 포함된다. 명령들 및 데이터는 라인(320)을 통해 호스트와 제어기(350) 간에 전달되며 라인(318)을 통해 제어기와 하나 이상의 메모리 다이(298) 간에 전달된다.
제어 회로(310)은 판독/기록 회로(365)와 함께 동작하여 메모리 어레이(300) 상의 메모리 동작을 수행한다. 제어 회로(310)는 상태 머신(312), 온-칩 주소 디코더(on-chip address decoder)(314), 및 전력 제어 모듈(316)을 포함한다. 상태 머신(312)은 메모리 동작의 칩-레벨 제어를 제공한다. 온-칩 주소 디코더(314)는 디코더(330 및 360)에 의해 사용되는 하드웨어 주소와 호스트 혹은 메모리 제어기에 의해 사용되는 주소 간의 주소 인터페이스를 제공한다. 전력 제어모듈(316)은 메모 리 동작 동안 워드라인과 비트라인에 제공되는 전력 및 전압을 제어한다.
일부 구현예들에서, 도 5의 일부 요소들은 결합될 수 있다. 다양한 설계들에서, 메모리셀 어레이(300)를 제외한 도 5의 하나 이상의 요소들(단독으로 혹은 결합해서)은 관리 회로(managing circuit)로서 생각될 수 있다. 예를 들어, 관리 회로는 제어 회로(310), 상태 머신(312), 디코더(314, 360), 전력 제어(316), 감지 블록(400), 판독/기록 회로(365), 제어기(350)등의 조합 또는 이들 중 어느것을 포함할 수 있다.
도 6은 도 5에서 보인 메모리 디바이스(296)의 또 다른 구성을 도시한다. 다양한 주변 회로(peripheral circuit)에 의한 메모리 어레이(300)에 대한 억세스가 어레이의 대향 면 상에 대칭으로 구현되며, 따라서 각각의 면 상의 억세스 라인 및 회로 밀도가 절반으로 줄어든다. 그러므로, 행디코더는 행디코더(330A)와 행디코더(330B)로 나뉘고, 열디코더는 열디코더(360A), 열디코더(360B)로 나뉜다. 이와 유사하게, 판독/기록 회로들은 바닥으로부터 비트라인에 연결되는 판독/기록 회로(365A)와 어레이(300)의 상단으로부터 비트라인에 연결되는 판독/기록 회로(365B)으로 나뉜다. 이러한 방식으로, 판독/기록 모듈의 밀도는 반드시 절반정도 줄어든다. 도 6의 디바이스는 또한 도 5의 디바이스에 대해 상기 설명된 바와 같이 제어기를 포함한다.
도 7을 참조로하여, 메모리셀 어레이(300)의 예시적인 구조가 설명된다. 일 예로, 1,024블록으로 분할된(partitioned) NAND 플래시 EEPROM이 설명된다. 각각의 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 상기 블록은 동시에 소거되는 최소 메모리셀 유닛이다. 이 예에서, 각각의 블록에는, 비트라인 BL0, BL1, ... BL8511에 대응하는 8,512개의 열들이 있다. 일 실시예에서, 판독 및 프로그램 동작 중에 블록의 모든 비트라인들이 동시에 선택될 수 있다. 공통 워드라인을 따라 있으며 임의의 비트라인에 연결된 메모리셀들은 동시에 프로그래밍될 수 있다.
또 다른 실시예에서, 상기 비트라인은 짝수 비트라인과 홀수 비트라인으로 나뉜다. 홀수/짝수 비트라인 구조에서, 공통 워드라인을 따라 있으며 홀수 비트라인에 연결된 메모리셀들은 한번에 프로그램되며, 공통 워드라인을 따라 있으며 짝수 비트라인에 연결된 메모리셀들은 또 다른 한번에 프로그래밍된다.
도 7은 직렬로 연결되어 NAND 스트링을 형성하는 4개의 메모리셀을 도시한다. 비록 4개의 셀들이 각각의 NAND 스트링에 포함되는 것으로 도시되나, 4개 보다 많거나 더 적은 개수의 셀들도 사용될 수 있다(예를 들어, 16, 32, 또는 다른 숫자). NAND 스트링의 일 단자는 드레인 선택 게이트를 통해(선택 게이트 드레인 라인 SGD에 연결됨) 해당 비트라인에 연결되며, 또 다른 단자는 소스 선택 게이트를 통해(선택 게이트 소스 라인 SGS에 연결됨) c-소스에 연결된다.
도 8은 감지 모듈(380)과 공통 부분(390)으로 불리는, 코어 부분(core portion)으로 구역화된 개별 감지 블록(400)의 블록도이다. 일 실시예에서, 복수의 감지 모듈(380)의 세트에 대한, 각각의 비트라인과 하나의 공통 부분(390)에 대한 개별 감지 모듈(380)이 있을 수 있다. 일 실시예에서, 감지 블록은 하나의 공통 부분(390)과 여덟 개의 감지 모듈(380)을 포함할 것이다. 하나의 그룹에서의 감지 모 듈 각각은 데이터 버스(372)를 통해 관련된 공통 부분과 통신할 것이다. 더 세부적인 사항에 대해서는 미국 특허출원 11/026,536(발명의 명칭: "Non-Volatile Memory & Method with Shared Processing for an Aggregate of Sense Amplifiers," 2004.12.29 출원)을 참조하기 바라며, 이것은 그 전체가 참조로써 본 명세서에 포함된다.
감지 모듈(380)은 연결된 비트라인의 전도 전류(conduction current)가 미리 정해진 드레시홀드 레벨보다 큰지 작은지 판단하는 감지 회로(370)를 포함한다. 감지 모듈(380)은 또한 연결된 비트라인 상의 전압 상태를 설정하기 위해 사용되는 비트라인 래치(latch)(382)를 포함한다. 예를 들어, 비트라인 래치(382)에 래치된 미리 정해진 상태는 결과적으로 연결된 비트라인이 프로그램 금지를 의미하는 상태(예를 들어, Vdd)가 되게 한다.
공통 부분(390)은 프로세서(392), 데이터 래치들의 세트(394), 및 데이터 래치들(394)의 세트와 데이터 버스(320) 사이에 연결된 I/O 인터페이스(396)를 포함하여 구성된다. 프로세서(392)는 연산을 수행한다. 예를 들어, 그것의 기능 중 하나는 감지된 메모리셀 내에 저장된 데이터를 결정하여 결정된 데이터를 데이터 래치들의 세트에 저장하는 것이다. 데이터 래치들(394)의 세트는 판독 동작 중에 프로세서(392)에 의해 결정된 데이터 비트들을 저장하기 위해 사용된다. 이것은 또한 프로그램 동작 중에 데이터 버스(320)로부터 들어온 데이터 비트들을 저장하기 위해 사용된다. 들어온 데이터 비트들은 메모리에 프로그래밍될 기록 데이터를 나타낸다. I/O 인터페이스(396)는 데이터 래치들(394)과 데이터 버스(320) 간의 인터페 이스를 제공한다.
판독 또는 감지 동안, 시스템의 동작은 상태 머신(312)의 제어하에 있으며, 이 상태 머신은 어드레스된(addressed) 셀로의 서로 다른 제어 게이트 전압 공급을 제어한다. 메모리에 의해 지원되는 다양한 메모리 상태에 대응하는 다양한 미리 정해진 제어 게이트 전압들을 통과함에 따라, 감지 모듈(380)은 이러한 전압들 중 하나에서 트립(trip) 할 수 있으며, 출력이 버스(372)를 통해 감지 모듈(380)로부터 프로세서(392)로 제공될 것이다. 그 지점에서, 프로세서(392)는 감지 모듈의 트립핑 이벤트(tripping event(s)) 및 입력 라인(393)을 경유하여 상태 머신으로부터 인가된 제어 게이트 전압에 관한 정보를 고려하여, 결과적인 메모리 상태를 결정한다. 그것은 그후 메모리 상태를 위한 바이너리 인코딩을 계산하며, 결과적인 데이터 비트들을 데이터 래치(394)에 저장한다. 코어 부분의 또 다른 실시예에서, 비트라인 래치(382)는 감지 모듈(380)의 출력부를 래칭하는 래치로서, 그리고 또한 상술한 바와 같은 비트라인 래치로서 두가지 기능을 한다.
일부 실시예들은 다중 프로세서들(392)을 포함할 것으로 예측된다. 일 실시예에서, 각각의 프로세서(392)는 출력 라인(도 9에 도시되지 않음)을 포함하며 각각의 출려 라인들은 함께 와이어드-OR(wired-OR)될 것이다. 일부 실시예들에서, 출력 라인들은 와이어드-OR 라인에 연결되기 전에 인버팅(inverting)된다. 이러한 구성은 프로그램 검증 프로세스 동안 프로그래밍 프로세스가 완료된 때에 관해 빠른 결정을 가능하게 하는데, 왜냐하면 와이어드-OR을 수신하는 상태 머신은 프로그래밍되는 모든 비트들이 요구된 레벨에 도달한 때를 결정할 수 있기 때문이다. 예를 들어, 각각의 비트가 그 요구되는 레벨에 도달했을 때, 그 비트에 대해 로직 0이 와이어드-OR 라인으로 보내질 것이다(또는 데이터 1이 인버팅된다). 모든 비트들이 데이터 0을 출력할 때(또는 데이터 1이 인버팅될 때), 상태 머신은 프로그래밍 프로세스를 종료시켜야 하는 것을 알고 있다. 각각의 프로세서가 8개의 감지 모듈들과 통신하므로, 상태 머신은 와이어드-OR 라인을 8번 판독하여야 하거나, 또는 관련된 비트라인들의 결과들을 축적하도록 로직이 프로세서(392)에 더해져서 상태 머신이 와이어드-OR 라인을 단지 일회만 판독하면 된다. 마찬가지로, 로직 레벨을 정확하게 선택함으로써, 전체 상태 머신(global state machine)은, 제1 비트가 그것의 상태를 변경하고 그에따라 그 알고리즘을 변경하는 때를 검출할 수 있다.
프로그램 또는 검증 중에, 프로그래밍될 데이터는 데이터 버스(320)로부터 데이터 래치들(394)의 세트에 저장된다. 상태 머신의 제어 하에서, 프로그램 동작은 어드레스된 메모리셀의 제어 게이트에 인가되는 일련의 프로그래밍 전압 펄스들을 포함한다. 각각의 프로그래밍 펄스 후, 메모리셀이 요구되는 상태로 프로그램되었는지를 판단하기 위한 검증 동작이 뒤를 따른다. 프로세서(392)는 요구되는 메모리 상태와 관련하여 검증된 메모리 상태를 모니터한다. 두 상태가 일치할 때, 프로세서(222)는 비트라인을 프로그램 금지를 나타내는 상태가 되게 하기 위하여 비트라인 래치(214)를 세팅한다. 이것은 프로그래밍 펄스들이 그 제어 게이트상에 나타날지라도 비트라인에 연결된 셀들의 후속 프로그래밍을 금지한다. 다른 실시예들에서, 상기 프로세서는 초기에 비트라인 래치(382)를 로딩하며, 감지 회로는 검증 프로세스 동안 그것을 금지 값으로 세팅한다.
데이터 래치 스택(394)은 감지 모듈에 대응하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(380)당 세 개의 데이터 래치들이 있다. 일부 구현예에서(요구되는 사항은 아님) 데이터 래치들은 시프트 레지스터로서 구현되며 그러므로 그 안에 저장된 병렬 데이터가 데이터 버스(320)에 대한 직렬 데이터로 전환되고, 그 반대의 경우도 가능하다. 바람직한 실시예에서, m 메모리셀들의 판독/기록 블록에 대응하는 모든 데이터 래치는 서로 연결되어 블록 시프트 레지스터를 형성할 수 있고 그러므로 데이터의 블록이 직렬 전달에 의해 입력되거나 출력될 수 있다. 특히, r 판독/기록 모듈의 뱅크는 그 데이터 래치들의 세트 각각이, 마치 그것들이 전체 판독/기록 블록을 위한 시프트 레지스터의 일부인것 처럼, 데이터를 데이터 버스 내로 또는 바깥으로 순차적으로 이동시키도록 되어있다.
비-휘발성 저장 디바이스의 다양한 실시예들의 구조 및/또는 동작에 대한 추가적인 정보는 (1)2004년 3월 25일자로 공개된 미국 특허 출원 공개번호 제2004/0057287호, 제목 "Non-Volatile Memory And Method With Reduced Source Line Bias Errors" (2)2004년 6월 10일자로 공개된 미국 특허 출원 공개번호 제2004/0109357호, 제목 "Non-Volatile Memory And Method with Improved Sensing" (3)2004년 12월 16일자로 출원된 미국 특허 출원 제11/015,199호, 제목 "Improved Memory Sensing Circuit And Method For Low Voltage Operation"(발명자: Raul-Adrian Cernea) (4)2005년 4월 5일자로 출원된 미국 특허 출원 제11/099,133호, 제목 "Compensating for Coupling During Read Operations of Non-Volatile Memory" (발명자: Jian Chen), (5)2005년 12월 28일자로 출원된 미국 특허 출원 번호 제11/321,953호, 제목 "Reference Sense Amplifier For Non- Volatile Memory"(발명자: Siu Lung Chan and Raul-Adrian Cernea)에서 찾아볼 수 있다. 위에 열거된 5개의 특허 문헌 모두는 그 전체가 본 명세서에 참조로써 포함된다.
도 9는 감지 모듈(380)의 예를 도시한다. 그러나, 다른 구현들 또한 사용될 수 있다. 감지 모듈(380)은 비트라인 절연 트랜지스터(bit line isolation transistor)(512), 비트라인 풀 다운 회로(bit line pull down circuit)(트랜지스터 522, 550), 비트라인 전압 클램프 트랜지스터(612), 판독 버스 전달 게이트(530), 감지 증폭기(600) 및 비트라인 래치(382)를 포함하여 구성된다. 비트라인 절연 트랜지스터(512)의 일 단은 비트라인(BL)과 커패시터(510)에 연결된다. 비트라인 절연 트랜지스터(512)의 다른 단은 비트라인 전압 클램프 트랜지스터 및 비트라인 풀 다운 트랜지스터(522)에 연결된다. 비트라인 절연 트랜지스터(512)의 게이트는 BLS라고 표기된 신호를 수신한다. 비트라인 전압 클램프 트랜지스터(612)의 게이트는 BLC라고 표기된 신호를 수신한다. 비트라인 전압 클램프 트랜지스터(512)는 노드 SEN2에서 판독 버스 전달 게이트(readout bus transfer gate)(530)에 연결된다. 판독 버스 전달 제이트(530)는 판독 버스(readout bus)(532)에 연결된다. 비트라인 전압 클램프 트랜지스터(512)는 노드 SEN2에서 감지 증폭기(600)에 연결된다. 도 9의 실시예에서, 감지 증폭기(600)는 트랜지스터(613, 634, 641, 642, 643, 654, 656, 658)와 커패시터(Csa)를 포함하며, 비트라인 래치(382)는 트랜지스터(661, 662, 663, 664, 666, 668)를 포함한다.
일반적으로, 하나의 워드라인을 따라 있는 메모리셀들은 병렬로 동작한다. 그러므로, 대응하는 수의 감지 모듈들이 병렬로 동작한다. 일 실시예에서, 제어기가 병렬로 동작하는 감지 모듈들에게 제어 및 타이밍 신호들을 제공한다. 일부 실시예들에서, 워드라인을 따라 있는 데이터는 복수의 페이지들로 나누어지며, 데이터는 한번에 한 페이지 또는 한번에 여러 페이지들이 판독되거나 프로그래밍된다.
비트라인 절연 트랜지스터(512)가 신호 BLS에 의해 인에이블(enable)될 때, 감지 모듈(380)은 메모리셀의 비트라인(예를 들어, 비트라인 BL)에 연결될 수 있다. 감지 모듈(380)은 감지 증폭기(600)에 의하여 메모리셀의 전도 전류를 감지하며, 판독 결과를 감지 노드(SEN2)에서의 디지털 전압 레벨로서 래치하여 그것을 게이트(530)을 통하여 판독 버스(532)로 출력한다.
감지 증폭기(600)는 제2 전압 클램프(트랜지스터(612, 634)), 프리-차지 회로(트랜지스터(541, 642, 643)), 및 판별기(discriminaor) 또는 비교 회로(트랜지스터(652, 656, 658), 및 커패시터(Csa))를 포함하여 구성된다. 일 실시예에서, 기준 전압이 판독되는 메모리셀의 제어 게이트에 인가된다. 만약 기준 전압이 메모리셀의 드레시홀드 전압보다 높다면, 메모리셀이 턴온되고 그 소스 및 드레인 사이의 전류를 전도(counduct)할 것이다. 기준 전압이 메모리셀의 드레시홀드 전압보다 크지 않다면, 메모리셀은 턴온 되지 않으며 그 소스와 드레인 사이에 전류를 전도하지 않을 것이다. 많은 구현예에서, 온/오프가 계속해서 바뀌어, 메모리셀이 다른 제어 게이트 전압에 응답하여 서로 다른 전류들을 전도시킬 것이다. 메모리셀이 온이고 높은 전류를 전도시키고 있다면, 상기 전도된 전류는 노드(SEN) 상의 전압이 줄어들게 할 것이며, 커패시터(Csa)에 걸리는 전압을 효과적으로 충전시키거나 증가시키며 커패시터의 다른 단자는 Vdd에 있다. 노드(SEN) 상의 전압이 미리 정해진 감지 기간 동안에 미리 정해진 레벨로 방전되면, 감지 증폭기(600)은 제어 게이트 전압에 응답하여 메모리셀이 턴온되었다고 보고한다.
감지 모듈(380)의 한 가지 특징은 감지하는 동안 비트라인에 일정한 전압 공급을 형성하는 것이다. 이것은 비트라인 전압 클램프 트랜지스터(612)에 의해 바람직하게 구현된다. 비트라인 전압 클램프 트랜지스터(612)는 비트라인(BL)과 직렬로 연결된 트랜지스터(612)와 함께 다이오드 클램프처럼 동작한다. 그것의 게이트는 일정한 전압(BLC)(이것은 그 드레시홀드 전압(VT)보다 높은 요구된 비트라인 전압(VBL)과 같다)에 바이어싱(biasing) 되어 있다. 이러한 방식으로, 이것은 비트라인을 감지 노드(501)로부터 분리시키고 비트라인에 대해 일정한 전압 레벨(예를 들어, 프로그램-검증 또는 판독 동안 요구된 VBL = 0.5 내지 0.7)을 설정한다. 일반적으로, 비트라인 전압 레벨은 긴 프리차지 시간을 피하기에는 충분히 낮지만 그라운드 노이즈(ground noise) 및 다른 요인(factor)을 피하기에는 충분히 높은 임의 레벨로 설정된다.
감지 증폭기(600)가 감지 노드(SEN)를 통하여 전도 전류를 감지하며 전도 전류가 미리 정해진 값보다 높은지 낮은지 결정한다. 감지 증폭기는 감지된 결과를 판독 버스(532)로의 신호(SEN2)로서 디지털 형태로 출력한다.
본질적으로 SEN2에서의 신호의 인버팅된 상태일 수 있는 디지털 제어 신호(INV)가 또한 풀-다운 회로를 제어하기 위하여 출력된다. 감지된 전도 전류가 미리 정해진 값보다 높을 때, INV는 HIGH일 것이며, SEN2는 LOW일 것이다. 이 결과는 풀-다운 회로에 의해 보강된다. 풀-다운 회로는 제어 신호(INV)에 의해 제어되는 n-트랜지스터(522) 및 제어 신호(GRS)에 의해 제어되는 또 다른 n-트랜지스터(550)을 포함한다. 상기 GRS신호가 LOW일 때 비트라인(BL)이 INV신호의 상태에 상관없이 플로팅되도록 할 수 있다. 프로그래밍 중에, 상기 GRS신호는 HIGH가 되어 비트라인(BL)이 접지되게 하고 INV에 의해 제어되도록 할 수 있다. 비트라인(BL)이 플로팅될 필요가 있을 때, 상기 GRS 신호는 LOW가 된다. 주목할 점은, 다른 감지 모듈 설계에서, 감지 증폭기 및 래치가 또한 사용될 수 있다는 점이다.
판독/기록 회로(365)는 메모리셀의 페이지 상에서 동시에 동작한다. 판독/기록 회로(365)의 각각의 감지 모듈(380)이 비트라인을 통해 대응하는 셀에 연결된다. 전도 전류는 비트라인을 통해 감지 모듈로부터 메모리셀의 드레인으로 흐르며, 소스라인을 통해 그라운드로 가기 전에 소스로부터 나온다. 집적 회로 칩에서, 메모리 어레이 내의 셀의 소스들은, 메모리 칩의 어떤 외부 그라운드 패드(ground pad)(예를 들어, Vss 패드)에 연결된 소스 라인의 복수의 브랜치들로서 전부 함께 묶인다. 금속 스트래핑이 소스 라인의 저항을 줄이기 위하여 사용될 때 조차, 한정된 저항(R)이 메모리셀의 소스 전극과 그라운드 패드사이에서 유지된다. 일반적으로, 그라운드 루프 저항(R)은 약 50옴이다.
병렬로 감지되는 메모리의 전체 페이지에 대해, 소스 라인을 통해 흐르는 전체적인 전류 흐름은 모든 전도 전류들의 합이다. 일반적으로, 각각의 메모리셀은 그것의 전하 저장 소자 내에 프로그램된 전하의 양에 따른 전도 전류를 가진다. 메모리셀의 주어진 제어 게이트 전압에 대해, 적은 전하가 상대적으로 더 높은 전도 전류를 발생킬 것이다. 메모리셀의 소스 전극과 그라운드 패드사이에 한정된 저항 이 존재할 때, 상기 저항에 걸리는 전압 강하는 Vdrop = iTOT R로서 주어진다.
예를 들어, 4,256 비트라인들이 각각 전류 1μA씩 동시에 방전되면, 소스 라인 전압 강하는 4000라인 x 1μA/라인 x 50옴 ~ 0.2볼트와 같아질 것이다. 이 소스 라인 바이어스는 메모리셀의 드레시홀드 전압이 감지될 때 0.2볼트의 감지 에러를 야기할 것이다.
실시예의 일 세트에서, 다중-패스(multi-pass) 감지를 위한 특성 및 기법들과 함께 소스 라인 바이어스를 감소시키기 위한 방법이 판독/기록 회로에 의해 수행된다. 각각의 패스(pass)는 주어진 경계 전류 값(given demarcation current value)보다 높은 전도 전류를 가지는 메모리셀을 식별하여 셧-다운시킬 수 있도록 해준다. 일반적으로, 각각의 패스에 대해, 상기 주어진 경계 전류 값은, 종래의 단일-패스 감지에 대한 중단점(breakpoint) 전류값으로 점진적으로 수렴한다. 이러한 방식으로, 더 높은 전류 셀들이 셧 다운되었으므로 후속적인 패스들에서의 감지는 소스 라인 바이어스에 의한 영향을 덜 받을 것이다.
예를 들어, 다중-패스 감지는 두개의 패스들(j = 0 ~ 1)에 구현될 수 있다. 제1 패스 후에, 중단점보다 높은 전도 전류의 메모리셀들이 식별되며 그것들의 전도 전류를 턴-오프함으로써 제거된다. 그것들의 전도 전류를 턴-오프하기 위한 바람직한 방법은 그것들의 비트라인상의 드레인 전압을 그라운드로 세팅하는 것이다. 두번째 패스에서는, 소스 라인 바이어스로부터의 에러가 줄어든다. 두개 이상의 패스들 또한 고려된다. 소스 라인 바이어스가 에러를 일으키지 않는 실시예에서, 감지를 위하여 하나의 패스가 사용될 수 있다.
도 10(A)-10(K)는 판독/검증 동작중의 감지 모듈(380)의 일 실시예를 설명하는 타이밍도를 도시한다.
단계(0): 셋업
감지 모듈(380)(도 9 참조)이 인에이블링 신호 BLS(도 10(A))를 통해 대응하는 비트라인에 연결된다. 전압 클램프는 BLC(도 10(B))로 인에이블된다. 프리차지 트랜지스터(642)는 제어 신호 FLT(도 10(C))로 제한된 전류 소스로서 인에이블된다.
단계(1): 제어되는 프리차지
감지 증폭기(600)가 리셋 신호(RST)(도 10(D))에 의해 초기화되며, 이 리셋 신호는 신호 INV(도 10(H))가 트랜지스터(658)를 통해 그라운드되게 할 것이다. 그러므로, 리셋시, INV는 LOW로 세팅된다. 동시에, p-트랜지스터(663)는 상보형 신호(LAT)가 Vdd, 즉 HIGH(도 10(H))가 되게 한다. 즉, LAT는 INV의 상보형(complement)이다. 절연 트랜지스터(634)가 신호(LAT)에 의해 제어된다. 그러므로, 리셋후에, 절연 트랜지스터(634)는 감지 노드(SEN2)를 감지 증폭기의 내부 감지 노드(SEN)과 연결시킬 수 있다.
프리차지 트랜지스터(642)는 미리 정해진 기간 동안 내부 감지 노드(SEN) 및 감지 노드(SEN2)를 통하여 비트라인(BL)을 프리차지한다. 이것은 전도율을 감지하기 위해 비트라인에 최적 전압을 공급 할 것이다. 프리차지 트랜지스터(642)는 제어 신호(FLT("FLOAT"))에 의해 제어된다. 상기 비트라인은 비트라인 전압 클램 프(612)에 의해 설정된 바와 같이 요구되는 비트라인 전압이 되도록 풀 업될 것이다. 풀 업의 속도는 비트라인 내의 전도 전류에 의존할 것이다. 전도 전류가 적을 수록, 풀 업은 빠를 것이다.
앞서서, 만약 미리 정해진 값보다 큰 전도 전류를 지닌 메모리셀들이 턴-오프이고 그 메모리셀들이 상기 소스 라인 바이어스에 대해 미치는 영향이 제거된다면, 소스 라인 바이어스에 의한 에러 감지는 최소화된다고 설명하였다. 그러므로, 프리차지 트랜지스터(642)는 두가지 기능을 한다. 하나는 비트라인을 최적 감지 전압으로 프리차지하는 것이다. 다른 하나는 D.C(직류 전류) 감지를 위해 미리 정해진 값보다 높은 전도 전류를 가진 메모리셀들을 식별하여 그들이 소스 라인 바이어스에 영향을 미치지 못하게 하는 것이다.
D.C 감지는 프리차지 회로를 제공함으로써 이루어지며, 상기 프리차지 회로는 미리 정해진 전류를 비트라인에 공급하기 위한 전류 소스처럼 동작한다. p-트랜지스터(642)를 제어하는 신호(FLT)는 미리 정해진 전류를 흐르도록 프로그래밍하는 그러한 신호이다. 예를 들어, 신호(FLT)는 500nA로 설정된 기준 전류를 가진 전류 미러(current mirror)로부터 생성될 수 있다. p-트래지스터(642)가 전류 미러의 미러링된 레그(mirrored leg)를 형성할 때, 동일한 500nA가 그 안에 흐를 것이다.
도 10(I1)-10(I4)는 700nA, 400nA, 220nA, 및 40nA의 전도 전류를 구비한 메모리셀들에 각각 연결되는 4개의 예시적인 비트라인 상의 전압을 도시한다. 프리차지 회로(트랜지스터(642)를 포함하는)가 제한 전류 500nA의 전류 소스일 때, 예를 들어, 500nA를 초과하는 전도 전류를 가진 메모리셀은 비트라인 상에 그것이 축적할 수 있는 속도보다 더 빠르게 전하를 방출할 것이다. 결과적으로, 전도 전류(700nA)의 비트라인에 대해, 그것의 전압 또는 내부 감지 노드(SEN)에서의 신호는 0V에 가깝게(예를 들어, 0.1볼트. 도 10(I1) 참조.) 유지될 것이다. 반면, 메모리셀의 전도 전류가 500nA보다 낮다면, 프리차지 회로(트랜지스터(642)를 포함하는)는 비트라인을 충전하기 시작할 것이며, 그 전압은 클램프된 비트라인 전압(예를 들어 전압 클램프(612)에 의해 설정된 0.5V)으로 상승하기 시작할 것이다(도 10(I2)-10(I4)). 따라서, 내부 감지 노드(SEN)는 0V가까이 유지되거나 Vdd로 풀 업될 것이다(도 10(G)). 일반적으로, 전도 전류가 더 적을 수록, 비트라인 전압은 클램프된 비트라인 전압으로 더 빠르게 충전될 것이다. 그러므로, 제어된 프리차지 단계 후 비트라인 상의 전압을 검사함으로써, 연결된 메모리셀이 미리 정해진 레벨보다 높은 전도 전류를 가지고 있는지 낮은 전도 전류를 가지고 있는지 식별하는 것이 가능하다.
단계(2): D.C 래칭 및 후속적인 스트로브로부터 높은 전류 셀들을 제거
제어되는 프리차지 단계 이후, 판별기 회로(discriminator circuit)에 의해 노드(SEN)가 감지되는, 초기의 D.C. 높은 전류 감지 단계(initial D.C high-current sensing phase)가 시작한다. 이 감지는 미리 정해진 레벨보다 높은 전도 전류를 지닌 그러한 메모리셀들을 식별한다. 상기 판별기 회로는 두개의 p-트랜지스터(654, 656)를 직렬로 포함하며, 이것들은 신호(INV)를 가리키는 노드에 대해 풀 업의 기능을 한다. p-트랜지스터(654)는 판독 스트로브 신호(STB)가 LOW가 됨으로써 인에이블되고, p-트랜지스터(656)는 내부 감지 노드(SEN)에서의 신호가 LOW가 됨으로써 인에이블된다. 높은 전류 메모리셀들은 OV에 가까운 신호(SEN)를 가지거나 혹은 적어도 그 비트라인들이 p-트랜지스터(656)를 턴 오프하기에 충분하게 사전 충전될 수 없게 하는 신호(SEN)를 가진다. 예를 들어, 만약 약한 풀 업이 500nA의 전류로 한정된다면, 700nA의 전도 전류를 가지는 셀을 풀 업 하는 데 실패한다(도 10(G1)). STB 스트로브가 래치를 위해 LOW가 될 때, INV는 Vdd로 풀 업 된다. 이것은 INV HIGH 및 LAT LOW를 가지는 래치 회로(660)를 세팅한다(도 10(H1)).
INV가 HIGH이고 LAT이 LOW일 때, 분리 게이트(630)가 디스에이블되며, 감지 노드(SEN2)가 내부 감지 노드(SEN)으로부터 차단된다. 동시에, 비트라인이 풀 다운 트랜지스터(522)(도 9& 10(I1))에 의해 그라운드가 된다. 이는 비트라인 내의 임의의 전도 전류를 실질적으로 턴오프할 것이며, 그것이 소스 라인 바이어스에 미치는 영향을 제거할 것이다.
그러므로, 감지 모듈(380)의 바람직한 일 구현예에서, 제한된-전류 소스 프리차지 회로가 사용된다. 이것은 고전류가 흐르는 비트라인들을 식별하고 후속적인 감지에 있어서 그것들을 턴오프하여 소스 라인 바이어스 에러를 최소화하기 위한 추가적인 또는 대안적인 방법(D.C 감지)을 제공할 것이다.
또 다른 실시예에서, 프리-차지 회로는 높은 전류 비트라인들을 식별하기 위하여 특화되는것이 아니라 메모리 시스템에 가능한 최대 전류 허용치 내에서 가능한한 빨리 비트라인들을 풀 업하고 프리차지하도록 최적화된다.
단계(3): 복원/프리차지
이전에 풀-다운 되지 않았던 비트라인 내의 전도 전류를 감지하는 단계에 선행하여, 프리차지 회로는 신호(FLT)가 LOW로 감에 따라 내부 감지 노드(SEN2)를 Vdd(도 10(C) 및 도 10(I2)-10(I4))로 프리차지하며, 인접한 비트라인들 상의 전압의 감소로 인하여 부분적으로 커플-다운(coupled down)되었을 수 있는 비트라인을 프리차지 한다.
단계(4): 제1 A.C.감지
일 실시예에서, A.C.(교류 전류(Alternating Current) 또는 과도(transient)) 감지는 플로팅된 내부 감지 노드(SEN)에서의 전압 강하를 판단함으로써 수행된다. 이는 내부 감지 노드(SEN)에 연결된 커패시터(Csa)를 사용하는 판별기 회로 및 전도 전류가 그것(노드 SEN 상의 전압이 감소됨)을 충전하는 속도를 고려함으로써 달성된다. 집적 회로 환경에서, 커패시터(Csa)는 일반적으로 트랜지스터와 함께 구현된다. 그러나, 다른 구현예들도 적절하다. 커패시터 Csa는 미리 정해진 커패시턴스 예를 들어, 30fF를 가지며, 이 값은 최적의 전류 결정을 위해 선택될 수 있다. 일반적으로 100-1000nA인 경계 전류 값은 충전 기간을 적절히 조정함으로써 설정될 수 있다.
판별기 회로는 내부 감지 노드(SEN) 내의 신호(SEN)를 감지한다. 각각의 감지 이전에, 내부 감지 노드(SEN)에 있는 신호가 프리차지 트랜지스터(642)에 의해 Vdd로 풀 업된다. 이것은 초기에 커패시터(Csa)에 걸리는 전압이 0이 되게 할 것이다.
감지 증폭기(600)가 감지할 준비가 될 때, 프리차지 회로는 FLT가 HIGH(도 10(C))가 됨으로써 디스에이블된다. 제1 감지 기간(T1)은 스트로브 신호(STB)의 어써션(assertion)에 의해 종료된다. 감지 기간 동안에, 전도성 메모리셀에 의하여 유도되는 전도 전류는 커패시터를 충전시킬 것이다. SEN에서의 전압은, 커패시터(Csa)가 비트라인 내의 전도 전류의 방출 작용을 통해 충전됨에 따라 Vdd로부터 줄어들 것이다. 도(10(G))(곡선(G2)-(G4)참조)는 400nA, 220nA 및 40nA의 전도 전류를 지닌 메모리셀들에 각각 연결된 나머지 세개의 예시적인 비트라인들에 대응하는 SEN 노느를 도시하며, 상기 전압 감소는 더 높은 전도 전류를 가질 수록 더 빨리 진행될 것이다.
단계(5): 제1 A.C. 래칭 및 후속 감지로부터 더 높은 전류 셀들의 제거
제1 소정의 감지 기간 종료시, SEN 노드는 비트라인 내의 전도 전류에 따라 임의의 전압으로 감소될 것이다(도 10(G)의 곡선 G2-G4참조). 예를 들어, 이 1 단계의 경계 전류는 300nA에 있도록 세팅된다. 커패시터 Csa, 감지기간 T1 및 p-트랜지스터(656)의 드레시홀드 전압은 경계 전류(예를 들어 300nA)보다 높은 전도 전류에 대응하는 SEN에서의 신호가 트랜지스터(656)를 턴온시키기에 충분히 낮게 강하하게한다. 래칭 신호(STB)가 LOW일 때, 출력 신호(INV)는 HIGH가 될 것이며, 래치(382)에 의해 래치될 것이다(도 10(E) 및 도 10(H)(곡선 H2)). 반면에, 경계 전류보다 낮은 전도 전류에 대응하는 신호(SEN)는 트랜지스터(656)를 턴온할 수 없는 신호를 생성할 것이다. 이러한 경우에, 래치(382)는 LAT는 HIGH로 유지되어 변경되지 않은 채로 남아있게 될 것이다(도 10(H3) 및 10(H4)). 그러므로, 상기 판별기 회로는 감지 기간에 의해 설정된 기준 전류와 관련된 비트라인 내의 전도 전류 크기를 실질적으로 결정하는 것으로 볼 수 있다.
감지 증폭기(600)는 또한 제2 전압 클램프 트랜지스터(612)를 포함하며, 이 트랜지스터의 목적은 비트라인 전압 클램프(610)가 적절하게 기능하도록 트랜지스터(612) 드레인의 전압을 충분히 높은 상태로 유지하는 것이다. 앞서서 설명한 바와 같이, 상기 비트라인 전압 클램프(610)는 비트라인 전압을 미리 정해진 값 VBL, 예를 들어 0.5V로 클램프한다. 이것은 트랜지스터(612)의 게이트 전압(BLC)이 VBL + VT(VT가 트랜지스터(612)의 드레시홀드 전압인 경우)로 세팅되고 감지 노드(501)에 연결된 드레인이 소스보다 클 것(즉, 신호 SEN2 > VBL)을 요구한다. 특히, 주어진 형태의 전압 클램프 구성에서, SEN2는 XXO - VT 또는 BLX - VT 중 작은 값보다 높아서는 안되며, SEN은 이 값보다 낮아서는 안된다. 감지 동작 중에, 분리 게이트(630)는 통과 모드(pass-through mode)에 있다. 그러나, 내부 감지 노드에서 신호를 감지하는 중에, SEN은 Vdd로부터 감소하는 전압을 가진다. 제2 전압 클램프는 SEN이 XX0 - VT 또는 BLX - VT 중 낮은 임의의 값 이하로 떨어지는 것을 방지한다. 이는 신호 BLX에 의해 제어되는 n-트랜지스터(612)에 의해 이루어지며, BLX ≥ VBL + VT 이다. 그러므로, 전압 클램프 동작을 통해서, 감지 동작 중에 비트라인 전 압(VBL)은 일정하게, 예를 들어 ~0.5V로 유지된다.
전류 결정(current determination) 출력은 래치 회로(382)에 의해 래치된다. 래치 회로는 트랜지스터(661, 662, 663, 664)와 트랜지스터(666, 668) 모두에 의해 셋/리셋 래치로서 형성된다. p-트랜지스터(666)는 신호(RST)(RESET)에 의해 제어되며 n-트랜지스터(668)는 신호(STB)에 의해 제어된다. 저전압 동작을 위한 상술한 감지 증폭기의 변형은 2004년 12월16일자로 제출된 "Improved Memory Sensing Circuit And Method For Low Voltage Operation"(Raul-Adrian Cernea)라는 명칭의 미국 특허 출원 11/015,199에서 나타나며, 상기 특허문서들은 본 출원에 대한 참조로서 본 명세서에 그 전체 내용이 통합된다.
일반적으로, 대응하는 수의 멀티-패스 감지 모듈들(380)에 의해서 동작되고 있는 메모리셀들의 페이지가 있을 것이다. 제1 경계 전류 레벨보다 높은 전도 전류를 가지는 메모리셀들에 대해서, 그들의 LAT 신호는 LOW로 래치될 것이다.(INV는 HIGH로 래치됨). 이는 비트라인 풀 다운 회로(520)가 대응하는 비트라인이 그라운드가 되도록 하고 그럼으로써 그들의 전류를 턴-오프하게한다.
단계(6): 복원/프리차지
이전에 풀 다운되지 않은 비트라인에서 다음(next)의 전도 전류 감지 전에, 프리차지 회로가 신호(FLT)에 의해 활성화되어 내부 감지 노드(631)를 Vdd까지 프리차지시킨다(도 10(C) 및 도10(I3)-10(I4)).
단계(7): 제2 감지
감지 증폭기(600)가 감지할 준비가 되면, FLT가 HIGH가 됨(도 10(C))으로써 프리차지회로가 디스에이블된다. 제2 감지 기간(T2)은 스트로브 신호(STB)의 어써션에 의해서 설정된다. 감지 기간 중에, 전도 전류가 있다면 전도 전류는 커패시터를 충전할 것이다. 비트라인(36)내의 전도 전류의 배출 작용(draining action)을 통해서 커패시터(Csa)가 충전됨에 따라, 노드(SEN)의 신호는 Vdd로부터 감소할 것이다.
앞의 예시에 따라, 300nA보다 높은 전도 전류를 지닌 메모리셀들이 선행 단계에서 이미 식별되었으며 셧-다운 되었다. 도(10(G))(곡선(G3, G4))는 220nA와 40nA의 전도 전류를 지닌 메모리셀들에 각각 연결된 두개의 비트라인들에 대응하는 SEN 신호를 각각 도시한다.
단계(8): 판독을 위한 제2 래칭
제 2 소정의 감지 기간(T2) 종료시, SEN은 비트라인(36)에서의 전도 전류에 따라 어떠한 전압으로 감소된다(도 10(G))(곡선(G3 및 G4)). 예를 들어, 이 제 2 단계에서의 경계 전류는 100nA에 있도록 세팅된다. 이러한 경우에, 전도 전류 220nA를 가지는 메모리셀은 그것의 INV를 HIGH로 래치되게 하며(도 14(H)) 이후 그것의 비트라인은 접지된다(도 10(I3)). 반면에, 전도 전류 40nA를 가지는 메모리셀은 LAT HIGH로 미리 세팅된 래치의 상태에 영향을 미치지 못한다.
단계(9): 버스에 대한 판독
마지막으로, 판독 단계에서, 전달 게이트(530)에서의 제어 신호(NCO)는 래치된 신호(SEN2)가 판독 버스(532)에 대해 판독되게 한다(도 10(J), 10(K)).
도(10(I1)-10(I4))에서 볼 수 있듯이, 각각의 감지 기간 중 비트라인 전압은 일정하게 유지된다. 그러므로, 앞의 논의로부터, 비트라인 대 비트라인의 용량성(capacitive) 커플링이 제거된다.
앞서서 설명한 감지 모듈(380)은 감지가 세 단계로 수행되는 일 실시예이며, 처음의 두개의 패스들은 더 높은 전류 메모리셀들을 식별하고 셧-다운(shut-down)하기 위하여 구현된다. 더 높은 전류의 소스 라인 바이어스에 대한 영향이 제거되면서, 마지막 패스는 더 낮은 전도 전류의 셀들을 보다 정확하게 감지할 수 있다.
다른 실시예들에서, 감지 동작은 D.C 및 A.C 패스들의 상이한 조합으로 구현되며, 일부 실시예들은 두개 이상의 A.C 패스들만을 사용하거나 또는 하나의 패스만을 사용한다. 상이한 패스들에 대해, 사용되는 경계 전류값은 매번 동일하거나 최종 패스에서 사용되는 경계 전류를 향하여 점진적으로 수렴할 수 있다. 더욱이, 상술한 감지 실시예는 적절한 감지 모듈의 단지 일례이다. 다른 설계 및 기법이 또한 본 명세서에 설명된 발명을 구현하기 위하여 사용될 수 있다. 본 명세서에서 설명된 발명을 위하여 하나의 특정한 감지 모듈이 요구되거나 제시되는 것은 아니다.
도 11은 비-휘발성 메모리를 프로그래밍하기 위한 방법의 일 실시예를 설명하는 흐름도이다. 일 실시예에서, 프로그래밍에 앞서서 메모리셀들이 소거된다(블록 또는 다른 유닛들 내에서). 메모리셀들은 충분한 기간 동안 p-우물을 소거 전압(예를 들어, 20 볼트)으로 상승시킴으로써, 및 소스 및 비트라인들이 플로팅되는 동안 선택된 블록의 워드라인들을 접지함으로써 소거된다. 용량성 커플링으로 인하여, 선택되지 않은 워드라인들, 비트라인들, 선택 라인들 및 c-소스는 또한 소거 전압의 상당 비율까지 올라간다. 그러므로 강한 전계가 선택된 메모리셀들의 터널 옥사이드층에 인가되며, 플로팅 게이트들의 전자들이 기판 면으로 방출됨(일반적으로 FN(Fowler-Nordheim) 터널링에 의해서)에 따라 선택된 메모리셀들의 데이터가 소거된다. 전자들이 플로팅 게이트로부터 p-우물 영역으로 전달됨에 따라, 선택된 셀의 드레시홀드 전압은 낮아진다. 소거는 전체 메모리 어레이, 개별 블록들, 또는 다른 셀 단위에서 수행될 수 있다.
도 11의 단계(700)에서, 제어기에 의해 "데이터 로드(data load)"명령이 발행되며, 제어 회로(310)에 의해서 수신된다. 단계(702)에서, 페이지 주소를 가리키는 주소 데이터가 제어기 또는 호스트로부터 디코더(314)로 입력된다. 단계(704)에서, 어드레스된 페이지에 대한 프로그램 데이터의 페이지는 프로그래밍을 위하여 데이터 버퍼에 입력된다. 이 데이터는 적절한 세트의 래치들 내에서 래치된다. 단계(706)에서,제어기에 의해 "프로그램(program)"명령이 상태 머신(312)으로 발행된다.
"프로그램"명령에 의해 트리거(trigger) 되고, 단계(704)에서 래치된 데이터는 선택된 메모리셀들 내부로 프로그래밍될 것이며, 이 선택된 메모리셀들은 적절한 워드라인에 인가된 도 12의 계단 펄스들을 사용하여 상태 머신(312)에 의해 제어된다. 단계(708)에서, 프로그램 전압(Vpgm)은 시작 펄스(예를 들어 12V 또는 다른 값)로 초기화되며 상태 머신(312)에 의해서 유지되는 프로그램 카운터(PC)는 0으로 초기화된다. 단계(710)에서, 제1의 Vpgm 펄스가 선택된 워드라인에 인가된다. 로직 "0"이 해당 메모리셀이 프로그래밍되어야만 하는 것을 나타내는 특정한 데이터 래치에 저장되면, 해당 비트라인은 접지된다. 반면에, 로직 "1"이 해당 메모리 셀이 그 현재의 데이터 상태로 유지되어야 한다는 것을 나타내는 특정한 데이터 래치에 저장되면, 해당 비트라인은 프로그래밍을 금지하기 위하여 Vdd로 연결된다.
단계(712)에서, 선택된 메모리셀들의 상태는 그 셀이 그들의 타겟 드레시홀드 전압에 도달했는지 판단하기 위하여 검증된다. 만약 선택된 셀의 드레시홀드 전압이 타겟 레벨에 도달했음이 검출되면 해당 데이터 래치 내에 저장된 데이터가 로직 "1"로 변경된다. 만약 드레시홀드 전압이 적절한 레벨에 도달하지 않았다고 검출되면 해당 데이터 래치 내에 저장된 데이터는 변경되지 않는다. 이러한 방식으로, 그 해당 데이터 래치 내에 저장된 로직 "1"을 가진 비트라인은 프로그래밍될 필요가 없다. 모든 데이터 래치들이 로직 "1"을 저장하고 있을 때, 상태 머신(위에 설명된 와이어드-OR 유형의 머신)은 모든 선택된 셀들이 프로그래밍되어 있다는 것을 안다. 단계(714)에서, 데이터 래치들 전부가 로직 "1"을 저장하고 있는지 여부가 검사된다. 만약 그렇다면, 모든 선택된 메모리셀들이 프로그래밍되고 검증되기 때문에, 프로그래밍 프로세스가 완료되며 성공적이다. "패스(PASS)"의 상태가 단계(716)에서 보고된다.
단계(714)에서, 데이터 래치들 전부가 로직 "1"을 저장하는 것은 아니라고 판단되면, 프로그래밍 프로세스가 계속된다. 단계(718)에서, 프로그램 카운터(PC)가 프로그램 한계값 PCMAX와 대조하여 검사된다. 프로그램 한계값의 일례는 20이다. 그러나, 다른 값들도 또한 사용될 수 있다. 프로그램 카운터(PC)가 20이상이면, 프로그램 프로세스가 실패되며 단계(720)에서 "실패(FAIL)"상태가 보고된다. 일부 실시예들에서, 루프(loop)의 최대 횟수가 도달되면, 시스템은 미리 정해진 수의 셀들보다 적은 셀들이 프로그래밍을 끝내지 않았는지를 체크한다. 만약 미리 정해진 수보다 적은 셀들이 프로그래밍을 끝내지 않았다면, 프로그래밍 프로세스는 여전히 패스로 여겨진다. 만약 프로그램 카운터(PC)가 20보다 작으면, 단계(722)에서 Vpgm 레벨이 단계 크기(step size)만큼 증가되며 프로그램 카운터(PC)가 증분(increment)된다. 단계(722) 후에, 프로세스는 단계(710)로 다시 돌아가서 다음 Vpgm 펄스를 인가한다.
도 12는 프로그래밍을 위하여 선택된 워드라인에 인가되는 프로그램 펄스들의 시리즈를 보여준다. 프로그램 펄스들 사이에는, 한 세트의 검증 펄스들(도시되지 않음)이 있다. 일부 실시예들에서, 데이터가 프로그래밍되고 있는 각각의 단계들에 대해 검증 펄스가 있을 수 있다. 다른 실시예들에서, 더 많은 혹은 더 적은 검증 펄스들이 있을 수 있다.
일 실시예에서, 공통 워드라인을 따라 있는 메모리셀들에 데이터가 프로그램된다. 그러므로, 도 12의 프로그램 펄스들을 인가하기에 앞서서, 워드라인들 중 하나가 프로그래밍용으로 선택된다. 이 워드라인은 선택된 워드라인이라고 지칭된다. 블록의 나머지 워드라인들은 선택되지 않은 워드라인들이라고 지칭된다.
성공적인 프로그램(검증과 함께) 프로세스 종료시, 프로그램된 메모리셀들에 대한 드레시홀드 전압들의 하나 이상의 분포 내에 또는 소거된 메모리셀들에 대한 드레시홀드 전압들의 하나 이상의 분포 내에 메모리셀들의 드레시홀드 전압이 적절히 있어야 한다. 도 13은 각각의 메모리셀이 2 비트의 데이터를 저장할 때, 메모리셀 어레이에 대한 예시적인 드레시홀드 전압 분포를 도시한다. 도 13은 소거된 메 모리셀들에 대한 제1 드레시홀드 전압 분포(E)를 보여준다. 프로그램된 메모리셀들에 대한 세개의 드레시홀드 전압 분포, A, B, 및 C가 또한 표시된다. 일 실시예에서, E 분포 내의 드레시홀드 전압은 음의 값이며 A, B, C 분포들 내의 드레시홀드 전압은 양의 값이다.
도 13의 각각의 개별 드레시홀드 전압은 데이터 비트 세트를 위하여 미리 정해진 값에 대응한다. 메모리셀 내에 프로그램된 데이터와 셀의 드레시홀드 전압 레벨들은 셀에 적용되는 데이터 인코딩 기법에 의존한다. 예를 들어, 본 출원에 대한 참조로서 본 명세서에 그 전체 내용이 통합되는, 미국 특허 6,222,762 및 2003년 6월 13일자로 출원된 미국 특허 출원 공개 2004/0255090 ""Tracking Cells For A Memory System", 이 2개의 특허문서들은 복수-상태 플래시 메모리셀들을 위한 다양한 데이터 인코딩 기법들을 설명한다. 일 실시예에서, 데이터 값은 그레이 코드 할당(Grey code assignment)을 사용하여 드레시홀드 전압 범위로 할당되므로, 플로팅 게이트의 드레시홀드 전압이 그것의 이웃하는 물리적 상태로 잘못 시프트되어도, 단지 1 비트만 영향을 받게될 것이다. 일례는 드레시홀드 전압 범위 E(상태 E)에 "11"을 할당하며, 드레시홀드 전압 범위 A(상태 A)에 "10"을, 드레시홀드 전압 범위 B(상태 B)에 "00"을, 그리고, 드레시홀드 전압 범위 C(상태 C)에 "01"을 할당한다. 그러나, 다른 실시예들에서는, 그레이 코드가 사용되지 않는다. 도 13은 4가지 상태들을 보여주지만, 4개 상태들보다 많거나 적은 상태들을 포함하는 다른 복수-상태 구조들에서 또한 사용될 수 있다. 예를 들어, 일부 비-휘발성 저장 소자들은 8개(프로그램된 7개와 소거된 1개) 또는 그 이상의 상태들을 사용할 수 있다.
도 13은 또한 메모리셀들로부터 데이터를 판독하기 위한 세개의 판독 기준 전압들(Vra, Vrb, 및 Vrc)을 도시한다. 주어진 메모리셀의 드레시홀드 전압이 Vra, Vrb, Vrc 보다 높은지 낮은지 여부를 테스트함으로써, 시스템은 메모리셀이 무슨 상태에 있는지 결정할 수 있다.
도 13은 또한 3개의 검증 기준 전압들(Vva, Vvb, Vvc)을 도시한다. 프로그래밍 메모리셀들이 상태 A일때, 시스템은 그 메모리셀들이 Vva보다 크거나 같은 드레시홀드 전압을 가지는지를 테스트할 것이다. 프로그래밍 메모리셀들이 상태 B일 때, 시스템은 메모리셀들이 Vvb보다 크거나 같은 드레시홀드 전압을 가지는지 테스트할 것이다. 프로그래밍 메모리셀들이 상태 C일 때, 시스템은 메모리셀들이 Vvc보다 큰 드레시홀드 전압을 가지는지 혹은 작은 드레시홀드 전압을 가지는지를 판단할 것이다.
풀 시퀀스프로그래밍(full sequence programming)으로 알려진 일 실시예에서, 메모리셀들은 소거 상태 E로부터 프로그래밍된 상태 A, B, 또는 C 중 어느 하나로 직접 프로그래밍될 수 있다. 예를 들어, 프로그래밍될 한 무리의 메모리셀들은 먼저 소거될 수 있으므로 이 무리의 모든 메모리셀들은 소거 상태 E에 있게 된다. 일부 메모리셀들이 상태 E로부터 상태 A로 프로그래밍되고 있는 반면에, 다른 메모리셀들은 상태 E에서 상태 B 및/또는 상태 E에서 상태 C로 프로그래밍된다.
도 14는 2개의 서로 다른 페이지들(아래쪽 페이지 및 위쪽 페이지)에 대한 데이터를 저장하는 복수-상태 메모리셀을 프로그래밍하는 2-패스 기법(2-pass technique)의 예를 도시한다. 네가지 상태, 상태 E(11), 상태 A(10), 상태 B(00), 상태 C(01)가 도시된다. 상태 E에 대해, 양쪽 페이지들은 모두 "1"을 저장한다. 상태 A에 대해, 아래쪽 페이지는 "0"을 저장하고 위쪽 페이지는 "1"을 저장한다. 상태 B에 대해, 양쪽 페이지들은 모두 "0"을 저장한다. 상태 C에 대해, 아래쪽 페이지는 "1"을 저장하고 위쪽 페이지는 "0"을 저장한다. 주목할 점은, 특정 비트 패턴들이 상기 상태들 각각에 할당되었지만, 다른 비트 패턴들 또한 할당될 수 있다는 것이다.
제1 프로그래밍 패스(first programming pass)에서, 셀의 드레시홀드 전압 레벨은 아래쪽 로직 페이지 내부로 프로그래밍될 비트에 따라 세팅된다. 그 비트가 로직 "1"이면, 상기 드레시홀드 전압은 앞서서 소거된 결과로서 적절한 상태에 있는 것이므로 변경되지 않는다. 그러나, 프로그래밍될 비트가 로직 "0"이면, 화살표(730)로 보인 바와 같이, 셀의 드레시홀드 레벨은 증가되어 상태 A가 된다.
제2 프로그래밍 패스에서는, 위쪽 로직 페이지 내로 프로그래밍되는 비트에 따라서, 셀의 드레시홀드 전압 레벨이 세팅된다. 만일, 위쪽 로직 페이지가 로직 "1"을 저장할 것이라면, 어떤 프로그래밍도 발생하지 않을 것인바, 이는 상기 메모리셀이 상태 E 또는 상태 A 중 어느 하나에 있기 때문이다. 상태 E 또는 상태 A는 둘 다 모두 위쪽 로직 페이지 비트 "1" 을 수반하고 있으며, 메모리셀이 상태 E에 있는지 상태 A에 있는지는 아래쪽 페이지 비트의 프로그래밍에 좌우된다. 만일, 위쪽 페이지 비트가 로직 "0"이 될 것이라면, 드레시홀드 전압은 시프트된다. 만일, 제1 경로의 결과로서 메모리셀이 소거 상태 E에 남아있다면, 이후, 제2 단계에서 상기 메모리셀이 프로그래밍되어, 상기 메모리셀의 드레시홀드 전압은 상태 C 내에 있도록 증가되는바, 이는 화살표(734)에 의해 도시된다. 만일, 제1 프로그래밍 경로의 결과로서, 메모리셀이 상태 A로 프로그래밍되었다면, 상기 메모리셀은 제2 경로에서 후속 프로그래밍되어, 그 드레시홀드 전압이 상태 B 내에 있도록 증가되는바, 이는 화살표(732)에 의해 도시된 바와 같다. 제2 경로의 결과는, 아래쪽 페이지에 대한 데이터를 변화시키지 않고, 위쪽 페이지에 대해 로직 "0" 을 저장하도록 지정된 상태로 메모리셀을 프로그래밍하는 것이다.
일 실시예에서 만일, 워드 라인을 채우기에 충분한 데이터가 기록된다면, 상기 시스템은 풀 시퀀스기록(full sequence writing)을 수행하도록 세팅될 수도 있다. 만일, 충분치 못한 데이터가 기록된다면, 상기 프로그래밍 프로세스는, 수신된 데이터로 아래쪽 페이지 프로그래밍을 프로그램할 수 있다. 후속 데이터가 수신되면, 상기 시스템은 위쪽 페이지를 프로그래밍 할 수 있다. 본 발명의 또 다른 실시예에 따르면 상기 시스템은, 아래쪽 페이지를 프로그래밍하는 모드로 기록 동작을 개시하고, 한 워드라인의 모든(또는 대부분의) 메모리셀들을 채우기에 충분한 데이터가 후속하여 수신된다면, 풀 시퀀스 프로그래밍 모드로 전환할 수 있다. 이러한 실시예의 좀더 상세한 내용은, 발명자가 Sergy A. Gorobets 및 Yan Li 이며, 2004년 12월 14일자로 미국에 출원된 "Pipelined Programming of Non-Volatile Memory Using Early Data"라는 명칭의 미국특허출원(출원번호 11/013,125)에 개시되어 있는바, 상기 미국출원은 본 출원에 대한 참조로서 본 명세서에 그 전체 내용이 통합된다.
도 15는 비-휘발성 메모리셀들로부터 데이터를 판독하기 위한 일 실시예를 설명하는 흐름도이다. 감지 모듈에 관한 위의 논의는 데이터가 특정한 비트라인들 로부터 어떻게 판독되는지에 대해 논의한다. 도 15는 시스템 레벨에서의 판독 방법을 제공한다. 단계(800)에서, 데이터를 판독하라는 요청이 호스트, 제어기, 또는 또 다른 엔티티로부터 수신된다. 위에서 논의된 바와 같이, 인접한 플로팅 게이트들(또는 다른 인접한 전하 저장 소자들) 내에 저장된 전하를 바탕으로한 전계(electic field)의 커플링으로 인하여, 비-휘발성 메모리셀의 플로팅 게이트(또는 다른 전하 저장 소자) 상에 저장된 겉보기 전하의 시프트가 발생할 수 있다. 이 커플링을 보상하기 위하여, 주어진 메모리셀에 대한 판독 프로세스는 인접한 메모리셀의 프로그램 상태를 고려할 것이다. 단계(802)는 이웃하는 플로팅 게이트들간의 커플링에 대하여 이러한 보상을 제공할지를 결정하는 단계를 포함한다. 일부 실시예들에서, 단계(802)는 사용하기 위하여 얼마나 많은 보상이 수행되어야 하는지 결정하는 단계를 또한 포함한다. 단계(804)에서, 판독 데이터에 대한 요청에 응답하여 데이터의 특정한 페이지 또는 데이터의 다른 유닛에 대해 판독 프로세스가 수행된다. 단계(804)의 판독 프로세스는 단계(802)에 근거한 이웃 플로팅 게이트들간 커플링을 위한 적절한 보상을 포함할 수 있다. 일 실시예에서, 단계(804)에서 판독된 메모리셀들은 공통 워드라인(그러나 서로 다른 비트라인들)에 연결된다.
일 실시예에서, 페이지에 대한 데이터가 프로그래밍될 때, 시스템은 또한 에러 정정 코드(ECCs)를 생성할 것이며 그 ECC코드들을 데이터의 페이지로 기록할 것이다. ECC 기법은 본 기술분야에서 잘 알려져 있다. 사용되는 ECC 프로세스는 본 기술분야에서 알려진 임의의 적당한 ECC 프로세스들을 포함할 수 있다. 데이터를 페이지(또는 다른 데이터 단위)로부터 판독할 때, ECC는 데이터 내에 임의의 에러들이 있는지의 여부를 판단하기 위해 사용될 것이다(단계(806)). ECC 프로세스는 제어기, 상태 머신, 또는 시스템의 다른부분에 의해 수행될 수 있다. 만약 데이터 내에 에러가 없다면, 단계(808)에서 그 데이터가 사용자에게 보고된다. 만약 단계(806)에서 에러가 발견되면, 그 에러가 정정가능한 것인지 여부가 판단된다(단계(810)). 다양한 ECC 방법들은 데이터 세트 내의 미리 정해진 수의 에러들을 정정할 능력을 가진다. 만약 ECC 프로세스가 데이터를 정정할 수 있다면, 단계(812)에서 상기 ECC 프로세스는 데이터를 정정하기 위하여 사용되며, 데이터는, 정정됨에 따라, 단계(814)에서 사용자에게 보고된다. 데이터가 ECC 프로세스에 의해 정정될 수 없다면(단계(810)), 단계(820)에서 에러가 사용자에게 보고될 것이다. 일부 실시예들에서, 단계(820)는 또한 데이터의 전체 또는 서브세트를 보고하는 단계를 포함한다. 데이터의 서브세트에 에러가 없는 것이 알려지면, 그 서브세트는 보고될 수 있다.
도 16은 이웃하는 플로팅 게이트들 간의 커플링에 대해서 잠재적으로 보상을 사용하는 비-휘발성 메모리셀들로부터 데이터를 판독하기 위한 또 다른 실시예를 설명하는 흐름도이다. 도 15의 프로세스와 도 16의 프로세스 사이의 한가지 차이점은 도 16의 프로세스는 판독 프로세스 동안에 에러가 있을 때에만 보상을 사용한다는 점이다.
도 16의 단계(840)에서, 데이터 판독 요청이 호스트, 제어기, 또는 다른 엔티티로부터 수신된다. 단계(842)에서, 상기 데이터 판독 요청에 응답하여 데이터의 특정한 페이지 또는 다른 단위에 대해 판독 프로세스가 수행된다. 단계(842)의 판독 프로세스는 본 명세서에서 설명된 커플링 보상을 포함하지 않는다. 단계(844)는 데이터 내에 임의의 에러가 있는지 여부를 결정하는 단계를 포함한다. 만약 데이터 내에 에러가 없다면, 데이터는 단계(846)에서 사용자에게 보고된다. 만약 단계(844)에서 에러가 발견되면, 단계(850)에서 그 에러가 정정가능한 것인지 여부가 판단된다. 다양한 ECC 방법들이 데이터의 세트 내의 미리 정해진 수의 에러들을 정정할 능력을 가진다. 만약 ECC 프로세스가 데이터를 정정할 수 있다면, 단계(852)에서 상기 ECC 프로세스는 데이터를 정정하기 위하여 사용되며, 데이터는, 정정됨에 따라, 단계(854)에서 사용자에게 보고된다. 상기 데이터가 ECC 프로세스에 의해 정정될 수 없다면(단계(850)), 시스템은 판독 프로세스와 이웃하는 플로팅 게이트들간의 커플링에 대한 보상을 함께 수행함으로써 상기 데이터를 복구하려 시도할 것이다. 따라서, 단계(860)에서, 시스템은, 이웃하는 플로팅 게이트들간의 커플링을 해결하기 위해 얼만큼의 보상을 사용할지 결정한다. 단계(862)에서, 판독 데이터에 대한 요청에 응답하여 데이터의 특정 페이지 또는 다른 단위에 대해 판독 프로세스가 수행된다. 단계(862)의 판독 프로세스는 단계(860)에 기초하여 이웃하는 플로팅 게이트들간의 커플링에 대하여 적절한 보상을 사용함으로써 데이터를 복구하려 시도한다.
타겟 플로팅 게이트에 대한 이웃하는 플로팅 게이트는 동일한 비트라인 상에 있지만 상이한 워드라인상에 있는 이웃하는 플로팅 게이트들, 동일한 워드라인상에 있지만 상이한 비트라인상에 있는 이웃하는 플로팅 게이트들, 또는 타겟 플로팅 게이트 맞은 편에 있는 플로팅 게이트들을 포함하는데, 이는 그것들이 이웃하는 비트라인 및 이웃하는 워드라인 상에 모두 있기 때문이다. 일 실시예에서, 본 명세서에서 논의된 커플링 보상은 위에서 언급된 어떠한 이웃하는 플로팅 게이트 세트들에도 적용될 수 있다. 일부 실시예들에서, 본 명세서에서 논의되는 커플링 보상은 동일한 워드라인상에, 그러나 상이한 비트라인상에 있는 이웃하는 플로팅 게이트들에 적용된다. 예를 들어, 메모리셀(362)은 그 겉보기(apparent) 드레시홀드 전압을 변경되게 할 수 있는 바, 이는 메모리셀들(364, 366)로부터의 커플링으로 인한 것이다(도 7 참조). 동일한 비트라인 상에 있으면서 상이한 워드라인 상에 있는 이웃하는 플로팅 게이트들로 인한 커플링에 대한 보상은 2005년 4월 5일 출원된 "Read Operation For Non-Volatile Storage That Includes Compensation for Coupling"(Yan Li, Jian Chen)라는 명칭의 미국 특허 출원 11/099,049에서 보다 상세하게 논의되며, 이 특허문서들은 본 출원에 대한 참조로서 본 명세서에 그 전체 내용이 통합된다. 일부 실시예들은 동일한 워드라인 상에 있으면서 상이한 비트라인상에 있는 이웃하는 플로팅 게이트들과 동일한 비트라인상에 있으면서 상이한 워드라인상에 있는 이웃하는 플로팅 게이트들간의 커플링에 대한 보상을 제공한다.
이웃하는 플로팅 게이트들간 커플링의 양은 이웃하는 플로팅 게이트들이 프로그램되는 시점에 의존한다. 동시에 프로그래밍된 두개의 이웃하는 플로팅 게이트들은 커플링을 거의 가지지 않거나 전혀 가지지 않을 수 있다. 가장 많은 양의 커플링은 한 플로팅 게이트가 프로그램되지 않고(예를 들어, 소거 상태 E에서 유지됨) 다른 플로팅 게이트가 가장 높은(예를 들어, 최상위) 프로그램 상태(예를 들어, 도 13에서 상태 C로 프로그램된)로 순차적으로 프로그램되는 경우에 두 이웃하는 플로팅 게이트들 간에서 발생할 수 있다. 상태 E와 상태 A사이에 큰 마진(margin)이 존재하므로, 커플링을 하더라도 상태 E에서의 데이터 판독에 에러가 없을 것이다. 두번째로 큰 양의 커플링은 상태 A로 프로그램된 제1 플로팅 게이트와 상태 C로 프로그램된 나중에 프로그램된 플로팅 게이트간의 커플링이다. 그러므로, 일 실시예에서, 커플링 보상이 사용될 유일한 시점은 메모리셀이 제1의 프로그램 상태(예를 들어, 상태 A)에 있고 그 이웃이 상태들의 세트들(4 상태, 8 상태들 또는 다른 수의 상태들) 중 가장 높은 프로그램 상태(예를 들어, 상태 C)에 있을 때이다. 다른 실시예들에서, 커플링 보상은 이웃 메모리셀이 상태 B 또는 또 다른 상태와 같은 다른 상태에 있을 때 사용될 수 있다. 4개의 상태들 보다 많은 또는 적은 상태들을 사용하는 일부 실시예에서 커플링 보상은 이웃 메모리셀이 커플링을 발생시키는 것으로 나타난 상태에 있을 때 사용될 수 있다. 이와 유사하게, 커플링 보상은 타겟 메모리셀이 상태 A가 아닌 상태에 있을 때, 특정한 구현에서 적절하게 사용될 수 있다.
일부 기법을 사용하여 이웃 메모리셀의 상태가 검출되거나 얻어지면, 메모리셀을 위해 고려되는 필요한 정정의 양이 결정될 수 있으며 다음 판독 동작시 조정될 수 있다. 특정한 메모리셀의 상태를 알기 위한 한가지 방법은 판독 동작을 통해서이다. 그러나, 일 실시예에서, 이웃하는 비트라인들에 대한 감지 증폭기들 사이에는 통신이 이루어지지 않는다. 심지어 판독 동작 후에도, 고려되는 메모리셀은 그 이웃 메모리셀들의 상태를 알지 못할 것이다.
도 17은 메모리셀이 상태 A에 있고 하나 이상의 그 이웃들이 상태 C에 있는지의 여부에 기초하여 보상이 사용되어야 하는지 그리고 사용된다면 얼마나 많은 보상이 사용되어야 하는지를 판단하기 위한 일 실시예를 설명하는 흐름도이다. 적어도 두개의 시나리오가 있다. 일 시나리오에서, 판독되는 특정 메모리셀은 상태 A에 있고 그 이웃들 중 하나는 상태 C에 있다. 제2 시나리오에서는, 판독되는 특정 메모리셀은 상태 A에 있고 그 이웃들 중 두개(상이한 비트라인들)가 상태 C에 있다. 도 17의 프로세스는 특정한 메모리셀(또는 특정한 비트라인)의 임의의 이웃들이 상태 C(또는 7개 이상의 상태들의 세트 중 가장 높은 프로그램 상태)에 있는지의 여부를 판단한다. 이 프로세스는 도 15의 단계(802), 도 16의 단계(860)를 구현하기 위하여 사용될 수 있다.
도 17의 단계(900)에서, 선택된 워드라인에 연결된 메모리셀들 전체(또는 서브세트)가 그 메모리셀들이 상태 C에 있는지 여부를 판단하기 위하여 판독된다. 이것은 판독 비교 포인트 Vrc를 사용함으로써 달성된다. Vrc보다 큰 드레시홀드 전압을 가진 메모리셀들은 상태 C에 있는 것으로 추정된다. Vrc보다 작은 드레시홀드 전압을 가진 메모리셀들은 상태 C에 있지 않다. Vrc를 사용한 판독 동작의 종료시, 각각의 감지 증폭기는 그 해당 메모리셀이 상태 C에 있는지 아닌지를 래치할 것이다. 한가지 해결되어야만 하는 문제점은 일부 실시예들에서 감지 증폭기들이 이웃하는 감지 증폭기들에게 톡(talk)할 수 없다는 점이다. 그러므로, 도 7을 보면, 비트라인 BL2에 대한 감지 증폭기가 비트라인 BL1 또는 비트라인 BL3에 대한 감지증폭기와 통신할 수 없다. 그러므로, BL2를 위한 감지 증폭기는 BL1 및 BL3 상의 이웃 메모리셀들이 상태 C에 있는지를 알지 못한다. 이웃 메모리셀들이 상태 C에 있는지를 나타내기 위하여 단계(902-910)가 수행된다. 단계(902)에서, 단계(900)에서 상태 C에 있는 것으로 감지된 메모리셀에 연결된 모든 비트라인들이 미리 정해진 전압으로 충전된다. 일 실시예에서, 상태 C에 있는 메모리셀을 구비한 비트라인들은 0.5 볼트로 충전된다. 도 9로 돌아가면, 0.5 볼트 + Vth(트랜지스터(612)의 Vth)를 트랜지스터(612)의 게이트에 인가하고 RST 신호를 LOW로 토글하여 INV = 0 이 되게함으로써 이것이 달성된다. 다른 감지 증폭기들은 INV =1 로 셋업되었으므로, 그들의 비트라인들은 충전되지 않을 것이다. GRS = 0이면, 비트라인 상에서 풀-다운이 발생하지 않는다. C 데이터를 구비한 비트라인들이 충전될 때, 비트라인 대 비트라인 커플링으로 인하여, 이웃하는 비트라인들이 그 비트라인들에 연결될 것이다. 일 구현예에서, 이러한 커플링은 전체 비트라인 커패시턴스의 40%일 수 있다. C 데이터를 구비한 두개의 이웃 비트라인들을 가진 비트라인들에 대해서, 용량성 커플링은 전체 비트라인 커패시턴스의 80% 까지 될 수 있다. 예를 들어, 비트라인이 C 데이터를 구비한 하나의 이웃 비트라인을 가진다면, 그것은 약 0.15볼트만큼 커플-업(coupled up)될 수 있다. 비트라인이 C 데이터를 구비한 두개의 이웃 비트라인들을 가진다면, 그것은 약 0.3볼트만큼 커플-업 될 수 있다.
단계(904)에서, C 데이터를 구비한 두개의 이웃들을 가진 비트라인들이 식별된다. 일 실시예에서, 단계(904)는 BLC를 0.2 + Vth(트랜지스터(612)의 Vth)로 낮춤으로써 달성된다. 트랜지스터(612)의 드레인 위치가 Vdd이고 소스 위치가 0.3볼트이므로, 이는 두개의 C 이웃들을 가진 비트라인들이 그 트랜지스터(612)를 턴-오프하게 할 것이다. 그러므로, SEN 노드는 방전되지 않을것이며, 감지 증폭기는 LAT = 1 을 래치할 것이다. 하나의 C 이웃 또는 C 이웃이 없는 다른 비트라인들은 트랜지스터(612)를 전도되게(conducting) 할 것이다. 비트라인이 커패시터 Csa보다 높은 커패시턴스를 가지기 때문에, SEN 노드는 방전할 것이며 감지 증폭기는 LAT = 0 을 래치할 것이다. SEN 노드가 충전되었는지 방전되었는지의 결과는 적절한 데이터 래치들(394)에 저장될 것이다(단계(906)). 단계(906)에서, 감지 증폭기 및 비트라인들이 리셋되며 상태 C의 메모리셀들에 연결된 이 비트라인들은 단계(902)에서와 유사하게 다시 충전된다. 단계(910)에서, 하나 이상의 C 이웃들에 연결된 비트라인들은 BLC = 0.15볼트 + Vth(트랜지스터(612)의 Vth) 를 인가함으로써 감지된다. 시스템은 상태 C의 메모리셀을 구비한 하나 이상의 이웃들을 가진 비트라인들을 감지한다. 단계(912)에서, 상기 결과는 래치들(394) 중 하나에 저장될 것이다. 두개의 이웃들이 상태 C에 있으며(단계(904)) 하나 이상의 이웃들이 상태 C에 있다(단계(908))는 표시를 저장한 비트라인들에 대하여, 그 비트라인이 상태 C에 있는 두개 이상의 이웃들을 가지는 것이 가정된다. 단계(906)에서 두개 이상의 이웃들이 상태 C에 있다는 표시를 저장하지 않았지만, 단계(910)에서 하나 이상의 이웃들이 상태 C에 있다는 표시를 저장했던 비트라인들에 대해, 그 비트라인들은 상태 C에 있는 하나의 이웃을 가진다고 가정된다.
도 18은 도 17의 프로세스에서 수행되는 일부 동작들을 그래프로 표시하는 타이밍도이다. 상기 타이밍도는 단계(902, 904, 906)들에 대응하는 3개의 기간으로 구분된다. 단계(902) 동안, 신호(BLC)가 '0.5 볼트 + 트랜지스터(612)에 대한 드레시홀드 전압'까지 올라가는 것이 보여진다. 이것은 선택된 워드라인에 연결되고 상태 C에 있는 메모리셀에 연결되는 모든 비트라인들에 대해서 적용된다. 이 비트라인들은 0.5볼트까지 올라가는 것으로 보여진다. 두개의 C 이웃들을 가지는 비트라인들은 두개의 대응하는 이웃 비트라인들에 연결되므로 그 비트라인들의 전압은 0.3 볼트까지 올라간다. C 이웃이 없는 비트라인은 0 볼트에서 머무를 것이다. 이 시간 구간 동안, 신호(GRS)는 LOW이다. BLC는 그후 0 볼트로 낮아지며 비트라인들이 감지되는 때에(단계(904)), 후속적으로 '0.2볼트 + 트랜지스터(612)의 드레시홀드 전압'까지 높아진다. 2개의 상태 C 이웃들 옆의 비트라인들은 SEN 노드를 방전하지 않을 것이다(라인(914)참조). 2개의 상태 C 이웃들을 가지지 않는 비트라인들은 SEN 노드를 방전할 것이다(라인(916)참조). 적절한 비트라인 래치(382)에서 데이터를 래치한 후, 이 데이터는 데이터 래치들(394)로 전달될 것이다.
도 19는 하나 이상의 C 이웃들을 가진 메모리셀들에 대해 보상을 제공하는 단계를 포함하는 판독 프로세스의 일 실시예를 설명한다. 도 19의 프로세스는 도 15의 단계(804) 및 도 16의 단계(862)의 일 실시예의 보다 상세한 설명을 제공한다. 부가적으로, 단계들(940-950, 964-972)은 도 16의 단계(842)를 구현하기 위해 사용될 수 있다. 도 19의 프로세스는 워드라인 및 모든 비트라인들, 또는 비트라인들의 서브세트를 포괄하는 데이터의 페이지에 대해서 수행될 수 있다. 도 19의 단계(940)에서, 판독 기준 전압(Vra)이 상기 페이지와 관련된 적절한 워드라인에 인가된다. 이는 판독 기준 전압(Vra)이 그 워드라인에 연결된 메모리셀들을 위한 제어 게이트들에 인가되게 한다. 단계(842)에서, 어드레스된 메모리셀들의 제어 게이트들에 Vra를 인가하여 어드레스된 메모리셀들이 전도하는지 전도하지 않는지(conduct or do not conduct)를 결정하기 위하여, 상기 페이지와 관련된 비트라인들이 감지된다. 전도하는 비트라인들은 상기 메모리셀들이 턴온임을 나타내며, 그러므로, 그 메모리셀들의 드레시홀드 전압들은 Vra보다 낮다(예를 들어, 상태 E). 단계(944)에서, 비트라인에 대한 감지 결과가 그 비트라인들을 위한 적절한 래치들에 저장된다.
단계(946)에서, 판독 기준 전압(Vrb)이 판독되는 페이지와 관련된 워드라인들에 인가된다. 단계(948)에서, 위에 설명된 바와 같이 비트라인들이 감지된다. 단계(950)에서, 상태 C인 이웃 메모리셀을 가지지 않는 페이지 내의 메모리셀들에 연결된 비트라인들을 위하여 결과가 적절한 래치들 내에 저장된다.
이 실시예는 상태 C인 메모리셀들 옆의 상태 A인 데이터를 정정하려 시도한다. 발생될 수 있는 에러는 메모리셀들의 드레시홀드 전압이 실제로 상태 A인 때에 증가된 겉보기 드레시홀드 전압을 갖게되어 드레시홀드 전압이 상태 B로 나타나는 것이다. 단계(952)에서, 'Vrb + 제1 오프셋'이 판독되는 페이지와 관련된 워드라인들에 인가된다. 단계(954)에서, 비트라인들이 상술한 바와 같이 감지된다. 단계(956)에서, 상태 C인 하나의 이웃하는 메모리셀을 가지는 페이지 내의 메모리셀들에 연결된 비트라인들에 대하여 적절한 래치들 내에 상기 결과가 저장된다. 단계(958)에서, 'Vrb + 제2 오프셋'이 판독되는 페이지와 관련된 워드라인에 인가된다. 단계(960)에서, 비트라인들이 상술한 바와 같이 감지 된다. 단계(962)에서, 상태 C인 2개의 이웃하는 메모리셀들을 구비한 페이지 내의 메모리셀들에 연결된 비트라인들에 대하여 적절한 래치들 내에 결과가 저장된다.
단계(964)에서, 판독 기준 전압(Vrc)이 판독되는 페이지와 관련된 워드라인에 인가된다. 단계(966)에서, 상기 비트라인들은 상술한 바와 같이 감지된다. 단계(968)에서, 모든 비트라인들에 대하여 적절한 래치들에 그 결과들이 저장된다. 단계(970)에서, 페이지(또는 다른 데이터의 유닛) 내의 각각의 메모리셀에 대한 데이터 값이 결정된다. 예를 들어, 메모리셀이 Vra에서 전도한다면 상기 메모리셀은 상태 E에 있는 것이다. 만약 메모리셀이 Vra에서가 아니라, Vrb(또는 'Vrb + 제1 오프셋' 또는 'Vrb + 제2 오프셋') 및 Vrc에서 전도한다면, 상기 메모리셀은 상태 A에 있는 것이다. 만약 메모리셀이 Vra 또는 Vrb(또는 'Vrb + 제1 오프셋' 또는 'Vrb + 제2 오프셋')가 아닌 Vrc에서 전도한다면, 상기 메모리셀은 상태 B에 있는 것이다. 만약 메모리셀이 Vra, Vrb('Vrb + 제1 오프셋' 또는 'Vrb + 제2 오프셋') 또는 Vrc에서 전도하지 않는다면 상기 메모리셀은 상태 C에 있는 것이다. 일 실시예에서, 데이터 값들은 프로세서(392)에 의해 결정된다. 단계(972)에서, 프로세서(392)는 각각의 비트라인에 대해서 적절한 래치들 내에 결정된 데이터 값들을 저장할 것이다. 다른 실시예들에서, 다양한 레벨들(Vra, Vrb, Vrc)을 감지하는 것은 다른 순서로 이루어질 수 있다.
제1 오프셋 및 제2 오프셋의 양은 특정한 실시예들에 의존적이다. 본 명세서에 설명된 방법은 제1 오프셋 또는 제2 오프셋에 대한 임의의 특정 값에 의존하지 않는다. 일 실시예에서, 제1 오프셋은 0.1 볼트이며 제2 오프셋은 0.2 볼트이다. 그러나, 적절한 다른 값들 또한 사용될 수 있다.
판독 프로세스 동안 서로 다른 비트라인들상의 이웃하는 메모리셀들간 용량성 커플링을 정정하는 것 대신, 프로그래밍 시점에서 보상이 또한 수행될 수 있다. 시스템이 프로그래밍시의 데이터를 알 것이므로, 만약 메모리셀이 상태 C로 프로그 램되도록 할당된 하나 이상의 이웃들을 가진다면, 상기 시스템은 조금 낮은 드레시홀드 전압을 사용하여 메모리셀들을 상태 A로 의도적으로 프로그램할 것이다. 이러한 방식으로, 상태 C로 할당된 이웃들이 프로그래밍을 마친 후, 상태 A 메모리셀이 올바르게 판독될 것이다.
프로그래밍 프로세스를 비정상적으로 느리게 하지 않으면서 촘촘한(tight) 드레시홀드 전압 분포를 달성하기 위한 한가지 해결책은 2 단계의 프로그래밍 방법을 사용하는 것이다. 제1 단계, 즉, 비정밀 프로그래밍 단계는 보다 빠른 방식으로 드레시홀드 전압을 높이려 시도하며 촘촘한 드레시홀드 전압 분포를 달성하는 것에는 상대적으로 덜 주의한다. 제2 단계, 즉, 정밀 프로그래밍 단계는, 더 촘촘한 드레시홀드 전압 분포를 달성하면서 타겟 드레시홀드 전압에 도달하도록 보다 느린 방식으로 드레시홀드 전압을 상승시키려 시도한다. 비정밀/정밀 프로그래밍 방법론은 미국 특허 6,888,758에서 찾아볼 수 있는바, 이들 2개의 특허문서들은 본 출원에 대한 참조로서 본 명세서에 그 전체 내용이 통합된다.
비정밀/정밀 프로그래밍 방법의 일 실시예에서, 프로세스는 두개의 검증 레벨(타겟 검증 레벨(또한 정밀 검증 레벨이라고도 지칭됨) 및 비정밀 검증 레벨)을 사용한다. 상기 프로세스는 프로그래밍 프로세스 과정 단계를 수행함으로써 시작할 것이다. 메모리셀의 드레시홀드 전압이 타겟 검증 레벨 보다 낮은 비정밀 검증 레벨에 도달할 때, 상기 메모리셀은 0 볼트보다 크며 금지 전압보다 낮은 값으로 비트라인 전압을 상승시킴으로써 정밀 프로그래밍 단계에 진입할 것이다. 비정밀 단계 동안, 비트라인 전압은 약 0 볼트에 있을 것이다. 메모리셀이 프로그래밍되지 못하게 하기 위하여, 비트라인 전압이 금지 전압(예를 들어, Vdd)으로 상승된다. 정밀 프로그래밍 단계 중에는, 비트라인 전압이 0 볼트로부터 중간 값으로 상승된 영향로 인해 상기 비정밀 프로그래밍 단계에 비하여 프로그래밍이 느리게 된다. 그러므로, 비정밀 프로그래밍 단계 동안 프로그램 단계 마다의 드레시홀드 전압 변화가 보다 적을 수 있다. 메모리 셀은, 상기 메모리 셀의 드레시홀드 전압이 타겟 드레시홀드 전압에 도달할때까지 정밀 프로그래밍 단계로 유지될 것이다. 메모리셀에 대한 상기 드레시홀드 전압이 타겟 드레시홀드 전압에 도달할 때, 상기 비트라인 전압은 그 메모리셀의 추가적인 프로그래밍을 금지하기 위하여 Vdd로(또는 다른 금지 전압으로) 올라간다.
서로 다른 비트라인들 상의 이웃하는 메모리셀간의 커플링에 대한 정정 단계를 포함하는 프로그래밍을 위하여 제안된 방법은 상술한 비정밀/정밀 프로그래밍 방법을 사용할 것이다. 그러나, 2개의 검증 레벨들 대신에 3개의 검증 레벨들이 사용될 것이다. 예를 들어, 도 20은 상태 A에 대한 드레시홀드 전압 분포(980)를 도시한다. 검증을 위하여 사용된 타겟 전압은 Vva 이다. 상술한 비정밀/정밀 프로그래밍을 위한 선행 기술은 Vca로 표기된 비정밀 검증 레벨을 가진다. 제시된 기법은 하기와 같이, 사용될 제 3 검증 레벨 Via를 더하는 단계를 포함한다. 요약하면, 비정밀 프로그래밍 단계 동안, 메모리셀들은 드레시홀드 전압이 Vca에 도달할 때까지 프로그래밍될 것이다. 보상을 필요로 하는 메모리셀들은, 그것들이 상태 A로 프로그래밍되어 있으며 상태 C로 프로그래밍될 메모리셀들 옆에 있으므로, 드레시홀드 전압이 Via에 도달할 때까지 정밀 단계에서 프로그래밍될 것이다. 다른 메모리셀들은 그들의 드레시홀드 전압이 Vva에 도달할 때까지 정밀 단계에서 프로그래밍될 것이다. 그러므로, 상태 C에 있는 이웃들을 가진 상태 A에 있는 메모리셀들은 더 낮은 드레시홀드 전압, 가능하게는 타겟 드레시홀드 전압 분포(980) 아래의 드레시홀드 전압을 가질 수 있다. 그러므로, 커플링은 그 메모리셀들의 드레시홀드 전압들이 드레시홀드 전압 분포(980)로 상승하게 할 것이다.
도 21은 드레시홀드 전압 대 시간의 그래프와 비트라인 전압 대 시간의 그래프를 제공하며, 이 그래프들은 이웃 메모리셀들 모두가 상태 C에 있지 않으므로 보상을 필요로 하지 않는 메모리셀에 대한 비정밀/정밀 프로그래밍의 일 실시예를 나타낸다. 상기 그래프는 시간 t1, t2, t3, t4 및 t5 에서 프로그래밍 펄스가 메모리셀에 대한 제어 게이트에 인가된다고 가정한다. t1, t2, t3와 관련된 펄스들에서, 메모리셀의 드레시홀드 전압은 증가된다. 시간 t3에서, 메모리셀의 드레시홀드 전압은 Vca 보다 높아진다. 따라서, 비정밀 프로그래밍 단계가 종료되고 정밀 프로그래밍 단계가 시작된다. 그러므로, 비트라인 전압은 0 볼트에서 중간 전압(intermediate voltage) V1(예를 들어 1 볼트)로 상승된다. 0볼트와는 대조적으로, 중간 전압 V1의 인가는 그 비트라인에 대한 프로그래밍 프로세스를 느리게 한다. 시간 t5에서, 메모리셀의 드레시홀드 전압이 Vva보다 클 때, 비트라인 전압은 금지 전압(예를 들어 Vdd)이 되도록 올라갈 것이다.
도 22는 하나 이상의 이웃들이 상태 C에 있고 자신은 상태 A로 프로그래밍되어 있으므로 보상을 필요로 하는 메모리셀에 대한 그래프를 도시한다. 시간 t3에서, 메모리셀의 드레시홀드 전압이 증가하여 Vca에 도달한다. 그러므로, 비트라인 전압이 중간 전압 V1으로 올라간다. 시간 t4에서, 메모리셀의 드레시홀드 전압은 Vca보다는 크고 Vva보다는 작은 Via에 도달한다. 그러므로, 메모리셀은 비트라인 전압을 Vdd로 올림으로써 더 이상 프로그램되지 않는다.
다른 실시예들에서, V1에 부가하여, 복수의 중간 전압들이 사용될 수 있다. 예를 들어, 보상을 수신하는 메모리셀들은 하나의 중간 비트라인 전압을 사용할 수 있으며 보상을 수신하지 않는 메모리셀들은 다른 중간 비트라인 전압을 사용할 수 있다. 다른 실시예들에서, 상이한 비트라인들이 상이한 중간 전압들을 사용할 수 있다.
도 23은 도 21 및 도 22의 그래프에 따른 프로그래밍을 위한 프로세스의 일 실시예를 설명하는 흐름도이다. 단계(700)에서, 제어기에 의해 "데이터 로드"명령이 발행되며 제어 회로에 의해서 수신된다. 단계(1002)에서, 페이지 주소를 가리키는 주소 데이터가 제어기 또는 호스트로부터 디코더(314)에 입력된다. 단계(1004)에서, 어드레스된 페이지에 대한 프로그램 데이터의 페이지(또는 데이터의 다른 단위)가 프로그래밍을 위하여 데이터 버퍼에 입력된다. 이 데이터는 적절한 세트의 래치들에서 래치된다. 단계(1006)에서, "프로그램" 명령이 제어기에 의해 상태 머신(312)으로 발행된다. 단계(1008)에서, 커플링 보상 여부에 관한 결정이 이루어진다. 예를 들어, 제어기(350), 제어 회로(310), 감지 블록(400) 또는 또 다른 요소는, 특정한 메모리셀이 상태 C로 프로그래밍되어 있으며, 그것의 하나 이상(또는 둘 이상)의 이웃들이 상태 C로 프로그래밍될 것이므로, 특정한 메모리셀이 프로그래밍 프로세스 동안 보상을 수신할 필요가 있을 것인지를 결정할 것이다. 제어기(350) 및 제어회로(310)는 모든 프로그램 데이터를 알고 있으므로, 시스템은 보상이 필요한지 여부를 자동적으로 알 것이다. 다른 실시예들에서, 각각의 비트라인 에 대한 각각의 데이터 래치들은 프로그래밍될 데이터를 알 것이다. 그러므로, 감지 모듈들(400)은, 일부 비트라인들이 상태 C에서 프로그래밍될 데이터를 구비한 이웃들을 가지는지를 결정하기 위하여, 도 17의 단계(908, 910, 912)를 수행할 수 있다. 만약 그렇다면, 그러한 이웃들을 가진 비트라인들은 보상을 위하여 표시된다. 도 23의 일 실시예에서, 상태 C에 있는 하나 이상의 이웃들을 가진 메모리셀에 오직 하나의 보상값만이 제공된다. 다른 실시예들에서, 하나의 이웃이 상태 C에 있는지 또는 두개의 이웃들이 상태 C에 있는지에 따라 다른 값의 보상이 제공될 수 있다.
도 23의 단계(1010)에서, 초기 펄스가 그것의 초기 값으로 설정되고, 프로그램 카운터가 그것의 초기 값으로 설정되며, 비트라인 전압이 그것의 초기 값으로 설정된다. 프로그래밍될 메모리셀들에 대해서, 비트라인 전압은 0 볼트로 설정된다. 프로그램되지 않을 메모리셀들에 대해서, 비트라인은 Vdd로 설정된다. 초기 전압의 표시 또한 래치에 저장될 수 있다. 일부 실시예들에서, 프로그램 펄스 단계(1012) 동안, 초기 비트라인 값이 인가될 수 있다.(아래에서 설명됨)
단계(1012)에서, 프로그램 펄스가 적절한 워드라인에 인가된다. 단계(1014)에서, 검증 프로세스가 수행된다. 만약 메모리셀들이 비정밀 프로그래밍 단계에 있다면, 단계(1014)의 검증 프로세스는 메모리셀의 드레시홀드 전압이 비정밀 검증 레벨에 도달했는지 여부를 결정하기 위하여 사용될 수 있을 것이다. 메모리셀이 정밀 프로그래밍 단계에 있다면, 보상을 필요로 하는 메모리셀들에 대하여, 메모리셀에 대한 드레시홀드 전압은 타겟 드레시홀드 전압(예를 들어, Vva) 또는 중간 검증 레벨(예를 들어, Via)과 비교될 것이다. 단계(1014)의 보다 상세한 설명이 아래에 제공될 것이다. 단계(1016)에서, 프로그래밍될 메모리셀들 전체에 대해 그들 모두가 검증된 상태인지 판단된다. 만약 그들 모두가 검증되었다면, 단계(1018)에서 프로그래밍 프로세스 성공이 보고된다. 만약 그들 모두가 검증되지 않았다면, 단계(1020)에서, 프로그램 한계값(PCMAX)에 대비하여 프로그램 카운터(PC)가 검사된다. 프로그램 카운터(PC)가 PCMAX 보다 작지 않다면, 프로그램 프로세스가 실패하며 단계(1022)에서 실패 상태가 보고 된다. 프로그램 카운터가 PCMAX 보다 작다면, 프로그램 전압(Vpgm) 크기가 단계 사이즈(step size)만큼 증가되며 단계(1024)에서 프로그램 카운터(PC)가 증분된다. 단계(1024) 후에, 프로세스는 단계(1012)로 돌아가서 다음 Vpgm 펄스를 인가한다.
도 24는 도 23의 검증 단계(1014)의 일 실시예를 설명하는 흐름도이다. 단계(1060)에서, 시스템은 메모리셀이 비정밀 프로그래밍 단계인지 정밀 프로그래밍 단계인지 결정한다. 주목할 점은, 도 23의 프로세스가 메모리셀들(예를 들어, 공통 워드라인에 연결된 메모리셀들의 페이지) 그룹에 대해서 수행되는 고 수준의 프로세스를 설명하는 것이라는 점이다. 도 24의 프로세스는 프로그래밍되고 있는 각각의 특정한 메모리셀에 대하여 개별적으로 수행된다. 일 실시예에서, 특정 메모리셀이 비정밀 프로그래밍 단계에 있는지 정밀 프로그래밍 단계에 있는지의 표시를 저장하기 위한 래치가 감지 블록들에 제공될 것이다. 메모리셀이 비정밀 프로그래밍 단계에 있으면, 단계(1062)에서 비정밀 검증 레벨(예를 들어, Vca)로 검증 프로세스가 수행될 것이다. 즉, 메모리셀의 드레시홀드 전압이 적절한 비정밀 검증 레벨에 도달했는지 여부를 판단하기 위하여 감지 증폭기가 사용될 것이다. 예를 들어, 메모리셀이 상태 A로 프로그래밍되고 있다면, 위에 설명한 것처럼, 감지 증폭기는 메모리셀의 드레시홀드 전압이 Vca에 도달했는지 여부를 테스트할 것이다. 만약 드레시홀드 전압이 비정밀 검증 레벨에 도달했다면(단계(1064)), 상기 메모리셀은 비정밀 프로그래밍 단계를 완료하였다. 그러므로, 단계(1066)에서, 비트라인 전압이 중간 전압(V1)으로 올라가므로 다음 프로그래밍 펄스에서 메모리셀이 정밀 프로그래밍 단계로 진입할 것이다. 단계(1066) 후에, 상기 프로세스는 단계(1080)(아래에서 논의됨)에서 계속 진행하여 드레시홀드 전압이 또한 정밀 검증 레벨(또는 중간 검증 레벨)을 초과했는지 여부를 판단할 것이다. 만약 메모리셀의 드레시홀드 전압이 비정밀 검증 레벨에 도달하지 못했다면, 단계(1068)에서 비트라인 전압이 현재 레벨에서 유지될 것이므로 메모리셀은 비정밀 프로그래밍 단계를 계속할 것이다.
만약 단계(1060)에서, 메모리셀이 정밀 프로그래밍 단계에 있다고 판단되면, 단계(1080)에서, 메모리셀이 상태 A로 프로그래밍되고 있으며 커플링에 대한 보상을 필요로 하는지를 판단할 것이다. 보상이 필요하지 않다면, 정밀 검증 레벨(예를 들어, 타겟 검증 레벨 Vva, Vvb, Vvc)을 사용하여 단계(1082)에서 검증 프로세스가 수행된다. 만약 보상이 필요하다면, 단계(1090)에서, 중간 검증 레벨(Via)을 사용하여 검증 프로세스가 수행된다. 만약 메모리셀의 드레시홀드 전압이 적절한 검증 레벨보다 높다면(단계(1084)), 비트라인 전압을 Vdd로 올림으로써 메모리셀이 더 이상 프로그램되지 않을 것이다(단계(1088)). 만약 메모리셀의 드레시홀드 전압이 검증 레벨보다 높지 않다면(단계(1084)), 비트라인 전압은 그것의 현재 레벨로 유지되며 정밀 프로그래밍 단계가 계속될 것이다(단계(1086)).
셀의 플로팅 게이트 대 플로팅 게이트 커플링 효과가 상술한 바와 같이 프로그래밍 시퀀스 동안 정정될 수 있다. 그것은 또한 판독 동작 동안에도 정정될 수 있다. 다음의 논의는 감지 프로세스에 대한 변경 요인(modification factor)으로서 비트라인 대 비트라인 커플링 효과를 포함하는 판독 시퀀스를 설명하는바, 그러므로써 판독은 이웃 메모리셀 상태들에 따라 수정될 수 있다. 도 25 및 26은 이웃하는 메모리셀들로부터 커플링을 경험하는 어떤 메모리셀들에 대해 보상을 제공하는 것을 고려하는 데이터 판독을 위한 프로세스의 실시예를 설명한다. 단계(1100)에서, 모든 비트라인들이 판독되어 그 비트라인들 및 선택된 워드라인에 연결된 메모리셀들이 상태 C에 있는지 판단한다. 이것은 판독 비교 포인트로서 Vrc를 사용하여 판독 동작을 수행함으로써 수행된다. 상태 C에 있는 메모리셀을 가진 비트라인들은 메모리셀이 상태 C에 있다는 표시를 래치할 것이다. 판독 동작은 도 18에서 보여진다. 단계(1102)에서, 상태 C가 아닌 상태에 있는 메모리셀들을 구비한 비트라인들이 충전될 것이다. 일 실시예에서, 이 비트라인들은 0.5볼트로 충전된다. 단계(1102)에서 비트라인들이 충전된 후, 단계(1104)에서, 상태 C에 있는 메모리셀에 연결된 비트라인들은 0.25와 0.4 볼트 사이로 충전된다. 단계(1104)에서 상태 C에 있는 메모리에 연결된 비트라인들을 충전하는 것은 단계(1102)에서 충전된 비트라인들을 0.5 볼트 보다 높은 전압으로 커플-업(couple up)할 것이다. 예를 들어, 도 26은 상태 C에 있는 메모리셀을 구비하지 않은 비트라인들을 나타내는 비트라인 BLn을 도시한다. 이 그래프는 단계(1102) 동안 0.5 볼트까지 충전되는 비트라인을 도시한다. 비트라인 BLn + 1은 상태 C에 있는 메모리셀에 연결되며 BLn + 1 은 BLn의 이웃이다. 단계(1104)에서, 비트라인 BLn + 1은 약 0.4 볼트의 값까지 충전된다. 점선(1120)에 의해 표시되었듯이, 그 후 비트라인 BLn은 0.5 볼트 보다 높은 전압에 연결될 것이다. 단계(1104)에서 충전되었던 이웃 비트라인의 옆에 있지 않은 비트라인들은 라인(1122)에 의해 표시된 바와 같이 0.5 볼트에서 유지될 것이다. 도 25의 단계(1106)에서, 모든 비트라인들(또는 비트라인들의 서브세트)이 감지될 것이다. C 이웃을 가진 비트라인들은 더 높은 비트라인 전압을 갖기 위하여 감지 될 것이다. 더 높은 비트라인 전압 때문에, 비트라인은 더 많은 전류를 전도할 것이며, 이는 더 낮은 드레시홀드 전압이 나타나게 할 것이다. 이것은 이웃하는 셀들간의 커플링을 보상할 것이다. C 이웃들을 가진 셀들은 그들의 이웃들이 프로그래밍된 후, 그것의 원래 프로그램 레벨 보다 더 높은 플로팅 게이트에 연결된다. 플로팅 게이트 대 플로팅 게이트 커플링 보상을 사용하는 이 판독은 셀들의 원래 프로그램 레벨들을 다시 정확하게 판독할 것이다. 이 판독 정정은 시간 손실없이 복수의 판독 동작으로부터 이루어진다. 한번의 판독 동작은 정정을 필요로 하는 메모리셀들과 정정을 필요로 하지 않는 메모리셀들에 대한 결과를 얻을 것이다.
상술한 일 실시예에서, 셀 소스 노이즈가 제거됨에 따라 몇가지 감지 스트로브들이 있을 수 있다. 도 25 및 26에 관하여 상술한 프로세스는 모든 송신 스트로브들 동안에 또는 나중의 감지 스트로브들 동안에 적용될 수 있다. 예를 들어, 두개의 스트로브들을 구비한 일 실시예에서, 제1 스트로브는 도 25 및 26의 프로세스를 사용하지 않을 수 있으며, 제2 스트로브는 도 25 및 26의 프로세스를 사용할 수 있다.
위의 설명은 프로그래밍 동안 및 판독 동안에 플로팅 게이트 커플링을 보상하기위한 프로세스를 설명한다. 일부 실시예들에서, 보상은 프로그래밍 및 판독 중에 수행될 수 있다. 그러나, 대부분의 실시예들에서, 보상은 프로그래밍 또는 판독 중 어느 한 동작 중에 수행되며, 양자 모두의 동작 중에 수행되지 않는다. 판독 중에 보상을 수행할지 또는 프로그래밍 중에 보상을 수행할지의 판단은 메모리 시스템의 사용에 근거하여 이루어질 수 있다. 예를 들어, 매우 적은 횟수로 데이터가 프로그래밍될 것이나 많은 횟수로 판독될 호스트 내에서 메모리 시스템이 사용된다면, 프로그래밍 중에 보상을 하는 것이 나을 수 있다. 대안적으로, 만약 호스트가 많은 횟수로 프로그래밍될 것이나 매우 적은 횟수로 판독될 것이라면, 판독 프로세스 중에 보상을 수행하는 것이 낫다.
일 실시예에서, 메모리 시스템은 판독 프로세스 중에 그리고 프로그래밍 프로세스 중에 보상을 수행하기 위한 기법을 포함하도록 제조될 수 있다. 제조 프로세스 도중 또는 후의 어느시점에, 메모리 시스템은 판독 프로세스 중에만 또는 프로그래밍 프로세스 중에만 보상을 수행하게 구성될 수 있다.
도 27은 판독 프로세스 중에 또는 프로그래밍 프로세스 중에 보상을 수행하기 위한 메모리 시스템을 구성하는 프로세스를 설명하는 흐름도를 제공한다. 단계(1200)에서, 메모리 시스템은 판독 중에 그리고 프로그래밍 중에 보상을 수행하는 능력을 가지게 제조된다. 이것은 반도체 웨이퍼를 제조하는 단계를 포함할 수 있다. 단계(1200)은 또한 본 기술분야에서 알려진 공정들을 사용하여 웨이퍼를 패 키징하는 단계를 선택적으로 포함할 수 있다. 이 패키지는 위에서 설명한 구성을 수행하기 위한 스위치를 가질 수도 있고 가지지 않을 수도 있다. 집적 회로상의 저장 소자에 연결되는 그러한 스위치를 추가하기 위한 기술은 본 기술분야에서 알려져 있다. 단계(1202)에서는, 단계(1200)에서 제조된 메모리 시스템의 일부인 플래그(보상 플래그)가, 판독 동안에 보상이 수행되어야만 하는지 또는 프로그래밍 동안에 보상이 수행되어야만 하는지를 표시하기 위하여 의도된 용도에 근거하여 세팅된다. 이 플래그는 제조 공정 동안, 제조 공정 후에, 테스트 공정 중에 또는 디바이스가 사용되고 있는 동안에 설정될 수 있다. 단계(1204)에서, 디바이스를 사용하는 동안, 시스템은 보상 플래그를 검사할 것이다. 만약 판독 중에 보상을 수행하기 위하여 보상 플래그가 설정되었다면, 단계(1206)에서, 메모리 시스템이 판독 프로세스 중의 커플링에 대한 보상을 제공할 것이다. 만약 보상 플래그가 프로그래밍 동안 설정된다면, 메모리는 프로그래밍 프로세스 중에 커플링에 대한 보상을 제공할 것이다(단계(1208)).
단계(1202)에서의 플래그는 많은 다른 방법들로 설정될 수 있다. 제조단계 또는 테스팅 프로세스 동안에, 판독 중 보상이 수행되어야 하는지 또는 프로그래밍 중 보상이 수행되어야 하는지를 표시하기 위하여 ROM 퓨즈(fuse)가 세팅될 수 있다. 다른 실시예들에서, 플래그의 표시를 저장하기 위한 다른 수단들(예를 들어, 비-휘발성 어레이의 메모리 셀, 플립 플롭, 또는 다른 저장 디바이스)이 구현될 수 있으며, 그리고/또한 제조 프로세스 중에 또는 후에 설정될 수 있다. 상기 플래그는 또한 테스팅 프로세스 중에 또는 사용 중에 설정될 수 있다. 추가적으로, 집적 회로 패키징은, 메모리 카드를 호스트에 삽입하기 전 사용자에 의하여 설정될 수 있는 스위치를 포함할 수 있다.
일부 실시예들에서, 메모리 시스템이 호스트에 삽입된 후, 단계(1202)에서 보상 플래그가 설정될 수 있다. 도 28-31은 그러한 구성의 예를 제공한다. 도 28의 단계(1300)에서, 메모리 시스템이 호스트 내에 인스톨된다. 호스트의 예는 디지털 카메라, 음악 재생기, 이동 전화기, 휴대용 연산 장치, 또는 다른 연산 장치를 포함할 수 있다. 예시의 목적으로, 음악 재생기가 프로그래밍 보다 판독을 자주, 더 많이 할 수 있다고 가정하자. 따라서, 음악 재생기는 프로그래밍 중 보상을 제공할 수 있다. 반면에, 디지털 카메라는 프로그래밍을 더 자주 할 수 있으며, 그러므로, 판독 프로세스 중 보상을 제공하는 것이 보다 적절할 수 있다. 도 28의 단계(1302)에서, 호스트가 제어기에게 자신의 선호(preference)를 알려줄 것이다. 즉, 호스트는 알려진 프로토콜을 사용하여 제어기에게 보상을 수행하고자 할 때를 알려줄 수 있다는 것을 알도록 프로그래밍될 것이다. 단계(1304)에서, 제어기는 호스트로부터 선호를 수신할 것이며, 호스트로부터 수신한 선호에 근거하여 (메모리셀 또는 다른 저장 장치에 저장된)보상 플래그를 설정할 것이다.
도 29는 메모리 시스템을 구성하기 위한 또 다른 실시예의 흐름도를 제공한다. 단계(1320)에서, 메모리 시스템은 호스트 내에 인스톨된다. 단계(1332)에서, 사용자가 선호를 선택할 수 있다. 일 실시예에서, 사용자는 기계적인 스위치를 움직이거나 또는 호스트의 사용자 인터페이스에서 선호를 선택함으로써 선호를 선택할 것이다. 예를 들어, 디지털 카메라의 사용자는 판독 동작 중에 보상을 수행하는 것을 선택할 수 있고 음악 재생기 장치의 사용자는 프로그래밍 중에 보상을 수행하는 것을 선택할 수 있다. 단계(1334)에서, 호스트가 제어기에게 그 선호를 알려준다. 단계(1336)에서, 제어기는 상기 호스트로부터 수신한 선호에 근거하여 보상 플래그를 설정한다.
도 30은 메모리 시스템을 구성하기 위한 프로세스의 또 다른 실시예를 설명하는 흐름도를 제공한다. 단계(1330)에서, 메모리 시스템이 호스트 내에 인스톨된다. 단계(1332)에서, 제어기는 호스트에게 자기자신을 특정할 것을 요청한다. 예를 들어, 호스트는 디지털 카메라, 음악 재생기, PDA, 셀 폰, 기타를 나타낼 수 있다. 단계(1334)에서 제어기가 정보를 수신할 것이며 호스트 정보의 테이블을 억세스할 것이다. 이 테이블은 각각의 모델 또는 디바이스의 유형에 따라 어떻게 보상 플래그를 설정해야 하는지를 나타낼 것이다. 이 테이블 및 호스트로부터 수신된 정보에 근거하여, 제어기가 구성을 선택할 것이다(예를 들어, 판독 중에 보상을 수행할지 또는 프로그램 중에 보상을 수행할지 여부를 선택). 따라서, 단계(1336)에서, 제어기는 단계(1334)에서 결정된 구성에 근거하여 플래그를 설정할 것이다.
도 31은 메모리 시스템을 구성하기 위한 프로세스의 또 다른 실시예를 설명하는 흐름도이다. 단계(1360)에서, 메모리 시스템이 호스트에 인스톨될 것이다. 단계(1362)에서, 호스트는 복수의 파일들이 메모리 시스템 내에 저장되게 할 것이다. 소정의 시간 후, 소정 양의 파일들이 메모리 시스템 내에 저장된 후, 또는 호스트나 사용자로부터의 명령에 따라 단계(1364)에서, 제어기가 메모리 시스템 상에 저장된 가장 대표적인 파일 유형을 결정할 것이다. 예를 들어, 10개의 파일들이 저장 되고 그 중 8개가 음악 파일이라면, 제어기는 가장 대표적인 파일이 음악 파일이라고 결정할 것이다. 단계(1366)에서, 제어기는 이 대표적인 파일 유형에 근거하여 그 구성을 결정할 것이다. 예를 들어, 파일 유형들을 열거하는 테이블이 메모리 시스템 내에 저장될 수 있으며, 각각의 파일 유형에 대해서 보상 플래그를 위하여 값이 저장될 수 있다. 플래그의 값은 프로그래밍 중에 보상을 수행할지 혹은 판독 중에 보상을 수행할지 여부를 나타낼 수 있다. 단계(1368)에서, 제어기는 단계(1366)에서 결정된 구성에 근거하여 보상 플래그를 설정할 것이다.
앞에서 설명된 본 발명의 세부적인 설명은 예시 및 설명의 목적으로 제공된 것이다. 본 발명을 개시되는 이러한 형태에 정확히 한정시키려 하거나 이러한 형태만이 본 발명의 전부가 되도록 의도된 것이 아니다. 상기의 설명으로부터 많은 수정 및 변경이 가능하다. 상기 설명된 실시예들은 본 발명의 원리 및 그 실제 응용을 가장 잘 설명하기 위해서, 그러므로써 본 발명의 기술분야에서 숙련된 기술을 가진자들이 다양한 실시예 및 고려되는 특별한 사용에 적합한 다양한 수정을 통해 본 발명을 가장 잘 이용할 수 있도록 하기 위해서 선택되었다. 본 발명의 범위는 본 명세서에 첨부되는 특허청구범위에 의해 정의되도록 의도되었다

Claims (18)

  1. 비-휘발성 저장장치(non-volatile storage)를 프로그래밍하는 방법으로서,
    비-휘발성 저장 소자들을 특정한 프로그램 상태(particular programmed state)와 관련된 비정밀(coarse) 검증 레벨로 프로그래밍하는 단계와;
    상기 특정한 프로그램 상태와 관련된 제 1 정밀(fine) 최종 타겟 레벨로 상기 비-휘발성 저장 소자들의 제 1 서브세트(subset)의 추가적인 프로그래밍을 수행하는 단계와; 그리고
    상기 특정한 프로그램 상태와 관련된 제 2 정밀 최종 타겟 레벨로 상기 비-휘발성 저장 소자들의 제 2 서브세트의 추가적인 프로그래밍을 수행하는 단계를 포함하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  2. 제1항에 있어서,
    상기 특정한 프로그램 상태는 복수의(multiple) 프로그램 상태들 중 하나이며;
    상기 비-휘발성 저장 소자들은 비-휘발성 저장 소자들의 어레이(array)의 일부이며; 그리고
    상기 비-휘발성 저장 소자들은 상기 특정한 프로그램 상태로의 프로그래밍을 위한 타겟이 되는 것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  3. 제1항에 있어서,
    상기 비-휘발성 저장 소자들의 상기 제1 서브세트는 플로팅 게이트 대 플로팅 게이트 커플링에 대해서 보상되며; 그리고
    상기 비-휘발성 저장 소자들의 상기 제2 서브세트는 플로팅 게이트 대 플로팅 게이트 커플링에 대해서 보상되지 않는것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  4. 제1항에 있어서,
    상기 비-휘발성 저장 소자들의 상기 제1 서브세트는 제1 조건에 있는 하나 이상의 이웃하는 비-휘발성 저장 소자들에 인접해 있으며; 그리고
    상기 비-휘발성 저장 소자들의 제2 서브세트는 상기 제1 조건에 있는 하나 이상의 이웃하는 비-휘발성 저장 소자들에 인접해 있지 않는 것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  5. 제4항에 있어서,
    상기 제1 정밀 최종 타겟 레벨은 상기 제2 정밀 최종 타겟 레벨보다 낮은 것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  6. 제1항에 있어서,
    상기 비-휘발성 저장 소자들의 상기 제1 서브세트의 추가적인 프로그래밍을 수행하는 단계 및 상기 비-휘발성 저장 소자들의 상기 제2 서브세트의 추가적인 프로그래밍을 수행하는 단계는, 상기 비-휘발성 저장 소자들의 상기 제1 서브세트 및 상기 비-휘발성 저장 소자들의 상기 제2 서브세트에 대해 프로그래밍 펄스들의 공통 세트(common set)를 제어 게이트들에 인가하는 단계를 포함하는 것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  7. 제1항에 있어서,
    상기 비-휘발성 저장 소자들을 상기 비정밀 검증 레벨로 프로그래밍하는 단계는 상기 비-휘발성 저장 소자들에 대해 제1 비트 라인 전압을 인가하는 단계를 포함하며; 그리고
    상기 비-휘발성 저장 소자들의 상기 제1 서브세트의 추가적인 프로그래밍을 수행하는 단계 및 상기 비-휘발성 저장 소자들의 상기 제2 서브세트의 추가적인 프로그래밍을 수행하는 단계는 상기 비-휘발성 저장 소자들에 대해 상기 제1 비트 라인 전압과는 다른 하나 이상의 비트 라인 전압들을 인가하는 단계를 포함하는 것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  8. 제1항에 있어서,
    상기 비-휘발성 저장 소자들은 NAND 플래시 메모리 디바이스들인 것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  9. 제1항에 있어서,
    상기 비-휘발성 저장 소자들은 복수-상태(multi-state) 플래시 메모리 디바이스들인 것을 특징으로 하는 비-휘발성 저장장치를 프로그래밍하는 방법.
  10. 비-휘발성 저장 시스템(storage system)에 있어서,
    비-휘발성 저장 소자들과; 그리고
    상기 비-휘발성 저장 소자들과 통신하는 관리 회로(managing circuit)를 포함하여 구성되며, 상기 관리 회로는 상기 비-휘발성 저장 소자들을 특정한 프로그램 상태와 관련된 비정밀 검증 레벨로 프로그래밍하며, 상기 관리 회로는 상기 특정한 프로그램 상태와 관련된 제1 정밀 최종 타겟 레벨을 사용하여 상기 비-휘발성 저장 소자들의 제1 서브세트의 추가적인 프로그래밍을 수행하고, 상기 특정한 프로그램 상태와 관련된 제2 정밀 최종 타겟 레벨을 사용하여 상기 비-휘발성 저장 소자들의 제2 서브세트의 추가적인 프로그래밍을 수행하는 것을 특징으로 하는 비-휘발성 저장 시스템.
  11. 제10항에 있어서,
    상기 특정한 프로그램 상태는 복수의 프로그램 상태들 중 하나이며; 그리고
    상기 관리 회로는 제어 회로, 전력 제어 회로, 디코더들, 상태 머신(state machine), 제어기, 그리고 감지 블록들 중 어느 것 또는 그들의 조합을 포함하는 것을 특징으로 하는 비-휘발성 저장 시스템.
  12. 제10항에 있어서,
    상기 비-휘발성 저장 소자들의 상기 제1 서브세트는 플로팅 게이트 커플링에 대해서 보상되며; 그리고
    상기 비-휘발성 저장 소자들의 제2 서브세트는 플로팅 게이트 커플링에 대해서 보상되지 않는 것을 특징으로 하는 비-휘발성 저장 시스템.
  13. 제10항에 있어서,
    상기 비-휘발성 저장 소자들의 상기 제1 서브세트는 제1 조건에 있는 하나 이상의 이웃하는 비-휘발성 저장 소자들에 인접하며; 그리고
    상기 비-휘발성 저장 소자들의 상기 제2 서브세트는 제1 조건에 있는 하나 이상의 이웃하는 비-휘발성 저장 소자들에 인접하지 않는 것을 특징으로 하는 비-휘발성 저장 시스템.
  14. 제13항에 있어서,
    제1 정밀 최종 타겟 레벨은 상기 제2 정밀 최종 타겟 레벨보다 낮은 것을 특징으로 하는 비-휘발성 저장 시스템.
  15. 제10항에 있어서,
    비-휘발성 저장 소자들의 상기 제1 서브세트와 비-휘발성 저장 소자들의 상기 제2 서브세트에 관련된 워드라인을 더 포함하며, 상기 비-휘발성 저장 소자들의 상기 제1 서브세트의 추가적인 프로그래밍 및 상기 비-휘발성 저장 소자들의 상기 제2 서브세트의 추가적인 프로그래밍은 프로그램 펄스들의 공통 세트를 상기 워드 라인에 인가하는 것을 포함하는 것을 특징으로 하는 비-휘발성 저장 시스템.
  16. 제10항에 있어서,
    상기 비-휘발성 저장 소자들을 상기 비정밀 검증 레벨로 프로그래밍하는 것은 상기 비-휘발성 저장 소자들에 대해 제1 비트 라인 전압을 인가하는 것을 포함하며; 그리고
    상기 비-휘발성 저장 소자들의 상기 제1 서브세트의 추가적인 프로그래밍 및 상기 비-휘발성 저장 소자들의 상기 제2 서브세트의 추가적인 프로그래밍은 상기 비-휘발성 저장 소자들에 대해 상기 제1 비트 라인 전압과는 다른 하나 이상의 비트 라인 전압들을 인가하는 것을 포함하는 것을 특징으로 하는 비-휘발성 저장 시스템.
  17. 제10항에 있어서,
    상기 비-휘발성 저장 소자들은 NAND 플래시 메모리 디바이스들인 것을 특징으로 하는 비-휘발성 저장 시스템.
  18. 제10항에 있어서,
    상기 비-휘발성 저장 소자들은 복수-상태 플래시 메모리 디바이스들인 것을 특징으로 하는 비-휘발성 저장 시스템.
KR1020097003268A 2006-07-20 2007-07-18 프로그래밍 중의 커플링 보상 KR101048834B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/459,001 2006-07-20
US11/459,001 US7885119B2 (en) 2006-07-20 2006-07-20 Compensating for coupling during programming
US11/459,002 2006-07-20
US11/459,002 US7400535B2 (en) 2006-07-20 2006-07-20 System that compensates for coupling during programming
PCT/US2007/073739 WO2008011440A2 (en) 2006-07-20 2007-07-18 Floating gate memory with compensating for coupling during programming

Publications (2)

Publication Number Publication Date
KR20090073083A KR20090073083A (ko) 2009-07-02
KR101048834B1 true KR101048834B1 (ko) 2011-07-13

Family

ID=38910899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097003268A KR101048834B1 (ko) 2006-07-20 2007-07-18 프로그래밍 중의 커플링 보상

Country Status (7)

Country Link
EP (1) EP2047474B1 (ko)
JP (1) JP4940300B2 (ko)
KR (1) KR101048834B1 (ko)
AT (1) ATE472803T1 (ko)
DE (1) DE602007007480D1 (ko)
TW (1) TWI351700B (ko)
WO (1) WO2008011440A2 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101448851B1 (ko) * 2008-02-26 2014-10-13 삼성전자주식회사 비휘발성 메모리 장치에서의 프로그래밍 방법
JP2009230818A (ja) 2008-03-24 2009-10-08 Toshiba Corp 半導体記憶装置
US7967995B2 (en) * 2008-03-31 2011-06-28 Tokyo Electron Limited Multi-layer/multi-input/multi-output (MLMIMO) models and method for using
EP2308054B1 (en) * 2008-07-01 2016-04-13 LSI Corporation Methods and apparatus for interfacing between a flash memory controller and a flash memory array
KR101671313B1 (ko) * 2008-07-01 2016-11-01 엘에스아이 코포레이션 플래시 메모리 디바이스 판독 방법 및 시스템
US8634250B2 (en) * 2008-07-22 2014-01-21 Lsi Corporation Methods and apparatus for programming multiple program values per signal level in flash memories
JP2010123210A (ja) * 2008-11-20 2010-06-03 Toshiba Corp 半導体記憶装置
JP2011008838A (ja) * 2009-06-23 2011-01-13 Toshiba Corp 不揮発性半導体記憶装置およびその書き込み方法
US8473809B2 (en) 2009-11-20 2013-06-25 Sandisk Technologies Inc. Data coding for improved ECC efficiency
JP2011150749A (ja) * 2010-01-20 2011-08-04 Toshiba Corp 不揮発性半導体記憶装置
JP2011198436A (ja) * 2010-03-23 2011-10-06 Toshiba Corp 半導体記憶装置
JP2011258289A (ja) * 2010-06-10 2011-12-22 Toshiba Corp メモリセルの閾値検出方法
US9293194B2 (en) 2011-01-27 2016-03-22 Apple Inc. Programming and erasure schemes for analog memory cells
US9009547B2 (en) 2011-01-27 2015-04-14 Apple Inc. Advanced programming verification schemes for analog memory cells
US8537623B2 (en) 2011-07-07 2013-09-17 Micron Technology, Inc. Devices and methods of programming memory cells
US9030870B2 (en) 2011-08-26 2015-05-12 Micron Technology, Inc. Threshold voltage compensation in a multilevel memory
US9076547B2 (en) 2012-04-05 2015-07-07 Micron Technology, Inc. Level compensation in multilevel memory
US8837223B2 (en) 2011-11-21 2014-09-16 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device and method for manufacuring the same
JP2013200924A (ja) * 2012-03-26 2013-10-03 Toshiba Corp 不揮発性半導体記憶装置
JP2013122799A (ja) * 2011-12-09 2013-06-20 Toshiba Corp 不揮発性半導体記憶装置
US9001577B2 (en) * 2012-06-01 2015-04-07 Micron Technology, Inc. Memory cell sensing
WO2015004714A1 (ja) 2013-07-08 2015-01-15 株式会社 東芝 半導体記憶装置
US9672102B2 (en) * 2014-06-25 2017-06-06 Intel Corporation NAND memory devices systems, and methods using pre-read error recovery protocols of upper and lower pages
JP2016062624A (ja) 2014-09-17 2016-04-25 株式会社東芝 半導体記憶装置
JP2022116784A (ja) * 2021-01-29 2022-08-10 キオクシア株式会社 半導体記憶装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050057965A1 (en) 2003-09-17 2005-03-17 Raul-Adrian Cernea Non-volatile memory and method with bit line coupled compensation
US20050286299A1 (en) 2004-04-28 2005-12-29 Yasuhiro Tomita Flash memory and program verify method for flash memory
US20070189073A1 (en) 2006-02-16 2007-08-16 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220531A (en) * 1991-01-02 1993-06-15 Information Storage Devices, Inc. Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback
US6301161B1 (en) * 2000-04-25 2001-10-09 Winbond Electronics Corporation Programming flash memory analog storage using coarse-and-fine sequence
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
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
US6956770B2 (en) * 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US6888758B1 (en) * 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
JP4410188B2 (ja) * 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050057965A1 (en) 2003-09-17 2005-03-17 Raul-Adrian Cernea Non-volatile memory and method with bit line coupled compensation
US20050286299A1 (en) 2004-04-28 2005-12-29 Yasuhiro Tomita Flash memory and program verify method for flash memory
US20070189073A1 (en) 2006-02-16 2007-08-16 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory

Also Published As

Publication number Publication date
JP4940300B2 (ja) 2012-05-30
TW200814062A (en) 2008-03-16
EP2047474A2 (en) 2009-04-15
DE602007007480D1 (de) 2010-08-12
KR20090073083A (ko) 2009-07-02
JP2009545093A (ja) 2009-12-17
WO2008011440A3 (en) 2008-03-27
WO2008011440A2 (en) 2008-01-24
EP2047474B1 (en) 2010-06-30
TWI351700B (en) 2011-11-01
ATE472803T1 (de) 2010-07-15

Similar Documents

Publication Publication Date Title
KR101048834B1 (ko) 프로그래밍 중의 커플링 보상
KR101073116B1 (ko) 커플링을 사용하는 이웃 감지에 기반한 커플링 보상
EP2191475B1 (en) Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
EP2191474B1 (en) Non-volatile memory and method for biasing adjacent word line for verify during programming
KR100934496B1 (ko) 커플링 보상을 포함하는 비휘발성 저장소에 대한 판독 동작
KR100934497B1 (ko) 비휘발성 저장소 내의 커플링 보상
KR101788351B1 (ko) 비휘발성 저장소자들을 감지하는 동안의 채널 커플링 효과의 완화
KR100934495B1 (ko) 비휘발성 메모리의 판독 동작 동안 커플링 보상
US7885119B2 (en) Compensating for coupling during programming
KR100989447B1 (ko) 비휘발성 메모리 판독 동작들에 있어서의 전류 보상
US7443729B2 (en) System that compensates for coupling based on sensing a neighbor using coupling
US7522454B2 (en) Compensating for coupling based on sensing a neighbor using coupling
US7630248B2 (en) System that compensates for coupling during programming
US7506113B2 (en) Method for configuring compensation
EP1946323B1 (en) Method for programming of multi-state non-volatile memory using smart verify
US7495953B2 (en) System for configuring compensation
EP2022060B1 (en) Verify operation for non-volatile storage using different voltages
WO2008011441A2 (en) Method for configuring compensation for coupling between adjacent storage elements in a nonvolatile memory

Legal Events

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

Payment date: 20140626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 9