KR101049582B1 - 인접 메모리 셀들의 프로그래밍 이후 오버 프로그래밍된메모리 셀들 검출 - Google Patents

인접 메모리 셀들의 프로그래밍 이후 오버 프로그래밍된메모리 셀들 검출 Download PDF

Info

Publication number
KR101049582B1
KR101049582B1 KR1020067002056A KR20067002056A KR101049582B1 KR 101049582 B1 KR101049582 B1 KR 101049582B1 KR 1020067002056 A KR1020067002056 A KR 1020067002056A KR 20067002056 A KR20067002056 A KR 20067002056A KR 101049582 B1 KR101049582 B1 KR 101049582B1
Authority
KR
South Korea
Prior art keywords
state storage
control line
storage element
over
programming
Prior art date
Application number
KR1020067002056A
Other languages
English (en)
Other versions
KR20060114319A (ko
Inventor
지안 첸
얀 리
제프레이 더블유. 루체
Original Assignee
샌디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 코포레이션 filed Critical 샌디스크 코포레이션
Publication of KR20060114319A publication Critical patent/KR20060114319A/ko
Application granted granted Critical
Publication of KR101049582B1 publication Critical patent/KR101049582B1/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/3404Convergence or correction of memory cell threshold voltages; Repair or recovery of overerased or overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells

Landscapes

  • Read Only Memory (AREA)
  • Non-Volatile Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

비-휘발성 반도체 메모리 시스템(또는 다른 타입의 메모리 시스템)에서, 메모리 셀은 메모리 셀의 임계 전압을 변경함으로서 프로그래밍된다. 시스템 내의 상이한 메모리 셀의 프로그래밍 속도에서의 차이때문에, 일부 메모리 셀이 오버 프로그래밍될 가능성이 있다. 즉, 일례로, 임계 전압은 의도된 값 또는 값의 범위에서 빠르게 이동될 것이다. 본 발명은 메모리 셀이 인접 로우의 셀을 프로그래밍하는 것때문에 오버 프로그래밍되는지를 결정하는 것을 포함한다.

Description

인접 메모리 셀들의 프로그래밍 이후 오버 프로그래밍된 메모리 셀들 검출{DETECTING OVER PROGRAMMED MEMORY CELLS AFTER PROGRAMMING OF ADJACENT MEMORY CELLS}
본 출원은 Jian Chen, Yan Li 및 Jeffrey W. Lutze에 의해 "DETECTING OVER PROGRAMMED MEMORY"라는 명칭으로 본 출원과 동일자로 출원된 미국 특허출원과 관련되는 바, 이는 본 명세서에 참조로서 편입된다.
일반적으로 본 발명은 메모리 장치에 대한 기술에 관한 것으로서, 특히 메모리 장치가 오버 프로그래밍되어 있는지를 검색하는 방법에 관한 것이다.
반도체 메모리 장치는 다양한 전자 장치에서 더욱더 일반적으로 사용되어 왔다. 예를 들어, 비휘발성 반도체 메모리는 셀룰러 전화기, 디지털 카메라, 개인 휴대정보 단말기, 휴대용 연산 장치, 비-휴대용 연산 장치 및 기타 장치에서 사용된다. 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory, EEPROM) 및 플래시 메모리가 가장 일반적인 비휘발성 반도체 메모리이다.
통상적인 EEPROM과 플래시 메모리는 반도체 기판의 채널 영역으로부터 절연 되고 그 위에 제공된 플로팅 게이트(floating gate)를 구비한 메모리 셀을 이용한다. 플로팅 게이트는 소스와 드레인 영역 사이에 위치한다. 제어 게이트(control gate)는 플로팅 게이트로부터 절연되어 그 위에 제공된다. 메모리의 임계 전압은 플로팅 게이트 상에 유지되는 전하량에 의해 제어된다. 즉, 메모리 셀이 자신의 소스와 드레인 사이에서 도통(conduction)을 허용하기 위해 턴온되기 전에 제어 게이트에 인가되어야 하는 전압의 최소 크기는 플로팅 게이트 상의 전하 레벨에 의해 제어된다.
일부 EEPROM 및 플래시 메모리 장치는 2개의 전하 범위를 저장하기 위해 사용되는 플로팅 게이트를 구비하고, 이에 따라 메모리 셀은 2개의 상태 사이에서 프로그래밍/소거될 수 있다. EEPROM 또는 플래시 메모리 장치를 프로그래밍할 때, 프로그램 전압이 제어 게이트에 인가되고 비트 라인이 접지된다. p-웰(p-well)로부터의 전자들은 플로팅 게이트로 주입된다. 전자들이 플로팅 게이트에 축적될 때, 플로팅 게이트는 음으로 대전되고 메모리 셀의 임계 전압은 증가한다.
통상적으로, 제어 게이트에 인가된 프로그램 전압은 일련의 펄스로서 인가된다. 펄스들의 진폭은 미리 결정된 계단 크기만큼 각각의 펄스에서 증가한다. 펄스들 사이의 주기에서, 검증 동작(verify operation)이 수행된다. 즉, 병렬로 프로그래밍되는 각 셀의 프로그래밍 레벨이, 상기 프로그래밍 레벨이 프로그래밍되고 있는 검증 레벨과 동일하거나 큰지를 결정하기 위해서, 각각의 프로그래밍 펄스 사이에서 판독된다. 프로그래밍을 검증하는 한가지 수단은 특정 비교 지점에서 도통을 시험하는 것이다.
도통(conduction)은 장치의 채널을 통한 전류 흐름에 상응하는 장치의 "온(on)" 상태를 표현한다. "오프(off)" 상태는 소스와 드레인 사이의 채널을 따라 전류가 흐르지 않는 상태에 상응한다. 통상적으로, 플래시 메모리 셀은 제어 게이트에 인가된 전압이 임계 전압보다 크다면 도통될 것이고, 제어 게이트에 인가된 전압이 임계 전압보다 작다면 도통되지 않을 것이다. 셀의 임계 전압을 적당한 값으로 설정함으로써, 셀은 주어진 인가 전압 세트에 대해 전류가 도통되거나 도통되지 않도록 될 수 있다. 따라서, 셀이 주어진 인가 전압 세트에서 전류를 도통시키는지를 결정함으로써, 셀의 상태가 결정될 수 있다.
다수-비트 또는 다수-상태 플래시 메모리 셀은 장치 내에서 다수, 별개의 임계 전압 범위를 식별하기 위해 생성된다. 각각의 별개의 임계 전압 범위는 데이터 비트 세트에 대한 미리 결정된 값에 상응한다. 메모리 셀 내로 프로그래밍되는 데이터와 셀의 임계 전압 레벨 사이의 특정 관계는 셀에 대해 채택된 데이터 인코딩 방법에 의존한다. 예를 들어, 본 명세서에 참조로서 편입되어 있고 미국 특허 제6,222,762호와 2003년 6월 13일에 출원된 미국 특허 출원 제10/461,244호 "Tracking Cells For a Memory System"은 다양한 데이터 인코딩 방법을 기술한다. 적당한 데이터 저장은 다수-상태 메모리 셀의 다수 임계 전압 레벨 범위가 충분한 여유(margin)만큼 서로로부터 이격되어 메모리 셀의 레벨이 모호하지 않은 방식으로 프로그래밍되거나 소거될 수 있다.
많은 경우에, 예를 들어 적당한 시간 내에 프로그래밍될 수 있는 상업적으로 바람직한 메모리 시스템을 만들기 위해, 다수 메모리 셀을 병렬로 프로그래밍할 필요가 있다. 그러나 다수의 메모리 셀이 동시에 프로그래밍되어야 할 때 문제가 발생한다. 이는 각 메모리 셀의 특성이 메모리 셀을 포함하는 반도체 장치의 구조 및 동작상의 작은 편차때문에 상이하고, 이에 따라, 상이한 셀의 프로그래밍 속도에서의 편차가 통상적으로 발생할 것이기 때문이다. 이는 메모리 셀이 다른 셀보다 더 빨리 프로그래밍되도록 하고 일부 메모리 셀은 의도한 것과 다른 상태로 프로그래밍되도록 할 가능성이 있다. 다수 메모리 셀의 더욱 빠른 프로그래밍은 원하는 임계 전압 레벨 범위를 오버-슈팅(over-shooting)하도록 할 수 있고, 저장되는 데이터에서의 에러를 유발할 수 있다.
통상적으로, 데이터가 프로그래밍될 때, 장치에 대한 검증 프로세스는 메모리 셀의 임계 전압이 최저 레벨보다 더 높다는 것을 보증할 것이다. 그러나 장치는 통상적으로 임계 전압에서의 상한을 보증하지 못한다. 일부 장치는 소프트 프로그래밍 프로세스(soft programming process)(이하에서 기술됨)가 임계 전압이 너무 높이 상승하는지를 알기 위해 검사하지만, 이러한 장치는 정상적인 프로그래밍 프로세스가 임계 전압을 너무 높게 상승시키는지를 알기 위해 검사하지 않는다. 따라서, 원하는 상태를 위한 범위 이상으로 임계 전압을 상승시키는 오버 프로그래밍(over programming)이 예기치 않게 발생할 수 있다. 오버 프로그래밍은 메모리 셀이 부정확한 데이터를 저장하도록 하고, 이에 따라 후속의 판독 동작 동안 에러를 유발한다. 오버 프로그래밍에 대한 추가적인 정보는 미국 특허 제5,321,699; 5,386,422; 5,469,444; 6,134,140; 및 5,602,789호에 기술되어 있다.
오버 프로그래밍을 정정하기 위해 많은 메모리 시스템은 후속의 판독 동작 동안 에러 정정 코드(Error Correction Codes, "ECC")를 사용한다. 데이터가 장치로부터 판독될 때, ECC는 에러가 발생했는지를 결정하기 위해 사용된다. 에러가 충분히 작다면, ECC는 에러를 정정하기 위해 사용될 수 있다. 그러나 오버 프로그래밍 동안에 기인한 에러를 정정하기 위해 ECC를 사용할 때 적어도 3가지 문제점이 발생한다. 첫째, ECC 프로세스는 많은 프로세싱 시간을 요구하기 때문에 메모리 시스템의 동작을 상당히 느리게 한다. 둘째, ECC는 상당한 시간 동안 ECC를 수행하기 위한 부가적인 전용 하드웨어를 요구한다. 이러한 전용 하드웨어는 메모리 시스템 칩 상에 상당한 크기의 공간을 차지할 수 있다. 시스템 내에서 더 많은 메모리 셀을 위치시키고 시스템을 가능한 한 더 작은 호스트 장치에 적응시키기 위해서 메모리 시스템의 크기를 감소시키는 것이 추세이다. 따라서, 새로운 메모리 설계는 통상적으로 ECC에 대해 사용될 수 있는 공간(real estate) 크기를 감소시키고 있다. 셋째, 다수의 에러가 있는 경우, ECC는 에러를 정정할 수 없을 수 있다.
따라서, 메모리 셀의 오버 프로그래밍을 검출할 개선된 수단이 필요하다.
본 발명은 일반적으로 메모리 장치가 오버 프로그래밍되었는지를 검출하기 위한 기술에 관한 것이다. 하나 이상의 메모리 장치가 오버 프로그래밍된 것으로 검출되면, 시스템은 다수의 공지된 데이터 정정 수단 중 임의의 하나를 이용하여 이러한 상황을 교정할 수 있다. 예를 들어, 시스템은 데이터를 동일 또는 상이한 메모리 장치에 재-기록할 수 있다. 이러한 오버 프로그래밍 검출은 데이터에 오버 프로그래밍에 기인한 에러가 없도록 하는 것을 보장하여 ECC의 요구조건을 감소시킬 수 있다.
본 발명의 일실시예는 다수의 논리적 페이지(logical page)를 사용하는 메모리 시스템 내의 오버 프로그래밍을 검출하는 방법을 포함한다. 본 방법은 특정 논리적 페이지에 대한 데이터로 제 1 다수-상태 저장 소자(multi-state storage element)를 프로그래밍하는 단계와 제 1 다수-상태 저장 소자가 오버 프로그래밍되었는지를 결정하기 위해 상이한 논리적 페이지로부터의 데이터를 사용하는 단계를 포함한다. 일 구현예에서, 시스템은 제 1 다수-상태 저장 소자의 임계전압이 비교값보다 더 큰지를 결정한다. 시스템은 제 1 다수-상태 저장 소자의 임계전압이 비교값보다 더 큰 경우 오버 프로그래밍되었다고 결론을 내리고 상이한 논리적 페이지에 대한 데이터는 제 1 다수-상태 저장 소자의 임계 전압이 비교값보다 크지 않아야 된다는 것을 표시한다. 오버 프로그래밍 검출은 2개의 논리적 페이지가 프로그래밍된 후에 수행된다.
본 발명의 다른 실시예는 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자를 프로그래밍하는 단계와, 후속하여 제 1 제어 라인과 연관된 하나 이사의 다수-상태 저장 소자를 프로그래밍하는 단계를 포함한다. 제 2 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자를 프로그래밍한 후에 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자가 오버 프로그래밍되었는지에 대해 결정이 이루어진다. 제어 라인은 (기술에 따라) 워드 라인, 비트 라인 또는 임의의 제어 라인 타입일 수 있다. 일실시예에서, 오버 프로그램 결정은 하나 이상의 오버 프로그램 범위의 경계(edge)에 대해 제 1 제어 라인과 연관된 다수-상태 저장 소자 상에서 판독 동작(read operation)을 수행하는 단계와, 제 1 제어 라인과 연관된 다수-상태 저장 소자들이 오버 프로그램 범위들 중 하나 이내에서 임계 전압을 갖는 경우 상기 제 1 제어 라인과 연관된 다수-상태 저장 소자들이 오버 프로그래밍되었다고 결정하는 단계에 의해 이루어진다. 다른 실시예에서, 오버 프로그램 결정은 제 1 제어 라인과 연관된 다수-상태 저장 소자에 대한 초기 상태를 결정하기 위해 하나 이상의 판독 비교 지점 세트에 대해 제 1 제어 라인과 연관된 다수-상태 저장 소자 상에서 판독 동작을 수행하는 단계; 제 1 제어 라인과 연관된 다수-상태 저장 소자와 초기 상태에 대해 에러 정정 코드 프로세스를 수행하는 단계; 및 에러 정정 코드 프로세스가 다수-상태 저장 소자에 대해 실패하는 경우 다수-상태 저장 소자가 오버 프로그래밍되었다고 결정하는 단계에 의해 이루어진다.
또 다른 실시예에서, 본 발명은 제 1 다수-상태 소자를 프로그래밍하는 단계와 제 2 다수-상태 저장 소자를 프로그래밍하는 단계를 포함한다. 시스템은 제 2 다수-저장 소자를 프로그래밍한 후에 제 1 다수-저장 소자가 오버 프로그래밍되었는지를 결정한다.
일 실시예에서, 본 발명을 구현하는 시스템은 저장 소자 배열(array)과 관리 회로(managing circuit)를 포함한다. 관리 회로는 전용 하드웨어 및/또는 비휘발성 메모리(예를 들어 플래시 메모리, EEPROM 등) 또는 다른 메모리 장치와 같은 하나 이상의 저장 장치상에 저장된 소프트웨어에 의해 프로그래밍되는 하드웨어를 포함할 수 있다. 일 실시예에서, 관리 회로는 제어기와 상태 머신(state machine)을 포함한다. 다른 실시예에서, 관리 회로는 상태 머신만을 포함하고 제어기는 포함하지 않는다. 다른 실시예에서, 관리 회로는 전술한 단계들을 수행할 수 있다. 일부 실시예에서, 저장 소자가 오버 프로그래밍되었는지를 검증하는 프로세스가 상태 머신에 의해 수행된다. 일부 구현예에서, 상태 머신은 저장 소자 배열과 동일한 집적 회로 상에 배치된다.
본 발명의 이러한 목적과 장점은 첨부 도면을 참조하여 설명되는 본 발명의 바람직한 실시예들에 대한 다음의 설명으로부터 더욱 명확하게 될 것이다.
도 1은 낸드 스트링(NAND string)의 평면도이다.
도 2는 도 1의 낸드 스트링의 등가 회로도이다.
도 3은 도 1의 낸드 스트링의 단면도이다.
도 4는 3개의 낸드 스트링을 나타내는 회로도이다.
도 5는 본 발명의 다양한 특징들이 구현되는 비휘발성 메모리 시스템의 일 실시예에 대한 블록도이다.
도 6은 메모리 배열의 예시적인 구조를 도시한다.
도 7은 칼럼 제어 회로의 부분을 도시한다.
도 8은 메모리 셀 임계 분포(distribution)를 도시하고 다수-상태 메모리 셀을 프로그래밍하는 예시적인 기술을 도시한다.
도 9는 메모리 배열을 프로그래밍하기 위한 프로세스의 일 실시예를 설명하는 흐름도이다.
도 10 내지 도 13은 오버 프로그램 검출을 수행하는 프로세스 세트의 일 실시예를 설명하는 흐름도이다.
도 14A 및 도 14B는 오버 프로그램 검출을 프로그래밍하고 수행하기 위한 프로세스에 대한 2개의 실시예를 설명하는 흐름도이다.
도 15A는 메모리 임계 분포를 도시한다.
도 15B와 도 15C는 오버 프로그램 검출을 수행하기 위한 프로세스에 대한 2개의 실시예를 설명하는 흐름도이다.
도 16은 오버 프로그램 검출을 수행하기 위한 비교 지점의 대안적인 세트를 구비한 메모리 임계 분포를 도시한다.
도 17 내지 도 22는 오버 프로그램 검출을 수행하는 추가적인 실시예에 대한 진리표(truth table)이다.
플래시 메모리 시스템의 일 실시예는 2개의 선택 게이트(select gate) 사이에 직렬로 다수의 트랜지스터를 배열하는 것을 포함하는 낸드(NAND) 구조를 사용한다. 직렬인 트랜지스터들과 선택 게이트들은 낸드 스트링으로 지칭된다. 도 1은 하나의 낸드 스트링을 도시하는 평면도이다. 도 2는 이의 등가 회로도이다. 도 1과 도 2에 도시된 낸드 스트링은 직렬이고 제 1 선택 게이트(120)와 제 2 선택 게이트(122) 사이에 위치한 4개의 트랜지스터(100, 102, 104 및 106)를 포함한다. 선택 게이트(120)는 낸드 스트링을 비트 라인(126)에 연결한다. 선택 게이트(122)는 낸드 스트링을 소스 라인(128)에 연결한다. 선택 게이트(120)는 제어 게이트(120CG) 에 적당한 전압을 인가함으로써 제어된다. 선택 게이트(122)는 제어 게이트(122CG)에 적당한 전압을 인가함으로써 제어된다. 각각의 트랜지스터(100, 102, 104 및 106)는 제어 게이트와 플로팅 게이트를 구비한다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 구비한다. 트랜지스터 (102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 제어 게이트(100CG)는 워드 라인(WL3)에 연결되고, 제어 게이트(102CG)는 워드 라인(WL2)에 연결되고, 제어 게이트(104CG)는 워드 라인(WL1)에 연결되며, 제어 게이트(106CG)는 워드 라인(WL0)에 연결된다.
도 3은 전술한 낸드 스트링의 단면도를 보여준다. 도 3에 도시된 바와 같이, 낸드 스트링의 트랜지스터(또는 셀이나 메모리 셀로 지칭됨)가 p-웰 영역(140)에 형성된다. 각 트랜지스터는 제어 게이트(100CG, 102CG, 104CG, 106CG)와 플로팅 게이트(100FG, 102FG, 104FG, 106FG)로 구성된 스택 게이트 구조(stacked gate structure)를 포함한다. 플로팅 게이트는 산화막 최상부 상의 p-웰의 표면상에 형성된다. 제어 게이트는 플로팅 게이트 위에 위치하고, 산화막이 제어 게이트와 플로팅 게이트를 절연한다. 도 3이 트랜지스터(120 및 122)에 대한 제어 게이트와 플로팅 게이트를 도시한다는 것을 유의하라. 그러나 트랜지스터(120 및 122)에 대해, 제어 게이트와 플로팅 게이트는 함께 연결된다. 메모리 셀(100, 102, 104, 106)의 제어 게이트는 워드 라인을 형성한다. N+ 확산층(130, 132, 134, 136 및 138)은 인 접하는 셀들 사이에 공유되고, 이에 따라 셀들은 낸드 스트링을 형성하기 위해 직렬로 서로와 연결된다. 이러한 N+ 확산층은 각 셀의 소스와 드레인을 형성한다. 예를 들어, N+ 확산층(130)은 트랜지스터(122)의 드레인 및 트랜지스터(106)에 대한 소스로서 역할을 하고, N+ 확산층(132)은 트랜지스터(106)에 대한 드레인 및 트랜지스터(104)에 대한 소스로서 역할을 하고, N+ 확산 영역(134)은 트랜지스터(104)에 대한 드레인 및 트랜지스터(102)에 대한 소스로서 역할을 하고, N+ 확산 영역(136)은 트랜지스터(102)에 대한 드레인 및 트랜지스터(100)에 대한 소스로서 역할을 하고, N+ 확산층(138)은 트랜지스터(100)에 대한 드레인 및 트랜지스터(120)에 대한 소스로서 역할을 한다. N+ 확산층(126)은 낸드 스트링에 대한 비트 라인에 연결되고, N+ 확산층(128)은 다수 낸드 스트링에 대한 공통 소스 라인에 연결된다.
도 1 내지 도 3이 낸드 스트링에 4개의 메모리 셀을 도시하고 있지만, 4개의 트랜지스터의 사용은 단지 예시적인 적으로 이해되어야 한다. 낸드 스트링은 4개의 메모리 셀보다 적을 수도 있고 많을 수도 있다. 예를 들어, 일부 낸드 스트링은 8개, 16개, 32개의 메모리 셀 등을 포함할 것이다. 여기에서의 논의는 낸드 스트링의 임의의 특정 개수의 메모리 셀에 한정되지 않는다.
낸드 구조를 사용하는 플래시 메모리 시스템에 대한 통상적인 구조는 다수의 낸드 스트링을 포함할 것이다. 예를 들어, 도 4는 훨씬 더 많은 낸드 스트링을 구비한 메모리 배열 중에 3개의 낸드 스트링(202, 204 및 206)을 도시한다. 도 4의 각각의 낸드 스트링은 2개의 선택 트랜지스터와 4개의 메모리 셀을 포함한다. 예를 들어, 낸드 스트링(202)은 선택 트랜지스터(220 및 230), 메모리 셀(222, 224, 226 및 228)을 포함한다. 낸드 스트링(204)은 선택 트랜지스터(240 및 250)와 메모리 셀(242, 244, 246 및 248)을 포함한다. 각 스트링은 자신의 선택 트랜지스터(예를 들어, 선택 트랜지스터(230) 및 선택 트랜지스터(250))에 의해 소스 라인에 연결된다. 선택 라인(SGS)은 소스 측 선택 게이트를 제어하기 위해 사용된다. 다양한 낸드 스트링이 선택 트랜지스터(220, 240 등)에 의해 각각의 비트 라인에 연결되는데, 상기 선택 트랜지스터는 선택 라인(SGD)에 의해 제어된다. 다른 실시예에서, 선택 라인은 반드시 공통일 필요는 없다. 워드라인(WL3)은 메모리셀(222) 및 메모리 셀(242)에 대한 제어 게이트에 연결된다. 워드 라인(WL2)은 메모리 셀(224), 메모리 셀(244) 및 메모리 셀(250)에 대한 제어 게이트에 연결된다. 워드 라인(WL1)은 메모리 셀(226) 및 메모리 셀(246)에 대한 제어 게이트에 연결된다. 워드 라인(WL0)은 메모리 셀(228) 및 메모리 셀(248)에 대한 제어 게이트에 연결된다. 알 수 있는 바와 같이, 각 비트 라인 및 각각의 낸드 스트링은 메모리 셀 배열의 칼럼(column)들을 포함한다. 워드 라인(WL3, WL2, WL1 및 WL0)은 상기 배열의 로우(row)를 포함한다.
각각의 메모리 셀은 데이터(아날로그 또는 디지털)를 보존할 수 있다. 1 비트의 디지털 데이터를 저장할 때, 메모리 셀의 가능한 임계 전압의 범위는 논리 데이터 "1" 및 "0"이 할당되는 2개의 범위로 분할된다. 낸드 타입 플래시 메모리의 일 실시예에서, 임계 전압은 메모리 셀이 소거된 후에 음의 값을 갖고, 논리 "1"으로 정의된다. 프로그램 동작 후의 임계 전압은 양의 값이고 논리 "0"으로 정의된다. 임계 전압이 음의 값이고 판독(read)이 시도될 때, 메모리 셀은 논리 "1"이 저장되어 있다는 것을 표시하기 위해 턴온될 것이다. 임계 전압이 양의 값이고 판독 동작이 시도될 때, 메모리 셀은 턴온되지 않을 것인데, 이는 논리값 "0"이 저장되어 있다는 것을 표시한다. 메모리 셀은 또한 예를 들어 다수의 디지털 데이터 비트와 같은 다수의 정보 레벨을 저장할 수 있다. 다수의 데이터 레벨을 저장하는 경우에, 가능한 임계 전압의 범위는 데이터 레벨의 수로 나누어진다. 예를 들어, 4개의 정보 레벨이 저장된다면, 데이터 값 "11", "10", "01" 및 "00"에 할당된 4개의 임계 전압 범위가 존재할 것이다. 낸드 타입 메모리의 일 실시예에서, 소거 동작 후의 임계 전압은 음의 값이고 "11"으로 정의된다. 양의 임계 전압은 "10", "01" 및 "00"의 상태를 위해 사용된다.
낸드 타입 플래시 메모리와 이의 동작에 대한 관련된 예들이 다음의 미국특허/특허출원: 미국특허 제5,570,315호, 미국특허 제5,774,397호, 미국특허 제6,046,935, 미국특허 제6,456,528호 및 미국특허출원 제09/893,277호(공개 번호 US2003/0002348)에서 제공되는데, 이들 모두는 본 명세서에 참조로서 편입되어 있다. 다른 타입의 플래시 메모리 장치도 본 발명에서 사용될 수 있다. 예를 들어, 다음의 특허: 미국특허 제5,095,344호, 제5,172,338호, 제5,890,192호 및 제6,151,248호는 노어(NOR) 타입 플래시 메모리를 기술하는데, 이들은 본 명세서에 참조로서 편입되어 있다. 다른 플래시 메모리 타입에 대한 예는 미국특허 제6,151,248호에서 발견되는데, 이는 본 명세서에 참조로서 편입되어 있다.
도 5는 본 발명을 구현하기 위해 사용될 수 있는 플래시 메모리 시스템의 일실시예의 블록도이다. 메모리 셀 배열(302)은 칼럼 제어 회로(304), 로우 제어 회로(306), c-소스 제어 회로(310) 및 p-웰 제어 회로(308)에 의해 제어된다. 칼럼 제어 회로(304)는 메모리 셀에 저장된 데이터 판독을 위해, 프로그램 동작 동안 메모리 셀의 상태 결정을 위해, 그리고 프로그래밍을 촉진하거나 금지하기 위한 비트 라인의 전위(potential) 레벨 제어를 위해, 메모리 셀 배열(302)의 비트 라인에 연결된다. 로우 제어 회로(306)는 판독 전압을 인가하고, 프로그램 전압을 인가하고, 그리고 소거 전압을 인가하기위해, 워드 라인 중 하나를 선택하기 위한 워드 라인에 연결된다. C-소스 제어 회로(310)는 메모리 셀에 연결된 공통 소스 라인(도 6에서 "C-소스"로 표기됨)을 제어한다. P-웰 제어 회로(308)는 p-웰 전압을 제어한다.
메모리 셀에 저장된 데이터는 칼럼 제어 회로(304)에 의해 독출되고 데이터 입/출력 버퍼(312)를 통해 외부 I/O 라인에 출력된다. 메모리 셀에 저장될 프로그램 데이터는 외부 I/O 라인을 통해 데이터 입/출력 버퍼(312)에 입력되고, 칼럼 제어 회로(304)에 전달된다. 외부 I/0 라인은 제어기(318)에 연결된다.
플래시 메모리 장치를 제어하기 위한 명령 데이터는 제어기(318)에 입력된다. 명령 데이터는 플래시 메모리에게 어떤 동작이 요구되는지를 알린다. 입력 명령은 칼럼 제어 회로(304), 로우 제어 회로(306), c-소스 제어(310), p-웰 제어 회로(308) 및 데이터 입/출력 버퍼(312)를 제어하는 상태 머신(316)에 전달된다. 상태 머신(318)은 또한 READY/BUSY 또는 PASS/FAIL과 같은 플래시 메모리의 상태 데이터를 출력할 수 있다.
제어기(318)는 개인용 컴퓨터, 디지털 카메라, 개인 휴대정보 단말기 등과 같은 호스트 시스템에 연결되거나, 이들에 연결가능하다. 제어기(318)는 호스트로 부터 명령을 수신하기 위해 호스트와 통신하고, 호스트로부터 데이터를 수신하고, 호스트에 데이터를 제공하며, 호스트에 상태 정보를 제공한다. 제어기(318)는 호스트로부터의 명령을 명령 회로(command circuit)(314)에 의해 해석되고 실행될 수 있는 명령 신호로 변환하는데, 상기 명령 회로(314)는 상태 머신(316)과 통신 연결된다. 제어기(318)는 통상적으로 사용자 데이터가 메모리 배열에 기록되거나 그로부터 판독되는 버퍼 메모리를 포함한다.
하나의 예시적인 메모리 시스템은 제어기(318)를 포함하는 하나의 집적 회로와, 각각이 메모리 배열 및 연관된 제어, 입/출력 및 상태 머신 회로를 포함하는 하나 이상의 집적 회로칩을 포함한다. 시스템의 메모리 배열과 제어기 회로는 하나 이상의 집적 회로 칩에 함께 집적되는 것이 추세이다. 메모리 시스템은 호스트 시스템의 일부로서 구현되거나 호스트 시스템으로 탈착가능하게 삽입되는 메모리 카드(또는 다른 패키지)에 포함될 수 있다. 이러한 탈착가능한 카드는 (예를 들어 제어기를 포함하는) 전체 메모리 시스템 또는 단지 메모리 배열과 연관된 주변 회로(여기에서 제어기는 호스트에 구현됨)를 포함할 수 있다. 따라서, 제어기는 호스트에 구현되거나 탈착가능한 메모리 시스템 내에 포함될 수 있다.
도 6을 참조하여, 메모리 셀 배열(302)의 예시적인 구조가 설명된다. 일례로서, 낸드 플래시 EEPROM은 1024 블록으로 구분되는 것으로 설명된다. 각 블록에 저장된 데이터는 동시에 소거된다. 일실시예에서, 블록은 동시에 소거되는 최소 셀 단위이다. 상기 예에서의 각 블록에서, 짝수 칼럼(even column)과 홀수 칼럼으로 분할되는 8,512개의 칼럼이 존재한다. 비트 라인은 또한 짝수 비트라인(BLe)과 홀수 비트 라인(BLo)으로 분할된다. 도 6은 낸드 스트링을 형성하기 위해 직렬로 연결된 4개의 메모리 셀을 도시한다. 4개의 셀이 각각의 낸드 스트링에 포함된 것으로 도시되어 있지만, 4개 이상 또는 이하가 사용될 수 있다. 낸드 스트링의 일 단자는 제 1 선택 트랜지스터(SGD)를 통해 상응하는 비트 라인에 연결되고, 다른 단자는 제 2 선택 트랜지스터(SGS)를 통해 c-소스에 연결된다.
판독 및 프로그래밍 동작 동안, 4,256개의 메모리 셀이 동시에 선택된다. 선택된 메모리 셀은 동일한 워드 라인과 동일한 중류의 비트 라인(예를 들어 짝수 비트 라인)을 구비한다. 따라서, 532 바이트의 데이터가 동시에 판독되거나 프로그래밍될 수 있다. 동시에 판독되거나 프로그래밍되는 이러한 532 바이트의 데이터는 논리적 페이지(logical page)를 형성한다. 따라서, 하나의 블록은 적어도 8개의 논리적 페이지(각각이 홀수 및 짝수 페이지를 구비한 4개의 워드 라인)를 저장할 수 있다. 각 메모리 셀이 2 비트 데이터(예를 들어 다수-레벨 셀)를 저장할 때, 하나의 블록은 16 페이지를 저장한다. 다른 크기의 블록과 페이지도 역시 본 발명에서 사용될 수 있다.
메모리 셀은 p-웰을 소거 전압(예를 들어 20 볼트)까지 상승시키고 선택된 블록의 워드 라인을 접지시킴으로써 소거된다. 소스 및 비트 라인이 플로팅된다. 소거는 전체 메모리 배열, 별개의 블록 또는 다른 셀 유닛 상에서 수행될 수 있다. 전자가 플로팅 게이트로부터 p-웰 영역으로 전달되고 임계 전압이 음의 값을 갖는다.
판독 및 검증 동작에서, 선택 게이트(SGD 및 SGS)와 선택되지 않은 워드 라 인(예를 들어, WL0, WL1 및 WL3)은 트랜지스터가 통과 게이트(pass gate)로도 동작하도록 판독 통과(read pass) 전압(예를 들어 4.5볼트)까지 상승된다. 선택된 워드 라인(예를 들어, WL2)은 전압에 연결되는데, 상기 전압의 레벨은 관련된 메모리 셀의 임계 전압이 상기 레벨에 도달했는지를 결정하기 위해 각각의 판독 및 검증 동작에 대해 특정된다. 예를 들어, 2-레벨 메모리 셀을 위한 판독 동작에서, 선택된 워드 라인(WL2)은 접지될 수 있고, 이에 따라 임계 전압이 0V보다 높은지가 결정된다. 검증 동작에서, 선택된 워드 라인(WL2)은 예를 들어 2.4V에 연결되고, 이에 따라 임계 전압이 적어도 2.4V에 도달했는지가 검증된다. 소스와 p-웰은 0볼트 상태이다. 선택된 비트 라인(BLe)은 예를 들어 0.7V의 레벨로 사전-충전된다. 임계 전압이 판독 또는 검증 레벨보다 높은 경우, 관련된 비트 라인(BLe)의 전위 레벨은 비-전도성 메모리 셀 때문에 높은 레벨을 유지한다. 다른 한편으로, 임계 전압이 판독 또는 검증 레벨 이하인 경우, 관련된 비트 라인(BLe)의 전위 레벨은 전도성 메모리 셀(M) 때문에 예를 들어 0.5V 이하의 낮은 레벨로 감소한다. 메모리 셀의 상태는 비트 라인에 연결된 감지 증폭기(sense amplifier)에 의해 검출된다. 메모리 셀이 소거되는지 또는 프로그래밍되는지 사이의 차이는 음의 전하가 플로팅 게이트에 저장되는지 아닌지에 의존한다. 예를 들어, 음의 전하가 플로팅 게이트에 저장된다면, 임계 전압은 더 높게 되고 트랜지스터는 강화 모드(enhancement mode)가 될 수 있다.
전술한 소거, 판독 및 검증 동작은 당업계에 공지된 기술에 따라 수행된다. 따라서, 설명된 많은 세부사항은 당업자에 의해 변경될 수 있다.
도 7은 도 5의 칼럼 제어 회로(304)의 일부를 도시한다. 각각의 비트 라인 쌍(예를 들어 BLe 및 BLo)은 감지 증폭기에 접속된다. 감지 증폭기는 3개의 데이터 래치 즉, 제 1 데이터 래치(402), 제 2 데이터 래치(404) 및 제 3 데이터 래치(406)에 연결된다. 3개의 데이터 래치 각각은 1 비트의 데이터를 저장할 수 있다. 감지 증폭기는 판독 또는 검증 동작 동안 선택된 비트 라인의 전위 레벨을 감지하고, 감지된 데이터를 이진 방식으로 저장하며, 프로그램 동작 동안 비트 라인 전압을 제어한다. 감지 증폭기는 "evenBL" 및 "oddBL" 신호 중 하나를 선택함으로써 선택된 비트 라인에 선택적으로 연결된다. 데이터 래치(402, 404 및 406)는 판독 데이터를 출력하고 프로그램 데이터를 저장하기 위해 I/O 라인(408)에 접속된다. I/O 라인(408)은 도 5의 데이터 입/출력 버퍼(312)에 연결된다. 데이터 래치(402, 404 및 406)는 또한 상태 정보를 송수신하기 위해 상태 라인(들)(410)에 접속된다. 일실시예에서, 각각의 비트 라인 쌍(홀수 및 짝수)에 대해 감지 증폭기, 제 1 데이터 래치(402) 제 2 데이터 래치(404) 및 제 3 데이터 래치(406)가 있다.
도 8은 2 비트의 데이터(예를 들어 4개의 데이터 상태)를 저장하는 메모리 셀에 대한 임계 전압 분포(threshold voltage distribution)를 도시한다. 분포(460)는 소거된 상태("11"을 저장함)인 셀의 임계 전압 분포를 나타내고, 음의 임계 전압 레벨을 갖는다. 분포(462)는 "10"을 저장하는 셀의 임계 전압 분포를 나타낸다. 분포(464)는 "00"을 저장하는 셀의 임계 전압 분포를 나타낸다. 분포(466)는 "01"을 저장하는 셀의 임계 전압 분포를 나타낸다. 본 예에서 단일 메모리 셀에 저장된 2개의 비트 각각은 상이한 논리적 페이지의 일부이다. 사각형 내에 표시된 비트는 하부 페이지(lower page)에 상응한다. 원 내에 표시된 비트는 상부 페이지(upper page)에 상응한다. 일 실시예에서, 이러한 논리적 상태는 그레이 코드 오리엔테이션(gray code orientation)(11, 10, 00, 01)을 사용하여 물리적 상태에 할당되고, 이에 따라 플로팅 게이트의 임계 전압이 오류가 있게 변동하는 경우 단지 하나의 비트만이 영향을 받도록 될 것이다. 도 8이 4개의 상태를 도시하고 있지만, 본 발명은 4개 이상이나 이하의 상태에 대해 사용될 수 있다.
개선된 신뢰성을 제공하기 위해, 더 조밀한 분포(tighter distribution)가 더 넓은 판독 마진(read margin)(상태 사이의 거리)를 가져오기 때문에 개별적인 분포는 조밀하게 (좁은 분포가) 되는 것이 좋다. 기본적으로 분포를 0.2V-폭으로 제한하고 본 명세서에 참조로서 편입된, 논문 "Fast and Accurate Programming Method for Multi-level NAND EEPROMs, pp129-130, Digest of 1995 Symposium on VLSI Technology"에 따라, 통상적인 각각의 프로그래밍 펄스는 계단(step)들 사이에서 0.2V로 증가되는 것을 요구한다. 분포를 0.05V-폭 이내로 조밀하게 하기 위해, 0.05V 계단이 요구된다. 프로그래밍 전압에서 이러한 작은 계단 증분(step increment)을 갖는 프로그래밍 셀은 프로그래밍 시간을 증가시키게 된다.
도 8은 4-상태 낸드 메모리 셀을 프로그래밍하는 2-통과(two pass) 기술의 예를 도시한다. 제 1 프로그래밍 통과(programming pass)에서, 셀의 임계 전압 레벨은 하부 논리적 페이지로 프로그래밍될 비트에 따라 설정된다. 만일 비트가 논리 "1"인 경우, 임계 전압은 변경되지 않는데, 이는 비트가 초기에 소거된 결과로서 적당한 상태에 있기 때문이다. 그러나 프로그래밍될 비트가 논리 "0"인 경우, 셀의 임계 레벨은 화살표(470)로 도시된 바와 같이 임계 전압 분포(462) 이내가 되도록 증가된다. 이는 제 1 프로그래밍 통과로 결론짓는다.
제 2 프로그래밍 통과에서, 셀의 임계 전압 레벨은 상부 논리 페이지로 프로그래밍될 비트에 따라 설정된다. 상부 논리 페이지 비트가 논리 "1"을 저장하려 하는 경우, 셀이 하부 페이지 비트의 프로그래밍에 따라 임계 전압 분포(460 또는 462)에 상응하는 상태 중 하나에 있고, 이들 임계 전압 분포 모두는 "1"의 상부 페이지 비트를 전달하기 때문에 어떤 프로그래밍도 발생하지 않는다. 상부 페이지 비트가 논리 "0"인 경우, 임계 전압은 변동된다. 제 1 통과의 결과, 셀이 셀의 상태 임계 분포(460)에 상응하는 소거된 상태에 있게 된다면, 제 2 통과에서 셀은 화살표(474)로 표시된 바와 같이 임계 전압이 임계 전압 분포(466) 이내에 놓이게 증가되도록 프로그래밍된다. 셀이 제 1 프로그래밍 통과의 결과로서 임계 분포(462)에 상응하는 상태로 프로그래밍된다면, 메모리 셀은 제 2 통과에서 추가로 프로그래밍되어 임계 전압은 화살표(472)로 표시된 바와 같이 임계 전압 분포(464) 이내에 놓이도록 증가된다. 제 2 통과의 결과는 하부 페이지에 대한 데이터를 변경하지 않고서 상부 페이지에 대한 논리 "0"을 저장하도록 지정된 상태로 상기 셀을 프로그래밍하는 것이다.
특정 비트 패턴이 각각의 분포에 할당되었더라도, 이와 상이한 비트 패턴이 마찬가지로 할당될 수 있고, 이 경우에 상태 사이에 프로그래밍이 발생하는 상태들은 도 8에 도시된 것과 상이할 수 있다는 것을 유의하여야 한다.
일반적으로, 병렬로 프로그래밍되는 셀은 워드 라인을 따라 존재하는 대안적 인 셀(alternate)이다. 예를 들어, 도 4는 워드 라인(WL2)을 따른 훨씬 더 많은 수의 셀 중에서 3개의 메모리 셀(224, 244 및 250)을 도시한다. 셀(224 및 250)을 포함하는 하나의 대안적인 셀들 세트는 논리 페이지(0 및 2)("짝수 페이지")로부터의 비트를 저장하는 반면, 셀(244)을 포함하는 다른 대안적 셀들 세트는 논리적 페이지(1 및 3)("홀수 페이지")로부터의 비트를 저장한다. 상기 예에서, 논리적 페이지(0 및 1)는 하부 페이지이고 논리적 페이지(2 및 3)는 상부 페이지이다.
또한, 도 8은 판독 비교 지점(read compare pont)과 검증 비교 지점(verify compare point)을 도시하고 있다는 것을 유의하라. 예를 들어, 판독 비교 지점은 Vr10, Vr00 및 Vr01을 포함한다. 판독 동작 동안, Vr10, Vr00 및 Vr01에 상응하는 전압은 메모리 셀이 어느 지점에서 도통되고 도통되지 않는지를 결정하기 위해 메모리 셀의 제어 게이트에 인가된다. 3개의 판독 동작에 기초하여, 메모리 시스템은 메모리 셀이 어느 임계 분포(예를 들어 어느 상태)에 있는지를 결정할 수 있다. 예를 들어, 메모리 셀이 3개의 판독 동작 중 임의의 것에 대해 도통하지 않는다면, 메모리 셀은 상태(01)에 있다. 만일 메모리 셀이 단지 Vr01을 제어 게이트에 인가할 때만 도통된다면, 메모리 셀은 상태(00)에 있는 것이다. 만일 메모리 셀이 Vr00을 인가할 때 도통되고 Vr10을 인가할 때 도통되지 않는다면, 메모리 셀은 상태(10)에 있는 것이다. 만일 메모리 셀이 Vr10, Vr00 및 Vr01을 인가할 때 도통된다면, 메모리 셀은 상태(11)에 있는 것이다. 일실시예에서, 판독 비교 지점(Vr10, Vr00 및 Vr01) 각각은 인접하는 임계 분포 상태 사이의 중간지점(midpoint)이다. 검증 비교 지점(Vr10, Vr00 및 Vr01)은 셀이 충분히 프로그래밍되었는지를 결정하 기 위해 프로그래밍 프로세스 동안 사용된다.
도 8은 또한 오버 프로그래밍 검증 비교 지점(VopSP, Vop10, Vop00 및 Vop01)을 도시한다. 이러한 오버 프로그래밍 검증 비교 지점은 특정 메모리 셀이 오버 프로그래밍되었는지를 결정하기 위해 사용된다. 예를 들어, VopSP를 상태(11)에 있도록 의도된 메모리 셀의 제어 게이트에 인가함으로써, 만일 셀이 도통되지 않는다면 셀은 오버 프로그래밍(오버 소프트 프로그래밍)된 것으로 결정될 수 있다. 셀이 상태(10)에 있도록 의도된 경우, Vop10을 셀의 제어 게이트에 인가할 때 셀이 도통(예를 들어, 턴온)되지 않는다면 셀이 오버 프로그래밍되었다고 결론내릴 수 있을 것이다. 셀이 상태(00)에 있도록 의도될 때, 만일 메모리 셀이 Vop00이 제어 게이트에 인가될 때 도통하지 않는다면, 셀은 오버 프로그래밍된 것으로 결정될 수 있다. 셀이 상태(01)로 프로그래밍된 경우, Vop01이 제어 게이트에 인가된 경우 셀이 도통하지 않는다면 셀이 오버 프로그래밍된 것으로 결론지을 수 있다. 각각의 오버 프로그래밍 검증 비교 지점은 인접하는 판독 비교 지점 약간 아래에 존재한다. 예를 들어, 일 실시예에서, 상기 검증 비교 지점은 인접하는 판독 비교 지점보다도 50mV 이하이다. 다른 실시예에서, 검증 비교 지점은 인접하는 판독 비교 지점으로부터 50mV와 약간 상이할 수 있다. 일실시예에서, 오버 프로그램 검증 프로세스는 상태 머신(316)에 의해 수행된다.
프로그래밍 프로세스의 일실시예에서, 메모리 셀은 하부 페이지 프로그래밍 이전에 먼저 (블록 또는 다른 단위로) 소거된다. 프로그래밍 프로세스가 시작될 때, 데이터 로드 또는 기록 명령이 호스트로부터 제어기에 수신될 것이다. 제어기는 데이터 입/출력 버퍼(312)와 상태 머신(316)에 적당한 명령을 발행할 것이다. 제어기(318)는 데이터를 기록할 어드레스를 수신할 것이다. 상기 어드레스는 메모리 셀 배열(302) 내의 특정 논리 페이지(또는 페이지들) 및 물리적 어드레스에 매핑될 것이다. 어드레스 데이터는 제어기(318)로부터 데이터 입/출력 버퍼(312) 및, 일부 실시예에서, 상태 머신(316)에 송신될 것이다. 그 후에 데이터는 프로그램 동작을 위한 어드레스에 근거하여 적당한 제 1 데이터 래치(402)에 송신된다. 제 1 데이터 래치(402)로부터의 데이터는 상응하는 제 2 데이터 래치(404)에 로딩된다. 제어기로부터의 프로그램 명령에 응답하여, 상태 머신(316)은 그 후에 도 9의 흐름도로 설명된 프로그램 프로세스를 시작한다.
단계(594)에서, 상태 머신(316)은 데이터가 상부 페이지 또는 하부 페이지에 기록되고 있는지를 결정한다. 데이터가 하부 페이지에 기록되고 있다면, 프로세스는 단계(600)로 진행한다. 데이터가 상부 페이지에 기록되고 있다면, 상태 머신은 단계(596)에서 하부 페이지 데이터를 결정하기 위해 하부 페이지 판독 동작을 수행한다. 도 8을 다시 참조하면, 상부 페이지 프로그램은 메모리 셀을 상태(00) 또는 상태(01)로 프로그래밍하는 단계를 포함한다. 하부 페이지 데이터가 논리 "1"인 경우, 상부 페이지 프로그램 프로세스는 메모리 셀을 상태(01)(도 8의 화살표(474) 참조)로 프로그래밍하는 단계를 포함한다. 하부 페이지 데이터가 논리 "0"이면, 상부 페이지 프로그램 프로세스는 메모리 셀을 상태(00)(도 8의 화살표(472) 참조)로 프로그래밍하는 단계를 포함한다. 따라서, 시스템은 상부 페이지 프로그램 프로세스 동안 메모리 셀이 어느 상태로 프로그래밍되어야 하는지를 결정하기 위해 하부 페이지 데이터를 알 필요가 있다.
단계(596)의 일 실시예에서, 상태 머신은 Vr10에서 판독 동작을 수행한다. 메모리 셀이 도통(턴온)된다면, 하부 페이지에 대한 판독 데이터는 "1"이다. 메모리 셀이 도통되지 않는(턴온되지 않는)다면, 하부 페이지에 대한 판독 데이터는 "0"이다. 그 후에 하부 페이지 데이터는 제 3 데이터 래치(406)에 저장된다. 다른 판독 프로세스가 하부 페이지 데이터를 판독하기 위해 사용될 수 있고 하부 페이지 데이터는 제 3 데이터 래치(406)와 다른 위치에 저장될 수 있다는 것을 유의하라. 제 3 데이터 래치(406)에 하부 페이지 데이터를 저장한 후에, 프로세스는 단계(600)로 진행한다.
단계(600)에서, 상태 머신은 적당한 워드 라인에 프로그램 펄스를 인가할 것이다. 제 1 펄스가 유도되기 전에, 프로그램 전압이 시작 펄스(starting pulse)(예를 들어 12 볼트)로 초기화되고, 상태 머신에 의해 유지된 프로그램 카운터는 0으로 초기화된다. 단계(600)의 첫번째 반복에서, 제 1 프로그램 펄스는 선택된 워드 라인에 인가된다. 논리 "0"이 특정 제 1 데이터 래치에 저장된다면, 상기 메모리 셀에 상응하는 비트 라인은 접지된다. 다른 한편으로, 논리 "1"이 특정 메모리 셀에 대한 제 1 데이터 래치에 저장된다면, 상응하는 비트 라인은 프로그래밍을 저지하기 위해 Vdd에 연결된다. 프로그래밍 저지에 대한 추가적인 정보는 본 명세서에 참조로서 편입된, 발명 명칭이 "Improved Self Boosting Technique"인 2003년 3월 5일자 미국특허출원 제10/379,608호로부터 알 수 있다.
단계(602)에서, 선택된 메모리 셀이 검증된다. 선택된 셀의 목표 임계 전압이 (예를 들어, 감지 증폭기의 출력과 제 2 데이터 래치를 비교함으로써) 목표 레 벨에 도달했다고 검출된 경우, 제 2 데이터 래치(404)에 저장된 데이터는 논리 "1"로 변경된다. 임계 전압이 적당한 레벨에 도달하지 않았다고 검출된 경우, 제 2 데이터 래치(404)에 저장된 데이터는 변경되지 않는다. 이러한 방식으로, 상응하는 제 2 데이터 래치(404)에 저장된 논리 "1"을 갖는 메모리 셀은 프로그래밍될 필요가 없다. 모든 제 2 데이터 래치가 논리 "1"을 저장할 때, 상태 머신은 (라인(410)을 통해) 모든 선택된 셀이 프로그래밍되었다고 인지한다. 따라서, 단계(604)는 모든 제 2 데이터 래치(404)가 논리 "1"을 저장하고 있는지를 검사하는 단계를 포함한다. 만일 그렇다면, 제 1 프로그래밍 단계는 완료되고 적당한 상태 메시지가 단계(610)에서 보고된다.
만일 단계(604)에서 모든 제 2 데이터 래치(404)가 논리 "1"을 저장하는 것이 아니라고 결정되면, 프로그래밍 프로세스는 계속된다. 단계(606)에서, 프로그램 카운터가 프로그램 한계값에 대해 검사된다. 프로그램 한계값의 일례는 20이다. 만일 프로그램 카운터가 20보다 작지 않다면(예를 들어 최대의 프로그램 시도 개수가 수행된다면), 프로그램 프로세스는 실패하고(단계(608)) 적당한 상태 메시지가 보고된다. 만일 프로그램 카운터가 최대값보다 작다면, 프로그램 전압 레벨은 다음의 단계 크기만큼 증가되고, 프로그램 카운터는 증가되면 프로그래밍 프로세스는 다음 펄스를 인가하기 위해 단계(600)에서 계속된다.
만일 검증 단계가 단계(604)에서 성공적이었다면, 프로그래밍된 각각의 메모리 셀은 도 8에 도시된 분포들 중 하나 내의 임계 전압을 갖는다. 그러나 전술한 프로세스는 단지 프로그래밍될 셀의 임계 전압이 최소한 적당한 검증 비교 지점만 큼 높은지만을 검증했다. 단계(602)에서 사용된 검증 비교 지점은 목표 임계 분포에서 최저의 수용가능한 전압 레벨이다. 예를 들어, 도 8을 참조하면, 셀이 상태(10)로 프로그래밍되었는지를 검증하기 위한 단계(604)에 대한 검증 비교 지점은 Vv10이고, 상태(00)로 프로그래밍하기 위한 검증 비교 지점은 Vv00이며, 상태(01)로 프로그래밍하기 위한 검증 비교 지점은 Vv01이다. 따라서, 전술한 프로세스는 프로그램 프로세스가 원하는 상태에 미치지 못한 것을 검증한다. 이 지점까지, 프로그래밍 프로세스가 원하는 상태에 미치지 못한 것을 알 수 있도록 검사하는 과정이 없었다. 예를 들어, 메모리 셀이 상태(10)로 프로그래밍되도록 의도되었고, 메모리 셀의 임계 전압이 Vop10 이상의 임의의 값으로 프로그래밍되었다면, 메모리 셀은 오버 프로그래밍되었다. 단계(620 - 676)는 프로그래밍 프로세스가 메모리 셀을 오버 프로그래밍했는지를 결정하기 위해 사용된다.
단계(610) 이후에, 도 9의 프로세스는 2개의 병렬 경로로 분할된다. 프로그램 프로세스가 하부 페이지를 프로그래밍한 경우, 프로세스는 단계(620-644)를 수행한다. 프로그래밍 프로세스가 상부 페이지를 프로그래밍한 경우, 프로세스는 단계(660-676)를 수행한다. 일부 셀이 하부 페이지를 프로그래밍시키고 동일한 프로그래밍 프로세스 동안 다른 셀이 상부 페이지를 프로그래밍시키는 것이 가능하다. 따라서, 상이한 단계들 세트가 상이한 메모리 셀에 대해 수행될 수 있다. 다른 실시예에서, 단계(620-644) 및 단계(660-676)는 하부 페이지 또는 상부 페이지가 프로그래밍되고 있는지에 관계없이 프로그래밍되는 모든 셀에 대해 수행될 수 있다.
만일 하부 페이지가 프로그래밍되고 있다면, 단계(620))가 수행된다. 단계 (620)는 소프트 프로그램 오버 프로그램 검증 프로세스를 포함한다. 즉, 단계(620)는 소프트 프로그래밍 프로세스가 소거 프로세스의 일부가 임계 전압을 소거된 메모리 셀에 대해 수용가능한 값 이상으로 상승시킬 때 또는 그 후에 수행되었는지를 결정하는 프로세스를 수행하는 단계를 포함한다. 메모리 셀이 소거될 때, 소거된 메모리 셀에 대한 임계 전압이 너무 낮을 수 있다. 너무 낮은 임계 전압을 교정하기 위해, 소프트 프로그래밍 프로세스가 소거된 메모리 셀의 임계 전압을 수용가능한 레벨까지 상승시키기 위해 수행된다. 소프트 프로그래밍 프로세스는 임계 전압을 메모리 셀이 오버 프로그래밍되도록 할만큼(예를 들어, 임계 전압이 VopSP 이상이 될 만큼) 너무 많이 상승시킬 수 있다. 단계(620)는 이러한 오버 프로그래밍된 셀을 검출한다. 단계(622)에서, 다양한 셀이 단계(620)의 소프트 프로그램 오버 프로그램 검증 프로세스를 통과했는지가 결정된다. 모든 셀이 통과한 것이 아니라면, 상태는 소프트 프로그램 오버 프로그램 검증이 실패했다는 것을 나타내는 단계(624)로 복귀할 것이다. 단계(620)의 프로세스가 (어떤 셀도 소프트 프로그래밍 프로세스 동안 오버 프로그래밍되지 않았기 때문에) 통과했다면, 상태(10) 오버 프로그램 검증 프로세스가 단계(638)에서 수행된다.
단계(638)는 상태(10) 오버 프로그래밍 검증 프로세스를 수행하는 단계를 포함한다. 상태 머신은 상태(10)에 있도록 의도된 셀이 Vop10보다 큰 임계 전압을 갖는지를 결정한다. 만일 그렇다면, 셀은 시험(단계(640))을 통과하지 못하고 상태는 오버 프로그래밍 실패(단계(642))가 있다는 것을 나타내는 단계로 복귀한다. 일실시예에서, 상태는 상태(10) 오버 프로그래밍 실패인 것을 나타내는 단계를 포함할 수 있다. 다른 실시예에서, 수용가능한 레벨 이상의 임계 전압의 크기가 또한 반환될 수 있다. 단계(638)의 프로세스가 오버 프로그래밍된 메모리 셀을 식별하지 않는다면, "통과(pass)"의 상태가 단계(644)에서 반환된다. 단계(644)의 대안적인 실시예에서, 프로세스는 상태(10) 오버 프로그래밍 검증 통과가 있다는 것을 반환할 수 있다.
상부 페이지가 프로그래밍된 경우, 프로세스는 상태(00) 단계(660)에서 오버 프로그램 검증 프로세스를 수행한다. 시스템은 상태(00)로 존재하도록 의도된 메모리 셀의 임계 전압이 Vop00보다 큰 지를 결정하기 위해 검사한다. 셀이 (상태(00)에 있도록 의도된 메모리 셀이 Vop00보다 큰 임계 전압을 갖기 때문에) 통과하지 않는다면, 오버 프로그래밍 실패를 표시하는 상태가 단계(664)에서 제공될 것이다. 대안적인 실시예에서, 상태는 상태(00) 오버 프로그래밍 실패라는 것을 표시할 수 있다. 셀이 오버 프로그래밍되지 않았다고 결정되면, 프로세스는 단계(670)까지 진행되고 상태(01) 오버 프로그램 검증 프로세스를 수행한다.
단계(670)에서, 시스템은 상태(01)에 있도록 의도된 셀이 Vop01보다 큰 임계 전압을 갖는지를 결정한다. 셀이 상태(01)에 있도록 의도되고 임계 전압이 검증 비교 지점(vop01)보다 크다면, 셀은 시험에 실패하고 실패 상태는 단계(674)에서 보고된다. 만일 모든 셀이 (셀이 오버 프로그래밍되지 않거나 상태(01)에 있지 않기 때문에) 시험을 통과한다면, 통과 상태는 단계(676)에서 보고될 것이다. 일실시예에서, 단계(670-676)는 생략될 수 있다.
도 10은 소프트 프로그래밍 오버 프로그램 검증(도 9의 단계(620))을 수행하기 위한 프로세스에 대한 일실시예를 설명하는 흐름도이다. 단계(700)에서, 메모리 셀로 미리 프로그래밍된 데이터는 제 1 데이터 래치(402)에 여전히 존재한다. 상기 데이터는 메모리 셀에 대한 제 1 데이터 래치(402)로부터 제 2 데이터 래치(404)로 로딩된다. 단계(702)에서, 검증 프로세스는 VopSP를 사용하여 수행된다. 즉, 시스템은 제어 게이트가 전압(VopSP)을 수신하는 판독 동작을 수행한다. 메모리 셀이 도통된다면, 감지 증폭기는 논리 1을 반환한다. 셀이 도통되지 않는다면, 감지 증폭기는 논리 0을 반환한다. 검증 데이터가 제 2 데이터 래치(404) 내의 데이터와 일치하면(단계(704), 제 2 데이터 래치(404) 내의 데이터는 1로 설정된다(단계(706)). 단계(700-706)가 각각의 셀에 대해 병렬로 수행된다. 메모리 셀에 대한 모든 제 2 데이터 래치가 1로 설정되면(단계(708)), 소프트 프로그램 오버 프로그램 검증 프로세스는 "통과"의 결과를 반환한다(단계(710)). 만일 모든 제 2 데이터 래치(404)가 1로 설정된 것이 아니라면, 프로세스는 실패한다(단계(712). 만일 셀이 상태(10)에 존재한다면, 단계(700)에서 제 2 데이터 래치로 로딩되는 데이터는 논리 0일 것이고, 검증 단계(702)는 VopSP 전압을 인가할 것이고, 트랜지스터는 도통되지 않을 것이며, 감지 데이터는 0을 표시할 것이다. 따라서, 판독 데이터는 제 2 데이터 래치(404) 내의 데이터와 매칭될 것이고, 제 2 데이터 래치(404)는 논리 1로 설정될 것이며, 프로세스는 여전히 통과할 것이다.
도 11은 상태(10) 오버 프로그램 검증을 수행하는 프로세스(도 9의 단계(638))를 설명하는 흐름도이다. 도 11의 단계(764)에서, 시스템은 Vop10을 사용하여 검증 프로세스를 수행한다. 즉, 판독 동작은 다양한 메모리 셀의 제어 게이트에 인가된 Vop10으로 수행된다. 셀이 상태(11 또는 10)에 있고, 오버 프로그래밍되지 않은 경우, 셀은 도통되어야 하고; 따라서 논리 1이 수신되어야 한다. 단계(766)에서, 제 2 데이터 래치(404)에 검증 단계로부터의 결과가 로딩된다. 만일 모든 셀이 오버 프로그래밍된 것이 아니라면, 셀 모두는 각각의 제 2 데이터 래치에 저장된 논리 1을 가져야 한다. 모든 제 2 데이터 래치가 논리 1에 있는 경우(단계(768)), 프로세스는 통과한다(단계(770)). 만일 모든 제 2 데이터 래치가 논리 1에 있는 것이 아니라면, 프로세스는 실패한다(단계(772)).
도 12는 상태(00) 오버 프로그램 검증 프로세스를 수행하는 프로세스(도 9의 단계(660))의 일실시예를 설명하는 흐름도이다. 도 12의 단계(802)에서, 검증 프로세스는 Vop00을 사용하여 수행된다. 즉, 판독 동작은 메모리 셀의 제어 게이트에 인가되는 Vop00에 따라 수행된다. 일실시예에서, 만일 메모리 셀의 임계 전압이 VoP00보다 크다면, 메모리 셀은 턴온되지 않을 것이고 논리 "0"이 반환될 것이다. 만일 메모리 셀의 임계 전압이 Vop00보다 낮다면, 메모리 셀은 턴온될 것이고 논리 "1"이 반환될 것이다. 단계(802)의 검증으로부터 반환된 결과는 적당한 제 2 데이터 래치(404)에 저장된다. 단계(804)에서, 시스템은 검증 단계(802)의 결과와 제 3 데이터 래치(406)에 저장된 하부 페이지 데이터를 비교할 것이다. 도 12의 프로세스는 상부 페이지 프로그래밍 이후에 수행되고 있다. 전술한 바와 같이, 상부 페이지 프로그램은 먼저 하부 페이지의 데이터를 판독하고 제 3 데이터 래치(406)에 상기 하부 페이지 데이터를 저장함으로써(단계(596 및 598) 참조) 시작된다. 제 3 데이터 래치에 저장된 하부 페이지 데이터는 검증 단계(802)의 결과와 비교된다.
상부 페이지 프로그래밍 이후에, 상태 머신은 메모리 셀이 상태(00) 또는 상태(01)에 있어야 하는지를 인식할 필요가 있다. 하부 페이지 데이터는 상기 정보를 제공한다. 만일 하부 페이지 데이터가 0이라면, 이는 메모리 셀이 상부 페이지 프로그래밍 이전에 상태(10)에 있다는 것을 의미한다. 만일 메모리 셀이 상태(10)에 있다면, 상부 페이지 프로그램을 수행하는 것은 메모리 셀을 상태(00)로 이동시킨다(도 8의 화살표(472) 참조). 하부 페이지 데이터가 1인 경우, 이는 메모리 셀이 상부 페이지 프로그래밍 이전에 상태(11)에 있다는 것을 의미한다. 메모리 셀이 상태(11)에 있는 경우, 상부 페이지 프로그램을 수행하는 것은 메모리 셀을 상태(01)로 이동시킨다(도 8의 화살표(474) 참조). 따라서, 상태 머신은 하부 페이지 데이터가 논리 "0"인 경우, 메모리 셀이 오버 프로그래밍되어 있는지를 알기 위해 검사할 필요가 있다는 것을 인식한다. 하부 페이지 데이터가 논리 "1"인 경우, 메모리 셀은 상태(00)에 있을 수 없고, 이에 따라 상태(00) 오버 프로그램 검증은 실패할 수 없다.
일실시예에서, 메모리 셀은 제 3 데이터 래치(406) 내의 하부 페이지 데이터가 논리 "0"이고 제 2 데이터 래치(404)에 저장된 단계(802)의 검증으로부터 반환된 결과가 논리 "0"인 경우 단계(806)에서 오버 프로그래밍될 것인지가 결정된다. 이러한 시나리오는 메모리 셀이 상태(00)에 있어야 하지만; 임계 전압은 Vop00보다 커야 한다는 것을 나타낸다. 하부 페이지 데이터가 논리 "1"이거나 제 2 데이터 래치(404)에 저장된 단계(802)의 검증 프로세스로부터 반환된 결과가 논리 "1"인 경우, 메모리 셀은 상태(00)에 대하여 오버 프로그래밍되지 않는다는 것이 검증된다. 단계(806)에서, 상태(00)에 대해 오버 프로그래밍되지 않는 각각의 메모리 셀에 대해, 연관된 제 2 데이터 래치(404)는 논리 "1"로 설정된다. 상부 페이지 프로그램 프로세스가 상부 페이지를 논리 1(예를 들어, 상태(11) 또는 상태(10) 중 어느 하나)로 유지시키기로 의도한 경우, 각각의 제 2 데이터 래치는 이미 논리 "1" 상태에 있을 것이라는 것을 유의하라. 모든 제 2 데이터 래치(404)가 논리 "1"으로 설정되면(단계(808)), 도 12의 프로세스는 통과된다(단계(810)). 만일 모든 제 2 데이터 래치(404)가 논리 "1"로 설정된 것이 아니라면, 도 12의 프로세스는 상태(00)에 대하여 오버 프로그래밍된 하나 이상의 메모리 셀이 존재하기 때문에 실패한다(단계(812)).
도 13은 상태(01)에 대한 상부 페이지 오버 프로그램 검증 프로세스를 수행하는 프로세스(도 9의 단계(670))의 일례를 설명하는 흐름도이다. 단계(862)에서, 검증 프로세스는 비교 지점(Vop01)을 사용하여 수행된다. 만일 셀이 도통된다면(논리 1의 검증 결과가 반환된다면), 제 2 데이터 래치(404)는 논리 "1"로 설정되고; 그렇지 않다면, 제 2 데이터 래치(404)는 논리 "0"로 설정된다. 만일 모든 제 2 데이터 래치가 논리 "1"로 설정되면(단계(864), 도 13의 프로세스는 통과된다(단계(866)). 만일 모든 제 2 데이터 래치가 논리 "1"로 설정된 것이 아니라면, 도 13의 프로세스는 통과되지 않는다(단계(868)).
전술한 흐름도는 검증 프로세스가 특정 전압을 제어 게이트에 인가하고 메모리 셀이 턴온 또는 턴오프되는지를 결정함으로써 수행된다는 것을 유의하라. 그러나 본 발명의 사상 내에서 사용될 수 있는 상태를 결정하기 위해 메모리 셀을 검증(및 판독)하는 다른 수단이 존재할 수 있다. 예를 들어, 특정 판독 조건 하에서의 저장 유닛의 전류가 기준 전류 세트와 비교되는 전류-감지 시스템이 사용될 수 있다. 다른 실시예에서, 저장 유닛의 상태는 다수의 상이한 변수를 사용하여 결정될 수 있다. 예를 들어, 셀의 저장된 전하 레벨의 결정은, 전도성의 크기가 고정 바이어스 조건을 사용하여 감지되는, 전류 감지에 의해 수행될 수 있다. 대안적으로, 상기 결정은 임계 전압을 감지하여 이루어질 수 있는데, 여기에서 상기 도통의 개시(onset)가 다양한 유도(steering) 게이트 바이어스 조건을 사용하여 감지된다. 대안적으로, 상기 결정은 셀의 충전-레벨 결정된 구동력(driver-strength)이 (예를 들어 사전-충전된 캐피시터에 의해) 동적으로 유지된 감지 노드의 방전율을 제어하도록 함으로써 동적으로 수행될 수 있다. 소정의 방전 레벨에 도달하는 시간을 감지함으로써, 저장된 전하 레벨이 결정된다. 이 경우에, 셀의 조건의 지시하는 변수는 시간이다. 이 방법은 본 명세서에 참조로서 편입된 미국특허 제6,222,762호에 개시되어 있다. 다른 대안적인 기술은 변수로서 주파수를 사용하여 저장 유닛의 상태가 결정되는 것인데, 이는 미국특허 제6,044,019호에 개시되어 있고, 이는 본 명세서에 참조로서 편입되어 있다. 전류 가지 방법은 역시 본 명세서에 참조로서 편입된 미국특허 제5,172,338호에 더 상세하게 개시되어 있다.
플로팅 게이트 상에 저장된 겉보기 전하(apparent charge)에서의 변동은 인접하는 플로팅 게이트 상의 전하로부터 유래된 전계의 존재 때문에 발생할 수 있다. 인접 메모리 셀이 판독되고 있는 현재의 셀이 프로그래밍된 이후의 시간에서 프로그래밍되거나 소거될 수 있다는 것에 어려움이 있다. 예를 들어, 하나의 셀 세트가 하나의 데이터 세트에 상응하여 각자의 플로팅 게이트에 전하 레벨을 부가하도록 프로그래밍된다고 가정하자. (제 1 셀 세트에 인접한) 제 2 셀 세트가 제 2 데이터 세트로 프로그래밍된 후에, 제 1 셀 세트의 플로팅 게이트로부터 판독된 전하 레벨은 때때로 제 2 플로팅 게이트 세트로부터의 전계 효과 때문에 프로그래밍된 것과 상이한 것으로 나타낸다. 즉, 관측된 에러는 판독되는 셀의 플로팅 게이트의 피상 전압 레벨에 대한 인접 플로팅 게이트로부터의 전계의 영향때문에 나타날 수 있다. 이는 유핀(Yupin) 효과로 알려져 있고, 본 명세서에 참조로서 편입된 미국특허 제5,867,429호 및 제5,930,167호에 더 상세히 기술되어 있다. 상기 특허들은 2개의 플로팅 게이트 세트를 서로로부터 물리적으로 차단하는 방법, 또는 제 1 플로팅 게이트 세트를 판독할 때 제 2 플로팅 게이트 세트에 대한 전하의 영향을 고려하는 방법을 기술한다.
제 1 메모리 셀 세트가 프로그래밍되는 것이 가능하지만, 제 1 메모리 셀 세트가 인접 셀이 후속하여 프로그래밍될 때, 유핀 효과는 제 1 메모리 셀 세트가 오버 프로그래밍되는 것으로 보이도록 한다. 예를 들어, 상태(10)로 프로그래밍되도록 의도된 제 1 셀(도 8 참조)은 그 셀에 대한 임계 전압이 Vv10 이상(프로그램 검증) 및 Vop10 이하(오버 프로그램 검증)인 것을 검증하기 위해 검사될 것이다. 인접 메모리 셀이 프로그래밍된 후에, 제 1 셀로부터 판독된 임계 전압이 본래 프로그래밍되는 것 이상(예를 들어, 2볼트 이상)인 것으로 나타날 수도 있다. 만일 제 1 메모리 셀이 Vop10 보다 약간 낮은 임계 전압으로 프로그래밍된다면, 인접 셀이 프로그래밍된 이후에, 제 1 셀은 Vop10보다 큰 피상 임계 전압을 갖는다. 따라서, 제 1 메모리 셀은 오버 프로그래밍된다. 피상 임계 전압이 판독 비교 지점(예를 들어, Vr00)보다 더 크고, 이에 따라 데이터 에러가 유발될 수도 있다. 인접 셀은 인접하는 워드 라인 또는 인접하는 비트 라인 상에 있을 수 있다는 것을 유의하라. 예를 들어, 도 4에서, 셀(244)은 셀(224, 242, 250 및 246)에 인접한다. 일부 구현예에서, 셀(244)에 인접하지 않은 메모리 셀은 셀(244)로부터 판독된 피상 전하에 영향을 주는 전계를 가질 수 있다.
이러한 유핀 효과를 설명하기 위해, 제 1 제어 라인(예를 들어 워드 라인 또는 비트 라인)을 사용하여 프로그래밍한 이후에, 본 발명의 실시예들 세트는 사전에 프로그래밍되고 제 1 제어 라인에 인접한 제어 라인(들)과 연관된 페이지(들)에 대해 오버 프로그램 검증 검사를 수행할 것이다. 상기 실시예는 도 14A 내지 도 15C를 참조하여 기술된다.
도 14A는 사전에 선택된 워드 라인과 연관된 논리 페이지 상에서 오버 프로그램 검증을 수행하는 프로세스의 일 실시예를 기술한다. 도 14A의 단계(902)에서, 메모리 셀 세트는 제 1 워드 라인을 사용하여 프로그래밍된다. 예를 들어, 도 4를 참조하면, 논리 페이지는 워드 라인(WL1)을 사용하여 프로그래밍될 수 있다. 단계(902)의 프로세스는 도 10 내지 도 13에 대해 전술한 바와 같이 오버 프로그래밍된 메모리 셀을 검사하는 단계를 포함하는, 도 9의 프로세스를 수행하는 단계를 포함한다. 단계(904)에서, 프로그램 동작은 제 2 워드 라인(예를 들어 도 4의 워드 라인(WL2))을 사용하여 제 2 메모리 셀 세트에 대해 수행된다. 단계(904)의 프로세스는 오버 프로그래밍된 메모리 셀을 검사하는 단계를 포함하는, 도 9의 프로세스를 수행하는 단계를 포함한다. 단계(906)에서, 시스템은 제 1 워드 라인(예를 들어, 워드 라인(WL1))과 연관된 논리 페이지의 메모리 셀에 대해 전술한 유핀 효과에 기인한 오버 프로그래밍을 검사한다. 단계(908)에서, 시스템은 제 3 워드 라인(예를 들어, 워드 라인(WL3))을 사용하여 제 3 메모리 셀 세트를 프로그래밍할 것이다. 단계(908)의 프로세스는 오버 프로그래밍된 메모리 셀을 검사하는 단계를 포함하는 도 9의 프로세스를 수행하는 단계를 포함한다. 단계(910)에서, 시스템은 제 2 워드 라인(예를 들어, WL2)과 연관된 논리 페이지에 대한 전술한 유핀 효과에 기인한 오버 프로그래밍을 검사한다. 프로세스는 그 후에 부가적인 워드 라인과 연관된 부가적인 메모리 셀의 프로그래밍을 계속하고(또는 계속하지 않을 수 있고), 미리 프로그래밍된 워드 라인에 대해 오버 프로그래밍된 메모리 셀을 검사한다.
일부 구현예에서, 워드 라인은 낸드 스트링에 따른 순서로 프로그래밍되고, 이에 따라 제 1 워드 라인이 프로그래밍하기 위해 사용된 후에, 다음 프로그램 동작이 제 1 워드 라인에 인접한 워드 라인을 사용한다. 낸드 스트링은 (항상은 아니지만) 통상적으로 소스측으로부터 드레인측까지, 예를 들어 메모리 셀(228)로부터 메모리 셀(222)까지(도 4 참조) 프로그래밍된다. 따라서, 프로그래밍하기 위해 WL0을 사용한 후에, 시스템은 (WL0에 인접한) WL1을 다음으로 사용할 것이다. 따라서, 도 14A의 예에서, 오버 프로그램 검증은 바로 선행하는 워드 라인에 대해 수행될 것이다. 그러나 다른 실시예에서, 바로 선행하는 프로그래밍된 메모리 셀보다는 다른 미리 프로그래밍된 메모리 셀이 검사될 수 있다.
도 14B는 미리 선택된 비트 라인에 대해 오버 프로그래밍된 메모리 셀을 검사함으로써 유핀 효과를 설명하기 위한 일 실시예의 프로세스를 기술하는 흐름도를 제시한다. 일 실시예에서, 비트 라인은 홀수 비트 라인과 짝수 비트 라인으로 그룹화된다. 홀수 비트 라인이 프로그래밍되고 짝수 비트 라인이 다음에 프로그래밍되고, 홀수 비트 라인이 다음에 프로그래밍되고, 짝수 비트 라인이 다음에 프로그래밍되는 순서로 프로그래밍된다. 다른 실시예에서, 상이한 비트 라인 세트에서 상이한 프로그래밍 동작이 사용될 수 있다. 도 14B는 하나의 비트 라인 세트로 프로그래밍한 후에, 미리 프로그래밍된 다른 비트 라인 세트에 대해 오버 프로그래밍에 대한 검사가 수행될 것이다. 단계(950)에서, 프로그래밍 동작은 짝수 비트 라인을 사용하여 수행될 것이다. 단계(950)의 프로세스는 도 10 내지 도 13을 참조하여 설명된 바와 같이 오버 프로그래밍된 메모리 셀을 검사하는 단계를 포함하는, 도 9의 프로세스를 수행하는 단계를 포함한다. 단계(952)에서, 프로그래밍 동작은 홀수 비트 라인을 사용하여 수행될 것이다. 단계(952)의 프로세스는 오버 프로그래밍된 메모리 셀을 검사하는 단계를 비롯한 도 9의 프로세스를 수행하는 단계를 포함한다. 단계(954)에서, 시스템은 미리 프로그래밍된 짝수 비트 라인과 연관된 논리 페이지에 대한 전술한 유핀 효과에 기인한 오버 프로그래밍을 검사한다. 단계(956)에서, 프로그래밍은 짝수 비트 라인을 사용하여 수행될 것이다. 단계(956)의 프로세스는 오버 프로그래밍된 메모리 셀을 검사하는 단계를 포함하는, 도 9의 프로세스를 수행하는 단계를 포함한다. 단계(958)에서, 시스템은 미리 프로그래밍된 홀수 비트 라인과 연관된 논리 페이지에 대한 전술한 유핀 효과에 기인한 오버 프로그래밍을 검사한다. 이러한 프로세스는 이전의 비트 라인 상의 오버 프로그래밍에 대한 검사와 프로그래밍을 교번(alternating)하여 계속할 수 있다.
도 14A와 도 14B의 프로세스는 상태 머신, 제어기, 상기 프로세스를 구현하기 위한 특정 논리, 또는 이들의 조합에 의해 수행될 수 있다.
시스템이 도 14A와 도 14B의 프로세스의 일부로서 미리 프로그래밍된 제어 라인과 연관된 논리 페이지에 대한 전술한 유핀 효과에 기인한 오버 프로그래밍을 검사하기 위해 사용할 수 있는 많은 상이한 적당한 방법들이 있다. 도 15A 내지 도 15C는 2개의 이러한 방법을 기술하지만, 많은 다른 적당한 방법들도 사용될 수 있다.
도 8과 마찬가지로, 도 15A는 2개의 데이터 비트를 저장하는 많은 셀에 대한 임계 전압 분포(460, 462, 464 및 466)를 도시한다. 판독 비교 지점(Vr10, Vr00 및 Vr01), 검증 비교 지점(Vv10, Vv00, 및 Vv01)과 오버 프로그램 비교 지점(VopSP, Vop10, Vop00 및 Vop01)에 부가하여, 도 15A는 오버 프로그램 시험 지점(VopA, VopB 및 VopC)을 도시한다. 제 1 셀 및 그 후에 인접하는 제 2 셀을 프로그래밍한 후에, 제 2 셀로부터의 유핀 효과는 제 1 셀의 임계 전압을 거의 0.2 볼트(기술, 크기, 간격 등에 따라 0.2볼트와 다수 차이가 있을 수 있음)만큼 위로 이동시킬 것이다. 상기 데이터는 완전히 파손된(corrupted) 것은 아니다. 오히려, 상기 데이터는 예측가능하게 오염된다. 하나의 시나리오는 초기 프로그램에 의해 제 1 셀의 임계 전압이 (예를 들어 Vop10 바로 이하의) 오버 프로그램 검증 전압 바로 이하가 되도록 하고, 그 후에 상기 셀이 최대 유핀 효과(예를 들어 대략 0.2볼트 또는 전술한 다른 값들)에 놓이는 것이다. 따라서, 오버 프로그램 영역은 임계 전압이 셀이 유핀 효과 때문에 오버 프로그래밍될 것인지의 예측을 나타내도록 만들어진다. 도 15A는 3개의 오버 프로그램 영역을 도시한다. 제 1 오버 프로그램 영역은 VopSP와 VopA 사이의 영역을 포함한다. 제 2 오버 프로그램 영역은 Vop10와 VopB 사이의 영역을 포함한다. 제 3 오버 프로그램 영역은 Vop00와 VopC 사이의 영역을 포함한다. 오버 프로그램 비교 지점과 오버 프로그램 시험 지점의 값들은 도 15A에 도시된 값들과 다를 수 있다는 것을 유의하라.
메모리 셀이 유핀 효과때문에 오버 프로그래밍되었는지를 결정하는 하나의 프로세스는 셀의 임계 전압이 오버 프로그램 영역 중 하나 이내에 있는지를 시험하는 것이다. 셀의 임계 전압이 오버 프로그램 영역 이내에 있다면, 셀은 유핀 효과때문에 오버 프로그래밍된 것으로 추정된다. 예를 들어, 셀의 임계 전압이 제 2 오버 프로그램 영역에 있다고 결정되면, 셀은 분포(462) 이내에 있지만, 유핀 효과때문에 오버 프로그램된 것으로 추정된다. 도 15A가 (2개의 데이터 비트를 저장하는) 4개의 임계 분포를 도시하고 있지만, 4개 보다 많거나 적은 분포(및 데이터 비트) 또한 본 발명을 구현할 때 사용될 수 있다는 것을 유의하라.
도 15B는 전술한 바와 같이 유핀 효과에 기인한 오버 프로그래밍을 시험하기 위한 프로세스의 일 실시예를 설명하는 흐름도를 제시한다. 도 15B의 프로세스는 도 14A와 도 14B의 단계들(906, 910, 954 및 958)에서의 오버 프로그래밍에 대한 검사의 일부로서 수행될 수 있다. 단계(1002)에서, 판독 동작은 각각의 오버 프로그램 영역의 경계에서 수행된다. 예를 들어, 판독 동작은 VopSP, VopA, Vop10, VopB, Vop00 및 VopC에서 수행된다. 이러한 판독 동작에 기초하여, 셀의 임계 전압이 임의의 오버 프로그램 영역 이내에 있는지가 결정된다. 예를 들어, 메모리 셀이 Vop10이 워드 라인에 인가될 때 턴온되고 VopB가 워드 라인에 인가될 때 턴온되지 않는다면, 셀은 제 2 오버 프로그램 영역 중 하나에 있다고 추정된다(단계(1006)). 메모리 셀의 임계 전압이 오버 프로그램 영역 중 하나 이내에 있는 경우(단계(1006)), 셀은 인접 셀로부터의 접속(유핀 효과)때문에 오버 프로그래밍되었다고 결론이 내려진다(단계(1008)). 단계(1010)에서, 오버 프로그래밍된 셀에 대한 데이터가 고정된다. 셀은 임계 전압을 적당한 분포로 낮추기 위해 부분적으로 소거될 수 있고, 셀은 완전히 소거되고 재기록될 수 있고, 데이터는 다른 위치에 기록될 수 있고, 셀이 오버 프로그래밍되어 앞으로의 판독이 오버 프로그래밍을 고려해야 할 것이라는 것을 나타내는 에러 정보가 저장되거나 다른 적당한 동작이 수행될 수 있다.
만일 단계(1006)에서 임계 전압이 오버 프로그램 영역 중 어느 것에도 있지 않다고 결정되면, 판독 동작은 오버 프로그램 비교 지점(Vop01)에 대해 수행된다. 만일 메모리 셀의 임계 전압이 Vop01보다 더 크다면(단계(1022)), 메모리 셀은 오버 프로그래밍된 것으로 추정될 것이고 프로세스는 단계(1008)에서 계속될 것이다. 만일 메모리 셀의 임계 전압이 Vop01보다 작다면(단계(1022)), 메모리 셀은 오버 프로그래밍되지 않았다고 추정된다(단계(1024)).
도 15C는 유핀 효과에 기인한 오버 프로그래밍을 시험하기 위한 프로세스의 다른 실시예를 설명하는 흐름도를 제시한다. 도 15C의 프로세스는 도 14A와 도 14B의 단계들(906, 910, 954 및 958)에서 오버 프로그래밍에 대한 검사의 일부로서 수행될 수 있다. 단계(1060)에서, 판독 동작은 각각의 판독 비교 지점(Vr10, Vr00 및 Vr01) 각각에서 수행된다. 판독 동작에 근거하여, 메모리 셀의 초기 상태에 관한 결정이 행해진다. 단계(1062)에서, ECC 프로세스가 공지된 방법에 따라 수행된다. 만일 ECC 에러가 없다면(단계(1064)), 메모리 셀은 유핀 효과때문에 오버 프로그래밍되지 않았다고 추정된다(단계(1066)). 만일 ECC 에러가 검출되었다면(단계(1064)), 에러는 유핀 효과때문에 오버 프로그래밍되는 메모리 셀에 의해 유발되었다고 추정된다(단계(1070)). 단계(1072)에서, 데이터는 (도 15B의 단계(1010)에서와 유사하게) 고정된다. 예를 들어, 단계(1060)에서의 판독 동작이 임계 전압이 Vr00보다 크고 Vr01보다 작은 것으로 결정을 내렸다고 추정하자. 메모리 셀은 논리 데이터(00)를 저장하는 임계 분포(464)에 있는 것으로 추정된다. ECC가 실패한다면, 메모리 셀은 논리 데이터(10)를 저장하는 임계 분포(462)에 있어야 하지만, 메모리 셀은 오버 프로그래밍된다. 따라서, 단계(1072)의 일실시예에서, 메모리 셀의 임계 전압은 임계 분포(462) 이내에 있도록 정정될 수 있다.
도 17 내지 도 22는 도 16에 따라 오버 프로그램 검증을 수행하기 위한 대안적인 실시예를 설명하는 진리표를 제시한다. 도 8과 마찬가지로, 도 16은 2개의 데이터 비트를 저장하는 메모리 셀에 대한 임계 전압 분포(460, 462, 464 및 466)를 도시한다. 그러나 도 16은 상이한 오버 프로그래밍 검증 비교 지점(VopSP', Vop10', Vop00' 및 VoP01')을 도시한다. 비교 지점(VopSP')은 임계 전압 분포(460) 내의 최고 전압보다 약간 더 큰 값이다. Vop10'은 임계 전압 분포(462) 내의 최고 전압보다 약간 더 큰 값이다. Vop00'은 임계 전압 분포(464)에서 가장 큰 전압보다 약간 더 큰 값이다. Vop01'은 임계 전압 분포(466)에서 가장 큰 전압보다 약간 더 큰 값이다. 도 16의 VopSP'는 도 8의 VoPSP보다 약간 낮고, 도 16의 Vop10'는 도 8의 Vop10보다 낮고, 도 16의 Vop00'는 도 8의 Vop00보다 낮으며, 도 16의 Vop01'는 도 8의 Vop01보다 낮다는 것을 유의하라. 다른 실시예에서, 상기 각각의 임계 전압 분포보다 높은 검증 비교 지점(VopSP', Vop10', Vop00' 및 Vop01')의 다른 값들도 사용될 수 있다.
도 17은 하부 페이지의 프로그래밍 후에 소프트 프로그램 오버 프로그램 검증을 수행하는 실시예를 설명한다. 도 17의 진리표는 "0" 데이터 또는 "1" 데이터가 이전의 하부 페이지 프로그래밍 동안 프로그래밍되었는지에 대한 2개의 칼럼을 갖는다. (VopSP'로 판독된) 진리표의 제 2 로우는 오버 프로그래밍 동안 검증되는 메모리 셀로부터 판독된 데이터에 상응한다. 제 3 로우는 제 2 데이터 래치(404)에 저장된 데이터를 나타낸다. 제 4 로우는 제 1 데이터 래치(402)에 저장된 데이터를 나타낸다. 제 5 로우는 상태(11)에 대한 오버 프로그래밍 검증 결과를 나타낸다.
(도 17의 왼쪽 칼럼에 있는) "1"이 프로그래밍되면, 메모리 셀은 상태(11) 를 유지한다. "0"이 프로그래밍되면, 셀은 상태(10)로 프로그래밍되도록 의도된다. 진리표의 제 2 로우는 메모리 셀의 제어 게이트에 VopSP'를 인가하는 것을 포함하는 판독 동작의 결과를 나타낸다. 판독될 메모리 셀의 임계 전압이 VopSP'보다 큰 경우, 메모리 셀은 턴온되지 않고 논리 0이 판독될 것이다. 메모리 셀의 임계 전압이 VopSP'보다 작다면, 메모리 셀은 턴온될 것이고 논리 1이 판독될 것이다. 메모리셀로 프로그래밍되는 논리 1에 상응하는 칼럼에서, 판독 단계는 (적절히 프로그래밍된) 논리 "1"이나 논리 (오버 프로그래밍된) "0" 중에 어느 하나를 판독할 것이다. 셀이 상태(10)로 프로그래밍된 경우에, 판독 단계는 프로그래밍 동안의 검증 단계가 전압이 적어도 Vv10보다 크다는 것을 검증했기 때문에 논리 "0"으로 판독할 것이다. 판독된 데이터는 제 2 데이터 래치(404)에 저장된다. 제 1 데이터 래치(402)는 미리 하부 페이지에 프로그래밍된 데이터를 저장한다. 상태 머신은 제 1 데이터 래치(402)와 제 2 데이터 래치(404)의 내용을 검사할 것이다. 만일 제 1 데이터 래치(402)가 논리 "1"를 저장하고 제 2 데이터 래치(404)가 논리 "0"를 저장한다면, 오버 프로그램 시험은 실패한다. 즉, 상태 머신은 메모리 셀이 오버 프로그래밍되었다고 결론짓는다.
도 18은 소프트 프로그램 오버 프로그램 검증이 하부 페이지와 상부 페이지 프로그래밍 모두가 수행된 후에 수행되는 실시예를 설명하는 진리표이다. 상기 임무를 조절하기 위해, 하부 페이지 데이터와 상부 페이지 데이터를 고려할 필요가 있다. 상부 페이지와 하부 페이지 프로그래밍 동작 모두가 수행되었기 때문에, 진리표는 모두 4개의 상태:(11, 10, 00 및 01)에 대한 칼럼을 포함한다. 진리표의 제 2 로우는 제어 게이트에 VopSP'를 인가하는 동안 셀로부터 판독된 데이터를 지시한다. 셀이 상태(11)에 있도록 의도된다면, 판독 동작은 셀이 오버 프로그래밍되지 않는다면 1을, 오버 프로그래밍된다면 0을 반환할 것이다. 셀이 다른 3개의 상태 중 어느 하나라면, 프로그래밍 프로세스 동안 이전의 검증 단계가 셀의 임계 전압이 적당한 검증 지점보다 충분히 높다는 것을 보장했기 때문에 0이 반환되어야 한다. 진리표의 제 3 로우는 전술한 판독 동작의 결과를 저장하는 제 2 데이터 래치(404)의 내용을 나타낸다. 제 4 로우는 제 3 데이터 래치(402)의 내용을 나타낸다. 제 3 데이터 래치는 전술한 바와 같이 하부 페이지 데이터를 저장한다. 제 5 로우는 상태(11)에 대한 오버 프로그래밍 검증의 결과를 나타낸다. 상태 머신은 제 3 데이터 래치(406)가 논리 1을 저장하고 있는지와 제 2 데이터 래치(404)가 논리 0을 저장하고 있는지를 결정하기 위해 검사한다. 만일 그렇다면, 오버 프로그래밍 시험은 메모리 셀이 오버 프로그래밍된 것의 의미하기 때문에 실패한다. 만일 그렇지 않다면, 테스트는 통과된다.
다른 실시예에서, 제 3 데이터 래치에 미리 저장된 데이터를 사용하기보다, 시스템은 Vr10에서의 다른 판독 동작을 계속하여 수행할 것이다. 이러한 판독 동작은 셀의 임계 전압이 VopSP' 이상이고 Vr10 이하인지를 결정한다. 만일 그렇다면, 상태 머신은 메모리 셀이 오버 프로그래밍되었다고 결론을 내리고; 그렇지 않다면 상태 머신은 메모리 셀이 오버 프로그래밍되지 않았다고 추정한다.
도 19는 셀을 상태(10)로 프로그래밍하는 프로그래밍 프로세스가 셀을 프로그래밍했는지를 검증하는 프로세스를 설명하는 진리표이다. 도 19와 연관된 검증 프로세스는 하부 페이지 프로그래밍 프로세스 이후에, 그리고 상부 페이지 프로그래밍 프로세스 이전에 수행된다. 진리표는 2개의 칼럼을 갖는데, 하나는 논리 "1"이 하부 페이지로 프로그래밍될 때의 상황에 상응하고, 다른 칼럼은 논리 "0"이 하부 페이지로 프로그래밍될 때의 상황에 상응한다. 제 2 로우는 Vop10'을 제어 게이트에 인가하는 판독 동작으로부터의 데이터를 나타낸다. 메모리 셀이 상태(11)에 유지되도록 의도되거나 메모리 셀이 상태(10)로 적절히 프로그래밍되었다면, Vop10'에서의 판독 동작은 메모리 셀이 턴온되도록 하고 논리 "1"이 보고되도록 할 것이다. 이러한 판독 동작의 결과는 제 2 데이터 래치(404)에 저장된다(진리표의 제 3 로우 참조). 셀이 상태(10)로 프로그래밍되도록 의도되고 오버 프로그래밍되었다면, Vop10'에서의 판독 동작은 셀이 턴온되지 않을 것이기 때문에 논리 "0"이 될 것이다. 제 1 데이터 래치(402)는 프로그래밍된 데이터를 저장한다(제 4 로우 참조). 논리 "1"이 프로그래밍되었다면(예를 들어, 프로그래밍이 행해지지 않았다면), 제 2 데이터 래치(404)와 제 1 데이터 래치(401) 모두는 논리 1을 저장할 것이고 시험은 통과될 것이다(제 5 로우 참조). 논리 "0"이 적절히 프로그래밍되었다면, 제 1 데이터 래치(404)는 논리 0을 저장하고, 제 2 데이터 래치(402)는 논리 1을 저장하며, 시험은 통과될 것이다. 제 2 데이터 래치(404)는 논리 0이고 제 2 데이터 래치(402)가 논리 0이면, 시험은 셀이 오버 프로그래밍된 것을 의미하기 때문에 실패한다.
도 20은 하부 페이지와 상부 페이지 모두가 프로그래밍된 후에 상태(10) 오버 프로그래밍 검증을 수행하는 프로세스를 설명하는 진리표이다. 2개의 페이지가 프로그래밍되었기 때문에, 4개의 칼럼이 존재하는데, 셀이 (11, 10, 00 및 01)로 프로그래밍될 수 있는 각 상태에 대해 하나씩이다. 제 2 로우는 제어 게이트에 Vop10'을 인가하는 판독 동작으로부터의 데이터를 나타낸다. 판독 동작의 결과는 제 2 데이터 래치(404)(제 3 로우)에 저장된다. 메모리 셀이 상태(11)에 남아있거나 상태(10)로 적절히 프로그래밍된다면, 메모리 셀은 턴온될 것이고 논리 "1"이 판독될 것이다. 셀이 상태(10)로 프로그래밍되도록 의도되지만, 오버 프로그래밍되었다면, 셀은 턴온되지 않을 것이고 논리 "0"이 반환될 것이다. 셀이 상부 페이지 프로그래밍 동안 상태(00) 또는 상태(01)로 프로그래밍되었다면, 셀은 턴온되지 않을 것이고 논리 "0"가 판독될 것이다. 제 1 데이터 래치(402)는 직전에 수행된 상부 페이지 프로그램 동작으로부터의 데이터를 저장할 것이다(제4 로우 참조). 예를 들어, 셀이 상태(11 또는 10)라면, 제 1 데이터 래치는 논리 "1"를 저장할 것이다. 셀이 상태(00 또는 01)라면, 제 1 데이터 래치는 논리 "0"를 저장할 것이다. 시스템은 그 후에 제 1 데이터 래치(402)가 논리 1을 저장하고 제 2 데이터 래치(404)가 논리 0을 저장하고 있는지를 결정하기 위해 시험할 것이다. 만일 그렇다면, 검증 프로세스는 메모리 셀이 오버 프로그래밍된 것을 의미하기 때문에 실패한다. 만일 그렇지 않다면, 검증 프로세스는 통과된다(제 5 로우 참조).
도 21은 상태(00) 오버 프로그램 검증을 수행하는 프로세스를 설명하는 진리표이다. 상태(00)를 검증하는 프로세스는 상부 페이지 및 하부 페이지 프로그래밍 이후에 수행되고; 이에 따라 도 21의 진리표는 (셀이 프로그래밍될 수 있는 각각의 상태에 대해 하나씩) 4개의 칼럼을 도시한다. 첫째, 판독 동작은 제어 게이트에 Vop00'을 인가하는 단계를 포함하여 수행된다(진리표의 제 2 로우 참조). 셀이 상태(11, 10 또는 00)로 적당히 프로그래밍된다면, 셀은 턴온될 것이고 논리 "1"이 반환될 것이다. 셀이 상태(01)로 프로그래밍되었다면, 셀은 턴온되지 않을 것이고 논리 "0"이 반환될 것이다. 셀이 상태(00)로 프로그래밍되도록 의도되었지만 오버 프로그래밍되었다면, 셀은 턴온되지 않을 것이고 논리 "0"이 반환될 것이다. 판독 동작으로부터 반환된 데이터는 제 2 데이터 래치(404)에 저장된다(진리표의 제 3 로우 참조). 제 4 로우는 제 3 데이터 래치(402)의 내용을 나타낸다. 제 3 데이터 래치는 전술한 바와 같이 하부 페이지 데이터를 저장한다. 제 5 로우는 상태(00)에 대한 오버 프로그래밍 검증의 결과를 나타낸다. 상태 머신은 제 3 데이터 래치(406)가 논리 "0"을 저장하고 제 2 데이터 래치(404)가 논리 0을 저장하고 있는지를 결정하기 위해 검사한다. 만일 그렇다면, 오버 프로그래밍 시험은 메모리 셀이 오버 프로그래밍된 것을 의미하기 때문에 실패한다. 만일 그렇지 않다면, 시험은 통과된다.
다른 실시예에서, 제 3 데이터 래치에 미리 저장된 데이터를 사용하기보다, 시스템은 Vr01에서의 다른 판독 동작을 후속하여 수행할 것이다. 상기 판독 동작은 셀의 임계 전압이 Vop00' 이상이고 Vr01 이하인지를 결정한다. 만일 그렇다면, 상태 머신은 메모리 셀이 오버 프로그래밍된다고 결정하고, 그렇지 않다면 상태 머신은 메모리 셀이 오버 프로그래밍되지 않는다고 추정한다.
도 22는 상태(01) 오버 프로그램 검증을 수행하는 프로세스를 설명하는 진리표이다. 프로세스가 상부 페이지가 판독된 이후에 수행되기 때문에, 셀이 프로그래밍될 수 있는 각각의 상태에 대해 하나씩, 4개의 칼럼이 존재한다. 도 22의 제 2 로우는 제어 게이트에 Vop01'을 인가하는 것을 포함하는 판독 동작으로부터의 결과를 나타낸다. 판독 동작으로부터의 결과 데이터는 제 2 데이터 래치(404)에 저장된다(제 3 로우). 판독 동작으로부터의 데이터는 셀이 존재하는 상태에 관계없이 항상 논리 1이어야 한다. 따라서, 만일 논리 "0"이 반환된다면, 검증 단계는 실패하고, 그렇지 않다면, 검증 단계는 통과될 것이다(제 4 로우 참조).
도 9의 흐름도는 하부 페이지 프로그래밍 동작이 수행된다면 소프트 프로그램 검증과 상태(10) 오버 프로그램 검증이 수행된다는 것을 나타내고, 상부 페이지 프로그래밍 동작이 수행된다면 상태(00) 오버 프로그램 검증과 상태(01) 오버 프로그램 검증이 수행된다는 것을 나타낸다는 것을 유의하라. 이러한 방법론은 또한 도 17, 도 19, 도 21 및 도 22에 대해 전술한 프로세스와 함께 사용될 수 있다. 하나의 대안에서, 모든 오버 프로그램 검증은 하부 페이지와 상부 페이지가 도 18, 도 20, 도 21 및 도 22의 진리표에 대해 논의된 프로세스를 사용하여 기록된 후에 수행될 수 있다. 다른 대안에서, 하부 페이지 프로그래밍 프로세스가 수행된 후에, 도 17에 대해 논의된 검증 프로세스가 수행될 수 있다. 상부 페이지가 프로그래밍될 때, 시스템은 도 20, 도 21 및 도 22의 진리표를 사용하여 상태(10, 00 및 01)에 대한 오버 프로그램 검증을 수행할 것이다.
전술한 예들이 낸드 타입 플래시 메모리를 참조하여 제시되었다. 그러나 본 발명의 사항은 다른 타입의 플래시 메모리와 다른 타입의 비휘발성 메모리에 응용될 수 있고, 이들 메모리는 현재 존재하거나 개발중에 있는 새로운 기술의 사용이 고려되는 메모리를 포함한다.
본 발명의 상세한 설명은 예시와 설명의 목적을 위해 제공되었다. 이러한 설명은 본 발명을 개시된 설명대로 제한하는 것으로 의도되어서는 안된다. 많은 수정과 변형이 전술한 기술의 면에서 가능하다. 기술된 실시예들은 본 발명의 사상과 실제적인 응용예를 가장 잘 설명하기 위해 선택되었고, 이에 따라 당업자는 본 발명을 다양한 실시예에서 사용할 수 있고 고려하의 특정 사용에 적합하도록 다양한 변형을 꾀할 수 있을 것이다. 본 발명의 범위는 이하 첨부된 청구범위에 의해 한정되는 것으로 의도되었다.

Claims (38)

  1. 오버 프로그래밍을 검출하는 방법으로서,
    제 1 제어 라인과 연관된 하나 이상의 다수-상태(multi-state) 저장 소자들을 프로그래밍하는 단계와;
    상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍하는 단계에 후속하여 제 2 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍하는 단계와;
    상기 제 2 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍하는 단계를 수행한 이후에 상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들이 오버 프로그래밍되었는지를 결정하는 단계를 포함하는 오버 프로그래밍 검출 방법.
  2. 제 1항에 있어서,
    상기 제 1 제어 라인은 제 1 비트 라인이고;
    상기 제 2 제어 라인은 상기 제 1 비트 라인에 인접한 제 2 비트 라인인 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  3. 제 1항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 상기 제 1 워드 라인에 인접한 제 2 워드 라인인 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  4. 제 1항에 있어서,
    오버 프로그래밍된 것으로 결정된 저장 소자들에 대해 데이터를 고정하는 단계를 추가로 포함하는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  5. 제 4항에 있어서,
    상기 데이터를 고정하는 단계는 특정 저장 소자에 대한 임계 전압을 다음으로 가장 낮은 임계 분포 이내에 존재하도록 낮추는 단계를 포함하는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  6. 제 1항에 있어서,
    상기 결정 단계는 특정 저장 소자가 상기 특정 저장 소자에 인접한 저장 소자 상의 전하로 인한 전계의 존재때문에 오버 프로그래밍되었는지를 검출하는 단계를 포함하는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  7. 제 1항에 있어서,
    상기 결정 단계는 특정 저장 소자가 하나 이상의 오버 프로그램 범위들 중 어느 하나의 범위 또는 상기 범위들 세트 내의 임계 전압을 갖는지를 검출하는 단계를 포함하는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  8. 제 1항에 있어서,
    상기 결정 단계는 특정 저장 소자가 하나 이상의 오버 프로그램 범위들 중 어느 하나의 범위 또는 상기 범위들 세트내의 임계 전압을 갖는지를 검출하는 단계를 포함하고, 상기 오버 프로그램 범위들은 상기 특정 저장 소자에 인접한 저장 소자 상의 전하로 인한 전계의 영향을 추정함으로써 결정되는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  9. 제 1항에 있어서,
    상기 결정 단계는:
    하나 이상의 오버 프로그램 범위들의 경계들(edges)에 대해 상기 제 1 제어 라인과 연관된 다수-상태 저장 소자 상에서 판독 동작을 수행하는 단계와;
    상기 제 1 제어 라인과 연관된 특정 다수-상태 저장 소자가 상기 하나 이상의 오버 프로그래밍 범위들내의 임계 전압을 갖는 경우, 상기 특정 다수-상태 저장 소자가 오버 프로그래밍되었다고 결정하는 단계를 포함하며,
    상기 특정 다수-상태 저장 소자는 상기 제 2 제어 라인과 연관된 상기 다수-상태 저장 소자들 중 적어도 하나에 인접한 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  10. 제 9항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 제 2 워드 라인인 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  11. 제 1항에 있어서,
    상기 결정 단계는:
    상기 제 1 제어 라인과 연관된 다수-상태 저장 소자에 대한 초기 상태들을 결정하기 위해서 하나 이상의 판독 비교 지점들의 세트에 대해 상기 제 1 제어 라인과 연관된 다수-상태 저장 소자들 상에서 판독 동작들을 수행하는 단계와;
    상기 제 1 제어 라인과 연관된 다수-상태 저장 소자와 상기 초기 상태들에 대해 에러 정정 코드 프로세스를 수행하는 단계와; 그리고
    만일 상기 제 1 제어 라인과 연관된 특정 다수-상태 저장 소자에 대한 에러 정정 코드 프로세스가 실패한 경우, 상기 특정 다수-상태 저장 소자가 오버 프로그래밍되었다고 결정하는 단계를 포함하며,
    상기 특정 다수-상태 저장 소자는 상기 제 2 제어 라인과 연관된 상기 다수-상태 저장 소자들 중 적어도 하나에 인접한 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  12. 제 11항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 제 2 워드 라인인 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  13. 제 10항에 있어서,
    상기 특정 다수-상태 저장 소자가 오버 프로그래밍된 경우, 상기 특정 다수-상태 저장 소자에 대한 데이터를 고정하는 단계를 추가로 포함하는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  14. 제 1항에 있어서,
    상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들과 상기 제 2 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들은 낸드 (NAND) 플래시 메모리 소자들인 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  15. 제 1항에 있어서,
    상기 제 1 제어 라인과 연관된 하나 이상의 저장 소자들은 저장 소자들의 배열의 일부이고;
    상기 저장 소자들의 배열은 집적 회로 칩 상에 위치하며;
    상기 결정 단계는 상기 집적 회로 칩 상의 하나 이상의 회로에 의해 수행되는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  16. 오버 프로그래밍을 검출하는 방법으로서,
    제 1 다수-상태 저장 소자를 프로그래밍하는 단계와;
    제 2 다수-상태 저장 소자를 프로그래밍하는 단계와, 여기서 상기 제 2 다수-상태 저장 소자는 상기 제 1 다수-상태 저장 소자에 영향을 미칠 수 있는 전계를 갖고, 상기 제 2 다수-상태 저장 소자를 프로그래밍하는 단계는 상기 제 1 다수-상태 저장 소자를 프로그래밍하는 단계를 수행한 이후에 시작되며; 그리고
    상기 제 2 다수-상태 저장 소자를 수행하는 단계를 수행한 이후에 상기 제 1 다수-상태 저장 소자가 오버 프로그래밍되었는지를 결정하는 단계를 포함하는 오버 프로그래밍 검출 방법.
  17. 제 16항에 있어서,
    상기 제 1 다수-상태 저장 소자는 제 1 워드 라인에 연결되고;
    상기 제 2 다수-상태 저장 소자는 제 2 워드 라인에 연결되며;
    상기 제 2 다수-상태 저장 소자는 상기 제 1 다수-상태 저장 소자에 인접하는 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  18. 제 16항에 있어서,
    상기 제 1 다수-상태 저장 소자는 제 1 비트 라인에 연결된 제 1 낸드 체인(chain)의 일부이고;
    상기 제 2 다수-상태 저장 소자는 상기 제 2 워드 라인에 연결된 낸드 체인의 일부인 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  19. 제 16항에 있어서,
    상기 결정 단계는 상기 제 1 다수-상태 저장 소자가 상기 제 2 다수-상태 저장 소자 상의 전하로부터 유래된 전계의 존재때문에 오버 프로그래밍되었는지를 검출하는 단계를 포함하며,
    상기 제 2 다수-상태 저장 소자는 상기 제 1 다수-상태 저장 소자에 인접한 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  20. 제 16항에 있어서,
    상기 결정 단계는,
    하나 이상의 오버 프로그래밍 범위들의 경계들에 대해 상기 제 1 다수-상태 저장 소자 상에서 판독 동작들을 수행하는 단계와; 그리고
    상기 제 1 다수-상태 저장 소자가 상기 하나 이상의 오버 프로그래밍 범위들 내에서 임계 전압을 갖는 경우, 상기 제 1 다수-상태 저장 소자가 오버 프로그래밍되었다고 결정하는 단계를 포함하며,
    상기 제 2 다수-상태 저장 소자는 상기 제 1 다수-상태 저장 소자에 인접한 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  21. 제 16항에 있어서,
    상기 결정 단계는,
    상기 제 1 다수-상태 저장 소자에 대한 초기 상태들을 결정하기 위해서 하나 이상의 판독 비교 지점들 세트에 대해 상기 제 1 다수-상태 저장 소자 상에서 판독 동작들을 수행하는 단계와;
    상기 제 1 다수-상태 저장 소자와 상기 초기 상태에 대해 에러 정정 코드 프로세스를 수행하는 단계와; 그리고
    상기 에러 정정 코드 프로세스가 실패한 경우, 상기 제 1 다수-상태 저장 소자가 오버 프로그래밍되었다고 결정하는 단계를 포함하며,
    상기 제 2 다수-상태 저장 소자는 상기 제 1 다수-상태 저장 소자에 인접한 것을 특징으로 하는 오버 프로그래밍 검출 방법.
  22. 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍하는 수단과;
    상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍함에 후속하여, 상기 제 2 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍하는 수단과; 그리고
    상기 제 2 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍한 이후에 상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들이 오버 프로그래밍되었는지를 결정하는 수단을 포함하는 메모리 시스템.
  23. 제 22항에 있어서,
    상기 결정 수단은,
    하나 이상의 오버 프로그램 범위들의 경계들에 대해 상기 제 1 제어 라인과 연관된 상기 하나 이상의 다수-상태 저장 소자들 상에서 판독 동작들을 수행하는 수단과; 그리고
    상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들이 상기 오버 프로그램 범위들 내에서 임계 전압을 갖는 경우, 상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들이 오버 프로그래밍되었다고 결정하는 수단을 포함하는 것을 특징으로 하는 메모리 시스템.
  24. 제 23항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 제 2 워드 라인인 것을 특징으로 하는 메모리 시스템.
  25. 제 22항에 있어서,
    상기 결정 수단은,
    상기 제 1 다수-상태 저장 소자에 대한 초기 상태들을 결정하기 위해서 하나 이상의 판독 비교 지점들 세트에 대해 상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들 상에서 판독 동작들을 수행하는 수단과;
    상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들에 대해 에러 정정 코드 프로세스를 수행하는 수단과;
    상기 에러 정정 코드 프로세스가 실패한 경우, 상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들이 오버 프로그래밍되었는지를 결정하는 수단을 포함하는 것을 특징으로 하는 메모리 시스템.
  26. 제 25항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 제 2 워드 라인인 것을 특징으로 하는 메모리 시스템.
  27. 메모리 시스템으로서,
    다수-상태 저장 소자들의 배열과; 그리고
    상기 저장 소자들의 배열과 통신하는 관리 회로를 포함하며,
    상기 관리 회로는 제 1 제어 라인과 연관된 상기 다수-상태 저장 소자들 중하나 이상을 프로그래밍하고, 이에 후속하여 제 2 제어 라인과 연관된 다수-상태 저장 소자들 중에서 하나 이상의 프로그래밍하는 프로그래밍 동작들을 수행하고,
    상기 관리 회로는 상기 제 2 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들을 프로그래밍한 이후에 상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들이 오버 프로그래밍되었는지를 결정하고,
    적어도 상기 제 2 제어 라인과 연관된 상기 다수-상태 저장 소자들의 서브 세트는 상기 제 1 제어 라인과 연관된 다수-상태 저장 소자들에 인접한 것을 특징으로 하는 메모리 시스템.
  28. 제 27항에 있어서,
    상기 제 1 제어 라인은 제 1 비트 라인이고;
    상기 제 2 제어 라인은 상기 제 1 비트 라인에 인접한 제 2 비트 라인인 것을 특징으로 하는 메모리 시스템.
  29. 제 27항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 상기 제 1 워드 라인에 인접하는 제 2 워드 라인인 것을 특징으로 하는 메모리 시스템.
  30. 제 27항에 있어서,
    상기 제 1 제어 라인과 연관된 상기 하나 이상의 다수-상태 저장 소자들과 상기 제 2 제어 라인과 연관된 상기 하나 이상의 다수-상태 저장 소자들은 낸드 플래시 메모리 소자들인 것을 특징으로 하는 메모리 시스템.
  31. 제 27항에 있어서,
    상기 하나 이상의 다수-상태 저장 소자들은 저장 소자들의 배열의 일부이고;
    상기 저장 소자들의 배열은 집적 회로 칩 상에 위치하고;
    상기 관리 회로는 상태 머신을 포함하고;
    상기 상태 머신은 상기 집적회로 칩 상에 위치하며;
    상기 상태 머신이 상기 제 1 제어 라인과 연관된 하나 이상의 다수-상태 저장 소자들이 오버 프로그래밍되었는지에 대한 상기 결정을 수행하는 것을 특징으로 하는 메모리 시스템.
  32. 제 27항에 있어서,
    상기 관리 회로는 오버 프로그래밍 되었다고 결정된 저장 소자들에 대해 데이터를 고정하는 것을 특징으로 하는 메모리 시스템.
  33. 제 27항에 있어서,
    상기 관리 회로는 특정 저장 소자가 상기 특정 저장 소자에 인접한 저장 소자 상의 전하로 인한 전계의 존재때문에 오버 프로그래밍되었는지를 검출하는 것을 특징으로 하는 메모리 시스템.
  34. 제 27항에 있어서,
    상기 관리 회로는 특정 저장 소자가 하나 이상의 오버 프로그램 범위들의 세트중 임의의 범위 내에서 임계 전압을 가지는 지를 검출하고, 상기 오버 프로그램 범위들은 상기 특정 저장 소자에 인접한 저장 소자 상의 전하로 인한 전계의 영향을 추정함으로써 결정되는 것을 특징으로 하는 메모리 시스템.
  35. 제 27항에 있어서,
    상기 관리 회로는 하나 이상의 오버 프로그램 범위들의 경계들에 대해 상기 제 1 제어 라인과 연관된 다수-상태 저장 소자들 상에서 판독 동작들을 수행하고,
    상기 제 1 제어 라인과 연관된 상기 특정 다수-상태 저장 소자가 상기 하나 이상의 오버 프로그램 범위들 내에서 임계 전압을 갖는 경우, 상기 특정 다수-상태 저장 소자는 오버 프로그래밍되었다고 결정하는 것을 특징으로 하는 메모리 시스템.
  36. 제 35항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 상기 제 1 워드 라인에 인접한 제 2 워드 라인인 것을 특징으로 하는 메모리 시스템.
  37. 제 27항에 있어서,
    상기 관리 회로는,
    상기 제 1 제어 라인과 연관된 다수-상태 저장 소자에 대한 초기 상태들을 결정하기 위해 하나 이상의 판독 비교 지점들 세트에 대해 상기 제 1 제어 라인과 연관된 다수-상태 저장 소자들 상에서 판독 동작들을 수행하고;
    상기 제 1 제어 라인과 연관된 다수-상태 저장 소자에 대해 에러 정정 코드 프로세스를 수행하고; 그리고
    제 1 제어 라인과 연관된 특정 다수-상태 저장 소자에 대한 에러 정정 코드 프로세스가 실패한 경우, 상기 제 1 제어 라인과 연관된 특정한 다수-상태 저장 소자가 오버 프로그래밍되었다고 결정하는 것을 특징으로 하는 메모리 시스템.
  38. 제 37항에 있어서,
    상기 제 1 제어 라인은 제 1 워드 라인이고;
    상기 제 2 제어 라인은 상기 제 1 워드 라인에 인접한 제 2 워드 라인인 것을 특징으로 하는 메모리 시스템.
KR1020067002056A 2003-07-29 2004-07-07 인접 메모리 셀들의 프로그래밍 이후 오버 프로그래밍된메모리 셀들 검출 KR101049582B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/628,962 2003-07-29
US10/628,962 US6914823B2 (en) 2003-07-29 2003-07-29 Detecting over programmed memory after further programming
PCT/US2004/021699 WO2005013283A1 (en) 2003-07-29 2004-07-07 Detecting over programmed memory cells after programming of adjacent memory cells

Publications (2)

Publication Number Publication Date
KR20060114319A KR20060114319A (ko) 2006-11-06
KR101049582B1 true KR101049582B1 (ko) 2011-07-15

Family

ID=34103497

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067002056A KR101049582B1 (ko) 2003-07-29 2004-07-07 인접 메모리 셀들의 프로그래밍 이후 오버 프로그래밍된메모리 셀들 검출

Country Status (9)

Country Link
US (1) US6914823B2 (ko)
EP (1) EP1652191B1 (ko)
JP (1) JP4680904B2 (ko)
KR (1) KR101049582B1 (ko)
CN (1) CN100474453C (ko)
AT (1) ATE356410T1 (ko)
DE (1) DE602004005211T8 (ko)
TW (1) TWI264012B (ko)
WO (1) WO2005013283A1 (ko)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4084922B2 (ja) * 2000-12-22 2008-04-30 株式会社ルネサステクノロジ 不揮発性記憶装置の書込み方法
JP3935139B2 (ja) * 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
US6996004B1 (en) * 2003-11-04 2006-02-07 Advanced Micro Devices, Inc. Minimization of FG-FG coupling in flash memory
JP4170952B2 (ja) 2004-01-30 2008-10-22 株式会社東芝 半導体記憶装置
US7042766B1 (en) * 2004-07-22 2006-05-09 Spansion, Llc Method of programming a flash memory device using multilevel charge storage
US7230854B2 (en) * 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop
US7352629B2 (en) * 2005-12-29 2008-04-01 Sandisk Corporation Systems for continued verification in non-volatile memory write operations
US7307887B2 (en) * 2005-12-29 2007-12-11 Sandisk Corporation Continued verification in non-volatile memory write operations
US7450425B2 (en) * 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
US7593259B2 (en) 2006-09-13 2009-09-22 Mosaid Technologies Incorporated Flash multi-level threshold distribution scheme
KR100921949B1 (ko) * 2007-05-02 2009-10-15 충북대학교 산학협력단 표시장치용 구동 집적회로
US7619920B2 (en) * 2007-07-05 2009-11-17 Kabushiki Kaisha Toshiba NAND type flash memory and write method of the same
KR101411976B1 (ko) * 2007-07-09 2014-06-27 삼성전자주식회사 플래시 메모리 시스템 및 그것의 에러 정정 방법
KR101397549B1 (ko) * 2007-08-16 2014-05-26 삼성전자주식회사 고속 프로그램이 가능한 불휘발성 반도체 메모리 시스템 및그것의 독출 방법
JP4510060B2 (ja) * 2007-09-14 2010-07-21 株式会社東芝 不揮発性半導体記憶装置の読み出し/書き込み制御方法
KR101414494B1 (ko) * 2008-03-17 2014-07-04 삼성전자주식회사 메모리 장치 및 메모리 데이터 읽기 방법
US8014209B2 (en) 2008-07-02 2011-09-06 Sandisk Technologies Inc. Programming and selectively erasing non-volatile storage
KR101069004B1 (ko) * 2008-08-01 2011-09-29 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
US8422305B2 (en) * 2009-06-29 2013-04-16 Hynix Semiconductor Inc. Method of programming nonvolatile memory device
KR101124126B1 (ko) * 2009-06-29 2012-03-22 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
US8634240B2 (en) * 2009-10-28 2014-01-21 SanDisk Technologies, Inc. Non-volatile memory and method with accelerated post-write read to manage errors
US8214700B2 (en) 2009-10-28 2012-07-03 Sandisk Technologies Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
US8423866B2 (en) * 2009-10-28 2013-04-16 SanDisk Technologies, Inc. Non-volatile memory and method with post-write read and adaptive re-write to manage errors
KR101082692B1 (ko) * 2009-12-31 2011-11-15 주식회사 하이닉스반도체 반도체 메모리 장치 및 이의 프로그램 방법
US8432732B2 (en) 2010-07-09 2013-04-30 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays
US8305807B2 (en) 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8379454B2 (en) 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
KR20130008300A (ko) * 2011-07-12 2013-01-22 삼성전자주식회사 오버 프로그램을 이용하여 소거 동작을 수행하는 플래시 메모리 장치 및 그 동작방법
US8880977B2 (en) 2011-07-22 2014-11-04 Sandisk Technologies Inc. Systems and methods of storing data
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US20130031431A1 (en) 2011-07-28 2013-01-31 Eran Sharon Post-Write Read in Non-Volatile Memories Using Comparison of Data as Written in Binary and Multi-State Formats
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
US8726104B2 (en) 2011-07-28 2014-05-13 Sandisk Technologies Inc. Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US8842476B2 (en) 2011-11-09 2014-09-23 Sandisk Technologies Inc. Erratic program detection for non-volatile storage
US8630118B2 (en) 2011-11-09 2014-01-14 Sandisk Technologies Inc. Defective word line detection
US8566671B1 (en) 2012-06-29 2013-10-22 Sandisk Technologies Inc. Configurable accelerated post-write read to manage errors
US9135989B2 (en) 2012-09-06 2015-09-15 Sandisk Technologies Inc. Write data preservation for non-volatile storage
US9053810B2 (en) 2013-03-08 2015-06-09 Sandisk Technologies Inc. Defect or program disturb detection with full data recovery capability
US9213601B2 (en) 2013-12-03 2015-12-15 Sandisk Technologies Inc. Adaptive data re-compaction after post-write read verification operations
KR102356072B1 (ko) * 2015-09-10 2022-01-27 에스케이하이닉스 주식회사 메모리 시스템 및 그 동작 방법
US10249382B2 (en) 2017-08-22 2019-04-02 Sandisk Technologies Llc Determination of fast to program word lines in non-volatile memory
KR102612891B1 (ko) * 2018-05-31 2023-12-13 에스케이하이닉스 주식회사 메모리 장치, 그것의 동작방법 및 메모리 시스템
US11545221B2 (en) 2018-06-29 2023-01-03 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US10978156B2 (en) 2018-06-29 2021-04-13 Sandisk Technologies Llc Concurrent programming of multiple cells for non-volatile memory devices
US10839928B1 (en) 2019-05-16 2020-11-17 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
US11081198B2 (en) 2019-05-16 2021-08-03 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112314A (en) * 1996-10-24 2000-08-29 Micron Technology, Inc. Apparatus and method for detecting over-programming condition in multistate memory device
WO2002050843A1 (fr) 2000-12-21 2002-06-27 Fujitsu Limited Memoire a semi-conducteurs non volatile et procede d'effacement

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249893A (ja) * 1995-03-07 1996-09-27 Toshiba Corp 半導体記憶装置
KR960002006B1 (ko) * 1991-03-12 1996-02-09 가부시끼가이샤 도시바 2개의 기준 레벨을 사용하는 기록 검증 제어기를 갖는 전기적으로 소거 가능하고 프로그램 가능한 불휘발성 메모리 장치
JP3152720B2 (ja) * 1991-03-12 2001-04-03 株式会社東芝 不揮発性半導体記憶装置
US5602789A (en) * 1991-03-12 1997-02-11 Kabushiki Kaisha Toshiba Electrically erasable and programmable non-volatile and multi-level memory systemn with write-verify controller
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5532962A (en) * 1992-05-20 1996-07-02 Sandisk Corporation Soft errors handling in EEPROM devices
US5422580A (en) * 1993-10-14 1995-06-06 Aps Technologies Switchable active termination for SCSI peripheral devices
US6131140A (en) * 1995-12-22 2000-10-10 Cypress Semiconductor Corp. Integrated cache memory with system control logic and adaptation of RAM bus to a cache pinout
US5764568A (en) * 1996-10-24 1998-06-09 Micron Quantum Devices, Inc. Method for performing analog over-program and under-program detection for a multistate memory cell
JP3517081B2 (ja) * 1997-05-22 2004-04-05 株式会社東芝 多値不揮発性半導体記憶装置
JP3246420B2 (ja) * 1997-11-06 2002-01-15 日本電気株式会社 電気的書込可能な半導体記憶装置
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
US6147547A (en) * 1998-05-25 2000-11-14 Mitsubishi Denki Kabushiki Kaisha Charge pump circuit capable of generating positive and negative voltages and nonvolatile semiconductor memory device comprising the same
JP2000173289A (ja) * 1998-12-10 2000-06-23 Toshiba Corp エラー訂正可能なフラッシュメモリシステム
TW475267B (en) * 1999-07-13 2002-02-01 Toshiba Corp Semiconductor memory
JP2002279788A (ja) * 2001-03-16 2002-09-27 Toshiba Corp 不揮発性半導体メモリ
US6493266B1 (en) * 2001-04-09 2002-12-10 Advanced Micro Devices, Inc. Soft program and soft program verify of the core cells in flash memory array
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
US6542407B1 (en) * 2002-01-18 2003-04-01 Sandisk Corporation Techniques of recovering data from memory cells affected by field coupling with adjacent memory cells
US6799256B2 (en) * 2002-04-12 2004-09-28 Advanced Micro Devices, Inc. System and method for multi-bit flash reads using dual dynamic references
KR101110191B1 (ko) 2002-06-19 2012-02-15 쌘디스크 코포레이션 스케일 낸드용 인접셀들 사이의 크로스 커플링을 실드하기위한 딥 워드라인 트렌치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6112314A (en) * 1996-10-24 2000-08-29 Micron Technology, Inc. Apparatus and method for detecting over-programming condition in multistate memory device
WO2002050843A1 (fr) 2000-12-21 2002-06-27 Fujitsu Limited Memoire a semi-conducteurs non volatile et procede d'effacement

Also Published As

Publication number Publication date
DE602004005211T8 (de) 2008-05-15
JP4680904B2 (ja) 2011-05-11
EP1652191B1 (en) 2007-03-07
CN1853240A (zh) 2006-10-25
ATE356410T1 (de) 2007-03-15
US6914823B2 (en) 2005-07-05
EP1652191A1 (en) 2006-05-03
CN100474453C (zh) 2009-04-01
DE602004005211T2 (de) 2007-11-08
KR20060114319A (ko) 2006-11-06
DE602004005211D1 (de) 2007-04-19
TWI264012B (en) 2006-10-11
JP2007500412A (ja) 2007-01-11
US20050024943A1 (en) 2005-02-03
TW200518104A (en) 2005-06-01
WO2005013283A1 (en) 2005-02-10

Similar Documents

Publication Publication Date Title
KR101049582B1 (ko) 인접 메모리 셀들의 프로그래밍 이후 오버 프로그래밍된메모리 셀들 검출
KR101049581B1 (ko) 오버 프로그래밍된 메모리 검출
EP1711950B1 (en) Programming non-volatile memory
US7616499B2 (en) Retention margin program verification
KR101015612B1 (ko) 플로팅 게이트 커플링을 보상한 비휘발성 저장 소자의 판독 방법
EP1678722B1 (en) Programming method based on the behavior of non-volatile memory cells
TWI451422B (zh) 非揮發性記憶體中改良讀取操作之程式化不同大小邊限及在選擇狀態補償感測之方法和系統
EP2100307B1 (en) Margined neighbor reading for non-volatile memory read operations including coupling compensation
EP2030205B1 (en) Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US9552257B2 (en) Memory cell coupling compensation
EP2078303B1 (en) Reading of a nonvolatile memory cell by taking account of the stored state of a neighboring memory cell
US7652918B2 (en) Retention margin program verification
JP5114621B2 (ja) 不揮発性メモリのソフトプログラミングにおける制御されたブースト
TW201333957A (zh) 用於非揮發性儲存器之不穩定程式化偵測
TWI386939B (zh) 保留餘裕程式驗證
WO2008115874A1 (en) Adjusting resistance of non-volatile memory using dummy memory cells

Legal Events

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

Payment date: 20140626

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150618

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160616

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170616

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190617

Year of fee payment: 9