KR20080016598A - 비휘발성 메모리 사이클에 따른 시작 프로그램 전압 시프트 - Google Patents

비휘발성 메모리 사이클에 따른 시작 프로그램 전압 시프트 Download PDF

Info

Publication number
KR20080016598A
KR20080016598A KR1020077028257A KR20077028257A KR20080016598A KR 20080016598 A KR20080016598 A KR 20080016598A KR 1020077028257 A KR1020077028257 A KR 1020077028257A KR 20077028257 A KR20077028257 A KR 20077028257A KR 20080016598 A KR20080016598 A KR 20080016598A
Authority
KR
South Korea
Prior art keywords
programming
storage elements
nonvolatile storage
program
period
Prior art date
Application number
KR1020077028257A
Other languages
English (en)
Other versions
KR100945057B1 (ko
Inventor
제프리 더블유. 룻체
Original Assignee
샌디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20080016598A publication Critical patent/KR20080016598A/ko
Application granted granted Critical
Publication of KR100945057B1 publication Critical patent/KR100945057B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • 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

Abstract

본 발명에는 플레시 부분에 대한 시작 프로그래밍 전압을 제1레벨로 설정하고 메모리 셀의 사이클이 증가함에 따라 시작 프로그래밍 전압을 조절함으로써 성능을 향상시킨 비휘발성 스토리지를 프로그래밍하기 위한 시스템이 개시된다. 예를 들어 시스템은 제1기간 동안 제1 초기값을 가지는 증가하는 프로그램 신호를 이용하여 비휘발성 소자들의 세트를 프로그램하고, 이어서 제2기간 동안 제2초기값을 가지는 증가하는 프로그램 신호를 이용하여 비휘발성 스토리지 소자들의 세트를 프로그래밍하며, 여기서 상기 제2기간은 상기 제1기간 다음에 이어지며 상기 제2초기 값은 제1초기 값과 서로 다른 값에 해당한다.
비휘발성 스토리지, 플래그, 초기 전압

Description

비휘발성 메모리 사이클에 따른 시작 프로그램 전압 시프트{STARTING PROGRAM VOLTAGE SHIFT WITH CYCLING OF NON-VOLATILE MEMORY}
본 발명은 비휘발성 메모리의 프로그래밍에 관한 것이다.
반도체 메모리는 다양한 전자 제품에 사용되어 점점 대중화되고 있다. 예를 들어, 비휘발성 반도체 메모리는 휴대전화, 디지털 카메라, 개인 휴대정보 단말기(PDA), 휴대용 연산 장치, 비-휴대용 연산장치 및 기타 장치에서 사용되고 있다. 전기적으로 소거가능하고 프로그램가능한 읽기 전용 메모리(Electrical Erasable Programmable Read Only Memory; EEPROM) 및 플래시 메모리가 가장 일반적인 비휘발성 반도체 메모리이다.
EEPROM과 플래시 메모리는, 반도체 기판의 채널 영역 위에 위치하며 채널 영역으로부터 절연된 플로팅 게이트(floating gate)를 이용한다. 상기 플로팅 게이트는 소스와 드레인 영역 사이에 위치한다. 제어 게이트(control gate)는 상기 플로팅 게이트 위에 플로팅 게이트와 절연된 채로 제공된다. 상기 트랜지스터의 임계전압(threshold voltage)은 상기 플로팅 게이트 상에 보존된 전하량에 의해 제어된다. 즉, 트랜지스터의 소스와 드레인 사이가 도통되도록 트랜지스터가 턴 온 되기 전 상기 제어 게이트에 인가되어야만 하는 최소 전압의 크기는 상기 플로팅 게이트 상의 전하 레벨에 의해 제어된다.
NAND 플래시 메모리 소자와 같은, EEPROM 이나 플래시 메모리 소자를 프로그래밍할 때, 일반적으로 프로그램 전압이 상기 제어 게이트에 인가되고 비트라인은 접지된다. 채널로부터 온 전자들은 상기 플로팅 게이트 내로 주입된다. 전자들이 상기 플로팅 게이트에 축적될 때, 상기 플로팅 게이트는 음(negative)으로 대전되고 상기 메모리 셀의 임계전압은 상승되며, 이 결과 상기 메모리 셀이 프로그램된 상태에 있게 된다. 프로그래밍에 관한 더 많은 정보는 "Source Side Self Boosting Technique For Non-Volatile Memory"라는 제목의 미국 특허출원 제6,859,397호와, "Detecting Over Programmed Memory"라는 제목의 2003년 7월 29일 출원된 미국 특허 출원 공개 제2005/0024939호에서 확인할 수 있으며, 상기 두 출원은 참조로서 본 명세서에 전체적으로 편입된다.
일부 EEPROM과 플래시 메모리 소자들은 두 개 범위의 전하들을 저장하는 데 사용되는 플로팅 게이트를 가지고 있으며, 이에 따라 메모리 셀은 두 개의 상태(소거된 상태 및 프로그램된 상태) 사이에서 프로그램/소거될 수 있다. 이러한 플래시 메모리 소자는 종종 바이너리(binary) 플래시 메모리 소자로 지칭된다.
다중-상태(multi-state)(다중 레벨(multi-level)이라고도 일컬어진다) 플래시 메모리 소자는 금지된(forbidden) 범위들에 의해 분리된 복수의 별개의 허용된/유효하게 프로그램된(allowed/valid programmed) 임계전압 범위들을 확인함으로써 실시된다. 별개의 임계전압 범위 각각은 메모리 소자에 인코딩된 데이터 비트들의 세트에 대해 선결정된(pre-determined) 값에 해당한다.
일반적으로, 프로그램이 동작하는 동안 제어게이트에 인가되는 프로그램 전압은 직류 펄스로 인가된다. 일 실시예에서, 펄스들의 크기(magnitude)는 미리 결정된 계단 크기 만큼씩 각각 연속적인 펄스로 증가한다. 도 1은 플래시 메모리 셀들의 제어 게이트들(또는 어떤 경우에 있어서는, 스티어링 게이트(steering gate)들)에 인가될 수 있는 프로그램 전압 신호(Vpgm)를 도시한 것이다. 상기 프로그램 전압 신호(Vpgm)는 시간에 따라 크기가 증가하는 직류 펄스를 포함한다. 상기 프로그램 펄스 사이의 기간에는 검증 동작이 수행된다. 즉, 병렬의 프로그래밍된 셀 그룹들의 각 셀들의 프로그래밍 레벨이 프로그래밍될 검증 레벨과 같은지 또는 큰지 결정하기 위해 이어지는 프로그래밍 펄스들 사이에 판독된다. 다중-상태 플래시 메모리 셀들의 어레이에서, 상기 메모리 셀들은 셀이 관련 검증 레벨에 그것의 데이터에 도달하였는지 여부를 판단할 수 있도록 각 상태의 검증 단계를 수행할 수 있다. 예를 들어, 네 가지 상태로 데이터를 저장할 수 있는 다중-상태 메모리 셀은 3개의 비교 포인트에 대해 검증 동작을 수행하는 것이 필요할 수 있다.
프로그램 전압(Vpgm)의 크기를 선택하는 것은 절충할 수 있다. 지나치게 높은 값은 일부 메모리 셀들이 오버-프로그래밍되게 할 수 있고, 반대로 지나치게 낮은 값은 프로그래밍 시간이 길게 걸리게 할 수 있다. 일반적으로, 비휘발성 메모리의 사용자들은 메모리가 빨리 프로그래밍 되는 것을 원한다.
종래의 소자에 있어서는, 별로 사용되지 않은 새것의 소자들(또는 플레시(fresh) 소자라고도 지칭됨)과 과도하게 사용된 소자들에 대해 동일한 프로그래밍 신호가 사용된다. 그러나, 비휘발성 메모리 소자는 많은 프로그래밍 사이클들을 거치기 때문에, 상기 플로팅 게이트와 채널 영역 사이의 절연부에는 전하가 포획된다. 이러한 전하의 포획은 임계전압을 더 높은 레벨로 시프트시키며, 메모리 셀이 더욱 빠르게 프로그램되게 한다. 만약 프로그램 신호의 크기가 지나치게 높게 설정된 경우에는, 이것이 플레시 소자를 오버 프로그래밍하는 결과는 아니더라도, 이 소자가 더 심하게 사용되게 됨에 따라 그 소자가 오버프로그래밍을 겪게 될 수 있다. 따라서, 플레시 소자들은 이들이 노후화되었을 때 오버프로그래밍을 피할 수 있도록 충분히 낮은 그의 프로그래밍 전압 설정을 가질 수 있다. 이렇게 프로그램 전압의 크기를 낮추는 것은 플레시 소자가 데이터를 프로그램하는 속도를 감소시킬 수 있다.
본 명세서에 설명된 기술은 오버프로그래밍의 위험이 증가되는 일 없이 데이터를 고속으로 프로그래밍하기 위한 해결책을 제공한다. 이러한 목적을 달성하기 위해, 프로그래밍 특성 중 한 설정(set)은 새로운 소자를 프로그래밍하는데 사용되고, 반면 프로그래밍 특성 중 다른 설정은 그 소자의 사용 이후에 상기 소자를 프로그래밍 하는 데 이용된다.
일 실시예에 있어서, 시스템은 제1기간 동안 제1초기값을 가진 증가하는 프로그램 신호를 이용하여 비 휘발성 스토리지 소자들의 세트를 프로그래밍하고, 이어서 제2기간 동안 제2초기값을 가진 증가하는 프로그램 신호를 이용하여 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하며, 상기 제2기간는 제1기간에 이어지고, 제2초기값은 제1초기값과 서로 다른 값이다.
일 실시예에는 비휘발성 스토리지 소자들의 세트와 상기 비휘발성 스토리지 소자들과 통신하는 하나 이상의 관리 회로(managing circuit)들이 포함된다. 상기 하나 이상의 관리 회로들은 데이터를 프로그램하는 요청을 수신한다. 상기 요청에 응답할 때, 비휘발성 스토리지 소자들에 대한 사용 지시가 제1사용을 표시하면 상기 하나 이상의 관리 회로들은 제1시작 값을 가지는 프로그래밍 신호를 이용하여 비휘발성 스토리지 소자들을 프로그래밍하고, 사용 지시가 제2사용을 표시하면 제2시작값을 가지는 프로그래밍 신호를 이용하여 상기 비휘발성 스토리지 소자들을 프로그래밍한다.
사용 지시의 일 예는 비휘발성 스토리지, 콘트롤러, 상태 머신 또는 다른 것 내에 저장되는 플래그(flag)(한 개 또는 그 이상의 비트들)이다. 상기 플래그는 비휘발성 스토리지 소자들 사용에 대한 측정을 반영하는 데이터를 저장한다.
도 1은 플래시 메모리 소자들의 하나 이상의 제어 게이트에 인가될 수 있는 프로그램 전압의 일 예를 도시한 것.
도 2는 NAND 스트링의 평면도.
도 3은 상기 NAND 스트링의 등가 회로 다이어그램.
도 4는 상기 NAND 스트링의 단면도.
도 5는 비휘발성 메모리 시스템의 블럭 다이어그램.
도 6은 비휘발성 메모리 어레이의 블럭 다이어그램.
도 7은 임계전압 분포들의 세트의 일 예를 도시한 그래프.
도 8은 임계전압 분포들의 세트의 일 예를 도시한 그래프.
도 9A-C는 임계전압 분포를 보여주며, 비휘발성 메모리 프로그래밍용 프로세스를 도시한 것.
도 10은 프로그래밍 성능을 설명하는 순서도.
도 11은 비휘발성 스토리지 프로그래밍 프로세스의 일 실시예를 나타낸 순서도.
도 11A-D는 다른 크기들의 초기 펄스들을 가지는 프로그래밍 신호들을 나타낸 것.
도 12는 프로그래밍 성능을 설명하는 순서도.
도 13은 비휘발성 스토리지 프로그래밍 프로세스의 일 실시예를 나타낸 순서도.
도 14는 증분하는(incrementing) 사이클을 세는 프로세스의 일 실시예를 나타낸 순서도.
도 15는 프로그램 신호(Vpgm)용 초기값을 설정하는 프로세스의 일실시예를 도시한 순서도.
도 16은 비휘발성 스토리지 프로그래밍 프로세스의 일 실시예를 도시한 순서도.
도 17은 소프트 프로그래밍 프로세스를 수행하기 위한 프로세스의 일 실시예를 도시한 순서도.
도 18은 플래그에 데이터를 기입하기 위한 프로세스의 일 실시예를 도시한 순서도.
도 19는 비휘발성 스토리지의 프로그래밍 프로세스의 일 실시예를 도시한 순서도.
도 20은 데이터 판독 프로세스의 일 실시예를 도시한 순서도.
본 발명을 실시하는 데 적합한 비휘발성 메모리 시스템의 일 예는 NAND 플래시 메모리 구조를 사용하며, 두 선택 게이트 사이에 직렬로 배열된 다중 트랜지스터를 포함한다. 상기 직렬의 트랜지스터들과 선택 게이트들은 NAND 스트링으로 지칭된다. 도 2는 하나의 NAND 스트링을 도시한 평면도이다. 도 3은 그것의 등가 회로도이다. 도 2와 도 3에 도시된 상기 NAND 스트링은 네 개의 직렬 트랜지스터들(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는 워드라인 WL3에 연결되고, 제어 게이트 102CG는 워드라인 WL2에 연결되고, 제어 게이트 104CG는 워드라인 WL1에 연결되며, 제어 게이트 106CG는 워드라인 WL0에 연결된다. 일 실시예에서는, 트랜지스터들(100, 102, 104, 및 106)은 각각 메모리 셀들이다. 다른 실시예에 있어서, 메모리 셀들은 다수의 트랜지스터들을 포함할 수 있으며, 또는 도 2와 도3에 도시된 것과 다를 수 있다. 선택 게이트 120는 선택 라인 SGD에 연결된다. 선택 게이트 122는 선택 라인 SGS에 연결된다.
도 4는 상술한 NAND 스트링의 단면도를 나타낸다. 도 4에 도시된 바와 같이, 상기 NAND 스트링 트랜지스터는 p-우물 영역(140)에 형성된다. 각각의 트랜지스터들은 제어 게이트(100CG,102CG, 104CG 및 106CG)와 플로팅 게이트(100FG, 102FG, 104FG 및 106FG)로 구성된 스택 게이트 구조를 포함하여 이루어진다. 플로팅 게이트들은 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 스트링을 위해 공통 소스라인에 연결된다.
도 2 내지 4가 NAND 스트링에 있어서 4 개의 메모리 셀들을 보여주고 있으나, 4 개의 트랜지스터들을 사용하는 것은 단지 하나의 예로서 주어지고 있음을 주의하라. 본 명세서에서 설명된 기술에 사용된 NAND 스트링은 4개보다 적거나 또는 더 많은 메모리 셀들을 가질 수 있다. 예를 들어, 일부 NAND 스트링들은 8개, 16개, 32개, 64개 등의 메모리 셀들을 포함할 수 있다. 본 명세서에서의 설명은 NAND 스트링에 있어서 어떤 특정 갯수의 메모리 셀들에 한정되는 것은 아니다.
각각의 메모리 셀은 아날로그 또는 디지털의 형태로 표시된 데이터를 저장할 수 있다. 1 비트의 디지털 데이터를 저장할 때, 메모리 셀에서 가능한 임계전압의 범위는 두 영역으로 나누어지는데, 논리 데이터(logical data) "1"과 "0"으로 할당된다. NAND-타입 플래시 메모리의 일 실시예에 있어서, 메모리 셀이 소거된 후에는 상기 임계전압이 음(negative)이며, 논리 "1"로 정의된다. 프로그램이 동작한 후에는 상기 임계전압은 양(positive)이며, 논리 "0"으로 정의된다. 상기 임계전압이 음이 되고 상기 제어 게이트에 0V를 인가함으로서 판독이 시도되면, 상기 메모리 셀은 논리 1이 저장됨을 표시하도록 턴 온(turn on)될 것이다. 상기 임계전압이 양이 되고 상기 제어 게이트에 0V를 인가함으로써 판독 동작이 시도되면, 상기 메 모리 셀은 턴 온될 것이며, 논리 0이 저장됨을 표시한다.
메모리 셀은 또한 다중 상태(multiple states)를 저장할 수 있으며, 이에 따라 디지털 데이터의 다중 비트들을 저장한다. 데이터의 다중 상태를 저장하는 경우에는, 상기 임계전압 창(window)은 상태들의 갯수로 나누어진다. 예를 들어, 4개의 상태가 사용되는 경우, 상기 데이터 값 "11", "10", "01" 및 "00"에 할당된 4개의 임계전압 범위가 있게 될 것이다. NAND-타입 메모리의 일 예에서는, 소거 동작 이후의 임계전압은 음이며, "11"로 정의된다. 양의 임계전압들은 "10", "01" 및 "00"의 상태에 사용된다. 일부 실시예에서는, 데이터 값들(예를 들어 논리 상태들)이 그레이 코드 할당법(Gray code assignment)을 이용하여 임계 범위에 할당되는데, 플로팅 게이트의 임계전압이 그 이웃하는 물리적 상태로 일탈하여 시프트하면, 단지 하나의 비트만 영향을 받도록 하기 위함이다. 메모리 셀에 프로그램된 데이터와 상기 셀의 임계전압 범위들 사이의 특정한 관계는 그 메모리 셀을 위해 채용된 데이터 인코딩 설계(data encoding scheme)에 따라 달라진다. 예를 들어, 미국 특허 제 6,222,762호와 2003년 6월 13일 출원된 "Tracking Cells For A Memory System"라는 제목의 미국 특허 출원 제10/461,244호는 둘다 그 전체가 본 발명에 참조로서 편입되며, 다중-상태 플래시 메모리 셀들의 다양한 데이터 인코딩 설계에 대해 설명하고 있다.
NAND-타입 플래시 메모리들과 그것의 작동방법의 관련 예들은 하기한 미국 특허/특허 출원에서 제공되며, 이들 모두 전체가 본 발명에 참조로서 편입된다. 미국 특허 제5,570,315호; 미국 특허 제5,774,397호; 미국특허 제6,046,935호; 미국 특허 제5,386,422호; 미국 특허6,456,528호; 그리고, 미국 특허 출원 제09/893,277호(공개 번호 제US2003/0002348호). 또한 NAND 플래시 메모리에 더해 비휘발성 메모리의 다른 타입들도 본 발명에 이용될 수 있다.
플래시 EEPROM 시스템에 유용한 다른 타입의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위해 도전성 플로팅 게이트의 자리에 비-도전성 유전물질을 이용한다. 이러한 셀은 Chan et al.의 "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device,"(IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95)의 논문에 기술되어 있다. 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물(ONO)로 이루어진 3중 유전층은 도전성 제어 게이트와 메모리 셀 위 반도전성 기판 사이에 샌드위치된다. 상기 셀은 셀 채널로부터 질화물로 전자들을 주입함으로써 프로그램되는데, 전하들은 한정된 영역에서 포획되고 저장된다. 그 다음 이러한 저장된 전하는 감지할 수 있는 방법으로 셀 채널 일부분의 임계전압을 변화시킨다. 상기 셀은 상기 질화물로 핫 정공(hot hole)들을 주입함으로써 소거된다. 또한, Nozaki et al.의 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application,"(IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501)을 보면, 분리-게이트(split-gate) 구성에서의 유사 셀을 기술하고 있는데, 여기서 도핑된 폴리실리콘 게이트는 메모리 셀의 일부분 위로 연장되어 분리 선택 트랜지스터(separate select transistor)를 형성한다. 후술할 두 논문은 그 전체가 참조로서 본 명세서에 편입된다. William D. Brown와 Joe E. Brewer가 편집한 1998년의 IEEE Press의 "Nonvolatile Semiconductor Memory Technology"의 1.2섹션에 언급된 프로그래밍 기술들은 본 명세서에 참조로서 편입되며, 또한 유전체 전하-포획 소자들에 적용할 수 있는 섹션이라는 면에서도 기술되었다. 이 단락에서 기술된 메모리 셀들은 또한 본 발명에 사용될 수 있다. 이와 같이, 본 명세서에서 설명된 기술은 별개 메모리 셀들의 절연 영역들 사이를 연결하는 데에도 적용될 수 있다.
각각의 셀에 2개의 비트들을 저장하는 방법에 대한 또 다른 접근법에 대해서는 Eitan et al.의 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell,"(IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545)에 설명되어 있다. ONO 유전층은 소스와 드레인 확산부 사이의 채널에 걸쳐서 연장된다. 1개의 데이터 비트의 전하는 상기 드레인에 인접한 유전층에 편재되고, 다른 데이터 비트의 전하는 상기 소스에 인접한 유전층에 편재된다. 다중-상태 데이터 스토리지는 상기 유전체 내에 공간적으로 분리된 전하 스토리지의 바이너리 상태들을 분리하여 판독함으로써 얻어진다. 본 단락에 설명된 상기 메모리 셀들은 본 발명에 사용될 수 있다.
도 5는 본 발명의 실시에 사용될 수 있는 플래시 메모리 시스템의 일 실시예를 나타낸 블럭 다이어그램이다. 메모리 셀 어레이(202)는 컬럼(column) 제어 회로(204), 로우(row) 제어 회로(206), c-소스 제어 회로(210) 및 p-우물 제어 회로(208)에 의해 제어된다. 컬럼 제어 회로(204)는 메모리 셀에 저장된 데이터를 판독하는 동안 메모리 셀 어레이(202)의 비트라인에 연결되는데, 프로그램이 동작하는 동안 메모리 셀들의 상태를 확인하고 프로그래밍을 진행시키거나 프로그래밍을 막도록 상기 비트라인들의 포텐셜 레벨들을 제어하기 위함이다. 로우 제어 회로(206)는 판독 전압들을 인가하고, 프로그램 전압들을 인가하고, 그리고 소거 전압을 인가하기 위하여, 상기 워드라인 중 하나를 선택하여 그 워드라인에 연결된다. 이를테면, EPROM과 플래시 메모리 회로들에 사용된 프로그램 전압 레벨은 메모리 회로들에 일반적으로 사용되는 전압들보다 높다. 상기 프로그램 전압 레벨은 회로에 공급된 전압보다 종종 높다. 이러한 높은 전압들은 로우 제어 회로(206)(또는 다른 곳)에서 전하 펌프에 의해 생성되는데, 일례에서 이 전하 펌프는 절연적으로 전하를 용량성 워드라인 내로 덤핑(dump)하여 이를 더 높은 전압으로 충전시키게 된다. 상기 전하 펌프는 입력 전압을 일련의 전압 배수기 스테이지(voltage multiplier stage)들에서 점진적으로 부스팅(boosting)함으로써 전압 Vin에서 입력 신호를 받고 더 높은 전압 Vout의 출력신호를 제공한다. 출력 전압은 부하(load)-예를 들어 EPROM 메모리 회로의 워드라인-에 공급된다. 일부 실시예에는, 상기 부하로부터 전하 펌프로의 피드백 신호가 있다. 기존 발명의 펌프는 부하가 선결정(pre-determine)된 전압에 도달하였음을 표시하는 신호에 응답하여 턴 오프(turn off)된다. 선택적으로, 일단 부하가 결정된 전압에 도달하면 과충전을 막기 위해 분로(分路, shunt)가 이용된다. 그러나, 이 경우는 전력이 더 소비되며 낮은 전력의 제품들에게는 좋지 않다. 전하 펌프들에 대한 추가 정보는 미국 특허 제6,734,718호에서 볼 수 있으며, 그 전체가 본 발명에 참조로서 편입된다. c-소스 제어 회로(210)는 메모리 셀에 연결된 공통 소스 라인(도 6에 "C-소스"로 표시)을 제어한다. p-우물 제어 회로(208)는 p-우물 전압을 제어한다. 메모리 셀들에 저장 된 데이터는 컬럼 제어 회로(204)에 의해 판독되고, 데이터 입력/출력 버퍼(212)를 통해 외부 I/O 라인들로 출력된다. 상기 메모리 셀에 저장될 프로그램 데이터는 외부 I/O 라인들을 통해 데이터 입력/출력 버퍼(212)로 입력되고, 컬럼 제어 회로(204)로 전송된다. 상기 외부 I/O 라인들은 제어부(218)에 연결된다.
플래시 메모리 소자를 제어하는 명령 데이터(command data)는 제어부(218)에 입력된다. 상기 명령 데이터는 어떤 동작이 요청되었는지 플래시 메모리에 통지한다. 입력 명령은 상태 머신(216)에 전송되는데, 컬럼 제어 회로(204), 로우 제어 회로(206), c-소스 제어(210), p-우물 제어 회로(208) 및 데이터 입력/출력 버퍼(212)를 제어한다. 상태 머신(216)은 또한 READY/BUSY 또는 PASS/FAIL과 같이 플래시 메모리의 상태 데이터를 출력할 수 있다. 일부 실시예에서, 상태 머신(216)은 프로그래밍 프로세스 관리를 담당하고 있으며, 하기한 순서도에 도시된 프로세스를 포함한다.
제어부(218)는 퍼스널 컴퓨터, 디지털 카메라, 개인용 휴대 단말기 등과 같은 호스트 시스템에 연결되거나 연결할 수 있다. 제어부(218)는 호스트로부터 명령을 수신하고, 호스트로부터 데이터를 수신하고, 호스트로 데이터를 제공하며, 호스트로 상태 정보를 제공하기 위해 호스트와 통신한다. 제어부(218)는 호스트로부터의 명령들을 명령 회로들(214)에 의해 번역될 수 있고 실행될 수 있는 명령 신호로 변환하는데, 이는 상태 머신(216)과 통신하는 동안 일어난다. 제어부(218)는 대체로 메모리 어레이에 기입되거나 메모리 어레이로부터 판독될 사용자 데이터를 위한 버퍼 메모리를 포함한다. 일부 실시예에서 상기 프로그래밍 프로세스는 제어부에 의해 운영된다.
메모리 시스템의 일 실시예는 제어부(218)을 포함한 한 개의 집적 회로와, 하나 이상의 집적회로 칩들을 포함하여 이루어지는데, 상기 하나 이상의 집적회로 칩들은 각각 메모리 어레이와 관련 제어, 입력/출력 및 상태 머신 회로들을 포함한다. 요즘 추세는 하나 이상의 집적 회로 칩들 상에 메모리 어레이들과 시스템 제어부 회로들을 함께 집적하는 것이다. 메모리 시스템은 호스트 시스템의 일부로서 임베드될 수 있으며, 상기 호스트 시스템들에 탈착가능하게 삽입된 메모리 카드(또는 다른 패키지)에 포함될 수 있다. 이러한 탈착식 카드는 (예를 들어 제어부를 포함한) 전체의 메모리 시스템 또는 메모리 어레이(들)만, 그리고 이와 관련한 주변 회로들(호스트에 임베드된 제어부와 함께)을 포함하여 이루어질 수 있다. 따라서, 상기 제어부(또는 제어 가능한 부품)는 호스트에 임베드되거나 탈착가능한 메모리 시스템 내에 포함될 수 있다.
일부 실시예에 있어서 도 5의 일부 구성요소들은 조합될 수 있다. 다양한 디자인에 따라, 한 개 이상의 도 5의 구성요소는, 메모리 셀 어레이(202) 이외에, 관리 회로로서 고려될 수 있다.예를 들어, 하나 이상의 관리 회로는 명령 회로, 상태 머신, 로우 제어 회로, 컬럼 제어 회로, 우물 제어 회로, 소스 제어 회로 또는 데이터 I/O 회로 중 어느 하나 또는 조합을 포함할 수 있다.
도 6을 참조하면, 메모리 셀 어레이(202) 구조의 일 예가 도시되어 있다. 일 예에 있어서는, NAND 플래시 EEPROM은 1,024 블럭으로 파티션되어 도시돼 있다. 각 블럭에 저장된 데이터는 동시에 소거된다. 일 실시예에서, 상기 블럭은 동시에 소 거되는 셀들의 최소 유닛에 해당한다. 본 예에 있어서 각 블럭에는 홀수 컬럼들과 짝수 컬럼들로 분할된 8,512개의 컬럼들이 있다. 비트라인 또한 짝수 비트라인들(BLe)과 홀수 비트라인들(BLo)로 분할되어 있다. 도 6은 직렬로 연결되어 NAND 스트링을 형성하는 4개의 메모리 셀들을 보여준다. 4개의 셀들이 각각의 NAND 스트링에 포함되어 있는 것처럼 보이지만, 4개의 메모리 셀들보다 더 많거나 더 적게 사용될 수 있다. NAND 스트링의 일단(terminal)은 선택 트랜지스터(SGD)를 통해 대응하는 비트라인에 연결되고, 타단은 제2선택 트랜지스터(SGS)를 통해 c-소스에 연결된다.
일 실시예에서 판독과 프로그래밍 동작들이 일어나는 동안, 4,256개의 메모리 셀들은 동시에 선택된다. 상기 선택된 메모리 셀들은 동일한 워드라인과 동일 종류의 비트라인을 갖는다(예를 들면, 짝수 비트라인들 또는 홀수 비트라인들). 따라서, 532 바이트의 데이터는 동시에 판독되거나 프로그램될 수 있다. 동시에 판독되거나 프로그램된 이러한 532바이트의 데이터는 논리 페이지를 형성한다. 따라서, 하나의 블럭은 적어도 8개의 논리 페이지들을 저장할 수 있다(4개의 워드라인들, 각각의 홀수 및 짝수 페이지들). 각각의 메모리 셀들이 2개의 비트의 데이터를 저장할 때(즉, 다중 상태 메모리 셀들일 때), 이러한 각각의 2개의 비트는 다른 페이지에 저장되며, 하나의 블럭은 16개의 논리 페이지들을 저장한다. 본 발명에는 다른 사이즈의 블럭들과 페이지들이 사용될 수도 있다. 또한, 도 5와 도6의 아키텍쳐와 다른 아키텍쳐가 본 발명을 실시하기 위해 사용될 수도 있다. 예를 들어, 일 실시예에서는 비트라인들이 홀수와 짝수 비트라인들로 분할되지 않는데 모든 비트라 인들이 동시에 프로그램되고 판독되게(또는 동시에 되지 않게) 하기 위해서이다.
메모리 셀들은 p-우물을 소거 전압(예를 들어 20V)까지 올리고 선택된 블럭의 워드라인들을 접지시킴으로써 소거된다. 상기 소스와 비트라인들은 플로팅된다. 소거는 전체 메모리, 분리된 블럭들, 또는 셀의 다른 유닛에서 수행될 수 있다. 전자들은 플로팅 게이트에서 p-우물로 전송되며, (일 실시예에서) 임계전압은 음이 된다.
판독과 검증 동작들에서, 선택 게이트들(SGD와 SGS)과 선택되지 않은 워드라인들(예를 들어, WL0, WL2 및 WL3)은 상기 트랜지스터들이 패스 게이트들로 동작하도록 하기 위해서 판독 패스 전압(read pass voltage)(예를 들어 4.5V)으로 올려진다. 선택된 워드라인(예를 들어 WL1)은 어떤 하나의 전압에 연결되는데, 이 전압의 레벨은 관련된 메모리 셀이 이러한 레벨보다 높은지 낮은지 결정하도록 각각 판독과 검증 동작을 위해 특정된다. 예를 들어, 2 레벨의 메모리 셀의 판독 동작에서, 선택된 워드라인(WL1)이 접지될 수 있는데, 이에 따라 임계전압이 0V보다 높은지 높지 않은지 감지된다. 2 레벨의 메모리 셀의 검증 동작에서, 선택된 워드라인(WL1)은 0.8V에 연결되고, 예를 들면, 이에 따라 임계전압이 적어도 0.8V에 도달하였는지 그렇지 않은지가 검증된다. 상기 소스와 p-우물은 0V이다. 선택된 비트라인들(BLe)은 어떤 하나의 레벨까지, 예를 들어 0.7V까지 선충전(pre-charge)된다. 만약 임계전압이 워드라인 상의 판독 또는 검증 레벨보다 높다면, 관심있는 셀과 관련된 비트라인(BLe)의 포텐셜 레벨은 비-도전성의 메모리 셀 때문에 높은 레벨로 유지된다. 그와는 반대로, 만약 임계전압이 판독 또는 검증 레벨보다 낮다면, 관련 비트라인(BLe)의 포텐셜 레벨은 어떤 하나의 낮은 레벨까지, 예를 들면 0.5V까지, 감소하는데, 도전성 메모리 셀이 비트라인을 방전시키기 때문이다. 메모리 셀의 상태는 따라서 비트라인에 연결된 전압 비교 감지 증폭기(voltage comparator sense amplifier)에 의해 감지된다.
상술된 소거, 판독, 검증 동작들은 공지의 기술에 따라 수행된다. 따라서, 설명된 많은 상세한 설명들은 당업자에 의해 다양하게 변경될 수 있다. 당업계에 공지된 다른 소거, 판독 및 검증 기술들 또한 사용될 수 있다.
상술한 바와 같이, 각 블럭들은 페이지들의 수로 분할될 수 있다. 일 실시예에 있어서, 1페이지는 프로그래밍의 1유닛에 해당한다. 일부 실시예들에서는 개별적인 페이지들이 세그먼트(segment)들로 분할될 수 있고, 상기 세그먼트들은 기본 프로그래밍 동작으로서 한번에 기입될 수 있는 최소 갯수의 셀들을 포함할 수 있다. 데이터의 하나 이상의 페이지들은 대체적으로 메모리 셀의 한 로우에 저장된다. 하나의 페이지는 하나 이상의 섹터를 저장한다. 하나의 섹터는 사용자 데이터와 오버헤드 데이터(overhead data)를 포함한다. 오버헤드 데이터는 일반적으로 상기 섹터의 사용자 데이터로부터 계산된 ECC(Error Correction Code)를 포함한다.제어부 일부분은 데이터가 어레이로 프로그래밍될 때 ECC를 산정한다. 선택적으로, 상기 ECC들 및/또는 다른 오버헤드 데이터는, 그것들이 속하는 유저 데이터 보다는, 다른 페이지들 또는 짝수의 다른 블럭들에 저장된다. 다른 실시예들에서, 메모리 소자(예를 들어 상태 머신)의 다른 부분들이 상기 ECC를 산정할 수 있다.
유저 데이터의 섹터는 일반적으로 512바이트(byte)이다. 오버헤드 데이터는 일반적으로 추가적인 16-20 바이트이다. 블럭은 많은 페이지들로 형성되는데, 8페이지로부터 어떤 값, 예를 들어, 32, 64, 또는 그 이상의 페이지들에 해당한다.
도 7은 각각의 메모리 셀이 2비트의 데이터를 저장할 때, 메모리 셀 어레이의 임계전압 분포들을 도시한 것이다. 도 7은 소거된 메모리 셀들에 대한 제1임계전압 분포 E를 보여준다. 프로그래밍된 메모리 셀들에 대한 3개의 임계전압 분포들 또한 도시되어 있다. 일 실시예에 있어서, 상기 분포 E에서의 임계전압들은 음의 값이며, A, B 및 C 분포에서의 임계전압들은 양의 값이다.
도 7의 각각 별개의 임계전압 범위는 데이터 비트들 세트에 대한 선결정된 값에 해당한다. 메모리 셀에 프로그램된 데이터와 셀의 임계전압 레벨 사이의 특정 관계는 그 셀에 채용된 데이터 인코딩 설계에 따라 달라진다. 예를 들면 "11"은 임계전압 범위 E(E 상태), "10"은 임계전압 범위 A(A 상태), "00"은 임계전압 범위 B(B 상태) 및 "01"은 임계전압 범위 C(C 상태)에 할당한다. 그러나, 다른 실시예들에서는 다른 설계들이 이용된다.
도 7은 또한 메모리 셀들로부터의 판독 데이터에 대한 3개의 판독 레퍼런스 전압들(Vra, Vrb 및 Vrc)을 보여준다. 주어진 메모리 셀의 임계전압이 Vra, Vrb 및 Vrc보다 높은 값인지 낮은 값인지 테스트함으로써, 상기 시스템이 메모리 셀이 어떤 상태에 있는지를 결정할 수 있다. 도 7은 또한 3개의 검증 전압들(Vva, Vvb 및 Vvc)을 보여주고 있다. 메모리 셀들을 A 상태로 프로그래밍할 때, 시스템은 상기 메모리 셀들이 Vva 보다 큰 값을 갖는지 또는 같은 값을 갖는지를 테스트할 것이다. 메모리 셀들을 B 상태로 프로그래밍할 때는 시스템이 상기 메모리 셀들이 Vvb 보다 큰 값을 갖는지 또는 같은 값을 갖는지를 테스트할 것이다. 메모리 셀들을 C 상태로 프로그래밍할 때, 시스템은 메모리 셀들은 Vvc보다 그들의 임계전압이 큰지 또는 같은지를 결정할 것이다.
일 실시예에서, 풀 시퀀스(full sequence) 프로그래밍으로 알려진 바와 같이, 메모리 셀은 소거 상태(E)에서 프로그램된 상태들 A, B, 또는 C 중 어느 것으로 곧바로 프로그램될 수 있다. 예를 들어, 프로그램될 메모리 셀들의 총수가 먼저 소거될 수 있으며 이러한 수의 모든 메모리 셀들이 소거 상태(E)에 있게 된다. 일부 메모리 셀들이 E 상태로부터 A 상태로 프로그래밍될 때, 다른 메모리 셀들은 E 상태로부터 B 상태 및/또는 E 상태로부터 C 상태로 프로그래밍될 수 있다.
도 8은 2개의 다른 페이지-하위 페이지와 상위 페이지-에 대한 데이터를 저장하는 다중-상태 메모리 셀을 프로그래밍하는 투-패스(two-pass) 기술의 예를 도시한 것이다. 도면에는 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"의 상위 페이지 비트를 지닌다. 만약 상위 페이지 비트가 논리 "0"이 되면, 임계전압은 시프트된다. 만약 제1패스에 따라 상기 셀이 소거된 E 상태에 남도록 되면, 제2국면에서 상기 셀이 프로그램되는데, 화살표(234)로 도시된 것처럼, 임계전압이 C 상태로 증가된다. 만약 상기 셀이 제1프로그래밍 패스의 결과로 A 상태로 프로그래밍되면, 상기 메모리 셀은 제2패스에서 더 프로그래밍되어, 화살표(232)로 도시된 것처럼 임계전압이 B 상태로 증가한다. 제2패스는 하위 페이지에 대해서는 데이터를 변화시키지 않으면서 상위 페이지에 대해서는 셀을 논리 "0"을 저장하도록 지정된 상태로 프로그래밍한다.
일 실시예에서, 전체 페이지를 채울 수 있는 충분한 데이터가 기입되면 시스템이 풀 시퀀스 기입을 수행하기 위해 셋업(set up)될 수 있다. 만약 전체 페이지에 충분한 데이터가 기입되지 않으면, 프로그래밍 프로세스는 수신된 데이터로 하위 페이지를 프로그래밍할 수 있다. 이어지는 그 다음 데이터를 받을 때, 상기 시스템은 상위 페이지를 프로그램할 것이다. 또한 다른 실시예에서는, 상기 시스템은 하위 페이지를 프로그래밍하는 모드에서 기입을 시작할 수 있으며, 만약 모든(또는 거의 모든) 워드라인의 메모리 셀들을 채울 수 있도록 충분한 데이터를 그 다음 받을 수 있다면, 풀 시퀀스 프로그래밍 모드로 전환할 수 있다. 이러한 실시예에 대한 더 자세한 설명은 Sergy Anatolievich Gorobets 와 Yan Li의 2004년 12월 14일 출원된 제11/013,125호 미국 특허 출원 "Pipelined Programming of Non- Volatile Memories Using Early Data,"에 개시되어 있으며, 그 전체가 참조로서 본 발명에 편입된다.
도 9A-C는 이전 페이지에서 인접한 메모리 셀에 기입한 다음에 특정 페이지에 관해 그 특정 메모리 셀에 기입함으로써, 어떤 특정 메모리 셀에 대해서, 플로팅 게이트 대 플로팅 게이트의 커플링(floating gate to floating gate coupling)을 감소시키는 비휘발성 메모리를 프로그래밍하는 또 다른 프로세스를 보여준다. 도 9A-C에 나와 있는 프로세스의 실시예 중 일 예에서, 비휘발성 메모리 셀들은 메모리 셀마다 2개의 데이터 비트를 저장하며, 4개의 데이터 상태를 이용한다. 예를 들어, E 상태는 소거된 상태이고, A, B 및 C 상태는 프로그램된 상태라고 가정해 보자. E 상태는 데이터 11을 저장한다. A 상태는 데이터 01을 저장한다. B 상태는 데이터 10을 저장한다. C 상태는 데이터 00을 저장한다. 이것은 비-그레이 코딩(non-Gray coding)의 일 예인데, 두 비트 모두 인접한 상태 A와 B 사이에서 변하기 때문이다. 물리적인 데이터 상태들로 데이터를 다르게 인코딩하는 것도 물론 가능하다. 모든 메모리 셀은 2개의 데이터 페이지를 저장한다. 참고로, 이러한 데이터 페이지들은 상위 페이지와 하위 페이지로 불려질 수 있으나, 다른 이름으로 불릴 수도 있다. 도 9의 프로세스의 A 상태를 참조하면, 상위 페이지는 비트 0을 저 장하고, 하위 페이지는 비트 1을 저장한다. B 상태에 관련하여, 상위 페이지는 비트 1을 저장하고 하위 페이지는 비트 0을 저장한다. C 상태에 관해서는 두 페이지 모두 비트 에이터 0을 저장한다. 도 9의 프로그래밍 프로세스는 2단계 프로세스이다. 제1단계에서는 하위 페이지가 프로그래밍된다. 만약 하위 페이지가 데이터 1로 남겨지면, 메모리 셀의 상태는 E 상태로 남는다. 만약 데이터가 0으로 프로그램되면, 메모리 셀의 임계전압이 올라가고 메모리 셀은 B' 상태로 프로그램된다. 도 9A는 메모리 셀들을 E 상태에서 B' 상태로 프로그래밍하는 것을 보여준다. 도 9A에 도시된 B' 상태는 B 상태의 잠정적인 상태이며, 따라서, 검증 포인트는 Vvb'로 도시되어 있으며, Vvb보다 낮은 값이다.
일 실시예에서, 메모리 셀이 E 상태에서 B 상태로 프로그래밍된 후, 인접하는 워드라인 상의 그 이웃 셀은 그의 하위 페이지에 관하여 프로그래밍될 것이다. 이웃 메모리 셀이 프로그램된 후, 플로팅 게이트 대 플로팅 게이트의 커플링 효과는 고려된 메모리 셀의 뚜렷한 임계전압을 증가시킬 것이며 B' 상태에 있게 된다. 이것은 도 9B의 임계전압 분포(250)에 도시된 바와 같이 B' 상태의 임계전압 분포를 넓히는 데 영향을 줄 것이다. 이렇게 임계전압 분포의 뚜렷한 확장은 상위 페이지를 프로그래밍할 때 제거될 것이다.
도 9C는 상위 페이지를 프로그래밍하는 프로세스를 도시한다. 만약 메모리 셀이 소거된 E 상태에 있고 상위 페이지가 1로 남아있다면, 상기 메모리 셀은 E 상태로 남을 것이다. 만약 메모리 셀이 E 상태에 있고, 그의 상위 페이지 데이터가 0으로 프로그래밍된다면, 상기 메모리 셀의 임계전압은 올라갈 것이고, 상기 메모리 셀은 A 상태가 된다. 만약 상기 메모리 셀이 중간 임계전압 분포(250)에 있었고 상위 페이지 데이터가 1로 남아 있다면, 상기 메모리 셀은 최종 B 상태로 프로그래밍 될 것이다. 만약 메모리 셀이 중간 임계전압 분포(250)에 있고, 상위 페이지 데이터가 0이 된다면, 메모리 셀의 임계전압은 올라갈 것이고 상기 메모리 셀은 C 상태에 있게 된다. 도 9A-C에 도시된 프로세스는 플로팅 게이트 대 플로팅 게이트 커플링 효과를 감소시키는데, 이는 이웃 메모리 셀들의 상위 페이지 프로그래밍만이 주어진 메모리 셀의 또렷한(apparent) 임계전압에 영향을 주기 때문이다. 다른 상태(alternative state)로의 코딩의 예는 상위 페이지 데이터가 1일 때 250 분포로부터 C 상태로 이동하는 것이며, 상위 페이지 데이터가 0일 때 B 상태로 이동하는 것이다. 비록 도 9A-C는 4개의 데이터 상태들과 2개의 데이터 페이지들에 관한 예를 제공하지만은, 도 19A-C에 의해 알 수 있는 개념들은 4개보다 많거나 적은 상태들 및 2개와 다른 페이지들을 가지는 다른 실시예에도 적용될 수 있다. 다양한 프로그래밍 설계들 및 플로팅 게이트 대 플로팅 게이트의 커플링에 대한 더 상세한 내용은 2005년 4월 5일 출원된 미국 특허 출원 제 11/099,133호 "Compensating For Coupling During Read Operations Of Non-Volatile Memory" 에서 확인할 수 있다.
도 10은 비휘발성 메모리를 프로그래밍하는 동안의 성능을 예로서 나타낸 표이다. 데이터는 플레시 소자들(미사용된 것)과 이미 10,000번의 프로그래밍 사이클(cycle)을 수행한 소자들을 위해 제공된다. 일 실시예에서는 프로그래밍 사이클은 프로그래밍과 소거 동작(또는 소거한 후 프로그래밍)을 포함한다. 다른 실시예들에서는, 상기 프로그래밍 사이클은 소거 없이 프로그래밍하는 것을 포함할 수 있 다. 표 10은 도 8과 관련하여 전술된 방법에 따라 하위 페이지들과 상위 페이지들로 데이터를 프로그램하기 위해 얼마나 많은 프로그래밍 펄스들(Vpgm)이 사용되는지를 보여준다. 또한 도 7에 관하여 전술한 발명에 따른 포일 시퀀스 프로그래밍(foil sequence programming)을 수행하기 위한 데이터도 있다. 두 경우 모두 초기 펄스의 크기는 16.0V이며 단계 크기(step size)는 0.3V이다. 도 10에 도시한 바와 같이, 플레시 소자를 프로그래밍하는 평균 시간은 800㎲이었고, 기사용된 소자에 프로그래밍하는 평균 시간은 650㎲이다. 플레시 소자들은 사용된 소자들보다 약 3개 이상의 프로그래밍 펄스들을 요구하였다. 또한, 플레시 소자들은 소프트 프로그래밍 프로세스(후술함) 동안에 프로그램 펄스들을 더 많이 필요로 하였다.
오버프로그래밍될 위험이 비합리적으로 높아지는 것 없이 프로그래밍 프로세스의 속도를 높이기 위해서는 플레시 소자를 프로그래밍할 때 한 세트의 프로그래밍 변수들을 사용하고, 어떤 일정량의 사용량에 의해 종속되는 소자(device that has been subject to a certain amount of use)를 프로그래밍할 때는 또 다른 세트의 프로그래밍 변수들을 사용하는 것이 바람직하다.
일 실시예에서는, 플레시 소자들과 기사용소자들은 프로그래밍 신호(Vpgm)의 초기 프로그래밍 펄스 크기를 변화시킴으로써 다른 프로그래밍 변수들을 이용하여 프로그래밍될 수 있다(예를 들어 도 1을 보라). 도 11은 시간에 따라 초기 프로그래밍 펄스의 크기를 변화시킴으로써 비휘발성 메모리를 프로그래밍하는 프로세스의 일 실시예를 나타낸 순서도이다. 단계 300에서는 초기 프로그래밍 전압이 설정된다. 즉, 상기 소자는 프로그래밍 신호(Vpgm)에 대한 첫번째 펄스의 크기를 정한다. 도 11A에 도시된 일 실시예에서, 제어 게이트들에 인가된 프로그램 전압의 첫번째 펄스의 크기는 16.9V이다. 각각 이어지는 펄스는 이전 펄스에 비해 0.3V씩 증가하는 크기를 갖는다. 302 단계에서, 상기 소자는 N번의 사이클 동안 동작되고, 여기서 숫자 N은 미리 결정되거나, 작동 중에 결정된다. 단계 304에서, N번의 사이클 이후, Vpgm에 대한 초기 프로그래밍 펄스의 크기는 감소한다. 도 11B에 도시된 일 실시예에서는, 제어 게이트들에 인가된 프로그램 전압(Vpgm)의 첫번째 펄스의 크기는 16.6V이다. 각각의 이어지는 펄스는 이전의 펄스와 비교하여 0.3V의 증가된 크기를 갖는다. 단계 306에서, 소자는 M번의 사이클(M은 N과 같거나 다를 수 있음) 동안 동작하며, 여기서 숫자 M의 크기는 미리 결정되거나 동작중에 결정된다. 단계 308에서, N + M번의 사이클 동안 동작하고 난 후, 초기 프로그래밍 전압은 새로운 값으로 감소한다. 도 11C에 도시된 일 예에서, 제어 게이트들에 인가된 프로그램 전압(Vpgm)의 첫번째 펄스의 크기는 16.3V으로 감소하였다. 각각의 이어지는 펄스는 이전 펄스에 비해 0.3V만큼 증가된 크기를 갖는다. 단계 310에서, 상기 소자는 추가 P 사이클 동안 동작되며, 상기 P의 크기는 미리 알려져 있거나 동작 중에 결정된다. 단계 312에서, 프로그램 전압(Vpgm)의 초기 펄스의 크기는 감소한다. 도 11D에 도시된 일 예에서, 제어 게이트에 인가된 프로그램 전압(Vpgm)의 첫번째 펄스의 크기는 16.0V이다. 각각의 이어지는 펄스는 이전 펄스에 비해 0.3V만큼 증가된 크기를 갖는다. 단계 314에서, 상기 소자는 새로운 초기 펄스로 동작된다. 초기 프로그래밍 펄스의 크기가 감소하는 프로세스는 많은 단계들이 요구될수록 계속될 수 있다.
도 12는 도 11의 프로세스에 따른 성능을 측정한 예를 표로 제공한 것이다. 일 실시예에서 초기 프로그래밍 펄스는 단계 300에서 16.9의 크기로 설정될 수 있다. 1k번의 프로그래밍 사이클 후(단계 302), 초기 펄스의 크기는 16.6V로 감소할 것이다(단계 304). 약 3,000 사이클의 동작 후, 초기 펄스의 크기는 16.3V로 낮아질 것이며, 프로그래밍 전압은 그 다음 각 펄스당 0.3V씩 증가할 것이다. 10,000 사이클 동안의 동작 후, 초기 프로그램 펄스는 크기가 16.0V로 설정될 수 있다. 이러한 설계에서는, 하위 페이지를 프로그래밍하기 위한 펄스들의 갯수는 10이 될 수 있으며, 상위 페이지를 프로그래밍하기 위해서는 15일 수 있으며, 풀 시퀀스 프로그래밍을 위해서는 19일 수 있다. 프로그래밍 프로세스 동안의 성능은 소자의 가동기간 동안에 걸쳐서 일정하다. 신규 부분의 프로그래밍 성능은 오버-프로그래밍의 증가 없이 증가된다.
도 13-20은 도 11에 관한 내용을 실시한 다양한 실시예에 대한 추가 상세 도면을 제공한다. 프로그래밍 사이클을 세는 것에 더하여, 도 12에서 상술한 바와 같이, 다른 실시예들은 소프트 프로그래밍을 수행하기 위해 필요한 소프트 프로그램 펄스들의 갯수를 세는 것을 포함한다. 소프트 프로그래밍 펄스들이 임계값에 도달할 때, 초기 프로그래밍 펄스의 크기는 변할 것이다. 다른 실시예에서는 시스템은 프로그래밍 특정 사이클 동안 프로그래밍의 반복(iteration)(또는 펄스들)의 수를 셀 수 있다. 반복(또는 펄스들)의 횟수가 임계값을 넘어서면, 초기 프로그래밍 펄스의 크기는 변할 것이다. 또 다른 실시예에서, 상기 시스템은 판독 프로세스 동안 사용된 에러 보정(error correction)의 양에 기초하여 초기 크기를 변화시키도록 결정할 수 있다. 프로그래밍 특성을 조절하기 위한 이러한 설계 중 어느 것이든지 전체로서 전 소자(예를 들어 전체 메모리 어레이) 상에, 블럭 기초에 의한 블럭 상에, 또는 메모리의 또 다른 서브세트(subset) 상에 적용될 수 있다. 상기 프로세스는 제어부, 상태 머신, 상기 둘의 조합, 또는 다른 구조에 의해 수행될 수 있다.
도 13은 프로그래밍 메모리 셀들을 더욱 상세하게 나타낸 순서도로, 시스템은 프로그램 사이클들의 횟수를 세고, 이에 따른 초기 프로그래밍 펄스의 크기를 조절한다. 도 13의 프로세스는 데이터를 프로그램 프로그래밍 하도록 요청을 수신하는 것에 응답하여 수행될 수 있다. 단계 402에서, 상기 시스템은 프로그램할 메모리의 적절한 부분들을 선택할 수 있다. 이는 기입할 블럭 및/또는 페이지 및/또는 섹터를 선택하는 것을 포함한다. 단계 404에서, 사이클 횟수가 증분(increment)된다. 사이클 횟수는 프로그래밍 사이클들의 횟수의 개수이다. 상기 사이클 횟수는 플래시 메모리 어레이, 상태 머신, 제어부 또는 다른 장소에 저장될 수 있다. 일 실시예에서, 상기 사이클 횟수는 상태 머신과 관련한 레지스터에 저장된다. 단계 406에서, 메모리의 선택된 부분이 프로그램되고, 플래시 메모리의 짝수 웨어링(wearing)을 제공한다. 선택된 섹터 또는 페이지의 모든 메모리 셀들은 같은 임계전압 범위로 프로그래밍된다. 단계 406은 선택적인 단계이다. 다음으로, 단계 408에서 프로그래밍될 모든 메모리 셀이 소거된다. 예를 들어, 단계 408은 구 메모리 셀들을 E 상태로 이동시키는 것을 포함할 수 있다(도 7-9를 보라). 단계 410에서, 상기 시스템은 소프트 프로그래밍 프로세스를 수행한다. 소거 프로세스 동안에 일부 메모리 셀들은 E 분포 이하의 값보다 낮춰진 그들의 임계전압들을 가질 수 있 다(도 7-9를 보라). 소프트 프로그래밍 프로세스는 도 1과 유사한 프로그램 전압 펄스들을 인가할 수 있는데, 그들의 임계전압은 임계전압 분포 E 내에 있도록 증가할 수 있다. 단계 412에서, 상기 시스템은 초기 프로그램 펄스의 크기를 표시하는 플래그(flag)에 엑세스할 수 있다. 예를 들어, 도 12의 표를 이용하면, 만약 일부가 1,000 사이클로 실행되면, 초기 펄스에 대한 프로그램 펄스의 크기는 16.6V가 될 것이다. 이러한 초기 값은 전하 펌프를 적절하게 프로그래밍함으로써 단계 412에서 설정할 수 있다. 단계 414에서, 상기 프로그램 횟수(PC)는 초기에 0(zero)으로 설정될 것이다. 단계 416에서, 프로그램 펄스는 적절한 워드라인(들)에 인가된다. 단계 418에서, 워드라인(들)상의 메모리 셀들이 목적하는 임계전압 레벨에 도달하였으면 워드라인(들)상의 메모리 셀들을 확인할 수 있도록 검증된다. 만약 모든 메모리 셀들이 목적하는 임계전압 레벨(단계 420)에 도달하였으면, 다음으로 프로그래밍 프로세스가 단계 422에서 성공적으로 완결(상태=패스)된다. 만약, 모든 메모리 셀들이 검증된 것이 아니라면, 단계 424에서 프로그램 횟수(PC)가 20보다 작은지 여부를 결정한다. 만약, 프로그램 횟수가 20보다 적지 않으면, 프로그래밍 프로세스는 실패하게 된다(단계 426). 만약 프로그램 횟수가 20보다 적으면, 단계 428에서 프로그램 전압 신호 Vpgm의 크기는 다음 펄스에 대해 계단 크기(예를 들어 0.3V)만큼씩 증가되며, 프로그램 횟수(PC)는 증가된다. 그들의 목적 임계전압에 도달한 이러한 메모리 셀들은 현재 수행되고 있는 프로그래밍 사이클의 나머지에 대해 프로그래밍이 이루어지지 않는다. 단계 428 이후, 도 13의 프로세스가 단계 416에서 이어지고, 다음 프로그램 펄스가 인가된다.
도 14는 사이클 횟수를 증가시키는 것과 플래그를 적용하는 프로세스를 나타낸 순서도로, 도 13의 단계 404의 일부로서 수행된다. 단계 460에서, 사이클 횟수(CO로 표시)는 증가된다. 사이클 횟수는 이러한 특정 소자, 블럭 등에 수행된 프로그램 사이클들의 개수를 나타낸다. 단계 462에서, 사이클 횟수가 제1임계값보다 작은지 여부가 결정된다. 제1임계값의 일 예는 1,000이다. 만약 사이클 횟수가 제1임계값보다 작다면, 단계 464에서 플래그의 변화는 없다. 플래그는 초기 프로그램 펄스에 대해 사용할 크기의 표시를 저장하는 하나 이상의 비트 세트일 수 있다.일 실시예에서, 플래그는 플래시 메모리 어레이에 저장될 수 있다. 다른 실시예에서, 플래그는 상태 머신 또는 콘트롤러와 관련된 레지스터에 저장될 수 있다. 시작 펄스에 대해 4개의 포텐셜 크기들을 포함하는 일 실시예에 있어서, 플래그는 4개의 값을 저장할 수 있어야 할 필요가 있을 수 있으며, 따라서, 플래그는 2비트가 필요할 수 있다. 디자인의 편리성을 위해서는, 플래그는 1바이트를 갖는 것이 바람직하다. 만약 단계 462에서 사이클 횟수가 제1임계값보다 작지 않다는 것이 결정되었다면, 단계 466에서 어디에서 사이클 횟수값이 제2임계값보다 작은가가 결정된다. 제2임계값의 일 예는 3,000 사이클이다. 만약 사이클 횟수가 제2임계값보다 작다면, 플래그는 초기 프로그램 펄스 크기가 소량씩 시프트 되는 플레시 소자와 관련된 크기가 됨을 나타내는 표시로 오버라이트(overwrite)된다. 예를 들어, 소자가 제1임계값을 넘으면, 초기 Vpgm(예를 들어 16.9V)는 단계 468에서 16.6V로 소량 시프트되어 감소한다. 만약 단계 466에서 사이클 횟수(CO)가 제2임계값보다 작지 않다고 결정되면, 단계 470에서 사이클 횟수가 제3임계값보다 작은지 여부가 결정된다. 만 약 사이클 횟수가 제3임계값보다 작으면, 사이클 횟수는 제2와 제3임계값의 사이에 있고 시스템은 플레시 소자에 관한 초기 프로그램 펄스 크기로부터의 중간 시프트를 확인하는 표시에 의해 플래그가 오버라이트될 것이다. 예를 들어, 초기 프로그램 전압은 두 계단(예를 들어, 0.6V) 만큼 하향 시프트될 수 있다. 만약, 사이클 횟수가 제3임계값보다 작다면, 플레시 소자의 초기 프로그램 전압은 대량으로 하향 시프트될 것이며, 3계단(예를 들어 0.9V)로 이루어질 수 있다.
따라서, 단계 474에서 플래그는 초기 프로그램 펄스에 대한 크기가 도 12의 예에서 16.0V여야 함을 표시한다. 일부 실시예에서는, 그 값이 변하지 않으면 플래그가 오버라이트될 필요는 없다. 도 14에 기입된 플래그는 도 13의 단계 412에서 확인된 플래그이다.
도 15는 프로그래밍 신호(Vpgm)에 대한 초기 펄스의 크기를 설정하는 프로세스를 나타낸 순서도이다. 단계 500에서, 도 14의 프로세스에 의해 기입된 플래그가 판독된다. 만약 플래그가 큰 시프트값(단계 502)을 표시하면, 프로그래밍 신호(Vpgm)에 대한 초기 펄스의 크기는 큰 시프트값보다 작은 초기 크기로 설정된다. 도 12의 예를 보면, 플레시 소자에 관한 초기 프로그래밍 전압(Vpgm0)는 16.9V이고, 큰 시프트값은 0.9V이다; 따라서, 단계 504는 초기 펄스의 크기가 16.0V로 시프트한다. 만약 플래그가 큰 시프트값(단계 502)를 표시하지 않으면, 시스템은 플래그가 중간 시프트값(단계 506)을 표시하는지 여부를 결정한다. 만약 그렇다면, 제1펄스의 크기는 중간 시프트값(예를 들어 0.6V)보다 작은 Vpgm0(예를 들어 16.9V)로 설정된다. 도 12의 일 예에서는, 단계 508은 초기 펄스의 크기를 16.3V로 설정할 수 있다. 만약 플래그가 중간 시프트값을 표시하지 않으면, 플래그가 작은 시프트값(단계 510)을 나타내는지 여부를 결정한다. 만약 플래그가 작은 시프트값을 표시하면, 제1펄스의 크기는 작은 시프트값(예를 들어 0.3V)보다 작은 Vpgm0로 설정된다. 만약 플래그가 작은 시프트값을 표시하지 않으면 제1펄스의 크기는 Vpgm0(예를 들어 16.9)로 유지된다.
도 16은 소프트 프로그래밍 프로세스 동안 성능을 기초로 초기 프로그래밍 펄스에 대한 크기를 결정하는 프로그래밍 프로세스 실시예를 도시한 순서도이다. 도 16의 단계 532, 534, 536은 각각 도 13의 2402, 406, 408과 유사하다. 도 16의 단계 540은 도 13의 단계 412와 유사하다. 도 16의 단계 542, 544, 546, 548, 550, 552, 554, 556는 도 13의 단계 414, 416, 418, 420, 422, 424, 426, 428와 유사하다.
도 17은 소프트 프로그래밍의 프로세스와 적절하게 적용된 플래그를 나타낸 순서도로, 도 16의 단계 538에서 수행된 것과 같다. 도 17의 프로세스는 도 1의 신호와 유사하며 증가된 크기를 가진 펄스들의 세트를 이용한다. 이런것들은 소프트 프로그래밍 프로세스 동안 이용되기 때문에, 상기 신호들은 Vspgm으로 지칭되며, 상기 펄스들은 소프트 프로그래밍 펄스들로 지칭된다. 도 17의 단계 560에서, 초기 펄스는 그 크기를 설정하였다.일 실시예에서, 소프트 프로그래밍 동안의 초기 펄스의 크기는 약 14V이다. 또한 다른 값들도 사용될 수 있다. 추가로 루프 횟수(LC)는 0으로 설정된다. 단계 562에서, 소프트 프로그램 펄스는 선택된 메모리 셀들의 워드라인(들)에 인가된다. 단계 564에서, 메모리 셀들이 분포 E(도 7-9를 보라) 내에 서 그들의 임계전압을 가지는지에 대해 확인하기 위해 검증 프로세스가 수행된다. 만약 모든 메모리 셀들이 분포 E에 그들의 임계전압을 가지는 것으로 검증되면, 소프트 프로그램 전압 신호(Vspgm)는 그 다음 펄스로 증분되고, 루프 횟수(LC)는 1만큼 증가된다. 단계 568 이후에는 상기 프로세스는 562로 되돌아간다. 단계 562, 564, 566, 568의 루프는 모든 메모리 셀들이 검증되거나 에러가 일어났다고 시스템이 결정하여 상기 프로세스가 멈출 때까지 계속될 수 있다. 예를 들어 상기 시스템은 반복 횟수를 20회를 넘지 않도록 제한할 수 있다. 반복 횟수가 20회를 넘으면, 시스템은 임계전압이 아직 임계 분포 E 아래에 있는 메모리 셀들이 손상된 것으로 결론내리고, 이들을 일상적인 사용 동작으로부터 제거하게 될 것이다.
일단 모든 메모리 셀들이 검증을 수행하면(단계 566), 상기 프로세스는 단계 570에서 지속될 것이며, 상기 시스템은 루프 횟수(LC)가 15보다 작은지 여부를 결정할 것이다. 그렇지 않으면, 다음으로 플래그가 Vpgm0로부터 시프트가 없어야 한다는 표시로 기입될 것이다. 이것은 플레시 소자에 해당하는 것이다. 만약 루프 횟수가 15보다 작다면, 단계 574에서 루프 횟수가 13보다 작은지 여부가 결정된다. 만약 루프 횟수가 13보다 작지 않으면(예를 들어 LC=13 또는 14), 상기 플래그는 Vpgm0로부터 작은 시프트값을 표시하도록 기입될 것이다. 만약 루프 횟수(LC)가 13보다 작으면, 단계 578에서 루프 횟수가 11보다 작은지 테스트된다. 만약 루프 횟수가 11보다 작지 않으면, 시스템은 Vpgm으로부터의 중간 시프트값이 단계 580에서 사용되어야 함을 나타내도록 플래그에 기입할 것이다. 만약 루프 횟수가 11보다 작다면, 초기 프로그래밍 펄스의 크기에 대해 Vpgm0로부터의 큰 시프트값이 사용되어 야 함을 표시하도록 플래그에 표시가 저장된다.
도 18은 플래그 비트들에 기입하는 프로세스의 일 실시예를 나타낸 순서도이다. 이 실시예는 플래그가 초기 프로그래밍 펄스의 크기를 증가시키는 것을 금지한다. 이는 일단 중간 시프트값이 사용되면, 플래그가 작은 시프트값이 사용되는 것을 허용하지 않을 수도 있음을 나타낸다. 이러한 방법에서 프로그램 신호의 초기 크기는 동일한 값으로 유지되거나 감소할 것이지만 절대로 증가하지는 않는다. 다른 실시예들에서는 다른 거동이 이용될 수 있다. 도 18의 단계 600에서, 플래그는 Vpgm으로부터의 특정한 시프트 값을 표시하도록 기입될 필요가 있음이 확인된다. 일 실시예에서, 단계 600은 도 14 또는 도 17의 프로세스들을 수행하는 것을 포함한다. 단계 602에서는, 플래그가 이미 그 값 또는 그보다 큰 값으로 시프트 되었는지 표시하는지가 확인될 수 있다. 만약 그렇다면, 상기 플래그는 단계 604에서 기입되지 않는다. 만약 그렇지 않다면, 상기 플래그는 Vpgm0로부터의 새로운 시프트를 표시하도록 기입될 수 있다.
도 19는 장래의 프로그래밍 사이클에서 초기 프로그래밍 펄스의 크기를 어떻게 설정할 것인지 정하기 위해 프로그램 사이클에서의 반복 횟수를 세는 비휘발성 메모리 프로그래밍에 대한 프로세스의 일 실시예를 나타낸 순서도이다. 도 19의 단계 650, 652, 654, 656, 658, 660, 662, 664, 666, 668, 670, 672는 각각 도 13의 단계 402, 406, 408, 410, 412, 414, 416, 418, 420, 424, 426, 428와 같다. 하나의 다른 점은 단계 664에서의 검증 이후, 만약 모든 메모리 셀들이 단계 680에서 검증(단계 666)되면, 프로그램 횟수(PC)가 9보다 작은지가 결정된다. 단계 662, 664, 666, 668, 672는 모든 메모리 셀들의 프로그램 또는 프로그램 횟수가 20회에 도달할 때까지 계속하여 반복되는 루프를 형성한다. 그러한 루프의 반복 횟수가 9보다 작으면, 단계 684에서 플래그는 증분된다. 만약 반복 횟수가 9보다 작지 않으면 프로그래밍 프로세스는 플래그의 변화없이 완결된다. 단계 684에서 플래그가 증분될 때마다, 시스템은 (예를 들어 하위) 프로그래밍 신호의 초기 펄스의 크기를 변화시킬 것이다. 플래그는 단계 658에서 확인되며, 다음에는 도 19의 프로세스가 수행된다. 따라서, 예를 들어, 초기 프로그래밍 전압 펄스의 크기가 16.9V이면, 시스템은 메모리를 프로그램하는 데 필요한 반복 횟수가 9 이하가 될 때까지 초기 펄스가 16.9V의 크기를 가지는 곳의 프로그램 전압 신호를 계속하여 이용할 것이다. 일단 반복 횟수가 9보다 작게 되면, 플래그가 증분될 것이다. 그 다음 프로그래밍 프로세스가 수행되고, 단계 658에서 시스템이 플래그가 증분되었다는 것을 관찰할 수 있으며, 초기 프로그램 펄스의 크기가 16.9에서 16.6으로 변할 것이다. 이것은 반복 횟수를 다시 증가하게 할 것이다. 결국, 도 19의 프로세스의 반복 횟수는 9보다 작게 될 것이며 여기서 플래그는 증분될 것이고 초기 펄스는 16.3으로 낮아진 크기를 갖게 되는 등의 경우에 해당한다. 도 19에서 단계 680에서의 값 9는 다른 값으로 변할 수 있다.
도 20은 선행하는 판독 동작 동안에 감지된 에러의 양에 기초하여 초기 프로그래밍 펄스의 크기를 낮출지 여부를 결정하는 그러한 프로세스의 일 실시예를 나타낸 순서도이다. 도 20의 프로세스는 판독 데이터의 요청에 응답하여 수행된다. 단계 700에서 정상적인 판독 동작이 데이터 페이지에 대하여 수행된다. 이러한 수 행은 공지된 다양한 기술들에 의해 수행될 수 있다. 단계 702에서 판독 데이터와 함께 저장된 에러 보정 코드들이 에러들이 있었는지 여부를 확인하기 위하여 체크된다. 만약 에러가 있으면, 단계 706에서 에러가 보정할 수 있는지 결정된다. 만약 에러가 보정할 수 없다면, 단계 708에서 에러가 보고된다. 만약 에러가 보정할 수 있다면, 에러는 단계 710에서 보정되고, 데이터는 단계 712에서 보고된다. 단계 714에서 시스템은 에러 보정의 양이 임계값을 넘는지 결정한다. 임계값의 일 실시예는 섹터당 2비트 이상이 에러를 갖는가이다. 물론 다른 값의 임계값이 사용될 수 있다. 만약 에러가 임계값을 넘으면 단계 718에서 플래그가 증분된다. 만약 에러가 임계값을 넘지 않으면 플래그는 증분되지 않을 것이다. 소자가 플레시한 것이면 플래그는 0이다. 플래그가 증분된 후, 그 다음 프로그래밍 프로세스가 수행되며 시스템은 초기 프로그래밍 펄스의 크기로 변할 것이다. 예를 들어, 도 13의 프로세스는 프로그래밍에 (단계 404 없이) 사용될 수 있다. 단계 412를 수행하는 동안 플래그는 엑세스될 것이며, 만약 엑세스되었던 마지막 번 이래로 증분이 있었다면, 제1프로그램 펄스의 크기는 이전에 사용되었던 크기보다 한 단계 아래의 값을 가질 것이다.
프로그래밍 변수들을 변화시키기 위한 많은 수의 예들이 초기 프로그래밍 펄스의 크기를 낮추는 것에 해당됨에도 불구하고, 다른 변수들이 사용될 수 있다. 또한, 초기 펄스의 크기를 낮추거나 그렇지 않으면 프로그래밍 변수를 변화시킬 때를 결정하기 위해 다른 태스크(task)가 사용될 수도 있다.
또 다른 실시예에 있어서, 제어 게이트/워드라인들에 인가된 프로그램 신호 는 증가하는 크기를 가지는 펄스들의 세트와 다른 파상(waveform)일 수 있다.
전술한 본 발명에 대한 상세한 설명은 예시 및 설명을 위한 목적으로 제공된 것이다. 이것은 본 발명을 배타적으로 혹은 본 발명을 개시된 형태로 한정하고자 의도된 것은 아니다. 상기 개시 내용을 감안하여 다양한 변경이나 변형이 가능하다. 상기 설명된 실시예들은 본 발명의 원리 및 그것의 실제 적용을 가장 잘 설명할 수 있도록 선택된 것으로서, 이에 의해 당업자이면 고려될 수 있는 특정 사용 목적에 적합한 다양한 실시예 및 다양한 변경으로 본 발명을 가장 잘 이용할 수 있게 될 것이다. 본 발명의 범위는 여기 첨부된 특허 청구 범위에 의해 정의되어야만 하는 것으로 의도되었다.

Claims (48)

  1. 제1세트의 하나 이상의 프로그래밍 변수들을 이용하여 제1기간 동안 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계; 및
    제2세트의 하나 이상의 프로그래밍 변수들들을 이용하여 제2기간 동안 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계를 포함하는 비휘발성 스토리지 동작 방법.
  2. 제1항에 있어서,
    상기 제1기간은 제1시간 주기이고,
    상기 제2기간은 상기 제1시간 주기에 이어지는 제2시간 주기인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  3. 제1항에 있어서,
    상기 제1시간 주기는 여러 번 사용된 것이 아닌 소자에 관련되며,
    상기 제2시간 주기는 임계사용량 후의 상기 소자에 관련된 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  4. 제1초기 값을 가진 증가하는 프로그램 신호를 이용하여 제1기간 동안 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계; 및
    제2초기 값을 가진 증가하는 프로그램 신호를 이용하여 제2기간 동안 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계를 포함하며,
    상기 제2기간은 제1기간에 이어지며, 상기 제2초기 값은 상기 제1초기 값과 서로 다른 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  5. 제4항에 있어서,
    상기 제1초기값은 제1전압이며;
    상기 제2초기값은 상기 제1전압보다 낮은 제2전압이고;
    상기 프로그램 신호는 크기가 증가하는 직류전압 펄스들인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  6. 제4항에 있어서,
    제3초기값을 가지는 증가하는 프로그램 신호를 이용하여 제3기간 동안 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계를 더 포함하며, 상기 제3기간은 상기 제2기간에 이어지며, 상기 제3초기값은 상기 제2초기값과 서로 다른 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  7. 제4항에 있어서,
    상기 제1기간은 프로그래밍 사이클들의 갯수에 해당되는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  8. 제4항에 있어서,
    상기 비휘발성 스토리지 소자들의 세트는 비휘발성 스토리지 소자들의 블럭인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  9. 제4항에 있어서,
    상기 비휘발성 스토리지 소자들의 세트는 비휘발성 스토리지 소자들의 전체 어레이인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  10. 제4항에 있어서,
    상기 비휘발성 스토리지 소자들이 선결정된 프로그래밍 사이클들의 횟수에 종속되는지 테스트하는 단계;
    상기 비휘발성 스토리지 소자들의 세트가 선결정된 프로그래밍 사이클들의 횟수에 종속(be subjected)되는지의 표시를 저장하는 단계;
    데이터를 프로그램하기 위한 요청을 수신하는 단계;
    상기 요청에 응답하여 상기 표시를 판독하는 단계;
    만약 상기 표시가 상기 비휘발성 스토리지 소자들의 세트가 상기 선결정된 프로그래밍 사이클들 횟수에 종속되지 않는다고 표시하면 상기 제1초기 값을 가지는 증가하는 프로그램 신호를 이용하여 상기 제1기간 동안 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 것을 수행하는 단계; 및
    만약 상기 표시가 상기 비휘발성 스토리지 소자들의 세트가 상기 선결정된 프로그래밍 사이클들의 횟수에 종속된다고 표시하면 상기 제2 첫번째 초기값을 가지는 증가하는 프로그래밍 신호를 이용하여 상기 제2기간 동안 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 것을 수행하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  11. 제4항에 있어서,
    데이터를 프로그램하기 위한 요청을 수신하는 단계;
    상기 요청에 응답한 상기 비휘발성 소자들 세트를 소거하는 단계;
    상기 소거에 이어서 상기 비휘발성 소자들의 세트를 소프트 프로그래밍하는 단계; 및
    사용된 소프트 프로그래밍의 양(amount)에 기초하여 표시기(indicator)를 설정하는 단계를 더 포함하여 이루어지며,
    상기 제1기간 동안 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계는 상기 표시기가 소프트 프로그래밍의 제1크기를 표시하면 상기 제1초기 값을 가지는 증가하는 프로그램 신호를 이용하여 수행되고, 상기 제2기간 동안 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계는 상기 표시가 제1소프트 프로그래밍 크기를 표시하면 제2 첫번째 초기 값을 가지는 증가하는 프로그램 신호를 이용하여 수행되는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  12. 제4항에 있어서,
    상기 비휘발성 스토리지 소자들을 제1기간 동안 프로그래밍하는 단계는,
    적어도 하나의 상기 비휘발성 스토리지 소자들의 서브세트에 상기 프로그래밍이 끝날 때까지 프로그램 펄스들을 인가하는 단계; 및
    상기 프로그램 펄스들이 임계값에 도달하였는지 결정하는 단계를 포함하며,상기 프로그램 펄스들이 상기 임계값에 도달하면 상기 제1기간이 끝나고 상기 제2기간이 시작하는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  13. 제12항에 있어서,
    상기 임계값은 프로그램 펄스들의 선결정된 숫자인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  14. 제4항에 있어서,
    상기 비휘발성 스토리지 소자들의 세트로부터 데이터를 판독하는 단계;
    상기 데이터에 에러가 있는지 결정하는 단계; 및
    상기 에러가 임계값 레벨을 만족시키는지 결정하는 단계를 더 포함하며,
    만약 상기 에러가 상기 임계값을 만족시키면 상기 제1기간이 끝나며, 상기 제2기간이 시작하는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  15. 제14항에 있어서,
    2개 이상의 비트에 에러가 있으면 상기 에러가 상기 임계값을 만족시키는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  16. 제4항에 있어서,
    상기 비휘발성 스토리지 소자들은 플래시 메모리 소자들인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  17. 데이터를 프로그램하기 위한 요청을 수신하는 단계;
    상기 비휘발성 스토리지 소자들의 세트-상기 비휘발성 스토리지 소자들의 세트는 프로그램 신호를 이용하여 프로그램되며, 상기 프로그램 신호는 시작값을 가진다-에 대한 사용 표시를 판독하는 단계;
    사용 표시가 제1사용 임계값 크기를 표시하면 상기 시작값을 변화시키는 단계; 및
    상기 프로그래밍 신호를 이용하여 상기 초기 값으로 상기 비휘발성 스토리지 소자들의 세트를 프로그래밍하는 단계를 포함하는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  18. 제17항에 있어서,
    상기 프로그램 신호는 크기가 증가하는 펄스들의 세트를 포함하며,
    상기 초기 값은 제1펄스의 크기에 해당하는 것을 특징으로 하는 비휘발성 스 토리지 동작 방법.
  19. 제17항에 있어서,
    상기 비휘발성 스토리지 소자들의 세트는 플래시 메모리 소자들인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  20. 제17항에 있어서,
    상기 표시는 상기 비휘발성 스토리지 소자들의 세트에 저장되는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  21. 제17항에 있어서,
    상기 표시는 상기 비휘발성 스토리지 소자들의 세트에 대한 제어부에 저장되는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  22. 제17항에 있어서,
    상기 표시는 상기 비휘발성 스토리지 소자들의 세트에 대한 상태 머신에 저장되며, 상기 사용 표시는 프로그래밍 동작들의 횟수에 대응하는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  23. 제17항에 있어서,
    상기 비휘발성 스토리지 소자들의 세트를 소거하는 단계;
    상기 비휘발성 스토리지 소자들의 세트의 적어도 하나의 서브세트를 소프트 프로그래밍하는 단계; 및
    상기 수행된 소프트 프로그래밍의 양에 기초하여 상기 표시를 설정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  24. 제23항에 있어서,
    상기 표시는 하나 이상의 비트로 표시된 플래그이며,
    상기 표시가 상기 플래그를 변화시키도록 설정하는 단계는 선결정된 반복 횟수 이상을 요구하는 소프트 프로그래밍 단계인 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  25. 제17항에 있어서,
    프로그래밍 단계가 선결정된 반복 횟수를 필요로하는지에 기초하여 상기 표시를 설정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  26. 제17항에 있어서,
    데이터를 판독하기 위한 요청을 수신하는 단계;
    상기 데이터에 에러가 있는지 결정하는 단계; 및
    상기 에러가 임계값 레벨을 만족시키는지에 기초하여 상기 표시를 설정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 스토리지 작동 방법.
  27. 제17항에 있어서,
    상기 시작 값을 변화시키는 단계는 상기 시작값을 낮추는 것으로 구성된 것을 특징으로 하는 비휘발성 스토리지 동작 방법.
  28. 비휘발성 스토리지 소자들;
    상기 비휘발성 스토리지 소자들과 통신하는 하나 이상의 관리 회로를 포함하여 이루어지며, 상기 하나 이상의 관리 회로들은 상기 비휘발성 스토리지 소자들에 대한 사용 표시가 제1사용을 표시하면 데이터를 프로그램하기 위한 요청을 수신하고, 상기 하나 이상의 관리 회로들은 상기 요청에 응답하여 제1시작값을 가지는 프로그래밍 신호를 이용하여 상기 비휘발성 스토리지 소자들을 프로그램하며, 상기 사용 표시가 제2사용을 표시하면 제2시작값을 가지는 프로그래밍 신호를 이용하여 상기 비휘발성 스토리지 소자들을 프로그래밍하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  29. 제28항에 있어서,
    상기 하나 이상의 관리 회로는 상기 요청에 응답하여 사용표시를 판독하며, 상기 하나 이상의 관리 회로는 상기 비휘발성 스토리지 시스템의 선정의(pre- define)된 동작에 응답하여 사용 표시를 업데이트하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  30. 제29항에 있어서,
    상기 사용 표시는 프로그래밍 사이클들에 대응하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  31. 제28항에 있어서,
    상기 하나 이상의 관리 회로는 상기 비휘발성 스토리지 소자들을 소거하고 상기 소거에 이어서 상기 비휘발성 스토리지 소자들을 소프트 프로그램하며,
    상기 하나 이상의 관리 회로는 상기 소프트 프로그래밍이 임계 횟수의 반복이 필요한 경우 제1사용을 표시하는 것으로부터 상기 제2사용을 표시하는 것으로 표시를 변화시키는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  32. 제28항에 있어서,
    상기 하나 이상의 관리 회로는 상기 특정 프로그래밍 사이클이 임계 횟수의 반복이 필요한 경우 상기 제1사용을 표시하는 것으로부터 상기 제2사용을 표시하는 것으로 변화시키는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  33. 제28항에 있어서,
    상기 하나 이상의 관리 회로는 상기 비휘발성 스토리지 소자들로부터 데이터를 판독하고 상기 데이터에 에러가 있는지 결정하며,
    상기 하나 이상의 관리 회로는 상기 데이터가 선결정된 양의 에러 이상을 포함할 경우에 상기 제1사용을 표시하는 것으로부터 상기 제2사용을 표시하는 사용 표시로 변화시키는 것을 것을 특징으로 하는 비휘발성 스토리지 시스템.
  34. 제28항에 있어서,
    상기 하나 이상의 관리 회로는 상기 사용 표시가 제2사용을 표시하면 제2시작값을 가지는 프로그래밍 신호를 이용하여 상기 비휘발성 스토리지 소자들을 프로그램하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  35. 제28항에 있어서,
    상기 하나 이상의 비휘발성 스토리지 소자들은 비휘발성 스토리지 소자들의 블럭인 것을 특징으로 하는 비휘발성 스토리지 시스템.
  36. 제28항에 있어서,
    상기 하나 이상의 비휘발성 스토리지 소자들은 다중 블럭을 포함하는 플래시 메모리 소자들의 어레이인 것을 특징으로 하는 비휘발성 스토리지 시스템.
  37. 제28항에 있어서,
    하나 이상의 비휘발성 소자들은 플래시 메모리 소자들인 것을 특징으로 하는 비휘발성 스토리지 시스템.
  38. 제28항에 있어서,
    상기 하나 이상의 관리 회로는 하나 이상의 상태 머신, 디코더, 감지 회로 및 제어부를 포함하며,
    상기 비휘발성 스토리지 소자들은 플래시 메모리 소자들 어레이의 일부분이고, 상기 플래시 메모리 소자들의 어레이는 워드라인들과 비트라인들을 포함하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  39. 비휘발성 스토리시 소자들과;
    상기 비휘발성 스토리지 소자들과 통신하는 하나 이상의 관리 회로를 포함하여 구성되며,
    상기 하나 이상의 관리 회로는 제1시작 프로그래밍 신호 값을 이용하여 제1세트의 프로그래밍 사이클들 동안 상기 비휘발성 스토리시 소자들을 프로그램하고, 상기 하나 이상의 관리 회로는 제2시작 프로그래밍 신호값을 이용하여 제2세트의 프로그래밍 사이클들 동안에 상기 비휘발성 스토리지 소자들의 세트를 프로그램하며, 상기 제1시작 프로그래밍 신호값은 상기 제2시작 프로그래밍 신호값과 서로 다르고, 상기 제2세트의 프로그래밍 사이클들은 상기 제1세트의 프로그래밍 사이클들에 이어지는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  40. 제39항에 있어서,
    상기 제1시작 프로그래밍 전압은 직류 펄스의 제1펄스들의 크기에 대응하며증가하는 크기를 가지는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  41. 제39항에 있어서,
    하나 이상의 관리 회로들은 상기 제1세트의 프로그래밍 사이클들이 완결되었는지 결정하고 수행될 프로그래밍 사이클들의 선결정된 횟수에 응답하여 제2세트의 프로그래밍 사이클들을 시작할지 결정하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  42. 제39항에 있어서,
    상기 하나 이상의 관리 회로는 상기 제1세트의 프로그래밍 사이클들이 완결되었는지 결정하고 특정 프로그래밍 사이클의 임계 횟수의 반복에 응답하여 상기 제2세트의 프로그래밍 사이클을 시작하는 것을 결정하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  43. 제39항에 있어서,
    상기 하나 이상의 관리 회로는 상기 비휘발성 스토리지 회로들을 소거하고,
    상기 하나 이상의 관리 회로는 상기 비휘발성 스토리지 소자들의 소거 이후 상기 비휘발성 스토리지 소자 상에 소프트 프로그래밍을 수행하며,
    상기 하나 이상의 관리 회로는 상기 제1세트의 프로그래밍 사이클들이 완결되었는지를 결정하고, 상기 소프트 프로그래밍의 임계 횟수의 반복에 응답하여 제2세트의 프로그래밍 사이클들을 시작하는 것을 결정하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  44. 제39항에 있어서,
    상기 하나 이상의 관리 회로는 상기 비휘발성 스토리지 소자들로부터 데이터를 판독하고,
    상기 하나 이상의 관리 회로는 상기 데이터의 에러를 발견하며,
    상기 하나 이상의 관리 회로는 상기 제1세트의 프로그래밍 사이클들이 완결되었는지를 결정하고 상기 데이터 에러들의 임계값 크기에 응답하여 제2세트의 프로그래밍 사이클들을 시작하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  45. 제39항에 있어서,
    상기 비휘발성 스토리지 소자들은 플래시 메모리를 포함하는 것을 특징으로 하는 비휘발성 스토리지 시스템.
  46. 플래시 메모리 소자들과;
    상기 플래시 메로리 소자들과 소통하는 하나 이상의 관리 회로를 포함하여 구성되며,
    상기 하나 이상의 관리 회로는 시간에 따라 제1전압으로부터 전압이 증가하는 프로그래밍 신호를 이용하여 상기 플래시 소자들을 프로그램하고, 상기 하나 이상의 관리 회로는 이어서 시간에 따라 제2전압으로부터 전압이 증가하는 프로그래밍 신호를 이용하여 상기 플래시 메모리 소자들을 프로그램하며, 상기 제2전압은 상기 제1전압보다 낮은 것을 특징으로 하는 플래시 메모리 시스템.
  47. 제46항에 있어서,
    상기 하나 이상의 관리 회로는 상기 플래시 메모리 시스템에 대한 선-정의된 사용 조건이 감지된 이후 시간에 따라 제2전압으로부터 전압이 증가하는 프로그래밍 신호를 이용하면서 개시하는 것을 특징으로 하는 플래시 메모리 시스템.
  48. 제47항에 있어서,
    상기 선정의된 사용 조건은 다음 중 어느 한 가지로 감지되는 것을 특징으로 하는 플래시 메모리 시스템:
    프로그래밍 사이클을 세는 것, 프로그래밍 사이클의 반복횟수를 세는 것, 소프트 프로그래밍 사이클의 반복횟수를 세는 것, 에러를 세는 것.
KR1020077028257A 2005-06-03 2006-05-26 비휘발성 메모리 사이클에 따른 시작 프로그램 전압 시프트 KR100945057B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/144,264 US7339834B2 (en) 2005-06-03 2005-06-03 Starting program voltage shift with cycling of non-volatile memory
US11/144,264 2005-06-03

Publications (2)

Publication Number Publication Date
KR20080016598A true KR20080016598A (ko) 2008-02-21
KR100945057B1 KR100945057B1 (ko) 2010-03-05

Family

ID=37493940

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077028257A KR100945057B1 (ko) 2005-06-03 2006-05-26 비휘발성 메모리 사이클에 따른 시작 프로그램 전압 시프트

Country Status (7)

Country Link
US (4) US7339834B2 (ko)
EP (1) EP1886319B1 (ko)
JP (1) JP4931915B2 (ko)
KR (1) KR100945057B1 (ko)
CN (2) CN102385924B (ko)
TW (1) TWI313868B (ko)
WO (1) WO2006132818A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7929350B2 (en) 2008-09-16 2011-04-19 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof, and memory system including the same

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7957189B2 (en) * 2004-07-26 2011-06-07 Sandisk Il Ltd. Drift compensation in a flash memory
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7581154B2 (en) * 2005-06-30 2009-08-25 Intel Corporation Method and apparatus to lower operating voltages for memory arrays using error correcting codes
US8223553B2 (en) * 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7408810B2 (en) * 2006-02-22 2008-08-05 Micron Technology, Inc. Minimizing effects of program disturb in a memory device
US7561469B2 (en) * 2006-03-28 2009-07-14 Micron Technology, Inc. Programming method to reduce word line to word line breakdown for NAND flash
US7440321B2 (en) * 2006-04-12 2008-10-21 Micron Technology, Inc. Multiple select gate architecture with select gates of different lengths
US7495966B2 (en) * 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment
US7486561B2 (en) * 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7471565B2 (en) 2006-08-22 2008-12-30 Micron Technology, Inc. Reducing effects of program disturb in a memory device
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US7716538B2 (en) * 2006-09-27 2010-05-11 Sandisk Corporation Memory with cell population distribution assisted read margining
US7570520B2 (en) * 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7539052B2 (en) * 2006-12-28 2009-05-26 Micron Technology, Inc. Non-volatile multilevel memory cell programming
CN102005244B (zh) * 2007-02-20 2015-10-21 桑迪士克科技公司 非易失性存储的可变编程
US7564715B2 (en) * 2007-02-20 2009-07-21 Sandisk Corporation Variable initial program voltage magnitude for non-volatile storage
US7589652B2 (en) * 2007-04-12 2009-09-15 Microchip Technology Incorporated Read and write interface communications protocol for digital-to-analog signal converter with non-volatile memory
US7630249B2 (en) * 2007-06-21 2009-12-08 Sandisk Corporation Intelligent control of program pulse duration
US7580290B2 (en) * 2007-06-21 2009-08-25 Sandisk Corporation Non-volatile storage system with intelligent control of program pulse duration
US7978520B2 (en) 2007-09-27 2011-07-12 Sandisk Corporation Compensation of non-volatile memory chip non-idealities by program pulse adjustment
KR101403429B1 (ko) * 2007-10-09 2014-06-03 삼성전자주식회사 멀티 비트 프로그래밍 장치 및 방법
US8117375B2 (en) 2007-10-17 2012-02-14 Micron Technology, Inc. Memory device program window adjustment
US7924618B2 (en) * 2007-12-27 2011-04-12 Hynix Semiconductor Inc. Method of programming non-volatile memory device
JP5150245B2 (ja) * 2007-12-27 2013-02-20 株式会社東芝 半導体記憶装置
US7733705B2 (en) 2008-03-13 2010-06-08 Micron Technology, Inc. Reduction of punch-through disturb during programming of a memory device
KR100953045B1 (ko) 2008-05-23 2010-04-14 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
KR101464255B1 (ko) * 2008-06-23 2014-11-25 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함한 시스템
KR100965071B1 (ko) * 2008-07-10 2010-06-21 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
US8854887B2 (en) 2008-07-10 2014-10-07 Hynix Semiconductor Inc. Nonvolatile memory device and method of programming the same
US8254177B2 (en) 2008-10-24 2012-08-28 Sandisk Technologies Inc. Programming non-volatile memory with variable initial programming pulse
US7839690B2 (en) * 2008-12-11 2010-11-23 Sandisk Corporation Adaptive erase and soft programming for memory
US8645792B2 (en) * 2008-12-16 2014-02-04 Micron Technology, Inc. Memory with guard value dependent error correction
KR100996108B1 (ko) * 2009-01-21 2010-11-22 주식회사 하이닉스반도체 불휘발성 메모리 장치의 프로그램 방법
WO2010110938A2 (en) 2009-03-24 2010-09-30 Rambus Inc. Pulse control for nonvolatile memory
US8026544B2 (en) * 2009-03-30 2011-09-27 Sandisk Technologies Inc. Fabricating and operating a memory array having a multi-level cell region and a single-level cell region
KR20110018753A (ko) * 2009-08-18 2011-02-24 삼성전자주식회사 불휘발성 메모리 장치, 그것의 프로그램 방법, 그리고 그것을 포함하는 메모리 시스템
US8400854B2 (en) * 2009-09-11 2013-03-19 Sandisk Technologies Inc. Identifying at-risk data in non-volatile storage
US8199579B2 (en) 2009-09-16 2012-06-12 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US8248855B2 (en) * 2010-03-10 2012-08-21 Infinite Memories Ltd. Method of handling reference cells in NVM arrays
KR101138101B1 (ko) * 2010-05-27 2012-04-24 에스케이하이닉스 주식회사 불휘발성 메모리 소자의 프로그램 방법
JP2011258260A (ja) * 2010-06-07 2011-12-22 Toshiba Corp 不揮発性半導体記憶装置
JP5566797B2 (ja) * 2010-07-02 2014-08-06 株式会社東芝 不揮発性半導体記憶装置
JP2012027969A (ja) * 2010-07-21 2012-02-09 Toshiba Corp 不揮発性半導体記憶装置
US8451662B2 (en) 2011-03-03 2013-05-28 Micron Technology, Inc. Reading memory cell history during program operation for adaptive programming
US8456911B2 (en) 2011-06-07 2013-06-04 Sandisk Technologies Inc. Intelligent shifting of read pass voltages for non-volatile storage
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
US8842477B2 (en) * 2012-06-01 2014-09-23 Spansion Llc Method, apparatus, and manufacture for flash memory adaptive algorithm
CN103631529A (zh) * 2012-08-21 2014-03-12 群联电子股份有限公司 数据写入方法、存储器控制器与存储器存储装置
JP5667143B2 (ja) * 2012-10-11 2015-02-12 ウィンボンド エレクトロニクス コーポレーション 不揮発性半導体メモリ
US8971128B2 (en) 2013-01-31 2015-03-03 Sandisk Technologies Inc. Adaptive initial program voltage for non-volatile memory
ES2731560T3 (es) 2013-03-01 2019-11-15 Tobii Ab Interacción de mirada con deformación retardada
US9864498B2 (en) 2013-03-13 2018-01-09 Tobii Ab Automatic scrolling based on gaze detection
TWI501245B (zh) * 2013-05-06 2015-09-21 Phison Electronics Corp 資料讀取方法、控制電路、記憶體模組與記憶體儲存裝置
US20140359202A1 (en) * 2013-05-31 2014-12-04 Western Digital Technologies, Inc. Reading voltage calculation in solid-state storage devices
US10317995B2 (en) 2013-11-18 2019-06-11 Tobii Ab Component determination and gaze provoked interaction
US10558262B2 (en) 2013-11-18 2020-02-11 Tobii Ab Component determination and gaze provoked interaction
US9123424B2 (en) 2013-12-17 2015-09-01 Sandisk Technologies Inc. Optimizing pass voltage and initial program voltage based on performance of non-volatile memory
US9230689B2 (en) 2014-03-17 2016-01-05 Sandisk Technologies Inc. Finding read disturbs on non-volatile memories
KR102221752B1 (ko) 2014-03-20 2021-03-02 삼성전자주식회사 메모리 장치의 프로그램 방법 및 이를 포함하는 데이터 독출 방법
US9952883B2 (en) 2014-08-05 2018-04-24 Tobii Ab Dynamic determination of hardware
US9552171B2 (en) 2014-10-29 2017-01-24 Sandisk Technologies Llc Read scrub with adaptive counter management
DE102014115885B4 (de) * 2014-10-31 2018-03-08 Infineon Technologies Ag Funktionstüchtigkeitszustand von nicht-flüchtigem Speicher
US9978456B2 (en) 2014-11-17 2018-05-22 Sandisk Technologies Llc Techniques for reducing read disturb in partially written blocks of non-volatile memory
US9349479B1 (en) 2014-11-18 2016-05-24 Sandisk Technologies Inc. Boundary word line operation in nonvolatile memory
US9449700B2 (en) 2015-02-13 2016-09-20 Sandisk Technologies Llc Boundary word line search and open block read methods with reduced read disturb
KR20170011644A (ko) * 2015-07-23 2017-02-02 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US9653154B2 (en) 2015-09-21 2017-05-16 Sandisk Technologies Llc Write abort detection for multi-state memories
US10482969B2 (en) * 2017-12-21 2019-11-19 Western Digital Technologies, Inc. Programming to a correctable amount of errors
US10580495B2 (en) 2017-12-21 2020-03-03 Western Digital Technologies, Inc. Partial program operation of memory wordline
US10978156B2 (en) 2018-06-29 2021-04-13 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US11545221B2 (en) 2018-06-29 2023-01-03 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
JP2020119618A (ja) 2019-01-21 2020-08-06 キオクシア株式会社 メモリシステム
EP3710257B1 (en) * 2019-02-06 2021-09-08 Hewlett-Packard Development Company, L.P. Writing a nonvolatile memory to programmed levels
CN111857560A (zh) * 2019-04-30 2020-10-30 伊姆西Ip控股有限责任公司 用于管理数据的方法、设备和计算机程序产品
JP2022040515A (ja) * 2020-08-31 2022-03-11 ウィンボンド エレクトロニクス コーポレーション フラッシュメモリおよびプログラミング方法
US11342029B2 (en) 2020-09-28 2022-05-24 Sandisk Technologies Llc Non-volatile memory with switchable erase methods
US11854620B2 (en) 2021-06-18 2023-12-26 Sandisk Technologies Llc Word line zoned adaptive initial program voltage for non-volatile memory

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5280446A (en) 1990-09-20 1994-01-18 Bright Microelectronics, Inc. Flash eprom memory circuit having source side programming
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
KR960002006B1 (ko) 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5412601A (en) 1992-08-31 1995-05-02 Nippon Steel Corporation Non-volatile semiconductor memory device capable of storing multi-value data in each memory cell
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
EP0704854B1 (en) 1994-09-30 1999-12-01 STMicroelectronics S.r.l. Memory device having error detection and correction function, and methods for writing and erasing the memory device
DE69533429T2 (de) 1995-06-07 2005-08-18 Macronix International Co. Ltd., Hsinchu Automatischer progammier-algorithmus für flash-speicher im seitenmodus mit variabler programmierimpulshöhe und -breite
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5712815A (en) 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
IT1303204B1 (it) * 1998-11-27 2000-10-30 St Microelectronics Srl Metodo di programmazione di celle di memoria non volatile ad elevataprecisione, con velocita' di programmazione ottimizzata.
US6301161B1 (en) 2000-04-25 2001-10-09 Winbond Electronics Corporation Programming flash memory analog storage using coarse-and-fine sequence
JP2001357688A (ja) * 2000-06-16 2001-12-26 Matsushita Electric Ind Co Ltd 半導体記憶装置とその書き換え装置
JP2002133887A (ja) * 2000-10-31 2002-05-10 Matsushita Electric Ind Co Ltd 不揮発性半導体メモリ装置
IT1319614B1 (it) 2000-12-22 2003-10-20 St Microelectronics Srl Metodo per programmare una pluralita' di celle di memoria collegate inparallelo e relativo circuito di programmazione
WO2002056316A1 (fr) * 2001-01-12 2002-07-18 Hitachi, Ltd. Memoire remanente a semi-conducteur
JP4039812B2 (ja) * 2001-01-15 2008-01-30 松下電器産業株式会社 不揮発性記憶装置
US6738289B2 (en) 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
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
US6614695B2 (en) * 2001-08-24 2003-09-02 Micron Technology, Inc. Non-volatile memory with block erase
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
JP3987715B2 (ja) 2001-12-06 2007-10-10 富士通株式会社 不揮発性半導体メモリおよび不揮発性半導体メモリのプログラム電圧制御方法
US6967872B2 (en) * 2001-12-18 2005-11-22 Sandisk Corporation Method and system for programming and inhibiting multi-level, non-volatile memory cells
JP2003242787A (ja) * 2002-02-14 2003-08-29 Mitsubishi Electric Corp 不揮発性半導体記憶装置
JP4050555B2 (ja) * 2002-05-29 2008-02-20 株式会社東芝 不揮発性半導体記憶装置およびそのデータ書き込み方法
JP3866627B2 (ja) * 2002-07-12 2007-01-10 株式会社東芝 不揮発性半導体メモリ
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US20050049334A1 (en) 2003-09-03 2005-03-03 Slawomir Rubinsztain Solvent-modified resin system containing filler that has high Tg, transparency and good reliability in wafer level underfill applications
US7073103B2 (en) * 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
US6734718B1 (en) 2002-12-23 2004-05-11 Sandisk Corporation High voltage ripple reduction
US6735114B1 (en) * 2003-02-04 2004-05-11 Advanced Micro Devices, Inc. Method of improving dynamic reference tracking for flash memory unit
US6859397B2 (en) 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
KR100546343B1 (ko) * 2003-07-18 2006-01-26 삼성전자주식회사 플래시 메모리 장치의 프로그램 방법
US6917542B2 (en) 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
US6903972B2 (en) 2003-07-30 2005-06-07 M-Systems Flash Disk Pioneers Ltd. Different methods applied for archiving data according to their desired lifetime
JP2005122841A (ja) * 2003-10-17 2005-05-12 Renesas Technology Corp 不揮発性半導体記憶装置
US6888758B1 (en) 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
US7139198B2 (en) 2004-01-27 2006-11-21 Sandisk Corporation Efficient verification for coarse/fine programming of non-volatile memory
KR100635203B1 (ko) * 2004-05-14 2006-10-16 에스티마이크로일렉트로닉스 엔.브이. 플래쉬 메모리 장치 및 그 구동 방법
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
US7495966B2 (en) * 2006-05-01 2009-02-24 Micron Technology, Inc. Memory voltage cycle adjustment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7929350B2 (en) 2008-09-16 2011-04-19 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof, and memory system including the same
US8149625B2 (en) 2008-09-16 2012-04-03 Samsung Electronics Co., Ltd. Nonvolatile memory device, operating method thereof, and memory system including the same
KR101423612B1 (ko) * 2008-09-16 2014-07-25 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법, 그리고 그것을포함하는 메모리 시스템

Also Published As

Publication number Publication date
CN101213613A (zh) 2008-07-02
JP4931915B2 (ja) 2012-05-16
CN101213613B (zh) 2011-10-19
US20080137431A1 (en) 2008-06-12
US20080130368A1 (en) 2008-06-05
US20100020613A1 (en) 2010-01-28
US20060274583A1 (en) 2006-12-07
EP1886319B1 (en) 2015-07-15
KR100945057B1 (ko) 2010-03-05
WO2006132818A2 (en) 2006-12-14
US7339834B2 (en) 2008-03-04
TW200707440A (en) 2007-02-16
CN102385924A (zh) 2012-03-21
EP1886319A2 (en) 2008-02-13
US7630254B2 (en) 2009-12-08
TWI313868B (en) 2009-08-21
JP2008542968A (ja) 2008-11-27
WO2006132818A3 (en) 2007-07-12
US7633812B2 (en) 2009-12-15
CN102385924B (zh) 2015-01-14
US8111554B2 (en) 2012-02-07

Similar Documents

Publication Publication Date Title
KR100945057B1 (ko) 비휘발성 메모리 사이클에 따른 시작 프로그램 전압 시프트
EP2368248B1 (en) Adaptive erase and soft programming for memory
KR101012129B1 (ko) 자기 조정 최대 프로그램 루프에 의한 비휘발성 메모리의프로그래밍
EP2351041B1 (en) Programming non-volatile memory with high resolution variable initial programming pulse
US7170788B1 (en) Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb
KR101606168B1 (ko) 프로그램, 검증 및, 읽기를 위한 참조 전압 레벨들의 적응적인 세팅을 갖는 비휘발성 멀티레벨 메모리
KR101075253B1 (ko) 임계 전압의 치밀한 분포가 가능한 비휘발성 메모리의 비 실시간 재 프로그래밍 방법
WO2008083131A2 (en) Method for programming with initial programming voltage based on trial
EP2556509B1 (en) Saw-shaped multi-pulse programming for program noise reduction in memory
KR101016432B1 (ko) 타이밍 정보를 이용한 리버스 커플링 효과
KR20080089335A (ko) 스마트 검증을 이용한 다중 상태 비휘발성 메모리프로그래밍 방법
EP1971984B1 (en) Continued verification in non-volatile memory write operations
KR100984563B1 (ko) 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법

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: 20130201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140204

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 11