KR20100075840A - 비휘발성 메모리 및 프로그래밍 동안 검증하기 위해 인접한 워드 라인을 바이어싱하는 방법 - Google Patents

비휘발성 메모리 및 프로그래밍 동안 검증하기 위해 인접한 워드 라인을 바이어싱하는 방법 Download PDF

Info

Publication number
KR20100075840A
KR20100075840A KR1020107005875A KR20107005875A KR20100075840A KR 20100075840 A KR20100075840 A KR 20100075840A KR 1020107005875 A KR1020107005875 A KR 1020107005875A KR 20107005875 A KR20107005875 A KR 20107005875A KR 20100075840 A KR20100075840 A KR 20100075840A
Authority
KR
South Korea
Prior art keywords
programming
memory cell
word line
voltage
memory
Prior art date
Application number
KR1020107005875A
Other languages
English (en)
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 KR20100075840A publication Critical patent/KR20100075840A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/08Address circuits; Decoders; Word-line control 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/5642Sensing 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/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

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

Abstract

비휘발성 메모리를 위한 다양한 프로그래밍 기술은 타깃 임계 레벨에 대해 메모리 셀을 프로그래밍하는 것을 수반한다. 프로세스는 소정의 오프셋에 의해 타깃 임계 레벨에 못 미치게 제 1 검증 레벨에 대해 초기에 프로그래밍하는 것을 포함한다. 나중에, 프로그래밍은 타깃 검증 레벨에 대해 완료된다. 제 1 검증 레벨로 검증에 있어, 타깃 임계 레벨이 선택된 워드 라인에 사용되고 바이어스 전압이 이웃 비선택된 워드 라인에 사용되는 경우 가상의 제 1 검증 레벨이 효과적으로 사용된다. 이에 따라, 제 1 프로그래밍 패스 또는 프로그래밍 단계에서 검증 레벨은 바람직하게는 저 레벨들에서 검증을 피하기 위해 표준 검증 레벨을 실제로 오프셋하는 대신에 하나 이상의 인접한 워드 라인을 바이어스하여 가상으로 오프셋된다.

Description

비휘발성 메모리 및 프로그래밍 동안 검증하기 위해 인접한 워드 라인을 바이어싱하는 방법{NON-VOLATILE MEMORY AND METHOD FOR BIASING ADJACENT WORD LINE FOR VERIFY DURING PROGRAMMING}
본 발명은, 비휘발성 메모리를 위한 기술에 관한 것이다.
반도체 메모리는 여러 전자 장치에 사용하기 위해 보다 더 대중화되었다. 예를 들면, 비휘발성 반도체 메모리는 휴대 전화, 디지털 카메라, 개인 휴대 단말기(PDAs), 이동 계산 장치, 비이동 계산 장치 및 기타 장치에 사용된다. 전기적으로 소거 가능한 프로그래밍 가능한 판독 전용 메모리(EEPROM)와 플래시 메모리는 가장 보급된 비휘발성 반도체 메모리 중에 있다.
EEPROM과 플래시 메모리 모두는 반도체 기판에 채널 영역 위에 위치하고 이로부터 절연된 플로팅 게이트를 이용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트는 플로팅 게이트 위에 설치되고 이로부터 절연된다. 트랜지스터의 임계 전압은 플로팅 게이트 상에 유지된 전하량에 의해 제어된다. 즉, 소스와 드레인 사이에 도통이 되도록 트랜지스터가 턴 온 되기 전에 제어 게이트에 인가되어야 하는 최소량의 전압은 플로팅 게이트 상에 전하 레벨에 의해 제어된다.
NAND 플래시 메모리 장치와 같은 EEPROM 또는 플래시 메모리 장치를 프로그래밍할 때, 전형적으로 프로그램 전압이 제어 게이트에 인가되고 비트 라인은 접지된다. 채널로부터의 전자들이 플로팅 게이트에 주입된다. 전자가 플로팅 게이트의 축적될 때, 플로팅 게이트는 음으로 충전되고 메모리 셀의 임계 전압이 상승되어 메모리 셀은 프로그램된 상태에 있게 된다. 프로그래밍에 관한 더 많은 정보는 전체가 본 명세서에 참조로 포함되어 있는 "Source Side Self-Boosting Technique For Non-Volatile Memory"라는 명칭의 미국 특허 6,859,397호와 "Detecting Over Programmed Memory"라는 명칭의 미국 특허 6,917,545호에서 볼 수 있다.
일부 EEPROM 및 플래시 메모리 장치는 2개의 범위의 전하를 저장하기 위해 사용되는 플로팅 게이트를 구비하고, 이에 따라 메모리 셀은 두 상태(소거 상태와 프로그램 상태) 사이에 프로그램/소거될 수 있다. 이러한 플래시 메모리 장치를 2진 플래시 메모리 장치라고도 한다.
다중-상태 플래시 메모리 장치는 금지 범위에 의해 분리된 서로 구별되는 허용된/유효한 프로그램된 복수의 임계 전압을 확인하여 구현된다. 각각의 서로 구별되는 임계 전압은 메모리 장치에 인코딩된 한 세트의 데이터 비트에 대한 소정의 값에 대응한다.
플로팅 게이트 상에 저장된 명목 전하의 시프트는 인접한 플로팅 게이트들에 저장된 전하에 기초한 전계의 커플링 때문에 일어날 수 있다. 이러한 플로팅 게이트 사이의 커플링 현상은 전체가 본 명세서에 참조로 포함되어 있는 미국 특허 5,867,429호에 기술되어 있다. 타깃 플로팅 게이트에 대한 인접한 플로팅 게이트의 한 가지 예는 동일 워드 라인에 연결되고 인접한 비트 라인에 연결되는 플로팅 게이트를 포함한다.
플로팅 게이트 사이의 커플링의 효과는 다중-상태 장치들에서 허용 임계 전압 범위들 및 금지 범위들이 2진 장치들에서 더 좁기 때문에 다중-상태 장치에서 매우 중요하다. 이러므로, 플로팅 게이트 사이의 게이트 커플링으로 인해 메모리 셀은 허용 임계 전압 범위에서 금지 범위로 옮겨질 수 있게 된다.
플로팅 게이트 사이의 커플링은 서로 다른 시간에서 프로그램이 된 다수 세트들의 인접한 메모리 셀 사이에 일어날 수 있다. 예를 들면, 제 1 메모리 셀이 제 1 세트의 데이터에 대응하는 이 메모리 셀의 플로팅 게이트에 한 레벨의 전하를 추가하기 위해 프로그램된다. 이어서, 하나 이상의 인접한 메모리 셀이, 제 2 세트의 데이터에 대응하는 이들 메모리 셀의 플로팅 게이트들에 한 레벨의 전하를 추가하기 위해 프로그램된다. 하나 이상의 인접한 메모리 셀이 프로그램된 후에, 제 1 메모리 셀로부터 판독된 전하 레벨은 제 1 메모리 셀에 결합되는 인접한 메모리 셀들 상에 전하의 영향 때문에 프로그램 것과는 다르게 나타난다. 인접한 메모리 셀로부터의 커플링은 저장된 데이터를 오류로 판독되게 하는데 충분한 량으로 판독되게 명목 전하 레벨을 옮길 수 있다.
플로팅 게이트 사이의 커플링은 동시에 프로그램이 된 다수 세트들의 인접한 메모리 셀들 간에도 일어날 수 있다. 예를 들면, 2개의 인접한 다중-상태 메모리 셀은 제 1 메모리 셀이 하위 임계 전압에 대응하는 상태로 프로그램되고 제 2 메모리 셀이 상위 임계 전압에 대응하는 상태로 프로그램되게 서로 다른 타깃 레벨들로 프로그램 가능하다. 하위 임계 전압에 대응하는 상태로 프로그램되는 메모리 셀은 이 상태에 도달하여 제 2 메모리 셀이 상위 임계 전압에 대응하는 상태에 도달하기 전에 추가 프로그래밍으로부터 록 아웃될 가능성이 있다. 제 2 메모리 셀이 상위 임계 전압에 대응하는 상태에 도달한 후에, 제 1 메모리 셀에 결합하여 제 1 메모리 셀이 프로그램되는 것보다 큰 명목 임계 전압을 갖게 할 것이다.
메모리 셀이 계속하여 크기가 축소됨에 따라, 임계 전압들의 자연적 프로그래밍 및 소거 분포들은 단채널 효과들, 더 큰 산화막 두께/커플링 비 변동들 및 더 큰 채널 도펀트 변동들을 증가시킬 것으로 예상되고, 그럼으로써 인접한 상태간의 가능한 격리를 감소시킨다. 이 효과는 단지 2개의 상태들(2진 메모리들)을 사용하는 메모리들보다 다중-상태 메모리에서 훨씬 더 현저하다. 또한, 워드 라인들 사이의 간격과 비트 라인들 사이의 간격의 감소는 인접한 플로팅 게이트 사이의 커플링을 증가시킬 것이다.
따라서, 인접한 플로팅 게이트 사이에 커플링 효과를 감소시킬 필요가 있다.
이웃 워드 라인 바이어스하여 검증 레벨의 가상 오프셋
발명의 또 다른 면에 따라서, 검증 레벨을 조절하는 것은 이웃 워드 라인을 바이어스하여 가상으로 달성되고 따라서 조절된 검증 레벨로 프로그램-검증될 때, 이웃 메모리 셀에 후속하여 프로그램되는 교란 전하들에도 불구하고 셀로부터 정확한 타깃 상태가 판독될 것이다. 이것은 프로그램되는 셀의 검증 레벨에 실제 오프셋을 사용하는 것을 피하는 이점을 갖고, 이에 따라 가장 낮은 메모리 상태를 검증할 때 혹 검증 레벨을 음 전압 감지를 요구할 만큼 낮게 이동시켜야 하는 문제를 피하는 이점이 있다.
유핀 효과를 최소화하기 위해 검증 레벨의 가상 오프셋을 사용한 다중 패스 프로그래밍
발명의 또 다른 면에 따라서, 이웃 전하 저장소자들에 저장된 전하에 기초하여 전계 커플링을 최소화하기 위해서, 프로그래밍 프로세스는 적어도 2 패스들로 수행된다. 제 1 패스는 표준 검증 레벨로부터 오프셋을 사용하여 타깃 상태에 못 미치게 각 셀을 프로그램한다. 제 2 패스는 표준 검증 레벨로 프로그래밍을 완료한다. 제 1 패스에서 검증 레벨은 바람직하게는 낮은 레벨들로 검증을 피하기 위해서 표준 검증 레벨을 실제로 오프셋하는 대신에 하나 이상의 이웃 워드 라인을 바이어싱하여 가상으로 오프셋된다.
거친 검증을 위한 가상 검증 오프셋을 사용한 거친/미세 프로그래밍
발명의 또 다른 면에 따라서, 메모리 셀이 관련 타깃 임계 레벨에 대해 프로그램되기 위해서, 초기에 거칠지만 고속 프로그래밍 단계 및 이에 이어 미세 단계(fine phase)를 수반한 프로그래밍 동작에서, 각각의 거친 단계(coarse phase) 사이에 검증은 소정의 오프셋에 의해 관련 타깃 임계 레벨 미만의 거친 검증 레벨에 대한 것이며, 거친 검증 레벨은 검증되는 메모리 셀에 액세스하는 선택된 워드 라인에 인가되는 관련 타깃 임계 레벨 및 이웃 워드 라인에 인가되는 소정의 바이어스 전압에 의해 가상으로 달성된다. 일반적으로, 가상 오프셋은 이웃 워드 라인 상에 소정의 바이어스 전압의 역함수이다.
다중-패스 프로그래밍 또는 다중-단계 프로그래밍 모두는 유핀 효과를 감소시킬 수 있도록 한다. 이들은 유핀 효과를 정정하기 위해 인접한 셀의 타깃 상태를 결정하는 단계를 포함하지 않기 때문에 실행하기 더 간단하다는 점에서 유리하다.
도 1은 NAND 스트링의 평면도.
도 2는 NAND 스트링의 등가 회로.
도 3은 NAND 스트링의 단면도.
도 4는 한 어레이의 NAND 플래시 메모리 셀의 부분의 블록도.
도 5는 비휘발성 메모리 시스템의 블록도.
도 6은 비휘발성 메모리 시스템의 블록도.
도 7은 메모리 어레이의 블록도.
도 8은 감지 블록의 일 실시예를 도시한 블록도.
도 9는 감지 모듈의 일 실시예의 개략도.
도 10은 감지 모듈의 일 실시예에 대한 타이밍도.
도 11은 비휘발성 메모리를 프로그래밍하기 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 12는 비휘발성 메모리 셀의 제어 게이트에 인가된 파형 형태의 예.
도 13은 한 가지 예의 한 세트의 임계 전압 분포들을 도시한 도면.
도 14는 한 가지 예의 한 세트의 임계 전압 분포들을 도시한 도면.
도 15는 데이터를 판독할 때 수행되는 프로세스의 일 실시예를 기술하는 흐름도.
도 16은 데이터를 판독할 때 수행되는 프로세스의 일 실시예를 기술하는 흐름도.
도 17은 이웃 비트 라인으로부터 데이터를 감지하기 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 18은 이웃 비트 라인으로부터 데이터를 감지하기 위한 프로세스의 일 실시예를 기술하는 타이밍도.
도 19는 판독 프로세스의 일 실시예를 기술하는 흐름도.
도 20은 프로그램된 상태를 위한 임계 전압들의 분포도.
도 21은 프로그래밍 프로세스의 일 실시예를 기술하는 그래프.
도 22은 프로그래밍 프로세스의 일 실시예를 기술하는 그래프.
도 23은 프로그래밍 프로세스의 일 실시예를 기술하는 그래프.
도 24는 검증을 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 25는 데이터를 판독하기 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 26은 데이터를 판독하기 위한 일 실시예를 기술하는 타이밍도.
도 27은 메모리 시스템을 구성 및 사용하는 프로세스의 일 실시예를 기술하는 흐름도.
도 28은 메모리 시스템을 구성하기 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 29는 메모리 시스템을 구성하기 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 30은 메모리 시스템을 구성하기 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 31은 메모리 시스템을 구성하기 위한 프로세스의 일 실시예를 기술하는 흐름도.
도 32는 데이터-의존성 검증 레벨들을 사용하여 프로그램 동안 유핀 효과를 보상하는 방법을 도시한 흐름도.
도 33은 발명을 도시하는데 적합한 메모리 어레이의 부분을 도시한 도면.
도 34은 이웃 전하들에 교란을 보상하기 위해 프로그래밍 동안 WLn 상에 검증 레벨을 조절하는 것을 도시한 도면.
도 35는 1-패스 데이터-의존성 검증 레벨이 현 워드 라인에만 적용되는 도 32에 도시된 검증 단계의 일 실시예를 도시한 흐름도.
도 36a는 4개의 서로 구별되는 클러스터들로 임계 윈도우에 분포된 4개의 메모리 상태를 지원하는 전형적인 한 집단의 메모리 셀의 예를 도시한 도면.
도 36b는 현재 감지되는 셀의 프로그램된 임계 레벨에 미치는 고 프로그램된 이웃 셀의 영향을 도시한 도면.
도 37a는 감지되는 현 셀에 서로 다른 이웃들로부터의 유핀 효과의 기여를 도시한 도면.
도 37b는 유핀 효과를 감소시키기 위해서 다중 패스 프로그래밍의 제 1 패스에 대해 검증 레벨들의 이동을 도시한 도면.
도 38은 바람직한 실시예에 따라, 정규 검증 레벨에 가상 오프셋을 행하기 위해 이웃 워드 라인의 검증 및 바이어스 하에 워드 라인 상에 정규 검증 레벨의 조합을 도시한 도면.
도 39는 1 패스 데이터-의존성 검증 레벨이 현 워드 라인 및 이웃 워드 라인 모두에 적용되는 도 32에 도시된 검증 단계의 또 다른 바람직한 실시예를 도시한 흐름도.
도 40은 인접한 워드 라인 상에 메모리 셀 사이에 유핀 효과를 최소화하기 위해 최적 순서로 페이지가 프로그램되고 2비트 메모리 셀을 갖는 메모리의 예를 도시한 도면.
도 41은 도 5에 도시된 메모리 장치와 통신하는 호스트를 도시한 도면.
도 42는 다음 워드 라인에 대한 한 페이지의 데이터를 얻기 위한 또 다른 기술을 도시한 도면.
도 43은 소거된 상태의 한 집단의 셀을 가진 메모리 및 이들이 유핀 효과에 의해 어떻게 영향을 받는지 도시한 도면.
도 44는 모든 인접한 이웃들로부터 교란을 정정하기 위해 조절된 검증 레벨로 소프트 프로그래밍 후에 소거된 셀의 분포의 효과를 도시한 도면.
도 45는 한 바람직한 실시예에 따라, 양면 정정을 행하기 위한 인접한 워드 라인들의 바이어싱을 도시한 도면.
도 46은 소정의 임계 레벨에 대해 잘 정의된 임계 레벨들의 분포를 가진 일 그룹의 메모리 셀을 생성하는 흐름도.
도 47은 발명의 일반적인 면에 따라서, 제 1 패스가 검증 레벨에 가상 오프셋을 채용하는 다중-패스 프로그래밍에 의해 유핀 효과를 감소시키는 흐름도.
도 48은 발명의 바람직한 실시예에 따라, 제 1 패스가 검증 레벨로 가상 오프셋을 채용하는 다중-패스 프로그래밍에 의해 유핀 효과를 감소시키는 흐름도.
도 49는 바람직한 실시예에 따라, 프로그래밍의 거친 단계에서 검증 동안에 정규 검증 레벨에 가상 오프셋을 행하기 위해서 이웃 워드 라인의 바이어싱과 검증되는 선택되는 워드 라인 상에 정규 검증 레벨과의 조합을 도시한 도면.
도 50은 거친 또는 미세 프로그래밍 단계하에 메모리 셀에 대한 비트 라인 전압을 도시한 도면.
도 51은 발명의 바람직한 실시예에 따라, 거친 검증 레벨이 가상으로 구현되는 거친/미세 프로그래밍을 도시한 흐름도.
본 발명을 구현하는데 적합한 메모리 시스템의 한 가지 예는 2개의 선택 게이트들 간에 직렬의 복수의 트랜지스터들을 배열한 것을 포함하는 NAND 플래시 메모리 구조를 사용한다. 직렬의 트랜지스터들 및 선택 게이트들을 NAND 스트링이라고 한다. 도 1은 한 NAND 스트링을 도시한 평면도이다. 도 2는 이의 등가회로이다. 도 1 및 도 2에 도시된 NAND 스트링은 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 개재된 직렬의 4개의 트랜지스터들(100, 102, 104, 106)을 포함한다. 선택 게이트(120)는 비트 라인(126)에 NAND 스트링 연결을 단속한다. 선택 게이트(122)는 소스 라인(128)에 NAND 스트링 연결을 단속한다. 선택 게이트(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)에 형성된다. 각각의 트랜지스터는 제어 게이트(lOOCG, 102CG, 104CG, 106CG) 및 플로팅 게이트(100FG, 102FG, 104FG, 106FG)로 구성된 적층 게이트 구조를 포함한다. 제어 게이트들 및 플로팅 게이트들은 전형적으로 폴리실리콘층들을 증착시킴으로써 형성된다. 플로팅 게이트들은 산화막 또는 그외 유전체막의 상면 상에 p-웰의 표면 상에 형성된다. 제어 게이트는 플로팅 게이트 위에 있고, 층간 폴리실리콘 유전층이 제어 게이트와 플로팅 게이트를 격리시킨다. 메모리 셀들(100, 102, 104, 106)의 제어 게이트들은 워드 라인을 형성한다. N+ 도핑된 확산 영역들(130, 132, 134, 136, 138)은 인접한 셀 사이에 공유되고, 이를 통해 셀은 NAND 스트링을 형성하기 위해 직렬로 서로 연결된다. 이들 N+ 도핑된 영역들은 셀 각각의 소스 및 드레인을 형성한다. 예를 들면, N+ 도핑된 영역(130)은 트랜지스터(122)의 드레인 및 트랜지스터(106)을 위한 소스로서 작용하고, N+ 도핑된 영역(132)은 트랜지스터(106)용 드레인 및 트랜지스터(104)용 소스로서 작용하고, N+ 도핑된 영역(134)은 트랜지스터(104)용 드레인 및 트랜지스터(102)용 소스로서 작용하며, N+ 도핑된 영역(136)은 트랜지스터(102)용 드레인 및 트랜지스터(100)용 소스로서 작용하며, N+ 도핑된 영역(138)은 트랜지스터(100)용 드레인 및 트랜지스터(120)용 소스로서 작용한다. N+ 도핑된 영역(126)은 NAND 스트링용 비트 라인에 연결하며, N+ 도핑된 영역(128)은 복수의 NAND 스트링들을 위한 공통 소스 라인에 연결한다.
도 1 내지 도 3은 NAND 스트링에 4개의 메모리 셀을 도시하고 있고, 4개의 트랜지스터의 사용은 예로서만 제공되는 것에 유의한다. 여기에 기술된 기술이 사용된 NAND 스트링은 4개 미만의 메모리 셀들 또는 4개 이상의 메모리 셀을 가질 수 있다. 예를 들면, 일부 NAND 스트링들은 8개의 메모리 셀들, 16개의 메모리 셀들, 32개의 메모리 셀들, 64개의 메모리 셀 등을 포함할 것이다. 여기에서 논의는 NAND 스트링에 어떤 특정 수의 메모리 셀로 제한되지 않는다.
각각의 개별 메모리 셀은 아날로그 또는 디지털 형태로 표현된 데이터를 저장할 수 있다. 한 비트의 디지털 데이터를 저장할 때, 메모리 셀의 가능한 임계 전압들의 범위는 두 영역들로 분할되고 이들에는 논리 데이터 "1" 및 "0"이 할당된다. NAND형 플래시 메모리의 한 가지 예에서, 전압 임계값은 메모리 셀이 소거된 후에 음이며, 논리 "1"로서 정의된다. 임계 전압은 프로그램 동작 후에 양이며, 논리 "0"으로서 정의된다. 임계 전압이 음이고 제어 게이트에 0 볼트를 인가하여 판독이 시도될 때, 메모리 셀은 논리 1이 저장되고 있음을 나타내기 위해 턴 온 될 것이다. 임계 전압이 양이고 제어 게이트에 0볼트를 인가하여 판독 동작이 시도될 때, 메모리 셀은 턴 온 하지 않을 것이며, 이것은 논리 제로가 저장됨을 나타낸다. 1비트의 디지털 데이터를 저장하는 메모리 셀을 2진 메모리 셀이라고 한다.
메모리 셀은 복수 비트들의 디지털 데이터를 저장할 수도 있다. 이러한 메모리 셀을 다중-상태 메모리 셀이라고 한다. 다중-상태 메모리 셀을 위한 임계 전압 윈도우는 다수의 상태들로 분할된다. 예를 들면, 4개의 상태들이 사용된다면, "11", "10", "01", "00"의 데이터 값들에 할당된 4개의 임계 전압 범위들이 있게 될 것이다. NAND형 메모리의 일 예에서, 소거 동작 후에 임계 전압은 음이며 "11"로서 정의된다. 양 임계 전압들은 "10", "01" 및 "00"의 상태들에 사용된다.
NAND형 플래시 메모리들 및 이들의 동작의 관련 예들은 전체를 참조로 여기 포함시키는 다음 미국특허들/특허출원들에 제공된다; 미국특허 5,570,315; 미국특허 5,774,397; 미국특허 6,046,935; 미국특허 5,386,422; 미국특허 6,456,528; 및 미국특허출원번호 09/893,277(공개번호 US2003/0002348). NAND 플래시 메모리 외에 다른 유형들의 비휘발성 메모리가 본 발명에 사용될 수 있다.
플래시 EEPROM 시스템들에서 유용한 또 다른 유형의 메모리 셀은 비휘발성으로 전하를 저장하기 위해 도전성 플로팅 게이트 대신에 비도전성 유전물질을 이용한다. 이러한 셀은 Chan 등의 "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device," IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95에 의한 논문에 기술되어 있다. 산화실리콘, 질화실리콘 및 산화실리콘("ONO")로 형성된 3중층 유전체가 메모리 셀 채널 위에 도전성 제어 게이트와 반도전성 기판의 표면 사이에 개재된다. 셀 채널로부터 전자들을 질화물에 주입하여 셀이 프로그램되며, 이 경우 이들은 제한된 영역에 트랩되어 저장된다. 이 저장된 전하는 검출될 수 있게 셀의 채널의 부분의 임계 전압을 변경시킨다. 셀은 질화물에 핫 정공들을 주입하여 소거된다. Nozaki 등의 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application," IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501를 참조할 수 있고, 이것은 도핑된 폴리실리콘이 메모리 셀 채널의 부분 위로 확장하여 개별 선택 트랜지스터를 형성하는 분할-게이트 구성과 유사한 셀을 기술한다. 앞에 2개의 논문들 전부를 참조로 여기 포함시킨다. 참조로 여기 포함시키는 "Nonvolatile Semiconductor Memory Technology," edited by William D. Brown and Joe E. Brewer, IEEE Press, 1998의 1.2 단락에 언급된 프로그래밍 기술들은 이 단락에서 유전 전하-트랩핑 장치들에 적용할 수 있는 것이 기재되어 있다. 이 단락에 기재된 메모리 셀들도 본 발명에 사용될 수 있다. 이에 따라, 여기 기재된 기술은 서로 다른 메모리 셀의 유전 영역 사이의 커플링에도 적용한다.
각 셀에 2개의 비트를 저장하는 또 다른 방법이 Eitan 등, "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545에 의해 기술되어 있다. ONO 유전층은 소스확산 영역과 드레인 확산 영역 사이에 채널을 가로질러 확장하여 있다. 한 데이터 비트용의 전하는 드레인에 인접한 유전층에 모이고 다른 데이터 비트용의 전하는 소스에 인접한 유전층에 모인다. 다중 상태 데이터 저장은 유전층 내 공간적으로 분리된 전하 저장 영역들의 2진 상태를 개별적으로 읽어냄으로써 얻어진다. 이 단락에 기술된 메모리 셀들도 본 발명에 사용될 수 있다.
도 4는 도 1 내지 도 3에 도시된 것들과 같은 한 어레이의 NAND 셀의 예를 도시한 것이다. 각 열을 따라, 비트 라인(206)이 NAND 스트링(150)을 위한 드레인 선택 게이트의 드레인 단자(126)에 결합된다. NAND 스트링들의 각 행을 따라, 소스 라인(204)은 NAND 스트링들의 소스 선택 게이트들의 모든 소스 단자들(128)을 연결할 수도 있다. 메모리 시스템의 부분으로서 NAND 구조 어레이 및 이의 동작의 예는 미국특허 5,570,315; 5,774,397; 및 6,046,935에서 볼 수 있다.
한 어레이의 메모리 셀은 많은 수의 블록들의 메모리 셀로 분할된다. 플래시 EEPROM 시스템들에 공통인 바와 같이, 블록은 소거단위이다. 즉, 각 블록은 함께 소거되는 최소수의 메모리 셀을 내포한다. 각 블록은 전형적으로 다수의 페이지들로 분할된다. 페이지는 프로그래밍 단위이다. 일 실시예에서, 각각의 페이지들은 세그먼트들로 분할될 수 있고 세그먼트들은 기본 프로그래밍 동작으로서 한번에 기록되는 최소수의 셀을 내포할 수 있다. 하나 이상의 페이지들의 데이터는 전형적으로 한 행의 메모리 셀에 저장된다. 페이지는 하나 이상의 섹터들을 저장할 수 있다. 섹터는 사용자 데이터 및 오버헤드 데이터를 포함한다. 오버헤드 데이터는 전형적으로, 섹터의 사용자 데이터로부터 계산된 오류정정 코드(ECC)를 포함한다. 제어기(이하 기술됨)의 한 부분은 데이터가 어레이에 프로그램되고 있을 때 ECC를 계산하며, 이를 데이터가 어레이로부터 판독되고 있을 때 체크한다. 대안적으로, ECC들 및/또는 그외 다른 오버헤드 데이터는 서로 다른 페이지들에 또는 이들이 속한 사용자 데이터와는 상이한 블록들에도 저장된다. 한 섹터의 사용자 데이터는 전형적으로 512 바이트로서 자기 디스크 드라이브들에 섹터의 크기에 대응한다. 오버헤드 데이터는 전형적으로 추가의 16 ~ 20 바이트들이다. 많은 수의 페이지들은 8 페이지들, 예를 들면 최대 32, 64, 128까지 또는 그 이상의 페이지들로부터 임의의 곳에 한 블록을 형성한다.
도 5는 본 발명의 일 실시예에 따라, 병렬로 한 페이지의 메모리 셀을 판독 및 프로그래밍하기 위한 판독/기록 회로들을 갖는 메모리 장치(296)를 도시한 것이다. 메모리 장치(296)는 하나 이상의 메모리 다이(298)를 포함할 수 있다. 메모리 다이(298)는 2차원의 한 어레이의 메모리 셀들(300), 제어 회로(310), 및 판독/기록 회로들(365)을 포함한다. 일부 실시예에서, 한 어레이의 메모리 셀은 3차원일 수 있다. 메모리 셀은 비트 라인들, 워드 라인들, 소스 라인 및 그외 메모리 어레이를 제어하기 위해 사용되는 라인들과 같은, 각종의 제어라인에 의해 제어되고 액세스된다. 예를 들면, 메모리 어레이(300)는 행 디코더(330)을 통해 워드 라인에 의해서 그리고 열 디코더(360)을 통해 비트 라인에 의해 어드레스될 수 있다. 판독/기록 회로들(365)는 복수의 감지 블록들(400)을 포함하며 한 페이지의 메모리 셀이 병렬로 판독 또는 프로그램될 수 있게 한다. 전형적으로, 제어기(350)는 하나 이상의 메모리 다이(298)와 동일한 메모리 장치(296)(예를 들면, 착탈 가능 저장카드)에 포함된다. 명령들 및 데이터는 라인들(320)을 통해 호스트와 제어기(350) 간에 그리고 라인들(318)을 통해 제어기와 하나 이상의 메모리 다이(298)간에 전송된다.
제어 회로(310)는 메모리 어레이(300)에 메모리 동작들을 수행하기 위해 판독/기록 회로들(365)과 협동한다. 제어 회로(310)은 상태 머신(312), 온칩 어드레스 디코더(314) 및 파워 제어 모듈(316)을 포함한다. 상태 머신(312)은 메모리 동작들의 칩 레벨 제어를 제공한다. 온칩 어드레스 디코더(314)는 호스트 또는 메모리 제어기에 의해 사용된 것과 디코더들(330, 36)에 의해 사용되는 하드웨어간의 어드레스 인터페이스를 제공한다. 파워 제어모듈(316)은 메모리 동작들 동안 워드 라인과 비트 라인에 공급되는 파워 및 전압들을 제어한다.
일부 구현들에서, 도 5의 일부 성분들이 결합될 수 있다. 다른 설계들에서, 메모리 셀 어레이(300) 외에 도 5의 하나 이상의 성분들(단독으로 또는 조합하여)은 관리회로로 간주될 수 있다. 예를 들면, 관리회로는 제어 회로(310), 상태 머신(312), 디코더들(314/360), 파워 제어(316), 감지 블록들(400), 판독/기록 회로들(365), 제어기(350) 등 중 어느 하나 또는 이들의 조합을 포함할 수 있다.
도 6은 도 5에 도시된 메모리 장치(296)의 또 다른 구성을 도시한 것이다. 각종 주변회로들에 의한 메모리 어레이(300)에의 액세스는 각측에 액세스 라인 및 회로의 밀도들이 절반으로 감소되게 어레이의 양 대향측들 상에 대칭형으로 구현된다. 이에 따라, 행 디코더는 행 디코더들(330A, 330B)로 분할되고 열 디코더는 열 디코더들(360A, 360B)로 분할된다. 마찬가지로, 판독/기록 회로들은 어레이(300)의 하부로부터 비트 라인에 연결하는 판독/기록 회로들(365A) 및 어레이(300)의 상부로부터 비트 라인에 연결하는 및 판독/기록 회로들(365B)로 분할된다. 이에 따라, 판독/기록 모듈들의 밀도가 근본적으로 절반으로 감소된다. 도 6의 장치는 도 5의 장치에 대해 위에 기술된 바와 같이, 제어기를 포함할 수 있다.
도 7을 참조하여 메모리 셀 어레이(300)의 구조를 기술한다. 한 가지 예로서, 1,204 블록들로 분할되는 NAND 플래시 EEPROM이 기술된다. 각 블록에 저장된 데이터는 동시에 소거될 수 있다. 일 실시예에서, 블록은 동시에 소거되는 최소 단위의 메모리 셀이다. 각 블록에, 이 예에서는 비트 라인들(BL0, BL1,...,BL8511)에 대응하는 8,512 열들이 있다. 일 실시예에서, 한 블록의 모든 비트 라인들은 판독 및 프로그램 동작들 동안에 동시에 선택될 수 있다. 공통 워드 라인을 따라 있고 임의의 비트 라인에 연결된 메모리 셀은 동시에 프로그램 가능하다.
또 다른 실시예에서, 비트 라인들은 우수 비트 라인 및 기수 비트 라인들로 분할된다. 기수/우수 비트 라인 구조에서, 공통 워드 라인을 따라 있고 기수 비트 라인에 연결된 메모리 셀은 한 번에 프로그램되고, 공통 워드 라인을 따라 있고 우수 비트 라인에 연결된 메모리 셀은 또 다른 시간에 프로그램된다.
도 7은 직렬로 연결되어 NAND 스트링을 형성하는 4개의 메모리 셀을 도시한 것이다. 4개의 셀이 각 NAND 스트링에 포함된 것으로 도시되었을지라도, 4개보다 더 또는 적은 셀이 사용될 수 있다(예를 들면 16, 32, 또는 그외 개수). NAND 스트링의 한 단자는 드레인 선택 게이트(선택 게이트 드레인 라인(SGD)에 연결된)를 통해 대응 비트 라인에 연결되고, 또 다른 단자는 소스 선택 게이트(선택 게이트 소스 라인(SGS)에 연결된)을 통해 c-소스에 연결된다.
도 8은 감지 모듈(380)이라고 하는 것으로 코어 부분으로 분할된 각각의 감지 블록(400), 공통 부분(390)의 블록도이다. 일 실시예에서, 각 비트 라인마다 별도의 감지 모듈(380)과 한 세트의 복수의 감지 모듈들(380)에 대해 하나의 공통 부분(390)이 있을 것이다. 한 가지 예에서, 감지 블록은 한 공통 부분(390) 및 8개의 감지 모듈들(380)을 포함할 것이다. 일 그룹에 감지 모듈들 각각은 데이터 버스(372)를 통해 관련 공통 부분과 통신할 것이다. 더 상세한 것에 대해선, 전부를 참조로 여기 포함시키는 12/29/04에 "Non-Volatile Memory & Method with Shared Processing for an Aggregate of Sense Amplifiers" 명칭의 미국특허출원 번호 11/026,536을 참조할 수 있다.
감지 모듈(380)은 연결된 비트 라인에 도통 전류가 소정의 임계 레벨 위에 또는 아래에 있는지를 결정하는 감지 회로(370)를 포함한다. 감지 모듈(380)은 연결된 비트 라인 상에 전압상태를 설정하기 위해 사용되는 비트 라인 래치(382)를 포함한다. 예를 들면, 비트 라인 래치(382)에 래치된 소정의 상태는 연결된 비트 라인을 프로그램 금지 지정 상태(예를 들면, Vdd)로 끌어올리게 할 것이다.
공통 부분(390)은 프로세서(392), 한 세트의 데이터 래치(394) 및 한 세트의 데이터 래치(394)와 데이터 버스(320) 사이에 결합된 I/O 인터페이스(396)를 포함한다. 프로세서(392)는 계산을 수행한다. 예를 들면, 이의 기능 중 한 가지는 감지된 메모리 셀에 저장된 데이터를 결정하여 한 세트의 데이터 래치에 이 결정된 데이터를 저장하는 것이다. 한 세트의 데이터 래치(394)는 판독 동작 동안에 프로세서(392)에 의해 결정된 데이터 비트를 저장하기 위해 사용된다. 이것은 또한, 프로그램 동작동안 데이터 버스(320)로부터 가져온 데이터 비트를 저장하는데 사용된다. 가져온 데이터 비트는 메모리에 프로그램될 기록 데이터를 나타낸다. I/O 인터페이스(396)는 데이터 래치(394)와 데이터 버스(320) 사이에 인터페이스를 제공한다.
판독 또는 감지 동안에, 시스템의 동작은 어드레스된 셀에 서로 다른 제어 게이트 전압의 공급을 제어하는 상태 머신(312)의 제어 하에 있다. 메모리에 의해 지원되는 여러 메모리 상태에 대응하는 여러 기정의된 제어 게이트 전압을 스텝으로 거쳐갈 때, 감지 모듈(380)은 이들 전압 중 하나에서 트립할 수 있고 출력은 버스(372)를 통해 감지 모듈(380)에서 프로세서(392)에 제공될 것이다. 이때, 프로세서(392)는 감지 모듈의 트립핑 이벤트(들) 및 입력 라인(393)을 통해 상태 머신으로부터 인가된 제어 게이트 전압을 관한 정보를 고려하여 결과적인 메모리 상태를 결정한다. 이어서 메모리 상태에 대한 2진 인코딩을 계산하여 결과적인 데이터 비트를 데이터 래치들(394)에 저장한다. 코어 부분의 또 다른 실시예에서, 비트 라인 래치(382)는 감지 모듈(380)의 출력을 래치하기 위한 래치로서 그리고 위에 기술된 바와 같이 비트 라인 래치로서의 이중 듀티에 사용된다.
일부 구현들이 복수의 프로세서(392)를 포함할 것으로 예상된다. 일 실시예에서, 각 프로세서(392)는 출력 라인이 각각 함께 OR 결선되도록 출력 라인(도 9엔 도시되지 않음)을 포함할 것이다. 일부 실시예에서, 출력 라인들은 OR 결선된 라인에 연결되기에 앞서 반전된다. 이 구성은 OR 결선을 수신한 상태 머신은 프로그램된 모든 비트들이 언제 원하는 레벨에 도달하였는지를 결정할 수 있기 때문에 프로그램 프로세스가 완료되었을 때의 프로그램 검증 프로세스 동안 신속히 결정할 수 있게 한다. 예를 들면, 각 비트가 이의 원하는 레벨에 도달하였을 때, 이 비트에 대한 논리 제로가 OR 결선 라인에 보내질 것이다(또는 데이터 1이 반전된다). 모든 비트들이 데이터 0을 출력할 때(또는 반전된 데이터 1), 상태 머신은 프로그래밍 프로세스를 종료할 것을 안다. 각 프로세스는 8개의 감지 모듈들과 통신하기 때문에, 상태 머신은 OR 결선을 8회 판독할 필요가 있거나, 상태 머신이 한번에 OR 결선을 판독하는 것만을 필요로 하게 관련 비트 라인들의 결과들을 축적하기 위해 로직이 프로세서(392)에 추가된다. 유사하게, 논리 레벨들을 정확하게 선택하여, 전역 상태 머신은 제 1 비트가 이의 상태를 변경하고 이에 따라 알고리즘들을 언제 변경할지를 검출할 수 있다.
프로그램 또는 검증 동안에, 프로그램될 데이터는 데이터 버스(320)로부터 한 세트의 데이터 래치들(394)에 저장된다. 상태 머신의 제어 하에, 프로그램 동작은 어드레스된 메모리 셀의 제어 게이트들에 인가되는 일련의 프로그래밍 전압펄스들을 포함한다. 각각의 프로그래밍 펄스에 이어 검증 동작이 이어져 메모리 셀이 요망되는 상태로 프로그램되었는지를 결정한다. 프로세서(392)는 요망되는 메모리 상태에 대해 검증된 메모리 상태를 모니터한다. 두 개가 일치할 때, 프로세서(222)는 비트 라인을 프로그램 금지 저장상태로 가져가기 위해서 비트 라인 래치(214)를 설정한다. 이것은 비트 라인에 결합된 셀이 프로그래밍 펄스들이 이의 제어 게이트에 나타날지라도 계속하여 프로그램되는 것을 금지한다. 다른 실시예에서 프로세서는 초기에는 비트 라인 래치(382)를 로딩하고 감지 회로는 검증 프로세스동안 금지값으로 설정한다.
데이터 래치 스택(394)은 감지 모듈에 대응하는 한 스택의 데이터 래치들을 내포한다. 일 실시예에서, 감지 모듈(380)당 3개의 데이터 래치들이 있다. 일부 구현들에서(요구되지는 않음), 데이터 래치들은 이에 저장된 병렬 데이터가 데이터 버스(320)를 위해 직렬 데이터로 전환되도록, 및 그 반대로도 되도록 시프트 레지스터로서 구현된다. 바람직한 실시예에서, 메모리 셀의 판독/기록 블록에 대응하는 모든 데이터 래치들은 함께 링크되어 블록 시프트 레지스터를 형성하여 한 블록의 데이터가 직렬 전송에 의해 입력 또는 출력될 수 있게 된다. 특히, 한 뱅크의 r 판독/기록모듈들은 이의 한 세트의 데이터 래치들이 전체 판독/기록 블록을 위한 시프트 레지스터의 부분인 것처럼 되도록 래치 각각이 일련으로 데이터 버스로 또는 이로부터 데이터를 시프트하도록 구성된다.
비휘발성 저장장치들의 여러 실시예들의 구조 및/또는 동작들에 관한 추가의 정보는 (1) 2004년 3월 25일에 공개된 미국특허출원번호 2004/0057287, "Non-Volatile Memory And Method With Reduced Source Line Bias Errors"; (2) 2004년 6월 10일에 공개된 미국특허출원공개 번호 2004/0109357, "Non-Volatile Memory And Method with Improved Sensing"; (3) 12/16/04에 출원된 발명자 Raul-Adrian Cernea의 미국특허출원번호 11/015,199, "Improved Memory Sensing Circuit And Method For Low Voltage Operation"; (4) 2005년 4월 5일에 출원된 발명자 Jian Chen의 미국특허출원번호 11/099,133, "Compensating for Coupling During Read Operations of Non-Volatile Memory"; 및 (5) 2005년 12월 28일에 출원된 발명자 Siu Lung Chan 및 Raul-Adrian Cernea의 미국특허출원 번호 11/321,953, "Reference Sense Amplifier For Non-Volatile Memory"에서 볼 수 있다. 바로 위에 열거한 5개의 모든 특허문헌들은 전부를 참조로 여기 포함시킨다.
도 9는 감지 모듈(380)의 예를 도시한 것으로, 그러나, 다른 구현들이 사용될 수도 있다. 감지 모듈(380)은 비트 라인 분리 트랜지스터(512), 비트 라인 풀 다운 회로(트랜지스터들(522, 550)), 비트 라인 전압 클램프 트랜지스터(612), 판독 버스 전송 게이트(530), 감지 증폭기(600) 및 비트 라인 래치(382)를 포함한다. 비트 라인 분리 트랜지스터(512)의 일측은 비트 라인(BL) 및 커패시터(510)에 연결된다. 비트 라인 분리 트랜지스터(512)의 다른 측은 비트 라인 전압 클램프 트랜지스터(612) 및 비트 라인 풀 다운 트랜지스터(522)에 연결된다. 비트 라인 분리 트랜지스터(512)의 게이트는 BLS로서 표기한 신호를 수신한다. 비트 라인 전압 클램프 트랜지스터(512)의 게이트는 BLC로서 표기한 신호를 수신한다. 비트 라인 전압 클램프 트랜지스터(512)는 노드(SEN2)에서 판독 버스 전송 게이트(530)에 연결된다. 판독 버스 전송 게이트(530)는 판독 버스(532)에 연결된다. 비트 라인 전압 클램프 트랜지스터(512)는 노드(SEN2)에 있는 감지 증폭기(600)에 연결한다. 도 9의 실시예에서, 감증 증폭기(600)는 커패시터(Csa) 뿐만 아니라, 트랜지스터(613, 634, 641, 642, 643,654, 654, 658)를 포함하며, 비트 라인 래치(382)는 트랜지스터(661, 662, 663, 664, 666, 668)를 포함한다.
일반적으로, 워드 라인을 따라 있는 메모리 셀은 병렬로 동작된다. 이러므로, 대응하는 수의 감지 모듈들은 병렬로 동작한다. 일 실시예에서, 제어기는 병렬로 동작하는 감지 모듈들에 제어 및 타이밍 신호들을 제공한다. 일부 실시예에서, 워드 라인을 따른 데이터는 복수의 페이지들로 분할되고 데이터는 한번에 한 페이지, 또는 한번에 복수의 페이지들로 판독 또는 프로그램된다.
감지 모듈(380)은 비트 라인 분리 트랜지스터(512)가 신호(BLS)에 의해 활성화되었을 때 메모리 셀을 위한 비트 라인(예를 들면, 비트 라인(BL))에 연결될 수 있다. 감지 모듈(380)은 감지 증폭기(600)에 의해 메모리 셀의 도통 전류를 감지하고 판독 결과를 디지털 전압 레벨로서 감지 노드(SEN2)에 래치하고 이를 게이트(530)를 통해 판독 버스(532)에 출력한다.
감지 증폭기(600)는 제 2 전압 클램프(트랜지스터들(612, 634)), 예비 충전 회로(트랜지스터들(541, 642, 643)), 및 판별기 또는 비교회로(트랜지스터들(654, 656, 658; 및 커패시터(Csa))를 포함한다. 일 실시예에서, 판독되는 메모리 셀의 제어 게이트에 기준 전압이 인가된다. 기준 전압이 메모리 셀의 임계 전압보다 크다면, 메모리 셀은 턴 온 할 것이며 이의 소스와 드레인 간에 전류를 도통시킬 것이다. 기준 전압이 메모리 셀의 임계 전압보다 크지 않다면, 메모리 셀은 턴 온 하지 않을 것이며 이의 소스와 드레인간에 전류를 도통시키지 않을 것이다. 많은 구현들에서, 온/오프는 연속된 천이일 수 있으므로 메모리 셀은 서로 다른 제어 게이트 전압들에 응하여 서로 다른 전류를 도통시킬 것이다. 메모리 셀이 온 하여 전류를 도통시키고 있다면, 도통된 전류는 노드(SEN) 상의 전압을 감소시키게 할 것이며 다른 단자가 Vdd에 있을 때 효과적으로 커패시터(Csa)에 충전 또는 이에 전압을 증가시킨다. 노드(SEN)에 전압이 소정의 감지 기간 동안 소정의 레벨까지 방전한다면, 감지 증폭기(600)는 메모리 셀이 제어 게이트 전압에 응하여 턴 온 하였음을 보고한다.
감지 모듈(380)의 한 특징은 감지 동안 비트 라인에 일정한 전압 공급의 탑재이다. 이것은 바람직하게는 비트 라인 전압 클램프 트랜지스터(612)에 의해 구현되며, 이것은 트랜지스터(612)를 비트 라인(BL)과 직렬로 하여 다이오드 클램프처럼 동작한다. 이의 게이트는 이의 임계 전압(VT) 이상으로 요망되는 비트 라인 전압(VBL)과 동일한 일정전압(BLC)으로 바이어스된다. 이렇게 하여, 이것은 비트 라인을 노드(SEN)로부터 격리하며 프로그램 검증 또는 판독 동안에 즉 요망되는 VBL = 0.5 내지 0.7 볼트와 같이 비트 라인에 대해 일정한 전압 레벨을 설정한다. 일반적으로, 비트 라인 전압 레벨은 긴 예비 충전 시간을 피할 만큼 충분히 낮으면서도 접지 잡음 및 기타 요인을 피할 만큼 충분히 크게 되게 하는 레벨로 설정된다.
감지 증폭기(600)는 감지 노드(SEN)를 통해 도통 전류를 감지하며 도통 전류가 소정의 값 이상인지 이하인지를 결정한다. 감지 증폭기는 감지된 결과를 디지털 형태로 신호(SEN2)로서 판독 버스(532)에 출력한다.
근본적으로 SEN2에 신호의 반전된 상태일 수 있는 디지털 제어 신호(INV)는 풀 다운 회로를 제어하기 위해 출력된다. 감지된 도통 전류가 소정의 값보다 클 때, INV는 HIGH일 것이며 SEN2는 LOW일 것이다. 이 결과는 풀 다운 회로에 의해 보강된다. 풀 다운 회로는 제어 신호(INV)에 의해 제어되는 n-트랜지스터(522) 및 제어 신호(GRS)에 의해 제어되는 또 다른 n-트랜지스터(550)를 포함한다. LOW일 때 GRS 신호는 INV 신호의 상태에 관계없이 비트 라인(BL)을 플로팅되게 한다. 프로그래밍 동안에, GRS 신호는 HIGH로 가서 비트 라인(BL)을 접지가 되게 하고 IVN에 의해 제어되게 한다. 비트 라인(BL)이 플로팅될 것이 요구될 때, GRS 신호는 LOW로 간다. 감지 모듈들, 감지 증폭기들 및 래치들의 다른 설계들이 사용될 수 있는 것에 유의한다.
판독/기록 회로들(365)은 한 페이지의 메모리 셀에 동시에 동작한다. 판독/기록 회로들(365)에 각각의 감지 모듈(380)은 비트 라인을 통해 대응 셀에 결합된다. 도통 전류는 비트 라인을 통해 감지 모듈로부터 메모리 셀의 드레인에 흐르고 그리고 소스 라인을 통해 접지로 가기 전에 소스로부터 흘러나온다. 집적 회로 칩에서, 메모리 어레이에 셀의 소스들은 메모리 칩의 어떤 외부 접지 패드(예를 들면, Vss 패드)에 연결된 소스 라인의 복수의 브랜치들로서 함께 모두 결선된다. 소스 라인의 저항을 감소시키기 위해 금속 스트랩핑이 사용될 때라도, 메모리 셀의 소스 전극과 접지 패드간에 유한한 저항 R이 남는다. 전형적으로, 접지 루프 저항(R)은 약 50 오옴이다.
전체 한 페이지의 메모리가 병렬로 감지되는 경우, 소스 라인을 통해 흐르는 총 전류는 모든 도통 전류들의 합이다. 일반적으로, 각 메모리 셀은 이의 전하 저장 소자에 프로그램된 전하량에 따라 도통 전류를 갖는다. 메모리 셀의 주어진 제어 게이트 전압에서, 소량의 전하가 비교적 높은 도통 전류를 야기할 것이다. 메모리 셀의 소스전극과 접지 패드간에 유한한 저항이 존재할 때, 저항에 전압 강하는 Vdrop = iTOT R에 의해 주어진다.
예를 들어, 각각이 1μA의 전류를 갖고 4,256 비트 라인들이 동시에 방전한다면, 소스 라인 전압 강하는 4,000 라인 x 1 μA/라인 x 50 오옴 ~ 0.2 볼트가 같게 될 것이다. 이 소스 라인 바이어스는 메모리 셀의 임계 전압들이 감지될 때 0.2 볼트의 감지 오류에 기여할 것이다.
한 세트의 실시예에서, 소스 라인 바이어스를 감소시키는 방법은 다중-패스 감지를 위한 특징들 및 기술들을 갖춘 판독/기록 회로들에 의해 달성된다. 각 패스는 주어진 경계 전류 값보다 큰 도통 전류를 가진 메모리 셀을 확인하여 차단시킬 수 있게 한다. 전형적으로, 각 패스에서, 주어진 경계 전류값은 통상의 단일-패스 감지에서 구분점 전류값으로 점진적으로 수렴한다. 이렇게 하여, 후속 패스들에서 감지는 더 큰 전류셀이 차단되었을 때문에 소스 라인 바이어스에 의해 덜 영향을 받을 것이다.
예를 들어, 다중-패스 감지는 2번의 패스들로 이행될 수 있다(j = 0 내지 1). 제 1 패스 후에, 구분점보다 더 높은 도통 전류를 가진 이들 메모리 셀이 확인되어 이들의 도통 전류를 턴 오프 하여 제거된다. 이들의 도통 전류를 턴 오프하는 바람직한 방법은 이들의 비트 라인에 이들의 드레인 전압들을 접지로 설정하는 것이다. 제 2 패스에서, 소스 라인 바이어스로부터 오류가 감소된다. 2 이상의 패스들도 고려된다. 소스 라인 바이어스가 오류들을 야기하지 않을 실시예에서, 1 패스가 감지를 위해 사용될 수 있다.
도 10(a) ~ 도 10(k)는 판독/검증 동작 동안에 감지 모듈(380)의 일 실시예를 설명하는 타이밍도이다.
단계 (0): 셋업
감지 모듈(380)(도 9 참조)가 활성화 신호(BLS)을 통해 대응 비트 라인에 연결된다 {도 10(a)}. BLC에 의해 전압 클램프가 활성화된다(도 10(b)). 예비 충전 트랜지스터(642)가 제어 신호(FLT)로, 제한된 전류원으로서 활성화된다(도 10(c)).
단계 (1): 제어 예비 충전
감지 증폭기(600)는 트랜지스터(658)을 통해 신호(INV)(도 10(h))를 접지로 가져갈 리셋 신호(RST)(도 10(d))에 의해 초기화된다. 이에 따라, 리셋에서, INV는 LOW로 설정된다. 동시에, p-트랜지스터(663)은 상보 신호(LAT)를 Vdd 또는 HIGH로 가져간다(도 10(h)). 즉, LAT는 INV의 상보이다. 분리 트랜지스터(634)는 신호(LAT)에 의해 제어된다. 이에 따라, 리셋 후에, 분리 트랜지스터(634)는 활성화되어 감지 노드(SEN2)을 감지 증폭기의 내부 감지 노드(SEN)에 연결한다.
예비 충전 트랜지스터(6442)는 소정의 기간 동안 내부 감지 노드(SEN) 및 감지 노드(SEN2)을 통해 비트 라인(BL)을 예비 충전한다. 이것은 비트 라인을 이에 도통을 감지하기 위한 최적의 전압까지 가져가게 할 것이다. 예비 충전 트랜지스터(642)는 제어 신호(FLT)("플로팅")에 의해 제어된다. 비트 라인은 비트 라인 전압 클램프(612)에 의해 설정되는 요망되는 비트 라인 전압을 항하여 풀업될 것이다. 풀업 레이트는 비트 라인에 도통 전류에 따를 것이다. 도통 전류가 작을수록, 풀업은 더 빨라질 것이다.
소스 라인 바이어스에 기인한 감지 오류들은 소정의 값보다 큰 도통 전류를 가진 이들 메모리 셀이 턴 오프되고 소스 라인 바이어스에의 이들의 기여들이 소거된다면 최소가 됨이 앞에서 기술되었다. 이러므로, 예비 충전 트랜지스터(642)는 2가기 기능들을 행한다. 하나는 최적의 감지 전압까지 비트 라인을 예비 충전하는 것이다. 다른 하나는 도통 전류들이 소스 라인 바이어스에 기여하는 것으로부터 제거될 수 있도록 D.C.(직류 전류) 감지를 위해 소정의 값보다 큰 도통 전류를 가진 메모리 셀을 확인할 수 있게 한다.
D.C. 감지는 소정의 전류를 비트 라인에 공급하기 위한 전류원처럼 거동하는 예비 충전 회로를 제공하여 달성된다. p-트랜지스터(642)를 제어하는 신호(FLT)는 소정의 전류가 흐르게 "프로그램"하도록 하는 신호이다. 예로서, FLT신호는 500 nA로 설정된 기준전류와의 전류 미러로부터 발생될 수 있다. p-트랜지스터(642)가 전류 미러의 미러상에 레그를 형성할 때, 이에 흐르는 동일한 500nA를 갖게 될 것이다.
도 10(I1) ~ 도 10(I4)는 예로서 70OnA, 40OnA, 22OnA 및 4OnA의 도통 전류를 가진 메모리 셀에 각각 연결된 4개의 비트 라인들 상의 전압들을 도시한 것이다. 예비 충전 회로(트랜지스터(642)를 포함하는)가 예를 들면 500nA의 제한을 가진 전류원일 때, 500nA을 초과하는 도통 전류를 갖는 메모리 셀은 이것이 축적할 수 있는 것보다 더 빠르게 비트 라인 상에 전하들이 드레인되게 할 것이다. 결국, 도통 전류 700nA을 가진 비트 라인에 대해서, 내부 감지 노드(SEN)에 이 비트 라인의 전압 또는 신호는 0V에 가깝게(즉, 0.1 볼트, 도 10(11) 참조) 남게 될 것이다. 한편, 메모리 셀의 도통 전류가 500nA 미만이라면, 예비 충전 회로(트랜지스터(642)를 포함하는)는 비트 라인을 충전하기 시작할 것이며 이의 전압은 클램프된 비트 라인 전압을 향하여 상승하기 시작할 것이다(예를 들면, 전압 클램프(612)에 의해 설정된 0.5V)(도 10(I2)-도 10(I4)). 대응하여, 내부 감지 노드(SEN)은 0V에 가깝게 남아 있거나 Vdd까지 상승될 것이다(도 10(G)). 일반적으로, 도통 전류가 작을수록, 비트 라인 전압은 클램프된 비트 라인 전압까지 더 빠르게 충전될 것이다. 이에 따라, 제어 예비 충전 단계 후에 비트 라인 상에 전압을 검사하여, 연결된 메모리 셀이 소정의 레벨보다 큰 또는 낮은 도통 전류를 갖는지 확인하는 것이 가능하다.
단계 (2): 후속 스트로브들로부터 고 전류 셀을 D.C. 래칭 및 제거
제어 예비 충전 단계 후에, 초기 D.C. 고전류 감지 단계는 노드(SEN)이 판별기 회로에 의해 감지되는 곳에서 시작한다. 감지는 소정의 레벨보다 높은 도통 전류를 가진 메모리 셀을 확인한다. 판별기 회로는 직렬의 2개의 p-트랜지스터들(654, 656)을 포함하며, 이들은 신호(INV)를 등록하는 노드에 대해 풀-업으로서 작용한다. p-트랜지스터(654)는 LOW로 가는 판독 스트로브 신호(STB)에 의해 활성화되며 p-트랜지스터(656)은 LOW로 가는 내부 감지 노드(SEN)에 신호에 의해 활성화된다. 고 전류 메모리 셀은 0V에 가까운 신호(SEN)을 가질 것이며 또는 적어도 이의 비트 라인이 p-트랜지스터(656)을 턴 오프할 만큼 충분히 하이로 예비 충전될 수 없을 것이다. 예를 들어, 약 풀업이 500nA의 전류로 제한된다면, 700nA의 도통 전류를 가진 셀을 풀업을 할 수 없게 될 것이다(도 10(G1)). STB가 스트로브 래치에 LOW로 스트로브할 때, INV는 Vdd까지 풀업된다. 이것은 INV를 HIGH로 LAT를 LOW로 하여 래치 회로(660)을 설정할 것이다(도 10(H1)).
INV가 HIGH이고 LAT가 LOW일 때, 분리 게이트(630)는 비활성화되며 감지 노드(SEN2)는 내부 감지 노드(SEN)로부터 차단된다. 동시에, 비트 라인은 풀다운 트랜지스터(522)에 의해 접지로 가게 된다 {도 9 및 도 10(I1)}. 이것은 비트 라인에 임의의 도통 전류를 효과적으로 턴 오프하여, 이를 소스 라인 바이어스에 기여하는 것으로부터 제거할 것이다.
이에 따라, 감지 모듈(380)의 한 바람직한 구현에서, 제한된 전류원 예비 충전 회로가 채용된다. 이것은 고 전류를 갖고 있는 비트 라인을 확인하여 후속 감지에서 소스 라인 바이어스 오류를 최소화하기 위해 이들을 턴 오프시키는 추가의 또는 대안적 방법(D.C. 감지)을 제공한다.
또 다른 실시예에서, 예비 충전 회로는 고전류 비트 라인을 확인할 수 있게 특정하게 구성되는 것이 아니라 메모리 시스템이 사용할 수 있는 최대 전류의 허용 내에서 가능한 한 빠르게 비트 라인을 풀업하여 프리충전하기 위해 최적화된다.
단계 (3): 복구/예비 충전
이전에 풀다운되지 않았던 비트 라인에 도통 전류의 감지에 앞서, 예비 충전 회로는 LOW로 가는 신호(FLT)에 의해 활성화되어 내부 감지 노드(SEN2)를 Vdd까지 예비 충전하며{도 10(C) 및 도 10(I2) ~ 도 10(I4)} 이웃 비트 라인들 상에 전압의 감소에 기인하여 부분적으로 낮게 결합되어 있을 수 있는 비트 라인을 예비 충전한다.
단계 (4): 제 1 A.C. 감지
일 실시예에서, A.C.(교류 전류 또는 일시적) 감지는 플로팅된 내부 감지 노드(SEN)에 전압 강하를 결정하여 수행된다. 이것은 내부 감지 노드(SEN)에 결합된 커패시터(Csa)를 채용하는 판별기 회로, 및 도통 전류가 이를 충전하는(노드(SEN) 상에 전압을 감소시키는) 레이트를 고려하여 달성된다. 집적 회로 환경에서, 커패시터(Csa)는 전형적으로 트랜지스터로 구현되나, 그러나, 다른 구현들도 적합하다. 커패시터(Csa)는 최적 전류 결정을 위해 선택될 수 있는 소정의 커패시턴스로서 예를 들면 30fF를 갖는다. 전형적으로 100 ~ 1000 nA 범위에 있는 경계 전류값이 충전기간의 적합한 조절에 의해 설정될 수 있다.
판별기 회로는 내부 감지 노드(SEN)에 신호(SEN)을 감지한다. 각각의 감지에 앞서, 내부 감지 노드(SEN)에 신호는 예비 충전 트랜지스터(642)에 의해 Vdd까지 풀업된다. 이것은 초기에는 커패시터 Csa에 전압을 제로가 되게 설정할 것이다.
감지 증폭기(600)가 감지할 준비가 되어 있을 때, 예비 충전 회로는 HIGH로 가는 FLT에 의해 비활성화된다(도 10(c)). 제 1 감지 기간(T1)은 스트로브 신호(STB)의 발현에 의해 종료된다. 감지 기간 동안, 도통하는 메모리 셀에 의해 유기되는 도통 전류는 커패시터를 충전할 것이다. SEN에 전압은 비트 라인에 도통 전류의 드레인되는 전류를 통해 커패시터(Csa)가 충전될 때 Vdd로부터 감소할 것이다. 도 10(G)(곡선들 G2 ~ G4 참조)은 400nA, 220nA 및 40nA의 도통 전류을 가진 메모리 셀에 각각 연결된 남은 3개의 예의 비트 라인에 대응하는 SEN 노드를 도시한 것으로, 감소는 더 큰 도통 전류를 가진 것에서 더 빠르다.
단계 (5): 후속 감지로부터 더 큰 전류 셀의 래칭 및 제거
제 1 소정의 감지기간의 끝에서, SEN 노드는 비트 라인에 도통 전류에 따라 어떤 전압까지 감소되었을 것이다(도 10G의 곡선들 G2 ~ G4을 참조). 예로서, 이 제 1 단계에서 경계 전류는 300nA에 있게 설정된다. 커패시터(Csa), 감지기간(T1) 및 p-트랜지스터(656)의 임계 전압은 경계 전류(예를 들면, 300nA)보다 높은 도통 전류에 대응하는 SEN에 신호가 트랜지스터(656)을 턴 온 시킬 만큼 충분히 낮게 되게 하는 것들이다. 래칭 신호 STB가 LOW로 스트로브할 때, 출력신호(INV)은 HIGH가 될 것이며, 래치(382)(도 10(e) 및 도 10(h)(곡선 H2))에 의해 래치될 것이다. 한편, 경계 전류 미만의 도통 전류에 대응하는 신호(SEN)은 트랜지스터(656)을 턴 온 할 수 없는 신호(SEN)을 생성할 것이다. 이 경우, 래치(382)는 변경되지 않은 채로 있을 것이며, 이 경우 LAT는 HIGH로 남아 있는다(도 10(H3) 및 도 10(H4)). 이에 따라, 판별기 회로는 감지 기간에 의해 설정된 기준전류에 대해 비트 라인에 도통 전류의 크기를 효과적으로 결정함을 알 수 있다.
감지 증폭기(600)는 비트 라인 전압 클램프(610)가 적합하게 기능하기 위해서 충분히 높은 트랜지스터(612)의 드레인의 전압을 유지하는 것을 목적으로 하는 제 2 전압 클램프 트랜지스터(612)를 포함한다. 앞에서 기술된 바와 같이, 비트 라인 전압 클램프(610)는 비트 라인 전압을 소정의 값(VBL)으로서 예를 들면 0.5V까지 클램프한다. 이것은 트랜지스터(612)의 게이트 전압(BLC)이 VBL+VT(VT는 트랜지스터(612)의 임계 전압)로 설정되고 감지 노드(501)에 연결된 드레인이 소스보다 더 크게 되게, 즉 신호 SEN2 > VBL이 될 것을 요구할 것이다. 특히, 전압 클램프들의 구성이 주어졌을 때, SEN2는 XX0 - VT 또는 BLX - VT 중 더 적은 것보다 더 높지 않아야 하며 SEN은 더 낮지 않아야 한다. 감지 동안에, 분리 게이트(630)는 패스-스루 모드에 있다. 그러나, 감지 동안에 내부 감지 노드(SEN)에 신호는 Vdd부터 감소하는 전압을 갖는다. 제 2 전압 클램프는 XX0 -VT 또는 BLX-VT 중 더 낮은 것 미만으로 SEN이 떨어지는 것을 방지한다. 이것은 신호 BLX에 의해 제어되는 n 트랜지스터(612)에 의해 달성되며 여기서 BLX ≥ VBL + VT이다. 이에 따라, 전압 클램프들의 작동을 통해, 비트 라인 전압 VBL은 일정하게, 예를 들면 감지 동안 ~ 0.5V로 유지된다.
전류 결정의 출력은 래치 회로(382)에 의해 래치된다. 래치 회로는 트랜지스터들(666, 668)과 함께 트랜지스터들(661, 662, 663, 664)에 의해 셋/리셋 래치로 형성된다. p-트랜지스터(666)는 신호 RST(RESET)에 의해 제어되며 n 트랜지스터(668)는 신호(STB)에 의해 제어된다. 저 전압 동작을 위해 개작된 위에 기술된 감지 증폭기의 변형은 전체를 참조로 여기 포함시키는 12/16/04에 출원된 발명자 Raul-Adrian Cernea의 "Improved Memory Sensing Circuit And Method For Low Voltage Operation" 명칭의 미국특허출원 11/015,199에서 발견된다.
일반적으로, 대응하는 수의 다중-패스 감지 모듈들(380)에 의해 동작되는 한 페이지의 메모리 셀이 있을 것이다. 제 1 경계 전류 레벨보다 높은 도통 전류를 갖는 메모리 셀에 대해서, 이들의 LAT 신호는 LOW로 래치될 것이다(INV는 HIGH로 래치된다). 이러면 이것은 비트 라인 풀다운 회로(520)를 활성화하여 대응하는 비트 라인을 접지가 되게 하여 이들의 전류를 턴 오프 시킨다.
단계 (6): 복구/예비 충전
이전에 풀다운되지 않은 비트 라인에 도통 전류를 후속 감지에 앞서, 예비 충전 회로가 신호(FLT)에 의해 활성화되어 내부 감지 노드(631)를 Vdd까지 예비 충전한다(도 10(C) 및 도 10(I3) ~ 10(I4)).
단계 (7): 제 2 감지
감지 증폭기(600)가 감지할 준비가 되었을 때, 예비 충전 회로는 HIGH로 가는 FLT에 의해 비활성화된다(도 10(C)). 제 2 감지기간(T2)은 스트로브 신호(STB)의 발현에 의해 설정된다. 감지 기간 동안, 도통 전류는 (있다면) 커패시터를 충전할 것이다. 노드(SEN)에 신호는 비트 라인(36)에 도통 전류의 드레인 작용을 통해 커패시터(Csa)가 충전함에 따라 Vdd로부터 감소할 것이다.
전의 예에 따라, 300nA보다 큰 도통 전류를 가진 메모리 셀은 이미 확인되어 더 앞선 단계에서 차단되어 있다. 도 14(G)(곡선들(G3, G4))은 220nA 및 40nA의 도통 전류를 가진 메모리 셀에 각각 연결된 2개의 예의 비트 라인에 대응하는 SEN 신호를 각각 도시한 것이다.
단계 (8): 판독을 위한 제 2 래칭
제 2 소정의 감지기간(T2)의 끝에서, SEN은 비트 라인에 도통 전류에 따라 어떤 전압까지 감소되어 있을 것이다(도 10(G))(곡선들(G3, G4)). 예로서, 이 제 2 단계에서 경계 전류는 100nA에 있게 설정된다. 이 경우에, 도통 전류 220nA를 가진 메모리 셀은 이의 INV를 HIGH로 래치되게 할 것이며(도 10(H)) 이어서 이의 비트 라인을 접지가 되게 할 것이다(도 10(I3)). 한편, 도통 전류 40nA을 가진 메모리 셀은 LAT HIGH로 사전에 설정되었던 래치의 상태에 영향을 미치지 않을 것이다.
단계 (9): 버스로 판독
마지막으로, 판독 단계에서, 전송 게이트(530)에서 제어 신호(NCO)는 래치된 신호(SEN2)가 판독 버스(532)로 판독되게 한다(도 10(J) 및 10(K)).
도 10(I1)-10(I4)로부터 알 수 있는 바와 같이, 비트 라인 전압은 각 감지 기간 동안 일정한 채로 있는다. 이에 따라, 앞선 논의로부터, 용량성 비트 라인간 커플링이 제거된다.
위에 기술된 감지 모듈(380)은 첫번째 2개의 패스들은 고 전류 메모리 셀을 확인하여 차단하게 이행되는 것으로 3개의 패스들로 감지가 수행되는 일 실시예이다. 소스 라인 바이어스에 고 전류 기여들이 제거됨으로써, 최종 패스는 낮은 범위 도통 전류를 가진 셀을 더 정확하게 감지할 수 있다.
다른 실시예에서, 감지 동작들은 D.C. 및 A.C. 패스들의 상이한 조합으로서, 일부는 단지 2 이상의 A.C. 패스들만을 사용하거나, 한 패스만을 사용하는 것으로, 이들에 의해 구현된다. 서로 다른 패스에서, 사용되는 경계 전류값은 매번 동일할 수 있거나 최종 패스에서 사용된 경계 전류를 향하여 점진적으로 수렴할 수도 있다. 또한, 위에 기술된 감지 실시예는 적합한 감지 모듈의 단지 한 가지 예이다. 그외 설계들 및 기술들이 여기 기술된 발명을 구현하기 위해 사용될 수도 있다. 어떤 한 특정의 감지 모듈도 여기 기술된 발명을 위해 요구되거나 제안되지 않는다.
도 11은 비휘발성 메모리를 프로그래밍하기 위한 방법의 일 실시예를 기술하는 흐름도이다. 일 구현에서, 메모리 셀은 프로그래밍에 앞서 소거된다(블록들 또는 그외 다른 유닛들로). 메모리 셀은 충분한 기간 동안 p-웰을 소거전압(예를 들면, 20볼트)까지 상승시키고 소스 및 비트 라인들은 플로팅된 상태에 선택된 블록의 워드 라인을 접지시킴으로써 일 실시예에서 소거된다. 용량성 커플링에 기인하여, 비선택된 워드 라인들, 비트 라인들, 선택 라인들, 및 c-소스는 소거전압의 현저한 부분까지 상승한다. 이에 따라 강 전계가 선택된 메모리 셀의 터널 산화물층들에 인가되고 선택된 메모리 셀의 데이터는 플로팅 게이트들의 전자들이 전형적으로 파울러-노다임 터널링에 의해 기판측으로 방출됨에 따라 소거된다. 전자들이 플로팅 게이트에서 p-웰 영역으로 이동됨에 따라, 선택된 셀의 임계 전압은 낮아진다. 소거는 전체 메모리 어레이에, 또는 별도의 블록들에, 또는 또 다른 한 단위의 셀에 수행될 수 있다.
도 11의 단계 700에서, "데이터 로드"는 제어기에 의해 발행되고 제어 회로(310)에 의해 수신된다. 단계 702에서, 페이지 주소를 지정하는 어드레스 데이터는 제어기 또는 호스트로부터 디코더(314)에 입력된다. 단계 704에서, 어드레스된 페이지에 대한 한 페이지의 프로그램 데이터가 프로그래밍을 위해 데이터 버퍼에 입력된다. 이 데이터는 적합한 한 세트의 래치들에 래치된다. 단계 706에서, "프로그램" 명령이 제어기에 의해 상태 머신(312)에 발행된다.
"프로그램" 명령에 의해 트리거되었을 때, 단계 704에서 래치된 데이터는 적합한 워드 라인에 인가된 도 12의 계단상 펄스들을 사용하여 상태 머신(312)에 의해 제어되는 선택된 메모리 셀에 프로그램될 것이다. 단계 708에서, 프로그램 전압 Vpgm은 시작 펄스로 초기화되고(예를 들면, 12 V 또는 그외의 값) 상태 머신(312)에 의해 유지되는 프로그램 카운터(PC)는 0으로 초기화된다. 단계 710에서, 제 1 Vpgm 펄스가 선택된 워드 라인에 인가된다. 논리 "0"이 대응 메모리 셀이 프로그램될 것임을 나타내는 특정 데이터 래치에 저장된다면, 이 대응 비트 라인은 접지된다. 한편, 논리 "1"이 대응 메모리 셀이 이의 현 데이터 상태에 있어야 함을 나타내는 특정 래치에 저장된다면, 이 대응 비트 라인은 프로그래밍을 금지하기 위해 Vdd에 연결된다.
단계 712에서, 선택된 메모리 셀의 상태들이, 이들이 이들의 타깃 임계 전압들에 도달하였는지를 결정하기 위해 검증된다. 선택된 셀의 임계 전압이 타깃 레벨에 도달한 것으로 검출된다면, 대응 데이터 래치에 저장된 데이터는 논리 "1"로 변경된다. 임계 전압이 적합한 레벨에 도달되지 않은 것으로 검출되면, 대응 데이터 래치에 저장된 데이터는 변경되지 않는다. 이렇게 하여, 대응하는 데이터 래치에 저장된 논리 "1"을 갖는 비트 라인은 프로그램될 필요가 없다. 모든 데이터 래치들이 논리 "1"을 저장하고 있을 때, 상태 머신(위에 기술된 OR 결선형 메커니즘을 통해)은 모든 선택된 셀이 프로그램되어 있음을 안다. 단계 714에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있는지가 체크된다. 이러하다면, 프로그래밍 프로세스가 완료되고 모든 선택된 메모리 셀이 프로그램되어 검증되었기 때문에 성공적이다. "PASS" 상태가 단계 716에서 보고된다.
단계 714에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있는 않는 것으로 결정되면, 프로그래밍 프로세스는 계속된다. 단계 718에서, 프로그램 제한값 PCMAX에 대해 프로그램 카운터 PC가 체크된다. 프로그램 제한값의 한 가지 예는 20이지만, 그외 다른 값들이 사용될 수 있다. 프로그램 카운터 PC가 20 미만이 아니면, 프로그램 프로세스는 실패된 것이며 "FAIL" 상태가 단계 720에서 보고된다. 일부 실시예에서, 최대 루프 수에 도달된 후에, 시스템은 소정량 미만의 셀이 프로그래밍을 종료하였는지를 체크한다. 이 소정의 수 미만이 프로그래밍을 종료하지 않았다면, 프로그래밍 프로세스는 여전히 패스인 것으로 간주된다. 프로그램 카운터 PC가 20 미만이면, 단계 722에서 Vpgm 레벨은 스텝 크기만큼 증가되고 프로그램 카운터 PC는 증분된다. 단계 722 후에, 프로세스는 단계 710으로 루프 백하여 다음 Vpgm 펄스를 적용한다.
도 12는 프로그래밍을 위해 선택된 워드 라인에 적용되는 일련의 프로그램 펄스들을 도시한 것이다. 프로그램 펄스들 사이에는 한 세트의 검증 펄스들(도시되지 않음)이 있다. 일부 실시예에서, 데이터가 프로그램되고 있는 각 상태에 대해 검증 펄스가 있을 수 있다. 다른 실시예에서, 더 많은 또는 더 적은 검증 펄스들이 있을 수 있다.
일 실시예에서, 공통 워드 라인을 따라 메모리 셀에 데이터가 프로그램된다. 이에 따라, 도 12의 프로그램 펄스들을 적용하기에 앞서, 워드 라인들 중 하나가 프로그래밍을 위해 선택된다. 이 워드 라인을 선택된 워드 라인이라 칭하도록 하겠다. 한 블록의 나머지 워드 라인을 비선택된 워드 라인들이라 칭한다.
성공적인 프로그램(검증과 함께) 프로세스의 끝에서, 메모리 셀의 임계 전압들은 프로그램된 메모리 셀을 위한 임계 전압들의 하나 이상의 분포들 이내에 또는 적합한 소거된 메모리 셀을 위한 임계 전압들의 한 분포 이내에 있어야 한다. 도 13은 각 메모리 셀이 2비트들의 데이터를 저장할 때 메모리 셀 어레이에 대한 임계 전압 분포들의 예를 도시한 것이다. 도 13은 소거된 메모리 셀에 대한 제 1 임계 전압 분포 E를 도시한 것이다. 프로그램된 메모리 셀에 대한 3개의 임계 전압 분포들 A, B, C도 도시되었다. 일 실시예에서, E 분포에 임계 전압들은 음이며 A, B 및 C 분포들에서 임계 전압들은 양이다.
도 13의 각각의 서로 구별되는 임계 전압 범위는 한 세트의 데이터 비트들에 대한 소정의 값들에 대응한다. 메모리 셀에 프로그램된 데이터와 셀의 임계 전압 레벨 사이의 특정 관계는 셀에 대한 데이터 인코딩 기법에 따른다. 예를 들면, 전체를 참조로 여기 포함시키는 미국특허 6,222,762 및 2003년 6월 13일에 출원된 미국특허출원공개 번호 2004/0255090, "Tracking Cells For A Memory System"는 다중-상태 플래시 메모리 셀에 대한 다양한 데이터 엔코팅 기법들을 기술한다. 일 실시예에서, 데이터 값들은 플로팅 게이트의 임계 전압이 이의 인접한 물리적 상태로 잘못 옮겨졌다면 단지 한 비트만이 영향을 받게 되도록 그레이 코드 할당을 사용하여 임계 전압 범위에 할당된다. 한 가지 예는 "11"을 임계 전압 범위 E(상태 E)에 할당하고, "10"을 임계 전압 범위 A (상태A)에 할당하고, "00"을 임계 전압 범위 B(상태 B)에 할당하고, "01"을 임계 전압 범위 C(상태 C)에 할당한다. 그러나, 다른 실시예에서, 그레이 코드는 사용되지 않는다. 도 13이 4개의 상태를 보이고 있을지라도, 본 발명은 4개 이상 또는 그 미만의 상태를 포함하는 것들을 포함한 그외의 다중-상태 구조들에 사용될 수도 있다. 예를 들면, 일부 비휘발성 저장소자들은 8개(7개는 프로그램되고 하나는 소거되는) 또는 그 이상의 상태를 이용할 수 있다.
도 13은 메모리 셀로부터 데이터를 판독하기 위한 판독 기준 전압으로 Vra, Vrb 및 Vrc을 도시한 것이다. 주어진 메모리 셀의 임계 전압이 Vra, Vrb 및 Vrc 이상인지 아니면 이하인지를 테스트하여, 시스템은 메모리 셀이 어떤 상태에 있는지를 결정할 수 있다.
도 13은 또한, 3개의 검증 기준 전압들로서 Vva, Vvb 및 Vvc을 도시한 것이다. 메모리 셀을 상태 A로 프로그래밍할 때, 시스템은 이들 메모리 셀이 Vva보다 크거나 이와 같은 임계 전압을 갖는지를 테스트할 것이다. 메모리 셀을 상태 B로 프로그래밍할 때, 시스템은 메모리 셀이 Vvb보다 크거나 이와 같은 임계 전압을 갖는지를 테스트할 것이다. 메모리 셀을 상태 C로 프로그래밍할 때, 시스템은 메모리 셀이 Vvc보다 크거나 이와 같은 임계 전압을 갖는지를 테스트할 것이다.
풀 시퀀스 프로그래밍으로서 알려진 일 실시예에서, 메모리 셀은 소거상태 E에서 직접 프로그램된 상태들 A, B, 또는 C 중 어느 하나로 프로그램 가능하다. 예를 들면, 프로그램될 한 집단의 메모리 셀은 이 집단 내 모든 메모리 셀이 소거된 상태 E에 있도록 먼저 소거될 수 있다. 일부 메모리 셀이 상태 E에서 상태 A로 프로그램되고 있는 동안, 다른 메모리 셀은 상태 E에서 상태 B로 및/또는 상태 E에서 상태 C로 프로그램되고 있다.
도 14는 하위 페이지 및 상위 페이지인 2개의 서로 다른 페이지들에 대한 데이터를 저장하는 다중-상태 메모리 셀을 프로그래밍하는 2-패스 기술의 예를 도시한 것이다. 상태 E(11), 상태 A(10), 상태 B(00) 및 상태 C(01)인 4개의 상태들이 도시되었다. 상태 E에 대해서, 두 페이지들은 "1"을 저장한다. 상태 A에 대해서, 하위 페이지는 "0"을 저장하며 상위 페이지는 "1"을 저장한다. 상태 B에 대해서, 두 페이지는 "0"을 저장한다. 상태 C에 대해서, 하위 페이지는 "1"을 저장하며 상위 페이지는 "0"을 저장한다. 상태의 각각에 특정 비트 패턴이 할당되었을지라도 서로 다른 비트 패턴들이 할당될 수 있음에 유의한다.
제 1 프로그래밍 패스에서, 하위 논리 페이지에 프로그램된 비트에 따라 셀의 임계 전압 레벨이 설정된다. 비트가 논리 "1"이면, 먼저 소거된 결과로서 이것이 적합한 상태에 있기 때문에 임계 전압은 변경되지 않는다. 그러나, 프로그램될 비트가 논리 "0"이라면, 화살표 730으로 나타낸 바와 같이, 셀의 임계 레벨은 상태 A로 증가된다.
제 2 프로그래밍 패스에서, 셀의 임계 전압 레벨은 상위 논리 페이지에 프로그램되는 비트에 따라 설정된다. 상위 논리 페이지 비트가 논리 "1"을 저장할 것이라면, 하위 페이지 비트의 프로그래밍에 의존하여, "1"의 상위 페이지 비트를 갖는 상태 E 또는 상태 A 중 하나에 셀이 있기 때문에 어떠한 프로그래밍도 일어나지 않는다. 상위 페이지 비트가 논리 "0"에 있을 것이라면, 임계 전압은 옮겨진다. 제 1 패스에 의해 셀이 소거상태 E에 남아 있게 되면, 제 2 단계에서 셀은 화살표 734로 나타낸 바와 같이, 임계 전압들이 상태 C 내에 있게 증가되도록 프로그램된다. 제 1 프로그래밍 패스의 결과로서 셀이 상태 A로 프로그램되었다면, 메모리 셀은 제 2 패스에서 재차 프로그램되어 임계 전압은 화살표 732로 나타낸 바와 같이 상태 B 내에 있도록 증가된다. 제 2 패스의 결과는 하위 페이지에 대한 데이터를 변경함이 없이 상위 페이지에 대해 논리 "0"을 저장하도록 지정된 상태로 셀을 프로그램하는 것이다.
일 실시예에서, 시스템은 충분한 데이터가 워드 라인을 다 채우게 기록된다면 풀 시퀀스 기록을 수행하게 셋업될 수 있다. 충분한 데이터가 기록되지 않는다면, 프로그래밍 프로세스는 수신된 데이터로 하위 페이지 프로그래밍을 프로그램할 수 있다. 후속의 데이터가 수신될 때, 시스템은 상위 페이지를 프로그램할 것이다. 또 다른 실시예에서, 시스템은 하위 페이지를 프로그램하는 모드에서 기록을 시작하고 전체(또는 대부분) 워드 라인의 메모리 셀을 다 채우게 충분한 데이터가 후속하여 수신된다면 풀 시퀀스 프로그래밍 모드로 전환할 수 있다. 이러한 실시예의 더 상세한 것은 전체를 참조로 여기 포함시키는 발명자 Sergey Anatolievich Gorobets 및 Yan Li의 12/14/04에 출원된 "Pipelined Programming of Non-Volatile Memories Using Early Data" 명칭의 미국특허출원번호 11/013,125에 개시되어 있다.
도 15는 비휘발성 메모리 셀로부터 데이터를 판독하기 위한 일 실시예를 기술한 흐름도이다. 감지 모듈들에 관한 위에 논의는 특정 비트 라인들로부터 어떻게 데이터가 판독되는가를 논한 것이다. 도 15는 시스템 수준에서 판독 프로세스를 제공한다. 단계 800에서, 데이터 판독 요청이 호스트, 제어기, 또는 또 다른 실체로부터 수신된다. 위에 논한 바와 같이, 비휘발성 메모리 셀의 플로팅 게이트(또는 그외 전하 저장 소자) 상에 저장된 명목 전하의 시프트들이, 이웃 플로팅 게이트들(또는 이외 인접한 전하 저장 소자들)에 저장된 전하에 기초한 전계의 커플링 때문에 일어날 수 있다. 이 커플링을 보상하기 위해서, 주어진 메모리 셀에 대한 판독 프로세스는 인접한 메모리 셀의 프로그램된 상태를 고려할 것이다. 단계 802는 이웃 플로팅 게이트 사이의 커플링을 위해 이러한 보상을 제공할지를 결정을 포함한다. 일부 실시예에서, 단계 802는 얼마나 많은 보상을 사용할지를 결정하는 것을 포함한다. 단계 804에서, 데이터 판독 요청에 응하여 한 특정의 페이지 또는 이외 한 단위의 데이터에 대해 판독 프로세스가 수행된다. 단계 804의 판독 프로세스는 단계 802에 기초하여, 이웃 플로팅 게이트 사이의 커플링을 위한 적합한 보상을 포함할 수 있다. 일 실시예에서, 단계 804에서 판독된 메모리 셀은 공통 워드 라인에 그러나 서로 다른 비트 라인에 연결된다.
일 실시예에서, 한 페이지에 대한 데이터가 프로그램될 때, 시스템은 오류정정 코드들(ECC)을 생성하여 한 페이지의 데이터와 함께 이들 ECC들을 기록할 것이다. ECC 기술들은 이 기술에 공지되어 있다. 사용된 ECC 프로세스는 이 기술에 공지된 임의의 적합한 ECC 프로세스를 포함할 수 있다. 한 페이지로부터 데이터(또는 다른 한 단위의 데이터)를 판독할 때, 데이터에 어떤 오류들이 있는지를 결정하기 위해 ECC들이 사용될 것이다(단계 806). ECC 프로세스는 제어기, 또는 상태 머신 또는 시스템 내 다른 어떤 곳에 의해 수행될 수 있다. 데이터에 오류들이 없다면, 데이터가 단계 808에서 사용자에게 보고된다. 단계 806에서 오류가 발견된다면, 오류가 정정 가능한지가 결정된다(단계 810). 각종 ECC 방법들은 한 세트의 데이터에 소정 수의 오류들을 정정하는 능력이 있다. ECC 프로세스가 데이터를 정정할 수 있다면, 단계 812에서 이 데이터를 정정하기 위해 ECC 프로세스가 사용되며, 정정된 데이터는 단계 814에서 사용자에게 보고된다. 데이터가 ECC 프로세스에 의해 정정될 수 없다면(단계 810), 오류가 단계 820에서 사용자에게 보고될 것이다. 일부 실시예에서, 모든 또는 일부 데이터를 보고하는 것을 포함할 수 있다. 일부 데이터가 오류를 갖고 있지 않은 것으로 알려진다면, 이 일부 데이터가 보고될 수 있다.
도 16은 이웃 플로팅 게이트 사이의 커플링에 대한 보상을 잠재적으로 사용하는 비휘발성 메모리 셀로부터 데이터를 판독하기 위한 또 다른 실시예를 기술한 흐름도이다. 도 15의 프로세스와 도 16의 프로세스간에 한 차이는 판독 프로세스동안 오류가 있을 경우에만 도 16의 프로세스가 보상을 사용한다는 것이다.
도 16의 단계 840에서, 데이터 판독 요청이 호스트, 또는 제어기, 또는 또 다른 실체로부터 수신된다. 단계 842에서, 데이터 판독 요청에 응하여 한 특정의 페이지 또는 다른 한 단위의 데이터에 대해 판독 프로세스가 수행된다. 단계 842의 판독 프로세스는 여기에 기술된 커플링에 대한 보상을 포함하지 않는다. 단계 844는 데이터에 어떤 오류들이 있는지를 결정하는 것을 포함한다. 데이터에 오류들이 없다면, 단계 846에서 데이터가 사용자에게 보고된다. 오류가 단계 844에서 발견된다면, 단계 850에서 오류가 정정 가능한지가 결정된다. 각종 ECC 방법들은 한 세트의 데이터에 소정 수의 오류들을 정정하는 능력이 있다. ECC 프로세스가 데이터를 정정할 수 있다면, 단계 852에서 이 데이터를 정정하기 위해 ECC 프로세스가 사용되며, 정정된 데이터는 단계 854에서 사용자에게 보고된다. 데이터가 ECC 프로세스에 의해 정정될 수 없다면(단계 850), 시스템은 이웃 플로팅 게이트 사이의 커플링에 대한 보상과 함께 판독 프로세스를 수행하여 데이터 복구를 시도할 것이다. 이에 따라, 단계 860에서, 시스템은 이웃 플로팅 게이트 사이의 커플링을 해결하기 위해 보상을 사용할지 및/또는 얼마나 많이 사용할지를 결정한다. 단계 862에서, 데이터 판독 요청에 응하여 한 특정 페이지 또는 이외 다른 한 단위의 데이터에 대해 판독 프로세스가 수행된다. 단계 862의 판독 프로세스는 단계 860에 기초하여, 이웃 플로팅 게이트들 간에 커플링에 대한 적합한 보상을 사용하여 데이터 복구를 시도한다.
타깃 플로팅 게이트에 대한 이웃 플로팅 게이트는 동일 비트 라인 상에 그러나 상이한 워드 라인에 있는 이웃 플로팅 게이트들, 또는 동일 워드 라인에 있지만 다른 비트 라인에 있는 이웃 플로팅 게이트들, 또는 이웃 비트 라인 및 이웃 워드 라인 모두에서 타깃 플로팅 게이트로부터 걸쳐있는 플로팅 게이트들을 포함할 수 있다. 일 실시예에서, 여기에서 논한 커플링에 대한 보상은 이웃 플로팅 게이트들의 이들 위에 언급된 세트들 중 어느 한 세트에 적용할 수 있다. 일부 실시예에서, 여기에서 논한 커플링에 대한 보상은 동일 워드 라인 상에 그러나 상이한 비트 라인 상에 이웃 플로팅 게이트들에 적용한다. 예를 들면, 메모리 셀(362)은 메모리 셀들(364, 366)으로부터 커플링에 기인하여 변경되는 명목 임계 전압을 가질 수 있다(도 7 참조). 동일 비트 라인 상에 그러나 다른 워드 라인 상에 이웃 플로팅 게이트들에 기인한 커플링에 대한 보상은 전체를 참조로 여기 포함시키는 발명자들 Yan Li 및 Jian Chen의 2005년 4월 5일에 출원된 "Read Operation For Non-Volatile Storage That Includes Compensation for Coupling" 명칭의 미국특허출원번호 11/099,049에 자세히 다루어져 있다. 몇몇 실시예는 동일한 워드 라인이지만 서로 다른 비트 라인 상의 서로 인접한 플로팅 게이트 사이의 결합과 동일한 비트 라인이지만 서로 다른 워드 라인 상의 서로 인접한 플로팅 게이트 사이의 결합을 위한 보상을 제공한다.
이웃 플로팅 게이트 사이의 커플링 양은 이웃 플로팅 게이트들이 프로그램될 때의 타이밍에 따른다. 동시에 프로그램되는 2개의 이웃 플로팅 게이트들은 커플링이 거의 또는 전혀 없을 수도 있다. 한 플로팅 게이트가 프로그램되지 않고(예를 들면 소거된 상태 E에 있고) 다른 플로팅 게이트가 이어서 가장 높은(예를 들면 최대) 프로그램된 상태(예를 들면 상태 C로 프로그램되는 것, 도 13 참조)로 프로그램되는 경우 2개의 인접한 플로팅 게이트 사이의 가장 큰 양의 커플링이 발생할 수 있다. 상태 E와 상태 A간에 큰 마진이 있기 때문에, 커플링이 있어도 상태 E에서 데이터 판독 오류는 없을 것이다. 두번째로 가장 큰 커플링량은 상태 A로 프로그램된 제 1 플로팅 게이트와 나중에 상태 C로 프로그램된 플로팅 게이트 간에 있다. 이에 따라, 일 실시예에서, 커플링에 대한 보상이 사용될 유일한 시간은 메모리 셀이 제 1 프로그램된 상태(예를 들면, 상태 A)에 있고 이의 이웃이 한 세트의 상태들(4 상태, 8 상태 또는 다른 수의 상태들) 중 가장 높은 프로그램된 상태(예를 들면, 상태 C)에 있을 때이다. 다른 실시예에서, 커플링에 대한 보상은 이웃 메모리 셀이 즉 상태 B와 같은 상이한 상태 또는 또 다른 상태에 있을 때 사용될 수 있다. 4개 이상 또는 미만의 상태를 사용하는 일부 실시예에서, 커플링에 대한 보상은 이웃 메모리 셀이 커플링을 야기하는 것으로 발견된 상태에 있을 때 사용될 수 있다. 유사하게, 커플링에 대한 보상은 특정 구현에 적합할 때, 타깃 메모리 셀이 상태 A 이외의 상태에 있을 때 사용될 수 있다.
이웃 메모리 셀의 상태가 어떤 기술을 사용하여 검출 또는 획득될 수 있다면, 고찰되는 메모리 셀에 대해 필요로 되는 정정량이 결정되어 다음 판독 동작에서 조절될 수 있다. 한 특정 메모리 셀의 상태를 아는 한 방법은 판독 동작을 통해서이다. 그러나, 일 실시예에서, 이웃 비트 라인을 위한 감지 증폭기 사이에 연락은 없다. 판독 동작 후에라도, 고찰되는 메모리 셀은 이의 이웃 메모리 셀의 상태를 알지 못할 것이다.
도 17은 메모리 셀이 상태 A에 있는지와 이의 이웃들 중 하나 이상이 상태 C에 있는지에 기초하여 보상을 사용해야 할지와 얼마나 사용해야 할지를 결정하기 위한 일 실시예를 기술하는 흐름도이다. 적어도 2개의 상황들이 있다. 한 상황에서, 판독되는 한 특정의 메모리 셀이 상태 A에 있고 이의 이웃들 중 하나가 상태 C에 있다. 제 2 상황에서, 판독되는 특정 메모리 셀은 상태 A에 있고 이의 이웃들(서로 다른 비트 라인들) 중 2개가 상태 C에 있다. 도 17의 프로세스는 한 특정 메모리 셀(또는 한 특정의 비트 라인)에 대한 임의의 이웃들이 상태 C(또는 한 세트의 7 이상의 상태들 중 가장 높게 프로그램된 상태)에 있는지를 결정한다. 이 프로세스는 도 15의 단계 802 및 도 16의 단계 860)을 구현하는데 사용될 수 있다.
도 17의 단계 900에서, 메모리 셀이 상태 C에 있는지를 결정하기 위해, 선택된 워드 라인에 연결된 모든(또는 일부) 메모리 셀이 판독된다. 이것은 판독 비교점 Vrc을 사용하여 달성된다. Vrc보다 큰 임계 전압을 갖는 메모리 셀은 상태 C에 있는 것으로 가정된다. Vrc 미만인 임계 전압을 갖는 메모리 셀은 상태 C에 있지 않다. Vrc를 사용한 판독 동작의 끝에서, 각각의 감지 증폭기는 이 대응 메모리 셀이 상태 C에 있는지를 래치할 것이다. 극복되어야 하는 한 장애물은 어떤 구현들에서 감지 증폭기들이 이웃 감지 증폭기들과 연락될 수 없다는 것이다. 이에 따라, 도 7를 보면, 비트 라인(BL2)에 대한 감지 증폭기는 감지 증폭기 비트 라인(BL1) 또는 비트 라인(BL3)과 연락할 수 없다. 이러므로, BL2에 대한 감지 증폭기는 BL1 및 BL3 상에 이웃 메모리 셀이 상태 C에 있는지를 알지 못한다. 이웃 메모리 셀이 상태 C에 있는지를 나타내기 위해서 단계들 902 ~ 910이 수행된다. 단계 902에서, 상태 C에 있는 것으로 단계 900에서 감지된 메모리 셀에 연결된 모든 비트 라인들은 소정의 전압으로 충전된다. 한 가지 예에서, 메모리 셀이 상태 C에 있는 비트 라인들은 0.5 볼트까지 충전된다. 도 9를 보면, 이것은 트랜지스터(612)의 게이트에 0.5볼트 + Vth(트랜지스터(612)의)을 인가하고 INV = 0이 되게 RST 신호를 로우로 토글링하여 달성될 수 있다. 다른 감지 증폭기들은 INV = 1로 셋업되었으며, 따라서 이들의 비트 라인들은 충전되지 않을 것이다. GRS = 0에서는 비트 라인 상에 능동적 풀 다운은 없다. C데이터로 비트 라인들이 충전될 때, 이웃 비트 라인들은 비트 라인간 커플링에 기인하여 이들 비트 라인에 결합될 것이다. 한 구현에서, 이러한 커플링은 총 비트 라인 용량의 40%일 수 있다. C 데이터의 두 이웃들을 갖는 비트 라인에서 용량성 커플링은 총 비트 라인 커패시턴스의 80%에 이를 수도 있을 것이다. 예를 들면, 비트 라인이 C 데이터의 한 이웃을 갖는다면, 이것은 대략 0.15 볼트만큼 결합될 수 있다. 비트 라인이 C 데이터의 2개의 이웃들을 갖는다면, 이것은 대략 0.3 볼트만큼 결합될 수 있다.
단계 904에서, C 데이터의 2개의 이웃들을 갖는 이들 비트 라인들이 확인된다. 일 실시예에서, 단계 904는 BLC를 0.2 + Vth(트랜지스터(612)의)까지 낮춤으로써 달성된다. 이것은 트랜지스터(612)의 드레인 지역이 Vdd이고 소스측이 0.3 볼트이기 때문에 2개의 C 이웃들을 가진 비트 라인들이 이의 트랜지스터(612)을 턴 오프 하게 할 것이다. 이어서, SEN 노드는 방전되지 않을 것이며, 감지 증폭기는 LAT =1 로 래치할 것이다. C 이웃이 하나이거나 C 이웃이 없는 다른 비트 라인들은 트랜지스터(612)를 도통되게 할 것이다. 비트 라인은 커패시터(Csa)보다 훨씬 큰 커패시턴스를 갖기 때문에, SEN 노드는 방전할 것이며 감지 증폭기는 LAT = 0으로 래치할 것이다. SEN 노드가 충전되었는지 아니면 방전되었는지의 결과는 적합한 데이터 래치들(394)에 저장될 것이다(단계 906). 단계(906) 후에, 감지 증폭기 및 비트 라인들은 리셋되며 상태 C에서 메모리 셀에 연결된 이들 비트 라인들은 단계 902와 유사하게 단계 908에서 다시 충전된다. 단계 910에서, 하나 이상의 C 이웃들에 결합된 비트 라인들은 BLC = 0.15 볼트 + Vth(트랜지스터(612))을 인가하여 감지된다. 시스템은 상태 C의 메모리 셀을 갖는 하나 이상이 이웃들이 있는 비트 라인을 감지한다. 단계 912에서, 결과들은 래치들(394) 중 하나에 저장될 것이다. 2개의 이웃들이 단계 904에서 상태 C에 있고 단계 908에서 하나 이상의 이웃들이 상태 C에 있다는 표시를 저장한 비트 라인에 대해서, 비트 라인들은 상태 C에 2개 이상의 이웃을 갖는 것으로 가정된다. 2개 이상의 이웃이 상태 C에 있다는 표시를 단계 906에서 저장하지 않았지만, 하나 이상의 이웃이 단계 910에서 상태 C에 있다는 표시를 저장한 비트 라인에 대해서, 이들 비트 라인들은 상태 C의 한 이웃을 갖는 것으로 가정된다.
도 18은 도 17의 프로세스에서 수행된 동작들 중 몇개를 그래픽적으로 도시한 타이밍도이다. 타이밍도는 단계들 902, 904, 906에 대응하는 3개의 기간들로 분할된다. 단계 902 동안에, 신호(BLC)는 0.5 볼트 + 트랜지스터(612)의 임계 전압까지 상승되는 것으로 보여졌다. 이것은 선택된 워드 라인에 연결되고 상태 C에 있는 메모리 셀에 결합된 모든 비트 라인에 대해 행해진다. 이들 비트 라인들은 0.5볼트까지 상승되는 것으로 보여졌다. 이어서 2개의 C 이웃들이 있는 비트 라인들은 비트 라인들이 0.3 볼트까지 상승되게 2개의 대응하는 이웃 비트 라인에 결합된다. C 이웃이 없은 비트 라인은 0 볼트에 머무를 것이다. 이 시간 프레임 동안에 신호(GRS)는 로우이다. 이어서 BLC는 0볼트까지 낮아지며 이어서 0.2 볼트 + 트랜지스터(612)의 임계 전압까지 상승되고, 이때 비트 라인들이 감지된다(단계 904). 2 상태 C 이웃 다음의 상기 비트 라인은 SEN 노드를 방전하지 않을 것이다 (라인 914 참조). 두 C 이웃들이 없었던 비트 라인들은 SEN 노드를 방전할 것이다(선 916 참조). 적합한 비트 라인 래치(382)에 데이터를 래치한 후에, 데이터는 데이터 래치들(394)에 전송된다.
도 19는 하나 이상의 C 이웃들을 갖는 메모리 셀에 대해 보상을 제공하는 것을 포함할 수 있는 판독 프로세스의 일 실시예를 기술한 것이다. 도 19의 프로세스는 도 15의 단계 804 및 도 16의 단계 862의 일 실시예의 더 상세를 제공한다. 또한, 단계들 940~950 및 964~972는 도 16의 단계 842를 구현하기 위해 사용될 수 있다. 워드 라인 및 모든 비트 라인들 또는 일부 비트 라인을 포괄하는 한 페이지의 데이터에 대해 도 19의 프로세스가 수행될 수 있다. 도 19의 단계 940에서, 페이지에 연관된 적합한 워드 라인에 판독 기준 전압 Vra이 인가된다. 이것은 판독 기준 전압(Vra)을 이 워드 라인에 연결된 메모리 셀에 대해 제어 게이트들에 인가되게 한다. 단계 842에서, 어드레스된 메모리 셀이 이들의 제어 게이트들에 Vra의 인가에 기초하여 도통하는지 여부를 결정하기 위해, 페이지에 연관된 비트 라인들이 감지된다. 도통하는 비트 라인들은 메모리 셀이 턴 온되었음을 나타내며; 따라서, 이들 메모리 셀의 임계 전압들은 Vra 미만이다(예를 들면, 상태 E). 단계 944에서, 비트 라인에 대한 감지의 결과들은 이들 비트 라인을 위한 적합한 래치들에 저장된다.
단계 946에서, 판독 기준 전압(Vrb)가 판독되는 페이지에 연관된 워드 라인에 인가된다. 단계 948에서, 비트 라인들은 위에 기술된 바와 같이 감지된다. 단계 950에서, 결과들은 상태 C에 이웃 메모리 셀을 갖지 않는 페이지에 메모리 셀에 연결된 비트 라인을 위한 적합한 래치들에 저장된다.
이 실시예는 상태 C의 메모리 셀들 옆에 있는 상태 A의 데이터의 정정을 시도한다. 야기될 수 있는 오류는 메모리 셀이 실제로 상태 A에 있을 때 상태 B에있는 것처럼 보이게 증가되는 명목 임계 전압을 갖게 될 것이라는 것이다. 단계 952에서, Vrb + 제 1 오프셋이 판독되는 페이지에 연관된 워드 라인에 인가된다. 라인 954에서, 위에 기술된 바와 같이 비트 라인들이 감지된다. 단계 956에서, 상태 C의 한 이웃하는 메모리 셀을 갖는 페이지에 메모리 셀에 연결된 비트 라인을 위한 적합한 래치들에 결과들이 저장된다. 단계 958에서, Vrb + 제 2 오프셋이 판독되는 페이지에 연관된 워드 라인에 인가된다. 단계 960에서, 비트 라인들이 위에 기술된 바와 같이 감지된다. 단계 962에서, 상태 C의 2개의 이웃하는 메모리 셀을 갖는 페이지에 메모리 셀에 연결된 비트 라인을 위한 적합한 래치들에 결과들이 저장된다.
단계 964에서, 판독 기준 전압(Vrc)가 판독되는 페이지에 연관된 워드 라인에 인가된다. 단계 966에서, 비트 라인들은 위에 기술된 바와 같이 감지된다. 단계 968에서, 모든 비트 라인을 위한 적합한 래치들에 결과들이 저장된다. 단계 970에서, 페이지(또는 그외 한 단위의 데이터)에 각 메모리 셀에 대한 데이터 값이 결정된다. 예를 들면, Vra에서 메모리 셀이 도통한다면 메모리 셀은 상태 E에 있다. 메모리 셀이 Vrb(또는 Vrb + 제 1 오프셋 또는 Vrbt + 제 2 오프셋) 및 Vrc에서, 그러나 Vra에서는 아닌 것에서 도통한다면, 메모리 셀은 상태 A에 있다. 메모리 셀이 Vrc에서 그러나 Vra 또는 Vrb(또는 Vrb + 어느 하나의 오프셋)에서는 아닌 것에서 도통한다면, 메모리 셀은 상태 B에 있다. 메모리 셀이 Vra, Vrb(또는 Vrb + 어느 한 오프셋) 또는 Vrc에서 도통하지 않는다면, 메모리 셀은 상태 C에 있다. 일부 실시예에서, 데이터 값들은 프로세서(392)에 의해 결정된다. 단계 972에서, 프로세서(392)는 각 비트 라인에 대해 적합한 래치들에 결정된 데이터 값을 저장할 것이다. 다른 실시예에서, 여러 레벨들(Vra, Vrb, Vrc)을 감지하는 것은 서로 다른 순서들로 행해질 수 있다.
제 1 오프셋 및 제 2 오프셋의 량은 특정 구현에 따른다. 여기 기술된 발명은 제 1 오프셋 또는 제 2 오프셋에 대한 임의의 특정한 값에 의존하지 않는다. 일 실시예에서, 제 1 오프셋은 0.1 볼트이고 제 2 오프셋은 0.2 볼트이지만, 적합할 때 그외 다른 값들이 사용될 수도 있다.
판독 프로세스 동안 서로 다른 비트 라인들 상에 인접한 메모리 셀 사이에 용량성 커플링을 정정하는 대신에, 프로그램할 때 보상이 수행될 수도 있다. 시스템이 프로그래밍시 데이터를 알 것이 때문에, 시스템은 메모리 셀이 상태 C로 프로그램되게 할당된 그의 이웃들 중 하나 이상을 갖고 있다면 약간 낮은 임계 전압으로 이 메모리 셀을 상태 A로 의도적으로 프로그램할 수 있다. 이렇게 하여 이 상태 A 메모리 셀은 상태 C로 할당된 이웃이 프로그래밍을 종료한 후에 정확하게 판독될 것이다.
프로그래밍 프로세스를 불합리하게 늦추지 않고 조밀한 임계 전압 분포들을 달성하는 한 해결책은 2 단계 프로그래밍 프로세스를 사용하는 것이다. 제 1 단계로서 거친 프로그래밍 단계는 신속하게 임계 전압을 상승시키려는 시도와 조밀한 임계 전압 분포들을 달성하기 위해 비교적 덜 유의하는 것을 포함한다. 제 2 단계로서 미세 프로그래밍 단계는 더 조밀한 임계 전압 분포를 달성하면서 타깃 임계 전압에 도달하기 위해서 서서히 임계 전압을 상승시키는 시도를 한다. 거친/미세 프로그래밍 방법의 예는 전체를 여기 참조로 포함시키는 미국특허 6,888,758에서 발견될 수 있다.
거친/미세 프로그래밍 방법의 한 가지 예에서, 프로세스는 타깃 검증 레벨(미세 검증 레벨이라고도 함) 및 거친 검증 레벨인 2개의 검증 레벨들을 사용한다. 프로세스는 프로그래밍 프로세스의 거친 단계를 수행하여 시작할 것이다. 메모리 셀의 임계 전압이 타깃 검증 레벨 미만인 거친 검증 레벨에 도달하였을 때, 메모리 셀은 비트 라인 전압을 0 볼트보다 크고 금지전압 미만인 값까지 높임으로써 미세 프로그래밍 단계에 진입할 것이다. 거친 단계 동안, 비트 라인 전압은 근사적으로 0볼트에 있을 것이다. 메모리 셀을 프로그램되는 것을 금지시키기 위해서, 비트 라인 전압은 금지전압까지 상승한다(예를 들면, Vdd). 미세 프로그래밍 단계 동안, 프로그래밍은 비트 라인 전압이 0볼트에서 중간값까지 상승되는 영향에 기인하여 거친 프로그래밍 단계에 비해 느려진다. 이러므로, 프로그램 스텝당 임계 전압에 변화는 거친 프로그래밍 단계 동안 더 작아지게 될 것이다. 메모리 셀은 메모리 셀에 대한 임계 전압이 타깃 임계 전압에 도달될 때까지 미세 프로그래밍 단계에 있게 될 것이다. 메모리 셀의 임계 전압이 타깃 임계 전압에 도달할 때, 비트 라인 전압은 Vdd까지 상승되어(또는 다른 금지 전압) 이 메모리 셀의 추가 프로그래밍을 금지시킨다.
서로 다른 비트 라인들 상에 이웃 메모리 셀 사이에 커플링을 정정하는 것을 포함하는 프로그래밍을 위한 제안된 방법은 위에 기술된 프로그래밍 프로세스를 사용할 것이지만, 2개의 검증 레벨 대신 3개의 검증 레벨들이 사용될 것이다. 예를 들면, 도 20은 상태 A에 대한 임계 전압 분포(980)을 도시한 것이다. 검증을 위해 사용되는 타깃 전압은 Vva이다. 위에 논의된 거친/미세 프로그래밍을 위한 종래 기술의 방법은 Vca로서 표기한 거친 검증 레벨을 갖는다. 제안된 기법은 이하 기술되는 바와 같이 사용될 제 3 검증 레벨(Via)를 추가하는 것을 포함한다. 요약하여, 거친 프로그래밍 단계 동안, 메모리 셀은 임계 전압이 Vca에 도달할 때까지 프로그램될 것이다. 이들 메모리 셀이 상태 A로 프로그램되고 있고 상태 C로 프로그램될 메모리 셀들 옆에 있기 때문에 보상을 요구하는 이들 메모리 셀은 임계 전압 Via에 도달할 때까지 미세 단계에서 프로그램될 것이다. 그외 메모리 셀은 이들의 임계 전압이 Vva에 도달할 때까지 미세 단계에서 프로그램될 것이다. 이에 따라, 상태 C의 이웃들을 갖는 상태 A의 메모리 셀은 낮은 임계 전압들, 아마도 타깃 임계 전압 분포(980) 훨씬 미만의 임계 전압들을 갖게 될 것이다. 이러므로, 커플링은 이들 메모리 셀의 임계 전압들이 임계 전압 분포(980)로 상승되게 할 것이다.
도 21은 메모리 셀의 이웃 어느 것도 상태 C에 있지 않기 때문에 보상을 필요로 하지 않았던 메모리 셀에 대한 거친/미세 프로그래밍의 한 가지 예를 나타내기 위해서 시간에 대한 임계 전압 및 시간에 대한 비트 라인 전압의 그래프들을 제공한다. 그래프들은 시간들 t1, t2, t3, t4 및 t5에서 메모리 셀에 대한 제어 게이트에 프로그래밍 펄스가 인가되는 것으로 가정한다. t1, t2, t3에 연관된 펄스들에서, 메모리 셀의 임계 전압은 증가된다. 시간 t3에서 메모리 셀의 임계 전압은 Vca보다 높게 된다. 이러므로, 거친 프로그래밍 단계는 종료하고 미세 프로그램밍 단계가 시작된다. 이에 따라 비트 라인 전압이 0볼트부터 중간 전압(V1)(예를 들면, 1볼트)까지 상승한다. 0볼트와는 반대인 중간 전압(V1)의 인가는 이 비트 라인에 대한 프로그래밍 프로세스를 늦춘다. 시간(t5)에서, 메모리 셀의 임계 전압이 Vva보다 클 때, 비트 라인 전압은 금지 전압(예를 들면, Vdd)까지 상승될 것이다.
도 22는 메모리 셀의 이웃들 중 하나 이상이 상태 C에 있고 이 메모리 셀이 상태 A로 프로그램되고 있기 때문에 보상을 요구하는 메모리 셀에 대한 그래프들을 도시한 것이다. 시간(t3)에서, 메모리 셀의 임계 전압은 Vca에 도달하게 증가되었고, 비트 라인 전압은 중간 전압(V1)까지 상승한다. 시간(t4)에서, 메모리 셀의 임계 전압은 Via에 도달하고, 이것은 Vca보다는 크고 Vva보다는 작으며, 따라서, 메모리 셀은 비트 라인 전압을 Vdd까지 상승시킴으로써 추가 프로그래밍으로부터 록아웃된다.
다른 실시예에서, V1 외에 복수의 중간 전압들이 사용될 수 있음에 유의한다. 예를 들면, 보상을 받는 메모리 셀은 한 중간 비트 라인 전압을 사용할 수 있고 보상을 받지 않은 메모리 셀은 또 다른 중간 비트 라인 전압을 사용할 수 있다. 다른 실시예에서, 서로 다른 비트 라인은 서로 다른 중간 전압들을 사용할 수 있다.
도 23은 도 21 및 도 22의 그래프들에 따라 프로그래밍을 위한 프로세스의 일 실시예를 기술하는 흐름도이다. 단계 700에서, 제어기에 의해 "데이터 로드"가 발행되고 제어 회로에 의해 수신된다. 단계 1002에서, 페이지 어드레스를 지정하는 어드레스 데이터가 제어기 또는 호스트로부터 디코더(314)에 입력된다. 단계 1004에서, 어드레스된 페이지에 대한 한 페이지의 프로그램 데이터(또는 그외 한 단위의 데이터)가 프로그래밍을 위해 데이터 버퍼에 입력된다. 이 데이터는 적합한 한 세트의 래치들에 래치된다. 단계 1006에서, "프로그램" 명령이 제어기에 의해 상태 머신(312)에 발행된다. 단계 1008에서, 커플링을 보상할지에 관하여 결정이 행해진다. 예를 들어, 제어기(350), 제어 회로(310), 감지 블록(400) 또는 또 다른 성분은 특정 메모리 셀이 상태 C로 프로그램되고 있고 이의 이웃들 중 하나 이상이(또는 2 이상) 상태 C로 프로그램될 것이기 때문에 프로그래밍 동안에 이 특정 메모리 셀이 보상을 받을 것을 필요로 할 것인지를 결정할 것이다. 제어기(350) 및 제어 회로(310)는 모든 프로그램 데이터를 알고 있기 때문에, 일 실시예에서, 시스템은 보상이 필요할지를 자동으로 알 것이다. 다른 실시예에서, 각 비트 라인을 위한 데이터 래치들 각각은 프로그램될 데이터를 알 것이다. 이러므로, 감지 모듈들(400)은 비트 라인들 중 어느 하나가 상태 C로 프로그램될 데이터를 가진 이웃들을 갖고 있는지를 결정하기 위해서 도 17의 단계들 908, 910, 912를 수행할 수 있다. 이러하다면, 이러한 이웃들을 갖는 이들 비트 라인들은 보상을 위해 마크된다. 도 23의 일 실시예에서, 상태 C의 하나 이상의 이웃들을 가진 메모리 셀에 제공되는 단지 한 보상 값만이 있다. 다른 실시예에서, 상태 C의 한 이웃 또는 상태 C의 2개의 이웃들이 있는지 여부에 따라 값들의 서로 다른 보상이 제공될 수 있다.
도 23의 단계 1010에서, 초기 펄스는 이의 초기값으로 설정되고, 프로그램 카운터는 이의 초기값으로 설정되고 비트 라인 전압은 이의 초기값으로 설정된다. 프로그램될 메모리 셀에서, 비트 라인 전압은 0볼트에 설정될 것이다. 프로그램되지 않을 메모리 셀에 대해서, 비트 라인은 Vdd에 설정될 것이다. 초기 전압의 표시는 래치에 저장될 수도 있다. 일부 실시예에서, 초기 비트 라인 값은 프로그램 펄스 스텝(1012)(이하 다루어짐) 동안 인가될 수 있다.
단계 1012에서, 프로그램 펄스가 적합한 워드 라인에 인가된다. 단계 1014에서, 검증 프로세스가 수행된다. 메모리 셀이 거친 프로그래밍 단계에 있다면, 메모리 셀의 임계 전압이 거친 검증 레벨에 도달하였는지를 결정하기 위해 단계(1014)의 검증 프로세스가 사용될 것이다. 메모리 셀이 미세 프로그래밍 단계에 있다면, 메모리 셀에 대한 임계 전압은 보상을 요구하는 메모리 셀에 대해 타깃 임계 전압(예를 들면, Vva) 또는 중간 검증 레벨(예를 들면, Via)과 비교될 것이다. 단계 1014의 더 상세한 것들이 이하 제공될 것이다. 단계 1016에서, 프로그램될 모든 메모리 셀에 대한 상태가 이들이 모두 검증을 마친 상태인지가 결정된다. 이들이 모두 검증되었다면 성공적인 프로그래밍 프로세스가 단계 1018에서 보고된다. 이들이 모두 검증되지 않았다면, 단계 1020에서 프로그램 카운터 PC가 프로그램 제한값 PC 최대에 대해 체크된다. 프로그램 카운터 PC가 PC 최대 미만이 아니라면, 프로그램 프로세스는 실패된 것이며 실패 상태가 단계 1022에서 보고된다. 프로그램 카운터가 PC 최대 미만이라면, 프로그램 전압(Vpgm) 크기는 스텝 크기만큼 증가되고 프로그램 카운터 PC가 단계 1024에서 증분된다. 단계 1024 후에, 프로세스는 단계 1012로 루프 백하여 다음 Vpgm 펄스를 인가한다.
도 24는 도 23의 검증 단계 1014의 일 실시예를 기술하는 흐름도이다. 단계 1060에서, 시스템은 메모리 셀이 거친 프로그래밍 단계에 있는지 아니면 미세 프로그래밍 단계에 있는지를 결정한다. 도 23의 프로세스는 일 그룹의 메모리 셀들(예를 들면, 공통 워드 라인에 연결된 한 페이지의 메모리 셀들)에 대해 수행되는 고 레벨 프로세스를 기술함에 유의한다. 도 24의 프로세스는 프로그램되는 각 특정의 메모리 셀마다 개별적으로 수행된다. 일 실시예에서, 감지 블록들에는 특정 메모리 셀이 거친 또는 미세 프로그래밍 단계에 있는지의 표시를 저장하기 위해 래치를 구비할 것이다. 메모리 셀이 거친 프로그래밍 단계에 있다면 검증 프로세스는 단계 1062에서 거친 검증 레벨(예를 들면, Vca)로 수행될 것이다. 즉, 메모리 셀의 임계 전압이 적합한 거친 검증 레벨에 도달하였는지를 결정하기 위해 감지 증폭기가 사용될 것이다. 예를 들면, 메모리 셀이 상태 A로 프로그램되고 있다면, 감지 증폭기는 위에 기술된 바와 같이 메모리 셀의 임계 전압이 Vca에 도달하였는지를 테스트할 것이다. 임계 전압이 거친 검증 레벨에 도달하였다면(단계 1064), 메모리 셀은 거친 프로그래밍 단계를 완료하였다. 이러므로, 단계 1066에서, 메모리 셀이 다음 프로그래밍 펄스에서 미세 프로그래밍 단계에 진입하도록 비트 라인 전압이 중간 전압(V1)까지 상승한다. 단계 1066 후에, 프로세스는 임계 전압이 미세 검증 레벨(또는 중간 검증 레벨이 적합하다)을 초과하였는지를 결정하기 위해 단계 1080(이하 논의됨)에서 계속될 것이다. 메모리 셀의 임계 전압이 거친 검증 레벨에 도달하지 않았다면, 비트 라인 전압은 메모리 셀이 거친 프로그래밍 단계를 계속하도록 단계 1068에서 현재 레벨에 있게 될 것이다.
단계 1060에서, 메모리 셀이 미세 프로그래밍 단계에 있는 것으로 결정된다면, 단계 1080에서 메모리 셀이 상태 A로 프로그램되고 있고 커플링에 대한 보상을 필요로 하는지가 결정된다. 그렇지 않다면, 검증 프로세스는 미세 검증 레벨(예를 들면, 타깃 검증 레벨 Vva, Vvb 또는 Vvc)을 사용하여 단계 1082에서 수행된다. 보상이 필요하다면, 단계 1090에서 중간 검증 레벨(Via)를 사용하여 검증 프로세스가 수행된다. 메모리 셀의 임계 전압이 적합한 검증 레벨 이상이라면(단계 1084), 메모리 셀은 비트 라인 전압을 Vdd까지 상승시킴으로써 단계 1088에서 추가 프로그래밍으로부터 록 아웃 된다. 메모리 셀의 임계 전압이 검증 레벨 이상이 아니라면(단계 1084), 비트 라인 전압은 단계 1086에서 이의 현재 레벨로 유지되고 미세 프로그래밍 단계는 계속될 것이다.
셀의 플로팅 게이트 사이의 커플링 효과는 위에 기술된 바와 같이 프로그램 시퀀스 동안 정정될 수 있다. 또한, 이것은 판독 동작들 동안 정정될 수 있다. 다음 논의는 판독이 이웃 메모리 셀 상태들에 따라 수정될 수 있도록 비트 라인간 커플링 효과를 감지 프로세스에 수정 인자로서 사용하는 판독 시퀀스를 기술한다. 도 25 및 도 26은 이웃 메모리 셀로부터 커플링을 경험하는 어떤 메모리 셀에 보상을 제공할 수 있게 하는 데이터 판독 프로세스의 실시예를 설명한다. 단계 1100에서, 비트 라인에 그리고 선택된 워드 라인에 연결된 메모리 셀이 상태 C에 있는지를 결정하기 위해 모든 비트 라인들이 판독된다. 이것은 판독 비교 점으로서 Vrc를 사용하는 판독 동작을 수행하여 수행된다. 상태 C에 있는 메모리 셀을 갖는 비트 라인들은 메모리 셀이 상태 C에 있다는 표시를 래치할 것이다. 판독 동작이 도 18에 도시되었다. 단계 1102에서, 상태 C 이외의 상태의 메모리 셀을 갖는 비트 라인들은 충전될 것이다. 일 실시예에서, 비트 라인들은 0.5 볼트까지 충전된다. 비트 라인들이 단계 1102에서 충전된 후에, 상태 C의 메모리 셀에 연결되는 비트 라인들은 단계 1104에서 0.25 볼트 내지 0.4 볼트로 충전된다. 단계 1104에서 상태 C의 메모리에 연결된 비트 라인을 충전하는 것은 단계 1102에서 충전된 비트 라인을 0.5 볼트보다 높은 전압에 결합할 것이다. 예를 들면, 도 26은 상태 C의 메모리 셀을 갖지 않는 비트 라인을 나타내는 비트 라인(BLn)을 도시한 것이다. 그래프는 단계 1102 동안 0.5 볼트까지 비트 라인이 충전되는 것을 나타낸다. 비트 라인 BLn+1은 상태 C의 메모리 셀에 연결되고 BLn+1은 BLn에 이웃이다. 단계 1104동안, 비트 라인 BLn+1은 어떤 근사적으로 0.4 볼트까지 충전된다. 비트 라인(BLn)은 점선(1120)으로 나타낸 바와 같이, 0.5보다 높은 전압에 결합될 것이다. 단계 1104에서 충전되었던 이웃 옆에 있지 않은 비트 라인들은 선 1122로 나타낸 바와 같이 0.5 볼트에 있게 될 것이다. 도 25의 단계 1106에서, 모든 비트 라인들(또는 일부 비트 라인들)이 감지될 것이다. C 이웃을 가진 비트 라인들은 더 높은 비트 라인 전압을 갖는 것으로 감지될 것이다. 더 높은 비트 라인 전압 때문에, 비트 라인은 낮은 임계 전압이 나타날 수 있게 하는 더 많은 전류를 도통시킬 것이다. 이것은 이웃 셀 사이에 커플링을 보상할 것이다. C 이웃들을 가진 셀은 이들이 이웃들이 프로그램된 후에 그의 원 프로그램 레벨보다 높은 플로팅 전압에 결합된다. 플로팅 게이트 사이의 커플링 보상을 함께 한 이러한 판독은 셀의 원 프로그램 레벨들을 정확하게 읽어낼 것이다. 이러한 판독 정정은 복수의 판독 동작들로부터 시간 페널티없이 행해진다. 한 판독 동작은 정정을 필요로 하는 메모리 셀들 및 정정을 필요로 하지 않는 메모리 셀에 대한 결과들을 얻는다.
위에 기술된 일 실시예에서, 셀 소스 잡음이 제거되고 있을 때 몇개의 감지 스트로브들이 있을 수 있다. 도 25 및 도 26에 관하여 위에 기술된 프로세스는 모든 감지 스트로브들 동안 또는 나중에 감지 스트로브들 동안에 적용될 수 있다. 예를 들면, 2개의 스트로브들 있는 일 실시예에서, 제 1 스트로브는 도 25 및 도 26의 프로세스를 사용할 수 없으나 제 2 스트로브는 도 25 및 도 26의 프로세스를 사용할 수 있다.
위에 설명은 프로그래밍 동안 및 판독 동안 플로팅 게이트 커플링을 보상하기 위한 프로세스들을 기술한 것이다. 일부 실시예에서, 프로그래밍 및 판독 동안 보상이 수행될 수 있다. 그러나, 대부분의 실시예에서, 보상은 프로그래밍 동안에 또는 판독 동안에 수행될 것이지만 둘 다의 동안에는 수행되지 않을 것이다. 판독 동안에 또는 프로그래밍 동안 보상을 수행할지 판단은 메모리 시스템의 사용에 기초하여 행해질 수 있다. 예를 들면, 데이터가 몇회만 프로그램되고 다수 회 판단될 경우 호스트에서 메모리 시스템이 사용될 예정이라면, 프로그래밍 동안 보상하는 것이 더 나을 수도 있다. 대안적으로, 호스트가 수회 프로그램하고 몇회만 판독할 것이라면, 판독 프로세스동안 보상을 수행하는 것이 더 낫다.
일 실시예에서, 메모리 시스템은 판독 프로세스 동안 및 프로그래밍 프로세스 동안 보상을 수행하기 위한 기술을 포함하게 제작될 수 있다. 제조 프로세스 동안 또는 후에 어떤 시점에, 메모리 시스템은 단지 판독 프로세스동안에 또는 단지 프로그래밍 프로세스 동안에 보상을 수행할 것이다.
도 27은 판독 프로세스 동안에 또는 프로그래밍 프로세스 동안에 보상을 수행하도록 메모리 시스템을 구성하기 위한 프로세스를 기술하는 흐름도를 제공한다. 단계 1200에서, 메모리 시스템은 판독 동안 보상을 수행하며 프로그래밍 동안 보상을 수행하는 능력을 갖추어 제작된다. 이것은 반도체 웨이퍼를 제조하는 것을 포함할 수 있다. 선택적으로, 단계 1200는 이 기술에 공지된 프로세스들을 사용하여 웨이퍼를 패키지하는 것을 포함할 수도 있을 것이다. 패키지는 위에 기술된 구성을 수행하는 스위치를 구비할 수도 있고 구비하지 않을 수도 있다. 집적 회로 상에 저장소자에 연결된 이러한 스위치를 추가하는 기술은 이 기술에 공지되어 있다. 단계 1202에서, 단계 1200에서 제조된 메모리 시스템의 부분인 플래그(보상 플래그)는 판독 동안 보상이 수행되어야 할지 또는 프로그래밍 동안에 보상이 수행되어야 할지를 나타내기 위한 의도된 사용에 기초하여 설정된다. 플래그는 제조 프로세스 동안에, 제조 프로세스 후에, 테스트 프로세스 동안에 또는 디바이스가 사용되는 동안에 설정될 수 있다. 단계 1204에서, 장치를 사용할 때, 시스템은 보상 플래그를 체크할 것이다. 보상 플래그가 판독 동안 보상을 수행하게 설정되었다면, 단계 1206에서 메모리 시스템은 판독 프로세스 동안 커플링 보상을 제공할 것이다. 보상 플래그가 프로그래밍에 대해 설정된다면, 메모리는 프로그래밍 프로세스동안 커플링 보상을 제공할 것이다(단계 1208).
플래그는 많은 서로 다른 방법들로 단계 1202에서 설정될 수 있다. 제조 또는 테스트 프로세스 동안에, ROM 휴즈는 판독 동안에 또는 프로그래밍 동안 보상이 수행되어야 함을 나타내기 위해 설정될 수 있다. 다른 실시예에서, 플래그의 표시를 저장하기 위한 다른 수단(예를 들면, 비휘발성 어레이에 메모리 셀, 플립플롭, 또는 이외 다른 저장장치)이 제조 프로세스 동안, 또는 나중에 구현 및/또는 설정될 수 있다. 또한, 플래그는 테스트 프로세스 동안에 또는 사용 동안에 설정될 수 있다. 또한, 집적 회로를 위한 패키지는 호스트에 메모리 카드의 삽입에 앞서 사용자에 의해 설정될 수 있는 스위치를 포함할 수도 있을 것이다.
일부 실시예에서, 보상 플래그는 메모리 시스템이 호스트에 삽입된 후에 단계 1202에서 설정될 수 있다. 도 28 내지 도 31은 이러한 구성의 예들을 제공한다. 도 28의 단계 1300에서, 메모리 시스템이 호스트에 설치된다. 호스트의 예들은 디지털 카메라, 음악 플레이어, 이동전화, 휴대 계산장치, 또는 그외 계산장치를 포함할 수 있다. 예의 목적으로, 음악 플레이어가 프로그램보다 더 많이 자주 판독될 수 있음을 고찰한다. 이러므로, 음악 플레이어는 프로그래밍 동안 보상을 제공할 수도 있다. 한편, 디지털 카메라는 더 자주 프로그램할 수도 있고, 이러므로 판독 프로세스 동안 보상 프로세스를 제공하기가 더 적합할 수도 있다. 도 28의 단계 1302에서, 호스트는 이의 선호를 제어기에 통지할 것이다. 즉, 호스트는 보상을 수행하기를 원할 때 기지의 프로토콜을 사용하여 제어기에 알릴 수 있음을 알기 위해 사전에 프로그램될 것이다. 단계 1304에서, 제어기는 호스트로부터 선호를 수신하여 호스트로부터 수신된 이 선호에 기초하여 보상 플래그(메모리 셀에 또는 다른 저장장치에 저장된)을 설정할 것이다.
도 29는 메모리 시스템을 구성하기 위한 또 다른 실시예의 흐름도를 제공한다. 단계 1320에서, 메모리 시스템이 호스트에 설치된다. 단계 1332에서, 사용자는 선호를 선택할 수 있다. 일 실시예에서, 사용자는 기계 스위치를 이동시키거나 호스트의 사용자 인터페이스에서 선호를 선택하여 선호를 선택할 것이다. 예를 들면, 디지털 카메라의 사용자는 판독 동안에 보상을 수행하게 선택할 수 있고 음악 재생 장치의 사용자는 프로그래밍 동안 보상을 수행하게 선택할 수도 있다. 단계 1334에서, 호스트는 이 선호를 제어기에 통보한다. 단계 1336에서, 제어기는 호스트로부터 수신된 선호에 기초하여 보상 플래그를 설정한다.
도 30은 메모리 시스템을 구성하기 위한 프로세스의 또 다른 실시예를 기술하는 흐름도를 제공한다. 단계 1330에서, 메모리 시스템이 호스트에 설치된다. 단계 1332에서, 제어기는 호스트가 자신을 확인할 것을 요청한다. 예를 들면, 호스트는 디지털 카메라, 음악 플레이어, PDA, 휴대 전화 등임을 나타낼 수 있다. 제어기는 이 정보를 수신하여 단계 1334에서 호스트 정보의 테이블에 액세스할 것이다. 테이블은 보상 플래그 설정방법을 장치의 각 모델 또는 유형마다 확인할 것이다. 이 테이블 및 호스트로부터 수신된 정보에 기초하여, 제어기는 구성을 선택할 것이다(예를 들면, 판독 동안 또는 프로그램 동안 보상을 수행할지를 선택한다). 단계 1336에서, 이에 따라 제어기는 단계 1334에서 결정된 구성에 기초하여 플래그를 설정할 것이다.
도 31은 메모리 시스템을 구성하기 위한 프로세스의 또 다른 실시예를 기술하는 흐름도이다. 단계 1360에서, 메모리 시스템이 호스트에 설치될 것이다. 단계 1362에서, 호스트는 복수의 파일들이 메모리 시스템에 저장되게 할 것이다. 소정량의 시간 후에, 또는 소정량의 파일들이 메모리 시스템에 저장된 후에 또는 호스트 또는 사용자로부터 명령시, 제어기는 단계 1364에서 메모리 시스템에 저장된 가장 대표적 파일유형을 결정할 것이다. 예를 들면, 파일들이 저장되고 이들 중 8개가 음악 파일들이라면, 제어기는 가장 대표적 파일이 음악 파일인 것으로 결정할 것이다. 단계 1366에서, 제어기는 대표 파일 유형에 기초하여 구성을 결정할 것이다. 예를 들면, 파일 유형들을 리스트하고 각 파일유형에 대해 값이 보상 플래그에 대해 저장될 표가 메모리 시스템에 저장될 수 있다. 플래그의 값은 프로그래밍 또는 판독 동안 보상을 수행할지를 나타낼 수 있다. 단계 1368에서, 제어기는 단계 1366에서 결정된 구성에 기초하여 보상을 설정할 것이다.
이웃 셀에 전하들에 기인한 교란에 대해 프로그래밍 동안 보상
셀간의 플로팅 게이트 커플링("유핀 효과")
앞에 기술된 바와 같이, 메모리 셀의 전하 저장소자에 프로그램되는 전하는 이웃 메모리 셀의 전계를 교란시키는 전계를 야기한다. 이것은 전하 저장소자를 가진 전계효과 트랜지스터인 이웃 메모리 셀의 특성에 영향을 미칠 것이다. 특히, 감지시 메모리 셀은 덜 교란되었을 때보다 더 높은 임계 레벨(또는 더 프로그램된)을 갖는 것으로 나타날 것이다.
일반적으로, 제 1 필드 환경 하에서 메모리 셀이 프로그램-검증되고 나중에 이웃 셀이 다른 전하들로 후속하여 프로그램됨에 기인한 다른 필드 환경 하에서 다시 판독된다면, 판독 정확성은 "유핀 효과"라고 하는 것에서 이웃 플로팅 게이트 사이의 커플링에 기인하여 영향을 받을 수 있다. 반도체 메모리들에 훨씬 더 큰 집적도에서, 메모리 셀 사이에 저장된 전하들에 기인한 전계의 교란(유핀 효과)은 셀간 간격이 축소됨에 따라 상당히 증가하게 된다.
판독 동안 BL - BL WL - WL 유핀 효과에 대한 정정
한 방법은 앞의 단락에 기술된 바와 같이 판독 동작들 동안에 BL-BL 유핀 효과를 보상하는 것이다. 이웃 비트 라인들 상에 셀의 프로그램된 상태들이 먼저 파악되어 현 비트 라인 상에 현 셀을 판독할 때 적합한 보상을 행하기 위해 사용되는 룩-어헤드("LA") 기술이다. 이웃 셀의 데이터를 판독하기 위해서, 현 셀의 비트 라인에 추가의 감지가 수행된다. 이웃 비트 라인들 상에 검출된 데이터에 기초하여, 현 셀을 감지할 때 적합한 량의 보상이 사용된다.
판독 동안 WL-WL 유핀 효과에 대한 정정은 룩-어헤드("LA") 판독이라고 하는 것이다. LA 판독 기법은 전체 개시된 바를 참조로 여기 포함시키는 미국특허 7,196,928 및 "Read Operations for Non-Volatile Storage that Includes Compensation for Coupling" 명칭의 2006년 10월에 공개된 미국특허출원 공개번호 US-2006-0221714-A1에 개시되어 있다. LA 정정을 갖춘 판독은 기본적으로 인접한 워드 라인 상에 셀에 프로그램되는 메모리 상태를 검사하여 현 워드 라인 상에 판독되는 메모리 셀에 대해 이들이 갖는 임의의 교란영향을 정정한다. 위에 기술된 바람직한 프로그래밍 기법에 따라 페이지들이 프로그램되었다면, 인접한 워드 라인은 현 워드 라인 바로 위에 워드 라인으로부터 일 것이다. LA 정정 기법은 인접한 워드 라인 상에 데이터가 현 페이지에 앞서 판독될 것을 요구할 것이다.
대안적인 직접 LA 기법("DLA")가 참조로 여기 전체 개시된 바를 포함시키는 "System for Performing Read Operations on Non-Volatile Storage with Compensation for Coupling" 명칭의 2006년 3월 17일에 출원된 미국특허출원번호 11/377,972에 개시되어 있다. 또한, DLA 기법은 다음 워드 라인 상에 인접한 셀의 프로그램된 상태를 고려하여 현 워드 라인에 셀의 판독에 대해 정정한다. 간단히 판독 동안 현 워드 라인을 바이어스하는 대신에, 정정은 결과적인 플로팅-게이트 커플링이 WL-WL 유핀 효과 오류들을 오프셋하도록 이웃 워드 라인에 바이어스하여 달성된다.
판독 동안에 유핀 효과를 정정하는 것이 가능하나, 동작은 메모리가 셀당 더 많은 메모리 상태를 지원할 때 부담을 증가하게 된다. 2비트 또는 4상태 메모리에서, 현 워드 라인 상에 페이지의 프로그램된 상태를 결정하기 위해 적어도 3번의 판독들이 이미 있을 것이다. 다음 워드 라인 상에 데이터가 보상을 행하기 위해 사용된다면, 다음 워드 라인 상에 페이지도 판독되어야 할 것이다. 따라서, 현 워드 라인 상에 현 페이지를 판독하는 것은 다음 워드 라인 상에 다음 페이지를 판독하는 것을 요구할 것이다.
프로그래밍 동안 유핀 효과 대한 정정
감소된 프로그래밍 수행의 대가가 있을지라도 많은 방법들로 프로그래밍 동안 유핀 효과를 정정하는 것이 바람직하다. 많은 메모리 장치는 일단 데이터가 프로그램되면 후속하여 거의 또는 전혀 업데이트 없이 여러 번 판독되게 사용된다. 이에 따라, 장치의 전체 수행은 프로그래밍 측으로 정정 부담을 옮김으로써 최적화된다.
유핀 효과는 행을 따라 비트 라인을 횡단하여(BL-BL 유핀 효과), 그리고 메모리 어레이의 열을 따라 워드 라인을 횡단하여(WL-WL 유핀 효과) 있을 수 있는 이웃 셀에 더 강하게 영향을 미친다. 프로그램-검증 시간과 이웃 셀이 프로그램된 것에 이은 판독 시간 사이에 셀에 대한 필드 환경에 비대칭을 최소화하여 완화될 수 있다.
프로그래밍 동안에 유핀 효과를 감소시키는 몇 가지 방법들이다. 한 방법은 워드 라인을 따라 한 페이지의 메모리 셀의 프로그래밍이 1이상 패스내 완료되는 다중-패스 프로그래밍을 수행하는 것이다. 전형적으로, 적어도 2 프로그래밍 패스들이 수행된다. 제 1 패스는 통상은 타깃 상태들에 있어야 할 것보다 낮게 오프셋된 대응 검증 레벨들을 사용하여 각각의 타깃 상태들에 가까운 페이지에 모든 셀을 프로그램한다. 후속 패스는 이러한 오프셋 없이 정규 검증 레벨들을 사용하여 프로그래밍을 완료한다. 셀 상에 유핀 효과는 셀의 프로그래밍에 이은 이웃들의 변화(즉, 프로그래밍)에 의해서만 기여된다. 후속 패스가 플로팅 게이트 사이에 전하의 최소 변화로 수행될 때, 프로그램-검증과 후속 판독 동작들 간에 필드 환경에서 비대칭에 최소가 있을 것이다. 이에 따라, 유핀 효과는 2-패스 프로그래밍 기술에서 최소가 된다. 이 기술은 BL-BL 유핀 효과를 최소화할 수 있다. 나중에 기술되는 바와 같이, 이것은 워드 라인간에 프로그램할 때 특정 순서로 2 패스들이 수행된다면 WL-WL 유핀 효과를 감소시킬 수 있다.
위에 적어도 2-패스 프로그래밍 기법의 한 단점은 데이터가 적소에 있기 전에 각 프로그래밍이 적어도 2 패스들을 요구한다는 것이다. 즉, 데이터는 유효하지 않으며 따라서 최종 패스가 완료될 때까지 유용하지 않다.
대안적 다중-패스 프로그래밍 기법은 모든 비트들이 적소에 있게 될 때까지 각 패스가 점진적으로 한 추가의 비트를 프로그램하게 복수-비트 코딩을 채택하는 것이다. 이렇게 하여, 각 패스는 복수-비트 데이터의 적어도 한 비트를 프로그램하며 셀에 프로그램된 복수-비트 데이터가 유효하게 되기 전에 모든 패스들을 완료해야 할 필요없이 유용한 데이터를 저장할 수 있다. BL-BL 유핀 효과를 감소시키기 위해서, 2진 프로그래밍의 각 패스 사이에 전하들의 큰 변화를 피하는 코딩이 사용된다. 이러한 특성들을 가진 바람직한 코딩은 도 14에 관련하여 앞서 기술된 "LM" 코딩에 의해 주어진다. LM 코딩은 한 비트의 데이터를 각 패스가 효율적으로 저장할 수 있게 하나, 그럼에도불구하고 유핀 효과를 약 50%까지 감소시킬 뿐이다.
타깃 메모리 상태 및 소정 상태의 이웃 셀 모두에 따른 검증 레벨
발명의 일반적인 면에 따라서, 이웃 메모리 셀들 상에 전하들에 기인한 교란들은 이웃 메모리 셀에 후속하여 프로그램되는 교란 전하들에도 불구하고 셀로부터 올바른 타깃 상태가 판독되도록 검증 레벨을 조절하여 주어진 타깃 상태에 셀의 프로그래밍 동안 보상된다.
이것은 이웃 메모리 셀의 메모리 상태를 사전에 결정하고 프로그램되는 메모리 셀의 타깃 상태 및 이웃 메모리 셀의 메모리 상태의 함수로서 검증 레벨을 조절하여 달성된다. 또한, 기법은 단일 패스로 프로그래밍이 완료되는 이점이 있다.
도 32은 데이터-의존성 검증 레벨들을 사용하여 프로그램 동안 유핀 효과를 보상하는 방법을 도시한 흐름도이다. 이것은 근본적으로 데이터 의존성 검증 레벨들를 사용한 1-패스 프로그래밍 기법이다.
단계 1400: 프로그래밍 하에 각 메모리 셀의 임계 전압을 증가시키기 위해서 병렬로 일 그룹의 메모리 셀에 프로그래밍 전압을 인가한다.
단계 1410: 소정의 검증 레벨에 대해 검증되는 메모리 셀의 임계 전압을 결정하여 주어진 타깃 상태에 대한 일 그룹의 메모리 셀의 프로그램된 상태를 검증한다. 소정의 검증 레벨은 주어진 타깃 상태 및 검증되는 메모리 셀에 인접한 메모리 셀의 타깃 상태의 함수이다.
단계 1420: 검증된 그룹에 메모리 셀에 추가 프로그래밍을 금지한다.
단계 1430: 주어진 타깃 상태로 프로그램될 모든 메모리 셀이 검증되었나? 이러하다면, 단계 1440으로 진행하고 그렇지 않다면 단계 1400으로 진행한다.
단계 1440: 주어진 타깃 상태로 프로그램될 메모리 셀에 대해 프로그래밍이 행해진다.
도 33은 발명을 도시하는데 적합한 메모리 어레이의 부분을 도시한 것이다. 예를 들면, 워드 라인(WLn)에 의해 연결된 한 페이지의 메모리 셀은 병렬로 프로그램되고 있다. 메모리 셀(1460)과 같은 페이지에 셀들 중 어느 하나에 유핀 효과는 프로그램되는 메모리 셀(1460)에 인접한 인접한 셀의 후속 프로그래밍에 의해 대부분 기여된다. 특히, 워드 라인(WLn)을 따라, 좌측의 이웃은 셀(1472)이고 우측의 이웃은 셀(1474)이다. 유사하게, 프로그래밍 셀(1460)은 비트 라인(BL2)을 통해 감지 증폭기(도시되지 않음)에 결합된다. 비트 라인(BL2)을 따라, 워드 라인(WLn-1) 상에 프로그래밍 셀(1460) 미만의 이웃은 셀(1482)이고 위에 WLn+1 워드 라인 상에 이웃은 셀(1484)이다.
메모리 셀(1460)에 이웃들은 가능한 메모리 상태들 중 어느 하나일 수 있고, 각각은 이의 전하저장 소자에 상이한 량의 전하를 가지며 따라서 상이한 교란량을 나타낸다. 4개의 인접한 이웃들에서, 교란 범위는 이들 이웃들에서 가능한 메모리 상태의 순열에 의해 주어진다. 일반적으로 유일한 관계된 이웃들은 메모리 셀(1460)이 프로그래밍을 완료한 후에 프로그램될 것들이다. 실제로, 메모리 셀(1460)에 의해 나타난 교란량 따라서 보상 레벨들의 수를 관리가능한 수로 양자화하는 것이 바람직하다. 예를 들면, 보상 레벨들의 수는 "0"은 보상을 없음을 나타내고 "1"이 소정 레벨의 보상을 나타낼 수 있는 1비트에 의해 코딩될 수 있다. 또 다른 실시예에서, 4개의 가능한 보상레벨들까지를 표현하기 위해서 2비트들이 사용될 수 있다.
현 워드 라인 (WLn)에 인가된 소정의 오프셋 검증 레벨
일 실시예에서, 검증은 프로그램 검증될 메모리 셀에 연관된 워드 라인에 인가되는 소정의 오프셋 검증 전압 레벨로 감지하여 수행된다. 예를 들면, 도 33을 참조하면, 메모리 셀(1460)이 프로그램 검증되고 있다면, 소정의 검증 전압 레벨이 WLn에 인가된다.
도 34는 이웃 전하들에 교란을 보상하기 위해 프로그래밍 동안 WLn 상에 검증 레벨을 조절하는 것을 도시한 것이다. 예는 1비트에 의해 코딩된 2개의 가능한 보상 레벨들을 도시한 것이다. 이웃들이 소정의 임계값 미만의 총 교란으로 덜 프로그램될 때, 어떠한 보상도 사용되지 않는다. 이러므로, 검증 감지 동안 WLn 워드 라인에 인가되는 검증 전압 레벨은 셀(1460)과 같은 셀을 타깃 상태(보상 코드 "1")로 프로그래밍하는데 적합한, 정규 V(타깃 상태)와 동일하다. 한편, 이웃들이 소정의 임계값 이상의 총 교란을 갖고 더 프로그램된 상태들에 있을 때, 보상은 소정의 오프셋 전압 ΔV만큼 정규 검증 레벨을 오프셋하여 달성된다. 즉 V - ΔV의 전압이 WLn(보상 코드 "0")에 인가된다. 오프셋 ΔV은 ΔV(이웃 상태들)로 나타낸 이웃 상태의 함수이다. 도 34에서 예는 WLn이 NAND 체인(도 2 참조) 중에 선택된 워드 라인이고 나머지 비선택된 워드 라인들이 검증 동작 동안 이들에 인가되는 전압 Vpass를 갖게 될 NAND 메모리에 관계된다. WLn-1 및 WLn+1은 WLn에 인접한 비선택된 워드 라인들 중 두 개로서 보인 것이다.
일반적으로, 오프셋은 이에 프로그램될 타깃 상태들에 따른 이웃들로부터의 교란이 얼마나 많은가의 함수이다. 프로그램된 상태들이 많을수록, 전하들 및 교란 더 많을 것이다. 오프셋은 공장에서 메모리 칩의 초기 테스트 및 적격으로 하여 사전에 결정될 수 있다.
도 32에 예가 1비트 보상 기법을 보이지만, 2비트 보상 기법과 같은 더 정교한 기법들이 가능하다. 2비트 경우에, WLn에 인가될 수 있는 4개의 가능한 전압 레벨들, 즉, (V-ΔV1), (V-ΔV2), (V-ΔV3)이 있을 것이다.
도 35는 1-패스 데이터-의존성 검증 레벨이 현 워드 라인에만 적용되는 도 32에 도시된 검증 단계의 일 실시예를 도시한 흐름도이다. 검증 단계 1410은 다음을 포함한다.
단계 1412: 소정의 검증 레벨에 대해 검증되는 메모리 셀의 임계 전압을 결정하여 주어진 타깃 상태에 대한 일 그룹의 메모리 셀의 프로그램된 상태를 검증한다. 소정의 검증 레벨은 주어진 타깃 상태 및 검증되는 메모리 셀에 인접한 메모리 셀의 타깃 상태의 함수이다.
단계 1414: 검증은 검증되는 메모리 셀의 워드 라인 상에 소정의 검증 레벨에 의해 주어진 전압으로 감지하는 것을 포함한다.
프로그램될 메모리 셀이 NAND 체인의 일부이라면(도 2 참조), 소정의 검증 레벨이 프로그램되는 메모리 셀에 연관된 워드 라인에 적용될 것이다. 체인에 모든 다른 메모리 셀은 이들을 턴 온 시키기 위해서 이들의 연관된 워드 라인에 인가되는 패스 전압 Vpass을 가질 것이다(먼 드레인 측에 셀이 Vdd에 있을 수 있는 동안에).
1비트 보상 기법에서, 페이지의 모든 셀의 제어 게이트들이 동일 워드 라인(WLn)을 공유하기 때문에 프로그래밍 동안에 검증은 주어진 타깃 상태에 대해 페이지에 대해 2번 수행될 필요가 있다. 이웃들이 보상을 요구하지 않는 페이지에 셀에 대해서, 정규 검증 전압 레벨 V가 WLn에 인가된다. 보상을 요구하는 셀에 대해서, 오프셋 검증 전압 레벨 V-ΔV은 WLn에 인가된다.
다른 실시예에서, 더 많은 보상 레벨들이 고찰됨을 알 것이다. 서로 다른 레벨들은 하나 이상의 비트에 의해 코딩될 것이며 검증 동작은 서로 다른 보상 레벨들을 갖는 페이지의 서로 다른 부분집합들에 수행되어야 할 것이다. 프로그램 하에 셀에 대한 보상 레벨이 일단 결정되면, 검증 동작들 동안에 사용을 위해 셀의 동일 열 또는 감지 회로에 래치된다. 앞서 기술된 바와 같이, 검증할 수 없는 셀은 다음 프로그래밍 펄스에 의해 재차 프로그램될 것이며, 검증이 된 것들은 차후 프로그래밍으로부터 프로그램 금지될 것이다.
타깃 상태 및 프로그래밍 동안 이웃 메모리 셀의 소정의 메모리 상태의 함수로서 검증 레벨을 조절하여, 이웃 셀들 상에 현존하는 또는 예상되는 전하들에 기인한 유핀 효과는 근본적으로 한 프로그래밍 패스에서 보상된다. 모든 셀의 타깃 상태들에 가까운 제 1 패스에서 이들 셀을 프로그램하고 바람직하게 이웃 셀이 프로그램된 후에 추가 패스에서 프로그래밍을 완료할 필요성이 없다. 실제로, 프로그래밍은 바람직하게는 성능을 증가시키기 위해서 1 이상의 단계(예를 들면, 거친/미세 단계들)을 채용할 수도 있으나, 유핀 효과를 완화시키기 위해서 완전히 서로 다른 시간에서 2개의 개별적 패스들을 수행할 필요성이 없다. 단일-패스 프로그래밍은 최대 프로그래밍 성능 및 워드 라인간 더 간단한 프로그래밍 순서를 허용할 것이다.
하위 오프셋 검증 레벨로 동작시 문제
단일-패스 또는 다중-패스 프로그래밍 기법 중 어느 한 경우에 검증 레벨들은 패스들 중 적어도 한 패스에서 낮게 오프셋될 것이 요구된다. 지나치게 낮은 검증 레벨을 사용하여 문제가 생길 수 있다.
일반적으로, 셀의 이웃들로부터의 유핀 효과에 기인한 이 셀에의 교란은 셀의 명목 임계 레벨을 상승시키는 효과를 갖는다. 즉, 셀은 유핀 효과가 없는 것보다 더 프로그램될 것으로 보인다. 이에 따라, 검증 레벨은 유핀 효과를 고려할 때 정상보다 낮을 필요가 있을 것이다. 이것은 특히 2-패스 프로그래밍 기법에서 이러하다. 제 1 패스는 유핀 효과에 의해 완전히 영향을 받을 것이며 제 2 완전한 패스는 유핀 효과로부터 덜 영향을 받고 검증할 것이다. 이에 따라, 제 1 패스 검증 레벨은 최악의 경우 유핀 효과에 기인한 "과-프로그래밍"을 피하고 메모리 셀들 중에 한 집단의 임계 레벨들에 대해 좁은 분포를 보장하기 위해 정상보다 낮게 오프될 필요가 있을 것이다. 그러나, 다음 설명으로부터 알 수 있는 바와 같이, 오프셋은 1V 이상만큼 낮을 수 있다. 이것은 감지 동안 동작상에 어려움들을 드러내거나 메모리 셀이 지원할 수 있는 메모리 상태의 수를 제한시킬 수 있다.
도 36a는 4개의 서로 구별되는 클러스터들로 임계 윈도우에 분포된 4개의 메모리 상태를 지원하는 전형적인 한 집단의 메모리 셀의 예를 도시한 것이다. 각각의 클러스터는 4개의 메모리 상태들 중 하나를 갖는 한 집단의 메모리 셀을 나타낸다. 예는 -2.5 V 내지 4V의 범위인 임계 윈도우를 나타낸다. 일반적으로, 임계 윈도우의 하한은 음 전압들로 감지하는 감지 증폭기들의 능력에 의해 결정된다. 한편, 임계 윈도우의 상한은 고 전압 트랜지스터 구분점 전압의 한계 및 다량의 전하를 유지하는 플로팅 게이트의 열화에 의해 결정된다.
도 36b는 현재 감지되는 셀의 프로그램된 임계 레벨에 미치는 고 프로그램된 이웃 셀의 영향을 도시한 것이다. 이것은 현 셀의 인지된 임계 레벨을 증가시키는 유핀 효과이다. 예를 들면, 고 프로그램된 이웃은 이의 전하 저장소자에 프로그램된 상당량의 전하를 가질 것이며(예를 들면, 플로팅 게이트) 이웃 전하들의 영향은 감지되는 현 셀의 플로팅 게이트에 결합할 것이다. 각 이웃은 350mV 만큼 현 셀의 인지된 임계 레벨을 상승시킬 수 있다. 셀이 이의 모두 4개의 바로 이웃들(좌측, 우측, 위 및 아래)에 의해 교란된다면, 이것은 1V 이상만큼 인지된 임계 레벨을 상승시킬 수 있다. 이에 따라, 이의 이웃들의 프로그램된 상태들에 따라, 각 셀은 제로에서 어떤 최대 볼트들의 범위로 이동된 그의 명목 임계 레벨을 가질 수 있다. 각 클러스터에 순 효과는 이의 후미가 더 큰 전압들을 향하여 퍼지게 된다는 것이다.
도 37a는 감지되는 현 셀에 서로 다른 이웃들로부터의 유핀 효과의 기여를 도시한 것이다. 예는 상태 "A"에 있는 한 집단의 메모리 셀로부터 온 것으로 감지되는 현 셀을 보인 것이다. 집단(1502)은 임의의 인접한 교란들을 받지 않는 메모리 셀을 나타낸다. 1502의 후미는 인접한 비트 라인에 이웃들이 최대로 프로그램된 상태로 나중에 프로그램됨에 의해서 집단의 일부 셀이 교란될 때(BL-BL 유핀 효과) 1504으로 수정된다. 마찬가지로, 1504의 후미는 집단의 일부 셀이 이의 이웃에 의해, 최대로 프로그램되는 상태로 나중에 프로그램되는 다음 워드 라인(WLn+1)에 교란될 때(WL-WL 유핀 효과) 1506으로 더 수정된다. 이에 따라, 두 BL-BL 및 WL-WL 유핀 효과의 조합이 셀을 더 높은 임계 전압 레벨을 갖는 것으로 보이게 할 수 있음을 알 수 있다. 예를 들면, 최악의 경우의 BL-BL 효과는 임계 전압을 250 mV 만큼 이동시킬 수 있고 한 이웃으로부터 최악의 경우의 WL-WL 효과는 임계 전압을 350 mV 만큼 그리고 양 측들로부터라면 700 mV 만큼 임계 전압을 이동시킬 수 있다. 조합은 600 mV 에서 약 1V이 될 수 있다.
앞에서 기술된 바와 같이, 유핀 효과를 받은 메모리 셀의 명목 임계 레벨에 상승에 기인하여 "과 프로그램"하지 않기 위해서, 다중 패스 프로그래밍의 제 1 패스에 대한 검증 레벨은 최악의 경우의 유핀 효과를 실질적으로 이해하는 오프셋(1512)에 의해 낮게 설정된다. 이에 따라 제 1 프로그래밍 패스에서, 고 프로그램된 이웃 셀에 기인한 인지된 고양된 임계 레벨에 의해 나타낸 바와 같이 현 셀의 가능한 "과 프로그래밍"을 피하기 위해서, 제 1 패스에 대한 검증 레벨은 1V 만큼 낮게 오프셋 되어야 할 수 있다.
도 37b는 유핀 효과를 감소시키기 위해서 다중 패스 프로그래밍의 제 1 패스에 대해 검증 레벨들의 이동을 도시한 것이다. 예를 들면, 2개의 패스들이 있고 최종 패스가 상태들 "A", "B", "C"에 대해 각각 정규 검증 레벨들(V2a, V2b, V2c)을 채용한다면, 이들 타깃 상태들 각각에 프로그래밍을 위해 대응하는 제 1 패스 검증 레벨들(V1a, V1b, V1c)은 소정의 양만큼 낮게 오프셋될 수도 있을 것이다. 예를 들면, V1a는 소정의 양(1512)만큼 V2a로부터 낮게 오프셋된다(도 37a 참조).
다중-패스 프로그래밍 기법에서 제 1 패스 검증 레벨을 오프셋 하는 것과, 작은 정도로 단일-패스 프로그래밍 기법에서 유핀 효과를 보상하기 위해 사용되는 하측 검증 레벨은 소거된 상태 "E"에 대한 문제를 제기한다. 일반적으로, 가능한 한 많은 서로 구별되는 상태들에 맞추기 위해서 임계 윈도우의 범위를 최대화하기 위해, 소거된 상태는 임계 윈도우의 하한에 둔다. 앞서 설명된 바와 같이, 이 하한은 음 전압들에서 감지하는 감지 증폭기들의 능력에 의해 제어된다. 예를 들면, 하한은 도시된 바와 같이 -2.5 V 일 수 있다. 실제로, 소거된 셀의 잘 정의되고 조밀하게 제어된 분포를 갖는 것이 바람직하다. 전형적으로, 더 좁은 분포를 형성하기 위해 소거 후에 소프트 프로그래밍에 의해 달성된다. 소프트 프로그래밍은 소거 상태에 대한 소정의 레벨에 대한 프로그램 검증을 요구할 것이다. 그러나, 오프셋 제 1 패스 검증 레벨의 요구에 따라, 오프셋(1510)은 임계 윈도우의 하한을 넘어 이동된 검증 레벨을 가질 수 있다. 오프셋을 경계들 내에서 유지하기 위해 더 양의 끝을 향하여 모든 클러스터들을 이동시키는 것이 가능하나, 그럼에도불구하고, 이것은 임계 윈도우의 유용한 범위를 감소시킬 것이다.
이웃 워드 라인 바이어스함에 의한 검증 레벨의 가상 오프셋
발명의 또 다른 면에 따라서, 검증 레벨의 조절은 가상으로 이웃 워드 라인을 바이어스하여 달성되고 따라서 조절된 검증 레벨로 프로그램 검증될 때, 이웃 메모리 셀에 후속하여 프로그램되는 교란 전하들에도 불구하고, 셀로부터 정확한 타깃 상태가 판독될 것이다. 이것은 프로그램되는 셀의 검증 레벨에 실제 오프셋을 사용하는 것을 피하여, 가장 낮은 메모리 상태를 검증할 때 혹 검증 레벨을 음 전압 감지를 요구할 만큼 낮게 이동시켜야 하는 문제를 피하는 이점이 있다.
도 36a 및 도 36b에 관련하여 앞서 기술된 바와 같이, 낮게 오프셋된 검증 레벨을 사용하는 것은 바람직하지 않다. 발명의 이러한 면은 인접한 워드 라인 WLn+1의 적합한 바이어스로 동일 효과를 달성하여 정규 검증 레벨보다 낮은 레벨을 사용하는 문제를 피한다.
도 38은 바람직한 실시예에 따라, 정규 검증 레벨에 가상 오프셋을 행하기 위해 이웃 워드 라인의 검증 및 바이어스 하에 워드 라인 상에 정규 검증 레벨의 조합을 도시한 것이다. 예는 NAND 메모리에 인가된 1비트에 의해 코딩된 2개의 가능한 보상 레벨들을 도시한 것이다. 특히, WLn은 NAND 체인 중에 선택된 워드 라인이며(도 2 참조) 나머지 비선택된 워드 라인들은 검증 동작 동안 이들에 전압 Vpass가 인가되게 할 것이다.
이웃들이 소정의 임계값 미만의 총 교란으로 덜 프로그램될 때, 어떠한 보상도 채용되지 않는다(보상 코드 "1"). 이러므로, 검증 감지 동안 WLn 워드 라인에 인가되는 검증 전압 레벨은 타깃 상태에 셀(1460)과 같은 셀을 프로그래밍하는데 적합한(보상 코드 "1"), 정규 V(타깃 상태)와 동일하다. 동시에, 체인에 나머지 비선택된 워드 라인들은 검증 동작동안 이들에 인가되는 전압 Vpass를 가질 것이다. WLn-1 및 WLn+1은 WLn에 인접한 비선택된 워드 라인들 중 2개로서 도시되었다. 특히 두 전압들 V0 = Vpass 중 하나는 WLn+1에 인가된다.
한편, 소정의 임계값 이상으로 총 교란으로 이웃들이 더 프로그램된 상태들에 있을 때, 보상이 요구된다(보상 코드 "0"). 이 경우, V0 미만인 V1은 WLn+1에 인가된다. V1은 이것이 도 34에 도시된 보상 코드 "0"에 대한 구성과 실질적으로 유사한 효과를 갖도록 사전에 결정된다. 그러나, 정규 검증 레벨을 낮게 오프셋하여 이를 WLn에 인가하는 대신에(보상 코드 "0"), 동등 기법은 Wn+1에 낮게 오프셋된 Vpass인 V1을 적용하는 것이다.
이에 따라, 1비트 보상으로, 워드 라인의 전압 구성은 보상이 요구되지 않을 때 V0 = Vpass이 다음 워드 라인 WLn+1에 인가되고 보상이 요구될 때 다음 워드 라인에 V1이 인가되는 정규 검증 동작과 유사하다. 전압 V1은 Vpass - ΔV로서 간주될 수 있고, 여기서 ΔV는 도 34에 도시된 WLn에 정규 검증 레벨에 가상 오프셋이 미치는 영향을 야기하는 가외의 바이어싱이다. 바람직하게, 이웃 워드 라인 상에 전압은 보상된 셀의 검증 동안 낮은 전압 V1에서, 보상하지 않은 다른 셀의 검증 동안 더 높은 전압 V0으로 상승한다.
도 39는 1패스 데이터-의존성 검증 레벨이 현 워드 라인 및 이웃 워드 라인 둘 다에 대해 적용되는 도 32에 도시된 검증 단계의 또 다른 바람직한 실시예를 도시한 흐름도이다. 인접한 워드 라인(예를 들면, WLn+1)에 바이어스 전압의 추가의 인가는 현 워드 라인(예를 들면, WLn)에 인가되는 검증 전압 레벨을 가상으로 오프셋하는 효과를 갖는다. 이것은 앞서 기술된 검증 전압을 낮추는 것에 연관된 단점을 피한다. 사실, 가상으로 오프셋하는 효과는 WL-WL 커플링 효과에 대한 메커니즘을 모사하며 따라서 WL-WL 커플링 효과를 변조함에 있어 더 정확하다.
단계 1530: 워드 라인과 비트 라인에 의해 액세스 가능한 한 어레이의 메모리 셀을 갖는 비휘발성 메모리를 제공한다.
단계 1540: 주어진 타깃 상태에 병렬로 프로그램될 일 그룹의 메모리 셀을 지정한다.
단계 1550: 프로그래밍 하에 각 메모리 셀의 임계 전압을 증가시키기 위해 병렬로 일 그룹의 메모리 셀에 프로그래밍 파형 전압을 인가한다.
단계 1560: 일 그룹의 메모리 셀에 액세스하는 워드 라인에 소정의 검증 전압 레벨을 인가한다. 소정의 검증 전압 레벨은 주어진 타깃 상태의 제 1 함수이다.
단계 1562: 소정의 바이어스 전압 레벨을 이웃 워드 라인에 인가한다. 소정의 바이어스 전압은 검증되는 메모리 셀에 인접한 메모리 셀의 타깃 상태의 제 2 함수이다.
단계 1568: 프로그래밍 하에 일 그룹의 메모리 셀을 검증하기 위해 감지한다.
단계 1570: 주어진 타깃 상태로 프로그램된 것으로 검증된 그룹에 메모리 셀을 추가 프로그램하는 것으로 금지한다.
단계 1580: 주어진 타깃 상태로 프로그램된 모든 메모리 셀이 검증되었나? 이러하다면, 단계 1590으로 가고 그렇지 않다면 단계 1540으로 간다.
단계 1590: 주어진 타깃 상태로 프로그램될 메모리 셀에 대해 프로그래밍이 행해진다.
WL - WL 유핀 효과 반만큼 감소시키는 바람직한 프로그래밍 기법
교란들이 인접한 워드 라인들 상에 메모리 셀 사이에 있는 WL-WL 유핀 효과에 대해서, 이것은 바람직한 프로그래밍 기법을 사용한 프로그래밍 동안 완화된다. 이것은 교란을 반만큼 효과적으로 감소시킬 것이다. 나머지 반은 앞서 기술된 프로그램 또는 판독 동작들 동안 다양한 조합 기법들 중 하나 또는 이들의 조합을 사용하여 정정될 수도 있다.
미국특허 6,781,877은 최적의 순서로 메모리 어레이에 페이지들을 프로그램하여 WL-WL 유핀 효과가 감소되는 프로그래밍 기법을 개시한다.
바람직한 프로그래밍 기법은 최적의 순서로 프로그램되는 워드 라인에 연관된 페이지들을 가질 것이다. 예를 들면, 모든 물리적 페이지가 한 페이지의 2진 데이터를 유지하는 2진 메모리의 경우에, 페이지들은 바람직하게는 하부에서 상부와 같이 일관된 방향을 따라 순차로 프로그램된다. 이러한 식으로, 특정 페이지가 프로그램되고 있을 때, 이의 하측에 페이지들은 이미 프로그램된다. 교란효과들이 현 페이지에 미칠 수 있는 이들 교란영향들이 무엇이건 간에, 이들은 이들 교란들에 서 현 페이지가 프로그램-검증되고 있을 때 고려되고 있다. 근본적으로, 페이지를 프로그래밍하는 순서는 프로그램되는 현 페이지가 프로그램된 후에 이의 환경 주변에 최소의 변화들을 알 수 있게 할 것이다. 이에 따라, 각각의 프로그래밍 페이지는 이의 상측에 페이지들에 의해서만 교란되고 WL-WL 유핀 효과는 이 프로그래밍 시퀀스에 의해 반으로 효과적으로 감소된다.
메모리 셀의 각각의 물리적 페이지가 다중-상태가고 결과적인 복수 논리 데이터 페이지들이 서로 다른 패스들로 프로그래밍되는 메모리의 경우에, 순서는 덜 수월하다. 예를 들어 4 메모리 상태를 인코딩하는 2비트 메모리에서, 워드 라인에 연관된 각각의 물리적 페이지는 각각의 셀로부터 2비트 데이터의 단일의 페이지 또는 2개의 개별적 논리 페이지로서 각각이 각 셀로부터의 1 비트 데이터의 하측 및 상측 비트로서 간주될 수 있다. 이러므로 물리적 페이지는 2비트 코드에 대응하는 4 상태들 중에서 각 셀이 이의 타깃 상태로 직접 프로그램되어 프로그램 가능하다. 대안적으로 2비트들 각각은 개별적으로 프로그램될 수 있는데, 첫번째는 하측 비트 페이지가 이어서 나중에는 상측 비트 페이지가 프로그램 가능하다. 각각의 물리적 페이지의 논리 페이지들이 개별적으로 프로그램되어야 할 때, 수정된 최적의 순서가 가능하다.
도 40은 인접한 워드 라인들 상에 메모리 셀 사이에 유핀 효과를 최소화하기 위해서 최적 순서로 페이지들이 프로그램되고 2비트 메모리 셀을 갖는 메모리의 예를 도시한 것이다. 편의상 물리 페이지들(P0, P1, P2,..,)이 워드 라인들(W0, W1, W2,...) 상에 각각 있게 표기하였다. 2비트 메모리에서, 각각의 물리적 페이지는 이에 연관된 2개의 논리 페이지들로서 즉 하측 비트와 상측 비트 논리 페이지들을 가지며 각각은 2진 데이터를 갖는다. 일반적으로, 한 특정한 논리 페이지가 LP(Wordline.logical_page)에 의해 주어진다. 예를 들면, WO 상에 P0의 하측 비트 및 상측 비트는 각각 LP(0.0) 및 LP(0.1)로서 표기될 것이며 W2상의 대응하는 것들은 LP(2.0) 및 LP(2.1)이 될 것이다.
근본적으로, 논리 페이지들의 프로그래밍은 순서 n에 따를 것이므로 프로그램되는 현 페이지는 이것이 프로그램된 후에 그의 환경 주변에서 최소의 변화들을 볼 것이다. 이 경우, 다시 하부에서 상부로 일관된 방향으로 증분하여 이동시킴으로써 일측으로부터 교란을 소거할 수 있게 될 것이다. 또한, 각각의 물리적 페이지가 2개의 프로그래밍 패스들을 가질 수 있기 때문에, 프로그래밍이 물리 페이지들 위애 이동할 때, 현 상측비트 페이지의 인접한 하측 비트 페이지들이 이미 프로그램된 후에 상기 페이지가 프로그램됨으로써 이들의 교란효과들이 현 상측비트 페이지를 프로그래밍할 때 상쇄되게 하는 것이 더 나을 것이다. 이에 따라, 프로그래밍이 LP(0.0)부터 시작한다면 순서는 LP(0.0), LP(1.0), LP(0.1), LP(2.0), LP(l.l), LP(3.0), LP(2.1),...이 될 페이지-프로그래밍 순서 0, 1, 2,...,n,..에 의해 지정된 바와 같게 될 것이다.
데이터-의존성 검증 레벨로 프로그래밍하기 위한 이웃 상태의 결정
앞에서 기술된 바와 같이, 도 24에 관련하여, 프로그램-검증 동안에 BL-BL 유핀 효과에 대한 바람직한 보상 기법은 이웃 상태의 프로그램된 상태에 따라 프로그램-검증 레벨을 조절하는 것이다. 이웃 상태를 프로그램되는 셀의 열 또는 비트 라인에 알리기 위해서, 각 이웃의 비트 라인은 각 이웃의 프로그램된 상태에 따른 소정의 전압으로 설정된다. 이 소정의 전압은 프로그램되는 셀의 비트 라인에서 수행되는 추가의 감지에서 검출되며 이어서 프로그램 검증 레벨을 오프셋하기 위해 사용된다.
프로그래밍 동안 WL-WL 유핀 효과에 대한 보상의 경우에, 이웃 워드 라인에 대한 프로그램된 상태들 또는 데이터를 얻어, 검증 하에 셀의 검증 또는 감지 회로가 사용할 수 있게 하여 이에 따라 프로그램-검증 레벨을 오프셋할 수 있게 한다.
프로그래밍이 바람직한 순서로, 예를 들어 메모리 어레이에서 현재 프로그램되는 워드 라인에 대해 하부 워드 라인부터 시작하여 수행된다면, 이전 워드 라인은 이미 프로그램되어 있을 것이다. 이전 워드 라인으로부터 한 페이지의 데이터는 간단히 판독되어 대응 열 래치들에 래치될 수 있다. 그러나, 도 40에 관련하여 기술된 바람직한 프로그래밍 순서가 고수된다면, 이전 워드 라인으로부터 유핀 효과는 이미 처리되어 보상을 구상하기 위해 이의 데이터를 얻을 필요가 없다.
아직 프로그램되지 않은 다음 워드 라인에 데이터에 관하여, 이를 얻을 다수의 가능성들이 있다.
도 41은 도 5에 도시된 메모리 장치와 통신하는 호스트를 도시한 것이다. 메모리 장치는 메모리 칩(298) 및 제어기(610)를 포함한다. 메모리 칩(298)은 메모리 어레이(300) 및 감지증폭기들, 데이터 래치들(394), I/O 회로들 및 온칩 제어 회로(310)와 같은 주변 회로들을 포함한다. 온칩 제어 회로(310)은 메모리 칩의 동작들을 제어한다. 많은 구현들에서, 호스트(10)은 제어기(350)을 통해 메모리 칩(298)과 통신하고 상호작용한다.
제어기(350)는 메모리 칩과 상호 협동하고 고 레벨 메모리 동작들을 제어 및 관리한다. 예를 들면, 호스트 기록에서, 호스트(10)는 페이지별로 메모리 어레이(300)에 데이터가 기록될 것을 요청한다. 각각의 한 페이지의 데이터가 제어기(350)에 보내지고 이어서 이는 메모리 어레이에 프로그램될 데이터 래치들(394)에 올려졌다. 일 구현에서, 적어도 2 페이지의 데이터가 제어기(350)에 의해 수신되고 제어기 RAM(352)에 버퍼된다. 제 1 페이지가 워드 라인(WLn)에 현 페이지에 프로그램될 데이터 래치들(394)에 래치될 때, 워드 라인(WLn+1)에 다음 페이지에 프로그래밍하도록 한 다음 한 페이지의 데이터가 평가되고 고 프로그램된 상태에 대응하는 것들은 대응하는 데이터 래치들에 코딩된 보상 레벨로서 래치된다. 바람직한 구현에서, 각 열에 연관된 로직 및 프로세서는 발명의 다양한 검증 기법들로 프로그래밍 동작을 수행하기 위해 상태 머신과 협동할 것이다.
도 42는 다음 워드 라인에 대한 한 페이지의 데이터를 얻기 위한 또 다른 기술을 도시한 것이다. 비휘발성 메모리 어레이(300)의 부분은 정규 부분(302) 및 버퍼 부분(304)으로 분할된다. 메모리 어레이의 정규 부분(302)은 전형적으로 복수 비트 데이터를 저장한다. 한편, 버퍼 부분(302)에 메모리 셀은 바람직하게는 2진 데이터를 저장하게 구성된다. 이렇게 하여, 2진 데이터는 비교적 높은 속도로 그리고 유핀 효과를 정정할 필요성이 없이 버퍼 부분에 프로그램 가능하다. 바람직하게, 데이터가 먼저 메모리에 기록될 때, 이것은 먼저 버퍼 부분(304)에 기록된다. 나중에, 알맞은 시간에, 버퍼 부분(302)로부터 데이터는 정규 부분(302)에 복사될 수 있다. 정규 부분(302)에 프로그램될 데이터가 버퍼 부분(304)으로부터 쉽게 읽혀질 수 있기 때문에, 현 페이지가 프로그램되고 있을 때, 다음 페이지에 대한 데이터를 프로그램 검증 동안 보상을 고려하기 위해 입수될 수 있다.
소거된 메모리 상태에 대한 이웃 셀에 전하들에 기인한 교란을 보상
앞에 기술된 바와 같이, 다수 페이지들의 데이터가 일정한 워드 라인 순서, 예를 들면 하측에서 상측으로 프로그램되고 있을 때, 하측에 인접한 워드 라인(WLn-1)은 현 워드 라인(WLn) 전에 프로그램될 것이며 따라서 현 워드 라인의 셀에 유핀 효과를 갖지 않을 것이다. 이에 따라, 검증 레벨을 조절할 때, 이전의 프로그램된 워드 라인(WLn-1)은 고려할 필요가 없다.
그러나, 소거된 상태에 남아 있는 메모리 셀에 대해서, WLn-1 상에 프로그램된 셀이라도 WLn 상에 소거된 셀에 유핀 효과를 가질 것이다. 즉, 상측 Wn+1 및 하측 Wn-1에 인접한 이웃들 둘 다는 WLn 상에 셀을 교란시킬 것이다. 이것은 셀이 항시 소거된 상태에 있다면 프로그램되는 임의의 인접한 이웃들은 셀이 이 상태가 된 후일 것이기 때문이다. 이러므로, 둘 다는 셀이 소거되었기 때문에 셀의 필드 환경에 변화에 기여할 것이다.
메모리는 전형적으로 이들의 임계 레벨들이 임계 윈도우의 맨 하측 끝에 범위로 줄어들도록 그의 셀이 소거되었다. 바람직한 실시예에서, 소정의 구분 임계 레벨 미만으로 협소한 범위 내로 더 깊이 소거된 셀을 프로그램하기 위해 소프트 프로그래밍 동작이 채용된다. 소프트 프로그래밍은 소정의 구분 임계 레벨에 대해 검증과 교번한다. 이렇게 하여, 소프트 프로그래밍 및 검증은 소정의 구분 임계 레벨 바로 밑의 소정의 범위로 소거된 셀의 분포를 좁힐 수 있게 한다.
도 43은 소거된 상태의 한 집단의 셀을 가진 메모리 및 이들이 유핀 효과에 의해 어떻게 영향을 받는가를 도시한 것이다. 좁혀진 소거된 집단은 셀의 워드 라인 상에 소정의 검증 레벨(VE)의 인가에 의해 소정의 구분 임계 레벨(1610)에 대해 소거된 셀이 소프트-프로그램 및 검증된 후에 확실한 분포(1602)로 나타난다. 위에 논의한 바와 같이, WLn-1에 페이지의 프로그래밍은 WL-WL 유핀 효과를 야기하여, 늘어난 후미(1604)와 같이 더 높은 레벨들로 퍼진 분포(1602)의 우측 후미를 가져올 것이다. 유사하게, WLn에 페이지의 프로그래밍은 BL-BL 유핀 효과를 야기하여, 늘어난 후미(1606)와 같이 더 높은 레벨들로 퍼진 분포(1604)의 우측 후미를 가져올 것이다. 마지막으로, WLn+1에 페이지를 프로그래밍하는 효과는 1606에서 늘어난 후미(1608)로 우측 후미를 더 퍼지게 할 것이다.
나중에 프로그램되는 이웃들에 기인하여 이 일부 소거된 셀은 이들의 임계 레벨들이 프로그램된 상태 영역으로 옮겨지게 교란될 수 있음이 도 43으로부터 명백하다.
발명의 또 다른 면에 따라서, 소거된 메모리 셀은 바람직하게는 이들이 소거된 후에 "소프트-프로그램" 된다. "소프트 프로그램된"이란 소거된 상태와 프로그램된 상태간을 구분하기 위해 소정의 임계값에 대해 소거된 셀을 소정 범위의 임계 레벨들로 프로그램하는 것을 말한다. 이것은 소정의 임계값에 대해 소거된 셀을 번갈아 프로그래밍 및 검증하여 달성된다. 이웃 메모리 셀에 전하들에 기인한 교란들은 검증 레벨을 조절하여 소프트 프로그래밍 동안 보상되고 따라서 이웃 메모리 셀에 후속하여 프로그램되는 교란하는 전하들에도 불구하고 셀로부터 올바른 소거된 상태가 판독될 것이다.
이것은 프로그램되는 셀의 워드 라인의 양측에 인접한 워드 라인에 메모리 셀을 포함하여 이웃 메모리 셀의 메모리 상태를 사전에 결정하고, 이웃 메모리 셀의 메모리 상태의 함수인 오프셋으로 구분 레벨을 감소시킴으로써 검증 레벨을 조절하여 달성된다.
도 44는 모든 인접한 이웃들로부터 교란을 정정하기 위해 조절된 검증 레벨로 소프트 프로그래밍 후에 소거된 셀의 분포의 효과를 도시한 것이다. 이 경우, 검증 레벨은 이웃 비트 라인에 이웃들 뿐만아니라 이웃 워드 라인들 WLn-1 및 WLn+1 둘 다에 이웃 셀의 함수로서 조절된다. 소프트 프로그래밍 후에, 소거된 셀은 1602의 좌측 후미와 1626의 우측 후미에 의해 도 43에 도시된 정정되지 않은 분포에 대해 좁혀진 임계값 분포(1630)을 가짐을 알 수 있다.
BL-BL 유핀 효과가 묵인될 수 있는 대안적 실시예에서, 검증 레벨에 대한 오프셋의 조절에서 WL-WL 효과만이 정정된다.
바람직한 실시예에서, 검증 레벨에 대한 오프셋은 도 38a 및 도 38b에 도시된 것과 유사한 이웃 워드 라인들 중 하나 이상의 바이어싱에 의해 가상으로 구현된다.
도 45는 한 바람직한 실시예에 따라, 양면 정정을 행하기 위한 인접한 워드 라인들의 바이어싱을 도시한 것이다. 소프트-프로그램되는 소거된 셀이 워드 라인(WLn) 상에 있다면, 정규 검증 레벨(VE)는 도 38a에 도시된 기법과 유사하게 WLn에 적용된다. 정규 검증 레벨(VE)는 도 43에 관련하여 앞서 기술된 바와 같은 유핀 효과 정정들에 관계없이 소거된 셀의 정규 소프트 프로그래밍에서 사용하게 될 레벨이다.
WLn의 어느 한 측에 인접한 워드 라인이 있기 때문에, 바람직한 구현은 인접한 워드 라인을 바이어스하는 것이다. 각각의 인접한 워드 라인이 각각 한 비트 "1" 또는 "0"으로 표기한 바와 같이 두개의 전압들 V0 또는 V1 중 하나에 취해지는 것이 허용된다면, 두 인접한 워드 라인들은 2비트들로 나타낸 바와 같이 4개의 가능한 조합들을 가질 것이다. 이들 조합들 각각은 VE에 다른 량의 가상 오프셋 및 따라서 대응하는 량의 보상 레벨을 제시한다. 앞에 논의한 바와 같이 이웃 워드 라인이 값 Vpass를 갖는 V0에서 바이어스될 때 이것은 정상적인 경우이다. 반면, 인접한 워드 라인이 V0보다 낮은 V1로 바이어스될 때, VE로 가상의 낮은 오프셋을 야기하는 효과를 갖는다. 이에 따라, 가장 큰 보상 레벨 (00)은 V1로 바이어스된 인접한 워드 라인들 둘 다에 의해 달성된다. 다음 낮은 보상 레벨 (01)은 V1의 이웃 워드 라인(WLn+1)과 V0의 WLn-1을 가질 것이다. 마찬가지로, 최소의 또는 전혀없는 보상 레벨 (11)은 V0의 두 WLn-1 및 WLn+1을 가질 것이다.
도 46은 소정의 임계 레벨에 대해 잘 정의된 임계 레벨들의 분포를 가진 일 그룹의 메모리 셀을 생성하는 흐름도이다.
단계 1600: 워드 라인과 비트 라인에 의해 액세스 가능한 한 어레이의 메모리 셀을 갖는 비휘발성 메모리를 제공한다.
단계 1610: 소거된 상태를 구분하는 소정의 임계 레벨을 실질적으로 넘은 일 그룹의 메모리 셀을 소거한다.
단계 1620: 프로그래밍 하에 각 메모리 셀의 임계 전압을 증가시키기 위해 병렬로 일 그룹의 소거된 메모리 셀에 프로그래밍 파형 전압을 인가한다.
단계 1630: 일 그룹의 메모리 셀에 액세스하는 워드 라인에 소정의 임계 레벨 전압을 인가한다.
단계 1632: 제 1의 소정의 바이어스 전압 레벨은 제 1의 인접한 워드 라인을 인가한다. 제 1 소정의 바이어스 전압은 제 1 인접 메모리 셀의 타깃 상태의 제 2 함수이고, 제 1 인접 셀은 제 1 인접 워드 라인에 의해 액세스되고 검증되는 메모리 셀에 인접한다.
단계 1634: 제 2 인접 워드 라인에 제 2의 소정의 바이어스 전압 레벨을 인가한다. 제 2 소정의 바이어스 전압은 제 2 이웃 메모리 셀의 타깃 상태의 제 2 함수이며, 제 2 이웃 셀은 제 2 이웃 워드 라인에 의해 액세스될 수 있고 검증되는 메모리 셀에 인접한다.
단계 1638: 소정의 임계 레벨에 대해 프로그램된 일 그룹의 소거된 메모리 셀을 검증하기 위해 감지한다.
단계 1640: 검증된 그룹에 메모리 셀의 추가 프로그래밍을 금지한다.
단계 1650: 그룹에 모든 소거된 메모리 셀이 검증되었나? 이러하다면, 단계 1660로 가고 아니면 단계 1620로 간다.
단계 1660: 그룹에 모든 소거된 메모리 셀은 소정의 임계 레벨에 대해 프로그램되었다.
유핀 효과를 최소화하기 위해 검증 레벨의 가상 오프셋을 사용한 다중 패스 프로그래밍
전에 논의한 바와 같이, 유핀 효과는 이웃 셀이 후속하여 프로그램된 후에 판독될 때 프로그램된 셀이 명목상 고 임계 레벨로 더 "프로그램된" 것으로 나타나게 할 것이다. 이것은 동일 상태로 프로그램된 셀에 대한 임계들의 분포를 넓어지게 할 것이다.
이전 해결책은 하나 이상의 패스로 프로그래밍을 수행하는 것이다. 제 1 패스는 각 셀의 타깃 상태 또는 타깃 임계 레벨에 못 미치게 이 셀을 프로그램하는 것이다. 제 2 패스는 타깃 상태로 프로그래밍을 완료한다. 이에 따라 마지막 프로그램되고 검증되었던 시간부터 이웃 셀이 프로그램될 때까지 프로그램되는 셀에 의해 보여진 이웃 필드 환경에서 변화가 최소화된다. 이것은 제 1 패스 동안 선택된 워드 라인 상에 검증 레벨을 낮게 오프셋하여 달성된다. 다음 워드 라인에 셀이 프로그램된 후에, 제 2 패스 프로그래밍은 분포를 좁히기 위해 적용된다.
발명의 또 다른 면에 따라서, 이웃 전하 저장소자들에 저장된 전하에 기초하여 전계의 커플링을 최소화하기 위해서, 프로그래밍 프로세스는 적어도 2 패스들로 수행된다. 제 1 패스는 표준 검증 레벨로부터 오프셋을 사용하여 타깃 상태에 못 미치게 각 셀을 프로그램한다. 제 2 패스는 표준 검증 레벨로 프로그래밍을 완료한다. 제 1 패스에서 검증 레벨은 바람직하게는 낮은 레벨들로 검증을 피하기 위해서 표준 검증 레벨을 실제로 오프셋하는 대신에 하나 이상의 이웃 워드 라인을 바이어싱하여 가상으로 오프셋된다.
도 47은 발명의 일반적인 면에 따라서, 제 1 패스가 검증 레벨에 가상 오프셋을 채용하는 다중-패스 프로그래밍에 의해 유핀 효과를 감소시키는 흐름도이다.
단계 1700: 워드 라인과 비트 라인에 의해 액세스 가능한 메모리 셀 어레이를 구비한 비휘발성 메모리를 제공한다. 각각의 개별 메모리 셀은 관련 타깃 임계 레벨에 대해 프로그램 가능하다.
단계 1710: 프로그램되는 각각의 개별 메모리 셀 각각이 소정의 오프셋에 의해 관련 타깃 임계 레벨에 못 미치게 검증되도록 제 1 패스에서 병렬로 일 그룹의 메모리 셀을 프로그래밍하며, 제 1 패스에서 프로그래밍은 단계 1714를 포함한다.
단계 1714: 각각의 개별 메모리 셀에 액세스하는 워드 라인에 인가되는 관련 타깃 임계 레벨 및 제 1 인접 워드 라인에 인가된 제 1 소정의 바이어스 전압으로 감지하여 소정의 오프셋에 의해 관련 타깃 임계 레벨에 못 미치게 프로그램된 각각의 개별 메모리 셀을 검증한다.
단계 1720: 프로그램되는 각각의 개별 메모리 셀은 관련 타깃 임계 레벨로 검증되도록 후속 패스에 그룹을 프로그래밍한다.
도 48은 발명의 바람직한 실시예에 따라, 제 1 패스가 검증 레벨로 가상 오프셋을 채용하는 다중-패스 프로그래밍에 의해 유핀 효과를 감소시키는 흐름도이다.
단계 1700: 워드 라인과 비트 라인에 의해 액세스 가능한 메모리 셀 어레이를 구비한 비휘발성 메모리를 제공한다. 각각의 개별 메모리 셀은 관련 타깃 임계 레벨에 대해 프로그램 가능하다.
단계 1710: 프로그램되는 각각의 개별 메모리 셀이 소정의 오프셋에 의해 관련 타깃 임계 레벨에 못 미치게 검증되도록 제 1 패스에서 병렬로 일 그룹의 메모리 셀을 프로그래밍하며, 제 1 패스에서 프로그래밍은 단계 1712, 단계 1714, 단계 1716, 및 단계 1718을 포함한다.
단계 1712: 프로그래밍되는 각 메모리 셀의 임계 전압을 증가시키기 위해서 병렬로 그룹에 소정의 프로그래밍 파형 전압을 인가한다.
단계 1714: 각각의 개별 메모리 셀에 액세스하는 워드 라인에 인가되는 관련 타깃 임계 레벨 및 제 1 인접 워드 라인에 인가된 제 1 소정의 바이어스 전압으로 감지하여 소정의 오프셋에 의해 관련 타깃 임계 레벨에 못 미치게 프로그램된 개별 메모리 셀을 검증한다.
단계 1716: 검증된 그룹에 메모리 셀이 추가 프로그램되는 것을 금지한다.
단계 1718: 그룹의 모든 메모리 셀이 검증되었나? 이러하다면 단계 1720으로 가고 그렇지 않다면 단계 1710으로 간다.
단계 1720: 프로그램되는 각각의 개별 메모리 셀이 관련 타깃 임계 레벨로 검증되도록 후속 패스에 그룹을 프로그래밍한다.
앞에서 논의한 바와 같이, 다중-패스 프로그래밍을 사용하는 이점은 유핀 효과가 감소될 수 있다는 것이다. 다중-패스 프로그래밍은 유핀 효과를 정정하기 위해 이웃 셀의 타깃 상태를 결정하는 것을 수반하지 않기 때문에 실행하기가 더 간단하다.
거친 검증을 위해 가상 검증 오프셋을 사용한 거친/미세 프로그래밍
거친 및 미세 프로그래밍 단계들의 두 단계에서 프로그래밍 기술들은 미국특허 6,888,758에 그리고 도 20 및 도 21에 관련하여 앞에서 기술되었다. 프로그래밍 동작은 2개의 검증 레벨들로서 타깃 검증 레벨(미세 검증 레벨이라고도 함); 및 미세 검증 레벨에 앞서, 거친 검증 레벨을 사용함을 알 것이다. 거친 검증 레벨은 소정의 오프셋에 의해 미세 검증 레벨로부터 낮게 오프셋된다.
프로세스는 프로그래밍 프로세스의 거친 단계를 수행하여 시작할 것이다. 각각의 거친 프로그래밍 단계에 이어 거친 검증 레벨에 대한 검증이 이어진다. 메모리 셀의 임계 전압이 타깃 검증 레벨 미만인 거친 검증 레벨로 프로그램될 때, 메모리 셀은 미세 프로그램 단계에 들어갈 것이다. 프로그래밍은 타깃 레벨을 오버슈트하지 않기 위해 느려진다. 이것은 0볼트보다는 크고 금지전압보다는 작은 값으로 셀의 비트 라인 전압을 상승시킴으로써 달성된다. 일반적으로, 완전한 프로그래밍 효율을 위해서, 거친 단계 동안에서와 같이, 비트 라인 전압은 근사적으로 0볼트일 것이다. 한편, 프로그래밍으로부터 메모리 셀을 금지시키기 위해서, 비트 라인 전압은 금지전압까지 상승한다(예를 들면, Vdd). 미세 프로그래밍 단계 동안, 프로그래밍은 0볼트에서 중간값으로 비트 라인 전압이 상승되는 영향에 기인하여, 거친 프로그래밍 단계에 비해, 느려진다. 이러므로, 프로그램 스텝당 임계 전압에 변화는 거친 프로그래밍 단계 동안 더 작아지게 될 것이다. 메모리 셀은 메모리 셀에 대한 임계 전압이 타깃 임계 전압에 도달하였을 때까지 미세 프로그래밍 단계에 남아 있을 것이다. 메모리 셀의 임계 전압이 타깃 임계 전압에 도달하였을 때, 비트 라인 전압은 이 메모리 셀의 추가 프로그래밍을 금지시키기 위해서 Vdd(또는 이외 금지전압)으로 상승한다.
이전 거친/미세 프로그래밍 기술은 2개의 검증 레벨들에 대한 검증을 요구하며, 제 1 검증 레벨은 타깃 검증 레벨보다 낮은 거친 검증 레벨이다. 거친 단계 동안, 이것은 검증되는 메모리 셀의 선택된 워드 라인 상에 실제 거친 검증 전압 레벨을 공급하여 달성된다. NAND 체인의 경우에, NAND 체인에 모든 다른 워드 라인들은 전형적으로 표준 Vpass 전압으로 설정된다. 미세 단계 동안, 선택된 워드 라인은 타깃 검증 전압 레벨까지 상승한다.
발명의 또 다른 면에 따라서, 메모리 셀이 관련 타깃 임계 레벨에 대해 프로그램되기 위해서, 초기에 거칠지만 고속 프로그래밍 단계들 및 이에 이어 미세 단계들을 수반한 프로그래밍 동작에서, 각각의 거친 단계 사이에 검증은 소정의 오프셋에 의해 관련 타깃 임계 레벨 미만의 거친 검증 레벨에 대한 것이며, 거친 검증 레벨은 검증되는 메모리 셀에 액세스하는 선택된 워드 라인에 인가되는 관련 타깃 임계 레벨 및 이웃 워드 라인에 인가되는 소정의 바이어스 전압에 의해 가상으로 달성된다. 일반적으로, 가상 오프셋은 이웃 워드 라인 상에 소정의 바이어스 전압의 역함수이다.
도 49는 바람직한 실시예에 따라, 프로그래밍의 거친 단계에서 검증 동안에 정규 검증 레벨에 가상 오프셋을 행하기 위해서 이웃 워드 라인의 바이어싱과 검증되는 선택되는 워드 라인 상에 정규 검증 레벨과의 조합을 도시한 것이다. 예에서, WLn은 NAND 체인 중에 선택된 워드 라인이며(도 2 참조) 나머지 비선택된 워드 라인들은 정규로 검증 동작동안 이들에 인가되는 전압 Vpass를 가질 것이다.
거친 단계 동안, 검증 동작은 타깃 상태에 대해 검증 레벨보다 낮게 오프셋되어야 하는 거친 검증 레벨에 대해 감지하여 달성된다. 그러나, WLn 상에 전압을 오프셋하는 대신에, 타깃 검증 레벨에서 거친 및 미세 단계 전체에 걸쳐 동일한 채로 있는다. 대신에, 거친 단계 동안, WLn+1과 같은 이웃 워드 라인들 중 하나는 정규 Vpass보다 낮은 전압 V1으로 바이어스된다. 이것은 Vcoarse로 WLn을 설정하는 가상의 효과를 갖는다.
메모리 셀이 프로그램되고 거친 검증 레벨로 검증된 후에, 이것은 이의 비트 라인을 제로 전압으로 바이어스하여 미세 프로그래밍 단계에 들어간다. 미세 단계에서 검증 동작은 정규 실시 하에 타깃 검증 레벨에 대해 감지하여 달성된다. 이것은 WLn에 인가되는 타깃 검증 레벨 및 WLn+1 및 WLn-1과 같은 비선택된 워드 라인에 인가되는 V2(=Vpass)에 의한다.
도 50은 거친 또는 미세 프로그래밍 단계하에 메모리 셀에 대한 비트 라인 전압을 도시한 것이다. 거친 프로그래밍 단계 동안, 비트 라인은 실질적으로 제로 전압에 있다. 미세 프로그래밍 단계 동안, 비트 라인은 프로그래밍을 느리게 하기 위해서 제로와 Vdd 사이의 소정의 중간 전압에 있다.
도 51은 발명의 바람직한 실시예에 따라, 거친 검증 레벨이 가상으로 구현되는 거친/미세 프로그래밍을 도시한 흐름도이다.
단계 1800: 워드 라인과 비트 라인에 의해 액세스 가능한 메모리 셀 어레이를 구비한 비휘발성 메모리를 제공한다.
단계 1802: 관련 타깃 임계 레벨에 대한 메모리 셀 프로그래밍시, 관련 타깃 임계 레벨 미만의 오프셋 검증 레벨을 제공한다.
단계 1810: 거친 단계에서 프로그래밍을 할 수 있게 일 그룹의 셀의 비트 라인에 제 1 비트 라인 전압을 초기에 인가한다.
단계 1820: 소정의 프로그래밍 파형 전압을 적용하여 관련 타깃 임계 레벨에 대해 병렬로 일 그룹의 메모리 셀을 프로그래밍한다.
단계 1830: 각각의 개별 메모리 셀에 액세스하는 워드 라인에 인가되는 관련 타깃 임계 레벨 및 제 1 인접 워드 라인에 인가되는 제 1 소정의 바이어스 전압으로 감지하여 오프셋 검증 레벨에 대해 프로그램되는 각각의 개별 메모리 셀을 검증한다.
단계 1832: 각각의 개별 메모리 셀에 액세스하는 워드 라인에 인가되는 관련 타깃 임계 레벨 및 제 1 인접 워드 라인에 인가되는 제 2 소정의 바이어스 전압으로 감지하여 관련 타깃 임계 레벨에 대해 프로그램되는 각각의 개별 메모리 셀을 검증한다.
단계 1840: 그룹의 모든 메모리 셀이 관련 타깃 임계 레벨로 검증되었나? 이러하다면, 단계 1860으로 가고, 그렇지 않다면 단계 1850으로 간다.
단계 1850: 이러한 메모리 셀에 대한 프로그래밍이 미세 단계에서 늦추어지도록 오프셋 검증 레벨로 검증되는 임의의 메모리 셀의 비트 라인을 제 2 비트 라인 전압으로 설정한다.
단계 1852: 이러한 메모리 셀에 대한 프로그래밍이 금지되도록 관련 타깃 임계 레벨로 검증되는 임의의 메모리 셀의 비트 라인을 제 3 비트 라인 전압으로 설정한다.
단계 1860: 관련 타깃 임계 레벨에 대한 프로그래밍이 그룹에 대해 행해진다.
기술된 비휘발성 메모리 시스템들의 여러 유형은 복수의 비트들의 데이터 중 하나를 개별적으로 저장하는 메모리 셀을 지원할 수 있고 다른 장치들의 회로보드들에 내장된 착탈 가능 메모리 카드들 및 저장장치들을 포함한 상이한 디지털 저장장치들 및 시스템에 있는 것이 고려된다.
발명의 상술한 상세한 설명은 예시와 설명을 위해 개시되었다. 개시된 정밀한 형태로 발명을 제한하거나 모두를 나타내기 위한 것이 아니다. 많은 수정과 변형이 앞에 교시된 것에 비추어 가능하다. 발명의 원리와 그 실제 적용을 가장 잘 설명하기 위해 개시된 실시예가 선택되고, 이를 통해 당업자는 발명을 여러 실시예로, 고려되는 특정 용도에 적합한 여러 수정으로 가장 잘 이용할 수 있도록 한다. 발명의 범위는 첨부된 청구항에 의해 한정되도록 의도된다.

Claims (22)

  1. 워드 라인과 비트 라인에 의해 액세스 가능한 메모리 셀의 어레이를 구비한 비휘발성 메모리에서, 상기 각각의 개별 메모리 셀은 관련 타깃 임계 레벨에 대해 프로그램 가능하고, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법에 있어서,
    프로그램되는 상기 각각의 개별 메모리 셀이 소정의 오프셋에 의해 상기 관련 타깃 임계 레벨에 못 미치게 검증되도록 제 1 패스에서 상기 그룹을 프로그래밍하는 단계와,
    프로그램되는 상기 각각의 개별 메모리 셀이 상기 관련 타깃 임계 레벨로 검증되도록 후속 패스에서 상기 그룹을 프로그램하는 단계를
    포함하고,
    상기 제 1 패스에서 상기 그룹을 프로그램하는 단계는,
    상기 관련 타깃 임계 레벨이 상기 각각의 개별 메모리 셀에 액세스하는 상기 워드 라인에 인가되고 제 1 소정의 바이어스 전압이 제 1 인접 워드 라인에 인가되는지를 감지하여, 개별 메모리 셀이 소정의 오프셋에 의해 상기 관련 타깃 임계 레벨에 못 미치게 프로그램되는지를 검증하는 단계를
    포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  2. 제 1항에 있어서, 감지에 의한 상기 검증 단계는 제 2 인접 워드 라인에 제 2 소정의 바이어스 전압을 인가하는 단계를 더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  3. 제 1항에 있어서, 상기 제 1 패스에서 상기 그룹을 프로그래밍하는 상기 단계는,
    (a) 프로그래밍 하의 각 메모리 셀의 임계 전압을 증가시키기 위해 병렬로 상기 그룹에 소정의 프로그래밍 파형 전압을 인가하는 단계와,
    (b) 상기 관련 타깃 임계 레벨이 상기 개별 메모리 셀에 액세스하는 상기 워드 라인에 인가되고 제 1 소정의 바이어스 전압이 제 1 인접 워드 라인에 인가되는 것을 감지하여, 개별 메모리 셀이 소정의 오프셋에 의해 상기 관련 타깃 임계 레벨에 못 미치게 프로그램되는지를 검증하는 단계와,
    (c) 검증된 상기 그룹에서 메모리 셀의 추가 프로그래밍을 금지하는 단계와,
    그룹의 모든 메모리 셀이 검증될 때까지 (a) 내지 (c)를 반복하는 단계를
    더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  4. 제 3항에 있어서, 감지에 의한 상기 검증 단계는 제 2 인접 워드 라인에 제 2 소정의 바이어스 전압을 인가하는 단계를 더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  5. 제 1항에 있어서, 후속 패스에서 상기 그룹을 프로그래밍하는 상기 단계는,
    상기 관련 타깃 임계 레벨이 상기 개별 메모리 셀에 액세스하는 상기 워드 라인에 인가되고 소정의 선택되지 않은 워드 라인 전압이 상기 제 1 인접 워드 라인에 인가되는 것을 감지하여, 개별 메모리 셀이 상기 관련 타깃 임계 레벨에 대해 프로그램되는지를 검증하는 단계를
    더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  6. 제 5항에 있어서, 감지에 의한 상기 검증 단계는 제 2 인접 워드 라인에 제 2 소정의 바이어스 전압을 인가하는 단계를 더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  7. 제 1항에 있어서, 상기 비휘발성 메모리는 NAND 유형인, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  8. 비휘발성 메모리에 있어서,
    한 세트의 워드 라인과 한 세트의 비트 라인에 의해 어드레스 가능한 메모리 셀의 어레이와,
    병렬로 프로그래밍 및 검증하기 위한 일 그룹의 메모리 셀 각각을 위한 판독/기록 회로와,
    개별 워드 라인을 위한 워드 라인 전압원 및 개별 비트 라인을 위한 비트 라인 전압원을
    포함하고,
    상기 판독/기록 회로는 제 1 패스 및 제 2 패스에서 각각의 메모리 셀을 프로그래밍하기 위해 개별 워드 라인을 위한 상기 전압원과 협동하고,
    상기 제 1 패스에서, 상기 판독/기록 회로는, 상기 워드 라인 전압원이 상기 메모리 셀에 액세스하는 상기 워드 라인에 상기 관련 타깃 임계 레벨을 인가하고 제 1 인접 워드 라인에 제 1 소정의 바이어스 전압을 인가하는 것을 감지하여, 상기 메모리 셀이 소정의 오프셋에 의해 상기 관련 타깃 임계 레벨에 못 미치게 프로그램될 것을 검증하는, 비휘발성 메모리.
  9. 제 8항에 있어서, 상기 검증 단계는 상기 워드 라인 전압원이 제 2 인접 워드 라인에 제 2 소정의 바이어스 전압을 인가하는 단계를 포함하는, 비휘발성 메모리.
  10. 제 8항에 있어서, 후속 패스에서 상기 그룹을 프로그래밍하는 상기 단계는,
    상기 판독/기록 회로가, 상기 워드 라인 전압원이 상기 개별 메모리 셀에 액세스하는 상기 워드 라인에 관련 타깃 임계 레벨을 인가하고 상기 제 1 인접 워드 라인에 소정의 선택되지 않은 워드 라인 전압을 인가하는 것을 감지하여, 상기 메모리 셀이 상기 관련 타깃 임계 레벨에 대해 프로그램될 것을 검증하는 단계를
    더 포함하는, 비휘발성 메모리.
  11. 제 10항에 있어서, 감지에 의한 상기 검증 단계는 상기 워드 라인 전압원이 제 2 인접 워드 라인에 제 2 소정의 바이어스 전압을 공급하는 단계를 포함하는, 비휘발성 메모리.
  12. 제 8항에 있어서, 상기 비휘발성 메모리는 NAND 유형인, 비휘발성 메모리.
  13. 워드 라인과 비트 라인에 의해 액세스 가능한 메모리 셀의 어레이를 구비한 비휘발성 메모리에서, 상기 각각의 개별 메모리 셀은 관련 타깃 임계 레벨에 대해 프로그램 가능하고, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법에 있어서,
    프로그램되는 상기 각각의 개별 메모리 셀이 소정의 오프셋에 의해 상기 관련 타깃 임계 레벨에 못 미치는 거친 검증 레벨(coarse verify level)로 검증되도록 초기에 거친 단계(coarse phase)에서 상기 그룹을 프로그래밍하는 단계와,
    지연 프로그래밍(retarded programming)으로 미세 단계(fine phase)에서 상기 거친 검증 레벨에 대해 검증된 상기 그룹의 상기 메모리 셀을 프로그래밍하는 단계로서, 상기 메모리 셀은 상기 관련 타깃 임계 레벨에 대해 검증된, 단계를
    포함하고,
    상기 거친 단계에서 상기 그룹을 프로그래밍하는 단계는,
    관련 타깃 임계 레벨이 상기 개별 메모리 셀에 액세스하는 워드 라인에 인가되고 제 1 인접 워드 라인에 제 1 소정의 바이어스 전압이 인가된 것을 감지하여, 개별 메모리 셀이 효과적으로 상기 거친 검증 레벨에 대해 프로그램될 것을 검증하는 단계를
    더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  14. 제 13항에 있어서, 상기 거친 단계에서 상기 그룹을 프로그래밍하는 단계는,
    실질적으로 제로 전압에서 제 1 비트 라인 전압을 상기 거친 단계에서 프로그램되는 메모리 셀에 인가하는 단계를
    더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  15. 제 13항에 있어서, 상기 미세 단계에서 상기 그룹을 프로그래밍하는 단계는,
    제로 이상이고 공급 전압 미만인 중간 전압에서 제 2 비트 라인 전압을 상기 미세 단계에서 프로그램되는 상기 메모리 셀에 인가하는 단계를
    더 포함하는, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  16. 제 15항에 있어서, 상기 비휘발성 메모리는 NAND 유형인, 일 그룹의 개별 메모리 셀을 병렬로 프로그래밍하는 방법.
  17. 비휘발성 메모리에 있어서,
    한 세트의 워드 라인 및 한 세트의 비트 라인에 의해 어드레스 가능한 메모리 셀 어레이와,
    병렬로 프로그래밍 및 검증하기 위한 일 그룹의 메모리 셀 각각을 위한 판독/기록 회로와,
    개별 워드 라인을 위한 워드 라인 전압원 및 개별 비트 라인을 위한 비트 라인 전압원을
    포함하고,
    상기 판독/기록 회로는 거친 단계와 미세 단계에서 각 메모리 셀을 프로그래밍하기 위해 개별 워드 라인을 위한 상기 전압원과 협동하고,
    상기 거친 단계에서, 상기 판독/기록 회로는, 상기 워드 라인 전압원이 상기 메모리 셀에 액세스하는 상기 워드 라인에 상기 관련 타깃 임계 레벨을 인가하고 제 1 인접 워드 라인에 제 1 소정의 바이어스 전압을 인가하는 것을 감지하여, 상기 메모리 셀이 상기 거친 검증 레벨에 대해 효과적으로 프로그램될 것을 검증하는, 비휘발성 메모리.
  18. 제 17항에 있어서, 상기 거친 단계에서 상기 그룹을 프로그래밍하는 단계는,
    실질적으로 제로 전압에서 제 1 비트 라인 전압을 상기 거친 단계에서 프로그램되는 메모리 셀에 인가하는 단계를
    더 포함하는, 비휘발성 메모리.
  19. 제 17항에 있어서, 상기 미세 단계에서 상기 그룹을 프로그램하는 단계는,
    제로 이상이고 공급 전압 미만인 중간 전압에서 제 2 비트 라인 전압을 상기 미세 단계에서 프로그램되는 메모리 셀에 인가하는 단계를
    포함하는, 비휘발성 메모리.
  20. 제 17항에 있어서, 상기 비휘발성 메모리는 NAND 유형인, 비휘발성 메모리.
  21. 워드 라인과 비트 라인에 의해 액세스 가능한 메모리 셀의 어레이를 구비한 비휘발성 메모리에서, 상기 각각의 개별 메모리 셀은 관련 타깃 임계 레벨에 대해 프로그램 가능하고, 일 그룹의 메모리 셀을 소정의 오프셋을 이용하여 타깃 임계 전압 레벨에 대해 평행하게 프로그래밍하는 방법에 있어서,
    프로그래밍 하에 각 메모리 셀의 임계 전압을 증가시키기 위해 병렬로 상기 그룹의 메모리 셀에 프로그래밍 파형 전압을 인가하는 단계와,
    상기 그룹의 메모리 셀에 액세스하는 상기 워드 라인에 상기 소정의 임계 레벨 전압을 인가하는 단계와,
    인접한 워드 라인에 소정의 바이어스 전압 레벨을 인가하는 단계로서, 상기 소정의 바이어스 전압이 소정의 오프셋에 의해 상기 소정의 임계 레벨 전압을 가상으로 오프셋하는 것과 동일한, 단계와,
    상기 가상으로 오프셋된 소정의 임계 레벨에 대해 프로그램된 상기 그룹의 메모리 셀을 검증하기 위해 감지하는 단계를
    포함하는, 일 그룹의 메모리 셀을 프로그래밍하는 방법.
  22. 비휘발성 메모리에 있어서,
    한 세트의 워드 라인에 의해 행별로, 한 세트의 비트 라인에 의해 열별로 어드레스 가능한 한 어레이의 메모리 셀과,
    병렬로 프로그래밍 및 검증하기 위한 일 그룹의 메모리 셀 각각을 위한 판독/기록 회로와,
    검증하는 동안 소정의 임계 레벨 전압을 상기 그룹의 메모리 셀에 액세스하는 워드 라인에 인가하고 소정의 바이어스 전압 레벨을 인접한 워드 라인에 인가하기 위해 상기 판독/기록 회로와 협동하고, 상기 소정의 바이어스 전압은 상기 소정의 오프셋에 의해 상기 소정의 임계 레벨 전압을 가상으로 오프셋하는 것과 동일하게 되어 있는, 전원을
    포함하는, 비휘발성 메모리.
KR1020107005875A 2007-09-17 2008-09-10 비휘발성 메모리 및 프로그래밍 동안 검증하기 위해 인접한 워드 라인을 바이어싱하는 방법 KR20100075840A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/856,639 2007-09-17
US11/856,639 US7652929B2 (en) 2007-09-17 2007-09-17 Non-volatile memory and method for biasing adjacent word line for verify during programming

Publications (1)

Publication Number Publication Date
KR20100075840A true KR20100075840A (ko) 2010-07-05

Family

ID=40076539

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107005875A KR20100075840A (ko) 2007-09-17 2008-09-10 비휘발성 메모리 및 프로그래밍 동안 검증하기 위해 인접한 워드 라인을 바이어싱하는 방법

Country Status (7)

Country Link
US (1) US7652929B2 (ko)
EP (1) EP2191474B1 (ko)
JP (1) JP5379143B2 (ko)
KR (1) KR20100075840A (ko)
CN (1) CN101861623B (ko)
TW (1) TWI501247B (ko)
WO (1) WO2009039011A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180020877A (ko) * 2016-08-19 2018-02-28 삼성전자주식회사 솔리드 스테이트 드라이브 및 그것을 포함하는 스토리지 시스템

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7679965B2 (en) * 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
US8223540B2 (en) * 2007-02-02 2012-07-17 Macronix International Co., Ltd. Method and apparatus for double-sided biasing of nonvolatile memory
US7751245B2 (en) 2007-10-10 2010-07-06 Micron Technology, Inc. Programming sequence in NAND memory
KR20100010355A (ko) * 2008-07-22 2010-02-01 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 및 소거 방법
US7839687B2 (en) * 2008-10-16 2010-11-23 Sandisk Corporation Multi-pass programming for memory using word line coupling
US7813181B2 (en) 2008-12-31 2010-10-12 Sandisk Corporation Non-volatile memory and method for sensing with pipelined corrections for neighboring perturbations
JP2011008838A (ja) * 2009-06-23 2011-01-13 Toshiba Corp 不揮発性半導体記憶装置およびその書き込み方法
US8259504B2 (en) * 2009-07-15 2012-09-04 Ememory Technology Inc. Method of programming/erasing the nonvolatile memory
US8134871B2 (en) 2009-08-05 2012-03-13 Sandisk Technologies Inc. Programming memory with reduced pass voltage disturb and floating gate-to-control gate leakage
US8174895B2 (en) * 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
US8254167B2 (en) * 2010-05-17 2012-08-28 Seagate Technologies Llc Joint encoding of logical pages in multi-page memory architecture
JP2011258289A (ja) * 2010-06-10 2011-12-22 Toshiba Corp メモリセルの閾値検出方法
US9076547B2 (en) 2012-04-05 2015-07-07 Micron Technology, Inc. Level compensation in multilevel memory
US9030870B2 (en) 2011-08-26 2015-05-12 Micron Technology, Inc. Threshold voltage compensation in a multilevel memory
US9183940B2 (en) 2013-05-21 2015-11-10 Aplus Flash Technology, Inc. Low disturbance, power-consumption, and latency in NAND read and program-verify operations
WO2014210424A2 (en) 2013-06-27 2014-12-31 Aplus Flash Technology, Inc. Novel nand array architecture for multiple simultaneous program and read
WO2015013689A2 (en) 2013-07-25 2015-01-29 Aplus Flash Technology, Inc. Nand array hiarchical bl structures for multiple-wl and all -bl simultaneous erase, erase-verify, program, program-verify, and read operations
KR102131060B1 (ko) 2013-08-14 2020-07-08 삼성전자주식회사 불휘발성 메모리 장치의 읽기 및 쓰기 동작 방법
US9293205B2 (en) 2013-09-14 2016-03-22 Aplus Flash Technology, Inc Multi-task concurrent/pipeline NAND operations on all planes
US9007841B1 (en) * 2013-10-24 2015-04-14 Western Digital Technologies, Inc. Programming scheme for improved voltage distribution in solid-state memory
WO2015100434A2 (en) 2013-12-25 2015-07-02 Aplus Flash Technology, Inc A HYBRID NAND WITH ALL-BL m-PAGE OPERATION SCHEME
WO2016014731A1 (en) 2014-07-22 2016-01-28 Aplus Flash Technology, Inc. Yukai vsl-based vt-compensation for nand memory
CN104464797B (zh) * 2014-12-23 2017-12-12 苏州宽温电子科技有限公司 一种自适应的字线电压调节型sram结构
KR102333738B1 (ko) 2015-02-03 2021-12-01 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치의 동작 방법
KR20160120990A (ko) * 2015-04-09 2016-10-19 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR102414186B1 (ko) 2016-04-04 2022-06-28 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
JP2017216025A (ja) * 2016-05-31 2017-12-07 東芝メモリ株式会社 半導体記憶装置
CN106297892B (zh) * 2016-08-11 2019-06-28 北京兆易创新科技股份有限公司 一种存储器参考单元的实现方法及系统
JP2018160296A (ja) * 2017-03-22 2018-10-11 東芝メモリ株式会社 半導体記憶装置
US10074436B1 (en) 2017-06-13 2018-09-11 Winbound Electronics Corp. Memory device and data reading method thereof
US10236053B1 (en) 2017-10-17 2019-03-19 R&D 3 Llc Method and circuit device incorporating time-to-transition signal node sensing
US11501826B2 (en) 2017-10-17 2022-11-15 R&D3 Llc Memory device having variable impedance memory cells and time-to-transition sensing of data stored therein
KR102392056B1 (ko) * 2017-12-27 2022-04-28 삼성전자주식회사 메모리 장치의 데이터 독출 방법, 메모리 컨트롤러의 제어 방법 및 이들을 포함하는 저장 장치
KR102634434B1 (ko) * 2018-12-24 2024-02-06 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10726929B1 (en) 2019-01-25 2020-07-28 Sandisk Technologies Llc Programming process which compensates for data state of adjacent memory cell in a memory device
JP2020149123A (ja) 2019-03-11 2020-09-17 キオクシア株式会社 メモリシステム、及びメモリシステムの制御方法
JP2020149742A (ja) * 2019-03-12 2020-09-17 キオクシア株式会社 半導体記憶装置
US10902920B2 (en) * 2019-04-18 2021-01-26 Micron Technology, Inc. Driving conductors to target voltage levels
US11393546B2 (en) 2019-07-19 2022-07-19 Silicon Storage Technology, Inc. Testing circuitry and methods for analog neural memory in artificial neural network
CN110473588A (zh) * 2019-08-15 2019-11-19 山东华芯半导体有限公司 一种SSD中在线校准NAND Flash读参考电压的方法
US11726869B2 (en) 2019-08-20 2023-08-15 Micron Technology, Inc. Performing error control operation on memory component for garbage collection
US11282567B2 (en) * 2019-08-20 2022-03-22 Micron Technology, Inc. Sequential SLC read optimization
US11281578B2 (en) 2019-08-20 2022-03-22 Micron Technology, Inc. Garbage collection in a memory sub-system during a low battery state
US11281392B2 (en) 2019-08-28 2022-03-22 Micron Technology, Inc. Garbage collection in a memory component using an adjusted parameter
CN114400036A (zh) * 2019-12-09 2022-04-26 长江存储科技有限责任公司 用于通过调整虚设字线的电压而降低编程干扰的方法和存储器
US11403228B2 (en) * 2020-02-18 2022-08-02 Micron Technology, Inc. Memory device page program sequence
JP2021131919A (ja) 2020-02-20 2021-09-09 キオクシア株式会社 半導体記憶装置及びその読み出し方法
WO2021232223A1 (en) * 2020-05-19 2021-11-25 Yangtze Memory Technologies Co., Ltd. 3d nand flash and operation method thereof
US11594293B2 (en) 2020-07-10 2023-02-28 Samsung Electronics Co., Ltd. Memory device with conditional skip of verify operation during write and operating method thereof
CN114093408A (zh) * 2020-10-20 2022-02-25 长江存储科技有限责任公司 存储器的读取方法以及电压补偿装置
CN112270946B (zh) * 2020-10-29 2022-10-04 长江存储科技有限责任公司 存储器编程方法、装置及电子设备
US11670380B2 (en) 2020-12-07 2023-06-06 Sandisk Technologies Llc Two-sided adjacent memory cell interference mitigation
US11545220B2 (en) 2020-12-29 2023-01-03 Micron Technology, Inc. Split-gate memory cells
KR20230041330A (ko) * 2021-09-17 2023-03-24 에스케이하이닉스 주식회사 비휘발성 메모리 장치에 데이터를 프로그램 및 검증하기 위한 장치 및 방법

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960002006B1 (ko) 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
JP3080743B2 (ja) * 1991-12-27 2000-08-28 日本電気株式会社 不揮発性半導体記憶装置
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
JP3967409B2 (ja) 1996-12-26 2007-08-29 株式会社東芝 半導体集積回路装置
US5930167A (en) 1997-07-30 1999-07-27 Sandisk Corporation Multi-state non-volatile flash memory capable of being its own two state write cache
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
ITRM20020369A1 (it) 2002-07-09 2004-01-09 Micron Technology Inc Architettura a burst per memoria a doppio bus.
US6781877B2 (en) 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7046568B2 (en) 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7327619B2 (en) 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US7196931B2 (en) 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US6829167B2 (en) * 2002-12-12 2004-12-07 Sandisk Corporation Error recovery for nonvolatile memory
US6859397B2 (en) 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
US7237074B2 (en) 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
JP4287222B2 (ja) 2003-09-03 2009-07-01 株式会社東芝 不揮発性半導体記憶装置
US7064980B2 (en) 2003-09-17 2006-06-20 Sandisk Corporation Non-volatile memory and method with bit line coupled compensation
KR100558552B1 (ko) 2003-12-30 2006-03-10 삼성전자주식회사 반도체 메모리장치의 데이터 억세스회로
US7173863B2 (en) 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US6888758B1 (en) 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
JP4170952B2 (ja) 2004-01-30 2008-10-22 株式会社東芝 半導体記憶装置
US7177977B2 (en) 2004-03-19 2007-02-13 Sandisk Corporation Operating non-volatile memory without read disturb limitations
US7313649B2 (en) 2004-04-28 2007-12-25 Matsushita Electric Industrial Co., Ltd. Flash memory and program verify method for flash memory
KR100632942B1 (ko) 2004-05-17 2006-10-12 삼성전자주식회사 불 휘발성 메모리 장치의 프로그램 방법
JP4410188B2 (ja) * 2004-11-12 2010-02-03 株式会社東芝 半導体記憶装置のデータ書き込み方法
DE102004057483B3 (de) * 2004-11-29 2006-08-10 Infineon Technologies Ag Verfahren zum Testen von Halbleiter-Chips mittels Bitmasken
JP4672673B2 (ja) 2004-11-30 2011-04-20 スパンション エルエルシー 半導体装置および半導体装置の制御方法
US7120051B2 (en) 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US20060140007A1 (en) 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7187585B2 (en) 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
WO2007016167A1 (en) * 2005-08-01 2007-02-08 Sandisk Corporation Programming non-volatile memory with self-adjusting maximum program loop
US7752382B2 (en) 2005-09-09 2010-07-06 Sandisk Il Ltd Flash memory storage system and method
US20070124628A1 (en) * 2005-11-30 2007-05-31 Lsi Logic Corporation Methods of memory bitmap verification for finished product
KR100683856B1 (ko) * 2006-01-12 2007-02-15 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법
KR100683858B1 (ko) * 2006-01-12 2007-02-15 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상할 수 있는플래시 메모리의 프로그램 방법
US7400532B2 (en) 2006-02-16 2008-07-15 Micron Technology, Inc. Programming method to reduce gate coupling interference for non-volatile memory
US7436733B2 (en) 2006-03-03 2008-10-14 Sandisk Corporation System for performing read operation on non-volatile storage with compensation for coupling
EP1991989B1 (en) * 2006-03-03 2011-01-05 Sandisk Corporation Read operation for non-volatile storage with compensation for floating gate coupling
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7522454B2 (en) 2006-07-20 2009-04-21 Sandisk Corporation Compensating for coupling based on sensing a neighbor using coupling
US7894269B2 (en) 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7495953B2 (en) 2006-07-20 2009-02-24 Sandisk Corporation System for configuring compensation
US7885119B2 (en) 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
US7400535B2 (en) 2006-07-20 2008-07-15 Sandisk Corporation System that compensates for coupling during programming
US7506113B2 (en) 2006-07-20 2009-03-17 Sandisk Corporation Method for configuring compensation
US7443729B2 (en) 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
WO2008083132A2 (en) 2006-12-28 2008-07-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7616506B2 (en) 2006-12-28 2009-11-10 Sandisk Corporation Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7679965B2 (en) 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
JP4510060B2 (ja) * 2007-09-14 2010-07-21 株式会社東芝 不揮発性半導体記憶装置の読み出し/書き込み制御方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180020877A (ko) * 2016-08-19 2018-02-28 삼성전자주식회사 솔리드 스테이트 드라이브 및 그것을 포함하는 스토리지 시스템

Also Published As

Publication number Publication date
TWI501247B (zh) 2015-09-21
EP2191474A1 (en) 2010-06-02
US20090073771A1 (en) 2009-03-19
WO2009039011A1 (en) 2009-03-26
JP2010539631A (ja) 2010-12-16
CN101861623A (zh) 2010-10-13
TW200931426A (en) 2009-07-16
CN101861623B (zh) 2014-05-07
JP5379143B2 (ja) 2013-12-25
US7652929B2 (en) 2010-01-26
EP2191474B1 (en) 2014-08-20

Similar Documents

Publication Publication Date Title
EP2191475B1 (en) Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
EP2191474B1 (en) Non-volatile memory and method for biasing adjacent word line for verify during programming
EP2047474B1 (en) Floating gate memory with compensating for coupling during programming
EP2047473B1 (en) Compensating for coupling between adjacent storage elements in a nonvolatile memory, based on sensing a neighbor using coupling
US8284606B2 (en) Compensating for coupling during programming
KR100934495B1 (ko) 비휘발성 메모리의 판독 동작 동안 커플링 보상
KR100934496B1 (ko) 커플링 보상을 포함하는 비휘발성 저장소에 대한 판독 동작
US7969778B2 (en) System that compensates for coupling based on sensing a neighbor using coupling
KR100934497B1 (ko) 비휘발성 저장소 내의 커플링 보상
US7522454B2 (en) Compensating for coupling based on sensing a neighbor using coupling
US7630248B2 (en) System that compensates for coupling during programming
WO2008011441A2 (en) Method for configuring compensation for coupling between adjacent storage elements in a nonvolatile memory

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
AMND Amendment
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B601 Maintenance of original decision after re-examination before a trial
J121 Written withdrawal of request for trial
WITB Written withdrawal of application