KR101655352B1 - 고유 임계 전압 분포 탐지에 의한 메모리의 프로그램 디스터브 예측 - Google Patents

고유 임계 전압 분포 탐지에 의한 메모리의 프로그램 디스터브 예측 Download PDF

Info

Publication number
KR101655352B1
KR101655352B1 KR1020117029999A KR20117029999A KR101655352B1 KR 101655352 B1 KR101655352 B1 KR 101655352B1 KR 1020117029999 A KR1020117029999 A KR 1020117029999A KR 20117029999 A KR20117029999 A KR 20117029999A KR 101655352 B1 KR101655352 B1 KR 101655352B1
Authority
KR
South Korea
Prior art keywords
storage elements
program
data
state
programming
Prior art date
Application number
KR1020117029999A
Other languages
English (en)
Other versions
KR20120039539A (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 KR20120039539A publication Critical patent/KR20120039539A/ko
Application granted granted Critical
Publication of KR101655352B1 publication Critical patent/KR101655352B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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
    • 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/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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Semiconductor Memories (AREA)

Abstract

비휘발성 저장 시스템에 있어서 프로그램 동작 동안, 저장 소자들 세트의 프로그램 디스터브 위험도를 결정하고(1404) 필요하다면 프로그램 디스터브가 발생할 가능성을 감소시키도록 해당 예방책을 세움(1406, 1408, 1410, 1412)으로써 프로그램 디스터브가 감소된다. 데이터의 하위 페이지를 프로그램하는 동안, 저장 소자들 세트의 고유 임계 전압 분포는 특정한 상태로 프로그램되는 저장 소자들을 추적하고, N1개 및 N2>N1개의 저장 소자들이 그 특정한 상태에 도달하는 데 얼마나 많은 프로그램 펄스들이 필요한지를 결정함으로써 결정된다. 온도 및 워드 라인 위치도 또한 프로그램 디스터브 위험도를 결정하는 데 사용될 수 있다. 예방책(1415)은 더 높은 패스 전압을 사용하는 것(1416), 또는 데이터의 하위 페이지를 프로그램하는 것을 포기하거나(1418), 전체 블록의 프로그램을 포기하는 것(1420)을 포함할 수 있다. 일부 경우들에서, 프로그램은 아무런 예방책 없이 계속된다(1414).

Description

고유 임계 전압 분포 탐지에 의한 메모리의 프로그램 디스터브 예측{FORECASTING PROGRAM DISTURB IN MEMORY BY DETECTING NATURAL THRESHOLD VOLTAGE DISTRIBUTION}
본 기술은 비휘발성 메모리에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스들에서의 용도로 점점 인기를 더해왔다. 예를 들면, 비휘발성 반도체 메모리는 휴대폰, 디지털 카메라, PDA(personal digital assistant), 휴대용 컴퓨팅 디바이스(mobile computing device), 비-휴대용 컴퓨팅 디바이스 및 다른 디바이스들에서 사용된다. EEPROM(Electrically Erasable Programmable Read Only Memory)과 플래시 메모리(flash memory)가 가장 보편적인 비휘발성 반도체 메모리들에 속한다. EEPROM의 한 유형인 플래쉬 메모리의 경우, 종래의 완전한 기능을 갖춘 EEPROM과는 대조적으로, 전체 메모리 어레이 또는 메모리의 일부분의 내용들이 한번에 소거될 수 있다.
종래의 EEPROM과 플래시 메모리는 모두 반도체 기판의 채널 영역 위에 위치하며 채널 영역으로부터 절연되는 플로팅 게이트(floating gate)를 이용한다. 플로팅 게이트는 소오스(source) 영역과 드레인(drain) 영역 사이에 위치된다. 컨트롤 게이트(control gate)는 플로팅 게이트 위에 제공되며 플로팅 게이트와 절연된다. 트랜지스터의 임계 전압(threshold voltage, VTH)은 플로팅 게이트 상에 보유된 전하량에 의해 제어된다. 즉, 트랜지스터가 그 소오스와 드레인 사이에서 전도되도록 턴-온(turn on)되기 전에 컨트롤 게이트에 인가되어야할 최소량의 전압은 플로팅 게이트 상의 전하 레벨에 의해 제어된다.
일부 EEPROM과 플래쉬 메모리 디바이스들은 두 범위의 전하들을 저장하는 데 사용되는 플로팅 게이트를 가지므로, 메모리 소자는 2개의 상태들, 예컨대 소거된(erased) 상태와 프로그램된(programmed) 상태 사이에서 프로그램/소거될 수 있다. 이러한 플래쉬 메모리 디바이스는 각 메모리 소자가 한 비트의 데이터를 저장할 수 있기 때문에 종종 이진 플래쉬 메모리(binary flash memory)로 지칭된다.
다중-상태(multi-state)(또한 다중-레벨(multi-level)로 지칭됨) 플래쉬 메모리 디바이스는 그 각각이 구별되고 허용/유효한 복수의 프로그램 임계 전압 범위들을 식별함으로써 구현된다. 각각의 구별되는 임계 전압 범위들은 메모리 디바이스에 인코딩된 데이터 비트들의 세트에 대해 미리 결정된 값에 대응된다. 예를 들면, 메모리 소자가 4개의 구별되는 임계 전압 범위들에 대응되는 4개의 이산 전하 밴드들(discrete charge bands) 중 하나에 놓일 수 있으면 각 메모리 소자는 두 비트의 데이터를 저장할 수 있다.
전형적으로, 프로그램 동작 동안에 컨트롤 게이트에 인가되는 프로그램 전압 VPGM은 시간에 따라 크기가 증가하는 일련의 펄스(pulse)들로서 인가된다. 프로그램 전압은 선택된 워드 라인에 인가될 수 있다. 하나의 가능한 접근법에서, 펄스들의 크기는 각 연속되는 펄스마다 소정의 스텝 크기, 예컨대 0.2 V 내지 0.4 V 만큼 증가된다. VPGM은 플래쉬 메모리 소자들의 컨트롤 게이트들에 인가될 수 있다. 프로그램 펄스들 사이의 시간에, 검증(verify) 동작들이 수행된다. 즉, 병렬적으로 프로그램되고 있는 소자들의 그룹에 대해 각 소자가 프로그램되고 있는 검증 레벨 이상인지를 판별하기 위해 연속되는 프로그램 펄스들 사이에 그 소자의 프로그램 레벨이 판독(read)된다. 다중-상태 플래쉬 메모리 소자들의 어레이들의 경우, 소자가 그 데이터와 관련된 검증 레벨에 도달했는지 여부를 판별하기 위해 소자의 각 상태에 대하여 검증 단계가 수행될 수 있다. 예를 들면, 4개의 상태들로 데이터를 저장할 수 있는 다중-상태 메모리 소자는 세 개의 비교점들에 대해 검증 동작들을 수행해야할 수 있다.
게다가, 낸드 스트링(NAND string)에서 낸드 플래쉬 메모리 디바이스와 같은 플래쉬 메모리 디바이스 또는 EEPROM을 프로그램할 때, 전형적으로 VPGM은 컨트롤 게이트에 인가되고 비트 라인은 접지되며, 이는 전자들이 셀 또는 메모리 소자(예컨대, 저장 소자)의 채널로부터 플로팅 게이트 안으로 주입되도록 한다. 전자들이 플로팅 게이트에 축적되면, 플로팅 게이트가 음(negative)으로 충전되고 메모리 소자의 임계 전압이 올라가서 메모리 소자는 프로그램된 상태에 있는 것으로 여겨진다.
하지만, 지속적으로 문제가 되는 한 가지 사안은 프로그램 디스터브(program disturb)이다. 프로그램 디스터브는 다른 선택된 낸드 스트링들을 프로그램하는 동안 금지된 선택되지 않은 낸드 스트링들에서 발생할 수 있다. 프로그램 디스터브는 다른 비휘발성 저장 소자들을 프로그램하는 것으로 인해 선택되지 않은 비휘발성 저장 소자의 임계 전압이 시프트(shift)될 때 발생한다. 프로그램 디스터브는 앞서 프로그램된 저장 소자들 뿐만 아니라 아직 프로그램되지 않은 소거된 저장 소자들에서 발생할 수 있다.
본 명세서에서 비휘발성 저장부를 동작시키기 위한 방법이 한 실시예로 제공되며, 상기 방법은 (a) 제1 일련의 프로그램 펄스들을 비휘발성 저장 시스템에서 저장 소자들 블록의 선택된 워드 라인에 인가함으로써 제1 프로그램 국면을 수행하는 것을 포함하며, 상기 선택된 워드 라인은 상기 블록의 선택된 저장 소자들과 통신한다. 상기 방법은 (b) 상기 선택된 저장 소자들 중 제1 일부 소자들의 임계 전압들이 검증 레벨을 초과하는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 관련 프로그램 펄스를 식별하는 것과, (c) 상기 선택된 저장 소자들 중 제2 일부 소자들의 임계 전압들이 상기 검증 레벨을 초과하는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 관련 프로그램 펄스를 식별하는 것과, (d) 적어도 부분적으로 상기 관련 프로그램 펄스들을 기반으로, 상기 선택된 저장 소자들에서 프로그램 디스터브의 가능성을 감소시키기 위한 예방책이 표시될지 여부를 결정하는 것과, 그리고 (e) 만일 상기 예방책이 표시된다면 상기 예방책을 실시하는 것을 더 포함한다.
다른 실시예에서, 비휘발성 저장 시스템은 저장 소자들의 세트, 상기 저장 소자들의 세트와 통신하는 워드 라인들의 세트, 및 상기 워드 라인들의 세트와 통신하는 하나 이상의 제어 회로들을 포함한다. 상기 하나 이상의 제어 회로들은 (a) 제1 일련의 프로그램 펄스들을 비휘발성 저장 시스템에서 저장 소자들 블록의 선택된 워드 라인에 인가함으로써 제1 프로그램 국면을 수행하고, 상기 선택된 워드 라인은 상기 블록의 선택된 저장 소자들과 통신하며, (b) 상기 선택된 저장 소자들 중 제1 일부 소자들의 임계 전압들이 검증 레벨을 초과하는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 관련 프로그램 펄스를 식별하고, (c) 상기 선택된 저장 소자들 중 제2 일부 소자들의 임계 전압들이 상기 검증 레벨을 초과하는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 관련 프로그램 펄스를 식별하고, (d) 적어도 부분적으로 상기 관련 프로그램 펄스들을 기반으로, 상기 선택된 저장 소자들에서 프로그램 디스터브의 가능성을 감소시키기 위한 예방책이 표시될지 여부를 결정하며, 그리고 (e) 만일 상기 예방책이 표시된다면 상기 예방책을 실시한다.
또 다른 실시예에서, 비휘발성 저장부의 동작 방법은 (a) 제1 일련의 프로그램 펄스들을 비휘발성 저장 시스템에서 저장 소자들 블록의 선택된 워드 라인에 인가함으로써 제1 프로그램 국면을 수행하는 것과, 상기 선택된 워드 라인은 상기 블록의 선택된 저장 소자들과 통신하며, (b) 상기 제1 프로그램 국면을 기반으로 상기 선택된 저장 소자들의 고유 임계 전압 분포를 특징짓는 것과, (c) 적어도 부분적으로 상기 특징짓는 것을 기반으로 상기 선택된 저장 소자들에 의해 프로그램 디스터브 위험도의 정도를 결정하는 것과, 그리고 (d) 상기 위험도의 정도를 기반으로 복수의 이용가능한 예방책들 중에서 선택된 예방책을 실시하는 것을 포함한다.
또 다른 실시예에서, 비휘발성 저장 시스템은 선택된 저장 소자들을 포함하는 저장 소자들의 블록, 상기 선택된 저장 소자들과 통신하는 선택된 워드 라인을 포함하고 저장 소자들의 세트와 통신하는 워드 라인들의 세트, 및 상기 워드 라인들의 세트와 통신하는 하나 이상의 제어 회로들을 포함한다. 상기 하나 이상의 제어 회로들은 (a) 제1 일련의 프로그램 펄스들을 상기 선택된 워드 라인에 인가함으로써 제1 프로그램 국면을 수행하고, (b) 상기 선택된 저장 소자들 중 제1 일부 소자들의 임계 전압들이 검증 레벨을 넘어서는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 관련 프로그램 펄스를 식별하고, (c) 상기 선택된 저장 소자들 중 제2 일부 소자들의 임계 전압들이 상기 검증 레벨을 넘어서는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 관련 프로그램 펄스를 식별하고, (d) 적어도 부분적으로 상기 관련 프로그램 펄스들의 펄스 수들 사이의 차이를 기반으로, 상기 선택된 저장 소자들에서 프로그램 디스터브의 가능성을 감소시키기 위한 예방책이 표시될지 여부를 결정하고, 상기 펄스 수들은 각각 상기 제1 일련의 프로그램 펄스들에서 상기 관련 프로그램 펄스들의 순차적 위치를 가리키며, 그리고 (e) 만일 상기 예방책이 표시된다면 상기 예방책을 실시한다.
본 명세서에서 제공되는 방법들을 수행하기 위한 대응되는 방법들, 시스템들, 및 컴퓨터 또는 프로세서 판독가능한 저장 디바이스들도 또한 제공될 수 있다.
도 1a는 낸드 스트링(NAND string)의 평면도이다.
도 1b는 낸드 스트링의 등가 회로도이다.
도 2는 낸드 스트링의 단면도이다.
도 3은 3개의 낸드 스트링들을 도시한 회로도이다.
도 4는 낸드 플래쉬 저장 소자들의 어레이의 블록도이다.
도 5는 단일 행/열 디코더들과 판독/기록 회로들을 이용한 비휘발성 메모리 시스템의 블록도이다.
도 6은 감지 블록의 한 실시예를 도시한 블록도이다.
도 7은 모든 비트 라인 메모리 아키텍처(all bit line memory architecture)의 경우 또는 홀수-짝수 메모리 아키텍처(odd-even memory architecture)의 경우 메모리 어레이를 블록들로 편성한 예를 예시한 것이다.
도 8은 예시적인 임계 전압 분포들의 세트와 1-패스(one-pass) 프로그램을 도시한 것이다.
도 9는 예시적인 임계 전압 분포들의 세트와 2-패스(two-pass) 프로그램을 도시한 것이다.
도 10a 내지 도 10c는 다양한 임계 전압 분포들을 도시한 것이고 비휘발성 메모리를 프로그램하는 절차를 서술한 것이다.
도 10d 내지 도 10f는 도 10a로부터의 분포들을 더욱 상세히 도시한 것이다.
도 11은 낸드 스트링들의 단면도이며, 채널 부스팅(channel boosting)을 도시한 것이다.
도 12a는 채널 부스팅 전위를 패스 전압과 온도의 함수로서 도시한 것이다.
도 12b는 프로그램 디스터브 위험도를 고유 임계 전압 분포의 함수로서 도시한 것이다.
도 12c는 고유 임계 전압 분포를 N2개의 저장 소자들을 검증 레벨로 프로그램하는 데 필요한 프로그램 펄스 수 PPN2와 N1<N2개의 저장 소자들을 검증 레벨로 프로그램하는 데 필요한 프로그램 펄스 수 PPN1<PPN2 사이의 차이의 함수로서 도시한 것이다.
도 12d는 프로그램 디스터브 위험도를 온도의 함수로서 도시한 것이다.
도 12e는 프로그램 디스터브 위험도를 워드 라인 위치의 함수로서 도시한 것이다.
도 12f는 프로그램 디스터브 위험도의 함수로서 설정될 수 있는 패스 전압을 도시한 것이다.
도 13은 프로그램 동작에 있어서 프로그램 펄스들을 도시한 것이다.
도 14는 비휘발성 메모리를 프로그램하기 위한 방법의 개요의 한 실시예를 서술하는 순서도이다.
도 15는 비휘발성 메모리를 프로그램하기 위한 상세한 방법의 한 실시예를 서술하는 순서도이다.
프로그램 디스터브 위험도(susceptibility to program disturb)를 탐지하고 그에 대한 예방책을 세우는 방법 및 비휘발성 저장 시스템이 제공된다.
본 발명을 구현하는 데 적합한 한 예시적인 메모리 시스템은 낸드 플래쉬 메모리 구조(NAND flash memory structure)를 이용하며, 이 구조는 2개의 선택 게이트들(select gates) 사이에 복수의 트랜지스터들을 직렬로 배치한다. 직렬로 연결된 트랜지스터들과 선택 게이트들은 낸드 스트링(NAND string)으로 지칭된다. 도 1a는 하나의 낸드 스트링을 도시한 평면도이다. 도 1b는 그 등가 회로이다. 낸드 스트링은 제1 선택 게이트(120)와 제2 선택 게이트(122) 사이에서 직렬로 샌드위치된 4개의 트랜지스터들(100, 102, 104, 106)을 포함한다. 선택 게이트(120)는 낸드 스트링을 비트 라인(126)에 연결하는 게이트이다. 선택 게이트(122)는 낸드 스트링을 소오스 라인(128)에 연결하는 게이트이다. 선택 게이트(120)는 컨트롤 게이트(control gate)(120CG)에 적절한 전압들을 인가함으로써 제어된다. 선택 게이트(122)는 컨트롤 게이트(122CG)에 적절한 전압들을 인가함으로써 제어된다. 트랜지스터들(100, 102, 104, 106) 각각은 컨트롤 게이트와 플로팅 게이트(floating gate)를 가진다. 트랜지스터(100)는 컨트롤 게이트(100CG)와 플로팅 게이트(100FG)를 가진다. 트랜지스터(102)는 컨트롤 게이트(102CG)와 플로팅 게이트(102FG)를 포함한다. 트랜지스터(104)는 컨트롤 게이트(104CG)와 플로팅 게이트(104FG)를 포함한다. 트랜지스터(106)는 컨트롤 게이트(106CG)와 플로팅 게이트(106FG)를 포함한다. 컨트롤 게이트(100CG)는 워드 라인 WL3에 연결되고, 컨트롤 게이트(102CG)는 워드 라인 WL2에 연결되고, 컨트롤 게이트(104CG)는 워드 라인 WL1에 연결되며, 컨트롤 게이트(106CG)는 워드 라인 WL0에 연결된다. 한 실시예에서, 트랜지스터들(100, 102, 104, 106)은 각각 메모리 셀들이다. 다른 실시예들에서, 메모리 셀들은 복수의 트랜지스터들을 포함할 수 있으며, 또는 도시된 것과 서로 다를 수 있다. 선택 게이트(120)는 선택 라인(select line) SGD에 연결된다. 선택 게이트(122)는 선택 라인 SGS에 연결된다.
도 2는 전술된 낸드 스트링의 단면도를 제공한다. 낸드 스트링의 트랜지스터들은 p-웰(p-well) 영역(140)에 형성된다. p-웰 영역은 다시 p-타입 기판(144)의 n-웰 영역(142) 내에 있을 수 있다. 각 트랜지스터는 컨트롤 게이트(100CG, 102CG, 104CG, 106CG)와 플로팅 게이트(100FG, 102FG, 104FG, 106FG)로 구성되는 적층 게이트 구조를 포함한다. 플로팅 게이트들은 p-웰 표면 상에 산화물(oxide)이나 다른 유전체 막(dielectric film) 위에 형성된다. 컨트롤 게이트는 플로팅 게이트 위에 있으며, 폴리실리콘간 유전체 층(inter-polysilicon dielectric layer)이 컨트롤 게이트와 플로팅 게이트를 분리한다. 메모리 셀들(100, 102, 104, 106)의 컨트롤 게이트들은 워드 라인들을 형성한다. N+ 도핑된 층들(130, 132, 134, 136, 138)은 이웃 셀들 사이에 공유되며, 그리하여 셀들이 낸드 스트링을 형성하도록 직렬로 서로에 연결된다. 이들 N+ 도핑된 층들은 셀들 각각의 소오스 및 드레인을 형성한다. 예를 들면, N+ 도핑된 층(130)은 트랜지스터(122)의 드레인 및 트랜지스터(106)의 소오스로서 역할하고, N+ 도핑된 층(132)은 트랜지스터(106)의 드레인 및 트랜지스터(104)의 소오스로서 역할하고, N+ 도핑된 층(134)은 트랜지스터(104)의 드레인 및 트랜지스터(102)의 소오스로서 역할하고, N+ 도핑된 층(136)은 트랜지스터(102)에 대한 드레인 및 트랜지스터(100)에 대한 소오스로서 역할하고, N+ 도핑된 층(138)은 트랜지스터(100)에 대한 드레인 및 트랜지스터(120)에 대한 소오스로서 역할한다. N+ 도핑된 층(126)은 낸드 스트링에 대한 비트 라인에 연결되는 반면, N+ 도핑된 층(128)은 복수의 낸드 스트링들에 대한 공통 소오스 라인에 연결된다.
유의할 점은 비록 도 1a, 도 1b 및 도 2가 낸드 스트링에서 4개의 메모리 셀들을 도시하고 있지만, 본 명세서에서 서술되는 기술에 사용되는 낸드 스트링은 4개보다 더 적은 메모리 셀들을 가지거나 또는 4개보다 더 많은 메모리 셀들을 가질 수 있다는 것이다. 예를 들면, 일부 낸드 스트링들은 8개, 16개, 32개, 또는 그 보다 많은 메모리 셀들을 포함할 것이다.
각 메모리 셀은 아날로그 또는 디지털 형태로 표현되는 데이터를 저장할 수 있다. 한 비트의 디지털 데이터를 저장할 때, 메모리 셀의 가능한 임계 전압들의 범위는 2개의 범위로 나뉘며, 이들에는 논리적(logical) 데이터 "1" 및 "0"이 할당된다. 낸드형 플래쉬 메모리의 한 예에서, 메모리 셀이 소거(erase)된 후에 임계 전압은 음(negative)이며, 논리 "1"로서 정의된다. 프로그램(program) 동작 후에 임계 전압은 양(positive)이며, 논리 "0"으로서 정의된다. 임계 전압이 음이고 0 볼트를 컨트롤 게이트에 인가하여 판독(read)를 시도할 때, 메모리 셀은 논리 1이 저장되어 있음을 표시하도록 턴-온될 것이다. 임계 전압이 양이고 0 볼트를 컨트롤 게이트에 인가하여 판독 동작이 시도될 때, 메모리 셀은 턴-온되지 않을 것이며, 이는 논리 0이 저장되어 있음을 가리킨다.
메모리 셀은 또한 복수의 상태들을 저장할 수 있으며, 그리하여 다중 비트의 디지털 데이터를 저장한다. 복수의 상태의 데이터를 저장하는 경우, 임계 전압 윈도우는 상태들의 개수 만큼으로 나뉜다. 예를 들면, 만일 4개의 상태들이 사용된다면, 데이터 값들 "11", "10", "01", "00"으로 할당되는 4개의 임계 전압 범위들이 있을 것이다. 낸드형 메모리의 한 예에서, 소거 동작 후에 임계 전압은 음이고 "11"로서 정의된다. 양의 임계 전압들은 "10", "01", "00"의 상태들에 사용된다. 일부 구현예들에서, 데이터 값들(예컨대, 논리 상태들)은 그레이 코드(Grey code) 할당을 사용하여 임계 전압 범위들로 할당되므로, 만일 플로팅 게이트의 임계 전압이 그 이웃한 물리적 상태로 잘못 시프트되더라도, 단지 한 비트만이 영향을 받을 것이다. 메모리 셀로 프로그램되는 데이터와 셀의 임계 전압 범위들 사이의 구체적 관계는 그 메모리 셀들에 대해 채택되는 데이터 인코딩 방식에 따라 달라진다.
NAND 플래쉬 메모리 이외에도 다른 유형의 비휘발성 메모리들도 또한 본 기술과 함께 사용될 수 있다.
플래쉬 EEPROM 시스템에 유용한 다른 유형의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위해 전도성 플로팅 게이트 대신에 비-전도성 유전체 물질을 사용한다. 실리콘 산화물, 실리콘 질화물, 실리콘 산화물("ONO")로 형성되는 삼중 층 유전체가 전도성 컨트롤 게이트와 메모리 셀 채널 위의 반도체 기판 표면 사이에 샌드위치된다. 셀은 셀 채널로부터 질화물 안으로 전자들을 주입함으로써 프로그램되며, 전자들은 제한된 영역에 트랩(trap)되고 저장된다. 그러면, 이 저장된 전하는 탐지가능한 방식으로 셀의 채널 일부분의 임계 전압을 변화시킨다. 셀은 열 정공(hot hole)들을 질화물 안으로 주입함으로써 소거된다. 유사한 셀이 스플릿 게이트 구성(split-gate configuration)으로 제공될 수 있으며, 이 구성에서 도핑된 폴리실리콘 게이트가 별도의 선택 트랜지스터를 형성하도록 메모리 셀 채널의 일부분 위에서 확장된다.
또 다른 접근법으로, 2개의 비트들이 각 NROM 셀에 저장되며, 이 셀에서는 ONO 유전체 층이 소오스와 드레인 확산들 사이의 채널에 걸쳐 확장된다. 하나의 데이터 비트에 대한 전하는 드레인에 인접한 유전체 층에 국한되고, 다른 데이터 비트에 대한 전하는 소오스에 인접한 유전체 층에 국한된다. 유전체 내에서 공간적으로 분리된 전하 저장 영역들의 이진 상태들을 별도로 판독함으로써 다중-상태 데이터 저장이 이루어진다.
도 3은 3개의 낸드 스트링들을 도시한 회로도이다. 낸드 구조를 이용하는 플래쉬 메모리 시스템에 대한 전형적인 구조는 몇 개의 낸드 스트링들을 포함할 것이다. 예를 들면, 3개의 낸드 스트링들(320, 340, 360)이 훨씬 더 많은 낸드 스트링들을 가지는 메모리 어레이에서 도시되어 있다. 낸드 스트링들 각각은 2개의 선택 게이트들과 4개의 저장 소자들을 포함한다. 간결함을 위해 4개의 저장 소자들이 예시되어 있지만, 최신 낸드 스트링들은 예를 들어 32개 또는 64개까지의 저장 소자들을 가질 수 있다.
예를 들면, 낸드 스트링(320)은 선택 게이트들(322, 327)과 저장 소자들(323 내지 326)을 포함하고, 낸드 스트링(340)은 선택 게이트들(342, 347)과 저장 소자들(343 내지 346)을 포함하고, 낸드 스트링(360)은 선택 게이트들(362, 367)과 저장 소자들(363 내지 366)을 포함한다. 각각의 낸드 스트링은 그 선택 게이트들(예컨대, 선택 게이트들 327, 347 또는 367)에 의해 소오스 라인에 연결된다. 선택 라인 SGS는 소오스 측 선택 게이트들을 제어하는 데 사용된다. 여러 낸드 스트링들(320, 340, 360)은 각각 선택 게이트들(322, 342, 362)의 선택 트랜지스터들에 의해 각각의 비트 라인들(321, 341, 361)에 연결된다. 이들 선택 트랜지스터들은 드레인 선택 라인 SGD에 의해 제어된다. 다른 실시예들에서, 선택 라인들은 낸드 스트링들 간에 반드시 공통일 필요는 없으며, 즉 서로 다른 선택 라인들이 서로 다른 낸드 스트링들에 대해 제공될 수 있다. 워드 라인 WL3는 저장 소자들(323, 343, 363)에 대한 컨트롤 게이트들에 연결된다. 워드 라인 WL2는 저장 소자들(324, 344, 364)에 대한 컨트롤 게이트들에 연결된다. 워드 라인 WL1은 저장 소자들(325, 345, 365)에 대한 컨트롤 게이트들에 연결된다. 워드 라인 WL0은 저장 소자들(326, 346, 366)에 대한 컨트롤 게이트들에 연결된다. 볼 수 있는 바와 같이, 각 비트 라인과 각 낸드 스트링은 어레이 또는 저장 소자들 세트의 열들을 구성한다. 워드 라인들(WL3, WL2, WL1, WL0)은 어레이 또는 세트의 행들을 구성한다. 각 워드 라인은 행에서 각 저장 소자의 컨트롤 게이트들에 연결된다. 즉, 컨트롤 게이트들은 워드 라인들 자체에 의해 제공될 수 있다. 예를 들면, 워드 라인 WL2는 저장 소자들(324, 344, 364)에 대해 컨트롤 게이트들을 제공한다. 실제로는, 한 워드 라인 상에 수천 개의 저장 소자들이 존재할 수 있다.
각 저장 소자는 데이터를 저장할 수 있다. 예를 들면, 한 비트의 디지털 데이터를 저장할 때, 저장 소자의 가능한 임계 전압들(VTH)의 범위는 논리적 데이터 "1" 및 "0"이 할당되는 2개의 범위들로 나뉜다. 낸드형 플래쉬 메모리의 한 예에서, 저장 소자가 소거된 후에 VTH는 음이고, 논리 "1"로서 정의된다. 프로그램 동작 후의 VTH는 양이고 논리 "0"으로서 정의된다. VTH가 음이고 판독이 시도될 때, 그 메모리 소자는 논리 "1"이 저장되어 있음을 표시하도록 턴-온될 것이다. VTH가 양이고 판독 동작이 시도되면, 그 저장 소자는 턴-온되지 않으며, 이는 논리 "0"이 저장되어 있음을 가리킨다. 저장 소자는 또한 다중 레벨의 정보, 예컨대 복수의 비트들의 디지털 데이터를 저장할 수 있다. 이 경우에, VTH의 범위는 데이터 레벨들의 개수로 나뉜다. 예를 들면, 만일 4개 레벨의 정보가 저장된다면, 데이터 값들 "11", "10", "01", "00"에 할당되는 4개의 VTH 범위들이 있을 것이다. 낸드형 메모리의 한 예에서, 소거 동작 후의 VTH는 음이고 "11"로서 정의된다. 양의 VTH 값들은 "10", "01", "00"의 상태들에 대해 사용된다. 저장 소자에 프로그램되는 데이터와 저장 소자의 임계 전압 범위들 사이의 구체적 관계는 저장 소자들에 대해 채택되는 데이터 인코딩 방식에 따라 달라진다.
플래쉬 저장 소자를 프로그램할 때, 프로그램 전압은 그 저장 소자의 컨트롤 게이트에 인가되고, 그 저장 소자와 관련된 비트 라인은 접지된다. 채널로부터 전자들이 플로팅 게이트 안으로 주입된다. 전자들이 플로팅 게이트에 축적되면, 플로팅 게이트는 음으로 충전되고 그 소자의 VTH는 올라간다. 프로그램되고 있는 저장 소자의 컨트롤 게이트에 프로그램 전압을 인가하기 위해, 프로그램 전압이 적절한 워드 라인에 인가된다. 앞서 논의된 바와 같이, 낸드 스트링들 각각에 있는 하나의 저장 소자는 동일한 워드 라인을 공유한다. 예를 들면, 도 1c의 저장 소자(324)를 프로그램할 때, 프로그램 전압은 또한 저장 소자들(344, 364)의 컨트롤 게이트들에도 인가될 것이다.
하지만, 다른 낸드 스트링들을 프로그램하는 동안 금지된 낸드 스트링들에서 프로그램 디스터브가 발생할 수 있으며, 때로는 프로그램되는 낸드 스트링 자체에서 발생할 수 있다. 프로그램 디스터브는 선택된 비휘발성 저장 소자의 임계 전압이 다른 비휘발성 저장 소자들을 프로그램하는 것으로 인해 시프트(shift)될 때 발생한다. 프로그램 디스터브는 이전에 프로그램된 저장 소자들 뿐만 아니라 아직 프로그램되지 않은 소거된 저장 소자들에서 발생할 수 있다. 다양한 프로그램 디스터브 메커니즘들이 낸드 플래쉬 메모리와 같은 비휘발성 저장 디바이스들에 대해 이용가능한 동작 윈도우를 제한할 수 있다.
예를 들면, 만일 낸드 스트링(320)이 금지되고(예컨대, 현재 프로그램되고 있는 저장 소자를 포함하지 않는 선택되지 않은 낸드 스트링임) 낸드 스트링(340)이 프로그램되고 있다면(예컨대, 현재 프로그램되고 있는 저장 소자를 포함하는 선택된 낸드 스트링임), 프로그램 디스터브는 낸드 스트링(320)에서 발생할 수 있다. 예를 들면, 만일 패스 전압 VPASS가 낮으면, 금지된 NAND 스트링의 채널은 잘 부스트(boost)된 것이 아니며, 선택되지 않은 낸드 스트링의 선택된 워드 라인이 의도하지 않게 프로그램될 수 있다. 다른 가능한 시나리오에서, 부스트된 전압은 게이트 유도 드레인 누설(Gate Induced Drain Leakage, GIDL) 또는 다른 누설 메커니즘들에 의해 낮춰질 수 있으며, 이는 동일한 문제를 일으킨다. 나중에 프로그램되는 다른 이웃 저장 소자들과의 용량성 결합(capacitive coupling)으로 인한 전하 저장 소자의 VTH에 있어서의 시프트와 같은 다른 효과들도 또한 프로그램 디스터브에 기여할 수 있다.
도 4는 도 1a 및 도 1b에 도시된 것들과 같은 낸드 저장 소자들의 어레이(400)의 한 예를 예시한 것이다. 각 열을 따라, 비트 라인(406)은 낸드 스트링(450)에 대한 드레인 선택 게이트의 드레인 단자(426)에 연결된다. 낸드 스트링의 각 행을 따라, 소오스 라인(404)은 낸드 스트링들의 소오스 선택 게이트들의 모든 소오스 단자들(428)을 연결할 수 있다.
저장 소자들의 어레이는 많은 수의 저장 소자의 블록들로 나뉜다. 플래시 EEPROM 시스템에 대해 흔한 것처럼, 블록은 소거의 단위이다. 즉, 각 블록은 함께 소거되는 최소수의 저장 소자들을 포함한다. 전형적으로, 각 블록은 다수의 페이지들로 나뉜다. 페이지는 프로그램하는 최소 단위이다. 전형적으로, 하나 이상의 데이터 페이지들은 한 행의 저장 소자들에 저장된다. 예를 들면, 행은 전형적으로 몇 개의 인터리빙된(interleaved) 페이지들을 포함하거나 또는 하나의 페이지로 구성될 수 있다. 한 페이지의 모든 저장 소자들은 함께 판독 또는 프로그램될 것이다. 게다가, 페이지는 하나 이상의 섹터들로부터의 사용자 데이터를 저장할 수 있다. 섹터(sector)는 사용자 데이터의 편리한 유닛으로서 호스트에 의해 사용되는 논리적 개념이며, 전형적으로 오버헤드 데이터(overhead data)를 포함하지 않으며, 오버헤드 데이터는 제어기에 국한된다. 오버헤드 데이터는 섹터의 사용자 데이터로부터 계산된 에러 정정 코드(Error Correction Code, ECC)를 포함할 수 있다. 제어기의 일부분(아래에서 설명됨)은 데이터가 어레이로 프로그램되고 있을 때 ECC를 계산하고, 또한 언제 데이터가 어레이로부터 판독되는지를 검사한다. 대체가능한 것으로, ECC들 및/또는 다른 오버헤드 데이터는 이들이 관련된 사용자 데이터와 서로 다른 페이지들, 또는 심지어 서로 다른 블록들에 저장된다.
전형적으로, 한 섹터의 사용자 데이터는 512 바이트이며, 이는 자기 디스크 드라이브에서의 섹터 크기에 해당한다. 전형적으로, 오버헤드 데이터는 부가적인 16 내지 20 바이트이다. 많은 수의 페이지들이 한 블록을 형성하며, 그 수는 8 페이지에서 예를 들어 32, 64, 128 또는 그보다 많은 수의 페이지들까지 어떤 수일 수 있다. 일부 실시예들에서, 한 행의 낸드 스트링들은 한 블록을 포함한다.
한 실시예에서, 메모리 저장 소자들은 충분한 시간 동안 p-웰을 소거 전압(예컨대, 14 V 내지 22 V)으로 올리고 소오스 및 비트 라인들을 플로팅시키면서 선택된 블록의 워드 라인들을 접지시킴으로써 소거된다. 용량성 결합으로 인해, 선택되지 않은 워드 라인들, 비트 라인들, 선택 라인들, 및 c-소오스도 또한 소거 전압의 상당한 비율까지 올려진다. 따라서, 선택된 저장 소자들의 터널 산화물 층들에 강한 전기장이 인가되고, 전형적으로 파울러-노드하임 터널링(Fowler-Nordheim tunneling) 메커니즘에 의해 플로팅 게이트들의 전자들이 기판 측으로 방출됨에 따라 선택된 저장 소자들의 데이터가 소거된다. 전자들이 플로팅 게이트로부터 p-웰 영역으로 이동함에 따라, 선택된 저장 소자의 임계 전압이 낮춰진다. 소거는 전체 메모리 어레이, 별도의 블록들, 또는 다른 단위의 저장 소자들에 대해 수행될 수 있다.
도 5는 단일의 행/열 디코더들 및 판독/기록(read/write) 회로들을 사용하는 비휘발성 메모리 시스템의 블록도이다. 상기 블록도는 본 기술의 한 실시예에 따라 한 페이지의 저장 소자들을 병렬적으로 판독 및 프로그램하기 위한 판독/기록 회로들을 갖는 메모리 디바이스(596)를 예시한 것이다. 메모리 디바이스(596)는 하나 이상의 메모리 다이(598)를 포함한다. 메모리 다이(598)는 2차원 어레이의 저장 소자들(400), 제어 회로(510), 및 판독/기록 회로들(565)을 포함한다. 일부 실시예들에서, 저장 소자들의 어레이는 3차원일 수 있다. 메모리 어레이(400)는 행 디코더(530)를 통해 워드 라인들에 의해 그리고 열 디코더(560)를 통해 비트 라인들에 의해 어드레스 가능하다. 판독/기록 회로들(565)은 다수의 감지 블록들(500)을 포함하고, 한 페이지의 저장 소자들이 병렬적으로 판독 또는 프로그램될 수 있게 한다. 전형적으로, 제어기(550)는 하나 이상의 메모리 다이(598)와 동일한 메모리 디바이스(596)(예컨대, 탈착가능한 저장 카드)에 포함된다. 명령들 및 데이터는 라인들(520)을 통해 호스트와 제어기(550) 사이에 전송되고 라인들(518)을 통해 제어기와 하나 이상의 메모리 다이(598) 사이에 전송된다.
제어 회로(510)는 메모리 어레이(400) 상에서 메모리 동작들을 수행하도록 판독/기록 회로들(565)과 협동한다. 제어 회로(510)는 상태 머신(state machine)(512), 온-칩 어드레스 디코더(on-chip address decoder)(514), 온도 감지 회로(515) 및 전력 제어 모듈(516)을 포함한다. 상태 머신(512)은 메모리 동작들에 대해 칩 레벨의 제어를 제공한다. 온-칩 어드레스 디코더(514)는 디코더들(530, 560)에 의해 이용되는 하드웨어 어드레스와 호스트 또는 메모리 제어기에 의해 이용되는 어드레스 간의 어드레스 인터페이스를 제공한다. 온도 감지 회로(515)는 아래에서 더 논의되는 바와 같이 온도 기반의 신호 또는 데이터를 프로그램 동작에서 이용하도록 제공하는 데 사용될 수 있다. 전력 제어 모듈(516)은 메모리 동작들 동안 워드 라인들과 비트 라인들에 공급되는 전력 및 전압들을 제어한다.
일부 구현예들에 있어서, 도 5의 컴포넌트들 중 일부는 조합될 수 있다. 다양한 설계들에서, 저장 소자 어레이(400)를 제외한 하나 이상의 컴포넌트들은(단독으로 또는 조합으로) 관리 회로 또는 제어 회로로서 고려될 수 있다. 예를 들면, 하나 이상의 관리 또는 제어 회로들은 제어 회로(510), 상태 머신(512), 디코더들(514/560), 온도 감지 회로(515), 전력 제어 모듈(516), 감지 블록들(500), 판독/기록 회로들(565), 제어기(550) 등 중에서 어느 하나 또는 이들의 조합을 포함할 수 있다.
온도 감지 회로(515)와 관련하여, 낸드 플래쉬 메모리 디바이스들과 같은 현재의 비휘발성 저장 디바이스들에 있어서, 온도 편차들은 데이터를 판독하고 기록함에 있어서 다양한 문제들을 제공한다. 메모리 디바이스는 그것이 위치된 환경에 따라 각기 다른 온도들에 처해진다. 예를 들면, 일부 현재의 메모리 디바이스들은 -30 ℃ 내지 +85 ℃에서 사용되도록 규격을 가진다. 산업용, 군사용 및 심지어 가전용 애플리케이션들에서 디바이스들은 상당한 온도 편차들을 경험할 수 있다.
온도 보상된 신호들을 제공하기 위한 다양한 기법들이 알려져 있다. 이들 기법들 중 하나 이상은 온도 의존성을 VOPTIMAL에 제공하는 데 이용될 수 있다. 이들 기법들 중 대부분은 실제 온도를 측정하는 접근법이 또한 가능하더라도 실제 온도 측정을 구하는 것을 필요로 하지 않는다. 예를 들면, 명칭을 "Voltage Generation Circuitry Having Temperature Compensation"으로 하는 미국 등록특허 제6,801,454호는 온도 계수를 기반으로 비휘발성 메모리에 대한 판독 전압들을 출력하는 전압 발생 회로를 서술하고 있으며, 상기 특허 문헌은 본 명세서에서 참조로서 포함된다. 상기 회로는 온도에 독립적인 부분과 온도가 증가함에 따라 증가하는 온도에 종속적인 부분을 포함하는 밴드 갭 전류(band gap current)를 이용한다. 명칭을 "Non-Volatile Memory With Temperature-Compensated Data Read"로 하는 미국 등록특허 제6,560,152호는 데이터 저장 소자의 소오스 또는 드레인에 인가되는 전압을 바이어스(bias)하는 바이어스 발생기 회로를 사용하며, 상기 특허 문헌은 본 명세서에서 참조로서 포함된다. 이들 기법들 중 임의의 기법 뿐만 아니라 임의의 다른 알려진 기법들도 온도 감지 회로(515)에 의해 사용될 수 있다.
또 다른 실시예에서, 비휘발성 메모리 시스템은 이중의 행/열 디코더들 및 판독/기록 회로들을 사용한다. 다양한 주변 회로들에 의한 메모리 어레이(400)로의 액세스가 어레이의 반대 측들에서 대칭적인 방식으로 구현되므로, 각 측에서의 회로들 및 액세스 라인들의 밀도는 반으로 줄어든다. 따라서, 행 디코더는 2개의 행 디코더들로 분리되고, 열 디코더는 2개의 열 디코더들로 분리된다. 유사하게, 판독/기록 회로들은 어레이(400)의 하단으로부터 비트 라인들에 연결되는 판독/기록 회로들과 어레이(400)의 상단으로부터 비트 라인들에 연결되는 판독/기록 회로들로 분리된다. 이런 방식으로, 판독/기록 모듈들의 밀도는 본질적으로 1/2로 감소된다.
도 6은 감지 블록(sense block)의 한 실시예를 도시한 블록도이다. 개별적인 감지 블록(500)은 코어부(580)(감지 모듈로 지칭됨)와 공통부(590)로 나뉜다. 한 실시예에서, 각 비트 라인에 대해 별도의 감지 모듈(580)이 있고 복수의 감지 모듈들(580)의 세트에 대해 하나의 공통부(590)가 있을 것이다. 한 예에서, 감지 블록은 하나의 공통부(590)와 8개의 감지 모듈들(580)을 포함할 것이다. 한 그룹에 있는 감지 모듈들 각각은 데이터 버스(572)를 통해 관련 공통부와 통신할 것이다.
감지 모듈(580)은 감지 회로(570)를 포함하며, 감지 회로(570)는 연결된 비트 라인 내의 전도 전류가 소정의 임계 레벨보다 높은지 낮은지 여부를 판별한다. 감지 모듈(580)은 또한 연결된 비트 라인 상에서 전압 조건을 설정하는 데 사용되는 비트 라인 래치(bit line latch)(582)를 포함한다. 예를 들면, 비트 라인 래치(582)에 래치된 소정의 상태는 연결된 비트 라인이 프로그램 금지(program inhibit)를 지정하는 상태(예컨대, 1.5 V 내지 3 V)로 풀(pull)되도록 할 것이다.
공통부(590)는 프로세서(592), 데이터 래치들의 세트(594), 및 데이터 버스(520)와 데이터 래치들의 세트(594) 사이에 연결된 I/O 인터페이스(596)를 포함한다. 프로세서(592)는 계산들을 수행한다. 예를 들면, 그 기능들 중 하나는 감지된 저장 소자에 저장된 데이터를 판별하고 판별된 데이터를 데이터 래치들의 세트에 저장하는 것이다. 데이터 래치들의 세트(594)는 판독 동작 동안 프로세서(592)에 의해 판별된 데이터 비트들을 저장하는 데 사용된다. 이는 또한 프로그램 동작 동안 데이터 버스(520)로부터 들어오는 데이터 비트들을 저장하는 데에 사용된다. 들어오는 데이터 비트들은 메모리로 프로그램되도록 의도된 기록 데이터를 나타낸다. I/O 인터페이스(596)는 데이터 래치들(594)과 데이터 버스(520) 사이의 인터페이스를 제공한다.
판독 또는 감지하는 동안, 시스템의 동작은 어드레스된 저장 소자로 서로 다른 컨트롤 게이트 전압들을 공급하는 것을 제어하는 상태 머신(512)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 해당하는 다양한 미리 정해진 컨트롤 게이트 전압들의 스텝을 거치면서, 감지 모듈(580)은 이러한 전압들 중 하나에서 트립(trip)되고 감지 모듈(580)로부터 버스(572)를 통해 프로세서(592)로 출력이 제공된다. 이때, 프로세서(592)는 입력 라인들(593)을 통해 상태 머신으로부터 인가되는 컨트롤 게이트 전압에 대한 정보 및 감지 모듈의 트립 이벤트(tripping event)(들)를 고려하여 결과적인 메모리 상태를 판별한다. 그런 다음, 메모리 상태에 대한 이진 인코딩을 계산하고 결과적인 데이터 비트들을 데이터 래치들(594)에 저장한다. 코어부의 다른 실시예에서, 비트 라인 래치(582)는 감지 모듈(580)의 출력을 래치하기 위한 래치로서 그리고 또한 위에서 설명된 비트 라인 래치로서의 이중 임무를 수행한다.
일부 구현예들은 복수의 프로세서들(592)을 포함할 수 있다. 한 실시예에서, 각 프로세서(592)는 출력 라인(미도시됨)을 포함할 것이며 따라서 출력 라인들 각각은 함께 연결-논리합(wired-OR)이 된다. 일부 실시예들에서, 출력 라인들은 연결-논리합 라인에 연결되기 전에 반전된다. 이러한 구성은 연결-논리합을 수신하는 상태 머신이 프로그램되고 있는 모든 비트들이 원하는 레벨에 도달한 때를 판별할 수 있기 때문에 프로그램 검증 절차 동안 프로그램 절차가 완료된 때를 빨리 판별할 수 있게 한다. 예를 들면, 각 비트가 그 원하는 레벨에 도달했다면, 그 비트에 대하여 논리 0이 연결-논리합 라인으로 전송될 것이다(또는 데이터 1이 반전된다). 모든 비트들이 데이터 0을 출력하면(또는 데이터 1이 반전되면), 상태 머신은 프로그램 절차를 종료해야함을 안다. 각 프로세서가 8개의 감지 모듈들과 통신하기 때문에, 상태 머신은 연결-논리합 라인을 8번 판독해야 하며, 또는 상태 머신이 연결-논리합 라인을 단지 한 번만 판독하면 되도록 관련 비트 라인들의 결과들을 누적하기 위한 논리 회로가 프로세서(592)에 부가된다. 유사하게, 논리적 레벨들을 올바르게 선택함으로써, 전역 상태 머신(global state machine)이 첫 번째 비트가 그 상태를 변경한 때를 탐지할 수 있고 그에 따라 알고리즘들을 변경할 수 있다.
프로그램 또는 검증하는 동안, 프로그램될 데이터는 데이터 버스(520)로부터 데이터 래치들의 세트(594)에 저장된다. 상태 머신의 제어하에서 프로그램 동작은 어드레스된 저장 소자들의 컨트롤 게이트들에 일련의 프로그램 전압 펄스들을 인가하는 것을 포함한다. 각 프로그램 펄스 다음에 저장 소자가 원하는 메모리 상태로 프로그램되었는지를 판별하는 재판독(검증)이 뒤따른다. 프로세서(592)는 원하는 메모리 상태에 대하여 재판독된 메모리 상태를 모니터링(monitor)한다. 그 둘이 일치하면, 프로세서(592)는 비트 라인이 프로그램 금지를 지정하는 상태로 풀(pull)되도록 비트 라인 래치(582)를 설정한다. 이는 그 컨트롤 게이트 상에 프로그램 펄스들이 인가되더라도 그 비트 라인에 연결된 저장 소자가 더 이상 프로그램되는 것을 금지한다. 다른 실시예들에서, 프로세서가 초기에 비트 라인 래치(582)를 로드(load)하고 감지 회로가 검증 절차 동안에 그것을 금지 값으로 설정한다.
데이터 래치 스택(594)은 감지 모듈에 해당하는 데이터 래치들의 스택을 포함한다. 한 실시예에서, 감지 모듈(580)마다 3개의 데이터 래치들이 있다. 일부 구현예들에서(하지만 필수적인 것은 아님), 데이터 래치들은 시프트 레지스터(shift register)로서 구현되어 그 안에 저장된 병렬 데이터가 데이터 버스(520)에 대해 직렬 데이터로 변환되며, 그리고 그 반대 경우로 행해진다. 바람직한 실시예에서, m개의 저장 소자들의 판독/기록 블록에 해당하는 모든 데이터 래치들이 블록 시프트 레지스터를 형성하도록 함께 링크될 수 있어서 데이터의 블록은 직렬 전송에 의해 입력 또는 출력될 수 있다. 특히, 판독/기록 모듈들의 뱅크(bank)는 이들이 전체 판독/기록 블록에 대한 시프트 레지스터의 일부인 것처럼 그 데이터 래치들의 세트 각각이 데이터 버스로 또는 그로부터 직렬로 데이터를 시프트하도록 되어 있다.
도 7은 모든 비트 라인 메모리 아키텍처(all bit line memory architecture)의 경우 또는 홀수-짝수 메모리 아키텍처(odd-even memory architecture)의 경우 메모리 어레이를 블록들로 편성한 예를 예시한 것이다. 메모리 어레이(400)의 예시적인 구조들이 설명된다. 하나의 예로서, 1,024개의 블록들로서 분할되는 NAND 플래시 메모리 EEPROM이 설명된다. 각 블록에 저장된 데이터는 동시에 소거될 수 있다. 한 실시예에서, 블록은 동시에 소거되는 저장 소자들의 최소 단위이다. 본 예에서, 각 블록에는, 비트 라인들(BL0, BL1, ... BL8511)에 해당하는 8,512개의 열들이 있다. 모든 비트 라인(ABL) 아키텍처(아키텍처 710)로서 지칭되는 한 실시예에서, 블록의 모든 비트 라인들은 판독 및 프로그램 동작들 동안 동시에 선택될 수 있다. 공통 워드 라인을 따라 임의의 비트 라인에 연결된 저장 소자들은 동시에 프로그램될 수 있다.
제공되는 예에서는, 4개의 저장 소자들이 낸드 스트링을 형성하도록 직렬로 연결된다. 4개의 저장 소자들이 각 낸드 스트링 내에 포함되는 것으로 도시되어 있지만, 4개보다 많거나 적은 수(예컨대, 16, 32, 64 또는 다른 수)가 이용될 수 있다. 낸드 스트링의 한 단자는 드레인 선택 게이트(선택 게이트 드레인 라인들 SGD에 연결됨)를 통해 해당 비트 라인에 연결되고, 다른 단자는 소오스 선택 게이트(선택 게이트 소오스 라인 SGS에 연결됨)를 통해 c-선택에 연결된다.
홀수-짝수 아키텍처(아키텍처 700)으로 지칭되는 다른 실시예에서, 비트 라인들은 짝수 비트 라인들(BLe)과 홀수 비트 라인들(BLo)로 나뉜다. 홀수/짝수 비트 라인 아키텍처에 있어서, 공통 워드 라인을 따라 홀수 비트 라인들에 연결되는 저장 소자들은 한번에 프로그램되는 반면, 공통 워드 라인을 따라 짝수 비트 라인들에 연결되는 저장 소자들은 다른 한번에 프로그램된다. 본 예에서, 각 블록에는, 짝수 열들과 홀수 열들로 나뉘는 8,512개의 열들이 있고, 64개의 저장 소자들이 낸드 스트링을 형성하도록 한 열에서 직렬로 연결되어 도시되어 있다.
판독 동작과 프로그래밍 동작 중 하나의 구성 동안, 4,256개의 저장 소자들이 동시에 선택된다. 선택된 저장 소자들은 동일한 워드 라인 및 동일한 종류(예를 들어, 짝수 또는 홀수)의 비트 라인을 갖는다. 따라서, 논리적 페이지를 형성하는 532 바이트의 데이터가 동시에 판독 또는 프로그램될 수 있으며, 메모리의 한 블록은 적어도 8개의 논리적 페이지들(각각 홀수 및 짝수 페이지들로 4개의 워드 라인들)을 저장할 수 있다. 다중-상태 저장 소자들의 경우, 각 저장 소자가 2 비트의 데이터를 저장하고 이들 2 비트들 각각이 서로 다른 페이지에 저장되면, 하나의 블록은 16개의 논리적 페이지들을 저장한다. 또한, 다른 크기의 블록들 및 페이지들도 사용될 수 있다.
ABL 또는 홀수-짝수 아키텍처에 있어서, 저장 소자들은 p-웰을 소거 전압(예컨대, 20 V)으로 올리고 선택된 블록의 워드 라인들을 접지시킴으로써 소거될 수 있다. 소오스 및 비트 라인들은 플로팅된다. 소거는 전체 메모리 어레이, 별도의 블록들, 또는 메모리 디바이스의 일부인 다른 단위의 저장 소자들에 대해 수행될 수 있다. 전자들이 저장 소자들의 플로팅 게이트로부터 p-웰 영역으로 전송되어 그 저장 소자들의 VTH가 음이 된다.
판독 동작 및 검증 동작에 있어서, 트랜지스터들이 패스 게이트들로서 동작하도록 하기 위해 선택 게이트들(SGD, SGS)은 2.5 V 내지 4.5 V 범위의 전압에 연결되고 선택되지 않은 워드 라인들(예컨대, WL2가 선택된 워드라인이면 WL0, WL1, WL3)은 판독 패스 전압(VREAD)(전형적으로, 4.5 V 내지 6 V 범위의 전압)으로 올려진다. 선택된 워드 라인 WL2이 연결되는 전압의 레벨은 대상 저장 소자의 VTH가 이러한 레벨보다 높은지 낮은지 여부를 판별하기 위해 각 판독 및 검증 동작에 대해 특정된다. 예를 들면, 2-레벨 저장 소자의 판독 동작에 있어서, 선택된 워드 라인 WL2는 접지되어, VTH가 0 V보다 높은지 여부가 탐지된다. 2-레벨 저장 소자에 대한 검증 동작에 있어서, 선택된 워드 라인 WL2는 예를 들어 0.8 V에 연결되어 VTH가 적어도 0.8 V에 도달했는지 아닌지 여부가 검증된다. 소오스 및 p-웰은 0 V에 있다. 선택된 비트 라인들이 짝수 비트 라인들(BLe)인 것으로 가정하면, 선택된 비트 라인들은 예를 들어 0.7 V의 레벨로 프리차지(precharge)된다. 만일 VTH가 워드 라인 상의 판독 또는 검증 레벨보다 높으면, 대상 저장 소자와 관련된 비트 라인(BLe)의 전위 레벨은 비전도성(non-conductive) 저장 소자 때문에 높은 레벨로 유지된다. 반면에, 만일 VTH가 워드 라인 상의 판독 또는 검증 레벨보다 낮으면, 대상 비트 라인(BLe)의 전위 레벨은 예를 들어 0.5 V 미만의 낮은 레벨로 감소하는데, 이는 전도성 저장 소자가 비트 라인을 방전시키기 때문이다. 그럼으로써, 저장 소자의 상태는 비트 라인에 연결된 전압 비교기 감지 증폭기에 의해 탐지될 수 있다.
도 8은 예시적인 세트의 임계 전압 분포들과 1-패스(one-pass) 프로그램을 도시한 것이다. 저장 소자 어레이에 대한 예시적인 임계 전압 분포들은 각 저장 소자가 2비트의 데이터를 저장하는 경우에 대해 제공된다. 제1 임계 전압 분포(800)는 소거된(E 상태) 저장 소자들에 대해 제공된다. 3개의 임계 전압 분포들(802, 804, 806)은 각각 프로그램된 상태들 A, B, C를 나타낸다. 한 실시예에서, E 분포의 임계 전압들은 음이고 A, B 및 C 분포들의 임계 전압들은 양이다. 분포들(803, 805)은 A-상태 저장 소자들(목표 상태인 A-상태로 프로그램되도록 의도된 저장 소자들)이 각각 최종 분포(802)에 도달하기 전에 거치는 과도 상태의 분포들을 나타낸다. 예를 들면, 분포(803)는 A-상태 소자의 일정한 수 N1 또는 일부가 A 상태에 도달했음을 표시하고 있다. 유사하게, 분포(805)는 A-상태 저장 소자들의 수 N2>N1 또는 일부가 A 상태에 도달했음을 표시하고 있다.
분포들(803, 805)은 저장 소자들의 세트의 고유 임계 전압 분포(natural threshold voltage distribution)를 결정하는 데 사용될 수 있다. 상대적으로 작은 고유 임계 전압 분포는 저장 소자들이 상대적으로 유사한 프로그램 속도를 가지는 것을 가리키는 반면, 상대적으로 큰 고유 임계 전압 분포는 저장 소자들이 상대적으로 더 넓은 범위의 프로그램 속도를 가지는 것을 가리킨다. 한 접근법에서, N1개의 A-상태 저장 소자들이 A 상태에 도달하도록 만드는 프로그램 펄스들의 수 PPN1과 N2>N1개의 A-상태 저장 소자들이 A 상태에 도달하도록 만드는 프로그램 펄스들의 수 PPN2>PPN1를 결정한다. 다른 가능한 접근법에서, N1개(또는 어떤 다른 수) 이하의 A-상태 저장 소자들이 아직 A 상태에 도달하지 못한 경우의 프로그램 펄스들의 수 PPN2>PPN1를 결정한다. PPN2-PPN1은 저장 소자들의 세트의 고유 임계 전압 분포를 나타낸다. 한 접근법에서, 고유 임계 전압 분포를 결정하기 위해 최저 프로그램 상태(예컨대, 이 예에서는 A 상태)로 프로그램되는 저장 소자들이 추적(track)될 수 있다.
일반적으로, 데이터는 저장 소자마다 2개 이상의 비트들을 사용하여 2N개의 데이터 상태들(예컨대, 4개 이상의 상태들)로 인코딩되고, 대략 동일한 수의 저장 소자들이 각 상태로 프로그램되는 인코딩 방식들이 사용된다. 예를 들면, 4개의 상태들 E, A, B, C가 있다면, 선택된 워드 라인 상의 저장 소자들의 약 1/4은 E 상태로 프로그램될 것이고, 그 저장 소자들의 또 다른 1/4은 A 상태로 프로그램될 것이고, 그 저장 소자들의 또 다른 1/4은 B 상태로 프로그램될 것이고, 그 저장 소자들의 또 다른 1/4은 C 상태로 프로그램될 것이다. 따라서, 상태마다 하나의 서브세트(subset)가 되도록 저장 소자들의 서로 다른 서브세트들이 서로 다른 상태들로 프로그램된다.
특정한 상태, 예컨대 이용가능한 4개 이상의 상태들 중 하나가 추적 상태로서 선택될 수 있다. 추적을 통해 특정한 상태로 프로그램되도록 의도된 저장 소자들의 일부가 그 특정한 데이터 상태에 도달한 것으로 검증되는 때를 판별한다. 예를 들면, 상태 A가 추적 상태이고, 한 워드 라인 상에서 1024개의 저장 소자들이 프로그램되고 있으며, 256개는 E 상태에 남아있고, 256개는 A 상태로 프로그램되고, 256개는 B 상태로 프로그램되고, 256개는 C 상태로 프로그램될 것이라고 가정하자.
하나의 가능한 접근법에서, N1은 A-상태 저장 소자들의 5%와 같은 상대적으로 작은 수로 설정되고(예컨대, 256의 5%=13개의 저장 소자들), N2는 A-상태 저장 소자들의 95%와 같은 상대적으로 높은 수로 설정된다(예컨대, 256의 95%=243개의 저장 소자들). 이는 예를 들어 A 상태에 도달한 최초 및 최종 A-상태 소자들을 추적함으로써 얻어질 수 있는 불규칙한 결과들을 방지한다. 게다가, 유의할 점은 추가 체크포인트들과 검증 레벨들을 부가하는 대신에 한 상태에 대해 이미 이용된 검증 레벨에 근거하여 체크포인트를 가지는 것이 더 쉬울 수 있다는 것이다. 하지만, 데이터 상태에 대응되지 않는 체크포인트를 사용하는 것도 가능하다. 게다가, 본 기술은 일반적으로 셀 디바이스당 비트 수가 2, 3, 또는 그보다 많은 경우에 적용될 수 있다.
각 구별되는 임계 전압 범위는 데이터 비트들의 세트에 대하여 미리 정해진 값들에 해당한다. 저장 소자로 프로그램되는 데이터와 그 저장 소자의 임계 전압 레벨들 사이의 구체적인 관계는 저장 소자들에 대해 채택되는 데이터 인코딩 방식에 따라 달라진다. 한 실시예에서, 데이터 값들은 그레이 코드 할당을 이용하여 임계 전압 범위들에 할당되므로, 만일 플로팅 게이트의 임계 전압이 그 이웃의 물리 상태로 잘못 시프트된다면, 단지 1개의 비트만이 영향을 받을 것이다. 하나의 예는 "11"을 임계 전압 범위 E(상태 E)에, "10"을 임계 전압 범위 A(상태 A)에, "00"을 임계 전압 범위 B(상태 B)에, "01"을 임계 전압 범위 C(상태 C)에 할당한다. 하지만, 다른 실시예들에서, 그레이 코드가 이용되지 않는다. 비록 4개의 상태들이 도시되어 있지만, 본 기술은 또한 4개보다 많거나 적은 상태들을 포함하는 것들을 포함하여 다른 다중-상태 구조들에 대해서도 이용될 수 있다.
또한, 저장 소자들로부터 데이터를 판독하기 위한 3개의 판독 기준 전압들 Vra, Vrb, Vrc가 제공된다. 특정 저장 소자의 임계 전압이 Vra, Vrb, Vrc보다 높은지 낮은지 여부를 테스트함으로써, 시스템은 그 저장 소자의 상태(예컨대, 프로그램 조건)를 판별할 수 있다.
또한, 3개의 검증 기준 전압들 Vva, Vvb, Vvc가 제공된다. 저장 소자들을 A 상태로 프로그램할 때, 시스템은 이들 저장 소자들이 Vva보다 크거나 같은 임계 전압을 가지는지 여부를 테스트할 것이다. 저장 소자들을 B 상태로 프로그램할 때, 시스템은 이들 저장 소자들이 Vvb보다 크거나 같은 임계 전압들을 가지는지 여부를 테스트할 것이다. 저장 소자들을 C 상태로 프로그램할 때, 시스템은 이들 저장 소자들이 Vvc보다 크거나 같은 임계 전압을 가지는지 여부를 테스트할 것이다.
풀 시퀀스 프로그램(full sequence programming)으로 알려져 있는 한 실시예에서, 저장 소자들은 소거 상태 E로부터 프로그램된 상태들 A, B 또는 C 중 임의의 상태로 직접 프로그램될 수 있다. 예를 들면, 프로그램될 저장 소자들의 집단(population)이 먼저 소거될 수 있으며, 따라서 그 집단의 모든 저장 소자들은 소거 상태 E에 있다. 도 13에서 컨트롤 게이트 전압 시퀀스에 의해 도시된 것과 같은 일련의 프로그램 펄스들이 저장 소자들을 상태들 A, B 또는 C로 직접 프로그램하는 데 사용된다. 일부 저장 소자들은 상태 E로부터 상태 A로 프로그램되고 있지만, 다른 저장 소자들은 상태 E로부터 상태 B로 및/또는 상태 E로부터 상태 C로 프로그램되고 있다. WLn 상에서 상태 E로부터 상태 C로 프로그램할 때, WLn 하의 플로팅 게이트 상에서의 전하량 변화는 상태 E로부터 상태 A로 또는 상태 E로부터 상태 B로 프로그램할 때의 전하의 변화와 비교하여 가장 크기 때문에, WLn-1 이하의 인접 플로팅 게이트에 대한 기생 결합(parasitic coupling)의 양이 최대에 도달한다. 상태 E로부터 상태 B로 프로그램할 때, 인접 플로팅 게이트에 대한 결합의 양은 더 적다. 상태 E로부터 상태 A로 프로그램할 때, 결합의 양은 훨씬 더 감소된다.
도 9는 2개의 서로 다른 페이지들, 즉 하위 페이지 및 상위 페이지에 대한 데이터를 저장하는 다중-상태 저장 소자를 프로그래밍하는 2-패스 기법의 한 예를 도시한 것이다. 도 8로부터 임계 전압 분포들(800, 802, 804, 806)을 반복하여 4개의 상태들이 도시되어 있다. 이들 상태들 및 그들이 나타내는 비트들은 상태 E(11), 상태 A(10), 상태 B(00) 및 상태 C(01)이다. 상태 E의 경우, 양 페이지들은 "1"을 저장한다. 상태 A의 경우, 하위 페이지는 "0"을 저장하고, 상위 페이지는 "1"을 저장한다. 상태 B의 경우, 양 페이지들은 "0"을 저장한다. 상태 C의 경우, 하위 페이지는 "1"을 저장하고, 상위 페이지는 "0"을 저장한다. 유의할 점은 비록 특정 비트 패턴들이 상태들 각각에 할당되었지만, 서로 다른 비트 패턴들도 또한 할당될 수 있다는 것이다.
제1 프로그램 패스에서, 저장 소자의 임계 전압 레벨은 하위 논리적 페이지로 프로그램될 비트에 따라 설정된다. 만일 그 비트가 논리 "1"이라면, 앞서 소거된 결과로서 임계 전압이 적절한 상태에 있기 때문에 임계 전압은 변경되지 않는다. 하지만, 만일 프로그램될 비트가 논리 "0"이라면, 저장 소자의 임계 레벨은 화살표(900)에 의해 도시된 바와 같이 상태 A로 증가된다. 이로써 제1 프로그램 패스가 끝난다.
제2 프로그램 패스에 있어서, 저장 소자의 임계 전압 레벨은 상위 논리 페이지로 프로그램되고 있는 비트에 따라 설정된다. 만일 상위 논리적 페이지 비트가 논리 "1"을 저장한다면, 하위 페이지 비트의 프로그램에 따라 저장 소자가 상태 E 또는 상태 A 중 하나에 있고 이 상태들 모두는 "1"의 상위 페이지 비트를 가지고 있으므로 어떠한 프로그램도 일어나지 않는다. 만일 상위 페이지 비트가 논리 "0"이 될 것이라면, 임계 전압은 시프트된다. 만일 제1 패스에 의해 저장 소자가 소거 상태 E에 남아있게 되었다면, 제2 국면(phase)에서 저장 소자는 프로그램되어 화살표(920)에 의해 도시된 바와 같이 임계 전압이 상태 C 내에 있도록 증가된다. 만일 저장 소자가 제1 프로그램 패스의 결과 상태 A로 프로그램되었다면, 그 저장 소자는 제2 패스에서 더 프로그램되어 화살표(910)에 의해 도시된 바와 같이 임계 전압이 상태 B 내에 있도록 증가된다. 제2 패스의 결과는, 하위 페이지에 대한 데이터를 변경하지 않고 상위 페이지에 대해 논리 "0"을 저장하도록 지정된 상태로 저장 소자를 프로그램하는 것이다. 도 8 및 도 9 모두에 있어서, 인접 워드 라인 상의 플로팅 게이트에 대한 결합의 양은 최종 상태에 따라 달라진다.
한 실시예에서, 전체 페이지를 채우기에 충분한 데이터가 기록된다면, 시스템은 풀 시퀀스 기록을 수행하도록 설정될 수 있다. 만일 완전한 페이지를 위해 충분한 데이터가 기록되지 않으면, 프로그램 절차는 수신된 데이터로 하위 페이지를 프로그램할 수 있다. 후속 데이터가 수신되면, 시스템은 상위 페이지를 프로그램할 것이다. 또 다른 실시예에서, 시스템은 하위 페이지를 프로그램하는 모드에서 기록을 시작하고, 만일 전체(또는 대부분) 워드 라인의 저장 소자들을 채우기에 충분한 데이터가 뒤이어 수신되면 풀 시퀀스 프로그램 모드로 변환할 수 있다.
만일 고유 임계 전압 분포를 결정하기 위해 A 상태가 추적된다면, 논의된 바와 같이 분포(803)는 N1개의 A-상태 저장 소자들이 A 상태에 도달한 때를 나타낼 수 있고, 분포(805)는 N2개의 A-상태 저장 소자들이 A 상태에 도달한 때, 또는 대체가능한 것으로 N1개(또는 어떤 다른 수) 이하의 A-상태 저장 소자들이 아직 A 상태에 도달하지 않은 때를 나타낼 수 있다.
도 10a 내지 도 10c는 비휘발성 메모리를 프로그램하는 다른 절차를 개시한 것이며, 이는 임의의 특정한 저장 소자에 대하여, 이전의 페이지들에 대해 인접 저장 소자들을 기록한 후 특정 페이지에 대하여 그 특정한 저장 소자를 기록함으로써 플로팅 게이트 대 플로팅 게이트 결합 효과를 감소시킨다. 한 예시적인 구현예에서, 비휘발성 저장 소자들은 저장 소자 마다 2 비트 데이터를 저장하며 4개의 데이터 상태를 이용한다. 예를 들면, 상태 E는 소거 상태이고 상태 A, B 및 C는 프로그램된 상태라고 가정한다. 상태 E는 데이터 11을 저장한다. 상태 A는 데이터 01을 저장한다. 상태 B는 데이터 10을 저장한다. 상태 C는 데이터 00을 저장한다. 이것은 인접 상태들 A와 B 사이에 모든 비트들이 변하기 때문에 그레이 코딩이 아닌 예이다. 물리적 데이터 상태들에 대하여 다른 데이터 인코딩도 또한 이용될 수 있다. 각 저장 소자는 2개의 데이터 페이지를 저장한다. 참조를 위해, 이들 데이터 페이지들은 상위 페이지와 하위 페이지로 지칭될 것이지만, 다른 라벨들이 주어질 수 있다. 상태 A와 관련하여, 상위 페이지는 비트 0을 저장하고 하위 비트는 비트 1을 저장한다. 상태 B와 관련하여, 상위 페이지는 비트 1을 저장하고 하위 페이지는 비트 0을 저장한다. 상태 C와 관련하여, 양 페이지들은 비트 데이터 0을 저장한다.
프로그램 절차는 2-단계 절차이다. 제1 단계에서, 하위 페이지가 프로그램된다. 만일 하위 페이지가 데이터 1에 남아있는다면, 저장 소자의 상태는 상태 E(분포 1000)에 남아있는다. 만일 데이터가 0으로 프로그램될 것이라면, 저장 소자가 상태 B'(분포 1010)로 프로그램되도록 저장 소자의 임계 전압이 올려진다. 따라서, 도 10a는 상태 E로부터 상태 B'로 저장 소자들을 프로그램하는 것을 도시한 것이다. 상태 B'는 과도 상태 B이므로, 검증 포인트는 Vvb보다 낮은 Vvb'로서 도시되어 있다. 전형적으로, 워드 라인 상의 저장 소자들의 약 절반이 상태 E에 남아있을 것이고 절반은 상태 B'로 프로그램될 것이다.
만일 B' 상태가 고유 임계 전압 분포를 결정하기 위해 추적된다면, 논의된 바와 같이 분포(1011)는 N1개의 B'-상태 저장 소자들(하위 페이지 비트 0을 저장)이 B' 상태에 도달한 때를 나타낼 수 있다. B' 상태에 도달한 N1개의 B'-상태 저장 소자들은 분포(1011)의 면적(1020)에 의해 표현된다(도 10d). 분포(1013)는 N2개의 B'-상태 저장 소자들이 B' 상태에 도달한 때를 나타낼 수 있다. B' 상태에 도달한 N2개의 B'-상태 저장 소자들은 분포(1013)의 면적(1030)에 의해 표현된다(도 10e). 대체가능한 것으로, B' 상태에 아직 도달하지 못한 N1개 또는 어떤 다른 수의 B'-상태 저장 소자들은 분포(1013)의 면적(1040)에 의해 표현된다(도 10f). B'-상태 저장 소자들은 제1 프로그램 패스에서 B' 상태로 프로그램되고, 그 뒤에 제2 프로그램 패스에서 B 상태 또는 C 상태로 프로그램되도록 의도된 것이다. B' 상태는 적어도 한 비트의 데이터를 가지는 데이터 상태를 나타내지 않는 중간 또는 과도 상태의 한 예이다.
한 실시예에서, 저장 소자가 상태 E로부터 상태 B'로 프로그램된 후, NAND 스트링에서 그 이웃 저장 소자(WLn+1)가 그 하위 페이지에 대하여 프로그램될 것이다. 예를 들면, 도 2를 다시 보면, 저장 소자(106)에 대한 하위 페이지가 프로그램된 후, 저장 소자(104)에 대한 하위 페이지가 프로그램될 것이다. 저장 소자(104)를 프로그램한 후, 만일 저장 소자(104)의 임계 전압이 상태 E로부터 상태 B'로 올려진다면 플로팅 게이트 대 플로팅 게이트 결합 효과가 저장 소자(106)의 겉보기(apparent) 임계 전압을 올릴 것이다. 이것은 도 10b의 임계 전압 분포(1012)에서 도시된 바와 같이 상태 B'에 대한 임계 전압 분포의 폭을 확대하는 효과를 가질 것이다. 이런 임계 전압 분포의 폭의 겉보기 확대는 상위 페이지를 프로그램할 때에 바로잡아질 것이다. 분포(1002)에 의해 도시된 바와 같이, E 상태도 또한 그 정도는 더 적지만 폭이 확대될 수 있다.
도 10c는 상위 페이지를 프로그램하는 절차를 도시한 것이다. 만일 저장 소자가 소거 상태 E에 있고 상위 페이지가 1에 남아있다면, 그 저장 소자는 상태 E(분포 1002)에 남아있을 것이다. 만일 저장 소자가 상태 E에 있고 그 상위 페이지 데이터가 0으로 프로그램될 것이라면, 저장 소자의 임계 전압이 올려질 것이어서 그 저장 소자는 상태 A(분포 1004)가 된다. 만일 저장 소자가 중간 임계 전압 분포(1012)에 있고 상위 페이지 데이터가 1에 남아있다면, 그 저장 소자는 최종 상태 B(분포 1006)로 프로그램될 것이다. 만일 저장 소자가 중간 임계 전압 분포(1012)에 있고 상위 페이지 데이터가 데이터 0으로 될 것이라면, 저장 소자의 임계 전압이 올려질 것이어서 그 저장 소자는 상태 C(분포 1008)가 된다. 전형적으로, 워드 라인 상의 저장 소자들의 약 1/4이 상태 B'로부터 상태 B로 프로그램될 것이고, 워드 라인 상의 저장 소자들의 1/4이 상태 B'로부터 상태 C로 프로그램될 것이다.
도 10a 내지 도 10c에 의해 도시된 절차는 오직 이웃 저장 소자들의 상위 페이지를 프로그램하는 것만이 특정 저장 소자의 겉보기 임계 전압에 영향을 미칠 것이기 때문에 플로팅 게이트 대 플로팅 게이트 결합 효과를 감소시킨다. 대체가능한 상태 코딩의 한 예는 상위 페이지 데이터가 1일 때 분포(1012)로부터 상태 C로 이동시키는 것과 상위 페이지 데이터가 0일 때 상태 B로 이동시키는 것이다.
비록 도 10a 내지 도 10c가 4개의 데이터 상태들 및 2개의 데이터 페이지들에 대한 예를 제공하지만, 교시되는 개념들은 4개보다 많거나 적은 상태들 및 2개보다 많거나 적은 페이지들을 갖는 다른 구현예들에도 적용될 수 있다. 예를 들면, 저장 소자당 8개 또는 16개의 상태들을 갖는 메모리 디바이스들이 현재 계획되고 있거나 생산중이다.
도 11은 낸드 스트링들의 단면도이며, 채널 부스팅(channel boosting)을 도시한 것이다. 단면도는 복수의 저장 소자들에 걸쳐 확장되는 컨트롤 게이트(CG) 또는 선택된 워드 라인(1100)을 도시하고 있다. 각 저장 소자는 플로팅 게이트(FG)(예컨대, FG 1102, 1104, 1106)를 포함하며, 플로팅 게이트는 각각 전형적으로 p-웰에 있는 기판의 채널 영역(1108, 1110, 1112) 위에 있다. 각 채널 영역은 낸드 스트링의 일부이며, 낸드 스트링은 도면 밖으로 벗어나는 것으로 상상해 볼 수 있다.
도 3과 관련하여 위에서 언급된 바와 같이, 선택되지 않은 낸드 스트링들에 있는 저장 소자들은 프로그램 동작들 동안 프로그램을 금지하여 프로그램 디스터브를 방지하도록 그 채널이 부스팅된다. 부스팅은 전형적으로 프로그램 전압 Vpgm이 선택된 워드 라인에 인가되는 동안 패스 전압 Vpass를 선택되지 않은 워드 라인들에 인가함으로써 이루어진다. 더 높은 Vpass는 더 낮은 프로그램 디스터브 위험도와 상관된다. 하지만, Vpass는 너무 높을 수 없는데, 그렇지 않으면 그것이 선택되지 않은 낸드 스트링들을 프로그램할 수 있다. 부스팅은 플로팅 게이트에 걸리는 전압을 줄임으로써 플로팅 게이트를 프로그램하는 것을 금지한다.
도 12a는 채널 부스팅 전위를 패스 전압과 온도의 함수로서 도시한 것이다. 수평 축은 선택되지 않은 워드 라인들에 인가되는 패스 전압(Vpass)를 도시한 것이고, 수직 축은 금지/부스팅된 채널의 채널 부스팅 전위(Vboost)를 도시한 것이다. 채널 부스팅 전위는 이웃하는 채널들의 전위에 따라 달라질 뿐만 아니라 Vpass에 따라서도 달라진다. 언급된 바와 같이, 더 높은 Vpass는 일반적으로 더 높은 Vboost와 상관된다. 부스팅은 또한 강한 온도 의존성을 가진다. 고온에서, 부스팅은 더욱 어려우며, 채널 전위는 채널에서의 높은 역방향 바이어스 누설 전류로 인해 더 낮은 레벨에서 포화된다. 저온에서, 역방향 바이어스 누설 전류는 훨씬 더 낮으므로 상황은 개선되고 더 높은 Vboost가 달성될 수 있다. 곡선들(1204, 1206, 1208)은 각각 저온, 상온, 고온에 대하여 Vboost 대 Vpass 관계를 나타낸다. 예를 들어 -30 ℃ 내지 +85 ℃의 온도 범위가 이용될 수 있다. 따라서, Vpass가 주어진 경우 Vboost는 고온에서 더 낮다.
도 12b는 프로그램 디스터브 위험도를 고유 임계 전압 분포의 함수로서 도시한 것이다. 낸드 플래쉬 메모리가 지속적으로 스케일 다운(scale down)됨에 따라 프로그램 디스터브를 더욱 제어하기가 어려워진다. 프로그램 디스터브의 한 원인은 스케일 다운된 저장 소자들에서 더욱 극심한 단채널 효과(short channel effect)로 인해 나타나는 폭넓은 고유 임계 전압 분포이다. 폭넓은 고유 임계 전압 분포는 빠른 저장 소자와 느린 저장 소자 사이에 큰 프로그램 속도 차이가 있어서 소거된 상태 또는 다른 프로그램 디스터브 오류들을 가질 확률이 증가되는 것을 가리킨다. 일반적으로, 도 12b에 도시된 바와 같이, 프로그램 디스터브 위험도, 예컨대 프로그램 디스터브가 발생할 확률 또는 가능성은 고유 임계 전압 분포와 상관된다.
도 12c는 고유 임계 전압 분포를 N2개의 저장 소자들을 검증 레벨로 프로그램하는 데 필요한 프로그램 펄스 수 PPN2와 N1<N2개의 저장 소자들을 검증 레벨로 프로그램하는 데 필요한 프로그램 펄스 수 PPN1<PPN2 사이의 차이의 함수로서 도시한 것이다. 언급된 바와 같이, 프로그램 속도에 있어서 큰 편차들은 큰 값의 PPN2-PPN1에 의해 표현되며, 높은 고유 임계 전압 분포와 상관된다.
도 12d는 프로그램 디스터브 위험도를 온도의 함수로서 도시한 것이다. 온도가 증가함에 따라 채널 부스팅의 감소를 포함한 이유들로 인해, 고온은 높은 프로그램 디스터브 위험도와 상관된다. 온도 범위는 T1 내지 T2의 낮은 범위, T2 내지 T3의 중간 범위, T3 내지 T4의 높은 범위로 분류될 수 있다.
도 12e는 프로그램 디스터브 위험도를 워드 라인 위치의 함수로서 도시한 것이다. 프로그램 디스터브는 폭넓은 고유 임계 전압 분포와 낮은 채널 부스팅 전위를 갖는 워드 라인들 상에서 더욱 극심하게 발생한다. 일부 경우들에서, 비록 부스팅이 유사하더라도 특정한 워드 라인들이 이웃하는 워드 라인들보다 더 많은 프로그램 디스터브 오류들을 가질 수 있다. 이는 예를 들어 메모리 디바이스를 제조하는 데 사용되는 리소그래피 공정으로 인해 일부 워드 라인들이 더 좁은 컨트롤 게이트를 가지기 때문일 수 있다. 넓은 폭의 컨트롤 게이트는 넓은 폭의 고유 임계 전압 분포와 높은 프로그램 디스터브 위험도를 유발한다. 하나의 접근법은 각 워드 라인에 대해 프로그램 디스터브 위험도를 측정하는 것이다.
게다가, 도 12e에 도시된 바와 같이, 워드 라인들 세트의 소오스 측보다 드레인 측에 상대적으로 가까이 있는 워드 라인들은 감소된 채널 부스팅으로 인해 높은 프로그램 디스터브 위험도를 가질 수 있다. 구체적으로, 선택된 워드 라인이 중간 워드 라인이나 소오스 측 워드 라인일 때보다 드레인 측 워드 라인일 때 채널이 종종 더 일찍 포화될 수 있다. 이는 예를 들어 프로그램 펄스들 동안 0 V와 같은 격리 전압(isolation voltage)이 선택된 워드 라인의 소오스 측에 있는 적어도 하나의 워드 라인에 인가되는 일부 부스팅 방식들에 적용된다. 격리 전압은 채널의 소오스 측을 드레인 측으로부터 차단시키며, 드레인 측 프로그램 동안 채널 용량(channel capacitance)이 더욱 작아질 수 있어서 부스팅이 더 낮다.
이 예에서, 32개의 워드 라인들이 있다고 가정하면, WL0 내지 WLx-1의 워드 라인들에 대한 프로그램 디스터브 위험도는 낮은 레벨로 표시되어 있고, WLx 내지 WL31의 워드 라인들에 대한 프로그램 디스터브 위험도는 높은 레벨로 표시되어 있다. WLx는 테스트에 의해 식별될 수 있다. 다른 가능한 접근법은 WLx 내지 WL31의 프로그램 디스터브 위험도에 있어서 점진적 증가를 표시한다. 또 다른 가능한 접근법에서 제공되는 측정 위험도는 각 개별 워드 라인에 대해 연속적이거나 규칙적인 패턴을 따르지 않을 수 있다.
서로 다른 워드 라인들에 대해 서로 다른 프로그램 디스터브 예측 기준들이 사용될 수 있으며, 프로그램하는 동안 낮은 채널 부스팅을 갖는 워드 라인들에 대해서는 그 기준을 더욱 엄격하게 만들 수 있다. 다른 선택사항(option)은 WLx 내지 WL31과 같이 프로그램하는 동안 최저 채널 부스팅을 가지며 프로그램 디스터브 오류들이 가장 일어나기 쉬운 워드 라인들에서만 프로그램 디스터브를 예측하는 것이다. 이 경우, 프로그램 디스터브를 예측하는 것은 선택된 수의 드레인 측 워드 라인들에 대해 예방책을 세우는 것이고 블록의 다른 워드 라인들에 대해서는 예방책을 세우지 않는다.
도 12f는 프로그램 디스터브 위험도의 함수로서 설정될 수 있는 패스 전압을 도시한 것이다. 도 14 및 도 15와 관련하여 아래에서 더 논의되는 바와 같이, Vpass는 결정된 프로그램 디스터브 위험도에 비례하여 증가될 수 있다.
도 13은 프로그램 동작에 있어서 프로그램 펄스들을 도시한 것이다. 일반적으로, 프로그램 동작은 펄스 트레인을 선택된 워드 라인에 인가하는 것을 포함할 수 있으며, 펄스 트레인은 하나 이상의 검증 펄스들이 뒤따르는 프로그램 펄스들을 포함한다. 유의할 점은 프로그램 펄스는 임의의 수의 서로 다른 파형들을 가질 수 있다는 것이다. 구형파형(square waveform)이 도시되어 있지만, 다중 레벨형(multilevel shape)이나 램프형(ramped shape)과 같은 다른 형태들도 가능하다. 펄스 트레인(1300)은 시간 t1 내지 t15에서 각각 프로그램을 위해 선택된 워드 라인에 인가되는 일련의 프로그램 펄스들(1305, 1310, 1315, 1320, 1325, 1330, 1335, 1340, 1345, 1350, 1355, 1360, 1365, 1370, 1375,…)을 포함한다. 한 실시예에서, 프로그램 펄스들은 전압(VPGM)을 가지며, 이는 12 V에서 시작하여 예컨대 최대 20 V 내지 25 V에 도달할 때까지 각 연속적인 프로그램 펄스에 대해 예컨대 0.5 V의 증분만큼 증가한다. 프로그램 펄스들 사이에 검증 펄스들, 예컨대 3개의 검증 펄스들이 있으며, 이들은 검증 동작에 사용된다. 일부 실시예들에서, 데이터가 프로그램되고 있는 각 상태, 예컨대 상태 A, B, C에 대한 검증 펄스가 있을 수 있다. 다른 실시예들에서, 그보다 많거나 적은 검증 펄스들이 있을 수 있다. 예를 들면, 각 세트의 검증 펄스들은 Vva, Vvb 및 Vvc(도 9)의 진폭들을 가질 수 있으며, 또는 Vvb'(도 10a)의 진폭을 갖는 하나의 검증 펄스일 수 있다. 예시적인 검증 펄스들(1306)은 프로그램 펄스(1305)를 뒤따른다.
도 8, 도 9 및 도 10a와 관련하여 언급된 바와 같이, 선택된 상태(추적 상태(tracked state)로 지칭됨)로 프로그램되고 있는 저장 소자들은 그 저장 소자들의 일부가 먼저 추적 상태에 도달하는 때를 결정하기 위해 추적될 수 있다. 게다가, 해당 프로그램 펄스 수들은 식별되고 기록될 수 있다. 예를 들면, PPN1=8 펄스들은 N1개의 추적 상태 저장 소자들이 추적 상태에 도달하는 데 필요한 것이고, PPN2=14 펄스들(6개의 추가 펄스들)은 N2개의 추적 상태 저장 소자들이 추적 상태에 도달하는 데 필요하거나, 또는 대체가능한 것으로 N1개(또는 어떤 다른 수) 이하의 A-상태 저장 소자들이 추적 상태에 아직 도달하지 못한 경우에 필요한 것이다. 예를 들면, 특정한 워드 라인 상에 있는 것과 같은 저장 소자들 세트에 대한 고유 임계 전압 분포는 PPN2-PPN1으로부터 결정될 수 있다. 대체가능한 것으로, 프로그램 펄스들의 진폭들이 식별되고 기록될 수 있으며, 고유 임계 전압 분포는 진폭의 차이로부터 결정될 수 있다. 펄스 수들 PPN1과 PPN2는 각각 일련의 프로그램 펄스들(1300)에서 관련된 프로그램 펄스들의 순차적 위치들을 가리킨다.
데이터의 상위 페이지 및 하위 페이지를 프로그램할 때, 펄스 트레인(1300)은 처음에는 하위 페이지를 프로그램하는 제1 일련의 프로그램 펄스들로서 인가되고, 두번째는 상위 페이지를 프로그램하는 제2 일련의 프로그램 펄스들로서 인가될 수 있다.
도 14는 비휘발성 메모리를 프로그램하는 방법의 개요의 한 실시예를 서술하는 순서도이다. 언급된 바와 같이, 한 워드 라인 상의 저장 소자들 세트의 프로그램 디스터브 위험도는 금지된 채널들에서의 부스팅 전위의 함수이다. 각 채널은 선택된 워드 라인 상에서 각각의 저장 소자가 위치되는 낸드 스트링과 관련이 있다. 하지만, 부스팅은 제한적이기 때문에, 프로그램 디스터브는 여전히 일어날 수 있다. 따라서, 고유 임계 전압 분포와 다른 인자들을 이용하여 프로그램 디스터브 가능성을 예측하고 프로그램 디스터브 가능성을 줄이는 예방책을 실시하는 것이 도움이 될 수 있다.
예시적인 프로그램 기법에서, 단계(1400)에서, 선택된 워드 라인과 관련된 저장 소자들과 같이 저장 소자들 세트에 대해 제1 프로그램 국면(programming phase)이 수행된다. 제1 프로그램 국면은 데이터의 하위 페이지를 프로그램하는 것을 포함할 수 있다. 단계(1402)에서, 고유 임계 전압 분포의 폭이 탐지된다. 단계(1404)에서, 이 정보는 선택사항으로서 온도 및 워드 라인 위치와 함께 저장 소자들 세트의 프로그램 디스터브 위험도의 정도를 결정하는 데 이용된다. 예를 들면, 고유 임계 전압 분포, 온도 및/또는 워드 라인 위치를 기반으로 저장 소자들 세트에 대해 점수(score)나 다른 메트릭(metric)이 제공될 수 있다. 그런 다음, 점수는 위험도의 정도를 범주화하기 위해 서로 다른 문턱값들과 비교될 수 있다. 프로그램 디스터브 위험도의 정도를 기반으로, 프로그램 디스터브가 발생하기 전에 그 발생 가능성을 줄이도록 예방책이 선택되고 실시될 수 있다.
위험도 메트릭은 선택사항으로서 온도 및 워드 라인 위치에 대한 조정과 더불어 PPN2-PPN1에 의해 표현되는 고유 임계 전압 분포에 근거할 수 있다. 예를 들면, 도 13에서, PPN2-PPN1 = 14-8 = 6, 즉 6 포인트이다. 게다가, 도 12d를 참조하면, 포인트 점수는 만일 온도가 특정된 높은 범위 내에 있다면 예컨대 1 포인트만큼 증가될 수 있고, 만일 온도가 특정된 낮은 범위 내에 있다면 예컨대 1 포인트만큼 감소될 수 있으며, 또는 만일 온도가 특정된 중간 범위 내에 있다면 변경되지 않을 수 있다. 도 12e를 참조하면, 포인트 점수는 만일 워드 라인이 워드 라인들 세트의 드레인 측(예컨대, WLx 이상)에 충분히 가까이 있다면 예컨대 1만큼 증가될 수 있으며, 또는 만일 워드 라인이 워드 라인들 세트의 드레인 측에 충분히 가까이 있지 않다면 변경되지 않을 수 있다.
프로그램 디스터브 위험도는 위험도 메트릭이 각각 제1, 제2, 제3, 또는 제4 범위의 값들 내에 있을 때 낮은, 중간, 높은, 또는 매우 높은 것으로 표시될 수 있다. 위험도 메트릭(susceptibility metric, SM)에 대한 구분의 예로서, 0≤SM≤3은 낮은 위험도, 3<SM≤6은 중간 위험도, 6<SM≤9는 높은 위험도, 9<SM은 매우 높은 위험도이다. 위험도의 4개 범주들은 한 예로서 사용된다. 2개 이상의 범주들이 사용될 수도 있다. 뿐만 아니라, 메트릭 점수들은 단지 예시들이다. 특정한 저장 소자들 세트에 대해 최적인 실제 메트릭들은 테스트에 의해 결정될 수 있다. 유사하게, 온도 및 워드 라인 위치에 근거한 조정도 특정한 저장 소자들 세트에 대해 최적화될 수 있다.
단계(1406)에서, 낮은 프로그램 디스터브 위험도의 경우, 제2 프로그램 국면이 아무런 예방책 없이 저장 소자들 세트에 대해 수행될 수 있다(단계 1414). 제2 프로그램 국면은 제1 프로그램 국면 후에 프로그램하는 것을 포함할 수 있다. 예를 들면, 도 13에서, 제1 프로그램 국면들은 t1에서 t15 직전까지 일어났고, 이 경우에 제2 프로그램 국면은 t15에서 시작하는 프로그램 펄스들을 계속해서 인가하는 것을 포함할 수 있다. 도 8에서와 같은 직접 시퀀스 프로그램의 경우, 프로그램하는 동안 펄스 트레인(1300)이 저장 소자들에 한번 인가된다. 이 경우에, t15에서 시작하는 프로그램 펄스들은 모든 상태들에 대한 프로그램이 완료될 수 있도록 한다.
도 9 내지 도 10c의 2-패스 프로그램에 있어서, 펄스 트레인은 제1 패스에서 하위 페이지 데이터에 대해 한번 인가되고, 제2 패스에서 상위 페이지 데이터에 대해 다시 인가된다. 따라서, t15에서 시작하는 프로그램 펄스들은 하위 페이지의 프로그램이 완료될 수 있게 한다. 뒤이어, 프로그램 디스터브 위험도를 다시 결정하지 않고 예방책도 없이 상위 페이지가 새로운 펄스 트레인으로 프로그램된다. 메모리 디바이스는 저장 소자들 세트의 프로그램을 완료할 때 예방책이 필요하지 않다는 것을 기억한다. 저장 소자들 세트가 새로운 데이터로 나중에 다시 프로그램될 때, 온도와 같은 인자들이 변경되었을 수 있기 때문에 프로그램 디스터브 위험도는 새로 결정될 수 있다. 처리 시간의 측면에서 프로그램 디스터브 위험도 결정에 드는 비용은 미미하다.
단계들(1408, 1410, 1412)에서, 프로그램 디스터브 위험도는 중간이거나, 높거나, 매우 높으며, 이 경우에 예방책이 실시된다(단계 1415). 중간 프로그램 디스터브 위험도의 경우(1408), 제2 프로그램 국면은 Vpass를 증가시키는 것과 같은 예방책과 함께 저장 소자들 세트에 대해 수행될 수 있다(단계 1416). 예를 들면, Vpass는 소정의 레벨로 증가될 수 있다. 최적 레벨은 테스트로부터 결정될 수 있다. 다른 가능한 접근법에서, Vpass는 프로그램 디스터브 위험도의 정도에 비례하는 양만큼 증가된다(도 12f 참조). 메모리 디바이스는 저장 소자들 세트의 프로그램을 완료할 때 예방책을 실시하는 것을 기억한다. 프로그램은 프로그램 디스터브 위험도가 결정된 프로그램 절차의 시점에서부터 하위 및/또는 상위 페이지에 대해 예방책과 함께 계속될 수 있다. 또 다른 가능한 접근법에서, 하위 페이지의 프로그램은 예방책을 실시하지 않고 완료될 수 있다. 그런 다음, 상위 페이지를 프로그램하는 동안 예방책이 실시된다.
단계(1410)에서, 높은 프로그램 디스터브 위험도의 경우, 데이터의 하위 페이지를 프로그램하는 것이 완료될 수 있고, 예방책은 하위 페이지를 프로그램한 동일한 저장 소자들 세트에 대해 데이터의 상위 페이지를 프로그램하는 것을 포기하는 것이다(단계 1418). 유의할 점은 데이터의 하위 페이지는 프로그램 디스터브 위험도가 결정되는 시점에 거의 완전히 프로그램될 수 있어서, 프로그램이 대체로 상대적으로 빨리 완료될 수 있다는 것이다. 예를 들면, 프로그램 디스터브 위험도가 결정될 때 추적 상태 저장 소자들의 95%가 프로그램을 완료하였을 수 있으므로, 추적 상태 저장 소자들 중 단지 5%만이 프로그램을 마칠 필요가 있다. 하위 페이지의 프로그램은 증가된 Vpass와 같은 예방책과 함께 또는 예방책 없이 완료될 수 있다.
동일한 저장 소자들 세트에 대해 상위 페이지 데이터의 프로그램을 포기하는 한 가지 이유는 선택된 워드 라인의 하나 이상의 상위 페이지들은 더 높은 VTH 레벨들로 프로그램되기 때문에 더 높은 진폭의 프로그램 펄스들을 필요로 한다는 것이다. 이는 쉽게 프로그램 디스터브를 유발할 수 있다. 더 높은 진폭의 프로그램 펄스들을 피하는 것은 프로그램 디스터브의 가능성을 감소시킨다. 그 대신에, 데이터의 상위 페이지는 하위 워드 라인이 프로그램된 동일한 블록 또는 심지어 서로 다른 블록에 있는 다른 워드 라인으로 프로그램될 수 있다. 이는 하위 페이지 및 상위 페이지의 이진 데이터가 서로 다른 워드 라인들로 프로그램되도록 만든다. 만일 프로그램 디스터브 위험도가 너무 높지 않다면 다른 워드 라인들이 다중-레벨 데이터에 사용될 수 있으므로, 이진 및 다중-레벨 저장 소자들 모두가 동일한 블록에 존재한다. 예를 들면, 도 9의 프로그램 방식에서, 데이터의 하위 페이지는 분포들(800, 802)을 이용한다. 만일 데이터의 상위 페이지가 하위 페이지와 동일한 워드 라인 상에서 프로그램되지 않는다면, 분포들(804, 806)은 그 워드 라인 상에서 이용되지 않는다. 대신에, 분포들(804, 806)은 다른 워드 라인 상에서 이용된다. 유사하게, 도 10a 내지 도 10c의 프로그램 방식에서, 데이터의 하위 페이지는 분포들(1002, 1012)을 이용한다. 만일 데이터의 상위 페이지가 하위 페이지와 동일한 워드 라인 상에서 프로그램되지 않는다면, 분포들(1004, 1006, 1008)은 그 워드 라인 상에서 이용되지 않는다.
여전히 도 14를 참조하면, 단계(1412)에서, 매우 높은 프로그램 디스터브 위험도의 경우, 블록에 대해 더 이상의 프로그램이 발생하지 않도록 저장 소자들 세트의 프로그램을 즉시 종료하는 것과 같은 예방책이 실시될 수 있다(단계 1420). 이미 프로그램된 특정한 블록에 있는 다른 워드 라인들 상의 저장 소자들은 프로그램된 채로 남아있을 수 있거나, 또는 그 데이터가 또 다른 블록으로 재프로그램될 수 있고 특정한 블록 전체는 사용할 수 없는 것으로 선언될 수 있다.
유의할 점은 도 14의 절차는 각 워드 라인에 대해 별도로 수행될 수 있다는 것이다. 한 블록에서 서로 다른 워드 라인들은 워드 라인 위치, 불완전한 리소그래피의 영향 및 다른 인자들로 인해 서로 다른 정도의 프로그램 디스터브 위험도를 가질 수 있다. 결과적으로, 서로 다른 워드 라인들 상에서 서로 다른 예방책들이 실시될 수 있으며, 일부 워드 라인들은 예방책이 실시될 수 있지만 다른 것들은 그렇지 않을 수 있다. 다른 선택사항은 WLx 내지 WL31과 같이 프로그램하는 동안 최저 채널 부스팅을 가지며 프로그램 디스터브 오류들이 가장 일어나기 쉬운 프로그램 워드 라인들 상에서만 프로그램 디스터브를 예측하는 것이다(예컨대, 단계들 1402, 1404를 이용함). 이 경우에, 프로그램 디스터브 위험도는 WL0 내지 WLx-1에 대해서는 결정되지 않는다.
도 15는 비휘발성 메모리를 프로그램하는 방법의 한 실시예를 서술하는 순서도이다. 한 구현예에서, 저장 소자들이 프로그램하기에 앞서 소거된다(블록 단위나 다른 단위로). 단계(1500)에서, "데이터 로드(data load)" 명령이 제어기에 의해 발생되고 입력이 제어 회로(510)에 의해 수신된다. 단계(1502)에서, 페이지 어드레스를 지정하는 어드레스 데이터가 제어기 또는 호스트로부터 디코더(514)로 입력된다. 단계(1504)에서, 어드레스된 페이지에 대한 한 페이지의 프로그램 데이터가 프로그램하기 위해 데이터 버퍼에 입력된다. 예를 들어, 데이터 상위 페이지와 하위 페이지가 별도로 프로그램되면, 데이터의 하위 페이지가 초기에 입력될 수 있다. 데이터는 적절한 래치들의 세트에 래치된다. 단계(1506)에서, "프로그램(program)" 명령이 제어기에 의해 상태 머신(512)으로 전송된다.
"프로그램" 명령에 의해 트리거(trigger)되면, 적절한 선택된 워드 라인에 인가되는 도 13의 펄스 트레인(1300)의 계단형 프로그램 펄스들을 사용하여 단계(1504)에서 래치된 데이터가 상태 머신(512)에 의해 제어되어 선택된 저장 소자들로 프로그램될 것이다. 구체적으로, 단계(1508)에서, 프로그램 전압 VPGM이 시작 펄스(예컨대, 12 V나 다른 값)로 초기화되고 상태 머신(512)에 의해 유지되는 프로그램 카운터(program counter, PC)가 0으로 초기화된다. 단계(1510)에서, 플래그(flag)가 0으로 설정된다. 플래그는 프로그램 디스터브 위험도가 결정되었는지 여부를 표시한다(결정되지 않은 경우 플래그는 0이고, 결정된 경우 플래그는 1임). 단계(1512)에서, 프로그램 펄스가 선택된 워드 라인과 관련된 저장 소자들의 프로그램을 시작하도록 선택된 워드 라인에 인가된다. 만일 논리 "0"이 특정한 데이터 래치에 저장되어 해당 저장 소자가 프로그램되어야 한다고 표시한다면, 해당 비트 라인이 접지된다. 반면에, 만일 논리 "1"이 특정한 래치에 저장되어 해당 저장 소자가 그 현재의 데이터 상태에 남아있어야 한다고 표시한다면, 해당 비트 라인은 프로그램을 금지하도록 1.5 V 내지 3 V에 연결된다.
단계(1514)에서, 선택된 저장 소자들의 상태들이 검증 동작으로 검증된다. 만일 선택된 저장 소자의 목표 임계 전압이 적절한 레벨에 도달한 것으로 탐지되면, 해당 데이터 래치에 저장된 데이터가 논리 "1"로 변경된다. 만일 그 임계 전압이 적절한 레벨에 도달하지 못한 것으로 탐지되면, 해당 데이터 래치에 저장된 데이터는 변경되지 않는다. 이런 방식으로, 해당 데이터 래치에 논리 "1"이 저장된 비트 라인은 프로그램될 필요가 없다. 모든 데이터 래치들이 논리 "1"을 저장하고 있으면, 상태 머신(전술된 연결-논리합 유형의 메커니즘을 통해)은 모든 선택된 저장 소자들이 프로그램되었다는 것을 안다.
판별 단계(1516)에서, 만일 플래그가 0이면, 단계(1517)가 수행되며, 추적 상태에 대한 검증 레벨(예컨대, A-상태가 추적 상태이면 도 8의 검증 레벨 Vva, 또는 B'-상태가 추적 상태이면 도 10a의 검증 레벨 Vvb')에 도달한 및/또는 도달하지 못한 저장 소자들의 수의 카운트가 유지된다. 단계(1518)에서, N1개의 저장 소자들이 추적 상태에 대한 검증 레벨에 도달하면 프로그램 펄스 수(PPN1)가 식별되고 저장된다. 단계(1520)에서, N2개의 저장 소자들이 추적 상태에 대한 검증 레벨에 도달하거나, 또는 N1개(또는 어떤 다른 수) 이하의 추적-상태 저장 소자들이 아직 추적 상태에 도달하지 못했으면 프로그램 펄스 수(PPN2)가 저장된다. 단계들(1517, 1518, 1520)은 단계(1514)와 결합하여 수행될 수 있다.
판별 단계(1522)에서, 만일 PPN2가 식별되었다면, 단계(1524)가 수행된다. 단계(1524)는 PPN2-PPN1과 선택사항으로서 워드 라인 위치 및 온도를 기반으로 프로그램 디스터브 위험도를 결정한다. 위험도의 정도를 기반으로, 3개의 경로들 중 하나를 따른다. 단계(1526)는 아무런 예방책 없이 계속 프로그램하는 것을 포함한다. 단계(1528)는 예방책과 함께 계속 프로그램하는 것을 포함하고, 단계(1532)는 더 높은 Vpass를 사용하는 것과 같이 프로그램 디스터브 위험도를 기반으로 예방책을 결정하는 것 또는 데이터의 상위 페이지를 프로그램하는 것을 포기하는 것을 포함한다. 단계(1530)는 예컨대 전체 블록에 대하여 프로그램하는 것을 즉시 종료하는 것을 포함한다. 단계(1534)에서, 플래그는 1로 설정된다.
판별 단계(1536)에서, 모든 데이터 래치들이 논리 "1"을 저장하고 있는지 여부에 대한 검사가 이루어진다. 만일 모든 데이터 래치들이 논리 "1"을 저장하고 있다면, 모든 선택된 저장 소자들이 프로그램되었고 검증되었기 때문에 프로그램 절차는 완료되고 성공적이다. 예를 들면, 모든 하위 페이지 데이터 또는 모든 상위 페이지 데이터가 프로그램된 것이다. 또는, 직접 시퀀스 프로그램의 경우, 모든 데이터가 프로그램된 것이다. 단계(1538)에서, "PASS" 상태가 보고된다. 일부 실시예들에서, 비록 모든 선택된 저장 소자들이 프로그램된 것으로 검증되지 않았더라도 프로그램 절차는 완료되고 성공적인 것으로 여겨진다. 이러한 경우에, 불충분하게 프로그램된 저장 소자들로 인해 후속 판독 동작들 동안에 오류가 발생할 수 있다. 하지만, 이들 오류들은 ECC에 의해 정정될 수 있다.
단계(1536)에서, 만일 모든 데이터 래치들이 논리 "1"을 저장하고 있지 않는 것으로 판별되면, 프로그램 절차는 계속된다. 일부 실시예들에서, 비록 모든 데이터 래치들이 논리 "1"을 저장하고 있지 않더라도 프로그램 절차는 중단된다. 판별 단계(1540)에서, 프로그램 카운터(PC)가 프로그램 한계치 PCmax와 대조된다. 프로그램 한계치의 한 예는 20이지만, 다른 수들도 또한 사용될 수 있다. 만일 PC≥PCmax이면, 프로그램 절차는 실패한 것이고, 단계(1542)에서 "FAIL" 상태가 보고된다. 만일 PC<PCmax이면, 단계(1544)에서 VPGM은 스텝 크기만큼 증가되고, PC는 1만큼 증가된다. 그런 다음, 절차는 그 다음 프로그램 펄스를 인가하도록 단계(1512)로 되돌아간다. 그런 다음, 프로그램은 논의된 바와 같이 계속되며, 해당한다면 예방책이 실시된다.
판별 단계(1516)에서 플래그가 1일 경우, 프로그램 디스터브 위험도가 재결정될 필요가 없기 때문에 검증 판별 단계(1536)가 다음으로 수행된다.
판별 단계(1522)에서, 만일 PPN2가 아직 식별되지 않았다면, 프로그램 디스터브 위험도가 아직 결정될 수 없기 때문에 검증 판별 단계(1536)가 수행된다.
전술된 상세한 설명은 예시 및 설명의 목적으로 제공되었다. 상기 상세한 설명은 본 발명을 빠짐없이 완전히 제시한 것이라거나 본 발명을 개시된 특정 형태로 제한하고자 의도된 것이 아니다. 상기 교시 내용에 비추어 많은 수정 및 변경이 가능하다. 상기 서술된 실시예들은 본 기술의 원리들 및 그 실제적인 응용을 가장 잘 설명함으로써 당해 기술분야의 통상의 기술자들이 다양한 실시예들에서 그리고 예기된 특정 용도에 적합하게 다양한 수정들을 가하여 본 기술을 가장 잘 이용할 수 있도록 선택되었다. 본 기술의 범위는 첨부된 특허청구범위에 의해 정의되도록 의도하는 바이다.

Claims (15)

  1. 제1 일련의 프로그램 펄스들(1305 내지 1340)을 비휘발성 저장 시스템에서 저장 소자들 블록(700, 710)의 선택된 워드 라인(WLn)에 인가함으로써 제1 프로그램 국면(programming phase)을 수행하는 단계 - 상기 선택된 워드 라인은 상기 블록의 선택된 저장 소자들과 통신하며 - 와;
    상기 선택된 저장 소자들 중 제1 일부 소자들의 임계 전압들이 검증 레벨(Vva, Vvb, Vvb')을 초과하는 때를 결정하는 단계 - 상기 제1 일련의 프로그램 펄스들에서 제1 관련 프로그램 펄스가 상기 선택된 워드 라인에 적용된 후 상기 선택된 저장 소자들 중 제1 일부 소자들의 임계 전압들이 상기 검증 레벨을 초과하며 - 와;
    상기 선택된 저장 소자들 중 제2 일부 소자들의 임계 전압들이 상기 검증 레벨을 초과하는 때를 결정하는 단계 - 상기 제1 일련의 프로그램 펄스들에서 제2 관련 프로그램 펄스가 상기 선택된 워드 라인에 적용된 후 상기 선택된 저장 소자들 중 제2 일부 소자들의 임계 전압들이 상기 검증 레벨을 초과하며 - 와;
    적어도 부분적으로 상기 제1 및 제2 관련 프로그램 펄스들을 기반으로, 상기 선택된 저장 소자들에서 프로그램 디스터브의 가능성을 감소시키기 위한 예방책이 표시될지 여부를 결정하는 단계와; 그리고
    만일 상기 예방책이 표시된다면 상기 예방책을 실시하는 단계를 포함하는
    비휘발성 저장 시스템의 동작 방법.
  2. 제1항에 있어서,
    상기 검증 레벨은 적어도 한 비트의 데이터를 나타내는 데이터 상태(A, B)와 관련된 것인
    비휘발성 저장 시스템의 동작 방법.
  3. 제1항에 있어서,
    상기 검증 레벨은 적어도 한 비트의 데이터를 나타내는 것이 아닌 중간 상태(B')와 관련된 것인
    비휘발성 저장 시스템의 동작 방법.
  4. 제1항에 있어서,
    상기 예방책이 표시될지 여부를 결정하는 단계는 적어도 부분적으로 상기 제1 및 제2 관련 프로그램 펄스들의 펄스 수들 사이의 차이에 근거하며, 상기 펄스 수들은 각각 상기 제1 일련의 프로그램 펄스들에서 상기 제1 및 제2 관련 프로그램 펄스들의 순차적 위치들을 가리키는
    비휘발성 저장 시스템의 동작 방법.
  5. 제1항에 있어서,
    상기 제1 프로그램 국면은 적어도 부분적으로 데이터의 하위 페이지를 상기 선택된 저장 소자들로 프로그램하며, 그리고
    상기 예방책을 실시하는 단계는 상기 선택된 워드 라인 상에서 데이터의 상위 페이지를 프로그램하는 것을 포기하는 것과, 다른 워드 라인 상에서 상기 데이터의 상위 페이지를 프로그램하는 것을 포함하는
    비휘발성 저장 시스템의 동작 방법.
  6. 제1항에 있어서,
    상기 예방책을 실시하는 단계는 상기 블록을 프로그램하는 것을 포기하는 것을 포함하는
    비휘발성 저장 시스템의 동작 방법.
  7. 제1항에 있어서,
    상기 제1 프로그램 국면 동안, 제1 레벨의 패스 전압들이 상기 블록의 선택되지 않은 저장 소자들과 통신하는 선택되지 않은 워드 라인들에 인가되며, 그리고
    상기 방법은 상기 제1 프로그램 국면 후에 제2 일련의 프로그램 펄스들(1345 내지 1375)을 상기 선택된 워드 라인에 인가함으로써 제2 프로그램 국면을 수행하는 단계를 더 포함하고, 상기 예방책은 상기 제2 프로그램 국면에서 상기 패스 전압들의 레벨을 상기 제1 레벨보다 더 높은 제2 레벨로 증가시킴으로써 실시되는
    비휘발성 저장 시스템의 동작 방법.
  8. 제7항에 있어서,
    적어도 부분적으로 상기 제1 및 제2 관련 프로그램 펄스들을 기반으로, 상기 예방책이 표시되는 정도를 결정하는 단계를 더 포함하며, 상기 제2 레벨은 상기 정도에 비례하여 상기 제1 레벨보다 더 높은
    비휘발성 저장 시스템의 동작 방법.
  9. 제7항에 있어서,
    상기 제1 프로그램 국면은 데이터의 하위 페이지를 상기 선택된 저장 소자들로 프로그램하며, 그리고
    상기 제2 프로그램 국면은 데이터의 상위 페이지를 상기 선택된 저장 소자들로 프로그램하는
    비휘발성 저장 시스템의 동작 방법.
  10. 제1항에 있어서,
    적어도 부분적으로 상기 블록의 워드 라인들 세트 중에서 상기 선택된 워드 라인의 위치를 기반으로 상기 예방책이 표시될지 여부를 결정하는 단계를 더 포함하며, 상기 예방책이 표시되는 정도는, 상기 선택된 워드 라인의 위치가 상기 워드 라인들 세트의 드레인 측으로부터 특정 워드 라인들 수 내에(WL31 내지 WLx) 있지 않을 때보다 상기 워드 라인들 세트의 상기 드레인 측으로부터 상기 특정 워드 라인들 수 내에 있을 때 더 큰,
    비휘발성 저장 시스템의 동작 방법.
  11. 제1항에 있어서,
    적어도 부분적으로 온도를 기반으로 상기 예방책이 표시될지 여부를 결정하는 단계를 더 포함하며, 상기 예방책이 표시되는 정도는 상기 온도가 낮을 때보다 높을 때 더 큰,
    비휘발성 저장 시스템의 동작 방법.
  12. 선택된 저장 소자들을 포함하는 저장 소자들의 블록(700, 710)과;
    상기 선택된 저장 소자들과 통신하는 선택된 워드 라인(WLn)을 포함하며, 상기 선택된 저장 소자들과 통신하는 워드 라인들의 세트와; 그리고
    상기 워드 라인들의 세트와 통신하는 하나 이상의 제어 회로들(510, 550)을 포함하며, 상기 하나 이상의 제어 회로들은 (a) 상기 선택된 워드 라인(WLn)에 제1 일련의 프로그램 펄스들(1305 내지 1340)을 인가함으로써 제1 프로그램 국면을 수행하고, (b) 상기 선택된 저장 소자들 중 제1 일부 소자들의 임계 전압들이 검증 레벨(Vva, Vvb, Vvb')을 넘어서는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 제1 관련 프로그램 펄스가 상기 선택된 워드 라인에 적용된 후 상기 선택된 저장 소자들 중 제1 일부 소자들의 임계 전압들이 상기 검증 레벨을 초과하며, (c) 상기 선택된 저장 소자들 중 제2 일부 소자들의 임계 전압들이 상기 검증 레벨을 넘어서는 때를 결정하고, 상기 제1 일련의 프로그램 펄스들에서 제2 관련 프로그램 펄스가 상기 선택된 워드 라인에 적용된 후 상기 선택된 저장 소자들 중 제2 일부 소자들의 임계 전압들이 상기 검증 레벨을 초과하며, (d) 적어도 부분적으로 상기 제1 및 제2 관련 프로그램 펄스들의 펄스 수들의 차이를 기반으로, 상기 선택된 저장 소자들에서 프로그램 디스터브의 가능성을 감소시키기 위한 예방책이 표시될지 여부를 결정하며, 상기 펄스 수들은 각각 상기 제1 일련의 프로그램 펄스들에서 상기 제1 및 제2 관련 프로그램 펄스들의 순차적 위치들을 가리키고, (e) 만일 상기 예방책이 표시된다면 상기 예방책을 실시하는
    비휘발성 저장 시스템.
  13. 제12항에 있어서,
    상기 제1 프로그램 국면은 데이터의 하위 페이지를 상기 선택된 저장 소자들로 프로그램하며, 그리고
    상기 하나 이상의 제어 회로들은 데이터의 상위 페이지를 상기 선택된 저장 소자들로 프로그램하는 제2 프로그램 국면을 수행할지를 예측함으로써 상기 예방책을 실시하는
    비휘발성 저장 시스템.
  14. 제12항에 있어서,
    상기 하나 이상의 제어 회로들은 상기 블록을 프로그램하는 것을 포기함으로써 상기 예방책을 실시하는
    비휘발성 저장 시스템.
  15. 제12항에 있어서,
    상기 제1 프로그램 국면 동안, 상기 하나 이상의 제어 회로들은 제1 레벨의 패스 전압들을 상기 블록의 선택되지 않은 워드 라인들에 인가하며, 그리고
    상기 하나 이상의 제어 회로들은 상기 제1 프로그램 국면 후에 제2 일련의 프로그램 펄스들을 상기 선택된 워드 라인에 인가함으로써 제2 프로그램 국면을 수행하고, 상기 예방책은 상기 제2 프로그램 국면에서 상기 패스 전압들의 레벨을 상기 제1 레벨보다 더 높은 제2 레벨로 증가시킴으로써 실시되는
    비휘발성 저장 시스템.
KR1020117029999A 2009-06-24 2010-06-08 고유 임계 전압 분포 탐지에 의한 메모리의 프로그램 디스터브 예측 KR101655352B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/490,557 2009-06-24
US12/490,557 US7916533B2 (en) 2009-06-24 2009-06-24 Forecasting program disturb in memory by detecting natural threshold voltage distribution

Publications (2)

Publication Number Publication Date
KR20120039539A KR20120039539A (ko) 2012-04-25
KR101655352B1 true KR101655352B1 (ko) 2016-09-08

Family

ID=42641285

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117029999A KR101655352B1 (ko) 2009-06-24 2010-06-08 고유 임계 전압 분포 탐지에 의한 메모리의 프로그램 디스터브 예측

Country Status (7)

Country Link
US (1) US7916533B2 (ko)
EP (1) EP2446443B1 (ko)
JP (1) JP2012531693A (ko)
KR (1) KR101655352B1 (ko)
CN (1) CN102576568B (ko)
TW (1) TWI494933B (ko)
WO (1) WO2010151427A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101504339B1 (ko) * 2008-11-03 2015-03-24 삼성전자주식회사 플래시 메모리 장치 및 그것을 포함하는 메모리 시스템
US8526233B2 (en) * 2011-05-23 2013-09-03 Sandisk Technologies Inc. Ramping pass voltage to enhance channel boost in memory device, with optional temperature compensation
US8730711B2 (en) * 2012-04-26 2014-05-20 Robert Newton Rountree Low noise memory array
CN104346232A (zh) * 2013-08-06 2015-02-11 慧荣科技股份有限公司 数据储存装置及其限制存取方法
US9123424B2 (en) * 2013-12-17 2015-09-01 Sandisk Technologies Inc. Optimizing pass voltage and initial program voltage based on performance of non-volatile memory
KR102182804B1 (ko) 2014-07-29 2020-11-25 삼성전자주식회사 메모리 장치의 독출 방법
KR102238579B1 (ko) 2014-08-06 2021-04-09 삼성전자주식회사 메모리 장치의 프로그램 방법
US20160314844A1 (en) * 2015-04-22 2016-10-27 Sandisk Technologies Inc. Natural threshold voltage compaction with dual pulse program for non-volatile memory
US9852800B2 (en) * 2016-03-07 2017-12-26 Sandisk Technologies Llc Adaptive determination of program parameter using program of erase rate
US9583198B1 (en) * 2016-04-22 2017-02-28 Sandisk Technologies Llc Word line-dependent and temperature-dependent pass voltage during programming
US9715937B1 (en) * 2016-06-15 2017-07-25 Sandisk Technologies Llc Dynamic tuning of first read countermeasures
KR102571185B1 (ko) * 2016-08-25 2023-08-29 에스케이하이닉스 주식회사 반도체 메모리 장치 및 이의 동작 방법
KR102659596B1 (ko) 2016-08-26 2024-04-19 삼성전자주식회사 비휘발성 메모리 장치
US10276252B2 (en) 2017-12-11 2019-04-30 Intel Corporation Data storage device with operation based on temperature difference
US10732890B2 (en) * 2018-03-06 2020-08-04 Micron Technology, Inc. Adjusting a parameter for a programming operation based on the temperature of a memory system
US10802761B2 (en) * 2018-03-27 2020-10-13 SK Hynix Inc. Workload prediction in memory system and method thereof
KR102565913B1 (ko) * 2018-06-12 2023-08-11 에스케이하이닉스 주식회사 저장 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템 및 이의 동작 방법
US11003551B2 (en) 2018-09-27 2021-05-11 Sandisk Technologies Llc Non-volatile storage system with program failure recovery
CN111951857B (zh) * 2019-05-15 2023-06-09 兆易创新科技集团股份有限公司 一种非易失性存储器的编程方法及控制装置
US11367493B2 (en) 2019-07-18 2022-06-21 Samsung Electronics Co., Ltd. Non-volatile memory devices and program methods thereof
KR20210010726A (ko) 2019-07-18 2021-01-28 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
JP7132444B2 (ja) * 2019-12-09 2022-09-06 長江存儲科技有限責任公司 メモリデバイスにおけるプログラム撹乱低減方法およびそれを利用するメモリデバイス
US11854631B2 (en) 2021-08-19 2023-12-26 Kioxia Corporation System and method for dynamic compensation for multiple interference sources in non-volatile memory storage devices
CN114171095B (zh) * 2021-11-30 2023-03-10 华中科技大学 3d nand闪存阈值电压分布预测方法、设备及存储系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007078793A1 (en) 2005-12-19 2007-07-12 Sandisk Corporation Method for programming non-volatile memory with reduced program disturb using modified pass voltages
US20080279008A1 (en) 2007-05-07 2008-11-13 Yingda Dong Non-volatile storage with boosting using channel isolation switching
US20090129146A1 (en) 2007-11-21 2009-05-21 Vishal Sarin Mitigation of data corruption from back pattern and program disturb in a non-volatile memory device

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0788113B1 (en) * 1996-01-31 2005-08-24 STMicroelectronics S.r.l. Multilevel memory circuits and corresponding reading and writing methods
JP2001312898A (ja) * 2000-04-28 2001-11-09 Mitsubishi Electric Corp しきい値解析システムおよびしきい値解析方法
US6717847B2 (en) * 2001-09-17 2004-04-06 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6456528B1 (en) * 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6560152B1 (en) * 2001-11-02 2003-05-06 Sandisk Corporation Non-volatile memory with temperature-compensated data read
US6801454B2 (en) * 2002-10-01 2004-10-05 Sandisk Corporation Voltage generation circuitry having temperature compensation
US7177199B2 (en) * 2003-10-20 2007-02-13 Sandisk Corporation Behavior based programming of non-volatile memory
US7180775B2 (en) * 2004-08-05 2007-02-20 Msystems Ltd. Different numbers of bits per cell in non-volatile memory devices
US7193901B2 (en) * 2005-04-13 2007-03-20 Intel Corporation Monitoring the threshold voltage of frequently read cells
US7295478B2 (en) * 2005-05-12 2007-11-13 Sandisk Corporation Selective application of program inhibit schemes in non-volatile memory
US7170788B1 (en) * 2005-09-09 2007-01-30 Sandisk Corporation Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb
US7366022B2 (en) * 2005-10-27 2008-04-29 Sandisk Corporation Apparatus for programming of multi-state non-volatile memory using smart verify
US7355888B2 (en) * 2005-12-19 2008-04-08 Sandisk Corporation Apparatus for programming non-volatile memory with reduced program disturb using modified pass voltages
US7483311B2 (en) * 2006-02-07 2009-01-27 Micron Technology, Inc. Erase operation in a flash memory device
US7436713B2 (en) * 2006-04-12 2008-10-14 Sandisk Corporation Reducing the impact of program disturb
US7518931B2 (en) * 2006-09-06 2009-04-14 Hynix Semiconductor Inc. Method of monitoring an erase threshold voltage distribution in a NAND flash memory device
US7468911B2 (en) * 2006-11-02 2008-12-23 Sandisk Corporation Non-volatile memory using multiple boosting modes for reduced program disturb
KR100816161B1 (ko) * 2007-01-23 2008-03-21 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
US7646636B2 (en) * 2007-02-16 2010-01-12 Mosaid Technologies Incorporated Non-volatile memory with dynamic multi-mode operation
US7564715B2 (en) * 2007-02-20 2009-07-21 Sandisk Corporation Variable initial program voltage magnitude for non-volatile storage
US7460404B1 (en) * 2007-05-07 2008-12-02 Sandisk Corporation Boosting for non-volatile storage using channel isolation switching
US7460398B1 (en) * 2007-06-19 2008-12-02 Micron Technology, Inc. Programming a memory with varying bits per cell
JP5178167B2 (ja) * 2007-12-04 2013-04-10 株式会社東芝 半導体記憶装置及びそのデータ書き込み方法
US8054691B2 (en) * 2009-06-26 2011-11-08 Sandisk Technologies Inc. Detecting the completion of programming for non-volatile storage

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007078793A1 (en) 2005-12-19 2007-07-12 Sandisk Corporation Method for programming non-volatile memory with reduced program disturb using modified pass voltages
US20080279008A1 (en) 2007-05-07 2008-11-13 Yingda Dong Non-volatile storage with boosting using channel isolation switching
US20090129146A1 (en) 2007-11-21 2009-05-21 Vishal Sarin Mitigation of data corruption from back pattern and program disturb in a non-volatile memory device

Also Published As

Publication number Publication date
US7916533B2 (en) 2011-03-29
TW201103027A (en) 2011-01-16
CN102576568B (zh) 2016-02-10
CN102576568A (zh) 2012-07-11
JP2012531693A (ja) 2012-12-10
KR20120039539A (ko) 2012-04-25
EP2446443A1 (en) 2012-05-02
EP2446443B1 (en) 2013-07-24
TWI494933B (zh) 2015-08-01
WO2010151427A1 (en) 2010-12-29
US20100329002A1 (en) 2010-12-30

Similar Documents

Publication Publication Date Title
KR101655352B1 (ko) 고유 임계 전압 분포 탐지에 의한 메모리의 프로그램 디스터브 예측
KR100952235B1 (ko) 비휘발성 메모리에서 프로그램 금지 방안들의 선택적인적용
KR101662760B1 (ko) 비휘발성 저장소자에서 향상된 채널 부스팅을 위한 감소된 프로그래밍 펄스 폭
KR101519081B1 (ko) 비휘발성 저장소에서 채널 부스팅을 증가시키기 위한 강화된 비트라인 프리챠지 방식
KR101015612B1 (ko) 플로팅 게이트 커플링을 보상한 비휘발성 저장 소자의 판독 방법
EP2748819B1 (en) Read compensation for partially programmed blocks of non-volatile storage
KR101569862B1 (ko) 비휘발성 저장 소자를 위한 소거-검증 프로세스
EP1946323B1 (en) Method for programming of multi-state non-volatile memory using smart verify
EP3248194A1 (en) Partial block erase for block programming in non-volatile memory
KR101428767B1 (ko) 비휘발성 저장소자의 판독 동작 동안에 파워 소모의 감소
KR20130084610A (ko) 동기화된 커플링을 이용한 비휘발성 저장소자의 프로그래밍
EP2078303B1 (en) Reading of a nonvolatile memory cell by taking account of the stored state of a neighboring memory cell
KR20120039562A (ko) 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출
KR101012132B1 (ko) 다른 전압들을 이용한 비휘발성 저장 장치에 대한 검증 동작
KR100984563B1 (ko) 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법
KR100948200B1 (ko) 비휘발성 저장 장치에서 판독 장애 저감
KR101431195B1 (ko) 채널 절연 스위칭을 이용한 비휘발성 저장을 위한 부스팅
KR20090089348A (ko) 다중 부스팅 모드들을 이용하여 비휘발성 메모리에서 프로그램 디스터브를 감소시키는 방법

Legal Events

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