KR101661295B1 - 선택적 메모리 셀 프로그래밍 및 소거 - Google Patents

선택적 메모리 셀 프로그래밍 및 소거 Download PDF

Info

Publication number
KR101661295B1
KR101661295B1 KR1020127007126A KR20127007126A KR101661295B1 KR 101661295 B1 KR101661295 B1 KR 101661295B1 KR 1020127007126 A KR1020127007126 A KR 1020127007126A KR 20127007126 A KR20127007126 A KR 20127007126A KR 101661295 B1 KR101661295 B1 KR 101661295B1
Authority
KR
South Korea
Prior art keywords
volatile storage
storage elements
word lines
group
data
Prior art date
Application number
KR1020127007126A
Other languages
English (en)
Other versions
KR20120066019A (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 KR20120066019A publication Critical patent/KR20120066019A/ko
Application granted granted Critical
Publication of KR101661295B1 publication Critical patent/KR101661295B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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
    • 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
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/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/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching 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
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • 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/30Power supply 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
    • 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/564Miscellaneous aspects
    • G11C2211/5641Multilevel memory having cells with different number of storage levels

Landscapes

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

Abstract

높은 프로그램/소거 사이클 내구성(endurance)을 달성하도록 메모리 어레이를 프로그래밍하기 위한 기법들이 여기에 개시된다. 일부 양상들에서, 선택된 워드 라인들(WL)이 프로그램되고 다른 WL들은 프로그램되지 않은 채로 유지된다. 예로서, 짝수 워드 라인들만이 프로그램되고 홀수 WL들은 프로그램되지 않은 채로 유지된다. 짝수 워드 라인들 전부를 프로그램한 후 데이터 블록이 새 데이터로 프로그램되고, 블록은 소거된다. 그후, 홀수 워드 라인들만이 프로그램된다. 소거에 앞서서 메모리 셀 당 복수의 비트를 저장하는 블록으로 데이터가 전송된다. 일 양상에서, 데이터는, 일부 메모리 셀들이 프로그램되고 다른 메모리 셀들은 프로그램되지 않은채로 남겨지는 체커보드 패턴으로 프로그램된다. 그후, 데이터를 소거한 후, 나머지 셀들은 프로그램되지 않은 상태에서, 전에 프로그램되지 않았던 체커보드 패턴의 부분이 프로그램된다.

Description

선택적 메모리 셀 프로그래밍 및 소거{SELECTIVE MEMORY CELL PROGRAM AND ERASE}
본 발명은 비휘발성 메모리에 관한 것이다.
반도체 메모리는 다양한 전자 디바이스들에서 점점 더 보편적으로 사용되고 있다. 예를 들어, 비휘발성 반도체 메모리는 휴대 전화, 디지털 카메라, PDA(personal digital assistants), 모바일 컴퓨팅 디바이스, 논-모바일 컴퓨팅 디바이스 및 다른 디바이스들에서 사용된다. 그 중에서도 EEPROM 및 플래시 메모리는 가장 널리 사용되는 비휘발성 반도체 메모리이다. 전통적인 풀-피쳐(full-featured) EEPROM과는 대조적으로, 플래시 메모리(역시 EEPROM의 일종임)를 사용하여, 전체 메모리 어레이의 내용 또는 메모리의 일부의 내용이 일 단계(one-step)에서 소거될 수 있다.
전통적인 EEPROM과 플래시 메모리는 모두 반도체 기판에서 채널 영역 위에 위치함과 아울러 채널 영역으로부터 절연된 플로팅 게이트를 사용한다. 플로팅 게이트는 소스 영역과 드레인 영역 사이에 위치한다. 제어 게이트는 플로팅 게이트 위에 제공되고 플로팅 게이트로부터 절연된다. 트랜지스터의 임계 전압(VTH)은 플로팅 게이트 상에 보유되는 전하의 양에 의해 제어된다. 즉, 트랜지스터의 소스와 드레인 사이의 도통(conduction)를 허용하기 위하여 트랜지스터가 턴온(turn on)되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소량이 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
일부 EEPROM과 플래시 메모리 디바이스는, 2 개의 전하 범위들을 저장하는데 사용되는 플로팅 게이트를 구비하며, 따라서, 메모리 소자가 두 상태들, 예를 들어, 소거 상태 및 프로그램 상태 사이에서 프로그램/소거 될 수 있다. 일반적으로, 제1 전압 범위에서 임계 전압을 가진 메모리 셀들은 소거 상태에 있는 것으로 고려되며 제2 임계 전압 범위 내에 임계 전압을 가진 메모리 셀들은 프로그램 상태에 있는 것으로 고려된다. 일반적으로, 제1 범위와 제2 범위 사이에는 윈도우가 존재한다. 이러한 플래시 메모리 디바이스는 때때로 바이너리 플래시 메모리 디바이스라 칭해지는바, 그 이유는 각각의 메모리 소자가 1비트의 데이터를 저장할 수 있기 때문이다.
다중-상태(또는 다중 레벨) 플래시 메모리 디바이스는 복수의 개별(distict) 허용/유효(allowed/valid) 프로그램 임계 전압 범위들을 식별함으로써 구현된다. 각각의 개별 임계 전압 범위는 메모리 디바이스에서 엔코딩된 데이터 비트들의 세트에 대한 소정의 값에 대응한다. 예를 들어, 각각의 메모리 소자는 상기 소자가 4개의 개별 임계 전압 범위에 대응하는 4개의 개별 전하 밴드들 중 하나에 위치될 수 있을 때 데이터의 2 비트를 저장할 수 있다.
일부 플래시 메모리 디바이스들은 바이너리와 다중-상태 둘 모두에서 동작한다. 예를 들어, 일부 메모리 셀들은 1 비트의 데이터를 저장하는데 사용되고("단일-레벨 셀 또는 SLC 블록들") 다른 메모리 셀들은 셀 당 복수의 비트들을 저장하는데 사용된다("다중 레벨 셀 또는 MLC 블록들"). 일부 디바이스들에서, SLC 블록들과 MLC 블록들은 동일한 집적 회로의 부분이며, 동일한 메모리 어레이의 부분일 수도 있다. SLC 블록들은 데이터의 단기 저장(short term storage)을 위해 사용되는 반면, MLC 블록들은 장기 데이터 저장(long term data storage)을 위해 사용된다. 다른 말로하면, SLC 블록들은 어느정도 캐시처럼 사용될 수 있다. 따라서, SLC 블록들은 디바이스의 수명동안 여러번 프로그램/소거될 수 있다. 그러므로, 기록/소거 내구성(endurance)은 MLB 블록들에서보다 SLB 블록들에서 더 중요한 문제일 수 있다.
일부 메모리 어레이들에서, 어레이는 다수의 병렬 워드 라인들 및 상기 워드 라인들에 수직으로 있는 다수의 비트 라인들로 배열된다. 각각의 메모리 셀은 1 워드 라인 및 1 비트 라인과 관련될 수 있다. 일부 상황들에서, 메모리 셀은 이웃 워드 라인 및/또는 이웃 비트 라인 상에 인접한 메모리 셀의 플로팅 게이트 상에 저장된 전하의 영향을 받을 수 있다.
인접 플로팅 게이트들에 저장된 전하로 인한 전계의 커플링 때문에, 메모리 셀의 플로팅 게이트 상에 저장된 겉보기 전하(apparent charge)의 시프트가 발생할 수 있다. 이 현상은 미국 특허 5,867,429에서 기술되는바, 상기 특허는 그 전체가 본 명세서에 참조로서 포함된다. 이 문제는 서로 다른 시간에 프로그램된 인접 메모리 셀들의 세트들 사이에서 가장 현저하게 발생한다. 예를 들어, 제1 메모리 셀은 데이터의 일 세트에 대응하는 그것의 플로팅 게이트에 임의의 전하 레벨을 더하도록 프로그램된다. 후속적으로, 하나 이상의 인접 메모리 셀들이 데이터의 제2 세트에 대응하는 그것들의 플로팅 게이트들에 임의의 전하 레벨을 더하도록 프로그램된다. 인접 메모리 셀들 중 하나 이상이 프로그램이될 때, 제1 메모리 셀로부터 판독된 전하 레벨은, 제1 메모리 셀에 커플링되어 있는 인접 메모리 셀들 상의 전하의 영향으로 인하여, 프로그램 상태와 다르게 나타난다. 인접 메모리 셀들로부터의 커플링이, 판독되는 겉보기 전하를, 저장된 데이터에 대한 판독 오류를 야기하기에 충분한 양만큼 시프트할 수 있다. 여기에서, 이 인접 플로팅 게이트 대 플로팅 게이트 효과는 '"인접 플로팅 게이트 전하 커플링 효과"의 일종으로서 참조될 수 있다.
인접 플로팅 게이트 상의 전하는 또한 메모리 셀의 플로팅 게이트 아래의 기판 내의 전도성 채널과 간섭할 수 있다. 구체적으로, 인접 플로팅 게이트 상의 전하는 또 다른 메모리 셀의 채널이 얼마나 세게 전류를 도통시킬지에 영향을 줄 수 있다. 따라서, 만약 인접 플로팅 게이트에 저장된 전하가 변한다면, 채널에서 동일한 전류를 생성하기 위하여 제어 게이트 상에 다른 메모리 셀에서보다 더 큰(또는 더 작은) 전압을 필요로 할 수 있다. 네트 효과(net impact)는 인접 플로팅 게이트에 저장된 전하에 있어서의 변화로 인하여, 메모리 셀 상에 저장된 전하의 양이 다르게 나타나는 것이다. 이 문제는 서로 다른 시간에 프로그램된 인접 메모리 셀들의 세트들 사이에서 가장 현저하다. 여기서, 이 인접 플로팅 게이트 대 채널 효과는 "인접 플로팅 게이트 전하 커플링 효과"의 또 다른 타입으로서 지칭될 수 있다.
메모리 셀들에서 또 다른 문제는 오버 타임 전하가 플로팅 게이트 근처의 유전체 내에 축적될 수 있다는 것이다. 예를 들어, 메모리 셀을 프로그래밍할 때, 전하가 메모리 셀의 플로팅 게이트 아래의 터널 산화물 내에 트랩(trap)될 수 있다. 메모리 셀의 소거는 상기 트랩된 전하를 완전히 제거할 수 없다. 각각의 프로그램/소거 사이클마다, 트랩 전하의 양이 증가한다.
메모리 셀들이 계속해서 사이즈가 축소됨에 따라, 메모리 셀들 사이의 공간의 관련된 감소는 인접한 플로팅 게이트 전하 커플링 효과를 증가시킬 수 있다. 프로그램/소거 사이클들의 수가 증가함에 따라, 인접 플로팅 게이트들 주변의 전하 트래핑은 플로팅 게이트 전하 커플링 효과를 악화시킨다. 많은 프로그램/소거 사이클들을 거치는 메모리 셀들에 대해, 큰 인접 플로팅 게이트 전하 커플링 효과는 임계 전압 범위들 사이의 차를 심각하게 줄어들게 한다. 예를 들어, "1"을 나타내는 임계 전압의 범위와 "0"을 나타내는 임계 전압의 범의 사이의 갭이 감소한다. 신뢰도를 보장하고 판독 에러를 방지하기 위하여, "1" 상태와 "0" 상태 사이에 특정 양의 임계 전압 분리가 존재해야 한다.
도 1은 NAND 스트링의 평면도이다.
도 2는 관련된 워드 라인들을 지닌 세개의 NAND 스트링들의 회로도이다.
도 3은 NAND 플래시 저장 소자들의 어레이의 블록도이다.
도 4는 메모리 어레이의 일 실시예를 도시하는 블록도이다.
도 5는 감지 블록의 일 실시예를 도시하는 블록도이다.
도 6a-6c는 예시적인 임계 전압 분포를 도시한다.
도 7a는 메모리 어레이 내의 메모리 셀들의 블록을 프로그래밍하는 프로세스의 일 실시예를 도시한다.
도 7b는 메모리 어레이 내의 메모리 셀들의 블록을 프로그래밍하는 프로세스의 일 실시예를 도시한다.
도 8a 및 8b는 홀수 및 짝수 워드 라인들 상에서 메모리 셀들을 프로그래밍한 후의 결과인 예시적인 패턴들을 도시한다.
도 9a는 SLC 및 MLC 블록들을 프로그래밍하는 프로세스의 일 실시예를 도시한다.
도 9b는 SLC 및 MLC 블록들을 프로그래밍하는 프로세스의 또 다른 실시예를 도시한다.
도 10은 체커보드 패턴으로 메모리 어레이 내의 메모리 셀들의 블록을 프로그래밍하는 프로세스의 흐름도의 일 실시예를 도시한다.
도 11a 및 11b는 홀수 및 짝수 워드 라인들 상에서 메모리 셀들을 프로그래밍한 후의 결과인 예시적인 체커보드 패턴을 도시한다.
도 12는 체커보드 패턴을 사용하여 SLC 및 MLC 블록들을 프로그래밍하는 프로세스의 일 실시예를 도시한다.
도 13은 메모리 셀 프로그래밍의 세부사항을 기술하는 흐름도이다.
도 14는 메모리 셀 소거의 세부사항을 기술하는 흐름도이다.
여기에서는, 높은 프로그램/소거 사이클 내구성(endurance)을 달성하는 방식으로 메모리 어레이들을 프로그래밍하는 방법이 개시된다. 본 방법은 워드 라인들 사이의 플로팅 게이트 전하 커플링 효과를 감소시키고, 이는 메모리 셀들의 내구성을 증가시킬 수 있다. 본 방법은 비트 라인들 사이의 플로팅 게이트 전하 커플링 효과를 감소시키며, 이는 메모리 셀들의 내구성을 증가시킬 수 있다. 본 방법은 임계 전압 분포 상태 사이의 넓은 윈도우를 제공한다. 일부 양상들에서, 본 방법은 MLC 블록들을 또한 포함하는 메모리 어레이 내의 SLC 블록들에 적용된다.
일 양상에서, 블록 내의 특정한 선택된 워드 라인들(WL)만이 프로그램된다. 다른 WL들은 소거로 남겨진다(프로그래밍되지 않음). 이는 WL-WL 플로팅 게이트 전하 커플링 효과를 줄이거나 감소시킨다. 처음에, 메모리 셀들의 전체 그룹(예를 들어, 블록)이 소거될 수 있다. WL이 프로그램될 때, 이웃 WL들(WLn-1과 WLn+1)은 프로그램되지 않고 모두 소거 상태로 유지된다. 이 예에서, "n"은 짝수, 또는 대안적으로, 홀수일 수 있다. 일 예로, 짝수 워드라인들만이 프로그램될 수 있다.짝수 워드 라인들 전체가 프로그램되고 데이터 블록이 새 데이터로 프로그램된 후, 블록이 소거된다. 블록을 소거할 때, 홀수 WL들 상의 메모리 셀들은 소거될 필요가 없으며, 이는 홀수 WL들 상의 메모리 셀들에 대한 스트레스를 줄여준다. 추후에, 홀수 WL들만이 프로그램된다.
일 양상은 SLC 블록들과 MLC 블록들을 구비한 메모리 어레이들을 동작시키는 것이다. 일 양상에서, 앞의 문단에서 논의된 홀수/짝수 프로그래밍이 SLC 블록들에 적용된다. 예를 들어, 몇개의 SLC 블록들 내의 짝수 WL들 상의 메모리 셀들이 데이터로 프로그램된 후, 데이터는 하나 이상의 MLC 블록들로 전송된다. 그후, SLC 블록들이 소거되고 SLC 블록들 내의 홀수 워드 라인들이 프로그램될 수 있다.
일 양상에서, 블록 또는 다른 유닛의 프로그래밍이 체커보드 패턴으로 수행된다. 예를 들어, 짝수 WL들 상에서, 짝수 메모리 셀들이 프로그램되고 홀수 WL들 상에서 홀수 메모리 셀들만이 프로그램된다. 나중에, 새 데이터가 블록 내에 저장될 때, 체커보드 패턴은, 짝수 WL들 상에서 홀수 메모리 셀들만이 프로그램되고 홀수 WL들 상에서 짝수 메모리 셀들만이 프로그램되게끔 예약된다. 이 프로그래밍 기법은, 비트 라인 대 비트 라인 플로팅 게이트 전하 커플링 효과뿐만아니라 WL-WL 플로팅 게이트 전하 커플링 효과들 모두를 감소시키거나 제거할 수 있다.
일 양상에서, 앞의 단락에서 논의된 체커보드 패턴 프로그래밍이 SLC 블록들에 적용된다. 예를 들어, 체커보드 패턴을 사용하여 몇개의 SLC 블록들이 프로그램된 후, 데이터가 하나 이상의 MLC 블록들로 전송된다. 그후, SLC 블록들이 소거 되고, SLC 블록들을 프로그래밍하기 위해 체커보드 패턴의 역(inverse)이 사용될 수 있다.
여기에서 기술된 기법들은 광범위한 메모리 어레이에 적용될 수 있다. 하기는 일 예시적인 NAND 구조이다. 그러나, 여기에서 기술된 기법들은 이예에 국한되는 것이 아니다. 플래시 메모리 시스템의 일 예는 NAND 구조를 사용하며, 상기 NAND 구조는 두개의 선택 게이트들 사이에 복수의 플로팅 게이트 트랜지스터들을 직렬로 배열한 것을 포함한다. 직렬 트랜지스터들 및 선택 게이트들은 NAND 스트링이라 칭해진다. 도 1은 1개의 NAND 스트링을 보여주는 평면도이다. 도 1에 도시된 NAND 스트링은 제1 (또는 드레인측) 선택 게이트(120)와 제2 (또는 소스측) 선택 게이트(122) 사이에서 샌드위치된 4개의 직렬 연결된 트랜지스터들(100, 102, 104, 106)을 포함한다. 선택 게이트(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)에 연결된다.
NAND 구조를 사용하는 플래시 메모리 시스템을 위한 일반적인 구조는 많은 NAND 스트링들을 포함할 것이다. 각각의 NAND 스트링은 선택 라인(SGS)에 의해 소스 선택 게이트에 연결되고 선택 라인(SGD)에 의해 제어되는 드레인 선택 게이트에 의해 그것의 연관된 비트 라인에 연결된다. 각각의 비트 라인 및 비트 라인 컨택을 통해 그 비트 라인에 연결되는 각각의 NAND 스트링(들)은 메모리 셀들의 어레이의 열들(columns)을 포함한다. 비트 라인들은 복수의 NAND 스트링들과 공유된다. 일반적으로, 비트 라인은 워드 라인들에 수직인 방향으로 NAND 스트링들의 상부에 이어져있으며 하나 이상의 감지 증폭기들에 연결된다.
도 2는 더 많은 NAND 스트링들을 가진 메모리 어레이의 3개의 NAND 스트링들(302, 304, 306)을 도시한다. 도 2의 NAND 스트링들 각각은 2개의 선택 트랜지스터들 및 4개의 메모리 셀들을 포함한다. 예를 들어, NAND 스트링(302)은 선택 트랜지스터들(320, 330), 및 메모리 셀들(322, 324, 326, 328)을 포함한다. 각각의 NAND 스트링은 그것의 선택 트랜지스터(즉, 선택 트랜지스터(330) 및 선택 트랜지스터(350))에 의해 소스 라인에 연결된다. 선택 라인 SGS는 소스측 선택 게이트들을 제어하는데 사용된다. 다양한 NAND 스트링들이, 선택 라인 SGD에 의해 제어되는 선택 트랜지스터들(320, 340, 등)에 의해 각각의 비트 라인들에 연결된다. 다른 실시예들에서, 선택 라인들은 반드시 공통적인 것일 필요는 없다. 워드 라인(WL3)이 메모리 셀(322) 및 메모리 셀(342)을 위한 제어 게이트들에 연결된다. 워드 라인(WL2)은 메모리 셀(324), 메모리 셀(344), 및 메모리 셀(352)을 위한 제어 게이트들에 연결된다. 워드 라인 WL1은 메모리 셀(326)과 메모리 셀(346)을 위한 제어 게이트들에 연결된다. 워드 라인(WL0)이 메모리 셀(328)과 메모리 셀(348)을 위한 제어 게이트들에 연결된다. 알 수 있는 바와 같이, 각각의 비트 라인 및 각각의 NAND 스트링은 메모리 셀들의 어레이의 열들을 포함한다. 워드 라인들(WL3, WL2, WL1 및 WL0)은 어레이의 행들을 포함한다.
NAND 스트링은 도 2에 도시된 것보다 적거나 많은 메모리 셀들을 가질 수 있음을 알아야 한다. 예를 들어, 일부 NAND 스트링들은 8개, 16개, 32개, 64개, 128개 등의 메모리 셀들을 포함할 것이다. 여기에서의 논의는 NAND 스트링 내의 임의의 특정 수의 메모리 셀들로 제한된 것이 아니다. 또한, 워드 라인은 도 2에 도시된 것보다 더 많거나 적은 메모리 셀들을 가질 수 있다. 예를 들어, 워드 라인은 천 또는 수천개의 메모리 셀들을 포함할 수 있다. 여기에서의 논의는 워드 라인 내의 임의의 특정 수의 메모리 셀들로 제한된 것이 아니다.
각각의 메모리 셀은 데이터(아날로그 또는 디지털)를 저장할 수 있다. 1비트의 디지털 데이터를 저장할 때, 메모리 셀의 가능한 임계 전압들의 범위는 논리 데이터 "1" 및 "0"이 할당된 두개의 범위들로 분할된다. NAND 타입 플래시 메모리의 일 예에서, 메모리 셀이 소거된 후 임계 전압은 음이고, 논리 "1"로서 정의된다. 프로그래밍 후의 임계 전압은 양이고 논리 "0"으로서 정의된다. 임계 전압이 음이고 제어 게이트에 0 볼트를 인가함으로써 판독이 시도될 때, 메모리 셀은 턴온되어 논리 1이 저장되어 있음을 나타낼 것이다. 임계 전압이 양이고 제어 게이트에 0 볼트를 인가함으로써 판독 동작이 시도될 때, 메모리 셀은 턴온되지 않을 것이며, 이는 논리 0이 저장됨을 나타낸다.
복수 레벨들의 데이터를 저장하는 경우에, 가능한 임계 전압들의 범위는 데이터 레벨들의 수로 분할된다. 예를 들어, 4개 레벨들의 정보가 저장되면(2비트의 데이터), 데이터 값들 "11", "10", "01", 및 "00"에 할당된 4개의 임계 전압 범위들이 존재할 것이다. NAND 타입 메모리의 일 예에서, 소거 동작 후 임계 전압은 음이고, "11"로서 정의된다. 양의 임계 전압들은 "10", "01", 및 "00"의 데이터 상태들에 대해 사용된다. (예를 들어, 3 비트의 데이터에 대해) 정보의 8 레벨들(또는 상태들)가 저장되면, 데이터 값들 "000", "001", "010", "011" "100", "101", "110" 및 "111"에 할당되는 8개의 임계 전압 범위들이 존재할 것이다.
메모리 셀에 프로그램된 데이터와 셀의 임계 전압 레벨들 사이의 구체적인 관계는 셀들에 대해 채택된 데이터 엔코딩 기법에 의존한다. 예를 들어, 그 전체가 참조로서 본 명세서에 통합되는 미국 특허 제6,222,762호 및 미국 특허 출원 공개 제2004/0255090호는, 복수 상태 플래시 메모리 셀들에 대한 다양한 데이터 엔코딩 기법들을 기술한다. 일 실시예에서, 그레이 코드 할당(Gray code assignment)을 사용하여 데이터 값들이 임계 전압 범위들에 할당되며, 따라서 플로팅 게이트의 임계 전압이 그것의 이웃하는 물리적 상태로 잘못 시프트되면, 단지 1 비트만이 영향을 받을 것이다. 일부 실시예들에서, 데이터 엔코딩 기법이 서로 다른 워드 라인들에 대해 변경될 수 있거나, 데이터 엔코딩 기법이 시간에 걸쳐 변경될 수 있거나, 또는 랜덤 워드 라인들의 데이터 비트들이 반전되거나 그렇지 않다면 데이터 패턴 민감도(data pattern sensitivity)를 줄이기 위하여 랜덤화되고 심지어 메모리 셀들을 마모(wear)시킬 수 있다.
NAND 타입 플래시 메모리들 및 그것들의 동작의 관련 예들은 미국 특허 제5,570,315호, 미국 특허 제5,774,397호, 미국 특허 제6,046,935호, 미국 특허 제6,456,528호, 및 미국 특허 공개 제US2003/0002348호에 제공되며, 이것들 모두는 참조로서 본 명세서에 포함된다. 본 명세서의 개시는 NAND에 부가하여 다른 타입의 플래시 메모리에 적용될 수 있으며 또한 다른 타입의 비휘발성 메모리에 적용될 수 있다. 예를 들어, 미국 특허 제5,095,344; 5,172,338; 5,890,192 및 6,151,248은 NOR 타입 플래시 메모리들을 기술하며 그 전체가 본 명세서에 참조로서 포함된다.
NAND 플래시 메모리에 부가하여, 다른 타입의 비휘발성 저장 디바이스들이 또한 사용될 수 있다. 예를 들어, 기본적으로 (플로팅 게이트 대신에) 질화물 층 내에 전하 트래핑을 사용하는 메모리 셀인, 소위 TANOS 구조(실리콘 기판위의 TaN-Al203-SiN-SiO2의 적층 구조로 구성됨)가 또한 본 발명과 함께 사용될 수 있다. 플래시 EEPROM 시스템에서 유용한 또 다른 타입의 메모리 셀은 비휘발성 방식으로 전하를 저장하기 위하여 전도성 플로팅 게이트 대신에 비전도성 유전체 물질을 사용한다. 그러한 셀은 IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95 의 "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device"(Chan et al.)에 의한 문헌에서 기술된다. 실리콘 산화물, 실리콘 질화물 및 실리콘 산화물("ONO")로 형성된 3중 층 유전체가 메모리 셀 채널 위에서 반도체 기판의 표면과 전도성 제어 게이트와 사이에 샌드위치된다. 셀은 전자들을 셀 채널로부터 질화물로 주입하는 것에 의해 프로그래밍되며, 여기서 상기 전자들이 트래핑되고 제한된 영역에 저장된다. 이 저장된 전하는 그후 검출가능한 방식으로 셀의 채널 부분의 임계 전압을 변경한다. 메모리 셀은 열 정공을 질화물로 주입함으로써 소거된다. 도핑된 폴리실리콘 게이트가 메모리 셀 채널의 일부에 걸쳐 연장되어 개별적인 선택 트랜지스터를 형성하는 분리-게이트 구조(split-gate configuration)에서의 유사한 메모리 셀을 기술하는 IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501의 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application"(Nozaki et al.)을 참조하도록 한다. 위의 두 문헌들은 그 전체가 본 명세서에 참조로서 통합된다. 본 명세서에 참조로서 포함되는, IEEE Press, 1998의 "Nonvolatile Semiconductor Memory Technology"(William D. Brown, Joe E. Brewer)의 목차 1.2에 제시된 프로그래밍 기법들은, 또한 유전체 전하-트래핑 디바이스들에 적용가능한 섹션으로 기술된다. 다른 타입의 메모리 디바이스들이 또한 사용될 수 있다.
도 3은 하나 이상의 메모리 다이 또는 칩들(212)을 포함하는 비휘발성 저장 디바이스(210)를 도시한다. 메모리 다이(212)는 메모리 셀들(200)의 (2차원 또는 3차원) 어레이, 제어 회로(220), 및 판독/기록 회로들(230A, 230B)을 포함한다. 일 실시예에서, 다양한 주변 회로들에 의한 메모리 어레이(200)로의 액세스가, 어레이의 대향 측들 상에서, 대칭적인 방식으로 구현되어, 각 측의 액세스 라인들 및 회로의 밀도가 절반으로 줄어든다. 판독/기록 회로들(230A, 230B)은 복수의 감지 블록들(300)을 포함하는바, 상기 감지 블록들(300)은 메모리 셀들의 페이지를 병렬로 판독 또는 프로그래밍될 수 있게 해준다. 메모리 어레이(200)는 행 디코더들(240A, 240B)을 통해 워드 라인들에 의해, 그리고 열 디코더들(242A, 242B)을 통해 비트 라인들에 의해 어드레스가능하다. 일반적인 실시예에서, 제어기(244)는 하나 이상의 메모리 다이(212)와 동일한 메모리 디바이스(210)(예를 들어, 착탈가능한 저장 카드 또는 패키지)에 포함된다. 명령들 및 데이터가 라인들(232)을 통해 호스트와 제어기(244) 사이에서 그리고 라인들(234)를 통해 상기 제어기와 하나 이상의 메모리 다이(212) 사이에서 전송된다. 일 실시예는 복수의 칩들(212)을 포함할 수 있다.
제어 회로(220)는 판독/기록 회로들(230A, 230B)과 협력하여 메모리 어레이(200)에 대해 메모리 오퍼레이션들을 수행한다. 제어 회로(220)는 상태 머신(222), 온-칩 어드레스 디코더(224) 및 전력 제어 모듈(226)을 포함한다. 상태 머신(222)은 메모리 오퍼레이션들에 대한 칩-레벨 제어를 제공한다. 온-칩 어드레스 디코더(224)는 호스트 또는 메모리 제어기에 의해 사용되는 어드레스를 디코더들(240A, 240B, 242A, 242B)에 의해 사용되는 하드웨어 어드레스 사이에서 어드레스를 변환하기 위한 어드레스 인터페이스를 제공한다. 전력 제어 모듈(226)은 메모리 오퍼레이션들 중에 워드 라인들과 비트 라인들에 공급된 전력 및 전압들을 제어한다. 일 실시예에서, 전력 제어 모듈(226)은 공급 전압보다 큰 전압들을 생성할 수 있는 하나 이상의 전하 펌프들(charge pumps)을 포함한다.
메모리 어레이(200)는 MLC 블록 영역(200a)과 SLC 블록 영역(200b)을 포함한다. SLC 블록 및 MLC 블록은 사용자 데이터를 위한 동일한 수의 메모리 셀들을 가질 수 있다. 그러나, MLC 블록이 셀당 복수의 비트들을 저장하므로, MLC 블록은 SLC 블록의 2, 3, 4배 등과 같은 많은 데이터를 저장할 수 있다. SLC 블록들과 MLC 블록들이 동일한 수의 메모리 셀들을 가질 것이 요구되는 것은 아니다. 일반적으로, MLC 블록들에 저장된 데이터는 더 높은 신뢰성을 제공하기 위하여 SLC 블록들에서 사용되는 것보다 엄격한 ECC 알고리즘(stronger ECC algorithm)을 사용하여 처리된다. 그러한 엄격한 ECC는 일반적으로 SLC 블록들에서는 요구되지 않는다. SLC 블록들을 가진 메모리 어레이(200)의 영역(200b)은 "SLC 영역(200b)"이라 칭해질 것이며 MLC 블록들을 가진 메모리 어레이(200)의 영역(200A)는 "MLC 영역(200a)"으로 칭해질 것이다. 일부 실시예들에서, SLC 블록 영역(200b)과 MLC 블록 영역(200a)이 선정의된 영역들이어야 하는 것은 아니다. 일부 실시예들에서, 메모리 어레이(200)의 모든 블록들이 SLC 블록 또는 MLC 블록으로 사용될 수 있다. 예를 들어, 블록이 한 때는 SLC 블록으로 사용되고 또 다른 때에는 MLC 블록으로서 사용될 수 있다. 다른 실시예들에서, 제어기(244)는 특정 블록들을 SLC 및 MLC 블록들로 각각 정의한다.
일부 실시예들에서, 제어기(244)가 사용자 데이터를 수신할 때, 상기 사용자 데이터는 먼저 하나 이상의 SLC 블록들에 저장된다. 그러나, 제어기(244)가 SLC 블록 내의 모든 메모리 셀들을 반드시 프로그램해야 하는 것은 아니다. 일 양상에서, 제어기(244)는 선택된 워드 라인들만(예를 들어, 홀수 WL들만 또는 짝수 WL들만)을 프로그램한다. 일 양상에서, 제어기(244)는 체커보드 패턴으로 메모리 셀들을 프로그램한다. 어느 시점에, 제어기(244)는 SLC 블록들에 저장된 사용자 데이터를 하나 이상의 MLC 블록들로 전송할 수 있다. 예로서, MLC 블록들 각각이 SLC 블록이 저장할 수 있는 것보다 2배 많이 저장한다면, 제어기(244)는 4개의 SLC 블록들이 프로그램될 때까지 대기한 후 그 데이터를 판독하고, ECC 엔코딩을 수행하고, 그리고 그 데이터를 단일 MLC 블록에 저장할 수 있다. MLC 블록으로의 전송 전에 SLC 블록 내의 메모리 셀들 전체가 프로그램되는 것이 요구되는 것은 아님에 주목하여야 한다. 또한, 이 기법은 결과적으로 데이터가 SLC 블록들 보다 MLC 블록들에 더 오랜 기간 저장되게 하나, 이것이 반드시 요구되는 것은 아님에 주목하여야 한다.
일 실시예에서, 제어 회로(220), 전력 제어 회로(226), 디코더 회로(224), 상태 머신 회로(222), 디코더 회로(242A), 디코더 회로(242B), 디코더 회로(240A), 디코더 회로(240B), 판독/기록 회로들(230A), 판독/기록 회로들(230B), 및/또는 제어기(244) 중 하나 또는 이들의 임의의 조합이 하나 이상의 관리 회로들로서 칭해질 수 있다.
도 4는 메모리 셀 어레이(200)의 예시적인 구조를 도시한다. 일 실시예에서, 메모리 셀들의 어레이는 메모리 셀들의 M개의 블록들로 분할된다. 플래시 EEPROM 시스템들에서 일반적인 바와 같이, 블록은 소거의 단위이다. 즉, 각각의 블록은 함께 소거되는 최소 개수의 메모리 셀들을 포함한다. 각각의 블록은 일반적으로 다수의 페이지들로 분할된다. 페이지는 프로그래밍의 단위이다. 하나 이상의 데이터 페이지들은 일반적으로 메모리 셀들의 일 행에 저장된다. 페이지는 하나 이상의 섹터들을 저장할 수 있다. 섹터는 사용자 데이터 및 오버헤드 데이터를 포함한다. 오버헤드 데이터는 일반적으로 섹터의 사용자 데이터로부터 계산된 오류 정정 코드(ECC)를 포함한다. (하기에서 기술되는) 제어기의 일부분은 데이터가 어레이 내에 프로그래밍될 때 ECC를 계산하고, 또한 데이터가 어레이로부터 판독될 때 그것을 체크한다. 대안적으로, ECC들 및/또는 다른 오버헤드 데이터는 그것들의 관련된 사용자 데이터와 다른 페이지들, 또는 심지어 다른 블록들에 저장된다. 사용자 데이터의 섹터는 일반적으로 자기 디스크 드라이브들의 섹터의 사이즈에 대응하는 512 바이트이다. 8 페이지부터 예를 들어, 32, 62, 128 또는 그 이상의 페이지들에 이르는 다수의 페이지들은 블록을 형성한다. 서로 다른 사이즈의 블록들 및 배열들이 또한 사용될 수 있다.
또 다른 실시예에서, 비트 라인들이 홀수 비트 라인들 및 짝수 비트 라인들로 분할된다. 홀수/짝수 비트 라인 구조에서, 공통 워드 라인을 따라 있으며 홀수 비트 라인들에 연결된 메모리 셀들이 한번에 프로그래밍되고, 한편 공통 워드 라인을 따라 있으며 짝수 비트 라인들에 연결된 메모리 셀들이 또 다른 시간에 프로그램된다.
도 4는 메모리 어레이(200)의 블록(i)의 세부 정보들을 도시한다. 블록(i)는 X+1 비트 라인들 및 X+1 NAND 스트링들을 포함한다. 블록 i는 또한 64개의 데이터 워드 라인들(WL0-WL63), 2개의 더미 워드 라인들(WL_d0 및 WL_d1), 드레인측 선택 라인(SGD) 및 소스측 선택 라인(SGS)을 포함한다. 각각의 NAND 스트링의 일 단자는 (선택 라인(SGD)에 연결된) 드레인 선택 게이트를 통해 대응하는 비트 라인에 연결되고, 그리고 또 다른 단자는 (선택 라인(SGS)에 연결된) 소스 선택 게이트를 통해 소스 라인에 연결된다. 64개의 데이터 워드 라인들 및 2개의 더미 워드 라인들이 존재하므로, 각각의 NAND 스트링은 64개의 데이터 메모리 셀들 및 2개의 더미 메모리 셀들을 포함한다. 다른 실시예들에서, NAND 스트링들이 64개보다 많거나 적은 데이터 메모리 셀들 및 더 많거나 적은 더미 메모리 셀들을 가질 수 있다. 데이터 메모리 셀들은 사용자 또는 시스템 데이터를 저장할 수 있다. 더미 메모리 셀들은 일반적으로 사용자 또는 시스템 데이터를 저장하는데 사용되지 않는다. 일부 실시예들은 더미 메모리 셀들을 포함하지 않는다.
도 5는 감지 모듈(480)으로 참조된 코어 부분, 및 공통 부분(490)으로 파티셔닝된 개별 감지 블록(300)의 블록도이다. 일 실시예에서, 각각의 비트 라인을 위한 개별적인 감지 모듈(480)과, 복수의 감지 모듈들(480)의 세트를 위한 하나의 공통 부분(490)이 존재할 것이다. 일 실시예에서, 감지 블록(300)은 하나의 공통 부분(490) 및 8개의 감지 모듈들(480)을 포함할 것이다. 그룹 내에서 감지 모듈들(480) 각각은 데이터 버스(472)를 통해 관련된 공통 부분(490)과 통신할 것이다. 보다 자세한 사항들에 대해서는, 그 전체가 본 명세서에 참조로써 포함되며 발명의 명칭이 "Non-volatile memory and method with shared processing for an affregate of read/write cirtuits"이고 2004년 12월 29일 출원된 미국 특허 출원 공개 제2006/0140007호를 참조하기로 한다.
감지 모듈(480)은 연결된 비트 라인의 전도 전류(conduction current)가 소정의 임계 레벨을 초과하는지 또는 그 미만인지를 결정하는 감지 회로(470)를 포함한다. 일부 실시예들에서, 감지 모듈(480)은 감지 증폭기로서 일반적으로 참조되는 회로를 포함한다. 감지 모듈(480)은 또한 연결된 비트 라인에 대한 전압 조건(voltage condition)을 설정하기 위하여 사용되는 비트 라인 래치(482)를 포함한다. 예를 들어, 비트 라인 래치(482)에 래치된 소정의 상태는 결과적으로 연결된 비트 라인이 프로그램 금지를 나타내는 상태(예를 들어, Vdd)로 풀링되게 할 것이다.
공통 부분(490)은 프로세서(492), 데이터 래치들의 세트(494) 및 데이터 래치들(494)의 세트와 데이터 버스(420) 사이에 연결된 I/O 인터페이스(496)를 포함한다. 프로세서(492)는 연산을 수행한다. 예를 들어, 프로세서의 기능들 중 하나는 감지된 메모리 셀에 저장된 데이터를 결정하고 상기 결정된 데이터를 데이터 래치들의 세트 내에 저장하는 것이다. 데이터 래치들(494)의 세트는 판독 오퍼레이션 동안에 프로세서(492)에 의해 결정된 데이터 비트들을 저장하는데 사용된다. 상기 세트는 또한 프로그램 오퍼레이션 동안에 데이터 버스(420)로부터 유입된(imported) 데이터 비트들을 저장하는데 사용된다. 상기 유입된 데이터 비트들은 메모리에 프로그래밍될 기록 데이터를 나타낸다. I/O 인터페이스(496)는 데이터 래치들(494)과 데이터 버스(420) 사이의 인터페이스를 제공한다.
판독 또는 감지 중에, 시스템의 오퍼레이션은 어드레싱된 셀에 서로 다른 제어 게이트 전압들을 공급하는 것을 제어하는 상태 머신(222)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응하는 다양한 소정의 제어 게이트 전압들을 거침(step through)에 따라, 상기 감지 모듈(480)은 이 전압들 중 하나에 트립(tripping)할 수 있고 버스(472)를 통해 감지 모듈(480)로부터 프로세서(492)로 출력이 제공될 것이다. 그 시점에, 프로세서(492)는 감지 모듈의 트리핑 이벤트(들)(tripping event(s))과 입력 라인들(493)을 통해 상기 상태 머신으로부터 인가된 제어 게이트 전압에 관한 정보를 고려하여 결과적인 메모리 상태를 결정한다. 그후, 그것은 메모리 상태에 대한 바이너리 엔코딩을 연산하고 결과적인 데이터 비트들을 데이터 래치들(494)에 저장한다. 코어 부분의 또 다른 실시예에서, 비트 라인 래치(482)는 감지 모듈(480)의 출력을 래치하는 래치로서 그리고 또한 위에 설명된 것과 같은 비트 라인 래치로서의 두가지 역할(double dudy)을 한다.
일부 실시예들은 복수의 프로세서들(492)을 포함할 것으로 예측된다. 일 실시예에서, 각각의 프로세서(492)는 각각의 출력 라인들이 함께 와이어드-OR된것과 같은 출력 라인(도 5에 도시되지 않음)을 포함할 것이다. 일부 실시예들에서, 출력 라인들은 와이어드-OR 라인에 연결되기 전에 인버팅된다. 이 구성은 프로그램 검증 프로세스 동안에 언제 프로그래밍 프로세스가 완료되었는지에 대한 빠른 결정을 가능하게 하는데, 그 이유는, 와이어드-OR 라인을 수신하는 상태 머신이, 프로그래밍되고 있는 모든 비트들이 요구되는 레벨에 언제 도달했는지를 결정할 수 있기 때문이다. 예를 들어, 각각의 비트가 그것의 요구되는 레벨에 도달했을 때, 그 비트에 대한 논리 0이 와이어드-OR 라인으로 송신(또는 데이터 1이 반전)될 것이다. 모든 비트들이 데이터 0을 출력할 때(또는 데이터 1이 반전될 때), 상태 머신은 프로그래밍 프로세스를 종료할 것을 인지한다. 각각의 프로세서가 8개의 감지 모듈들과 통신하는 실시예들에서, (일부 실시예들의) 상태 머신은 와이어드-OR 라인을 8번 판독할 필요가 있거나, 또는 로직이 프로세서(492)에 부가되어, 상태 머신이 단지 와이어드-OR 라인을 한번만 판독하면 되게끔, 관련 비트 라인들의 결과들을 축적한다.
프로그램 또는 검증 동안, 프로그래밍될 데이터는 데이터 버스(420)로부터 데이터 래치들(494)의 세트에 저장된다. 상태 머신의 제어 하에서, 프로그램 오퍼레이션은 어드레스된 메모리 셀들의 제어 게이트들에 인가되는 (증가되는 크기를 가진) 일련의 프로그래밍 전압 펄스들을 포함한다. 각각의 프로그래밍 펄스에는, 메모리 셀이 요구된 상태로 프로그래밍되었는지를 판단하기 위한 검증 프로세스가 뒤따른다. 프로세서(492)는 요구되는 메모리 상태와 관련하여 검증된 메모리 상태를 모니터링한다. 두 상태가 일치할 때, 프로세서(492)는 비트 라인이 프로그램 금지를 나타내는 상태로 풀(pull)되도록 비트 라인 래치(482)를 설정한다. 이것은 셀이 상기 셀의 제어 게이트 상에서 프로그래밍 펄스의 대상이된다하더라도 비트 라인에 결합된 셀들이 더 프로그래밍되는 것을 방지해준다. 다른 실시예들에서, 프로세서는 처음에 비트 라인 래치(482)를 로딩하고, 감지 회로는 검증 프로세스 중에 그것을 금지 값으로 설정한다.
데이터 래치 스택(494)은 감지 모듈에 대응하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(480) 마다 3-5(또는 또 다른 개수의) 데이터 래치들이 존재한다. 일 실시예에서, 래치들은 각각 1 비트이다. 일부 실시예들에서(반드시 요구되는 사항은 아님), 데이터 래치들이 시프트 레지스터로서 구현되어 그 내부에 저장된 병렬 데이터가 데이터 버스(420)를 위한 직렬 데이터로 변환되거나 그 반대의 경우도 가능하다. 바람직한 일 실시예에서, m 개의 메모리 셀들의 판독/기록 블록에 대응하는 모든 데이터 래치들이 함께 링크되어 블록 시프트 레지스터를 형성할 수 있으며, 따라서 데이터 블록이 직렬 전송(serial transfer)에 의해 입력 또는 출력될 수 있다. 특히, 판독/기록 모듈들의 뱅크가 조정(adapt)되어, 그것의 데이터 래치들의 세트 각각은, 그것들이 마치 전체 판독/기록 블록을 위한 시프트 레지스터의 부분인 것처럼, 데이터를 데이터 버스 내로 또는 데이터 버스 외부로 순차적으로 시프트할 것이다.
판독 오퍼레이션들 및 감지 증폭기들에 대한 추가적인 정보는 (1) 미국 특허 제7,196,931호 "Non-Volatile Mmoery And Methor With Reduced Source Line Bias Errors,"; (2) 미국 특허 제7,023,736호 "Non-Volatile Memory And Method with Improved Sensing,"; (3) 미국 특허 출원 공개 제2005/0169082호; (4) 미국 특허 제7,196,928호 "Compensating for Coupling During Read Operations of Non-volatile Memory," 및 (5) 미국 특허 출원 공개 제2006/0158947호 "Reference Sense Amplifier For Non-Volatile Memory"(2006년 6월 20일 공개) 에서 찾아볼 수 있다. 위에 열거된 5개의 특허 문헌들은 그 전체가 여기에 참조로서 포함된다.
(검증을 사용한) 성공적인 프로그래밍 프로세스의 종료시, 메모리 셀들의 임계 전압들은 프로그램된 메모리 셀들을 위한 하나 이상의 임계 전압들 분포들 또는 소거된 메모리 셀들을 위한 임계 전압들의 분포 내에 적절하게 있어야 한다. 도 6a는 각각의 메모리 셀이 데이터의 4 비트들을 저장할 때 메모리 셀 어레이에 대한 데이터 상태들에 대응하는 예시적인 Vt 분포들을 도시한다. 도 6b는 각각의 메모리 셀이 4 비트의 데이터를 저장할 때 메모리 셀 어레이에 대한 데이터 상태들에 대응하는 예시적인 Vt 분포들을 도시한다. 그러한 분포는 MLC 블록을 프로그래밍하는데 사용될 수 있다. 그러나, 다른 실시예들은 메모리 셀당 4개보다 더 많거나 적은 데이터 비트들을 사용할 수 있다. 도 6b는 데이터 상태들(0-15)에 대응하는 16개의 Vt 분포들을 보여준다. 일부 실시예들에서, 상태 0의 임계 전압들은 음이고 상태들 1-15의 임계 전압들은 양이다. 그러나, 상태들 1-15중 하나 이상의 임계 전압들이 음일 수 있다.
각각의 데이터 상태들(0-15) 사이에는 메모리 셀들로부터 데이터를 판독하기 위하여 사용되는 판독 기준 전압들이 존재한다. 예를 들어, 도 6b는 데이터 상태들 0과 1 사이의 판독 기준 전압 Vr1, 및 데이터 상태들 1과 2 사이의 판독 기준 전압 Vr2를 보여준다. 주어진 메모리 셀의 임계 전압이 각각의 판독 기준 전압들보다 크거나 작은지를 테스트함으로써, 시스템은 메모리 셀이 어떤 상태에 있는지를 결정할 수 있다.
각각의 데이터 상태(0-15)의 낮은 에지(lower edge)에 또는 그 부근에는 검증 기준 전압들이 존재한다. 예를 들어, 도 6b는 상태 1에 대한 Vv1 및 상태 2에 대한 Vv2를 보여준다. 메모리 셀들을 주어진 상태로 프로그래밍할 때, 시스템은 그 메모리 셀들이 검증 기준 전압 이상의 임계 전압을 가지는지를 테스트할 것이다.
도 6c는 데이터 상태들 0-15에 대응하는 Vt 분포들의 또 다른 실시예를 도시하는바, 상기 Vt 분포들은, 오류 정정 알고리즘이 오류있는 셀들의 특정 퍼센티지를 처리할 수 있으므로, 부분적으로 오버랩될 수 있다. 또한, 소스를 통한 바디 효과 또는 바디 바이어싱이 음의 임계 전압을 측정가능한 양의 범위로 시프트하는데 사용되므로, Vt 축은 제어 게이트들에 인가된 실제 전압으로부터 오프셋(offset)될 수 있음에 주목하여야 한다. 또 다른 주목할 점은 도시된 16개의 상태들이 동일한 간격/폭을 가지는 것과 대조적으로, 데이터 리텐션 손실에 대한 가변 감수성(susceptibility) 양을 수용하기 위하여 다양한 상태들이 서로 다른 폭/간격을 가질 수 있다는 것이다. 일부 실시예들에서, 상태들 0 및/또는 15는 다른 상태들보다 넓다.
다시 도 6a를 참조하면, 상태 0은 SLC 블록 내의 모든 메모리 셀들을 소거한 것의 결과인 소거 분포일 수 있다. 소거 검증 전압은 명시적으로 도시되지 않으나 소거 분포의 우측 경계부(right edge)에 있을 수 있다. SLC 블록이 프로그램될 때, 시스템은 선택된 메모리 셀들의 임계 전압을 분포 1로 이동시킨다. 시스템은 상태 1에 대해 메모리 셀들이 Vv의 임계 전압으로 프로그램되는지를 검증한다. 프로그래밍이 완료된 후, 시스템은 메모리 셀들의 임계 전압을 Vr과 비교함으로써 메모리 셀들을 판독한다.
도 7a는 메모리 어레이(200)의 메모리 셀들의 블록을 프로그래밍하는 방법(700)의 흐름도의 일 실시예이다. 일 실시예에서, 방법(700)은 SLC 블록들에 적용되나 MLC 블록들에는 적용되지 않는다. 그러나, 방법(700)은 또한 MLC 블록들에 적용될 수 있다.
단계(702)에서, 메모리 어레이 내의 메모리 셀들의 블록이 소거된다. 일 양상에서, 상기 블록이 SLC 블록이나, 방법(700)은 SLC 블록들에 국한된 것은 아니다. 따라서, 일 양상에서, 상기 블록은 MLC 블록이다. 메모리 셀들의 블록을 소거하는 것에 대한 세부사항은 도 15의 논의와 관련하여 하기에서 논의된다. 단계(702)에서, 블록 내의 모든 메모리 셀들이 소거된다.
단계(704)에서, 짝수 워드 라인들과 관련된 메모리 셀들이 프로그램된다. 그러나, 홀수 워드 라인들 상의 메모리 셀들은 소거 상태로 유지된다(프로그램되지 않는다). 도 8a는 짝수 워드 라인들 상의 메모리 셀들을 프로그래밍(그러나 홀수 워드 라인들 상의 메모리 셀들을 소거 상태로 유지함)한 후의 예시적인 패턴을 도시한다. 점선의 원으로 둘러싸여 있는 메모리 셀들은 데이터로 프로그램된 메모리 셀들이다. 도 8a에서, WL1, WL3 및 WL5 상에서 메모리 셀들은 모두 그것들이 소거상태로 유지됨을 표시하는 "0"을 가진다. WL0, WL2 및 WL4 상의 메모리 셀들은 "1" 또는 "0"을 가지는 바, 이는 그 메모리 셀들이 데이터로 프로그램되었음을 나타낸다. 여기에서, 표현 "메모리 셀들의 그룹을 프로그래밍", "메모리 셀들의 그룹에 데이터를 프로그래밍", " 프로그램된 워드 라인" 또는 이와 유사한 표현들은 메모리 셀들의 임계 전압이 데이터를 나타내기 위한 적절한 레벨로 설정되는 것을 의미하는 것으로 이해될 것이다. 데이터를 메모리 셀에 프로그래밍하기 위해서 임계 전압이 변경될 필요가 없는 일부 메모리 셀들이 있을 수 있음이 이해될 것이다. 예를 들어, WL0, WL2, WL4 상의 메모리 셀들 중의 일부는 그것들의 임계 전압을 소거 임계 전압(예를 들어, 도 6a에서 상태 0)으로부터 프로그램 임계 전압(programmed threshold voltage)(예를 들어, 도 6a의 상태 1)으로 변경하였다. 그러나, WL0, WL2, WL4 상의 일부 메모리 셀들은 소거 임계 전압(예를 들어, 도 6a의 상태 0)으로 유지되어 바이너리 "0"을 나타낸다. 소거 상태가 또한 바이너리 "1"을 나타낼 수 있음에 주목하여야 한다. 또한 프로그래밍이 임계 전압을 6b 및 도 6c의 상태들 2-15 중 임의의 상태와 같은 또 다른 상태로 변경하는 것을 포함할 수 있음에 주목하여야 한다. 다른 말로하면, 블록은 MLC 블록일 수 있다. 일반적으로, 블록 내에는 더 많은 워드 라인들이 있을 것이다. 예를 들어, 64개 이상의 워드 라인들이 있을 수 있다. 또한, 블록 내에는 일반적으로 더 많은 비트 라인들이 존재한다. 예를 들어, 수천개의 비트 라인들이 있을 수 있다.
단계(706)에서, 적어도 짝수 워드 라인들 상의 메모리 셀들이 소거된다. 단계(702)에서의 완전한 블록 소거 후 홀수 워드 라인들 상의 메모리 셀들이 프로그램되지 않았으므로, 이 메모리 셀들은 소거될 필요가 없다. 선택된 워드 라인들 상의 메모리 셀들 소거에 대한 세부사항은 도 14와 관련하여 논의된다. 일부 실시예들에서, 짝수 워드 라인들 상의 메모리 셀들은 정규 방식(normal manner)으로 소거되는 반면, 홀수 워드 라인들 상의 메모리 셀들은 단지 약하게 소거(weakly erase)된다. 약한 소거(weak erase)는 하기에서 더 자세히 논의된다. 소거는 다양한 이벤트들(events)에 의해 트리거될 수 있다. 일 양상에서, SLC 블록들은, 하나 이상의 MLC 블록들로의 전송을 보장하기에 충분히 프로그램될 때까지 프로그램된다. MLC 블록들로의 데이터 전송 후, SLC 블록들 내의 데이터가 소거될 수 있다. 소거는 또한, 호스트가 제어기(244)에 블록 내의 모든 데이터가 소거되거나 새 데이터로 기록될 것임으로 나타내는 명령을 송신함으로써 트리거될 수 있다. 따라서, 블록으로부터의 데이터가 소거 전에 또 다른 블록으로 전송될 것이 요구되지 않는다. 특정 워드 라인들(예를 들어, 단지 짝수 워드 라인들) 상의 메모리 셀들을 선택적으로 소거하는 것이 도 14와 관련하여 논의된다.
단계(708)에서, 홀수 워드 라인들 상의 메모리 셀들이 프로그램된다. 그러나, 짝수 워드 라인들 상의 메모리 셀들은 소거 상태로 유지된다(프로그램되지 않음). 도 8b는 홀수 워드 라인들 상의 메모리 셀들을 프로그래밍한 후(그러나, 짝수 워드 라인들 상의 메모리 셀들은 소거로 유지됨)의 결과인 예시적인 패턴을 도시한다. 도 8b에서, WL0, WL1, 및 WL3에 대해 메모리 셀들은 모두 '0"을 가지며, 이는 상기 메모리 셀들이 소거된 것임을 나타낸다. WL1, WL3 및 WL5 상의 메모리 셀들은 그 메모리 셀들이 프로그램되었음을 나타내는 "1" 또는 "0"을 가진다. 예를 들어, 메모리 셀들 중 일부는 그것들의 임계 전압을 소거 임계 전압(도 6a의 상태 0)으로부터 프로그램 상태(예를 들어, 도 6a의 상태 1)로 변경하였다. 프로그래밍은 임계 전압을 도 6b 및 6c에서의 상태들(2-15) 중 임의의 상태와 같은 또 다른 상태로 변경하는 것을 포함할 수 있음에 주목하여야 한다.
단계(710)에서, 적어도 홀수 워드 라인들 상의 메모리 셀들이 소거된다. 이는 짝수 워드 라인들에 대한 단계(706)에서와 유사하며 상세하게 논의되지 않을 것이다. 홀수, 그리고 짝수, 그리고 홀수, 그리고 짝수 워드 라인들을 프로그래밍하는 교대 순서(alternating sequence)가 유지될 것이 요구되는 것은 아님에 주목하여야 한다. 일 양상에서, 카운트는 홀수 워드 라인들에 대해 그리고 짝수 워드 라인들에 대해 프로그램/소거 사이클들의 수를 유지한다. 홀수 WL들을 프로그래밍 및 소거 하기 전에 짝수 WL들이 계속하여 복수번 프로그램/소거될 수 있다. 시간이 지남에 따라, 짝수 및 홀수 워드라인들은 마모(wear)를 레벨링하도록 동일한 수의 프로그램/소거 사이클들을 수신한다. 짝수 및 홀수 WL들의 프로그램/소거 사이클들의 카운트는 데이터 블록 자체의 빈 메모리 셀들(free memory cells)에 저장될 수 있다. 즉, 각각의 블록에는 사용자 데이터를 위한 것이 아닌 특정 수의 메모리 셀들이 있을 수 있다. 대안적으로, 카운트는, 메모리 어레이(200)의 다른 블록 또는 메모리 어레이(200) 외부의 메모리와 같은 다른 곳에 저장될 수 있다. 따라서, 일 양상에서, 단계들(704, 706)(짝수 WL들의 프로그램/소거)은 단계들(708, 710)(홀수 WL들의 프로그램/소거)을 수행하기 전에 여러번 반복될 수 있다.
다른 실시예들에서는, 짝수 및 홀수 WL들을 프로그래밍하는 것이 아니라, 어떤 다른 패턴이 사용된다. 일 실시예에서, 패턴은 각각의 프로그램된 WL 사이에 적어도 하나의 프로그램되지 않은 WL을 가진다. 예를 들어, 두개 걸러 하나의 워드라인(every third word line)이 프로그램되고 그 사이의 워드 라인들은 소거로 유지된다. 구체적인 예로, WL0, WL3, WL6, WL9 등이 프로그램되고, 반면 WL1, WL2, WL4, WL5, WL7, WL8 등이 소거로 유지된다. WL0, WL3, WL6, WL9 등을 소거한 후, 워드 라인들의 새 그룹이 프로그래밍을 위해 선택된다. 예를 들어, WL1, WL4, WL7, WL10 등이 프로그램되고, 반면 WL0, WL2, WL3, WL5, WL6, WL8 등이 소거로 유지된다. 체커보드 패턴과 같은 다르 프로그래밍 패턴들이 하기에서 논의된다.
각각의 프로그램된 WL 옆에 적어도 하나의 WL을 프로그램되지 않은 채로 유지함으로써, 적어도 일부 플로팅 게이트 전하 커플링 효과들이 감소되거나 제거될 수 있다. 예를 들어, 본 방법이 아니었다면 주어진 WL 위 또는 아래의 WL 상의 메모리 셀을 프로그래밍하는 것으로부터 발생했을 수 있는 효과들이, 현저히 감소되거나 제거된다. 이 WL-WL 플로팅 게이트 전하 커플링 효과를 줄이는 것은 블록의 내구성을 증가시킬 수 있다. 또한, 상태들(예를 들어, 소거 상태 및 프로그램 상태) 사이의 윈도우가 증가될 수 있다.
도 7b는 메모리 어레이(200) 내의 메모리 셀들의 블록을 프로그래밍하는 방법(750)의 흐름도의 일 실시예를 도시한다. 일 실시예에서, 방법(750)은 SLC 블록들에 적용되나 MLC 블록들에는 적용되지 않는다. 그러나, 방법(750)은 또한 MLC 블록들에 적용될 수 있다. 방법(750)에서, WL들은 그것들이 프로그램되기 바로 전에 정규 소거(normal erase)를 수신하는 반면, 이 시간에 프로그램되지 않을 WL들은 단지 약하게 소거된다. 이 시간에 프로그램되지 않을 WL들은 그것들이 데이터를 포함할 수 있기 때문에 약하게 소거된다.
단계(752)에서, 짝수 워드 라인들은 정규 소거를 수신하고 홀수 워드 라인들은 약하게 소거된다. 일 실시예에서, 약하게 소거될 메모리 셀들의 워드 라인들에, 소거 메모리 셀들에 보통(normally) 인가되는 바이어스 조건과 다른 바이어스 조건을 적용함으로써 "약한 소거(weak erase)"가 달성된다. 일부 메모리 셀들(예를 들어, 짝수 워드 라인들 상의 메모리 셀들만)에 보통 소거를 제공하고 다른 워드 라인들 상의 메모리 셀들을 약하게 소거하는 것은 도 14와 관련하여 논의된다. 단계(704)에서, 짝수 워드 라인들과 관련된 메모리 셀들이 프로그램된다. 그러나, 홀수 워드 라인들 상의 메모리 셀들은 프로그램되지 않는다. 단계(704)는 방법(700)과 과련하여 앞에서 논의되었다. 단계(756)에서, 홀수 워드 라인들은 보통 소거를 수신하고 짝수 워드라인들은 약하게 소거된다. 단계(708)에서, 짝수 워드 라인들 상의 메모리 셀들을 프로그래밍함이 없이 홀수 워드 라인들 상의 메모리 셀들이 프로그램된다. 방법(750)은 그후 단계(752)로 돌아가 짝수 WL들을 소거(예를 들어, 워드 라인들에 보통 바이어스 조건을 가함)하고 홀수 워드 라인들을 약하게 소거한다. 방법(700)의 변형과 유사한 방법(750)에 대한 다양한 변형들이 가능하다.
도 9a는 SLC 및 MLC 블록들을 프로그래밍하는 방법(900)의 일 실시예를 도시한다. 논의의 목적으로, 8개의 SLC 블록들을 프로그래밍하고 그 데이터를 하나의 MLC 블록으로 전송하는 예가 논의될 것이다. 이 예에서, 하나의 MLC 블록을 채우기 위하여 프로그램된 짝수 WL들(또는 대안적으로 홀수 WL들)만을 구비한 8개의 SLC 블록들이 사용되나, MLC 블록을 채우기위하여 더 많은 또는 더 적은 SLC 블록들이 사용될 수 있다. 단계(902)에서, SLC 블록들이 소거된다. 따라서, 적어도 8개의 SLC 블록들이 소거된다.
단계(904)에서, 제어기(244)는 메모리 어레이(200)에 저장될 데이터를 수신한다. 예를 들어, 호스트는 제어기(244)에 저장할 사용자 데이터를 송신한다. 방법(900)에서, 제어기(244)는 데이터를 MLC 블록들로 전송하기 전에 데이터가 먼저 SLC 블록들에 저장되어야 함을 결정한다. 앞에서 논의된 바와 같이, SLC 블록들은 임시적으로 데이터를 저장하기 위한 캐시의 일종으로서 사용될 수 있다.
단계(906)에서, SLC 블록들 중 적어도 하나의 짝수 WL들 상의 메모리 셀들이 수신 데이터로 프로그램된다. 제어기(244)는 하나 이상의 SLC 블록에 데이터를 프로그램할 수 있다. 만약 그렇다면, 제어기(244)는 한 SLC 블록의 짝수 WL들만을 프로그래밍하고 또 다른 SLC 블록의 홀수 WL들만을 프로그램할 수 있다. 따라서, 일 시점에 SLC 블록들 전체가 프로그램된 짝수 WL들 가지는 것이 필요조건이 아니다. 그러나, 논의의 명료성을 위하여, SLC 블록들 각각에서 짝수 WL들이 프로그램되는 예가 사용될 것이다.
단계(908)에서, 제어기(244)는 하나 이상의 MLC 블록들로의 데이터의 전송을 보장하기에 충분한 SLC 블록들이 프로그램되었는지를 결정한다. 예를 들어, 제어기(244)는 8개의 SLC 블록들 상의 짝수 워드 라인들 전체가 프로그램되는지를 결정한다. 그렇지 않다면, 방법(900)은 적어도 MLC 블록들로의 전송을 보장하기에 충분한 SLC 블록들이 프로그램될 때까지 메모리 어레이에 저장될 더 많은 데이터를 수신하기 위하여 단계(904)로 되돌아간다.
SLC 블록들로부터의 데이터가 MLC 블록으로 가능한한 빨리 전송되는 것이 요구되는 것은 아님에 주목하여야 한다. 제어기(244)는 SLC 블록들로부터 하나 이상의 MLC 블록들로 데이터를 전송하기 위하여 메모리 액세스가 유휴(idle)(즉, 호스트가 메모리 어레이(200)에 액세싱하고 있지 않음)일 때까지 대기할 수 있다. 이 경우, 데이터를 MLC 블록들에 전송하기에 적절한 시간까지 다른 SLC 블록들이 프로그램된다.
제어기(244)가 그것이 적절하다고 판단할 때, 단계(910)에서 데이터는 SLC 블록들로부터 하나 이상의 MLC 블록들로 전송된다. 이 점에서, 홀수 WL들 상의 메모리 셀들은 소거(프로그램되지 않음)로 유지되어왔음에 주목하여야 한다. 이 예에서, 제어기(244)는 8개의 SLC 블록들의 짝수 WL들로부터 데이터를 판독하고, ECC를 그 데이터에 적용하고 그리고 그 데이터를 MLC 블록에 저장한다. WL들의 짝수/홀수 프로그래밍이 MLC 블록들에 적용되는 것이 요구되지는 않는다. 따라서, MLC 블록의 모든 WL 상의 메모리 셀들이 프로그램될 수 있다.
단계(912)에서, SLC 블록들 내의 메모리 셀들이 소거된다. 단지 프로그램된 WL들만이 소거될 필요가 있다. 예를 들어, 데이터가 전송된 SLC 블록들 각각에서 짝수 WL들 전체가 소거된다. 일부 실시예들에서, 짝수 WL들은 정규 소거를 수신하고, 반면 홀수 WL들은 약한 소거를 수신한다. 워드 라인들의 절반만 소거되는 것이 필요조건은 아님에 주목하여야 한다. 단계(912)에서, 방법(900)은 메모리 어레이(200)에 저장될 더 많은 데이터를 수신하기 위하여 단계(904)로 돌아간다. 그러나, 이번에는 데이터가 SLC 블록들 각각의 홀수 WL들에 저장될 수 있다.
도 7a의 예와 마찬가지로, 방법(900)에서 엄격한 짝수/홀수 WL 패턴이 사용될 것이 요구되지 않는다. 예를 들어, 짝수 워드 라인들은 홀수 워드 라인들을 프로그래밍하기 전에 여러번 프로그램될 수 있다. 마모 레벨링(wear leveling)을 감안하여 짝수 워드 라인들에 대한 그리고 홀수 워드 라인들에 대한 프로그램/소거 사이클들의 카운트가 유지될 수 있다. 다른 실시예들에서, 짝수 및 홀수 WL들을 프로그래밍하는것 대신 다른 패턴이 사용된다. 일 실시예에서, 패턴은 각각의 프로그램된 WL 사이에 적어도 하나의 프로그램되지 않은 WL을 가진다. 예를 들어, 두개 걸러 하나의 워드라인(every third word line)이 프로그램되고 그 사이의 WL들은 소거로 유지된다. 구체적인 예로서, WL0, WL3, WL6 등이 프로그램되고, 반면 WL1, WL2, WL4, WL5, WL7, WL8 등은 소거로 유지된다. WL0, WL3, WL6 등을 소거한 후, 워드 라인들의 새 그룹이 프로그래밍을 위해 선택된다. 예를 들어, WL1, WL4, WL7, 등이 프로그램되고, 반면 WL0, WL2, WL3, WL5, WL6, WL8 등이 소거로 유지된다.
도 9b는 SLC 및 MLC 블록들을 프로그래밍하는 방법(950)의 일 실시예를 도시한다. 이 실시예에서, 워드 라인들은 프로그래밍 바로 전에 소거된다. 프로그래밍되지 않을 워드 라인들은 약하게 소거될 수 있다. 방법(950)은 방법(900)과 유사하고 자세히 논의되지 않을 것이다.
단계(904)에서, 제어기(244)는 메모리 어레이(200)에 저장될 데이터를 수신한다. 단계(955)에서, 짝수 워드 라인들이 정규 소거를 수신하고 홀수 워드 라인들이 약하게 소거된다. 단계(906)에서, 적어도 하나의 SLC 블록의 짝수 WL들 상의 메모리 셀들이 수신된 데이터로 프로그램된다. 제어기(244)는 데이터를 하나 이상의 SLC 블록에 프로그램할 수 있다. 만약 그렇다면, 제어기(244)는 하나의 SLC 블록의 짝수 WL들만을 그리고 또 다른 SLC 블록의 홀수 WL들만을 프로그램할 수 있다. 따라서, 일 시점에서 모든 SLC 블록들이 그것들의 짝수 WL들이 프로그램되어 있게 하는것이 필요조건이 아니다. 그러나, 논의의 명료성을 위하여, 짝수 WL들이 SLC블록들 각각에서 프로그램되는 예가 사용될 것이다.
단계(908)에서, 제어기(244)는 하나 이상의 MLC 블록들로의 데이터의 전송을 보장하기에 충분한 SLC 블록들이 프로그램되어있는지를 결정한다. 만약 그렇지 않다면, 방법(950)은 적어도 MLC 블록들로의 전송을 보장하기에 충분한 SLC 블록들이 프로그램될때까지 메모리 어레이 내에 저장될 더 많은 데이터를 수신하기 위하여 단계(904)로 돌아간다. 제어기(244)가 그것이 적절하다고 결정할 때, 단계(910)에서, 데이터는 SLC 블록들로부터 하나 이상의 MLC 블록들로 전송된다. 이 점에서, 홀수 WL들 상의 메모리 셀들은 약하게 소거되어 유지되어왔음(프로그램되지 않음)에 주목하여야 한다.
단계(962)에서, 홀수 WL들과 관련된 메모리 셀들은 보통 소거를 수신하고 짝수 WL들과 관련된 메모리 셀들은 약하게 소거된다. 단계(962) 후, 메모리 어레이(200)에 저장될 더 많은 데이터를 수신하기 위하여 방법(950)은 단계(904)로 되돌아간다. 그러나, 이 시간 데이터가 SLC 블록들 각각의 홀수 WL들에 저장될 수 있다(짝수 WL들은 프로그램되지 않은채로 유지됨).
도 10은 메모리 어레이(200)의 메모리 셀들의 블록을 체커보드 패턴으로 프로그래밍하는 프로세스(1000)의 흐름도의 일 실시예를 도시한다. 일 실시예에서, 벙법(1000)은 SLC 블록들에 적용되나 MLC 블록들에는 적용되지 않는다. 그러나, 방법(1000)은 또한 MLC 블록들에 적용될 수 있다. 단계(1002)에서, 메모리 어레이 내의 메모리 셀들의 블록이 소거된다. 메모리 셀들의 블록을 소거하는 것의 세부사항은 하기에서 논의된다. 단계(1002)에서, 블록 내의 모든 메모리 셀들이 소거된다.
단계(1004)에서, 짝수 비트 라인들 및 짝수 워드 라인들 모두와 관련된 메모리 셀들이 프로그램되고 홀수 비트라인들 및 홀수 워드 라인들 모두와 관련된 메모리 셀들이 프로그램된다. 그러나, 다른 메모리 셀들은 소거로 유지된다(프로그램되지 않음). 도 11a는 메모리 셀들을 체커보드 패턴으로 프로그래밍한 후의 결과인 예시적인 패턴을 도시한다. 점선으로 둘러싸인 메모리 셀들은 프로그래밍을 위한 후보들이다. 도 11a에서, 메모리 셀들은 "1" 또는 "0"으로 프로그램되었다. 그러나, 프로그래밍은 임계 전압을 도 6b 및 6c의 상태들(2-15) 중 하나와 같은 또 다른 상태로 변경하는 것을 포함할 수 있다. 다른 말로하면, 블록은 MLC 블록일 수 있다. 일반적으로, 블록 내에는 더 많은 워드 라인들이 있을 것이다. 예를 들어, 64개 이상의 워드 라인들이 있을 수 있다. 또한, 블록 내에는 일반적으로 더 많은 비트 라인들이 있다. 예를 들어, 수천개의 비트 라인들이 있을 수 있다.
단계(1006)에서, 메모리 셀들이 소거된다. 각각의 워드 라인 상에 프로그램된 메모리 셀들이 존재할 수 있으므로, 소거 단계는 소거 조건들을 모든 메모리 셀들에 적용하는 것을 수반할 수 있다. 예를 들어, 계속 소거 상태에 있는 메모리 셀에도 소거 조건들이 적용될 수 있다. 메모리 셀 소거의 세부사항은 도 14와 관련하여 논의된다. 소거는 다양한 이벤트들에 의해 트리거될 수 있다. 일 양상에서, SLC 블록들은 하나 이상의 MLC 블록들로의 전송을 보장하기에 충분한 SLC 블록들이 프로그램될 때까지 프로그램된다. MLC 블록들로의 데이터 전송 후, SLC 블록들 내의 데이터가 소거될 수 있다. 소거는 또한 블록 내의 모든 데이터가 소거되거나 새 데이터로 기록될 것임을 나타내는 명령을 제어기(244)에 송신함으로써 트리거될 수 있다. 따라서, 소거 전에 블록으로부터의 데이터가 또 다른 블록으로 전송되는 것이 요구되지 않는다.
단계(1008)에서, 단계(1004)에서 프로그램된 메모리 셀들이 프로그램된다. 즉, 체커보드 패턴의 다른 부분이 프로그램된다. 그러나, 다른 메모리 셀들(예를 들어, 단계(1004)에서 프로그램된 메모리 셀들)은 소거로 유지된다(또는 프로그램되지 않는다). 도 11b는 결과적인 예시적 패턴을 도시한다. 이 패턴에서, 홀수 비트 라인들과 짝수 워드 라인들 모두와 관련된 메모리 셀들이 프로그램되고 짝수 비트 라인들 및 홀수 워드 라인들과 관련된 메모리 셀들이 프로그램된다. 단계(1010)에서, 메모리 셀들이 소거된다. 방법(1000)은 단계(1004)로 돌아감으로써 계속될 수 있다.
체커보드의 일 부분을 프로그래밍하고 나서 체커보드의 다른 부분을 프로그래밍하는 교대 순서가 유지되는 것이 요구되지는 않음에 주목하여야 한다. 일 양상에서, 카운트는 각각의 패턴에 대한 프로그램/소거 사이클들의 수로 유지된다. 도 11b의 패턴을 프로그램 및 소거하기 전에, 도 11a의 패턴이 계속해서 복수 번 프로그램/소거될 수 있다. 시간이 경과하면, 마모(wear)를 레벨링하기 위하여 각각의 패턴이 동일 개수의 프로그램/소거 사이클들을 수신한다. 각각의 패턴의 프로그램/소거 사이클들의 카운트는 데이터 블록 자체의 빈 메모리 셀에 저장될 수 있다. 즉, 각각의 블록에는 사용자 데이터를 위한 것이 아닌 특정 수의 메모리 셀들이 있을 수 있다. 대안적으로, 카운트는, 메모리 어레이(200)의 다른 블록 또는 메모리 어레이(200) 외부의 메모리와 같은 다른 곳에 저장될 수 있다. 따라서, 일 양상에서, 단계들(1008, 1010)(홀수 WL들의 프로그램/소거)을 수행하기 전에, 단계들(1004, 1006)(짝수 WL들의 프로그램/소거)이 반복될 수 있다.
도 11a 및 11b에서, 각각의 프로그램된 메모리 셀 위 또는 아래의 WL 상의 이웃 메모리 셀이 프로그램되지 않음에 주목하여야 한다. 이는 또한 도 8a 및 8b에 도시된 실시에에도 적용된다. 따라서, 그렇지 않았다면 주어진 WL 위 또는 아래의 WL 상의 메모리 셀을 프로그래밍하는 것으로부터 발생할 수 있었던 플로팅 게이트 전하 커플링 효과가 현저히 감소되거나 제거된다. 또한, 각각의 프로그램된 메모리 셀의 우측 또는 좌측의 비트 라인(BL) 상의 이웃 메모리 셀이 프로그램되지 않는다. 따라서, 본 방법이 아니었다면 좌측 또는 우측 BL 상의 메모리 셀을 프로그래밍하는 것으로부터 발생할 수 있었던 플로팅 게이트 전하 커플링 효과가, 현저히 감소되거나 제거된다. 남아있는 플로팅 게이트 전하 커플링 효과는 단지 대각 방향에서 있을 수 있는데, 예를 들어, WLn의 BLn 상의 프로그램된 메모리 셀이 WLn+1 및/또는 WLn-1의 BLn-1 및 BLn+1 상의 프로그램된 셀들에 의해 계속 영향을 받을 수 있다.
도 11a 및 11b의 체커보드 패턴에서, 주어진 워드 라인에 대해 하나 걸러 하나의 비트 라인(every other bit line)(BL) 상의 메모리 셀들이 프로그램된다. 그러나, 체커보드 패턴이 이 밀도(dense)일 것이 요구되지는 않는다. 위에서 기술된 대각 커플링 효과를 제거하기 위하여, 일 실시예에서, 세개 걸러 하나의 비트 라인(every forth bit line) 상의 메모리 셀들이 프로그램된다. 또 다른 실시예에서, 모든 워드 라인이 프로그램되는 것이 요구되지 않는다. 예를 들어, 세개 걸러 하나의 워드 라인이 프로그램될 수 있다. 예로서, WL0에 대해, BL0, BL4, BL8, 등 위의 메모리 셀들이 프로그램된다. WL1 및 WL2는 프로그램되지 않은 채 유지될 수 있다. WL3에 대해, BL2, BL6, BL10 등의 메모리 셀들이 프로그램된다. 다른 체커보드 패턴들이 사용될 수 있다. 예를 들어, 각각의 WL이 프로그램될 수 있으나, 각각의 워드 라인 상에서 단지 세개 걸러 하나의 메모리 셀만이 프로그램된다. 이 경우에, 프로그램된 메모리 셀 위 및 아래의 이웃 메모리 셀은 프로그램되지 않은채 유지된다. 또 다른 실시예에서, 하나 걸러 하나의 워드 라인 및 하나 걸러 하나의 비트 라인이 프로그램된다. 예를 들어, WL0에 대해, BL0, BL2, BL4 등의 메모리 셀들이 프로그램되고, WL1은 프로그램되지 않은채 유지된다. WL2에 대해, BL0 BL2, BL4 등이 프로그램되거나, BL1, BL3, BL5 등이 프로그램된다. 둘다 후자의 경우, 각각의 프로그램된 메모리 셀은 프로그램된 상태에 있는 이웃 셀을 결코 가지지 않는바, 대각 방향에서 조차도 프로그램된 상태에 있는 이웃 셀을 갖지 않으며 따라서 게이트 전하 커플링 효과가 거의 완전히 제거된다.
도 12는 SLC 블록들을 위한 체커보드 패턴을 사용하여 SLC 블록과 MLC 블록을 프로그래밍하는 프로세스(1200)의 일 실시예를 도시한다. 논의의 목적을 위하여, 8개의 SLC 블록들을 프로그래밍하고 그 데이터를 하나의 MLC 블록으로 전송하는 예가 논의될 것이다. 이 예에서, 하나의 MLC 블록을 채우기 위하여 체커보드 패턴으로 프로그램된 8개의 SLC 블록들이 사용되나, MLC 블록을 채우기 위하여 더 많은 또는 더 적은 SLC 블록들이 사용될 수 있다. 단계(1202)에서, SLC 블록들이 소거된다. 따라서, 적어도 8개의 SLC 블록들이 소거된다.
단계(1204)에서, 제어기(244)는 메모리 어레이(200)에 저장될 데이터를 수신한다. 예를 들어, 호스트가 제어기(244)에 저장할 사용자 데이터를 송신한다. 방법(1200)에서, 제어기(244)는 데이터를 MLC 블록들로 전송하기 전에 데이터가 먼저 SLC 블록들에 저장되어야 함을 결정한다. 앞에서 논의된 바와 같이, 데이터를 임시적으로 저장하기 위한 캐시의 일종으로서 SLC 블록들이 사용될 수 있다.
단계(1206)에서, 제어기(244)는 데이터를 체커보드 패턴으로 프로그램한다. 제어기(244)는 데이터를 하나 이상의 SLC 블록에 프로그램할 수 있다. 만약 그렇다면, 제어기(244)는 한 SLC 블록에 대해 한 체커보드 패턴(예를 들어, 도 11a)을 사용하고 또 다른 SLC 블록에 대해 또 다른 체커보드 패턴(예를 들어, 도 11b)을 사용할 수 있다. 그러나, 논의의 명료성을 위하여, 도 11a의 패턴이 SLC 블록들 각각에서 프로그램되는 예가 사용될 것이다. 단계(1208)에서, 제어기(244)는 하나 이상의 MLC 블록들로의 데이터의 전송을 보장하기에 충분한 SLC 블록들이 체커보드 패턴으로 프로그램되는지 여부를 결정한다. 예를 들어, 제어기(244)는 전체 8개의 SLC 블록들이 프로그램됨을 결정한다. 만약 전체 8개의 SLC 블록들이 프로그램되어 있지 않다면, 방법(1200)은, 적어도 MLC 블록들로의 전송을 보장하기에 충분한 SLC 블록들이 프로그램될 때까지 메모리 어레이 내에 저장될 더 많은 데이터를 수신하기 위하여 단계(1204)로 되돌아간다.
SLC 블록들로부터의 데이터가 MLC 블록으로 가능한한 빨리(as soon as possible) 전송될 것이 요구되는 것은 아님에 주목하여야 한다. 제어기(244)는, SLC 블록들로부터 하나 이상의 MLC 블록들로 데이터를 전송하기 위하여, 메모리 액세스가 유휴(예를 들어, 호스트가 메모리 어레이(200)에 액세스하고 있지 않음)일 때까지 대기할 수 있다. 이 경우에, 데이터를 MLC 블록들로 전송하기에 적합한 시간까지 다른 SLC 블록들이 프로그램된다.
제어기(244)가 적절하다고 판단할 때, 단계(1210)에서 데이터가 SLC 블록들로부터 하나 이상의 MLC 블록들로 전송된다. 이 점에서, 메모리 셀들의 일부가 소거로 유지됨에 주목하여야 한다. 예를 들어, 도 11a에서 점선으로 둘러싸여 있지 않은 메모리 셀들은 여전히 소거된다. 이 예에서, 제어기(244)는 8개의 SLC 블록들의 WL들 전체로부터 데이터를 판독하고, 프로그램되지 않았던 메모리 셀들로부터의 데이터를 폐기(discard)하고, 데이터에 ECC를 적용하고, 그리고 그 데이터를 MLC 블록에 저장한다. 체커보드 프로그래밍이 MLC 블록들에 적용되는 것이 요구되지는 않는다. 따라서, MLC 블록의 모든 메모리 셀들이 프로그램될 수 있다.
단계(1212)에서, SLC 블록들 내의 메모리 셀들이 소거된다. 단계(1212)에서, 방법(1200)은 메모리 어레이(200)에 저장될 더 많은 데이터를 수신하기 위하여 단계(1204)로 돌아간다. 그러나, 이번에는 데이터가 다른 체커보드 패턴으로 저장될 수 있다(예를 들어, 도 11b). 각각의 체커보드 패턴(예를 들어, 도 11a, 도 11b)에 대한 프로그램/소거 사이클들의 수가 유지될 수 있다. 마모 레벨링(wear leveling)을 감안하여, 각각의 체커보드 패턴(예를 들어, 도 11a, 도 11b)에 대한 프로그램/소거 사이클들의 카운트가 유지될 수 있다. 도 11a 및 11b에 도시된 체커보드 패턴들이 방법(1200)에서 사용되는 것이 요구되지는 않음에 주목하여야 한다. 예를 들어, 세개 걸러 하나의 비트 라인(그리고 가능하게는 세개 걸러 하나의 워드 라인) 상의 메모리 셀들이 프로그램되는 덜 촘촘한 체커보드 패턴(less dense checkerboard pattern)이 사용될 수 있다.
도 13은 메모리 셀들을 프로그래밍하는 세부사항들을 기술하는 흐름도이다. 데이터를 프로그래밍하라는 요청을 수신함에 응답하여 도 13의 방법(1300)이 수행될 수 있다. 방법(1300)은 하나의 워드 라인을 프로그래밍하는 것을 기술하며 블록 내의 각각의 워드 라인에 대해 반복될 수 있다. 표현 "워드 라인 프로그래밍"은 워드 라인과 관련된 메모리 셀들을 프로그래밍하는 것을 의미한다. 일부 실시예들에서, 워드 라인 상의 모든 메모리 셀들이 동일한 시간에 프로그램된다. 즉, 모든 비트 라인들(및 특정 워드 라인)과 관련된 메모리 셀들이 함께 프로그램된다. 일부 실시에들에서, 홀수 비트 라인들과 관련된 메모리 셀들은 짝수 비트 라인들과 관련된 메모리 셀들과 별개로 프로그램된다.
방법(700)의 단계(704)를 수행하는데 사용된다면, 방법(1300)은 블록 내의 각각의 짝수 워드 라인에 대해 한번만 수행될 수 있다. 단계(708)을 수행하는데 사용된다면, 방법(1300)은 블록 내의 각각의 홀수 워드 라인들에 대해 한번만 수행될 수 있다. 방법(1000)의 단계(1004) 또는 단계(1008)를 수행하기 위해 사용된다면, 방법(1300)은, 일부 워드 라인들이 프로그램된 홀수 비트 라인들을 가지고 다른 워드 라인들이 프로그램된 짝수 비트 라인들을 가지는 블록 내의 각각의 워드 라인에 대해 한번만 수행될 수 있다. 단지 선택된 비트 라인들 상의 메모리 셀들만을 프로그래밍하는 것은 특정 비트 라인들에 대해 프로그래밍을 록 아웃(lock out)함으로써 달성될 수 있다.
짝수(또는 홀수) 워드 라인들이 프로그램되는 순서는 특정한 순서로 제한되지 않는다. 일 예시적인 순서는 각각의 짝수 워드 라인이 프로그램될 때까지 WL0, WL2, WL4,등을 프로그래밍하는 것이다. 홀수 워드 라인들에 대해, 상기 순서는 각각의 워드 라인이 프로그램된 때까지 WL1, WL3, WL5 등을 프로그래밍하는 것일 수 있다. 워드 라인들은 반대의 순서(즉, 높은 번호에서 낮은 번호의 순서)로 프로그램될 수 있다. 또한, 워드 라인들이 순차적으로 프로그램되는 것이 요구되는 것은 아니다. 예를 들어, WL2는 WL0 및 WL4를 프로그래밍한 후 프로그램될 수 있다.
단계(1312)에서, 시스템은 초기 프로그램 펄스의 크기를 설정할 수 있다. 단계(1314)에서, 프로그램 카운트 PC가 초기에 0으로 설정될 것이다. 단계(1316)에서, 프로그램 펄스는 적절한 워드 라인(들)에 인가된다. 단계(1318)에서, 워드 라인(들) 상의 프로그램될 메모리 셀들은, 그것들이 타겟 임계 전압 레벨에 도달했는지 알아보기 위하여 검증된다. 프로그램될 메모리 셀들 전부 또는 거의 전부가 타겟 임계 전압 레벨에 도달하였다면(단계(1320)), 프로그래밍 프로세스가 성공적으로 완료(상태=통과)된다(단계(1322)). 메모리 셀들 전부 또는 거의 전부가 검증되지 않았다면, 단계(1324)에서 프로그램 카운트 PC가 20보다 작은지가 결정된다. 만약 프로그램 카운트가 20보다 작지 않다면, 프로그래밍 프로세스는 실패한다(단계(1326). 만약 프로그램 카운트가 20보다 작다면, 단계(1328)에서, 다음 펄스에 대해 프로그램 전압 신호 Vpgm의 크기가 스텝 사이즈(예를 들어 0.3V) 만큼 증분되고 프로그램 카운트 PC가 증분된다. 타겟 임계 전압에 도달한 메모리 셀들은 현재프로그래밍 사이클의 나머지에 대해 프로그래밍이 록 아웃된다는 점에 주목하여야 한다. 단계(1328)에서, 도 13의 방법이 단계(136)에서 계속되고 다음 프로그램 펄스가 인가된다. 단계(1324)에서 프로그램 카운트 PC에 대해 20이 아닌 또 다른 숫자가 정지 기준으로서 사용될 수 있다. 또한, 단계(1320)에서, 일부 실시예들에서, 모든 메모리 셀들이 타겟 임계 전압에 도달해야 하는 것은 아님에 주목하여야 한다. 메모리 셀들이 ECC에 의해 정정될 수 있기 때문에, 타겟 임계 전압 레벨에 도달하지 않는 특정 개수의 메모리 셀들이 용인될 수 있다.
도 14는 메모리 셀들을 소거하는 방법(1400)을 기술하는 흐름도이다. 일부 실시예들에서, 일부 메모리 셀들이 단지 약하게 소거되고 다른 메모리 셀들은 정규 소거를 수신한다. 다른 실시예들에서, 모든 메모리 셀들이 정규 소거를 수신한다. 일부 실시예들에서, 보통의 또는 약한 소거를 달성하기 위하여 서로 다른 바이어스 조건들이 적용된다. 약한 소거는 메모리 셀들에 대한 스트레스를 줄여준다.
방법(1400)은 방법(700)의 단계들(702, 706, 또는 710); 방법(750)의 단계들(752 또는 756); 방법(900)의 단계들(902 또는 912); 방법(950)의 단계들(955 또는 962); 방법(1000)의 단계들(1002, 1006 도는 1010), 또는 방법(1200)의 단계들(1202 또는 1212)의 일 실시예이다. 단계(1402)에서, 시스템은 초기 소거 펄스의 크기를 설정할 것이다. 단계(1404)에서, 소거 루프 카운트가 초기에 0으로 설정될 것이다. 단계(1406)에서, 바이어스 조건들이 워드 라인들에 적용된다. 일 실시예에서, 정규 소거를 수신할 메모리 셀들을 지닌 워드 라인들에는 메모리 셀들이 약하게 소거될 워드 라인들과 다른 바이어스 조건들이 적용된다. 예를 들어, 보통의소거를 수신할 워드 라인들에 대해 0V가 사용될 수 있고 약하게 소거될 워드 라인들에 대해 양의 전압이 인가될 수 있다. 예를 들어, 양의 전압은 적은 볼트일 수 있다(예를 들어, 1-4볼트). 일부 실시예들에서, 짝수 및 홀수 워드 라인들은 그것들에 인가된 전압이 서로 다르다. 방법(1400)을 논의할 때, 용어 "선택된 워드 라인"은 그것의 메모리 셀들이 정규 소거를 수신할 워드 라인을 지칭하며, "선택된 메모리 셀"은 정규 소거를 수신할 메모리 셀을 지칭한다. 용어 "선택되지 않은 워드 라인"은 그 메모리 셀들이 약하게 소거될 워드 라인을 지칭한다. 선택되지 않은 워드 라인들 상의 양의 전압의 크기에 따라, 일부 소거가 계속해서 발생할 수 있으나, 이 "약한 소거"는 일반적으로 중요하지 않으며 메모리 셀의 특성 저하에 기여하지 않는다는 것에 주목하여야 한다.
단계(1408)에서, 소거 조건들이 적용된다. 일 실시예에서, 단계(1402)는, 소스 및 비트 라인들은 플로팅인 상태에서, 충분한 시간 기간 동안 p-우물을 소거 전압(예를 들어, 20 볼트)으로 상승시키고, 선택된 블록의 선택된 워드 라인들을 접지시키고 그리고 선택된 블록의 선택되지 않은 워드 라인들에 바이어스 전압을 인가하는 것을 포함한다. 전도성 커플링으로 인하여, 비트 라인들, 선택 라인들, 그리고 공통 소스 라인이 또한 소거 전압의 상당분(significant fraction)으로 상승한다. 따라서, 일반적으로 포울러-노드하임 터널링 메커니즘에 의해, 플로팅 게이트들의 전자들이 기판측으로 방출되므로, 선택된 메모리 셀들의 터널 산화물 층들에 강한 전계가 인가되고 선택된 메모리 셀들의 데이터가 소거된다. 전자들이 플로팅 게이트에서 P-우물 영역으로 전송되므로, 선택된 셀의 임계 전압이 낮아진다. 소거는 전체 메모리 어레이에 대해, 개별 블록들에 대해, 또는 셀들의 다른 유닛에 대해 수행될 수 있다.
그러나, 선택되지 않은 워드 라인들에 바이어스 전압을 인가함으로써, 선택되지 않은 메모리 셀들은 그것들의 터널 산화물 층들에 걸쳐 그러한 강한 전계를 겪지 않는다. 따라서, 선택되지 않은 메모리 셀들은 소거로 인한 현저한 스트레스(significant stress)를 겪지 않는다. 일부 실시예들에서, 선택되지 않은 메모리 셀들이 이미 소거되었으며, 따라서 그것들의 임계 전압은 위에서 언급한 "약한 소거" 바이어스 조건에 의해 현저히 변경되지 않을 것이다. 그러나, 방법(1400)을 시작하기 전에 선택되지 않은 메모리 셀들이 소거 상태에 있어야 하는 것이 절대적인 필요조건은 아님에 주목하여야 한다. 즉, 선택되지 않은 메모리 셀들은 약하게 소거되기 전에 데이터를 포함할 수 있다.
단계(1410)에서, 소거 검증 조건들의 세트가 메모리 셀들에 적용된다. 이는 일부 실시예들에서의 선택적인 소거 검증이다. 검증 조건들은 선택된 워드 라인들 및 선택되지 않은 워드 라인들에서 서로 다를 수 있는바, 이는 일부 메모리 셀들이 소거 프로세스 전에 조차도 소거된 것으로 가정될 수 있기 때문이다. 예를 들어, 선택된 블록 내의 선택되지 않은 메모리 셀들이 최종 완전 소거 후 프로그램되지 않았으므로 이미 소거되어있음이 가정된다면, 선택되지 않은 WL들에 판독 통과 전압이 인가될 수 있다.
일 실시예에서, 단계(1410)는 비트 라인들을 접지로 방전시키는 것을 포함한다. 그후, 0 볼트보다 높은 전압(예를 들어, 2.2V)이 공통 소스 라인에 인가되고 특정 전압(예를 들어, 0V)이 선택된 워드 라인들에 인가되며, 또 다른 전압(예를 들어, Vread)이 선택되지 않은 워드 라인들에 인가된다. Vread는 메모리 셀들이 전류를 도통시키도록 충분히 높은 전압일 수 있다. 전하가 비트 라인 상에 축적되고, 결과적으로, 바디 효과가 NAND 스트링 내의 적어도 하나의 메모리 셀을 턴오프할때까지 주어진 NAND 스트링의 비트 라인 전압이 증가된다.
단계(1412)에서, NAND 스트링들 각각이 감지되어 상기 NAND 스트링 상의 메모리 셀들이 충분히 소거되었는지가 결정된다. 전하가 비트 라인 상에 쌓이기(build up) 위한 소정의 시간 기간 동안 대기한 후 단계(1406)가 수행된다. 일 실시예에서, 대응하는 NAND 스트링 상의 메모리 셀들 중 임의의 것이 타겟 값보다 큰 Vt를 가지는지를 결정하기 위하여 주어진 비트 라인 상의 전압이 기준 값과 비교된다. 타겟 값은 음의 값일 수 있다.
일 실시예에서, NAND 스트링 상의 각각의 메모리 셀의 Vt가 타겟 레벨에 도달했음이 검출되면, 대응하는 데이터 래치에 저장된 데이터가 논리 "1"로 충전된다. NAND 스트링이 적절한 타겟 레벨에 도달하지 못한 Vt를 지닌 적어도 하나의 메모리 셀을 가짐이 검출되면, 대응하는 데이터 래치에 저장된 데이터는 변경되지 않는다.
단계(1414)에서, 충분한 NAND 스트링들이 소거 검증을 통과했는지에 대한 결정이 이루어진다. 일 실시예에서, 특정 수의 NAND 스트링들은 소거 검증에 실패하는 것이 허용된다. 예를 들어, 32개보다 적은 NAND 스트링들이 소거 검증에 실패하면, 전체 소거 검증이 통과된다. 소거가 통과되면, 소거 상태는 통과로 설정되고 프로세스(1400)가 종료된다.
만약, 단계(1414)에서, 소거 검증이 실패했음이 결정되면, 루프 카운트가 검사되어(단계(1416)) 그것이 제한값(limit)을 초과하는지가 결정된다. 만약 그렇다면, 소거 상태는 실패로 설정되고 프로세스(1400)가 종료된다. 루프 카운트가 제한값을 넘지 않으면, 단계(1418)에서 소거 전압이 증가된다. 소거 전압은 0.2V, 0.5V, 1.0V 등과 같은 임의의 요구되는 양 만큼 증가될 수 있다. 루프 카운트가 증분된다. 단계(1408)에서, 새 소거 전압 인가된다.
여기에서 논의되는 바와 같이, 일 실시예는 복수의 비휘발성 저장 소자들 및 복수의 워드 라인들의 그룹을 구비한 비휘발성 저장장치를 동작시키는 방법이다. 이 방법은 복수의 비휘발성 저장 소자들을 소거하는 단계 및 프로그램되지 않은 상기 복수의 비휘발성 저장 소자들의 제2 그룹을 남겨둔 상태에서 상기 복수의 비휘발성 저장 소자들의 제1 그룹에 데이터를 프로그래밍하는 단계를 포함한다. 제1 그룹 내의 모든 비휘발성 저장 소자에 대해, 상기 제1 그룹 내의 비휘발성 저장 소자의 위 또는 아래 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는, 프로그램되지 않고 남아있는 제2 그룹의 멤버이다. 비휘발성 저장 소자들의 제2 그룹은 프로그램되지 않은채 남겨지는 반면, 적어도 비휘발성 저장 소자들의 적어도 제1 그룹 내의 데이터는 소거된다. 그후, 비휘발성 저장 소자들의 제2 그룹의 적어도 일부가 프로그램된다. 상기 제2 그룹의 상기 일부의 모든 비휘발성 저장 소자에 대해, 상기 제2 그룹의 상기 일부의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 남겨진다. 그후, 비휘발성 저장 소자들의 제2 그룹의 적어도 일부의 데이터가 소거되며, 한편 적어도 상기 제2 그룹의 상기 일부의 비휘발성 저장 소자의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자들은 프로그램되지 않은 상태로 남겨진다.
일 실시예에서, 앞의 문단에서 논의된 복수의 비휘발성 저장 소자들은, 데이터가 비휘발성 저장 소자당 1 비트 저장된 블록의 일부이고, 상기 비휘발성 저장장치는 비휘발성 저장 소자당 1 보다 많은 비트의 데이터가 저장되는 비휘발성 저장 소자들의 다중 레벨 블록들을 더 포함한다. 일 실시예에서, 본 방법은, 비휘발성 저장 소자들의 제2 그룹은 프로그램되지 않은 채 유지하면서 관련된 비휘발성 저장 소자들의 제1 그룹에 프로그램된 데이터를 하나 이상의 다중 레벨 블록들로 전송하는 단계와, 그리고 상기 제2 그룹의 적어도 일부의 비휘발성 저장 소자들의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자들을 프로그램되지 않은 상태로 유지하면서, 상기 비휘발성 저장 소자들의 제2 그룹의 적어도 일부에 프로그램된 데이터를 상기 복수 레벨 블록들 중 하나 이상에 전송하는 단계를 더 포함한다.
또 다른 실시예에서, 비휘발성 저장 소자들의 제1 그룹은 상기 복수의 비트 라인들 중 짝수 비트 라인과 상기 복수의 워드 라인들 중 짝수 워드 라인 둘 모두 그리고 상기 복수의 비트 라인들 중 홀수 비트 라인과 상기 복수의 워드 라인들 중 홀수 워드 라인 둘 모두와 관련된 비휘발성 저장 소자들이다. 상기 제2 그룹은 홀수 비트 라인과 짝수 워드 라인 둘 모두 그리고 짝수 비트 라인과 홀수 워드 라인 둘 모두와 관련된 비휘발성 저장 소자들이다. 이 경우에 상기 제2 그룹의 적어도 일부는 전체 제2 그룹(entire second group)이다.
일 실시예는 복수의 비휘발성 저장 소자들 및 상기 복수의 비휘발성 저장 소자들과 관련된 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법이다. 본 방법은 비휘발성 저장 소자들의 제1 그룹의 데이터를 소거하는 단계, 상기 비휘발성 저장 소자들의 제2 그룹을 약하게 소거하는 단계, 상기 복수의 비휘발성 저장 소자들의 제2 그룹을 프로그래밍하지 않은 채로 상기 복수의 비휘발성 저장 소자들의 제1 그룹에 데이터를 프로그래밍하는 단계를 포함하며, 상기 제1 그룹의 모든 비휘발성 저장 소자에 대해 상기 제1 그룹의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 제2 그룹의 멤버이다. 본 방법은 비휘발성 저장 소자들의 제2 그룹이 여전히 약하게 소거될 때 비휘발성 저장 소자들의 제2 그룹의 데이터를 소거하는 단계와, 그리고 제2 그룹의 비휘발성 저장 소자들을 프로그래밍하는 단계를 더 포함하며; 상기 제2 그룹의 모든 비휘발성 저장 소자에 대해 상기 제2 그룹의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않는다.
일 실시예는, 단일 레벨 블록들 및 다중 레벨 블록들을 포함하는 비휘발성 저장장치를 동작시키는 방법이다. 단일 레벨 블록들 각각은 복수의 워드 라인들 및 복수의 비휘발성 저장 소자들을 포함한다. 본 방법은 단일 레벨 블록들의 제1 단일 레벨 블록의 모든 워드 라인들과 관련된 비휘발성 저장 소자들을 소거하는 단계, 및 제1 단일 레벨 블록에서 체커보드 패턴으로 비휘발성 저장 소자들에 데이터를 프로그래밍하는 단계를 포함한다. 제1 단일 레벨 블록의 비휘발성 저장 소자들의 적어도 절반이 프로그램되지 않은 상태로 유지된다. 제1 단일 레벨 블록에서 체커보드 패턴과 관련된 비휘발성 저장 소자들로부터의 데이터가 다중 레벨 블록들의 제1 다중 레벨 블록으로 전송되는 한편, 제1 단일 레벨 블록의 비휘발성 저장 소자들의 적어도 절반은 소거상태로 유지된다. 제1 단일 레벨 블록의 데이터가 소거된다.
또 다른 실시예에서, 앞의 문단의 체커보드 패턴은 제1 체커보드 패턴이다. 데이터는 제1 단일 레벨 블록의 비휘발성 저장 소자들에서 제2 체커보드 패턴으로 비휘발성 저장 소자들에 프로그램된다. 제1 체커보드 패턴으로 프로그램된 비휘발성 저장 소자들은 제2 체커보드 패턴을 사용하여 프로그램되지 않는다. 제1 단일 레벨 블록에서 제2 체커보드 패턴과 관련된 비휘발성 저장 소자들로부터의 데이터가 다중 레벨 블록들의 제2 다중 레벨 블록으로 전송되는 한편, 제1 체커보드 패턴과 관련된 비휘발성 저장 소자들은 소거로 유지된다.
일 실시예는 복수의 비휘발성 저장 소자들, 비휘발성 저장 소자들의 그룹과 관련된 복수의 워드 라인들, 그리고 비휘발성 저장 소자들과 통신하는 하나 이상의 관리 회로들을 포함하는 비휘발성 저장 디바이스이다. 하나 이상의 관리 회로들은비휘발성 저장 소자들을 소거한다. 하나 이상의 관리 회로들은, 복수의 비휘발성 저장 소자들의 제1 그룹에 데이터를 프로그래밍하는 한편, 복수의 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은채 남겨둔다. 제1 그룹의 모든 비휘발성 저장 소자에 대해, 상기 제1 그룹의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지되는 제2 그룹의 멤버이다. 하나 이상의 관리 회로가 비휘발성 저장 소자들의 제1 그룹의 데이터를 소거하는 한편, 비휘발성 저장 소자들의 제2 그룹은 프로그램되지 않은채로 유지된다. 하나 이상의 관리 회로들은 비휘발성 저장 소자들의 제2 그룹의 적어도 일부를 프로그램한다. 제2 그룹의 일부의 모든 비휘발성 저장 소자에 대해, 상기 제2 그룹의 일부의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지된다. 하나 이상의 관리 회로들이 상기 비휘발성 저장 소자들의 제2 그룹의 적어도 일부의 데이터를 소거하고, 한편 상기 제2 그룹의 적어도 일부의 비휘발성 저장 소자의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자들은 프로그램되지 않은 상태로 유지된다.
일 실시예에서, 전의 문단의 비휘발성 저장 디바이스는 비휘발성 저장 소자들의 그룹과 관련된 복수의 비트라인들을 포함한다. 제1 그룹은 복수의 비트 라인들 중 짝수 비트 라인과 복수의 워드 라인들 중 짝수 워드 라인 둘 모두 그리고 복수의 비트 라인들 중 홀수 비트 라인과 복수의 비트 라인들 중 홀수 워드 라인 둘 모두와 관련된 비휘발성 저장 소자들을 포함한다. 제2 그룹은 홀수 비트 라인과 짝수 워드 라인 둘 모두 그리고 짝수 비트 라인과 홀수 워드 라인 둘 모두와 관련된 비휘발성 저장 소자들을 포함한다. 또 다른 실시예에서, 제1 그룹은 복수의 워드 라인들의 짝수 워드 라인들과 관련된 비휘발성 저장 소자들을 포함하고 제2 그룹은 복수의 워드 라인들 중 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 포함한다.
일 실시예는 비휘발성 저장 소자들의 제1 그룹, 비휘발성 저장 소자들의 제2 그룹, 비휘발성 저장 소자들의 제1 그룹과 관련된 복수의 워드 라인들, 그리고 비휘발성 저장 소자들의 제1 그룹 및 비휘발성 저장 소자들의 제2 그룹과 통신하는 하나 이상의 관리회로들을 포함하는 비휘발성 저장 디바이스이다. 하나 이상의 관리 회로들은 제1 그룹의 비휘발성 저장 소자 마다 1 비트의 데이터를 저장한다. 하나 이상의 관리 회로들은 제2 그룹의 데이터의 비휘발성 저장 소자 마다 복수 비트의 데이터 비트를 저장한다. 하나 이상의 관리 회로들은 복수의 워드 라인들 중 짝수 워드 라인들과 관련된 비휘발성 저장 소자들에 데이터를 프로그래밍하는 한편, 복수의 워드 라인들 중 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 소거로 남겨둔다. 하나 이상의 관리 회로들은 짝수 워드 라인들과 관련된 비휘발성 저장 소자들로부터의 데이터를 비휘발성 저장 소자들의 제2 그룹으로 전송하는 한편 홀수 워드 라인들과 관련된 비휘발성 저장 소자들은 소거로 유지된다. 하나 이상의 관리 회로들은 짝수 워드 라인들과 관련된 비휘발성 저장 소자들의 데이터를 소거한다.
일 실시예는 비휘발성 저장 소자들의 제1 그룹, 비휘발성 저장 소자들의 제2 그룹, 상기 비휘발성 저장 소자들의 제1 그룹과 관련된 복수의 워드 라인들, 상기 비휘발성 저장 소자들의 제1 그룹과 관련된 복수의 비트 라인들, 그리고 상기 비휘발성 저장 소자들의 제1 그룹 및 상기 비휘발성 저장 소자들의 제2 그룹과 통신하는 하나 이상의 관리 회로들을 포함하는 비휘발성 저장 디바이스이다. 하나 이상의 관리 회로들은 제1 그룹의 비휘발성 저장 소자 마다 1 비트의 데이터를 저장한다. 하나 이상의 관리 회로들은 제2 그룹의 비휘발성 저장 소자당 복수 비트의 데이터를 저장한다. 하나 이상의 관리 회로들은 비휘발성 저장 소자들의 제1 그룹을 소거한다. 하나 이상의 관리 회로들은 제1 그룹 내의 비휘발성 저장 소자들에 체커보드 패턴으로 데이터를 프로그램한다. 제1 그룹의 비휘발성 저장 소자들의 적어도 절반은 프로그램되지 않은 상태로 유지된다. 하나 이상의 관리 회로들은 제1 그룹 내의 체커보드 패턴과 관련된 비휘발성 저장소자로부터 비휘발성 저장 소자들의 제2 그룹의 비휘발성 저장 소자의 제1 서브세트로 데이터를 전송한다. 하나 이상의 관리 회로들은 제1 그룹의 데이터를 소거한다.
추가적인 실시예에서, 앞의 문단의 체커보드 패턴은 제1 체커보드 패턴이다. 하나 이상의 관리 회로들은 제1 그룹에서 제2 체커보드 패턴으로 비휘발성 저장 소자들에 데이터를 프로그램한다. 제1 체커보드 패턴으로 프로그램된 비휘발성 저장 소자들은 제2 체커보드 패턴을 사용하여 프로그램되지 않는다. 하나 이상의 관리 회로들이 제1 그룹의 제2 체커보드 패턴과 관련된 비휘발성 저장 소자들로부터 제2 그룹의 비휘발성 저장 소자들의 제2 서브세트로 데이터를 전송하며, 한편 제1 체커보드 패턴과 관련된 비휘발성 저장 소자들은 소거 상태로 유지된다.
또 다른 실시예는 단일 레벨 블록들 및 다중 레벨 블록들을 포함하는 비휘발성 저장장치를 동작시키는 방법이다. 단일 레벨 블록들 각각은 복수의 워드 라인들 및 복수의 비휘발성 저장 소자들을 포함한다. 본 방법은, 제1 블록에서 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 약하게 소거하는 한편 단일 레벨 블록의 제1 블록 내의 짝수 워드 라인들과 관련된 비휘발성 저장 소자들에 대해 정규 소거(normal erase)를 수행하는 단계와, 복수의 워드 라인들의 짝수 워드 라인들과 관련된 비휘발성 저장 소자들에 데이터를 프로그래밍하는 단계를 포함한다. 홀수 워드 라인들과 관련된 비휘발성 저장 소자들은 프로그램되지 않는다. 짝수 워드 라인들과 관련된 비휘발성 저장 소자들로부터의 데이터는 하나 이상의 다중 레벨 셀 블록들로 전송(transfer)되고, 상기 전송은 홀수 워드 라인들과 관련된 비휘발성 저장 소자들이 약하게 소거된 채로 유지되는 상태에서 발생한다.
본 발명에 대한 위의 상세한 설명은 예시 및 설명의 목적으로 제시되었다. 본 발명은 전체를 포괄하려 의도되거나 개시된 정확한 형태로 제한하려 의도된 것이 아니다. 위의 내용의 견지에서 많은 수정 및 변형이 가능하다. 개시된 실시예들은 본 발명의 원리들 및 그것들의 실제 응용을 가장 잘 설명하기 위한 것이며, 그럼으로써 본 기술분야의 통상의 기술자들로 하여금 본 발명을, 고려되는 특정 사용에 적합한 다양한 변형들과 함께 다양한 실시예들에서 가장 잘 사용할 수 있게 하기 위한 것이다. 본 발명의 범주는 첨부된 청구항에 의해 정의되도록 의도되었다.

Claims (16)

  1. 복수의 비휘발성 저장 소자들 및 상기 복수의 비휘발성 저장 소자들과 관련된(associated) 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법으로서,
    상기 복수의 비휘발성 저장 소자들을 소거하는 단계(702, 752, 1002)와;
    상기 복수의 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 남겨둔채 상기 복수의 비휘발성 저장 소자들의 제1 그룹에 데이터를 프로그래밍하는 단계(704, 1004)와, 상기 제1 그룹은 상기 복수의 워드 라인들의 짝수 워드 라인들과 관련된 비휘발성 저장 소자들이고 상기 제2 그룹은 상기 복수의 워드 라인들의 홀수 워드 라인들과 관련된 비휘발성 저장 소자들이며, 상기 제1 그룹 내의 모든 비휘발성 저장 소자들에 대해 상기 제1 그룹 내의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃(neighbor) 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지되는 상기 제2 그룹의 멤버(member)이고;
    상기 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 적어도 제1 그룹의 상기 데이터를 소거하는 단계(706, 756, 1006)와, 상기 비휘발성 저장 소자들의 적어도 제1 그룹의 상기 데이터를 소거하는 단계는 상기 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 소거함이 없이 상기 짝수 워드 라인들과 관련된 비휘발성 저장 소자들에 대한 선택적 소거를 수행하는 것을 포함하며;
    상기 비휘발성 저장 소자들의 제2 그룹 전체를 프로그래밍하는 단계(708, 1008)와, 상기 제2 그룹 전체의 모든 비휘발성 저장 소자들에 대해 상기 제2 그룹 전체의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지되고; 그리고
    상기 제2 그룹 전체의 비휘발성 저장 소자의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자들을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제2 그룹 전체의 데이터를 소거하는 단계(710, 1010)
    를 포함하는 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법.
  2. 제1 항에 있어서,
    상기 복수의 비휘발성 저장 소자들은 비휘발성 저장 소자 마다 데이터가 1 비트씩 저장된 블록의 일부이고, 상기 비휘발성 저장장치는 비휘발성 저장 소자마다 1 보다 많은 비트의 데이터가 저장된 비휘발성 저장 소자들의 다중 레벨(multi-level) 블록들을 더 포함하는 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법.
  3. 제2 항에 있어서,
    관련된 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제1 그룹에 프로그램된 데이터를 상기 다중 레벨 블록들 중 하나 이상에 전송하는 단계와, 그리고
    상기 제2 그룹 전체의 비휘발성 저장 소자의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자들은 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제2 그룹 전체에 프로그램된 데이터를 상기 다중 레벨 블록들 중 하나 이상에 전송하는 단계를 포함하는 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법.
  4. 삭제
  5. 삭제
  6. 제1 항에 있어서,
    상기 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 소거함이 없이 상기 짝수 워드 라인들과 관련된 비휘발성 저장 소자들에 대한 선택적 소거를 수행하는 단계는, 상기 홀수 워드 라인들에 대한 소거 검증을 수행함이 없이 상기 짝수 워드 라인들에 대한 소거 검증을 수행하는 것을 포함하는 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법.
  7. 제6 항에 있어서,
    상기 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제1 그룹의 데이터를 소거하는 단계는,
    상기 복수의 비휘발성 저장 소자들에 하나 이상의 소거 펄스들을 인가하는 단계와;
    상기 하나 이상의 소거 펄스들을 인가하는 상태에서 상기 홀수 워드 라인들에 제1 전압을 인가하는 단계와; 그리고
    상기 하나 이상의 소거 펄스들을 인가하는 상태에서 상기 짝수 워드 라인들에 제2 전압을 인가하는 단계를 포함하며, 상기 제1 전압은 상기 제2 전압보다 높은 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법.
  8. 제7 항에 있어서,
    상기 하나 이상의 소거 펄스들을 인가하는 상태에서 상기 짝수 워드 라인들에 제2 전압을 인가하는 단계는 상기 짝수 워드 라인들과 관련된 비휘발성 저장 소자들의 터널 산화물 층들에 걸쳐 강한 전계(strong electric field)를 생성하며, 상기 하나 이상의 소거 펄스들을 인가하는 상태에서 상기 홀수 워드 라인들에 제1 전압을 인가하는 단계는 상기 홀수 워드 라인들과 관련된 비휘발성 저장 소자들의 터널 산화물 층들에 걸처 덜 강한 전계(less strong electric field)를 생성하는 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법.
  9. 제8 항에 있어서,
    상기 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제1 그룹의 데이터를 소거하는 단계는 소거 검증을 수행하는 단계를 포함하며, 상기 소거 검증은 수행하는 단계는,
    상기 홀수 워드 라인들에 판독 전압을 인가하는 단계와;
    상기 짝수 워드 라인들에 상기 판독 전압보다 낮은 전압을 인가하는 단계와;
    상기 복수의 비휘발성 저장 소자들의 비휘발성 저장 소자들의 제1 서브세트와 관련된 비트 라인의 상태(condition)을 감지하는 단계와; 그리고
    상기 상태에 근거하여 상기 비휘발성 저장 소자들의 제1 서브세트가 소거되어있는지를 결정하는 단계를 포함하는 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장장치를 동작시키는 방법.
  10. 삭제
  11. 비휘발성 저장 디바이스로서,
    복수의 비휘발성 저장 소자들(200)과;
    상기 복수의 비휘발성 저장 소자들의 그룹과 관련된 복수의 워드 라인들(WL0, WL1, WL2,...)과; 그리고
    상기 비휘발성 저장 소자들과 통신하는 하나 이상의 관리 회로들(220, 222, 224, 226, 230, 240, 242, 244)을 포함하여 구성되며,
    상기 하나 이상의 관리 회로들은 상기 비휘발성 저장 소자들을 소거하고,
    상기 하나 이상의 관리 회로들은 상기 복수의 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 남겨둔 채로 상기 복수의 비휘발성 저장 소자들의 제1 그룹에 데이터를 프로그래밍하며, 상기 제1 그룹은 상기 복수의 워드 라인들 중 짝수 워드 라인들과 관련된 비휘발성 저장 소자들을 포함하고 상기 제2 그룹은 상기 복수의 워드 라인들 중 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 포함하며, 상기 제1 그룹의 모든 비휘발성 저장 소자에 대해, 상기 제1 그룹의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지되는 상기 제2 그룹의 멤버이고,
    상기 하나 이상의 관리 회로들은, 상기 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제1 그룹의 데이터를 소거하고, 여기서 상기 하나 이상의 관리 회로들은 상기 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 소거함이 없이 상기 짝수 워드 라인들과 관련된 비휘발성 저장 소자들에 대한 선택적 소거를 수행하며,
    상기 하나 이상의 관리 회로들은 상기 비휘발성 저장 소자들의 제2 그룹 전체를 프로그래밍하고, 상기 제2 그룹 전체의 모든 비휘발성 저장 소자에 대해, 상기 제2 그룹 전체의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지되고, 그리고
    상기 하나 이상의 관리 회로들은, 상기 제2 그룹 전체의 비휘발성 저장 소자의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자가 프로그램되지 않은 채 유지되는 상태에서 상기 비휘발성 저장 소자들의 제2 그룹 전체의 데이터를 소거하는 것을 특징으로 하는 비휘발성 저장 디바이스.
  12. 제11 항에 있어서,
    상기 복수의 비휘발성 저장 소자들은 비휘발성 저장 소자 마다 데이터가 1 비트씩 저장된 블록의 일부이고, 상기 비휘발성 저장 소자는 비휘발성 저장 소자마다 1 보다 많은 비트의 데이터가 저장된 비휘발성 저장 소자들의 다중 레벨(multi-level) 블록들을 더 포함하는 것을 특징으로 하는 복수의 워드 라인들을 구비한 비휘발성 저장 디바이스.
  13. 제12 항에 있어서,
    상기 하나 이상의 관리 회로들은, 관련된 비휘발성 저장 소자들의 제 2 그룹을 프로그램지 않은 상태로 유지하면서 상기 다중 레벨 블록들 중 하나 이상과 관련된 비휘발성 저장 소자들의 제1 그룹에 프로그램된 데이터를 전송하고, 상기 하나 이상의 관리 회로들은, 상기 제2 그룹의 비휘발성 저장 소자의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자들이 프로그램되지 않은 채 유지되는 상태에서 상기 비휘발성 저장 소자들의 제2 그룹에 프로그램된 데이터를 상기 다중 레벨 블록들 중 하나 이상으로 전송하는 것을 특징으로 하는 비휘발성 저장 디바이스.
  14. 삭제
  15. 삭제
  16. 비휘발성 저장 디바이스로서,
    복수의 비휘발성 저장 소자들과;
    상기 복수의 비휘발성 저장 소자들과 관련된 복수의 워드라인들(WL0, WL1, WL2, ...)과;
    상기 복수의 비휘발성 저장 소자들을 소거하기 위한 수단과;
    상기 복수의 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 유지하면서 상기 복수의 비휘발성 저장 소자들의 제1 그룹에 데이터를 프로그래밍하기 위한 수단과, 상기 제1 그룹은 상기 복수의 워드 라인들 중 짝수 워드 라인들과 관련된 비휘발성 저장 소자들이고 상기 제2 그룹은 상기 복수의 워드 라인들 중 홀수 워드 라인들과 관련된 비휘발성 저장 소자들이며, 상기 제1 그룹의 모든 비휘발성 저장 소자에 대해 상기 제1 그룹의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지되는 상기 제2 그룹의 멤버이고;
    상기 홀수 워드 라인들과 관련된 비휘발성 저장 소자들을 소거함이 없이 상기 짝수 워드 라인들과 관련된 비휘발성 저장 소자들에 대한 선택적 소거를 수행하기 위한 수단을 포함하는, 상기 비휘발성 저장 소자들의 제2 그룹을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 적어도 제1 그룹의 데이터를 소거하기 위한 수단과;
    상기 제2 그룹 전체의 모든 비휘발성 저장 소자에 대해 상기 제2 그룹 전체의 비휘발성 저장 소자의 위 또는 아래의 워드 라인 상의 임의의 이웃 비휘발성 저장 소자는 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제2 그룹 전체를 프로그래밍하기 위한 수단과; 그리고
    상기 제2 그룹 전체의 비휘발성 저장 소자의 위 또는 아래의 워드 라인들 상의 이웃 비휘발성 저장 소자들을 프로그램되지 않은 상태로 유지하면서 상기 비휘발성 저장 소자들의 제2 그룹 전체의 데이터를 소거하기 위한 수단을 포함하는 것을 특징으로 하는 비휘발성 저장 디바이스.
KR1020127007126A 2009-08-19 2010-08-17 선택적 메모리 셀 프로그래밍 및 소거 KR101661295B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/544,113 US8144511B2 (en) 2009-08-19 2009-08-19 Selective memory cell program and erase
US12/544,113 2009-08-19
PCT/US2010/045744 WO2011022386A1 (en) 2009-08-19 2010-08-17 Selective memory cell program and erase

Publications (2)

Publication Number Publication Date
KR20120066019A KR20120066019A (ko) 2012-06-21
KR101661295B1 true KR101661295B1 (ko) 2016-09-29

Family

ID=42797480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127007126A KR101661295B1 (ko) 2009-08-19 2010-08-17 선택적 메모리 셀 프로그래밍 및 소거

Country Status (7)

Country Link
US (3) US8144511B2 (ko)
EP (1) EP2467854B8 (ko)
JP (1) JP5575244B2 (ko)
KR (1) KR101661295B1 (ko)
CN (1) CN102763166B (ko)
TW (1) TW201140598A (ko)
WO (1) WO2011022386A1 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7852654B2 (en) * 2006-12-28 2010-12-14 Hynix Semiconductor Inc. Semiconductor memory device, and multi-chip package and method of operating the same
US8144511B2 (en) 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase
US8218366B2 (en) 2010-04-18 2012-07-10 Sandisk Technologies Inc. Programming non-volatile storage including reducing impact from other memory cells
US8296508B1 (en) * 2010-04-27 2012-10-23 Micron Technology, Inc. Secure memory device erase
JP2012069199A (ja) * 2010-09-22 2012-04-05 Toshiba Corp 半導体記憶装置
US9293194B2 (en) * 2011-01-27 2016-03-22 Apple Inc. Programming and erasure schemes for analog memory cells
US9009547B2 (en) 2011-01-27 2015-04-14 Apple Inc. Advanced programming verification schemes for analog memory cells
KR20120088452A (ko) * 2011-01-31 2012-08-08 에스케이하이닉스 주식회사 반도체 메모리 장치 및 데이터 프로그래밍 방법
KR101193059B1 (ko) * 2011-04-21 2012-10-22 에스케이하이닉스 주식회사 비휘발성 메모리 장치 및 그 동작 방법
US20120297116A1 (en) 2011-05-16 2012-11-22 Anobit Technologies Sparse programming of analog memory cells
US8477555B2 (en) * 2011-06-30 2013-07-02 Intel Corporation Deselect drivers for a memory array
US20130339603A1 (en) * 2011-12-23 2013-12-19 Feng Zhu Method, apparatus and system for determining access to a memory array
US8971125B2 (en) * 2012-07-02 2015-03-03 Micron Technology, Inc. Erase operations with erase-verify voltages based on where in the erase operations an erase cycle occurs
US9064575B2 (en) 2012-08-03 2015-06-23 Micron Technology, Inc. Determining whether a memory cell state is in a valley between adjacent data states
US9123401B2 (en) * 2012-10-15 2015-09-01 Silicon Storage Technology, Inc. Non-volatile memory array and method of using same for fractional word programming
CN105027098B (zh) * 2013-01-17 2018-02-27 英派尔科技开发有限公司 减轻单元间干扰
KR20140094278A (ko) * 2013-01-22 2014-07-30 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
KR102106866B1 (ko) 2013-01-29 2020-05-06 삼성전자주식회사 멀티레벨 불휘발성 메모리 장치 및 프로그램 방법
CN104103309B (zh) * 2013-04-15 2017-11-17 旺宏电子股份有限公司 Nand阵列的操作方法及计算机可读取的非暂时性储存媒体
US9400712B2 (en) * 2014-01-22 2016-07-26 Macronix International Co., Ltd. Memory device and erasing method thereof
KR102190670B1 (ko) 2014-03-03 2020-12-14 삼성전자주식회사 마이그레이션 관리자를 포함하는 메모리 시스템
KR20150104858A (ko) * 2014-03-06 2015-09-16 에스케이하이닉스 주식회사 반도체 장치 및 이의 동작 방법
CN105573858B (zh) * 2014-10-13 2018-07-20 中芯国际集成电路制造(上海)有限公司 数据的保存方法和电可擦编程只读存储器
CN105480207A (zh) * 2014-10-13 2016-04-13 张东 汽车微型除尘器
KR102292183B1 (ko) 2014-11-07 2021-08-25 삼성전자주식회사 불휘발성 메모리의 동작 방법 및 불휘발성 메모리를 포함하는 스토리지 장치의 동작 방법
US9552885B2 (en) 2014-12-10 2017-01-24 Sandisk Technologies Llc Partial block erase for open block reading in non-volatile memory
US9543023B2 (en) 2015-01-23 2017-01-10 Sandisk Technologies Llc Partial block erase for block programming in non-volatile memory
KR102005845B1 (ko) 2015-03-07 2019-08-01 에스케이하이닉스 주식회사 비휘발성 메모리 소자 및 이의 구동 방법
EP3262653B1 (en) * 2015-05-08 2019-04-03 SanDisk Technologies LLC Data mapping for non-volatile storage
CN106816175A (zh) * 2015-12-01 2017-06-09 中芯国际集成电路制造(上海)有限公司 存储器的控制方法及装置
KR102376505B1 (ko) * 2016-01-13 2022-03-18 삼성전자주식회사 불휘발성 메모리 장치 내 소거 불량 워드라인 검출 방법
CN105575431B (zh) * 2016-02-07 2019-10-29 中国科学院微电子研究所 三维存储器件的擦除方法
KR102469549B1 (ko) * 2016-04-11 2022-11-22 에스케이하이닉스 주식회사 메모리 장치 및 이의 동작 방법
US11205483B2 (en) 2016-04-11 2021-12-21 SK Hynix Inc. Memory system having dies and operating method of the memory system outputting a command in response to a status of a selected die
CN106205710B (zh) * 2016-07-19 2019-11-15 中国科学院微电子研究所 一种闪存存储器的擦除方法
KR102452994B1 (ko) * 2016-09-06 2022-10-12 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 동작 방법
US10074440B2 (en) 2016-10-28 2018-09-11 Sandisk Technologies Llc Erase for partially programmed blocks in non-volatile memory
CN106601293A (zh) * 2016-12-20 2017-04-26 合肥恒烁半导体有限公司 一种处理flash存储器中数据的方法及系统
US10910061B2 (en) * 2018-03-14 2021-02-02 Silicon Storage Technology, Inc. Method and apparatus for programming analog neural memory in a deep learning artificial neural network
US10734084B2 (en) 2018-05-31 2020-08-04 Western Digital Technologies, Inc. Scheme to reduce read disturb for high read intensive blocks in non-volatile memory
US10691358B2 (en) 2018-06-14 2020-06-23 Silicon Motion, Inc. Memory controller and method capable of using different storing modes to store data units having different data sizes
CN110827899A (zh) * 2018-08-10 2020-02-21 旺宏电子股份有限公司 存储器阵列的操作方法
US10861571B1 (en) * 2019-06-05 2020-12-08 Sandisk Technologies Llc Wordline voltage overdrive methods and systems
JP2021026786A (ja) * 2019-08-06 2021-02-22 キオクシア株式会社 半導体記憶装置
KR20210128791A (ko) * 2020-04-17 2021-10-27 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그 소거방법
KR102493067B1 (ko) * 2021-02-17 2023-01-30 한양대학교 산학협력단 프로그램 동작 시 메모리 셀들 사이의 간섭을 방지하는 3차원 플래시 메모리 및 그 동작 방법
US11574693B2 (en) 2021-06-15 2023-02-07 Sandisk Technologies Llc Memory apparatus and method of operation using periodic normal erase dummy cycle to improve stripe erase endurance and data retention
JP2023121345A (ja) * 2022-02-21 2023-08-31 キオクシア株式会社 半導体記憶装置
US11972805B2 (en) 2022-08-05 2024-04-30 Sandisk Technologies Llc Non-volatile memory with narrow and shallow erase

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US20080089130A1 (en) 2006-10-12 2008-04-17 Samsung Electronics Co., Ltd. Non-volatile memory devices and methods of programming the same
JP2008198265A (ja) 2007-02-09 2008-08-28 Toshiba Corp 不揮発性半導体記憶装置
JP2009059451A (ja) 2007-09-03 2009-03-19 Toshiba Corp 不揮発性半導体記憶装置およびその駆動方法

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5095344A (en) 1988-06-08 1992-03-10 Eliyahou Harari Highly compact eprom and flash eeprom devices
US5172338B1 (en) 1989-04-13 1997-07-08 Sandisk Corp Multi-state eeprom read and write circuits and techniques
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
US5890192A (en) 1996-11-05 1999-03-30 Sandisk Corporation Concurrent write of multiple chunks of data into multiple subarrays of flash EEPROM
US5867429A (en) 1997-11-19 1999-02-02 Sandisk Corporation High density non-volatile flash memory without adverse effects of electric field coupling between adjacent floating gates
US6151248A (en) 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
US6522580B2 (en) * 2001-06-27 2003-02-18 Sandisk Corporation Operating techniques for reducing effects of coupling between storage elements of a non-volatile memory operated in multiple data states
JP3984445B2 (ja) * 2001-09-12 2007-10-03 シャープ株式会社 不揮発性半導体メモリ装置のオーバーイレースセル検出方法
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US6781877B2 (en) * 2002-09-06 2004-08-24 Sandisk Corporation Techniques for reducing effects of coupling between storage elements of adjacent rows of memory cells
US7046568B2 (en) 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7196931B2 (en) 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US7327619B2 (en) 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US7324377B2 (en) * 2004-10-29 2008-01-29 Macronix International Co., Ltd. Apparatus and method for programming and erasing virtual ground EEPROM without disturbing adjacent cells
US20060140007A1 (en) 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
JP4734110B2 (ja) * 2005-12-14 2011-07-27 株式会社東芝 不揮発性半導体記憶装置
US7443726B2 (en) * 2005-12-29 2008-10-28 Sandisk Corporation Systems for alternate row-based reading and writing for non-volatile memory
US7349260B2 (en) * 2005-12-29 2008-03-25 Sandisk Corporation Alternate row-based reading and writing for non-volatile memory
US7518911B2 (en) * 2006-05-25 2009-04-14 Sandisk Corporation Method and system for programming multi-state non-volatile memory devices
CN101123117B (zh) * 2006-08-10 2010-07-07 莫斯艾得科技有限公司 非易失性存储器装置及其操作方法
KR100822804B1 (ko) * 2006-10-20 2008-04-17 삼성전자주식회사 커플링 영향을 차단할 수 있는 플래시 메모리 장치 및 그프로그램 방법
KR100845135B1 (ko) * 2006-12-22 2008-07-09 삼성전자주식회사 불휘발성 메모리 장치에서의 프로그램 방법 및 이를 위한불휘발성 메모리 장치
US7719889B2 (en) * 2007-06-25 2010-05-18 Sandisk Corporation Methods of programming multilevel cell nonvolatile memory
US8174905B2 (en) * 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
KR101489885B1 (ko) * 2007-11-21 2015-02-06 삼성전자주식회사 개선된 신뢰성을 갖는 트랩형 비휘발성 메모리 장치 및 그동작 방법
US7995392B2 (en) * 2007-12-13 2011-08-09 Kabushiki Kaisha Toshiba Semiconductor memory device capable of shortening erase time
US7924618B2 (en) * 2007-12-27 2011-04-12 Hynix Semiconductor Inc. Method of programming non-volatile memory device
KR101458792B1 (ko) * 2008-02-11 2014-11-10 삼성전자주식회사 플래시 메모리 장치
US8144511B2 (en) 2009-08-19 2012-03-27 Sandisk Technologies Inc. Selective memory cell program and erase

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007305210A (ja) 2006-05-10 2007-11-22 Toshiba Corp 半導体記憶装置
US20080089130A1 (en) 2006-10-12 2008-04-17 Samsung Electronics Co., Ltd. Non-volatile memory devices and methods of programming the same
JP2008198265A (ja) 2007-02-09 2008-08-28 Toshiba Corp 不揮発性半導体記憶装置
JP2009059451A (ja) 2007-09-03 2009-03-19 Toshiba Corp 不揮発性半導体記憶装置およびその駆動方法

Also Published As

Publication number Publication date
US8144511B2 (en) 2012-03-27
USRE45754E1 (en) 2015-10-13
US8315093B2 (en) 2012-11-20
KR20120066019A (ko) 2012-06-21
JP5575244B2 (ja) 2014-08-20
US20120140559A1 (en) 2012-06-07
EP2467854B8 (en) 2015-06-03
WO2011022386A1 (en) 2011-02-24
EP2467854A1 (en) 2012-06-27
CN102763166B (zh) 2015-04-29
TW201140598A (en) 2011-11-16
JP2013502668A (ja) 2013-01-24
US20110044102A1 (en) 2011-02-24
CN102763166A (zh) 2012-10-31
EP2467854B1 (en) 2015-02-25

Similar Documents

Publication Publication Date Title
KR101661295B1 (ko) 선택적 메모리 셀 프로그래밍 및 소거
KR101566460B1 (ko) 비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선
EP2458592B1 (en) Multiple pass write sequence for non-volatile storage
US7768834B2 (en) Non-volatile storage system with initial programming voltage based on trial
US8125832B2 (en) Variable initial program voltage magnitude for non-volatile storage
US8942043B2 (en) Non-volatile storage with process that reduces read disturb on end wordlines
US7551482B2 (en) Method for programming with initial programming voltage based on trial
WO2011062917A1 (en) Data coding for improved ecc eddiciency in a nonvolatile storage system
KR20120039562A (ko) 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출
KR20130042554A (ko) 비휘발성 저장장치에 대한 빠른 랜덤 액세스
KR20140109889A (ko) 고장난 워드 라인 스크린 및 데이터 복원을 갖는 비휘발성 저장장치
KR20090007278A (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
FPAY Annual fee payment

Payment date: 20190829

Year of fee payment: 4