KR101193584B1 - 조기 데이타를 이용한 비휘발성 메모리의 파이프라인식프로그래밍 - Google Patents
조기 데이타를 이용한 비휘발성 메모리의 파이프라인식프로그래밍 Download PDFInfo
- Publication number
- KR101193584B1 KR101193584B1 KR1020077013359A KR20077013359A KR101193584B1 KR 101193584 B1 KR101193584 B1 KR 101193584B1 KR 1020077013359 A KR1020077013359 A KR 1020077013359A KR 20077013359 A KR20077013359 A KR 20077013359A KR 101193584 B1 KR101193584 B1 KR 101193584B1
- Authority
- KR
- South Korea
- Prior art keywords
- programming
- data content
- data
- page
- programming operation
- Prior art date
Links
- 230000015654 memory Effects 0.000 title claims abstract description 181
- 238000000034 method Methods 0.000 claims abstract description 95
- 238000003860 storage Methods 0.000 claims description 59
- 239000000872 buffer Substances 0.000 claims description 28
- 230000000977 initiatory effect Effects 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 35
- 238000003491 array Methods 0.000 abstract description 13
- 230000000153 supplemental effect Effects 0.000 abstract 1
- 230000036961 partial effect Effects 0.000 description 46
- 238000007667 floating Methods 0.000 description 34
- 238000009826 distribution Methods 0.000 description 21
- 238000012546 transfer Methods 0.000 description 11
- 239000010410 layer Substances 0.000 description 8
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 230000002829 reductive effect Effects 0.000 description 7
- 239000000758 substrate Substances 0.000 description 7
- 230000007704 transition Effects 0.000 description 6
- 238000012795 verification Methods 0.000 description 6
- VYPSYNLAJGMNEJ-UHFFFAOYSA-N Silicium dioxide Chemical compound O=[Si]=O VYPSYNLAJGMNEJ-UHFFFAOYSA-N 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 239000002184 metal Substances 0.000 description 4
- 239000004065 semiconductor Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000009792 diffusion process Methods 0.000 description 3
- 239000012212 insulator Substances 0.000 description 3
- 230000002853 ongoing effect Effects 0.000 description 3
- 229910052581 Si3N4 Inorganic materials 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000005684 electric field Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 235000012239 silicon dioxide Nutrition 0.000 description 2
- 239000000377 silicon dioxide Substances 0.000 description 2
- HQVNEWCFYHHQES-UHFFFAOYSA-N silicon nitride Chemical compound N12[Si]34N5[Si]62N3[Si]51N64 HQVNEWCFYHHQES-UHFFFAOYSA-N 0.000 description 2
- 229910004298 SiO 2 Inorganic materials 0.000 description 1
- LPQOADBMXVRBNX-UHFFFAOYSA-N ac1ldcw0 Chemical compound Cl.C1CN(C)CCN1C1=C(F)C=C2C(=O)C(C(O)=O)=CN3CCSC1=C32 LPQOADBMXVRBNX-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000003989 dielectric material Substances 0.000 description 1
- 230000002401 inhibitory effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 229910052814 silicon oxide Inorganic materials 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
- G11C16/3459—Circuits or methods to verify correct programming of nonvolatile memory cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/56—Digital 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/5621—Digital 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/5628—Programming or writing circuits; Data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
- G11C16/12—Programming voltage switching circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/34—Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
- G11C16/3436—Arrangements for verifying correct programming or erasure
- G11C16/3454—Arrangements for verifying correct programming or for detecting overprogrammed cells
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/32—Timing circuits
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Non-Volatile Memory (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
본 발명은 메모리 시스템이 프로그래밍 공정을 차단하고 부가적인 데이터를 포함한 이 프로그램 공정을 재시작하도록 하는 기술을 제공하는 것이다. 보다 구체적으로, 메모리 시스템이 프로그래밍 단위로서 모두 셀들의 그룹으로 데이터를 프로그램할 때, 프로그래밍은 이 그룹을 유지할 수 있는 전체 데이터 내용보다 적게 시작될 수 있다. 일 실시예에서, 본 발명은 상부 및 하부 데이터 페이지들의 중첩된 프로그래밍을 허용하는데, 메모리가 하부 논리 데이터 페이지 페이지를 프로그램하기 시작하면, 동일한 물리적 페이지로 할당된 상부 페이지를 위한 데이타가 수신되는 경우, 프로그래밍은 차단되고 상부 및 하부 페이지들의 동시 프로그래밍으로 재시작된다. 보충 실시예에서, 페이지가 다수의 데이터 섹터들을 포함할 때, 페이지의 부가적인 섹터들을 포함하도록 수신, 중단 및 재시작되는 경우 물리적 페이지의 프로그래밍은 대응하는 논리 페이지를 형성하는 전체 섹터들보다 적지만 하나 이상의 섹터들이 시작될 수 있다.
명령 회로, 제어기, 상태기, 로우 제어 회로, 메모리 셀 어레이
Description
본 발명은 일반적으로 비휘발성 메모리 및 이의 동작에 관한 것이며, 특히, 프로그래밍이 개시되는 시간에서 완전한 데이터가 초기에 제공되지 않을 때 다상 메모리들의 프로그래밍 속도를 개선하는 기술들에 관한 것이다.
본 발명의 원리들은 각종 유형들의 비휘발성 메모리들에 적용하는 것인데, 이들 원리들은 기존의 것을 이용하거나 새로이 개발된 기술을 이용한다. 그러나, 본 발명의 구현방식들은 플래시 소거가능하고 프로그램가능한 판독 전용 메모리(EEPROM)에 대해서 설명되는데, 여기서 저장 소자들은 예로서 플로우팅 게이트들이다.
2진 모드로 동작하여 단일 데이터 비트를 저장하는 플래시 EEPROM의 각 플로우팅 게이트 저장 소자 제품이 현재 상업화되었는데, 플로우팅 게이트 트랜지스터들의 임계 레벨들의 2개의 범위들은 저장 레벨들로서 규정된다. 플로우팅 게이트의 임계 레벨들은 자신들의 플로우팅 게이트들 상에 저장되는 전하 레벨들의 범위들에 대응한다. 메모리 어레이들의 크기를 축소하는 것 이외에도, 각 플로우팅 게이트 트랜지스터에서 하나 이상의 데이터 비트를 저장함으로써 이와 같은 메모리 어레이 들의 데이터 저장 밀도를 더욱 증가시키는 것이 추세이다. 이는 각 플로우팅 게이트 트랜지스터에 대한 저장 상태들로서 2개 이상의 임계 레벨들을 규정함으로써 성취되는데, 4개의 이와 같은 상태들(플로우팅 게이트 저장 소자 당 데이터 2비트들)이 현재 시장 제품들에 포함된다. 저장 소자 당 16개의 상태들과 같은 더 많은 저장 상태들이 고려된다. 각 플로우팅 게이트 메모리 트랜지스터는 실제 동작될 수 있는 임계 전압들의 특정 총 범위(윈도우)를 갖는데, 이 범위는 메모리 트랜지스터에 대해 규정된 상태들의 수 더하기 상태들 간의 마진들로 나뉘어져 이들이 서로 명백하게 구별될 수 있도록 한다.
각 메모리 셀에 저장된 상태들의 수가 증가함에 따라서, 플로우팅 게이트 저장 소자들 상에 프로그램된 전하 레벨에서 임의의 시프트들의 공차는 감소된다. 각 저장 상태에 대해 지정된 전하 범위들은 반드시 좁게되어야 하고 각 메모리 셀 저장 소자 상에 저장된 상태들의 수가 증가함에 따라서 모두 밀접하게 배치되어야 하기 때문에 프로그래밍은 증가된 정확도로 수행되고 허용될 수 있거나, 저장된 전하 레벨들의 임의의 후 프로그래밍 시프트들(post-programming shifts), 실제 또는 명백한 시프트들의 정도가 감소된다. 한 셀에 저장된 전하의 실제 시프트들은 동일한 칼럼 또는 로우에 있는 셀과 라인 또는 노드를 공유하는 셀들과 같은 셀과 어느 정도 전기적 결합하는 다른 셀들을 판독, 프로그래밍 및 소거할 때 외란될 수 있다.
저장된 전하의 명백한 시프트들은 저장 소자들 간의 필드 결합 때문에 발생된다. 메모리 셀 어레이들의 크기들이 감소됨에 따라서 그리고 집적 회로 제조 기술들의 향상 결과에 따라서 이 결합도는 반드시 증가한다. 상이한 시간에서 프로그 램된 2세트의 인접 셀들 간에서 문제가 가장 크게 발생된다. 한 세트의 셀들은 전라 레벨을 한 세트의 데이터에 대응하는 이들 셀들의 플로우팅 게이트들에 부가하도록 프로그램된다. 제2 세트의 셀들은 제2 세트의 데이터로 프로그램된 후, 제1 세트의 셀들의 플로우팅 게이트들로부터 판독된 전하 레벨들은 상기 제1 세트와 결합되는 제2 세트의 플로우팅 게이트들에 대한 전하의 영향 때문에 프로그램된 것과 다르게 종종 나타난다. 이는 본원에 전반적으로 참조된 미국 특허 5,867,429 및 5,930,167에 개시되어 있다. 이들 특허들은 2 세트의 플로우팅 게이트들을 서로 물리적으로 절연시키거나 상기 제1 세트의 전하 레벨을 판독할 때 제2 세트의 플로우팅 게이트들에 대한 전하의 영향을 고려하는 것을 개시한다. 게다가, 특히 5,930,167은 데이터를 초기에 프로그램하는데 걸리는 시간을 줄이기 위하여 단지 2가지 상태들로 또는 감소된 마진으로 캐쉬 메모리로서 다상 메모리의 부분들을 선택적으로 프로그램하는 방법들을 개시한다. 이 데이터는 나중에 판독되고 2가지 이상의 상태들로 또는 증가된 마진으로 메모리로 재프로그램된다.
이 영향은 다양한 유형의 플래시 EEPROM 셀 어레이들에 존재한다. 한 가지 설계의 NOR 어레이는 인접 비트(칼럼) 라인들 및 워드(로우) 라인들에 연결된 제어 게이들 간에 연결된 메모리 셀들을 갖는다. 개별적인 셀들은 선택 트랜지스터와 직렬로 형성되거나 형성되지 않는 하나의 플로우팅 게이트 트랜지스터 또는 단일 선택 트랜지스터에 의해 분리된 2개의 플로우팅 게이트 트랜지스터들을 포함한다. 이와 같은 어레이들의 예들 및 저장 시스템들의 사용은 본원에 전반적으로 참조된 샌디스크 사의 다음 미국 특허들과 계류중인 출원들에 제공된다: 특허 번호 5,095,344, 5,172,338, 5,602,987, 5,663,901, 5,430,859, 5,657,332, 5,712,180, 5,890,192 및 6,151,248 및 2000년 2월 17일에 출원된 일련 번호 09/505,555, 및 2000년 9월 22일에 출원된 09/667,344.
한 설계의 NAND 어레이는 비트 라인 및 양단에서의 선택 트랜지스틀 통한 기준 전위 간의 직렬 스트링으로 연결된 8, 16, 또는 심지어 32와 같은 다수의 메모리 셀들을 갖는다. 워드 라인들은 상이한 직렬 스트링에서 셀들의 제어 게이트들과 연결된다. 이와 같은 어레이들 및 이들의 동작의 관련 예들은 본원에 전반적으로 참조된 다음 미국 특허들에 제공된다: 5,570,315, 5,774,397, 및 6,046,935. 요약하면, 인입 데이터의 상이한 논리적 페이지로부터의 데이터의 2비트는 2 단계로 개별적인 셀들의 4개의 상태들 중 한 상태로 프로그램되는데, 우선 데이터의 1비트에 따라서 셀을 한 상태로 프로그램하며, 데이터가 필요로 되면, 인입 데이터의 제2 비트에 따라서 상태들 중 또 다른 한 상태로 셀을 재프로그램한다.
이들 특허들에서 설명된 바와 같이, 이들 다상(또는 MLC) 메모리들에 저장된 데이터를 인코딩하는 보편적인 기술은 다상 레벨 셀들의 동일한 세트에 데이터의 상부 페이지 및 데이터의 하부 페이지를 저장하도록 하는 것이다.이 장치는, MLC 플래시 메모리의 물리적 페이지가 하부 페이지 데이터로 프로그램되는 경우, 실제로 하부 및 상부 페이지 데이터가 동일한 물리적 페이지로 프로그램되도록 하고자 할 때 사용자(제어기)는 상부 페이지 데이터를 프로그래밍을 시작할 수 있도록 프로그래밍이 완료될 때까지 대기하여야 하는 단점을 갖는다. 이들 설계들에서 다수의 데이터 전달 단위들에 대응하는 데이터 량을 포함하는 페이지에 데이터를 기록 하도록 하는 것이 보편적이다. 이는 플래시 메모리가 부분적으로 프로그램되는 경우, 다중-섹터 또는 다중-플레인 페이지가 단지 데이터의 단일 섹터로 프로그램될 때처럼 사용자는 동일한 페이지의 또다른 부분적인 프로그램을 시작할 수 있도록 완료될 때까지 대기하여야 하는 단점을 초래한다. 이들 단점들을 감소시키거나 제거하면 비휘발성 메모리 시스템들의 성능은 개선될 수 있다.
요약하면 그리고 일반적으로, 본 발명은 메모리 시스템이 프로그래밍 공정을 차단하고 부가적인 데이터를 포함한 이 공정을 재시작하도록 하는 기술을 제공한다. 보다 구체적으로, 메모리 시스템이 프로그래밍 단위로서 모두 셀들의 그룹으로 데이터를 프로그램할 때, 프로그래밍은 이 그룹을 유지할 수 있는 전체 데이터 내용보다 적게 시작될 수 있다. 이 그룹에 할당된 부가적인 데이터는 프로그램이 진행중인 동안 도달되면, 이 프로그래밍은 차단되고 메모리 셀들의 현재 상태가 결정된다. 그 후, 부가적인 데이터는 완료될 때까지 또는 이 그룹에 할당되는 훨씬 더 많은 부가적인 데이터가 메모리에 도달될 때까지 프로그램되는 데이터에 결합되고 프로그래밍은 재개한다. 이는 공정에서 부분적인 컨텐트 프로그래밍이 완료될 때까지 대기하는 것이 아니라 도달될 때 부가적인 데이터의 프로그래밍이 시작하기 때문에 성능을 개선시킨다.
본 발명의 또 다른 양상에서, 본 발명은 상부 및 하부 페이지들의 중첩된 프로그래밍을 허용한다. 다중-패스 프로그래밍을 이용하는 다상 시스템에서, 메모리의 물리적 페이지에 할당되는 하부 논리적 데이터 페이지는 프로그래밍하기 시작한다. 동일한 물리적 페이지에 할당되는 상부 논리적 데이터 페이지가 메모리로 전달되면, 하부 페이지의 프로그래밍은 차단되고 하부 페이지 프로그래밍의 상태가 설정된다. 메모리는 다상 프로그래밍 모드로 변환되어 상부 및 하부 페이지 데이터를 동시에 기록한다. 이는 관련된 상부 페이지를 대기함이 없이 이용가능하자 마자 하부 페이지 데이터를 프로그램하기 시작한다. 이는 또한 하부 페이지에 기록하는 것을 완료하기 위하여 제1 프로그래밍 패스를 대기함이 없이 이용가능하자 마자 상부 페이지를 프로그램하기 시작한다.
본 발명의 또 다른 양상에서, 물리적 페이지로 프로그래밍은 페이지를 구성하는 전체 상보적인 플레인들보다 적게 대응하는 경우 조차도 소정 물리적 페이지로 할당된 데이터가 전달되자 마자 시작할 수 있다. 예를 들어, 페이지가 다수의 데이터 섹터들을 포함할 때, 물리적 페이지의 프로그래밍은 대응하는 논리적 페이지를 형성하는 하나 이상이지만 전체보다 적은 섹터들이 수신될 때 시작할 수 있다. 부분적인 페이지 프로그래밍이 시작하자 마자, 프로그램된 페이지에 할당되는 부가적인 데이터(예를 들어, 부가적인 섹터들)는 메모리로 전달되면, 부분적인 페이지 프로그래밍은 차단되고 부분적인 페이지의 상태가 설정된다. 그 후, 메모리는 부가적인 데이터를 기록에 부가되고 프로그래밍을 재시작한다. 이는 페이지를 완료하는데 필요로 되는 임의의 부가적인 데이터를 대기함이 없이 제1 전달된 데이터가 이용가능하자 마자 프로그래밍을 재시작하도록 한다. 이는 기록을 완료하기 위하여 페이지의 초기에 전달된 부분의 부분적인 페이지 프로그래밍을 대기함이 없이 전달된 즉시 부가적인 데이터가 프로그래밍을 시작하도록 하여, 파이프라인식 부분적인 페이지 프로그래밍 공정을 하게 한다. 게다가, 물리적 페이지는 메모리의 다수의 플레인들에 걸쳐서 분포될 수 있다.
이들 양상들의 특정 실시예는 계단(staircase) 프로그래밍 파형을 이용한다. 부가적인 데이터가 수신될 때, 이 계단의 레벨 또는 다른 관련된 파라미터들은 이 지점까지 프로그래밍의 진행에 따라서 리셋될 필요가 있을 수 있다.
본 발명의 부가적인 양상들, 특징들, 장점들 및 응용들은 첨부 도면과 관련된 이하의 예시적인 실시예들의 설명에 포함된다.
도1은 본 발명의 각종 양상들이 구현되도록 설명되는 비휘발성 메모리 시스템의 블록도.
도2는 메모리 셀 어레이가 NAND 형일 때 도1의 메모리 어레이의 기존 회로 및 구성을 도시한 도면.
도3은 반도체 기판 상에 형성되는 NAND 형 메모리 어레이의 칼럼을 따라서 본 단면도.
도4는 섹션 4-4를 따라서 본 도3의 메모리 어레이의 단면도.
도5는 섹션 5-5를 따라서 본 도3의 메모리 어레이의 단면도.
도6은 도2 내지 도5의 NAND 메모리 셀 어레이의 동작 전압들의 예에 대한 표1을 제공한 도면.
도7은 도2 내지 도5의 NAND 메모리 셀 어레이의 또 다른 특징을 도시한 도면.
도8A는 4개의 상태들로 동작될 때 도2-5의 NAND 메모리 셀 어레이의 임계 전압들의 기존 분포의 예를 도시한 도면.
도8B 및 도8C는 도2 내지 도5의 메모리 셀 어레이를 프로그램하는 다상 기술을 도시한 전압 임계 레벨 분포를 도시한 도면.
도9는 도2 내지 도5의 메모리 셀 어레이에 사용될 수 있는 프로그래밍 전압 신호의 예를 도시한 도면.
도10A 및 도10B는 종래 기술에서 실행되는 바와 같은 상부 및 하부 MLC 페이지들의 프로그래밍을 도시한 도면.
도11A 내지 도11C는 상부 및 하부 MLC 페이지들의 프로그래밍을 중첩시키는 공정의 제1 실시예를 도시한 도면.
도12는 종래 기술에서 실행될 수 있는 바와 같은 부분적인 페이지 프로그래밍을 도시한 도면.
도13은 파이프라인식 부분적인 페이지 프로그래밍 프로세스의 제1 실시예를 도시하 도면.
도14A 및 도14B는 파이프라인식 부분적인 페이지 프로그래밍 프로세스의 제2 실시예를 도시한 도면.
비휘발성 메모리 시스템의 예
도1 내지 도7을 참조하면, 정의된 예들을 제공하기 위하여 본 발명의 다양한 양상들이 구현되는 특정 비휘발성 메모리 시스템이 개시된다. 도1은 플래시 메모리 시스템의 블록도이다. 매트릭스로 배열되는 다수의 메모리 셀들(M)을 포함하는 메모리 셀 어레이(1)는 칼럼 제어 회로(2), 로우 제어 회로(3), c-소스 제어 회로(4) 및 c-p-웰 제어 회로(5)에 의해 제어된다. 칼럼 제어 회로(2)는 메모리 셀들(M)에 저장된 데이터를 판독하며, 프로그램 동작 동안 메모리 셀들(M)의 상태를 결정하고 프로그래밍을 촉진 또는 금지시키기 위하여 비트 라인들(BL)의 전위 레벨들을 제어하기 위한 메모리 셀 어레이(1)의 비트라인들(BL)에 연결된다. 로우 제어 회로93)는 워드 라이들(WL)에 연결되어 워드 라인들(WL) 중 하나를 선택하며, 판독 전압들을 인가하며, 칼럼 제어 회로(2)에 의해 제어되는 비트 라인 전위 레벨들과 결합되는 프로그램 전압들을 인가하고, 메모리 셀들(M)이 형성되는 p-형 영역(도3에서 "c-p-웰"로 라벨링됨)의 전압과 결합되는 소거 전압을 인가한다. c-소스 제어 회로(4)는 메모리 셀들(M)에 연결되는 공통 소스 라인(도2의 "c-소스"로 라벨링됨)을 제어한다. c-p-웰 제어 회로(5)는 c-p-웰 전압을 제어한다.
메모리 셀들(M)에 저장되는 데이터는 칼럼 제어 회로(2)에 의해 판독출력되고 I/O 라인 및 데이터 입력/출력 버퍼(6)를 통해서 외부 I/O 라인들로 출력된다. 메모리 셀들에 저장될 프로그램 데이터는 외부 I/O 라인들을 통해서 데이터 입력/출력 버퍼(6)로 입력되고 칼럼 제어 회로(2)로 전달된다. 외부 I/O 라인들은 제어기(20)에 연결된다.
플래시 메모리 장치를 제어하기 위한 명령 데이터는 제어기(20)와 연결되는 외부 제어 라인들에 연결되는 명령 인터페이스로 입력된다. 명령 데이터는 어떤 동작이 요청되는지를 플래시 메모리에 통지한다. 입력 명령은 칼럼 제어 회로(2), 로 우 제어 회로(3), c-소스 제어 회로(4), c-p-웰 제어 회로(5) 및 데이터 입력/출력 버퍼(6)를 제어하는 상태기(80)로 전달된다. 상태기(8)는 READY/BUSY 또는 PASS/FAIL과 같은 플래시 메모리의 상태 데이터를 출력할 수 있다.
제어기(20)는 개인용 컴퓨터, 디지털 카메라, 또는 개인 휴대 정보 단말기와 같은 호스트 시스템과 연결되거나 연결될 수 있다. 메모리 어레이(1)로 또는 이로부터 데이터를 저장 또는 판독하고 이와 같은 데이터를 각각 제공 또는 수신하도록 하는 것과 같은 명령들을 개시하는 것은 바로 호스트이다. 제어기는 이와 같은 명령들을 명령 회로들(7)에 의해 해석되고 실행될 수 있는 명령 신호들로 변환시킨다. 제어기는 또한 전형적으로 메모리 어레이로 기록 또는 이로부터 판독되는 사용자 데이터용 버퍼 메모리를 포함한다. 전형적인 메모리 시스템은 제어기(20)를 포함하는 하나의 집적 회로 칩 및 메모리 어레이 및 관련된 제어, 입력/출력 및 상태 기 회로들을 각각 포함하는 하나 이상의 집적 회로 칩들을 포함한다. 물론, 이 경향은 시스템의 제어기 회로들 및 메모리 어레이 모두를 하나 이상의 집적 회로 칩들 상에 집적시키는 것이다. 메모리 시스템은 호스트 시스템의 부분으로서 구현될 수 있거나 호스트 시스템들의 메이팅 소켓에 탈착가능하게 삽입될 수 있는 메모리 카드에 포함될 수 있다. 이와 같은 카드는 전체 메모리 시스템을 포함할 수 있거나 제어기 및 메모리 어레이와 더불어 관련된 주변 회로들이 별도의 카드들에 제공될 수 있다.
도2를 참조하면, 메모리 셀 어레이 예의 구조가 개시된다. NAND 형의 플래시 EEPROM이 예로서 개시되어 있다. 메모리 셀들(M)은 특정 예에서 1024개의 블록들로 분할된다. 각 블록에 저장된 데이터는 동시에 소거된다. 따라서, 블록은 동시에 소거될 수 있는 다수의 셀들의 최소 단위가다. 이 예에서, 각 블록에서, 우수 칼럼들 및 기수 칼럼들로 분할되는 8512개의 칼럼들이 존재한다. 비트 라인들은 또한 우수 비트 라인들(BLe) 및 기수 비트 라인들(BLo)로 분할된다. 각 게이트 전극에서 워드 라인들(WL0 내지 WL3)에 연결되는 4개의 메모리 셀들은 직렬로 연결되어 NAND 셀 유닛 또는 NAND 스트링을 형성한다. NAND 셀 유닛의 한 단자는 게이트 전극이 제1 선택 게이트 라인(SGD)에 결합되는 제1 선택 트랜지스터를 통해서 대응하는 비트 라인(BL)에 연결되고 또 다른 단자는 게이트 전극이 제2 선택 게이트 라인(SGS)에 결합되는 제2 선택 트랜지스터를 통해서 c-소스에 연결된다. 4개의 플로우팅 게이트 트랜지스터들이 간결성을 위하여 각 셀 유닛에 포함되도록 도시되지만, 8, 16 또는 심지어 32개와 같은 더 많은 수의 트랜지스터들이 사용된다.
사용자 데이터 판독 및 프로그래밍 동작들 동안, 4256개의 셀들(M)이 이 예에서 동시에 선택된다. 선택된 셀들(M)은 동일한 워드 라인(WL), 예를 들어 (WL2) 및 동일한 종류의 비트 라인(BL), 예를 들어, 우수 비트 라인들(BLe0 내지 BLe4255)을 갖는다. 그러므로, 데이터의 532 바이트들은 동시에 판독되거나 프로그램될 수 있고 이 데이터 단위를 페이지라 칭한다. 이 예에서, 각 NAND 스트링이 4개의 셀들을 포함하고 감지 증폭기 당 2개의 비트 라인들이 존재하기 때문에, 하나의 블록은 적어도 8개의 페이지들을 저장할 수 있다. 각 메모리 셀(M)이 데이터의 2비트들을 저장할 때, 즉 다중 레벨 셀을 저장할 때, 하나의 블록은 16개의 페이지들을 저장한다. 이 실시예에서, 메로리 셀들 각각의 저장 소자, 이 경우에, 상기 메모리 셀들 각각의 플로우팅 게이트는 사용자 데이터의 2비트들을 저장한다.
도3은 비트 라인(BL) 방향으로 도2에 개략적으로 도시된 유형의 NAND 셀 유닛의 단면도를 도시한다. p-형 반도체 기판(9)의 표면에서, p-형 영역 c-p-웰 (11)이 형성되며, c-p-웰은 p-형 기판으로부터 c-p-웰을 전기적으로 절연시키기 위하여 n-형 영역(10)에 의해 둘러싸여진다. n-형 영역(10)은 제1 접촉 홀(CB) 및 n-형 확산 층(12)을 통해서 제1 금속(M0)로 이루어진 c-p-웰 라인에 연결된다. p-형 영역 c-p-웰 (11)은 또한 제1 접촉 홀(CB) 및 p-형 확산 층(13)을 통해서 c-p-웰 라인에연결된다. c-p-웰 라인은 c-p-웰 제어 회로(5)(도1)에 연결된다.
각 메모리 셀은 셀에 저장된 데이터에 대응하는 전하량을 저장하는 플로우팅 게이트(FG), 게이트 전극을 형성하는 워드 라인(WL) 및 n-형 확산 층(12)으로 이루어진 드레인 및 소스 전극들을 갖는다. 플로우팅 게이트(FG)는 터널 산화막(14)을 통해서 c-p-웰의 표면상에 형성된다. 워드 라인(WL)은 인슐레이터 막(15)을 통해서 플로우팅 게이트(FG) 상에 적층된다. 소스 전극은 제2 선택 트랜지스터(S) 및 제1 접촉 홀(CB)을 통해서 제1 금속(MO)으로 이루어진 공통 소스 라인(c-소스)에 연결된다. 공통 소스 라인은 c-소스 제어 라인(4)에 연결된다. 드레인 전극은 제1 선택 트랜지스터(S), 제1 접촉 홀(CB), 제 금속(MO)의 중간 배선 및 제2 접촉 홀(V1)을 통해서 제2 금속(M1)으로 이루어진 비트 라인(BL)에 연결된다. 비트 라인은 칼럼 제어 회로(2)에 연결된다.
도4 및 도5는 워드 라인(WL2)의 방향으로 메모리 셀(도3의 단면 4-4) 및 선택 트랜지스터(도3의 단면 5-5)의 단면도를 도시한다. 각 칼럼은 기판에 형성된 트 렌치에 의해 이웃 칼럼들로부터 절연되고 샐로우 트렌치 아이솔레이션(STI)로서 공지된 아이솔레이션 재료로 충전된다. 플로우팅 게이트들(FG)은 STI 및 인슐레이터 막(15) 및 워드 라인(WL)에 의해 서로로부터 절연된다. 플로우팅 게이트(FG)간의 공간은 0.1 ㎛정도일 수 있고 플로우팅 게이트들 간의 용량성 결합이 중요할 수 있다. 선택 트랜지스터의 게이트 전극(SG)이 플로우팅 게이트(FG) 및 워드 라인(WL)과 동일한 형성 공정으로 형성되기 때문에, 이는 적층된 게이트 구조를 도시한다. 이들 2개의 선택 게이트 라인들(SG)은 워드 라인들의 끝에서 모두 전기적으로 단락된다.
도6의 표 1은 특정 예에서 메모리 셀 어레이 (1)을 동작시키도록 인가되는 전압들을 요약한 것인데, 각 메모리 셀의 플로우팅 게이트는 2비트들을 저장하며, 상태들 "11", "10", "01", "00"중 한 상태를 갖는다. 이 표는 워드 라인 "WL2" 및"BLe"의 비트 라인들이 판독 및 프로그래밍 동안 선택되는 경우를 도시한다. c-p-웰을 20V의 소거 전압으로 상승시키고 선택된 블록의 워드 라인들(WL)을 접지시킴으로써, 선택된 블록의 데이터가 소거된다. 선택되지 않은 블록들의 워드 라인들(WL), 비트 라인들(BL), 선택 라인들(SG) 및 c-소스 모두는 플로우팅 상태로 되기 때문에, c-p-웰과 용량성 결합으로 인해 거의 20V까지 상승된다. 그러므로, 강한 전계가 선택된 메모리 셀들(M)의 터널 산화막들(14)(도4 및 도5)만에 인가되고 선택된 메모리 셀들의 데이터는 터널 산화막(14) 양단에 터널 전류가 흐름에 따라서 소거된다. 이 소거된 셀은 이 예에서 4개의 가능한 프로그램된 상태들 중 한 상태, 즉 "11"가 된다.
프로그래밍 동작 동안 플로우팅 게이트(FG)에서 전자들을 저장하기 위하여, 선택된 워드 라인(WL2)은 프로그램 펄스(Vpgm)를 프로그램하도록 연결되고 선택된 비트 라인들(BLe)는 접지된다. 다른 한편으로, 프로그래밍이 발생되지 않는 메모리 셀들(M) 상에 프로그램을 금지하기 위하여, 대응하는 비트 라인들(BLe)은 정의 전압(Vdd), 예를 들어 3V 뿐만 아니라 선택되지 않은 비트 라인들(BLo) 모두에 연결된다. 선택되지 않은 워드 라인들(WL0, WL1 및 WL3)은 10V에 연결되며, 제1 선택 게이트(SGD)는 Vdd에 연결되고 제2 선택 게이트(SGS)가 접지된다. 따라서, 프로그램되는 메모리 셀(M)의 채널 전위는 0V로 설정된다. 금지되는 셀의 채널 전위는 워드 라인들(WL)과의 용량성 결합에 의해 풀업되는 채널 전위에 따라서 약 6V로 상승된다. 상기 설명된 바와 같이, 저장 전계는 프로그래밍 동안 메모리 셀들(M)의 터널 산화막들(14)에만 인가되고 터널 전류는 소거와 비교하여 역방향으로 터널 산화막(14)을 가로질러 흐르고 나서, 논리 상태는 "11"로부터 다른 상태들 "10", "01" 또는 "00" 중 하나로 변경된다. 각종 다른 코딩 방식들은 이들 상태들을 표시하도록 선택되어 지정 E(소거), A(최저 임계 프로그램 상태), B(A 보다 높은 임계) 및 C(최고 임계 프로그램 상태)가 이하의 설명에서 사용될 것이다.
판독 및 검증 동작들에서, 선택 게이트들(SGD 및 SGS) 및 선택되지 않은 워드 라인들(WLO, WL1 및 WL3)은 4.5V의 판독 패스 전압으로 상승되어, 비트 라인과 공통 소스 라인 간의 전류가 이들을 통과할 수 있도록 보장한다. 선택된 워드 라인(WL2)은 저압에 연결되는데, 이의 레벨은 각 판독 및 검증 동작을 위하여 지정되어 관련된 메모리 셀의 임계 전압이 이와 같은 레벨에 도달하는지를 결정한다. 예 를 들어, READ10 동작(상태 A)에서, 선택된 워드 라인 (WL2)은 접지되어, 임계 전압이 OV보다 높은지 여부를 검출하도록 한다. 이 판독 경우에, 판독 레벨을 0V라 할 수 있다. VERIFY01 동작(상태 C)에서, 선택된 워드 라인(WL2)은 2.4V에 연결되어, 임계 전압이 2.4V에 도달하는지를 검증하도록 한다. 이 검증 경우에, 검증 레벨은 2.4V라 할 수 있다.
선택된 비트 라인들(BLe)는 고 레벨, 예를 들어 0.7V로 프리 챠지된다. 임계 전압이 판독 또는 검증 레벨보다 높으면, 관련된 비트 라인(BLe)의 전위 레벨은 비 도전성 메모리 셀(M)로 인해 고 레벨을 유지한다. 다른 한편으로, 임계 전압이 판독 또는 검증 레벨보다 낮으면, 관련된 비트 라인(BLe)의 전위 레벨은 도전성 메모리 셀(M) 때문에 저 레벨, 예를 들어 0.5V보다 작은 레벨로 감소된다. 판독 및 검증 동작들의 부가적인 상세한 사항들이 후술된다.
도7은 도1의 칼럼 제어 회로(2)의 일부를 도시한 것이다. 비트 라인들(BLe 및 BLo)의 각 쌍은 2개의 데이터 저장(DS1 및 DS2) 레지스터들을 포함하는 데이터 저장부(16)에 결합되는데, 각 레지스터는 데이터의 1비트를 저장할 수 있다. 데이터 저장부(16)는 판독 또는 검증 동작 동안 선택된 비트 라인(BL)의 전위 레벨을 감지하고 나서 데이터를 2진 방식으로 저장하고, 프로그램 동작으로 비트 라인 전압을 제어한다. 데이터 저장부(16)는 "EVENBL" 및 "ODDBL"의 신호들 중 한 신호를 선택함으로써 선택된 비트 라인(BL)에 선택적으로 연결된다. 데이터 저장부(16)는 또한 판독 데이터를 출력하고 프로그램 데이터를 저장하도록 I/O 라인에 결합된다. I/O 라인은 도1과 관련하여 상술된 바와 같이 데이터 입력/출력 버퍼(6)에 연결된 다.
저장 소자당 2개 이상의 상태들로 메모리 시스템의 동작
도8A는 각 플로우팅 게이트 저장 소자가 데이터의 2비트들, 즉 4개의 데이터 상태들을 각 메모리 셀(M)에 저장할 때 메모리 셀 어레이(1)에 대한 임계 전압 분포들을 도시한 것이다. 곡선(33)은 부의 임계 전압 레벨들인 소거 상태(E 데이터 상태)에 있는 어레이(1) 내의 셀들의 임계 레벨들(VT)의 분포를 도시한다. A 및 B 사용자 데이터 각각을 저장하는 메모리 셀들 임계 전압 분포들(34 및 35)은 0V 및 1V 사이와 1V 및 2V 사이에 있는 것으로 도시된다. 곡선(36)은 판독 패스 전압의 2V 이상과 4.5V 보다 작게 설정된 최고 임계 전압 레벨 C 데이터 상태로 프로그램되는 셀들의 분포를 도시한다.
이 예에서 일 메모리 셀(M)에 저장된 2비트들 각각은 서로 다른 논리적 페이지로부터 나온다. 즉, 각 메모리 셀에 저장된 2비트들의 각 비트는 다른 비트와 다른 논리적 페이지 어드레스를 반송한다. 도8A에 도시된 하부 페이지 비트는 우수 페이지 어드레스(=0,2,4,...N/2)가 입력될 때 어드레스되는데, N은 메모리의 논리적 페이지 용량이다. 상부 페이지 비트는 기수 페이지 어드레스(=1,3,5,...,[N/2]+1)이 입력될 때 액세스된다. 도8A에 도시된 예의 코딩을 이용하면, 상태 E는 "11" 상태로, 상태 A는 "10" 상태로 , 상태 B는 "00" 상태로 그리고 상태 C는 "01' 상태로 표시될 수 있는데, 여기서 제1의 2진 디지트는 상부 페이지에 저장된 값을 표시하고 제2의 2진 디지트는 하부 페이지에 저장된 값을 표시한 다.
개선된 신뢰성을 제공하기 위하여, 개별적인 분포들이 타이트(협소화된 임계 분포)하게 되는 것이 더 바람직한데, 그 이유는 분포가 더욱 타이트하면 할수록 판독 마진(이들간의 거리)이 더욱 넓게되기 때문이다. 본 발명을 따르면, 분포 폭은 프로그래밍 속도면에서 현저한 저하없이 더욱 타이트한 채로 유지된다.
본원에 전반적으로 참조된 Digest of 1995 Symposium on VLSI Technology, pp129-130에 발표된 논문 "Fast and Accurate Programming Method for Mulit-level NAND EEPROMs"에 따르면, 원리적으로, 0.2V 폭으로 분포를 제한하면 통상적인 반복 프로그래밍 펄스들은 단계들 간에서 0.2V 증가되는 것을 필요로 한다. 도9SMS 기존 프로그래밍 펄스 기술을 도시한다. 프로그래밍 전압 Vpgm 파형이 도시된다. 프로그래밍 전압 Vpgm은 많은 펄스들로 분할되고 0.2 펄스씩 증가된다. Vpgm의 시작 레벨은 특정 예에서 12V이다.
펄스들 간의 기간들에서, 검증(판독) 동작들이 실행된다. 즉, 병렬로 프로그램되는 각 셀의 프로그램된 레벨은 각 프로그래밍 펄스 간에서 판독되어 프로그램되는 검증 레벨과 동일한지 이보다 큰지를 결정한다. 소정 메모리 셀의 임계 전압이 검증 레벨을 초과한다라고 결정되면, 비트 라인의 전압을 소정 셀의 일련의 셀 유닛이 연결되는 비트 라인의 전압을 0V로부터 Vdd로 상승시킴으로써 이 비트에 대해서 프로그래밍이 중단 또는 금지된다. 동일한 페이지 상에서 병렬로 프로그램되는 셀들 중 다른 셀들의 프로그래밍은 이들 셀이 차례로 자신들의 검증 레벨들에 도달할 때까지 계속된다. 임계 전압이 셀의 최종 프로그래밍 펄스동안 검증 레벨 보다 아래에서 이보다 위의 레벨로 이동할 때, 임계 전압의 시프트는 0.2V의 Vpgm 스텝 크기와 동일하게 된다. 그러므로, 임계 전압들은 0.2V 폭 내에서 제어된다.
도8B 및 8C는 상술된 유형의 어레이에서 4상 NAND 메모리 셀을 프로그램하는 특정 기존 기술을 도시한다. 제1 프로그래밍 패스에서, 셀의 임계 레벨은 하부 논리적 페이지로부터의 비트에 따라서 설정된다. 이 비트가 "1"이면, 조기 소거됨에 따라서 이 상태에 있기 때문에 아무것도 행해지지 않는다. 그러나, 비트가 "0"이면, 셀의 레벨은 검증 전압으로서 VVA를 이용하여 A 프로그램된 상태로 증가되어 부가적인 프로그래밍을 금지한다. 이는 제1 프로그래밍 패스를 결론짓는다.
제2 프로그래밍 패스에서, 셀의 임계 레벨은 상부 논리적 페이지로부터 셀에 저장되는 비트에 따라서 설정된다. "1"이면, 하부 페이지 비트의 프로그래밍에 따라서 상태들(33 또는 34) 중 하나에 셀이 있기 때문에 프로그래밍이 발생되지 않는데, 이 상태들 둘 다는 "1"의 상부 페이지 비트를 반송한다. 그러나, 상부 페이지 비트가 "0"이면, 셀은 제2 시간에서 프로그램된다. 제1 패스가 소거된 또는 E 상태(33)로 유지되는 셀이되면, 이 셀은 도8C에서 상부 화살표로 도시된 바와 같이 이 상태로부터 최고 임계 상태(36)(상태 C)까지 프로그램되고 Vvc는 부가적인 프로그램을 금지하기 위한 검증 조건으로서 사용된다. 셀이 상태(34)(상태 A)로 프로그램되면, 제1 프로그래밍 패스에 따라서, 이 셀은 도8C에서 하부 화살표로 도시된 바와 같이 검증 조건으로서 VVB를 이용하여 상태로부터 상태(35)(상태 B)까지 제2 패스로 부가 프로그램된다. 제2 패스의 결과는 제1 패스 프로그래밍 동안 기록된 논리적 값을 변경시킴이 없이 상부 페이지로부터 "0"을 저장하도록 지정된 상태로 셀을 프로그램하기 위한 것이다. 이 제2 프로그래밍 사이클 동안, 셀의 임계 분포는 상태 E 또는 A로 유지될 수 있거나 상태 B 또는 C로 시프트된다. 동일한 프로그래밍 사이클 동안 동시에 상이한 셀들에서 발생하는 2개의 서로 다른 타겟 임계 상태들이 존재하기 때문에, 2개의 상이한 검증 레벨들(VVB 및 VCC)은 각 프로그래밍 펄스 후 검사되어야 한다. 일부 시스템들에서 VCC는 총 프로그램 사이클을 속도 상승시키기 위하여 나중 전압 펄스들 동안에만 검사될 수 있다.
물론, 메모리가 4개 이상의 상태들로 동작되면, 상태들의 수와 동일한 메모리 셀들의 규정된 전압 임계 윈도우 내에서 다수의 분포들이 존재할 것이다. 게다가, 특정 비트 패턴들이 분포들 각각에 할당되지만, 서로 다른 비트 패턴들이 또한 할당되는데, 이 경우에, 프로그래밍이 발생되는 상태들은 도8B 및 8C에 도시된 상태들과 다르다. 몇개의 이와 같은 변화들이 NAND 시스템들에 대한 배경에서 이미 참조된 특허들에 논의되어 있다. 게다가, NAND에서 인접 셀 결합 결과들을 감소시키는 기술 및 다상으로 동작되는 메모리 어레이들의 다른 유형들이 미국 특허 6,522,580에 서술되어 있는데, 이들은 본원에 전반적으로 참조되어 있다.
분포들(33-36)중 인접한 분포들 간의 거의 중도에 위치되는 전압들(VRA, VRB, 및 VRC)는 메모리 셀 어레이로부터 데이터를 판독하도록 사용된다. 판독되는 각 셀의 임계 전압 상태와 비교되는 임계 전압들이 존재한다. 이는 기준 전류들 또는 전압들 각각을 지닌 셀로부터 측정되는 전류 또는 전압을 비교함으로써 성취된다. 이들 판독 전압들 및 프로그램된 임계 전압 분포들 간에 마진들이 존재함으로, 이 분포들은 판독 전압들(VRA, VRB, 및 VRC)중 임의의 전압과 중첩하지 않는한 상술된 바와 같은 외란들로부터 분포들의 일부 확산을 허용한다. 그러나, 저장 상태 분포들의 수가 증가함에 따라서, 이 마진은 감소되고 나서 프로그래밍은 이와 같은 확산을 방지하기 위하여 더욱 정밀하게 실행되는 것이 바람직하다.
이전 설명은 2개의 논리적 페이지들이 하나의 물리적 페이지에 존재하고 둘 다가 아니라 하부 논리적 페이지 또는 상부 논리적 페이지만이 소정 프로그래밍 사이클 동안 프로그램 된다라고 가정하자. 본원에 참조된 "Method and System for Programming and Inhibiting Multi-Level Non-Volatile Memory Cells"이라는 명칭의 미국 특허 출원 공개 US 2003/0112663은 하나의 프로그래밍 동작 동안 페이지의 물리적 상태들 모두를 프로그래밍하는 것을 설명한다. 도8에 도시된 바와 같은 셀 당 4개의 상태들의 경우에, 프로그램 상태들 (A, B 또는 C) 중 임의의 상태로 프로그램될 모든 셀들은 우선 상술된 바와 같이 상태 A로 프로그램된다. 이들 상태들 중 임의의 상태로 프로그램될 모든셀들이 상태 A에 도달되었다라고 검증된 후 그리고 상부 상태들 (B 및 C)에 대한 데이터가 이미 도7의 데이터 래치들(DS1 및 DS2)에 존재하기 때문에, 프로그래밍 사이클은 새로운 데이터의 차단 또는 재로딩함이 없이 계속될 수 있고, 상태들 B 및 C로 프로그램되어야 하는 셀들은 상태(B)로 계속 프로그래밍될 수 있다. 모든 셀들이 이 레벨에 도달하면, C에 필요로 되는 이들 셀들만이 이 상태로 계속된다. 이 특허 출원에 설명된 바와 같이, 일부 비트들("고 속 비트들")이 다른 비트들("저속 비트들")보다 고속으로 프로그램되로 실제로 워드라인 전압의 일부 감소는 프로그래밍으로부터 상태 A로부터 상태 B로 그리고 유사하게 상태B로부터 상태 C로 천이될 때 바람직하다는 것이 관찰된다. 프로그래밍 전압에서 이 감소에 통합되는 전형적인 전압 파형은 도11에 도시된다.
특정 프로그래밍 방식이 도8B-8C를 이용하여 설명되지만, 사용될 수 있는 다른 가능성들이 존재한다. 예를 들어, 미국 특허 6,406,935는 선택된 셀들이 제1 프로그래밍 사이클 동안 상태 E로부터 상태 B로 프로그램되는 프로그래밍 방법을 설명한다. 제2 프로그래밍 사이클 동안, 셀들은 상태 E로부터 상태 A로 프로그램되고 상태 B로부터 상태 C로 프로그램된다. 미국 특허 6,657,891은 제2 프로그래밍 사이클 동안에만 도8C에 도시된 바와 같은 분포로 타이트하게 되는 상태 B의 초기 분포가 더 낮은 임계 한도로 확장하도록 허용되고 심지어 제1 프로그래밍 사이클의 끝에서 최종 상태 A와 중첩하도록 하는 이 방법을 더욱 정교화한 것이다. 게다가, 상태들 E,A,B, 및 C을 표시하도록 채택된 2진 코딩은 도8A 내지 C에 도시된 것과 다르게 선택될 수 있다. 2개의 특허들 6.046,935 및 6,675,891이 본원에 참조되어 있다.
동일한 페이지에서 데이터 부분들의 중첩된 프로그래밍
상술된 바와 같이, 프로그래밍 또는 "물리적 페이지"의 단위는 동시에 프로그램될 수 있는 셀들로 이루어진다. 다상 메모리의 경우에, 각 물리적 페이지는 하나 이상의 논리적 페이지를 저장할 수 있는데, 예시적인 실시예는 상부 논리적 페이지 및 하부 논리적 페이지를 각 물리적 페이지에 저장한다. 종래 기술의 2개의 패스 프로그래밍 공정에서, 소정의 물리적 페이지에 할당되는 하부 페이지 데이터가 프로그래밍 동작을 시작하면, 이 프로세스는 성공적인 프로그래밍 동작을 위하여 완료하도록 실행되어야 한다. 동일한 물리적 페이지에 할당된 상부 페이지 데이터가 메모리 레지스터들에 제공될 수 있지만, 종래 기술은 제1 프로그래밍 패스가 차단되도록 하지 않고 나중에 물리적 페이지에 대한 모든 데이터 내용을 포함하도록 재시작된다. 따라서, 소정 물리적 페이지로 프로그램되어야 하는 모든 데이터가 메모리상에 제공될 수 있지만, 프로그래밍 공정은 전체 프로그래밍 시퀀스로 천이될 수 없고 상부 페이지 데이터는 하부 페이지가 제1 패스의 프로그래밍 공정을 완료할 때까지 대기하여야 한다.
종래 기술에서, 이 프로그래밍은 본원에 참조된 미국 특허 5,890,192 및 6,246,893에 더욱 상세하게 서술된 바와 같은 하나 이상의 메모리 칩들에 걸쳐서 분포된 플레인들(또는 쿼드들)로 공지된 다수의 반자동 메모리 어레이들에서 동시에 수행될 수 있다는 것이 공지되었다. 메모리는 2진 또는 다상중 어느 하나일 수 있다. 이 경우에, 물리적 페이지는 여러 플레인들로 이루어지고 프로그래밍 동작은 이들 플레인들 각각으로 섹터(또는 다른 데이터 량)를 동시에 프로그램할 것이다. 일부이지만 전부가 아닌 데이터가 메모리로 전달되면, 전체 페이지를 프로그램하기 위하여 메모리는 페이지의 나머지를 위한 데이터를 대기하여야 한다. 대안적으로, 메모리는 데이터를 프로그램할 수 있는데, 이는 부분적인 페이지 프로그래밍 동작을 가지며, 여기서 손실 부분은 데이터가 모두 소거된 상태인 경우처럼 프로그램되거나 처리되지 않는다. 부분적인 페이지 프로그래밍 동안 페이지에 속하는 부가적 인 데이터가 도달하면, 종래 기술은 프로그래밍 동작이 차단되도록 하지 않고 부가적인 데이터를 통합하여 재시작하지 않는다.
이들 경우들 둘 다는 프로그래밍 동작이 물리적 페이지가 포함될 수 있는 전체 데이터 량보다 작게 시작된다는 점에서 유사하다. 이 상황은 수평 방향(플레인들로) 또는 수직 방향(상부 및 하부 페이지들) 중 하나로 물리적 페이지를 서브분할하는 것으로서 개념화될 수 있다. 데이터가 모든 서브분할보다 작게 제공될 때, 이용가능한 데이터를 토대로 한 부분적인 프로그래밍이 시작될 수 있지만, 물리적 페이지가 프로그래밍 단위를 형성할 때, 차단 및 재시작 프로그래밍을 제공함이 없이, 부가적인 데이터는 부가적인 다음 프로그래밍 동작을 이용하는 것을 제외하면 통합될 수 없다. 본 발명은 주요 양상은 이 성능을 제공하는 것이다.
상부 페이지/하부 페이지 배열에서, 이는 상부 및 하부 다상 메모리 페이지들의 중첩된 프로그래밍으로 된다. 다중-플레인의 경우에, 이는 파이프라인식 부분적인 페이지 프로그래밍이 된다. 이들 2가지 서브-양상들의 예시적인 실시예들에서, 프로그래밍 공정은 도9에 도시된 바와 같은 계단 프로그래밍 파형을 이용한다. 물리적 페이지에 대응하는 부가적인 데이터가 페이지의 이용가능한 내용보다 작게 프로그래밍(가령 하부 페이지 또는 부분적인 페이지 프로그래밍) 동작을 겪을때, 검증될 셀들의 데이터 컨텐트 및 프로그래밍 동작은 부가적인 데이터를 통합하여 리셋되고 재시작된다.
상부 및 하부
MLC
페이지들의 중첩된 프로그래밍
배경에서 설명된 바와 같이, MLC 플래시 메모리의 물리적 페이지가 하부 페이지 데이터로 프로그램되고 있을때, 사용자(제어기)는 실제로, 하부 및 상부 페이지 데이터가 궁극적으로 동일한 물리적 페이지 내로 프로그램될 때 상부 페이지 데이터를 프로그램하기 시작할 수 있도록 하기 위해서는 프로그래밍이 종료될 때까지 대기해야 한다. 이것은 예시적인 4-상태 셀 실시예에 대해 도10A에 도시되어 있다.
도10A에서, 제1 로우(호스트 전달들)는 호스트로부터 제어기(20)로의 데이터의 전달을 도시하고, 제2 로우(플래시 전달)은 제어기로부터 데이터 저장부(16) 내로의 이 데이터의 그 다음 전달을 도시한다. 하부 페이지로서 프로그램될 데이터의 각 섹터(또는 다른 전달 단위)가 우선 제어기 내로 전달되고 나서, 메모리 상으로 전달된다. 일단 전체 하부 페이지가 전달되면, 하부 페이지 프로그래밍이 시작되고, 여기서 도10A의 제3 라인은 어느 데이터가 프로그램되고 있는지를 나타낸다. 하부 페이지의 제1 프로그래밍 패스(programming pass)가 상태 E로부터 상태 A까지만 프로그램하기 때문에, 이 천이만이 활성으로 도시된다(1E→A 라인). E→A 프로그래밍은 시간(t1)에서 시작하고 시간(t3)에서 종료된다.
하부 페이지 데이터가 제어기로부터 메모리로 전달된 후 상부 페이지 데이터가 제어기로 전달되고 나서 플래시 메모리 상으로 전달된다. 상기 전달은 하부 페이지의 프로그래밍 동안 발생되고 시간(t2)에서 완료된다. 상부 페이지 데이터가 시간(t2)에 칩 상에 있을지라도, 종래 기술이 하부 페이지 프로그래밍이 완료 전에 종료되고 나중에 재개되는 것을 허용하지 않기 때문에, 상부 페이지 데이터는 하부 페이지 프로그래밍이 완료되는 시간(t3)까지 프로그램될 수 없다. 시간(t3)에서 시 작하면, 상부 페이지 데이터는 도10A에 도시된 바와 같이 프로그램되고, A→B 및 E→C 천이가 활성이 된다. 전체 프로세서는 t4에서 종료된다.
본 발명의 제1 양상을 따르면, 일단 상부 페이지 데이터가 메모리 상에 존재하면, 하부 데이터 프로그래밍이 시간(t2)에서 차단된다. 그 다음에, 동시에 하부 및 상부 페이지 둘 다를 프로그램하는 프로세스가 재개된다. 이는 하부 페이지 데이터에만 전용되는 시간(t2) 및 시간(t3) 간의 프로그래밍 시간을 제거하고, 본질적으로 이 량만큼의 프로그래밍 시간을 감소시킨다.
도10B는 도10A의 프로세스에 대한 부가적인 세부사항을 도시한다. 제1 라인(Cache Busy)는 데이터를 전달하는 인에이블 신호에 대응한다. 이것이 로우인 후에 하이로 진행할 때, 이는 프로그래밍이 실제로 완성된다는 것이 아니라, 다음 데이터를 유지할 데이터 레지스터가 존재한다는 것을 나타낸다. 제2 라인(True Busy)은 칩 내측에서 실제로 발생하고 있는 것에 대응한다. 캐쉬 비지 신호는 로우로 진행하기 전 데이터의 하부 페이지를 로딩하기 위하여 하이가 되고 나서, 상부 페이지를 로딩하기 위하여 다시 하이가 된다. 이 신호는 그 다음 데이터가 로딩될 때까지 로우로 유지된다. 일단 하부 페이지가 로딩되면, 프로그래밍이 인에이블되고 하부 페이지가 프로그램된다. 데이터가 최하부 비-소거 상태로만 프로그램되고 있기 때문에, A 상태만이 검증될 필요가 있다. 일단 A 상태로 프로그램된 모든 셀이 검증되면(또는 펄스의 최대 수에 도달하면), 상부 페이지의 프로그램이 시작된다. 처음에, 검증은 E→C 천이를 겪는 상태가 자신의 타겟 값에 도달하는데 더 많은 시간이 걸리기 때문에 B 상태에 대해서만 수행된다. 궁극적으로, pvfyB/C에 의해 표시 된 바와 같이, B 및 C 상태들 둘 다를 검사하는 것이 필요로될 것이다. 일단 B 상태에 대한 할당된 수의 펄스들이 종료되면, B 타겟 상태를 갖는 셀들이 록 아웃되고, 자신의 타겟 상태로서 C를 갖는 모든 셀들이 검증되거나 펄스들의 최대 수에 도달할 때까지 C 상태만이 검증된다.
본 발명의 제1 양상에서, 도10A의 t2 및 t3 간의 시간(상부 페이지 데이터가 메모리로 전달되지만, 프로그래밍되고 있지 않은 시간)은 다중-상태 메모리에서 상부 및 하부 페이지들 중첩된 프로그래밍을 허용함으로써 거의 제거된다. 이는 메모리가 임의의 환경들 하에서 자신의 최고 프로그래밍 대역폭에서 프로그램되도록 한다. 따라서, 제어기는 새로운 데이터로 상부 페이지를 프로그램할 준비가 되기 전에 완료될 하부 페이지 프로그래밍을 대기할 필요가 없다. 이 방법을 토대로 한, 가능한 한 빨리 프로그래밍을 시작하는 전략은 특히, 호스트가 작은 클러스터들에서 또는 불-연속적으로 기록하는 경우에, 애플리케이션들에서 다중-상태 메모리의 성능을 상당히 증가시킬 수 있다.
종래 기술의 배열 하에서, 도10A의 제한들은 캐쉬 형태의 명령을 갖는 프로그램을 사용함으로써만 동작하며, 여기서 하부 페이지 데이터는 상부 페이지 데이터가 전달될 때까지 플래시 메모리의 데이터 레이지터에 캐쉬되고 나서, 페이지들 둘 다가 동시에 프로그램된다. 이 해결책은 긴, 연속적인 호스트 기록 동작들을 위한 최대 프로그래밍 대역폭을 유지하지만, 호스트가 적은 클러스터들 내에서 또는 불-연속적으로 기록되는 경우 단점을 제공한다. 호스트가 긴 연속적인 청크들(chunk)로 데이터 섹터들을 기록하고 있지 않고, 이전 것에 연속하는 다음 데이 터 부분의 예상이 잘못된 경우, 부가적인 지연이 발생된다.
본 발명의 이 양상에서, 상기 방법은 상부 페이지 데이터가 이용 가능하기 전 하부페이지의 프로그래밍을 시작함으로써 개시된다. 프로그래밍 동작은 상부 페이지 데이터가 이용 가능할 때, 하부 페이지 프로그래밍이 완료되기 전 중단될 수 있다. 새로운 데이터가 또 다른 물리적 페이지에 기록되면, 제어기는 단지 진행중인 하부 페이지 프로그램 동작의 종료를 대기할 필요가 있다; 그러나, 새로운 데이터가 프로그램되는 현재의 하부 페이지 데이터와 동일한 물리적 페이지에 대응하는 상부 페이지 데이터인 경우에, 프로그램되고 있는 메모리 셀들의 상태가 검증되고 나서, 메모리의 물리적 페이지가 하부 및 상부 페이지 데이터들 둘 다에 의해 병렬로 프로그램될 수 있다. 결과적으로, 제어기는 상부 페이지의 데이터를 대기할 필요가 없는 경우에, 가능한 성능 패널티 없이 가능한한 빨리 하부 페이지 프로그래밍을 시작할 수 있다. 상기 방법은 도11A-11C에 개략적으로 도시되어 있다.
도10A에서와 같이, 도11A의 프로세스는 호스트로부터 제어기로의 하부 페이지 데이터의 전달 및 그 다음에 호스트로부터 메모리로의 전달에 의해 시작되고, 이 시간(t1)에 하부 페이지 데이터의 프로그래밍이 시작된다. 일단 하부페이지 데이터가 전달되면, 상부 페이지 데이터가 메모리 상에 전달되고, 시간(t2)에서 종료된다. 이 지점까지, 프로세스는 본질적으로 도12에 대해 상술된 것과 동일하다.
일단 제2 세트의 데이터가 수신되면, 이것이 프로그램되는 하부 페이지와 메모리의 동일한 물리적인 셀들에 대응하는 상부 페이지에 대한 것인지 검사될 필요가 있다. 더 일반적으로, 이것은 자신이 현재 프로그램되고 있는 것들과 셀들의 동 일한 세트에 저장된 데이터 상태들의 부가적인 세트에 대응한다는 것을 확인하기 위해 검사된다; 예를 들어, 3개의 페이지들이 물리적 페이지 상에 저장되면, 이것은 프로그래밍을 진행하는 하부 페이지에 대응하는 중간 페이지일 수 있다. 새로운 페이지 데이터가 현재 프로그램하는 하부 페이지에 부가되는데 적합하다라고 결정될 때, "전체 시퀀스 프로그래밍"으로의 변화가 개시된다. 전체 시퀀스 프로그래밍은 2개의 이진 비트들이 동시에 프로그램되고 있다는 것을 의미한다. 이 프로그래밍은 프로그래밍 속도를 증가시키는 반면, 각 비트에 대한 프로그래밍이 종료되어야 하는 때를 결정하기 위하여 각각의 프로그래밍 펄스 후 하나 이상의 부가적인 검증 단계들을 필요로 할 수 있다. 하부 페이지 프로그래밍으로부터 전체 시퀀스 프로그래밍으로의 변화를 개시하는 것은 여러 조건들이 검사되는 것을 필요로 한다. 우선, 하부 페이지 프로그래밍이 실제로 완료되었는지 또는 거의 완료되었는지가 결정되어야 한다. 그러한 경우, 전체 시퀀스 프로그래밍으로의 변화가 발생하지 않을 것이며; 하부 페이지 프로그래밍이 정상적인 방식으로 완료될 것이며, 프로그래밍은 표준 프로그래밍 알고리즘들을 사용하여 상부 페이지 프로그래밍으로 계속될 것이다. 다음으로, 전체 시퀀스 프로그래밍으로의 변화는 현재 프로그램 검증 사이클의 종료 시에만 발생할 것이다. 도9에 도시된 바와 같이 계단식 프로그래밍 전압 파형을 사용하는 실시예의 경우에, 프로그래밍 전압의 새로운 시작 레벨이 시간(t2)에서 리셋될 필요가 있을 수 있다. 상황은 3개의 경우로 그룹화될 수 있다: 첫 번째 경우에, 상부 페이지 데이터를 수신한 후 하부 페이지 데이터 프로그래밍이 종료되었다는 것이 발견되면, 상부 페이지 데이터는 상부 페이지 데이터에 대한 표준 제2 프로그래밍 패스 파형을 사용하여 프로그램된다. 두 번째 경우에, 상부 페이지 데이터가 이미 충분히 존재하고 하부 페이지 파형이 전체 시퀀스 파형에 대한 시작 지점을 초과할만큼 충분히 진행되지 않았다면, 최대 펄스 수 카운터 및 다른 파라미터들이 리셋될 필요가 있을지라도, 파형은 지속적으로 단조롭게 발생할 수 있고 전체 시퀀스 파형으로 천이될 수 있다. 세 번째 경우에, 하부 페이지가 프로그래밍을 종료한 것이 아니라, 프로그래밍 전압 파형이 그 시작하는 전체 시퀀스 값을 초과하는 경우에, 파형은 도11B에 도시된 바와 같이 전체 시퀀스 루틴을 시작하도록 다시 설정될 필요가 있을 것이다. 이것은 부가적인 하부 페이지 프로그래밍으로부터 현재 록 아웃된 임의의 고속 프로그래밍 비트들이 제1의 전체 시퀀스 프로그래밍 전압 펄스 다음의 원하는 다음 임계 상태를 오버슛하지 않도록 하는데 필요로 된다.
도11B는 도11A의 프로세스에 대한 프로그래밍 파형의 예를 도시한다. 도11A는 하부 페이지 데이터의 프로그래밍 동안 어떤 지점에서 파형을 픽업하고, 물리적인 페이지 내의 셀들은 표준 제1 패시 펄스/검증 사이클을 겪는다. 그 다음 검증 판독이 펄스(103) 주위의 어떤 시간에서 발생하도록 이벤트 시간(t2)이 선택된다. 펄스(103)가 하부 페이지의 제1 프로그래밍 패스에 대한 펄스들의 최대 수에 대응하여 발생되어야 하는 경우, 프로세스는 그 후에 상부 페이지의 제2 프로그래밍 패스에 의해 지속될 것이다. 펄스(103)가 하부 페이지의 최대 펄스 수보다 적을때, 프로세스는 다중-상태 프로그래밍 모드의 전체 시퀀스 프로그맹으로 변환된다. A 상태로서 자신들의 최종 타겟 상태를 가지며 정확하게 검증되었던 임의의 셀들은 록 아웃되는 반면, 모든 다른 셀들은 더 많은 프로그래밍을 받게 될 것이다. 이들의 타겟 상태의 오버슛을 피하기 위하여, 예시적인 실시예는 하부 페이지의 최디 값보다 더 낮은 값에서 전체 시퀀스 파형을 시작한다. 도11B에서, 이것은 선행하는 펄스(103)보다 적은 펄스(105)로서 도시되어 있다. 전체 시퀀스프로그래밍으로 변환 시에, 다수의 파형 파라미터들이 변화될 수 있다. 시작하는 Vpgm 값 이외에, 이것은 최대 Vpgm 값, 펄스들의 최대 수, 및 스텝 크기를 포함하며, 여기서 예는 전체 시퀀스 스텝 크기를 동일하거나 더 낮은 페이지 스텝 크기로서 취한다. 이들 파라미터들은 고정되거나, 바람직하게는, 설정 가능할 수 있다.
이벤트 t2가 펄스(101) 전에 발생하면, 하부 페이지 대 전체 시퀀스 변환은 펄스 진폭이 105의 전체 시퀀스 시작 값에 도달하기 전에 발생할 것이다. 이 경우에, 계단은 자신이 이 레벨에 도달할 때까지 일정한 스텝 레벨들만큼 지속적으로 상승할 수 있고, 101 및 105 간의 펄스들은 제거되고 이들의 2개의 펄스들은 근본적으로 합해져서 도9에 도시된 것과 같은 단일 계단을 형성한다. 하부 페이지 대 전체 시퀀스 변환과 관련된 각종 파라미터들이 또한 리셋될 것이다.
도11C는 도11A의 도10B에 대한 등가 실시예이다. 도10B에 도시된 바와 같이, 제1 라인(Cache Busy)은 데이터를 전달하는 인에이블 신호에 대응하며, 상부 페이지를 로딩하는 것보다 선행하는 하부 페이지의 로딩을 나타하며, 여기서 상부 및 하부 페이지들은 동일한 물리적인 페이지에 대응한다. Cache Busy 신호는 로우로 진행하기 전 데이터의 하부 페이지를 로딩하기 위해 하이가 되고 나서, 상부 페이지를 로딩하기 위해 다시 하이가 된다. 그 후, 상기 신호는 그 다음 데이터, 여기 서는 다음 워드 라인 상의 하부 페이지 데이터가 로딩될 때까지 로우로 유지된다. 일단 하부 페이지가 로딩되면, 프로그래밍이 인에이블되고 하부 페이지가 프로그램되고, 여기서 제2 라인(True Busy)은 인에이블되는 프로그래밍에 대응한다.
하부 페이지만이 프로그램되고 있는 동안, pvfyA에 의해 표시된 바와 같이, A 상태만이 검증될 필요가 있다. 일단 상부 페이지 데이터가 로딩되면, pvfyA/B에의해 표시된 바와 같이, B 상태가 또한 검증된다. 펄스들의 수가 A 상태에 대해 할당된 후, 프로그래밍은 자신들의 타겟 상태로서 검증되지 않은 A 상태를 갖는 임의의 셀들에 대해 중단될 수 있고, 이들은 에러 수정 방법들에 의해 처리될 수 있다. A 상태의 검증이 중단된 후에, pvfyB/C에 의해 표시된 바와 같이, C 상태의 검증이 B 상태의 검증에 부가된다. 일단 B 상태에 대한 할당된 수의 펄스들이 사용되면, pvfyC에 의해 표시된 바와 같이 C 상태만이 지속적으로 검증된다. 라인(41)은 모든 셀들이 상태 B에서 검증되고 상태 C의 프로그래밍만이 남아 있을 때, 상태 C에 대해 프로그래밍이 지속되는 동안, 다음 페이지에 대한 새로운 데이터가 수신 및 발생될 수 있다는 것을 나타낸다. 이는 프로그래밍 시간을 더욱 개선시키기 위한 본 발명의 또 다른 실시예이다. 도8A에서 상술된 상태 코딩을 가정하면, 상태 B는 "00"으로 표현되고, 상태 C는 "01"로서 표현되며, 프로그램이 지속되고 있다면, 이 셀에 대한 상부 페이지 데이터가 0이라는 것을 인지한다. 따라서, 상부 페이지 버퍼 레지스터를 일시적으로 릴리스하고, 다음 페이지에 대한 하부 페이지 데이터를 이 버퍼 내로 로딩할 수 있다(상기 데이터는 프로그래밍이 새로운 페이지에 대해 시작될 때 하부 페이지 퍼버로 전달될 것이다). 상태 C의 그 다음의 프로그래밍 동 안 프로그램 고장이 존재하고 데이터를 재기록할 필요가 있을지라도, 제어기는 페이지(n)에 대한 새로운 데이터를 메모리에 전달할 필요가 없고; 여전히 하부 페이지데이터를 가지며, VRB 임계값(도10C 참조)을 사용하여 셀의 상태를 단순히 판독함으로써 상부 페이지 데이터를 복구시킬 수 있다. 이 이벤트에서, 에러가 제어기에 보고되고, 하부 페이지(n+1)에 대해 수신된 데이터는 폐기되며, 페이지(n)에 대한 복구된 데이터가 제어기에 의해 지향된 바와 같은 새로운 위치로 기록될 것이다. 상기 참조된 미국 특허 6,046,935 또는 6,657,891에 서술된 바와 같은 대안을 사용하는 것은 하부 페이지 버퍼가 릴리스되도록 하지만, 기본적인 원리는 동일하게 유지된다.
파이프라인식의
부분적인 페이지 프로그래밍
배경에서 서술된 바와 같이, 플래시 또는 다른 메모리 내의 페이지가 부분적으로 프로그램되고 있을 때, 예를 들어, 다중-섹터 또는 다중-플레인 페이지는 단일 데이터 섹터로만 프로그램되고, 사용자(제어기)는 동일한 페이지의 또 다른 부분적인 프로그램을 시작할 수 있도록 하기 위해서는 프로그래밍이 종료될 때까지 대기해야 한다. 이 프로세스가 도12에 도시되어 있다.
제12의 처음 2 라인들은 전달 단위들이 완전한 상부 및 하부 페이지 데이터라기 보다는 페이지의 부분들이라는 점을 제외하면, 도10A와 유사하다. 프로그램, 또는 (프로그래밍) 페이지의 단위는 동시에 프로그램될 수 있는 다수의 이와 같은 전달 단위들로 이루어지도록 선택되는데, 이 예에서 섹터로서 선택된다. 페이지 내 로 결합되는 이들 섹터들 각각은 메모리의 별도의 반-자율적인 어레이, 또는 플레인에 속하는 것으로서 선택된다. 플레인들은 모두 동일한 메모리 칩 상에 존재하며, 다수의 칩들에 걸쳐 분포된다. 복합적인 논리적 구조들을 형성하기 위하여 여러 어레이들의 부분들을 함께 링크하는 프로세스는 둘 다 2003년 12월 30일자로 출원된 미국 특허 출원 일련 번호들 10/750,157 및 10/750,155에 더욱 충분하게 설명되어 있고, 이들 둘 다는 본원에 참조되어 있다. 도12의 예는 메모리 시스템이 4개 까지의 섹터들이 4개의 플레인들 내로 동시에 프로그램될 수 있도록 하는 부분적인 페이지 프로그래밍을 허용하고, 대응하는 섹터들이 여기서 0-3으로 라벨링된다라고 가정한다. 본 발명의 이 양상에서, 메모리 셀들은 이진 또는 다중-레벨 셀들일 수 있다. 다중-레벨 데이터의 경우에, 데이터는 단일의 논리적 페이지에 속하는 다중-상태 데이터로서, 또는 상술된 상부 페이지/하부 페이지 배열과 같은 다중-페이지 포맷으로 인코딩될 수 있다. 최종 경우에, 이 절에 설명된 본 발명의 파이프라인식의 부분적인 페이지 프로그래밍 양상은 이전 절에 설명된 상부 및 하부 페이지들의 중첩된 프로그래밍과 결합될 수 있다.
도12의 최하부의 4개의 라인들은 어느 플레인들이 언제 및 어느 데이터로 프로그램되고 있는지를 나타낸다. 상기 예에서, 호스트 섹터들 0 및 1을 번갈아 전달하고 메모리는 프로그래밍을 시작하기 전에 둘 다를 축적하기 위하여 대기한다. 오게 될 더 많은 데이터의 즉각적인 표시가 존재하지 않거나, 시스템이 더 많은 데이터를 대기하도록 결정하지 않으면, 시간(t1)에서 섹터들 0 및 1의 부분적인 페이지가 플레인들 0 및 1 내로의 프로그래밍을 시작한다. 프로그래밍은 모든 셀들이 검 증되거나 최대 펄스 수에 도달될 때까지 지속된다.
섹터들 0 및 1의 부분적인 페이지가 프로그램되고 있는 동안, 이 페이지에 대응하는 데이터의 나머지가 도착하고, 섹터 2 및 섹터 3 데이터가 시간들(t2 및 t3)에 각각 메모리에 전달된다. 종래 기술이 프로그래밍이 완료되기 전에 프로그래밍을 차단하고 나중에 재개하는 것을 허용하지 않기 때문에, 메모리는 섹터들 0 및 1이 시간(t4)에서 프로그래밍을 종료할 때까지 대기해야 하고, 그 후에 섹터 2 및 3 데이터가 제2의 부분적인 프로그래밍 동작에서 플레인들 2 및 3 내로 프로그램될 수 있다. 섹터들 2 및 3을 프로그래밍하는 동안, 섹터들 4-7이 전달되고, 섹터들 2 및 3의 부분적인 페이지 프로그래밍이 종료되는 시간(t5)에서 시작하여, 전체 페이지로서 함께 프로그램될 수 있다. 이 시퀀스가 단지 상이한 섹터들이 전달되는 시간에 대한 타이밍의 예라는 점에 주의해야 하며; 더 일반적으로는, 이들 고려사항들이 갭이 존재하면 언제나 적용되며, 완전한 페이지를 구성하는 모두보다 적은 섹터들이 우측으로 차례로 나타나고 나서, 부분적인 페이지가 여전히 프로그램되고 있는 동안, 페이지에 속하는 부가적인 섹터들이 도착한다.
섹터 2의 데이터가 시간(t2)에 존재하고 섹터 3에 대한 데이터가 시간(t3)에 존재할지라도, 종래 기술에 따르면, 섹터들 0 및 1의 부분적인 페이지는 페이지의 이러한 부가적인 부분들을 포함시키기 위하여 중간-과정에 차단되고 나서 재개될 수 있는 것이 아니라, 제2의 부분적인 페이지 프로그램보다 선행하여 시간(t4)에 종료되어야 한다. 본 발명의 양상은 메모리가 임의의 상황들 하에서 자신의 최고 프로그래밍 대역폭에서 프로그램될 수 있도록 플래시 메모리에서 메모리 페이지의 파이프라인식의 부분적인 프로그래밍을 허용하는 방법이다. 특정 전략은 이 방법에 기초하여 가능한한 빨리 프로그래밍을 시작하는 것이며, 호스트가 적은 클러스터들에 또는 불연속적으로 기록하는 애플리케이션들에서 시스템 성능을 상당히 증가시킬 수 있다.
종래 기술에서의 이들 문제점들을 처리하기 위하여, 여러 방법들의 존재하는데, 여기서 주요 아이디어는 페이지 프로그래밍을 위해 가능한한 많은 데이터를 수집하는 것이다. 이 경우에, 상이한 섹터들에 대한 데이터는 도12에 도시된 전달들에 대하여, 섹터들 0-3 모두가 전달될 때까지 프로그래밍이 시작되지 않도록, 페이지에 대한 모든 데이터가 전체 페이지 프로그램을 위해 수집될 때까지 제어기 버퍼 또는 메모리 데이터 레지스터에서 캐쉬되거나, 호스트가 연속되지 않은 섹터를 기록하고 데이터가 부분적인 페이지 프로그래밍에 의해 기록되지 않아야 한다. 이들 솔류션들은 긴, 연속적인 호스트 기록 동작에 대해 최대 프로그래밍 대역폭을 유지히만, 호스트가 작은 클러스터들에서 또는 불연속적으로 기록하는 경우에 단점을 제공한다. 호스트가 긴 연속적인 청크들에 데이터 섹터들을 기록하고 이전의 것에 연속되는 다음 데이터 부분의 예상이 틀린 경우, 이것은 부가적인 지연을 발생시킨다. 또한, 이 방법은 제어기가 제어기의 버퍼에서 모든 데이터를 수집하는 경우에, 더 많은 버퍼 공간을 필요로 한다.
제1의 부분적인 페이지 프로그래밍은 어떤 섹터를 비워 두고, 제1 데이터 부분에서 시작한다. 이 제1의 부분적인 페이지 프로그래밍은 다음 호스트 명령이 수신되기 전, 그리고 다음 명령이 연속적인 섹터 기록인지를 인지하지 못할 때 시작 된다. 제1의 부분적인 페이지 프로그래밍 동작은 이 새로운 데이터 부분이 수신되자마자 그 다음 명령이 페이지의 빈 섹터(blank sector)들에 대한 데이터와 관련되는 경우, 완료 전에 중단될 수 있다. 새로운 데이터가 다른 페이지에 대응하는 경우, 제어기는 단지 진행중인 프로그램 동작의 종료를 대기할 필요가 있다. 그 후, 메모리 셀의 상태가 검증되고 나서, 페이지는 원래 데이터 및 새로운 데이터 둘 다에 의해 병렬로 프로그램될 수 있다. 메모리는 프로그램되는 페이지의 모든 섹터/플레인에대한 상태를 표시하여, 제어기가 이미 프로그램된 그러한 섹터들에 대한 데이터를 포함하는 버퍼를 자유롭게 할 수 있도록 한다. 제어기는 다른 플레인들에서의 진행중인 활동들과 관계없이 다음 섹터의 프로그래밍을 시작할 수 있고, 다중-플레인 메모리는 프로그래밍이 다른 플레인들 이전에 완성되는 그러한 플레인들에서 프로그래밍을 시작할 수 있다.
이러한 각종 서브-양상들에 따르면, 제어기는 자신이 나중에 동일한 페이지에 더 많은 데이터를 프로그램하고자 하는 경우에, 가능한 성능 패널티 없이 가능한한 빨리 제1의 부분적인 페이지 프로그래밍 동작을 시작할 수 있다. 이것은 또한 제어기가 제2의 부분적인 데이터 프로그램이 종료되기 전에 제1 부분에 대한 데이터를 포함하는 데이터 버퍼를 자유롭게 하도록 한다. 또한, 메모리 구조가 허용하는 경우, 제어기는 비활성 플레인들에서 또 다른 프로그램 동작을 시작할 수 있다.
파이프라인식의 부분적인 페이지 프로그래밍 동작의 제1 실시예가 도13의 도면에 도시되어 있다. 도11A에 대하여 상술된 프로세스와 유사하게, 이 제1 실시예는 차단되었던 페이지의 그러한 파트들에 대하여, 프로그래밍 사이클이 동일한 지 점에서 재시작될 수 있다라고 가정한다. 이것은 예를 들어, 일정한 펄스 진폭을 갖는 펄싱된 프로그래밍 파형이 사용되는 경우 또는 프로그래밍을 위해 일정한 바이어스가 인가되는 경우일 수 있다. 이것은 또한 각각의 플레인이 자신의 계단을 가지는 도9에 도시된 바와 같은 계단식 프로그래밍 파형에 적용될 수 있다. (플레인들 모두가 동일한 파형을 공유하는 계단식 프로그래밍 파형의 경우는 도14A 및 도14B를 참조하여 이하에 설명된다.)
도13에서 시간(t1) 이전에, 섹터들 0 및 1에 대한 데이터가 제어기에 의해 수신된다. 제어기는 명령의 실행이 성공이었고(기록 캐쉬가 인에이블됨), 다른 명령에 대한 준비가 되어 있다라고 보고한다. 섹터들 0 및 1이 4-플레인 플래시 메모리에 전달된다. 그 후, 부분적인 페이지 프로그래밍이 시작되는데, 여기서 플레인들 0 및 1이 이에 대응하여 섹터 0 및 1 데이터로 프로그램될 것이며, 플레인들 2 및 3이 빈 데이터(FF's)로 프로그램되거나 전혀 프로그램되지 않을 것이다. 본 발명은 FFs가 프로그램되어야 하는 4-섹터 단일 플레인 메모리에 적용된다. 단일 플레인 장치에서도, 프로그래밍 회로는 셀들 중 어느 그룹(예를 들어, 섹터들)이 프로그램되는지에 관한 정보를 제공하여, 이들 셀들의 데이터를 포함하는 버퍼가 릴리스될 수 있도록 한다.
시간(t2)에서, 섹터 2에 대한 데이터가 새로운 명령에 의해 수신된다(다른 예에서와 같이, 이것은 동일한 페이지의 파트로서 섹터들 0 및 1에 이어서 기록될 예정인 임의의 섹터일 수 있음). 제어기는 성공적인 명령 실행을 보고하고, 섹터 2가 플래시 메모리에 전달된다. 물리적 페이지 프로그래밍이 중단되고, 물리적 페이 지의 상태가 검증되어, 나중에 매 셀마다 정확한(예를 들어, 대략적이거나 미세한) 프로그래밍 모드가 선택될 수 있다. 그 후에, 부분적인 페이지 프로그래밍이 재개되는데, 여기서 플레인들 0, 1 및 2는 대응적으로 섹터 0, 1 및 2 데이터로 프로그램될 것이며, 플레인 3은 빈 데이터(FF's)로 프로그램되거나 전혀 프로그램되지 않을 것이다. 개략적인/미세한 프로래밍 모드의 하나의 구현방식이 본원에 참조되어 있는 미국 특허 번호 6,643,188에 서술되어 있다.
시간(t3)에서, 섹터 3에 대한 데이터가 새로운 명령에 의해 수신된다. 제어기는 데이터 버퍼들이 이용 가능하지 않기 때문에, 성공적인 명령 실행을 보고하지 않는다. 섹터 3이 플래시 메모리로 전달된다. 물리적 페이지 프로그래밍은 다시 중단되고, 물리적 페이지의 상태가 검증되어, 나중에 매 셀마다 정확한 프로그래밍 모드가 선택될 수 있다. 그 후에, 전체 페이지 프로그래밍이 시작될 수 있는데, 여기서 플레인들 0, 1, 2 및 3은 이에 대응하여 섹터 0, 1, 2 및 3 데이터로 프로그램될 것이다.
이 실시예에서, 플레인들 0 및 1 내로의 섹터 데이터 0 및 1의 프로그래밍이 종료되는 시간(t4)에, 제어기는 섹터들 0 및 1에 대한 데이터를 포함하는 버퍼들을 자유롭게 하고, 제어기는 최종 명령의 성공적인 실행을 보고한다. 시간(t4) 후 및 시간(t5) 전에, 섹터들 4 및 5에 대한 데이터가 제어기에 의해 수신되고 4-플레인 플래시 메모리에 전달된다. 메모리가 독립적인 플레인 프로그래밍을 허용하면, 플레인들 0 및 1의 프로그래밍이 시작될 수 있고, 여기서 플레인들 0 및 1은 이에 대응하여 섹터들 4 및 5에 대한 데이터로 프로그램될 것이며, 플레인들 2 및 3은 여 전히 빈 데이터(FF's)로 프로그램되거나 전혀 프로그램되지 않을 것이다. 메모리 플레인들이 독립적으로 프로그램될 수 없다면, 물리적 페이지 프로그래밍이 중단될 수 있고, 물리적 페이지의 상태가 검증되어, 나중에 매 셀마다 정확한 프로그래밍 모드가 선택될 수 있고, 모든 플레인들에 대한 프로그래밍이 섹터들 2, 3, 4 및 5로 시작된다.
시간(t6) 전에, 플레인 2의 프로그래밍이 종료되고, 제어기는 섹터 2에 대한 데이터를 포함하는 버퍼를 자유롭게 하고 최종 명령에 대한 성공적인 실행을 보고한다. 섹터 6에 대한 데이터가 그 후에 제어기에 의해 수신된다. 제어기는 데이터 버퍼들이 이용 가능하지 않기 때문에 성공적인 명령 실행을 보고하지 않는다. 섹터 6이 플래시 메모리로 전달된다. 메모리가 독립적인 플레인 프로그래밍을 허용하면, 플레인 2 프로그래밍이 섹터 6 데이터로 시작되고, 플레인들 0, 1 및 3이 섹터들 4, 5 및 3 데이터로 각각 프로그래밍을 재시작할 것이다. 메모리 플레인들이 독립적으로 프로그램될 수 없다면, 물리적 페이지 프로그래밍은 중단되어야 하며, 물리적 페이지의 상태가 검증되어, 나중에 매 셀마다 정확한 프로그래밍 모드가 선택될 수 있고, 모든 플레인들에 대한 프로그래밍이 섹터들 3, 4, 5 및 6에 대한 데이터로 시작된다.
시간(t7)에서, 플레인 3의 프로그래밍이 종료되고 제어기는 섹터 3에 대한 데이터로 버퍼를 자유롭게 할 수 있다. 섹터들 4, 5 및 6의 프로그래밍이 아직 시작되지 않았다면, 부분적인 페이지 프로그래밍이 시작될 수 있는데, 여기서 플레인들 0, 1 및 2는 이에 대응하여 섹터 4, 5 및 6 데이터로 프로그램될 것이며, 플레 인 3은 빈 데이터(FF's)로 프로그램되거나 전혀 프로그램되지 않을 것이다. 시간(t8)에서, 섹터(7) 데이터가 새로운 명령에 의해 수신된다. 제어기는 데이터 버퍼드링 이용 가능하지 않기 때문에 성공적인 명령 실행을 보고하지 않는다. 섹터 7이 플래시 메모리로 전달된다. 물리적 페이지 프로그래밍이 중단되고, 이의 상태가 검증되어, 나중에 매 셀마다 정확한 프로그래밍 모드가 선택될 수 있다. 전체 프로그래밍이 시작되고, 여기서 플레인들 0, 1, 2 및 3은 이에 대응하여 섹터 4, 5, 6 및 7 데이터로 프로그램될 것이다.
도14A 및 14B는 파이프라인식이 부분적인 페이지 프로그래밍에 대한 제2 실시예를 도시한다. 이 실시예는 프로그래밍이 추가된 페이지의 부가적인 부분에 대한 데이터로 재개될 때 프로그래밍 프로세스가 리셋될 필요가 있는 경우를 커버한다는 점에서 도13과 상이하다. 이것은 물리적 페이지 내의 모든 플레인들이 동일한 프로그래밍 값(Vpgm)을 공유하고, 프로그래밍 파형이 도9에서와 같이 계단식인 구조에서 발생한다. 이 배열에서, 일단 플레인들 중 어느 하나에서 워드 라인 프로그래밍 사이클이 시작되면, 상기 사이클은 불완전하게 종료될 수 있지만, 부가적인 데이터가 물리적 페이지의 또 다른 플레인에 추가되면, Vpgm은 새로운 데이터에 대해 리셋될 필요가 있을 것이다. 결과적으로, 이것은 동일한 전하 펌프가 전체 워드 라인에 공급될 때 물리적인 페이지의 나머지에서 또한 리셋될 것이다. 이 배열에서, 프로그래밍 섹터 1은 반드시 도13에 도시된 바와 같이, 섹터 2에 앞서 종료되지는 않을 것이다. 도14A 및 14B의 실시예에서, 프로그래밍이 차단될 때, Vpgm은 리셋되 고 데이터 레지스터들은 불완전하게 프로그램된 셀들의 상태를 판독함으로써 리셋된다. 많은 이러한 세부사항들에서, 도14A 및 14B의 실시예는 도11A-11C의 실시예가 도10의 실시예와 관련되는 것과 거의 동일한 방식으로 도13의 실시예와 관련된다.
시간(t2)까지, 도14A의 프로세스는 도13A와 동일하다. 일단 섹터 2 데이터가 전달되면, 펄스/검증 프로세스의 현재 사이클이 종료되고, 셀들의 상태가 검증되며, 프로그래밍 파형이 리셋된다. 리셋에 의해 시간(t2)에서의 Vpgm 파형은 시간(t1)에서 시작된 것과 동일한 레벨로서 시작된다. 펄스들의 최대 수와 같은, 프로세스와 관련된 임의의 적절한 파라미터들이 또한 리셋된다. 결과적으로, 섹터 3에 대한 데이터가 충분히 빨리 도달하지 않는다면, 섹터들 0 및 1의 프로그래밍은 이제 t7보다 더 빠른 어떤 시간에 섹터 2의 프로그래밍과 함께 종료될 것이다.
그러나, 상기 예에서, 섹터 3 데이터가 시간(t3)에 도착하고 전달된다. 플레인들 0-2의 부분적인 페이지의 프로그래밍이 차단되고, 프로그래밍 프로세스는 시간(t2)에서 다시 리셋되며, 프로그래밍은 전체 페이지로 재개된다. 리셋으로 인하여, 전체 페이지는 시간(t7)에 종료된다. 이는 각 섹터의 프로그래밍이 데이터가 이용 가능한 즉시, 파이프라인식의 부분적인 페이지 프로세스에서 시작되도록 한다. 섹터들 2 및 3 둘 다는 프로그래밍을 시작하기 위하여 시간(t4)까지 대기하기보다는, t2 및 t3에서 각각 시작될 수 있다.
섹터들 0-3이 프로그램되고 있는 동안, 섹터들 4 및 5는 시간(t5)에 전달되 고, 섹터 6은 시간(t6)에 전달된다. 일단 제1 페이지가 시간(t7)에서 종료되면, 제1 페이지와 동일한 프로세스 다음에, 각각의 섹터 데이터 4-6에 의한 플레인들 0-2의 부분적인 페이지 프로그래밍이 시작된다. 이것은 섹터들 0-3이 프로그래밍을 종료하기 전에 버퍼 공간이 이용 가능하도록 한다. 그렇지 않으면, 이 제1 페이지의 프로그램이 종료되는 즉시, 섹터들 4-6이 이벤트 시간(t4) 다음에 전달된다. 일단 이 섹터들이 메모리 상에 존재하면, 섹터들 4-6의 플레인들 0-2 내로의 프로그래밍이 시작된다. 섹터 7 데이터가 도착할 때, 플레인들 0-2의 부분적인 페이지 프로그래밍이 차단되고, 프로세스는 리셋되며, 전체 페이지 프로그래밍이 이벤트 시간(t8)에 재개된다.
도14B는 시간(t1)에서 시간(t5) 주위의 어떤 시간까지의 도14A의 프로세스에 대한 예시적인 파형이다. Vpgm 파형은 도9의 파형과 같이 시작되며, 섹터들 0 및 1의 부분적인(논리적) 페이지가 플레인들 0 및 1의 부분적인(논리적) 페이지 내로 프로그램되도록 하는데 사용된다. 섹터 2에 대한 부가적인 데이터는 펄스(201)와 관련된 펄스/검증 사이클에서의 어떤 시간에 나타난다. 프로그래밍은 차단되고, 셀들의 상태가 결정되며, 프로그래밍은 섹터들 0-2에 대해 리셋되고 재시작된다. 유사하게, 페이지에 대한 나머지 데이터가 펄스(205)와 관련된 펄스/검증 사이클에서의 어떤 시간에 나타날 때, 부분적인 페이지 프로그래밍이 차단되고 이제 표준인 전체 페이지 프로그래밍 프로세스에서, 전체 페이지, 등으로 207에서 재시작된다.
파이프라인식의 부분적인 페이지 프로그래밍 및 상부와 하부 MLC 페이지들에 대한(즉, 동일한 페이지 내의 데이터 부분들의 중첩된 프로그래밍의 "수평" 및 "수직" 구현방식들 둘 다에 대한) 상기 실시예들 모두에서, "현재 프로그래밍 동작들", 또는 더 간략하게, "동시적인 프로그래밍"의 사용이 반드시 페이지 내의 모든 데이터에 대한 모든 프로그래밍 펄스들이 절대적으로 동일하다는 것을 의미하지는 않는다는 점에 주목해야 한다. 이것은 또한 페이지가 다수의 플레인들("메타-페이지") 걸친 경우에도 적용된다. 예를 들어, 메타-페이지가 다수의 칩에 걸치는 경우에, 제2 칩에서의 동일한 프로그래밍 동작에 대한 프로그래밍 펄스들에 앞서 제1 칩들에서의 프로그래밍 동작의 프로그래밍 펄스들이 먼저 시작될 수 있다. 이와 같은 넓은-메타-페이지들은 편의상 일부 다중-칩 병렬 구조들에서 사용된다. 이들이 장점들을 제공할 수 있는 영역들 중에는: 어드레스 변환; 메타-페이지의 프로그래밍 파트들이 동시적인 것이 아니라, 다수의 프로그램들을 위해 충분한 데이터가 수집되면 프로그램 펄스들이 더 짧은 시간에 번갈아서 시작될 수 있는 경우, 오버헤드를 감소시키는 점(극단적인 경우에, 데이터들이 메모리 칩 내측에서 비트단위로 프로그램될 수 있다); 및/또는 전력 소모를 감소시키는 점이 있다.
유전체 저장 소자들의 대안적인 용도
플래시 EEPROM 메모리 셀들을 상기 예들은 전하 저장 소자들로서 도전성 플로우팅 게이트들을 사용하는 셀의 유형에 대해 설명되었다. 그러나, 본 발명의 다양한 양상들은 본원에 참조되어 있는 2004년 5월 7일자로 출원된 미국 특허 출원 번호 10/841,379에서 설명된 각종 메모리 기술들과 함께 사용될 수 있다. 예를 들어, 본 발명은 또한 플로우팅 게이트들 대신에 개별적인 메모리 셀들 내의 저장 소 자들로서 전하 트랩핑 유전체를 사용하는 시스템에서 구현될 수 있다. 유전체 저장 소자는 셀의 채널 영역 내에서 기판 및 도전성 제어 게이트 간에 샌드위치된다. 유전체가 플로우팅 게이트들과 동일한 크기들 및 위치들을 갖는 개별적인 소자들로부터 분리될 수 있을지라도, 전하가 이와 같은 유전체에 의해 국소적으로 트랩되기 때문에, 통상적으로 그렇게 할 필요는 없다. 전하 트랩핑 유전체는 선택 트랜지스터들, 등에 의해 점유되는 에어리어들 이외의 전체 어레이에 걸쳐 확장될 수 있다.
유전체 저장 소자 메모리 셀들은 일반적으로 본원에 전체적으로 참조되어 있는 다음의 기술적인 논문 및 특허들에서 설명되어 있다: Chan 등의 "A True Single-Transistor Oxide-Nitride-Oxide EEPROM" IEEE Electron Device Letters, Vol. EDL-8, No.3, March 1987, pp.93-95; Nozaki 등의 "A 1-Mb EEPROM with MONOS Memeory Cell for Semiconductor Disk Application," IEEE Journal of Solid State Circuit, Vol. 26, No.4, April 1991, pp.497-501; Eitan 등의 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell", IEEE Electron Device Latters, Vol.21, No11, November 2000, pp.543-545, 및 미국 특허 번호 5,851,881.
사용하기에 실용적인 2개의 특정 전하 트랩핑 유전체 재료 및 구성이 존재한다. 하나는 기판 상에 최초로 성장된 이산화 실리콘, 그 위에 증착된 질화 실리콘 층 및 질화 실리콘 층위에 성장 및/또는 증착된 산화 실리콘의 따른 층("ONO")을 갖는 3-층 유전체이다. 제2 대안은 게이트 및 반도체 기판 표면 간에 샌드위치된 실리콘 풍부 이산화 실리콘의 단일 층이다. 이 후자의 재료는 전체적으로 본원에 참조되어 있는 다음 2개의 논문에서 설명된다: DiMaria 등의 "Electrically-alterable read-only-memory using Si-rich SIO2 injectors and a floating polycrystailline silicon storage layer." J. Appl, Phys, 52(7), july 1981. pp. 4825-4842; Hori 등에 의한 "A MOSFET with Si-implanted Gate-SiO2 Insulator for Nonvolatile Memory Application," IDEM 92, April 1992, pp.469-472. 유전체 저장 소자들은 또한 본원에 참조되어 있는 2002년10월 25일자로 출원된 미국 특허 출원 일련 번호 US10/280,352에 더 논의되어 있다.
본 발명은 특정 예들 및 변형들에 관하여 설명되었을지라도, 첨부된 청구항들의 전체 범위 내에서 보호되어야 한다는 것이 이해된다.
Claims (37)
- 프로그래밍 동작 데이터가 물리적 페이지로 형성되는 다수의 다상 저장 유닛들로 기록되는 동안 비휘발성 메모리를 프로그램하는 방법에 있어서,물리적 페이지로 할당되는 제1 데이터 컨텐트를 수신하는 단계로서, 상기 제1 물리적 컨텐트는 상기 물리적 페이지의 저장 유닛들에 저장될 수 있는 모든 데이터 컨텐트보다 적게 규정되는, 수신 단계;상기 물리적 페이지로의 상기 제1 데이터 컨텐트의 프로그래밍 동작을 시작하는 단계;상기 제1 데이터 컨텐트를 수신한 다음과 상기 제1 데이터 컨텐트의 상기 프로그래밍 동작을 완료하기 전, 상기 물리적 페이지의 상기 저장 유닛들에 대한 부가적인 데이터 컨텐트를 수신하는 단계;상기 부가적인 데이터 컨텐트를 수신한 다음과 상기 제1 데이터 컨텐트의 프로그래밍 동작을 완료하기 전, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단하는 단계; 및,상기 물리적 페이지로의 상기 제1 데이터 컨텐트와 상기 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하는 단계를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제1항에 있어서, 상기 제1 데이터 컨텐트는 하부 데이터 페이지이고 상기 부 가적인 컨텐트는 상부 데이터 페이지인 비휘발성 메모리를 프로그램하는 방법.
- 제1항에 있어서, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단하기 전, 상기 부가적인 데이터 컨텐트가 상기 제1 데이터 컨텐트와 동일한 물리적 페이지에 할당된다라고 결정하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제1항에 있어서, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단한 다음 그리고 상기 제1 데이터 컨텐트 및 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하기 전, 상기 물리적 페이지의 저장 유닛들의 상태를 검증하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제4항에 있어서, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단한 다음 과 상기 제1 데이터 컨텐트 및 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하기 전, 하나 이상의 프로그래밍 파라미터들을 리셋하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제5항에 있어서, 상기 프로그래밍 동작은 증가하는 크기의 일련의 펄스들을 포함하는 프로그래밍 파형을 이용하는 비휘발성 메모리를 프로그램하는 방법.
- 제6항에 있어서, 상기 하나 이상의 프로그래밍 파라미터들은 프로그래밍 파 형의 진폭을 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제6항에 있어서, 상기 하나 이상의 프로그래밍 파라미터들은 최대 펄스들의 수를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제6항에 있어서, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단한 다음 그리고 상기 제1 데이터 컨텐트 및 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하기 전, 상기 물리적 페이지의 저장 유닛들의 상태를 검증하는 단계를 더 포함하는데, 상기 프로그래밍 파라미터들은 상기 저장 유닛들의 상태를 토대로 설정되는 비휘발성 메모리를 프로그램하는 방법.
- 제1항에 있어서, 상기 물리적 페이지로의 상기 제1 데이터 컨텐트의 상기 프로그래밍 동작은 상기 물리적 페이지의 비규정된 데이터 컨텐트에 대한 기록 블랭크 데이터를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제1항에 있어서, 상기 제1 데이터 컨텐트를 수신한 다음 그리고 상기 물리적 페이지로의 상기 제1 데이터 컨텐트 및 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 완료하기 전, 상기 물리적 페이지의 메모리 외부의 일부에 또 다른 프로그래밍 동작을 시작하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 프로그래밍 동작 데이터가 다수의 다상 저장 유닛들을 갖는 물리적 페이지로로 기록되는 동안 비휘발성 메모리를 프로그램하는 방법에 있어서,물리적 페이지로 할당되는 제1 데이터 컨텐트를 수신하는 단계로서, 상기 제1 물리적 컨텐트는 상기 물리적 페이지를 형성하는 모든 저장 유닛들보다 적게 데이터 컨텐트를 규정하는, 수신 단계;상기 물리적 페이지로의 상기 제1 데이터 컨텐트의 프로그래밍 동작을 시작하는 단계;상기 제1 데이터 컨텐트를 수신하는 단계 다음과 상기 제1 데이터 컨텐트의 상기 프로그래밍 동작을 완료하기 전, 데이터가 제1 데이터 컨텐트에 의해 규정되지 않는 상기 물리적 페이지의 하나 이상의 저장 유닛들에 대한 부가적인 데이터 컨텐트를 수신하는 단계;상기 부가적인 데이터 컨텐트를 수신하는 단계 다음과 상기 제1 데이터 컨텐트의 프로그래밍 동작을 완료하기 단계 전, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단하는 단계; 및,상기 물리적 페이지로의 상기 제1 데이터 컨텐트와 상기 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하는 단계를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제12항에 있어서, 상기 페이지는 다수의 섹터들을 포함하며, 상기 제1 데이터 컨텐트는 하나 이상이지만 전부 보다 적은 페이지의 섹터들을 포함하고 상기 부 가적인 데이터 컨텐트는 상기 페이지의 하나 이상의 섹터들을 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제12항에 있어서, 상기 물리적 페이지는 상기 비휘발성 메모리의 다수의 플레인들에 걸쳐서 분포되는 비휘발성 메모리를 프로그램하는 방법.
- 제12항에 있어서, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단하기 전, 상기 부가적인 데이터 컨텐트가 상기 제1 데이터 컨텐트와 동일한 물리적 페이지로 할당된다라고 결정하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제12항에 있어서, 상기 제1 데이터 컨텐트의 상기 프로그래밍 동작을 차단하한 다음과 상기 제1 데이터 컨텐트의 동시 프로그래밍 동작을 시작하기 전, 상기 물리적 페이지의 저장 유닛들의 상태를 검증하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제16항에 있어서, 상기 물리적 페이지의 저장 유닛들의 상태를 검증한 다음과 상기 제1 데이터 컨텐트와 부가적인 데이터 컨텐트의 동시 프로그래밍을 시작하기 전, 하나 이상의 프로그래밍 파라미터들을 리셋하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제17항에 있어서, 상기 프로그래밍 동작들은 증가하는 크기의 일련의 펄스들을 포함하는 프로그래밍 파형을 이용하는 비휘발성 메모리를 프로그램하는 방법.
- 제18항에 있어서, 상기 하나 이상의 프로그래밍 파라미터들은 프로그래밍 파형의 진폭을 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제18항에 있어서, 상기 하나 이상의 프로그래밍 파라미터들은 최대 펄스들의 수를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제12항에 있어서, 상기 물리적 페이지로의 상기 제1 데이터 컨텐트의 상기 프로그래밍 동작은 상기 데이터가 규정되지 않은 물리적 페이지의 저장 유닛들에 대한 기록 블랭크 데이터를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제12항에 있어서, 상기 제1 데이터 컨텐트를 수신한 다음 그리고 상기 물리적 페이지로의 상기 제1 데이터 컨텐트 및 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 완료하기 전, 상기 물리적 페이지의 메모리 외부의 일부에 또 다른 프로그래밍 동작을 시작하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 프로그래밍 동작 데이터가 다수의 저장 유닛들로 기록되는 동안 비휘발성 메모리를 프로그램하는 방법에 있어서,상기 다수의 저장 유닛들로 할당되는 제1 데이터 컨텐트를 수신하는 단계로서, 상기 제1 데이터 컨텐트는 상기 저장 유닛들이 포함할 수 있는 모든 데이터 컨텐트보다 적게 데이터 컨텐트를 규정하는, 수신 단계;상기 다수의 저장 유닛들로의 상기 제1 데이터 컨테트의 프로그래밍 동작을 시작하는 단계;상기 제1 데이터 컨텐트를 수신한 다음과 상기 제1 데이터 컨텐트의 상기 프로그래밍 동작을 완료하기 전, 상기 다수의 저장 유닛들 만큼 포함될 수 있는 부가적인 데이터 컨텐트를 수신하는 단계;상기 부가적인 데이터 컨텐트를 수신한 다음과 상기 제1 데이터 컨텐트의 프로그래밍 동작을 완료하기 전, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단하는 단계; 및,상기 다수의 저장 유닛들로의 상기 제1 데이터 컨텐트와 상기 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하는 단계를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제23항에 있어서, 상기 다수의 저장 유닛들은 다상 저장 유닛들이고 다수의 논리적 페이지들을 저장하는 물리적 페이지로 형성되고 상기 제1 데이터 컨텐트는 상기 다수의 페이지들 모두보다 적게 데이터 컨텐트를 규정하는 비휘발성 메모리를 프로그램하는 방법.
- 제23항에 있어서, 상기 제1 데이터 컨텐트는 상기 저장 유닛들 모두보다 적게 데이터 컨텐트를 규정하고 상기 부가적인 데이터 컨텐트는 데이터가 상기 제1 데이터 컨텐트에 의해 규정되지 않는 상기 저장 유닛들 중 하나이상의 부가적인 유닛들에 대한 데이터 컨텐트를 규정하는 비휘발성 메모리를 프로그램하는 방법.
- 제23항에 있어서, 상기 제1 데이터 컨텐트의 프로그래밍 동작을 차단한 다음 그리고 상기 제1 데이터 컨텐트 및 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하기 전, 상기 다수의 저장 유닛들을 검증하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제26항에 있어서, 상기 다수의 저장 유닛들의 상태를 검증한 다음 그리고 상기 제1 데이터 컨텐트 및 부가적인 데이터 컨텐트의 동시 프로그래밍 동작을 시작하기 전, 하나 이상의 프로그래밍 파라미터들을 리셋하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제27항에 있어서, 상기 프로그래밍 동작들은 증가하는 크기의 일련의 펄스들을 포함하는 프로그래밍 파형을 이용하는 비휘발성 메모리를 프로그램하는 방법.
- 제28항에 있어서, 상기 하나 이상의 프로그래밍 파라미터들은 프로그래밍 파형의 진폭을 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제28항에 있어서, 상기 하나 이상의 프로그래밍 파라미터들은 최대 펄스들의 수를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제23항에 있어서, 상기 다수의 저장 유닛들로의 상기 제1 데이터 컨텐트의 상기 프로그래밍 동작은 상기 저장 유닛들의 비규정된 데이터 컨텐트에 대한 기록 블랭크 데이터를 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 제23항에 있어서, 상기 제1 데이터 컨텐트를 수신한 다음과, 상기 다수의 저장 유닛에 대한 상기 제1 데이터 컨텐트와 추가 데이터 컨텐트의 동시 프로그래밍 동작을 완료하기 전에, 상기 다수의 저장 유닛을 포함하지 않는 메모리의 일 부분에서 또 다른 프로그래밍 동작을 시작하는 단계를 더 포함하는 비휘발성 메모리를 프로그램하는 방법.
- 데이터가 다수의 데이터 버퍼들로부터 물리적 페이지로 형성되는 다수의 저장 유닛들로 동시에 프로그램될 수 있는 비휘발성 메모리를 동작시키는 방법에 있어서,데이터가 다수의 상기 버퍼들로부터 상기 물리적 페이지로 기록되는 프로그 래밍 동작을 수행하는 단계;상기 다수의 버퍼들중 하나 이상이지만 전부보다 적은 것에 대응하는 저장 유닛들의 데이터 컨텐트가 성공적으로 기록되었다는 것을 검증하는 단계;컨텐트가 성공적으로 기록된 것으로서 검증되는 저장 유닛들에 대응하는 거소가 다른 상기 다수의 버퍼들중의 버퍼들에 대응하는 저장 유닛들에 대한 상기 프로그래밍 동작을 계속하는 단계; 및,상기 프로그래밍 동작을 계속하는 것과 동시에, 컨텐트가 성공적으로 기록된 것으로서 검증되는 저장 유닛들에 대응하는 버퍼들로 새로운 데이터 컨텐트를 수신하는 단계를 포함하는 비휘발성 메모리를 동작시키는 방법.
- 제33항에 있어서, 상기 저장 유닛들은 2진 데이터를 저장하는 비휘발성 메모리를 동작시키는 방법.
- 제33항에 있어서, 상기 저장 유닛들은 다상 데이터를 저장하는 비휘발성 메모리를 동작시키는 방법.
- 제33항에 있어서, 상기 물리적 페이지는 상기 비휘발성 메모리의 다수 플레인들에 걸쳐서 분포되는 비휘발성 메모리를 동작시키는 방법.
- 제33항에 있어서, 상기 버퍼들 각각은 데이터의 하나 이상의 섹터들을 저장 하는 비휘발성 메모리를 동작시키는 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/013,125 US7120051B2 (en) | 2004-12-14 | 2004-12-14 | Pipelined programming of non-volatile memories using early data |
US11/013,125 | 2004-12-14 | ||
PCT/US2005/043020 WO2006065518A1 (en) | 2004-12-14 | 2005-11-28 | Pipelined programming of non-volatile memories using early data |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070101250A KR20070101250A (ko) | 2007-10-16 |
KR101193584B1 true KR101193584B1 (ko) | 2012-10-23 |
Family
ID=36583610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020077013359A KR101193584B1 (ko) | 2004-12-14 | 2005-11-28 | 조기 데이타를 이용한 비휘발성 메모리의 파이프라인식프로그래밍 |
Country Status (10)
Country | Link |
---|---|
US (3) | US7120051B2 (ko) |
EP (1) | EP1829045B1 (ko) |
JP (1) | JP4372196B2 (ko) |
KR (1) | KR101193584B1 (ko) |
CN (1) | CN100543878C (ko) |
AT (1) | ATE475185T1 (ko) |
DE (1) | DE602005022487D1 (ko) |
IL (1) | IL183833A0 (ko) |
TW (1) | TWI413125B (ko) |
WO (1) | WO2006065518A1 (ko) |
Families Citing this family (337)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6687158B2 (en) * | 2001-12-21 | 2004-02-03 | Fujitsu Limited | Gapless programming for a NAND type flash memory |
US7881133B2 (en) * | 2003-11-11 | 2011-02-01 | Samsung Electronics Co., Ltd. | Method of managing a flash memory and the flash memory |
US7490283B2 (en) * | 2004-05-13 | 2009-02-10 | Sandisk Corporation | Pipelined data relocation and improved chip architectures |
US7298648B2 (en) * | 2004-11-19 | 2007-11-20 | Samsung Electronics Co., Ltd. | Page buffer and multi-state nonvolatile memory device including the same |
US7420847B2 (en) * | 2004-12-14 | 2008-09-02 | Sandisk Corporation | Multi-state memory having data recovery after program fail |
US7120051B2 (en) * | 2004-12-14 | 2006-10-10 | Sandisk Corporation | Pipelined programming of non-volatile memories using early data |
US7158421B2 (en) | 2005-04-01 | 2007-01-02 | Sandisk Corporation | Use of data latches in multi-phase programming of non-volatile memories |
US7849381B2 (en) * | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
US7409473B2 (en) * | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
KR100890672B1 (ko) * | 2005-02-03 | 2009-03-26 | 가부시끼가이샤 도시바 | 불휘발성 반도체 기억 장치 및 그 동작 방법 |
US7447078B2 (en) * | 2005-04-01 | 2008-11-04 | Sandisk Corporation | Method for non-volatile memory with background data latch caching during read operations |
US7206230B2 (en) | 2005-04-01 | 2007-04-17 | Sandisk Corporation | Use of data latches in cache operations of non-volatile memories |
US7463521B2 (en) * | 2005-04-01 | 2008-12-09 | Sandisk Corporation | Method for non-volatile memory with managed execution of cached data |
US7339834B2 (en) | 2005-06-03 | 2008-03-04 | Sandisk Corporation | Starting program voltage shift with cycling of non-volatile memory |
KR100713984B1 (ko) * | 2005-09-15 | 2007-05-04 | 주식회사 하이닉스반도체 | 멀티-플레인 구조를 갖는 비휘발성 메모리 장치의 프로그램방법 |
US7301817B2 (en) * | 2005-10-27 | 2007-11-27 | Sandisk Corporation | Method for programming of multi-state non-volatile memory using smart verify |
US7366022B2 (en) * | 2005-10-27 | 2008-04-29 | Sandisk Corporation | Apparatus for programming of multi-state non-volatile memory using smart verify |
KR100948200B1 (ko) | 2005-12-06 | 2010-03-17 | 샌디스크 코포레이션 | 비휘발성 저장 장치에서 판독 장애 저감 |
US7355888B2 (en) * | 2005-12-19 | 2008-04-08 | Sandisk Corporation | Apparatus for programming non-volatile memory with reduced program disturb using modified pass voltages |
US7355889B2 (en) * | 2005-12-19 | 2008-04-08 | Sandisk Corporation | Method for programming non-volatile memory with reduced program disturb using modified pass voltages |
US7365018B2 (en) * | 2005-12-28 | 2008-04-29 | Sandisk Corporation | Fabrication of semiconductor device for flash memory with increased select gate width |
JP4233563B2 (ja) * | 2005-12-28 | 2009-03-04 | パナソニック株式会社 | 多値データを記憶する不揮発性半導体記憶装置 |
ATE494614T1 (de) | 2006-03-03 | 2011-01-15 | Sandisk Corp | Leseoperation für nichtflüchtige speicherung mit floating-gate-kopplungskompensation |
DE602006016065D1 (de) * | 2006-03-10 | 2010-09-23 | St Microelectronics Srl | Verfahren zum Programmieren und Löschen eines nichtflüchtigen Speichers, insbesonders für Flash-Typ Speicher. |
WO2007131127A2 (en) * | 2006-05-05 | 2007-11-15 | Sandisk Corporation | Merging queued memory operation in a non-volatile memory |
WO2007131062A2 (en) | 2006-05-05 | 2007-11-15 | Sandisk Corporation | Non-volatile memory with background data latch caching during read operations and methods therefor |
WO2007132452A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies | Reducing programming error in memory devices |
WO2007132457A2 (en) * | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Combined distortion estimation and error correction coding for memory devices |
WO2007132453A2 (en) | 2006-05-12 | 2007-11-22 | Anobit Technologies Ltd. | Distortion estimation and cancellation in memory devices |
US8239735B2 (en) * | 2006-05-12 | 2012-08-07 | Apple Inc. | Memory Device with adaptive capacity |
WO2008097320A2 (en) * | 2006-06-01 | 2008-08-14 | Virginia Tech Intellectual Properties, Inc. | Premixing injector for gas turbine engines |
US7586784B2 (en) * | 2006-06-09 | 2009-09-08 | Micron Technology, Inc. | Apparatus and methods for programming multilevel-cell NAND memory devices |
US7342831B2 (en) * | 2006-06-16 | 2008-03-11 | Sandisk Corporation | System for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates |
US7391650B2 (en) * | 2006-06-16 | 2008-06-24 | Sandisk Corporation | Method for operating non-volatile memory using temperature compensation of voltages of unselected word lines and select gates |
US7349261B2 (en) * | 2006-06-19 | 2008-03-25 | Sandisk Corporation | Method for increasing programming speed for non-volatile memory by applying counter-transitioning waveforms to word lines |
US7492633B2 (en) * | 2006-06-19 | 2009-02-17 | Sandisk Corporation | System for increasing programming speed for non-volatile memory by applying counter-transitioning waveforms to word lines |
US7486561B2 (en) | 2006-06-22 | 2009-02-03 | Sandisk Corporation | Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages |
US7489549B2 (en) * | 2006-06-22 | 2009-02-10 | Sandisk Corporation | System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages |
US20070297247A1 (en) * | 2006-06-26 | 2007-12-27 | Gerrit Jan Hemink | Method for programming non-volatile memory using variable amplitude programming pulses |
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 |
US7567461B2 (en) * | 2006-08-18 | 2009-07-28 | Micron Technology, Inc. | Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells |
WO2008026203A2 (en) | 2006-08-27 | 2008-03-06 | Anobit Technologies | Estimation of non-linear distortion in memory devices |
US7440326B2 (en) | 2006-09-06 | 2008-10-21 | Sandisk Corporation | Programming non-volatile memory with improved boosting |
US7606966B2 (en) * | 2006-09-08 | 2009-10-20 | Sandisk Corporation | Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory |
US7885112B2 (en) * | 2007-09-07 | 2011-02-08 | Sandisk Corporation | Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages |
US7734861B2 (en) | 2006-09-08 | 2010-06-08 | Sandisk Corporation | Pseudo random and command driven bit compensation for the cycling effects in flash memory |
WO2008031074A1 (en) | 2006-09-08 | 2008-03-13 | Sandisk Corporation | Pseudo random and command driven bit compensation for the cycling effects in flash memory and methods therefor |
DE102007046401B4 (de) | 2006-09-22 | 2023-08-24 | Samsung Electronics Co., Ltd. | Nichtflüchtiges Halbleiterspeichersystem und zugehöriges Verfahren zum Durchführen einer Programmieroperation |
US7977186B2 (en) * | 2006-09-28 | 2011-07-12 | Sandisk Corporation | Providing local boosting control implant for non-volatile memory |
US7705387B2 (en) * | 2006-09-28 | 2010-04-27 | Sandisk Corporation | Non-volatile memory with local boosting control implant |
US7701770B2 (en) * | 2006-09-29 | 2010-04-20 | Hynix Semiconductor Inc. | Flash memory device and program method thereof |
US7450426B2 (en) * | 2006-10-10 | 2008-11-11 | Sandisk Corporation | Systems utilizing variable program voltage increment values in non-volatile memory program operations |
US7474561B2 (en) * | 2006-10-10 | 2009-01-06 | Sandisk Corporation | Variable program voltage increment values in non-volatile memory program operations |
US7616490B2 (en) * | 2006-10-17 | 2009-11-10 | Sandisk Corporation | Programming non-volatile memory with dual voltage select gate structure |
US7691710B2 (en) * | 2006-10-17 | 2010-04-06 | Sandisk Corporation | Fabricating non-volatile memory with dual voltage select gate structure |
US7586157B2 (en) * | 2006-10-17 | 2009-09-08 | Sandisk Corporation | Non-volatile memory with dual voltage select gate structure |
KR100830580B1 (ko) * | 2006-10-20 | 2008-05-21 | 삼성전자주식회사 | 플래시 메모리 장치를 포함한 메모리 시스템의 데이터 복원방법 |
US7975192B2 (en) | 2006-10-30 | 2011-07-05 | Anobit Technologies Ltd. | Reading memory cells using multiple thresholds |
US7596031B2 (en) | 2006-10-30 | 2009-09-29 | Sandisk Corporation | Faster programming of highest multi-level state for non-volatile memory |
WO2008053473A2 (en) | 2006-10-30 | 2008-05-08 | Anobit Technologies Ltd. | Memory cell readout using successive approximation |
US7468911B2 (en) * | 2006-11-02 | 2008-12-23 | Sandisk Corporation | Non-volatile memory using multiple boosting modes for reduced program disturb |
US7440323B2 (en) * | 2006-11-02 | 2008-10-21 | Sandisk Corporation | Reducing program disturb in non-volatile memory using multiple boosting modes |
US7696035B2 (en) * | 2006-11-13 | 2010-04-13 | Sandisk Corporation | Method for fabricating non-volatile memory with boost structures |
US7508710B2 (en) * | 2006-11-13 | 2009-03-24 | Sandisk Corporation | Operating non-volatile memory with boost structures |
US7508703B2 (en) * | 2006-11-13 | 2009-03-24 | Sandisk Corporation | Non-volatile memory with boost structures |
US7924648B2 (en) | 2006-11-28 | 2011-04-12 | Anobit Technologies Ltd. | Memory power and performance management |
WO2008068747A2 (en) * | 2006-12-03 | 2008-06-12 | Anobit Technologies Ltd. | Automatic defect management in memory devices |
EP2126680A2 (en) | 2006-12-06 | 2009-12-02 | Fusion Multisystems, Inc. | Apparatus, system, and method for a front-end, distributed raid |
US7623387B2 (en) * | 2006-12-12 | 2009-11-24 | Sandisk Corporation | Non-volatile storage with early source-side boosting for reducing program disturb |
US7623386B2 (en) * | 2006-12-12 | 2009-11-24 | Sandisk Corporation | Reducing program disturb in non-volatile storage using early source-side boosting |
KR100801035B1 (ko) * | 2006-12-14 | 2008-02-04 | 삼성전자주식회사 | 멀티 레벨 셀의 프로그램 방법, 페이지 버퍼 블록 및 이를포함하는 불휘발성 메모리 장치 |
US7593263B2 (en) * | 2006-12-17 | 2009-09-22 | Anobit Technologies Ltd. | Memory device with reduced reading latency |
US7900102B2 (en) * | 2006-12-17 | 2011-03-01 | Anobit Technologies Ltd. | High-speed programming of memory devices |
US7551482B2 (en) * | 2006-12-27 | 2009-06-23 | Sandisk Corporation | Method for programming with initial programming voltage based on trial |
US7570520B2 (en) * | 2006-12-27 | 2009-08-04 | Sandisk Corporation | Non-volatile storage system with initial programming voltage based on trial |
US7701765B2 (en) * | 2006-12-28 | 2010-04-20 | Micron Technology, Inc. | Non-volatile multilevel memory cell programming |
US7583535B2 (en) * | 2006-12-30 | 2009-09-01 | Sandisk Corporation | Biasing non-volatile storage to compensate for temperature variations |
US7554853B2 (en) * | 2006-12-30 | 2009-06-30 | Sandisk Corporation | Non-volatile storage with bias based on selective word line |
US7468920B2 (en) * | 2006-12-30 | 2008-12-23 | Sandisk Corporation | Applying adaptive body bias to non-volatile storage |
US7525843B2 (en) * | 2006-12-30 | 2009-04-28 | Sandisk Corporation | Non-volatile storage with adaptive body bias |
US7583539B2 (en) * | 2006-12-30 | 2009-09-01 | Sandisk Corporation | Non-volatile storage with bias for temperature compensation |
US7468919B2 (en) * | 2006-12-30 | 2008-12-23 | Sandisk Corporation | Biasing non-volatile storage based on selected word line |
US8151166B2 (en) * | 2007-01-24 | 2012-04-03 | Anobit Technologies Ltd. | Reduction of back pattern dependency effects in memory devices |
US7751240B2 (en) * | 2007-01-24 | 2010-07-06 | Anobit Technologies Ltd. | Memory device with negative thresholds |
US7738295B2 (en) * | 2007-01-31 | 2010-06-15 | Micron Technology, Inc. | Programming a non-volatile memory device |
US7660166B2 (en) * | 2007-01-31 | 2010-02-09 | Sandisk Il Ltd. | Method of improving programming precision in flash memory |
KR100819102B1 (ko) * | 2007-02-06 | 2008-04-03 | 삼성전자주식회사 | 개선된 멀티 페이지 프로그램 동작을 갖는 불휘발성 반도체메모리 장치 |
US20080189473A1 (en) * | 2007-02-07 | 2008-08-07 | Micron Technology, Inc | Mlc selected multi-program for system management |
KR100866957B1 (ko) * | 2007-02-08 | 2008-11-05 | 삼성전자주식회사 | 데이터 프로그램 시간을 단축시킨 불휘발성 메모리 장치 및그 구동방법 |
US20080205140A1 (en) * | 2007-02-26 | 2008-08-28 | Aplus Flash Technology, Inc. | Bit line structure for a multilevel, dual-sided nonvolatile memory cell array |
DE102007011638A1 (de) * | 2007-03-09 | 2008-09-11 | Giesecke & Devrient Gmbh | Verfahren zum Einschreiben von Daten in einen Speicher eines tragbaren Datenträgers |
US8369141B2 (en) * | 2007-03-12 | 2013-02-05 | Apple Inc. | Adaptive estimation of memory cell read thresholds |
US7797480B2 (en) * | 2007-03-29 | 2010-09-14 | Sandisk Corporation | Method for reading non-volatile storage using pre-conditioning waveforms and modified reliability metrics |
US7904793B2 (en) | 2007-03-29 | 2011-03-08 | Sandisk Corporation | Method for decoding data in non-volatile storage using reliability metrics based on multiple reads |
US7539060B2 (en) * | 2007-04-05 | 2009-05-26 | Sandisk Corporation | Non-volatile storage using current sensing with biasing of source and P-Well |
US7606076B2 (en) * | 2007-04-05 | 2009-10-20 | Sandisk Corporation | Sensing in non-volatile storage using pulldown to regulated source voltage to remove system noise |
US8001320B2 (en) | 2007-04-22 | 2011-08-16 | Anobit Technologies Ltd. | Command interface for memory devices |
US7606071B2 (en) * | 2007-04-24 | 2009-10-20 | Sandisk Corporation | Compensating source voltage drop in non-volatile storage |
US7606072B2 (en) * | 2007-04-24 | 2009-10-20 | Sandisk Corporation | Non-volatile storage with compensation for source voltage drop |
US7606079B2 (en) * | 2007-04-25 | 2009-10-20 | Sandisk Corporation | Reducing power consumption during read operations in non-volatile storage |
US7440327B1 (en) | 2007-04-25 | 2008-10-21 | Sandisk Corporation | Non-volatile storage with reduced power consumption during read operations |
US7460404B1 (en) * | 2007-05-07 | 2008-12-02 | Sandisk Corporation | Boosting for non-volatile storage using channel isolation switching |
US7577026B2 (en) * | 2007-05-07 | 2009-08-18 | Sandisk Corporation | Source and drain side early boosting using local self boosting for non-volatile storage |
US7463522B2 (en) * | 2007-05-07 | 2008-12-09 | Sandisk Corporation | Non-volatile storage with boosting using channel isolation switching |
WO2008139441A2 (en) | 2007-05-12 | 2008-11-20 | Anobit Technologies Ltd. | Memory device with internal signal processing unit |
US8234545B2 (en) * | 2007-05-12 | 2012-07-31 | Apple Inc. | Data storage with incremental redundancy |
US7619931B2 (en) * | 2007-06-26 | 2009-11-17 | Micron Technology, Inc. | Program-verify method with different read and verify pass-through voltages |
US7545678B2 (en) * | 2007-06-29 | 2009-06-09 | Sandisk Corporation | Non-volatile storage with source bias all bit line sensing |
US7471567B1 (en) | 2007-06-29 | 2008-12-30 | Sandisk Corporation | Method for source bias all bit line sensing in non-volatile storage |
WO2009006275A1 (en) * | 2007-06-29 | 2009-01-08 | Sandisk Corporation | Non-volatile storage with source bias all bit line sensing |
US7925936B1 (en) | 2007-07-13 | 2011-04-12 | Anobit Technologies Ltd. | Memory device with non-uniform programming levels |
US8259497B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Programming schemes for multi-level analog memory cells |
US8044705B2 (en) | 2007-08-28 | 2011-10-25 | Sandisk Technologies Inc. | Bottom plate regulation of charge pumps |
US7876638B2 (en) | 2007-09-11 | 2011-01-25 | Micron Technology, Inc. | Storing operational information in an array of memory cells |
US7652929B2 (en) * | 2007-09-17 | 2010-01-26 | Sandisk Corporation | Non-volatile memory and method for biasing adjacent word line for verify during programming |
US8174905B2 (en) * | 2007-09-19 | 2012-05-08 | Anobit Technologies Ltd. | Programming orders for reducing distortion in arrays of multi-level analog memory cells |
US7577034B2 (en) * | 2007-09-26 | 2009-08-18 | Sandisk Corporation | Reducing programming voltage differential nonlinearity in non-volatile storage |
US7978520B2 (en) | 2007-09-27 | 2011-07-12 | Sandisk Corporation | Compensation of non-volatile memory chip non-idealities by program pulse adjustment |
US7773413B2 (en) | 2007-10-08 | 2010-08-10 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells in the presence of temperature variations |
US8068360B2 (en) * | 2007-10-19 | 2011-11-29 | Anobit Technologies Ltd. | Reading analog memory cells using built-in multi-threshold commands |
US8000141B1 (en) | 2007-10-19 | 2011-08-16 | Anobit Technologies Ltd. | Compensation for voltage drifts in analog memory cells |
US8527819B2 (en) * | 2007-10-19 | 2013-09-03 | Apple Inc. | Data storage in analog memory cell arrays having erase failures |
WO2009063450A2 (en) * | 2007-11-13 | 2009-05-22 | Anobit Technologies | Optimized selection of memory units in multi-unit memory devices |
US8225181B2 (en) | 2007-11-30 | 2012-07-17 | Apple Inc. | Efficient re-read operations from memory devices |
US7688638B2 (en) * | 2007-12-07 | 2010-03-30 | Sandisk Corporation | Faster programming of multi-level non-volatile storage through reduced verify operations |
US7586363B2 (en) | 2007-12-12 | 2009-09-08 | Sandisk Corporation | Diode connected regulation of charge pumps |
US8209588B2 (en) * | 2007-12-12 | 2012-06-26 | Anobit Technologies Ltd. | Efficient interference cancellation in analog memory cell arrays |
US7586362B2 (en) * | 2007-12-12 | 2009-09-08 | Sandisk Corporation | Low voltage charge pump with regulation |
US8456905B2 (en) | 2007-12-16 | 2013-06-04 | Apple Inc. | Efficient data storage in multi-plane memory devices |
US8085586B2 (en) * | 2007-12-27 | 2011-12-27 | Anobit Technologies Ltd. | Wear level estimation in analog memory cells |
US8156398B2 (en) * | 2008-02-05 | 2012-04-10 | Anobit Technologies Ltd. | Parameter estimation based on error correction code parity check equations |
JP2009193620A (ja) * | 2008-02-13 | 2009-08-27 | Toshiba Corp | 不揮発性半導体記憶装置 |
US7924587B2 (en) * | 2008-02-21 | 2011-04-12 | Anobit Technologies Ltd. | Programming of analog memory cells using a single programming pulse per state transition |
US7864573B2 (en) | 2008-02-24 | 2011-01-04 | Anobit Technologies Ltd. | Programming analog memory cells for reduced variance after retention |
US8230300B2 (en) * | 2008-03-07 | 2012-07-24 | Apple Inc. | Efficient readout from analog memory cells using data compression |
US8400858B2 (en) | 2008-03-18 | 2013-03-19 | Apple Inc. | Memory device with reduced sense time readout |
US8059457B2 (en) * | 2008-03-18 | 2011-11-15 | Anobit Technologies Ltd. | Memory device with multiple-accuracy read commands |
US7986554B2 (en) * | 2008-03-19 | 2011-07-26 | Sandisk Technologies Inc. | Different combinations of wordline order and look-ahead read to improve non-volatile memory performance |
US7915664B2 (en) * | 2008-04-17 | 2011-03-29 | Sandisk Corporation | Non-volatile memory with sidewall channels and raised source/drain regions |
US8051240B2 (en) * | 2008-05-09 | 2011-11-01 | Sandisk Technologies Inc. | Compensating non-volatile storage using different pass voltages during program-verify and read |
US7957197B2 (en) * | 2008-05-28 | 2011-06-07 | Sandisk Corporation | Nonvolatile memory with a current sense amplifier having a precharge circuit and a transfer gate coupled to a sense node |
US20090302930A1 (en) * | 2008-06-09 | 2009-12-10 | Feng Pan | Charge Pump with Vt Cancellation Through Parallel Structure |
US7969235B2 (en) | 2008-06-09 | 2011-06-28 | Sandisk Corporation | Self-adaptive multi-stage charge pump |
US7855913B2 (en) * | 2008-06-10 | 2010-12-21 | Micron Technology, Inc. | Dynamically configurable MLC state assignment |
US8710907B2 (en) | 2008-06-24 | 2014-04-29 | Sandisk Technologies Inc. | Clock generator circuit for a charge pump |
US7683700B2 (en) | 2008-06-25 | 2010-03-23 | Sandisk Corporation | Techniques of ripple reduction for charge pumps |
US7800956B2 (en) * | 2008-06-27 | 2010-09-21 | Sandisk Corporation | Programming algorithm to reduce disturb with minimal extra time penalty |
US8762654B1 (en) * | 2008-07-02 | 2014-06-24 | Marvell International Ltd. | Selectively scheduling memory accesses in parallel based on access speeds of memory |
US8706951B2 (en) * | 2008-07-18 | 2014-04-22 | Marvell World Trade Ltd. | Selectively accessing faster or slower multi-level cell memory |
US7924613B1 (en) | 2008-08-05 | 2011-04-12 | Anobit Technologies Ltd. | Data storage in analog memory cells with protection against programming interruption |
US7995388B1 (en) | 2008-08-05 | 2011-08-09 | Anobit Technologies Ltd. | Data storage using modified voltages |
US7876611B2 (en) * | 2008-08-08 | 2011-01-25 | Sandisk Corporation | Compensating for coupling during read operations in non-volatile storage |
US8169825B1 (en) | 2008-09-02 | 2012-05-01 | Anobit Technologies Ltd. | Reliable data storage in analog memory cells subjected to long retention periods |
US8949684B1 (en) | 2008-09-02 | 2015-02-03 | Apple Inc. | Segmented data storage |
WO2010027983A1 (en) * | 2008-09-03 | 2010-03-11 | Marvell World Trade Ltd. | Progamming data into a multi-plane flash memory |
US8482978B1 (en) | 2008-09-14 | 2013-07-09 | Apple Inc. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US8000135B1 (en) | 2008-09-14 | 2011-08-16 | Anobit Technologies Ltd. | Estimation of memory cell read thresholds by sampling inside programming level distribution intervals |
US7755946B2 (en) * | 2008-09-19 | 2010-07-13 | Sandisk Corporation | Data state-based temperature compensation during sensing in non-volatile memory |
JP2010092559A (ja) * | 2008-10-10 | 2010-04-22 | Toshiba Corp | Nand型フラッシュメモリ |
US8239734B1 (en) | 2008-10-15 | 2012-08-07 | Apple Inc. | Efficient data storage in storage device arrays |
US8713330B1 (en) | 2008-10-30 | 2014-04-29 | Apple Inc. | Data scrambling in memory devices |
US8127091B2 (en) * | 2008-10-30 | 2012-02-28 | Micron Technology, Inc. | Programming memory cells with additional data for increased threshold voltage resolution |
US8208304B2 (en) * | 2008-11-16 | 2012-06-26 | Anobit Technologies Ltd. | Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N |
US8332577B2 (en) * | 2008-12-10 | 2012-12-11 | Sandisk Technologies Inc. | Program control of a non-volatile memory |
US7795952B2 (en) * | 2008-12-17 | 2010-09-14 | Sandisk Corporation | Regulation of recovery rates in charge pumps |
US8248831B2 (en) * | 2008-12-31 | 2012-08-21 | Apple Inc. | Rejuvenation of analog memory cells |
US8397131B1 (en) | 2008-12-31 | 2013-03-12 | Apple Inc. | Efficient readout schemes for analog memory cell devices |
US8255615B1 (en) | 2009-01-08 | 2012-08-28 | Marvell International Ltd. | Flexible sequence design architecture for solid state memory controller |
US8924661B1 (en) | 2009-01-18 | 2014-12-30 | Apple Inc. | Memory system including a controller and processors associated with memory devices |
KR101074539B1 (ko) * | 2009-02-04 | 2011-10-17 | 주식회사 하이닉스반도체 | 불휘발성 메모리 장치 및 그 동작 방법 |
US8228701B2 (en) | 2009-03-01 | 2012-07-24 | Apple Inc. | Selective activation of programming schemes in analog memory cell arrays |
US8259506B1 (en) | 2009-03-25 | 2012-09-04 | Apple Inc. | Database of memory read thresholds |
US8832354B2 (en) * | 2009-03-25 | 2014-09-09 | Apple Inc. | Use of host system resources by memory controller |
US8832353B2 (en) * | 2009-04-07 | 2014-09-09 | Sandisk Technologies Inc. | Host stop-transmission handling |
US8238157B1 (en) | 2009-04-12 | 2012-08-07 | Apple Inc. | Selective re-programming of analog memory cells |
US8102705B2 (en) | 2009-06-05 | 2012-01-24 | Sandisk Technologies Inc. | Structure and method for shuffling data within non-volatile memory devices |
US8027195B2 (en) * | 2009-06-05 | 2011-09-27 | SanDisk Technologies, Inc. | Folding data stored in binary format into multi-state format within non-volatile memory devices |
US8132045B2 (en) * | 2009-06-16 | 2012-03-06 | SanDisk Technologies, Inc. | Program failure handling in nonvolatile memory |
US8307241B2 (en) * | 2009-06-16 | 2012-11-06 | Sandisk Technologies Inc. | Data recovery in multi-level cell nonvolatile memory |
US8054691B2 (en) | 2009-06-26 | 2011-11-08 | Sandisk Technologies Inc. | Detecting the completion of programming for non-volatile storage |
KR101010468B1 (ko) * | 2009-06-29 | 2011-01-21 | 주식회사 하이닉스반도체 | 불휘발성 메모리 소자의 프로그램 방법 |
US8874825B2 (en) | 2009-06-30 | 2014-10-28 | Sandisk Technologies Inc. | Storage device and method using parameters based on physical memory block location |
US20110002169A1 (en) | 2009-07-06 | 2011-01-06 | Yan Li | Bad Column Management with Bit Information in Non-Volatile Memory Systems |
US8180994B2 (en) * | 2009-07-08 | 2012-05-15 | Sandisk Technologies Inc. | Optimized page programming order for non-volatile memory |
US8479080B1 (en) | 2009-07-12 | 2013-07-02 | Apple Inc. | Adaptive over-provisioning in memory systems |
US7973592B2 (en) | 2009-07-21 | 2011-07-05 | Sandisk Corporation | Charge pump with current based regulation |
US8339183B2 (en) | 2009-07-24 | 2012-12-25 | Sandisk Technologies Inc. | Charge pump with reduced energy consumption through charge sharing and clock boosting suitable for high voltage word line in flash memories |
US7995394B2 (en) * | 2009-07-30 | 2011-08-09 | Sandisk Technologies Inc. | Program voltage compensation with word line bias change to suppress charge trapping in memory |
US8130543B2 (en) * | 2009-08-13 | 2012-03-06 | Macronix International Co., Ltd. | Method and apparatus for increasing memory programming efficiency through dynamic switching of sense amplifiers |
US8495465B1 (en) | 2009-10-15 | 2013-07-23 | Apple Inc. | Error correction coding over multiple memory pages |
US20110133820A1 (en) * | 2009-12-09 | 2011-06-09 | Feng Pan | Multi-Stage Charge Pump with Variable Number of Boosting Stages |
US8677054B1 (en) | 2009-12-16 | 2014-03-18 | Apple Inc. | Memory management schemes for non-volatile memory devices |
US20110148509A1 (en) * | 2009-12-17 | 2011-06-23 | Feng Pan | Techniques to Reduce Charge Pump Overshoot |
US8725935B2 (en) | 2009-12-18 | 2014-05-13 | Sandisk Technologies Inc. | Balanced performance for on-chip folding of non-volatile memories |
US8468294B2 (en) | 2009-12-18 | 2013-06-18 | Sandisk Technologies Inc. | Non-volatile memory with multi-gear control using on-chip folding of data |
US8144512B2 (en) * | 2009-12-18 | 2012-03-27 | Sandisk Technologies Inc. | Data transfer flows for on-chip folding |
US20110158001A1 (en) * | 2009-12-31 | 2011-06-30 | Hynix Semiconductor Inc. | Programming method for nonvolatile memory device |
US8402203B2 (en) * | 2009-12-31 | 2013-03-19 | Seagate Technology Llc | Systems and methods for storing data in a multi-level cell solid state storage device |
US8694814B1 (en) | 2010-01-10 | 2014-04-08 | Apple Inc. | Reuse of host hibernation storage space by memory controller |
US8677203B1 (en) | 2010-01-11 | 2014-03-18 | Apple Inc. | Redundant data storage schemes for multi-die memory systems |
US8248850B2 (en) * | 2010-01-28 | 2012-08-21 | Sandisk Technologies Inc. | Data recovery for non-volatile memory based on count of data state-specific fails |
US8213255B2 (en) | 2010-02-19 | 2012-07-03 | Sandisk Technologies Inc. | Non-volatile storage with temperature compensation based on neighbor state information |
US8694853B1 (en) | 2010-05-04 | 2014-04-08 | Apple Inc. | Read commands for reading interfering memory cells |
US8274831B2 (en) | 2010-05-24 | 2012-09-25 | Sandisk Technologies Inc. | Programming non-volatile storage with synchronized coupling |
US8572423B1 (en) | 2010-06-22 | 2013-10-29 | Apple Inc. | Reducing peak current in memory systems |
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 |
US8432732B2 (en) | 2010-07-09 | 2013-04-30 | Sandisk Technologies Inc. | Detection of word-line leakage in memory arrays |
US8595591B1 (en) | 2010-07-11 | 2013-11-26 | Apple Inc. | Interference-aware assignment of programming levels in analog memory cells |
US9104580B1 (en) | 2010-07-27 | 2015-08-11 | Apple Inc. | Cache memory for hybrid disk drives |
US8645794B1 (en) | 2010-07-31 | 2014-02-04 | Apple Inc. | Data storage in analog memory cells using a non-integer number of bits per cell |
US8856475B1 (en) | 2010-08-01 | 2014-10-07 | Apple Inc. | Efficient selection of memory blocks for compaction |
US8694854B1 (en) | 2010-08-17 | 2014-04-08 | Apple Inc. | Read threshold setting based on soft readout statistics |
US9021181B1 (en) | 2010-09-27 | 2015-04-28 | Apple Inc. | Memory management for unifying memory cell conditions by using maximum time intervals |
KR101153813B1 (ko) | 2010-09-30 | 2012-06-13 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 |
US8339185B2 (en) | 2010-12-20 | 2012-12-25 | Sandisk 3D Llc | Charge pump system that dynamically selects number of active stages |
US8294509B2 (en) | 2010-12-20 | 2012-10-23 | Sandisk Technologies Inc. | Charge pump systems with reduction in inefficiencies due to charge sharing between capacitances |
US8472280B2 (en) | 2010-12-21 | 2013-06-25 | Sandisk Technologies Inc. | Alternate page by page programming scheme |
US9342446B2 (en) | 2011-03-29 | 2016-05-17 | SanDisk Technologies, Inc. | Non-volatile memory system allowing reverse eviction of data updates to non-volatile binary cache |
US8379454B2 (en) | 2011-05-05 | 2013-02-19 | Sandisk Technologies Inc. | Detection of broken word-lines in memory arrays |
US8843693B2 (en) | 2011-05-17 | 2014-09-23 | SanDisk Technologies, Inc. | Non-volatile memory and method with improved data scrambling |
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 |
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 |
US8699247B2 (en) | 2011-09-09 | 2014-04-15 | Sandisk Technologies Inc. | Charge pump system dynamically reconfigurable for read and program |
US9477590B2 (en) * | 2011-09-16 | 2016-10-25 | Apple Inc. | Weave sequence counter for non-volatile memory systems |
US8400212B1 (en) | 2011-09-22 | 2013-03-19 | Sandisk Technologies Inc. | High voltage charge pump regulation system with fine step adjustment |
US8514628B2 (en) | 2011-09-22 | 2013-08-20 | Sandisk Technologies Inc. | Dynamic switching approach to reduce area and power consumption of high voltage charge pumps |
US8630120B2 (en) | 2011-10-20 | 2014-01-14 | Sandisk Technologies Inc. | Compact sense amplifier for non-volatile memory |
WO2013058960A2 (en) | 2011-10-20 | 2013-04-25 | Sandisk Technologies Inc. | Compact sense amplifier for non-volatile memory |
US8630118B2 (en) | 2011-11-09 | 2014-01-14 | Sandisk Technologies Inc. | Defective word line detection |
US8842476B2 (en) | 2011-11-09 | 2014-09-23 | Sandisk Technologies Inc. | Erratic program detection for non-volatile storage |
US8634239B2 (en) | 2011-12-28 | 2014-01-21 | Sandisk Technologies Inc. | Hybrid multi-level cell programming sequences |
US8730722B2 (en) | 2012-03-02 | 2014-05-20 | Sandisk Technologies Inc. | Saving of data in cases of word-line to word-line short in memory arrays |
WO2013134735A1 (en) | 2012-03-08 | 2013-09-12 | California Institute Of Technology | Rank-modulation rewriting codes for flash memories |
US8842473B2 (en) | 2012-03-15 | 2014-09-23 | Sandisk Technologies Inc. | Techniques for accessing column selecting shift register with skipped entries in non-volatile memories |
US8681548B2 (en) | 2012-05-03 | 2014-03-25 | Sandisk Technologies Inc. | Column redundancy circuitry for non-volatile memory |
TWI486766B (zh) | 2012-05-11 | 2015-06-01 | Phison Electronics Corp | 資料處理方法、記憶體控制器與記憶體儲存裝置 |
CN103425594B (zh) * | 2012-05-23 | 2016-09-14 | 群联电子股份有限公司 | 数据处理方法、存储器控制器与存储器存储装置 |
US9293195B2 (en) | 2012-06-28 | 2016-03-22 | Sandisk Technologies Inc. | Compact high speed sense amplifier for non-volatile memory |
US20140003176A1 (en) | 2012-06-28 | 2014-01-02 | Man Lung Mui | Compact High Speed Sense Amplifier for Non-Volatile Memory with Reduced layout Area and Power Consumption |
US8971141B2 (en) | 2012-06-28 | 2015-03-03 | Sandisk Technologies Inc. | Compact high speed sense amplifier for non-volatile memory and hybrid lockout |
US8824203B2 (en) | 2012-07-13 | 2014-09-02 | Micron Technology, Inc. | Multiple step programming in a memory device |
KR102012740B1 (ko) | 2012-07-18 | 2019-08-21 | 삼성전자주식회사 | 복수의 불휘발성 메모리 칩들을 포함하는 저장 장치 및 그것의 제어 방법 |
KR20140028582A (ko) * | 2012-08-29 | 2014-03-10 | 에스케이하이닉스 주식회사 | 반도체 메모리 장치 및 그것의 동작 방법 |
US9135989B2 (en) * | 2012-09-06 | 2015-09-15 | Sandisk Technologies Inc. | Write data preservation for non-volatile storage |
US8710909B2 (en) | 2012-09-14 | 2014-04-29 | Sandisk Technologies Inc. | Circuits for prevention of reverse leakage in Vth-cancellation charge pumps |
US9164526B2 (en) | 2012-09-27 | 2015-10-20 | Sandisk Technologies Inc. | Sigma delta over-sampling charge pump analog-to-digital converter |
US9810723B2 (en) | 2012-09-27 | 2017-11-07 | Sandisk Technologies Llc | Charge pump based over-sampling ADC for current detection |
US8897080B2 (en) | 2012-09-28 | 2014-11-25 | Sandisk Technologies Inc. | Variable rate serial to parallel shift register |
US9076506B2 (en) | 2012-09-28 | 2015-07-07 | Sandisk Technologies Inc. | Variable rate parallel to serial shift register |
US9490035B2 (en) | 2012-09-28 | 2016-11-08 | SanDisk Technologies, Inc. | Centralized variable rate serializer and deserializer for bad column management |
KR20140076128A (ko) * | 2012-12-12 | 2014-06-20 | 에스케이하이닉스 주식회사 | 비휘발성 메모리 장치 및 동작 방법과, 이를 포함하는 데이터 처리 시스템 |
US9236136B2 (en) | 2012-12-14 | 2016-01-12 | Intel Corporation | Lower page read for multi-level cell memory |
US9026757B2 (en) | 2013-01-25 | 2015-05-05 | Sandisk Technologies Inc. | Non-volatile memory programming data preservation |
US8913428B2 (en) | 2013-01-25 | 2014-12-16 | Sandisk Technologies Inc. | Programming non-volatile storage system with multiple memory die |
US8971128B2 (en) | 2013-01-31 | 2015-03-03 | Sandisk Technologies Inc. | Adaptive initial program voltage for non-volatile memory |
US8836412B2 (en) | 2013-02-11 | 2014-09-16 | Sandisk 3D Llc | Charge pump with a power-controlled clock buffer to reduce power consumption and output voltage ripple |
US9384839B2 (en) | 2013-03-07 | 2016-07-05 | Sandisk Technologies Llc | Write sequence providing write abort protection |
US9053810B2 (en) | 2013-03-08 | 2015-06-09 | Sandisk Technologies Inc. | Defect or program disturb detection with full data recovery capability |
US9047211B2 (en) | 2013-03-15 | 2015-06-02 | SanDisk Technologies, Inc. | Managing data reliability |
US9037902B2 (en) | 2013-03-15 | 2015-05-19 | Sandisk Technologies Inc. | Flash memory techniques for recovering from write interrupt resulting from voltage fault |
US8981835B2 (en) | 2013-06-18 | 2015-03-17 | Sandisk Technologies Inc. | Efficient voltage doubler |
US9024680B2 (en) | 2013-06-24 | 2015-05-05 | Sandisk Technologies Inc. | Efficiency for charge pumps with low supply voltages |
US9077238B2 (en) | 2013-06-25 | 2015-07-07 | SanDisk Technologies, Inc. | Capacitive regulation of charge pumps without refresh operation interruption |
US9007046B2 (en) | 2013-06-27 | 2015-04-14 | Sandisk Technologies Inc. | Efficient high voltage bias regulation circuit |
US20150006784A1 (en) | 2013-06-27 | 2015-01-01 | Sandisk Technologies Inc. | Efficient Post Write Read in Three Dimensional Nonvolatile Memory |
US9218242B2 (en) | 2013-07-02 | 2015-12-22 | Sandisk Technologies Inc. | Write operations for defect management in nonvolatile memory |
US9063671B2 (en) | 2013-07-02 | 2015-06-23 | Sandisk Technologies Inc. | Write operations with full sequence programming for defect management in nonvolatile memory |
WO2015004712A1 (ja) | 2013-07-08 | 2015-01-15 | 株式会社 東芝 | ロックアウトモードとノーロックアウトモードを有する半導体記憶装置 |
KR101449933B1 (ko) * | 2013-09-02 | 2014-10-15 | (주)피델릭스 | 노이즈 피크를 줄이면서 프로그램 소요시간을 저감하는 플래시 메모리 장치 및 그의 프로그램 방법 |
US9165683B2 (en) | 2013-09-23 | 2015-10-20 | Sandisk Technologies Inc. | Multi-word line erratic programming detection |
US9083231B2 (en) | 2013-09-30 | 2015-07-14 | Sandisk Technologies Inc. | Amplitude modulation for pass gate to improve charge pump efficiency |
US9424179B2 (en) | 2013-10-17 | 2016-08-23 | Seagate Technology Llc | Systems and methods for latency based data recycling in a solid state memory system |
US9043537B1 (en) | 2013-11-21 | 2015-05-26 | Sandisk Technologies Inc. | Update block programming order |
US9058881B1 (en) | 2013-12-05 | 2015-06-16 | Sandisk Technologies Inc. | Systems and methods for partial page programming of multi level cells |
US9244631B2 (en) | 2013-12-06 | 2016-01-26 | Sandisk Technologies Inc. | Lower page only host burst writes |
US9154027B2 (en) | 2013-12-09 | 2015-10-06 | Sandisk Technologies Inc. | Dynamic load matching charge pump for reduced current consumption |
JP6226809B2 (ja) * | 2014-05-01 | 2017-11-08 | 東芝メモリ株式会社 | 半導体記憶装置 |
US9384830B2 (en) | 2014-05-06 | 2016-07-05 | Micron Technology, Inc. | Apparatuses and methods for performing multiple memory operations |
US8902652B1 (en) | 2014-05-13 | 2014-12-02 | Sandisk Technologies Inc. | Systems and methods for lower page writes |
US8886877B1 (en) | 2014-05-15 | 2014-11-11 | Sandisk Technologies Inc. | In-situ block folding for nonvolatile memory |
US9460809B2 (en) | 2014-07-10 | 2016-10-04 | Sandisk Technologies Llc | AC stress mode to screen out word line to word line shorts |
US9484086B2 (en) | 2014-07-10 | 2016-11-01 | Sandisk Technologies Llc | Determination of word line to local source line shorts |
US9514835B2 (en) | 2014-07-10 | 2016-12-06 | Sandisk Technologies Llc | Determination of word line to word line shorts between adjacent blocks |
US9443612B2 (en) | 2014-07-10 | 2016-09-13 | Sandisk Technologies Llc | Determination of bit line to low voltage signal shorts |
US9696918B2 (en) | 2014-07-13 | 2017-07-04 | Apple Inc. | Protection and recovery from sudden power failure in non-volatile memory devices |
US9208895B1 (en) | 2014-08-14 | 2015-12-08 | Sandisk Technologies Inc. | Cell current control through power supply |
US9349468B2 (en) | 2014-08-25 | 2016-05-24 | SanDisk Technologies, Inc. | Operational amplifier methods for charging of sense amplifier internal nodes |
US9202593B1 (en) | 2014-09-02 | 2015-12-01 | Sandisk Technologies Inc. | Techniques for detecting broken word lines in non-volatile memories |
US9240249B1 (en) | 2014-09-02 | 2016-01-19 | Sandisk Technologies Inc. | AC stress methods to screen out bit line defects |
US9449694B2 (en) | 2014-09-04 | 2016-09-20 | Sandisk Technologies Llc | Non-volatile memory with multi-word line select for defect detection operations |
US9772935B2 (en) | 2014-09-16 | 2017-09-26 | Empire Technology Development Llc | Data storage based on rank modulation in single-level flash memory |
US9678832B2 (en) * | 2014-09-18 | 2017-06-13 | Sandisk Technologies Llc | Storage module and method for on-chip copy gather |
US9934872B2 (en) | 2014-10-30 | 2018-04-03 | Sandisk Technologies Llc | Erase stress and delta erase loop count methods for various fail modes in non-volatile memory |
US9224502B1 (en) | 2015-01-14 | 2015-12-29 | Sandisk Technologies Inc. | Techniques for detection and treating memory hole to local interconnect marginality defects |
KR102438552B1 (ko) * | 2015-02-04 | 2022-09-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작방법 |
US10032524B2 (en) | 2015-02-09 | 2018-07-24 | Sandisk Technologies Llc | Techniques for determining local interconnect defects |
US9224492B1 (en) * | 2015-02-17 | 2015-12-29 | Phison Electronics Corp. | Memory management method, memory storage device and memory controlling circuit unit |
US9269446B1 (en) | 2015-04-08 | 2016-02-23 | Sandisk Technologies Inc. | Methods to improve programming of slow cells |
US9564219B2 (en) | 2015-04-08 | 2017-02-07 | Sandisk Technologies Llc | Current based detection and recording of memory hole-interconnect spacing defects |
KR20160127524A (ko) * | 2015-04-27 | 2016-11-04 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US9917507B2 (en) | 2015-05-28 | 2018-03-13 | Sandisk Technologies Llc | Dynamic clock period modulation scheme for variable charge pump load currents |
US10164770B1 (en) * | 2015-06-03 | 2018-12-25 | Marvell International Ltd. | Pipelined data cryptography device and method |
US9647536B2 (en) | 2015-07-28 | 2017-05-09 | Sandisk Technologies Llc | High voltage generation using low voltage devices |
US9659666B2 (en) | 2015-08-31 | 2017-05-23 | Sandisk Technologies Llc | Dynamic memory recovery at the sub-block level |
US9520776B1 (en) | 2015-09-18 | 2016-12-13 | Sandisk Technologies Llc | Selective body bias for charge pump transfer switches |
US9858009B2 (en) | 2015-10-26 | 2018-01-02 | Sandisk Technologies Llc | Data folding in 3D nonvolatile memory |
US9880783B2 (en) | 2015-10-28 | 2018-01-30 | Sandisk Technologies Llc | System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller |
US20170123721A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer by command completion in parts |
KR102470606B1 (ko) * | 2015-11-26 | 2022-11-28 | 삼성전자주식회사 | 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치 |
TWI588833B (zh) * | 2015-11-27 | 2017-06-21 | 群聯電子股份有限公司 | 資料程式化方法與記憶體儲存裝置 |
US10198315B2 (en) | 2016-02-29 | 2019-02-05 | Sandisk Technologies Llc | Non-volatile memory with corruption recovery |
US9698676B1 (en) | 2016-03-11 | 2017-07-04 | Sandisk Technologies Llc | Charge pump based over-sampling with uniform step size for current detection |
US9792995B1 (en) | 2016-04-26 | 2017-10-17 | Sandisk Technologies Llc | Independent multi-plane read and low latency hybrid read |
JP6652470B2 (ja) | 2016-09-07 | 2020-02-26 | キオクシア株式会社 | 半導体記憶装置 |
JP2018045741A (ja) | 2016-09-12 | 2018-03-22 | 東芝メモリ株式会社 | 半導体記憶装置及びメモリシステム |
US10134479B2 (en) * | 2017-04-21 | 2018-11-20 | Sandisk Technologies Llc | Non-volatile memory with reduced program speed variation |
US10096380B1 (en) * | 2017-08-31 | 2018-10-09 | Micron Technology, Inc. | Erase page check |
US10304550B1 (en) | 2017-11-29 | 2019-05-28 | Sandisk Technologies Llc | Sense amplifier with negative threshold sensing for non-volatile memory |
US10600484B2 (en) | 2017-12-20 | 2020-03-24 | Silicon Storage Technology, Inc. | System and method for minimizing floating gate to floating gate coupling effects during programming in flash memory |
US10964392B2 (en) * | 2018-08-27 | 2021-03-30 | SK Hynix Inc. | Memory system performing cache program and operating method thereof |
US11133060B2 (en) * | 2018-09-21 | 2021-09-28 | SK Hynix Inc. | Data storage device and operating method thereof |
KR102528274B1 (ko) | 2018-11-06 | 2023-05-02 | 삼성전자주식회사 | 비휘발성 메모리 장치 및 그 구동 방법 |
US10643695B1 (en) | 2019-01-10 | 2020-05-05 | Sandisk Technologies Llc | Concurrent multi-state program verify for non-volatile memory |
US10748622B2 (en) | 2019-01-21 | 2020-08-18 | Sandisk Technologies Llc | State adaptive predictive programming |
KR20210000212A (ko) * | 2019-06-24 | 2021-01-04 | 에스케이하이닉스 주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US11309032B2 (en) | 2019-11-26 | 2022-04-19 | Samsung Electronics Co., Ltd. | Operating method of memory system including memory controller and nonvolatile memory device |
US11024392B1 (en) | 2019-12-23 | 2021-06-01 | Sandisk Technologies Llc | Sense amplifier for bidirectional sensing of memory cells of a non-volatile memory |
US11556416B2 (en) | 2021-05-05 | 2023-01-17 | Apple Inc. | Controlling memory readout reliability and throughput by adjusting distance between read thresholds |
US11694755B2 (en) | 2021-06-02 | 2023-07-04 | Sandisk Technologies Llc | Nonvolatile memory with data recovery |
CN113409850A (zh) * | 2021-06-17 | 2021-09-17 | 芯天下技术股份有限公司 | 一种提高编程效率的方法、装置、存储介质和终端 |
US11657883B2 (en) | 2021-07-22 | 2023-05-23 | Western Digital Technologies, Inc. | Isolating problematic memory planes to avoid neighbor plan disturb |
US11847342B2 (en) | 2021-07-28 | 2023-12-19 | Apple Inc. | Efficient transfer of hard data and confidence levels in reading a nonvolatile memory |
US11763905B2 (en) | 2021-12-16 | 2023-09-19 | Western Digital Technologies, Inc. | Storage system and method for data protection during power loss |
US12136462B2 (en) | 2022-03-07 | 2024-11-05 | SanDisk Technologies, Inc. | Storage system and method for improving read latency during mixed read/write operations |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030163629A1 (en) | 2002-02-22 | 2003-08-28 | Conley Kevin M. | Pipelined parallel programming operation in a non-volatile memory system |
Family Cites Families (118)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1089225B (it) | 1977-12-23 | 1985-06-18 | Honeywell Inf Systems | Memoria con dispositivo rivelatore e correttore a intervento selettivo |
IT1224062B (it) * | 1979-09-28 | 1990-09-26 | Ates Componenti Elettron | Metodo di programmazione per una memoria a semiconduttore non volatile elettricamente alterabile |
US4785427A (en) * | 1987-01-28 | 1988-11-15 | Cypress Semiconductor Corporation | Differential bit line clamp |
US5034922A (en) * | 1987-12-21 | 1991-07-23 | Motorola, Inc. | Intelligent electrically erasable, programmable read-only memory with improved read latency |
US5093806A (en) * | 1988-02-16 | 1992-03-03 | Tran Hiep V | Sensing and decoding scheme for a bicmos read/write memory |
US5095344A (en) * | 1988-06-08 | 1992-03-10 | Eliyahou Harari | Highly compact eprom and flash eeprom devices |
US5070032A (en) * | 1989-03-15 | 1991-12-03 | Sundisk Corporation | Method of making dense flash eeprom semiconductor memory structures |
EP0675502B1 (en) * | 1989-04-13 | 2005-05-25 | SanDisk Corporation | Multiple sector erase flash EEPROM system |
US5172338B1 (en) * | 1989-04-13 | 1997-07-08 | Sandisk Corp | Multi-state eeprom read and write circuits and techniques |
JP2646850B2 (ja) * | 1990-11-30 | 1997-08-27 | 日本電気株式会社 | 半導体メモリ回路 |
US5343063A (en) * | 1990-12-18 | 1994-08-30 | Sundisk Corporation | Dense vertical programmable read only memory cell structure and processes for making them |
US5218569A (en) * | 1991-02-08 | 1993-06-08 | Banks Gerald J | Electrically alterable non-volatile memory with n-bits per memory cell |
US5274646A (en) | 1991-04-17 | 1993-12-28 | International Business Machines Corporation | Excessive error correction control |
KR960000619B1 (ko) * | 1991-12-27 | 1996-01-10 | 후지쓰 가부시끼가이샤 | 일괄소거형의 불휘발성 반도체 기억장치 및 그의 구동제어회로 |
US5313421A (en) * | 1992-01-14 | 1994-05-17 | Sundisk Corporation | EEPROM with split gate source side injection |
US6222762B1 (en) * | 1992-01-14 | 2001-04-24 | Sandisk Corporation | Multi-state memory |
JP3323869B2 (ja) | 1992-03-31 | 2002-09-09 | 株式会社東芝 | 不揮発性半導体メモリ装置 |
US5315541A (en) * | 1992-07-24 | 1994-05-24 | Sundisk Corporation | Segmented column memory array |
US5586285A (en) | 1993-02-19 | 1996-12-17 | Intel Corporation | Method and circuitry for increasing reserve memory in a solid state memory disk |
JP3078946B2 (ja) | 1993-03-11 | 2000-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレ−ション | 一括消去型不揮発性メモリの管理方法及び半導体ディスク装置 |
KR970008188B1 (ko) | 1993-04-08 | 1997-05-21 | 가부시끼가이샤 히다찌세이사꾸쇼 | 플래시메모리의 제어방법 및 그것을 사용한 정보처리장치 |
US5555204A (en) * | 1993-06-29 | 1996-09-10 | Kabushiki Kaisha Toshiba | Non-volatile semiconductor memory device |
US5519847A (en) * | 1993-06-30 | 1996-05-21 | Intel Corporation | Method of pipelining sequential writes in a flash memory |
JP2922116B2 (ja) | 1993-09-02 | 1999-07-19 | 株式会社東芝 | 半導体記憶装置 |
KR0169267B1 (ko) * | 1993-09-21 | 1999-02-01 | 사토 후미오 | 불휘발성 반도체 기억장치 |
US5661053A (en) * | 1994-05-25 | 1997-08-26 | Sandisk Corporation | Method of making dense flash EEPROM cell array and peripheral supporting circuits formed in deposited field oxide with the use of spacers |
KR100210985B1 (ko) * | 1994-06-29 | 1999-07-15 | 니시무로 타이죠 | 불휘발성 반도체 기억장치 |
US5838614A (en) | 1995-07-31 | 1998-11-17 | Lexar Microsystems, Inc. | Identification and verification of a sector within a block of mass storage flash memory |
JP3941149B2 (ja) * | 1996-12-03 | 2007-07-04 | ソニー株式会社 | 半導体不揮発性記憶装置 |
US5875477A (en) | 1995-12-22 | 1999-02-23 | Intel Corporation | Method and apparatus for error management in a solid state disk drive using primary and secondary logical sector numbers |
US5893135A (en) | 1995-12-27 | 1999-04-06 | Intel Corporation | Flash memory array with two interfaces for responding to RAS and CAS signals |
US5724303A (en) | 1996-02-15 | 1998-03-03 | Nexcom Technology, Inc. | Non-volatile programmable memory having an SRAM capability |
KR100308173B1 (ko) | 1996-02-29 | 2001-11-02 | 가나이 쓰도무 | 부분불량메모리를탑재한반도체기억장치 |
US5903495A (en) * | 1996-03-18 | 1999-05-11 | Kabushiki Kaisha Toshiba | Semiconductor device and memory system |
US5860082A (en) * | 1996-03-28 | 1999-01-12 | Datalight, Inc. | Method and apparatus for allocating storage in a flash memory |
FR2749682B1 (fr) | 1996-06-10 | 1998-07-10 | Bull Sa | Circuit pour transborder des donnees entre memoires distantes et calculateur comprenant un tel circuit |
US5768192A (en) * | 1996-07-23 | 1998-06-16 | Saifun Semiconductors, Ltd. | Non-volatile semiconductor memory cell utilizing asymmetrical charge trapping |
US5890192A (en) | 1996-11-05 | 1999-03-30 | Sandisk Corporation | Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM |
US5901086A (en) * | 1996-12-26 | 1999-05-04 | Motorola, Inc. | Pipelined fast-access floating gate memory architecture and method of operation |
JP3897388B2 (ja) * | 1996-12-27 | 2007-03-22 | シャープ株式会社 | シリアルアクセス方式の半導体記憶装置 |
US6097638A (en) * | 1997-02-12 | 2000-08-01 | Kabushiki Kaisha Toshiba | Semiconductor memory device |
KR100272037B1 (ko) * | 1997-02-27 | 2000-12-01 | 니시무로 타이죠 | 불휘발성 반도체 기억 장치 |
US5870335A (en) * | 1997-03-06 | 1999-02-09 | Agate Semiconductor, Inc. | Precision programming of nonvolatile memory cells |
US5822245A (en) | 1997-03-26 | 1998-10-13 | Atmel Corporation | Dual buffer flash memory architecture with multiple operating modes |
US5872739A (en) * | 1997-04-17 | 1999-02-16 | Radiant Technologies | Sense amplifier for low read-voltage memory cells |
JPH113290A (ja) | 1997-06-11 | 1999-01-06 | Hitachi Ltd | メモリ制御方式 |
US6768165B1 (en) * | 1997-08-01 | 2004-07-27 | Saifun Semiconductors Ltd. | Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping |
US6021463A (en) | 1997-09-02 | 2000-02-01 | International Business Machines Corporation | Method and means for efficiently managing update writes and fault tolerance in redundancy groups of addressable ECC-coded sectors in a DASD storage subsystem |
JPH11203191A (ja) | 1997-11-13 | 1999-07-30 | Seiko Epson Corp | 不揮発性記憶装置、不揮発性記憶装置の制御方法、および、不揮発性記憶装置を制御するプログラムを記録した情報記録媒体 |
US6333871B1 (en) | 1998-02-16 | 2001-12-25 | Hitachi, Ltd. | Nonvolatile semiconductor memory including a controller for providing an improved reprogram operation |
US5969986A (en) | 1998-06-23 | 1999-10-19 | Invox Technology | High-bandwidth read and write architectures for non-volatile memories |
US6040997A (en) | 1998-03-25 | 2000-03-21 | Lexar Media, Inc. | Flash memory leveling architecture having no external latch |
US5949720A (en) * | 1998-10-30 | 1999-09-07 | Stmicroelectronics, Inc. | Voltage clamping method and apparatus for dynamic random access memory devices |
US6490649B2 (en) | 1998-11-10 | 2002-12-03 | Lexar Media, Inc. | Memory device |
AU1729100A (en) | 1998-11-17 | 2000-06-05 | Lexar Media, Inc. | Method and apparatus for memory control circuit |
US6567302B2 (en) | 1998-12-29 | 2003-05-20 | Micron Technology, Inc. | Method and apparatus for programming multi-state cells in a memory device |
US6282145B1 (en) * | 1999-01-14 | 2001-08-28 | Silicon Storage Technology, Inc. | Array architecture and operating methods for digital multilevel nonvolatile memory integrated circuit system |
GB9903490D0 (en) | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
US6449625B1 (en) | 1999-04-20 | 2002-09-10 | Lucent Technologies Inc. | Use of a two-way stack approach to optimize flash memory management for embedded database systems |
DE60043805D1 (de) | 1999-04-29 | 2010-03-25 | Nxp Bv | Chtung und als slave-gerät in einem bussystem |
ES2293916T3 (es) | 1999-07-28 | 2008-04-01 | Sony Corporation | Sistema de registro, dispositivo de registro de datos, dispositivo de memoria, y metodo de registro de datos. |
JP3863330B2 (ja) * | 1999-09-28 | 2006-12-27 | 株式会社東芝 | 不揮発性半導体メモリ |
US6278633B1 (en) | 1999-11-05 | 2001-08-21 | Multi Level Memory Technology | High bandwidth flash memory that selects programming parameters according to measurements of previous programming operations |
JP2001184881A (ja) * | 1999-12-28 | 2001-07-06 | Toshiba Corp | 不揮発性半導体メモリの読み出し回路 |
US6426893B1 (en) | 2000-02-17 | 2002-07-30 | Sandisk Corporation | Flash eeprom system with simultaneous multiple data sector programming and storage of physical block characteristics in other designated blocks |
JP3983969B2 (ja) * | 2000-03-08 | 2007-09-26 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6396744B1 (en) | 2000-04-25 | 2002-05-28 | Multi Level Memory Technology | Flash memory with dynamic refresh |
US6396741B1 (en) * | 2000-05-04 | 2002-05-28 | Saifun Semiconductors Ltd. | Programming of nonvolatile memory cells |
US6504757B1 (en) * | 2000-08-11 | 2003-01-07 | Advanced Micro Devices, Inc. | Double boosting scheme for NAND to improve program inhibit characteristics |
US6266273B1 (en) | 2000-08-21 | 2001-07-24 | Sandisk Corporation | Method and structure for reliable data copy operation for non-volatile memories |
US6581142B1 (en) | 2000-09-01 | 2003-06-17 | International Business Machines Corporation | Computer program product and method for partial paging and eviction of microprocessor instructions in an embedded computer |
JP2002100192A (ja) * | 2000-09-22 | 2002-04-05 | Toshiba Corp | 不揮発性半導体メモリ |
US6684289B1 (en) | 2000-11-22 | 2004-01-27 | Sandisk Corporation | Techniques for operating non-volatile memory systems with data sectors having different sizes than the sizes of the pages and/or blocks of the memory |
US6349056B1 (en) | 2000-12-28 | 2002-02-19 | Sandisk Corporation | Method and structure for efficient data verification operation for non-volatile memories |
US6763424B2 (en) | 2001-01-19 | 2004-07-13 | Sandisk Corporation | Partial block data programming and reading operations in a non-volatile memory |
KR100381956B1 (ko) * | 2001-02-02 | 2003-04-26 | 삼성전자주식회사 | 플래시 메모리 장치의 감지 증폭 회로 |
US6407953B1 (en) * | 2001-02-02 | 2002-06-18 | Matrix Semiconductor, Inc. | Memory array organization and related test method particularly well suited for integrated circuits having write-once memory arrays |
US6738289B2 (en) * | 2001-02-26 | 2004-05-18 | Sandisk Corporation | Non-volatile memory with improved programming and method therefor |
JP3957985B2 (ja) * | 2001-03-06 | 2007-08-15 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6570810B2 (en) * | 2001-04-20 | 2003-05-27 | Multi Level Memory Technology | Contactless flash memory with buried diffusion bit/virtual ground lines |
JP2003036681A (ja) | 2001-07-23 | 2003-02-07 | Hitachi Ltd | 不揮発性記憶装置 |
US6671204B2 (en) | 2001-07-23 | 2003-12-30 | Samsung Electronics Co., Ltd. | Nonvolatile memory device with page buffer having dual registers and methods of using the same |
JP3979486B2 (ja) * | 2001-09-12 | 2007-09-19 | 株式会社ルネサステクノロジ | 不揮発性記憶装置およびデータ格納方法 |
US7177197B2 (en) * | 2001-09-17 | 2007-02-13 | Sandisk Corporation | Latched programming of memory and method |
US6456528B1 (en) | 2001-09-17 | 2002-09-24 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
JP4454896B2 (ja) * | 2001-09-27 | 2010-04-21 | シャープ株式会社 | 仮想接地型不揮発性半導体記憶装置 |
GB0123410D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system for data storage and retrieval |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
GB0123412D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Memory system sectors |
KR100454119B1 (ko) * | 2001-10-24 | 2004-10-26 | 삼성전자주식회사 | 캐쉬 기능을 갖는 불 휘발성 반도체 메모리 장치 및 그것의 프로그램, 읽기, 그리고 페이지 카피백 방법들 |
US6977847B2 (en) | 2001-11-23 | 2005-12-20 | M-Systems Flash Disk Pioneers Ltd. | Detecting partially erased units in flash devices |
JP3874653B2 (ja) * | 2001-11-29 | 2007-01-31 | 富士通株式会社 | 圧縮テスト機能を有するメモリ回路 |
US6687158B2 (en) * | 2001-12-21 | 2004-02-03 | Fujitsu Limited | Gapless programming for a NAND type flash memory |
US6700820B2 (en) | 2002-01-03 | 2004-03-02 | Intel Corporation | Programming non-volatile memory devices |
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 |
US20030163692A1 (en) * | 2002-01-31 | 2003-08-28 | Brocade Communications Systems, Inc. | Network security and applications to the fabric |
JP4004811B2 (ja) | 2002-02-06 | 2007-11-07 | 株式会社東芝 | 不揮発性半導体記憶装置 |
US6836432B1 (en) | 2002-02-11 | 2004-12-28 | Advanced Micro Devices, Inc. | Partial page programming of multi level flash |
US6771536B2 (en) * | 2002-02-27 | 2004-08-03 | Sandisk Corporation | Operating techniques for reducing program and read disturbs of a non-volatile memory |
JP2004030784A (ja) * | 2002-06-26 | 2004-01-29 | Fujitsu Ltd | 半導体記憶装置 |
JP4225749B2 (ja) * | 2002-08-07 | 2009-02-18 | 株式会社ルネサステクノロジ | 半導体記憶装置 |
US7443757B2 (en) * | 2002-09-24 | 2008-10-28 | Sandisk Corporation | Non-volatile memory and method with reduced bit line crosstalk errors |
US7196931B2 (en) * | 2002-09-24 | 2007-03-27 | Sandisk Corporation | Non-volatile memory and method with reduced source line bias errors |
US6987693B2 (en) * | 2002-09-24 | 2006-01-17 | Sandisk Corporation | Non-volatile memory and method with reduced neighboring field errors |
US7046568B2 (en) * | 2002-09-24 | 2006-05-16 | Sandisk Corporation | Memory sensing circuit and method for low voltage operation |
US6940753B2 (en) * | 2002-09-24 | 2005-09-06 | Sandisk Corporation | Highly compact non-volatile memory and method therefor with space-efficient data registers |
US6983428B2 (en) * | 2002-09-24 | 2006-01-03 | Sandisk Corporation | Highly compact non-volatile memory and method thereof |
US6657891B1 (en) * | 2002-11-29 | 2003-12-02 | Kabushiki Kaisha Toshiba | Semiconductor memory device for storing multivalued data |
US7073103B2 (en) * | 2002-12-05 | 2006-07-04 | Sandisk Corporation | Smart verify for multi-state memories |
US7392436B2 (en) | 2003-05-08 | 2008-06-24 | Micron Technology, Inc. | Program failure recovery |
US7012835B2 (en) * | 2003-10-03 | 2006-03-14 | Sandisk Corporation | Flash memory data correction and scrub techniques |
US7490283B2 (en) * | 2004-05-13 | 2009-02-10 | Sandisk Corporation | Pipelined data relocation and improved chip architectures |
US7158421B2 (en) | 2005-04-01 | 2007-01-02 | Sandisk Corporation | Use of data latches in multi-phase programming of non-volatile memories |
US7120051B2 (en) * | 2004-12-14 | 2006-10-10 | Sandisk Corporation | Pipelined programming of non-volatile memories using early data |
US7420847B2 (en) | 2004-12-14 | 2008-09-02 | Sandisk Corporation | Multi-state memory having data recovery after program fail |
US7409473B2 (en) * | 2004-12-21 | 2008-08-05 | Sandisk Corporation | Off-chip data relocation |
US7849381B2 (en) | 2004-12-21 | 2010-12-07 | Sandisk Corporation | Method for copying data in reprogrammable non-volatile memory |
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 |
-
2004
- 2004-12-14 US US11/013,125 patent/US7120051B2/en active Active
-
2005
- 2005-11-28 CN CNB2005800469013A patent/CN100543878C/zh active Active
- 2005-11-28 WO PCT/US2005/043020 patent/WO2006065518A1/en active Application Filing
- 2005-11-28 JP JP2007546706A patent/JP4372196B2/ja not_active Expired - Fee Related
- 2005-11-28 EP EP05852349A patent/EP1829045B1/en not_active Not-in-force
- 2005-11-28 DE DE602005022487T patent/DE602005022487D1/de active Active
- 2005-11-28 AT AT05852349T patent/ATE475185T1/de not_active IP Right Cessation
- 2005-11-28 KR KR1020077013359A patent/KR101193584B1/ko not_active IP Right Cessation
- 2005-12-05 TW TW094142790A patent/TWI413125B/zh not_active IP Right Cessation
- 2005-12-14 US US11/304,783 patent/US7345928B2/en active Active
-
2006
- 2006-08-07 US US11/462,946 patent/US7301805B2/en active Active
-
2007
- 2007-06-11 IL IL183833A patent/IL183833A0/en unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030163629A1 (en) | 2002-02-22 | 2003-08-28 | Conley Kevin M. | Pipelined parallel programming operation in a non-volatile memory system |
Also Published As
Publication number | Publication date |
---|---|
US20060126390A1 (en) | 2006-06-15 |
EP1829045A1 (en) | 2007-09-05 |
TW200632921A (en) | 2006-09-16 |
JP2008523542A (ja) | 2008-07-03 |
US20060126393A1 (en) | 2006-06-15 |
US7301805B2 (en) | 2007-11-27 |
DE602005022487D1 (de) | 2010-09-02 |
KR20070101250A (ko) | 2007-10-16 |
US20070014153A1 (en) | 2007-01-18 |
ATE475185T1 (de) | 2010-08-15 |
JP4372196B2 (ja) | 2009-11-25 |
CN101107673A (zh) | 2008-01-16 |
CN100543878C (zh) | 2009-09-23 |
US7120051B2 (en) | 2006-10-10 |
TWI413125B (zh) | 2013-10-21 |
US7345928B2 (en) | 2008-03-18 |
IL183833A0 (en) | 2007-10-31 |
EP1829045B1 (en) | 2010-07-21 |
WO2006065518A1 (en) | 2006-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101193584B1 (ko) | 조기 데이타를 이용한 비휘발성 메모리의 파이프라인식프로그래밍 | |
US6522580B2 (en) | Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states | |
US6456528B1 (en) | Selective operation of a multi-state non-volatile memory system in a binary mode | |
US7385854B2 (en) | Selective operation of a multi-state non-volatile memory system in a binary mode | |
EP1769506B1 (en) | Multi-purpose non-volatile memory card | |
US7596031B2 (en) | Faster programming of highest multi-level state for non-volatile memory | |
US7778082B2 (en) | Non-volatile memory device and programming method | |
US7978522B2 (en) | Flash memory device including a dummy cell | |
US20050162913A1 (en) | Method of reading NAND memory to compensate for coupling between storage elements | |
US11574693B2 (en) | Memory apparatus and method of operation using periodic normal erase dummy cycle to improve stripe erase endurance and data retention | |
JP2009301621A (ja) | 半導体記憶装置 | |
KR20090110605A (ko) | 더미 셀을 포함하는 불휘발성 메모리 장치 및 그것의프로그램 방법 |
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: 20150918 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160921 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170919 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |