KR20080058330A - 자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍 - Google Patents

자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍 Download PDF

Info

Publication number
KR20080058330A
KR20080058330A KR1020087004515A KR20087004515A KR20080058330A KR 20080058330 A KR20080058330 A KR 20080058330A KR 1020087004515 A KR1020087004515 A KR 1020087004515A KR 20087004515 A KR20087004515 A KR 20087004515A KR 20080058330 A KR20080058330 A KR 20080058330A
Authority
KR
South Korea
Prior art keywords
storage element
nonvolatile storage
voltage pulses
verify level
programming
Prior art date
Application number
KR1020087004515A
Other languages
English (en)
Other versions
KR101012129B1 (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/194,439 external-priority patent/US7230854B2/en
Priority claimed from US11/194,827 external-priority patent/US7023737B1/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20080058330A publication Critical patent/KR20080058330A/ko
Application granted granted Critical
Publication of KR101012129B1 publication Critical patent/KR101012129B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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/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/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
    • 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/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

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

Abstract

비휘발성 메모리 디바이스의 메모리 요소들을 프로그램하기 위한 최대의 허용가능한 수의 전압 프로그래밍 펄스들은 시간에 따라 일어나는 메모리 요소들 내에서의 변화를 고려하여 조정된다. 프로그래밍 펄스들은, 1개 이상의 메모리 요소들의 임계 전압이 특정의 검증 레벨에 도달할 때 까지 인가되며, 이후 정의된 최대수의 부가적인 펄스들이 다른 메모리 요소들에 인가됨으로써, 이들 역시 관련된 목표 임계 전압 레벨들에 도달할 수 있게 한다. 이러한 기술은 메모리가 순환됨에 따라 시간에 따라 달라질 수 있는 최대의 허용가능한 수의 프로그래밍 펄스들을 강제한다.
비휘발성 메모리 프로그래밍, 프로그래밍 펄스 조정, 임계 레벨, 검증

Description

자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의 프로그래밍{PROGRAMMING NON-VOLATILE MEMORY WITH SELF-ADJUSTING MAXIMUM PROGRAM LOOP}
본 발명은 비휘발성 메모리의 프로그래밍에 관한 것이다.
반도체 메모리 장치는 다양한 전자 장치에서 더욱더 일반적으로 사용되어 왔다. 예를 들어, 비휘발성 반도체 메모리는 셀룰러 전화기, 디지털 카메라, 개인 휴대 정보 단말기, 휴대용 컴퓨터, 비-휴대용 컴퓨터 및 기타 장치에서 사용된다. 전기적으로 소거가능하고 프로그래밍가능한 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory, EEPROM) 및 플래시 메모리가 가장 일반적인 비휘발성 반도체 메모리이다. 플래시 메모리(이 역시 EEPROM의 타입이다)를 이용하게 되면, 전형적인 전기능(full-featured)의 EEPROM과 대조적으로, 전체 메모리 어레이, 또는 그 메모리의 일부의 내용이 한 단계로 소거될 수 있다.
EEPROM과 플래시 메모리는 모두, 반도체 기판의 채널 영역 상부에 위치하며 이 채널 영역으로부터 절연되는 플로팅 게이트를 이용한다. 이 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트가 플로팅 게이트 위에 제공되고 이로부터 절연된다. 이에 따라, 형성되는 트랜지스터의 임계 전압은 플로팅 게이트 상에 보유되는 전하량에 의해 제어된다. 즉, 트랜지스터가 자신의 소스와 드레인 사이가 도통되도록 턴온 되기 전에, 제어 게이트에 인가되어야 하는 최소의 전압 크기는 플로팅 게이트 상의 전하 레벨에 의해 제어된다.
NAND 플래시 메모리 디바이스와 같은 EEPROM 또는 플래시 메모리 디바이스를 프로그램할 때, 전형적으로 프로그램 전압은 제어 게이트에 인가되고, 비트 라인은 접지됨으로써, 셀 또는 메모리 요소, 예를 들어 저장 요소의 채널로부터의 전자들이 플로팅 게이트 내로 주입되게 한다. 전자들이 플로팅 게이트에 쌓이게 되면, 이 플로팅 게이트는 음으로 대전되고, 메모리 요소의 임계 전압이 올라가게 됨으로써, 그 메모리 요소는 프로그램된 상태가 된다. 이러한 프로그래밍에 대한 보다 많은 정보는 그 명칭이 "Source Side Self Boosting Technique For Non- Volatile Memory"인 미국 특허 6,859,397 및 2003년 7월 29일 출원되었으며 그 명칭이 "Detecting Over Programmed Memory"인 미국 출원 공개 2005/0024939에서 찾아볼 수 있는 바, 이들의 전체 개시 내용은 본원에 참조로서 통합된다.
일부 EEPROM과 플래시 메모리 디바이스는 2개의 전하 범위를 저장하기 위해 사용되는 플로팅 게이트를 구비하고, 이에 따라 메모리 요소는 2개의 상태, 예를 들어 소거 상태 및 프로그램된 상태 사이에서 프로그램/소거될 수 있다. 이러한 플래시 메모리 디바이스는 종종 이진 플래시 메모리 디바이스로서 지칭되는데, 그 이유는 각 메모리 요소가 1비트의 데이터를 저장할 수 있기 때문이다.
멀티 상태(멀티 레벨이라고도 함)의 플래시 메모리 디바이스는 다수의 별개의 허용되는/유효한 프로그램된 임계 전압 범위들을 식별함으로써 구현된다. 각각의 별개의 임계 전압 범위는 메모리 디바이스에 엔코드되는 데이터 비트들의 세트 에 대한 소정의 값에 해당한다.
일반적으로, 프로그램 동작 동안 제어 게이트에 인가되는 프로그래밍 전압은 일련의 펄스들로서 인가된다. 하나의 가능한 방법에 있어서, 펄스의 크기는 소정의 스텝 사이즈(예를 들어, 0.2V-0.4V) 만큼 각각의 연속적인 펄스 마다 증가한다. 도 1은 플래시 메모리 요소들의 제어 게이트들(또는, 어떠한 경우들에 있어서는, 스티어링(steering) 게이트들)에 인가될 수 있는 프로그램 전압 신호(Vpgm)를 나타낸다. Vpgm은 시간에 따라 크기가 증가하는 일련의 펄스들을 포함한다. 펄스들 간의 주기들 동안에, 검증 동작들이 수행된다. 즉, 동시에 프로그램되는 요소들의 그룹들의 각 요소의 프로그래밍 레벨은, 그 요소가 프로그램되어 있는 검증 레벨과 동일한지 또는 더 큰지를 결정하기 위해 연속적인 프로그래밍 펄스들 사이에서 판독된다. 멀티 상태의 플래시 메모리 요소들의 어레이들에 있어서, 검증 단계는 요소의 각 상태에 대해 수행됨으로써, 그 요소가 자신의 데이터 관련 검증 레벨에 도달했는 지를 결정할 수 있다. 예를 들어, 데이터를 4개의 상태로 저장할 수 있는 멀티 상태 메모리 요소는 3개의 비교 포인트들에 대해 검증 동작을 수행할 필요가 있다.
소정수의 펄스들(이것은 통상적으로 고정된다) 이후 요소가 원하는 프로그램 레벨에 도달하지 못하면, 에러 상태가 공표된다. 최초 값, 적용가능한 경우 전압 스텝 사이즈, 및 에러 상태를 공표하기 전에 인가하는 최대의 펄스수를 포함하는 프로그램 전압(Vpgm)의 크기의 선택은 다양한 팩터(factor)들 간의 절충(compromise)을 필요로 한다. 특히, 최초값 또는 스텝 사이즈가 너무 크면, 일부 메모리 요소들은 과 프로그램(over-program)되어 부정확한 임계 전압을 야기하고, 최초값 또는 스텝 사이즈가 너무 작으면, 더 긴 프로그래밍 시간을 야기할 것이다. 전형적으로, 비휘발성 메모리의 이용자들은 메모리를 빠르게 프로그램할 것을 요구한다. 또한, 서로 다른 메모리 요소들을 원하는 상태로 프로그램하는 데에 필요한 펄스들의 수는 다를 수 있다. 보다 느린 메모리 요소들은 보다 많은 펄스들을 필요로 할 것이며, 보다 빠른 메모리 요소들은 보다 적은 펄스들을 필요로 할 것이다. 다이-소트 수율이 허용가능하도록 충분한 마진 또는 쿠션(cushion)을 갖기 위해, 전형적으로 비교적 많은 수의 Vpgm 펄스들이 허용된다. 예를 들어, 90nm 디바이스들에 있어서, 비록 멀티 상태 메모리 요소 디바이스들 내의 최상의 페이지들이 18개의 펄스들 내에서 프로그램될 수 있기는 하지만, 6개의 펄스들의 마진을 제공하기 위해, 펄스들의 최대의 허용된 수는, 예를 들어 24개로 설정될 수 있다. 하지만, 메모리 요소들의 1개의 정상 페이지가 몇 개의 느린 요소들을 갖거나, 1개의 불량(bad) 칼럼을 갖는 다면, 전체 페이지는 최대수의 펄스들의 발생할 때 까지 프로그래밍을 유지할 것이다.
결과로서, 느린 요소 또는 불량 칼럼으로서 동일한 워드 라인을 따라 어떠한 요소들이 분배될 수 있다. 또한, 이러한 방식은 충분히 이용되지 않는 새로운 디바이스들에 대해서보다, 많은 프로그래밍 주기를 겪는 순환되는 디바이스들에 대해서는 더욱 심한데, 그 이유는 순환되는 디바이스들은 전하 트래핑으로 인해 새로운 디바이스들 보다 더 빠르기 때문이다. 특히, 비휘발성 메모리 디바이스는 많은 프 로그래밍 주기를 겪기 때문에, 전하는 플로팅 게이트와 채널 영역 사이의 절연체 또는 유전체 내에 트랩된다. 이러한 전하 트래핑은 임계 전압을 보다 높은 레벨로 시프트시킴으로써, 메모리 요소가 빠르게 프로그램될 수 있게 하면서, 또한 그 요소 내의 전하를 소거하기가 더욱 어렵게 한다. 프로그램 신호의 크기가 너무 높게 설정되는 경우, 새로운 디바이스의 과 프로그래밍을 야기하지 않는 다고 하더라도, 디바이스가 보다 과도하게 이용되면, 그 디바이스는 과 프로그래밍을 경험할 수 있게 된다. 따라서, 새로운 디바이스들은 디바이스가 보다 노화될 때 과 프로그래밍을 피할 수 있도록 충분히 낮게 설정되는 자신들의 프로그램 전압을 갖게 될 것이다. 이와 같이, 프로그램 전압의 크기를 낮추게 되면, 새로운 디바이스가 데이터를 프로그램하는 속도를 감소시킬 것이다.
결과적으로, 순환되는 디바이스의 정상의 요소들에 과도한 수의 프로그램 펄스들이 인가될 수 있다. 이러한 문제는, 순환되는 디바이스들이 새로운 디바이스들 보다 더욱 많은 불량 칼럼들을 갖는다는 사실에 의해 더욱 악화된다. 설명한 바와 같이, 에러 상태를 공표하기 전에 이용되는 Vpgm 펄스들의 수를 줄이는 것이 가능하기는 하지만, 이것은 수율을 낮춘다. 예를 들어, 최대수의 프로그램 펄스들이 24개로부터 22개로 감소하면, 다이-소트 수율은 약 5% 감소하는 바, 이는 일반적으로 허용될 수 없는 것으로 간주된다.
본 발명은, 잘못되는 요소들, 즉 최대의 허용가능한 수의 펄스들 내에서 원하는 전압 레벨에 도달하지 않는 요소들의 발생을 증가시키지 않으면서, 비휘발성 메모리 내의 요소들에 인가되는 프로그램 전압 펄스들의 수를 조정하는 방법을 제공함으로써, 상기 및 기타의 문제들을 해결한다. 이러한 결과를 달성하기 위해, 허용되는 전압 펄스들의 수는 새로운 메모리 디바이스들과 비교하여 순환되는 메모리 디바이스들에 대해 변경되도록 조정된다.
일 실시예에서, 비휘발성 저장 요소를 프로그램하는 방법은 일련의 전압 펄스들을 이용하여 적어도 제 1 비휘발성 저장 요소를 제 1 검증 레벨에 도달하도록 프로그램하는 단계와, 그리고 적어도 상기 제 1 비휘발성 저장 요소가 상기 제 1 검증 레벨에 도달하는 때를 검출하는 단계를 포함한다. 이 방법은 또한, 상기 검출 단계에 응답하여, 적어도 제 2 비휘발성 저장 요소를 제 2 검증 레벨에 도달하도록 프로그램하는 데에 이용되는 최대의 허용가능한 수의 부가적인 전압 펄스들을 강제(enforce)하는 단계를 더 포함한다. 제 1, 2 검증 레벨들은 동일하거나 또는 다를 수 있으며, 또한 중간의 또는 최종의 검증 레벨들이 될 수 있다.
다른 실시예들에서, 비휘발성 저장 요소를 프로그램하는 방법은 비휘발성 저장 요소들의 제 1 서브세트가 제 1 검증 레벨에 도달할 때 까지, 상기 비휘발성 저장 요소들의 세트에 대해 1개 이상의 최초의 프로그램 주기들을 수행하는 단계와, 그리고 상기 제 1 검증 레벨에 도달하는 비휘발성 메모리 저장 요소들의 제 1 서브세트 이후의 비휘발성 저장 요소들의 세트에 대해 1개 이상의 부가적인 프로그램 주기들을 수행하는 단계를 포함하며, 여기서 상기 1개 이상의 부가적인 프로그램 주기들은 미리 정의되는 최대수의 부가적인 프로그램 주기들을 초과하지 않는다.
다른 실시예들에서, 비휘발성 저장 요소를 프로그램하는 방법은 전압 펄스들이 인가된 후, 비휘발성 저장 요소들의 세트 내의 적어도 제 1 비휘발성 저장 요소가 제 1 검증 레벨에 도달하는 때를 검출하는 단계와, 그리고 상기 검출 단계에 응답하여, 적어도 제 2 비휘발성 저장 요소가 제 2 검증 레벨에 도달할 수 있도록, 적어도 제 2 비휘발성 저장 요소에 인가되는 최대의 허용가능한 수의 전압 레벨들을 강제하는 단계를 포함한다.
도 1은 플래시 메모리 디바이스들의 1개 이상의 제어 게이트들에 인가될 수 있는 프로그램 전압의 일예를 도시한다.
도 2는 NAND 스트링의 평면도이다.
도 3은 도 2의 NAND 스트링의 등가 회로도이다.
도 4는 도 2의 NAND 스트링의 단면도이다.
도 5는 비휘발성 메모리 시스템의 블록도이다.
도 6은 비휘발성 메모리 어레이의 블록도이다.
도 7은 소거 상태로부터 프로그램 상태로 직접 프로그램되는 멀티 상태 디바이스에 있어서의 예시적인 세트의 임계 전압 분포들을 도시한다.
도 8은 소거 상태로부터 프로그램 상태로 2패스 프로그램되는 멀티 상태 디바이스에서의 예시적인 세트의 임계 전압 분포들을 도시한다.
도 9A-9C는 다양한 임계 전압 분포들을 보여주고, 비휘발성 메모리를 프로그램하는 프로세스를 설명한다.
도 10은 프로그래밍 성능을 설명하는 챠트이다.
도 11은 메모리 요소가 잘못된 것으로 공표되기 전에 그 메모리 요소에 인가될 수 있는 최대의 허용가능한 수의 프로그래밍 펄스들을 적응적으로 조정하면서 비휘발성 저장 요소를 프로그램하는 프로세스를 설명하는 흐름도이다.
도 12는 시간에 따른 임계 전압(VTH) 및 시간에 따른 비트 라인 전압(VBL)의 그래프들을 나타낸다.
도 13은 새로운 메모리 디바이스에 인가되는 프로그래밍 펄스들을 도시한다.
도 14는 순환되는 메모리 디바이스에 인가되는 프로그래밍 펄스들을 도시한다.
본 발명을 구현하기에 적합한 플래시 메모리 시스템의 일예는 2개의 선택 게이트 사이에 직렬로 연결된 다수의 트랜지스터가 배열된 NAND 플래시 메모리 구조를 이용한다. 직렬의 트랜지스터들과 선택 게이트들은 NAND 스트링으로 지칭된다. 도 2는 하나의 NAND 스트링을 도시하는 평면도이다. 도 3은 그 등가 회로이다. 도 2 및 3에 도시된 NAND 스트링은 직렬의 4개의 트랜지스터들(100, 102, 104 및 106)을 포함하는 바, 이들은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 샌드위치된다. 선택 게이트(120)는 NAND 스트링을 비트 라인 컨택(126)에 연결한다. 선택 게이트(122)는 NAND 스트링을 소스 라인 컨택(128)에 연결한다. 선택 게이트(120)는 제어 게이트(120CG)에 적절한 전압을 인가하여 제어된다. 선택 게이 트(122)는 제어 게이트(122CG)에 적절한 전압을 인가하여 제어된다. 트랜지스터(100, 102, 104 및 106) 각각은 제어 게이트와 플로팅 게이트를 갖는다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 갖는다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 제어 게이트들(100CG, 102CG, 104CG 및 106CG)는 각각 워드라인(WL3, WL2, WL1 및 WL0)에 연결된다. 하나의 가능한 설계에서, 트랜지스터(100,102, 104 및 106)는 각각 메모리 셀들 또는 요소들이다. 다른 설계들에서, 메모리 요소들은 다수의 트랜지스터들을 포함하거나, 또는 도 2 및 3에 도시한 것과 다를 수 있다. 선택 게이트(120)는 선택 라인(SGD)에 연결되고, 선택 게이트(122)는 선택 라인(SGS)에 연결된다.
도 4는 전술한 NAND 스트링의 단면도를 제공한다. NAND 스트링의 트랜지스터들은 p-웰 영역(140)에 형성된다. 각 트랜지스터는 제어 게이트(100CG, 102CG, 104CG 및 106CG)와 플로팅 게이트(100FG, 102FG, 104FG 및 106FG)를 포함하는 스택 게이트 구조를 포함한다. 플로팅 게이트들은 산화물 또는 다른 유전막 상부의 p-웰 표면 상에 형성된다. 제어 게이트가 플로팅 게이트 상에 있고, 폴리간 층간 유전층(inter-polysilicon dielectric layer)에 의해 제어 게이트와 플로팅 게이트가 분리된다. 메모리 요소들(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 스트링들에 대한 공통 소스 라인에 연결된다.
도 2 내지 4는 NAND 스트링 내에 4개의 메모리 셀을 도시하였지만, 이러한 4개의 트랜지스터의 사용은 단지 예로서 제공된 것임을 이해해야 한다. 여기에서 설명되는 기술과 함께 이용되는 NAND 스트링은 4개 보다 적거나 많은 메모리 요소들을 사용할 수 있다. 예를 들어, 일부 NAND 스트링은 8개, 16개, 32개, 64개 또는 그 이상의 메모리 요소들을 포함한다. 여기에서의 논의는 NAND 스트링 내의 임의의 특정수의 메모리 요소들로 한정되지 않는다.
각 메모리 셀은 아날로그 또는 디지털로 표현되는 데이터를 저장할 수 있다. 1 비트의 디지털 데이터를 저장할 때, 메모리 요소의 가능한 임계 전압들의 범위는 논리 데이터 "1" 과 "0"이 할당되는 2개의 범위로 분할된다. NAND 타입 플래시 메모리의 일예에서, 메모리 셀이 소거된 후 임계 전압은 음의 값을 갖고, 논리 "1" 상태로서 정의된다. 프로그래밍 동작 후 임계 전압은 양의 값을 갖고, 논리 "0" 상 태로서 정의된다. 임계 전압이 음이고, 제어 게이트에 0V를 인가함으로써 판독이 시도될 때, 메모리 요소는 턴온되어, 논리 "1"이 저장되어 있음을 나타낸다. 임계 전압이 양이고, 제어 게이트에 0V를 인가함으로써 판독이 시도될 때, 메모리 요소는 턴온되지 않게 되어, 논리 0이 저장되어 있음을 나타낸다.
또한, 메모리 요소는 다수의 상태들을 저장함으로써, 다수 비트의 디지털 데이터를 저장할 수 있다. 다수의 상태의 데이터를 저장하는 경우, 임계 전압 윈도우(window)는 상태들의 수로 분할된다. 예를 들어, 4개의 상태가 이용되면, 데이터 값들 "11", "10", "01" 및 "00"에 할당되는 4개의 임계 전압 범위가 존재할 것이다. NAND 타입 메모리의 일 실시예에서, 소거 동작 이후의 임계 전압은 음이 되고, "11"로서 정의된다. 양의 임계 전압은 "10", "01" 및 "00"의 상태를 위해 사용된다. 어떠한 구현들에 있어서, 데이터 값들(예를 들어, 논리 상태들)은 그레이 코드 할당(gray code assignment)을 이용하여 임계 범위들에 할당되며, 이에 따라 플로팅 게이트의 임계 전압이 그것에 인접하는 물리 상태로 잘못하여 시프트되는 경우, 단지 1개의 비트 만이 영향을 받을 것이다. 메모리 요소에 내에 프로그램되는 데이터와 요소의 임계 전압 범위들 간의 특정의 관계는 메모리 요소들에 대해 채택되는 데이터 엔코딩 방식에 의존한다. 예를 들어, "Tracking Cells For A Memory System"이라는 명칭으로 2003년 6월 13일에 출원된 미국 특허 출원 제10/461,244호(이는 2004년 12월 16일 미국 특허 출원 공개 제2004/0255090호로 공개됨) 및 미국 특허 제6,222,762호는 멀티 상태 플래시 메모리 요소들을 위한 다양한 데이터 엔코딩 방식들을 개시하는 바, 이들의 전체 개시 내용은 본원의 참조로서 인용된 다.
NAND 타입 플래시 메모리들 및 이들의 동작에 대한 관련 예들은, 본 명세서에 참조 문헌으로서 인용되는 다음의 미국 특허들: 제5,386,422호, 제5,570,315호, 제5,774,397호, 제6,046,935호, 제6,456,528호 및 6,522,580호에서 제공된다. NAND 플래시 메모리 이외의 다른 타입의 비휘발성 메모리도 본 발명에 이용될 수 있다.
플래시 EEPROM 시스템들에서 이용가능한 다른 타입의 메모리 요소는 전하 트래핑 요소인데, 이는 비휘발성 방식으로 전하를 저장하기 위해 전도성 플로팅 게이트 대신에 비전도성 유전 물질을 이용한다. 이러한 요소는 Chan 등의 논문, "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE 전자 디바이스 레터, Vol. EDL-8, No. 3, 1987년 3월, 93-95 페이지에서 설명된다. 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물로 형성되는 3층 유전체("ONO")는 메모리 요소 채널 위의 반도체 기판의 표면과 전도성 제어 게이트 사이에 샌드위치된다. 이 요소는 요소 채널로부터의 전자들을 질화물 내에 주입함으로써 프로그램되며, 질화물 내에서 전자들은 트랩되고, 제한된 영역에 저장된다. 이후, 이러한 저장된 전하는 검출가능한 방식으로 요소의 채널의 일부의 임계 전압을 변경한다. 요소는, 질화물 내에 열 정공들을 주입함으로써 소거된다. 또한, Nozaki 등의 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, 1991년 4월, 497-501 페이지를 참조하는 바, 이는 도핑된 폴리실리콘 게이트가 메모리 요소 채널의 일부 위로 연장하여 개별적인 선택 트랜지스터를 형성하는 스플리트 게이트(split-gate) 구성의 유사한 요소를 개시한다. 상기 2개의 논문들은 그 전체가 본원의 참조로서 인용된다. 또한, 본원의 참조로서 인용되는 William D. Brown 및 Joe E. Brewer에 의해 편집된 "Nonvolatile Semiconductor Memory Technology," IEEE Press, 1998의 섹션 1.2에서 설명되는 프로그래밍 기술들은 그 섹션에서 유전체 전하-트래핑 디바이스들에 적용가능한 것으로 설명되어 있다. 이 패러그래프에서 이용되는 메모리 요소들은 또한 본 발명에도 이용될 수 있다. 따라서, 본원에서 설명되는 기술은 서로 다른 메모리 요소들의 유전체 영역들 간의 커플링에도 적용될 수 있다.
각 요소에 2 비트를 저장하기 위한 다른 시도는 Eitan 등의 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, 2000년 11월, 543-545 페이지에 설명되는 바, 이는 소스 확산부와 드레인 확산부 사이를 통해 연장되는 ONO 유전층을 개시한다. 하나의 데이터 비트에 대한 전하는 유전층 내에 드레인에 인접하게 국부화되고, 다른 데이터 비트에 대한 전하는 유전층 내에 소스에 인접하게 국부화된다. 멀티 상태 데이터 저장은, 유전체 내의 공간적으로 분리된 전하 저장 영역들의 이전 상태를 개별적으로 판독함으로써 얻어진다. 본 패러그래프에서 설명되는 메모리 요소들은 본 발명과 함께 이용될 수 있다.
도 5는 본 발명을 구현하기 위해 사용될 수 있는 플래시 메모리 시스템의 하나의 설계의 블록도이다. 이 시스템에서, 메모리 요소 어레이(202)는 칼럼 제어 회로(204), 로우 제어 회로(206), c-소스 제어 회로(210) 및 p-웰 제어 회로(208)에 의해 제어된다. 칼럼 제어 회로(204)는 메모리 요소 어레이(202)의 비트 라인들에 연결되어, 메모리 요소들에 저장된 데이터를 판독하고, 프로그래밍 동작 동안 메모리 요소들의 상태를 결정하며, 그리고 프로그래밍을 촉진하거나 금지하도록 비트 라인들의 전위 레벨들을 제어한다. 로우 제어 회로(206)는 워드라인들에 연결되어, 워드 라인들중 하나를 선택하고, 판독 전압들을 인가하고, 프로그래밍 전압들을 인가하고, 그리고 소거 전압들을 인가한다. 예를 들어, EPROM 및 플래시 메모리 회로들에 이용되는 프로그램 전압 레벨들은 메모리 회로들에서 일반적으로 이용되는 전압들 보다 높다. 이들은 종종 회로에 공급되는 전압들 보다 높다. 이러한 보다 높은 전압들은 로우 제어 회로(206) 내의 (또는 다른 곳 내의) 전하 펌프에 의해 생성되는 바, 이는 일 예에서 본질적으로 용량성 워드라인 내에 전하를 덤프(dump)시켜 그 워드라인을 보다 높은 전압으로 충전시킨다. 전하 펌프는 전압(Vin)에서 입력을 받고, 일련의 전압 멀티플라이어 스테이지에서 점진적으로 입력 전압을 부스팅함으로써 보다 높은 전압(Vout)을 제공한다. 전압 출력은 부하(load), 예를 들어 EPROM 메모리 회로의 워드라인에 공급된다. 어떠한 구현들에서는, 부하로부터 전하 펌프로의 피드백 신호가 있다. 통상의 종래 기술의 펌프는 부하가 소정의 전압에 도달했음을 나타내는 신호에 응답하여 턴오프된다. 대안적으로는, 일단 부하가 소정의 전압에 이르면, 과도하게 충전되는 것을 막기 위해 션트를 이용한다. 하지만, 이는 보다 많은 전력을 소모하고, 저전력 응용들에서는 바람직하지 않다. 전하 펌프들에 대한 보다 많은 정보는 그 전체가 본원의 참조로서 인용되는 미국 특허 제6,734,718호에서 찾아볼 수 있다.
C-소스 제어 회로(210)는 메모리 요소들에 연결된 공통 소스 라인(도 6에서 "C-소스"로서 표시됨)을 제어한다. P-웰 제어 회로(208)는 p-웰 전압을 제어한다.
메모리 요소들 내에 저장된 데이터는 칼럼 제어 회로(204)에 의해 판독되고, 데이터 입/출력 버퍼(212)를 통해 외부 I/O 라인들에 출력된다. 메모리 요소들 내에 저장될 프로그램 데이터는 외부 I/O 라인들을 통해 데이터 입/출력 버퍼(212)에 입력되고, 칼럼 제어 회로(204)에 전달된다. 외부 I/O 라인들은 제어기(218)에 연결된다.
플래시 메모리를 제어하기 위한 명령 데이터가 제어기(218)에 입력된다. 이러한 명령 데이터는 플래시 메모리에게 어떤 동작이 요구되는지를 알린다. 입력 명령은 상태 머신(216)에 전달되는 바, 이 상태 머신(216)은 칼럼 제어 회로(204), 로우 제어 회로(206), c-소스 제어 회로(210), p-웰 제어 회로(208) 및 데이터 입/출력 버퍼(212)를 제어한다. 상태 머신(216)은 또한 READY/BUSY 또는 PASS/FAIL 같은 플래시 메모리의 상태 데이터를 출력할 수 있다. 어떠한 설계들에 있어서, 상태 머신(216)은 이하 설명되는 흐름도들에 도시된 프로세스들을 포함한 프로그래밍 프로세스를 관리하는 것을 담당한다.
제어기(218)는 개인용 컴퓨터, 디지털 카메라, 개인 휴대 정보 단말기 등과 같은 호스트 시스템에 연결되거나, 또는 이러한 호스트 시스템에 연결가능하다. 제어기(218)는 호스트와 통신하여, 호스트로부터 명령들 및 데이터를 수신하고, 호스트에게 데이터 및 상태 정보를 제공한다. 제어기(218)는 호스트로부터 명령들을 명령 회로들(214)에 의해 해석되고 실행될 수 있는 명령 신호들로 변환하며, 상기 명 령 회로들(214)은 상태 머신(216)과 통신한다. 전형적으로, 제어기(218)는 메모리 어레이에 기록되거나 또는 이 메모리 어레이로부터 판독되는 사용자 데이터를 위한 버퍼 메모리를 포함한다. 어떠한 설계들에서, 프로그래밍 과정은 제어기에 의해 관리될 수 있다.
하나의 예시적인 메모리 시스템은 제어기(218)를 포함하는 하나의 집적 회로와, 각각이 메모리 어레이 및 관련된 제어, 입/출력 상태 머신 회로들을 포함하는 1개 이상의 집적 회로를 포함한다. 시스템의 제어기 회로들과 메모리 어레이들을 1개 이상의 집적 회로 칩들에 함께 집적하는 것이 추세이다. 메모리 시스템은 호스트 시스템의 일부로서 구현되거나, 또는 호스트 시스템으로부터 탈착가능하게 삽입되는 메모리 카드(또는 다른 패키지)에 포함될 수 있다. 이러한 탈착가능한 카드는 (예를 들어, 제어기를 포함하는) 전체 메모리 시스템 또는 단지 메모리 어레이(들) 및 관련된 주변 회로들(제어기는 호스트 내에 구현됨)을 포함할 수 있다. 따라서, 제어기(또는 제어 성능)는 호스트 내에 구현되거나, 또는 탈착가능한 메모리 시스템 내에 포함될 수 있다.
일부 구현들에 있어서, 도 5의 컴포넌트들중 일부는 결합될 수 있다. 다양한 설계들에 있어서, 메모리 요소 어레이(202)를 제외한, 도 5의 컴포넌트들중 1개 이상은 관리 회로로서 간주될 수 있다. 예를 들어, 1개 이상의 관리 회로들은 명령 회로, 상태 머신, 로우 제어 회로, 칼럼 제어 회로, 웰 제어 회로, 소스 제어 회로 또는 데이터 I/O 회로중 어느 하나, 또는 결합을 포함할 수 있다.
도 6은 메모리 요소 어레이(202)의 예시적인 구조를 제공한다. 일 예로서, 1,024개의 블록들로서 분할되는 NAND 플래시 메모리 EEPROM이 설명된다. 소거 동작시, 각 블록에 저장된 데이터는 동시에 소거된다. 하나의 설계에서, 각 블록에 저장된 데이터는 동시에 소거되는 요소들의 최소 단위이다. 본 예에 있어서, 각 블록에는, 짝수 칼럼들과 홀수 칼럼들로 분할되는 8,512개의 칼럼들이 있다. 비트 라인은 또한 짝수 비트 라인(BLe)과 홀수 비트 라인(BLo)으로 분할된다. 도 6은 NAND 스트링을 형성하기 위해 직렬로 연결되는 4개의 메모리 요소들을 나타낸다. 비록 4개의 요소들이 각각의 NAND 스트링에 포함된 것으로 도시되어 있지만, 4개 이상 또는 이하의 메모리 요소들도 이용될 수 있다. NAND 스트링의 일 단자는 선택 트랜지스터(SGD)를 통해 대응하는 비트 라인에 연결되고, 다른 단자는 제 2 선택 트랜지스터(SGS)를 통해 c-소스 라인에 연결된다.
판독 동작 및 프로그래밍 동작의 하나의 구성 동안, 4,256개의 메모리 요소들이 동시에 선택된다. 선택된 메모리 요소들은 동일한 워드 라인과 동일한 종류의 비트 라인(예를 들어, 짝수 비트 라인 또는 홀수 비트 라인)을 갖는다. 따라서, 논리 페이지를 형성하는 532개의 데이터 바이트들은 동시에 판독 또는 프로그램될 수 있고, 메모리의 한 블록은 적어도 8개의 논리 페이지들(각각이 홀수 페이지 및 짝수 페이지를 갖는 4개의 워드라인들)을 저장할 수 있다. 멀티 상태 메모리 요소들에 있어서, 각 메모리 요소가 2개의 데이터 비트를 저장할 때(여기서, 이러한 두 비트 각각은 다른 페이지에 저장된다), 하나의 블록은 16개의 논리 페이지를 저장한다. 또한, 다른 크기의 블록들 및 페이지들이 본 발명에 이용될 수 있다. 추가적으로, 도 5 및 6 이외의 아키텍쳐들도 본 발명을 구현하는 데에 이용될 수 있다. 예를 들어, 하나의 설계에 있어서, 비트 라인들은 홀수 및 짝수 비트 라인들로 분할되지 않으며, 이에 따라 모든 비트 라인들이 동시에 (또는 비 동시적으로) 프로그램 및 판독될 수 있다.
메모리 요소들은, p-웰을 소거 전압(예를 들어, 20V)까지 올리고, 선택된 블록의 워드 라인들을 접지시킴으로써 소거된다. 소스 라인 및 비트 라인은 플로팅된다. 소거는 전체 메모리 어레이, 개별적인 블록들, 또는 메모리 디바이스의 일부인 메모리 요소들의 다른 유닛 상에서 수행될 수 있다. 하나의 가능한 방법에서, 전자들은 플로팅 게이트로부터 p-웰 영역으로 전달되며, 이에 따라 임계 전압은 음이 된다.
판독 및 검증 동작에서, 선택 게이트(SGD 및 SGS)와 비선택 워드 라인(예를 들어, WL1이 선택 워드라인일 때에는, WL0, WL2 및 WL3)은 판독 통과 전압(read pass voltage)(예를 들어, 4.5V)까지 상승하여, 트랜지스터들이 통과 게이트(pass gate)들로서 동작하게 한다. 선택 워드 라인(예를 들어, WL1)에 연결되는 전압의 레벨은, 관련된 메모리 요소의 임계 전압이 이러한 레벨 이상 또는 이하인지를 결정하기 위해 각각의 판독 및 검증 동작에 대해 특정된다. 예를 들어, 2-레벨 메모리 요소에 대한 판독 동작에 있어서, 선택 워드 라인(WL1)은 접지될 수 있으며, 이에 따라 임계 전압이 0V보다 높은 지가 결정된다. 2-레벨 메모리 요소에 대한 검증 동작에 있어서, 선택 워드 라인(WL1)은, 예를 들어 2.4V에 연결되어, 임계 전압이 적어도 2.4V에 도달했는지 여부가 검증된다. 소스와 p-웰은 0V이다. 짝수 비트 라인들(BLe)인 것으로 추정되는 선택 비트 라인들은, 예를 들어 0.7V의 레벨로 프리 챠지(pre-charge)된다. 임계 전압이 워드 라인 상의 판독 또는 검증 레벨 보다 높은 경우, 관심있는 요소와 관련된 비트 라인(BLe)의 전위 레벨은 비-전도성이 메모리 요소때문에 높은 레벨을 유지한다. 한편, 임계 전압이 판독 또는 검증 레벨 보다 작은 경우, 관련된 비트 라인(BLe)의 전위 레벨은, 예를 들어 0.5V 미만으로 감소하는데, 그 이유는 전도성 메모리 요소가 비트 라인을 방전시키기 때문이다. 이에 의해, 메모리 요소의 상태는 셀의 상태는 비트 라인에 연결된 전압 비교기 감지 증폭기에 의해 검출될 수 있다.
상기 설명한 소거, 판독 및 검증 동작은 당업계의 공지된 기술에 따라 수행된다. 따라서, 상기 설명된 많은 세부사항들은 당업자에 의해 달라질 수 있다. 이 분야에서 알려진 다른 판독 및 검증 기술도 이용될 수 있다.
상기 설명한 바와 같이, 각 블록은 다수의 페이지들로 분할될 수 있다. 하나의 시도에 있어서, 페이지는 프로그래밍의 단위이다. 어떠한 구현들에 있어서, 개별적인 페이지들은 세그먼트들로 분할되고, 이러한 세그먼트들은 기본 프로그래밍 동작으로서 한번에 기록되는 가장 적은 수의 요소들을 포함할 수 있다. 전형적으로, 데이터의 1개 이상의 페이지들은 메모리 요소들의 1개의 로우에 저장된다. 1개의 페이지는 1개 이상의 섹터들을 저장할 수 있다. 섹터는 사용자 데이터 및 섹터의 사용자 데이터로부터 계산되는 에러 정정 코드(ECC)와 같은 오버헤드 데이터를 포함한다. 제어기의 일부는 데이터가 어레이 내에 프로그램될 때 ECC를 계산하고, 데이터가 어레이로부터 판독될 때 ECC를 이용하여 데이터를 체크한다. 대안적으로, ECC 그리고/또는 기타 오버헤드 데이터는, 자신들이 속한 사용자 데이터와 달리, 다른 페이지들 내에, 또는 심지어 다른 블록들 내에 저장된다. 다른 설계들에서는, 상태 머신과 같은, 메모리 디바이스의 다른 부분들이 ECC를 계산할 수 있다.
전형적으로, 사용자 데이터의 섹터는 512 바이트들로서, 자기 디스크 드라이브들 내의 섹터의 크기에 대응한다. 전형적으로, 오버헤드 데이터는 부가적인 16-20 바이트들이다. 많은 수의 페이지들이, 어디든지 8페이지로부터, 예를 들어 32, 64 또는 그 이상의 페이지들까지를 포함하는 블록을 형성한다.
도 7은 각 메모리 요소가 2 비트의 데이터를 저장할 때 메모리 요소 어레이에 대한 임계 전압 분배를 나타낸다. E는 소거되는 메모리 요소들에 대한 제 1 임계 전압 분배를 도시한다. A, B 및 C는 프로그램되는 메모리 요소들에 대한 3개의 임계 전압 분배를 도시한다. 하나의 설계에 있어서, E 분배의 임계 전압은 음이고, A, B 및 C 분배의 임계 전압들은 양이다.
도 7의 각각의 별개의 임계 전압 범위는 데이터 비트들의 세트에 대한 소정의 값들에 해당한다. 메모리 요소 내에 프로그램되는 데이터와 그 요소의 임계 전압 레벨들 간의 특정의 관계는 요소들에 대해 채택되는 데이터 엔코딩 방식에 의존한다. 하나의 예는 임계 전압 범위(E)(상태 E)에 대해 "11"을, 임계 전압 범위(A)(상태 A)에 대해 "10"을, 임계 전압 범위(B)(상태 B)에 대해 "00"을, 그리고 임계 전압 범위(C)(상태 C)에 대해 "01"을 할당한다. 하지만, 다른 설계들에서는, 다른 방식들이 이용될 수 있다.
도 7은 또한 메모리 요소들로부터 데이터를 판독하기 위한 판독 기준 전압 들(Vra, Vrb 및 Vrc)을 보여준다. 소정의 메모리 요소의 임계 전압이 Vra, Vrb 및 Vrc 보다 큰지 또는 작은지를 테스트함으로써, 시스템은 그 메모리 요소의 상태를 결정할 수 있다. 도 7은 도한 3개의 검증 기준 전압들(Vva, Vvb 및 Vvc)을 나타낸다. 메모리 요소들을 상태(A, B 또는 C)로 프로그램할 때, 시스템은 이러한 메모리 요소들이 각각 Vva, Vvb 및 Vvc 보다 큰지 또는 같은 지를 테스트할 것이다.
풀 시퀀스 프로그래밍(full sequence programming)으로서 알려져있는 하나의 시도에 있어서, 메모리 요소들은 소거 상태(E)로부터 (구부러진 화살표들에 의해 도시된 바와 같이) 프로그램 상태들(A, B 또는 C)중 임의의 상태로 바로 프로그램될 수 있다. 예를 들어, 프로그램되어야 하는 메모리 요소들의 집단(population)이 먼저 소거됨으로써, 그 집단 내의 메모리 요소들은 소거 상태(E)가 된다. 어떠한 메모리 요소들은 상태(E)로부터 상태(A)로 프로그램되는 동안, 다른 메모리 요소들은 상태(E)로부터 상태(B)로 그리고/또는 상태(E)로부터 상태(C)로 프로그램된다.
도 8은 2개의 다른 페이지들, 즉 하위 페이지 및 상위 페이지에 대한 데이터를 저장하는 멀티 상태 메모리 요소를 프로그래밍하는 2-패스 기술의 일례를 도시한다. 상태 E(11), 상태 A(10), 상태 B(00) 및 상태 C(01)의 4개의 상태가 도시된다. 상태 E에 대해, 양 페이지들은 "1"을 저장한다. 상태 A에 대해, 하위 페이지는 "0"을 저장하고, 상위 페이지는 "1"을 저장한다. 상태 B에 대해, 양 페이지들은 "0"을 저장한다. 상태 C에 대해, 하위 페이지는 "1"을 저장하고, 상위 페이지는 "0"을 저장한다. 비록 특정의 비트 패턴들이 각 상태들에 할당되었지만, 다른 비트 패턴들이 또한 할당될 수 있다는 것을 주목하자. 제 1 프로그래밍 패스에서, 요소의 임계 전압 레벨은 하위 논리 페이지 내에 프로그램될 비트에 따라 설정된다. 만일 상기 비트가 논리 "1"이라면, 임계 전압은 변하지 않는데, 그 이유는 이전에 소거된 결과로서 적절한 상태에 있기 때문이다. 하지만, 만일 프로그램될 비트가 논리 "0"이라면, 요소의 임계 레벨은 화살표(230)로 나타낸 바와 같이 상태 A로 증가한다. 이에 의해, 제 1 프로그래밍 패스가 끝난다.
제 2 프로그래밍 패스에 있어서, 요소의 임계 전압 레벨은, 상위 논리 페이지 내에 프로그램되고 있는 비트에 따라 설정된다. 만일 상위 논리 페이지 비트가 논리 "1"을 저장하는 경우, 어떠한 프로그래밍도 발생하지 않는데, 그 이유는 상기 요소는 하위 페이지 비트의 프로그래밍에 따라, 상태 E 또는 상태 A중 하나에 있기 때문이며, 이들 모두는 "1"의 상위 페이지 비트를 운반(carry)한다. 만일 상위 페이지 비트가 논리 "0"이 될 예정이라면, 임계 전압은 시프트된다. 만일 제 1 패스로 인해 요소가 소거 상태 E로 남아있다면, 제 2 페이즈(phase)에서, 요소가 프로그램됨으로써, 임계 전압은 화살표(234)로 나타낸 바와 같이 임계 전압이 증가하여 상태 C 내에 있게 된다. 만일 요소가 제 1 프로그래밍 패스의 결과로서 상태 A로 프로그램된 경우, 메모리 요소는 제 2 패스에서 한층 더 프로그램되어, 화살표(232)로 나타낸 바와 같이, 임계 전압이 증가하여 상태 B 내에 있게 된다. 제 2 패스의 결과는, 하위 페이지에 대한 데이터를 변경하지 않으면서, 상위 페이지에 대해 논리 "0"을 저장하도록 지정된 상태로 요소를 프로그램하는 것이다.
하나의 방법에 있어서, 충분한 데이터가 기록되어 전체 페이지를 채운다면, 시스템은 풀 시퀀스 기록을 행하도록 셋업될 수 있다. 만일 전체 페이지에 대해 충분한 데이터가 기록되지 않는 다면, 프로그래밍 프로세스는 수신된 데이터로 하위 페이지를 프로그램할 수 있다. 후속 데이터가 수신되면, 시스템은 상위 페이지를 프로그램할 것이다. 또 다른 방법에 있어서, 시스템은 하위 페이지를 프로그램하는 모드에서 기록을 시작하고, 충분한 데이터가 후속하여 수신되어 워드라인의 메모리 요소들 전부를 또는 대부분을 채우는 경우, 풀 시퀀스 프로그래밍 모드로 변환한다. 이러한 방법에 대한 보다 많은 상세 사항들은, 발명자들 Sergy Anatolievich Gorobets 및 Yan Li에 의해 2004년 12월 14일 출원되었으며 그 명칭이 "Pipelined Programming of Non- Volatile Memories Using Early Data"인 미국 출원 번호 제11/013,125호에 개시되어 있으며, 그 전체 내용은 본원의 참조로서 인용된다.
도 9A-9C는 비휘발성 메모리를 프로그램하는 다른 프로세스를 개시하는 바, 이는 임의의 특정의 메모리 요소에 대하여, 이전의 페이지들에 대해 인접하는 메모리 요소들을 기록한 이후 특정 페이지에 관하여 상기 특정의 메모리 요소에 대해 기록함으로써, 플로팅 게이트 대 플로팅 게이트 커플링을 감소시킨다. 하나의 예시적인 구현에서, 비휘발성 메모리 요소들 각각은 4개의 데이터 상태를 이용하여 2개의 데이터 비트를 저장한다. 예를 들어, 상태 E는 소거 상태이고, 상태 A, B 및 C는 프로그램 상태라고 가정하자. 상태 E는 데이터 11을 저장하고, 상태 A는 데이터 01을 저장하고, 상태 B는 데이터 10을 저장하며, 그리고 상태 C는 데이터 00을 저장한다. 이것은 비-그레이 코딩의 예인데, 그 이유는 양 비트들은 인접하는 상태들 A와 B 사이에서 변하기 때문이다. 또한, 물리 데이터에 대한 다른 데이터 엔코딩도 이용될 수 있다. 각 메모리 요소는 2개의 데이터 페이지들로부터 비트들을 저장한다. 참조를 위해, 이러한 데이터 페이지들을 상위 페이지 및 하위 페이지라 부를 수 있지만, 이것들에는 다른 라벨들이 붙여질 수 있다. 도 9A-9C의 프로세스에 대한 상태 A와 관련하여, 상위 페이지는 비트 0을 저장하고, 하위 비트는 비트 1을 저장한다. 상태 B와 관련하여, 상위 페이지는 비트 1을 저장하고, 하위 페이지는 비트 0을 저장한다. 상태 C와 관련하여, 양 페이지들은 비트 데이터 0을 저장한다. 도 9A-9C의 프로그래밍 프로세스는 2-단계 프로세스이다. 제 1 단계에서는, 하위 페이지가 프로그램된다. 만일 하위 페이지가 데이터 1로 남는 경우, 메모리 요소의 상태는 상태 E로 유지된다. 만일 데이터가 0으로 프로그램되어야 하는 경우, 메모리 요소의 임계 전압(VTH)이 올라감으로써, 그 메모리 요소는 상태 B'로 프로그램된다. 따라서, 도 9A는 상태 E로부터 상태 B'로의 메모리 요소들의 프로그래밍을 나타낸다. 도 9A에 나타낸 상태 B'는 중간 상태 B를 나타내며, 이에 따라 검증 포인트는 도 9C에 도시된 Vvb 보다 낮은 Vvb'로서 도시된다.
하나의 설계에서, 메모리 요소가 상태 E로부터 상태 B'로 프로그램된 후, 인접하는 워드라인 상의 그 이웃하는 메모리 요소는 그 하위 페이지와 관련하여 프로그램될 것이다. 이웃하는 메모리 요소를 프로그램한 후, 플로팅 게이트 대 플로팅 게이트 커플링 효과는, 상태 B'에 있는, 고려하에 있는 메모리 요소의 명백한 임계 전압을 올릴 것이다. 이것은, 상태 B'에 대한 임계 전압 분포를 도 9B의 임계 전압 분포(250)로서 도시한 것과 같이 넓히는 효과를 갖는다. 이와같은 임계 전압 분포 의 명백한 확장(widening)은 상위 페이지를 프로그램할 때에 교정(remedy)될 것이다.
도 9C는 상위 페이지를 프로그램하는 프로세스를 도시한다. 만일 메모리 요소가 소거 상태 E이고, 상위 페이지가 1로 유지될 것이라면, 그 메모리 요소는 상태 E로 남을 것이다. 만일 메모리 요소가 상태 E이고, 그 상위 페이지 데이터가 0으로 프로그램될 것이라면, 메모리 요소의 임계 전압이 올라감으로써, 그 메모리 요소는 상태 A가 된다. 만일 메모리 요소가 중간 임계 전압 분포(250)를 갖는 상태 B'이고, 상위 페이지 데이터가 1로 유지될 것이라면, 그 메모리 요소는 최종 상태 B로 프로그램될 것이다. 만일 메모리 요소가 중간 임계 전압 분포(250)를 갖는 상태 B'이고, 상위 페이지 데이터가 데이터 0으로 될 것이라면, 메모리 요소의 임계 전압이 올라감으로써, 그 메모리 요소는 상태 C가 된다. 도 9A-9C에 도시된 프로세스는 플로팅 게이트 대 플로팅 게이트 커플링의 효과를 감소시키는데, 그 이유는 이웃하는 메모리 요소들의 상위 페이지 프로그래밍 만이 소정의 메모리 요소의 명백한 임계 전압에 대해 영향을 미치기 때문이다. 교번적인 상태 코딩(alternate state coding)의 예는, 상위 페이지 데이터가 1일때 분포(250)로부터 상태 C로 이동시키고, 상위 페이지 데이터가 0일 때 상태 B로 이동시키는 것이다. 비록 도 9A-9C가 4개의 데이터 상태들 및 2개의 데이터 페이지들에 대한 예를 제공하지만, 교시되는 개념은 4개 보다 많거나 적은 상태들 및 2개와 다른 페이지들을 갖는 다른 구현들에도 적용될 수 있다. 다양한 프로그래밍 방식들 및 플로팅 게이트 대 플로팅 게이트 커플링에 대한 보다 많은 상세 사항은, 2005년 4월 5일 출원되었으며 그 명칭이 "Compensating For Coupling During Read Operations Of Non-Volatile Memory"인 미국 특허 출원 제11/099,133호에서 찾아볼 수 있다.
도 10은 비휘발성 메모리를 프로그래밍하는 동안의 성능 예들을 기술하는 표이다. 데이터는 새로운(이용되지 않은) 디바이스들 및 10,000번의 프로그래밍 사이클을 수행한 디바이스들에 대해 제공된다. 하나의 방법에 있어서, 프로그래밍 주기는 프로그래밍 및 소거 (또는 소거 및 이후 프로그래밍)의 행동들을 포함한다. 다른 방법들에 있어서, 프로그래밍 주기는 소거없이 프로그래밍을 포함할 수 있다. 상기 표는 도 8과 관련하여 상기 설명한 방법에 따라 하위 페이지들 및 상위 페이지들에 데이터를 프로그램하기 위해 얼마나 많은 전압 프로그래밍 펄스들(Vpgm)이 이용되는 지를 보여준다. 또한, 도 7과 관련하여 설명된 방법에 따라 풀 시퀀스 프로그래밍을 수행하는 것에 관한 데이터도 있다. 양쪽 모두의 경우에 있어서, 최초 펄스의 크기는 16.0V이고, 스텝 사이즈는 0.3V이다. 도 10에 도시된 바와 같이, 새로운 디바이스들 및 이용된 디바이스들에 대한 평균 프로그래밍 시간은 각각 800㎲ 및 650㎲이다. 새로운 디바이스들은 순환된 디바이스들 보다 약 3번 더 많은 프로그래밍 펄스들을 요구하였다. 또한, 새로운 디바이스들은 (하기 설명되는) 소프트 프로그래밍 프로세스 동안 보다 많은 프로그램 펄스들을 요구하였다.
다이-소트 수율의 감소의 위험을 증가시키지 않으면서, 순환된 디바이스에서 보통의 셀들 또는 요소들에 대해 과도한 수의 프로그램 펄들을 가하는 것을 피하기 위해, 메모리 요소가 잘못된 것으로 공표되기 전에 그 메모리 요소에 인가될 수 있 는 최대의 허용가능한 수의 프로그래밍 펄스들을 적응적으로 조정하는 것이 제안되었다. 이러한 방식으로, 최대의 허용가능한 수의 프로그래밍 펄스들은, 디바이스가 순환됨에 따라, 시간에 따라 점차로 조정될 수 있다.
도 11은 메모리 요소가 잘못된 것으로 공표되기 전에 그 메모리 요소에 인가될 수 있는 최대의 허용가능한 수의 프로그래밍 펄스들을 적응적으로 조정하면서, 비휘발성 저장 요소를 프로그램하는 프로세스를 설명하는 흐름도이다. 이 프로세스는 데이터 프로그램 요청을 수신하는 것에 응답하여 시작될 수 있다(단계 400). 단계(402)에서, 시스템은 프로그램할 메모리의 적절한 부분들을 선택한다. 이는 기록할 블록 그리고/또는 페이지 그리고/또는 섹터의 선택을 포함한다. 선택적으로, 프로그래밍 주기들의 수의 총수(count)인 사이클 카운트가 증분될 수 있다. 이러한 사이클 카운트는 플래시 메모리 어레이, 상태 머신, 제어기 도는 다른 위치에 저장될 수 있다. 하나의 방법에 있어서, 이러한 사이클 카운트는 상태 머신과 관련된 레지스터에 저장된다. 단계(404)에서, 메모리의 선택된 부분은 선택에 따라 미리 프로그램되는 바, 이는 그 메모리의 균일한 웨어링(wearing)을 제공한다. 선택된 섹터 또는 페이지 내의 모든 메모리 요소들은 동일한 임계 전압 범위로 프로그램된다. 단계(406)에서, 프로그램되어야 하는 모든 메모리 요소들이 소거된다. 예를 들어, 단계(406)는 모든 메모리 요소들을 상태 E로 이동시키는 것을 포함할 수 있다(도 7-9 참조). 소거 프로세스 동안, 메모리 요소들중 일부는 분포 E 미만의 값으로 낮춰진 자신들의 임계 전압들을 가질 수 있다(도 7-9 참조). 단계(408)에서, 시스템은, 도 1에 나타낸 것들과 유사한 프로그램 전압 펄스들을 메모리 요소들에 인 가함으로써, 이들의 임계 전압들이 증가하여 임계 전압 분포 E 내에 있도록 하는 것과 같은, 소프트 프로그래밍 프로세스를 수행한다.
선택적으로, 시스템은 최초의 프로그램 펄스의 크기를 나타내는 플래그를 액세스할 수 있다. 도 10을 참조하면, 예를 들어, Vpgm의 최초의 값은 16.0V가 될 수 있다. 이러한 Vpgm의 최초의 값은 전하 펌프를 적절히 프로그램함으로써 설정될 수 있다. 단계(410)에서, 인가되는 전압 펄스들의 총수의 카운트, 또는 프로그램 카운트 PC는 최초에 0으로 설정되고, 각 패스마다 카운트 업된다. 단계(412)에서는, 고정된 펄스 한계(FPL)이 초과되었는지를 결정하기 위한 체크가 이루어진다. 또한, FPL에 관하여 도 1을 참조하라. 예를 들어, 24 펄스들과 같은 FPL이 이용될 수 있다. 인가되는 펄스들의 수에 대한 이러한 한계는, 보통 더 낮은 적응 펄스 한계(APL)(하기 설명된다)에 부가하여, 선택적으로 유지된다. 단계(414)에서, 프로그램 펄스(Vpgm)는 적절한 워드라인(들)에 인가된다. 단계(416)에서는, 그 워드라인(들) 상의 메모리 요소들을 검증하여, 그 메모리 요소들중 임의의 메모리 요소가 관련된 목표 임계 전압 레벨에 이르렀는지를 확인한다. 즉, 1개 이상의 메모리 요소들을 포함하는 메모리 요소들의 서브세트가 검증되었는 지의 여부가 결정된다. 검증 레벨은, 예를 들어 비휘발성 저장 요소들이 프로그램되어야 하는 최종 전압 레벨, 또는 이러한 최종 전압 레벨 이전의 중간 전압 레벨이 될 수 있다. 또한, 검증 레벨들은 모든 메모리 요소들에 대해 같을 필요는 없다. 추가의 상세 사항들에 대해서는 도 12를 참조하라.
만일 메모리 요소들중 어떤 것도 검증되지 않는다면, 단계(418)에서 Vpgm이 증가하고, 단계(410)에서는, 고정된 펄스 한계가 초과되지 않는한, 다음 프로그램 펄스가 인가될 때 부가적인 패스 또는 프로그래밍 루프가 시작된다. 설명되는 프로세스는, 메모리 요소들중 적어도 하나가 검증될 때 까지 반복된다. Vpgm의 크기는 고정된 또는 가변 스텝 사이즈(예를 들어, 0.3V) 만큼 증분되거나, 또는 같은 크기의 펄스들이 이용될 때에는 어떠한 증분도 요구되지 않는다. 일단 단계(416)에서 제 1 메모리 요소 또는 요소들이 특정된 임계 전압 레벨을 충족하는 것으로 검증되면, 단계(424)에서 부가적인 전압 펄스들의 카운트가 시작된다. 특정된 수의 부가적인 펄스들 "A"이 인가되어 나머지 메모리 요소들이 검증 레벨에 도달할 수 있게 됨으로써, 메모리 요소들에 인가되는 펄스들의 총수를 적응적으로 설정한다. 일 실시예에서, "A"는 스텝화된 전압 펄스들의 스텝 사이즈에 의해 분할되는 비휘발성 저장 요소들의 페이지 또는 다른 그룹의 자연적인 임계 전압 분포와 같다. 다른 실시예들에서, 부가적인 펄스들의 수는 디바이스 특징(characterization) 또는 다른 수단에 의해 결정될 수 있다.
또한, 제 1 메모리 요소(들)가 검증 레벨에 도달하기 위해 필요한 펄스들의 총수를 반드시 카운트할 필요가 없는데, 그 이유는 일단 제 1 메모리 요소(들)의 검증이 검출되면, 인가되는 부가적인 펄스들의 수는 카운트될 수 있기 때문이다. 예를 들어, 제 1 메모리 요소는 8개의 펄스 이후 검증 레벨에 도달할 수 있고, 허용되는 부가적인 펄스들의 수 "A"는 6개의 펄스가 될 수 있다. 이에 따라, 인가될 수 있는 펄스들의 총수인 적응 펄스 한계(APL)는 본 예에서 14개로 한정되는 바, 이는 24개 펄스의 FPL 보다 적다. 이 경우, 카운터는 APL을 강제하기 위해 6까지만 카운트하면 된다. 이러한 방법은 프로세싱 오버헤드를 최소화하는 간결한 설계(streamlined design)를 제공한다. 따라서, APL은 제 1 메모리 요소가 검증된 후 개별적인 카운터를 시작함으로써 강제되어, 언제 최대의 허용가능한 수의 부가적인 펄스들("A")이 나머지 메모리 요소들에 인가되었는지를 결정하여, 이러한 메모리 요소들이 원하는 검증 레벨에 도달할 수 있게 한다. 다른 방법에 있어서, 제 1 메모리 요소가 검증될 때의 펄스 카운트(PC1)를 기록하고, 최대의 허용가능한 수의 부가적인 펄스들("A")과 더함으로써, 공식 APL=PC1+A에 의해 적응 펄스 한계(APL)를 얻을 수 있다. 이후, 펄스들의 총수를 추적(track)하는 단일 카운터를 이용하여, APL에 도달하는 때를 결정할 수 있다. 이러한 값들 간의 관계의 부가적인 설명을 위해서는 도 13 및 14, 그리고 하기의 관련 설명을 참조하라.
단계(426)에서는, 적응 펄스 한계(APL)가 초과되었는 지에 대한 결정이 이루어진다. 만일 한계가 초과되었다면, 본 예에서는, 모든 요소들이 검증되기 전에, 6개의 모든 부가적인 펄스들이 이미 인가된 것이다. 이 경우, 프로그래밍 과정은 실패하게 되고, 단계(420)에서 실패 상태가 설정된다. 부가적으로, 단계(422)에서는, 특정의 실패한 메모리 요소들에 대한 에러가 공표된다. 만일 단계(426)에서 적응 한계가 초과되지 않으면, 단계(428)에서 모든 메모리 요소들이 검증되어 이들의 타겟 임계 전압 레벨에 도달했는 지에 대한 체크가 이루어진다. 모든 요소들이 검증되었으면, 단계(430)에서, "상태=패스"로 나타낸 바와 같이, 프로그래밍 과정은 성 공적으로 완료된다. 단계(428)에서 모든 요소들이 검증되지 않았으면, Vpgm이 증가하고, 단계(410)에서 부가적인 루프가 시작된다. 따라서, 설명되는 과정은, APL이 초과되고, 모든 메모리 요소들이 검증되거나, 또는 FPL이 초과될 때 까지(이들중 어느 것이든지 먼저 시작된다), 반복된다. 자신들의 목표 임계 전압에 도달하는 메모리 요소들은 현재의 프로그래밍 주기의 나머지에 대한 프로그래밍으로부터 로크아웃(lock out)된다는 것에 주목하자. 도 11의 전체 과정은 부가적인 데이터 블록들, 페이지들 또는 섹터들과 같은 부가적인 데이터를 프로그램하기 위한 이후의 요구가 수신될 때에 계속될 수 있다.
도 11의 과정은 여러 방법으로 변형될 수 있다. 예를 들어, 개별적인 고정된 그리고 적응 펄스 카운트 한계들은 데이터가 프로그램되고 있는 메모리의 다른 부분들(예를 들어, 블록들 또는 세그먼트들)에 대해 유지될 수 있다. 일반적으로, 다른 열화 레이트를 갖게 되는 메모리의 다른 부분들에 대해 개별적인 값들이 유지될 수 있다.
또한, 모든 메모리 요소들의 정의된 부분, 예를 들어 10%와 같은, 다수의 메모리 요소들이 검증되는 때를 결정함으로써 단계(416)를 변경하는 것이 가능하다. 이 경우, 펄스 카운트 값들의 평균치 또는 평균값과 같은 통계적인 측량치(metric)가 값 PC1으로서 얻어질 수 있는 바, 이는 부가적인 펄스들 "A"에 대한 한계와 더해짐으로써, APL을 얻는다. 이러한 값은 단일의 가장 빠른 요소를 나타낸다기 보다는, 메모리 디바이스 내의 다수의 가장 빠른 프로그래밍 요소들을 나타낸다. 다수 의 펄스 카운트 값들을 기록하고 처리하기 위해서는 적절한 제어 회로가 필요하다는 점에서 얼마간의 부가적인 복잡성이 부가된다. 이후, 동일한 프로그래밍 주기에 있어서, 그리고/또는 1개 이상의 후속의 프로그래밍 주기에 있어서의 나머지 요소들에 대하여 APL이 강제된다. 또한, 검증되는 모든 요소들에 대하여 펄스 카운트를 결정하고, 대표적인 PC를 유도하는 것이 가능한데, 이 경우 결과적인 APL은 1개 이상의 후속 프로그래밍 주기들에서 강제될 수 있다. 또한, 다수의 프로그래밍 주기들에 대해 취해지는 PC1의 이동 평균치 또는 평균값은, 1개 이상의 후속 프로그래밍 주기들에서 강제될 수 있는 APL을 유도하는 데에 이용될 수 있다. 이용되는 측량치는 가중치(weighting)를 더 포함함으로써, 예를 들어 PC1의 보다 최근의 값들이 보다 높은 가중치를 따를 수 있게 한다.
또한, APL이 변경될 때 마다 이 APL의 최대의 변경에 관한 룰들이 부과될 수 있다. 이를 테면, 계산될 때 마다, APL이 1 펄스 카운트 이상 변경되지 않도록 룰이 부과될 수 있다. APL의 편차들을 스무딩(smoothing)하게 되면, 성능에 영향을 주는 급작스런 변경들을 피할 수 있게 된다. 또한, 변칙적인 결과를 피하기 위해, APL이 단지 한 방향(예를 들어, 아랫쪽)으로만 조정되도록 룰이 부과될 수 있다.
또한, 도 11은 APL이 각각의 프로그래밍 주기에 대해 계산되는 것을 나타내었지만, 새로운 APL을 특정된 프로그래밍 주기들에 대해 계산하고, 다시 계산될 때 까지 그 값을 후속 주기들에서 강제되도록 이월(carryover)할 수 있다. 특히, 제 1 요소가 PC1 및 그에 대응하게 APL을 검증하는 데에 필요한 프로그래밍 펄스들의 수는, 수백 또는 수천개의 프로그래밍 주기 이후, 시간에 따라 점차적으로 내려가는 경향이 있다는 것을 기대할 수 있다. 따라서, 매 n개의 프로그래밍 주기 이후 APL을 계산하는 것으로도 충분하며, 여기서 예를 들어 n=50 또는 100이다. 또는, APL은 특정된 수의 프로그래밍 주기들 이후, 예를 들어 500, 1000, 1250, 1500번 등의 프로그래밍 주기 이후 계산될 수 있다. 또한, 증분들은 고정되거나 가변적일 수 있다. 예를 들어, 실험적인 또는 이론적인 데이터를 이용하여, 프로그래밍 주기들의 수에 대하여 메모리 요소들을 프로그램하는 데에 요구되는 프로그래밍 펄스들의 수에 있어서의 감소 프로파일을 평균적으로 얻을 수 있다. APL을 계산하기 위한 횟수를 그에 따라 선택함으로써, 이는 요구되는 프로그래밍 펄스들의 수가 보다 급속하게 변경할 것임을 기대하는 데에 보다 빈번하게 계산된다.
다른 메모리 요소들의 서로 다른 프로그래밍 성능 특징을 수용하기 위해 이용되는 펄스들의 최대의 부가적인 수인 "A"에 관하여, 이 값은 "A"의 부가적인 펄스들이 인가된 후 여전히 검증되지 않은 채로 남아있는 요소들의 수가 과도하지 않도록 하기 위해 충분히 큰 값으로 설정되어야 하며, 그럼에도 불구하고 이 값은 전체 프로그래밍 시간 및 메모리에서 이용되는 펄스들의 총수가 과도하지 않도록 충분히 작아야 한다. 하나의 시도에서는, 약 6개의 펄스들의 값이 이용될 수 있다. 또한, "A"는 고정값 또는 가변값이 될 수 있다. 예를 들어, "A"는 1개 이상의 메모리 요소들이 PC1을 프로그램하는 데에 요구되는 펄스들의 수와 같은 파라미터의 함수로서 달라질 수 있다. 이 경우, PC1이 보다 커지면 보다 큰 "A" 값이 이용되고, PC1이 보다 작아지면, 보다 작은 값이 이용된다. 다른 범위의 PC1이 다른 값의 "A"와 상관되는 테이블이 구현될 수 있다. 예를 들어, PCl=I-10에 대해, "A" =5; PCl=I1-15에 대해, "A"=6; PC1=16-2O에 대해, "A"=7; 및 PCl=21-24에 대해, "A"=8이다. 또는, "A"는, 예를 들어 50%와 같은 퍼센티지 또는 프랙션과 같이, PC1의 일부로서 계산되고, 가장 가까운 자연수(whole number)로 반올림(round)될 수 있다. 다음의 가장 높은 자연수까지의 반올림이 이용될 수 있다. 예를 들어, PC1=15에 대하여, "A"=8이다.
다른 방법에 있어서, "A"는 메모리가 겪게 되는 프로그래밍 주기들의 수(N)에 의해 결정되는 것과 같이, 메모리 요소들이 이용에 기초하여 설정될 수 있다. 예를 들어, N=1-1,000에 대해, "A"=8; N=l,001-5,000에 대해, "A"=7; 및 N=5,001-10,000에 대해, "A"=6이다. "A"는 또한 PC1 및 프로그래밍 주기들의 수 모두에 기초하여 설정될 수 있다. 어느 경우이든, "A"는 PC1 그리고/또는 프로그래밍 주기들의 수가 시간에 따라 감소함에 따라 감소한다. "A"의 개별적인 값들은, 상기 설명한 바와 같이 유지될 수 있는 개별적인 APL 값들에 상응하여, 상위 및 하위 페이지들로부터 데이터를 저장하는 메모리 요소들과 같이, 메모리의 다른 부분들에 대해 유지될 수 있다는 것을 주목하자. 또한, FPL, APL 및 "A"의 값들은 이용되는 프로그래밍의 타입, 예를 들어 페이지 모드 프로그래밍 대 풀 시퀀스 프로그래밍에 기초해서도 설정될 수 있다.
도 12는 임계 전압(VTH) 대 시간과 비트 라인 전압(VBL) 대 시간의 관계를 나타낸 그래프들이다. 도 11(단계 416)과 관련하여 상기 설명한 바와 같이, 프로그래밍 과정은 메모리 요소들이 관련된 목표 임계 전압 레벨에 도달했는 지를 검증하는 것을 포함하며, 여기서 검증 레벨은, 예를 들어 비휘발성 저장 요소들이 프로그램되어야 하는 최종 전압 레벨, 또는 이러한 최종 전압 레벨 이전의 중간 전압 레벨이 될 수 있다.
도 12의 과정은 거친/미세(coarse/fine) 프로그래밍 과정을 나타낸다. 프로그램 전압(Vpgm)은 프로그램되어야 하는 메모리 요소들의 제어 게이트들에 인가된다. 프로그램 펄스들 간에서, 검증 동작들이 수행된다. 일 실시예에서, 제 1의 중간 검증 레벨(Vver1) 및 제 2의 최종 검증 레벨(Vver2)이 정의된다. 상기 설명한 바와 같이, 이러한 검증 레벨들은 다른 메모리 요소들에 대해 또는 메모리 요소들의 그룹들에 대해 서로 다를 수 있다. 또한, 동일한 메모리 요소 또는 메모리 요소들의 그룹에 대해 2개 이상의 검증 레벨들을 가질 수 있다. 만일 프로그램되고 있는 메모리 요소의 임계 전압(VTH)이 Vver1 미만이면, 프로그래밍은 그 요소에 대해 거친 모드(coarse mode)에서 계속되며, 비트 라인 전압은 로우(예를 들어, 0V)로 유지된다. 예를 들어 시간(t3)에서, VTH가 Vver1에 도달했지만, Vver2 미만이면, 중간 비트 라인 전압(예를 들어, 1V)가 인가된다. 중간 비트 라인 전압의 결과로서, 채널 전압은 증가하고(예를 들어, 1V), 그 메모리 요소의 프로그래밍은 느려지게 됨으로써, 미세 프로그래밍 모드로 전환되는데, 이는 각각의 후속 프로그램 펄스로 인해 VTH의 시프트가 감소할 것이기 때문이다. 비트 라인은, 예를 들어 시간(t5)에서 VTH가 최종의 목표 검증 레벨(Vver2)에 도달할 때 까지, 다수의 펄스들에 대한 중간 비 트 라인 전압으로 유지될 것이며, 상기 t5 이후 비트 라인은, 가령 비트 라인 전압을 Vinhibit(예를 들어, Vdd가 될 수 있다)로 올림으로써, 추가의 프로그래밍을 막기 위해 올라갈 것이다.
이러한 시도에 의해, 일단 임계 전압이 목표값에 가까워지면(예를 들어, 임계 전압이 Vver1 보다 크고, Vver2 보다 작을 때), 임계 전압의 펄스 마다 시프트가 감소하기 때문에 단일 검증 레벨이 이용되는 경우와 비교하여, 보다 좁은 프로그램된 임계 전압 분포를 달성할 수 있다. 하지만, 중간 비트 라인 바이어스는 메모리 셀들의 프로그래밍을 느리게 함으로써, 전체 프로그래밍 시간이 증가하게 된다. 프로그래밍 과정을 완료하기 위해서는 다수의 부가적인 펄스들(예를 들어, 2개 또는 3개의 펄스들)이 요구될 수 있다.
도 13은 새로운 메모리 디바이스에 인가되는 프로그래밍 펄스들을 도시하고, 도 14는 순환된 메모리 디바이스에 인가되는 프로그래밍 펄스들을 도시한다. 설명한 바와 같이, 비휘발성 메모리 디바이스는 많은 프로그래밍 주기들을 겪기 때문에, 전하들은 플로팅 게이트와 채널 영역 사이의 절연물에 트랩된다. 이러한 전하의 트래핑은 임계 전압을 보다 높은 레벨로 시프트시켜, 메모리 요소를 보다 빠르게 프로그램시킴으로써, 그 요소가 원하는 전압 레벨에 도달하는 데에 보다 적은 전압 펄스들이 필요하게 된다. 도 13과 도 14를 비교하면, 제 1 요소가 검증될 때 까지 메모리에 인가되는 Vpgm 펄스들(PC1)의 수는 순환된 메모리에 대해 감소한다는 것을 알 수 있다. 또한, 나타낸 예에서, 부가적인 프로그래밍 펄스들 "A"의 최대의 허용가능한 수는 새로운 메모리 디바이스와 순환된 메모리 디바이스 모두에 대해 동일하다. 이에 따라, 적응 펄스 한계(APL) 역시 순환된 디바이스에 대해 감소한다.
상기 본 발명의 상세한 설명은 예시와 설명의 목적을 위해 제공되었다. 이러한 설명은 본 발명을 속속들이 규명한 것으로서, 또는 본 발명을 개시된 정확한 형태로 한정하는 것으로서 의도되지 않는다. 상기 교시에 비추어 많은 수정들 및 변형들이 가능하다. 설명된 실시예들은 본 발명의 사상과 실제적인 응용예를 최상으로 설명함으로써, 당업자가 다양한 실시예들에서 그리고 고려되는 특정의 용도에 적합한 다양한 변형들에 대해 본 발명을 최상으로 이용할 수 있도록 선택된 것이다. 본 발명의 범위는 첨부된 청구범위에 의해서만 규정된다.

Claims (28)

  1. 비휘발성 저장 요소를 프로그램하는 방법으로서,
    일련의 전압 펄스들을 이용하여 적어도 제 1 비휘발성 저장 요소를 제 1 검증 레벨에 도달하도록 프로그램하는 단계와;
    적어도 상기 제 1 비휘발성 저장 요소가 상기 제 1 검증 레벨에 도달하는 때를 검출하는 단계와; 그리고
    상기 검출 단계에 응답하여, 적어도 제 2 비휘발성 저장 요소를 제 2 검증 레벨에 도달하도록 프로그램하는 데에 이용되는 최대의 허용가능한 수의 부가적인 전압 펄스들을 강제(enforce)하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  2. 제 1 항에 있어서,
    상기 최대의 허용가능한 수의 부가적인 전압 펄스들은 (a) 상기 적어도 제 1 비휘발성 저장 요소가 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수와, (b) 상기 최대의 허용가능한 수의 부가적인 전압 펄스들의 합에 기초하여 강제되는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  3. 제 1 항에 있어서,
    상기 최대의 허용가능한 수의 부가적인 전압 펄스들은 상기 적어도 제 1 비 휘발성 저장 요소가 상기 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수에 따라 달라지는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  4. 제 1 항에 있어서,
    상기 최대의 허용가능한 수의 부가적인 전압 펄스들은 고정되는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  5. 제 1 항에 있어서,
    상기 최대의 허용가능한 수의 부가적인 전압 펄스들은 가변적인 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  6. 제 1 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소의 이용을 시간에 따라 추적하는 단계를 더 포함하고,
    상기 최대의 허용가능한 수의 부가적인 전압 펄스들은 상기 이용에 따라 달라지는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  7. 제 6 항에 있어서,
    상기 이용을 추적하는 단계는 프로그래밍 주기들의 카운트를 유지하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  8. 제 1 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소는 상기 일련의 전압 펄스들을 이용하여 상기 제 1 검증 레벨에 도달하도록 프로그램되는 복수의 비휘발성 저장 요소들을 포함하고,
    상기 방법은, 상기 복수의 비휘발성 저장 요소들 각각이 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수를 결정하는 단계와; 그리고
    상기 복수의 비휘발성 저장 요소들 각각이 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수에 기초하여, 상기 적어도 제 2 비휘발성 저장 요소를 상기 제 2 검증 레벨에 도달하도록 프로그램하는 데에 이용될 최대의 허용가능한 수의 부가적인 전압 펄스들을 강제하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  9. 제 8 항에 있어서,
    상기 적어도 제 2 비휘발성 저장 요소를 상기 제 2 검증 레벨에 도달하도록 프로그램하는 데에 이용하기 위한 상기 최대의 허용가능한 수의 부가적인 전압 펄스들은, 상기 복수의 비휘발성 저장 요소들 각각이 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수로부터 유도되는 통계적인 측량치(metric)에 기초하여 강제되는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  10. 제 1 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소 및 상기 적어도 제 2 비휘발성 저장 요소는 공통 프로그래밍 주기에서 프로그램되는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  11. 제 1 항에 있어서,
    상기 적어도 제 2 비휘발성 저장 요소는, 상기 적어도 제 1 비휘발성 저장 요소가 프로그램되는 프로그래밍 주기 이후의 프로그래밍 주기에서 프로그램되는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  12. 제 1 항에 있어서,
    상기 최대의 허용가능한 수의 부가적인 전압 펄스들은 상기 전압 펄스들의 스텝 사이즈에 의해 나누어지는 상기 적어도 제 1 비휘발성 저장 요소의 임계 전압 분포에 기초하는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  13. 제 1 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소 및 상기 적어도 제 2 비휘발성 저장 요소는 공통 블럭과 공통 세그먼트중 적어도 하나 내에 제공되는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  14. 제 1 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소 및 상기 적어도 제 2 비휘발성 저장 요소는 공통 페이지로부터의 데이터에 의해 프로그램되는 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  15. 제 1 항에 있어서,
    상기 제 1 검증 레벨과 상기 제 2 검증 레벨중 적어도 하나는 최종 전압 레벨 이전의 중간 전압 레벨인 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  16. 제 1 항에 있어서,
    상기 제 1 검증 레벨과 상기 제 2 검증 레벨중 적어도 하나는 최종 전압 레벨인 것을 특징으로 하는 비휘발성 저장 요소를 프로그램하는 방법.
  17. 비휘발성 저장 시스템으로서,
    적어도 제 1 비휘발성 저장 요소 및 적어도 제 2 비휘발성 저장 요소와; 그리고
    상기 적어도 제 1 비휘발성 저장 요소 및 상기 적어도 제 2 비휘발성 저장 요소와 통신하는 1개 이상의 관리 회로들을 포함하며,
    상기 1개 이상의 관리 회로들은 데이터를 프로그램하기 위한 요구를 수신하 고, 상기 요구에 응답하여, 일련의 전압 펄스들을 이용하여 상기 적어도 제 1 비휘발성 저장 요소를 제 1 검증 레벨에 도달하도록 프로그램하고, 상기 적어도 상기 제 1 비휘발성 저장 요소가 상기 제 1 검증 레벨에 도달하는 때를 검출하고, 그리고 상기 검출에 응답하여, 상기 적어도 제 2 비휘발성 저장 요소를 제 2 검증 레벨에 도달하도록 프로그램하는 데에 이용되는 최대의 허용가능한 수의 부가적인 전압 펄스들을 강제하는 것을 특징으로 하는 비휘발성 저장 시스템.
  18. 제 17 항에 있어서,
    상기 1개 이상의 관리 회로들은 (a) 상기 적어도 제 1 비휘발성 저장 요소가 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수와, (b) 상기 최대의 허용가능한 수의 부가적인 전압 펄스들의 합에 기초하여 상기 최대의 허용가능한 수의 부가적인 전압 펄스들을 강제하는 것을 특징으로 하는 비휘발성 저장 시스템.
  19. 제 17 항에 있어서,
    상기 부가적인 전압 펄스들의 수는 상기 적어도 제 1 비휘발성 저장 요소가 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수에 따라 달라지는 것을 특징으로 하는 비휘발성 저장 시스템.
  20. 제 17 항에 있어서,
    상기 부가적인 전압 펄스들의 최대수는 고정되는 것을 특징으로 하는 비휘발성 저장 시스템.
  21. 제 17 항에 있어서,
    상기 부가적인 전압 펄스들의 최대수는 가변적인 것을 특징으로 하는 비휘발성 저장 시스템.
  22. 제 17 항에 있어서,
    상기 요구에 응답하는 상기 1개 이상의 관리 회로들은 상기 일련의 전압 펄스들을 이용하여 복수의 비휘발성 저장 요소들을 상기 제 1 검증 레벨에 도달하도록 프로그램하고, 상기 복수의 비휘발성 저장 요소들 각각이 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수를 결정하고, 상기 복수의 비휘발성 저장 요소들 각각이 상기 제 1 검증 레벨에 도달하는 데에 필요한 전압 펄스들의 수에 기초하여, 상기 적어도 제 2 비휘발성 저장 요소가 상기 제 2 검증 레벨에 도달하도록 프로그램하는 데에 이용되는 상기 최대의 허용가능한 수의 부가적인 전압 펄스들을 강제하는 것을 특징으로 하는 비휘발성 저장 시스템.
  23. 제 17 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소 및 상기 적어도 제 2 비휘발성 저장 요소는 공통 프로그래밍 주기에서 프로그램되는 것을 특징으로 하는 비휘발성 저장 시스템.
  24. 제 17 항에 있어서,
    상기 적어도 제 2 비휘발성 저장 요소는, 상기 적어도 제 1 비휘발성 저장 요소가 프로그램되는 프로그래밍 주기 이후의 프로그래밍 주기에서 프로그램되는 것을 특징으로 하는 비휘발성 저장 시스템.
  25. 제 17 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소 및 상기 적어도 제 2 비휘발성 저장 요소는 공통 블럭과 공통 세그먼트중 적어도 하나 내에 제공되는 것을 특징으로 하는 비휘발성 저장 시스템.
  26. 제 17 항에 있어서,
    상기 적어도 제 1 비휘발성 저장 요소 및 상기 적어도 제 2 비휘발성 저장 요소는 공통 페이지로부터의 데이터에 의해 프로그램되는 것을 특징으로 하는 비휘발성 저장 시스템.
  27. 제 17 항에 있어서,
    상기 제 1 검증 레벨과 상기 제 2 검증 레벨중 적어도 하나는 최종 전압 레벨 이전의 중간 전압 레벨인 것을 특징으로 하는 비휘발성 저장 시스템.
  28. 제 17 항에 있어서,
    상기 제 1 검증 레벨과 상기 제 2 검증 레벨중 적어도 하나는 최종 전압 레벨인 것을 특징으로 하는 비휘발성 저장 시스템.
KR1020087004515A 2005-08-01 2006-07-26 자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍 KR101012129B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/194,827 2005-08-01
US11/194,439 US7230854B2 (en) 2005-08-01 2005-08-01 Method for programming non-volatile memory with self-adjusting maximum program loop
US11/194,439 2005-08-01
US11/194,827 US7023737B1 (en) 2005-08-01 2005-08-01 System for programming non-volatile memory with self-adjusting maximum program loop

Publications (2)

Publication Number Publication Date
KR20080058330A true KR20080058330A (ko) 2008-06-25
KR101012129B1 KR101012129B1 (ko) 2011-02-07

Family

ID=37189404

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087004515A KR101012129B1 (ko) 2005-08-01 2006-07-26 자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍

Country Status (6)

Country Link
EP (1) EP1911033B1 (ko)
JP (1) JP4754631B2 (ko)
KR (1) KR101012129B1 (ko)
AT (1) ATE521972T1 (ko)
TW (1) TWI313461B (ko)
WO (1) WO2007016167A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150011018A (ko) * 2012-06-01 2015-01-29 스펜션 엘엘씨 플래시 메모리의 적응적 알고리즘을 위한 방법, 장치, 및 제작물

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894269B2 (en) 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
JP5529858B2 (ja) * 2008-06-12 2014-06-25 サンディスク テクノロジィース インコーポレイテッド インデックスプログラミングおよび削減されたベリファイを有する不揮発性メモリおよび方法
US8416609B2 (en) 2010-02-15 2013-04-09 Micron Technology, Inc. Cross-point memory cells, non-volatile memory arrays, methods of reading a memory cell, methods of programming a memory cell, methods of writing to and reading from a memory cell, and computer systems
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8379454B2 (en) * 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8730722B2 (en) 2012-03-02 2014-05-20 Sandisk Technologies Inc. Saving of data in cases of word-line to word-line short in memory arrays
CN103631529A (zh) * 2012-08-21 2014-03-12 群联电子股份有限公司 数据写入方法、存储器控制器与存储器存储装置
US9082510B2 (en) * 2012-09-14 2015-07-14 Freescale Semiconductor, Inc. Non-volatile memory (NVM) with adaptive write operations
KR102118979B1 (ko) 2013-09-13 2020-06-05 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US9165683B2 (en) 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection
US9484086B2 (en) 2014-07-10 2016-11-01 Sandisk Technologies Llc Determination of word line to local source line shorts
US9460809B2 (en) 2014-07-10 2016-10-04 Sandisk Technologies Llc AC stress mode to screen out word line to word line shorts
US9514835B2 (en) 2014-07-10 2016-12-06 Sandisk Technologies Llc Determination of word line to word line shorts between adjacent blocks
US9443612B2 (en) 2014-07-10 2016-09-13 Sandisk Technologies Llc Determination of bit line to low voltage signal shorts
US9240249B1 (en) 2014-09-02 2016-01-19 Sandisk Technologies Inc. AC stress methods to screen out bit line defects
US9202593B1 (en) 2014-09-02 2015-12-01 Sandisk Technologies Inc. Techniques for detecting broken word lines in non-volatile memories
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
US9659666B2 (en) 2015-08-31 2017-05-23 Sandisk Technologies Llc Dynamic memory recovery at the sub-block level

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2716906B2 (ja) * 1992-03-27 1998-02-18 株式会社東芝 不揮発性半導体記憶装置
US6000843A (en) * 1992-07-03 1999-12-14 Nippon Steel Corporation Electrically alterable nonvolatile semiconductor memory
JPH07182899A (ja) * 1993-12-22 1995-07-21 Nec Corp 半導体記憶装置
JP4129170B2 (ja) * 2002-12-05 2008-08-06 シャープ株式会社 半導体記憶装置及びメモリセルの記憶データ補正方法
US7073103B2 (en) * 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US6888758B1 (en) * 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150011018A (ko) * 2012-06-01 2015-01-29 스펜션 엘엘씨 플래시 메모리의 적응적 알고리즘을 위한 방법, 장치, 및 제작물

Also Published As

Publication number Publication date
JP4754631B2 (ja) 2011-08-24
WO2007016167A1 (en) 2007-02-08
EP1911033B1 (en) 2011-08-24
TW200805375A (en) 2008-01-16
ATE521972T1 (de) 2011-09-15
KR101012129B1 (ko) 2011-02-07
JP2009503764A (ja) 2009-01-29
EP1911033A1 (en) 2008-04-16
TWI313461B (en) 2009-08-11

Similar Documents

Publication Publication Date Title
KR101012129B1 (ko) 자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍
EP1886319B1 (en) Starting program voltage shift with cycling of non-volatile memory
US7023737B1 (en) System for programming non-volatile memory with self-adjusting maximum program loop
US7230854B2 (en) Method for programming non-volatile memory with self-adjusting maximum program loop
KR101606168B1 (ko) 프로그램, 검증 및, 읽기를 위한 참조 전압 레벨들의 적응적인 세팅을 갖는 비휘발성 멀티레벨 메모리
EP1738374B1 (en) Variable programming of non-volatile memory
EP2348511B1 (en) Variable program for non-volatile storage
KR101075253B1 (ko) 임계 전압의 치밀한 분포가 가능한 비휘발성 메모리의 비 실시간 재 프로그래밍 방법
KR101314306B1 (ko) 스마트 검증을 이용한 다중 상태 비휘발성 메모리프로그래밍 방법
WO2008083131A2 (en) Method for programming with initial programming voltage based on trial
EP1831894A1 (en) Word line compensation in non-volatile memory erase operations
KR101016432B1 (ko) 타이밍 정보를 이용한 리버스 커플링 효과
KR100984563B1 (ko) 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법
KR100966358B1 (ko) 비트라인 커플링을 나타내는 비휘발성 메모리를 제어프로그래밍하는 방법
KR20080080621A (ko) 비휘발성 저장 장치에서 판독 장애 저감
WO2008115874A1 (en) Adjusting resistance of non-volatile memory using dummy memory cells

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20140107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150105

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160104

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180103

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 9