KR101871546B1 - 개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법 - Google Patents

개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법 Download PDF

Info

Publication number
KR101871546B1
KR101871546B1 KR1020147019592A KR20147019592A KR101871546B1 KR 101871546 B1 KR101871546 B1 KR 101871546B1 KR 1020147019592 A KR1020147019592 A KR 1020147019592A KR 20147019592 A KR20147019592 A KR 20147019592A KR 101871546 B1 KR101871546 B1 KR 101871546B1
Authority
KR
South Korea
Prior art keywords
programming
memory
memory cells
program
states
Prior art date
Application number
KR1020147019592A
Other languages
English (en)
Other versions
KR20140114370A (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 KR20140114370A publication Critical patent/KR20140114370A/ko
Application granted granted Critical
Publication of KR101871546B1 publication Critical patent/KR101871546B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/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
    • 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/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing

Abstract

다중-패스 프로그래밍 스킴을 갖는 비휘발성 메모리는 다중-레벨 메모리 셀들의 페이지가 감소된 플로팅-게이트마다의 교란들(유핑 효과)로 프로그램될 수 있게 한다. 메모리 셀들은 공통의 임계 범위 또는 윈도 내에서 동작하며, 이는 일련의 점점 더 많이 프로그램된 상태들을 나타내는 다중 밴드들(DE, D1, D2, D3, D4, D5, D6, D7)로 분할된다. 시리즈는 두개의 반들, 하부 세트와 상부 세트로 분할된다(DVLM). 메모리 셀들은 제 1의, 거친 프로그래밍 패스로 프로그램되어 상부 세트로부터의 타겟 상태들을 갖는 페이지의 메모리 셀들이 임계 윈도의 중간 근처의 스테이징 영역으로 프로그램되게 한다. 특히, 그들은 많은 성능의 불이익을 발생시키지 않으면서, 이전의 스킴들에 비해 그들의 타겟된 종착지들에 더 가까이 프로그램된다(단계 2). 다음 패스들은 이후 프로그래밍을 더욱 빨리 완성할 것이다(단계들 3, 4). 다음의 패스들의 임계 전압 변화가 감소되므로 유핑 효과가 감소된다.

Description

개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법{NON-VOLATILE MEMORY AND METHOD WITH IMPROVED FIRST PASS PROGRAMMING}
본 출원은 반도체 플래시 메모리와 같은 재프로그램가능한 비휘발성 메모리 시스템들의 동작에 관한 것이며, 더욱 상세하게는, 정밀하고 효율적인 프로그래밍 스킴들을 갖는 플래시 메모리에 관한 것이다.
특히 소형의 팩터 카드로 패키지된 EEPROM 및 플래시 EEPROM의 형태인, 전하의 비휘발성 저장이 가능한 고체-상태 메모리는 최근 다양한 이동 및 핸드헬드 디바이스들, 특히 정보 기기들과 소비자 전자 제품들에서 선택한 저장장치가 되고 있다. 또한 고체-상태 메모리인 RAM(랜덤 액세스 메모리)과는 달리, 플래시 메모리는 비휘발성이며, 전력이 꺼진 후에라도 그의 저장된 데이터를 유지한다. 또한, ROM(판독 전용 메모리)과 달리, 플래시 메모리는 디스크 저장 디바이스와 유사하게 재기록이 가능하다. 높은 가격에도 불구하고, 플래시 메모리는 대형 저장 응용들로 점점 더 많이 사용되고 있다. 하드 드라이브들과 플로피 디스크들과 같은 회전 자기 매체에 기초한 종래의 대형 저장 장치는 이동 및 핸드헬드 환경에서는 적절하지 않다. 디스크 드라이브들은 부피가 큰 경향이 있기 때문에 기계적인 고장을 일으키기 쉽고 높은 대기시간 및 높은 전력 요구들을 갖는다. 이러한 바람직하지 않은 특성들이 대부분의 이동 및 휴대용 응용들에서는 비현실적인 디스크-기반 저장 장치를 만든다. 한편, 내장형이면서 제거가능한 카드의 형태인 플래시 메모리는 그의 작은 크기, 낮은 전력 소모, 고속 및 고신뢰성 특성들로 인해 이동 및 핸드헬드 환경에 이상적으로 적합하다.
플래시 EEPROM은 소거가 가능하고 그들의 메모리 셀들로 기록되거나 "프로그램된" 새로운 데이터를 가질 수 있는 비휘발성 메모리라는 점에서 EEPROM(전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리)과 유사하다. 둘 다 소스와 드레인 영역들 사이의, 반도체 기판의 채널 영역 위에 위치된, 전계 효과 트랜지스터 구조의 플로팅(연결되지 않은) 전도성 게이트를 사용한다. 제어 게이트가 이후 플로팅 게이트 위에 제공된다. 트랜지스터의 임계 전압 특징은 플로팅 게이트 상에서 보유하는 전하의 양에 의해 제어된다. 즉, 플로팅 게이트 상의 전하의 일정한 레벨에 대하여, 그의 소스와 드레인 영역들 사이의 전도를 허용하도록 트랜지스터가 "켜지기" 전에 제어 게이트로 인가되어야 하는 대응하는 전압(임계)이 있다. 특히, 플래시 EEPROM과 같은 플래시 메모리는 메모리 셀들의 전체 블록들이 동시에 소거되는 것을 허용한다.
플로팅 게이트는 전하들의 범위를 가질 수 있으며 따라서 임계 전압 윈도 내의 임의의 임계 전압 레벨로 프로그램될 수 있다. 임계 전압 윈도의 크기는 디바이스의 최소와 최대 임계 레벨들에 의해 한계가 정해지며, 이들은 차례로 프로팅 게이트 상으로 프로그램될 수 있는 전하들의 범위에 대응한다. 임계 윈도는 일반적으로 메모리 디바이스의 특징들, 동작 조건들 및 이력에 의존한다. 윈도 내의 각각의 구별된, 분해가능한 임계 전압 레벨 범위는, 원칙적으로는, 셀의 분명한 메모리 상태를 지정하는데 사용될 수 있다.
플래시 EEPROM 어레이의 각 저장 소자에 대해서는 2진 모드에서 동작시키는 것에 의해 단일 비트의 데이터를 저장하는 것이 현재의 상업 제품들에서 일반적이며, 여기서 저장 소자 트랜지스터들의 임계 레벨들의 두 범위들이 저장 레벨들로 정의된다. 트랜지스터들의 임계 레벨들은 그들의 저장 소자들 상에 저장된 전하 레벨들의 범위들에 대응한다. 메모리 어레이들의 크기의 축소에 부가하여, 추세는 각 저장 소자 트랜지스터에 1 비트의 데이터보다 많이 저장함으로써 이러한 메모리 어레이들의 데이터 저장 밀도를 더욱 증가시키는 것이다. 이는 각 저장 소자 트랜지스터에 대한 저장 상태들로 두개보다 많은 임계 레벨들을 정의하는 것에 의해 이루어지며, 4개의 이러한 상태들(저장 소자 당 2 비트들의 데이터)이 현재 상업 제품들에 포함되고 있다. 저장 소자 당 16개의 상태들과 같은 더 많은 저장 상태들이 또한 수행되고 있다. 각 저장 소자 메모리 트랜지스터는 그가 실제로 동작될 수 있는 임계 전압들의 일정한 총 범위(윈도)를 가지며, 그러한 범위는 그들이 서로 명확하게 구별되는 것을 허용하기 위해 그에 대해 정의된 상태들과 상태들 사이의 마진들을 더한 수로 분할된다. 분명히, 메모리 셀이 더 많은 비트들을 저장하도록 구성되면, 그가 동작하기 위해 갖는 에러의 마진은 더 작아진다.
메모리 셀로 동작하는 트랜지스터는 전형적으로 두개의 매카니즘들 중 하나에 의해 "프로그램된" 상태로 프로그램된다. "고온 전자 주입" 시, 드레인으로 인가된 높은 전압이 기판 채널 영역을 가로질러 전자들을 가속시킨다. 동시에 제어 게이트로 인가된 높은 전압이 얇은 게이트 유전체를 통해 플로팅 게이트로 고온 전자들을 끌어당긴다. "터널링 주입" 시, 높은 전압이 기판에 대한 제어 게이트로 인가된다. 이러한 방식으로, 전자들이 기판으로부터 개재 플로팅 게이트로 끌어당겨진다. "프로그램"이라는 용어가 역사적으로는 메모리 셀의 처음에 소거된 전하 저장 유닛으로 전자들을 주입하여 메모리 상태를 변경시킴으로써 메모리로 기록하는 것을 설명하는 것으로 사용되었지만, 여기서는 "기록(write)" 또는 "레코드(record)"와 같은 보다 일반적인 용어들과 상호교환가능하게 사용된다.
메모리 디바이스는 다수의 매카니즘들에 의해 소거될 수 있다. EEPROM에 대하여, 높은 전압을 제어 게이트에 대한 기판에 인가하여 플로팅 게이트의 전자들이 얇은 산화물을 통해 기판 채널 영역으로 터널링하도록 유도함으로써(즉, 파울러-노르트하임 터널링) 메모리 셀이 전기적으로 소거될 수 있다. 전형적으로, EEPROM은 바이트마다 소거가능하다. 플래시 EEPROM에 대하여, 메모리는 한번에 모두 또는 한번에 하나 또는 그 이상의 최소 소거가능한 블록들만큼 전기적으로 소거가능하며, 최소 소거가능한 블록은 하나 또는 그 이상의 섹터들로 구성되고 각 섹터는 512 바이트 또는 그 이상의 데이터를 저장할 수 있다.
메모리 디바이스는 카드 상에 탑재될 수 있는 하나 또는 그 이상의 메모리 칩들을 포함한다. 각 메모리 칩은 디코더들과 소거, 기록 및 판독 회로들과 같은 주변 회로들에 의해 지지되는 메모리 셀들의 어레이를 포함한다. 더욱 복잡한 메모리 디바이스들에는 지능적이고 더 높은 레벨의 메모리 동작들과 인터페이싱을 실행하는 제어기가 들어있다.
오늘날 사용되는 상업적으로 성공한 비휘발성 고체-상태 메모리 디바이스들이 많이 있다. 이러한 메모리 디바이스들은 플래시 EEPROM일 수 있거나 또는 다른 타입들의 비휘발성 메모리 셀들을 사용할 수 있다. 플래시 메모리와 그들을 제조하는 시스템들 및 방법들의 예들이 미국 특허 번호들 5,070,032, 5,095,344, 5,315,541, 5,343,063, 및 5,661,053, 5,313,421, 및 6,222,762에 주어진다. 특히, NAND 스트링 구조들을 갖는 플래시 메모리 디바이스들이 미국 특허 번호들 5,570,315, 5,903,495, 6,046,935에서 설명된다. 또한, 비휘발성 메모리 디바이스들이 또한 전하를 저장하기 위한 유전층을 갖는 메모리 셀들로부터 제조된다. 앞서 설명된 전도성 플로팅 게이트 소자들 대신, 유전층이 사용된다. 유전체 저장 소자를 사용하는 이러한 메모리 디바이스들은 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는 두개의 이산화규소 층들 사이에 끼인 트래핑 유전체를 갖는 비휘발성 메모리 셀을 개시한다. 다중-상태 데이터 저장 장치가 유전체 내에서 공간적으로 분리된 전하 저장 영역들의 2진 상태들을 따로따로 판독하는 것에 의해 실행된다.
셀의 플로팅-게이트마다의 프로그램 방해("유핀 효과")
하나의 메모리 셀의 전하 저장 소자로 프로그램된 전하는 이웃하는 메모리 셀의 전기장을 교란시키는 전기장을 생성한다. 일반적으로, 소거된 셀은 그의 플로팅 게이트에 전하를 갖지 않으므로 가장 낮은 임계 전압을 갖는다. 메모리 셀이 점점 많은 전하들로 플로팅 게이트에 프로그램됨에 따라, 그의 임계 전압이 증가한다. 메모리 셀은 일반적으로 임계 전압들의 범위(임계 윈도) 내에서 동작한다. 임계 윈도는 각각이 메모리 상태를 나타내는 복수의 임계 전압들의 서브범위들 또는 밴드들로 분할된다. 플로팅 게이트를 갖는 전계효과 트랜지스터로서, 메모리 셀의 플로팅 게이트로 프로그램된 전하들은 그의 임계 전압을 결정하고 차례로 그가 어떤 메모리 상태에 있는지를 결정한다. 그러나, 셀간 거리가 줄어들면, 메모리 셀은 그의 이웃들의 플로팅 게이트들로 프로그램된 전하들을 "보기(see)" 시작할 수 있다. 따라서, 그는 그가 실제로 가진 것보다 많은 전하를 보고 그의 임계 전압을 증가시키는 가상의 효과를 갖는다.
메모리 셀이 제 1 필드 환경에서 프로그램-확인되고 이어서 상이한 전하들로 프로그램되는 이웃하는 셀들로 인한 상이한 필드 환경 하에서 차후에 다시 판독된다면, 판독 정밀성은 이웃하는 플로팅 게이트들 사이의 커플링으로 인한 방해인 "유핀 효과(Yupin Effect)"라고 불리는 것에 의해 영향을 받을 수 있다. 반도체 메모리들에 아무리 높게 집적되어 있다고 하더라도, 메모리 셀들 사이의 저장된 전하들로 인한 전기장의 교란(유핀 효과)은 셀간 공간이 줄어듦에 따라 주목할만큼 증가하게 될 것이다.
유핀 효과는 셀이 프로그램-확인을 마친(즉, 그의 타겟 상태로 프로그램된) 시간과 그의 이웃들이 프로그래밍을 마친 시간 사이에서, 그의 이웃들로 인한 셀에 대한 필드 환경의 비대칭을 최소화시키는 것에 의해 완화될 수 있다. 이러한 방식으로, 셀이 그의 타겟 상태에서 프로그램-확인될 때, 그는 그의 이웃들로 인한 제 1 필드 환경을 보고, 이어서 그의 이웃들의 프로그래밍의 완료로 그는 제 2 필드 환경을 보며, 이들 두 필드 환경 사이의 차이가 최소화된다. 유핀 효과는 메모리 어레이의 행을 따르고 비트 라인들을 가로지르는 인근 셀들에 영향을 미치고(BL-BL 유핀 효과) 열을 따르고 워드 라인들을 가로지르는 인근 셀들에 영향을 미치는(WL-WL 유핀 효과) 프로그램 방해이다.
BL-BL 유핀 효과를 감소시키기 위한 한가지 방법은 워드 라인 상의 메모리 셀들의 페이지를 병렬로 프로그램하기 위해 다중-패스(multi-pass) 프로그래밍 스킴을 채택하는 것이다. 제 1 프로그래밍 패스에서, 더 많이 프로그램된 상태들로 타겟된 메모리 셀들(이들은 임계 윈도의 하단부의 소거된 상태로부터 상단부로 이동된 그들의 임계 전압들을 가질 것이다)은 먼저 임계 윈도의 중간 근처의 스테이징 영역(staging are)으로 프로그램된다. 다음 프로그래밍 패스들에서, 그들은 스테이징 영역으로부터 그들의 최종 타겟 종착지들로 프로그램된다. 이러한 방식으로, 메모리 셀에 의해 보여지는 제 1 및 제 2 필드 환경 사이의 차이는 전체 범위를 가로질러 이동하는 것이 아닌 기껏해야 임계 윈도의 절반만을 가로지르는 그의 이웃들의 임계 전압들로 인한 것이 된다.
상기 언급된 다중-패스 프로그래밍을 실행하는 전통적인 방법은 일련의 2진 프로그래밍으로 수행되었는데, 각 프로그래밍 패스에서 임계 윈도가 2진으로 분할되고 2진 분할들의 상부 절반에 속하는 타겟 상태들을 갖는 메모리 셀들은 2진 분할들의 하부 중간 부분으로 프로그램된다. 최종 프로그래밍 패스에서 페이지의 모든 메모리 셀들이 그들의 최종 종착지들로 프로그램될 때까지 각각의 다른 프로그래밍 패스가 2진 분할 프로그래밍을 반복한다. 이러한 프로그래밍 스킴을 따라가는 바람직한 코딩은 "LM" 코딩에 의해 주어진다.
그러나, LM 코딩과 프로그래밍 방법은 가장 효율적인 것이 아니다.
유핀 효과로 인한 프로그램 방해를 최소화하는데 도움을 주도록 비휘발성 메모리를 프로그래밍하기 위한 더욱 효율적인 스킴들에 대한 일반적인 요구가 여전히 있다.
본 발명의 한 실시예에 따라, 공통 임계 전압 윈도 내에서 동작하는 메모리 셀들의 페이지는 개선된 다중-패스 프로그래밍 동작에 의해 프로그램된다. 다중-패스 프로그래밍은 프로그래밍을 위해 임계 윈도의 상부 절반에 타겟 상태들을 갖는 페이지의 메모리 셀들의 제 1 세트를 선택하고, 임계 윈도의 중간 부분 근처의 지점이 미리 정해진 확인으로 패스하였다는 것을 상기 각 메모리 셀이 확인 완료할 때까지 프로그래밍 전압 펄스마다 제 1 세트의 각 메모리 셀을 프로그래밍하고 확인하며, 제 1 세트의 모든 메모리 셀들이 프로그램-확인 완료된 후, 개입 확인 없이 프로그램-확인된 메모리 셀들을 다수의 부가적인 프로그래밍 펄스들로 또한 가능하게 하는 것을 포함하는 제 1의 "개선된 LM" 프로그래밍 패스를 포함하며, 여기서 수는 타겟 상태에 의존한다. 개선된 LM 패스 뒤로 페이지의 모든 메모리 셀들이 그들의 최종 종착지들로 더욱 미세하게 프로그램되는 하나 또는 그 이상의 프로그래밍 패스들이 뒤따른다.
특히, 메모리가 더 많이 프로그램된 상태의 타겟 상태를 가질 때 또는 스테이징 영역에 대한 임계 윈도가 더 높아질 때, 그가 수신할 부가적인 프로그래밍 펄스들의 수가 더 커진다.
이러한 방식으로, 종래의 LM 프로그래밍 패스 실행들에 비교하여 개선된 LM 패스는 각각의 메모리 셀을 그의 최종 종착지에 더욱 가까이 프로그램한다. 이는 다음 패스들에 필요한 프로그래밍을 감소시킬 것이며, 따라서 성능을 개선시킨다. 더욱 효율적이고 거친 프로그래밍 펄스들과 개입 확인 동작들의 부재 때문에, 다음의 패스들에서보다 개선된 LM 패스동안 임계 윈도의 메모리 셀을 이동시키는 것이 더욱 빨라지므로 전체적인 시간이 절약된다.
본 발명의 제 2 실시예에 따라, 공통 임계 전압 윈도 내에서 동작하는 메모리 셀들의 페이지가 개선된 다중-패스 프로그래밍 동작에 의해 프로그램된다. 다중-패스 프로그래밍은 프로그래밍을 위해 임계 윈도의 상부 절반에 타겟 상태들을 갖는 페이지의 메모리 셀들의 제 1 세트를 선택하고, 임계 윈도의 중간 부분 근처의 지점을 미리 정해진 확인으로 패스하였다는 것을 상기 각 메모리 셀이 확인 완료할 때까지 프로그래밍 전압 펄스마다 제 1 세트의 각 메모리 셀을 프로그래밍하고 확인하며, 미리 결정된 확인점에서 아직 프로그램-확인되는 제 1 세트의 남아있는 메모리 셀들에 대해 프로그래밍과 확인이 진행되는 동안, 프로그램-확인된 메모리 셀들이 또한 프로그램-확인된 메모리 셀들 상에서 개입 확인 없이 다수의 진행중인 프로그래밍 펄스들로 프로그램-가능하게 되는 제 1의 "개선된 LM" 프로그래밍 패스를 포함하며, 여기서 수는 타겟 상태에 의존한다. 개선된 LM 패스 뒤로 페이지의 모든 메모리 셀들이 그들의 최종 종착지들로 더욱 미세하게 프로그램되는 하나 또는 그 이상의 프로그래밍 패스들이 뒤따른다.
특히, 메모리가 더 많이 프로그램된 상태의 타겟 상태를 가질 때 또는 스테이징 영역에 대한 임계 윈도가 더 높아질 때, 그가 수신할 부가적인 프로그래밍 펄스들의 수가 더 커지지만, 수행중인 프로그래밍 펄스의 가용성에 의해 제한된다.
개선된 LM 패스의 제 1 실시예와 유사한 제 2 실시예는 이전의 LM 프로그래밍 패스 실행들과 비교할 때 그의 최종 종착지에 더욱 가까이 각 메모리 셀들을 프로그램한다. 이는 다음 패스들에서 필요한 프로그래밍을 감소시킬 것이고, 따라서 성능을 개선시킨다. 개선된 LM 패스에서 발생하는 부가적인 프로그래밍 펄스들이 거친 프로그래밍 펄스들과 개입 확인 동작들의 부재로 더욱 효율적이므로, 다음 패스들에서보다 개선된 LM 패스동안 임계 윈도에서 메모리 셀을 이동시키는 것이 더욱 빠르게 되고, 전체적인 시간이 절약된다. 특히, 제 2 실시예는 제 1 세트의 모든 메모리 셀들을 프로그램-확인하는데 필요한 프로그래밍 펄스들의 수행 수 내에서만 동작하며, 부가적인 것은 없다.
본 발명의 부가적인 목적들, 특성들 및 장점들이 그의 바람직한 실시예들의 다음 설명으로부터 이해될 것이며, 설명은 첨부한 도면들과 함께 이해되어야 한다.
도 1은 본 발명의 특성들이 구현되는 메모리 디바이스와 통신하는 호스트를 도시한다.
도 2는 예를 들면 병렬로 감지되거나 프로그램되는, NAND 구성에 조직된 메모리 셀들의 페이지를 도시한다.
도 3은 소거가능한 블록들에 조직된 메모리 어레이의 예를 개략적으로 도시한다.
도 4는 선택된 워드라인으로 인가되는 계단파의 형태인 일련의 프로그래밍 전압 펄스들을 도시한다.
도들 5(0) 내지 5(3)은 종래 기술에 따라 2-비트의 논리적 코드("LM" 코드)로 인코딩된 4-상태 메모리의 페이지 프로그래밍에 의한 논리적 페이지를 도시한다.
도들 6(0) 내지 6(4)는 종래 기술에 따라 바람직한 3-비트의 논리적 코드("LM" 코드)로 인코딩된 8-상태 메모리의 프로그래밍을 도시한다.
도들 7(0) 내지 7(4)는 종래 기술에서와 같은 "LM-포기-파인" 프로그래밍 스킴을 도시한다.
도들 8(0) 내지 8(4)는 본 발명의 제 1 실시예에 따라 개선된 LM 패스인 제 1 프로그래밍을 갖는 3-비트 메모리 셀들의 페이지 상의 개선된 다중-패스 프로그래밍을 도시한다.
도들 9(0) 내지 9(4)는 본 발명의 제 2 실시예에 따라 개선된 LM 패스인 제 1 프로그래밍을 갖는 3-비트 메모리 셀들의 페이지 상의 개선된 다중-패스 프로그래밍을 도시한다.
도 10은 제 1 실시예에 따른, 개선된 LM 패스를 갖는 다중 패스 프로그래밍을 도시하는 흐름도이다.
도 11은 제 2 실시예에 따른, 개선된 LM 패스를 갖는 다중 패스 프로그래밍을 도시하는 흐름도이다.
메모리 시스템
도 1은 본 발명의 특성들이 구현되는 메모리 디바이스와 통신하는 호스트를 도시한다. 호스트(80)는 전형적으로 메모리 디바이스(90)에 저장될 데이터를 전송하거나 또는 메모리 디바이스(90)를 판독함으로써 데이터를 검색한다. 메모리 디바이스(90)는 메모리 제어기(102)에 의해 관리된 하나 또는 그 이상의 메모리 칩(100)을 포함한다. 메모리 칩(100)은 각 셀이 다중 비트들의 데이터를 저장하기 위한 다중-레벨 셀("MLC")로 구성될 수 있을 뿐만 아니라 1비트의 데이터를 저장하기 위한 단일-레벨 셀("SLC")로도 구성될 수 있는 메모리 셀들의 메모리 어레이(200)를 포함한다.
메모리 칩은 또한 행과 열 디코더들, 감지 모듈들(210), 데이터 래치들(220) 및 I/O 회로들과 같은 주변 회로들(204)을 포함한다. 온칩 제어 회로(310)는 각 칩의 로우-레벨 메모리 동작들을 제어한다. 제어 회로(310)는 메모리 어레이(200) 상의 메모리 동작들을 수행하도록 주변 회로들과 협력하는 온칩 제어기이다. 제어 회로(310)는 전형적으로 데이터 버스(231)와 제어 및 어드레스 버스(111)를 통해 메모리 동작들의 칩 레벨 제어를 제공하기 위한 상태 머신(312)을 포함한다.
많은 실행들에서, 호스트(80)는 메모리 제어기(102)를 통해 메모리 칩(100)과 통신하고 상호작용한다. 제어기(102)는 메모리 칩과 협력하여 더 높은 레벨의 메모리 동작들을 제어하고 관리한다. 펌웨어(60)는 제어기(102)의 기능들을 실행하기 위한 코드들을 제공한다. 에러 수정 코드("ECC") 프로세서(62)는 메모리 디바이스의 동작들 동안 ECC를 처리한다.
예를 들면, 호스트 기록시, 호스트(10)는 호스트의 운영 시스템의 파일 시스템으로부터 할당된 논리적 섹터들의 메모리 어레이(100)로 기록될 데이터를 전송한다. 제어기에서 실행된 메모리 블록 관리 시스템은 섹터들을 스테이지(stage)하고 그들을 메모리 어레이의 물리적 구조로 매핑하고 저장한다. 바람직한 블록 관리 시스템이 미국 특허 출원 등록 번호:US-2010-0172180-A1에 개시되어 있으며, 그의 전체 명세서가 본 문서에 참조로 포함된다.
물리적 메모리 아키텍처
판독 및 프로그램 성능을 개선시키기 위하여, 어레이의 다중 전하 저장 소자들 또는 메모리 트랜지스터들이 병렬로 판독되거나 프로그램된다. 따라서, 메모리 소자들의 "페이지"(물리적 페이지)는 함께 판독되거나 프로그램된다. 현존하는 메모리 아키텍처들에서, 행은 전형적으로 하나 또는 그 이상의 물리적 페이지를 포함한다. 페이지의 모든 메모리 소자들은 함께 판독되거나 또는 프로그램될 것이다.
도 2는 예를 들면 병렬로 감지되거나 프로그램되는, NAND 구성에 조직된 메모리 셀들의 페이지를 도시한다. 도 2는 필수적으로 도 1의 메모리 어레이(200)의 NAND 스트링들(50)의 뱅크를 도시한다. 페이지(60)와 같은 "페이지"는 병렬로 감지되거나 또는 프로그램되는 것이 가능한 메모리 셀들의 그룹이다. 이는 감지 증폭기들(210)의 대응하는 페이지에 의해 주변 회로들에서 성취된다. 감지된 결과들은 데이터 래치들(220)의 대응하는 세트에서 래치한다. 각 감지 증폭기는 비트 라인(36)을 통해 NAND 스트링(50)과 같은, NAND 스트링에 결합될 수 있다. 예를 들어, 페이지(60)는 행을 따르고, 워드 라인(WL3)에 공동으로 연결된 페이지의 셀들의 제어 게이트들에 인가된 감지 전압에 의해 감지된다. 각 열을 따라, 셀(10)과 같은 각 셀이 비트 라인(36)을 통해 감지 증폭기에 의해 액세스될 수 있다. 데이터 래치들(220)의 데이터는 데이터 I/O 버스(231)를 통해 메모리 제어기(102)로부터 또는 그에게 토글된다.
NAND 스트링(50)은 그의 두 단부들에서 각각 소스 단말 및 드레인 단말을 형성하기 위해 그들의 소스들 및 드레인들에 의해 데이지-체인 방식(daisy-chained)의 일련의 메모리 트랜지스터들(10)이다. 한 쌍의 선택 트랜지스터들(S1, S2)은 각각 NAND 스트링의 소스 단말과 드레인 단말을 통해 외부로의 메모리 트랜지스터들의 체인의 연결을 제어한다. 메모리 어레이에서, 소스 선택 트랜지스터(S1)가 켜지면, 소스 단말이 소스 라인(34)으로 결합된다. 유사하게, 드레인 선택 트랜지스터(S2)가 켜지면, NAND 스트링의 드레인 단말이 메모리 어레이의 비트 라인(36)으로 결합된다. 체인의 각 메모리 트랜지스터(10)는 메모리 셀로서 활동한다. 이는 특정한 양의 전하를 저장하여 의도된 메모리 상태를 표현하기 위한 전하 저장 소자(20)를 갖는다. 각 메모리 트랜지스터의 제어 게이트는 판독 및 기록 동작들에 제어를 허용한다. NAND 스트링의 행에 대응하는 메모리 트랜지스터들의 제어 게이트들은 모두 동일한 워드 라인(WL0, WL1, ...과 같은)으로 연결된다. 유사하게, (각각 선택 라인들(SGS 및 SGD)을 통해 액세스된) 선택 트랜지스터들(S1, S2)의 각각의 제어 게이트는 각각 그의 소스 단말과 드레인 단말을 통해 NAND 스트링에 제어 액세스를 제공한다.
상기에서 언급된 페이지는 물리적 페이지 메모리 셀들 또는 감지 증폭기들이다. 사정에 따라, 각 셀이 다중-비트 데이터를 저장하는 경우에는, 각 물리적 페이지는 다중 데이터 페이지들을 갖는다.
또한 물리적 페이지는 데이터의 하나 또는 그 이상의 논리적 섹터들을 저장할 수 있다. 전형적으로, 디스크 운영 시스템으로 동작하는 호스트(80)(도 1을 보라)는 논리적 섹터들의 유닛들, 전형적으로 512 바이트들의 하나 또는 그 이상의 유닛들로 파일의 콘텐트를 조직함으로써 파일의 저장을 관리한다.
나중에 제시될 예들에서, 물리적 페이지는 16kB의 비트 라인들을 통해 대응하는 16kB의 감지 증폭기들에 의해 병렬로 감지되는 16kB의 메모리 셀들을 가질 수 있다. 호스트에 의해 할당된 예시적인 논리적 섹터는 2kB의 크기의 데이터를 갖는다. 따라서, 셀들이 각각 1비트의 데이터(SLC)를 저장하도록 구성된다면 물리적 페이지는 8개의 섹터들을 저장할 수 있다. 각 셀이 2비트들의 데이터를 저장하는 것과 같은 MLC에 대해서는, 각 물리적 페이지는 16개의 논리적 섹터들을 저장할 수 있고, 기타 이와 같다.
소거 블록들
플래시 메모리와 다른 타입의 메모리 사이의 하나의 중요한 차이점은 셀이 소거된 상태로부터 프로그램되어야 한다는 것이다. 즉 플로팅 게이트의 전하가 제일 먼저 비워져야 한다는 것이다. 이후 프로그래밍이 원하는 양의 전하를 다시 플로팅 게이트에 부가한다. 이는 더 많이 프로그램된 상태에서 더 적게 프로그램된 상태로 가도록 플로팅으로부터 전하의 일부를 제거하는 것은 지원하지 않는다. 이는 업데이트 데이터가 현존하는 위치에 중복기록할 수 없다는 것과 이전에 기록되지 않은 위치로 기록되어야 한다는 것을 의미한다.
뿐만 아니라 소거는 플로팅 게이트로부터 모든 전하들을 비우는 것이며 일반적으로 눈에 띄게 시간이 걸린다. 그러한 이유로, 셀마다 또는 페이지마다 소거하는 것은 번거로울 것이며 매우 느릴 것이다. 실제로, 메모리 셀들의 어레이는 다수의 블록들의 메모리 셀들로 분할된다. 플래시 EEPROM 시스템들에 대해 일반적인 것과 같이, 블록은 소거의 유닛이다. 즉, 각 블록은 함께 소거되는 최소 수의 메모리 셀들을 포함한다.
도 3은 소거가능한 블록들에 조직된 메모리 어레이의 예를 개략적으로 도시한다. 전하 저장 메모리 디바이스들의 프로그래밍은 그의 전하 저장 소자들로 더 많은 전하를 부가하는 결과만을 가져올 수 있다. 따라서, 프로그램 동작 전에, 메모리 셀의 전하 저장 소자에 현존하는 전하가 제거되어야(또는 소거되어야) 한다. 셀들(200)의 전체 어레이, 또는 어레이의 셀들의 중요 그룹들이 함께 전기적으로 소거될 때(즉, 플래시에서) EEPROM과 같은 비휘발성 메모리는 "플래시" EEPROM이라고 불린다. 한번 소거되면, 셀들의 그룹은 이후 재프로그램될 수 있다. 함께 소거가능한 셀들의 그룹은 하나 또는 그 이상의 어드레스가능한 소거 유닛(300)으로 구성될 수 있다. 하나보다 많은 페이지가 단일 동작으로 프로그램되거나 판독될 수 있으나, 소거 유닛 또는 블록(300)은 전형적으로 하나 또는 그 이상의 페이지들의 데이터를 저장하고, 페이지는 프로그래밍 및 판독의 최소 유닛이 된다. 각 페이지는 전형적으로 하나 또는 그 이상의 섹터들의 데이터를 저장하며, 섹터의 크기는 호스트 시스템에 의해 정의된다. 예는, 자기 디스크 드라이브들로 수립된 표준을 따르는 사용자 데이터의 512 바이트들, 더하기 사용자 데이터 및/또는 그가 저장되는 블록에 대한 오버헤드 정보의 몇몇 바이트들의 섹터이다.
도 3에 도시된 예에서, 메모리 어레이(200)의 개별적인 메모리 셀들은 WL0-WLy와 같은 워드 라인들(42) 및 BL0-BLx와 같은 비트 라인들(36)에 의해 액세스가능하다. 메모리는 소거 블록들 0,1,...m 과 같은 소거 블록들로 조직된다. NAND 스트링(50)(도 2를 보라)이 16개의 메모리 셀들을 포함한다면, 이후 어레이의 NAND 스트링들의 제 1 뱅크는 선택 라인들(44)과 WL0 내지 WL15와 같은 워드 라인들(42)에 의해 액세스가능하게 될 것이다. 소거 블록 0 은 함께 소거된 NAND 스트링들의 제 1 뱅크의 모든 메모리 셀들을 갖도록 조직된다. 메모리 아키텍처에서, NAND 스트링들의 하나보다 많은 뱅크가 함께 소거될 수 있다.
도 4는 선택된 워드 라인으로 인가되는 계단파의 형태인 일련의 프로그래밍 전압 펄스들을 도시한다. 셀이 특정한 상태로 프로그램될 때, 이는 매번 플로팅 게이트로 증가하는 전하들을 부가하도록 시도하는 연속적인 프로그래밍 전압 펄스들을 겪는다. 프로그래밍 펄스들 사이에서, 중단점 레벨에 대한 그의 소스-드레인 전류를 결정하기 위해 셀이 다시 판독되거나 또는 확인된다. 원하는 상태에 도달한 것으로 확인되었을 때 셀에 대한 프로그래밍은 정지한다. 사용된 프로그래밍 펄스 트레인은 메모리 셀의 전하 저장 유닛으로 프로그램된 누적 전자들에 대응하기 위하여 증가하는 주기 또는 진폭을 가질 수 있다. 다른 펄스보다 메모리 셀로 더욱 많은 전하를 이동시키는 펄스는 더욱 거칠어진다고(coarser) 표현되거나 또는 다른 펄스가 더욱 미세한 입도로 프로그램한다고 표현된다. 프로그래밍 회로들은 일반적으로 일련의 프로그래밍 펄스들을 선택된 워드 라인으로 인가한다. 이러한 방식으로, 그의 제어 게이트들이 워드 라인으로 연결되는 메모리 셀들의 페이지가 함께 프로그램될 수 있다. 페이지의 메모리 셀이 그의 타겟 상태로 프로그램되었을 때마다, 페이지의 모든 셀들이 프로그램-확인 완료될 때까지 다른 셀들이 지속적으로 프로그래밍되는 동안 프로그래밍이 억제된다.
셀의 플로팅-게이트마다의 프로그램 방해("유핀 효과")
하나의 메모리 셀의 전하 저장 소자로 프로그램된 전하는 이웃하는 메모리 셀의 전기장을 교란시키는 전기장을 생성한다. 일반적으로, 소거된 셀은 그의 플로팅 게이트에 전하를 갖지 않으므로 가장 낮은 임계 전압을 갖는다. 메모리 셀이 점점 많은 전하들로 플로팅 게이트에 프로그램됨에 따라, 그의 임계 전압이 증가한다. 메모리 셀은 일반적으로 임계 전압들의 범위(임계 윈도) 내에서 동작한다. 임계 윈도는 각각이 메모리 상태를 나타내는 복수의 임계 전압들의 서브범위들 또는 밴드들로 분할된다. 플로팅 게이트를 갖는 전계효과 트랜지스터로서, 메모리 셀의 플로팅 게이트로 프로그램된 전하들은 그의 임계 전압을 결정하고 차례로 그가 어떤 메모리 상태에 있는지를 결정한다. 그러나, 셀간 거리가 줄어들면, 메모리 셀은 그의 이웃들의 플로팅 게이트들로 프로그램된 전하들을 "보기(see)" 시작할 수 있다. 따라서, 그는 그가 실제로 가진 것보다 많은 전하를 보고 그의 임계 전압을 증가시키는 가상의 효과를 갖는다.
메모리 셀이 제 1 필드 환경에서 프로그램-확인되고 이어서 상이한 전하들로 프로그램되는 이웃하는 셀들로 인한 상이한 필드 환경 하에서 차후에 다시 판독된다면, 판독 정밀성은 이웃하는 플로팅 게이트들 사이의 커플링으로 인한 방해인 "유핀 효과(Yupin Effect)"라고 불리는 것에 의해 영향을 받을 수 있다. 반도체 메모리들에 아무리 높게 집적되어 있다고 하더라도, 메모리 셀들 사이의 저장된 전하들로 인한 전기장의 교란(유핀 효과)은 셀간 공간이 줄어듦에 따라 주목할만큼 증가하게 될 것이다.
유핀 효과는 셀이 프로그램-확인을 마친(즉, 그의 타겟 상태로 프로그램된) 시간과 그의 이웃들이 프로그래밍을 마친 시간 사이에서, 그의 이웃들로 인한 셀에 대한 필드 환경의 비대칭을 최소화시키는 것에 의해 완화될 수 있다. 이러한 방식으로, 셀이 그의 타겟 상태에서 프로그램-확인될 때, 그는 그의 이웃들로 인한 제 1 필드 환경을 보고, 이어서 그의 이웃들의 프로그래밍의 완료로 그는 제 2 필드 환경을 보며, 이들 두 필드 환경 사이의 차이가 최소화된다. 유핀 효과는 메모리 어레이의 행을 따르고 비트 라인들을 가로지르는 인근 셀들에 영향을 미치고(BL-BL 유핀 효과) 열을 따르고 워드 라인들을 가로지르는 인근 셀들에 영향을 미치는(WL-WL 유핀 효과) 프로그램 방해이다.
BL-BL 유핀 효과를 감소시키기 위한 한가지 방법은 워드 라인 상의 메모리 셀들의 페이지를 병렬로 프로그램하기 위해 다중-패스(multi-pass) 프로그래밍 스킴을 채택하는 것이다. 제 1 프로그래밍 패스에서, 더 많이 프로그램된 상태들로 타겟된 메모리 셀들(이들은 임계 윈도의 하단부의 소거된 상태로부터 상단부로 이동된 그들의 임계 전압들을 가질 것이다)은 먼저 임계 윈도의 중간 근처의 스테이징 영역(staging are)으로 프로그램된다. 다음 프로그래밍 패스들에서, 그들은 스테이징 영역으로부터 그들의 최종 타겟 종착지들로 프로그램된다. 이러한 방식으로, 메모리 셀에 의해 보여지는 제 1 및 제 2 필드 환경 사이의 차이는 전체 범위를 가로질러 이동하는 것이 아닌 기껏해야 임계 윈도의 절반만을 가로지르는 그의 이웃들의 임계 전압들로 인한 것이 된다.
상기 언급된 다중-패스 프로그래밍을 실행하는 전통적인 방법은 일련의 2진 프로그래밍으로 수행되었는데, 각 프로그래밍 패스에서 임계 윈도가 2진으로 분할되고 2진 분할들의 상부 절반에 속하는 타겟 상태들을 갖는 메모리 셀들은 2진 분할들의 하부 중간 부분으로 프로그램된다. 최종 프로그래밍 패스에서 페이지의 모든 메모리 셀들이 그들의 최종 종착지들로 프로그램될 때까지 각각의 다른 프로그래밍 패스가 2진 분할 프로그래밍을 반복한다. 이러한 프로그래밍 스킴을 따라가는 바람직한 코딩은 "LM" 코딩에 의해 주어진다.
단일-레벨(SLC) 및 다중-레벨(MLC) 메모리 셀들
앞서 설명된 것과 같이, 비휘발성 메모리의 예는 각각이 그의 채널 영역과 그의 제어 게이트 사이에 전하 저장 층을 갖는 전계-효과 트랜지스터들의 어레이로부터 형성된다. 각 전계-효과 트랜지스터에 대하여 임계 전압들의 범위를 상승시킨다고 가정하면, 전하 저장 층 또는 유닛은 전하들의 범위를 저장할 수 있다. 가능한 임계 전압들의 범위는 임계 윈도를 포함한다. 임계 윈도가 임계 전압들의 다중 서브-범위들 또는 영역들로 분할될 때, 각각의 분해가능한 영역은 메모리 셀에 대한 상이한 메모리 상태들을 표현하도록 사용된다. 다중 메모리 상태들은 하나 또는 그 이상의 2진 비트들에 의해 코딩될 수 있다. SLC 메모리에서, 각 메모리 셀은 1 비트의 데이터를 저장한다. MLC 메모리에서, 각 메모리 셀은 1 비트보다 많은 데이터를 저장한다.
2-비트 또는 4-상태 메모리에 대한 전형적인 "LM" 코딩
도들 5(0)-5(3)은 종래 기술에 따라 2-비트의 논리적 코드("LM" 코드)로 인코딩된 4-상태 메모리의 페이지 프로그래밍에 의한 논리적 페이지를 도시한다. 페이지의 각 메모리 셀로부터의 2개의 코드 비트들은 두 개의 논리적 페이지들을 형성하며 각 페이지는 페이지의 모든 메모리 셀들로부터 제공된 하나의 코드 비트들로부터 형성된다. 하부 페이지 다음에 상부 페이지를 갖는 논리적 페이지마다 프로그래밍이 수행될 수 있다. 이러한 코드는 고장-방지(fault-tolerance)를 제공하고 BL-BL 유핀 효과를 경감시킨다. 도 5(0)는 4-상태 메모리 어레이의 임계 전압 분포들을 도시한다. 각 메모리 셀의 가능한 임계 전압들은 각각 4개의 가능한 메모리 상태들, "Er","A","B" 및 "C"로 경계를 짓도록 경계 임계 전압들(DA, DB 및 DC)에 의해 4개의 영역들로 분할되는 임계 윈도를 포함한다. "Er"은 접지 상태이며, 이는 좁혀진(tightened) 분포 내의 소거 상태이고, "A","B" 및 "C"는 3개의 프로그래시브하게 프로그램된 상태들이다. 판독동안, 4개의 상태들은 3개의 판독점들(DRA, DRB 및 DRC)에 의해 경계가 지어진다.
도 5(3)은 바람직하게, 4개의 가능한 메모리 상태들을 표현하는 2-비트 LM 코딩을 도시한다. 메모리 상태들의 각각(즉, "Er", "A", "B" 및 "C")은 한 쌍의 "상부, 하부" 코드 비트들에 의해, 즉 "11", "01", "00" 및 "10"에 의해 각각 표현된다. LM 코딩은 상부 및 하부 비트들이 상태들 "A"와 "C"에 대해 반전되는(reversed) 종래의 그레이 코드(Gray code)와는 다르다. "LM" 코드는 미국 특허 번호 6,657,891에 개시되어 있으며, 전하들의 큰 변화를 요구하는 프로그램 동작들을 회피하는 것에 의해 인접한 플로팅 게이트들 사이의 전계-효과 커플링을 감소시키는데 유익하다. 도 5(2)와 5(3)에서 보여질 것과 같이, 임계 전압들(VT)의 적당한 변화로부터의 증거로서 각 프로그래밍 동작은 전하 저장 유닛의 전하들의 적당한 변화를 나타낸다.
2개의 코드 비트들, "하부"와 "상부" 비트들이 따로따로 프로그램되고 판독될 수 있도록 코딩이 설계된다. 하부 비트를 프로그래밍할 때, 셀의 임계 레벨은 "소거" 영역에 남아있거나 또는 임계 윈도의 "하부 중간" 영역으로 이동된다. 상부 비트를 프로그래밍할 때, 이러한 두 영역들 중 하나에 있는 셀의 임계 레벨은 또한 임계 윈도의 "하부 중간" 영역의 약간 높은 레벨로 올라간다.
도들 5(1) 및 5(2)는 2-비트 LM 코드를 이용하는 하부 페이지 프로그래밍을 도시한다. 임의의 다음의 상부 페이지 프로그래밍이 임의의 중간 상태들을 통해 전송하는 것을 회피하도록 고장-방지 LM 코드가 설계된다. 따라서, 제 1 라운드에서, 하부 페이지 프로그래밍은 하부 비트가 "1"이면 "소거" 또는 "Er" 상태에 남아있는 셀을 갖고, 하부 비트가 "0"이면 "하부 중간" 상태로 프로그램된 셀을 갖는다. 기본적으로, "Er" 또는 "접지" 상태는 임계 값들의 잘 정의된 범위 내로 프로그램된 깊게(deeply) 소거된 상태들을 갖는 것에 의해 좁혀진 분포를 갖는 "소거" 상태이다. 하부 페이지 LM 프로그래밍은 필수적으로 임계 윈도의 중간 근처의 중간 스테이징 영역으로 프로그래밍하는 임계 윈도의 상부 절반의 상태들("B" 및 "C")로 타겟된 메모리 셀들을 갖는다. "하부 중간"("LM")상태들은 메모리 상태들 "A"와 "B" 사이를 가로지르는(straddle) 임계 전압들의 넓은 분포를 가질 수 있다. 프로그래밍은 바람직하게 상태들 "B"와 "C"에 대하여 지정된 메모리 셀들을 LM 상태로 빠르게 이동시키도록 상대적으로 적은 거친 펄스들로 수행된다. "LM" 상태는 DVLM과 같은 확인 경계에 대하여 프로그래밍 펄스들 사이에서 프로그램되고 확인되어 LM 상태가 상태들 "B"와 "C" 사이의 경계(D2)로 가까이 가지만 그를 넘지는 않게 된다.
필수적으로, 제 1 패스 프로그래밍은 임계 윈도의 하부 절반에 속하는 상태들 "E"와 "A"로 타겟된 메모리 셀들을 터치하지 않은 채로 놔두고, 이러한 메모리 셀들은 임계 윈도의 소거된 밴드에 남아있다. 동시에, 프로그래밍은 임계 윈도의 상부 절반에 속하는 상태들 "B"와 "C"로 타겟된 메모리 셀들을 임계 윈도의 중간 부근의 LM 스테이징 영역으로 이동시킨다. 메모리 셀들의 프로그래밍을 완료하기 위한 다음 프로그래밍 패스들에서, 대부분의 각 셀은 임계 윈도의 폭의 절반인 그의 최종 종착지로 이동해야 한다.
도들 5(2)와 5(3)은 2-비트 LM 코드를 이용하는 상부 페이지 프로그래밍을 도시한다. 상부 페이지 프로그래밍은 제 1 패스인, 하부 페이지 프로그래밍에 기초하여 수행된다. 특정한 상부 비트가 하부 비트의 값에 의존하여 상이한 메모리 상태들을 표현할 수 있다. 프로그래밍의 제 2 패스에서, 하부 비트가 "1"에 있는 동안 셀이 상부 비트를 "1"을 갖게 되면, 즉, (1,1)이 되면, 그러한 셀을 위한 프로그래밍은 없으며 이는 "Er"에 남아있게 된다. 하부 비트가 "1"에 있는 동안 상부 비트가 "0"이면, 즉, (0,1)이면, 셀은 "Er" 상태로부터 "A" 상태로 프로그램된다. "A" 로의 프로그래밍동안, 확인은 경계(DVA)에 대한 것이다. 한편, 하부 비트가 "0"에 있는 동안 셀이 상부 비트를 "0"을 갖는다면, 즉, (0,0)이라면, 셀은 "하부 중간" 상태에서 "B"로 프로그램된다. 프로그램 확인은 경계(DVB)에 관한 것이다. 유사하게, 하부 페이지가 "0"에 있는 동안 셀이 상부 비트를 "1"을 갖는다면, 즉, (1,0)이라면, 셀은 "하부 중간" 상태에서 "C"로 프로그램될 것이다. 프로그램 확인은 경계(DVC)에 관한 것이다.
상부 페이지 프로그래밍이 "Er" 상태 또는 "하부 중간" 상태 중 하나로부터 다음의 인접한 메모리 상태로의 프로그래밍만을 포함하므로, 하나의 라운드에서 다른 라운드로 대량의 전하들이 변경되지 않는다. 또한, "Er"로부터 대략적인 " 하부 중간" 상태로의 하부 페이지 프로그래밍은 시간을 절약하도록 설계된다. 각 프로그래밍 패스에서, 증가하는 프로그래밍 펄스들이 재시작되고 초기 Vpgm0으로부터 증가된다(도 10을 보라).
다른 실행에서, "빠른 패스 기록(Quick Pass Write)" 프로그래밍 기술이 실행된다. 셀의 프로그래밍이 확인 경계점에 가까이 다가갈 때마다, 프로그래밍은 비트 라인 전압의 적절한 바이어싱에 의해 또는 프로그래밍 펄스들을 변경시키는 것에 의해 더 느린(즉, 더 미세한) 모드로 스위치될 것이다. 이러한 방식으로, 타겟 상태를 오버슈팅할 위험 없이 빠른 수렴을 위해 더 큰 프로그래밍 스텝들이 처음에 사용될 수 있다. "QPW" 프로그래밍 알고리즘은 제목이 "Methods for Improved Program-Verify Operations in Non-Volatile Memories"인, 2005년 12월 29일에 출원된 미국 특허 출원 일련 번호 11/323,596에 개시되었으며, 그의 전체 명세서가 본 문서에 참조로 포함된다.
3-비트 또는 8-상태 메모리를 위한 전형적인 "LM" 코딩
2-비트 LM 코드의 예가 3-비트 또는 더 높은 수의 비트들로 유사하게 확장될 수 있다.
도들 6(0) 내지 6(4)는 종래 기술에 따라 바람직한 3-비트의 논리적 코드("LM" 코드)로 인코딩된 8-상태 메모리의 프로그래밍을 도시한다. 페이지의 각 메모리 셀로부터의 3개의 비트들이 3개의 논리적 페이지들을 형성하며 논리적 페이지마다 프로그래밍이 수행될 수 있다. 이러한 코드는 앞서 설명된 2-비트 LM 코딩과 유사하며, 8개의 가능한 메모리 상태들을 인코딩하기 위해 3개의 비트들로 확장된 것이다. 도 6(0)은 8-상태 메모리 어레이의 임계 전압 분포들을 도시한다. 각 메모리 셀의 가능한 임계 전압들은 각각 8개의 가능한 메모리 상태들, "Er","A","B","C","D","E","F" 및 "G"의 경계를 짓기 위한 경계 임계 전압점들(DA - DG)에 의해 8개의 영역들로 분할되는 임계 윈도를 포함한다. "Er"은 접지 상태이며, 이는 좁혀진 분포 내의 소거된 상태이고, "A" - "G" 는 7개의 프로그레시브하게 프로그램된 상태들이다. 판독 동안, 8개의 상태들은 7개의 경계 판독점들(DRA-DRG)에 의해 경계가 지어진다.
도 6(4)는 8개의 가능한 메모리 상태들을 표현하기 위한 3-비트 LM 코딩을 도시한다. 8개의 메모리 상태들의 각각은 "상부, 중간, 하부" 비트들의 삼중항, 즉, "111","011","001","101","100","000","010" 및 "110"에 의해 각각 표현된다. 도 8(4)로부터 증명되는 것과 같이, 최종 프로그래밍 패스는 모든 메모리 셀들의 임계 전압들에서 작은 변화만을 가져온다. 이는 각 메모리 셀들의 전하 저장 유닛의 작은 변화들로 번역되고, 결국 유핀 효과를 최소화하게 된다.
3개의 코드 비트들, "하부", "중간" 및 "상부" 비트들이 따로따로 프로그램 및 판독될 수 있도록 코딩이 설계된다. 따라서, 제 1 라운드에서, 하부 페이지 프로그래밍은 하부 비트가 "1"일 때 "소거" 또는 "Er" 상태에 남아있는 셀을 가지며, 하부 비트가 "0"이면 "하부 중간" 상태로 프로그램된 셀을 갖는다. 기본적으로, "Er" 또는 "접지" 상태는 임계 값들의 좁은 범위 내로 프로그램된 깊게 소거된 상태들을 갖는 것에 의해 좁혀진 분포를 갖는 "소거" 상태이다. "하부 중간" 상태들은 메모리 상태들 "B"와 "D" 사이를 가로지르는 임계 전압들의 넓은 분포를 가질 수 있다. 프로그래밍동안, "하부 중간" 상태는 DB와 같은 거친 중단점 임계 레벨에 대하여 확인될 수 있다. 중간 비트를 프로그래밍할 때, 셀의 임계 레벨은 하부 페이지 프로그래밍으로부터 결과된 두개의 영역들 중 하나로부터 시작하여 4개의 가능한 영역들 중 하나로 이동할 것이다. 상부 비트를 프로그램할 때, 셀의 임계 레벨은 중간 페이지 프로그래밍으로부터 결과된 4개의 가능한 영역들 중 하나로부터 8개의 가능한 메모리 상태들 중 하나로 이동할 것이다.
일반적으로 메모리 셀들의 페이지는 병렬로 프로그램되고, 각 메모리 셀은 3개의 비트들을 갖는다. 따라서, 메모리 셀들의 페이지는 각 논리적 데이터 페이지가 페이지의 모든 셀들의 하나의 코드 비트로부터 제공된, 3개의 논리적 데이터 페이지들을 갖는 것으로 간주될 수 있다. 따라서, "하부 비트" 페이지는 페이지의 모든 메모리 셀들의 하부 비트로부터 형성되며, "중간 비트" 페이지는 모든 셀의 중간 비트로부터 형성되고 "상부 비트"는 페이지의 모든 셀의 상부 비트로부터 형성된다.
도들 6(1) 및 6(2)는 3-비트 LM 코드를 이용하는 하부 페이지 프로그래밍을 도시한다. 임의의 다음 상부 페이지 프로그래밍이 임의의 중간 상태들을 통해 전송하는 것을 회피하도록 고장-방지 LM 코드가 설계된다. 따라서, 제 1 라운드에서, 하부 페이지 프로그래밍은 하부 비트가 "1"이면, 즉, (x,x,1)이면, "소거" 또는 "Er" 상태에 남아있는 셀을 갖고, 하부 비트가 "0"이면, 즉, (x,x,0)이면, "하부 중간" 상태로 프로그램된 셀을 갖는다. 기본적으로, "Er" 또는 "접지" 상태는 임계 값들의 잘 정의된 범위 내로 프로그램된 깊게 소거된 상태들을 갖는 것에 의해 좁혀진 분포를 갖는 "소거" 상태이다. 하부 페이지 LM 프로그래밍은 필수적으로 임계 윈도의 중간 근처의 중간 스테이징 영역으로 프로그래밍하는 임계 윈도의 상부 절반의 상태들("D" - "G")로 타겟된 메모리 셀들을 갖는다. "하부 중간"("LM")상태들은 메모리 상태들 "B"와 "D" 사이를 가로지르는 임계 전압들의 넓은 분포를 가질 수 있다. 프로그래밍은 바람직하게 상태들 "B"와 "C"에 대하여 지정된 메모리 셀들을 LM 상태로 빠르게 이동시키도록 상대적으로 적은 거친 펄스들로 수행된다. "LM" 상태는 DVLM과 같은 확인 경계에 대하여 프로그래밍 펄스들 사이에서 프로그램되고 확인되어 LM 상태가 상태들 "D"와 "E" 사이의 경계(D4)로 가까이가지만 그를 넘지는 않게 된다.
필수적으로, 제 1 패스 프로그래밍은 임계 윈도의 하부 절반에 속하는 상태들 "E"-"C"로 타겟된 메모리 셀들을 터치하지 않은 채로 놔두고, 이러한 메모리 셀들은 임계 윈도의 소거된 밴드에 남아있다. 동시에, 프로그래밍은 임계 윈도의 상부 절반에 속하는 상태들 "D"-"G"로 타겟된 메모리 셀들을 임계 윈도의 중간 부근의 LM 스테이징 영역으로 이동시킨다. 메모리 셀들의 프로그래밍을 완료하기 위한 다음 프로그래밍 패스들에서, 대부분의 각 셀은 임계 윈도의 폭의 절반인 그의 최종 종착지로 이동해야 한다.
도들 6(2) 및 6(3)은 3-비트 LM 코드를 이용하는 중간 페이지 프로그래밍을 도시한다. 중간 페이지 프로그래밍은 제 1 라운드인, 하부 페이지 프로그래밍에 기초하여 수행된다. 특정한 중간 비트가 하부 비트에 의존하여 상이한 메모리 상태들을 표현할 수 있다. 프로그래밍의 제 2 라운드에서, 하부 비트가 "1"에 있는 동안 셀이 중간 비트를 "1"을 갖게 되면, 즉, (x,1,1)이 되면, 그러한 셀을 위한 프로그래밍은 없으며 이는 "Er"에 남아있게 된다. 하부 비트가 "1"에 있는 동안 중간 비트가 "0"이면, 즉, (x,0,1)이면, 셀은 "Er" 상태로부터 "A"와 "B" 사이를 가로지르는 제 1의 "중간 중간" 상태로 프로그램된다. 제 1의 "중간 중간" 상태로 프로그래밍하는 동안, 확인은 경계(DVMM1)에 대한 것이다. 한편, 하부 비트가 "0"에 있는 동안 셀이 중간 비트를 "0"을 갖는다면, 즉, (x,0,0)이라면, 셀은 "LM" 상태로부터 "C"와 "D" 사이를 가로지르는 제 2의 "중간 중간" 상태로 프로그램된다. 프로그램 확인은 경계(DVMM2)에 관한 것이다. 유사하게, 하부 페이지가 "0"에 있는 동안 셀이 중간 비트를 "1"을 갖는다면, 즉, (x,1,0)이라면, 셀은 "LM" 상태로부터 "E"와 "F" 사이를 가로지르는 제 3의 "중간 중간" 상태로 프로그램될 것이다. 프로그램 확인은 경계(DVMM3)에 관한 것이다.
도들 6(3) 및 6(4)은 3-비트 LM 코드를 이용하는 상부 페이지 프로그래밍을 도시한다. 상부 페이지 프로그래밍은 제 1 및 제 2 라운드들, 즉 하부 및 중간 페이지 프로그래밍에 기초하여 수행된다. 특정한 상부 비트는 하부 및 중간 비트들에 의존하여 상이한 메모리 상태들을 표현할 수 있다. 프로그래밍의 제 3 라운드에서, 하부 및 중간 비트들이 "1"에 있는 동안 셀이 상부 비트를 "1"을 갖는다면, 즉, (1,1,1)이 되면, 그러한 셀을 위한 프로그래밍은 없으며 이는 "Er"에 남아있게 된다. 한편, 하부 및 중간 비트가 "1"에 있는 동안 상부 비트가 "0"이라면, 즉, (0,1,1)이라면, 셀은 "Er" 상태로부터 "A" 상태로 프로그램된다. "A"로의 프로그래밍동안, 확인은 경계(DVA)에 관한 것이다.
유사하게, 하부 비트와 중간 비트들이 각각 "0"과 "1"에 있는 동안 셀이 상부 비트를 "0"을 갖는다면, 즉, (0,0,1)이라면, 셀은 제 1의 "중간 중간" 상태로부터 "B"로 프로그램된다. 프로그램 확인은 경계(DVB)에 대한 것이다. 하부 비트와 중간 비트들이 각각 "0"과 "1"에 있는 동안 셀이 상부 비트를 "1"을 갖는다면, 즉, (1,0,1)이라면, 셀은 제 1의 "중간 중간" 상태로부터 "C"로 프로그램된다. 프로그램 확인은 경계(DVC)에 대한 것이다.
유사하게, 하부 비트와 중간 비트들이 각각 "0"과 "0"에 있는 동안 셀이 상부 비트를 "1"을 갖는다면, 즉, (1,0,0)이라면, 셀은 제 2의 "중간 중간" 상태로부터 "D"로 프로그램된다. 프로그램 확인은 경계(DVD)에 대한 것이다. 하부 비트와 중간 비트들이 각각 "0"과 "0"에 있는 동안 셀이 상부 비트를 "0"을 갖는다면, 즉, (0,0,0)이라면, 셀은 제 2의 "중간 중간" 상태로부터 "E"로 프로그램된다. 프로그램 확인은 경계(DVE)에 대한 것이다.
유사하게, 하부 비트와 중간 비트들이 각각 "1"과 "0"에 있는 동안 셀이 상부 비트를 "0"을 갖는다면, 즉, (0,1,0)이라면, 셀은 제 3의 "중간 중간" 상태로부터 "F"로 프로그램된다. 프로그램 확인은 경계(DVF)에 대한 것이다. 하부 비트와 중간 비트들이 각각 "0"과 "0"에 있는 동안 셀이 상부 비트를 "1"을 갖는다면, 즉, (1,1,0)이라면, 셀은 제 3의 "중간 중간" 상태로부터 "G"로 프로그램된다. 프로그램 확인은 경계(DVG)에 대한 것이다.
상부 페이지 프로그래밍이 "Er" 상태 또는 "중간 중간" 상태들 중 하나로부터 다음의 인접한 메모리 상태로의 프로그래밍만을 포함하므로, 하나의 라운드에서 다른 라운드로 대량의 전하들이 변경되지 않는다. 이는 BL-BL 유핀 효과를 경감시키는데 도움을 준다.
4-비트, 5-비트 및 더 높은 비트의 LM 코딩에 대하여, n-비트의 코드가 n개의 데이터 페이지들을 가지며 각 페이지는 특정한 비트의 코드를 제공하는 페이지의 모든 셀로부터 형성된다는 동일한 원리가 적용된다. 보다 중요하게, 하부로부터 상부 비트 페이지로의 프로그래밍은 셀들의 전하에 적절한 변화를 발생시키고, 따라서 메모리 셀들의 페이지의 유핀 효과로 인한 교란의 양을 제한시킨다.
3-비트 또는 8-상태 메모리를 위한 전형적인 "LM-포기-파인" 프로그래밍
도 6에서 설명된 3-비트 LM 코딩 및 프로그래밍이 각 프로그래밍 패스를 갖는 시간에서 논리적 페이지를 프로그래밍하여 실행될 수 있다. 3개의 논리적 페이지들이 있는데: 하부, 중간 및 상부 비트들에 대응하는 하부 페이지, 중간 페이지 및 상부 페이지이다.
대안의 프로그래밍 스킴은 하부의 논리적 페이지를 프로그램하기 위하여 도 6에서와 같이 제 1 패스 LM 프로그래밍을 유지하는 것이다. 그러나, 제 2 패스는 더이상 메모리 셀들을 2진 분할된 스테이징 영역들로 프로그램하지 않을 것이며, 단순히 모든 메모리 셀들을 그들의 종착지들에 가깝게 프로그램할 것이다. 제 2 패스 프로그래밍은 그것이 여전히 속도를 증가시키기 위하여 거친 프로그래밍 펄스들로 거칠게 수행되지만 제 1 LM 패스보다는 미세하기 때문에 "포기(foggy)"라고 불린다. 이 다음으로 훨씬 미세한 프로그래밍 펄스들을 이용하여 각 상태의 임계 분포의 트레일링 에지(trailing edge)를 트리밍하는 제 3의 "파인(fine)" 프로그래밍 패스가 따라온다. 각 패스에 대한 확인 임계점들은 프로그래밍 펄스들의 입도에 의존한다. 지정된 임계값으로 과프로그램(over-program)되기 전에 각 위치가 확인되어 메모리 셀이 확인 임계에서 먼저 확인될 것이다.
도들 7(0)-7(4)는 종래 기술에서와 같은 "LM-포기-파인(LM-foggy-fine)" 프로그래밍 스킴을 도시한다.
도 7(1)-도 7(2)는 도 6(1) 내지 도 6(2)에 도시된 것과 유사한 "LM" 패스를 도시한다. LM 패스는 이전과 같이 하부의 논리적 페이지를 프로그램한다.
도들 7(2)-7(3)은 미세한 프로그래밍 펄스들을 이용하여 모든 메모리 셀들이 그들의 타겟 상태들을 향해 상대적으로 대충 빠르게 프로그램되는 "포기" 패스를 도시한다.
도들 7(3)- 7(4)는 더욱 미세한 프로그래밍 펄스들을 이용하여 모든 메모리 셀들이 그들의 타겟 상태들로 최종적으로 프로그램되는 "파인" 패스를 도시한다.
그들의 최종 종착지들에 가깝게 프로그램된 메모리 셀들을 갖는 개선된 "LM" 프로그래밍
2-비트 및 3-비트 다중-패스 프로그래밍에 대해 주어진 예들로부터 명백한 바와 같이, 처음에 LM 프로그래밍 패스는 상부의 프로그램된 상태들로 타겟된 메모리 셀들을 임계 윈도의 하부의 중간 부분 근처의 "LM" 스테이징 영역으로 떨어뜨리도록 행동한다. 2-비트의 경우에, "B"와 "C"로 타겟된 메모리 셀들은 DVLM에서 그들을 프로그램-확인하는 것에 의해 스테이징 영역으로 위치시킨다. 3-비트의 경우에, "D"-"G"로 타겟된 메모리 셀들은 DVLM에서 그들을 프로그램 확인하는 것에 의해 스테이징 영역으로 위치시킨다. 임계 윈도의 상부 절반에 속하는 그들의 타겟된 상태들에 기초한 프로그래밍에 대해 이러한 메모리 셀들이 선택되는 동안, 프로그램 확인을 수행할 때 상이한 상태들 사이에서 차이점들이 만들어지지 않는다. 그들은 모두 타겟 상태들에 상관 없이 DVLM에 대하여 동일한 스테이징 영역에 위치되므로, 다음 프로그래밍 패스들이 이러한 메모리 셀들을 그들의 최종 종착지들로 이동시킬 때, 더 많이 프로그램된 상태들로 타겟된 것들은 헤드 스타트(head start)를 갖지 않으며 그들의 최종 종착지들에 도달하기 위하여 더 많은 프로그래밍 펄스들을 가질 필요가 있을 것이다.
본 발명의 제 1 실시예에 따라, 공통 임계 전압 윈도 내에서 동작하는 메모리 셀들의 페이지는 개선된 다중-패스 프로그래밍 동작에 의해 프로그램된다. 다중-패스 프로그래밍은 프로그래밍을 위해 임계 윈도의 상부 절반에 타겟 상태들을 갖는 페이지의 메모리 셀들의 제 1 세트를 선택하고, 임계 윈도의 중간 부분 근처의 지점이 미리 정해진 확인으로 패스하였다는 것을 상기 각 메모리 셀이 확인 완료할 때까지 프로그래밍 전압 펄스마다 제 1 세트의 각 메모리 셀을 프로그래밍하고 확인하며, 제 1 세트의 모든 메모리 셀들이 프로그램-확인 완료된 후, 개입 확인 없이 프로그램-확인된 메모리 셀들을 다수의 부가적인 프로그래밍 펄스들로 또한 가능하게 하는 것을 포함하는 제 1의 "개선된 LM" 프로그래밍 패스를 포함하며, 여기서 수는 타겟 상태에 의존한다. 개선된 LM 패스 뒤로 페이지의 모든 메모리 셀들이 그들의 최종 종착지들로 더욱 미세하게 프로그램되는 하나 또는 그 이상의 프로그래밍 패스들이 뒤따른다.
이러한 방식으로, 종래의 LM 프로그래밍 패스 실행들에 비교하여 개선된 LM 패스는 각각의 메모리 셀을 그의 최종 종착지에 더욱 가까이 프로그램한다. 이는 다음 패스들에 필요한 프로그래밍을 감소시킬 것이며, 따라서 성능을 개선시킨다. 더욱 효율적이고 거친 프로그래밍 펄스들과 개입 확인 동작들의 부재 때문에, 다음의 패스들에서보다 개선된 LM 패스동안 임계 윈도의 메모리 셀을 이동시키는 것이 더욱 빨라지므로 전체적인 시간이 절약된다.
도들 8(0) 내지 8(4)는 본 발명의 제 1 실시예에 따라 개선된 LM 패스인 제 1 프로그래밍을 갖는 3-비트 메모리 셀들의 페이지 상의 개선된 다중-패스 프로그래밍을 도시한다.
도 8(0)은 8-상태 메모리 어레이의 임계 전압 분포들을 도시한다. 각 메모리 셀의 가능한 임계 전압들은 각각 8개의 가능한 메모리 상태들, "Er", "A", "B", "C", "D", "E", "F" 및 "G"의 경계를 짓기 위한 경계 임계 전압점들(DA - DG)에 의해 8개의 영역들로 분할되는 임계 윈도를 포함한다. "Er"은 접지 상태이며, 이는 좁혀진 분포 내의 소거된 상태이고, "A" - "G" 는 7개의 프로그레시브하게 프로그램된 상태들이다. 판독 동안, 8개의 상태들은 7개의 경계 판독점들(DRA-DRG)에 의해 경계가 지어진다.
도 8(4)는 8개의 가능한 메모리 상태들을 표현하기 위한 3-비트 LM 코딩을 도시한다. 8개의 메모리 상태들의 각각은 "상부, 중간, 하부" 비트들의 삼중항, 즉, "111","011","001","101","100","000","010" 및 "110"에 의해 각각 표현된다. 도 8(4)로부터 증명되는 것과 같이, 최종 프로그래밍 패스는 모든 메모리 셀들의 임계 전압들에서 작은 변화만을 가져온다. 이는 각 메모리 셀들의 전하 저장 유닛의 작은 변화들로 번역되고, 결국 유핀 효과를 최소화하게 된다.
도들 8(1)-8(2)는 "개선된 LM 패스"로 표현되는 제 1 프로그래밍 패스를 도시한다. 개선된 LM 패스는 처음에는 도들 5(1)-5(2)와 도들 6(1)-6(2)에 도시된 하부 페이지 LM 프로그래밍과 유사하다. 프로그램될 페이지의 3-비트 메모리 셀들이 2N =k+1의 가능한 메모리 상태들 중 타겟 상태들을 갖는다. N=3일 때, 가능한 메모리 상태들의 수는 8이고 하나의 소거된 상태를 가지며, 프로그램된 상태들의 수는 k=7이 된다. 따라서, 8개의 메모리 상태들은 임계 윈도의 최저 단부의 "Er"로부터 최고 단부의 "G"의 범위를 갖는다. 상태들 "Er","A","B" 및 "C"는 임계 윈도의 하부 절반에 위치하고 상태들 "D","E","F", "G"는 임계 윈도의 상부 절반에 위치한다. 임계 윈도의 상부 절반의 상태들 "D"-"G" 중에서 타겟 상태들을 갖는 메모리 셀들의 제 1 세트가 임계 윈도의 중간 근처의 하부 중간 스테이징 영역으로의 프로그래밍을 위해 선택된다. "하부 중간"("LM") 스테이징 영역은 메모리 상태들 "C"와 "D" 사이를 가로지르지만 상태 "D"를 넘지는 않는 임계 전압들의 넓은 분포를 가질 수 있다. 프로그래밍은 바람직하게 상태들 "D"-"G"에 대해 지정된 메모리 셀들을 LM 스테이징 영역으로 빠르게 이동시키도록 상대적으로 적은 거친 펄스들로 수행된다. 이는 미리정해진 확인 경계(DVLM)에 관한 프로그래밍 펄스들 사이의 프로그램 확인에 의해 완성되어 LM 스테이징 영역으로 이동된 메모리 셀들이 상태들 "D"와 "E" 사이의 경계(D4)에 가능한 한 가까이 있게 되나 이를 넘지는 않는다.
필수적으로, 제 1 패스 프로그래밍은 임계 윈도의 하부 절반에 속하는 상태들 "E"-"C"로 타겟된 메모리 셀들을 터치하지 않은 채로 놔두고, 이러한 메모리 셀들은 임계 윈도의 소거된 밴드에 남아있다. 동시에, 프로그래밍은 임계 윈도의 상부 절반에 속하는 상태들 "D"-"G"에 타겟된 메모리 셀들을 임계 윈도의 중간 근처의 LM 스테이징 영역으로 이동시킨다.
전형적으로, 종래의 LM 패스의 각 프로그램 펄스는 하나의 프로그램된 상태에 의해 메모리 셀 이전에 설정된다. 따라서, 종래의 LM 패스는 전형적으로 메모리 셀들의 제 1 세트가 상태 "D"까지 프로그램되나 이를 넘지는 않는 4개의 펄스들 후에 완료된다.
개선된 LM 패스는 종래의 LM 패스가 완료된 후에 부가적인 프로그래밍을 갖는다. 스테이징 영역의 메모리 셀이 상태 "D"로 타겟되면, 이는 이미 그의 최종 종착지로 프로그램-확인되었으므로 임의의 부가적인 펄스들로 프로그램가능하게 되지 않을 것이다. 그러나, 상태 "E"로 타겟된 스테이지의 메모리 셀에 대하여서는, "E" 외에 상태 "D"에서 프로그램-확인될 뿐이다. 따라서, 예를 들어 1개의 부가적인 펄스에 의해 프로그램되도록 프로그램-가능하게 될 것이다. 유사하게, 상태들 "F"와 "G"로 각각 타겟된 메모리 셀들에 대하여, 그들은 각각 2 및 3개의 부가적인 펄스들에 의해 프로그램되도록 프로그램-가능하게 될 것이다.
도 8(2)는 부가적인 프로그램 후에 확장되는 타겟 상태들 "D", "E", "F" 및 "G"를 갖는 메모리 셀들의 분포를 도시한다. "E"+1은 1개의 부가적인 프로그램 펄스에 대해 가능한 타겟 상태 "E"를 갖는 메모리 셀들을 나타내고, "F"+2은 2개의 부가적인 프로그램 펄스들에 대해 가능한 타겟 상태 "F"를 갖는 메모리 셀들을 나타내며, "G"+3은 3개의 부가적인 프로그램 펄스들에 대해 가능한 타겟 상태 "G"를 갖는 메모리 셀들을 나타낸다.
부가적인 프로그래밍은 종래의 LM 패스의 완성 후에 3개의 부가적인 펄스들을 발생시키지만, 개입 확인을 요구하지는 않는다. 장점은 메모리 셀들이 그들의 최종 종착지들에 더욱 가깝게 스테이지된다는 것이며, 따라서 다음 프로그래밍 패스들에서 시간을 절약하게 된다.
도 8(3)은 도 7(3)과 함께 설명된 "포기" 패스와 유사한 제 2 프로그래밍 패스를 도시한다.
도 8(4)는 도 7(3)과 함께 설명된 "파인" 패스와 유사한 제 3 프로그래밍 패스를 도시한다.
각각의 다음 프로그래밍 패스로, 더 미세한 프로그래밍 펄스와 더욱 엄격한 세트의 확인 임계 전압점들이 프로그래밍의 해상도를 개선시키는데 사용된다.
본 발명의 제 2 실시예에 따라, 공통 임계 전압 윈도 내에서 동작하는 메모리 셀들의 페이지가 개선된 다중-패스 프로그래밍 동작에 의해 프로그램된다. 다중-패스 프로그래밍은 프로그래밍을 위해 임계 윈도의 상부 절반에 타겟 상태들을 갖는 페이지의 메모리 셀들의 제 1 세트를 선택하고, 임계 윈도의 중간 부분 근처의 지점을 미리 정해진 확인으로 패스하였다는 것을 상기 각 메모리 셀이 확인 완료할 때까지 프로그래밍 전압 펄스마다 제 1 세트의 각 메모리 셀을 프로그래밍하고 확인하며, 미리 결정된 확인점에서 아직 프로그램-확인되는 제 1 세트의 남아있는 메모리 셀들에 대해 프로그래밍과 확인이 진행되는 동안, 프로그램-확인된 메모리 셀들이 또한 프로그램-확인된 메모리 셀들 상에서 개입 확인 없이 다수의 진행중인 프로그래밍 펄스들로 프로그램-가능하게 되는 제 1의 "개선된 LM" 프로그래밍 패스를 포함하며, 여기서 수는 타겟 상태에 의존한다. 개선된 LM 패스 뒤로 페이지의 모든 메모리 셀들이 그들의 최종 종착지들로 더욱 미세하게 프로그램되는 하나 또는 그 이상의 프로그래밍 패스들이 뒤따른다.
특히, 메모리가 더 많이 프로그램된 상태의 타겟 상태를 가질 때 또는 스테이징 영역에 대한 임계 윈도가 더 높아질 때, 그가 수신할 부가적인 프로그래밍 펄스들의 수가 더 커지지만, 수행중인 프로그래밍 펄스의 가용성에 의해 제한된다. 예를 들어, 제 1 세트의 프로그램-확인된 모든 메모리 셀들로 4개의 펄스들을 가질 수 있다. 만일 메모리 상태가 펄스 2의 확인점을 패스한다면, 그는 타겟 상태 "D"를 갖게 되고, 펄스 3 및 4에서 프로그램-억제될 것이다. 한편, 만일 메모리 상태가 타겟 상태 "E"를 가지면, 이는 펄스 3에서 프로그램-가능하게 될 것이지만, 펄스 4에서는 그렇지 않다. 만일 메모리 상태가 타겟 상태 "F"를 가진다면, 이는 펄스 3과 펄스 4에서 프로그램-가능하게 될 것이다. 만일 메모리 상태가 타겟 상태 "G"를 가진다면, 이는 펄스 3과 펄스 4에서 프로그램-가능하게 될 것이다.
개선된 LM 패스의 제 1 실시예와 유사한 제 2 실시예는 이전의 LM 프로그래밍 패스 실행들과 비교할 때 그의 최종 종착지에 더욱 가까이 각 메모리 셀들을 프로그램한다. 이는 다음 패스들에서 필요한 프로그래밍을 감소시킬 것이고, 따라서 성능을 개선시킨다. 개선된 LM 패스에서 발생하는 부가적인 프로그래밍 펄스들이 거친 프로그래밍 펄스들과 개입 확인 동작들의 부재로 더욱 효율적이므로, 다음 패스들에서보다 개선된 LM 패스동안 임계 윈도에서 메모리 셀을 이동시키는 것이 더욱 빠르게 되고, 전체적인 시간이 절약된다. 특히, 제 2 실시예는 제 1 세트의 모든 메모리 셀들을 프로그램-확인하는데 필요한 프로그래밍 펄스들의 수행 수 내에서만 동작하며, 부가적인 것은 없다.
도들 9(0)-9(4)는 본 발명의 제 2 실시예에 따라 개선된 LM 패스인 제 1 프로그래밍을 갖는 3-비트 메모리 셀들의 페이지 상의 개선된 다중-패스 프로그래밍을 도시한다. 제 2 실시예는 개선된 LM 패스(제 1 패스)가 실행되는 방식의 제 1 실시예와는 다르다.
도들 9(1)-9(2)는 "개선된 LM 패스"로 표현되는 제 1 프로그래밍 패스를 도시한다. 개선된 LM 패스는 처음에는 도들 5(1)-5(2)와 도들 6(1)-6(2)에 도시된 하부 페이지 LM 프로그래밍과 유사하다. 프로그램될 페이지의 3-비트 메모리 셀들이 2N =k+1의 가능한 메모리 상태들 중 타겟 상태들을 갖는다. N=3일 때, 가능한 메모리 상태들의 수는 8이고 하나의 소거된 상태를 가지며, 프로그램된 상태들의 수는 k=7이 된다. 따라서, 8개의 메모리 상태들은 임계 윈도의 최저 단부의 "Er"로부터 최고 단부의 "G"의 범위를 갖는다. 상태들 "Er","A","B" 및 "C"는 임계 윈도의 하부 절반에 위치하고 상태들 "D","E","F","G"는 임계 윈도의 상부 절반에 위치한다. 임계 윈도의 상부 절반의 상태들 "D"-"G" 중에서 타겟 상태들을 갖는 메모리 셀들의 제 1 세트가 임계 윈도의 중간 근처의 하부 중간 스테이징 영역으로의 프로그래밍을 위해 선택된다. "하부 중간"("LM") 스테이징 영역은 메모리 상태들 "C"와 "D" 사이를 가로지르지만 상태 "D"를 넘지는 않는 임계 전압들의 넓은 분포를 가질 수 있다. 프로그래밍은 바람직하게 상태들 "D"-"G"에 대해 지정된 메모리 셀들을 LM 스테이징 영역으로 빠르게 이동시키도록 상대적으로 적은 거친 펄스들로 수행된다. 이는 미리정해진 확인 경계(DVLM)에 관한 프로그래밍 펄스들 사이의 프로그램-확인에 의해 완성되어 LM 스테이징 영역으로 이동된 메모리 셀들이 상태들 "D"와 "E" 사이의 경계(D4)에 가능한 한 가까이 있게 되나 이를 넘지는 않는다.
전형적으로, 종래의 LM 패스의 각 프로그램 펄스는 하나의 프로그램된 상태에 의해 메모리 셀 이전에 설정된다. 따라서, 종래의 LM 패스는 전형적으로 메모리 셀들의 제 1 세트가 상태 "D"까지 프로그램되나 이를 넘지는 않는 4개의 펄스들 후에 완료된다.
개선된 LM 패스는 종래의 LM 패스가 완료된 후에 부가적인 프로그래밍을 발생시키지 않는다. 대신, 종래의 LM 패스가 여전히 진행중이라면 부가적인 펄스들로 더 높게 프로그램된 상태들(예를 들면, "E"-"G")로 타겟된 메모리 셀들을 노출시킬 뿐이다. 스테이징 영역의(즉, "D"에서 프로그램-확인된) 메모리 셀들이 상태 "D"로 타겟되면, 이는 이미 그의 최종 종착지로 프로그램-확인되었으므로 임의의 진행중인 펄스들로 프로그램-억제될(프로그램-가능하게 되지 않을) 것이다. 그러나, 상태 "E"로 타겟되는 스테이징 영역의(즉, "D"에서 프로그램-확인된) 메모리 셀에 대하여서는, 임의의 1개의 부가적인 진행 펄스로 프로그램-억제되지 않을(또는 프로그램-가능하게 될) 것이다. 유사하게, 상태들 "F"와 "G"로 각각 타겟된 메모리 셀들에 대하여, 그들은 각각 임의의 2 및 3개의 부가적인 진행 펄스들에 프로그램-가능하게 될 것이다.
도 9(2)는 부가적인 프로그래밍 후에 확장되는 타겟 상태들 "D","E","F" 및 "G"를 갖는 메모리 셀들의 분포를 도시한다. "E"+1은 가능하다면 1개의 부가적인 진행 프로그램 펄스에 대해 가능한 타겟 상태 "E"를 갖는 메모리 셀들을 나타내고, "F"+2은 가능하다면 2개의 부가적인 실행 프로그램 펄스들에 대해 가능한 타겟 상태 "F"를 갖는 메모리 셀들을 나타내며, "G"+3은 가능하다면 3개의 부가적인 실행 프로그램 펄스들에 대해 가능한 타겟 상태 "G"를 갖는 메모리 셀들을 나타낸다.
도 10은 제 1 실시예에 따른, 개선된 LM 패스를 갖는 다중 패스 프로그래밍을 도시하는 흐름도이다.
단계 400: 비휘발성 메모리에 메모리 셀들의 어레이를 제공하며, 각 메모리 셀은 임계 윈도를 정의하는 임계 전압들의 공통 범위를 갖는다.
단계 410: k개의 경계점들(D(i))을 이용하여 임계 윈도를 임계 전압들의 2N=k+1 개의 밴드들로 분할하는 것에 의해 각 메모리 셀이 N 비트들의 데이터를 저장하도록 구성하며, 여기서 최하부 밴드는 소거된 상태를 나타내고 k 개의 증가하는 프로그램된 상태들(P(i))을 나타내는 k개의 증가 밴드들이 그 뒤를 따른다.
단계 412: 일련의 펄스들로 프로그래밍 전압을 제공한다.
단계 420: 선택된 워드 라인 상의 메모리 셀들의 페이지를 각각의 타겟 상태들로 다중 프로그래밍 패스들에서 프로그래밍한다.
단계 422: 상기 다중 프로그래밍 패스들은 페이지의 모든 메모리 셀들을 각각의 타겟 상태들로 프로그램하기 위하여 제 1 프로그래밍 패스와 많은 후속하는 프로그래밍 패스들 중 하나를 포함한다.
단계 430: 제 1 프로그래밍 패스는 또한 P([k+1]/2)로 시작하고 P(k)로 끝나는, k 개의 증가하는 프로그램된 상태들의 상부 절반에 있는 타겟 상태들을 갖는 페이지의 제 1 세트 메모리 셀들을 펄스마다 프로그래밍하고 확인하는 것을 포함한다.
단계 432: 상기 확인은 미리 정해진 임계 전압에 관한 것이며, 미리 정해진 확인 임계 전압은 임계 윈도의 중간 근처에 위치되나 D([k+1]/2+1)을 넘지는 않는 P([k+1]/2) 내지 P(k) 중 하나인 타겟 상태들을 갖는 모든 메모리 셀들의 프로그래밍의 확인을 가능하게 하도록 한다.
단계 440: 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 제 1 세트의 각 메모리 셀의 프로그래밍을 억제한다.
단계 450: 제 1 세트의 모든 메모리 셀들이 미리 정해진 확인 임계에 관하여 프로그램-확인 완료된 후에, 개입 프로그램-확인 없이, 타겟 상태 P([k+1]/2+x)를 갖는 각 메모리 셀의 상기 억제하는 프로그래밍을 부가적인 x 개의 펄스들로의 프로그래밍으로 선택적으로 불가능하게 한다.
도 11은 제 2 실시예에 따른, 개선된 LM 패스를 갖는 다중 패스 프로그래밍을 도시하는 흐름도이다.
단계 500: 비휘발성 메모리에 메모리 셀들의 어레이를 제공하며, 각 메모리 셀은 임계 윈도를 정의하는 임계 전압들의 공통 범위를 갖는다.
단계 510: k개의 경계점들(D(i))을 이용하여 임계 윈도를 임계 전압들의 2N=k+1 개의 밴드들로 분할하는 것에 의해 각 메모리 셀이 N 비트들의 데이터를 저장하도록 구성하며, 여기서 최하부 밴드는 소거된 상태를 나타내고 k 개의 증가하는 프로그램된 상태들(P(i))을 나타내는 k개의 증가 밴드들이 그 뒤를 따른다.
단계 512: 일련의 펄스들로 프로그래밍 전압을 제공한다.
단계 520: 선택된 워드 라인 상의 메모리 셀들의 페이지를 각각의 타겟 상태들로 다중 프로그래밍 패스들에서 프로그래밍한다.
단계 522: 상기 다중 프로그래밍 패스들은 페이지의 모든 메모리 셀들을 각각의 타겟 상태들로 프로그램하기 위하여 제 1 프로그래밍 패스와 많은 후속하는 프로그래밍 패스들 중 하나를 포함한다.
단계 530: 제 1 프로그래밍 패스는 또한 P([k+1]/2)로 시작하고 P(k)로 끝나는, k 개의 증가하는 프로그램된 상태들의 상부 절반에 있는 타겟 상태들을 갖는 페이지의 제 1 세트 메모리 셀들을 펄스마다 프로그래밍하고 확인하는 것을 포함한다.
단계 532: 상기 확인은 미리 정해진 임계 전압에 관한 것이며, 미리 정해진 확인 임계 전압은 임계 윈도의 중간 근처에 위치되나 D([k+1]/2+1)을 넘지는 않는 P([k+1]/2) 내지 P(k) 중 하나인 타겟 상태들을 갖는 모든 메모리 셀들의 프로그래밍의 확인을 가능하게 하도록 한다.
단계 540: 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 제 1 세트의 각 메모리 셀의 프로그래밍을 억제한다.
단계 550: 제 1 세트의 모든 메모리 셀들이 미리 정해진 확인 임계에 관하여 프로그램-확인 완료될 때까지 진행하는 프로그래밍 펄스들이 계속하여 메모리 셀들의 페이지로 인가되는 동안, 개입 프로그램-확인 없이, 타겟 상태 P([k+1]/2+x)를 갖는 각 메모리 셀의 상기 억제하는 프로그래밍을 x 개까지의 부가적인 진행 프로그래밍 펄스들로의 프로그래밍으로 선택적으로 불가능하게 한다.
설명된 본 발명의 실시예들은 바람직한 실행들이지만, 당업자는 그의 변화들이 또한 가능할 수 있음을 이해할 것이다. 따라서, 본 발명은 첨부된 청구항들의 전체 범주 내의 보호를 청구한다.
80: 호스트 90: 플래시 메모리 디바이스
100: 메모리 칩 200: 메모리 어레이

Claims (16)

  1. 비휘발성 메모리를 프로그래밍하는 방법으로서,
    상기 비휘발성 메모리에 메모리 셀들의 어레이를 제공하는 단계 - 각 메모리 셀은 임계 윈도를 정의하는 임계 전압들의 공통 범위를 가짐 - ;
    k개의 경계점들(D(i))을 이용하여 상기 임계 윈도를 임계 전압들의 2N=k+1 개의 밴드들로 분할하는 것에 의해 각 메모리 셀이 N 비트들의 데이터를 저장하도록 구성하는 단계 - 최하부 밴드는 소거된 상태를 나타내고 k 개의 증가하는 프로그램된 상태들(P(i))을 나타내는 k개의 증가 밴드들이 상기 최하부 밴드에 후속됨 - ; 및
    일련의 펄스들로 프로그래밍 전압을 제공하는 단계;
    선택된 워드 라인 상의 메모리 셀들의 페이지를 각각의 타겟 상태들로 다중 프로그래밍 패스들에서 프로그래밍하는 단계
    를 포함하고,
    상기 다중 프로그래밍 패스들은 상기 페이지의 모든 메모리 셀들을 각각의 타겟 상태들로 프로그램하기 위하여 제 1 프로그래밍 패스 및 하나 이상의 후속하는 프로그래밍 패스들을 포함하며,
    상기 제 1 프로그래밍 패스는:
    P([k+1]/2)로 시작하고 P(k)로 끝나는, 상기 k개의 증가하는 프로그램된 상태들의 상부 절반에 있는 타겟 상태들을 갖는 상기 페이지의 제 1 세트 메모리 셀들을 펄스마다 프로그래밍하고 확인하는 것 - 상기 확인하는 것은 미리 정해진 확인 임계 전압에 관한 것이며, 상기 미리 정해진 확인 임계 전압은 상기 임계 윈도의 중간 근처에 위치되나 D([k+1]/2+1)을 넘지는 않는 P([k+1]/2) 내지 P(k) 중 하나인 타겟 상태들을 갖는 모든 상기 메모리 셀들의 프로그래밍의 확인을 가능하게 함 - ;
    상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 상기 제 1 세트의 각 메모리 셀의 프로그래밍을 억제하는 것;
    상기 제 1 세트의 모든 메모리 셀들이 상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 후에,
    프로그램-확인의 개입 없이, 부가적인 x 개의 펄스들로 프로그래밍하도록 타겟 상태 P([k+1]/2+x)를 갖는 각 메모리 셀의 상기 프로그래밍을 억제하는 것을 선택적으로 불가능하게 하는 것을 더 포함하는, 비휘발성 메모리의 프로그래밍 방법.
  2. 제 1 항에 있어서:
    상기 제 1 프로그래밍 패스의 프로그래밍 전압은 상기 후속하는 프로그래밍 패스의 속도보다 빠른 속도로 프로그램하는 펄스들을 갖는, 비휘발성 메모리의 프로그래밍 방법.
  3. 제 1 항에 있어서, N=2인, 비휘발성 메모리의 프로그래밍 방법.
  4. 제 1 항에 있어서, N=3인, 비휘발성 메모리의 프로그래밍 방법.
  5. 제 1 항에 있어서, 상기 비휘발성 메모리는 플래시 메모리인, 비휘발성 메모리의 프로그래밍 방법.
  6. 제 1 항에 있어서, 상기 메모리 셀들의 어레이는 NAND 아키텍처를 갖는, 비휘발성 메모리의 프로그래밍 방법.
  7. 제 1 항에 있어서, 상기 비휘발성 메모리는 메모리 카드에서 구현되는, 비휘발성 메모리의 프로그래밍 방법.
  8. 비휘발성 메모리를 프로그래밍하는 방법으로서,
    상기 비휘발성 메모리에 메모리 셀들의 어레이를 제공하는 단계 - 각 메모리 셀은 임계 윈도를 정의하는 임계 전압들의 공통 범위를 가짐 - ;
    k개의 경계점들(D(i))을 이용하여 상기 임계 윈도를 임계 전압들의 2N=k+1 개의 밴드들로 분할하는 것에 의해 각 메모리 셀이 N 비트들의 데이터를 저장하도록 구성하는 단계 - 최하부 밴드는 소거된 상태를 나타내고 k 개의 증가하는 프로그램된 상태들(P(i))을 나타내는 k개의 증가 밴드들이 상기 최하부 밴드에 후속됨 - ;
    일련의 펄스들로 프로그래밍 전압을 제공하는 단계;
    선택된 워드 라인 상의 메모리 셀들의 페이지를 각각의 타겟 상태들로 다중 프로그래밍 패스들에서 프로그래밍하는 단계
    를 포함하고,
    상기 다중 프로그래밍 패스들은 상기 페이지의 모든 메모리 셀들을 각각의 타겟 상태들로 프로그램하기 위하여 제 1 프로그래밍 패스 및 하나 이상의 후속하는 프로그래밍 패스들을 포함하며,
    상기 제 1 프로그래밍 패스는:
    P([k+1]/2)로 시작하고 P(k)로 끝나는, 상기 k개의 증가하는 프로그램된 상태들의 상부 절반에 있는 타겟 상태들을 갖는 상기 페이지의 제 1 세트 메모리 셀들을 펄스마다 프로그래밍하고 확인하는 것 - 상기 확인은 미리 정해진 확인 임계 전압에 관한 것이며, 상기 미리 정해진 확인 임계 전압은 상기 임계 윈도의 중간 근처에 위치되나 D([k+1]/2+1)을 넘지는 않는 P([k+1]/2) 내지 P(k) 중 하나인 타겟 상태들을 갖는 모든 상기 메모리 셀들의 프로그래밍의 확인을 가능하게 함 - ;
    상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 상기 제 1 세트의 각 메모리 셀의 프로그래밍을 억제하는 것;
    상기 제 1 세트의 모든 메모리 셀들이 상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료될 때까지 진행하는 프로그래밍 펄스들이 계속하여 상기 메모리 셀들의 페이지로 인가되는 동안,
    프로그램-확인의 개입 없이, x 개까지의 부가적인 진행 프로그래밍 펄스들로의 프로그래밍하기 위해 타겟 상태 P([k+1]/2+x)를 갖는 각 메모리 셀의 상기 프로그래밍을 억제하는 것을 선택적으로 불가능하게 하는 것을 더 포함하는, 비휘발성 메모리의 프로그래밍 방법.
  9. 제 8 항에 있어서:
    상기 제 1 프로그래밍 패스의 프로그래밍 전압은 상기 후속하는 프로그래밍 패스의 속도보다 빠른 속도로 프로그램하는 펄스들을 갖는, 비휘발성 메모리의 프로그래밍 방법.
  10. 제 8 항에 있어서, N=2인, 비휘발성 메모리의 프로그래밍 방법.
  11. 제 8 항에 있어서, N=3인, 비휘발성 메모리의 프로그래밍 방법.
  12. 제 8 항에 있어서, 상기 비휘발성 메모리는 플래시 메모리인, 비휘발성 메모리의 프로그래밍 방법.
  13. 제 8 항에 있어서, 상기 메모리 셀들의 어레이는 NAND 아키텍처를 갖는, 비휘발성 메모리의 프로그래밍 방법.
  14. 제 8 항에 있어서, 상기 비휘발성 메모리는 메모리 카드에서 구현되는, 비휘발성 메모리의 프로그래밍 방법.
  15. 비휘발성 메모리로서:
    메모리 셀들의 어레이 - 각 메모리 셀은 임계 윈도를 정의하는 임계 전압들의 공통 범위를 가지고, 각 메모리 셀은 k개의 경계점들(D(i))을 이용하여 상기 임계 윈도가 임계 전압들의 2N=k+1 개의 밴드들로 분할되게 하는 것에 의해 N 비트들의 데이터를 저장하도록 구성되며, 최하부 밴드는 소거된 상태를 나타내고 k 개의 증가하는 프로그램된 상태들(P(i))을 나타내는 k개의 증가 밴드들이 상기 최하부 밴드에 후속됨 - ;
    일련의 펄스들로 프로그래밍 전압을 제공하기 위한 파워 서플라이;
    선택된 워드 라인 상의 메모리 셀들의 페이지를 각각의 타겟 상태들로 다중 프로그래밍 패스들에서 프로그래밍하는 것을 제어하기 위한 제어 회로
    를 포함하고,
    상기 다중 프로그래밍 패스들은 상기 페이지의 모든 메모리 셀들을 각각의 타겟 상태들로 프로그램하기 위하여 제 1 프로그래밍 패스 및 하나 이상의 후속하는 프로그래밍 패스들을 포함하며,
    상기 제 1 프로그래밍 패스는:
    P([k+1]/2)로 시작하고 P(k)로 끝나는, 상기 k개의 증가하는 프로그램된 상태들의 상부 절반에 있는 타겟 상태들을 갖는 상기 페이지의 제 1 세트 메모리 셀들을 펄스마다 프로그래밍하고 확인하는 것 - 상기 확인은 미리 정해진 확인 임계 전압에 관한 것이며, 상기 미리 정해진 확인 임계 전압은 상기 임계 윈도의 중간 근처에 위치되나 D([k+1]/2+1)을 넘지는 않는 P([k+1]/2) 내지 P(k) 중 하나인 타겟 상태들을 갖는 모든 상기 메모리 셀들의 프로그래밍의 확인을 가능하게 함 - ;
    상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 상기 제 1 세트의 각 메모리 셀의 프로그래밍을 억제하는 것;
    상기 제 1 세트의 모든 메모리 셀들이 상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 후에,
    프로그램-확인의 개입 없이, 부가적인 x 개의 펄스들로의 프로그래밍하기 위해 타겟 상태 P([k+1]/2+x)를 갖는 각 메모리 셀의 상기 프로그래밍을 억제하는 것을 선택적으로 불가능하게 하는 것을 더 포함하는, 비휘발성 메모리.
  16. 비휘발성 메모리로서,
    메모리 셀들의 어레이 - 각 메모리 셀은 임계 윈도를 정의하는 임계 전압들의 공통 범위를 가지며, 각 메모리 셀은 k개의 경계점들(D(i))을 이용하여 상기 임계 윈도가 임계 전압들의 2N=k+1 개의 밴드들로 분할되게 하는 것에 의해 N 비트들의 데이터를 저장하도록 구성되고, 최하부 밴드는 소거된 상태를 나타내고 k 개의 증가하는 프로그램된 상태들(P(i))을 나타내는 k개의 증가 밴드들이 상기 최하부 밴드에 후속됨 - ;
    일련의 펄스들로 프로그래밍 전압을 제공하기 위한 파워 서플라이;
    선택된 워드 라인 상의 메모리 셀들의 페이지를 각각의 타겟 상태들로 다중 프로그래밍 패스들에서 프로그래밍하는 것을 제어하기 위한 제어 회로
    를 포함하고;
    상기 다중 프로그래밍 패스들은 상기 페이지의 모든 메모리 셀들을 각각의 타겟 상태들로 프로그램하기 위하여 제 1 프로그래밍 패스 및 하나 이상의 후속하는 프로그래밍 패스들을 포함하며,
    상기 제 1 프로그래밍 패스는:
    P([k+1]/2)로 시작하고 P(k)로 끝나는, 상기 k개의 증가하는 프로그램된 상태들의 상부 절반에 있는 타겟 상태들을 갖는 상기 페이지의 제 1 세트 메모리 셀들을 펄스마다 프로그래밍하고 확인하는 것 - 상기 확인은 미리 정해진 확인 임계 전압에 관한 것이며, 상기 미리 정해진 확인 임계 전압은 상기 임계 윈도의 중간 근처에 위치되나 D([k+1]/2+1)을 넘지는 않는 P([k+1]/2) 내지 P(k) 중 하나인 타겟 상태들을 갖는 모든 상기 메모리 셀들의 프로그래밍의 확인을 가능하게 함 - ;
    상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료된 상기 제 1 세트의 각 메모리 셀의 프로그래밍을 억제하는 것;
    상기 제 1 세트의 모든 메모리 셀들이 상기 미리 정해진 확인 임계 전압에 관하여 프로그램-확인 완료될 때까지 진행하는 프로그래밍 펄스들이 계속하여 상기 메모리 셀들의 페이지로 인가되는 동안,
    프로그램-확인의 개입 없이, x 개까지의 부가적인 진행 프로그래밍 펄스들로 프로그래밍하기 위해 타겟 상태 P([k+1]/2+x)를 갖는 각 메모리 셀의 상기 프로그래밍을 억제하는 것을 선택적으로 불가능하게 하는 것을 더 포함하는, 비휘발성 메모리.
KR1020147019592A 2011-12-16 2012-11-27 개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법 KR101871546B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/329,103 2011-12-16
US13/329,103 US8811091B2 (en) 2011-12-16 2011-12-16 Non-volatile memory and method with improved first pass programming
PCT/US2012/066601 WO2013090003A1 (en) 2011-12-16 2012-11-27 Non-volatile memory and method with improved first pass programming

Publications (2)

Publication Number Publication Date
KR20140114370A KR20140114370A (ko) 2014-09-26
KR101871546B1 true KR101871546B1 (ko) 2018-06-26

Family

ID=47297477

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147019592A KR101871546B1 (ko) 2011-12-16 2012-11-27 개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법

Country Status (4)

Country Link
US (1) US8811091B2 (ko)
KR (1) KR101871546B1 (ko)
CN (1) CN104094354A (ko)
WO (1) WO2013090003A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8902648B2 (en) 2011-07-26 2014-12-02 Micron Technology, Inc. Dynamic program window determination in a memory device
KR101927212B1 (ko) * 2012-05-09 2019-03-07 삼성전자주식회사 비휘발성 메모리 장치의 프로그래밍 방법
US20150006784A1 (en) 2013-06-27 2015-01-01 Sandisk Technologies Inc. Efficient Post Write Read in Three Dimensional Nonvolatile Memory
US9063671B2 (en) 2013-07-02 2015-06-23 Sandisk Technologies Inc. Write operations with full sequence programming for defect management in nonvolatile memory
US9218242B2 (en) 2013-07-02 2015-12-22 Sandisk Technologies Inc. Write operations for defect management in nonvolatile memory
US9043537B1 (en) 2013-11-21 2015-05-26 Sandisk Technologies Inc. Update block programming order
US9058881B1 (en) 2013-12-05 2015-06-16 Sandisk Technologies Inc. Systems and methods for partial page programming of multi level cells
US9244631B2 (en) 2013-12-06 2016-01-26 Sandisk Technologies Inc. Lower page only host burst writes
US8902652B1 (en) 2014-05-13 2014-12-02 Sandisk Technologies Inc. Systems and methods for lower page writes
US8886877B1 (en) 2014-05-15 2014-11-11 Sandisk Technologies Inc. In-situ block folding for nonvolatile memory
KR102292183B1 (ko) 2014-11-07 2021-08-25 삼성전자주식회사 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
US10074439B2 (en) * 2015-06-04 2018-09-11 SK Hynix Inc. Modeling method of threshold voltage distributions
JP6617924B2 (ja) * 2015-06-18 2019-12-11 パナソニックIpマネジメント株式会社 耐タンパ性を有する不揮発性メモリ装置および集積回路カード、不揮発性メモリ装置の認証方法、個体識別情報生成方法
US9858009B2 (en) 2015-10-26 2018-01-02 Sandisk Technologies Llc Data folding in 3D nonvolatile memory
US9530491B1 (en) * 2015-11-16 2016-12-27 Sandisk Technologies Llc System and method for direct write to MLC memory
JP6652470B2 (ja) * 2016-09-07 2020-02-26 キオクシア株式会社 半導体記憶装置
US10102903B1 (en) * 2017-03-31 2018-10-16 Intel Corporation Write process for a non volatile memory device
US10811109B2 (en) * 2018-12-27 2020-10-20 Sandisk Technologies Llc Multi-pass programming process for memory device which omits verify test in first program pass
CN110176269B (zh) * 2019-04-16 2020-11-17 华中科技大学 一种精确调控非易失性存储单元状态的方法及系统
WO2021068231A1 (en) * 2019-10-12 2021-04-15 Yangtze Memory Technologies Co., Ltd. Method of programming memory device and related memory device
JP7360478B2 (ja) * 2019-10-18 2023-10-12 長江存儲科技有限責任公司 メモリデバイスおよび方法
US11309032B2 (en) * 2019-11-26 2022-04-19 Samsung Electronics Co., Ltd. Operating method of memory system including memory controller and nonvolatile memory device
US11437104B2 (en) * 2020-09-08 2022-09-06 Western Digital Technologies, Inc. Storage system and method for a hybrid quad-level cell (QLC) write scheme for reduced random access memory (RAM) footprint
KR20220041574A (ko) * 2020-09-25 2022-04-01 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
CN113228184B (zh) * 2021-03-30 2023-10-20 长江存储科技有限责任公司 存储器件及其多遍编程操作
WO2022266985A1 (en) 2021-06-25 2022-12-29 Yangtze Memory Technologies Co., Ltd. Memory device and multi-pass program operation thereof
KR20230041330A (ko) * 2021-09-17 2023-03-24 에스케이하이닉스 주식회사 비휘발성 메모리 장치에 데이터를 프로그램 및 검증하기 위한 장치 및 방법
CN114783487A (zh) * 2022-03-03 2022-07-22 长江存储科技有限责任公司 存储器的编程方法、存储器装置及存储器系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050190603A1 (en) 2004-02-26 2005-09-01 Seung-Keun Lee Multi level flash memory device and program method
US20110157997A1 (en) 2009-12-28 2011-06-30 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device, method of reading data therefrom, and semiconductor device
US20110255336A1 (en) 2010-04-14 2011-10-20 Kabushiki Kaisha Toshiba Semiconductor memory device
US20120134212A1 (en) 2010-11-30 2012-05-31 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US20120163083A1 (en) 2010-12-22 2012-06-28 Deepanshu Dutta Alternate bit line bias during programming to reduce channel to floating gate coupling in memory

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5070032A (en) 1989-03-15 1991-12-03 Sundisk Corporation Method of making dense flash eeprom semiconductor memory structures
US5343063A (en) 1990-12-18 1994-08-30 Sundisk Corporation Dense vertical programmable read only memory cell structure and processes for making them
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5315541A (en) 1992-07-24 1994-05-24 Sundisk Corporation Segmented column memory array
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5661053A (en) 1994-05-25 1997-08-26 Sandisk Corporation Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
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
US6657891B1 (en) 2002-11-29 2003-12-02 Kabushiki Kaisha Toshiba Semiconductor memory device for storing multivalued data
DE102005009700B4 (de) * 2004-02-26 2009-02-05 Samsung Electronics Co., Ltd., Suwon Programmierverfahren und nichtflüchtiger Speicher
US7224614B1 (en) * 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories
US7499320B2 (en) * 2007-03-07 2009-03-03 Sandisk Corporation Non-volatile memory with cache page copy
US7492640B2 (en) * 2007-06-07 2009-02-17 Sandisk Corporation Sensing with bit-line lockout control in non-volatile memory
US7593265B2 (en) * 2007-12-28 2009-09-22 Sandisk Corporation Low noise sense amplifier array and method for nonvolatile memory
KR101468100B1 (ko) 2008-09-23 2014-12-04 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 페이지 버퍼
US8254177B2 (en) * 2008-10-24 2012-08-28 Sandisk Technologies Inc. Programming non-volatile memory with variable initial programming pulse
US8094500B2 (en) 2009-01-05 2012-01-10 Sandisk Technologies Inc. Non-volatile memory and method with write cache partitioning

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050190603A1 (en) 2004-02-26 2005-09-01 Seung-Keun Lee Multi level flash memory device and program method
US20110157997A1 (en) 2009-12-28 2011-06-30 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device, method of reading data therefrom, and semiconductor device
US20110255336A1 (en) 2010-04-14 2011-10-20 Kabushiki Kaisha Toshiba Semiconductor memory device
US20120134212A1 (en) 2010-11-30 2012-05-31 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
US20120163083A1 (en) 2010-12-22 2012-06-28 Deepanshu Dutta Alternate bit line bias during programming to reduce channel to floating gate coupling in memory

Also Published As

Publication number Publication date
US8811091B2 (en) 2014-08-19
KR20140114370A (ko) 2014-09-26
US20130155769A1 (en) 2013-06-20
CN104094354A (zh) 2014-10-08
WO2013090003A1 (en) 2013-06-20

Similar Documents

Publication Publication Date Title
KR101871546B1 (ko) 개선된 제 1 패스 프로그래밍을 갖는 비휘발성 메모리 및 방법
CN108288488B (zh) 非易失性存储器装置及其编程方法
JP4391941B2 (ja) メモリセルの隣接する行の記憶素子間の結合の効果を減少させる方法
US8713380B2 (en) Non-volatile memory and method having efficient on-chip block-copying with controlled error rate
US9552885B2 (en) Partial block erase for open block reading in non-volatile memory
US9104556B2 (en) Update block programming order
CN107112047B (zh) 用于在非易失性存储器中区块编程的部分区块擦除
KR101089575B1 (ko) 사이클 카운트를 저장하는 대량 소거 블록들을 구비한비휘발성 반도체 메모리
KR101391881B1 (ko) 멀티-비트 플래시 메모리 장치 및 그것의 프로그램 및 읽기방법
US9269444B2 (en) Adaptive initial program voltage for non-volatile memory
US20080123426A1 (en) Non-volatile memory using multiple boosting modes for reduced program disturb
US20080123425A1 (en) Reducing program disturb in non-volatile memory using multiple boosting modes
US20090296475A1 (en) Verification process for non-volatile storage
KR101772578B1 (ko) 불휘발성 메모리 장치의 프로그램 방법
CN110622249B (zh) 数据存储装置
US9818477B2 (en) Methods of programming memory cells in non-volatile memory devices
US8964467B1 (en) Systems and methods for partial page programming of multi level cells
KR20100010355A (ko) 플래시 메모리 장치 및 그것의 프로그램 및 소거 방법
KR101518228B1 (ko) 비휘발성 메모리 및 캐시 페이지 카피를 위한 방법
CN108986861B (zh) 对非易失性存储器装置进行编程的方法
CN117953948A (en) Memory device and method of operating the same

Legal Events

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