KR101502104B1 - 프로그래밍 동안에 간섭의 영향을 감소시키는 방법 - Google Patents

프로그래밍 동안에 간섭의 영향을 감소시키는 방법 Download PDF

Info

Publication number
KR101502104B1
KR101502104B1 KR1020107007347A KR20107007347A KR101502104B1 KR 101502104 B1 KR101502104 B1 KR 101502104B1 KR 1020107007347 A KR1020107007347 A KR 1020107007347A KR 20107007347 A KR20107007347 A KR 20107007347A KR 101502104 B1 KR101502104 B1 KR 101502104B1
Authority
KR
South Korea
Prior art keywords
volatile storage
group
storage elements
programming
program
Prior art date
Application number
KR1020107007347A
Other languages
English (en)
Other versions
KR20100085022A (ko
Inventor
다나 이
에밀리오 예로
Original Assignee
샌디스크 테크놀로지스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 샌디스크 테크놀로지스, 인코포레이티드 filed Critical 샌디스크 테크놀로지스, 인코포레이티드
Publication of KR20100085022A publication Critical patent/KR20100085022A/ko
Application granted granted Critical
Publication of KR101502104B1 publication Critical patent/KR101502104B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)
  • Non-Volatile Memory (AREA)

Abstract

이웃들의 부스팅으로부터의 간섭 영향을 감소시키는 비휘발성 저장소를 프로그램하는 시스템이 제공된다. 메모리 셀들은 둘 이상의 그룹으로 분할된다. 일 예에서, 메모리 셀들은 홀수 및 짝수 메모리 셀들로 분할된다. 그러나, 다른 그룹핑들(groupings)이 이용될 수도 있다. 제 1 트리거 이전에, 메모리 셀들의 제 1 그룹이 메모리 셀들의 제 2 그룹과 함께 프로그램된다. 상기 제 1 트리거 이후에, 상기 메모리 셀들의 제 1 그룹은 상기 메모리 셀들의 제 2 그룹과 별도로 프로그램된다. 제 2 트리거 이후에, 상기 메모리 셀들의 제 1 그룹은 상기 메모리 셀들의 제 2 그룹과 함께 프로그램된다. 제 1 트리거 및 제 2 트리거 이전과 이후에, 상기 메모리 셀들의 제 1 그룹은 상기 메모리 셀들의 제 2 그룹과 함께 프로그램된다.

Description

프로그래밍 동안에 간섭의 영향을 감소시키는 방법{REDUCING THE IMPACT OF INTERFERENCE DURING PROGRAMMING}
본 발명은 비휘발성 저장소(non-volatile storage)의 기술에 관한 것이다.
반도체 메모리를 다양한 전자 디바이스들에 사용하는 것이 점점 보편화되고 있다. 예를 들어 비휘발성 반도체 메모리는 휴대 전화기, 디지털 카메라, 개인 휴대 정보 단말기, 휴대용 연산 장치, 비-휴대용 연산 장치 및 기타 장치에서 사용된다. 전기적으로 소거 가능하고 프로그램 가능한 읽기 전용 메모리(EEPROM, Electrical Erasable Programmable Read Only Memory) 및 플래시 메모리가 가장 보편적인 비휘발성 반도체 메모리이다.
EEPROM과 플래시 메모리는, 반도체 기판의 채널 영역 위에 위치되어 채널 영역으로부터 절연되는 플로팅 게이트(floating gate)를 이용한다. 상기 플로팅 게이트는 소스와 드레인 영역 사이에 위치한다. 제어 게이트(control gate)는 상기 플로팅 게이트 위에 플로팅 게이트와 절연된 상태로 제공된다. 상기 트랜지스터의 임계 전압(threshold voltage)은 상기 플로팅 게이트 상에 유지되는 전하량에 의해 제어된다. 트랜지스터의 소스와 드레인 사이가 도통(conduction)이 되도록 트랜지스터가 턴온되기 전에 상기 제어 게이트에 인가되어야만 하는 최소 전압의 크기는 상기 플로팅 게이트 상의 전하 레벨에 의해 제어된다. 그러므로, (하나 이상의 트랜지스터들을 포함할 수 있는) 메모리 셀은 임계전압을 변경하기(change) 위하여 플로팅 게이트 상의 전하 수준을 변화시킴으로써 프로그램되거나 소거될 수 있다.
각 메모리 셀은 (아날로그 또는 디지털) 데이터를 저장할 수 있다. (바이너리 메모리 셀로 불리는) 디지털 데이터 1 비트를 저장할때, 메모리 셀의 가능한 임계 전압의 범위는, 논리 데이터 "1" 과 "0"에 할당되는 2개의 범위로 나뉜다. NAND 타입의 플래시 메모리의 일 실시예에서, 메모리 셀이 소거된 이후의 임계전압은 음(negative)의 값을 가지고, 이는 논리 "1"로서 정의된다. 프로그래밍 이후의 임계전압은 양(positive)의 값을 가지며, 이는 논리 "0"으로서 정의된다. 임계전압이 음이며, 제어 게이트에 0 볼트(V)가 인가되어 판독이 시도될 때, 메모리 셀은 턴온되어 논리 1을 저장하고 있음을 나타낼 것이다. 임계전압이 양이며, 제어 게이트에 0 볼트가 인가되어 판독 동작이 시도될 때, 메모리 셀은 턴온되지 않을 것이고, 이는 논리 0을 저장하고 있음을 나타낸다.
메모리 셀은 또한 (복수-상태 메모리 셀로 언급되는) 복수 레벨들의 정보를 저장할 수 있다. 다중 레벨의 데이터를 저장하는 경우에, 가능한 임계전압의 범위는 데이터 레벨의 수로 분할된다. 예를 들어 4개의 정보 레벨이 저장되는 경우, 데이터 값 "11", "10", "01" 및 "00"에 할당되는 4 개의 임계전압 범위들이 존재할 것이다. NAND 타입 메모리의 일 예에서, 소거 동작 이후의 임계전압은 음이고, "11"로서 정의된다. 양의 임계전압들은 "10", "01" 및 "00"의 상태들에 이용된다. 8개의 정보 레벨들(또는 상태들)이 각 메모리 셀(예를 들어, 3비트의 데이터를 위한)에 저장되는 경우, 데이터 값들 "000", "001", "010", "011", "100", "101", "110" 및 "111"에 할당된 8개의 임계전압 범위들이 존재할 것이다. 예를 들면, 미국 특허 번호 6,222,762 와 미국 특허 출원 번호 2004/0255090은 복수-상태의 플래시 메모리 셀들을 위한 다양한 데이터 인코딩 체계가 개시되어 있으며, 상기의 등록과 출원은 참고로서 본 명세서에 전체적으로 편입된다. 일 실시예에서, 데이터 값들은 그레이 코드 할당을 이용하여 임계전압 범위에 할당되는데, 이는 플로팅 게이트의 임계전압이 임계전압에 인접한 물리적 상태로 잘못 천이하였을때라도 단지 하나의 논리 비트만 영향을 받도록 하기 위함이다. 몇몇 실시예에서, 데이터 인코딩 스키마는 상이한 워드라인들에 대해서 변경될 수 있거나, 시간이 지남에 따라 데이터 인코딩 스키마가 변경될 수도 있다. 또는 랜덤 워드라인들에 대한 데이터 비트들이 반전되어 데이터 패턴의 민감도(sensitivity)를 감소시키거나 또는 메모리 셀들 상에서 약하게 할 수도 있다. 다른 인코딩 스키마가 사용될 수도 있다.
NAND 스트링 내의 NAND 플래시 메모리 디바이스와 같은 EEPROM 또는 플래시 메모리 디바이스를 프로그램할 때, 전형적으로, 프로그램 전압이 제어 게이트에 인가되고 비트라인은 접지된다. 채널로부터 전자들이 플로팅 게이트 내에 주입된다. 전자들이 플로팅 게이트에 축적되면, 그 플로팅 게이트는 음으로 대전되고, 메모리 셀의 임계 전압이 상승하게 되어, 그 메모리 셀은 프로그램 상태에 있게 된다. 이러한 프로그래밍에 대한 보다 많은 정보는, 그 명칭이 "Source Side Self Boosting Technique for Non-Volatile Memory"인 미국 특허 6,859,397호 및 그 명칭이 "Detecting Over Programmed Memory"인 미국 공개 특허 2005/0024939호에서 찾아볼 수 있으며, 이들 모두는 그 전체가 본 명세서의 참조로서 인용된다. 많은 디바이스들에서, 프로그램 동작 동안에 제어 게이트에 인가되는 프로그램 전압은 펄스들의 크기가 각 연속적인 펄스에서 사전에 정의된 단계 크기(step size) 만큼 증가되는 일련의 펄스들로 인가된다.
많은 비휘발성 저장 시스템들은 열과 행으로 배열된 메모리 셀들의 어레이를 포함한다. 제어 라인들(예를 들어, 워드라인들, 비트라인들, 또는 다른 유형의 제어 라인들)은 다양한 열과 행에 연결된다. 일 예에서, 비트라인들은 메모리 셀의 열에 액세스하는데 사용되는 반면, 워드라인들은 메모리 셀의 행에 액세스하는데 사용된다. 이러한 배열에서, 프로그램 전압의 일련의 펄스들은 선택된 메모리 셀들의 세트에 연결된 선택된 워드라인에 인가된다. 잠재적으로 펄스들을 수신하는 각 선택된 메모리 셀들은 그에 응답하여 상승되는 임계전압을 갖는다. 메모리 셀들이 목표 임계 전압에 도달함으로써, 메모리 셀들은 다른 프로그래밍으로부터 록 아웃된다(locked out). 메모리 셀들이 록 아웃됨으로써, 그 메모리 셀들에 인접하는 메모리 셀들의 예상되는 프로그래밍 속도(rate)에 간섭하는 것이 관찰되었다. 이 효과는 인접하는 메모리 셀들이 그들의 의도된 목표 임계전압보다 더 상승하게 하고(overshoot), 그러므로 오버 프로그램된다. 몇몇 경우에 오버 프로그램된 메모리 셀은 판독될 때 오류를 일으킨다.
본 명세서에서 설명되는 기술은 프로그래밍 동안에 인접하는 메모리 셀들 사이의 간섭 영향을 감소시키는 것을 제공하기 위한 것이다.
일 실시예는 제 1 시간에 비휘발성 저장 요소들의 제 1 그룹에 대해 프로그래밍을 수행하는 단계, 상기 제 1 시간과 상이한 제 2 시간에 비휘발성 저장 요소들의 제 2 그룹에 대해 프로그래밍을 수행하는 단계, 및 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 함께 검증하는 단계를 포함한다.
일 실시예는 비휘발성 저장 요소들의 세트에 다수의 프로그래밍 펄스들을 인가하는 단계를 포함한다. 상기 인가하는 단계는 의도적으로 비휘발성 저장 요소들의 제 2 서브세트를 프로그램하지 않고 비휘발성 저장 요소들의 제 1 서브세트를 제 1 프로그래밍 펄스로 프로그램하는 단계와 의도적으로 비휘발성 저장 요소들의 제 1 서브세트를 프로그램하지 않고 비휘발성 저장 요소들의 제 2 서브세트를 제 2 프로그래밍 펄스로 프로그램하는 단계를 포함한다. 상기 프로세스는 상기 제 1 프로그래밍 펄스 및 상기 제 2 프로그래밍 펄스를 인가하는 단계 이후에 상기 비휘발성 저장 요소들의 세트에 대한 검증을 수행하는 단계를 더 포함한다. 상기 검증 프로세스는 상기 비휘발성 저장 요소들의 제 1 서브세트가 제 1 프로그램 펄스에 반응하여 하나 이상의 목표들에 도달했는지 검증하는 단계와 상기 비휘발성 저장 요소들의 제 2 서브세트가 제 2 프로그램 펄스에 반응하여 하나 이상의 목표들에 도달했는지 검증하는 단계를 포함한다.
일 실시예는 제 1 트리거 이전에 비휘발성 저장 요소들의 제 1 그룹 및 비휘발성 저장 요소들의 제 2 그룹을 함께 프로그램하고 함께 검증하는 단계를 포함한다. 상기 제 1 트리거 이후에, 상기 비휘발성 저장 요소들의 제 1 그룹은 상기 비휘발성 저장 요소들의 제 2 그룹과 별도로 프로그램되고 상기 비휘발성 저장 요소들의 제 1 그룹은 상기 비휘발성 저장 요소들의 제 2 그룹과 함께 검증된다.
일 실시예는, 제 1 조건을 검출하기 전에, 하나 이상의 프로그래밍 싸이클들의 세트를 수행하는 단계를 포함한다. 상기 프로그래밍 싸이클들 각각은 비휘발성 저장 요소들의 제 1 서브세트를 프로그램하기 위한 제 1 펄스를 비휘발성 저장 요소들의 제 2 서브세트를 프로그램하기 위한 제 2 펄스와 별도로 이용하는 단계를 포함한다. 상기 하나 이상의 프로그램 싸이클들은 상기 비휘발성 저장 요소들의 제 1 서브세트 및 상기 비휘발성 저장 요소들의 제 2 서브세트를 검증하는 단계를 포함한다. 제 1 조건을 검출한 후에, 하나 이상의 프로그램 싸이클들의 그룹이 수행된다. 상기 하나 이상의 프로그램 싸이클들의 그룹 각각은 상기 비휘발성 저장 요소들의 제 1 서브세트 및 상기 비휘발성 저장 요소들의 제 2 서브세트를 함께 프로그램하기 위한 하나의 펄스를 이용하는 단계를 포함한다. 상기 하나 이상의 프로그램 싸이클들의 그룹은 상기 비휘발성 저장 요소들의 제 1 서브세트 및 상기 비휘발성 저장 요소들의 제 2 서브세트를 검증하는 단계를 포함한다.
일 실시예는 (비휘발성 저장 요소들의 제 1 그룹 및 비휘발성 저장 요소들의 제 2 그룹을 포함하는) 다수의 비휘발성 저장 요소들 및 상기 비휘발성 저장 요소들과 통신하는 하나 이상의 관리 회로들을 포함한다. 상기 하나 이상의 관리 회로들은 상기 비휘발성 저장 요소들의 제 1 그룹을 상기 비휘발성 저장 요소들의 제 2 그룹과는 별도로 프로그램한다. 상기 하나 이상의 관리 회로들은 상기 비휘발성 저장 요소의 제 1 그룹을 상기 비휘발성 저장 요소들의 제 2 그룹과 함께 검증한다.
일 실시예는 (비휘발성 저장 요소들의 제 1 그룹 및 비휘발성 저장 요소들의 제 2 그룹을 포함하는) 다수의 비휘발성 저장 요소들 및 상기 비휘발성 저장 요소들과 통신하는 하나 이상의 관리 회로들을 포함한다. 트리거 이전에 상기 하나 이상의 관리 회로들은 하나 이상의 프로그램 싸이클들의 제 1 세트를 수행하고, 트리거 이후에 상기 하나 이상의 관리 회로들은 하나 이상의 프로그램 싸이클들의 제 2 세트를 수행한다. 상기 하나 이상의 프로그램 싸이클들의 제 1 세트 각각은 상기 비휘발성 저장 요소들의 그룹을 함께 프로그램하기 위하여 하나의 펄스를 이용한다. 상기 하나 이상의 프로그램 싸이클들의 제 1 세트 각각은 상기 비휘발성 저장 요소들의 그룹을 함께 검증한다. 상기 하나 이상의 프로그램 싸이클들의 제 2 세트 각각은 상기 비휘발성 저장 요소들의 제 1 서브세트를 프로그램하기 위한 제 1 펄스를 상기 비휘발성 저장 요소들의 제 2 서브세트를 프로그램하기 위한 제 2 펄스와 별도로 이용한다. 상기 하나 이상의 프로그램 싸이클들의 제 2 세트 각각은 상기 비휘발성 저장 요소들의 그룹을 함께 검증한다.
일 실시예는 비휘발성 저장 요소들의 제 1 그룹, 비휘발성 저장 요소들의 제 2 그룹, 및 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹과 통신하는 하나 이상의 관리 회로들을 포함한다. 조건 이전에, 상기 하나 이상의 관리 회로들은 상기 비휘발성 저장 요소들의 제 1 그룹을 상기 비휘발성 저장 요소들의 제 2 그룹과 별도로 프로그램하고 상기 비휘발성 저장 요소들의 제 1 그룹을 상기 비휘발성 저장 요소들의 제 2 그룹과 함께 검증한다. 조건 이후에, 상기 하나 이상의 관리 회로들은 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 함께 프로그램하고 검증한다.
본 발명은 프로그래밍 동안에 인접하는 메모리 셀들 사이의 간섭 영향을 감소시킬 수 있다.
도 1은 NAND 스트링의 평면도이다.
도 2는 NAND 스트링의 등가 회로도이다.
도 3은 비휘발성 메모리 시스템의 블록도이다.
도 4는 메모리 어레이의 일 실시예를 도시하는 블록도이다.
도 5는 감지 블록의 일 실시예를 도시하는 블록도이다.
도 6은 임계전압 분포들의 예시적인 세트와 비휘발성 메모리를 프로그램하기 위한 프로세스를 도시한다.
도 7A 내지 7I는 다양한 임계전압 분포들 및 비휘발성 메모리를 프로그램하기 위한 프로세스를 도시한다.
도 8은 비휘발성 메모리의 프로그래밍 순서의 일 예를 도시하는 테이블이다.
도 9는 비휘발성 메모리의 프로그래밍 프로세스의 일 실시예를 도시하는 흐름도이다.
도 10은 비휘발성 메모리 엘리먼트들의 프로그래밍 프로세스의 일 실시예를 도시하는 흐름도이다.
도 11A 내지 11C는 두 개의 예시적인 이웃 메모리 셀들의 부분들을 도시한다.
도 12는 프로그램 펄스들의 세트를 도시한다.
도 13은 프로그램 펄스들의 세트를 도시한다.
도 14는 프로그램 펄스들 및 검증 펄스들의 세트를 도시한다.
도 15는 프로그램 펄스들 및 검증 펄스들의 세트를 도시한다.
도 16은 예시적 파상을 도시한다.
도 17은 조건이 존재하는지 결정하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 18은 조건이 존재하는지 결정하는 회로의 일 실시예의 블록도이다.
도 19는 조건이 존재하는지 결정하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 20은 조건이 존재하는지 결정하는 회로의 일 실시예의 블록도이다.
도 21은 프로그래밍 프로세스를 변경하기 위한 트리거 포인트를 결정하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 22는 프로그래밍 프로세스를 변경하기 위한 트리거 포인트를 결정하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 23는 프로그래밍 프로세스를 변경하기 위한 트리거 포인트를 결정하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 24는 트리거 전압을 동적으로 변경하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 25는 도 24의 프로세스를 구현하는 컴포넌트들의 일부를 도시하는 블록도이다.
도 26은 트리거 전압을 동적으로 조정하는 프로세스의 일 실시예를 도시하는 흐름도이다.
도 27은 도 26의 프로세스를 구현하는 컴포넌트들의 일부를 도시하는 블록도이다.
플래시 메모리 시스템의 일 실시예는 NAND 구조를 이용하는 것으로, NAND 구조는 두 개의 선택 게이트들 사이에 직렬로 배열된 다중 트랜지스터(multiple transistor)를 포함하여 이루어진다. 상기 직렬의 트랜지스터들과 선택 게이트들은 NAND 스트링(string)으로 일컬어진다. 도 1은 하나의 NAND 스트링을 도시한 평면도이며, 도 2는 그에 대한 등가 회로도이다. 도 1과 도 2에서 도시된 상기 NAND 스트링은 직렬의 4개의 트랜지스터들(100, 102, 104 및 106)을 포함하며, 제 1(또는 드레인 사이드) 선택 게이트(120)와 제 2(또는 소스 사이드) 선택 게이트(122) 사이에 중첩되어 있다. 선택 게이트(120)는 비트라인 콘택트(126)를 통해 상기 NAND 스트링을 비트라인에 연결시킨다. 선택 게이트(122)는 상기 NAND 스트링을 소스라인 콘택트(128)에 연결시킨다. 선택 게이트(120)는 선택라인(SGD)에 적절한 전압들을 인가함으로써 제어된다. 선택 게이트(122)는 선택라인(SGS)에 적절한 전압들을 인가함으로써 제어된다. 각각의 트랜지스터들(100, 102, 104, 및 106)은 하나의 제어 게이트와 하나의 플로팅 게이트를 갖는다. 예를 들어, 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 포함하여 구성된다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 포함하여 구성된다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 포함하여 구성된다. 제어 게이트(100CG)는 워드라인(WL3)에 연결되며, 제어 게이트(102CG)는 워드라인(WL2)에 연결되고, 제어 게이트(104CG)는 워드라인(WL1)에 연결되고, 제어 게이트(106CG)는 워드라인(WL0)에 연결된다.
비록 도 1 및 도 2가 NAND 스트링에서의 4개의 메모리 셀들을 도시하고 있지만, 4개의 메모리 셀을 사용하는 것은 단지 일 예로써 제시된 것이다. NAND 스트링은 4개 보다 적은 메모리 셀들을 가지거나 4개보다 많은 메모리 셀들을 가질 수 있다. 예를 들어, 어떤 NAND 스트링들은 8개, 16개, 32개, 64개, 128개 등의 메모리 셀들을 포함할 수 있다. 본 설명에서의 NAND 스트링의 메모리 셀들의 개수가 특정한 개수에 한정되는 것은 아니다.
NAND 구조를 이용하는 플래시 메모리 시스템의 전형적인 아키텍쳐는 다수의 NAND 스트링들을 포함할 것이다. 각각의 NAND 스트링은 선택라인(SGS)에 의해 제어되는 NAND 스트링의 소스 선택 게이트에 의해 소스라인에 연결되고, 선택라인(SGD)에 의해 제어되는 드레인 선택 게이트에 의해 NAND 스트링의 연관된 비트라인에 연결된다. 각각의 비트라인 및 비트라인 컨택트를 통해 상기 비트라인에 연결된 각각의 NAND 스트링(들)은 메모리 셀 어레이의 열을 구성한다. 비트라인들은 다수의 NAND 스트링들에 공유된다. 전형적으로, 비트라인은 NAND 스트링들의 상부에서 워드라인들과 직교하는 방향으로 진행하고(runs), 하나 이상의 감지 증폭기들에 연결된다.
NAND 타입의 플래시 메모리들과 그 동작에 관련한 적절한 실시예들은 미국 특허 번호 5,570,315; 미국 특허 번호 5,774,397; 미국 특허 번호 6,046,935; 미국 특허 번호 6,456,528; 및 미국 공개 번호 US2003/0002348에서 제시되었으며, 이들 모두 본 발명에 참고로서 편입된다. 본 명세서의 설명은 NAND, 다른 타입의 비휘발성 메모리 뿐만 아니라 다른 타입의 플래시 메모리에 적용될 수도 있다.
NAND 플래시 메모리 뿐만 아니라, 다른 타입의 비휘발성 저장 디바이스도 사용될 수 있다. 예를 들어, 비휘발성 메모리 디바이스들은 전하를 저장하기 위해 유전체 층을 이용하는 메모리 셀들로부터 제조될 수도 있다. 앞서 설명된 전도성의 플로팅 게이트 소자 대신에 유전체 층이 사용된다. 유전체 저장 소자를 이용하는 이와 같은 메모리 디바이스들은 Eitan 등의 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell" (IEEE Electron Device Letters, vol.21, no.11, 2000년 11월, 페이지 543-545)에 의해 설명되었다. ONO 유전체 층은 소스 및 드레인 확산들 간의 채널을 가로질러 연장된다. 하나의 데이터 비트를 위한 전하는 상기 드레인에 인접한 유전체 층에 국부화(localizing)되고 다른 데이터 비트를 위한 전하는 상기 소스에 인접한 유전체 층에 국부화된다. 예를 들어, 미국 특허 번호 5,768,192 및 6,011,725는 두 실리콘 이산화층 사이에 중첩된 트래핑(trapping) 유전체를 포함하는 비휘발성 메모리 셀을 개시한다. 복수 상태 데이터의 저장은, 상기 유전체 내에 공간적으로 분리된 전하 저장 영역들의 이진 상태(binary state)들을 개별적으로 판독함으로써 구현될 수 있다. 다른 타입의 비휘발성 저장 요소가 이용될 수도 있다.
도 3은 메모리 셀들(예를 들어, NAND 복수-상태 플래시 메모리)의 페이지(또는 다른 유닛)를 병렬로 판독 및 프로그램하기 위한 판독/기록 회로들을 포함하는 메모리 디바이스(210)를 도시한다. 메모리 디바이스(210)는 하나 이상의 메모리 다이 또는 칩(212)을 포함한다. 메모리 다이(212)는 메모리 셀들(200)의 (2차원 또는 3차원) 어레이(200), 제어 회로(220) 및 판독/기록 회로들(230A 및 230B)을 포함한다. 일 실시예에서, 다양한 주변 회로들에 의한 메모리 어레이(200)로의 액세스는, 어레이의 반대측들 상에서, 대칭적인 방식으로 실시되며, 이에 따라 각 측 상의 회로들 및 액세스 라인들의 밀도는 반으로 줄어든다. 판독/기록 회로들(230A 및 230B)은 메모리 셀들의 페이지를 병렬로 판독 또는 프로그램하기 위한 다중 감지 블록들(300)을 포함한다. 메모리 어레이(200)는 로우 디코더(240A 및 240B)를 통해 워드 라인들에 의해 어드레스가능하며, 그리고 컬럼 디코더(242A 및 242B)를 통해 비트라인들에 의해 어드레스가능하다. 워드라인들 및 비트라인들은 컬럼라인들의 예이다. 전형적인 실시예에서, 제어기(244)는 하나 이상의 메모리 다이(212)로서 동일한 메모리 디바이스(210) (예를 들어, 제거가능한 저장 카드 또는 패키지) 내에 포함된다. 커맨드들 및 데이터는 라인들(232)을 통해 호스트와 제어기(244) 사이에, 그리고 라인들(234)을 통해 제어기와 하나 이상의 메모리 다이(212) 사이에 전송된다.
제어 회로(220)는 메모리 어레이(200) 상에서 메모리 동작들을 수행하기 위해 판독/기록 회로들(230A 및 230B)과 협동한다. 제어 회로(220)는 상태 머신(222), 온칩 어드레스 디코더(224) 및 전력 제어 모듈(226)을 포함한다. 상태 머신(222)은 메모리 동작들의 칩 레벨 제어를 제공한다. 온칩 어드레스 디코더(224)는 호스트 또는 메모리 제어기에 의해 이용되는 어드레스와 디코더들(240A, 240B, 242A 및 242B)에 의해 이용되는 하드웨어 어드레스 사이에서 어드레스 인터페이스를 제공한다. 전력 제어 모듈(226)은 메모리 동작 동안에 워드라인들 및 비트라인들에 공급되는 전력 및 전압들을 제어한다. 일 실시예에서, 전력 제어 모듈(226)은 공급 전압보다 큰 전압을 생성할 수 있는 하나 이상의 전하 펌프를 포함한다.
일 실시예에서, 제어 회로(220), 전력 제어 모듈(226), 디코더 회로(224), 상태 머신 회로(222), 디코더 회로들(242A, 242B, 240A, 240B), 판독/기록 회로들(230A, 230B), 및 또는 제어기(244) 중에서 어느 하나 또는 이들의 결합이 하나 이상의 관리 회로들로 일컬어질 수 있다. 하나 이상의 관리 회로들은 본 명세서에서 설명된 프로세스들을 수행한다.
도 4는 메모리 셀 어레이(200)의 예시적인 구조를 도시한다. 일 실시예에서, 메모리 셀들의 어레이는 메모리 셀들의 다수의 블록들(예를 들어, 블록들 0-1023, 또는 다른 양)로 분할된다. 플래시 EEPROM 시스템들에 대해 일반적인 것으로서, 블록은 소거의 단위이다. 즉, 각 블록은 함께 소거되는 최소수의 메모리 셀들을 포함한다. 또한, 다른 소거 단위가 이용될 수 있다.
블록은 비트라인들(예를 들어, 비트라인들(BL0-BL69623)) 및 워드라인들(WL0, WL1, WL2, WL3)을 통해 액세스되는 NAND 스트링들의 세트를 포함한다. 도 4는 NAND 스트링을 형성하기 위하여 연속하여 연결된 4개의 메모리 셀들을 도시한다. 각 NAND 스트링 내에 4개의 셀들이 포함되는 것으로 도시되었지만, 4개보다 더 많거나 적은 수가 이용될 수 있다(예를 들어, 16, 32, 64, 128 또는 다른 수의 메모리 셀들이 NAND 스트링 상에 존재할 수 있다). NAND 스트링의 일 단말은 (선택 게이트 드레인 라인(SGD)에 연결된) 드레인 선택 게이트를 통해 대응하는 비트라인에 연결되고, 다른 단말은 (선택 게이트 소스 라인(SGS)에 연결된) 소스 선택 게이트를 통해 소스 라인에 연결된다.
전형적으로, 각 블록은 다수의 페이지들로 분할된다. 일 실시예에서, 하나의 페이지는 프로그래밍의 단위이다. 또한, 프로그래밍의 다른 단위들도 이용될 수 있다. 전형적으로, 하나 이상의 데이터 페이지들은 메모리 셀들의 하나의 로우에 저장된다. 예를 들어, 하나 이상의 데이터 페이지들은 공통 워드 라인에 연결된 메모리 셀들에 저장된다. 하나의 페이지는 하나 이상의 섹터들을 저장할 수 있다. 섹터는 사용자 데이터 및 (또한 시스템 데이터로 불리는) 오버헤드 데이터를 포함한다. 전형적으로, 오버헤드 데이터는 헤더 정보 및 섹터의 사용자 데이터로부터 계산되는 에러 정정 코드(ECC)를 포함한다. 제어기(또는 다른 컴포넌트)는 데이터가 어레이 내에 프로그램되고 있을 때에는 ECC를 계산하고, 데이터가 어레이로부터 판독되고 있을 때에는 상기 ECC를 체크한다. 대안적으로, ECC들 및/또는 다른 오버헤드 데이터는 이들에 관한 사용자 데이터와는 다른 페이지들에 저장될 수 있으며, 심지어는 다른 블록들에 저장될 수도 있다. 전형적으로, 사용자 데이터의 섹터는 512 바이트(bytes)인데, 이는 자기 디스크 드라이브의 섹터 사이즈에 대응한다. 예를 들어 8 페이지가 하나의 블록을 형성하거나 또는 32, 64, 128 또는 그 이상의 페이지들이 블록을 형성할 수도 있다. 상이한 사이즈의 블록들, 페이지들 및 섹터들이 이용될 수도 있다.
도 5는 코어 부분(감지 모듈(480)로서 지칭됨)과 공통 부분(490)으로 분할되는 개별적인 감지 블록(300)의 블록도이다. 일 실시예에서, 각 비트라인에 대해 개별적인 감지 모듈(480)이 있고, 다수의 감지 모듈들(480)의 세트에 대해 하나의 공통 부분(490)이 있다. 일 예에서, 하나의 감지 블록은 하나의 공통 부분(490) 및 8개의 감지 모듈들(480)을 포함한다. 그룹 내의 감지 모듈들 각각은 데이터 버스(472)를 통해 관련된 공통 부분과 통신한다. 전체가 본원의 참조로서 편입되는 미국 공개 특허 번호 2006/0140007에서 일 예가 발견될 수 있다.
감지 모듈(480)은 감지 회로(470)를 포함하는 바, 이 감지 회로(470)는 연결된 비트라인 내의 도통 전류가 소정의 임계 레벨 보다 큰지 아니면 작은 지를 결정한다. 일부 실시예들에서, 감지 모듈(480)은 일반적으로 감지 증폭기라 지칭되는 회로를 포함한다. 감지 모듈(480)은 또한 연결된 비트라인 상에 전압 조건을 설정하는 데에 이용되는 비트라인 래치(482)를 포함한다. 예를 들어, 비트라인 래치(482)에 래치되는 미리 결정된 상태에 의해, 연결된 비트라인은 프로그램 금지를 나타내는 상태(예를 들어, Vdd)가 된다.
공통 부분(490)은 프로세서(492), 데이터 래치들의 세트(494), 및 데이터 버스(420) 및 데이터 래치들의 세트(494) 사이에 결합되는 I/O 인터페이스(496)를 포함한다. 프로세서(492)는 계산을 수행한다. 예를 들어, 프로세서의 기능들 중 하나는 감지된 메모리 셀에 저장된 데이터를 결정하고, 결정된 데이터를 데이터 래치들의 세트에 저장하는 것이다. 데이터 래치들의 세트(494)는 판독 동작 동안 프로세서(492)에 의해 결정되는 데이터 비트들을 저장하는 데에 이용된다. 이는 또한, 프로그램 동작 동안 데이터 버스(420)로부터 들어오는(imported) 데이터 비트들을 저장하는 데에 이용된다. 이러한 들어오는 데이터 비트들은 메모리 내에 프로그램되는 것으로 의도되는 기록 데이터를 나타낸다. I/O 인터페이스(496)는 데이터 래치들(494)과 데이터 버스(420) 간의 인터페이스를 제공한다.
판독 또는 감지 동안, 시스템의 동작은 상태 머신(222)에 의해 제어되는 바, 이러한 상태 머신은 어드레스되는 메모리 셀(들)로의 서로 다른 제어 게이트 전압들의 공급을 제어한다(전력 제어(226)를 이용). 메모리에 의해 지원되는 다양한 메모리 상태들에 해당하는 미리 정의된 다양한 제어 게이트 전압들을 통해 스텝(step)형으로 나아가기 때문에, 감지 모듈(480)은 이러한 전압들 중 하나의 전압에서 트립(trip)되며, 감지 모듈(480)로부터 버스(472)를 통해 프로세서(492)에 출력이 제공될 것이다. 이때, 프로세서(492)는 입력 라인들(493)을 통해 상태 머신으로부터 인가되는 제어 게이트에 대한 정보 및 감지 모듈의 트리핑 이벤트(들)를 고려하여, 결과적인 메모리 상태를 결정한다. 그런 다음, 그 메모리 상태에 대한 바이너리 인코딩을 계산하고, 결과적인 데이터 비트들을 데이터 래치들(494)에 저장한다. 코어 부분의 다른 실시예에서, 비트라인 래치(482)는 이중의 임무를 제공한다. 즉, 감지 모듈(480)의 출력을 래치하는 래치로서, 그리고 상기 설명한 바와 같은 비트라인 래치로서의 임무를 제공한다.
어떠한 구현들은 다수의 프로세서들(492)을 포함할 것임이 예상된다. 일 실시예에서, 각 프로세서(492)는 출력라인(도 5에는 미도시)을 포함할 것이며, 이에 따라 출력 라인들 각각은 서로 와이어드 오아(wired-OR)된다. 어떠한 실시예들에서, 출력 라인들은 와이어드-OR 라인에 연결되기 전에 반전된다. 이러한 구성은 프로그래밍 검증 프로세스 동안, 프로그래밍 프로세스가 완료된 때를 빠르게 결정할 수 있게 하는데, 이는 와이어드-OR 라인을 수신하는 상태 머신이 프로그램되고 있는 모든 비트들이 원하는 레벨에 도달되는 때를 결정할 수 있기 때문이다. 예를 들어, 각 비트가 자신의 원하는 레벨에 도달하면, 그 비트에 대한 논리 0이 와이어드-OR 라인에 전송될 것이다(또는 데이터 1이 반전된다). 모든 비트들이 데이터 0을 출력하면(또는 데이터 1이 반전되면), 상태 머신은 프로그래밍 프로세스를 종료해야 함을 알게 된다. 각 프로세서가 8개의 감지 모듈들과 통신하는 실시예들에서, 상태 머신은 (일부 실시예들에서) 와이어드-OR 라인을 8번 판독할 필요가 있거나, 또는 관련된 비트라인들의 결과를 누적하기 위해 프로세서(492)에 논리가 부가됨으로써, 상태 머신은 와이어드-OR 라인을 단지 한번만 판독하면 된다.
데이터 래치 스택(494)은 감지 모듈에 대응하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(480)마다 3개(또는 4개 또는 다른 수)의 데이터 래치들이 존재한다. 일 실시예에서, 래치들은 각 1비트가 된다.
프로그램 또는 검증 동안, 프로그램되어야 하는 데이터는 데이터 버스(420)로부터 데이터 래치들의 세트(494)에 저장된다. 검증 프로세스 동안에, 프로세서(492)는 원하는 메모리 상태에 대하여 검증된 메모리 상태를 모니터한다. 이러한 2개의 상태가 일치하면, 프로세서(492)는 비트라인이 프로그램 금지를 나타내는 상태가 될 수 있도록 비트라인 래치(482)를 설정한다. 이에 의해, 그 비트라인에 결합된 메모리 셀은, 자신의 제어 게이트 상에 프로그래밍 펄스가 가해진다고 할지라도, 더 이상 프로그램되는 것이 금지된다. 다른 실시예들에서, 프로세서는 처음에 비트라인 래치(482)를 로드(load)하고, 감지 회로는 검증 프로세스 동안 이를 금지 값으로 설정한다.
일부 구현들에서(하지만, 반드시 요구되는 것은 아니다), 데이터 래치들은 시프트 레지스터로서 구현되며, 이에 따라 그 안에 저장된 병렬 데이터는 데이터 버스(420)에 대해 직렬 데이터로 변환되며, 그 반대의 경우 역시 마찬가지이다. 바람직한 일 실시예에서, m개의 메모리 셀들의 판독/기록 블록에 해당하는 모든 데이터 래치들은 함께 링크되어 블록 시프트 레지스터를 형성하며, 이에 따라 데이터의 블록은 직렬 전송에 의해 입력 또는 출력될 수 있다. 특히, 기록/판독 모듈들의 뱅크(bank)는, 데이터 래치들의 세트 각각이 (이들이 전체 판독/기록 블록에 대한 시프트 레지스터의 일부인 것처럼) 데이터 버스로/로부터 데이터를 직렬로 시프트시키도록 적합하게 된다.
감지 동작들과 감지 증폭기들에 대한 부가적인 정보는 다음에서 찾아볼 수 있다. (1) 2004년 3월 25일 공개되었으며 그 명칭이 "Non-Volatile Memory And Method With Reduced Source Line Bias Errors"인 미국 공개 특허 2004/0057287; (2) 2004년 6월 10일 공개되었으며 그 명칭이 "Non-Volatile Memory And Method with Improved Sensing"인 미국 공개 특허 2004/0109357; (3) 미국 공개 특허 2005/0169082; (4) 2005년 4월 5일 발명자 Jian Chen에 의해 출원되었으며 그 명칭이 "Compensating for Coupling During Read Operations of Non-Volatile Memory"인 미국 공개 특허 2006/0221692; 및 (5) 2005년 12월 28일 발명자들 Siu Lung Chan 및 Raul-Adrian Cernea에 의해 출원되었으며 그 명칭이 "Reference Sense Amplifier For Non-Volatile Memory"인 미국 특허 출원 11/321,953. 상기 리스트의 5개의 모든 특허 문서들은 그 전체가 본원의 참조로서 편입된다.
(검증에 의한) 성공적인 프로그래밍 프로세스의 종료시에, 바람직하게는 메모리 셀들의 임계전압들은 프로그램된 메모리 셀들에 대한 임계전압들의 하나 이상의 분포들 내 또는 소거된 메모리 셀들에 대한 임계전압들의 하나의 분포 내에 존재해야 한다. 도 6은 각 메모리 셀이 3비트의 데이터를 저장하는 경우의 메모리 셀에 대한 임계전압 분포들(또는 데이터 상태들)의 예를 나타낸다. 그러나, 다른 실시예는 메모리 셀당 3비트보다 많거나 적은 데이터(예를 들어, 메모리 셀당 4 비트 이상의 데이터와 같은)를 이용할 수 있다.
도 6의 예에서, 각 메모리 셀은 3비트의 데이터를 저장하고; 그러므로, 8개의 유효 데이터 상태(S0-S7)가 존재한다. 일 실시예에서, 데이터 상태(S0)는 0볼트 미만이고 데이터 상태들(S1-S7)은 0볼트 이상이다. 다른 실시예들에서, 모든 8개의 데이터 상태들은 0볼트 미만이거나, 다른 방식들이 구현될 수 있다. 일 실시예에서, 임계전압 분포(S0)는 분포들(S1-S7)보다 넓다.
각 데이터 상태는 메모리 셀에 저장된 3비트에 대한 유일한 값에 대응한다. 일 실시예에서, S0은 111, S1은 110, S2는 101, S3는 100, S4는 011, S5는 010, S6는 001 및 S7은 000에 대응한다. 데이터의 상태들(S0-S7)로의 다른 맵핑도 이용될 수 있다. 일 실시예에서, 메모리 셀에 저장된 데이터의 모든 비트들은 동일한 논리 페이지에 저장된다. 다른 실시예들에서, 메모리 셀에 저장된 각각의 비트는 다른 페이지들에 대응한다. 그러므로, 3비트의 데이터를 저장하는 메모리 셀은 제 1 페이지, 제 2 페이지 및 제 3 페이지에 데이터를 저장할 것이다. 몇몇 실시예들에서, 동일한 워드라인에 연결된 모든 메모리 셀들은 데이터의 동일한 3개의 페이지들에 데이터를 저장할 것이다. 몇몇 실시예들에서, 워드라인에 연결된 메모리 셀들은 페이지들의 (예를 들어, 홀수 및 짝수 비트라인들에 의하거나 다른 방식들에 의해) 상이한 세트들로 그룹화될(grouped) 수 있다.
일부 종래 기술의 디바이스들에서, 메모리 셀들은 상태(S0)로 소거될 것이다. 상태(S0)로부터, 메모리 셀들은 어떤 상태들(S1-S7)로도 프로그램될 수 있다. 풀 시퀀스 프로그래밍으로 알려진 일 실시예에서, 메모리 셀들은 소거 상태(S0)로부터 프로그램 상태(S1-S7) 중 어느 하나의 상태로 바로 프로그램될 수 있다. 예를 들면, 프로그램되어야 하는 메모리 셀들의 집단(population)이 먼저 소거됨으로써, 그 집단내의 모든 메모리 셀들이 소거 상태(S0)가 된다. 몇몇 메모리 셀들이 상태(S0)에서 상태(S1)로 프로그램되는 동안, 다른 메모리 셀들은 상태(S0)에서 상태(S2), 상태(S0)에서 상태(S3), 상태(S0)에서 상태(S4), 상태(S0)에서 상태(S5), 상태(S0)에서 상태(S6) 및 상태(S0)에서 상태(S7)로 프로그램된다. 풀 시퀀스 프로그래밍은 도 6의 7개의 굽은 화살표들에 의해 그래프로 도시된다.
도 7A 내지 도 7I는 비휘발성 메모리를 프로그램하는 다른 프로세스를 개시하는바, 이는 임의의 특정 메모리 셀에 대하여, 이전의 페이지들에 대해 인접하는 메모리 셀들을 기록한 이후에 특정 페이지에 관하여 상기 특정 메모리 셀을 기록함으로써, 플로팅 게이트 간의 결합(floating gate to floating gate coupling) 효과를 감소시킨다. 도 7A 내지 도 7I의 프로세스는 3 단계의 프로그래밍 프로세스이다. 제 1 단계에 우선하여, 메모리 셀들은 메모리 셀들이 소거 임계 분포 상태(S0)가 되기 위하여 소거될 것이다.
도 7A 내지 도 7I의 프로세스는 각 메모리 셀이 각 비트가 상이한 페이지 내에 존재하는 3비트의 데이터를 저장한다고 가정한다. 데이터의 첫번째 비트(가장 왼쪽 비트)는 제 1 페이지와 연관된다. 데이터의 중간 비트는 제 2 페이지와 연관된다. 가장 오른쪽 비트는 제 3 페이지와 연관된다. 데이터 상태의 데이터와의 연관성은 다음과 같다: S0=111, S1=110, S2=101, S3=100, S4=011, S5=010, S6=001 및 S7=000. 그러나, 다른 실시예들은 다른 데이터 인코딩 스키마를 이용할 수 있다.
(도 7A에 도시된 바와 같이) 제 1 페이지를 프로그램할 때, 비트가 데이터 "1"이 되어야 하는 경우에 메모리 셀은 상태(S0)(임계전압 분포(502))로 프로그램된다. 비트가 데이터 "0"이 되어야 하는 경우에 메모리 셀은 상태(S4)(임계전압 분포(504))로 프로그램된다. 인접한 메모리 셀들이 프로그램된 후에, 인접한 플로팅 게이트 사이의 용량성(capacitive) 커플링은 도 7B에 도시된 바와 같이 상태(S4)를 넓어지게 한다. 상태(S0)도 넓어질 수 있으나, S0과 S1 사이에는 그 효과를 무시할 수 있을 정도로 충분한 여유가 존재한다. 인접한 플로팅 게이트 사이의 용량성 커플링에 관한 더 많은 정보는 미국 특허 5,867,429 및 미국 특허 6,657,891에서 제시되었으며, 이들 모두 본 명세서에 참고로서 편입된다.
제 2 페이지를 프로그램할 때(도 7C 참조), 메모리 셀이 상태(S0)에 있고 제 2 페이지 비트가 데이터 "1"이면, 메모리 셀은 상태(S0)에 머무른다. 몇몇 실시예들에서, 제 2 페이지에 대한 프로그래밍 프로세스는 임계전압 분포(501)를 새로운 S0으로 좁힐 것이다. 메모리 셀이 상태(S0)에 있고 제 2 페이지에 기록되는 데이터가 "0"이면, 메모리 셀은 상태(S2)(임계전압 분포(506))로 이동된다(moved). 상태(S2)는 C*의 검증 포인트(가장 낮은 전압)를 갖는다. 메모리 셀이 상태(S4)에 있고 메모리 셀에 기록되는 데이터가 "1"이면, 메모리 셀은 S4에 머무른다. 그러나, 도 7C에 도시된 바와 같이 메모리 셀들이 임계전압 분포(504)로부터 상태(S4)에 대한 임계전압 분포(508)로 이동함으로써 상태(S4)가 좁혀진다. 임계전압 분포(508)는 (임계전압 분포(504)의 E**와 비교됨으로써) E*의 검증 포인트를 갖는다. 메모리 셀이 상태(S4)에 있고 제 2 페이지에 기록되는 데이터가 "0"이면, 메모리 셀은 G*의 검증 포인트를 갖는 상태(S6)(임계전압 분포(510))로 이동된 임계전압을 갖는다.
인접 메모리 셀들이 프로그램된 후에, 상태들(S2, S4 및 S6)은 도 7D의 임계전압 분포들(506, 508 및 510)에 의해 도시된 바와 같이, 플로팅 게이트 간 커플링 때문에 넓어진다. 몇몇 경우에, 상태(S0)도 넓어질 수 있다.
도 7E, 7F, 7G 및 7H는 제 3 페이지의 프로그래밍을 도시한다. 프로그래밍을 도시하기 위하여 하나의 그래프가 이용되는 반면, 프로세스는 가독성을 위해 4개의 그래프로 도시된다. 제 2 페이지가 프로그램된 후에, 메모리 셀들은 상태들(S0, S2, S4 및 S6) 중 어느 하나에 있게 된다. 도 7E는 제 3 페이지에 대해 프로그램되는 상태(S0)에 있는 메모리 셀을 보여준다. 도 7F는 제 3 페이지에 대해 프로그램되는 상태(S2)에 있는 메모리 셀을 보여준다. 도 7G는 제 3 페이지에 대해 프로그램되는 상태(S4)에 있는 메모리 셀을 보여준다. 도 7H는 제 3 페이지에 대해 프로그램되는 상태(S6)에 있는 메모리 셀을 보여준다. 도 7I는 도 7E, 7F, 7G 및 7H의 프로세스가 메모리 셀들의 집단상에서 (동시에 또는 연속적으로) 수행된 후의 임계전압 분포들을 보여준다.
메모리 셀이 상태(S0)에 있고 제 3 페이지 데이터가 "1"이면, 메모리 셀은 상태(S0)에 머무른다. 제 3 페이지에 대한 데이터가 "0"이면, 메모리 셀에 대한 임계전압은 B의 검증 포인트를 갖는 상태(S1)로 상승된다(도 7E 참조).
메모리 셀들이 상태(S2)에 있고 제 3 페이지 데이터에 기록되는 데이터가 "1"이면, 메모리 셀은 상태(S2)에 머무를 것이다(도 7F 참조). 그러나, 임계 분포(506)를 C볼트의 검증 포인트를 갖는 새로운 상태(S2)로 좁히기 위해 몇몇 프로그래밍이 수행될 것이다. 제 3 페이지에 기록되는 데이터가 "0"이면, 메모리 셀은 D볼트의 검증 포인트를 갖는 상태(S3)로 프로그램될 것이다.
메모리 셀이 상태(S4)에 있고 제 3 페이지에 기록되는 데이터가 "1"이면, 메모리 셀은 상태(S4)에 머무를 것이다(도 7G 참조). 그러나, 임계전압 분포(508)가 E의 검증 포인트를 갖는 새로운 상태(S4)로 좁혀지기 위하여 몇몇 프로그래밍이 수행될 것이다. 메모리 셀이 상태(S4)에 있고 제 3 페이지에 기록되는 데이터가 "0"이면, 메모리 셀은 F의 검증 포인트를 갖는 상태(S5)까지 상승된 임계전압을 가질 것이다.
메모리 셀이 상태(S6)에 있고 제 3 페이지에 기록되는 데이터가 "1"이면, 메모리 셀은 상태(S6)에 머무를 것이다(도 7H 참조). 그러나, 임계전압 분포(510)가 G의 검증 포인트를 갖는 새로운 상태(S6)로 좁혀지기 위하여 몇몇 프로그래밍이 수행될 것이다. 제 3 페이지 데이터가 "0"이면 메모리 셀은 H의 검증 포인트를 갖는 상태(S7)로 프로그램된 임계전압을 가질 것이다. 제 3 페이지의 프로그래밍을 끝맺음에 있어서, 메모리 셀은 도 7I에 도시된 8개의 상태 중 하나에 있게 될 것이다.
도 8은 세트 또는 메모리 셀들의 페이지들을 프로그램하기 위한 순서의 일예를 도시한다. 테이블은 도 4의 4개의 워드라인들(WL0, WL1, WL2 및 WL3)에 관한 프로그래밍 순서를 제공한다; 그러나, 4개보다 많거나 적은 워드라인들을 수용하기 위해 테이블이 채택될 수 있다. WL0에 연결된 메모리 셀들의 제 1 페이지가 프로그램된다. 이어서 WL1에 연결된 메모리 셀들의 제 1 페이지가 프로그램된다. 이어서 WL0에 연결된 메모리 셀들의 제 2 페이지가 프로그램된다. 이어서 WL2에 연결된 제 1 페이지가 프로그램된다. 이어서 WL1에 연결된 메모리 셀들의 제 2 페이지 등이 프로그램된다.
도 9는 선택 워드라인에 연결된 메모리 셀들을 프로그램하기 위한 프로그래밍 프로세스를 나타내는 흐름도이다. 일 실시예에서, 도 9의 프로세스는 메모리 셀들의 블록을 프로그램하는데 이용된다. 도 9의 프로세스의 일 실시예에서, 메모리 셀들은 심지어 메모리 셀들 상에서 약하게 유지하기 위해 초기-프로그램된다(pre-programmed)(단계(550)). 일 실시예에서, 메모리 셀들은 상태(7), 랜덤 패턴 또는 임의의 다른 패턴으로 프로그램된다. 몇몇 실시예들에서는, 초기-프로그래밍이 수행될 필요가 없다.
단계(552)에서, 메모리 셀들은 프로그래밍 이전에 (블록들 또는 다른 단위로) 소거된다. 일 실시예에서, 메모리 셀들은, 충분한 시간 주기 동안 p-웰을 소거 전압(예를 들어, 20V)으로 올리고, 소스 및 비트라인들이 플로팅되는 동안, 선택 블록의 워드라인들을 접지시킴으로써, 소거된다. 용량성 결합으로 인해, 비선택 워드라인들, 비트라인들, 선택라인들 및 공통 소스 라인 역시 소거 전압의 상당 부분(significant fraction)까지 올라가게 된다. 이에 따라, 선택 메모리 셀들의 터널 산화물 층들에 강한 전계가 걸리게 되고, 전형적으로 파울러-노드하임 터널링 메커니즘(Fowler-Nordheim tunneling mechanism)에 의해, 플로팅 게이트들의 전자들이 기판쪽으로 방출됨에 따라, 선택 메모리 셀들의 데이터가 소거된다. 전자들이 플로팅 게이트로부터 p-웰 영역으로 이동함에 따라, 선택된 셀의 임계 전압이 낮아지게 된다. 소거는 셀들의 전체 메모리 어레이 상에서 수행되거나, 개별적인 블록들 상에 수행되거나, 또는 셀들의 다른 유닛으로 수행될 수 있다. 일 실시예에서, 메모리 셀들을 소거한 후에, 모든 소거된 메모리 셀들이 상태(S0)에 있을 것이다(도 6 참조).
단계(554)에서, 소프트 프로그래밍을 수행하여, 소거되는 메모리 셀들에 대한 소거 임계 전압들의 분포를 좁힌다. 일부 메모리 셀들은, 소거 프로세스의 결과로서, 필요한 것보다 더 깊은 소거 상태에 있을 수 있다. 소프트 프로그래밍은 소거되는 메모리 셀들의 임계전압을 소거 검증 레벨 가까이로 이동시키기 위해 프로그래밍 펄스들을 인가할 수 있다. 예를 들어, 도 6을 참조하면, 단계(554)는 상태(S0)와 연관된 임계전압 분포를 좁히는 것을 포함할 수 있다. 단계(556)에서, 블록의 메모리 셀들은 본 명세서에서 설명된 바와 같이 프로그램된다. 도 9의 프로세스가 상기에서 설명된 다양한 회로들을 이용하는 상태 머신의 지시로 수행된다. 다른 실시예들에서, 도 9의 프로세스는 상기에서 설명된 다양한 회로들을 이용하는 제어기의 지시로 수행된다. 도 9의 프로세스를 수행한 후에, 블록의 메모리 셀들이 판독될 수 있다.
도 10은 공통 워드라인에 연결된 메모리 셀들 상에서 프로그램을 수행하기 위한 프로세스의 일 실시예를 나타낸다. 도 10의 프로세스는 도 9의 단계(556) 동안에 한번 또는 여러 번 수행될 수 있다. 예를 들어, 도 10의 프로세스는 도 6의 풀 시퀀스 프로그래밍을 수행하는데 이용될 수 있고, 그 경우에 도 10의 프로세스가 각 워드라인에 대하여 한번씩 수행될 것이다. 일 실시예에서, 프로그래밍 프로세스는 비트라인을 향해 수행하는 워드라인부터 소스라인에 가까운 순서로 수행된다. 도 10의 프로세스는 또한 도 7A 내지 도 7I의 프로그래밍 프로세스에 관하여, 워드라인에 대한 데이터의 페이지의 프로그래밍을 수행하는 데 이용될 수 있고, 그 경우에 도 10의 프로세스가 각 워드라인에 대하여 3번씩 수행될 것이다. 다른 방식들이 이용될 수도 있다. 도 10의 프로세스는 상태 머신(222)의 지시로 수행된다.
전형적으로, 프로그램 동작 동안에 제어 게이트에 인가된 프로그램 전압은 일련의 프로그램 펄스들로 인가된다. 프로그래밍 사이의 펄스들은 검증을 가능하게 하기 위한 검증 펄스들의 세트이다. 많은 실시예들에서, 프로그램 펄스들의 크기는 각 연속적인 펄스가 미리결정된 단계 크기로 증가된다. 도 10의 단계(608)에서, 프로그래밍 전압(Vpgm)은 시작 크기(예를 들어, ~12-16V 또는 다른 적절한 레벨)로 초기화되고 프로그램 카운터(PC)는 상태 머신(222)에 의해 1에서 초기화된다. 단계(610)에서, 프로그램 신호(Vpgm)의 프로그램 펄스는 선택 워드라인(프로그래밍을 위해 선택된 워드라인)에 인가된다. 비선택 워드라인들은 종래 기술에서 공지된 부스팅 스키마를 수행하기 위하여 하나 이상의 부스팅 전압들(예를 들어, ~9볼트)을 수신한다. 메모리 셀이 프로그램되어야 한다면, 대응하는 비트라인이 접지된다. 한편, 메모리 셀이 그 현재 임계전압에 머물러야 한다면, 대응하는 비트라인은 프로그래밍을 금지하기 위해 VDD에 연결된다. 부스팅 스키마에 관한 더 많은 정보는 미국 특허 6,859,397 및 미국 특허 출원 11/555,850에서 찾아볼 수 있으며, 이들 모두는 참고로서 본 명세서에 편입된다.
단계(610)에서, 프로그램 펄스는 선택 워드라인에 연결된 모든 메모리 셀들에 동시에 인가된다. 이에 따라 선택 워드라인에 연결된 모든 메모리 셀들이 함께 프로그램된다. 즉, 선택 워드라인에 연결된 모든 메모리 셀들은 동시(또는 중첩되는 시간)에 프로그램된다. 이와 같은 방식으로, 선택 워드라인에 연결된 모든 메모리 셀들은 프로그래밍으로부터 록아웃되지 않으면 동시에 그들의 임계전압이 변경될 것이다.
단계(612)에서, 선택 메모리 셀들의 상태는 목표 레벨의 적절한 세트를 이용하여 검증된다. 도 10의 단계(612)는 하나 이상의 검증 동작들의 수행을 포함한다. 일반적으로, 검증 동작 및 판독 동작 동안에, 선택 워드라인은 그 레벨이 각각의 판독 및 검증 동작(예를 들어, 도 7I의 B, C, D, E, F, G 및 H 참조)에 대하여 특정된 전압에 연결된다. 이는 관련된 메모리 셀의 임계전압이 그러한 레벨에 도달했는지 판단하기 위함이다. 워드라인에 전압을 인가한 후에, 메모리 셀이 워드라인에 인가된 전압에 반응하여 턴온되었는지 여부를 결정하기 위해 메모리 셀의 도통 전류가 측정된다. 도통 전류가 소정 값보다 큰 것으로 측정되면, 메모리 셀이 턴온되고 워드라인에 인가된 전압이 메모리 셀의 임계전압보다 큰 것으로 가정된다. 도통 전류가 소정 값보다 큰 것으로 측정되지 않으면, 메모리 셀이 턴온되지 않고 워드라인에 인가된 전압이 메모리 셀의 임계전압보다 크지 않은 것으로 가정된다.
판독 또는 검증 동작 동안에 메모리 셀의 도통 전류를 측정하는 많은 방법들이 존재한다. 일 예에서, 메모리 셀의 도통 전류는 감지 증폭기에서 전용 캐패시터(capacitor)를 방전하거나 충전하는 속도에 의해 측정된다. 다른 예에서, 선택 메모리 셀의 도통 전류는 메모리 셀을 포함한 NAND 스트링이 대응하는 비트라인을 방전하게 한다(또는 하지 못한다). 비트라인 상의 전압은 비트라인이 방전되었거나 되지 않았는지 판단하기 위해 시간 주기 후에 측정된다. 본 명세서에서 설명된 기술들은 검증/판독에 대한 기술분야에서 공지된 다른 방법으로 이용될 수 있다는 점이 주목된다. 검증/판독에 관한 더 많은 정보는 다음의 특허 문서들에서 찾아볼 수 있으며, 이들은 참고로서 본 명세서에 전체적으로 편입된다. (1) 2004년 3월 25일에 공개된 미국 특허 출원 공개 번호 2004/0057287, "Non-Volatile Memory And Method With Reduced Source Line Bias Errors,"; (2) 2004년 6월 10일에 공개된 미국 특허 출원 공개 번호 2004/0109357, "Non-Volatile Memory And Method with Improved Sensing,"; (3) 미국 특허 출원 공개 번호 20050169082; 및 (4) 2005년 4월 5일에 출원된 발명자가 Jian Chen인 "Compensating for Coupling During Read Operations of Non-Volatile Memory," 라는 명칭의 미국 특허 공보 2006/0221692.
선택 메모리 셀의 임계전압이 적절한 목표 레벨에 도달한 것이 감지되면, 메모리 셀은 예를 들어 후속 프로그래밍 펄스들 동안에 그 비트라인 전압을 Vdd로 상승시킴으로써 다른 프로그래밍으로부터 록아웃된다. 추가적으로, 통과 전압(예를 들어 ~10볼트)이 프로그래밍 동작(예를 들어, 단계(610)) 동안에 워드라인에 인가된다. (통과 전압에서) 비선택 워드라인들은 전압(예를 들어 대략 8볼트)을 비선택 비트 라인들의 채널에 존재하게 하면서 프로그래밍을 방지하는 비선택 워드라인들(Vdd에서)에 결합한다. 메모리 셀들을 프로그래밍으로부터 록아웃하기 위한 다른 스키마가 또한 본 명세서에서 설명된 기술로 이용될 수 있다.
다시 도 10을 참조하면, 단계(614)에서 모든 메모리 셀들이 그들의 목표 임계전압들에 도달했는지 체크된다. 그러면, 모든 선택 메모리 셀들이 목표 상태들로 프로그램되고 검증되었기 때문에 프로그래밍 프로세스는 완료되고 성공적이다. "통과(PASS)"의 상태는 단계(616)에서 보고된다. 몇몇 실시예에서, 단계(614)에서 적어도 미리 결정된 수의 메모리 셀들이 정확하게 프로그램되는지 체크된다는 점이 주목된다. 이 미리 결정된 수는 모든 메모리 셀들의 수보다 적을 수 있고, 그에 의하여 프로그래밍 프로세스가 모든 메모리 셀들이 그들의 적절한 검증 레벨에 도달하기 전에 중지하게 한다. 성공적으로 프로그램되지 않은 메모리 셀들은 판독 프로세스 동안에 오류 정정을 이용하여 수정될 수 있다.
단계(614)에서, 모든 메모리 셀들이 그들의 목표 임계전압에 도달하지 않았다는 것이 결정되면, 프로그래밍 프로세스가 계속된다. 단계(618)에서, 프로그램 카운터(PC)는 프로그램 제한 값(PL)과 비교하여 체크된다. 프로그램 제한 값의 일 예는 20이나, 다른 값들이 사용될 수 있다. 프로그램 카운터(PC)가 프로그램 제한 값보다 작지 않으면, 단계(630)에서 성공적으로 프로그램되지 않은 메모리 셀들의 수가 미리 결정된 수보다 같거나 작은지 결정된다. 성공적으로 프로그램되지 않은 메모리 셀들의 수가 미리 결정된 수보다 같거나 작으면, 프로그래밍 프로세스는 통과된 것으로 플래그되고(flagged) 통과(PASS)의 상태가 단계(632)에서 보고된다. 많은 경우에, 성공적으로 프로그램되지 않은 메모리 셀들은 판독 프로세스 동안에 오류 정정을 이용하여 수정된다. 그러나, 성공적으로 프로그램되지 않은 메모리 셀들의 수가 미리 결정된 수보다 크면, 프로그램 프로세스는 실패된 것으로 플래그되고 실패(FAIL)의 상태가 단계(634)에서 보고된다.
단계(618)에서, 프로그램 카운터(PC)가 프로그램 제한 값(PL)보다 작은 것으로 결정되면, 단계(620)에서 프로세스는 프로그램 카운터(PC)가 1만큼 증가하고 프로그램 전압(Vpgm)이 다음 크기로 증가될 동안 계속된다. 예를 들어, 다음 펄스는 이전 펄스보다 단계 크기(예를 들어, 0.1-0.4볼트의 단계 크기)만큼 큰 크기를 가질 것이다. 단계(622)에서, 트리거(trigger)가 발생했는지 결정된다. 일 실시예에서, 프로그램 전압(Vpgm)(예를 들어, 프로그램 펄스)의 크기가 트리거 전압에 도달하면 트리거가 발생한다. 다른 실시예들은 다른 트리거들(예를 들어, 시간, 프로그램된 비트들의 수, 펄스들의 수, 전류 등)을 이용할 수 있다. 트리거가 발생하지 않으면, 프로세스 루프가 단계(610)로 되돌아가고 (단계(620)에서 설정된 새로운 크기에서) 다음 프로그램 펄스가 선택 워드라인에 인가되어 (목표 상태에 도달했기 때문에 록아웃된 메모리 셀들을 제외한) 모든 비트라인들 상의 프로그래밍이 발생한다. 프로세스는 단계(610)로부터 상술한 바와 같이 계속된다.
트리거가 설정되어 트리거가 신호를 보내거나 그렇지 않으면 용량성 커플링을 수반하는 록아웃 상태를 나타낸다. 일반적으로, 인접하는 플로팅 게이트 사이에 용량성 커플링이 존재한다. 인접하는 플로팅 게이트들(제 1 플로팅 게이트 및 제 2 플로팅 게이트)이 모두 프로그램될 때, 용량성 커플링은 변함없거나 그리고/또는 예측할 수 있다. 제 1 플로팅 게이트가 그 목표 상태에 도달하여 프로그래밍으로부터 록아웃할 때, 상기 제 1 플로팅 게이트의 전압 포텐셜은 부스팅으로 인해 증가할 것이다. 제 1 플로팅 게이트가 더 높은 전압 포텐셜을 가지고 있기 때문에, 제 2 플로팅 게이트로의 용량성 커플링이 증가한다. 더 높은 용량성 커플링은 제 2 플로팅 게이트 상의 전압을 증가시킬 것인데, 이는 제 2 플로팅 게이트의 프로그래밍 속도를 증가시킬 것이다. 이는 오버-프로그래밍을 야기한다. 오버-프로그래밍으로 인한(over) 위험도(risk)는 (인접하는 메모리 셀들이 모두 여전히 프로그램될 때) 더 느린 프로그래밍에서 (메모리 셀이 프로그램되고 그 인접하는 메모리 셀이 프로그래밍으로부터 금지될 때) 더 빠른 프로그래밍으로의 이행에서 더 크다.
도 11A는 두 개의 인접하는 플로팅 게이트들(806 및 810)을 도시한다. 각 플로팅 게이트(806 및 810)는 각각의 활동적인(active) 영역들(804 및 808) 위에 배치된다. 공통 워드라인 폴리실리콘 층(802)은 플로팅 게이트들에 대한 제어 게이트로서 역할하고(acts) 또한 플로팅 게이트들 사이에 쉴드(shield)(805)를 제공한다. 쉴드(805)는 플로팅 게이트들(806 및 810) 사이에 커플링을 감소시킨다. 도 11A는 플로팅 게이트들이 모두 프로그램되는 것을 도시하고, 그러므로 그들의 활동적인 영역들이 0 볼트로 설정된다. 상술한 바와 같이, 플로팅 게이트들 중 하나가 프로그래밍으로부터 록아웃되면, 그 활동적인 영역이 7과 10 사이까지 부스팅되고, 그에 의하여 각 플로팅 게이트의 전압 포텐셜을 부스팅하고 그 인접 플로팅 게이트에 용량성 커플링을 증가시킨다. 그러면 인접하는 플로팅 게이트는 더 빨리 프로그램될 것이다. 더 빠른 프로그래밍은 오버-프로그래밍을 야기할 수 있다.
플로팅 게이트들(806 및 810) 사이의 쉴드(805)가 용량성 커플링을 감소시키게 하더라도, 큰 전압이 워드라인에 인가되면 폴리실리콘 쉴드(805)는 격감된다(depleted). 예를 들어, 도 11B는 워드라인 폴리실리콘 층(802) 안이 점선(812)으로 표시된 동일한 두 개의 플로팅 게이트들(806 및 810)을 도시한다. 점선(812) 아래 영역이 격감된다. 점선(812) 아래 영역이 격감되기 때문에, 상술된 용량성 커플링에 완벽한 보호를 제공하지 않는다.
도 11C는 점선(812) 아래 영역이 격감된 두 개의 플로팅 게이트들(806 및 810)을 도시한다. 그러나, 도 11C는 프로그래밍으로부터 록아웃되는 플로팅 게이트(806)를 도시한다. 그러므로, 활동적인 영역(804)은 플로팅 게이트(806)가 높은 전압에 있게 하는 높은 전압에 있게 된다. 플로팅 게이트(806)가 더 높은 전압에 있고 쉴드(805)가 격감되기 때문에, 플로팅 게이트(806 및 810) 사이의 용량성 커플링은 플로팅 게이트(810)가 더 높은 포텐셜을 갖게 하고, 그러므로 더 빠르게 프로그램할 것이다.
도 11C에 관하여 설명된 바와 같이, 일 실시예에서 어떤 워드라인 전압에서 폴리실리콘 워드라인 층(802)이 격감되어 커플링이 발생하는지 결정하는데 (시뮬레이션을 포함하는) 디바이스 특성이 이용된다. 다른 실시예들에서, 이 워드라인 전압은 실제(actual) 실리콘을 테스트함으로써 측정될 수 있다. 몇몇 실시예들에서, 실리콘의 각 부분이 테스트될 수 있다. 다른 실시예들에서, 부분들의 샘플이 테스트될 수 있고 측정된 전압이 부분들의 전체 그룹상에 이용될 수 있다. 격감이 시작되는 전압을 결정하는 다른 수단들이 또한 이용될 수 있다.
그 안에 상술한 바와 같이 프로그래밍 속도를 증가시키는데 아주(severe) 충분한 격감이 있는 상기 워드라인 전압은 도 10의 단계(622)에서 이용된 트리거 전압이다. 그러므로, Vpgm 프로그램 펄스의 크기가 워드라인 폴리실리콘 층에서 커플링을 허용하기 위하여 충분히 격감하는 트리거 전압에 도달하면, 트리거는 충족되고(met) 프로세스는 도 10의 단계(624)로 진행한다. 하나의 이웃이 록아웃되고 다른 이웃이 여전히 프로그램하여 잠재적으로 프로그래밍의 속도를 높일 때, 워드라인 폴리실리콘 층이 격감되고 커플링을 허용하는 상태는 본 명세서에서 록아웃 상태로 지칭된다.
단계(622)에서 트리거가 충족되면, 단계(624)에서 추가적인 록아웃 상태들의 기회가 낮은지 결정된다. 이상에서 논의된 바와 같이, 하나의 메모리 셀이 프로그램되고, 인접하는 메모리 셀이 프로그래밍으로부터 록아웃되며, 워드라인 전압이 충분히 높을 때 록아웃 상태가 발생한다. 록아웃 상태는 더 빠른 프로그래밍을 야기한다. 더 느린 프로그래밍에서 더 빠른 프로그래밍으로 이행할 때 오버 프로그래밍이 발생할 수 있다. 그러므로, 일 실시예에서, 시스템은 록아웃 상태 때문에 발생할 수 있는 느린 프로그래밍에서 빠른 프로그래밍으로의 잠재적인 이행이 존재하는지 판단하기 위해 체크한다. 시스템은 새로운/추가적인 록아웃 상태들의 잠재적인 수를 체크함으로써 느린 프로그래밍에서 빠른 프로그래밍으로의 잠재적인 이행을 체크한다. 몇몇 실시예들에서, 시스템은 적은 수의 오류를 용인할 수 있는데, 이 오류들은 종래기술에서 공지된 오류 정정 스키마들을 이용하는 판독 프로세스 동안에 수정될 수 있기 때문이다. 그러므로, 잠재적인 록아웃 상태들의 수가 충분히 작으면, 시스템은 오류에 대한 가능성을 용인할 수 있고 프로그래밍 동안에 오류를 정정할 필요가 없다. 새로운 록아웃 상태의 기회가 도 10에 도시된 현재 프로그래밍 프로세스에 있어서 낮은 경우에, 프로세스는 단계(624)에서 단계(610)로 돌아가 계속되고, 프로그래밍으로부터 록아웃되지 않은 모든 비트라인들 상의 메모리 셀들을 프로그램하기 위하여 다음 프로그램 펄스가 인가된다. 단계(624)에서, 새로운/추가적인 록아웃 상태들의 잠재적인 수가 낮지 않은 것으로 결정되면, 프로세스는 홀수 비트라인들 상의 메모리 셀들을 프로그램하는 단계와 다른 시간에 짝수 비트 라인들 상의 메모리 셀들을 개별적으로 프로그램하는 단계를 포함하는 단계들(626 및 628)을 수행하도록 진행한다.
다시 도 4를 참조하면, 메모리 셀들의 블록이 도시되어 있다(block i). 일 실시예에서, 워드라인을 따르는 메모리 셀들은 두 개의 그룹으로 분리되어 있다. 제 1 그룹은 홀수 비트라인들(예를 들어, BL1, BL3, BL5, ...)에 연결된 모든 메모리 셀들이다. 제 2 그룹은 짝수 비트라인들(예를 들어, BL0, BL2, BL4, ...)에 연결된 모든 메모리 셀들을 포함한다. 도 4에 도시된 바와 같이, 짝수 비트라인들과 홀수 비트라인들은 인터리브되어(interleaved) 있다. 그러므로, 짝수 비트라인들에 연결된 메모리 셀들의 그룹은 홀수 비트라인들에 연결된 메모리 셀들과 인터리브되어 있다. 짝수 비트라인들만 프로그램되면, 홀수 비트라인들에 연결된 모든 메모리 셀들은 록아웃될 것이다. 이는 프로그램되는 어떤 메모리 셀도 모두 록아웃된 그 이웃들을 가지는 상황을 보장한다. 이웃들이 모두 록아웃된 것이 보장되기 때문에 이것이 커플링을 야기할 수 있어도, 커플링은 예측 가능하고 변함이 없다. 결과적으로, 오버 프로그래밍은 일어나지 않을 것이다. 워드라인에 연결된 메모리 셀들은 둘 이상의 그룹으로 분할될 수 있고 홀수 및 짝수 그룹 외에 다른 그룹들로 분할될 수 있다.
도 10의 단계(626)에서, 짝수 비트라인들에 연결된 메모리 셀들만 프로그램하기 위하여 선택 워드라인에 프로그램 펄스가 인가된다. 그러므로, 홀수 비트라인들이 인가된 Vdd를 갖는 반면, 짝수 비트라인들은 0 볼트에 있게 될 것이다. 단계(626) 동안에, 짝수 비트라인들만이 프로그램될 것이다. 단계(626)가 수행된 후에, 단계(628)가 수행되는데 이는 동일한 선택 워드라인에 프로그램 펄스를 인가하는 단계를 포함한다. 단계(628) 동안에, 홀수 비트라인들에 연결된 메모리 셀들만이 프로그램될 것이다. 그러므로, 단계(628)는 홀수 비트라인들에 0볼트를 인가하고 짝수 비트라인들에 Vdd를 인가하는 단계를 포함한다. 그러므로, 단계들(626 및 628)은 두 개의 연속적인 프로그램 펄스들을 동일한 워드라인(그리고, 그러므로, 상기 워드라인에 연결된 메모리 셀들의 동일한 세트)에 인가하는 단계를 포함하고; 그러나, 제 1 펄스 동안에 짝수 메모리 셀들만이 프로그램되고(단계(626)), 제 2 펄스 동안에 홀수 메모리 셀들만이 프로그램된다. 그러므로, 짝수 비트라인들에 연결된 메모리 셀들(짝수 메모리 셀들)이 홀수 비트라인들에 연결된 메모리 셀들(홀수 메모리 셀들)과는 별도로 프로그램된다. 예를 들어, WL2_i가 선택 워드라인(도 4 참조)이면, BL0, BL2, BL4 및 WL2_i에 연결된 메모리 셀들은 단계(626)에서 프로그램될 것이고, BL1, BL3, BL5 및 WL2_i에 연결된 메모리 셀들은 단계(628)에서 프로그램될 것이다. 홀수 메모리 셀들이 단계(626)의 프로그램 펄스를 수신하더라도, 홀수 메모리 셀들은 단계(626) 동안에 프로그래밍으로부터 금지된다. 짝수 메모리 셀들이 단계(628) 동안에 프로그램 펄스를 수신하더라도, 짝수 메모리 셀들은 단계(628) 동안에 프로그래밍으로부터 금지된다. 단계(628) 이후에, 프로세스 루프는 단계(612)로 되돌아 가고 짝수 비트라인들 및 홀수 비트라인들 상의 메모리 셀들은 모두 함께 (몇몇 실시예들에서, 그들이 그들의 목표에 도달했기 때문에 이전에 록아웃되지 않았다면) 검증된다. 프로세스는 상술한 바와 같이 단계(612)로부터 계속된다. 단계들(626 및 628) 사이에 수행되는 검증 동작은 없다.
도 12는 프로그램 전압(Vpgm)에 대한 예시적 파상(waveform)이다. 도 12의 신호는 펄스들(702, 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, 724, 726, 728, 730, 732, 734 및 736)을 포함한다. 프로그램 펄스들(702 내지 720)은 모두 트리거 이전에 인가된다. 상기 펄스들 각각의 크기는 트리거 전압보다 작다. 펄스들(702 내지 720)은 도 10의 단계(610)의 반복(iteration)의 일부로서 인가된다. 펄스(720)를 인가한 후에, 트리거 전압이 도달되고(예를 들어, Vpgm의 크기는 트리거 전압보다 크다) 프로세스는 홀수 비트 라인들과는 별개로 짝수 비트 라인들의 프로그래밍을 수행한다(단계(626) 및 단계 (628)). 그러므로, 도 12는 두 개의 펄스들을 722 및 724에서 도시한다. 프로그래밍 펄스(722)는 짝수 비트라인들에 연결된 메모리 셀들의 프로그래밍을 위한 것이고(단계(626)) 프로그램 펄스(724)는 홀수 비트라인들에 연결된 메모리 셀들의 프로그래밍을 위한 것이다(단계(724)); 그러나, 펄스들(722 및 724)은 모두 동일한 선택 워드라인에 인가된다. 도 12의 예에서, 프로세스는 홀수 및 짝수 비트라인들의 개별적 프로그래밍(먼저 짝수 비트라인들을 프로그램하고 후속적으로 홀수 비트라인들을 프로그램)을 계속한다. 예를 들어, 펄스들(726 및 728)은 도 10의 단계들(626 및 628)의 다음 반복이다. 펄스들(730 및 732)은 단계들(626 및 628)의 후속하는 반복이다. 펄스들(734 및 736)은 도 12의 예의 단계들(626 및 628)의 최종 반복이다. 펄스들(734 및 736)을 인가한 후에, 모든 메모리 셀들은 적절하게 검증되고(또는 충분한 메모리 셀들이 검증되고) 그리하여 프로세스가 성공적으로 완료된다.
도 13은 Vpgm의 프로그래밍 펄스에 대한 다른 예시적 파상을 제공한다. 도 13의 예는 모든 비트라인의 프로그래밍(단계(610))으로부터 짝수 및 홀수 비트라인들의 개별적 프로그래밍(단계들(626 및 628))으로 이행하는 그리고 그 후에 모든 비트라인의 프로그래밍으로 이행하는 프로그래밍 프로세스를 포함한다. 프로그래밍 펄스들(750, 752, 754, 756, 758, 760, 762, 764, 766 및 768)이 단계(610)의 반복 동안 인가된다. 프로그래밍 펄스(768) 이후에, 트리거 전압이 도달되고 프로세스는 짝수 비트라인들에 연결된 메모리 셀들을 프로그래밍 펄스(770)로 프로그램하고 홀수 비트라인들에 연결된 메모리 셀들을 프로그래밍 펄스(772)로 프로그램하기 위한 단계들(626 및 628)을 수행한다. 도 13은 단계들(626 및 628)의 세번의 반복을 도시한다. 단계들(626 및 628)의 두 번째 반복에서, 프로그래밍 펄스(774)는 짝수 비트라인들에 연결된 메모리 셀들을 프로그램하기 위해 사용되고 프로그래밍 펄스(776)는 홀수 비트라인들에 연결된 메모리 셀들을 프로그램하기 위해 사용된다. 단계들(626 및 628)의 세 번째 반복에서, 프로그래밍 펄스(778)는 짝수 비트라인들에 연결된 메모리 셀들을 프로그램하기 위해 사용되고 프로그래밍 펄스(780)는 홀수 비트라인들에 연결된 메모리 셀들을 프로그램하기 위해 사용된다. 단계(628)에서 프로그래밍 펄스(780)를 인가한 후에, 록아웃 상태의 발생률(incidence)이 낮은지 결정된다. 그러므로, 단계(624) 이후에 프로세스는 단계(610)에서 계속되고 모든 비트라인들에 연결된 메모리 셀들(그들의 목표 상태에 도달했기 때문에 록아웃된 메모리 셀들을 제외하고)을 프로그램하기 위해 프로그래밍 펄스(782)가 인가된다. 도 10의 프로세스의 다음 반복은 단계(610)에서 하나의 프로그래밍 펄스(784)를 인가하는 단계를 포함한다. 프로그래밍 펄스(784)를 인가한 후에, 충분한 메모리 셀들이 검증되었는지 그리고 프로그래밍 프로세스가 성공적으로 완료되었는지 결정된다.
상술된 바와 같이, 검증 동작들의 세트가 프로그래밍 펄스들 사이에 수행된다. 일 실시예에서, 각 검증 동작을 위해 검증 펄스가 선택 워드라인에 인가된다. 예를 들어, 메모리 셀들이 들어갈 수 있는 8개의 잠재적인 데이터 상태가 존재하면, 7개의 검증 동작들과, 그러므로, 7개의 검증 펄스들이 존재할 것이다. 도 14는 프로그래밍 펄스들(706, 708 및 710)(도 12 참조) 및 프로그래밍 펄스들(706, 708 및 710) 사이에 인가된 검증 펄스들의 예를 도시한다. 도 14의 각 검증 펄스는 상술된 바와 같이 검증 동작과 연관된다.
도 15는 또한 사이에 검증 펄스들이 있는 프로그래밍 펄스들을 도시한다. 도 15는 도 12의 프로그래밍 펄스들(722, 724, 726, 728, 730 및 732)을 도시한다. 이 6개의 프로그래밍 펄스들은 트리거 전압이 도달된 후에 프로그래밍 펄스들을 인가하는 것과 연관되어 있다. 그러므로, 홀수 및 짝수 메모리 셀들이 개별적으로 프로그램된다. 이상에서 논의된 바와 같이, 프로그래밍 펄스(722)는 짝수 비트라인들에 연결된 메모리 셀들을 프로그램하고, 반면에 프로그래밍 펄스(724)는 홀수 비트라인들에 연결된 메모리 셀들을 프로그램한다. 일 실시예에서, 프로그래밍 펄스들(722 및 724) 사이에 검증 동작들은 존재하지 않는다. 프로그램 펄스(724)에 후속하고 펄스들의 다음 쌍(726, 728) 이전에, 검증 동작들을 수행하기 위해 검증 펄스들의 세트가 인가된다. 펄스들(726 및 728) 사이에는, 검증 동작들이 존재하지 않는다. 펄스(728)에 후속하고 펄스들의 다음 쌍(730, 732) 이전에, 검증 펄스들의 세트가 검증 동작들의 대응하는 세트를 수행하기 위하여 인가된다.
도 16은 프로그래밍 동안에 다양한 신호들의 동작(behavior)을 도시한다. 더욱 상세하게는, 도면은 도 10의 단계들(610, 626 또는 628)의 한 번의 반복 동안의 동작을 도시한다. 도시된 프로그램 동작은 비트라인 프리-차지 모드(Bit Lines Pre-charge Phase), 프로그램 모드(Program Phase) 및 디스차지 모드(Discharge Phase)로 그룹화된다.
비트라인 프리-차지 모드의 주기(1) 동안에, SGS를 0V로 유지함으로써 소스 선택 트랜지스터가 턴오프되고, SGD를 VSG로 상승시킴으로써 드레인 선택 트랜지스터가 턴온되어, 비트라인이 NAND 스트링에 액세스하게 한다. 비트라인 프리-차지 모드의 주기(2) 동안에, 프로그램-금지된 NAND 스트링(BL 금지)의 비트라인 전압은 VDD로 주어진 미리 결정된 전압으로 상승되게 한다. 프로그램-금지된 NAND 스트링의 비트라인 전압이 VDD로 상승할 때, 주기(3)에서 드레인 선택 트랜지스터 상의 게이트 전압(SGD)이 VDD로 떨어지면 프로그램 금지된 NAND 스트링은 플로팅할(float) 것이다. 프로그래밍 NAND 스트링의 비트라인 전압(BL pgm)은 활동적으로(actively) 0V 까지 떨어진다(pulled down to). 몇몇 대안적인 실시예에서, 프로그래밍 NAND 스트링의 비트라인 전압은 그 이웃들의 한쪽 또는 양쪽이 프로그램-금지 모드에 있는지 아닌지에 근거하여 바이어스된다(biased). 이 바이어스에 관한 더 많은 정보는 미국 특허 7,187,585에서 발견될 수 있는바, 이는 전체가 본명세서에 참조로서 편입된다.
프로그램 모드의 주기(4) 동안에, 비선택 워드라인들(WL_unsel)은 NAND 스트링의 부스팅을 가능하게 하기 위하여 VPASS로 설정된다. 프로그램-금지된 NAND 스트링이 플로팅하고 있기 때문에, 어드레스되지 않은 메모리 트랜지스터들의 제어 게이트들에 인가된 높은 VPASS가 그들의 채널들의 전압을 부스팅하고 저장 요소들을 충전한다. 그에 의하여 프로그래밍을 금지한다. VPASS는 전형적으로 Vpgm(예를 들어, ~12-24V)과 관련하여 어떤 중간 전압(예를 들어, ~10V)으로 설정된다.
프로그램 모드의 주기(5) 동안에, 프로그래밍 전압(Vpgm)이 프로그래밍 펄스로서 선택 워드라인(WL_sel)에 인가된다. 주기(5)의 프로그래밍 펄스는 도 12의 펄스들(702 내지 736) 또는 도 13의 펄스들(750 내지 784) 중 임의의 것에 대응한다. 금지되는 메모리 셀들(즉, 채널들이 부스팅되고 저장 유닛들을 충전하는)은 프로그램되지 않을 것이다. (선택 워드라인에 연결된) 선택 메모리 셀들은 프로그램될 것이다. 디스차지 모드의 주기(6) 동안에, 다양한 제어 라인들 및 비트라인들은 방전이 허용된다.
도 17은 추가적인 록아웃 상태들의 기회가 낮은지를 결정하는 프로세스(도 10의 단계(624) 참조)의 일 실시예를 나타내는 흐름도이다. 단계(850)에서, 각 메모리 셀은 동일한 워드라인을 따르는 그 인접한 메모리 셀과 비교된다. 단계(852)에서, 시스템은 록아웃 상태로의 잠재적인 이행의 수(X)를 계수한다. 두 개의 인접하는 메모리 셀들이 모두 여전히 프로그램되면 이웃들 중 하나가 잠재적으로 다른 하나 이전에 그 목표에 도달할 수 있고 록아웃할 수 있기 때문에 잠재적인 록아웃 상태가 존재하는 것이다. 그러므로, 일 실시예에서, 단계(852)는 여전히 프로그램되는 인접 메모리 셀들의 쌍들의 수를 계수하는 단계를 포함한다. 잠재적인 록아웃 상태들의 수가 임계값보다 크면(단계(854)), 추가적인 록아웃 상태들의 기회가 낮지 않다(단계(858)). 잠재적인 록아웃 상태들의 수가 임계값보다 크지 않으면, 추가적인 록아웃 상태들의 기회가 낮다(단계(856)). 오류 정정 코드에 의해 수정될 수 있는 비트들의 수에 근거하여 단계(854)의 임계값이 설정된다. 예를 들어, 일 실시예는 (데이터의 대략 0.01 퍼센트에 달하는) 7비트의 잘못된 데이터를 수정할 수 있는 오류 정정 코드를 포함한다. 그러므로, 잠재적인 록아웃 산태들의 수가 7보다 작으면, 추가적인 록아웃 상태들의 기회가 낮다(단계(856)). 다른 임계값이 사용될 수도 있다. 다른 실시예에서, 단계(850)는 이웃들과 비교되는 메모리 셀들의 서브 세트만을 포함하고, 결과는 전체 집단에 대하여 추정되고 임계값과 비교된다.
도 18은 도 17의 프로세스를 구현할 수 있는 하드웨어의 일 예의 블록도이다. 모든 메모리 셀들에 대한 데이터 래치들(494)(도5 참조)은 데이터를 시프트 레지스터(880)에 제공한다. 일 실시예에서, 시프트 레지스터(880)는 실제 데이터 래치들(494)을 포함할 수 있다. 시프트 레지스터(880)는 모든 비트라인들에 대한 모든 데이터를 포함한다. 데이터는 먼저 1 비트 레지스터(882) 그리고 1 비트 레지스터(884)에 한번에 1비트씩 시프트아웃 된다(shifted out). 레지스터(882)의 데이터 및 레지스터(884)의 데이터는 NOR 게이트(886)으로 송신된다. NOR 게이트(886)의 출력은 누산기(accumulator)(888)에 송신된다. 누산기(888)의 출력은 상태 머신(222)에 제공되는데, 상태 머신(222)은 잠재적인 록아웃 상태들의 수가 임계값보다 크지 않은지 결정한다. 도 18의 회로는 인접하는 비트라인들이 0-0을 저장하는 발생률을 계수한다. 일 예에서, 비트라인 상에 적절한 전압을 인가하기 위하여 감지 회로를 설정하기 위해, 특정 메모리 셀이 프로그램되거나 프로그래밍으로부터 금지되어야 하는지를 나타내는 표시를 저장하는데 데이터 래치가 이용된다. 일 실시예에서, 각 데이터 래치는 비트라인이 금지되어야 한다면 일(1)을 저장할 것이고, 비트라인이 프로그래밍을 위해 설정되어야 한다면 영(0)을 저장할 것이다. 반대 극성(polarities)이 이용될 수도 있다. 그러므로, 도 18의 회로는 데이터가 0-0인 인접하는 비트라인들을 검색하고 누산기(888)를 이용하는 횟수를 누산한다. 누산기(888)가 0-0을 계수하는 횟수가 임계값보다 크면, 상태 머신은 추가적인 록아웃 상태들의 기회가 낮지 않다고 판단한다(그리고, 도 10에서, 프로세스는 단계(626)에서 계속된다).
도 19는 추가적인 록아웃 상태의 기회가 낮은지 결정하는 다른 실시예를 나타낸다. 단계(902)에서, 여전히 프로그램되는 메모리 셀들의 수가 계수된다. 대안적으로, 록아웃되는 메모리 셀들의 수가 계수된다. 단계(904)에서, 여전히 프로그램되는 메모리 셀들의 수가 임계값보다 낮은지 결정된다. 여전히 프로그램되는 메모리 셀들의 수가 임계값보다 낮으면(단계(904)), 추가적인 록아웃 상태의 기회가 낮다(단계(906)). 록아웃되는 메모리 셀들의 수가 임계값보다 낮지 않으면, 추가적인 록아웃 상태의 기회가 낮지 않다(단계(908)). 일 실시예에서, 메모리 셀들의 0.4% 만이 여전히 프로그램되면(또는 99.6%가 록아웃되면) 추가적인 록아웃 상태의 기회가 낮도록 임계값이 설정될 수 있다. 다른 임계값들이 사용될 수도 있다.
도 20은 도 19의 프로세스를 구현하는데 이용될 수 있는 하드웨어의 일 예를 도시하는 블록도이다. 도 20은 비교기 회로(920)와 통신하는 비트라인들의 각 그룹들에 대한 각 프로세서들(492)(예를 들어, 8개의 비트라인들에 대하여 하나의 프로세서(492))을 도시한다. 각 프로세서들은 그들 각각의 비트라인들이 프로그램되거나 록아웃되는지를 나타낼 것이다. 비교기(920)는 록아웃되는 비트라인들의 수를 계수하는 회로를 포함한다. 일 실시예에서, 이는 상술된 래치들로부터 데이터를 제공함으로써 이루어질 수 있다. 비교기(920)는 임계값을 나타내는 파라미터(922)에 액세스할 수 있고(단계(904) 참조) 상기 임계값을 록아웃된 비트라인들의 합계와 비교할 수 있다. 비교기(920)의 출력은 상태 머신(222)에 송신된다.
다시 도 10을 참조하면, 프로그래밍 프로세스를 홀수 및 짝수 메모리셀들을 함께 프로그램하는 것에서 홀수 및 짝수 메모리 셀들을 개별적으로 프로그램하는 것으로 변경하기 위하여 트리거가 이용된다(단계(622)). 일 실시예는 적절한 트리거 전압을 결정하기 위하여 디바이스 특성(시뮬레이션을 포함)을 이용하는 단계를 포함한다. 몇몇 실시예들에서, 트리거 전압은 각각의 집적 회로에 대하여 개별적으로 트리밍될(trimmed) 수 있다. 즉, 집적 회로들을 제조하는 단계에 후속하여, 각 집적회로가 테스트될 수 있다. 테스트에 근거하여, 트리거 전압이 설정되거나 조정될 수 있다.
도 21, 22, 및 23은 트리거 값을 트리밍하거나 설정하기 위한 3개의 실시예를 나타내는 흐름도이다. 도 21 내지 23의 프로세스들은 블록 상에서 수행될 수 있다. 그리고 상기 하나의 블록으로부터의 데이터는 상기 메모리 디바이스 상의 모든 블록들에 이용될 수 있다. 대안적으로, 다수의 블록들이 테스트되고 결과들이 모든 블록들에 적용될 수 있다. 또 다른 대안적인 실시예에서는, 도 21 내지 23의 프로세스들이 모든 블록에서 수행되고 각각의 블록은 고유의 트리거 값을 가질 것이다. 일 실시예에서, 블록에서 오직 하나의 워드라인이 테스트된다. 다른 실시예에서, 하나 이상의 워드라인이 테스트될 수 있고 결과들은 평균화되거나 조합된다. 다른 실시예들에서, 다른 유닛들(예를 들어, 워드라인, 워드라인들의 그룹들, 페이지, 섹터 등)이 테스트를 위해 선택될 수 있다.
도 21의 단계(1002)에서, 테스트 중인 특정 블록(또는 블록들)이 소거된다. 그리고 프로세스는 하나의 선택 워드라인 상의 짝수 셀들을 프로그램할 것이다. 일 실시예에서, 하나의 워드라인만이 프로그래밍을 수신할 것이다. 상기 하나의 워드라인에 근거하여, 전체 블록, 전체 칩 또는 전체 메모리 시스템을 위한 새로운 트리거 값이 결정될 것이다. 다른 실시예들에서, 다수의 워드라인들이 프로그램되고 데이터가 평균화되거나 또는 각 워드라인이 고유의 트리거 값을 가질 수 있다. 단계(1004)에서, 선택 워드라인에 연결된 메모리 셀들이 프로그램된다. 단계(1004)의 프로그래밍 프로세스는 프로그래밍 펄스들이 Vpgm_test의 크기에 도달할 때까지 크기가 증가하는 프로그래밍 펄스를 프로그램하고 인가할 수 있게 되는 홀수 비트라인들 및 짝수 비트라인들에 연결된 모든 메모리 셀들을 포함한다. 일 실시예에서, Vpgm_test는 디바이스 특성으로부터 결정된 트리거 전압보다 2볼트 낮게 초기 설정된다. 단계(1004)의 프로그래밍 프로세스는 단계(620) 이후에 프로세스 루프가 항상 단계(610)로 되돌아 가는 점(단계(622 내지 628)이 존재하지 않는 점)을 제외하고 도 10의 프로세스와 유사하다. 단계(1004)의 프로그래밍 프로세스가 완료된 이후에, 짝수 비트라인들에 연결된 메모리 셀들에 대한 임계전압 분포의 상한값과 하한값이 단계(1006)에서 측정된다. 단계(1008)에서 블록이 소거된다.
단계(1010)에서, 짝수 비트라인들에 연결된 메모리 셀들이 다시 프로그램되지만, 홀수 비트라인들에 연결된 메모리 셀들은 단계(1010)의 모든 프로그래밍 펄스들에 대한 프로그래밍으로부터 금지된다. 단계(1010)는 단계(1004)와 같이 프로그램 펄스의 크기가 동일한 Vpgm_test와 같을 때까지 크기가 증가하는 일련의 프로그래밍 펄스들을 인가하는 단계를 포함한다. 단계(1012)에서, 짝수 비트라인들에 연결된 메모리 셀들에 대한 임계전압 분포가 측정된다. 단계(1014)에서, 단계(1012 및 1006)에서 측정된 임계전압 분포들의 상한값과 하한값이 비교된다. 일 실시예에서, 두 임계전압 분포들의 하한값이 비교된다. 다른 실시예에서, 각 임계전압 분포들의 상한값이 비교된다. 임계전압 분포들의 하한값들(또는 상한값들) 사이의 차이가 임계값보다 크지 않으면, Vpgm_test가 미리 결정된 양만큼 증가되고 프로세스는 단계(1002)로 되돌아가 반복된다. 단계(1020)에서 임계전압 분포들의 하한값들 사이의 차이가 임계값보다 크면, 트리거 전압이 (디바이스 특성에 의해 결정된 값으로부터) Vpgm_test의 현재 값으로 되기 위하여 수정된다. 몇몇 실시예들에서, Vpgm_test는 샘플 크기가 실제 최악의 경우를 잡아내지(capture) 못할 것을 고려해서 일부 여유를 추가함으로써 더 수정될 수 있다. 일 실시예에서, 단계(1016)의 임계값은 0.5 볼트와 동일하고, 단계(1004 및 1010)에서 프로그램하는 데 이용된 프로그램 펄스의 단계 크기는 0.4볼트이다.
도 22는 트리거 전압을 결정하거나 트리밍하기 위한 프로세스의 또 다른 실시예를 제공한다. 단계(1050)에서, 고려중인 블록이 소거된다. 프로그래밍 프로세스의 각 반복에서 프로그램하기 위해 선택된 홀수 비트라인들에 연결된 메모리 셀들과 함께, 단계(1052)에서 짝수 비트라인들에 연결된 메모리 셀들은 그들의 임계 전압이 Vx 볼트의 목표 레벨에 도달할 때까지 프로그램된다. Vx의 예시적 값은 3.5 볼트이다. 단계(1054)에서, 단계(2052) 동안에 짝수 비트라인들에 연결된 메모리 셀들을 적절하게 프로그램하는데 필요한 프로그램 펄스들의 수가 기록된다. 단계(1056)에서, 고려중인 블록이 소거된다. 단계(1058)에서, 짝수 비트라인들에 연결된 메모리 셀들이 그들의 임계전압이 Vx 볼트에 도달할 때까지 다시 프로그램된다. 단계(1058)에서, 홀수 비트라인들에 연결된 메모리 셀들은 각 사이클에서 항상 금지된다. 단계(1060)에서, 단계(1058)에서 메모리 셀들을 프로그램하는데 필요한 프로그램 펄스들의 수가 기록된다. 단계(1062)에서, 각 테스트들(단계(1054 및1060))을 위한 펄스들의 수가 비교된다. 단계(1060)에서 측정된 펄스들의 수가 단계(1054)에서 측정된 펄스들의 수보다 작을 것이 예상된다. 펄스들의 수의 차이는 상술된 록아웃 상태와 연간된 간섭 효과의 크기를 나타낸다. 차이가 임계값보다 크면, 트리거 전압은 단계(1058)의 프로그래밍 프로세스로부터의 마지막 펄스의 크기로 설정된다. 차이가 임계값보다 크지 않다면, 전압(VX)은 (예를 들어, 0.5볼트 만큼) 증가되고 프로세스 루프는 테스트들을 반복하기 위하여 단계(1050)로 되돌아 간다. 일 실시예에서, 단계(1064)의 임계값은 하나의 펄스와 동일하다. 다른 임계값이 사용될 수도 있다.
도 23은 트리거 전압을 결정하거나 트리밍하기 위한 또 다른 실시예이다. 단계(1102)에서, 선택된 블록 또는 블록들이 소거된다. 단계(1104)에서, 짝수 비트라인들에 연결된 메모리 셀들이 그들의 임계전압이 전압(Vy)과 동일할 때까지 프로그램된다. 단계(1104)의 프로그래밍 프로세스 동안에 홀수 비트라인들에 연결된 메모리 셀들은 프로그래밍을 위해 항상 선택된다. 단계(1106)에서, 오버 프로그램된 짝수 비트라인들에 연결된 메모리 셀들의 수가 측정된다. 예를 들어, 이상적인 임계전압 분포는 시뮬레이션에 근거하여 추정될 수 있고, 상기 이상적인 임계전압 분포를 위해 상한 레벨이 결정될 수 있다. 메모리 셀의 임계전압이 상기 이상적인 분포의 상한값을 초과하면, 상기 메모리 셀은 오버 프로그램된다. 예를 들어, 도 7I를 참조하면, 상태(S6)는 하한값(G) 및 상한값(OP)을 갖는다. 메모리 셀이 OP 보다 큰 임계전압을 가지면, 상기 메모리 셀은 오버 프로그램된다. 다른 실시예들에서, 오버 프로그래밍에 대한 비교 레벨이 달라질 수 있다.
다시 도 23을 참조하면, 단계(1108)에서 하나 이상의 프로그래밍 펄스가 선택 워드라인에 인가될 수 있다. 단계(1108)에서 상기 프로그래밍 펄스가 인가되는 동안, 홀수 비트라인들에 연결된 모든 메모리 셀들은 프로그래밍으로부터 금지된다. 단계(1104)의 Vy의 임계전압에 도달한 메모리 셀들은 단계(1108) 동안 록아웃된채 유지될 것이다. 그러므로, 단계(1108)의 프로그래밍 펄스는 Vy의 임계전압에 아직 도달하지 않은 메모리 셀들만을 프로그램할 것이다. 단계(1110)에서, 오버 프로그램된 메모리 셀들의 수가 다시 측정된다. 단계(1112)에서, 단계(1110)에서 측정된 오버 프로그램된 셀들의 수가 단계(1106)에서 측정된 오버 프로그램된 메모리셀들의 수와 비교된다. 오버 프로그램된 메모리셀들의 수의 차이가 임계값보다 크면, 트리거 전압은 단계(1108)에서 인가된 펄스의 크기로 설정된다. 단계(1114)로부터의 임계값의 일 예는 5개의 메모리 셀들이다. 차이가 임계값보다 크지 않으면(단계(1114)), Vy의 전압 레벨이 단계(1116)에서 (예를 들어, .5 볼트만큼) 증가되고 프로세스 루프는 단계(1102)로 되돌아가고 반복된다.
몇몇 실시예들에서, 비휘발성 저장 시스템은 싸이클링 히스토리(cycling history), 온도 등과 같은 환경 또는 사용 조건으로 인한 변화를 설명하기 위하여 트리거 전압을 동적으로 조정할 수 있다. 도 24는 프로그램/소거 싸이클의 수에 근거하여 동적으로 트리거 전압을 변경하게 하는 일 실시예를 도시하는 흐름도이다. 프로그램/소거 싸이클은 소거 프로세스 및 프로그램 프로세스를 수행하는 단계를 포함한다. 비휘발성 저장 시스템이 많은 프로그래밍/소거 싸이클들을 수행함에 따라, 전하는 플로팅 게이트 및 채널 사이의 유전체 영역 내에 모일(get trapped) 수 있다. 이 상태는 도 11A 내지 11C에 관하여 위에서 논의된 격감 영역을 감소시킬 수 있다. 그러므로, 디바이스가 여러 번 순환됨에 따라, 트리거 전압을 높일 수 있게 되고, 이에 따라 홀수 및 짝수 메모리 셀들의 개별적인 프로그래밍은 프로그래밍 프로세스에서 나중에 발생한다. 도 24의 단계(1240)에서, 메모리 디바이스는 X 프로그램/소거 싸이클을 수행한다. 일 예에서, X 프로그램 싸이클은 10,000 프로그램/소거 싸이클이 될 수 있다. X에 대한 다른 값들이 사용될 수도 있다. X 프로그램/소거 싸이클을 수행한 후에, 단계(1242)에서 트리거 전압이 (예를 들어, 0.5볼트만큼) 증가된다. 단계(1242)에서 트리거 전압을 증가시킨 후에, 메모리 시스템은 단계(1244)에서 Y 프로그램/소거 싸이클을 수행할 것이다. 일 예에서, Y 프로그램/소거 싸이클은 5,000 프로그램/소거 싸이클이 될 수 있다. 단계(1246)에서, 트리거 전압은 (0.2 볼트만큼) 다시 증가될 것이다. 단계(1246)에서 트리거 전압을 증가시킨 후에, 메모리 시스템은 프로그램/소거 싸이클의 수행을 계속할 것이다(단계(1248)). 도 24는 트리거 전압을 두 번 상승시키는 메모리 시스템을 도시한다. 그러나, 다른 실시예들에서, 트리거 전압은 오직 한번 또는 두번 보다 많이 상승될 수 있다. 디바이스 특성이나 실험 방법에 근거하여 X 및 Y의 다른 값들이 결정될 수 있다.
도 25는 도 24의 프로세스를 수행하는데 사용되는 컴포넌트들의 일 예의 블록도이다. 도 25는 트리거 파라미터를 저장하는 레지스터(1282)와 싸이클 파라미터를 저장하는 레지스터(1284)와 통신하는 상태 머신(222)을 도시한다. 보상 회로(1286)도 또한 레지스터(1282) 및 레지스터(1284)와 통신한다. 트리거 파라미터는 트리거 전압(또는 다른 트리거)을 나타낸다. 트리거 파라미터는 전압 크기, 펄스 번호, 또는 다른 것을 식별할 수 있다. 싸이클 파라미터는 수행된 프로그램/소거 싸이클의 수를 나타낸다. 싸이클 파라미터 값에 근거하여, 보상 회로는 적절한 때 트리거 파라미터를 갱신할 것이다. 예를 들어, 보상 회로(1286)는 도 24의 단계(1242 및 1346)의 일부로서 트리거 파라미터를 갱신할 것이다. 상태 머신(222)은 도 10의 단계(622) 동안에 트리거 파라미터를 이용할 것이다.
도 26은 온도에 근거하여 트리거 전압을 동적으로 조정하는 일 실시예를 도시하는 흐름도이다. 단계(1302)에서 메모리 시스템은 온도를 측정할 것이다. 일 실시예에서, 메모리 시스템은 온도 감지기를 포함한다. 측정된 온도에 근거하여, 단계(1304)에서 트리거 전압이 조정될 수 있다. 격감 영역이 차가운 온도에서 더 악화되어 트리거가 프로그램 프로세서에서 더 일찍 발생해야 한다는 것이 예상된다. 이는 차가운 온도일 때, 트리거 전압을 낮춤으로써 수행될 수 있다. 단계(1302)에서 측정된 온도가 미리 설정된 수보다 높다면, 트리거 전압이 증가될 수 있다. 다른 실시예에서, 상태 머신(222)은 온도의 범위들을 트리거 전압과 연관짓는 테이블을 저장할 수 있다. 단계(1302)에서 상태 머신(222)은 온도를 판독할 수 있고, 단계(1304)에서 상태 머신(222)은 온도를 테이블의 키로서 이용하는 트리거 값을 룩업할(look up) 것이다. 테이블에서 검색된 트리거 전압은 프로그래밍 프로세스 동안 사용하기 위해 파라미터에 저장될 것이다. 또 다른 실시예에서, 단계(1304)에서 보상 회로가 측정된 온도를 판독하고 트리거 전압을 조정할 것이다. 단계(1306)에서, 시스템은 단계(1304)에서 설정된 트리거 전압을 이용하는 프로그래밍을 수행할 것이다. 어느 정도 프로그래밍을 수행한 후에, 프로세스 루프는 단계(1302)로 되돌아 가고, 온도가 다시 측정되며, 단계(1304)에서 트리거 값이 선택적으로 조정될 것이다. 일 실시예에서, 단계들(1302 내지 1306)의 루프는 각 프로그래밍 프로세스에 대해 수행될 수 있다. 대안적인 실시예들에서, 프로세스는 모든 N 싸이클들 또는 모든 N 주기들 등에서 수행될 수 있다.
도 27은 도 26의 프로세스를 구현할 수 있는 컴포넌트의 일 예를 도시하는 블록도이다. 도 27은 트리거 파라미터를 저장하는 레지스터(1350)와 통신하는 상태 머신(222)를 도시한다. 트리거 파라미터는 트리거 전압(또는 다른 트리거)을 나타낸다. 트리거 파라미터는 전압 크기, 펄스 번호, 또는 다른 것을 식별할 수 있다. 보상 회로(1352)는 레지스터(1350) 및 온도 감지기(1354)와 통신한다. 온도 감지기(1354)는 온도를 나타내는 신호(전압 또는 전류)를 출력한다. 온도 감자기(1354)의 출력에 근거하여, 보상 회로(1352)는 트리거 파라미터를 갱신할 것이다. 예를 들어, 보상 회로(1352)는 도 26의 단계(1304)의 일부로서 트리거 파라미터를 갱신할 것이다. 트리거 파라미터의 갱신은 연속적, 주기적 또는 요구에 따라서 수행될 수 있다.
본 발명에 대한 전술한 상세한 설명은 본 발명을 묘사하고 자세히 설명하기 위해 제공된 것이다. 이것은 소모적인 것이라거나 본 발명을 정확하게 개시된 형태로 한정하는 것은 아니다. 상술한 것에 대하여 많은 수정과 변용이 가능할 것이다. 여기서 설명된 실시예는 본 발명의 원리와 본 발명의 실용적인 적용을 가장 잘 설명하기 위해서 선택된 것들이며, 이는 당업자에 의해 본 발명을 생각할 수 있는 특정한 사용예에 적합한 다양한 실시예와 다양한 수정예로서 최상으로 활용할 수 있도록 설명하기 위해서 선택된 것들이다. 본 발명의 범위는 본 명세서에 첨부된 청구항에 의해 정의될 것이다.
200:메모리 어레이 210:메모리 디바이스
212:메모리 다이 220:제어 회로
222:상태 머신 224:온-칩 어드레스 디코더
226:전력 제어 모듈 230A,230B:판독/기록 회로
232,234:라인들 240A,240B:로우 디코더
242A,242B:컬럼 디코더 244:제어기
300:감지 블록 420,472:데이터 버스
470:감지회로 480:코어부
482:비트라인 래치 490:공통부
492:프로세서 493:입력 라인들
494:데이터 래치들 496:I/O인터페이스
880:시프트 레지스터 882:비트 1
884:비트 0 886:NOR 게이트
888:누산기 920:비교기
922:파라미터 1282:트리거 파라미터
1284:싸이클 파라미터 1286:보상 회로
1350:트리거 파라미터 1352:보상 회로
1354:온도 감지기

Claims (43)

  1. 제 1 시간에 비휘발성 저장 요소들의 제 1 그룹에 대한 프로그래밍을 수행하는 단계와;
    상기 제 1 시간과 상이한 제 2 시간에 비휘발성 저장 요소들의 제 2 그룹에 대한 프로그래밍을 수행하는 단계와;
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 함께 검증하는 단계와, 여기서 상기 제 1 시간에 상기 비휘발성 저장 요소들의 제 1 그룹에 대해 프로그래밍을 수행하는 단계 및 상기 제 2 시간에 상기 비휘발성 저장 요소들의 제 2 그룹에 대해 프로그래밍을 수행하는 단계는 제 1 트리거 후 상기 제 1 트리거에 반응하여 수행되며;
    상기 제 1 트리거 이전에 하나 이상의 프로그램 싸이클들을 수행하는 단계와, 여기서 상기 하나 이상의 프로그램 싸이클들 각각은 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 함께 프로그래밍하는 것을 포함하며; 그리고
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 동작 동안에 상기 제 1 트리거를 동적으로 조정하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장소(non-volatile storage)를 프로그램하는 방법.
  2. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹은 제 1 제어 라인에 연결되며; 그리고
    상기 비휘발성 저장 요소들의 제 2 그룹은 상기 제 1 제어 라인에 연결되는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  3. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹은 워드라인에 연결되고;
    상기 비휘발성 저장 요소들의 제 2 그룹은 상기 워드라인에 연결되며; 그리고
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 비휘발성 저장 요소들 각각은 인터리빙(interleaving) 방식으로 상이한 비트라인들에 연결되는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  4. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹에 대해 프로그래밍을 수행하는 단계는, 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 1 프로그램 펄스를 인가하는 단계와, 상기 제 1 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그래밍으로부터 금지하는 단계와; 그리고 상기 제 1 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하게 하는 단계를 포함하며; 그리고
    상기 비휘발성 저장 요소들의 제 2 그룹에 대해 프로그래밍을 수행하는 단계는, 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 2 프로그램 펄스를 인가하는 단계와, 상기 제 2 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그래밍으로부터 금지하는 단계와, 그리고 상기 제 2 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하게 하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  5. 제 4 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 각 비휘발성 저장 요소는 상이한 제어 라인들에 연결되고;
    상기 제어 라인들은 짝수 제어 라인들 및 홀수 제어 라인들을 포함하고;
    상기 비휘발성 저장 요소들의 제 1 그룹은 상기 짝수 제어 라인들에 연결되고; 및
    상기 비휘발성 저장 요소들의 제 2 그룹은 상기 홀수 제어 라인들에 연결되는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  6. 제 5 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹은 상기 비휘발성 저장 요소들의 제 2 그룹과 인터리빙 방식으로 배치되는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  7. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 함께 검증하는 단계는,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 연결된 워드라인에 하나 이상의 검증 신호들을 인가하는 단계, 및 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 동시에 감지하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  8. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹은 어떠한 비휘발성 저장 요소들도 공통으로 갖지 않는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  9. 제 1 항에 있어서,
    상기 검증하는 단계는 상기 제 2 시간에 후속하는 제 3 시간에 수행되고;
    상기 제 2 시간은 상기 제 1 시간에 후속하며; 그리고
    상기 제 1 시간과 상기 제 2 시간 사이에서는, 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 어떠한 검증도 수행되지 않는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  10. 제 1 항에 있어서,
    상기 제 1 그룹에 대해 프로그래밍을 수행하는 단계, 상기 제 2 그룹에 대해 프로그래밍을 수행하는 상기 단계 및 상기 검증하는 단계는 충분한 비휘발성 저장 요소들이 적절하게 프로그램될 때까지 다수회 반복되는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  11. 삭제
  12. 제 1 항에 있어서,
    상기 제 1 트리거는 트리거 전압에 도달하는 프로그래밍 펄스 크기를 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  13. 제 12 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 제조한 이후에 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 상기 트리거 전압을 결정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  14. 제 1 항에 있어서,
    상기 제 1 시간에 상기 비휘발성 저장 요소들의 제 1 그룹에 대해 프로그래밍을 수행하는 단계 및 상기 제 2 시간에 상기 비휘발성 저장 요소들의 제 2 그룹에 대해 프로그래밍을 수행하는 단계는 제 2 트리거 이전에 수행되며; 그리고
    상기 방법은 상기 제 2 트리거 이후에 하나 이상의 추가적인 싸이클들을 수행하는 단계를 더 포함하고, 여기서 상기 하나 이상의 추가적인 싸이클들 각각은 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 함께 프로그램하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  15. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹은 제 1 워드라인에 연결되고;
    상기 비휘발성 저장 요소들의 제 2 그룹은 상기 워드라인에 연결되며; 그리고
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 각 비휘발성 저장 요소는 인터리빙 방식으로 상이한 비트라인들에 연결되는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  16. 제 15 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹에 대해 프로그래밍을 수행하는 단계는, 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 1 프로그램 펄스를 인가하는 단계와, 상기 제 1 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그래밍으로부터 금지하는 단계와, 그리고 상기 제 1 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하게 하는 단계를 포함하며; 그리고
    상기 비휘발성 저장 요소들의 제 2 그룹에 대해 프로그래밍을 수행하는 단계는, 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 2 프로그램 펄스를 인가하는 단계와, 상기 제 2 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그래밍으로부터 금지하는 단계와, 그리고 상기 제 2 프로그램 펄스에 반응하여 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하게하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  17. 삭제
  18. 제 1 항에 있어서,
    프로그램-소거 싸이클들에 근거하여 상기 제 1 트리거를 조정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  19. 제 1 항에 있어서,
    온도에 근거하여 상기 제 1 트리거를 조정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  20. 제 1 항에 있어서,
    상기 제 1 시간에 상기 비휘발성 저장 요소들의 제 1 그룹에 대해 프로그래밍을 수행하는 단계 및 상기 제 2 시간에 상기 비휘발성 저장 요소들의 제 2 그룹에 대해 프로그래밍을 수행하는 단계는, 조건이 검출되기 전에 그리고 이러한 조건이 검출될 때 까지 수행되며; 그리고
    상기 방법은 상기 조건이 검출된 이후 하나 이상의 추가적인 싸이클들을 수행하는 단계를 더 포함하며, 여기서 상기 하나 이상의 추가적인 싸이클들 각각은 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹을 함께 프로그램하는 단계를 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  21. 제 20 항에 있어서,
    여전히 프로그램 상태에 있고 프로그래밍을 위해 선택된 이웃을 갖는 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 수를 결정하는 단계와; 그리고
    여전히 프로그램 상태에 있고 프로그래밍을 위해 선택된 이웃을 갖는 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 수에 근거하여 상기 조건을 결정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  22. 제 20 항에 있어서,
    여전히 프로그램 상태에 있고 프로그래밍을 위해 선택된 이웃을 갖는 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 수를 외삽법(extrapolation)을 이용하여 결정하는 단계와; 그리고
    여전히 프로그램 상태에 있고 프로그래밍을 위해 선택된 이웃을 갖는 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 수에 근거하여 상기 조건을 결정하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  23. 제 20 항에 있어서,
    여전히 프로그램 상태에 있는 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 수를 결정하는 단계와; 그리고
    여전히 프로그램 상태에 있는 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 수에 근거하여 상기 조건을 검출하는 단계를 더 포함하는 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  24. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹은 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  25. 제 1 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹은 NAND 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 저장소를 프로그램하는 방법.
  26. 비휘발성 저장 요소들의 제 1 그룹 및 비휘발성 저장 요소들의 제 2 그룹을 포함하는 다수의 비휘발성 저장 요소들과;
    상기 다수의 비휘발성 저장 요소들과 통신하는 하나 이상의 관리 회로들을 포함하며,
    상기 하나 이상의 관리 회로들은:
    상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하는 것과 별도로 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하고, 상기 비휘발성 저장 요소들의 제 2 그룹을 검증함과 함께 상기 비휘발성 저장 요소들의 제 1 그룹을 검증하고;
    제 1 트리거 후 상기 제 1 트리거에 반응하여 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하는 것과 별도로 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하고;
    상기 제 1 트리거 이전에 상기 비휘발성 저장 요소들의 제 1 그룹을 상기 비휘발성 저장 요소들의 제 2 그룹과 함께 프로그램하며; 그리고
    상기 제 1 트리거를 동적으로 조정하는 것을 특징으로 하는 비휘발성 저장 장치.
  27. 제 26 항에 있어서,
    제어 라인을 더 포함하고,
    상기 비휘발성 저장 요소들의 제 1 그룹은 상기 제어 라인에 연결되고, 상기 비휘발성 저장 요소들의 제 2 그룹은 상기 제어 라인에 연결되는 것을 특징으로 하는 비휘발성 저장 장치.
  28. 제 26 항에 있어서,
    워드라인을 더 포함하고,
    상기 비휘발성 저장 요소들의 제 1 그룹은 상기 워드라인에 연결되고, 상기 비휘발성 저장 요소들의 제 2 그룹은 상기 워드라인에 연결되며; 그리고
    비트라인들을 더 포함하고,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 각 비휘발성 저장 요소는 인터리빙 방식으로 상이한 비트라인들에 연결되는 것을 특징으로 하는 비휘발성 저장 장치.
  29. 제 26 항에 있어서,
    상기 하나 이상의 관리 회로들은,
    상기 비휘발성 저장 요소들의 제 2 그룹을 프로그래밍으로부터 금지하는 동안 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 1 프로그램 펄스를 인가하고, 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그래밍으로부터 금지하는 동안 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 2 프로그램 펄스를 인가함으로써, 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하는 것과 별도로 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하는 것을 특징으로 하는 비휘발성 저장 장치.
  30. 제 26 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹은 어떠한 비휘발성 저장 요소들도 공통으로 갖지 않는 것을 특징으로 하는 비휘발성 저장 장치.
  31. 제 26 항에 있어서,
    제어 라인들을 더 포함하고,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 각 비휘발성 저장 요소는 상이한 제어 라인들에 연결되고, 상기 제어 라인들은 짝수 제어 라인들 및 홀수 제어 라인들을 포함하고, 상기 비휘발성 저장 요소들의 제 1 그룹은 상기 짝수 제어 라인들에 연결되며, 상기 비휘발성 저장 요소들의 제 2 그룹은 상기 홀수 제어 라인들에 연결되는 것을 특징으로 하는 비휘발성 저장 장치.
  32. 제 26 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹은 상기 비휘발성 저장 요소들의 제 2 그룹에 대해 인터리빙 방식으로 배치되는 것을 특징으로 하는 비휘발성 저장 장치.
  33. 삭제
  34. 제 26 항에 있어서,
    상기 제 1 트리거는, 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 동시에 인가되는 프로그램 펄스에 대한 전압 레벨을 포함하는 것을 특징으로 하는 비휘발성 저장 장치.
  35. 제 26 항에 있어서,
    상기 하나 이상의 관리 회로들은 제 2 트리거 이전에 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하는 것과 별도로 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하며; 그리고
    상기 하나 이상의 관리 회로들은 상기 제 2 트리거 후 상기 제 2 트리거에 반응하여 상기 비휘발성 저장 요소들의 제 1 그룹을 상기 비휘발성 저장 요소들의 제 2 그룹과 함께 프로그램하는 것을 특징으로 하는 비휘발성 저장 장치.
  36. 제 26 항에 있어서,
    워드라인을 더 포함하고,
    상기 비휘발성 저장 요소들의 제 1 그룹은 상기 워드라인에 연결되고, 상기 비휘발성 저장 요소들의 제 2 그룹은 상기 워드라인에 연결되며; 그리고
    비트라인들을 더 포함하고,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹의 각 비휘발성 저장 요소는 상이한 비트라인들에 연결되는 것을 특징으로 하는 비휘발성 저장 장치.
  37. 제 36 항에 있어서,
    상기 하나 이상의 관리 회로들은,
    상기 비휘발성 저장 요소들의 제 2 그룹을 프로그래밍으로부터 금지하는 동안 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 1 프로그램 펄스를 인가하고, 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그래밍으로부터 금지하는 동안 상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹에 제 2 프로그램 펄스를 인가함으로써, 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하는 것과 별도로 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하는 것을 특징으로 하는 비휘발성 저장 장치.
  38. 삭제
  39. 제 26 항에 있어서,
    상기 하나 이상의 관리 회로들은 온도에 근거하여 상기 제 1 트리거를 조정하는 것을 특징으로 하는 비휘발성 저장 장치.
  40. 제 26 항에 있어서,
    상기 하나 이상의 관리 회로들은 프로그램 싸이클들의 수에 근거하여 상기 제 1 트리거를 조정하는 것을 특징으로 하는 비휘발성 저장 장치.
  41. 제 26 항에 있어서,
    상기 하나 이상의 관리 회로들은 조건을 검출하기 이전에 상기 비휘발성 저장 요소들의 제 2 그룹을 프로그램하는 것과 별도로 상기 비휘발성 저장 요소들의 제 1 그룹을 프로그램하며; 그리고
    상기 하나 이상의 관리 회로들은 상기 조건을 검출한 이후에 그리고 상기 조건을 검출하는 것에 반응하여 상기 비휘발성 저장 요소들의 제 1 그룹을 상기 비휘발성 저장 요소들의 제 2 그룹과 함께 프로그램하는 것을 특징으로 하는 비휘발성 저장 장치.
  42. 제 26 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹은 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 저장 장치.
  43. 제 26 항에 있어서,
    상기 비휘발성 저장 요소들의 제 1 그룹 및 상기 비휘발성 저장 요소들의 제 2 그룹은 NAND 플래시 메모리 디바이스인 것을 특징으로 하는 비휘발성 저장 장치.
KR1020107007347A 2007-09-04 2008-08-28 프로그래밍 동안에 간섭의 영향을 감소시키는 방법 KR101502104B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/849,992 US7869273B2 (en) 2007-09-04 2007-09-04 Reducing the impact of interference during programming
US11/849,992 2007-09-04
PCT/US2008/074621 WO2009032747A1 (en) 2007-09-04 2008-08-28 Reducing the impact of interference during programming

Publications (2)

Publication Number Publication Date
KR20100085022A KR20100085022A (ko) 2010-07-28
KR101502104B1 true KR101502104B1 (ko) 2015-03-12

Family

ID=40407216

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107007347A KR101502104B1 (ko) 2007-09-04 2008-08-28 프로그래밍 동안에 간섭의 영향을 감소시키는 방법

Country Status (7)

Country Link
US (5) US7869273B2 (ko)
EP (1) EP2181446B1 (ko)
JP (1) JP5216856B2 (ko)
KR (1) KR101502104B1 (ko)
CN (1) CN101849263B (ko)
TW (1) TWI391944B (ko)
WO (1) WO2009032747A1 (ko)

Families Citing this family (232)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007132456A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Ltd. Memory device with adaptive capacity
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
WO2008053472A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US8151166B2 (en) * 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
US8369141B2 (en) 2007-03-12 2013-02-05 Apple Inc. Adaptive estimation of memory cell read thresholds
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US7869273B2 (en) 2007-09-04 2011-01-11 Sandisk Corporation Reducing the impact of interference 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
WO2009050703A2 (en) 2007-10-19 2009-04-23 Anobit Technologies Data storage in analog memory cell arrays having erase failures
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
KR101448851B1 (ko) * 2008-02-26 2014-10-13 삼성전자주식회사 비휘발성 메모리 장치에서의 프로그래밍 방법
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
KR101069004B1 (ko) * 2008-08-01 2011-09-29 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8130556B2 (en) 2008-10-30 2012-03-06 Sandisk Technologies Inc. Pair bit line programming to improve boost voltage clamping
US8713330B1 (en) 2008-10-30 2014-04-29 Apple Inc. Data scrambling in memory devices
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
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
KR101001416B1 (ko) * 2009-02-10 2010-12-14 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 및 독출 방법
US8446773B2 (en) * 2009-02-25 2013-05-21 Samsung Electronics Co., Ltd. Memory system and programming method thereof
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
US8098529B2 (en) * 2009-03-11 2012-01-17 Micron Technology, Inc. Memory device having buried boosting plate and methods of operating the same
US9281073B2 (en) 2009-03-11 2016-03-08 Micron Technology, Inc. Methods of operating a memory device having a buried boosting plate
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
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
US7978511B2 (en) * 2009-05-28 2011-07-12 Micron Technology, Inc. Data line management in a memory device
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8134871B2 (en) * 2009-08-05 2012-03-13 Sandisk Technologies Inc. Programming memory with reduced pass voltage disturb and floating gate-to-control gate leakage
US8081514B2 (en) * 2009-08-25 2011-12-20 Sandisk Technologies Inc. Partial speed and full speed programming for non-volatile memory using floating bit lines
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US7986573B2 (en) * 2009-11-24 2011-07-26 Sandisk Technologies Inc. Programming memory with direct bit line driving to reduce channel-to-floating gate coupling
US8089815B2 (en) * 2009-11-24 2012-01-03 Sandisk Technologies Inc. Programming memory with bit line floating to reduce channel-to-floating gate coupling
US8218381B2 (en) 2009-11-24 2012-07-10 Sandisk Technologies Inc. Programming memory with sensing-based bit line compensation to reduce channel-to-floating gate coupling
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8102712B2 (en) * 2009-12-22 2012-01-24 Intel Corporation NAND programming technique
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
JP2011181131A (ja) 2010-02-26 2011-09-15 Toshiba Corp 半導体記憶装置
US8218366B2 (en) 2010-04-18 2012-07-10 Sandisk Technologies Inc. Programming non-volatile storage including reducing impact from other memory cells
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8416624B2 (en) 2010-05-21 2013-04-09 SanDisk Technologies, Inc. Erase and programming techniques to reduce the widening of state distributions in non-volatile memories
KR20110131648A (ko) 2010-05-31 2011-12-07 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템 및 메모리 카드 및 그것의 프로그램 방법
JP5467938B2 (ja) * 2010-06-02 2014-04-09 ウィンボンド エレクトロニクス コーポレーション 半導体メモリ
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
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
US8310870B2 (en) * 2010-08-03 2012-11-13 Sandisk Technologies Inc. Natural threshold voltage distribution compaction in non-volatile memory
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
US8369149B2 (en) 2010-09-30 2013-02-05 Sandisk Technologies Inc. Multi-step channel boosting to reduce channel to floating gate coupling in memory
US8395936B2 (en) 2011-05-09 2013-03-12 Sandisk Technologies Inc. Using channel-to-channel coupling to compensate floating gate-to-floating gate coupling in programming of non-volatile memory
KR101792870B1 (ko) 2011-06-21 2017-11-02 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 읽기 방법
US8861276B2 (en) * 2011-06-21 2014-10-14 Samsung Electronics Co., Ltd. Nonvolatile memory device, memory system comprising same, and method of operating same
KR101818439B1 (ko) * 2011-09-22 2018-01-16 에스케이하이닉스 주식회사 메모리 및 메모리의 프로그램 방법
KR101817743B1 (ko) 2011-09-30 2018-01-22 에스케이하이닉스 주식회사 비휘발성 메모리 장치
KR20130042780A (ko) * 2011-10-19 2013-04-29 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 동작 방법
US8737132B2 (en) 2012-01-06 2014-05-27 Sandisk Technologies Inc. Charge cycling by equalizing the source and bit line levels between pulses during no-verify write operations for NAND flash memory
KR101938659B1 (ko) 2012-02-29 2019-01-15 삼성전자주식회사 불 휘발성 메모리 장치 및 그것을 포함한 메모리 시스템
US8773902B2 (en) 2012-05-09 2014-07-08 Sandisk Technologies Inc. Channel boosting using secondary neighbor channel coupling in non-volatile memory
JP2014053060A (ja) * 2012-09-07 2014-03-20 Toshiba Corp 半導体記憶装置及びその制御方法
CN103778965B (zh) * 2012-10-18 2016-08-03 宜扬科技股份有限公司 非挥发性存储装置中的毁损位线地址的取得方法
KR101802625B1 (ko) * 2013-01-17 2017-12-28 엠파이어 테크놀로지 디벨롭먼트 엘엘씨 셀간 간섭 완화
US9158667B2 (en) 2013-03-04 2015-10-13 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
CN104103310B (zh) * 2013-04-09 2017-10-03 晶豪科技股份有限公司 非易失性半导体存储器元件及其可编程方法
US8964496B2 (en) 2013-07-26 2015-02-24 Micron Technology, Inc. Apparatuses and methods for performing compare operations using sensing circuitry
US8971124B1 (en) * 2013-08-08 2015-03-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9153305B2 (en) 2013-08-30 2015-10-06 Micron Technology, Inc. Independently addressable memory array address spaces
US9019785B2 (en) 2013-09-19 2015-04-28 Micron Technology, Inc. Data shifting via a number of isolation devices
US9449675B2 (en) 2013-10-31 2016-09-20 Micron Technology, Inc. Apparatuses and methods for identifying an extremum value stored in an array of memory cells
US9430191B2 (en) 2013-11-08 2016-08-30 Micron Technology, Inc. Division operations for memory
US9934856B2 (en) 2014-03-31 2018-04-03 Micron Technology, Inc. Apparatuses and methods for comparing data patterns in memory
US9922718B2 (en) * 2014-05-22 2018-03-20 Seagate Technology Llc Flash command that reports a count of cell program failures
US9711207B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9786335B2 (en) 2014-06-05 2017-10-10 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9910787B2 (en) 2014-06-05 2018-03-06 Micron Technology, Inc. Virtual address table
US9455020B2 (en) 2014-06-05 2016-09-27 Micron Technology, Inc. Apparatuses and methods for performing an exclusive or operation using sensing circuitry
US9496023B2 (en) 2014-06-05 2016-11-15 Micron Technology, Inc. Comparison operations on logical representations of values in memory
US9779019B2 (en) 2014-06-05 2017-10-03 Micron Technology, Inc. Data storage layout
US9711206B2 (en) 2014-06-05 2017-07-18 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9449674B2 (en) 2014-06-05 2016-09-20 Micron Technology, Inc. Performing logical operations using sensing circuitry
US9830999B2 (en) 2014-06-05 2017-11-28 Micron Technology, Inc. Comparison operations in memory
US10074407B2 (en) 2014-06-05 2018-09-11 Micron Technology, Inc. Apparatuses and methods for performing invert operations using sensing circuitry
US9704540B2 (en) 2014-06-05 2017-07-11 Micron Technology, Inc. Apparatuses and methods for parity determination using sensing circuitry
US9904515B2 (en) 2014-09-03 2018-02-27 Micron Technology, Inc. Multiplication operations in memory
US9898252B2 (en) 2014-09-03 2018-02-20 Micron Technology, Inc. Multiplication operations in memory
US10068652B2 (en) 2014-09-03 2018-09-04 Micron Technology, Inc. Apparatuses and methods for determining population count
US9740607B2 (en) 2014-09-03 2017-08-22 Micron Technology, Inc. Swap operations in memory
US9589602B2 (en) 2014-09-03 2017-03-07 Micron Technology, Inc. Comparison operations in memory
US9747961B2 (en) 2014-09-03 2017-08-29 Micron Technology, Inc. Division operations in memory
US9847110B2 (en) 2014-09-03 2017-12-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in multiple columns of an array corresponding to digits of a vector
US9940026B2 (en) 2014-10-03 2018-04-10 Micron Technology, Inc. Multidimensional contiguous memory allocation
US9836218B2 (en) 2014-10-03 2017-12-05 Micron Technology, Inc. Computing reduction and prefix sum operations in memory
US10163467B2 (en) 2014-10-16 2018-12-25 Micron Technology, Inc. Multiple endianness compatibility
US10147480B2 (en) 2014-10-24 2018-12-04 Micron Technology, Inc. Sort operation in memory
US9779784B2 (en) 2014-10-29 2017-10-03 Micron Technology, Inc. Apparatuses and methods for performing logical operations using sensing circuitry
US9747960B2 (en) 2014-12-01 2017-08-29 Micron Technology, Inc. Apparatuses and methods for converting a mask to an index
US10073635B2 (en) 2014-12-01 2018-09-11 Micron Technology, Inc. Multiple endianness compatibility
US10061590B2 (en) 2015-01-07 2018-08-28 Micron Technology, Inc. Generating and executing a control flow
US10032493B2 (en) 2015-01-07 2018-07-24 Micron Technology, Inc. Longest element length determination in memory
US9583163B2 (en) 2015-02-03 2017-02-28 Micron Technology, Inc. Loop structure for operations in memory
EP3254286B1 (en) 2015-02-06 2019-09-11 Micron Technology, INC. Apparatuses and methods for parallel writing to multiple memory device locations
CN107408404B (zh) 2015-02-06 2021-02-12 美光科技公司 用于存储器装置的设备及方法以作为程序指令的存储
WO2016126472A1 (en) 2015-02-06 2016-08-11 Micron Technology, Inc. Apparatuses and methods for scatter and gather
KR20160108770A (ko) * 2015-03-06 2016-09-20 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
WO2016144724A1 (en) 2015-03-10 2016-09-15 Micron Technology, Inc. Apparatuses and methods for shift decisions
US9898253B2 (en) 2015-03-11 2018-02-20 Micron Technology, Inc. Division operations on variable length elements in memory
US9741399B2 (en) 2015-03-11 2017-08-22 Micron Technology, Inc. Data shift by elements of a vector in memory
US10365851B2 (en) 2015-03-12 2019-07-30 Micron Technology, Inc. Apparatuses and methods for data movement
US10146537B2 (en) 2015-03-13 2018-12-04 Micron Technology, Inc. Vector population count determination in memory
KR102291518B1 (ko) 2015-03-20 2021-08-20 삼성전자주식회사 불휘발성 메모리 장치 및 불휘발성 메모리 장치를 포함하는 스토리지 장치
US10049054B2 (en) 2015-04-01 2018-08-14 Micron Technology, Inc. Virtual register file
US10140104B2 (en) 2015-04-14 2018-11-27 Micron Technology, Inc. Target architecture determination
US9959923B2 (en) 2015-04-16 2018-05-01 Micron Technology, Inc. Apparatuses and methods to reverse data stored in memory
US10073786B2 (en) 2015-05-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for compute enabled cache
US9704541B2 (en) 2015-06-12 2017-07-11 Micron Technology, Inc. Simulating access lines
US9921777B2 (en) 2015-06-22 2018-03-20 Micron Technology, Inc. Apparatuses and methods for data transfer from sensing circuitry to a controller
US9996479B2 (en) 2015-08-17 2018-06-12 Micron Technology, Inc. Encryption of executables in computational memory
US9711211B2 (en) 2015-10-29 2017-07-18 Sandisk Technologies Llc Dynamic threshold voltage compaction for non-volatile memory
TWI596477B (zh) * 2015-12-18 2017-08-21 群聯電子股份有限公司 記憶體管理方法、記憶體控制電路單元及記憶體儲存裝置
US9905276B2 (en) 2015-12-21 2018-02-27 Micron Technology, Inc. Control of sensing components in association with performing operations
US9952925B2 (en) 2016-01-06 2018-04-24 Micron Technology, Inc. Error code calculation on sensing circuitry
US10048888B2 (en) 2016-02-10 2018-08-14 Micron Technology, Inc. Apparatuses and methods for partitioned parallel data movement
US9892767B2 (en) 2016-02-12 2018-02-13 Micron Technology, Inc. Data gathering in memory
US9971541B2 (en) 2016-02-17 2018-05-15 Micron Technology, Inc. Apparatuses and methods for data movement
US9899070B2 (en) 2016-02-19 2018-02-20 Micron Technology, Inc. Modified decode for corner turn
US10956439B2 (en) 2016-02-19 2021-03-23 Micron Technology, Inc. Data transfer with a bit vector operation device
US9697876B1 (en) 2016-03-01 2017-07-04 Micron Technology, Inc. Vertical bit vector shift in memory
US9997232B2 (en) 2016-03-10 2018-06-12 Micron Technology, Inc. Processing in memory (PIM) capable memory device having sensing circuitry performing logic operations
US10262721B2 (en) 2016-03-10 2019-04-16 Micron Technology, Inc. Apparatuses and methods for cache invalidate
JP6433933B2 (ja) * 2016-03-14 2018-12-05 東芝メモリ株式会社 半導体記憶装置及びメモリシステム
US10379772B2 (en) 2016-03-16 2019-08-13 Micron Technology, Inc. Apparatuses and methods for operations using compressed and decompressed data
US9910637B2 (en) 2016-03-17 2018-03-06 Micron Technology, Inc. Signed division in memory
US10120740B2 (en) 2016-03-22 2018-11-06 Micron Technology, Inc. Apparatus and methods for debugging on a memory device
US11074988B2 (en) 2016-03-22 2021-07-27 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10388393B2 (en) 2016-03-22 2019-08-20 Micron Technology, Inc. Apparatus and methods for debugging on a host and memory device
US10474581B2 (en) 2016-03-25 2019-11-12 Micron Technology, Inc. Apparatuses and methods for cache operations
US10977033B2 (en) 2016-03-25 2021-04-13 Micron Technology, Inc. Mask patterns generated in memory from seed vectors
US10430244B2 (en) 2016-03-28 2019-10-01 Micron Technology, Inc. Apparatuses and methods to determine timing of operations
US10074416B2 (en) 2016-03-28 2018-09-11 Micron Technology, Inc. Apparatuses and methods for data movement
US10453502B2 (en) 2016-04-04 2019-10-22 Micron Technology, Inc. Memory bank power coordination including concurrently performing a memory operation in a selected number of memory regions
US10607665B2 (en) 2016-04-07 2020-03-31 Micron Technology, Inc. Span mask generation
US9818459B2 (en) 2016-04-19 2017-11-14 Micron Technology, Inc. Invert operations using sensing circuitry
US10153008B2 (en) 2016-04-20 2018-12-11 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US9659605B1 (en) 2016-04-20 2017-05-23 Micron Technology, Inc. Apparatuses and methods for performing corner turn operations using sensing circuitry
US10042608B2 (en) 2016-05-11 2018-08-07 Micron Technology, Inc. Signed division in memory
US9659610B1 (en) 2016-05-18 2017-05-23 Micron Technology, Inc. Apparatuses and methods for shifting data
US10049707B2 (en) 2016-06-03 2018-08-14 Micron Technology, Inc. Shifting data
US10387046B2 (en) 2016-06-22 2019-08-20 Micron Technology, Inc. Bank to bank data transfer
US10037785B2 (en) 2016-07-08 2018-07-31 Micron Technology, Inc. Scan chain operation in sensing circuitry
US10388360B2 (en) 2016-07-19 2019-08-20 Micron Technology, Inc. Utilization of data stored in an edge section of an array
US10387299B2 (en) 2016-07-20 2019-08-20 Micron Technology, Inc. Apparatuses and methods for transferring data
US10733089B2 (en) 2016-07-20 2020-08-04 Micron Technology, Inc. Apparatuses and methods for write address tracking
US9972367B2 (en) 2016-07-21 2018-05-15 Micron Technology, Inc. Shifting data in sensing circuitry
US9767864B1 (en) 2016-07-21 2017-09-19 Micron Technology, Inc. Apparatuses and methods for storing a data value in a sensing circuitry element
US10303632B2 (en) 2016-07-26 2019-05-28 Micron Technology, Inc. Accessing status information
US10468087B2 (en) 2016-07-28 2019-11-05 Micron Technology, Inc. Apparatuses and methods for operations in a self-refresh state
US9990181B2 (en) 2016-08-03 2018-06-05 Micron Technology, Inc. Apparatuses and methods for random number generation
US11029951B2 (en) 2016-08-15 2021-06-08 Micron Technology, Inc. Smallest or largest value element determination
US10606587B2 (en) 2016-08-24 2020-03-31 Micron Technology, Inc. Apparatus and methods related to microcode instructions indicating instruction types
US10466928B2 (en) 2016-09-15 2019-11-05 Micron Technology, Inc. Updating a register in memory
US10387058B2 (en) 2016-09-29 2019-08-20 Micron Technology, Inc. Apparatuses and methods to change data category values
US10014034B2 (en) 2016-10-06 2018-07-03 Micron Technology, Inc. Shifting data in sensing circuitry
US10529409B2 (en) 2016-10-13 2020-01-07 Micron Technology, Inc. Apparatuses and methods to perform logical operations using sensing circuitry
US9805772B1 (en) 2016-10-20 2017-10-31 Micron Technology, Inc. Apparatuses and methods to selectively perform logical operations
US10373666B2 (en) 2016-11-08 2019-08-06 Micron Technology, Inc. Apparatuses and methods for compute components formed over an array of memory cells
US10423353B2 (en) 2016-11-11 2019-09-24 Micron Technology, Inc. Apparatuses and methods for memory alignment
US9761300B1 (en) 2016-11-22 2017-09-12 Micron Technology, Inc. Data shift apparatuses and methods
US10402340B2 (en) 2017-02-21 2019-09-03 Micron Technology, Inc. Memory array page table walk
US10403352B2 (en) 2017-02-22 2019-09-03 Micron Technology, Inc. Apparatuses and methods for compute in data path
US10268389B2 (en) 2017-02-22 2019-04-23 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10838899B2 (en) 2017-03-21 2020-11-17 Micron Technology, Inc. Apparatuses and methods for in-memory data switching networks
US10185674B2 (en) 2017-03-22 2019-01-22 Micron Technology, Inc. Apparatus and methods for in data path compute operations
US11222260B2 (en) 2017-03-22 2022-01-11 Micron Technology, Inc. Apparatuses and methods for operating neural networks
US10049721B1 (en) 2017-03-27 2018-08-14 Micron Technology, Inc. Apparatuses and methods for in-memory operations
US10147467B2 (en) 2017-04-17 2018-12-04 Micron Technology, Inc. Element value comparison in memory
US10043570B1 (en) 2017-04-17 2018-08-07 Micron Technology, Inc. Signed element compare in memory
US9997212B1 (en) 2017-04-24 2018-06-12 Micron Technology, Inc. Accessing data in memory
US10942843B2 (en) 2017-04-25 2021-03-09 Micron Technology, Inc. Storing data elements of different lengths in respective adjacent rows or columns according to memory shapes
US10236038B2 (en) 2017-05-15 2019-03-19 Micron Technology, Inc. Bank to bank data transfer
US10068664B1 (en) 2017-05-19 2018-09-04 Micron Technology, Inc. Column repair in memory
US10013197B1 (en) 2017-06-01 2018-07-03 Micron Technology, Inc. Shift skip
US10553301B2 (en) 2017-06-03 2020-02-04 Sandisk Technologies Llc Dynamic read table block filter
US10152271B1 (en) 2017-06-07 2018-12-11 Micron Technology, Inc. Data replication
US10262701B2 (en) 2017-06-07 2019-04-16 Micron Technology, Inc. Data transfer between subarrays in memory
US10318168B2 (en) 2017-06-19 2019-06-11 Micron Technology, Inc. Apparatuses and methods for simultaneous in data path compute operations
US10162005B1 (en) 2017-08-09 2018-12-25 Micron Technology, Inc. Scan chain operations
US10534553B2 (en) 2017-08-30 2020-01-14 Micron Technology, Inc. Memory array accessibility
US10416927B2 (en) 2017-08-31 2019-09-17 Micron Technology, Inc. Processing in memory
US10346092B2 (en) 2017-08-31 2019-07-09 Micron Technology, Inc. Apparatuses and methods for in-memory operations using timing circuitry
US10741239B2 (en) 2017-08-31 2020-08-11 Micron Technology, Inc. Processing in memory device including a row address strobe manager
US10409739B2 (en) 2017-10-24 2019-09-10 Micron Technology, Inc. Command selection policy
US10522210B2 (en) 2017-12-14 2019-12-31 Micron Technology, Inc. Apparatuses and methods for subarray addressing
US10332586B1 (en) 2017-12-19 2019-06-25 Micron Technology, Inc. Apparatuses and methods for subrow addressing
US10649656B2 (en) 2017-12-28 2020-05-12 Micron Technology, Inc. Techniques to update a trim parameter in non-volatile memory
US10614875B2 (en) 2018-01-30 2020-04-07 Micron Technology, Inc. Logical operations using memory cells
US10437557B2 (en) 2018-01-31 2019-10-08 Micron Technology, Inc. Determination of a match between data values stored by several arrays
US11194477B2 (en) 2018-01-31 2021-12-07 Micron Technology, Inc. Determination of a match between data values stored by three or more arrays
US10725696B2 (en) 2018-04-12 2020-07-28 Micron Technology, Inc. Command selection policy with read priority
US10410732B1 (en) 2018-05-21 2019-09-10 Western Digital Technologies, Inc. Failure prediction by cell probing
US10440341B1 (en) 2018-06-07 2019-10-08 Micron Technology, Inc. Image processor formed in an array of memory cells
US10541031B2 (en) 2018-06-15 2020-01-21 Sandisk Technologies Llc Single pulse SLC programming scheme
US10825513B2 (en) 2018-06-26 2020-11-03 Sandisk Technologies Llc Parasitic noise control during sense operations
US10769071B2 (en) 2018-10-10 2020-09-08 Micron Technology, Inc. Coherent memory access
US11175915B2 (en) 2018-10-10 2021-11-16 Micron Technology, Inc. Vector registers implemented in memory
US10483978B1 (en) 2018-10-16 2019-11-19 Micron Technology, Inc. Memory device processing
US11184446B2 (en) 2018-12-05 2021-11-23 Micron Technology, Inc. Methods and apparatus for incentivizing participation in fog networks
US10636501B1 (en) * 2019-03-18 2020-04-28 Sandisk Technologies Llc Memory device with reduced neighbor word line interference using adjustable voltage on source-side unselected word line
US10867655B1 (en) 2019-07-08 2020-12-15 Micron Technology, Inc. Methods and apparatus for dynamically adjusting performance of partitioned memory
US11360768B2 (en) 2019-08-14 2022-06-14 Micron Technolgy, Inc. Bit string operations in memory
US11449577B2 (en) 2019-11-20 2022-09-20 Micron Technology, Inc. Methods and apparatus for performing video processing matrix operations within a memory array
US11853385B2 (en) 2019-12-05 2023-12-26 Micron Technology, Inc. Methods and apparatus for performing diversity matrix operations within a memory array
US11227641B1 (en) 2020-07-21 2022-01-18 Micron Technology, Inc. Arithmetic operations in memory
KR20220033651A (ko) 2020-09-09 2022-03-17 삼성전자주식회사 비휘발성 메모리 장치, 그것의 프로그램 방법 및 그것을 포함하는 저장 장치
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050207259A1 (en) * 2004-03-22 2005-09-22 Matsushita Electric Industrial Co., Ltd. Non-volatile semiconductor memory device and writing method therefor
US6967872B2 (en) * 2001-12-18 2005-11-22 Sandisk Corporation Method and system for programming and inhibiting multi-level, non-volatile memory cells
US20060004952A1 (en) * 2004-02-15 2006-01-05 M-Systems Flash Disk Pioneers, Ltd. Method of managing a multi-bit-cell flash memory

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69033262T2 (de) * 1989-04-13 2000-02-24 Sandisk Corp EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
KR100206709B1 (ko) * 1996-09-21 1999-07-01 윤종용 멀티비트 불휘발성 반도체 메모리의 셀 어레이의 구조 및 그의 구동방법
JP2002279788A (ja) * 2001-03-16 2002-09-27 Toshiba Corp 不揮発性半導体メモリ
US6894930B2 (en) * 2002-06-19 2005-05-17 Sandisk Corporation Deep wordline trench to shield cross coupling between adjacent cells for scaled NAND
JP3935139B2 (ja) * 2002-11-29 2007-06-20 株式会社東芝 半導体記憶装置
US7073103B2 (en) * 2002-12-05 2006-07-04 Sandisk Corporation Smart verify for multi-state memories
US6882567B1 (en) * 2002-12-06 2005-04-19 Multi Level Memory Technology Parallel programming of multiple-bit-per-cell memory cells on a continuous word line
US6859397B2 (en) 2003-03-05 2005-02-22 Sandisk Corporation Source side self boosting technique for non-volatile memory
US7237074B2 (en) 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US6917542B2 (en) 2003-07-29 2005-07-12 Sandisk Corporation Detecting over programmed memory
KR100562504B1 (ko) * 2003-08-29 2006-03-21 삼성전자주식회사 신호의 위상차를 줄이는 반도체 메모리 장치
US6956770B2 (en) * 2003-09-17 2005-10-18 Sandisk Corporation Non-volatile memory and method with bit line compensation dependent on neighboring operating modes
US7064980B2 (en) * 2003-09-17 2006-06-20 Sandisk Corporation Non-volatile memory and method with bit line coupled compensation
US6888758B1 (en) * 2004-01-21 2005-05-03 Sandisk Corporation Programming non-volatile memory
US6937520B2 (en) * 2004-01-21 2005-08-30 Tsuyoshi Ono Nonvolatile semiconductor memory device
KR100585628B1 (ko) * 2005-01-24 2006-06-07 삼성전자주식회사 불휘발성 반도체 메모리 장치의 프로그램 구동방법
US7212436B2 (en) * 2005-02-28 2007-05-01 Micron Technology, Inc. Multiple level programming in a non-volatile memory device
ITVA20050024A1 (it) * 2005-04-13 2006-10-14 St Microelectronics Srl Metodo e circuito di programmazione simultanea di celle di memoria
KR100621634B1 (ko) * 2005-05-06 2006-09-07 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
JP4282636B2 (ja) 2005-06-22 2009-06-24 株式会社東芝 不揮発性半導体記憶装置とそのデータ書き込み方法
US7443732B2 (en) * 2005-09-20 2008-10-28 Spansion Llc High performance flash memory device capable of high density data storage
US7630249B2 (en) 2007-06-21 2009-12-08 Sandisk Corporation Intelligent control of program pulse duration
US7580290B2 (en) 2007-06-21 2009-08-25 Sandisk Corporation Non-volatile storage system with intelligent control of program pulse duration
US7869273B2 (en) 2007-09-04 2011-01-11 Sandisk Corporation Reducing the impact of interference during programming
KR101378602B1 (ko) * 2008-05-13 2014-03-25 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6967872B2 (en) * 2001-12-18 2005-11-22 Sandisk Corporation Method and system for programming and inhibiting multi-level, non-volatile memory cells
US20060004952A1 (en) * 2004-02-15 2006-01-05 M-Systems Flash Disk Pioneers, Ltd. Method of managing a multi-bit-cell flash memory
US20050207259A1 (en) * 2004-03-22 2005-09-22 Matsushita Electric Industrial Co., Ltd. Non-volatile semiconductor memory device and writing method therefor
US7260016B2 (en) * 2004-03-22 2007-08-21 Matsushita Electric Industrial Co., Ltd. Non-volatile semiconductor memory device and writing method therefor

Also Published As

Publication number Publication date
JP5216856B2 (ja) 2013-06-19
EP2181446A4 (en) 2010-09-22
KR20100085022A (ko) 2010-07-28
EP2181446B1 (en) 2013-06-12
CN101849263B (zh) 2013-05-08
US8184479B2 (en) 2012-05-22
USRE45813E1 (en) 2015-11-24
TWI391944B (zh) 2013-04-01
US20090059660A1 (en) 2009-03-05
US7869273B2 (en) 2011-01-11
WO2009032747A1 (en) 2009-03-12
CN101849263A (zh) 2010-09-29
US20110310671A1 (en) 2011-12-22
JP2010538409A (ja) 2010-12-09
USRE43870E1 (en) 2012-12-25
US20110075477A1 (en) 2011-03-31
US8094492B2 (en) 2012-01-10
TW200917272A (en) 2009-04-16
EP2181446A1 (en) 2010-05-05

Similar Documents

Publication Publication Date Title
KR101502104B1 (ko) 프로그래밍 동안에 간섭의 영향을 감소시키는 방법
KR101736414B1 (ko) 다른 메모리 셀들로부터의 영향을 감소시키는 것을 포함하는 비휘발성 저장 소자의 프로그래밍
EP2286411B1 (en) Erase-verification process for non-volatile storage
KR101688603B1 (ko) 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출
EP2577671B1 (en) Programming non-volatile storage with synchronized coupling
KR101699917B1 (ko) 패스트 비트 감지 및 확인 생략을 구비한 비휘발성 저장소의 프로그래밍
JP5575244B2 (ja) 選択的なメモリセルプログラムおよび消去
WO2014137651A1 (en) Non-volatile storage with process that reduces read disturb on end wordlines
KR20140053009A (ko) 비-휘발성 스토리지를 위한 판독 패스 전압들의 지능적 시프팅
EP1946323B1 (en) Method for programming of multi-state non-volatile memory using smart verify
KR20120100912A (ko) 비휘발성 저장 소자 내에서 위험한 상태의 데이터를 식별하는 방법
KR20140109889A (ko) 고장난 워드 라인 스크린 및 데이터 복원을 갖는 비휘발성 저장장치
KR101554940B1 (ko) 제어 게이트 라인 아키텍쳐

Legal Events

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

Payment date: 20180219

Year of fee payment: 4