KR101632367B1 - 데이터 저장 요건이 감소된 메모리를 위한 복수-패스 프로그래밍 - Google Patents

데이터 저장 요건이 감소된 메모리를 위한 복수-패스 프로그래밍 Download PDF

Info

Publication number
KR101632367B1
KR101632367B1 KR1020117008326A KR20117008326A KR101632367B1 KR 101632367 B1 KR101632367 B1 KR 101632367B1 KR 1020117008326 A KR1020117008326 A KR 1020117008326A KR 20117008326 A KR20117008326 A KR 20117008326A KR 101632367 B1 KR101632367 B1 KR 101632367B1
Authority
KR
South Korea
Prior art keywords
programming
volatile storage
storage element
data
coarse
Prior art date
Application number
KR1020117008326A
Other languages
English (en)
Other versions
KR20110056408A (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 KR20110056408A publication Critical patent/KR20110056408A/ko
Application granted granted Critical
Publication of KR101632367B1 publication Critical patent/KR101632367B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Abstract

비휘발성 저장 디바이스에서 인접하는 플로팅 게이트들 간의 커플링 효과가 복수-패스 프로그래밍 동작에서 감소되며, 아울러 프로그램 데이터 저장 요건이 감소된다. 일 방법에 있어서, 저장 소자는 비순차적으로 혹은 지그재그 워드 라인 순서로 프로그래밍 된다. 특정 워드 라인이 비정밀 프로그램 패스로 프로그래밍되고, 이후에 또 다른 워드 라인이 정밀 프로그램 패스로 프로그래밍되며, 이후에 상기 특정 워드 라인이 판독된다. 상기 특정 워드 라인은, 또 다른 워드 라인이 비정밀 프로그램 패스로 프로그래밍(이것은 상기 특정 워드 라인의 저장 소자들에 커플링 간섭을 일으킴)되기 전에 판독된다. 판독된 데이터는 상기 특정 워드 라인에 대한 정밀 프로그램 패스를 수행하기 위해 후속적으로 사용된다. 이로 인해 복수의 워드 라인들의 프로그램 데이터를 동시에 저장할 필요가 없으며, 이에 따라 저장소 하드웨어의 크기는 감소될 수 있고 아울러 전력 소비도 감소될 수 있다.

Description

데이터 저장 요건이 감소된 메모리를 위한 복수-패스 프로그래밍{MULTI-PASS PROGRAMMING FOR MEMORY WITH REDUCED DATA STORAGE REQUIREMENT}
관련 출원의 상호 참조
본 출원은 미국 가특허출원 번호 제61/096,221호(2008년 9월 11일 출원)(대리인 관리번호: SAND-01378US1)(이 특허문헌은 참조로 본 명세서에 통합됨)에 대해 우선권을 주장한다.
본 발명은 비휘발성 저장을 위한 기술에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스에서 더욱더 널리 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 셀룰러 전화기, 디지털 카메라, 개인 휴대정보 단말기(PDA), 휴대용 컴퓨팅 디바이스, 비휴대용 컴퓨팅 디바이스 및 다른 디바이스에서 사용된다. 전기적 소거 및 프로그래밍가능 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory, EEPROM) 및 플래시 메모리가 가장 일반적인 비휘발성 반도체 메모리들 중 하나이다.
EEPROM과 플래시 메모리 양쪽 모두는 플로팅 게이트(floating gate)를 사용하는데, 플로팅 게이트는 반도체 기판에서의 채널 영역 위에 위치하고 채널 영역으로부터 절연되어 있다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트가 상기 플로팅 게이트로부터 절연되어 그 위에 위치한다. 트랜지스터의 임계 전압은 플로팅 게이트 상에 보유되는 전하의 양에 의해 제어된다. 즉, 트랜지스터가 자신의 소스와 드레인 간의 전도를 위해 턴온되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소의 양은, 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
NAND 플래시 메모리 디바이스와 같은 플래시 메모리 디바이스나 EEPROM을 프로그래밍할때, 전형적으로 프로그램 전압이 제어 게이트에 인가되며 비트 라인은 접지된다. 채널로부터의 전자들은 플로팅 게이트에 주입된다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 대전되고, 메모리 셀의 임계 전압은 상승되어, 메모리 셀은 프로그래밍 상태에 있게 된다. 프로그래밍에 대한 더 많은 정보는 미국 특허 번호 제6,859,397호(발명의 명칭: "Source Side Self-Boosting Technique For Non-Volatile Memory") 및 미국 특허 번호 제6,917,545호(발명의 명칭: "Detecting Over Programmed Memory")에서 찾을 수 있으며, 이러한 두 개의 특허문헌은 그 전체가 참조로 본 명세서에 통합된다.
일부 EEPROM 및 플래시 메모리 디바이스는 두 개의 전하 범위를 저장하기 위해 사용되는 플로팅 게이트를 구비하고, 이에 따라 메모리 셀은 두 개의 상태(소거 상태와 프로그래밍 상태) 사이에서 프로그래밍/소거될 수 있다. 이러한 플래시 메모리 디바이스는 때때로 바이너리 플래시 메모리 디바이스(binary flash memory device)로 불린다.
복수-상태 플래시 메모리 디바이스(multi-state flash memory device)는, 금지 범위에 의해 분리된 복수의 개별 허용/유효 프로그래밍 임계 전압 범위들을 식별함으로써 구현될 수 있다. 각각 개별 임계 전압 범위는 메모리 디바이스에 인코딩되는 데이터 비트들의 세트를 위한 소정의 값에 대응한다.
플로팅 게이트 상에 저장된 표면 전하에서의 시프트(shift)는 인접하는 플로팅 게이트에 저장된 전하에 근거하는 전기장의 커플링으로 인해 발생한다. 타겟 플로팅 게이트(target floating gate)에 대한 인접하는 플로팅 게이트의 일 예로는, 동일한 워드 라인에 연결되고 인접하는 비트 라인에 연결되는 플로팅 게이트가 있다.
복수-상태 디바이스에서 허용 임계 전압 범위 및 금지 범위는 바이너리 디바이스에서보다 더 폭이 좁기 때문에, 플로팅 게이트 대 플로팅 게이트 커플링의 효과는 복수-상태 디바이스에 대해 더 큰 관심의 대상이다. 따라서, 플로팅 게이트 대 플로팅 게이트 커플링은 결과적으로, 메모리 셀이 허용 임계 전압 영역으로부터 금지 영역으로 시프트되게 할 수 있다.
플로팅 게이트 대 플로팅 게이트 커플링은 서로 다른 시간에 프로그래밍되는 인접하는 메모리 셀들의 세트들 간에 일어날 수 있다. 예를 들어, 제 1 메모리 셀이 프로그래밍되어, 데이터의 일 세트에 대응하는 자신의 플로팅 게이트에 전하의 레벨을 더한다. 후속적으로, 하나 이상의 인접하는 메모리 셀들이 프로그래밍되어 데이터의 제2의 세트에 대응하는 자신들의 플로팅 게이트에 전하의 레벨을 더한다. 인접하는 메모리 셀들 중 하나 이상이 프로그래밍된 이후, 제 1 메모리 셀로부터 판독된 전하 레벨은 프로그래밍된 것과는 다르게 나타나는데, 그 이유는 인접하는 메모리 셀들 상의 전하가 제 1 메모리 셀에 커플링되는 효과가 있기 때문이다. 인접하는 메모리 셀들로부터의 커플링은 표면 전하 레벨을 시프트시킬 수 있는바, 이는 저장된 데이터의 오판독을 일으키기에 충분한 양으로 판독될 수 있다.
플로팅 게이트 대 플로팅 게이트 커플링은 동시에 프로그래밍되는 인접하는 메모리 셀들의 세트들 간에 또한 일어날 수 있다. 예를 들어, 두 개의 인접하는 복수-상태 메모리 셀들이 서로 다른 타겟 레벨들로 프로그래밍될 수 있어, 제 1 메모리 셀이 보다 낮은 임계 전압에 대응하는 상태로 프로그래밍되고 제 2 메모리 셀이 보다 높은 임계 전압에 대응하는 상태로 프로그래밍된다. 보다 낮은 임계 전압에 대응하는 상태로 프로그래밍되는 메모리 셀은, 제 2 메모리 셀이 보다 높은 임계 전압에 대응하는 상태에 도달하기 전에, 해당하는 상태에 도달할 것이고, 후속 프로그래밍으로부터 록-아웃(lock out)될 것이다. 제 2 메모리 셀이 보다 높은 임계 전압에 대응하는 상태에 도달한 후에, 제 1 메모리 셀과의 커플링이 일어나, 제 1 메모리 셀은 프로그래밍된 것보다 더 높은 표면 임계 전압을 갖게 될 것이다.
메모리 셀들의 크기가 계속 줄어들고 있기 때문에, 임계 전압의 자연적인 프로그래밍 및 소거 분포가 증가할 것으로 예측되는데, 그 이유는 단채널 효과, 더 큰 산화물 두께/커플링 비율 변화, 더 많은 채널 도펀트 변동 때문이고, 이로 인해 인접하는 상태들 간의 이용가능한 간격은 감소하게 된다. 이러한 것은 단지 두 개의 상태를 사용하는 메모리들(바이너리 메모리들)보다 복수-상태 메모리들에서 훨씬 더 크게 일어난다. 더욱이, 워드 라인들 간의 공간의 감소 및 비트 라인들 간의 공간의 감소는 인접하는 플로팅 게이트들 간의 커플링을 또한 증가시킬 것이다.
따라서, 인접하는 플로팅 게이트들 간의 커플링의 효과를 감소시킬 필요가 있다. 더욱이, 이러한 방법은 시장에서의 경쟁으로 인해 비용면에서 효과적이어야 하고 아울러 하드웨어를 효율적으로 이용할 수 있어야만 한다.
비용면에서 효과적인 방식으로, 인접하는 플로팅 게이트들 간의 커플링 효과를 감소시키기 위한 프로그래밍 기술이 제공된다.
일 실시예에서, 비휘발성 저장소를 동작시키기 위한 방법이 제공되며, 이 방법은, (a) 특정 비휘발성 저장 소자의 임계 전압을 제 1 검증 레벨보다 큰 제 1 레벨까지 상승시키기 위해 상기 특정 비휘발성 저장 소자를 프로그래밍하는 것과, (b) 상기 임계 전압이 상기 제 1 검증 레벨보다 크게 상승되었는지를 결정하기 위해 상기 프로그래밍 이후에 상기 특정 비휘발성 저장 소자를 판독하는 것과; 그리고 (c) 상기 판독에 응답하여, 상기 특정 비휘발성 저장 소자의 임계 전압을 상기 제 1 레벨로부터 제 2 검증 레벨보다 큰 제 2 레벨까지 상승시키기 위해 상기 특정 비휘발성 저장 소자를 더 프로그래밍하는 것을 포함한다.
또 다른 실시예에서, 비휘발성 저장소를 동작시키기 위한 방법이 제공되며, 이 방법은, 워드 라인들의 세트와 관련된 비휘발성 저장 소자들의 세트에 복수-패스 프로그래밍 동작을 수행하는 것을 포함한다. 상기 복수-패스 프로그래밍 동작은 각 워드 라인에 대해 적어도 두 개의 관련된 프로그래밍 패스들을 포함하며, 특정 워드 라인, WLn이 일 프로그래밍 패스에 놓이고, 이후에, 적어도 제1의 추가적 워드 라인이 적어도 하나의 프로그래밍 패스에 놓이고, 이후에 WLn이 또 다른 프로그래밍 패스에 놓이는 순서로 수행된다. 이 방법은, WLn이 상기 일 프로그래밍 패스에 놓인 이후, 그리고 상기 제1의 추가적 워드 라인이 상기 하나의 프로그래밍 패스에 놓이기 전에 WLn에 대한 판독 동작을 수행하는 것과, 그리고 WLn의 관련된 추가적 패스를 수행하기 위해 상기 판독 동작의 결과를 사용하는 것을 더 포함한다.
또 다른 실시예에서, 비휘발성 저장소를 동작시키기 위한 방법이 제공되며, 이 방법은, 워드 라인들의 세트와 관련된 비휘발성 저장 소자들의 세트에 복수-패스 프로그래밍 동작을 수행하는 것을 포함한다. 상기 복수-패스 프로그래밍 동작은 각 워드 라인에 대해 적어도 두 개의 관련된 프로그래밍 패스들을 포함하며, 특정 워드 라인, WLn이 일 프로그래밍 패스에 놓이고, 이후에, 적어도 제1의 추가적 워드 라인이, WLn과 관련된 비휘발성 저장 소자들을 부분적으로 프로그래밍하는 적어도 하나의 프로그래밍 패스에 놓이는 순서로 수행된다. 이 방법은 WLn이 상기 일 프로그래밍에 놓인 후에 WLn에 대한 판독 동작 및 관련된 에러 정정 프로세스를 수행하는 것을 더 포함한다. 이 방법은, WLn의 또 다른 프로그래밍 패스를 수행하기 위해 상기 판독 동작 및 상기 관련된 에러 정정 프로세스로부터의 결과를 사용하는 것을 더 포함하고, 그럼으로써 WLn과 관련된 비휘발성 저장 소자들의 프로그래밍이 완료된다.
또 다른 실시예에서, 비휘발성 저장 장치가 제공되며, 상기 비휘발성 저장 장치는 비휘발성 저장 소자들의 세트와, 그리고 비휘발성 저장 소자들의 상기 세트와 통신하는 하나 이상의 회로들을 포함한다. 이러한 하나 이상의 제어 회로들은, (a) 특정 비휘발성 저장 소자의 임계 전압을 제 1 검증 레벨보다 큰 제 1 레벨까지 상승시키기 위해 상기 특정 비휘발성 저장 소자를 프로그래밍하고, (b) 상기 임계 전압이 상기 제 1 검증 레벨보다 크게 상승되었는지를 결정하기 위해 상기 프로그래밍 이후에 상기 특정 비휘발성 저장 소자를 판독하고, 그리고 (c) 상기 판독에 응답하여, 상기 특정 비휘발성 저장 소자의 임계 전압을 상기 제 1 레벨로부터 제 2 검증 레벨보다 큰 제 2 레벨까지 상승시키기 위해 상기 특정 비휘발성 저장 소자를 더 프로그래밍한다.
대응하는 방법, 시스템, 및 본 명세서에서 제공되는 방법을 수행하기 위해 실행가능한 코드를 갖는 컴퓨터 혹은 프로세스 판독가능 저장 디바이스가 또한 제공될 수 있다.
도 1a는 NAND 스트링의 상면도이다.
도 1b는 도 1의 NAND 스트링의 등가 회로도이다.
도 1c는 NAND 플래시 저장 소자들의 어레이의 블록도이다.
도 2는 NAND 스트링의 단면도를 나타낸다.
도 3은 2-패스 프로그래밍 기술에서의 저장 소자들의 세트 및 관련된 워드 라인들에 대한 프로그래밍 순서를 도시한 것이다.
도 4a는 프로그래밍 동안 저장 소자들의 제어 게이트들에 인가되는 제1의 예시적 펄스 트레인(pulse train)을 도시한 것이다.
도 4b는 프로그래밍 동안 저장 소자들의 제어 게이트들에 인가되는 제2의 예시적 펄스 트레인을 도시한 것이다.
도 4c는 판독 동작 동안 비휘발성 저장 소자들의 제어 게이트들에 인가되는 예시적 전압 파형을 도시한 것이다.
도 5a는 도 3의 2-패스 프로그래밍 기술의 세부사항을 도시한 것으로, 여기서 데이터는 프로그래밍 패스들 사이에서 판독된다.
도 5b는 2-패스 프로그래밍 기술의 세부사항을 도시한 것으로, 여기서 데이터는 프로그래밍 패스들 사이에서 판독되지 않는다.
도 6a는 도 3의 2-패스 프로그래밍 기술의 제1의 비정밀 패스 이후의 임계 전압에서의 변화를 도시한 것이다.
도 6b는 도 3의 2-패스 프로그래밍 기술의 제2의 정밀 패스 이후의 임계 전압에서의 변화를 도시한 것이다.
도 7a는 복수-패스 프로그래밍 프로세스의 개관을 나타낸 것으로, 여기서 데이터는 프로그래밍 패스들 사이에서 판독되고, 후속적으로 액세스되며, 그리고 에러 정정된다.
도 7b는 도 3의 2-패스 프로그래밍 기술에 대응하는 복수-패스 프로그래밍 프로세스를 도시한 것이다.
도 8은 3-패스 프로그래밍 기술에서의 저장 소자들의 세트 및 관련된 워드 라인들에 대한 프로그래밍 순서를 도시한 것이다.
도 9는 도 8의 3-패스 프로그래밍 기술의 세부사항을 도시한 것으로, 여기서 데이터는 프로그래밍 패스들 사이에서 판독된다.
도 10a 내지 도10c는 도 8과 관련된 3-패스 프로그래밍 기술에 대한 임계 전압 분포를 도시한 것이다.
도 11은 도 8의 3-패스 프로그래밍 기술에 대응하는 복수-패스 프로그래밍 프로세스를 도시한 것이다.
도 12a는 추가적인 복수-패스 프로그래밍 프로세스를 도시한 것이다.
도 12b 내지 도 12e는 도 12a와 관련된 프로그래밍 기술에 대한 임계 전압 분포를 도시한 것이다.
도 13은 NAND 플래시 저장 소자들의 어레이를 나타낸 블록도이다.
도 14는 단일의 로우/컬럼 디코더들 및 판독/기입 회로들을 이용하는 비휘발성 메모리 시스템의 블록도이다.
도 15는 판독/기입 스택의 일 실시예를 나타낸 블록도이다.
도 16은 메모리 어레이를 모든 비트 라인 메모리 아키텍쳐를 위한 블록들 혹은 홀수-짝수 메모리 아키텍쳐를 위한 블록들로 조직화하는 것의 예를 나타낸다.
비용면에서 효과적인 방식으로, 인접하는 플로팅 게이트들 간의 커플링 효과를 감소시키기 위한 프로그래밍 기술이 제공된다.
플래시 메모리 시스템의 일 예는 NAND 구조를 사용하고, NAND 구조는 두 개의 선택 게이트들 사이에 삽입된 복수의 트랜지스터들을 하여 직렬로 배열시키는 것을 포함한다. 직렬로 연결된 트랜지스터들 및 선택 게이트들은 NAND 스트링으로서 언급된다. 도 1a는 하나의 NAND 스트링을 도시하는 상면도이다. 도 1b는 그 등가 회로이다. 도 1 및 도 2에 도시된 NAND 스트링은, 제 1 선택 게이트(드레인측 선택 게이트)(120)와 제 2 선택 게이트(소스측 선택 게이트)(122) 사이에 삽입되어 직렬로 연결된 네 개의 트랜지스터들(100, 102, 104 및 106)을 포함한다. 선택 게이트(120)는 NAND 스트링을 비트 라인 콘택(126)을 통해 비트 라인에 연결한다. 선택 게이트(122)는 NAND 스트링을 소스 라인(128)에 연결한다. 선택 게이트(120)는 선택 라인(SGD)에 적절한 전압을 인가함으로써 제어된다. 선택 게이트(122)는 선택 라인(SGS)에 적절한 전압을 인가함으로써 제어된다. 트랜지스터들(100, 102, 104 및 106) 각각은 제어 게이트와 플로팅 게이트를 갖는다. 예를 들어, 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 제어 게이트(100CG)가 워드 라인(WL3)에 연결되고, 제어 게이트(102CG)가 워드 라인(WL2)에 연결되며, 제어 게이트(104CG)가 워드 라인(WL1)에 연결되고, 그리고 제어 게이트(106CG)는 워드 라인(WL0)에 연결된다.
도 1a 및 도 1b가 NAND 스트링 내에 네 개의 메모리 셀들을 제시하고 있지만 이러한 네 개의 메모리 셀들의 사용은 단지 예로서 제공되는 것임에 유의해야 한다. NAND 스트링은 네 개의 메모리 셀들보다 더 적은 메모리 셀을 가질 수 있거나 혹은 네 개의 메모리 셀들보다 더 많은 메모리 셀을 가질 수 있다. 예를 들어, 일부 NAND 스트링들은 여덟 개의 메모리 셀들, 16개의 메모리 셀들, 32개의 메모리 셀들, 64개의 메모리 셀들, 128개 메모리 셀들 등을 포함할 수 있다. 본 명세서에서 설명되는 내용이 NAND 스트링 내의 임의의 특정 개수의 메모리 셀들로만 한정되지 않는다. 일 실시예는 66개의 메모리 셀들을 가진 NAND 스트링을 사용하고, 여기서 64개의 메모리 셀들은 데이터를 저장하는데 사용되고, 메모리 셀들 중 나머지 두 개는 더미 메모리 셀(dummy memory cell)들로 언급되는데, 왜냐하면 이들은 데이터를 저장하지 않기 때문이다.
NAND 구조를 이용하는 플래시 메모리 시스템의 전형적인 아키텍쳐는 수 개의 NAND 스트링들을 포함할 수 있다. 각각의 NAND 스트링은, 선택 라인(SGS)에 의해 제어되는 소스 선택 게이트에 의해 공통 소스 라인에 연결되고, 아울러 선택 라인(SGD)에 의해 제어되는 드레인 선택 게이트에 의해 그 관련 비트 라인에 연결된다. 각각의 비트 라인과, 그리고 해당 비트 라인에 비트 라인 콘택을 통해 연결되는 각각의 NAND 스트링(들)은 메모리 셀들의 어레이의 컬럼(column)들을 포함한다. 비트 라인들은 복수의 NAND 스트링들에 공유된다. 전형적으로, 비트 라인은 워드 라인에 수직인 방향으로 NAND 스트링의 상부에 걸쳐 있고 감지 증폭기에 연결된다.
NAND 플래시 메모리에 추가하여, 다른 타입의 비휘발성 메모리 저장 디바이스들이 또한 사용될 수 있다. 예를 들어, 비휘발성 메모리 디바이스들은 전하를 저장하기 위해 유전체 층을 사용하는 메모리 셀들로부터 또한 제조된다. 앞서 설명된 전도성 플로팅 게이트 소자들 대신에, 유전체 층이 사용된다. 유전체 저장 소자를 사용하는 이러한 메모리 디바이스들은 기술문헌(저자: 에이탄(Eitan) 등, 제목: "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545)에 설명되어 있다. ONO 유전체 층은 소스와 드레인 확산부들 사이에 있는 채널에 걸쳐 연장한다. 하나의 데이터 비트를 위한 전하가 드레인에 인접한 유전체 층에 국지적으로 집결되고 다른 데이터 비트를 위한 전하가 소스에 인접한 유전체 층에 국지적으로 집결된다. 미국 특허 번호 제5,768,192호 및 제6,011,725호는 두 개의 실리콘 다이옥사이드 층들 사이에 샌드위치된 트랩핑 유전체(trapping dielectic)를 구비한 비휘발성 메모리 셀을 개시한다. 유전체 내에 공간적으로 분리된 전하 저장 영역들의 바이너리 상태들을 개별적으로 판독함으로써 복수-상태 데이터 저장소가 구현된다. MONOS 혹은 TANOS 타입의 구조 또는 나노결정(nanocrystals)을 기반으로 하는 비휘발성 저장소가 또한 사용될 수 있다. 다른 타입의 비휘발성 저장소가 또한 사용될 수 있다.
도 1c는 세 개의 NAND 스트링들을 도시하는 회로도이다. NAND 구조를 이용하는 플래시 메모리 시스템을 위한 전형적인 아키텍쳐는 수 개의 NAND 스트링들을 포함할 수 있다. 예를 들어, 세 개의 NAND 스트링들(320, 340 및 360)이 보다 많은 NAND 스트링들을 갖는 메모리 어레이 내에 제시된다. NAND 스트링들 각각은 두 개의 선택 게이트들 및 네 개의 저장 소자들을 포함한다. 간결한 설명을 위해 네 개의 저장 소자들이 제시되지만, 현대의 NAND 스트링들은, 예를 들어 최대 32개 혹은 64개의 저장 소자들을 가질 수 있다.
예를 들어, NAND 스트링(320)은 선택 게이트들(322 및 327) 및 저장 소자들(323-326)을 포함하고, NAND 스트링(340)은 선택 게이트들(342 및 347) 및 저장 소자들(343-346)을 포함하며, NAND 스트링(360)은 선택 게이트들(362 및 367) 및 저장 소자들(363~366)을 포함한다. 각각의 NAND 스트링은 자신의 선택 게이트들(예를 들어, 선택 게이트들(327, 347 또는 367))에 의해 소스 라인에 연결된다. 선택 라인(SGS)은 소스측 선택 게이트들을 제어하는데 사용된다. 다양한 NAND 스트링들(320, 340 및 360)이 선택 게이트들(322, 342, 362) 내의 선택 트랜지스터들에 의해 각각의 비트 라인들(321, 341 및 361)에 연결되는 등등이다. 이러한 선택 트랜지스터들은 드레인 선택 라인(SGD)에 의해 제어된다. 다른 실시예들에서, 선택 라인들은 NAND 스트링들 간에 반드시 공통일 필요는 없는 바, 즉, 서로 다른 NAND 스트링들에 대해 서로 다른 선택 라인들이 제공될 수 있다. 워드 라인(WL3)이 저장 소자들(323, 343 및 363)을 위한 제어 게이트들에 연결된다. 워드 라인(WL2)이 저장 소자들(324, 344 및 364)을 위한 제어 게이트들에 연결된다. 워드 라인(WL1)이 저장 소자들(325, 345 및 365)을 위한 제어 게이트들에 연결된다. WL0이 저장 소자들(326, 346 및 366)을 위한 제어 게이트들에 연결된다. 알 수 있는 바와 같이, 각각의 비트 라인 및 각각의 NAND 스트링은 저장 소자들의 어레이 혹은 세트의 컬럼들을 포함한다. 워드 라인들(WL3, WL2, WL1 및 WL0)은 어레이 또는 세트의 로우(row)들을 포함한다. 각각의 워드 라인은 각각의 저장 소자의 제어 게이트들을 해당 로우에 연결한다. 또는, 제어 게이트들은 워드 라인들 자체에 의해 제공될 수도 있다. 예를 들어, 워드 라인(WL2)은 저장 소자들(324, 344 및 364)을 위한 제어 게이트들을 제공한다. 실제로, 워드 라인 상에는 수천 개의 저장 소자들이 있을 수 있다.
각 저장 소자는 데이터를 저장할 수 있다. 예를 들어, 일 비트의 디지털 데이터를 저장할 때, 저장 소자의 가능한 임계 전압들(VTH)의 범위는 로직 데이터 "1" 과 "0"에 할당되는 두 개의 범위로 분할된다. NAND 타입 플래시 메모리의 일 예에서, 저장 소자가 소거된 후 VTH는 음의 값을 갖고, 로직 "1"로 정의된다. 프로그램 동작 이후 VTH는 양의 값을 갖고, 로직 "0"으로 정의된다. VTH가 음이고 판독이 시도될 때, 저장 소자는 턴온되어, 로직 "1"이 저장됨을 표시한다. VTH가 양이고 판독이 시도될 때, 저장 소자는 턴온되지 않고, 이것은 로직 0이 저장됨을 표시한다. 저장 소자는 또한 복수 레벨의 정보, 예를 들어 복수 비트의 디지털 데이터를 저장할 수 있다. 이 경우, VTH의 범위는 데이터 레벨들의 수로 분할된다. 예를 들어, 만약 네 개 레벨의 정보가 저장된다면, 데이터 값 "11", "10", "01" 및 "00"에 할당되는 네 개의 VTH 범위가 존재할 것이다. NAND 타입 메모리의 일 예에서, 소거 동작 이후의 VTH는 음이고, "11"로서 정의된다. 양의 VTH 값들은 "10", "01" 및 "00"의 상태들에 대해 사용된다. 저장 소자에 프로그래밍되는 데이터와 저장 소자의 VTH 범위들 간의 특정 관계는 저장 소자들에 대해 채택되는 데이터 인코딩 방식에 따라 달라진다.
플래시 저장 소자를 프로그래밍할 때, 프로그램 전압이 저장 소자의 제어 게이트에 인가되고, 저장 소자와 관련된 비트 라인은 접지된다. 채널로부터의 전자들이 플로팅 게이트에 주입된다. 전자들이 플로팅 게이트에 축적되는 경우, 플로팅 게이트는 음으로 대전되고, 저장 소자의 VTH가 상승한다. 프로그래밍되는 저장 소자의 제어 게이트에 프로그램 전압을 인가하기 위해, 해당 프로그램 전압이 적절한 워드 라인 상에 인가된다. 앞서 설명된 바와 같이, NAND 스트링들 각각에서의 하나의 저장 소자는 동일한 워드 라인을 공유한다. 예를 들어, 도 1c의 저장 소자(324)를 프로그래밍할 때, 프로그램 전압은 또한 저장 소자들(344 및 364)의 제어 게이트들에도 인가될 것이다.
도 2는 NAND 스트링의 단면도를 나타낸 것이다. 상기 단면도는 간략화된 도면이며 일정 비율로 도시되지 않았다. NAND 스트링(200)은, 기판(290) 위에 형성된, 소스측 선택 게이트(206), 드레인측 선택 게이트(224), 및 여덟 개의 저장 소자들(208, 210, 212, 214, 216, 218, 220 및 222)을 포함한다. 이러한 컴포넌트들은 p-웰 영역(292) 위에 형성될 수 있으며, p-웰 영역(292) 자체는 기판의 n-웰 영역(294)에 형성된다. 상기 n-웰이 또한 p-기판(296)에 형성될 수 있다. 공급 라인(202) 및 공급 라인(203)은 p-웰 영역(292) 및 n-웰 영역(294)과 각각 통신할 수 있다. VBL의 전위를 갖는 비트 라인(226)에 추가하여, VSOURCE의 전위를 갖는 소스 공급 라인(204)이 제공된다. VSGS가 선택 게이트(206)에 인가되고, VSGD가 선택 게이트(224)에 인가된다. 워드 라인 혹은 비휘발성 저장 소자의 소스측은, 예를 들어, 소스 공급 라인(204)에서, NAND 스트링의 소스 말단에 면하고 있는 측면을 말하고, 워드 라인 혹은 비휘발성 저장 소자의 드레인측은, 예를 들어, 비트 라인(204)에서, NAND 스트링의 드레인 말단에 면하고 있는 측면을 말한다.
데이터를 메모리 디바이스에서의 저장 소자들에 정확히 프로그래밍할 수 있는 것은 중요하다. 일반적으로, NAND 디바이스와 같은 비휘발성 메모리 디바이스가 점점 더 작은 치수로 축소됨에 따라, 이웃하는 저장 소자 간의 간격도 또한 줄어든다. 이것은 특히 플로팅 게이트들 간의 더 큰 용량성 커플링을 일으키며, 이것은 이웃하는 저장 소자들로부터의 더 큰 간섭을 의미한다. 용량성 커플링은 비트 라인 대 비트 라인 커플링 및 워드 라인 대 워드 라인 커플링을 포함한다.
VTH 분포의 폭을 더 좁게 하기 위해서 이러한 간섭 효과는 처리돼야만 한다. 한가지 방법은 복수-패스 프로그래밍(multi-pass programming)이다. 일 방법에서, 저장 소자들은 하나의 비정밀 패스(coarse pass)로 최종 의도된 상태 아래의 오프셋 레벨(offset level)로 프로그래밍된다. 이러한 오프셋 레벨은 비정밀 혹은 "불확실" 상태로 고려될 수 있는 부분적으로 프로그래밍된 상태에 대한 것이다. 후속적으로, 저장 소자들은 또 하나의 정밀 패스(fine pass)로 이들의 최종 의도된 상태로의 그 나머지에 대해 프로그래밍된다. 최종 프로그래밍된 상태는 "정밀" 상태로 고려될 수 있다. 하나의 예시적 복수-패스 프로그래밍 기술이 다음에 설명된다.
도 3은 2-패스 프로그래밍 기술에서 저장 소자들의 세트 및 관련 워드 라인들에 대한 프로그래밍 순서를 나타낸 것이다. 여기서, 그 각각이 정방형으로 표현된 저장 소자들의 세트는, 워드 라인들(WL0 내지 WL4)의 세트 및 비트 라인들(BLi-1 내지 BLi+1)의 세트와 통신한다. 제시된 컴포넌트들은 저장 소자들, 워드 라인들 및 비트 라인들의 더 큰 세트의 서브세트일 수 있다. 본 예에서는, 다섯 개의 워드 라인들이 제공되는바, WL0은 소스측 말단 워드 라인이고, WL4는 드레인측 말단 워드 라인이다. 실제로, 64개 혹은 128개의 워드 라인들과 같은 더 많은 워드 라인들이 전형적으로 블록으로 정렬된다. 제시된 예는 본 발명의 일 실시예의 실시형태를 설명하는 데 사용된다. 단계들(S1 내지 S15)은 순차적으로 수행되는 단계들을 표시한다.
상기 프로그래밍 순서는 비순차적 혹은 지그재그 시퀀스의 워드 라인으로 나타날 수 있는데, 왜냐하면 그 순서가 워드 라인들 간의 전방 및 후방 점핑을 포함하기 때문이다. 비정밀 패스와 정밀 패스가 각각의 워드 라인에 대해 제공됨에 유의해야 한다. 제 1 프로그래밍 패스가 WL0과 관련된 선택된 저장 소자들에 대해 수행된다(이것이 단계 1 혹은 S1임). 다음으로, 판독 동작이 WL0에 대해 수행된다(S2). 이 판독 동작을 통해, 이웃하는 워드 라인 저장 소자들의 후속 프로그래밍으로부터의 커플링에 의해 저장 소자들이 영향을 받기 전에, WL0 상의 저장 소자들의 상태가 확인될 수 있다. 판독 데이터에서의 에러는 에러 정정 코드(Error Correction Code, ECC)를 사용하여 검출될 수 있다. 더욱이, ECC는 비정밀 프로그래밍 자체에 의해 발생된 결함 비트들 혹은 비정밀 프로그래밍 이후 비정밀 판독 이전의 기간에 발생된 결함 비트들을 정정하는 데 사용될 수 있다. 여기서, 일시적 저장에 의해 발생된 결함 비트들은 없는 것으로 가정한다.
후속적으로, S3에서, 비정밀 프로그래밍 패스가 WL1에 대해 일어난다. 이 프로그래밍은, WL1로부터의 커플링으로 인한 WL0의 저장 소자들의 임계 전압에서의 시프트를 일으킨다. S4에서, 정밀 프로그래밍 패스가 WL0에 대해 일어난다. 이것을 달성하기 위해, 한가지 가능한 구현에서는, 이전에 판독 및 저장된 데이터가 액세스되고 ECC 디코딩을 사용하여 디코딩된다. 판독된 데이터는, WL0의 각각의 저장 소자가 정밀 프로그래밍 패스로 프로그래밍돼야하는 데이터 상태를 표시한다. S4 이후에, 판독된 데이터는 삭제될 수 있다. 이러한 방법은, 아래에서 더 상세히 설명되는 바와 같이, 소정의 워드 라인에 대해, 비정밀 프로그래밍 동안, 정밀 프로그래밍을 위한 프로그램 데이터를 저장할 필요를 없애 준다. 추가적으로, 임계 전압 분포는 밀집된다.
S5에서, 판독 동작이 WL1에 대해 수행되고, 그리고 S6에서, 비정밀 프로그래밍이 WL2에 대해 수행되며, 이것은 커플링으로 인한 WL1의 저장 소자들의 임계 전압에서의 시프트를 일으킨다. S7에서, 정밀 프로그래밍 패스가 WL1에 대해 일어난다. 이것은 소스측 이웃하는 워드 라인, WL0에 소량의 커플링을 일으킬 수 있다. 그러나, 이러한 커플링은 비정밀 프로그래밍으로 인한 것보다 훨씬 더 작고, 따라서 용인될 수 있다. S5에서 이전에 판독된 데이터가 액세스되고 ECC 디코딩을 사용하여 디코딩된다. 판독된 데이터는 WL1의 각각의 저장 소자가 정밀 프로그래밍 패스로 프로그래밍돼야하는 데이터 상태를 표시한다. 이에 따라, 프로세스가 다른 워드 라인에 대해 진행되어, 소정의 워드 라인에 대해, 저장 소자들은, 비정밀 프로그래밍 이후에, 그리고 해당 워드 라인이 더 높은 워드 라인의 비정밀 프로그래밍으로부터의 커플링에 영향을 받기 전에, 판독되고, 판독된 데이터는 정밀 프로그래밍을 위해 사용된다. 마지막 워드 라인, WL4가 유사하게 프로그래밍되는바, 이 경우 S14의 판독 이후에 프로그래밍되는 더 높은 워드 라인은 없다. 대신에 S15에서 정밀 프로그래밍이 WL4에 대해 일어난다.
선택에 따라서는, 추가적인 초기 프로그래밍 패스가, 도 8과 연계되어 설명되는 바와 같은, 비정밀 프로그래밍 패스 및 정밀 프로그래밍 패스 전에 수행될 수 있다.
도 3의 방법에서, 소정의 워드 라인은 그 다음 더 높은 워드 라인이 부분적으로 프로그래밍되기까지 프로그래밍을 완성하지 않는다. 본질적으로, 그 다음 더 높은 워드 라인은 하나의 프로그래밍 패스를 남기고 있다. 예를 들어, WL0이 정밀 프로그래밍을 완성할 때 WL1은 단지 비정밀 프로그래밍만을 완성한다.
저장 소자들이 짝수 번호 비트 라인과 관련되는지 혹은 홀수 번호 비트 라인과 관련되는지에 여부에 상관없이 워드 라인 상의 모든 비트 라인들의 저장 소자들이 프로그래밍되는 모든 비트 라인 프로그래밍이 사용될 수 있다. 그러나 다른 방법이 가능하며, 여기에는, 짝수 비트 라인들이 프로그램 및 검증 동작을 통해 프로그래밍되고, 이후에 홀수 비트 라인들이 프로그램 및 검증 동작을 통해 프로그래밍되는 방법이 포함된다. 또 다른 방법에서, 짝수 비트 라인과 홀수 비트 라인 양쪽 모두가, 프로그램 펄스를 수신하여 함께 프로그래밍되고, 이후에 짝수 비트 라인이 검증되고, 그리고 이후에 홀수 비트 라인이 검증된다. 그 다음 프로그램 펄스가 후속적으로 인가되고 프로세스가 이에 따라 진행된다. 이러한 방법이 다음에서 설명된다.
도 4a는 프로그래밍 동안의 저장 소자들의 제어 게이트들에 인가되는 제1의 예시적 펄스 트레인(pulse train)을 나타낸다. 이러한 펄스 트레인은, 가능한 일 실시예에서 진폭이 단계별로 증가하는 프로그램 펄스들(402, 404, 406, 408, 410...)과, 그리고 각각의 프로그램 펄스 사이의 검증 펄스들의 세트를 포함하는바, 이러한 검증 펄스들은 예시적 검증 펄스들(403)을 포함하고, 이것은 아래에서 더 상세히 설명되는 바와 같이, VVA - COARSE, VVB - COARSE 및 VVC - COARSE 또는 VVA - FINE, VVB - FINE 및 VVC - FINE과 같은 진폭을 갖는다. 펄스 진폭은 VPGM1, VPGM2 등이다. 펄스들의 진폭은 고정될 수 있고, 또는 펄스들은 예를 들어, 고정 비율 혹은 가변 비율로 단계별로 증가할 수 있다. 전형적으로, m개의 데이터 상태들이 사용될 때, m-1개의 검증 펄스들이 사용된다. 일 방법에서, 동일한 펄스 트레인이 각각의 프로그래밍 패스에 대해 사용된다. 그러나, 서로 다른 프로그래밍 패스들에서 서로 다른 펄스 트레인을 사용하는 것이 또한 가능하다. 예를 들어, 제 2 프로그래밍 패스는 제 1 패스보다 더 높은 초기 VPGM에서 시작하는 펄스 트레인을 사용할 수 있다.
일 실시예에서, 상기 프로그래밍 펄스들은 예를 들어, 12V에서 시작하는 전압, VPGM1을 가지며, 각각의 연속적인 프로그래밍 펄스에 대해 예를 들어 0.5V의 증분치만큼 증가하여, 예를 들어, 20-25V의 최대치에 도달할 때까지 증가한다. 일부 실시예들에서, 데이터가 프로그래밍되는 각각의 상태(예를 들어, 상태 A, B 및 C)에 대한 검증 펄스가 있을 수 있다. 다른 실시예들에서, 더 많거나 더 적은 검증 펄스들이 있을 수 있다.
펄스 트레인(400)은 예를 들어, 모든 비트 라인 프로그래밍 동안, 혹은 짝수-홀수 프로그래밍 동안 사용될 수 있다. 일 타입의 짝수-홀수 프로그래밍 동안, 짝수 번호 비트 라인들의 저장 소자들이 펄스 트레인(400)의 반복적 인가를 사용하여 프로그래밍되고 검증되며, 이후에 홀수 번호 비트 라인들의 저장 소자들이 펄스 트레인(400)의 반복적 인가를 사용하여 프로그래밍되고 검증된다.
도 4b에 제시된 바와 같이, 또 다른 타입의 짝수-홀수 프로그래밍에서, 짝수 번호 비트 라인들과 홀수 번호 비트 라인들의 저장 소자들은 함께 프로그래밍되지만, 검증은 개별적으로 수행된다. 예를 들어, 펄스 트레인(460)은, 진폭이 단계별로 증가하는 프로그램 펄스들(442, 444, 446, 448, 450 ...)과, 그리고 각각의 프로그램 펄스 사이의 검증 펄스들의 두 세트들(예시적 세트들(443 및 445)을 포함함)을 포함한다. 예를 들어, 가능한 일 실시예에서, 프로그램 펄스들(442와 444) 사이에서, 검증 펄스들의 세트(443)가 짝수 번호 비트 라인들의 저장 소자들을 검증하기 위해 사용될 수 있고, 검증 펄스들의 세트(445)가 홀수 번호 비트 라인들의 저장 소자들을 검증하기 위해 사용될 수 있다.
도 4c는 판독 동작 동안 비휘발성 저장 소자들의 제어 게이트들에 인가되는 예시적 전압 파형을 나타낸다. 판독 동작 동안, 임의의 선택된 워드 라인 상의 전압은 선택된 저장 소자들의 제어 게이트들에 결합되고, 일련의 판독 전압들(VCGR -A, VCGR-B 및 VCGR -C)이 제공된다. 복수-레벨 저장 소자에 대해, 판독 동작은 복수의 비교 레벨들을 사용하는 반면 검증 동작은 전형적으로 단지 하나의 비교 레벨만을 사용한다는 점에서, 판독 동작은 검증 동작은 구별된다. 더욱이, 검증 동작은 저장 소자들의 임계 전압이 비교 레벨을 넘는 것을 보증하는 것을 포함하고, 반면에 판독 동작은 저장 소자가 어떤 임계 전압 간격 및 데이터 상태로 분류돼야 하는지 결정하는 것을 포함한다. 일반적으로, n-1개의 판독 비교 레벨들이 n개의 상태들 간을 구별하기 위해 사용된다. 도 6a 및 도 6b와 연계하여 아래에서 설명되는 바와 같이, 비정밀하게 프로그래밍된 데이터가 판독되는지 또는 정밀하게 프로그래밍된 데이터가 판독되는지 여부에 따라, 서로 다른 판독 전압들이 사용될 수 있다.
도 5a는 데이터가 프로그래밍 패스들 간에 판독되는 도 3의 2-패스 프로그래밍 기술의 세부사항을 나타낸 것이다. 단계들(S1 내지 S10)은 도 3에서 동일한 번호를 갖는 단계에 대응한다. "E"는 소거된 상태를 표시한다. 시간은 오른쪽으로 진행한다. S1 이전에, 모든 워드 라인들의 저장 소자들은 소거된 상태(E)에 있다. S1에서, 비정밀 프로그래밍이 WL0에 대해 수행되고("비정밀 프로그램"), 이후 WL0의 저장 소자들은 비정밀하게 프로그래밍된 상태("비정밀")에 있게 된다. WL1 내지 WL4의 저장 소자들은 E 상태에 있다. S2에서, WL0이 판독되고 관련된 데이터가 저장된다. 예를 들어, 네 개의 가능한 데이터 상태들이 존재하는 경우, 각각의 저장 소자에 대해 2비트의 데이터가 저장된다. 일반적으로, 2N개의 상태가 존재하는 경우, N비트의 데이터가 저장된다. S3에서, 비정밀 프로그래밍이 WL1에 대해 수행된다. WL1의 저장 소자들은 비정밀 상태에 있고, WL2 내지 WL4의 저장 소자들은 E 상태에 있다.
S4에서, WL0에 대한 판독 데이터는 WL0의 정밀 프로그래밍에서의 사용을 위해 액세스된다. 본질적으로, 판독 데이터는, WL0의 각각의 저장 소자가 정밀 프로그래밍 동안 프로그래밍돼야하는 데이터 상태를 표시한다. 따라서, 비정밀 임계 전압 분포는 정밀 분포를 위한 프로그램 데이터를 제공한다. WL0의 판독 데이터는 정밀 프로그래밍 이후에, 더 이상 필요하지 않기 때문에, 버려질 수 있다. 한번에 단지 하나의 워드 라인으로부터의 판독 데이터가 저장될 필요가 있음에 유의해야 한다. 이것은 프로그램 데이터에 대한 저장 요건을 감소시킬 뿐만 아니라 데이터를 주변으로 이동시키기 위해 필요한 동작을 감소시킬 수 있고, 따라서 하드웨어 비용의 감소, 전력 소비의 감소, 및 메모리 칩 상의 하드웨어에 의해 사용되는 공간의 감소가 가능하게 된다. 데이터의 판독, 저장 및 후속적 액세스가 커맨드 입력에 의해 개시되는 시퀀스로서 구현될 수 있고, 그리고 메모리 디바이스에서의 임의의 저장 위치가 판독 데이터를 일시적으로 저장하기 위해 제공될 수 있다. 상기 복수-패스 프로그래밍은 사용자에게 투명할 것이다. 추가적으로, 커맨드가 데이터의 판독, 저장 및 후속적 액세스가 연속적임을 보장하기 때문에, 메모리 디바이스에서의 저장 위치는 휘발성일 수 있다.
본 명세서의 기술들은 더 적은 데이터 저장 용량을 요구하는 비정밀-정밀 프로그램 방법을 제공한다. 4-레벨 저장 소자를 위한 종래 비정밀/정밀 프로그래밍 방법은 프로그램 데이터를 유지하기 위해 비트 라인당 4-비트 플립-플롭(flip-flops)(반드시 플립-플롭일 필요는 없음, 임의의 저장소가 사용될 수 있음)과 같은 데이터 저장소를 요구한다. 반면에, 본 명세서에서 설명되는 기술의 4-레벨 셀은, 단지 비트 라인당 2-비트 플립-플롭(반드시 플립-플롭일 필요는 없음, 임의의 저장소가 사용될 수 있음)과 같은 저장소를 요구한다.
S5에서, WL1이 판독되고 관련된 데이터가 저장된다. S6에서, 비정밀 프로그래밍이 WL2에 대해 수행된다. 일반적으로, WLn-1 상의 비정밀 분포가 WLn 상의 비정밀 프로그래밍 이전에 판독된다. 상기 WLn-1의 비정밀 분포는 WLn-2 상의 정밀 프로그래밍으로부터의 커플링에 의해 단지 최소로 교란된다. S6 동안, WL0의 저장 소자들은 정밀 상태에 있고, WL1의 저장 소자들은 비정밀 상태에 있고, 그리고 WL3과 WL4의 저장 소자들은 E 상태에 있다. S7에서, WL1의 판독 데이터는 WL1의 정밀 프로그래밍에서의 사용을 위해 액세스된다. WL1의 판독 데이터는 정밀 프로그래밍 이후에 버려질 수 있다. S8에서, WL2가 판독되고 관련된 데이터가 저장된다. S9에서, 비정밀 프로그래밍이 WL3에 대해 수행된다. WL0과 WL1의 저장 소자들은 정밀 상태에 있고, WL2의 저장 소자들은 비정밀 상태에 있으며, WL4의 저장 소자들은 E 상태에 있다. S10에서, WL2에 대한 판독 데이터가 WL2의 정밀 프로그래밍에서의 사용을 위해 액세스된다. WL2의 판독 데이터는 정밀 프로그래밍 이후에 버려질 수 있다. 도시되지 않은 추가적인 단계들이 후속적으로 수행된다.
판독 동작을 복수-패스 프로그래밍에 더하는 경우의 간접 비용(overhead cost)은 비정밀 분포를 판독하기 위한 시간에 의해 초래됨을 이해해야 한다. 그러나, 전형적으로 판독 시간은 총 프로그래밍 시간의 작은 일부분이기 때문에, 이러한 비용은 낮다.
도 5b는 도 5a와 비교해 봤을 때, 데이터가 프로그래밍 패스들 사이에서 판독되지 않는 2-패스 프로그래밍 기술의 세부사항을 나타낸 것이다. 단계들(S1, S3, S4, S6, S7, S9 및 S10)은 도 5a에서 동일한 번호를 가진 단계들에 대응한다. 이러한 방법에서, 적어도 두 개의 워드 라인들로부터의 프로그램 데이터가 메모리 디바이스 혹은 저장 시스템 내의 어딘가에 동시에 저장될 필요가 있다. 예를 들어, WL0의 데이터는, 비정밀 프로그래밍이 수행된 때(S1)부터 정밀 프로그래밍이 WL0에 대해 수행될 때(S4)까지 저장된다. WL1의 데이터는, 비정밀 프로그래밍이 수행된 때(S3)부터 정밀 프로그래밍이 WL1에 대해 수행될 때(S7)까지 저장된다. WL2의 데이터는, 비록 이로만 한정되는 것은 아니지만, 비정밀 프로그래밍이 수행된 때(S6)부터 정밀 프로그래밍이 WL2에 대해 수행될 때(S10)까지 저장된다. 따라서, 비록 이로만 한정되는 것은 아니지만, WL0 및 WL1이 동시에 저장되며, WL1 및 WL2이 동시에 저장되며, WL2 및 WL3이 동시에 저장된다.
도 6a는 도 3의 2-패스 프로그래밍 기술의 제1의 비정밀 패스 이후의 임계 전압에서의 변화를 나타낸 것이다. 이러한 프로그래밍 기술은 풀 시퀀스 프로그래밍(full sequence programming)으로 언급된다. 이러한 프로그래밍 기술의 이 부분은 더 낮은 혹은 비정밀 검증 전압을 사용한다.
비정밀 프로그래밍은, 정밀 프로그래밍보다 더 빠른 속도(더 큰 ΔVTH/sec)에서 보다 낮은 정밀도로 저장 소자들이 그들의 최종 의도된 상태를 향해 프로그래밍되는 것을 말한다. 이러한 더 빠른 프로그래밍은, 예를 들어, 더 큰 진폭을 갖거나 더 빠른 속도로 증가하는 프로그램 펄스들을 인가함으로써 달성될 수 있다. 저장 소자들은 최종 혹은 정밀 검증 레벨 아래에 오프셋된 검증 레벨까지 프로그래밍된다. 비정밀 검증 레벨은 일반적으로 정밀 검증 레벨에 근접해 있지만, 저장 소자들이 정밀 검증 레벨을 너무 멀리 지나치는 오버슈팅(overshoot)을 방지할 만큼 충분히 낮다. 즉, 비록 정밀 검증 레벨을 너무 멀리 지나쳐서 셀들을 프로그래밍하는 것이 결과적으로 정밀 분포의 폭을 넓게 하지만, 도시된 바와 같이, 셀들은 정밀 검증 레벨을 넘어 프로그래밍될 수 있다.
예를 들어, 소거 상태(E) 및 세 개의 더 높은 상태(A, B 및 C)를 포함하는 네 개의 데이터 상태가 있을 수 있다. 두 개, 네 개, 여덟 개, 열여섯 개 혹은 그 이상을 포함하는 임의 개수의 상태들이 사용될 수 있다. 저장 소자는 최초에 E 상태에 존재한다. 제1의 비정밀 프로그래밍 패스가 상태들(A, B 및 C)에 대해 검증 전압들(VVA - COARSE, VVB - COARSE 및 VVC - COARSE)의 제1의 비정밀 세트를 각각 사용한다. 비정밀 프로그래밍 패스는 대안적으로, 복수 "패스 기입(Pass Write, PW)" 프로그래밍 프로세스의 제 1 패스로서 언급된다. 비정밀 프로그래밍 패스 직후에, 소정의 워드 라인, 예를 들어 WLn과 관련된 저장 소자들이, 긴 파선들로 표시된 VTH 분포를 가진다. WLn 상의 임계 전압에서의 전이(transition)는 상대적으로 크며, 이것은 결과적으로 인접하는 워드 라인의 저장 소자들에 커플링을 일으킨다. 인접하는 소스측 워드 라인, WLn-1 상의 정밀 프로그래밍 이후에, WLn에 대한 VTH 분포는 짧은 파선들로 표시된 바와 같이 약간 더 높게 시프트된다. 인접하는 드레인측 워드 라인, WLn+1 상의 비정밀 프로그래밍 이후에, WLn에 대한 VTH 분포는 점선들로 표시된 바와 같이 훨씬 더 높게 시프트된다. 따라서, 비정밀 프로그래밍의 커플링 효과가 정밀 프로그래밍의 커플링 효과보다 더 강하다.
WLn-1 상의 정밀 프로그래밍 이후의 WLn 상의 비정밀 분포는 약간의 판독 마진(read margin)을 가지는바, 예를 들어 분포들은 오버랩되지 않는다. 따라서, WLn-1 상의 정밀 프로그래밍 이후에 WLn 상의 비정밀 분포를 판독하는 것(짧은 파선들로 표시된 분포를 판독하는 것)은 정확한 결과를 가져올 것이다. ECC가 사용되는 경우, 분포들의 일정 양의 오버랩이 허용될 수 있고 ECC가 결함 비트들을 정정하기 위해 사용될 수 있다. 비정밀 분포를 판독하기 위한 최적의 판독 레벨은 정밀 분포에 대한 것보다 약간 더 낮아야만 한다. 예를 들어, 비정밀 분포에 대한 판독 레벨들은, 도 6a에 도시된 바와 같이, VCGR -A( COARSE ), VCGR -B( COARSE ) VCGR -C( COARSE )이고, 정밀 분포에 대한 판독 레벨들은, 도 6b에 도시된 바와 같이, VCGR -A( FINE ), VCGR -B( FINE ) 및 VCGR -C( FINE )이다. WLn+1 상의 비정밀 프로그래밍 이후의 WLn 상의 비정밀 분포는 양호한 판독 마진을 갖지 못하는바, 예를 들어, 분포들은, 제시된 바와 같이, 오버랩할 수 있다.
도 6b는 도 3의 2-패스 프로그래밍 기술의 제2의 정밀 패스 이후의 임계 전압에서의 변화를 나타낸 것이다. 도 6a의 비정밀 패스 이후에 수행되는 제2의 정밀 프로그래밍 패스는, 상태들(A, B 및 C)에 대해 검증 전압들(VVA - FINE, VVB - FINE 및 VVC -FINE)의 제2의 더 높은 세트를 각각 사용한다. 따라서, 검증 전압들의 제2의 세트에서의 각각의 n번째 검증 전압은 일정 증분치(이것은 서로 다른 상태들에 대해 동일할 수 있거나 혹은 서로 다를 수 있음)만큼 검증 전압들의 제1의 세트에서의 각각의 n번째 검증 전압보다 더 높다. 이것은 복수 "패스 기입" 프로그래밍 프로세스의 제 2 패스이다. WLn의 정밀 프로그래밍 패스인 제 2 프로그래밍 패스 직후에, 저장 소자들은 일점 쇄선들로 표시된 VTH 분포를 갖는다. 점선들로 표시된 도 6a의 분포가 참조 목적으로 도 6b에서 반복되며, 이 경우 화살표는 분포의 폭이 얼마나 좁아졌는 지를 나타낸다. 여기서, 저장 소자들은 그들의 최종 의도된 상태로 프로그래밍된다. 그러나, WLn+1 상의 정밀 프로그래밍 이후에 WLn에 대한 VTH 분포는 실선으로 표시된 바와 같이 약간 더 높게 시프트된다.
정밀 프로그래밍은, 비정밀 프로그래밍보다 더 느린 속도(더 느린 ΔVTH/sec)에서 보다 높은 정밀도로 저장 소자들이 그들의 최종 의도된 상태를 향해 프로그래밍되는 것을 말한다. 이러한 더 느린 프로그래밍은, 예를 들어, 더 낮은 진폭을 갖거나 더 느른 속도로 증가하는 프로그램 펄스들을 인가함으로써 달성될 수 있다.
도 7a는 데이터가 프로그래밍 패스들 사이에서 판독되고, 후속적으로 액세스되고, 에러가 정정되는 복수-패스 프로그래밍 프로세스를 개관한 도면이다. 초기에, 프로그래밍돼야하는 데이터는 ECC 코딩된 형태로 있을 수 있다. 일반적으로, 에러를 검출하고 정정하는 에러 정정 코드, 혹은 에러를 검출만하고 정정은 하지 않는 에러 검출 코드가 사용될 수 있다. 복수-패스 프로그래밍 동작은 단계(700)에서 시작한다. 단계(702)에서, 비정밀 프로그래밍이 특정 워드 라인(예를 들어, WLn)에 대해 수행된다. 단계(704)에서, 상기 특정 워드 라인에 강하게 커플링되지 않은 또 다른 워드 라인(예를 들어, WLn-1) 상에서 프로그래밍이 수행된다. 예를 들어, 이 프로그래밍은 WLn-1 상에서의 정밀 프로그래밍일 수 있다. 단계(706)에서는 상기 특정 워드 라인이 판독되고 관련된 데이터가 저장된다. 단계(708)에서, 상기 특정 워드 라인에 상당량의 커플링을 일으키는, 또 다른 워드 라인에 대한 프로그래밍이 수행된다. 예를 들어, 이 프로그래밍은 WLn+1의 비정밀 프로그래밍이 될 수 있다. 구체적으로 살펴보면, 단계(710)에서, 상기 특정 워드 라인의 저장 소자들의 VTH는 커플링으로 인해 시프트된다.
단계(712)는 WLn의 저장된 데이터에 액세스하는 것과, 그리고 ECC를 이용하는 에러 정정 프로세스를 수행하는 것을 포함한다. 단계(714)에서, 상기 특정 워드 라인에 대한 정밀 프로그래밍이 액세스된 데이터를 사용하여 수행되고, 상기 특정 워드 라인에 대해 저장된 데이터는 단계(716)에서 버려진다. 예를 들어, 이러한 데이터는 더 이상 필요가 없기 때문에 오버라이트될 수 있다.
도 7b는 도 3의 2-패스 프로그래밍 기술에 대응하는 복수-패스 프로그래밍 프로세스를 나타낸 것이다. 프로그래밍 동작은 단계(720)에서 시작한다. 단계(725)에서, 워드 라인 인덱스는 0으로 설정되고, 이것은 제 1 워드 라인을 나타낸다. 워드 라인들은 전형적으로, NAND 스트링과 같은 워드 라인들의 세트의 소스측에서 0부터 시작하여 순차적으로 번호가 부여된다. 단계(730)는 WL0의 비정밀 프로그래밍을 포함하고, 단계(735)는 WL0을 판독하는 것을 포함한다. 단계(755)는 인덱스를 증분시키는바, 예를 들어 1로 증분시킨다. 결정 단계(760)에서, 만약 인덱스가 마지막 워드 라인에 있지 않은 경우, 흐름은 단계(740)로 진행하는바, 이 단계는 WLi(예를 들어, WL1)의 비정밀 프로그래밍을 포함하고, 단계(745)는 WLi-1(예를 들어, WL0)의 비정밀 판독 데이터에 액세스하는 것과, 그리고 WLi-1의 정밀 프로그래밍을 수행하는 것을 포함한다. 단계(750)는 WLi(예를 들어, WL1)를 판독하는 것과, 그리고 관련된 데이터를 저장하는 것을 포함한다.
단계(755)는 인덱스를 다시 증분시키는바, 예를 들어 2로 증분시킨다. 결정 단계(760)에서, 만약 인덱스가 마지막 워드 라인에 있지 않은 경우, 흐름은 단계(740)로 진행하는바, 이 단계는 WLi(예를 들어, WL2)의 비정밀 프로그래밍을 포함하고, 단계(745)는 WLi-1(예를 들어, WL1)의 비정밀 판독 데이터에 액세스하는 것과, 그리고 WLi-1의 정밀 프로그래밍을 수행하는 것을 포함한다. 단계(750)는 WLi(예를 들어, WL2)를 판독하는 것과, 그리고 관련된 데이터를 저장하는 것을 포함한다.
이에 따라, 프로세스는, 결정 단계(760)에서 인덱스가 마지막 워드 라인에 있게 될 때까지 진행된다. 도 3의 예에서, 마지막 워드 라인은 i=4로 나타난다. 이때, 프로그래밍은 마지막 워드 라인보다 더 높은 워드 라인이 없기 때문에 약간 수정된다. 단계(765)에서, WLi(예를 들어, WL4)의 비정밀 프로그래밍이 일어난다. 단계(770)에서, WLi(예를 들어, WL4)의 비정밀 판독 데이터가 액세스되고, 그리고 정밀 프로그래밍이 WLi에 대해 수행된다. 프로그래밍 동작은 최종적으로 단계(775)에서 종료된다. 이것은 하나의 예시적 프로그래밍 시퀀스임에 유의해야 하는바, 왜냐하면 다른 프로그래밍 시퀀스들이 가능하기 때문이다.
도 8은 3-패스 프로그래밍 기술에서의 저장 소자들의 세트 및 관련된 워드 라인들에 대한 프로그래밍 순서를 나타낸 것이다. 도 3에서와 같이, 그 각각이 정방형으로 표현된 저장 소자들의 세트는, 워드 라인들(WL0 내지 WL4)의 예시적 세트 및 비트 라인들(BLi-1 내지 BLi+1)의 예시적 세트와 통신한다. 제시된 컴포넌트들은 저장 소자들, 워드 라인들 및 비트 라인들의 더 큰 세트의 서브세트일 수 있다. 본 예에서는, 다섯 개의 워드 라인들이 제공되는바, 여기서 WL0은 소스측 말단 워드 라인이고, WL4는 드레인측 말단 워드 라인이다. 즉, WL0은 NAND 스트링과 같은 직렬 연결된 저장 소자들의 세트의 소스 말단에 있고, WL4는 직렬 연결된 저장 소자들의 세트의 드레인 말단에 있다. 제시된 예는 본 발명의 일 실시예의 실시형태를 설명하는 데 사용된다. 단계들(S1 내지 S20)은 순차적으로 일어나는 동작들을 표시한다.
상기 프로그래밍의 세 개의 패스들은, 아래에서 상세히 설명되는 바와 같이, 하위 페이지 패스, 상위 페이지 비정밀 패스(또는 제1의 상위 페이지 패스), 및 상위 페이지 정밀 패스(또는 제2의 상위 페이지 패스)이다. S1은 WL0의 하위 페이지 프로그래밍을 포함하고, S2는 WL1의 하위 페이지 프로그래밍을 포함하고, S3은 WL0의 상위 페이지 비정밀 프로그래밍을 포함하고, S4는 WL2의 하위 페이지 프로그래밍을 포함하고, 그리고 S5는 WL0을 판독하는 것을 포함한다. S6은 WL1의 상위 페이지 비정밀 프로그래밍을 포함하는바, 이것은 WL0에 대한 커플링 간섭을 일으킨다. S7은 이전에 판독된 데이터에 액세스하는 것과, 그리고 WL0의 상위 페이지 정밀 프로그래밍을 수행하는 것을 포함한다. S8은 WL3의 하위 페이지 프로그래밍을 포함한다. S9는 WL1을 판독하는 것을 포함한다. S10은 WL2의 상위 페이지 비정밀 프로그래밍을 포함하는바, 이것은 WL1에 대한 커플링 간섭을 일으킨다. S11은 이전에 판독된 데이터에 액세스하는 것과, 그리고 WL1의 상위 페이지 정밀 프로그래밍을 수행하는 것을 포함한다. 이에 따라, 프로세스는 최종의 워드 라인에 도달할 때까지 진행된다.
이러한 방법에서, 소정의 워드 라인은 그 다음 더 높은 두 개의 워드 라인이 부분적으로 프로그래밍되기까지 프로그래밍을 완성하지 않는다. 본질적으로, 그 다음 더 높은 첫 번째 워드 라인은 하나의 프로그래밍 패스를 남기고 있고, 두 번째 더 높은 워드 라인은 두 개의 프로그래밍 패스들을 남기고 있다. 예를 들어, WL0이 상위 페이지 정밀 프로그래밍을 완성할 때, WL1은 단지 상위 페이지 비정밀 프로그래밍만을 완성하고, WL2는 단지 하위 페이지 프로그래밍만을 완성한다.
도 9는 데이터가 프로그래밍 패스들 사이에서 판독되는 도 8의 3-패스 프로그래밍 기술의 세부사항을 나타낸 것이다. 단계들(S1 내지 S11)은 도 8에서 동일한 번호를 갖는 단계에 대응한다. "E"는 소거된 상태를 표시한다. 시간은 오른쪽으로 진행한다. S1 이전에, 모든 워드 라인들의 저장 소자들은 소거된 상태(E)에 있다. S1에서, 하위 페이지 프로그래밍이 WL0에 대해 수행되고, 이후 WL0의 저장 소자들은 하위 페이지 상태("하위 페이지")에 있게 된다. 하위 페이지 프로그래밍은 또한, 저장 소자들이 두 개의 가능한 상태들 중 하나에 있을 때, 2-레벨 프로그래밍이다.
WL1 내지 WL4의 저장 소자들은 E 상태에 있다. S2에서, 하위 페이지 프로그래밍이 WL1에 대해 수행되고, 이후에 WL1의 저장 소자들은 하위 페이지 상태에 있게 된다. WL0의 저장 소자들은 하위 페이지 상태에 있고, WL2 내지 WL4는 E 상태에 있다. S3에서, WL0은 상위 페이지 비정밀 프로그래밍("비정밀 프로그램")을 겪게 된다. WL1의 저장 소자들은 하위 페이지 상태에 있고, WL2 내지 WL4는 E 상태에 있다. S4에서, 하위 페이지 프로그래밍이 WL2에 대해 수행되고, 이후에 WL2의 저장 소자들은 하위 페이지 상태에 있게 된다. WL0의 저장 소자들은 비정밀 상태에 있고, WL1의 저장 소자들은 하위 페이지 상태에 있으며, WL3 내지 WL4의 저장 소자들은 E 상태에 있다.
S5에서, WL0이 판독되고 관련된 데이터들이 저장된다. S6에서, 비정밀 프로그래밍이 WL1에 대해 일어난다. WL0의 저장 소자들은 비정밀 상태에 있고, WL2의 저장 소자들은 하위 페이지 상태에 있으며, WL3 내지 WL4의 저장 소자들은 E 상태에 있다. S7에서, WL0 데이터가 액세스되고, WL0의 정밀 프로그래밍을 위해 사용된다. 그 다음에, WL0 데이터는 버려질 수 있다. S8에서, 하위 페이지 프로그래밍이 WL3에 대해 일어난다. WL0의 저장 소자들은 정밀, 상위 페이지 상태에 있고, WL2의 저장 소자들은 비정밀, 상위 페이지 상태에 있으며, WL4의 저장 소자들은 E 상태에 있다. S9에서, WL1이 판독되고 관련된 데이터가 저장된다. S10에서, 비정밀 프로그래밍이 WL2에 대해 일어난다. WL0의 저장 소자들은 정밀, 상위 페이지 상태에 있고, WL2의 저장 소자들은 비정밀, 상위 페이지 상태에 있으며, WL3의 저장 소자들은 하위 페이지 상태에 있고, WL4의 저장 소자들은 E 상태에 있다. S11에서, WL1이 정밀 프로그래밍을 겪게 되고, WL1의 판독 데이터는 버려질 수 있다. 한번에 단지 하나의 워드 라인으로부터의 판독 데이터가 저장될 필요가 있음을 다시 한번 유의해야 한다. 이것은 저장 요건을 감소시킬 뿐만 아니라 데이터를 주변으로 이동시키기 위해 필요한 동작을 감소시킨다.
예를 들어, 4-레벨 저장 소자에 있어서, 본 명세서에서 설명되는 바와 같은 판독 동작 없이, 가능한 일 실시예에서, 프로그래밍의 작업 영역은 2비트의 저장소를 요구하고, 후속 동작을 위한 일시적 버퍼는 4비트(정밀 프로그래밍을 위해 사용될 WLn+1 데이터를 위한 2비트와, 정밀 프로그래밍을 위해 사용될 WLn 데이터를 위한 2비트를 포함함)의 저장소를 필요로 한다. 따라서, 각각의 저장 소자에 대해 총 6비트의 저장 공간이 필요하다. 예를 들어, 작업 영역은 데이터 래치 또는 플립 플롭에 의해 제공될 수 있고, 반면에 일시적 버퍼는 데이터 래치, 플립 플롭, 바이너리 버퍼 또는 바이너리 메모리에 의해 제공될 수 있다. 보다 세부적인 것에 대해서는 도 14 및 도 15를 참조하기 바란다. 이와는 대조적으로, 본 명세서에서 설명되는 바와 같은 판독 동작이 있는 경우, 프로그래밍을 위한 작업 영역은 2비트의 저장소를 요구하고, 일시적 버퍼는 2비트(정밀 프로그래밍을 위해 사용될 WLn 데이터를 위한 2비트를 포함함)의 저장소를 필요로 한다. 따라서, 각각의 저장 소자에 대해 총 4비트의 저장 공간이 필요하다. 본 명세서에서 설명되는 프로그래밍 기술을 통해, 저장 소자들당 2비트가 절약되는 결과가 얻어진다.
또 다른 가능한 실시예에서, 작업 영역은 3비트의 저장소를 요구하고, 후속 동작을 위한 일시적 버퍼는 2비트(정밀 프로그래밍을 위해 사용될 WLn 데이터를 위한 2비트를 포함함)의 저장소를 필요로 한다. 따라서, 각각의 저장 소자에 대해 총 5비트의 저장 공간이 필요하다. 대조적으로, 본 명세서에서 설명되는 프로그래밍 기술을 통해, 저장 소자들당 1비트가 절약되는 결과가 얻어진다.
워드 라인에는 수백 개 혹은 수천 개의 저장 소자들이 있기 때문에, 저장 요건에서의 절약은 상당히 크다. 비용 절약을 목적으로 저장 요건이 감소된 메모리 디바이스가 설계될 수 있다. 더욱이, 전력 소비가 감소될 수 있다.
도시되지 않은 추가적인 단계들이 또한 후속적으로 수행됨에 유의해야 한다.
도 10a 내지 도10c는 도 8과 관련된 3-패스 프로그래밍 기술에 대한 임계 전압 분포를 나타낸 것이다.
도 10a는 중간 검증 전압이 사용되는, 제1의 하위 페이지 프로그래밍 패스 이후의 임계 전압에서의 변화를 도시한 것이다. 여기서, 상기 프로그래밍 프로세스는 세 단계로 일어난다. 초기 단계는, 최종 상태 B 혹은 C로 프로그래밍될 저장 소자들에 대해, 중간 검증 전압, VVINT를 사용하여 프로그래밍을 수행하는 것을 포함한다. 최종 상태 A로 프로그래밍될 저장 소자들은 소거 상태에 있다. 이러한 초기 단계는 데이터의 하위 페이지를 프로그래밍하는 것을 포함한다. WLn의 하위 페이지 프로그래밍 직후에, WLn에 대한 INT VTH 분포가 INT 분포에 대한 긴 파선으로 표시된다. WLn-1 상에서의 비정밀 프로그래밍 후에, INT VTH 분포는 짧은 파선으로 표시된 바와 같이 약간 더 높게 시프트된다. WLn+1 상에서의 비정밀 프로그래밍 후에, WLn에 대한 INT VTH 분포는 점선으로 표시된 바와 같이 훨씬 더 높게 시프트된다.
도 10b는 더 낮은 검증 전압들이 사용되는 제2의 패스(비정밀 상위 페이지 패스) 이후의 임계 전압에서의 변화를 도시한 것이다. 도 10a의 초기 단계 이후에, 제1의 "패스 기입" 프로그래밍 패스가, 상태들(A, B 및 C)에 대해 검증 전압들(VVA -COARSE, VVB - COARSE 및 VVC - COARSE)의 제1의 하위 세트를 각각 사용한다. 최종 상태 A로 프로그래밍될 저장 소자들은 상태 E로부터 시작하여 프로그래밍되고, 최종 상태 B 혹은 C로 프로그래밍될 저장 소자들은 상태 INT로부터 시작하여 프로그래밍된다. 도 10a의 점선이 참조를 위해 도 10b에서 반복된다. 저장 소자들은 최종 상태보다 더 낮게 오프셋된 레벨로 프로그래밍된다. 이러한 프로그래밍 단계는 데이터의 상위 페이지를 프로그래밍하는 제1의 비정밀 패스일 수 있다.
WLn의 비정밀 상위 페이지 프로그래밍 패스 직후에, 예를 들어, WLn의 저장 소자들은 일점 쇄선들로 표시된 VTH 분포를 갖는다. WLn-1 상에서 정밀 프로그래밍 이후에, WLn에 대한 VTH 분포는 이점 쇄선들로 표시된 바와 같이 약간 더 높게 시프트된다. WLn+1 상에서 비정밀 프로그래밍 이후에, WLn에 대한 VTH 분포는 대시-대시-도트 라인(dash-dash-dot line)들로 표시된 바와 같이 훨씬 더 높게 시프트된다. 비정밀 상위 페이지 분포에 대한 판독 레벨들은 VCGR -A( COARSE ), VCGR -B( COARSE ) 및 VCGR-C(COARSE)이다. 상태들(A, B 및 C)에 대한 예시적 제어 게이트 판독 전압들(VCGR -A(COARSE), VCGR -B( COARSE ) 및 VCGR -C( COARSE ))이 각각 참조를 위해 또한 도시된다.
도 10c는 더 높은 검증 전압이 사용되는 제3의 정밀 상위 페이지 패스 이후의 임계 전압에서의 변화를 나타낸다. 도 10b로부터 도 10c로의 전이는 도 6a로부터 도 6b로의 전이와 유사하다. 도 10b의 제1의 "패스 기입" 프로그래밍 패스 이후, 제2의 "패스 기입" 프로그래밍 패스는 상태들(A, B 및 C)에 대해 검증 전압들(VVA - FINE, VVB - FINE 및 VVC - FINE)의 제2의 더 높은 세트를 각각 사용한다. 최종 상태(A, B 또는 C)로 프로그래밍될 저장 소자들은, 도 10b로부터 반복되는 대시-대시-도트 라인들로 표시된, 각각의 더 낮은 오프셋 상태들로부터 시작하여 프로그래밍된다. 상태들(A, B 및 C)에 대한 예시적 제어 게이트 판독 전압들(VCGR -A( FINE ), VCGR -B(FINE) 및 VCGR -C( FINE ))이 각각 참조 목적으로 도시된다. 이러한 프로그래밍 단계는 데이터의 상위 페이지를 프로그래밍하는 제2의 정밀 패스일 수 있다.
WLn의 정밀 상위 페이지 프로그래밍 패스 직후에, 저장 소자들은 점선으로 표시된 VTH 분포를 갖는다. 대시-대시-도트 라인으로 표시된 도 10b의 분포는 참조를 위해 도 10c에서도 반복되며, 이 경우 화살표는 분포의 폭이 얼마나 좁아졌는 지를 나타낸다. WLn+1 상에서의 정밀 프로그래밍 이후에, WLn에 대한 VTH 분포는 실선으로 표시된 바와 같이 약간 더 높게 시프트된다.
예시적인 복수-패스 프로그래밍 기술의 보다 상세한 내용이 다음에 설명된다. 예시적 일 실시예에서, 비휘발성 저장 소자들이, 네 개의 데이터 상태를 사용하여, 저장 소자당 2비트의 데이터를 저장한다. 예를 들어, 상태 E는 소거된 상태이고, 상태들(A, B 및 C)은 프로그래밍된 상태라고 가정한다. 상태 E는 데이터 11을 저장한다. 상태 A는 데이터 01을 저장한다. 상태 B는 데이터 10을 저장한다. 상태 C는 데이터 00을 저장한다. 이것은 비-그레이 코딩(non-Gray coding)의 예인바, 왜냐하면 인접하는 상태들(A와 B) 간에 양쪽 비트가 변하기 때문이다. 데이터를 물리적 데이터 상태로 인코딩하는 다른 인코딩이 또한 사용될 수 있다. 각각의 저장 소자는 데이터의 두 페이지를 저장한다. 참조 목적으로, 데이터의 이러한 페이지들은 상위 페이지와 하위 페이지로 불릴 것이지만, 이들에게 다른 명칭이 부여될 수 있다. 상태 A를 참조하면, 상위 페이지는 비트 0을 저장하고 하위 페이지는 비트 1을 저장한다. 상태 B를 참조하면, 상위 페이지는 비트 1을 저장하고 하위 페이지는 비트 0을 저장한다. 상태 C를 참조하면, 양쪽 페이지들은 비트 데이터 0을 저장한다.
초기 프로그래밍 패스에서, 하위 페이지가 프로그래밍된다. 만약 하위 페이지가 데이터 1을 유지해야 한다면, 저장 소자 상태는 상태 E에서 유지된다. 만약 데이터가 0으로 프로그래밍돼야 한다면, 저장 소자의 전압의 임계치는, 저장 소자가 상태 INT로 프로그래밍되도록, 상승된다. 일 실시예에서, 한 저장 소자가 상태 E로부터 상태 INT로 프로그래밍된 이후에, NAND 스트링에서 그 이웃 저장 소자(WLn+1)는 자신의 하위 페이지에 대해 프로그래밍될 것이다. 예를 들어, 도 1b를 다시 참조하면, 저장 소자(106)에 대한 하위 페이지가 프로그래밍된 후에, 저장 소자(104)에 대한 하위 페이지가 프로그래밍된다. 저장 소자(104)를 프로그래밍한 후에, 만약 저장 소자(104)가 상태 E로부터 상태 INT로 상승된 VTH를 갖는다면, 플로팅 게이트 대 플로팅 게이트 커플링 효과가 저장 소자(106)의 표면 VTH를 상승시킬 것이다. 이것은 상태 INT에 대한 VTH 분포의 폭을 넓히는 결과가 생기게 할 것이다. VTH 분포의 표면적 폭 넓어짐은 상위 페이지를 프로그래밍할 때 대부분 치료될 것이다.
만약 저장 소자가 상태 E에 있고 상기 상위 페이지가 1에서 유지돼야 한다면, 저장 소자는 상태 E로 유지될 것이다. 만약 저장 소자가 상태 E에 있고 그 상위 페이지 데이터가 0으로 프로그래밍돼야 한다면, 저장 소자의 VTH는 저장 소자가 상태 A에 있도록 상승될 것이다. 만약 저장 소자가 INT 임계 전압 분포에 있고 상위 페이지 데이터가 1에서 유지돼야 한다면, 저장 소자는 최종 상태 B로 프로그래밍될 것이다. 만약 저장 소자가 INT 임계 전압 분포에 있고 상위 페이지 데이터가 데이터 0으로 돼야한다면, 저장 소자의 VTH는 저장 소자가 상태 C에 있도록 상승될 것이다. 대안적인 상태 코딩의 일 예는, 분포 INT로부터, 상위 페이지 데이터가 1일 때 상태 C로 이동하고, 그리고 상위 페이지 데이터가 0일 때 상태 B로 이동하는 것이다.
비록 도 10a 내지 도 10c가 네 개의 데이터 상태들과 데이터의 두 페이지들에 대한 예를 제시하지만, 본 명세서에서 설명되는 개념은 임의 개수의 상태들과 페이지들을 갖는 다른 구현에도 적용될 수 있다.
도 11은 도 8의 3-패스 프로그래밍 기술에 대응하는 복수-패스 프로그래밍 프로세스를 나타낸 것이다. 프로그래밍 동작은 단계(1100)에서 시작한다. 단계(1105)에서, 초기 소스측 워드 라인을 나타내도록 워드 라인 인덱스가 0으로 설정된다. 단계(1110)는 WL0의 하위 페이지 프로그래밍을 포함한다. 단계(1115)는 WL1의 하위 페이지 프로그래밍을 포함한다. 단계(1120)는 WL0의 비정밀, 상위 페이지 프로그래밍을 포함한다. 단계(1145)는 인덱스를, 예를 들어, 처음에 i=1로 증분시킨다. 만약, 결정 단계(1150)에서 마지막 워드의 인덱스에 도달하지 않은 경우, 단계들(1125 내지 1145)의 프로세스가 수행된다. 구체적으로, 단계(1125)는 WLi+1(예를 들어, WL2)의 하위 페이지 프로그래밍을 포함하고, 단계(1130)는 WLi-1(예를 들어, WL0)을 판독하는 것과, 그리고 관련된 데이터를 저장하는 것을 포함하고, 그리고 단계(1135)는 WLi(예를 들어, WL1)의 비정밀 프로그래밍을 포함한다. 단계(1140)는 WLi-1(예를 들어, WL0)의 비정밀 판독 데이터에 액세스하는 것과, 그리고 WLi-1의 정밀, 상위 페이지 프로그래밍을 수행하는 것을 포함한다. 단계(1145)는 인덱스를 i=2로 증분시키고, 그리고 단계들(1125 내지 1145)의 프로세스가 다시 수행된다. 구체적으로, 단계(1125)는 WLi+1(예를 들어, WL3)의 하위 페이지 프로그래밍을 포함하고, 단계(1130)는 WLi-1(예를 들어, WL1)을 판독하는 것과, 그리고 관련된 데이터를 저장하는 것을 포함하며, 그리고 단계(1135)는 WLi(예를 들어, WL2)의 비정밀 프로그래밍을 포함한다. 단계(1140)는 WLi-1(예를 들어, WL1)의 비정밀 판독 데이터에 액세스하는 것과, 그리고 WLi-1의 정밀, 상위 페이지 프로그래밍을 수행하는 것을 포함한다.
인덱스가 단계(1145)에서 다시 증분되고, 그리고 결정 단계(1150)에서 마지막 워드 라인에 도달할 때까지 단계들(1125 내지 1145)이 다시 수행된다. 마지막 워드 라인에 도달할 때, 단계들(1155 내지 1190)이 수행되는바, 이것은 마지막 몇 개의 워드 라인들에 대한 프로그래밍 프로세스를 끝내는 것을 포함한다. 예를 들어, 도 8에 제시된 바와 같이, 단지 예시적인 것으로서, 마지막 워드 라인에 대해 i=4인 경우, 단계(1155)는 WLi-2(예를 들어, WL2)를 판독하는 것을 포함하고, 단계(1160)는 WLi-1(예를 들어, WL3)의 비정밀, 상위 페이지 프로그래밍을 포함하며, 그리고 단계(1165)는 WLi-2(예를 들어, WL2)의 비정밀 판독 데이터에 액세스하는 것과, 그리고 이 데이터를 이용하여 WLi-2의 정밀 프로그래밍을 수행하는 것을 포함한다. 단계(1170)는 WLi-1(예를 들어, WL3)을 판독하는 것을 포함하고, 단계(1175)는 WLi(예를 들어, WLi4)의 비정밀, 상위 페이지 프로그래밍을 포함하고, 그리고 단계(1180)는 WLi-1(WL3)의 비정밀 판독 데이터에 액세스하는 것과, 그리고 이 데이터를 이용하여 WLi-1의 정밀 프로그래밍을 수행하는 것을 포함한다. 단계(1185)는 WLi(예를 들어, WL4)를 판독하는 것을 포함하고, 단계(1190)는 WLi(예를 들어, WL4)의 비정밀 판독 데이터에 액세스하는 것과, 그리고 이 데이터를 이용하여 WLi의 정밀 프로그래밍을 수행하는 것을 포함한다. 이러한 프로그래밍 동작은 단계(1195)에서 종료된다.
또 다른 프로그래밍 방법이 도 12a-12e와 연계되어 다음에서 설명된다. 도 12a는 도 8과 유사한 추가된 복수-패스 프로그래밍 프로세스를 나타낸 것으로, 예외적 사항은 상위 페이지 비정밀 프로그래밍이 A 상태 및 B 상태 이전에 C 상태에 대해 수행된다는 것이다. 여기서, S3, S6, S10, S14 및 S17은 상태 C 저장 소자들에 대한 상위 페이지의 비정밀 프로그래밍을 수행하고, 이후 상태 A 및 B 저장 소자들에 대한 상위 페이지의 비정밀 프로그래밍을 수행하는 것을 나타낸다. S7, S11, S15, S18 및 S20은 모든 상태(예를 들어, A, B 및 C)에 대한 상위 페이지의 정밀 프로그래밍을 위한 단계들을 표시한다.
도 12b-12e는 도 12a와 관련된 프로그래밍 기술에 대한 임계 전압 분포를 나타낸 것이다.
도 12b는 중간 검증 전압이 사용되는, 하위 페이지 프로그래밍 이후의 임계 전압에서의 변화를 나타낸 것이다. 이러한 방법은 또한, 교란의 영향과 이웃 셀의 간섭 효과를 감소시킬 수 있다. 이것은 주로 비트 라인 대 비트 라인 간섭 및 프로그램 교란을 감소시킬 수 있다. 이러한 프로그래밍 기술은 "C-우선" 또는 "가장 높은 상태 우선"으로 언급되는바, 여기서 C 상태는 네 개의 데이터 상태를 갖는 복수-레벨 구현에서 가장 높은 상태를 나타낸다. 이러한 기술은 8개, 16개 또는 다른 개수의 상태로 확장될 수 있다. 이러한 기술은, 보다 낮은 상태의 셀들을 비정밀 프로그래밍하기 전에, 비정밀 검증 레벨을 사용하여, 가장 높은 상태의 셀들 모두를 그들의 의도된 상태로 프로그래밍하는 것을 포함한다.
도 12b에서, B 및 C 상태 저장 소자들(즉, 궁극적으로 상태 B 혹은 C로 각각 프로그래밍돼야하는 소자들)은 검증 레벨로서 VVINT를 사용하여 프로그래밍된다. 긴 파선은 WLn의 하위 페이지 프로그래밍 직후의 WLn에 대한 INT VTH 분포를 표시하고, 짧은 파선은 WLn-1의 비정밀 상위 페이지 프로그래밍 이후의 WLn에 대한 INT VTH 분포를 표시하며, 그리고 점선은 WLn+1의 하위 페이지 프로그래밍 이후의 WLn에 대한 INT VTH 분포를 표시한다.
도 12c는, 점선으로 표시된 바와 같이, C 상태 저장 소자들의 비정밀 상위 페이지 프로그래밍 직후의 VTH 분포를 나타낸다. 도 12b의 INT 상태의 점선이 참조 목적으로 반복된다. VTH에서의 전이가 C 상태 저장 소자들에 대해 화살표로 표시된다. B 상태 저장 소자들의 VTH는 INT에서 유지된다.
도 12d는 A 상태 및 B 상태에 대해 더 낮은 검증 전압이 사용되는 A 및 B 저장 소자들의 비정밀 상위 페이지 프로그래밍을 나타낸 것이다. A 상태 저장 소자들은 더 낮은 검증 레벨 VVA - COARSE를 사용하여 상태 E로부터 프로그래밍되고, B 상태 저장 소자들은 검증 레벨 VVB - COARSE를 사용하여 INT 상태로부터 프로그래밍된다. 도 12c의 INT 상태의 점선은 도 12d에서 참조 목적으로 반복된다. 가능한 한 가지 방법으로서, 이때 C 상태 저장 소자들은 프로그래밍으로부터 록-아웃된다. 상기 A 및 B 저장 소자들의 비정밀 상위 페이지 프로그래밍은, 일점 쇄선으로 표시된 분포로부터 이점 쇄선으로 표시된 분포로, C 상태 저장 소자들의 VTH에서의 시프트를 일으킨다. 이점 쇄선은, WLn의 상태 A 및 B 저장 소자들의 비정밀 상위 페이지 프로그래밍 직후의 상태들(A, B 및 C)에 대한 WLn의 VTH 분포를 표시한다. 더욱이, 대시-대시-도트 라인은 WLn-1의 정밀 상위 페이지 프로그래밍 이후의 WLn의 저장 소자들의 VTH 분포를 표시하며, 이 경우 작은 커플링 시프트가 일어나고, 그리고 파선은 WLn+1의 비정밀 상위 페이지 프로그래밍 이후의 WLn의 저장 소자들의 VTH 분포를 표시하고, 이 경우 더 큰 커플링 시프트가 일어난다.
도 12e는 A, B 및 C 상태들에 대해 더 높은 검증 전압이 사용되는 정밀, 상위 페이지 프로그래밍을 도시한 것이다. 구체적으로, A, B 및 C 상태 저장 소자들은 더 높은 검증 레벨들(VVA - FINE, VVB - FINE 및 VVC - FINE)을 사용하여 프로그래밍된다. WLn의 정밀 상위 페이지 프로그래밍의 직후에, 저장 소자들은 점선으로 표시되는 VTH 분포를 갖는다. 파선으로 표시되는 도 12d의 분포가 도 12e에서 참조 목적으로 반복되며, 이 경우 화살표는 분포의 폭이 얼마나 좁아졌는 지를 나타낸다. WLn+1 상에서의 정밀 프로그래밍 이후에, WLn에 대한 VTH 분포는 실선으로 표시된 바와 같이 약간 더 높게 시프트된다.
앞서 언급된 기술을 수행할 수 있는 비휘발성 저장 디바이스의 예시적인 실시예가 다음에 설명된다.
도 13은 도 1a 및 도 1b에 제시된 바와 같은 NAND 저장 소자들의 어레이(1300)의 예를 나타낸다. 각각의 컬럼을 따라, 비트 라인(1306)이 NAND 스트링(1325)에 대한 드레인 선택 게이트의 드레인 단자(1326)에 결합된다. NAND 스트링의 각각의 로우를 따라, 소스 라인(1304)이 NAND 스트링들의 소스 선택 게이트들의 소스 단자들(1328) 모두를 연결할 수 있다.
저장 소자들의 어레이는 저장 소자들의 다수의 블록들로 분할된다. 플래시 EEPROM 시스템에 있어 공통적인 것으로서, 블록은 소거의 단위이다. 즉, 각각의 블록은 함께 소거되는 최소 개수의 저장 소자들을 포함한다. 각각의 블록은 전형적으로 다수의 페이지로 분할된다. 페이지는 프로그래밍의 최소 단위이다. 데이터의 하나 이상의 페이지들이 전형적으로, 일 로우의 저장 소자들에 저장된다. 예를 들어, 임의의 로우는 전형적으로 수 개의 인터리브(interleave)된 페이지들을 포함하거나 혹은 하나의 페이지를 구성할 수 있다. 페이지의 모든 저장 소자들은 함께 판독되거나 프로그래밍될 것이다. 더욱이, 페이지는 하나 이상의 섹터들로부터의 사용자 데이터를 저장할 수 있다. 섹터는 편의적인 사용자 데이터의 단위로서 호스트에 의해 사용되는 논리적 개념이고, 이것은 제어기에 한정되는 오버헤드 데이터를 전형적으로 포함하지 않는다. 오버헤드 데이터는 섹터의 사용자 데이터로부터 계산되는 에러 정정 코드(ECC)를 포함할 수 있다. (아래에 설명되는) 제어기의 일부는, 데이터가 어레이에 프로그래밍되고 있을 때 ECC를 계산하고, 그리고 또한 데이터가 어레이로부터 판독되고 있을 때 ECC를 점검한다. 대안적으로, ECC들 그리고/또는 다른 오버헤드 데이터는, 이들이 관련된 사용자 데이터와는 다른 페이지들 내에, 또는 심지어 다른 블록들 내에 저장된다.
사용자 데이터의 섹터는 전형적으로 512 바이트이며, 이는 자기 디스크 드라이브에서의 섹터의 크기에 대응한다. 전형적으로, 오버헤드 데이터는 부가적인 16-20 바이트이다. 다수의 페이지들(대체로 8 페이지로부터 예를 들어 최대 32 페이지, 64 페이지, 128 페이지 혹은 그 이상의 페이지들)이 블록을 형성한다. 일부 실시예들에서, NAND 스트링들의 로우가 블록을 구성한다.
일 실시예에서, 메모리 저장 소자들은, 충분한 시간 동안 p-웰을 소거 전압(예를 들어, 14-22V)까지 상승시키고, 선택된 블록의 워드 라인들을 접지시킴으로써, 소거된다(이 경우 소스 및 비트 라인들은 플로팅 상태임). 소거는 전체 메모리 어레이, 개별 블록들, 또는 다른 단위의 저장 소자들 상에서 수행될 수 있다.
NAND에 추가하여, 본 명세서에서 제시되는 기술은 NOR를 포함하는 다른 비휘발성 저장 디바이스 기술에 적용될 수 있다.
도 14는 단일의 로우/컬럼 디코더들 및 판독/기입 회로들을 이용하는 비휘발성 메모리 시스템의 블록도이다. 본 도면은 본 발명의 일 실시예에 따른, 저장 소자들의 페이지를 병렬로 판독 및 프로그래밍하기 위한 판독/기입 회로들을 구비한 메모리 디바이스(1396)를 예시한다. 메모리 디바이스(1396)는 하나 이상의 메모리 다이(1398)를 포함할 수 있다. 메모리 다이(1398)는 저장 소자들의 이차원 어레이(1300), 제어 회로(1310) 및 판독/기입 회로들(1365)을 포함한다. 일부 실시예들에서, 저장 소자들의 어레이는 삼차원일 수 있다. 메모리 어레이(1300)는 워드 라인들에 의해 로우 디코더(1330)를 통해 아울러 비트 라인들에 의해 컬럼 디코더(1360)를 통해 어드레싱 가능하다. 판독/기입 회로들(1365)은, 저장 소자들의 페이지가 병렬로 판독 혹은 프로그래밍될 수 있게 하는, 다수의 판독/기입(R/W) 스택(stack)들(1305)을 포함한다. 각각의 판독/기입(R/W) 스택(1305)은 온-칩 회로(on-chip circuitry)이다. 바이너리 버퍼들(1302)이 메모리 어레이와 또한 관련된다. 전형적으로, 오프-칩 제어기(off-chip controller)(1350)가 동일한 메모리 디바이스(1396)(예를 들어, 탈착가능 저장 카드) 내에 하나 이상의 메모리 다이(1398)로서 포함된다. 커맨드들 및 데이터가 라인들(1320)을 통해 호스트와 제어기(1350) 간에 전달되고, 아울러 라인들(1318)을 통해 제어기와 하나 이상의 메모리 다이(1398) 간에 전달된다.
제어 회로(1310)는 메모리 어레이(1000) 상에서 메모리 동작을 수행하기 위해 판독/기입 회로들(1365)과 협동한다. 제어 회로(1310)는 상태 머신(1312), 온-칩 어드레스 디코더(1314) 및 파워 제어 모듈(1316)을 포함한다. 상태 머신(1312)은 메모리 동작들의 칩-레벨 제어를 제공한다. 온-칩 어드레스 디코더(1314)는 디코더들(1330 및 1360)에 의해 사용되는 하드웨어 어드레스에 대한 호스트 혹은 메모리 제어기에 의해 사용되는 것 간의 어드레스 인터페이스를 제공한다. 파워 제어 모듈(1316)은 메모리 동작 동안 워드 라인과 비트 라인에 공급되는 전력 및 전압을 제어한다.
일부 구현들에 있어서, 이러한 컴포넌트들 중 일부는 결합될 수 있다. 다양한 설계로, 메모리 어레이(1300) 이외에, 이러한 컴포넌트들 중 하나 이상은 (단독으로 또는 결합하여) 관리 혹은 제어 회로로 고려될 수 있다. 예를 들어, 하나 이상의 관리 혹은 제어 회로들은 제어 회로(1310), 상태 머신(1312), 디코더들(1314/1360), 파워 제어(1316), R/W 스택들(1305), 판독/기입 회로들(1365), 제어기(1350) 등등 중 어느 하나이거나 이들의 결합을 포함할 수 있다.
또 다른 방법에서, 다양한 주변 회로들에 의한 메모리 어레이(1300)로의 액세스는 어레이의 맞은편 상에서 대칭적으로 구현되어 각 측면 상의 액세스 라인 및 회로의 밀도는 반으로 감소한다. 따라서, 로우 디코더는 두 개의 로우 디코더들로 분할되며, 컬럼 디코더는 두 개의 컬럼 디코더들로 분할된다. 유사하게, 판독/기입 회로들은 어레이(1300)의 하부로부터 비트 라인들에 연결되는 판독/기입 회로들과, 그리고 어레이(1300)의 상부로부터 비트 라인들에 연결되는 판독/기입 회로들로 분할된다. 이런 방식으로, 판독/기입 모듈들의 밀도는 본질적으로 절반으로 감소된다.
제어기(1350)는 ECC 인코더/디코더(1352)와 버퍼 메모리(1354)를 포함할 수 있다. ECC 인코더/디코더(1352)는, 예를 들어 도 7과 연계하여 앞서 설명된 바와 같이, 복수-패스 프로그래밍 프로세스 동안 프로그래밍 및 판독되는 워드 라인의 데이터를 인코딩 및 디코딩하기 위해 사용된다. ECC 코딩을 포함하는 인코딩은 데이터가 비정밀 프로그래밍되기 전에 행해진다. ECC 인코더/디코더(1352)는, 워드 라인으로부터 판독되는 미가공 데이터(raw data)를 디코딩하기 위해, 그리고 에러 정정 및 검출을 수행하기 위해, 그리고 에러 임계치의 초과 여부를 결정하기 위해 유사하게 사용될 수 있다. 버퍼 메모리(1354), 바이너리 버퍼들(1320), 및 데이터 래치들은 전형적으로 임시적 휘발성 데이터 저장 장소이다.
도 15는 감지 블록으로 또한 언급되는 판독/기입 스택의 일 실시예를 나타낸 블록도이다. 언급된 바와 같이, 파티션된 R/W 스택들의 뱅크가, 가능한 일 방법에서, 도 14의 판독/기입 회로들(1365)을 구현하기 위해 제공될 수 있다. 개별 판독/기입 스택(1305)은 각각의 비트 라인들을 감지하기 위한 감지 모듈들(1380)의 스택과, 데이터를 처리하고 데이터 전송을 조정하기 위한 공통 프로세서(1392)와, 각각의 비트 라인을 위한 데이터 래치들(1394)과, 그리고 I/O 인터페이스 모듈(1396)을 포함한다. 따라서, 가능한 일 실시예에서, 각각 비트 라인을 위한 개별 감지 모듈(1380) 및 감지 모듈들(1380)의 세트를 위한 하나의 공통 프로세서(1392)가 있을 수 있다. 감지 모듈들(1380), 공통 프로세서(1392), 및 데이터 래치들(1394)은 데이터 버스(1393)를 통해 통신할 수 있다. 더욱이, 상기 데이터 래치들(1394)은 I/O 인터페이스(1396)와 직접 통신할 수 있다. 상태 머신(1312)(도 14)은 선택에 따라서 스택 버스 제어기를 통해 상기 버스(1393)와 통신할 수 있다. 보다 더 상세한 내용에 대해서는, 참조로 본 명세서에 통합되는, 특허문헌(미국 특허출원 공개 번호 제2006/0140007호 및 제2008/0065813호)을 참조하기를 바란다.
감지 모듈(1380)은 감지 회로(1382), 예를 들어 감지 증폭기를 포함하는바, 이것은 연결된 비트 라인에서의 전도 전류가 소정의 임계 레벨보다 큰지 혹은 작은지 여부를 결정한다. 감지 모듈(1380)은 또한, 연결된 비트 라인 상의 전압 상태를 설정하는데 사용되는 비트 라인 래치(1384)를 포함한다. 예를 들어, 비트 라인 래치(1384)에 래치된 소정의 상태는, 연결된 비트 라인이 프로그램 금지(예를 들어, VDD)를 지정하는 상태까지 풀링(pulling)되게 한다.
공통 프로세서(1392)는 연산을 수행한다. 예를 들어, 그 기능들 중 하나는 감지된 저장 소자에 저장된 데이터를 결정하는 것, 그리고 결정된 데이터를 데이터 래치들(1394)의 세트에 저장하는 것이다. 데이터 래치들(1394)의 세트는 판독 동작 동안 프로세서(1392)에 의해 결정된 데이터 비트들을 저장하는데 사용된다. 이것은 또한, 프로그램 동작 동안 데이터 버스(1320)로부터 입력되는 데이터 비트들을 저장하는 데에 사용된다. 입력되는 데이터 비트들은 메모리에 프로그래밍될 기입 데이터를 나타낸다. I/O 인터페이스(1396)는 데이터 래치들(1394)과 데이터 버스(1320) 간의 인터페이스를 제공한다.
판독 또는 감지 동안, 시스템의 동작은, 어드레싱된 저장 소자에 서로 다른 제어 게이트 전압들의 공급을 제어하는 상태 머신(1312)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응하는 다양한 사전에 정의된 제어 게이트 전압들을 통해 단계별로 진행함에 따라, 감지 모듈(1380)은 이러한 전압들 중 하나에서 트립핑(tripping)하고, 그리고 출력이 감지 모듈(1380)로부터 버스(1393)를 통해 프로세서(1392)로 제공될 것이다. 이때, 프로세서(1392)는, 입력 라인들(1393)을 통한 상태 머신으로부터의 인가된 제어 게이트 전압에 대한 정보 및 감지 모듈의 트리핑 이벤트(tripping event)(들)를 고려함으로써 결과적인 메모리 상태를 결정한다. 그 다음에, 프로세서는 메모리 상태에 대한 바이너리 인코딩을 계산하고, 결과적인 데이터 비트들을 데이터 래치들(1394)에 저장한다. 또 다른 실시예에서, 비트 라인 래치(1384)는, 감지 모듈(1380)의 출력을 래치하기 위한 래치로서, 아울러 앞서 설명된 바와 같은 비트 라인 래치로서, 이중 기능을 수행한다.
일부 구현들은 다수의 프로세서들(1392)을 포함할 수 있다. 일 실시예에서, 각각의 프로세서(1392)가 출력 라인(미도시)을 포함하여, 출력 라인들 각각이 함께 와이어드-OR(wired-OR)되게 된다. 일부 실시예들에서, 출력 라인들은 와이어드-OR 라인에 연결되기 전에 인버트(invert)된다. 이러한 구성은, 프로그램 검증 프로세스 동안, 언제 프로그래밍 프로세스가 완료되는 지를 빠르게 결정할 수 있게 하는데, 그 이유는 와이어드-OR를 수신하는 상태 머신이, 프로그래밍되는 모든 비트들이 원하는 레벨에 언제 도달하는 지를, 결정할 수 있기 때문이다. 예를 들어, 각각의 비트가 자신의 원하는 레벨에 도달하면, 그 비트에 대한 로직 제로(0)가 와이어드-OR 라인에 전송된다(또는 데이터 일(1)이 인버트됨). 모든 비트들이 데이터 0을 출력하면(또는 데이터 일(1)이 인버트되면), 상태 머신은 프로그래밍 프로세스를 종료해야 함을 알게 된다. 각각의 프로세서가 여덟 개의 감지 모듈들과 통신하기 때문에, 상태 머신은 와이어드-OR 라인을 여덟 번 판독할 필요가 있거나, 또는 관련된 비트 라인들의 결과들을 축적하기 위해 로직이 프로세서(1392)에 부가되어 상태 머신은 단지 와이어드-OR 라인을 한 번만 판독할 필요가 있게 된다. 유사하게, 로직 레벨을 올바르게 선택함으로써, 글로벌 상태 머신(global state machine)은 언제 첫 번째 비트가 자신의 상태를 변경하고 그에 따라 알고리즘을 변경하는 지를 검출할 수 있다.
프로그램 또는 검증 동안, 프로그래밍될 데이터는 데이터 버스(1320)로부터 데이터 래치들(1394)의 세트에 저장된다. 상태 머신의 제어하에서, 프로그램 동작은 어드레싱된 저장 소자들의 제어 게이트들에 인가되는 일련의 프로그래밍 전압 펄스들을 포함한다. 각각의 프로그래밍 펄스 다음에는, 저장 소자가 원하는 메모리 상태로 프로그래밍되었는 지를 결정하기 위해 재판독(검증)이 행해진다. 프로세서(1392)는 원하는 메모리 상태에 관하여 재판독된 메모리 상태를 모니터링한다. 두 개가 일치하면, 프로세서(1392)는, 비트 라인이 프로그램 금지를 지정하는 상태까지 풀링되도록, 비트 라인 래치(1384)를 설정한다. 이것은, 비트 라인에 결합된 저장 소자가, 비록 그 제어 게이트 상에 프로그래밍 펄스들이 나타날지라도, 후속적으로 프로그래밍되는 것을 금지시킨다. 다른 실시예들에서, 프로세서는 초기에 비트 라인 래치(1384)를 로드(load)하고, 감지 회로는 이것을 검증 프로세스 동안 금지 값으로 설정한다.
데이터 래치 스택(1394)은 감지 모듈에 대응하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(1380)당 세 개의 데이터 래치들이 있다. 일부 구현에 있어서(하지만, 요구되는 것은 아님), 데이터 래치들은 시프트 레지스터(shift register)로서 구현되어 그 안에 저장된 병렬 데이터가 데이터 버스(1322)를 위해 직렬 데이터로 변환되게 하며, 그 반대 경우의 가능하다. 바람직한 실시예에서, m개의 저장 소자들의 판독/기입 블록에 대응하는 모든 데이터 래치들이 블록 시프트 레지스터를 형성하도록 함께 링크될 수 있으며, 이에 따라 데이터의 블록은 직렬 전송에 의해 입력 또는 출력될 수 있다. 특히, r개의 판독/기입 모듈들의 뱅크는, 마치 이들이 전체 판독/기입 블록에 대한 시프트 레지스터의 일부인 것처럼, 데이터 래치들의 자신의 세트 각각이 데이터를 차례로 데이터 버스 내로 혹은 밖으로 시프트시키도록 조정된다.
비휘발성 저장 디바이스의 다양한 실시예의 구조 및/또는 동작에 대한 추가적인 정보는 특허문헌(미국 특허 번호 제7,196,931호, 미국 특허 번호 제7,023,736호, 미국 특허 번호 제7,046,568호, 미국 특허출원 공개 번호 제2006/0221692호, 및 미국 특허출원 공개 번호 제2006/0158947호)에서 찾을 수 있다. 바로 위에 나열된 특허문헌 다섯 개 모두는 그 전체가 참조로 본 명세서에 통합된다.
언급된 바와 같이, 다수의 R/W 스택들이 제공될 수 있고, 여기서 이들 각각은 사용자 데이터의 각각의 부분을 선택된 워드 라인의 각각의 저장 소자에 저장할 책임이 있다. R/W 스택들은 일반적으로 병렬로 동작할 수 있다.
도 16은 메모리 어레이를, 모든 비트 라인 메모리 아키텍쳐에 대한 블록들로 조직화하거나, 또는 홀수-짝수 메모리 아키텍쳐에 대한 블록들로 조직화하는 예를 도시한다. 메모리 어레이(1600)의 예시적인 구조들이 설명된다. 하나의 예로서, 1,024개의 블록들로서 파티션되는 NAND 플래시 메모리 EEPROM이 설명된다. 각 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 본 예에서, 각각의 블록에는, 비트 라인들(BL0, BL1, ... BL8511)에 대응하는 8,512개의 컬럼들이 있다. 모든 비트 라인(All Bit LIne, ABL) 아키텍쳐(아키텍쳐 1610)로 언급되는 일 실시예에서, 블록의 모든 비트 라인들은 판독 및 프로그램 동작 동안 동시에 선택될 수 있다. 공통 워드 라인을 따라 있고 아울러 임의의 비트 라인에 연결된 저장 소자들이 동시에 프로그래밍될 수 있다.
제시된 예에서는, 64개의 저장 소자들이 직렬로 연결되어 NAND 스트링을 형성한다. 64개의 데이터 워드 라인들이 존재하고, 여기서 각각의 NAND 스트링은 64개의 데이터 저장 소자들을 포함한다. 다른 실시예들에서, NAND 스트링들은 64개보다 많거나 적은 데이터 저장 소자들을 가질 수 있다.
NAND 스트링의 하나의 단자는 (선택 게이트 드레인 라인들(SGD)에 연결된) 드레인 선택 게이트를 통해 대응하는 비트 라인에 연결되고, 다른 단자는 (선택 게이트 소스 라인(SGS)에 연결된) 소스 선택 게이트를 통해 c-소스에 연결된다.
홀수-짝수 아키텍쳐(아키텍쳐 1600)로 언급되는 일 실시예에서, 상기 비트 라인들은 짝수 비트 라인들(BLe) 및 홀수 비트 라인들(BLo)로 분할된다. 이 경우, 공통 워드 라인을 따라 있고 아울러 홀수 비트 라인들에 연결된 저장 소자들이 일 시간에 프로그래밍되고, 공통 워드 라인을 따라 있고 아울러 짝수 비트 라인들에 연결된 저장 소자들이 또 다른 일 시간에 프로그래밍된다. 데이터는 동시에, 서로 다른 블록들에 프로그래밍될 수 있고, 서로 다른 블록들로부터 판독될 수 있다. 본 예에서, 각각의 블록에는, 짝수 컬럼들과 홀수 컬럼들로 분할된 8,512개의 컬럼들이 있다.
판독 동작과 프로그래밍 동작 중 하나의 구성 동안, 4,256개의 저장 소자들이 동시에 선택된다. 선택된 저장 소자들은 동일한 워드 라인 및 동일한 종류의 비트 라인(예를 들어, 짝수 또는 홀수)을 갖는다. 따라서, 로직 페이지를 형성하는 532 바이트의 데이터가 동시에 판독 또는 프로그래밍될 수 있으며, 메모리의 하나의 블록은 적어도 8개의 로직 페이지들(4개의 워드 라인들, 각각은 홀수 페이지들 및 짝수 페이지들을 가짐)을 저장할 수 있다. 복수-상태 저장 소자들에 있어서, 각각의 저장 소자가 2비트의 데이터를 저장할 때(이러한 2비트 각각은 서로 다른 페이지에 저장됨), 하나의 블록은 16개의 로직 페이지들을 저장한다. 다른 크기의 블록들 및 페이지들이 또한 사용될 수 있다.
ABL 또는 홀수-짝수 아키텍쳐에 있어서, 저장 소자들은 p-웰을 소거 전압(예를 들어, 20V)까지 상승시키고, 선택된 블록의 워드 라인들을 접지시킴으로써 소거될 수 있다. 소스 및 비트 라인들은 플로팅 상태에 있다. 소거는 전체 메모리 어레이, 개별 블록들, 또는 메모리 디바이스의 일부인 또 다른 단위의 저장 소자들 상에서 수행될 수 있다. 전자들이 저장 소자들의 플로팅 게이트들로부터 p-웰 영역으로 이동되어, 저장 소자들의 VTH가 음이 되게 된다.
본 발명의 앞서의 상세한 설명은 예시 및 설명 목적으로 제공되었다. 이러한 설명이 본 발명 모두를 말하는 것이 되도록 의도되지 않았으며, 즉 본 발명이 개시되는 형태로 정확히 한정되도록 의도되지 않았다. 앞서의 가르침에 비추어 많은 수정들 및 변형들이 가능하다. 설명된 실시예들은 본 발명의 원리와 그 실제적 응용을 가장 잘 설명하기 위해 선택되었으며, 그럼으로써, 본 발명의 기술분야에서 숙련된 다른 기술자들이, 고려되는 특정 용도에 적합하도록, 다양한 수정을 통해 다양한 실시예로 본 발명을 가장 잘 사용할 수 있게 선택된 것이다. 본 발명의 범위는 첨부되는 특허청구범위에 의해 정의되도록 의도되는 바이다.

Claims (15)

  1. 비휘발성 저장 장치를 동작시키는 방법으로서,
    (a) 특정 비휘발성 저장 소자(208-222)의 임계 전압을 제 1 검증 레벨(VVA-COARSE, VVB-COARSE, VVC-COARSE)보다 큰 제 1 레벨까지 상승시키기 위해 NAND 스트링 내의 상기 특정 비휘발성 저장 소자의 비정밀(coarse) 프로그래밍(S3)을 수행하는 단계 - 상기 비정밀 프로그래밍(S3)을 수행하는 단계는 상기 임계 전압이 상기 제 1 검증 레벨보다 큰지를 검증하는 것을 포함하고, 상기 제 1 검증 레벨은 상기 특정 비휘발성 저장 소자의 타겟 데이터 상태(target data state)(A, B, C)와 관계하며 - 와;
    후속으로, 상기 특정 비휘발성 저장 소자의 임계 전압을 검증 레벨(VVA-FINE, VVB-FINE, VVC-FINE) 위로 상승시키기 위해 상기 NAND 스트링 내의 하나의 인접한 비휘발성 저장 소자의 정밀(fine) 프로그래밍(S4)을 수행하는 단계와;
    (b) 후속으로, 상기 특정 비휘발성 저장 소자의 타겟 데이터 상태를 결정하고 저장된 데이터로서 상기 특정 비휘발성 저장 소자의 타겟 데이터 상태를 저장하기 위해 상기 특정 비휘발성 저장 소자를 판독(S5)하는 단계와;
    후속으로, 상기 특정 비휘발성 저장 소자의 임계 전압을 검증 레벨(VVA-COARSE, VVB-COARSE, VVC-COARSE) 위로 상승시키기 위해 상기 NAND 스트링 내의 다른 인접한 비휘발성 저장 소자의 비정밀 프로그래밍(S6)을 수행하는 단계와; 그리고
    (c) 후속으로, 상기 저장된 데이터에 액세스하는 단계 및 상기 저장된 데이터에 응답하여 상기 특정 비휘발성 저장 소자의 임계 전압을 상기 제 1 레벨로부터 제 2 검증 레벨(VVA-FINE, VVB-FINE, VVC-FINE)보다 큰 제 2 레벨까지 상승시키기 위해 상기 특정 비휘발성 저장 소자의 정밀 프로그래밍(S7)을 수행하는 단계를 포함하여 구성되며,
    상기 제 2 검증 레벨은 상기 타겟 데이터 상태와 관계하는 것을 특징으로 하는 비휘발성 저장 장치를 동작시키는 방법.
  2. 제1항에 있어서,
    상기 다른 인접한 비휘발성 저장 소자의 비정밀 프로그래밍은, 상기 하나의 인접한 비휘발성 저장 소자의 정밀 프로그래밍으로부터의 커플링(coupling)보다 상기 특정 비휘발성 저장 소자에 대해 더 강한 커플링을 초래하는 것을 특징으로 하는 비휘발성 저장 장치를 동작시키는 방법.
  3. 제1항 또는 제2항에 있어서,
    제 1 바이너리 데이터(binary data)를 제공하는 단계 - 상기 (a) 단계의 비정밀 프로그래밍(S3)은 상기 제 1 바이너리 데이터에 응답하며 - 와; 그리고
    상기 판독에 응답하여 제 2 바이너리 데이터로서 상기 저장된 데이터를 제공하는 단계를 더 포함하며,
    상기 (c) 단계의 정밀 프로그래밍(S7)은 상기 제 1 바이너리 데이터가 아닌 상기 제 2 바이너리 데이터에 응답하는 것을 특징으로 하는 비휘발성 저장 장치를 동작시키는 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 (a) 단계(S3) 이전에, 데이터의 제 1 페이지를 사용하여 상기 특정 비휘발성 저장 소자를 프로그래밍(S1)하는 단계를 더 포함하고,
    상기 (a) 단계의 비정밀 프로그래밍(S3)은 데이터의 제 2 페이지를 사용하는 제 1 프로그래밍 패스이고, 상기 (c) 단계의 정밀 프로그래밍(S7)은 데이터의 상기 제 2 페이지를 사용하는 제 2 프로그래밍 패스인 것을 특징으로 하는 비휘발성 저장 장치를 동작시키는 방법.
  5. 제1항 또는 제2항에 있어서,
    상기 판독은 복수의 제어 게이트 판독 전압들(VCGR-A, VCGR-B, VCGR-C)을 상기 특정 비휘발성 저장 소자에 차례대로 인가하는 것을 포함하고, 상기 복수의 제어 게이트 판독 전압들은 대응하는 복수의 데이터 상태들(A, B, C)과 관계하는 것을 특징으로 하는 비휘발성 저장 장치를 동작시키는 방법.
  6. 비휘발성 저장 장치로서,
    비휘발성 저장 소자들(200)의 세트와;
    (a) 특정 비휘발성 저장 소자의 임계 전압을 제 1 검증 레벨(VVA-COARSE, VVB-COARSE, VVC-COARSE)보다 큰 제 1 레벨까지 상승시키기 위해 NAND 스트링 내의 상기 특정 비휘발성 저장 소자의 비정밀 프로그래밍(S3)을 수행하는 수단(1310, 1350) - 상기 비정밀 프로그래밍(S3)을 수행하는 것은 상기 임계 전압이 상기 제 1 검증 레벨보다 큰지를 검증하는 것을 포함하고, 상기 제 1 검증 레벨은 상기 특정 비휘발성 저장 소자의 타겟 데이터 상태(A, B, C)와 관계하며 - 과;
    상기 특정 비휘발성 저장 소자의 임계 전압을 검증 레벨(VVA-FINE, VVB-FINE, VVC-FINE) 위로 상승시키기 위해 상기 NAND 스트링 내의 하나의 인접한 비휘발성 저장 소자의 정밀 프로그래밍(S4)을 후속으로 수행하는 수단과;
    (b) 상기 특정 비휘발성 저장 소자의 타겟 데이터 상태를 결정하고 저장된 데이터로서 상기 특정 비휘발성 저장 소자의 타겟 데이터 상태를 저장하기 위해 상기 특정 비휘발성 저장 소자를 후속으로 판독(S5)하는 수단(1310, 1350)과;
    상기 특정 비휘발성 저장 소자의 임계 전압을 검증 레벨(VVA-COARSE, VVB-COARSE, VVC-COARSE) 위로 상승시키기 위해 상기 NAND 스트링 내의 다른 인접한 비휘발성 저장 소자의 비정밀 프로그래밍(S6)을 후속으로 수행하는 수단과; 그리고
    (c) 상기 저장된 데이터에 후속으로 액세스하고, 상기 저장된 데이터에 응답하여 상기 특정 비휘발성 저장 소자의 임계 전압을 상기 제 1 레벨로부터 제 2 검증 레벨(VVA-FINE, VVB-FINE, VVC-FINE)보다 큰 제 2 레벨까지 상승시키기 위해 상기 특정 비휘발성 저장 소자의 정밀 프로그래밍(S7)을 수행하는 수단(1310, 1350)을 포함하여 구성되며,
    상기 제 2 검증 레벨은 상기 타겟 데이터 상태와 관계하는 것을 특징으로 하는 비휘발성 저장 장치.
  7. 제6항에 있어서,
    상기 다른 인접한 비휘발성 저장 소자의 비정밀 프로그래밍은, 상기 하나의 인접한 비휘발성 저장 소자의 정밀 프로그래밍으로부터의 커플링보다 상기 특정 비휘발성 저장 소자에 대해 더 강한 커플링을 초래하는 것을 특징으로 하는 비휘발성 저장 장치.
  8. 제6항 또는 제7항에 있어서,
    제 1 바이너리 데이터를 제공하는 수단 - 상기 특정 비휘발성 저장 소자의 비정밀 프로그래밍은 상기 제 1 바이너리 데이터에 응답하며 - 과; 그리고
    상기 판독하는 수단에 응답하여 제 2 바이너리 데이터로서 상기 저장된 데이터를 제공하는 수단을 더 포함하고,
    상기 특정 비휘발성 저장 소자의 정밀 프로그래밍은 상기 제 1 바이너리 데이터가 아닌 상기 제 2 바이너리 데이터에 응답하는 것을 특징으로 하는 비휘발성 저장 장치.
  9. 제6항 또는 제7항에 있어서,
    상기 비정밀 프로그래밍(S3)을 수행하는 수단이 상기 특정 비휘발성 저장 소자의 임계 전압을 상기 제 1 레벨까지 상승시키기 위해 상기 특정 비휘발성 저장 소자의 프로그래밍을 수행하기 전에, 데이터의 제 1 페이지를 사용하여 상기 특정 비휘발성 저장 소자를 프로그래밍하는 수단을 더 포함하고,
    상기 비정밀 프로그래밍(S3)을 수행하는 수단에 의한 프로그래밍은 데이터의 제 2 페이지를 사용하는 제 1 프로그래밍 패스이고, 그리고 상기 정밀 프로그래밍을 수행하는 수단(c)의 정밀 프로그래밍(S7)은 데이터의 상기 제 2 페이지를 사용하는 제 2 프로그래밍 패스인 것을 특징으로 하는 비휘발성 저장 장치.
  10. 제6항 또는 제7항에 있어서,
    상기 판독하는 수단은 복수의 제어 게이트 판독 전압들(VCGR-A, VCGR-B, VCGR-C)을 상기 특정 비휘발성 저장 소자에 차례대로 인가함으로써 상기 특정 비휘발성 저장 소자를 판독하고, 상기 복수의 제어 게이트 판독 전압들은 대응하는 복수의 데이터 상태들(A, B, C)과 관계하는 것을 특징으로 하는 비휘발성 저장 장치.
  11. 제6항 또는 제7항에 있어서,
    상기 비휘발성 저장 소자들은 복수-비트 데이터를 저장하는 것을 특징으로 하는 비휘발성 저장 장치.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
KR1020117008326A 2008-09-11 2009-09-09 데이터 저장 요건이 감소된 메모리를 위한 복수-패스 프로그래밍 KR101632367B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US9622108P 2008-09-11 2008-09-11
US61/096,221 2008-09-11
US12/344,763 2008-12-29
US12/344,763 US8130552B2 (en) 2008-09-11 2008-12-29 Multi-pass programming for memory with reduced data storage requirement

Publications (2)

Publication Number Publication Date
KR20110056408A KR20110056408A (ko) 2011-05-27
KR101632367B1 true KR101632367B1 (ko) 2016-06-21

Family

ID=41799149

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117008326A KR101632367B1 (ko) 2008-09-11 2009-09-09 데이터 저장 요건이 감소된 메모리를 위한 복수-패스 프로그래밍

Country Status (7)

Country Link
US (1) US8130552B2 (ko)
EP (1) EP2332147B1 (ko)
JP (1) JP5467107B2 (ko)
KR (1) KR101632367B1 (ko)
CN (1) CN102150216B (ko)
TW (1) TW201017672A (ko)
WO (1) WO2010030692A2 (ko)

Families Citing this family (182)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
CN101601094B (zh) * 2006-10-30 2013-03-27 苹果公司 使用多个门限读取存储单元的方法
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
US7751240B2 (en) * 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
CN101715595A (zh) 2007-03-12 2010-05-26 爱诺彼得技术有限责任公司 存储器单元读取阈的自适应估计
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
US7773413B2 (en) * 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
WO2009050703A2 (en) * 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
WO2009063450A2 (en) * 2007-11-13 2009-05-22 Anobit Technologies Optimized selection of memory units in multi-unit memory devices
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US8533384B2 (en) 2007-12-27 2013-09-10 Sandisk Enterprise Ip Llc Flash memory controller garbage collection operations performed independently in multiple flash memory groups
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) * 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8498151B1 (en) 2008-08-05 2013-07-30 Apple Inc. Data storage in analog memory cells using modified pass voltages
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US7839687B2 (en) * 2008-10-16 2010-11-23 Sandisk Corporation Multi-pass programming for memory using word line coupling
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8397131B1 (en) 2008-12-31 2013-03-12 Apple Inc. Efficient readout schemes for analog memory cell devices
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8832354B2 (en) * 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
KR101636248B1 (ko) * 2009-12-10 2016-07-06 삼성전자주식회사 플래시 메모리 장치, 이를 포함하는 플래시 메모리 시스템 및 이의 프로그램 방법
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8677203B1 (en) 2010-01-11 2014-03-18 Apple Inc. Redundant data storage schemes for multi-die memory systems
JP2011181156A (ja) * 2010-03-03 2011-09-15 Toshiba Corp 半導体記憶装置
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8645794B1 (en) 2010-07-31 2014-02-04 Apple Inc. Data storage in analog memory cells using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8472280B2 (en) * 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
KR101792870B1 (ko) * 2011-06-21 2017-11-02 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
US8432740B2 (en) 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
KR101903091B1 (ko) 2011-10-05 2018-10-02 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 메모리 시스템 및 그것의 동작 방법
US9487512B2 (en) 2011-10-20 2016-11-08 Oryzon Genomics S.A. (Hetero)aryl cyclopropylamine compounds as LSD1 inhibitors
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US8954822B2 (en) 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
KR101893145B1 (ko) 2011-12-06 2018-10-05 삼성전자주식회사 메모리 시스템들 및 그것들의 블록 복사 방법들
US8867271B2 (en) * 2012-05-30 2014-10-21 Sandisk Technologies Inc. Threshold voltage adjustment for a select gate transistor in a stacked non-volatile memory device
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
JP2014059930A (ja) 2012-09-18 2014-04-03 Toshiba Corp 不揮発性半導体記憶装置
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
TWI497509B (zh) * 2013-04-01 2015-08-21 Macronix Int Co Ltd 非揮發性記憶體及其程式化
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9323637B2 (en) 2013-10-07 2016-04-26 Sandisk Enterprise Ip Llc Power sequencing and data hardening architecture
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
KR102125559B1 (ko) * 2013-10-28 2020-06-22 삼성전자주식회사 멀티 패스 시뮬레이터에서 캐시 프로파일링 정보를 보정하는 방법 및 이를 위한 장치
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9122636B2 (en) 2013-11-27 2015-09-01 Sandisk Enterprise Ip Llc Hard power fail architecture
US9280429B2 (en) 2013-11-27 2016-03-08 Sandisk Enterprise Ip Llc Power fail latching based on monitoring multiple power supply voltages in a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9250676B2 (en) 2013-11-29 2016-02-02 Sandisk Enterprise Ip Llc Power failure architecture and verification
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9092370B2 (en) 2013-12-03 2015-07-28 Sandisk Enterprise Ip Llc Power failure tolerant cryptographic erase
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9230664B2 (en) 2014-06-06 2016-01-05 Kabushiki Kaisha Toshiba Nonvolatile memory and data writing method
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9971647B2 (en) * 2014-07-31 2018-05-15 Winbond Electronics Corporation Apparatus and method for programming ECC-enabled NAND flash memory
US9443601B2 (en) 2014-09-08 2016-09-13 Sandisk Technologies Llc Holdup capacitor energy harvesting
JP2016062624A (ja) 2014-09-17 2016-04-25 株式会社東芝 半導体記憶装置
US9460780B2 (en) * 2015-01-20 2016-10-04 Sandisk Technologies Llc Initialization techniques for multi-level memory cells using multi-pass programming
US9576665B2 (en) 2015-03-12 2017-02-21 Kabushiki Kaisha Toshiba Semiconductor memory device and memory system
US10019314B2 (en) 2016-04-27 2018-07-10 Silicon Motion Inc. Flash memory apparatus and storage management method for flash memory
CN112463433B (zh) * 2016-04-27 2024-03-29 慧荣科技股份有限公司 存取闪存模块的方法及相关的闪存控制器与记忆装置
CN111679787B (zh) 2016-04-27 2023-07-18 慧荣科技股份有限公司 闪存装置、闪存控制器及闪存存储管理方法
US10614886B2 (en) 2017-09-22 2020-04-07 Samsung Electronics Co., Ltd. Nonvolatile memory device and a method of programming the nonvolatile memory device
US10446244B1 (en) 2018-04-09 2019-10-15 Sandisk Technologies Llc Adjusting voltage on adjacent word line during verify of memory cells on selected word line in multi-pass programming
US10643721B2 (en) 2018-06-21 2020-05-05 Sandisk Technologies Llc Interleaved program and verify in non-volatile memory
KR20200071955A (ko) 2018-12-12 2020-06-22 삼성전자주식회사 비휘발성 메모리 장치의 동작 방법, 스토리지 장치의 동작 방법 및 스토리지 장치
US11257552B2 (en) * 2019-02-21 2022-02-22 Macronix International Co., Ltd. Programming a memory device
KR102617083B1 (ko) * 2019-05-17 2023-12-22 양쯔 메모리 테크놀로지스 씨오., 엘티디. 정적 랜덤 액세스 메모리를 갖는 3차원 메모리 디바이스의 데이터 버퍼링 연산
US11036582B2 (en) 2019-09-27 2021-06-15 Western Digital Technologies, Inc. Uncorrectable error correction code (UECC) recovery time improvement
CN110870015B (zh) * 2019-10-18 2021-03-12 长江存储科技有限责任公司 对存储器件进行编程和验证的方法以及相关的存储器件
US10984867B1 (en) 2019-12-23 2021-04-20 SanDiskTechnologies LLC Direct look ahead mode for memory apparatus programmed with reverse order programming
US11282580B2 (en) * 2020-05-29 2022-03-22 Western Digital Technologies, Inc. Data storage device with foggy-fine program sequence for reducing neighbor wordline interference
KR20220067419A (ko) * 2020-11-17 2022-05-24 삼성전자주식회사 메모리 장치, 메모리 시스템 및 이들의 동작 방법
CN112599157B (zh) * 2020-12-17 2022-05-27 长江存储科技有限责任公司 三维存储器及其编程方法
US11430526B2 (en) * 2020-12-18 2022-08-30 Micron Technology, Inc. Interleaved two-pass data programming techniques with reduced write amplification
US11462265B2 (en) * 2020-12-18 2022-10-04 Micron Technology, Inc. Reading memory cells coarsely programmed via interleaved two-pass data programming techniques
US11456038B2 (en) 2020-12-18 2022-09-27 Micron Technology, Inc. Simplified operations to read memory cells coarsely programmed via interleaved two-pass data programming techniques
US11335407B1 (en) 2020-12-18 2022-05-17 Micron Technology, Inc. One-ladder read of memory cells coarsely programmed via interleaved two-pass data programming techniques
WO2022204852A1 (en) * 2021-03-29 2022-10-06 Yangtze Memory Technologies Co., Ltd. Negative gate stress operation in multi-pass programming and memory device thereof
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
CN113646843B (zh) 2021-06-25 2023-12-15 长江存储科技有限责任公司 存储装置及其多遍编程操作
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
CN114400035A (zh) * 2021-12-02 2022-04-26 长江存储科技有限责任公司 存储器的编程方法、存储器及存储系统
US11875043B1 (en) * 2022-08-29 2024-01-16 Sandisk Technologies Llc Loop dependent word line ramp start time for program verify of multi-level NAND memory

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001093288A (ja) 1999-09-20 2001-04-06 Toshiba Corp 不揮発性半導体記憶装置
US20060158938A1 (en) 2005-01-19 2006-07-20 Saifun Semiconductors, Ltd. Method, circuit and systems for erasing one or more non-volatile memory cells
JP2006228394A (ja) 2004-11-12 2006-08-31 Toshiba Corp 半導体記憶装置のデータ書き込み方法
US20080019185A1 (en) 2006-07-20 2008-01-24 Yan Li Compensating for coupling during programming

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6571361B1 (en) * 1995-09-29 2003-05-27 Kabushiki Kaisha Toshiba Encoder and decoder
JP3210259B2 (ja) * 1996-04-19 2001-09-17 株式会社東芝 半導体記憶装置及び記憶システム
US5768192A (en) * 1996-07-23 1998-06-16 Saifun Semiconductors, Ltd. Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping
US6768165B1 (en) * 1997-08-01 2004-07-27 Saifun Semiconductors Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
ITRM20020369A1 (it) 2002-07-09 2004-01-09 Micron Technology Inc Architettura a burst per memoria a doppio bus.
US7046568B2 (en) * 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7327619B2 (en) * 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US7196931B2 (en) * 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US6859397B2 (en) 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
US7020017B2 (en) * 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US7057939B2 (en) * 2004-04-23 2006-06-06 Sandisk Corporation Non-volatile memory and control with improved partial page program capability
JP2006031871A (ja) * 2004-07-20 2006-02-02 Toshiba Corp 半導体記憶装置
US20060140007A1 (en) 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7196928B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7307887B2 (en) * 2005-12-29 2007-12-11 Sandisk Corporation Continued verification in non-volatile memory write operations
US7224614B1 (en) * 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories
US7330373B2 (en) * 2006-03-28 2008-02-12 Sandisk Corporation Program time adjustment as function of program voltage for improved programming speed in memory system
US7443729B2 (en) * 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7522454B2 (en) * 2006-07-20 2009-04-21 Sandisk Corporation Compensating for coupling based on sensing a neighbor using coupling
US7606966B2 (en) 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US7619930B2 (en) * 2007-02-20 2009-11-17 Sandisk Corporation Dynamic verify based on threshold voltage distribution
JP4435200B2 (ja) * 2007-04-03 2010-03-17 株式会社東芝 半導体記憶装置のデータ書き込み方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001093288A (ja) 1999-09-20 2001-04-06 Toshiba Corp 不揮発性半導体記憶装置
JP2006228394A (ja) 2004-11-12 2006-08-31 Toshiba Corp 半導体記憶装置のデータ書き込み方法
US20060158938A1 (en) 2005-01-19 2006-07-20 Saifun Semiconductors, Ltd. Method, circuit and systems for erasing one or more non-volatile memory cells
US20080019185A1 (en) 2006-07-20 2008-01-24 Yan Li Compensating for coupling during programming

Also Published As

Publication number Publication date
WO2010030692A2 (en) 2010-03-18
WO2010030692A3 (en) 2010-06-10
CN102150216A (zh) 2011-08-10
US8130552B2 (en) 2012-03-06
TW201017672A (en) 2010-05-01
KR20110056408A (ko) 2011-05-27
US20100061151A1 (en) 2010-03-11
JP2012502408A (ja) 2012-01-26
JP5467107B2 (ja) 2014-04-09
EP2332147B1 (en) 2014-08-06
EP2332147A2 (en) 2011-06-15
CN102150216B (zh) 2014-03-12

Similar Documents

Publication Publication Date Title
KR101632367B1 (ko) 데이터 저장 요건이 감소된 메모리를 위한 복수-패스 프로그래밍
KR101667007B1 (ko) 비휘발성 저장장치에서 판독 동작 동안의 커플링에 대한 보상
KR101595045B1 (ko) 워드 라인 결합을 이용한 메모리의 다중-패스 프로그램
EP2467854B1 (en) Selective memory cell program and erase
EP2462590B1 (en) Programming memory with reduced pass voltage disturb and floating gate to-control gate leakage
EP2577671B1 (en) Programming non-volatile storage with synchronized coupling
EP2286411B1 (en) Erase-verification process for non-volatile storage
KR101428767B1 (ko) 비휘발성 저장소자의 판독 동작 동안에 파워 소모의 감소
JP5174829B2 (ja) 隣接メモリセルの記憶状態を考慮した不揮発性メモリセルの読み出し
US20070297247A1 (en) Method for programming non-volatile memory using variable amplitude programming pulses
KR20080111458A (ko) 비휘발성 메모리에서 개선된 판독 동작을 위해 선택 상태에서 보상을 사용하여 감지 및 다른 크기의 마진 프로그래밍
EP2067142B1 (en) Faster programming of highest multi-level state for non-volatile memory
WO2008002832A2 (en) Method for programming non-volatile memory using variable amplitude programming pulses
EP2304733A1 (en) Nand flash memory cell array and method with adaptive memory state partitioning

Legal Events

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

Payment date: 20190515

Year of fee payment: 4