KR101016432B1 - 타이밍 정보를 이용한 리버스 커플링 효과 - Google Patents

타이밍 정보를 이용한 리버스 커플링 효과 Download PDF

Info

Publication number
KR101016432B1
KR101016432B1 KR1020087013971A KR20087013971A KR101016432B1 KR 101016432 B1 KR101016432 B1 KR 101016432B1 KR 1020087013971 A KR1020087013971 A KR 1020087013971A KR 20087013971 A KR20087013971 A KR 20087013971A KR 101016432 B1 KR101016432 B1 KR 101016432B1
Authority
KR
South Korea
Prior art keywords
storage elements
nonvolatile storage
data
timing information
neighboring
Prior art date
Application number
KR1020087013971A
Other languages
English (en)
Other versions
KR20080080529A (ko
Inventor
지안 첸
Original Assignee
샌디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/271,241 external-priority patent/US7289344B2/en
Priority claimed from US11/272,335 external-priority patent/US7289348B2/en
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20080080529A publication Critical patent/KR20080080529A/ko
Application granted granted Critical
Publication of KR101016432B1 publication Critical patent/KR101016432B1/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/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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

Abstract

비휘발성 메모리 셀의 플로팅 게이트(또는 다른 전하 저장 소자) 상에 저장된 겉보기 전하에서의 시프트가, 이웃하는 플로팅 게이트들(또는 다른 이웃하는 전하 저장 소자들)에 저장된 전하에 근거한 전기장의 커플링으로 인해, 발생할 수 있다. 이 문제는 서로 다른 시간에 프로그래밍되는 인접하는 메모리 셀들의 세트들 간에 더욱 뚜렷이 발생한다. 이러한 커플링을 보상하기 위해, 주어진 메모리 셀에 대한 판독 프로세스는, 만약 이웃 메모리 셀이 주어진 메모리 셀 이후에 프로그래밍되었다면 이웃 메모리 셀의 프로그래밍된 상태를 고려한다. 이웃 메모리 셀이 주어진 메모리 셀 이전에 프로그래밍되었는지 또는 이후에 프로그래밍되었는지 여부를 결정하는 기술이 개시된다.

Description

타이밍 정보를 이용한 리버스 커플링 효과{REVERSE COUPLING EFFECT WITH TIMING INFORMATION}
본 명세서에서 설명되는 기술은 비휘발성 메모리에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스에서 점점 더 많이 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 셀률러 전화기, 디지털 카메라, PDA(Personal Digital Assistant), 모바일 컴퓨팅 디바이스, 비휘발성 컴퓨팅 디바이스 및 다른 디바이스에서 사용되고 있다. 전기적 소거 가능 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory, EEPROM) 및 플래시 메모리는 가장 널리 이용되는 비휘발성 반도체 메모리 중의 하나이다.
EEPROM 및 플래시 메모리는 반도체 기판 내의 채널 영역 위에 배치되고 이 채널 영역으로부터 절연되어 있는 플로팅 게이트를 이용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치하고 있다. 제어 게이트는 플로팅 게이트로 위에 제공되고 이 플로팅 게이트로부터 절연되어 있다. 트랜지스터의 임계 전압은 플로팅 게이트 상에 보유되는 전하의 양에 의해 제어된다. 즉, 트랜지스터가 그 소스와 드레인 간의 전도를 허용하기 위해 턴온되기 전에 제어 게이트에 인가되어야만 하는 최소 전압의 양은 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
EEPROM 또는 플래시 메모리 디바이스, 예를 들어 NAND 플래시 메모리 디바이스를 프로그래밍할 때, 전형적으로 프로그램 전압이 제어 게이트에 인가되고 그리고 비트 라인은 접지된다. 채널로부터의 전자들은 플로팅 게이트에 주입된다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 충전되고 그리고 메모리 셀의 임계 전압은 상승되어 메모리 셀은 프로그래밍 상태에 있게 된다. 프로그래밍에 대한 더 많은 정보는 미국 특허 번호 6,859,397 및 미국 특허 출원 번호 10/629,068(발명의 명칭: "Detecting Over Programmed Memory," 2003.07.29. 출원)에서 찾을 수 있으며, 이 모두는 그 전체가 참조로 본 명세서에 통합된다.
일부 EEPROM 및 플래시 메모리 디바이스는 두 가지 범위의 전하를 저장하는데 사용되는 플로팅 게이트를 구비하며, 따라서 메모리 셀은 두 가지 상태(소거 상태 및 프로그래밍 상태) 사이에서 프로그래밍/소거될 수 있다. 이러한 플래시 메모리 디바이스는 때때로 바이너리 플래시 메모리 디바이스로 언급된다.
다중-상태 플래시 메모리 디바이스는 금지 범위에 의해 분리된 복수의 개별적 허용/유효 프로그래밍 임계 전압 범위를 식별함으로써 구현된다. 각각의 개별 임계 전압 범위는 메모리 디바이스에서 인코딩된 데이터 비트들의 세트에 대해 미리 결정된 값에 대응한다.
플로팅 게이트 상에 저장된 겉보기 전하(apparent charge)의 시프트(shift)는 플로팅 게이트에 인접하여 저장된 혹은 플로팅 게이트 가까이에 저장된 전하에 근거하는 전기장의 커플링으로 인해 발생할 수 있다. 이 플로팅 게이트 대 플로팅 게이트 커플링 현상은 미국 특허 번호 5,867,429에 설명되어 있고, 이것은 참조로 그 전체가 본 명세서 통합된다. 타겟 플로팅 게이트에 대한 커플링을 야기할 수 있는 플로팅 게이트는 동일한 비트 라인 상의 플로팅 게이트, 동일한 워드 라인 상의 플로팅 게이트, 혹은 타겟 플로팅 게이트로부터 가로질러 있는 플로팅 게이트를 포함할 수 있는데, 왜냐하면 이들은 또 다른 비트 라인 및 또 다른 워드 라인 상에 있기 때문이다.
플로팅 게이트 대 플로팅 게이트 커플링 현상은 다른 시간에 프로그래밍되는 메모리 셀들의 세트들 간에서 가장 확실하게 일어난다. 예를 들어, 제 1 메모리 셀이 프로그래밍되어 데이터의 한 세트에 대응하는 플로팅 게이트에 전하의 레벨을 더한다. 후속적으로, 하나 또는 그 이상의 이웃하는 메모리 셀들이 프로그래밍되어 데이터의 제 2 세트에 대응하는 플로팅 게이트에 전하의 레벨을 더한다. 하나 또는 그 이상의 이웃하는 메모리 셀들이 프로그래밍된 이후에, 제 1 메모리 셀로부터 판독된 전하 레벨은 프로그래밍과는 다른 것으로 보이는데, 왜냐하면 제 1 메모리 셀에 연결되는 이웃하는 메모리 셀들 상의 전하의 효과 때문이다. 이웃하는 메모리 셀들로부터의 커플링은 판독되는 겉보기 전하 레벨을 충분한 양만큼 시프팅시켜 저장된 데이터가 대량 판독될 수 있다.
플로팅 게이트 대 플로팅 게이트 커플링의 효과는 다중-상태 디바이스에 있어 매우 중요한데, 왜냐하면 다중-상태 디바이스에서 허용된 임계 전압 범위 및 금지 범위는 바이너리 디바이스에서 보다 더 좁기 때문이다.
메모리 셀들의 크기가 계속 작아짐에 따라, 임계 전압의 자연적인 프로그래밍 및 소거 분포는, 짧은 채널 효과, 옥사이드 두께/커플링 비율 변화의 증대 및 채널 도펀트 변동의 증대로 인해, 증가할 것으로 예측되며, 인접 상태들 간의 가용한 분리는 감소될 것으로 예측된다. 이러한 영향은 단지 두 가지 상태를 이용하는 메모리(바이너리 메모리)보다 다중-상태 메모리에 대해 훨씬 더 중요하다. 더욱이, 워드 라인들 간의 공간 및 비트 라인들 간의 공간의 감소로 인접하는 플로팅 게이트들 간의 커플링이 또한 증가한다.
인접하는 플로팅 게이트들 간의 커플링을 보상하기 위해, 주어진 메모리 셀에 대한 판독 프로세스는, 만약 이웃 메모리 셀이 상기 주어진 메모리 셀에 후속하여 프로그래밍된다면, 이웃 메모리 셀의 프로그래밍 상태를 고려한다. 주어진 메모리 셀들 이전에 혹은 이후에 이웃 메모리 셀이 프로그래밍되었는지 여부를 결정하는 기술이 개시된다.
일 실시예는 하나 또는 그 이상의 비휘발성 저장 소자들에 저장된 데이터 세트에 대해 커스터마이징(customizing)된 저장된 타이밍 정보(timing information)에 액세스(access)하는 것을 포함하고, 그리고 하나 또는 그 이상의 저장 소자들로부터 데이터 세트를 판독하는 것을 포함한다. 데이터의 판독은 타이밍 정보에 근거하여 데이터 세트에서의 하나 또는 그 이상의 포텐셜 에러(potential error)들을 선택적으로 보상하는 것을 포함한다.
예시적 일 실시예는 복수의 비휘발성 저장 소자들과, 비휘발성 저장 소자들에 연결된 워드 라인들의 세트와, 그리고 상기 비휘발성 저장 소자들과 통신하는 하나 또는 그 이상의 관리 회로들을 포함한다. 하나 또는 그 이상의 관리 회로들은 미리 정의되지 않은 워드 라인 순서로 비휘발성 저장 소자들에 데이터를 프로그래밍한다. 이 프로그래밍은 데이터에 대한 타이밍 정보를 저장하는 것을 포함한다. 하나 또는 그 이상의 관리 회로들은 비휘발성 저장 시스템으로부터 데이터를 판독하고, 이것은 만약 저장된 타이밍 정보가 이웃하는 비휘발성 저장 소자들이 데이터를 저장하고 있는 비휘발성 저장 소자들보다 시간적으로 뒤에 잠재적으로 프로그래밍되었다고 나타낸다면, 비휘발성 저장 소자들 간의 커플링을 보상하는 것을 포함한다.
도 1은 NAND 스트링의 상부도이다.
도 2는 NAND 스트링의 등가 회로도이다.
도 3은 NAND 스트링의 단면도이다.
도 4는 비휘발성 메모리 시스템의 블럭도이다.
도 5는 비휘발성 메모리 어레이의 블럭도이다.
도 6은 임계 전압 분포의 예시적 세트를 나타낸 것이다.
도 7은 임계 전압 분포의 예시적 세트를 나타낸 것이다.
도 8A-C는 다양한 임계 전압 분포를 나타내고 그리고 비휘발성 메모리를 프로그래밍하는 프로세스를 나타내고 있다.
도 9는 비휘발성 메모리를 프로그래밍하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 10은 비휘발성 메모리를 판독하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 11은 데이터의 하나의 페이지(또는 다른 유닛)를 나타낸 블럭도이다.
도 12는 비휘발성 메모리를 프로그래밍하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 13은 비휘발성 메모리를 판독하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 14는 커플링을 보상하기 위해 오프셋(offset)을 사용함이 없이 워드 라인 상의 메모리 셀들을 판독하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 15A는 커플링을 보상하기 위해 오프셋을 사용하여, 워드 라인 상의 메모리 셀들을 판독하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 15B는 커플링을 보상하기 위해 오프셋을 사용하여, 워드 라인 상의 메모리 셀들을 판독하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 16은 데이터의 하나의 페이지(또는 다른 유닛)를 나타낸 블럭도이다.
도 17은 히스토리 데이터(history data)를 설명하는 차트이다.
도 18은 비휘발성 메모리를 프로그래밍하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 19는 히스토리 데이터를 결정하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 20은 비휘발성 메모리를 판독하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 21은 이웃하는 메모리 셀들로부터의 커플링을 고려한 판독 동작을 수행하는 프로세스의 일 실시예를 설명하는 흐름도이다.
도 22는 이웃하는 메모리 셀들로부터의 커플링을 고려한 판독 동작을 수행하는 프로세스의 일 실시예를 설명하는 흐름도이다.
삭제
본 발명을 구현하기에 적합한 비휘발성 메모리 시스템의 일 예는 NAND 플래시 메모리 구조를 사용하는 것이며, 이것은 두 개의 선택 게이트들 사이에 복수의 트랜지스터들을 직렬로 정렬시키는 것을 포함한다. 직렬 연결된 트랜지스터들과 선택 게이트들은 NAND 스트링으로 언급된다. 도 1은 하나의 NAND 스트링을 보여주는 상부 도면이다. 도 2는 그 등가 회로이다. 도 1 및 도 2에 도시된 NAND 스트링은 직렬 연결된 네 개의 트랜지스터(100, 102, 104 및 106)를 포함하는데, 이것은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 샌드위치되어 있다. 선택 게이트(120)는 NAND 스트링을 비트 라인 콘택(126)에 연결한다. 선택 게이트(122)는 NAND 스트링을 소스 라인 콘택(128)에 연결한다. 선택 게이트(120)는 적절한 전압을 제어 게이트(120CG)에 인가함으로써 제어된다. 선택 게이트(122)는 적절한 전압을 제어 게이트(122CG)에 인가함으로써 제어된다. 트랜지스터(100, 102, 104 및 106) 각각은 제어 게이트 및 플로팅 게이트를 갖는다. 트랜지스터(100)는 제어 게이트(100CG) 및 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG) 및 플로팅 게이트(102FG)를 갖는다. 트랜지스터(104)는 제어 게이 트(104CG) 및 플로팅 게이트(104FG)를 갖는다. 트랜지스터(106)는 제어 게이트(106CG) 및 플로팅 게이트(106FG)를 갖는다. 제어 게이트(100CG)는 워드 라인(WL3)에 연결되고, 제어 게이트(102CG)는 워드 라인(WL2)에 연결되고, 제어 게이트(104CG)는 워드 라인(WL1)에 연결되고, 그리고 제어 게이트(106CG)는 워드 라인(WL0)에 연결된다. 일 실시예에서, 트랜지스터(100, 102, 104 및 106)는 각각의 메모리 셀들이다. 다른 실시예들에서, 메모리 셀들은 복수의 트랜지스터들을 포함할 수 있거나, 또는 도 1 및 도 2에 도시된 것과 다를 수 있다. 선택 게이트(120)는 선택 라인(SGD)에 연결되다. 선택 게이트(122)는 선택 라인(SGS)에 연결된다.
도 3은 상기 설명된 NAND 스트링의 단면도를 나타낸다. 도 3에 도시된 바와 같이, NAND 스트링의 트랜지스터들은 p-웰 영역(140)에 형성된다. 각각의 트랜지스터들은 제어 게이트(IOOCG, 102CG, 104CG 및 106CG)와 플로팅 게이트(100FG, 102FG, 104FG 및 106FG)로 구성된 적층 게이트 구조를 포함한다. 플로팅 게이트들은 옥사이드 혹은 다른 유전체 필름의 상부의 p-웰의 표면 상에 형성된다. 제어 게이트는 플로팅 게이트 위에 있고, 인터-폴리실리콘 유전체 층(inter-polysilicon dielectric layer)이 제어 게이트와 플로팅 게이트를 분리한다. 메모리 셀들(100, 102, 104 및 106)의 제어 게이트는 워드 라인을 형성한다. N+ 도핑 층(130, 132, 134, 136 및 138)이 이웃하는 셀들 사이에 공유되고, 그럼으로써 셀들은 서로 직렬로 연결되어 NAND 스트링을 형성한다. 이러한 N+ 도핑 층은 셀들 각각의 소스 및 드레인을 형성한다. 예를 들어, N+ 도핑 층(130)은 트랜지스터(122)의 드레인으로서의 역할을 하고, 트랜지스터(106)에 대해서는 소스의 역할을 하며, N+ 도핑 층(132)은 트랜지스터(106)에 대해 드레인으로서의 역할을 하고, 트랜지스터(104)에 대해서는 소스의 역할을 하며, N+ 도핑 층(134)은 트랜지스터(104)에 대해 드레인으로서의 역할을 하고, 트랜지스터(102)에 대해서는 소스의 역할을 하며, N+ 도핑 층(136)은 트랜지스터(102)에 대해 드레인으로서의 역할을 하고, 트랜지스터(100)에 대해서는 소스의 역할을 하며, 그리고 N+ 도핑 층(138)은 트랜지스터(100)에 대해 드레인으로서의 역할을 하고, 트랜지스터(120)에 대해서는 소스의 역할을 한다. N+ 도핑 층(126)은 NAND 스트링에 대해 비트 라인에 연결되고, 반면에, N+ 도핑 층(128)은 복수의 NAND 스트링에 대해 공통 소스 라인에 연결된다.
주의할 것으로, 도 1 내지 도 3은 NAND 스트링 내의 네 개의 메모리 셀들을 나타내지만, 이러한 네 개의 트랜지스터들의 사용은 단지 예로서 제공된다는 것이다. 본 명세서에서 설명되는 기술을 이용하여 사용되는 NAND 스트링은 네 개의 메모리 셀들보다 더 적은 개수를 가질 수 있거나 혹은 네 개의 메모리 셀들보다 더 많은 개수를 가질 수 있다. 예를 들어, 일부 NAND 스트링은 8개의 메모리 셀들, 16개의 메모리 셀들, 32개의 메모리 셀들, 64개의 메모리 셀들 등을 포함할 수 있다. 본 명세서에서의 설명이 NAND 스트링에서의 메모리 셀들의 임의의 특정 개수에 한정되는 것은 아니다.
각각의 메모리 셀은 아날로그 형태 혹은 디지털 형태로 나타나는 데이터를 저장할 수 있다. 한 비트의 디지털 데이터를 저장할 때, 메모리 셀의 가능한 임계 전압의 범위는 두 가지 범위로 나누어질 수 있는데, 그것은 논리적 데이터 "1" 및 "0"으로 할당된다. NAND 플래시 메모리의 일 예에서, 전압 임계치는 메모리 셀이 소거된 이후 음의 값이고 로직 "1"로 정의된다. 임계 전압은 프로그램 동작 이후에 양의 값이며 로직 "0"으로 정의된다. 임계 전압이 음의 값이고 그리고 0 볼트를 제어 게이트에 인가함으로써 판독이 시도될 때, 메모리 셀은 턴온되어 로직 일이 저장되었음을 나타낸다. 임계 전압이 양의 값이고 그리고 제어 게이트에 0 볼트를 인가함으로써 판독 동작이 시도될 때, 메모리 셀은 턴온되지 않으며, 이것은 로직 제로가 저장되었음을 나타낸다.
메모리 셀은 또한 복수의 상태를 저장할 수 있고, 그럼으로써 복수 비트의 디지털 데이터를 저장할 수 있다. 복수 상태의 데이터를 저장하는 경우에, 임계 전압 원도우는 많은 상태로 나누어진다. 예를 들어, 만약 네 가지 상태가 사용된다면, 데이터 값 "11", "10", "01" 및 "00"에 할당되는 네 가지 임계 전압 범위가 있을 수 있다. NAND-타입 메모리의 일 예에서, 소거 동작 이후의 임계 전압은 음의 값이고 "11"로서 정의된다. 양의 임계 전압이 "10", "01" 및 "00"의 상태에 대해 사용된다. 일부 실시예에서, 데이터 값(예를 들어, 논리적 상태)이 그레이 코드 할당을 사용하여 임계 범위에 할당되어 만약 플로팅 게이트의 임계 전압이 그 이웃하는 물리적 상태로 크게 시프팅할지라도 단지 한 비트만이 영향을 받는다. 메모리 셀에 프로그래밍되는 데이터와 셀의 임계 전압 범위 간의 특정 관계는 메모리 셀이 채택하고 있는 데이터 인코딩 방식에 따라 다르다. 예를 들어 미국 특허 번호 6,222,762 및 미국 특허 출원 번호 10/461,244(발명의 명칭: "Tracking Cells For A Memory System", 2003.06.13. 출원)은 다중-상태 플래시 메모리 셀들에 대한 다양한 데이터 인코딩 방식을 설명하고 있으며, 이 모두는 그 전체가 참조로 본 명세 서에 통합된다.
삭제
NAND-타입 플래시 메모리 및 그 관련 동작의 관련 예는 다음의 미국 특허/특허출원에서 제공되는데, 이들 모두는 그 전체가 참조로 본 명세서에 통합되는데, 이러한 것을 나열해 보면, 미국 특허 번호 5,570,315, 미국 특허 번호 5,774,397, 미국 특허 번호 6,046,935, 미국 특허 번호 5,386,422, 미국 특허 번호 6,456,528, 미국 특허 출원번호 09/893,277(공개 번호 US2003/0002348)이 있다. NAND 플래시 메모리에 추가되는 다른 타입의 비휘발성 메모리가 또한 본 발명과 함께 사용될 수 있다.
플래시 EEPROM 시스템에서 사용가능한 또 다른 타입의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위해 전도성 플로팅 게이트 대신에 비전도성 유전체 물질을 사용한다. 이러한 셀은 논문 "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device"(저자: Chen 외, IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95)에서 설명된다. 실리콘 옥사이드, 실리콘 나이트라이드, 실리콘 옥사이드(silicon Oxide, silicon Nitride, silicon Oxide, "ONO")로 형성된 삼중 층은 메모리 셀 채널 위의 반-전도성 기판의 표면과 전도성 제어 게이트 사이에 샌드위치된다. 셀은 셀 채널로부터의 전자들을 나이트라이드에 주입함으로써 프로그래밍된고, 여기서 이들은 제한된 영역에 트래핑(trapping)되고 저장된다. 그 다음에 저장된 전하는 검출가능한 방식으로 셀의 채널의 일부의 임계 전압을 변경시킨다. 이 셀은 핫 홀(hot hole)들을 나이트라이드에 주입함으로써 소거된다. 또한 논문 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application"(저자: Nozaki 외, IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501)을 또한 참조하기 바라며, 이 논문은 분할-게이트 구성으로 유사한 셀을 설명하고 있으며, 여기서 도핑된 폴리실리콘 게이트는 개별 선택 트랜지스터를 형성하기 위해 메모리 셀 채널의 일부를 넘어 확장한다. 앞서의 두 개의 논문은 그 전체가 참조로 본 명세서에 통합된다. 논문 "Nonvolatile Semiconductor Memory Technology"(집필자: William D. Brown 및 Joe E. Brewer, IEEE Press, 1998)의 섹션 1.2에서 언급되는 프로그래밍 기술은 유전체 전하-트래핑 디바이스에 응용가능하도록 그 섹션에서 또한 설명되고 있으며, 이 논문도 참조로 본 명세서에 통합된다. 이 문단에서 설명되는 메모리 셀에서는 또한 이웃하는 메모리 셀들 간의 커플링이 있을 수 있다. 따라서, 본 명세서에서 설명되는 기술은 또한 다른 메모리 셀들의 유전체 영역들 간의 커플링에 적용된다.
각각의 셀에 두 개의 비트를 저장하기 위한 또 다른 접근법이 논문 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell"(저자: Eitan 외, IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545.)에서 설명된다. ONO 유전체 층은 소스 확산과 드레인 확산 사이의 채널을 가로질러 확장한다. 하나의 데이터 비트에 대한 전하는 드레인에 인접한 유전체 층에 국부화되고, 그리고 다른 데이터 비트에 대한 전하는 소스에 인접한 유전체 층에 국부화된다. 다중-상태 데이터 저장소는 유전체 내의 공간적으로 분리된 전하 저장 영역의 바이너리 상태를 개별적으로 판독함으로써 획득된다. 이 문단에서 설명되는 메모리 셀 들은 또한 본 발명과 함께 사용될 수 있다.
도 4는 플래시 메모리 시스템의 일 실시예의 블럭도이다. 메모리 셀 어레이(202)는 컬럼 제어 회로(couumn control circuit)(204), 로우 제어 회로(row control circuit)(206), c-소스 제어 회로(210), 및 p-웰 제어 회로(208)에 의해 제어된다. 컬럼 제어 회로(204)는 메모리 셀 어레이(202)의 비트 라인에 연결되어 메모리 셀에 저장된 데이터를 판독하고, 프로그래밍 동작 동안의 메모리 셀들의 상태를 결정하고, 그리고 프로그래밍을 촉진 또는 프로그래밍을 금지시키기 위해 비트 라인의 포텐셜 레벨을 제어한다. 로우 제어 회로(206)는 워드 라인들에 연결되어 워드 라인들 중 하나를 선택하고, 판독 전압을 인가하며, 프로그램 전압을 인가하고, 그리고 소거 전압을 인가한다. 예를 들어, EPROM 및 플래시 메모리 회로에 사용되는 프로그램 전압 레벨은 메모리 회로에 정상적으로 사용되는 전압보다 더 높다. 이들은 종종 회로에 공급되는 전압보다 더 높다. 이러한 더 높은 전압은 바람직하게는 로우 제어 회로(206) 내의 전하 범프(charge pump)에 의해 생산되는데(또는 다른 곳에서 생산될 수 있음), 이것은 예를 들어 본질적으로 용량성 워드라인에 전하를 덤핑(dumpping)시켜 더 높은 전압으로 충전시킨다. 전하 범프는 전압 Vin에서의 입력을 수신하고, 그리고 일련의 전압 멀티플라이어 스테이지(voltage multiplier stages)에서 점진적으로 입력 전압을 부스팅(boosting)시킴으로써 더 높은 전압 Vout을 제공한다. 전압 출력은 부하, 예를 들어 EPROM 메모리 회로의 워드 라인에 공급된다. 일부 실시예들에서, 부하로부터 전하 범프까지의 피드백 신호 가 있다. 종래 기술의 범프는 부하가 미리 결정된 전압에 도달했다는 것을 나타내는 신호에 응답하여 턴오프된다. 대안적으로, 부하가 미리 결정된 전압에 도달한 경우 과충전을 방지하기 위해 션트(shunt)가 사용된다. 그러나, 이것은 더 많은 전력을 소비하고 그리고 저전력 애플리케이션에서는 바람직하지 않다. 전하 범프에 대한 더 많은 정보는 미국 특허 6,734,718에 설명되어 있으며, 이것은 그 전체가 참조로 본 명세서에 통합된다.
C-소스 제어 회로(210)는 메모리 셀에 연결된 공통 소스 라인(도 5에서 "C-소스"라 표시됨)을 제어한다. P-웰 제어 회로(208)는 p-웰 전압을 제어한다.
메모리 셀에 저장된 데이터는 컬럼 제어 회로(204)에 의해 판독되고, 그리고 데이터 입력/출력 버퍼(212)를 통해 외부 I/O 라인에 출력된다. 메모리 셀에 저장될 프로그램 데이터는 외부 I/O 라인을 통해 데이터 입력/출력 버퍼(212)에 입력되고, 그리고 컬럼 제어 회로(204)에 전달된다. 외부 I/O 라인이 제어기(218)에 연결된다.
플래시 메모리 디바이스를 제어하기 위한 컴맨드 데이터(command data)가 제어기(218)에 입력된다. 컴맨드 데이터는 플래시 메모리에 어떤 동작이 요구되는지를 알려준다. 입력 컴맨드는 상태 머신(216)에 전달되고, 이것은 컬럼 제어 회로(204), 로우 제어 회로(206), c-소스 제어(210), p-웰 제어 회로(208) 및 데이터 입력/출력 버퍼(212)를 제어한다. 상태 머신(216)은 또한 준비/비지(READY/BUSY) 혹은 패스/실패(PASS/FAIL)와 같은 플래시 메모리의 상태 데이터를 출력할 수 있다. 일부 실시예에서, 상태 머신(216)은, 아래에서 설명되는 흐름도에서 설명되는 프로세스들을 포함하는, 프로그래밍 프로세스, 검증 프로세스, 및 판독 프로세스를 관리한다.
제어기(218)는 개인용 컴퓨터, 디지털 카메라, PDA 등과 같은 호스트 시스템과 연결되거나 혹은 연결가능하다. 제어기(218)는, 호스트로부터 컴맨드를 수신하기 위해, 호스트로부터 데이터를 수신하기 위해, 호스트에 데이터를 제공하기 위해, 그리고 호스트에 상태 정보를 제공하기 위해, 호스트와 통신한다. 제어기(218)는 호스트로부터의 컴맨드를 컴맨드 신호로 변환하는데, 이 컴맨드 신호는 컴맨드 회로(214)에 의해 해석될 수 있고 실행될 수 있으며, 이 컴맨드 회로는 상태 머신(216)과 통신한다. 제어기(218)는 전형적으로 메모리 어레이에 기입되거나 또는 메모리 어레이로부터 판독되는 사용자 데이터에 대한 버퍼 메모리를 포함한다. 일부 실시예에서, 프로그래밍 프로세스는 제어기에 의해 관리될 수 있다.
하나의 예시적 메모리 시스템은, 제어기(218)를 포함하는 하나의 집적 회로를 포함하고, 그리고 그 각각이 메모리 어레이 및 그 관련 회로, 입력/출력 및 상태 머신 회로를 포함하는 하나 또는 그 이상의 집적 회로 칩을 포함한다. 메모리 어레이와 시스템의 제어기 회로를 하나 또는 그 이상의 집적 회로 칩에 집적시키는 것이 최근 경향이다. 메모리 시스템은 호스트 시스템의 일부로서 내장될 수 있거나 또는 호스트 시스템에 탈착가능하게 삽입된 메모리 카드(또는 다른 패키지)에 포함될 수 있다. 이러한 탈착가능한 카드는 전체 메모리 시스템(예를 들어, 제어기를 포함함)을 포함할 수 있거나 또는 단지 메모리 어레이(들) 및 그 관련 주변 회로(제어기는 호스트에 내장됨)를 포함할 수 있다. 따라서, 제어기(또는 제어 능력)은 호스트 내에 내장될 수 있거나 탈착 가능한 메모리 시스템 내에 포함될 수 있다.
일부 실시예에서, 도 4의 컴포넌트들 중 일부는 결합될 수 있다. 다양한 설계로, 메모리 셀 어레이(202)와는 다른, 하나 또는 그 이상의 도 4의 컴포넌트들은 (단독으로 혹은 결합하여) 관리 회로로 고려될 수 있다. 예를 들어, 하나 또는 그 이상의 관리 회로들은 컴맨드 회로, 상태 머신, 로우 제어 회로, 컬럼 제어 회로, 웰 제어 회로, 소스 제어 회로 또는 데이터 I/O 회로 중 어느 하나 혹은 이들의 결합을 포함할 수 있다.
도 5를 참조하면, 메모리 셀 어레이(202)의 예시적 구조가 설명된다. 예를 들어, 1,024 블럭으로 구분되어 있는 NAND 플래시 EEPROM이 설명된다. 각각의 블럭에 저장된 데이터는 동시에 소거된다. 일 실시예에서, 블럭은 동시에 소거되는 셀들의 최소 단위이다. 이 예에서, 각각의 블럭에는 짝수 개의 컬럼과 홀수 개의 컬럼으로 나누어진 8,512 개의 컬럼이 있다. 비트 라인은 또한 짝수 개의 비트 라인(BLe)과 홀수 개의 비트 라인(BLo)으로 나누어진다. 도 5는 NAND 스트링을 형성하기 위해 직렬 연결된 네 개의 메모리 셀들을 나타낸다. 네 개의 셀들이 각각의 NAND 스트링에 포함되도록 도시되었지만, 네 개의 메모리 셀들보다 많거나 또는 적은 개수의 메모리 셀들도 사용될 수 있다. NAND 스트링의 한 단자는 선택 트랜지스터(SGD)를 통해 대응하는 비트 라인에 연결되고, 그리고 또 다른 단자는 제 2 선택 트랜지스터(SGS)를 통해 c-소스에 연결된다.
판독 및 프로그래밍 동작의 일 실시예 동안, 4,256 개의 메모리 셀들이 동시에 선택된다. 선택된 메모리 셀들은 동일한 워드 라인 및 동일한 종류의 비트 라 인(예를 들어, 짝수 개의 비트 라인 혹은 홀수 개의 비트 라인)을 갖는다. 따라서, 532 바이트의 데이터가 동시에 판독될 수 있거나 또는 프로그래밍될 수 있다. 동시에 판독되거나 또는 프로그래밍되는 532 바이트의 데이터는 논리적 페이지를 형성한다. 따라서, 하나의 블럭은 적어도 여덟 개의 논리적 페이지(네 개의 워드 라인, 그 각각은 홀수 개의 페이지 및 짝수 개의 페이지를 가짐)를 저장할 수 있다. 각각의 메모리 셀이 두 비트의 데이터를 저장할 때(예를 들어, 다중-상태 메모리 셀), 여기서 이러한 두 비트들 각각은 다른 페이지에 저장되며, 하나의 블럭은 16 개의 논리적 페이지를 저장한다. 다른 크기의 블럭 및 페이지가 또한 본 발명과 함께 사용될 수 있다. 추가적으로, 도 4 및 도 5와는 다른 아키텍처가 또한 본 발명을 구현하기 위해 사용될 수 있다. 예를 들어, 일 실시예에서, 비트 라인은 홀수 개의 비트 라인 및 짝수 개의 비트 라인으로 나누어 지지 않고 그래서 모든 비트 라인은 동시에 프로그래밍되고 판독된다(또는 동시에 프로그래밍되고 판독되지 않는다).
메모리 셀들은 p-웰을 소거 전압(예를 들어, 20 볼트)까지 상승시키고, 그리고 선택된 블럭의 워드 라인을 접지시킴으로써 소거된다. 소스 및 비트 라인은 플로팅된다. 전체 메모리 어레이, 개별 블럭, 또는 셀을 또 다른 유닛상에서의 소거가 수행될 수 있다. 플로팅 게이트로부터 p-웰 영역으로 전자들이 전달되고, 그리고 임계 전압이 음의 값이 된다(일 실시예에서).
판독 및 검증 동작에서, 선택 게이트(SGD 및 SGS)와 비선택 워드 라인(예를 들어, WLO, WL2 및 WL3)은 판독 패스 전압(예를 들어, 4.5 볼트)까지 상승되어 트랜지스터가 패스 게이트로서 동작하도록 한다. 선택 워드 라인(예를 들어, WL1)은 일정 전압에 연결되고, 이 전압의 레벨은, 해당 메모리 셀의 임계 전압이 이러한 레벨 위에 있는지 혹은 아래에 있는지를 결정하기 위해, 각각의 판독 및 검증 동작에 대해 특정되어 있다. 예를 들어, 두 가지 레벨의 메모리 셀에 대한 판독 동작에서, 선택된 워드 라인(WL1)이 접지될 수 있고, 그래서 임계 전압이 0V보다 더 높은지 여부가 검출된다. 두 가지 레벨의 메모리 셀에 대한 검증 동작에서, 선택 워드 라인(WL1)은 예를 들어 0.8V에 연결되고, 그래서 임계 전압이 적어도 0.8V에 도달했는지 안했는지 여부가 검증된다. 소스 및 p-웰은 제로 볼트에 있다. 선택된 비트 라인(BLe)은 일정 레벨, 예를 들어 0.7V까지 사전충전된다. 만약 임계 전압이 워드 라인 상의 판독 혹은 검증 레벨보다 더 높다면, 해당 셀과 관련된 비트 라인(BLe)의 포텐셜 레벨은 비전도성 메모리 셀 때문에 높은 레벨을 유지한다. 반면에, 만약 임계 전압이 판독 혹은 검증 레벨보다 더 낮다면, 해당 비트 라인(BLe)의 포텐셜 레벨은, 예를 들어 0.5V보다 작은, 낮은 레벨로 감소하는데, 이것은 전도성 메모리 셀이 비트라인을 방전시키기 때문이다. 그럼으로써 메모리 셀의 상태는 비트 라인에 연결된 전압 비교기 감지 증폭기에 의해 검출된다.
앞서 설명된 소거, 판독, 및 검증 동작은 종래의 알려진 기술에 따라 수행된다. 따라서, 설명되는 것들 중 많은 부분은 당업자에 의해 여러 가지로 변형될 수 있다. 종래의 알려진 다른 소거, 판독 및 검증 기술이 또한 사용될 수 있다.
앞서 설명되는 바와 같이, 각각의 블럭은 여러 개의 페이지로 나누어질 수 있다. 일 실시예에서, 페이지는 프로그래밍의 단위이다. 일부 실시예에서, 개개의 페이지는 세그먼트로 나누어질 수 있고 그리고 이 세그먼트는 기본적인 프로그래밍 동작시 한 번에 기입되는 가장 작은 개수의 셀들을 포함할 수 있다. 데이터의 하나 또는 그 이상의 페이지는 전형적으로 메모리 셀의 하나의 로우(row)에 저장된다. 페이지는 하나 또는 그 이상의 섹터를 저장할 수 있다. 섹터는 사용자 데이터 및 오버헤드 데이터를 포함한다. 오버헤드 데이터는 전형적으로 에러 정정 코드(Error Correction Code, ECC)를 포함하며, 이 에러 정정 코드는 섹터의 사용자 데이터로부터 계산된다. 제어기의 일부는, 데이터가 어레이에 프로그래밍될 ECC를 계산하고, 그리고 또한 데이터가 어레이로부터 판독될 때 이것을 점검한다. 대안적으로, ECC 및/또는 다른 오버헤드 데이터는, 이들이 속한 사용자 데이터와는 다른 페이지, 또는 심지어 다른 블럭에 저장된다. 다른 실시예에서, 메모리 디바이스의 다른 부분(예를 들어, 상태 머신)이 ECC를 계산할 수 있다.
사용자 데이터의 섹터는 전형적으로 512 바이트이고, 이것은 자기 디스크 드라이브 내의 섹터의 크기에 대응하는 것이다. 오버헤드 데이터는 전형적으로 추가적인 16-20 바이트이다. 많은 페이지들이 블럭을 형성하는데, 어느 경우에는 8개의 페이지로부터, 예를 들어 최대 32개 혹은 64개 또는 그 이상의 페이지일 수 있다.
도 6은 각각의 메모리 셀이 두 비트의 데이터를 저장할 때의 메모리 셀 어레이에 대한 임계 전압 분포를 나타낸 것이다. 도 6은 소거된 메모리 셀에 대한 제 1 임계 전압 분포(E)를 나타낸다. 프로그래밍된 메모리 셀들에 대한 세 가지 임계 전압 분포(A, B 및 C)가 또한 도시되어 있다. 일 실시예에서, E 분포에서의 임계 전압은 음의 값이고, 그리고 A, B 및 C 분포에서의 임계 전압은 양의 값이다.
도 6의 각각의 별개의 임계 전압 범위는 데이터 비트들의 세트에 대한 미리 결정된 값에 대응한다. 메모리 셀에 프로그래밍된 데이터와 셀의 임계 전압 레벨 간의 특정 관계는 셀에 대해 채택된 데이터 인코딩 방식에 따라 다르다. 한 가지 예는, 임계 전압 범위 E(상태 E)에 "11"을 할당하고, 임계 전압 범위 A(상태 A)에 "10"을 할당하고, 임계 전압 범위 B(상태 B)에 "00"을 할당하고, 그리고 임계 전압 범위 C(상태 C)에 "01"을 할당하는 것이다. 그러나, 다른 실시예에서, 다른 방식이 사용된다.
도 6은 또한 메모리 셀로부터 데이터를 판독하기 위한 세 개의 판독 기준 전압(Vra, Vrb 및 Vrc)을 나타내고 있다. 주어진 메모리 셀의 임계 전압이 Vra, Vrb 및 Vrc보다 높은지 혹은 낮은지 여부를 테스팅함으로써, 시스템은 메모리 셀이 무슨 상태에 있는지를 결정할 수 있다. 도 6은 또한 세 가지 검증 기준 전압 Vva, Vvb 및 Vvc를 나타내고 있다. 메모리 셀들을 상태 A에 프로그래밍할 때, 시스템은 이러한 메모리 셀들이 Vva보다 큰 임계 전압을 가지는지 또는 Vva와 동일한 임계 전압을 가지는지 여부를 테스트한다. 메모리 셀들을 상태 B에 프로그래밍할 때, 시스템은 메모리 셀들이 Vvb보다 큰 임계 전압을 가지는지 또는 Vvb와 동일한 임계 전압을 가지는지 여부를 테스트한다. 메모리 셀들을 상태 C에 프로그래밍할 때, 시스템은 메모리 셀들이 Vvc보다 큰 임계 전압을 가지는지 또는 Vvc와 동일한 임계 전압을 가지는지 여부를 결정한다.
전체 시퀀스 프로그래밍(full sequence programming)으로 알려진 일 실시예에서, 메모리 셀은 소거 상태 E로부터 프로그래밍된 상태 A, B 또는 C 중 어느 하나로 바로 프로그래밍될 수 있다(휘어진 화살표로 표시되어 있음). 예를 들어, 프 로그래밍될 일군의 메모리 셀이 먼저 소거되고, 그래서 상기 군내의 모든 메모리 셀들은 소거된 상태 E에 있게 된다. 일부 메모리 셀들은 또한 상태 E로부터 상태 A로 프로그래밍되고, 다른 메모리 셀들은 상태 E로부터 상태 B로, 그리고/또는 상태 E로부터 상태 C로 프로그래밍된다.
도 7은 두 개의 다른 페이지(아래쪽 페이지 및 위쪽 페이지)에 대한 데이터를 저장하는 다중-상태 메모리 셀을 프로그래밍하는 2-패스 기술의 예를 나타내고 있다. 네 가지 상태가 도시되어 있다. 상태 E(11), 상태 A(10), 상태 B(00) 및 상태 C(01). 상태 E에 대해, 양쪽 페이지들은 "1"을 저장한다. 상태 A에 대해, 아래쪽 페이지는 "0"을 저장하고, 그리고 위쪽 페이지는 "1"을 저장한다. 상태 B에 대해, 양쪽 페이지들은 "0"을 저장한다. 상태 C에 대해, 아래쪽 페이지는 "1"을 저장하고, 그리고 위쪽 페이지는 "0"을 저장한다. 주의할 것으로, 비록 특정 비트 패턴이 각각의 상태에 할당될지라도, 서로 다른 비트 패턴이 또한 할당될 수 있다. 제 1 프로그래밍 패스에서, 셀의 임계 전압 레벨은 아래쪽의 논리적 페이지에 프로그래밍될 비트에 따라 설정된다. 만약 이 비트가 로직 "1"이라면, 임계 전압은 변경되지 않는데, 왜냐하면 이것은 초기 소거의 결과로서 적절한 상태에 있기 때문이다. 그러나, 만약 프로그래밍될 비트가 로직 "0"이라면, 셀의 임계 레벨은, 화살표(230)로 도시된 바와 같이, 상태 A로 증가한다. 이것이 제 1 프로그래밍을 패스로 끝낸다.
제 2 프로그래밍 패스에서, 셀의 임계 전압 레벨은 위쪽의 논리적 페이지에 프로그래밍되는 비트에 따라 설정된다. 만약 위쪽의 논리적 페이지 비트가 로직 "1"을 저장해야 한다면, 어떠한 프로그래밍도 일어나지 않는데, 왜냐하면 셀은 상태 E 또는 A 중 하나에 있기 때문이며, 이것은 아래쪽 페이지 비트의 프로그래밍에 따라 다르고, 이들 모두는 "1"의 위쪽 페이지 비트를 지닌다. 만약 위쪽의 페이지 비트가 로직 "0"이 되어야 한다면, 임계 전압은 시프팅된다. 만약 제 1 패스로 결과적으로 셀이 소거된 상태 E에 머물러 있다면, 제 2 단계에서 셀은 프로그래밍되어 임계 전압은 화살표(234)로 도시된 바와 같이 상태 C에 있도록 증가한다. 만약 셀이 제 1 프로그래밍 패스의 결과로서 상태 A에 프로그래밍된다면, 메모리 셀은 제 2 패스로 더 프로그래밍 되어 임계 전압은 화살표(232)로 도시된 바와 같이 상태 B에 있도록 증가한다. 제 2 패스의 결과는 아래쪽 페이지에 대한 데이터를 변경시키지 않고 위쪽 페이지에 대해 로직 "0"을 저장하도록 지정된 상태에 셀을 프로그래밍하는 것이다.
일 실시예에서, 만약 충분한 데이터가 기입되어 전체 페이지를 채운다면, 시스템은 전체 시퀀스 기입을 수행하도록 설정될 수 있다. 만약 전체 페이지에 대해 충분한 데이터가 기입되지 않는다면, 프로그래밍 프로세스는 수신된 데이터로 아래쪽 페이지를 프로그래밍할수 있다. 후속 데이터가 수신될 때, 시스템은 위쪽 페이지를 프로그래밍한다. 또 다른 실시예에서, 만약 충분한 데이터가 후속적으로 수신되어 전체(또는 대부분의) 워드 라인의 메모리 셀들을 채운다면, 시스템은 아래쪽 페이지를 프로그래밍하는 모드로 기입을 시작하여 전체 시퀀스 프로그래밍 모드로 변환될 수 있다. 이러한 실시예의 더 세부적인 것은 미국 특허 출원 번호 11/013,125(발명의 명칭: "Pipelined Programming of Non- Volatile Memories Using Early Data", 2004.12.14. 출원, 발명자: Sergy Anatolievich Gorobets 및 Yan Li)에 개시되어 있으며, 이것은 그 전체가 참조로 본 명세서에 통합된다.
도 8A 내지 도 8C는, 임의의 특별한 메모리 셀에 대해, 이전 페이지에 대한 인접한 메모리 셀들에 대한 기입 이후에 특별한 페이지에 대한 그 특별한 메모리 셀에 대한 기입에 의해 플로팅 게이트 대 플로팅 게이트 커플링을 감소시키는 비휘발성 메모리를 프로그래밍하는 또 다른 프로세스를 개시한다. 도 8A 내지 도 8C에서 설명되는 프로세스의 실시예의 한 예에서, 비휘발성 메모리 셀들은 네 개의 데이터 상태를 사용하여, 메모리 셀당 두 비트의 데이터를 저장한다. 예를 들어, 상태 E가 소거된 상태이고, 그리고 상태 A, B 및 C가 프로그래밍된 상태라고 가정한다. 상태 E는 데이터 11을 저장한다. 상태 A는 데이터 01을 저장한다. 상태 B는 데이터 10을 저장한다. 상태 C는 데이터 00을 저장한다. 이것은 비-그레이 코딩(non-Gray coding)의 예인데, 왜냐하면 양쪽 비트들이 인접하는 상태 A와 B 사이에서 변하기 때문이다. 데이터의 물리적 데이터 상태로의 다른 인코딩이 또한 사용될 수 있다. 각각의 메모리 셀은 두 개의 데이터 페이지를 저장한다. 참조 목적으로, 이러한 데이터 페이지들은 위쪽 페이지 및 아래쪽 페이지로 언급된다. 그러나 이들은 다른 명칭을 가질 수 있다. 도 8의 프로세스에 대한 상태 A를 참조하면, 위쪽 페이지는 비트 0을 저장하고, 그리고 아래쪽 페이지는 비트 1을 저장한다. 상태 B를 참조하면, 위쪽 페이지는 비트 1을 저장하고, 그리고 아래쪽 페이지는 비트 0을 저장한다. 상태 C를 참조하면, 양쪽 페이지 모두 비트 데이터 0을 저장한다.
도 8A 내지 도 8C의 프로그래밍 프로세스는 두 단계 프로세스이다. 제 1 단 계에서, 아래쪽 페이지가 프로그래밍된다. 만약 아래쪽 페이지가 데이터 1을 유지해야 한다면, 메모리 셀 상태는 상태 E에 머물러 있다. 만약 데이터가 0으로 프로그래밍되야 한다면, 메모리 셀의 전압의 임계치는 상승되어 메모리 셀은 상태 B'로 프로그래밍된다. 도 8A는 상태 E로부터 상태 B'로의 메모리 셀의 프로그래밍을 보여주고 있다. 도 8A에 도시된 상태 B'는 임시적 상태(interim state) B이다. 따라서, 검증 포인트는 Vvb보다 더 낮은 Vvb'로 도시된다.
일 실시예에서, 메모리 셀이 상태 E로부터 상태 B'로 프로그래밍된 이후에, 인접하는 워드 라인 상의 그 이웃 메모리 셀이 아래쪽 페이지에 대하여 프로그래밍 된다. 이웃 메모리 셀의 프로그래밍 이후에, 플로팅 게이트 대 플로팅 게이트 커플링 효과는 상태 B'에 있는 고려되는 메모리 셀의 겉보기 임계 전압(apparent threshold voltage)을 상승시킨다. 이것은 도 8B의 임계 전압 분포(250)로서 도시된 것에 대해 상태 B' 대한 임계 전압 분포의 폭을 넓히는 효과를 갖는다. 임계 전압 분포의 이 겉보기 폭 넓어짐은 위쪽 페이지를 프로그래밍할 때 치유된다.
도 8C는 위쪽 페이지를 프로그래밍하는 프로세스를 도시한다. 만약 메모리 셀이 소거된 상태 E에 있고, 위쪽 페이지가 1에 머물러 있어야 한다면, 메모리 셀은 상태 E에 머물러 있다. 만약 메모리 셀이 상태 E에 있고, 그 위쪽 페이지 데이터가 0으로 프로그래밍되어야 한다면, 메모리 셀의 임계 전압은 상승되어 메모리 셀은 상태 A에 있게 된다. 만약 메모리 셀이 중간의 임계 전압 분포(250)에 있고, 위쪽 페이지 데이터가 1에 머물러 있어야 한다면, 메모리 셀은 최종 상태 B로 프로그래밍된다. 만약 메모리 셀이 중간의 임계 전압 분포(250)에 있고, 위쪽 페이지 데이터가 0이 되어야 한다면, 메모리 셀의 임계 전압은 상승되어 메모리 셀은 상태 C에 있게 된다.
도 8A 내지 도 8C에 도시된 프로세스는 플로팅 게이트 대 플로팅 게이트의 커플링 효과를 감소시키는데, 왜냐하면, 이웃 메모리 셀들의 단지 위쪽 페이지 프로그래밍만이 주어진 메모리 셀의 겉보기 임계 전압에 영향을 미치기 때문이다. 대안적인 상태 코딩의 예는 위쪽 페이지 데이터가 1일 때 분포(250)로부터 상태 C로의 이동하는 것이고, 그리고 위쪽 페이지 데이터가 0일 때 상태 B로 이동하는 것이다. 비록 도 8A 내지 도 8C가 네 개의 데이터 상태 및 두 개의 데이터 페이지에 대한 예를 제공하고 있지만, 도 8A 내지 도 8C로 설명되는 개념은 네 개의 상태보다 많거나 적은 경우 및 두 개의 페이지와는 다른 개수를 갖는 다른 실시예에도 적용될 수 있다. 다양한 프로그래밍 방식 및 플로팅 게이트 대 플로팅 게이트 커플링에 대한 더 세부적인 것은 미국 특허 출원 번호 11/099,133(발명의 명칭: "Compensating For Coupling During Read Operations Of Non- Volatile Memory", 2005.04.05. 출원) 및 미국 특허 번호 6,657,891(2003.12.02. 발행, 발명자: Shibata 외)에서 알 수 있으며, 이 모두는 그 전체가 참조로 본 명세서에 통합된다.
앞서 설명된 바와 같이, 이웃하는 메모리 셀들은 메모리 셀의 겉보기 임계 전압에 영향을 미칠 수 있는 커플링을 일으킬 수 있다. 이웃하는 메모리 셀은 인접 워드 라인, 인접 비트 라인, 인접하지 않지만 가까이 있는 비트 라인, 또는 인접하지 않지만 가까이 있는 워드 라인 상에 있을 수 있다. 시스템은, 판독되는 메모리 셀(또는 플로팅 게이트)이 프로그래밍되는 이웃하는 메모리 셀(또는 플로팅 게이트) 이전에 프로그래밍되기 때문에 커플링에 대한 포텐셜(potential)이 존재하는지 여부를 먼저 결정함으로써 이웃하는 플로팅 메모리 셀들 간의 커플링을 선택적으로 보상한다. 만약 판독되는 메모리 셀이 이웃하는 메모리 셀 이전에 프로그래밍된다면, 이웃하는 메모리 셀의 프로그래밍의 레벨에 근거하여 커플링을 보상하는 프로세스가 사용될 수 있다.
도 9는 타이밍 정보를 사용하는 것을 포함하는 프로그래밍에 대한 하이 레벨 프로세스의 일 실시예를 나타낸 흐름도이다. 도 10은 커플링에 대한 포텐셜이 있는지 여부를 결정하고 이것에 근거하여 선택적으로 보상하기 위해 프로그래밍된 타이밍 정보를 사용하는 판독에 대한 프로세스의 일 실시예를 나타낸 흐름도이다.
도 9의 단계(300)에서, 데이터 기입 요청이 수신된다. 이 요청은 제어기, 상태 머신, 또는 또 다른 디바이스에서 수신될 수 있다. 이 요청에 응답하여, 데이터(하나 또는 그 이상의 정보 비트)가 단계(302)에서 플래시 메모리 어레이에 기입된다. 추가적으로 타이밍 정보는 단계(304)에서 저장된다. 타이밍 정보는 단계(302)에서 기입된 데이터에 대해 커스터마이징된다. 일 실시예에서, 타이밍 정보는 단계(302)에서 저장된 데이터와 함께 저장된다. 다른 실시예에서, 타이밍 정보는 개별적으로 저장된다. 단계(302 및 304)는 동시에 또는 개별적으로(임의의 순서로) 수행될 수 있다. 주의할 것으로, 본 명세서에 포함된 흐름도 모두에서, 흐름도 내에 도시된 단계들의 순서는 반드시 고정된 것이 아니며, 많은 경우에 있어 다른 적당한 순서로 수행될 수도 있다.
사용될 수 있는 타이밍 정보의 예는 많이 있다. 일 실시예에서, 타임 스탬프(time stamp)가 사용된다. 이 타임 스탬프는 호스트 디바이스에 대한 시스템 클럭으로부터 판독되는 절대적 타임 스탬프(absolute time stamp)일 수 있다. 또 다른 실시예에서, 메모리 시스템은 내부 배터리를 포함할 수 있고, 그 자신의 클럭을 저장할 수 있다. 또 다른 실시예에서, 상대적 타임 스탬프(relative time stamp)가 사용될 수 있다. 예를 들어, 시스템은 싸이클 카운트(cycle count)를 유지할 수 있다. 싸이클 카운트는 각각의 프로그래밍 싸이클에 번호를 부여한다. 이 싸이클 카운트는 상태 머신, 제어기 혹은 또 다른 디바이스에 의해 유지될 수 있다. 싸이클 카운트는 단계(304)에서 타이밍 정보로서 저장될 수 있다. 만약 데이터의 제 1 세트가 데이터의 제 2 세트보다 더 큰 싸이클 카운트를 갖는다면, 데이터의 제 1 세트는 데이터의 제 2 세트 이후에 프로그래밍된다. 타이밍 정보의 또 다른 실시예는 이웃하는 메모리 셀 이전에 또는 이후에 데이터가 프로그래밍되었지 여부를 나타내는 표시를 포함할 수 있다.
도 10은 데이터를 판독하기 위한 프로세스를 나타낸 흐름도를 제공한다. 단계(340)에서, 데이터 판독 요청이 제어기, 상태 머신, 또는 다른 디바이스에 의해 수신된다. 단계(342)에서, 데이터에 대한 타이밍 정보가 액세스된다. 이것이 단계(304)에서 저장된 타이밍 정보이다. 단계(344)에서, 액세스된 타이밍 정보에 근거하여 커플링에 대한 포텐셜이 존재하는지 여부가 결정된다. 일 실시예에서, 판독 요청과 관련된 데이터를 저장하는 메모리 셀들이 이웃하는 메모리 셀들 이전에 프로그래밍되었다고 타이밍 정보가 나타내는지 여부를 시스템이 결정한다. 만약 그렇 다면, 메모리 셀들 간의 커플링에 대한 포텐셜이 존재한다. 만약 판독 요청과 관련된 데이터를 저장하는 메모리 셀들이 이웃하는 셀들을 프로그래밍한 이후에 프로그래밍되었다면, 커플링에 대한 포텐셜은 존재하지 않을 것이다. 만약 단계(344)가 커플링에 대한 포텐셜이 존재한다고 결정한다면, 이웃하는 셀들의 프로그래밍의 레벨이 필요한 커플링을 생성하기에 충분하지 않다면 임의의 실제 커플링은 존재하지 않을 것이다. 만약 커플링에 대한 포텐셜이 존재하지 않는다면(단계(346)), 단계(348)에서 커플링의 고려 없이 판독 프로세스가 수행된다. 주의할 것으로, 판독 프로세스는 비휘발성 메모리 내에 저장된 정보를 결정하는 것과 이 정보를 보고하는 것을 포함한다. 만약 커플링에 대한 포텐셜이 존재한다고 결정된다면(단계(346)), 단계(350)에서 포텐셜 커플링의 고려 없이 판독 프로세스가 수행된다. 일 실시예에서, 단계(350)는 만약 필요하다면 커플링을 보상하는 것을 포함한다. 메모리 셀들 간의 커플링을 보상하는 다른 많은 방식이 있다. 임의의 적절한 방식이 본 명세서에서 설명되는 기술과 함께 사용될 수 있다.
도 11은 데이터 페이지의 일 실시예를 나타내는 블럭도이다. 이 데이터 페이지는 헤더(380), 타이밍 정보(382), 사용자 데이터(384), 및 에러 정정 코드(ECC)(386)를 포함한다. 헤더 정보(380)는 헤더에서 사용될 본 발명의 기술분야에서 알려진 데이터의 임의의 세트를 포함할 수 있다. 헤더 정보의 일부 예들은 어드레스 정보, 비트 및/또는 섹터 매핑 관련 정보, 섹터에 대한 기입의 횟수 카운트 등을 포함할 수 있다. 다른 정보가 헤더에 저장될 수도 있다. 타이밍 정보(382)는 단계(304)에서 저장된 타이밍 정보이다. 사용자 데이터(384)는 단계(302)에서 기입 된 데이터를 포함한다. ECC(366)는 본 발명의 기술분야에서 알려진 에러 정정 코드를 포함한다. 주의할 것으로, 일부 기입 요청은 복수의 페이지에 기입하는 것을 요구할 수 있다. 이 경우에, 하나 또는 그 이상의 타이밍 정보 세트가 사용될 수 있다.
도 12는 데이터 기입을 위한 프로세스의 일 실시예를 나타낸 흐름도이다. 도 12의 프로세스는 도 9의 단계(302 및 304)를 수행하기 위한 일 실시예이다. 도 12의 단계(402)에서, 시스템은 데이터 기입 요청 수신에 응답하여 프로그래밍을 위해 메모리의 적절한 부분을 선택한다. 이것은 기입을 위해 블럭 및/또는 페이지 및/또는 섹터를 선택하는 것을 포함할 수 있다. 일 실시예에서, 도 12의 프로세스는 데이터를 페이지에 기입하고, 이것은 공통 워드 라인에 연결된 메모리 셀에 데이터를 기입하는 것을 포함한다. 단계(404)에서, 메모리의 선택 부분은 사전 프로그래밍 되고, 이것은 플래시 메모리의 웨어링을 위해 제공된다. 선택된 섹터 또는 페이지 내의 모든 메모리 셀은 동일한 임계 전압 범위에 프로그래밍 된다. 선택에 따라서는, 단계(404)가 선택될 수 있다. 단계(406)에서, 프로그래밍될 메모리 셀들이 소거된다. 예를 들어, 단계(406)는 오래된 메모리 셀들을 상태 E(도 6 내지 도 8 참조)로 이동시키는 것을 포함할 수 있다. 일부 실시예들에서, 단계(406)는 또한 소프트 프로그래밍 프로세스를 수행하는 것을 포함한다. 소거 프로세스 동안, 메모리 셀들의 일부는, 분포 E(도 6 내지 도 8 참조) 아래에 있는 값으로 낮아진 임계 전압을 가지는 것도 가능하다. 소프트 프로그래밍 프로세스는 프로그램 전압 펄스를 메모리 셀들에 인가하여, 이들의 임계 전압이 임계 전압 분포 E 내에 있도록 증가 한다.
단계(408)에서, 시스템은 타임 스탬프를 획득한다. 이 타임 스탬프는 절대적 시간일 수 있다. 예를 들어, 메모리 시스템은 제어기를 통해 호스트로부터 날짜/시간을 요구할 수 있다. 대안적으로, 메모리 시스템은 배터리 및 내부 클럭을 포함할 수 있어, 메모리 시스템은 자신의 타임 스탬프를 제공할 수 있다. 또 다른 실시예에서, 메모리 시스템은 싸이클 카운트를 유지할 수 있다. 시스템이 페이지를 프로그래밍할 때마다, 싸이클 카운트가 증가한다. 단계(408)에서 획득된 타입 스탬프는 현재 싸이클 카운트일 수 있다. 싸이클 카운트가 절대적 시간을 제공하지 않는 반면에, 상대적 시간을 제공한다. 싸이클 카운터를 사용하여, 두 개 혹은 그 이상의 페이지들 중 어느 것이 먼저 프로그래밍 되었는지를 결정하는 것이 가능하다.
단계(410)에서, 프로그래밍될 데이터는 적절한 래치/레지스터(latches/registers)에 저장된다. 일 실시예에서, 도 12의 프로세스는 데이터의 하나의 페이지를 프로그래밍하는데 사용될 수 있다. 프로그래밍되는 메모리 셀들 모두는 동일한 워드 라인 상에 있다. 각각 메모리 셀은 자기 자신의 비트 라인과 그 비트 라인과 관련된 래치들의 세트를 갖는다. 이러한 래치들은 관련 메모리 셀에 대해 프로그래밍될 데이터의 표시를 저장한다. 단계(410)는 또한 타임 스탬프를 저장하는 메모리 셀에 대한 비트 라인들과 관련된 래치들에 타임 스탬프 데이터를 저장하는 것을 포함한다. 단계(412)에서, 제 1 프로그램 펄스의 크기가 설정된다. 일부 실시예에서, 워드 라인에 인가되는 전압은 프로그램 펄스들의 세트이고, 각각의 펄스의 크기는 이전의 펄스로부터 단계 크기(예를 들어, 2v-4v)만큼 증가한다. 단계(414)에서, 프로그램 카운트(Program Count, PC)는 초기에 제로로 설정된다.
단계(416)에서, 프로그램 펄스는 적절한 워드 라인(들)에 인가된다. 단계(418)에서, 워드 라인(들) 상의 메모리 셀들은 이들이 타겟 임계 전압 레벨에 도달했는지 여부를 알 수 있도록 검증된다. 만약 모든 메모리 셀들이 타겟 임계 전압 레벨에 도달했다면(단계(420)), 프로그래밍 프로세스는 단계(422)에서 성공적으로 완료한다(상태=패스). 만약 모든 메모리 셀들이 검증된 것이 아니라면, 단계(424)에서 프로그램 카운트(PC)가 20(또는 다른 적절한 값)보다 작은지 여부가 결정된다. 만약 프로그램 카운트가 20보다 작지 않다면, 프로그래밍 프로세스는 실패한다(단계(426)). 만약 프로그램 카운터가 20보다 작다면, 단계(428)에서, 프로그램 전압 신호(Vpgm)의 크기는 다음 펄스 동안 단계 크기(예를 들어, 3v)만큼 증가하고, 그리고 프로그램 카운터(PC)가 증가한다. 유의할 것으로, 타겟 임계 전압에 도달한 이러한 메모리 셀들은 현재의 프로그래밍 싸이클의 나머지 동안의 프로그래밍으로부터 락킹된다. 단계(428) 이후에, 도 12의 프로세스는 단계(416)에서 계속되고, 그리고 다음 프로그램 펄스가 인가된다.
도 13은 도 12의 프로세스 또는 다른 프로세스에 따라 기입된 데이터를 판독하기 위한 프로세스의 일 예를 제공한다. 도 13은 도 10의 프로세스의 실시예이다. 도 13의 단계(500)에서, 데이터 판독 요청이 수신된다. 단계(502)에서, 판독 프로세스가 요청된 페이지에 대해 수행된다. 일 실시예에서, 이것은 동일한 워드 라인에 연결된 메모리 셀들의 세트로부터 데이터를 판독하는 것을 포함한다. 일부 실시예에서, 각각의 워드 라인은 두 개의 인접한 워드 라인들(예를 들어, 위쪽의 하나 의 워드 라인 및 아래쪽에 하나의 워드 라인, 또는 왼쪽에 하나의 워드 라인 및 오른쪽에 하나의 워드 라인)을 가질 수 있다. 단계(504)에서, 인접한 워드 라인들 중 하나가 판독된다. 단계(506)에서, 다른 인접한 워드 라인이 판독된다. 해당 데이터를 저장하는 워드 라인이 단지 하나의 인접한 워드 라인을 포함하는 실시예에서, 단계(506)는 생략될 수 있다. 유의할 것으로, 단계(502, 504 및 506)는 사용자 데이터에 추가되는 관련 타이밍 정보를 판독하는 것을 포함한다. 즉, 도 11에 도시된 전체 페이지가 판독되는 것이고, 그리고 그 페이지는 타이밍 정보(382)를 포함한다. 도 13의 실시예에서, 타이밍 정보는 절대적 시간 혹은 상대적 시간(예를 들어, 싸이클 카운트)과 같은 타임 스탬프의 일부 타입이다. 단계(508)에서, 다양한 타임 스탬프들의 비교에 근거하여 커플링에 대한 포텐셜이 있는지 여부가 결정된다. 예를 들어, 만약, 판독되는 워드 라인에 대한 타임 스탬프가 두 개의 인접한 워드 라인의 타임 스탬프보다 더 이후라면, 판독되는 워드 라인은 두 개의 인접한 워드 라인 이후에 프로그래밍 된 것으로 고려되고 아울러 플로팅 게이트 대 플로팅 게이트 커플링에 대한 포텐셜은 없는 것으로 고려된다. 만약 판독되는 워드 라인의 타임 스탬프가 두 개의 인접한 워드 라인들 중 어느 하나에 대한 타임 스탬프보다 더 빠르다면, 커플링에 대한 포턴셜은 존재한다. 만약 커플링에 대한 포텐셜이 없다면(단계(510)), 단계(502)에서 판독되는 데이터는 저장되고 그리고 커플링에 대한 어떠한 보상도 고려하지 않고 사용자에게 보고된다. 만약 커플링에 대한 포텐셜이 존재한다고 결정된다면(단계(510)), 단계(514)에서 커플링을 보상하는 추가적인 판독 프로세스가 수행된다.
도 14는 데이터 페이지에 대한 판독 동작(도 13의 단계(502) 참조)을 수행하기 위한 프로세스의 일 실시예를 나타낸 흐름도이다. 도 14의 실시예는 공통 워드 라인에 연결된 메모리 셀들의 세트로부터 데이터 페이지를 판독하는 것과 관련된다. 도 14의 특정 실시예는 도 6 내지 도 8의 상태 E, A, B 및 C와 같은 네 가지 상태를 포함하는 다중-상태 메모리와 관련되어 있다. 도 14의 기술은 또한 다른 구성에도 적용가능하다. 단계(540)에서, 판독 기준 전압(Vra)이 페이지와 관련된 적절한 워드 라인에 인가된다. 단계(542)에서, 페이지와 관련된 비트 라인이 감지되어, 어드레싱된 메모리 셀들이 그들의 제어 게이트에 인가된 Vra에 따라 전도 상태인지 혹은 전도 상태가 아닌지 여부가 결정된다. 전도 상태의 비트 라인은 메모리 셀들이 턴온되었다고 나타낸다. 따라서 이러한 메모리 셀들의 임계 전압은 Vra 아래에 있다(예를 들어, 상태 E에 있다). 단계(544)에서, 비트 라인에 대한 감지 결과는 비트 라인에 대한 적절한 래치에 저장된다. 단계(546)에서, 판독되는 페이지와 관련된 워드 라인에 판독 기준 전압(Vrb)이 인가된다. 단계(548)에서, 비트 라인은 앞서 설명된 바와 같이 감지되며, 단계(550)에서, 그 결과가 비트 라인에 대한 적절한 래치에 저장되고, 단계(552)에서, 판독 기준 전압(Vrc)이 페이지와 관련된 워드 라인에 인가된다. 단계(554)에서, 앞서 설명된 바와 같이, 비트 라인이 감지되어 어떤 메모리 셀이 전도상태에 있는지가 결정된다. 단계(556)에서, 감지 단계로부터의 결과가 비트 라인에 대한 적절한 래치에 저장된다. 단계(558)에서, 각각의 비트 라인에 대한 데이터 값이 결정된다. 예를 들어, 만약 메모리 셀이 Vra에서 전도상태에 있다면, 메모리 셀은 상태 E에 있다. 만약 메모리 셀이 Vrb 및 Vrc 에서 전도상태에 있지만 Vra에서 전도상태에 있지 않다면, 메모리 셀은 상태 A에 있다. 만약 메모리 셀이 Vrc에서 전도상태에 있지만 Vra 및 Vrb에서 전도상태에 있지 않다면, 메모리 셀은 상태 B에 있다. 만약 메모리 셀이 Vra, Vrb 또는 Vrc에서 전도상태에 있지 않다면, 메모리 셀은 상태 C에 있다. 일 실시예에서 데이터 값은 감지 증폭기와 관련된 프로세싱 유닛에 의해 결정된다. 단계(560)에서, 결정된 데이터 값은 각각의 비트 라인에 대해 적절한 래치에 저장되거나, 혹은 다른 경우에는 상태 머신, 제어기 또는 다른 디바이스에 의해 사용된다. 다른 실시예에서, 다양한 레벨(Vra, Vrb, 및 Vrc)을 감지하는 것은 다른 순서로 발생할 수 있다.
도 15A는 포텐셜 커플링을 보상하는 추가적인 판독 프로세스를 수행하기 위한 프로세스의 일 실시예를 설명하는 흐름도를 제공한다. 따라서, 도 15A는 도 13의 단계(514)의 일 실시예를 제공한다. 도 15A의 실시예는 두 개의 이웃하는 워드 라인들로부터의 포텐셜 커플링이 존재한다고 가정한다. 단계(600)에서, 시스템은 이웃들 각각에 근거하여 오프셋들을 결정한다. 다른 많은 타입의 오프셋들이 있으며 사용될 수 있는 오프셋들에 대한 값들도 많이 있다. 일 실시예에서, 만약 이웃 메모리 셀이 상태 A로 프로그래밍된다면(도 6 참조), 오프셋은 0.1 볼트이고, 만약 이웃 메모리 셀이 상태 B로 프로그래밍된다면, 오프셋은 0.2 볼트이고, 그리고 만약 이웃 메모리 셀이 상태 C로 프로그래밍된다면, 오프셋은 0.3 볼트이다. 다른 실시예에서는, 다른 값들 또는 방식이 사용될 수 있다. 시스템이 단계(504 및 506)에서 이웃하는 워드 라인들에 저장된 값들을 판독하고, 따라서 어떤 오프셋을 사용할지를 결정할 수 있다. 이 시스템은 이웃하는 워드 라인들 각각에 대한 오프셋들의 세트를 결정할 수 있고, 그 다음에 두 개의 오프셋들을 함께 더할 수 있다. 이러한 방식으로 여섯 개의 가능한 오프셋들이 있다.
예를 들어, 주어진 메모리 셀이 두 개의 이웃들을 갖는다고 가정하자. 제 1 이웃이 상태 B로 프로그래밍된다. 제 2 이웃이 상태 C로 프로그래밍된다. 그 다음에, 제 1 이웃으로부터의 오프셋은 0.2 볼트이고, 그리고 제 2 이웃으로부터의 오프셋은 0.3 볼트이다. 특정 메모리 셀에 대한 전체 오프셋은 0.5 볼트이다.
다른 실시예에서, 여섯 개보다 많거나 혹은 적은 포텐셜 오프셋이 있을 수 있다. 일부 실시예에서, 오프셋들은 제로 볼트 오프셋을 포함할 수 있다. 예를 들어, 제로 볼트 오프셋은 이웃하는 메모리 셀들이 상태 E에 머물러 있을 때 사용될 수 있다.
도 15A의 단계(602)에서, 어떠한 오프셋들도 수신하지 않는 이러한 메모리 셀들은 단계(502)로부터 이전의 판독 데이터를 저장한다. 예를 들어, 만약 메모리 셀이 상태 E에 있는 이웃들을 갖는다면, 어떠한 오프셋도 사용되지 않는다(또는 Ov 오프셋이 사용된다). 단계(604)에서 판독 프로세스는 판독 포인트를 갖는 제 1 오프셋을 사용하여 수행된다. 예를 들어, 도 14의 프로세스가 수행될 수 있다. 그러나, 판독 비교 포인트로서 Vra, Vrb, 및 Vrc를 사용하는 대신, 판독 프로세스는 Vra + 제 1 오프셋, Vrb + 제 1 오프셋, 및 Vrc + 제 1 오프셋을 사용한다. 단계(606)에서, 제 1 오프셋과 관련된 비트 라인에 대한 데이터가 저장된다. 즉, 상태 E에 하나의 이웃을 갖고 상태 A에 또 다른 하나의 이웃을 갖는 이러한 메모리 셀들은 단계(604)로부터 저장된 데이터를 갖는다. 단계(608)에서, 판독 프로세스가 판독 비교 포인트들을 갖는 오프셋들의 제 2 세트를 사용하여 수행된다. 예를 들어, 도 14의 프로세스가 판독 비교 포인트들에 대해 Vra + 제 2 오프셋, Vrb + 제 2 오프셋, 및 Vrc + 제 2 오프셋을 가지고 사용될 수 있다. 단계(610)에서, 제 2 오프셋과 관련된 비트 라인들은 단계(608)로부터의 데이터를 저장한다. 예를 들어, 상태 E에 하나의 이웃을 가지고 그리고 상태 B에 또 다른 하나의 이웃을 가지거나 또는 상태 A에 양쪽 이웃 모두를 갖는 이러한 메모리 셀들은 단계(608)로부터의 데이터를 저장한다. 단계(612)에서, 판독 프로세스가 판독 비교 포인트를 갖는 제 3 오프셋을 사용하여 수행된다. 단계(614)에서, 데이터가 제 3 오프셋과 관련된 이러한 비트 라인들에 대해 저장된다. 단계(616)에서, 판독 프로세스가 판독 비교 포인트를 갖는 제 4 오프셋을 사용하여 수행된다. 단계(618)에서, 단계(616)으로부터의 데이터가 제 4 오프셋과 관련된 이러한 비트 라인들에 대해 저장된다. 단계(620)에서, 판독 프로세스가 판독 비교 포인트들을 갖는 제 5 오프셋을 사용하여 수행된다. 단계(622)에서, 데이터는 제 5 오프셋과 관련된 이러한 비트 라인들에 대해 저장된다. 단계(624)에서, 판독 프로세스가 판독 비교 포인트들을 갖는 제 6 오프셋을 사용하여 수행된다. 단계(626)에서, 단계(624)로부터의 데이터는 제 6 오프셋과 관련된 이러한 비트 라인들에 대해 저장된다. 일 예에서, 제 1 오프셋은 0.1 볼트이고, 제 2 오프셋은 0.2 볼트이고, 제 3 오프셋은 0.3 볼트이고, 제 4 오프셋은 0.4 볼트이고, 제 5 오프셋은 0.5 볼트이고, 그리고 제 6 오프셋은 0.6 볼트이다. 커플링을 보상하는 것에 대한 더 많은 정보는 미국 특허 출원 번호 11/099,133(발명의 명칭: "Compensating for Coupling During Read Operations On Non- Volatile Memory", 2005.04.05. 출원, 발명자: Jian Chen)에 설명되어 있으며, 이것은 그 전체가 참조로 본 명세서에 통합된다.
도 15A의 프로세스는 두 개의 이웃들로부터의 포텐셜 커플링이 있는 경우 수행된다. 만약 단계(508)에서 단지 하나의 이웃으로부터의 포텐셜 커플링이 있는 것으로 결정된다면, 단계(514)에서 도 15B의 프로세스가 수행된다. 단계(630)에서, 시스템은 하나의 이웃에 근거하여 오프셋들을 결정한다. 단계(632)에서, 어떠한 오프셋과도 관련되지 않은 이러한 비트 라인들에 대한 이전의 판독 데이터가 단계(632)에서 저장된다. 단계(634)에서, 판독 프로세스가 판독 비교 포인트들을 갖는 제 1 오프셋을 사용하여 수행된다. 단계(636)에서, 제 1 오프셋과 관련된 이러한 비트 라인들에 대한 데이터가 저장된다. 단계(638)에서, 판독 프로세스가 판독 비교 포인트들을 갖는 제 2 오프셋을 사용하여 수행된다. 단계(640)에서, 제 2 오프셋과 관련된 이러한 비트 라인들에 대한 데이터가 저장된다. 단계(642)에서, 판독 프로세스가 판독 비교 포인트들을 갖는 제 3 오프셋을 사용하여 수행된다. 단계(644)에서, 제 3 오프셋과 관련된 이러한 비트 라인들에 대한 데이터가 저장된다.
또 다른 실시예에서, 타임 스탬프를 저장하는 것이라기보다는, 타이밍 정보는, 특별한 페이지가 이웃하는 워드 라인들(또는 다른 이웃들) 상의 데이터 이후에 혹은 잠재적으로 이전에 프로그래밍되었는지 여부에 관한 표시로서 저장된다. 이 정보를 통해 페이지가 잠재적으로 이전에 기입되었는지 여부를 단지 알 수 있는 이유는, 이웃이 소거되는 동안 페이지가 기입되고 그리고 이웃이 결코 기입되지 않는 것이 가능하기 때문이다.
도 16은 데이터 페이지의 또 다른 예를 제공한다. 도시된 페이지는 헤더(650), 타이밍 정보(652), 사용자 데이터(654), 타이밍 정보(656) 및 ECC(658)를 포함한다. 타이밍 정보(652)는 이전 워드 라인에 대한 히스토리(HPWL(History Previous Word Line))를 제공한다. 타이밍 정보(656)는 다음 워드 라인에 대한 히스토리(HNWL(History Next Word Line))를 제공한다. 타이밍 정보(652 및 656)에 관하여, 용어 이전 및 다음의 사용을 통해 시간 또는 순서적 의미를 설명하려는 것이 아니다. 오히려, 이전 또는 다음은 두 개의 다른 이웃들을 식별하기 위해 사용된다. 예를 들어, 도 5를 다시 보면, 워드 라인(WL2)은 적어도 두 개의 이웃(WL3 및 WL1)을 갖는다. 단지 명명의 목적으로, 소스에 가장 가까운 이웃 워드 라인이 이전 워드 라인으로 언급되고, 그리고 드레인에 가장 가까운 이웃 워드 라인이 다음 워드 라인으로 언급된다. 따라서, WL1에 대해, 이전 워드 라인은 WL1이고, 다음 워드 라인은 WL2이다. 커플링에 대한 포텐셜을 결정하고 그리고 보상하는 본 명세서에 설명된 기술은 미리 정의되지 않은 순서로 데이터를 프로그래밍하는 프로그래밍 방식을 포함하는 다른 많은 프로그래밍 방식과 함께 적절하게 사용될 수 있다. 즉, 일부 실시예들에서, 워드 라인들은 WL0으로부터 WL3까지 프로그래밍된다. 다른 실시예에서, 시스템은 워드 라인을 램덤하게 선택할 수 있고, 그리고 임의 순서로 워드 라인을 프로그래밍할 수 있다. 본 명세서에서 설명된 기술은 어떠한 실시예와도 함께 동작할 수 있다.
도 17은 HPWL(652) 및 HNWL(656)에 저장될 수 있는 데이터 값들을 설명하는 차트이다. 일 실시예에서, 저장된 데이터는 2비트, 즉 11, 10, 및 00을 포함한다. 만약 HPWL(652) 또는 HNWL(656)이 11을 저장한다면, 히스토리를 저장하는 페이지, 섹터 혹은 워드 라인은 소거된다. 만약 HPWL(652) 또는 HNWL(656)이 10을 저장한다면, 그 히스토리 값을 저장하는 워드 라인은 각각의 이웃 워드 라인 이전에 프로그래밍 된다. 만약 HPWL(652) 또는 HNWL(656)이 00을 저장한다면, 각각의 이웃하는 워드 라인은 히스토리를 저장하는 워드 라인 이전에 프로그래밍된다.
도 18은 도 16에 도시된 페이지를 프로그래밍하는 프로세스의 일 실시예를 설명하는 흐름도이다. 도 18의 단계(402-406)는 도 12에서와 동일하다. 단계(680)는 이전 워드 라인에 대한 히스토리를 판독하는 것과 HPWL을 결정하는 것을 포함한다. 예를 들어, 만약 도 5의 워드 라인(WL2)이 프로그래밍되고 있다면 이전 워드 라인은 WL1이다. 단계(680)는 WLl이 소거되었는지(HNWL=11) 또는 프로그래밍되었는지(예를 들어, HNWL=1O) 여부를 알 수 있도록 WL1에 대한 HNWL(656)을 관측하는 것을 포함한다. WL1에 대한 HNWL에 근거하여, 시스템은 WL2에 대한 HPWL(652)을 결정한다. 단계(682)에서, 시스템은 다음 라인에 대한 히스토리를 판독하고 HNWL을 결정한다. 예를 들어, 도 5의 WL2에 기입시, 시스템은 워드 라인(WL3)의 HPWL를 먼저 판독하고, 그것에 근거하여 어떤 값이 워드 라인(WL2)에 대해 HNWL에 저장되어야 하는지를 결정한다. 헤더(650), HPWL(652), 사용자 데이터(654), HNWL(656) 및 ECC(658)를 프로그래밍하는 데이터는 단계(684)에서 비트 라인들 각각에 대한 적절한 래치에 저장된다. 도 18의 단계(412-428)는 도 12에서와 동일하다.
도 19는 다음 워드 라인 혹은 이전 워드 라인으로부터의 히스토리 정보를 판 독하고 그리고 적절한 HPWL 또는 HNWL을 결정하는 프로세스의 일 실시예를 설명하는 흐름도이다. 예를 들어, 도 19는 단계(680 또는 682)의 일 실시예를 제공한다. 단계(700)에서, 전압 Vra를 적절한 워드 라인에 인가함으로써 판독 프로세스가 수행된다. 단계(702)에서, 비트 라인이 감지되어 메모리 셀이 턴온인지 아닌지 여부가 결정된다. 단계(702)는 히스토리 값(HPWL 또는 HNWL)을 저장하는 이러한 메모리 셀들 상에서만 단지 수행될 필요가 있다. 다른 실시예에서, 단계(702)는 워드 라인에 연결된 모든 메모리 셀들(또는 다른 많은 메모리 셀 세트) 상에서 수행된다. 유의할 것으로, 만약 히스토리 값이 11(상태 E)이라면, 메모리 셀은 턴온된다. 만약 그렇지 않다면, 히스토리를 저장하는 메모리 셀은 Vra에 응답하여 턴온되지 않는다. 만약 히스토리를 저장하는 메모리 셀들이 턴온된다면, 이웃 워드 라인에 연결된 메모리 셀들은 소거된 것으로 고려된다. 따라서, 현재의 메모리 셀들은, 이웃 워드 라인이 프로그래밍되고 있기 이전에 잠재적으로 프로그래밍되고 있다. 만약 히스토리를 저장하는 메모리 셀들이 턴온되지 않는다면, 이웃 워드 라인 상의 메모리 셀들은 이미 프로그래밍된것으로 고려되고, 그리고 현재의 워드 라인은 프로그래밍 되는 이웃 워드 라인에 이후에 프로그래밍되고 있다고 고려된다. 단계(702)로부터의 결과는 단계(704)에서 저장된다. 히스토리 정보를 저장하는 메모리 셀들이 턴온 인지 턴오프인지 여부에 근거하여(단계(706)), 적절한 값이 현재의 워드 라인에 대해 히스토리에 저장된다. 만약 이웃의 히스토리가 11이라면, 단계(710)에서 값 10은 현재의 워드 라인에 대해 적절한 히스토리 값에 저장되고, 이것은 현재의 워드 라인이 이웃 이전에 프로그래밍되는 것을 나타낸다. 만약 이웃에 대한 히스토 리 값이 10이라면, 현재의 워드 라인에서의 히스토리에 대해 00이 저장되어 현재의 워드 라인이 이웃 이후에 프로그래밍되는 것을 나타낸다.
도 20은 도 18의 프로세스에 따라 프로그래밍되는 데이터를 판독하는 판독 프로세스의 일 실시예를 설명하는 흐름도이다. 유의할 것으로, 도 20은 도 10의 프로세스에 대한 또 다른 실시예이다. 도 20의 단계(800)에서, 데이터 판독 요청이 수신된다. 단계(802)에서, 판독 프로세스가 어떠한 오프셋 사용 없이 워드 라인에 대해 수행된다. 예를 들어, 도 14의 프로세스가 수행된다. 단계(804)에서, 히스토리가 판독되는 워드 라인에 대해 액세스된다. 유의할 것으로, 일 실시예에서, 단계(802)에서 히스토리 데이터는 전체 페이지의 판독 프로세스의 일부로서 판독된다. 그 다음으로 단계(804)에서 이 데이터는 프로세서, 상태 머신 등에 의해 액세스된다. 다른 실시예들에서, 히스토리 데이터는 단계(802) 이전에 혹은 이후에 액세스될 수 있다. 만약 HNWL 또는 HPWL가 11이라면(단계(806), 페이지는 소거된 데이터를 가지면, 단계(808)에서 소거된 데이터가 보고된다. 만약 HNWL 및 HPWL 모두가 00이라면, 판독되는 현재 페이지는 양쪽 이웃 모두 이후에 프로그래밍되는 것으로 고려된다. 따라서, 단계(810)에서, 데이터는 커플링 보상 없이 보고된다. 만약 HNWL=00이고 HPWL=10이라면(단계(812), 단계(814)에서 이전 이웃으로부터의 커플링을 보상하는 추가적인 판독 동작이 수행된다. 만약 HNWL=10이고 HPWL=10이라면, 단계(818)에서 양쪽 이웃들로부터의 커플링을 보상하는 추가적인 판독 동작이 수행된다. 만약 HNWL=10이고 HPWL=00이라면, 단계(816)에서 다음 이웃으로부터의 커플링을 보상하는 추가적인 판독 동작이 수행된다.
도 21은 하나의 이웃으로부터의 커플링을 보상하는 추가적인 판독 동작을 수행하기 위한 프로세스의 일 예를 설명하는 흐름도이다. 예를 들어, 도 21의 프로세스는 도 20의 단계(814) 또는 단계(816)의 일부로서 수행될 수 있다. 단계(904)에서, 제어 게이트 또는 워드 라인에서 제공되는 판독 비교 포인트(Vra)를 사용하여 이웃하는 워드 라인으로부터 데이터가 판독된다. 단계(906)에서, 전체 워드 라인 혹은 페이지가 소거되었는지 여부가 결정된다. 만약 메모리 셀 모두가 상태 E에 있다면, 메모리 셀 모두는 Vra에 응답하여 턴온된다. 만약 모든 메모리 셀들이 소거된다면(단계(906)), 단계(908)에서 이웃 워드 라인으로부터의 커플링의 어떠한 보상을 수행함이 없이 데이터가 보고된다. 만약 이웃하는 워드 라인이 소거되지 않는다면(단계(906)), 판독 프로세스는 계속하여, 판독 비교 포인트(Vrb)를 사용하여 판독 동작을 하고 그리고 비교 포인트(Vrc)를 사용하여 판독 동작을 한다(단계(910)). 세 개의 판독 동작에 근거하여, 이웃에 저장된 데이터가 결정될 수 있다(도 14의 설명 참조). 단계(910) 이후에, 이웃에 저장된 데이터에 따라 포텐셜 커플링을 보상하는 추가적인 판독 프로세스가 수행된다. 예를 들어, 도 15B의 프로세스가 수행될 수 있다.
도 22는 두 개의 이웃들로부터의 커플링을 고려한 추가적인 판독 동작을 수행하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다. 예를 들어, 도 22의 프로세스는 도 20의 단계(818)의 일부로서 수행될 수 있다. 단계(930)에서, 양쪽 이웃 워드 라인들이 판독 비교 포인트(Vra)를 사용하여 판독된다. 만약 양쪽 이웃들이 소거된 것으로 결정된다면(단계(932)), 단계(934)에서, 데이터는 커플링 보상 없이 보고된다. 만약 하나의 이웃이 소거된 것으로 결정된다면(예를 들어, 하나의 이웃 워드 라인 혹은 페이지의 메모리 셀 모두가 턴온되고, 반면에 다른 이웃의 메모리 셀 모두는 Vra에 응답하여 턴온되지 않는다면), 단계(950)에서 하나의 이웃은 Vrb 및 Vrc의 판독 비교 포인트들을 사용하여 수행되는 판독 프로세스의 대상이 된다(도 21의 단계(910)와 유사함). 단계(952)에서, 단계(952)에서의 포텐셜 커플링을 보상하는 추가적인 판독 프로세스가 수행된다(도 21의 단계(912)와 유사함). 만약 단계(932)에서 어떠한 이웃도 소거되지 않았다고 결정된다면, 단계(936)에서 양쪽 이웃들은 Vrb 및 Vrc의 판독 비교 포인트를 사용하여 수행되는 판독 프로세스를 갖는다. 단계(938)에서, 양쪽 워드 라인들으로부터의 포텐셜 커플링을 보상하는 추가적인 판독 프로세스가 수행되고, 그리고 그 데이터가 보고된다. 일 실시예에서, 단계(938)는 도 15A의 프로세스를 수행하는 것을 포함한다.
본 명세서에서 설명되는 커플링에 대한 포텐셜을 검출하고 그 커플링을 보상하는 기술은 다른 타입의 에러에 대한 포텐셜을 검출하고 (선택에 따라서는) 이러한 에러들을 보상하는 것에 적용가능하다.
앞서의 상세한 설명은 예시 및 설명의 목적을 제공된다. 본 발병을 이러한 개시된 형태에 정확히 한정시키려는 것이 아니며 또한 이러한 개시된 형태가 본 발명 전부를 의미하는 것도 아니다. 상기 설명으로부터 많은 수정 및 변형이 가능하다. 설명된 실시예들은 본 발명 및 그 실제 애플리케이션의 원리를 가장 잘 설명하기 위해 선택된 것이며, 그럼으로써 당업자로 하여금 다양한 실시 형태로 본 발명을 가장 잘 이용하도록 하기 위함이며 그리고 사용하기 원하는 특정 부분에 적합하게 이용하도록 하기 위함이다. 본 발명의 범위는 첨부되는 특허청구범위에 의해 정의된다.

Claims (37)

  1. 비휘발성 저장소를 동작시키는 방법으로서,
    저장된 타이밍 정보에 액세스하는 단계와, 여기서 상기 저장된 타이밍 정보는 데이터 세트에 대해 커스터마이징되어 있고, 상기 데이터 세트는 하나 또는 그 이상의 비휘발성 저장 소자들에 저장되며; 그리고
    상기 하나 또는 그 이상의 비휘발성 저장 소자들로부터 상기 데이터 세트를 판독하는 단계를 포함하여 구성되고, 상기 판독하는 단계는 상기 타이밍 정보에 근거하여 상기 데이터 세트에서의 하나 또는 그 이상의 포텐셜 에러들을 선택적으로 보상하는 것을 포함하며, 상기 하나 또는 그 이상의 포텐셜 에러들은 상기 하나 또는 그 이상의 비휘발성 저장 소자들과 하나 또는 그 이상의 이웃하는 비휘발성 저장 소자들 간의 포텐셜 커플링으로 인한 것인 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  2. 삭제
  3. 제1항에 있어서,
    상기 액세스하는 단계 및 상기 판독하는 단계는,
    상기 하나 또는 그 이상의 비휘발성 저장 소자들과 관련된 워드 라인에 대한 제 1 시간 데이터를 판독하는 것과, 상기 저장된 타이밍 정보는 상기 제 1 시간 데이터를 포함하고;
    이웃하는 비휘발성 저장 소자들과 관련된 워드 라인에 대한 제 2 시간 데이터를 판독하는 것과;
    상기 제 1 시간 데이터를 상기 제 2 시간 데이터에 비교하는 것과; 그리고
    상기 비교에 근거하여 에러들에 대한 포텐셜이 있는지 여부를 결정하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  4. 제1항에 있어서,
    상기 하나 또는 그 이상의 포텐셜 에러들을 선택적으로 보상하는 것은,
    상기 하나 또는 그 이상의 비휘발성 저장 소자들에 대한 이웃하는 비휘발성 저장 소자들을 감지하는 것과;
    상기 이웃하는 비휘발성 저장 소자들로부터 감지된 정보에 근거하여 상기 하나 또는 그 이상의 비휘발성 저장 소자들에 대해 기초를 둔 판독 전압 오프셋들을 결정하는 것과; 그리고
    상기 오프셋들을 사용하여 상기 하나 또는 그 이상의 비휘발성 저장 소자들을 판독하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  5. 제1항에 있어서,
    상기 액세스하는 단계 및 상기 판독하는 단계는,
    제 1 워드 라인에 연결된 메모리 소자들로부터 데이터를 판독하는 것과, 여기서 상기 메모리 소자들은 상기 하나 또는 그 이상의 비휘발성 저장 소자들 및 상기 타이밍 정보를 저장하는 추가적인 비휘발성 저장 소자들을 포함하고, 상기 타이밍 정보는 제 1 값 및 제 2 값을 포함하고, 상기 제 1 값은 제 1 이웃 세트에 대해 상기 하나 또는 그 이상의 비휘발성 저장 소자들을 프로그래밍하는 타이밍을 나타내고, 상기 제 2 값은 제 2 이웃 세트에 대해 상기 하나 또는 그 이상의 비휘발성 저장 소자들을 프로그래밍하는 타이밍을 나타내며;
    만약 상기 하나 또는 그 이상의 비휘발성 저장 소자들이 상기 제 1 이웃 세트 이후에 프로그래밍되었다고 상기 제 1 값이 나타낸다면 아울러 상기 하나 또는 그 이상의 비휘발성 저장 소자들이 상기 제 2 이웃 세트 이후에 프로그래밍되었다고 상기 제 2 값이 나타낸다면, 하나 또는 그 이상의 포텐셜 에러들을 보상하지 않고 상기 데이터를 보고하는 것과; 그리고
    만약 상기 하나 또는 그 이상의 비휘발성 저장 소자들이 상기 제 1 이웃 세트 이전에 잠재적으로 프로그래밍되었다고 상기 제 1 값이 나타낸다면, 또는 상기 하나 또는 그 이상의 비휘발성 저장 소자들이 상기 제 2 이웃 세트 이전에 잠재적으로 프로그래밍되었다고 상기 제 2 값이 나타낸다면, 하나 또는 그 이상의 포텐셜 에러들을 보상한 이후에 상기 데이터를 보고하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  6. 제1항에 있어서,
    상기 하나 또는 그 이상의 비휘발성 저장 소자들에 상기 데이터를 프로그래밍하는 단계를 더 포함하고, 상기 데이터를 프로그래밍하는 단계는 상기 타이밍 정보를 프로그래밍하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  7. 제6항에 있어서,
    상기 프로그래밍하는 단계는,
    이웃하는 비휘발성 저장 소자들의 세트와 관련된 이웃 타이밍 정보를 판독하는 것과; 그리고
    상기 이웃 타이밍 정보에 근거하여 상기 데이터 세트에 대해 커스터마이징된 상기 타이밍 정보를 결정하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  8. 제7항에 있어서,
    상기 하나 또는 그 이상의 비휘발성 저장 소자들은 다중-상태 비휘발성 저장 소자들이고;
    상기 이웃 타이밍 정보를 판독하는 것은 하나의 기준 전압 레벨에서 판독 동작을 수행하는 것을 포함하고; 그리고
    상기 타이밍 정보를 결정하는 것은 하나의 기준 전압 레벨에서의 상기 판독 동작에 전체적으로 근거를 두고 있는 것을 특징으로 하는 비휘발성 저장소를 동작 시키는 방법.
  9. 제6항에 있어서,
    상기 프로그래밍하는 단계는,
    이웃하는 비휘발성 저장 소자들의 제 1 세트와 관련된 제 1 이웃 타이밍 정보를 판독하는 것과;
    상기 제 1 이웃 타이밍 정보에 근거하여 제 1 타이밍 값을 결정하는 것과;
    이웃하는 비휘발성 저장 소자들의 제 2 세트와 관련된 제 2 이웃 타이밍 정보를 판독하는 것과; 그리고
    상기 제 2 이웃 타이밍 정보에 근거하여 제 2 타이밍 값을 결정하는 것을 포함하며, 상기 이웃하는 비휘발성 저장 소자들의 세트와 관련된 상기 타이밍 정보는 상기 제 1 타이밍 값과 상기 제 2 타이밍 값을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  10. 제9항에 있어서,
    상기 이웃하는 비휘발성 저장 소자들의 제 1 세트는 제 1 워드 라인에 연결되고;
    상기 하나 또는 그 이상의 비휘발성 저장 소자들은 상기 제 1 워드 라인에 인접하고 있는 제 2 워드 라인에 연결되고;
    상기 이웃하는 비휘발성 저장 소자들의 제 2 세트는 상기 제 2 워드 라인에 인접하고 있는 제 3 워드 라인에 연결되고; 그리고
    상기 하나 또는 그 이상의 포텐셜 에러들은 상기 이웃하는 비휘발성 저장 소자들의 제 1 세트와 상기 하나 또는 그 이상의 비휘발성 저장 소자들의 커플링 및 상기 이웃하는 비휘발성 저장 소자들의 제 2 세트와 상기 하나 또는 그 이상의 비휘발성 저장 소자들의 커플링에 근거를 두고 있는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  11. 제1항에 있어서,
    상기 선택적으로 보상하는 것은,
    만약 하나 또는 그 이상의 이웃하는 비휘발성 저장 소자들을 프로그래밍하기 이전에 상기 하나 또는 그 이상의 비휘발성 저장 소자들이 프로그래밍되었다고 상기 타이밍 정보가 나타낸다면, 상기 하나 또는 그 이상의 비휘발성 소자들과 상기 하나 또는 그 이상의 이웃하는 비휘발성 저장 소자들 간의 커플링에 대한 제 1 보상 프로세스를 수행하는 것과, 그리고
    만약 상기 하나 또는 그 이상의 이웃하는 비휘발성 저장 소자들을 프로그래밍하기 이전에 상기 하나 또는 그 이상의 비휘발성 저장 소자들이 프로그래밍되지 않았다고 상기 타이밍 정보가 나타낸다면, 제 1 보상 프로세스를 수행함이 없이 판독하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  12. 제1항에 있어서,
    상기 선택적으로 보상하는 것은 상기 타이밍 정보에 근거하여 전압 오프셋을 사용할지 또는 사용하지 않을지 여부를 선택하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  13. 제1항에 있어서,
    상기 타이밍 정보는 절대적 시간을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  14. 제1항에 있어서,
    상기 타이밍 정보는 싸이클 카운트 시간을 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  15. 제1항에 있어서,
    상기 타이밍 정보는 상기 하나 또는 그 이상의 비휘발성 저장 소자들과 이웃하는 비휘발성 저장 소자들 간의 프로그래밍의 순서의 표시를 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  16. 제1항에 있어서,
    상기 타이밍 정보는 상기 데이터 세트가 소거된 데이터인지, 또는 이웃하는 워드 라인들의 프로그래밍 이후에 프로그래밍된 데이터인지, 또는 이웃하는 워드 라인들의 프로그래밍 이전에 잠재적으로 프로그래밍된 데이터인지 여부를 나타내는 2 비트 코드를 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  17. 제1항에 있어서,
    상기 데이터 세트는 데이터 페이지를 포함하고;
    상기 하나 또는 그 이상의 비휘발성 저장 소자들은 제 1 워드 라인에 연결되고; 그리고
    상기 하나 또는 그 이상의 포텐셜 에러들은, 상기 제 1 워드 라인에 이웃하고 있는 워드 라인들에 연결된 하나 또는 그 이상의 비휘발성 저장 소자들과 상기 하나 또는 그 이상의 비휘발성 저장 소자들 중 하나 또는 그 이상의 비휘발성 저장 소자들 간의 커플링으로 인한 것인 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  18. 제1항에 있어서,
    상기 저장된 타이밍 정보는 상기 데이터 세트를 판독하는 동안 액세스되는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  19. 제1항에 있어서,
    상기 타이밍 정보는 상기 데이터 세트를 판독하기 이전에 액세스되는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  20. 제1항에 있어서,
    상기 데이터 세트의 판독 요청을 수신하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  21. 제1항에 있어서,
    상기 하나 또는 그 이상의 비휘발성 저장 소자들은 NAND 플래시 메모리 소자들인 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  22. 제1항에 있어서,
    상기 하나 또는 그 이상의 비휘발성 저장 소자들은 다중-상태 플래시 메모리 소자들인 것을 특징으로 하는 비휘발성 저장소를 동작시키는 방법.
  23. 비휘발성 저장 시스템으로서,
    복수의 비휘발성 저장 소자들과; 그리고
    상기 비휘발성 저장 소자들과 통신하는 하나 또는 그 이상의 관리 회로들을 포함하여 구성되며, 상기 하나 또는 그 이상의 관리 회로들은 저장된 타이밍 정보에 액세스하고, 상기 저장된 타이밍 정보는 상기 복수의 비휘발성 저장 소자들에 저장된 데이터 세트에 대해 커스터마이징되어 있으며, 그리고 상기 하나 또는 그 이상의 관리 회로들은 상기 복수의 비휘발성 저장 소자들로부터 상기 데이터 세트를 판독하고, 상기 판독은 상기 타이밍 정보에 근거하여 상기 데이터 세트에서의 하나 또는 그 이상의 포텐셜 에러들을 선택적으로 보상하는 것을 포함하며, 상기 하나 또는 그 이상의 포텐셜 에러들은 상기 하나 또는 그 이상의 비휘발성 저장 소자들과 하나 또는 그 이상의 이웃하는 비휘발성 저장 소자들 간의 포텐셜 커플링으로 인한 것인 것을 특징으로 하는 비휘발성 저장 시스템.
  24. 삭제
  25. 제23항에 있어서,
    상기 데이터 세트는 상기 복수의 비휘발성 저장 소자들의 서브세트에 저장되고, 상기 서브세트는 상기 하나 또는 그 이상의 이웃하는 비휘발성 저장 소자들을 포함하며;
    상기 하나 또는 그 이상의 관리 회로들은 상기 서브세트와 관련되어 있는 워드 라인에 대한 제 1 시간 데이터를 판독하고 아울러 상기 이웃하는 비휘발성 저장 소자들과 관련되어 있는 워드 라인에 대한 제 2 시간 데이터를 판독하고; 그리고
    상기 하나 또는 그 이상의 관리 회로들은 상기 제 1 시간 데이터를 상기 제 2 시간 데이터에 비교하고 그리고 상기 비교에 근거하여 에러들에 대한 포텐셜이 있는지 여부를 결정하는 것을 특징으로 하는 비휘발성 저장 시스템.
  26. 제23항에 있어서,
    상기 선택적으로 보상하는 것은 전압 오프셋을 사용할지 또는 사용하지 않을지를 선택하는 것을 포함하고 아울러 상기 이웃하는 비휘발성 저장 소자들에 근거하여 판독 프로세스 동안 상기 전압 오프셋을 얼마나 많이 사용할지를 선택하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  27. 제23항에 있어서,
    상기 데이터 세트는 상기 복수의 비휘발성 저장 소자들의 서브세트에 저장되고, 상기 서브세트는 이웃들의 제 1 세트 및 이웃들의 제 2 세트를 가지며;
    상기 하나 또는 그 이상의 관리 회로들은 제 1 워드 라인에 연결된 메모리 소자들로부터 데이터를 판독하고, 상기 메모리 소자들은 상기 서브세트 및 상기 타이밍 정보를 저장하는 추가적인 비휘발성 저장 소자들을 포함하고, 상기 타이밍 정보는 제 1 값과 제 2 값을 포함하며, 상기 제 1 값은 이웃들의 제 1 세트에 대해 상기 서브세트를 프로그래밍하는 타이밍을 나타내고, 상기 제 2 값은 이웃들의 제 2 세트에 대해 서브세트를 프로그래밍하는 타이밍을 나타내며;
    상기 하나 또는 그 이상의 관리 회로들은, 만약 상기 제 1 값이 상기 이웃들의 제 1 세트 이후에 서브세트가 프로그래밍되었다고 나타내고 아울러 상기 제 2 값이 상기 이웃들의 제 2 세트 이후에 상기 서브세트가 프로그래밍되었다고 나타낸다면, 하나 또는 그 이상의 포텐셜 에러들을 보상함이 없이 상기 데이터를 보고하며; 그리고
    상기 하나 또는 그 이상의 관리 회로들은, 만약 상기 제 1 값이 상기 이웃들의 제 1 세트 이전에 상기 서브세트가 잠재적으로 프로그래밍되었다고 나타내거나 또는 상기 제 2 값이 상기 이웃들의 제 2 세트 이전에 상기 서브세트가 잠재적으로 프로그래밍되었다고 나타낸다면, 하나 또는 그 이상의 포텐셜 에러들을 보상한 이후에 상기 데이터를 보고하는 것을 특징으로 하는 비휘발성 저장 시스템.
  28. 제23항에 있어서,
    상기 하나 또는 그 이상의 관리 회로들은 상기 복수의 비휘발성 저장 소자들의 서브세트에 상기 데이터 세트를 프로그래밍하고, 상기 서브세트에 상기 데이터 세트를 프로그래밍하는 것은 상기 타이밍 정보를 프로그래밍하는 것을 포함하고; 그리고
    상기 데이터 세트를 프로그래밍하는 것은 이웃 타이밍 정보를 판독하는 것과 그리고 상기 이웃 타이밍 정보에 근거하여 상기 데이터 세트에 대해 커스터마이징된 상기 타이밍 정보를 결정하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  29. 제28항에 있어서,
    상기 하나 또는 그 이상의 비휘발성 저장 소자들은 다중-상태 비휘발성 저장 소자들이고;
    상기 이웃 타이밍 정보를 판독하는 것은 하나의 기준 전압 레벨에서 판독 동작을 수행하는 것을 포함하고; 그리고
    상기 타이밍 정보를 결정하는 것은 하나의 기준 전압 레벨에서의 상기 판독 동작에 근거하는 것을 특징으로 하는 비휘발성 저장 시스템.
  30. 제23항에 있어서,
    상기 데이터 세트는 상기 복수의 비휘발성 저장 소자들의 서브세트에 저장되고, 상기 서브세트는 상기 하나 또는 그 이상의 이웃하는 비휘발성 저장 소자들을 포함하며; 그리고
    상기 선택적으로 보상하는 것은, 만약 상기 이웃하는 비휘발성 저장 소자들을 프로그래밍하기 이전에 상기 서브세트가 프로그래밍되었다고 상기 타이밍 정보가 나타낸다면, 상기 서브세트와 상기 이웃하는 비휘발성 저장 소자들 간의 커플링에 대한 제 1 보상 프로세스를 수행하는 것을 포함하고, 그리고 만약 상기 이웃하는 비휘발성 저장 소자들을 프로그래밍하기 이전에 상기 서브세트가 프로그래밍되지 않았다고 상기 타이밍 정보가 나타낸다면, 제 1 보상 프로세스를 수행함이 없이 판독하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  31. 제23항에 있어서,
    상기 타이밍 정보는 절대적 시간, 또는 상대적 시간, 또는 프로그래밍 순서의 표시 중 어느 하나를 포함할 수 있는 것을 특징으로 하는 비휘발성 저장 시스템.
  32. 제23항에 있어서,
    상기 데이터 세트는 데이터 페이지를 포함하고; 그리고
    상기 데이터 세트는 제 1 워드 라인에 연결된 상기 복수의 비휘발성 저장 소자들의 서브세트에 저장되는 것을 특징으로 하는 비휘발성 저장 시스템.
  33. 제23항에 있어서,
    상기 저장된 타이밍 정보는 상기 데이터 세트를 판독하는 동안 동시에 액세스되는 것을 특징으로 하는 비휘발성 저장 시스템.
  34. 제23항에 있어서,
    상기 하나 또는 그 이상의 관리 회로들은 상태 머신과 디코더와 감지 회로들과 그리고 제어기 중 하나 또는 그 이상을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  35. 제23항에 있어서,
    상기 복수의 비휘발성 저장 소자들은 NAND 플래시 메모리 디바이스들인 것을 특징으로 하는 비휘발성 저장 시스템.
  36. 제23항에 있어서,
    상기 복수의 비휘발성 저장 소자들은 다중-상태 플래시 메모리 디바이스들인 것을 특징으로 하는 비휘발성 저장 시스템.
  37. 제23항에 있어서,
    상기 복수의 비휘발성 저장 소자들은 플로팅 게이트들을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
KR1020087013971A 2005-11-10 2006-11-08 타이밍 정보를 이용한 리버스 커플링 효과 KR101016432B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/271,241 2005-11-10
US11/272,335 2005-11-10
US11/271,241 US7289344B2 (en) 2005-11-10 2005-11-10 Reverse coupling effect with timing information for non-volatile memory
US11/272,335 US7289348B2 (en) 2005-11-10 2005-11-10 Reverse coupling effect with timing information

Publications (2)

Publication Number Publication Date
KR20080080529A KR20080080529A (ko) 2008-09-04
KR101016432B1 true KR101016432B1 (ko) 2011-02-21

Family

ID=37831516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087013971A KR101016432B1 (ko) 2005-11-10 2006-11-08 타이밍 정보를 이용한 리버스 커플링 효과

Country Status (5)

Country Link
EP (1) EP1946325A1 (ko)
JP (1) JP4938020B2 (ko)
KR (1) KR101016432B1 (ko)
TW (1) TWI315068B (ko)
WO (1) WO2007058846A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7936599B2 (en) * 2007-06-15 2011-05-03 Micron Technology, Inc. Coarse and fine programming in a solid state memory
KR101411976B1 (ko) * 2007-07-09 2014-06-27 삼성전자주식회사 플래시 메모리 시스템 및 그것의 에러 정정 방법
US8499229B2 (en) 2007-11-21 2013-07-30 Micro Technology, Inc. Method and apparatus for reading data from flash memory
US7633798B2 (en) * 2007-11-21 2009-12-15 Micron Technology, Inc. M+N bit programming and M+L bit read for M bit memory cells
KR101368694B1 (ko) * 2008-01-22 2014-03-03 삼성전자주식회사 메모리 프로그래밍 장치 및 방법
JP5562329B2 (ja) * 2008-07-01 2014-07-30 エルエスアイ コーポレーション フラッシュ・メモリ・コントローラとフラッシュ・メモリ・アレイの間でインタフェースをとるための方法および装置
US7983078B2 (en) * 2008-09-24 2011-07-19 Sandisk Technologies Inc. Data retention of last word line of non-volatile memory arrays
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
KR101212387B1 (ko) 2011-01-03 2012-12-13 에스케이하이닉스 주식회사 반도체 메모리 소자의 독출 방법
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050162913A1 (en) 2004-01-26 2005-07-28 Jian Chen Method of reading NAND memory to compensate for coupling between storage elements

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
JP3913704B2 (ja) * 2003-04-22 2007-05-09 株式会社東芝 不揮発性半導体記憶装置及びこれを用いた電子装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050162913A1 (en) 2004-01-26 2005-07-28 Jian Chen Method of reading NAND memory to compensate for coupling between storage elements

Also Published As

Publication number Publication date
EP1946325A1 (en) 2008-07-23
JP4938020B2 (ja) 2012-05-23
KR20080080529A (ko) 2008-09-04
JP2009516318A (ja) 2009-04-16
TWI315068B (en) 2009-09-21
TW200737207A (en) 2007-10-01
WO2007058846A1 (en) 2007-05-24

Similar Documents

Publication Publication Date Title
US7289344B2 (en) Reverse coupling effect with timing information for non-volatile memory
EP1886319B1 (en) Starting program voltage shift with cycling of non-volatile memory
US7170788B1 (en) Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb
US7218552B1 (en) Last-first mode and method for programming of non-volatile memory with reduced program disturb
US7301817B2 (en) Method for programming of multi-state non-volatile memory using smart verify
EP1964127B1 (en) Method for programming non-volatile memory with reduced program disturb using modified pass voltages
US7369437B2 (en) System for reading non-volatile storage with efficient setup
KR101016432B1 (ko) 타이밍 정보를 이용한 리버스 커플링 효과
KR101075253B1 (ko) 임계 전압의 치밀한 분포가 가능한 비휘발성 메모리의 비 실시간 재 프로그래밍 방법
EP1946323B1 (en) Method for programming of multi-state non-volatile memory using smart verify
WO2008083131A2 (en) Method for programming with initial programming voltage based on trial
TWI397075B (zh) 交替式讀取模式
US7733701B2 (en) Reading non-volatile storage with efficient setup
US7583531B2 (en) Reverse coupling effect with timing information
EP1943652B1 (en) Last-first mode and method for programming of non-volatile memory of nand type with reduced program disturb
EP1946324B1 (en) Method for controlled programming of non-volatile memory exhibiting bit line coupling

Legal Events

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

Payment date: 20140117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 10