KR101003163B1 - 프로그래밍 교란이 감소된 nand 플래시 메모리 프로그래밍 - Google Patents

프로그래밍 교란이 감소된 nand 플래시 메모리 프로그래밍 Download PDF

Info

Publication number
KR101003163B1
KR101003163B1 KR1020097011726A KR20097011726A KR101003163B1 KR 101003163 B1 KR101003163 B1 KR 101003163B1 KR 1020097011726 A KR1020097011726 A KR 1020097011726A KR 20097011726 A KR20097011726 A KR 20097011726A KR 101003163 B1 KR101003163 B1 KR 101003163B1
Authority
KR
South Korea
Prior art keywords
cells
bits
storing
voltage
programming
Prior art date
Application number
KR1020097011726A
Other languages
English (en)
Other versions
KR20090097863A (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
Priority claimed from US11/806,111 external-priority patent/US8059456B2/en
Application filed by 샌디스크 아이엘 엘티디 filed Critical 샌디스크 아이엘 엘티디
Publication of KR20090097863A publication Critical patent/KR20090097863A/ko
Application granted granted Critical
Publication of KR101003163B1 publication Critical patent/KR101003163B1/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/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

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

Abstract

메모리 디바이스가 비휘발성 메모리 내에 저장하기 위하여 호스트로부터 두개 이상 복수 비트들을 수신할 때, 상기 디바이스는 먼저 그 비트들을 휘발성 메모리에 저장한다. 그 후, 그 비트들을 비휘발성 메모리에 저장함에 있어서, 상기 디바이스는 상기 휘발성 메모리의 일부 셀들의 드레시홀드 전압들을 검증 전압보다 높은 값으로 상승시키며, 상기 휘발성 메모리의 다른 셀들의 드레시홀드 전압들은 상기 검증 전압보다 낮은 값으로 상승시킨다. 최종적으로, 각각의 셀은 복수의 비트들 각각으로부터 하나 이상의 비트들을 저장한다. 바람직하게는, 모든 셀들은 공통 워드라인을 공유한다. 데이터 저장장치는, 상기 시스템에서 구동되는 애플리케이션에 의해 생성되는 복수 비트들을 저장하는 것과 관련하여 유사하게 동작한다.

Description

프로그래밍 교란이 감소된 NAND 플래시 메모리 프로그래밍{PROGRAMMING A NAND FLASH MEMORY WITH REDUCED PROGRAM DISTURB}
본 발명은 플래시 메모리 프로그래밍에 관한것이며, 보다 상세하게는 프로그래밍 교란(program disturb)이 감소된, NAND 플래시 메모리와 같은 플래시 메모리의 프로그래밍 방법에 관한 것이다.
플래시 메모리 디바이스들은 디지털 정보를 저장하기 위하여 다양한 애플리케이션들에서 사용된다. 기본적인 플래시 셀은 트랜지스터로 구성되는 바, 상기 트랜지스터는, 채널과 상기 트랜지스터의 제어 게이트 사이에 위치한 플로팅 게이트를 구비한다. 트랜지스터의 드레시홀드(threshold) 전압은, 트랜지스터의 제어 게이트에 인가될때, 채널의 상태를 비도통(non-conducting) 상태에서 도통(conducting) 상태로 변경하는 가장 낮은 전압으로 정의된다. 이 전압은 플로팅 게이트 내에 포획(trap)된 음(-)의 전하의 양에 영향을 받으며, 전하가 많을 수록, 셀의 드레시홀드 전압은 더 높아진다. SLC(단일 레벨 셀)-타입 디바이스들은, "1" 상태를 나타내기 위하여 충전되지 않은(zero charged) 플로팅 게이트들을 구비한 셀들을 사용하며, "0" 상태를 나타내기 위하여 음으로 충전된(negatively charged) 플로팅 게이트들을 구비한 셀들을 사용한다. 셀의 상태는 상기 셀의 드레시홀드 전 압을 사용하여 나타낼 수있는바, 이 경우에는 2개 전압 레벨, 즉 "1" 상태 전압과 "0" 상태 전압이 사용된다. 셀들은 미세하게 다른 "0" 상태 전압들을 지닐 수 있지만, 제어 게이트에 "1" 상태 전압과 "0"상태 전압 사이의 전압을 인가하는 것은 "1" 상태의 셀들이 도통되게하며, "0" 상태의 셀들은 비도통 상태에 머물게 한다.
가장 일반적인 종류의 다중 레벨 셀(MLC; Multi Level Cell) 타입 디바이스들은 플로팅 게이트에서 0 전하를 포함하는 4개의 전하량을 사용하므로, 4개의 전압 레벨에 의하여 셀의 상태가 표현될 수 있고, 따라서 MLC 셀은 셀당 2비트를 저장한다. 일반적으로 셀당 N비트는 2N개의 전압 레벨을 사용하여 표현될 수 있다. 셀당 더 많은 수의 비트를 사용하는 것은 높은 데이터 밀도(data density)를 지닌 플래시 디바이스를 생산할 수 있게 해주며, 그러므로 전체적인 플래시 디바이스의 개당 비용을 줄여준다.
NAND 플래시 디바이스는 블록(blcok)이라고 지칭되는, 셀들의 어레이(array)로 구성된다. 블록은 매트릭스(matrix)로 이루어지는 바, 상기 매트릭스에서 로우(row)는 셀들의 제어 게이트들을 연결하는 워드 라인(WL)이며, 각각의 컬럼(column)은 체인형의 플로팅 게이트 셀들인바, 상기 플로팅 게이트 셀들은 상기 체인의 일 측(side)에서 제1 선택 게이트(SGD)를 통해 해당 비트라인(BL)에 연결되며, 상기 체인의 타 측에서 제2 선택 게이트(SGS)를 통해 공통 소스 라인에 연결된다. 제어 게이트들이 연결되어 WL을 형성하는 방식과 유사하게, SGD 게이트들이 연결되어 SGD 라인을 형성하며, SGS 게이트들이 연결되어 SGS 라인을 형성한다. 8개 의 WL과 4256개의 BL을 지닌 NAND 플래시 어레이의 일 블록의 예가 도 1에 도시된다. 그러한 어레이들의 예는 미국 특허 5,774,397와 6,046,935에서 제시되는바, 이 특허들은 본 명세서에서 그 전체가 제반 목적을 위하여 참조로서 통합된다. 그러한 메모리의 물리 페이지(physical page)는, 셀들의 트랜지스터 게이트들이 동일한 WL에 연결된 셀들을 포함한다. 도 1에 도시된 예에서 각 페이지는 4256개의 셀들을 포함하며, 따라서 도 1에 도시된 블록은 총 34,048개의 셀들, 즉 각각 4256개의 셀들을 지닌 8개의 페이지를 포함한다. NAND 블록의 소거 동작 중에, 아래에서 설명되는 바와 같이, 전체 블록이 소거되며, NAND 셀들의 프로그래밍 및 판독 동작들은 페이지 단위(per-page basis)로 수행된다. 결론적으로, 본 발명의 목적을 위하여, 셀 블록은 동시에 소거되는 최소의 셀 묶음(chunk of cells)으로 정의되며, 셀 페이지는 동시에 기입되는(프로그래밍되는) 가장 최소의 셀 묶음으로 정의된다.(역사적인 이유로, 플래시 셀에 대한 기입은 셀의 "프로그래밍"이라 지칭한다. "기입"과 "프로그래밍"은 본 명세서에서 호환성있게 사용된다.)
소거 동작은 C-p-우물(well)(셀 들 아래에 위치하며 모든 셀들에 대해서 공통적인, 플래시 디바이스의 실리콘 구조체의 내부 영역)과 선택된 블록의 모든 WL들(0전압을 보유하고 있는 WL들)사이에 높은 전압을 인가하는 단계를 수반한다. 이 높은 전압은, 그 전압의 영향을 받은 플로팅 게이트들로 하여금, 선행 프로그래밍 동작에 의해 상기 플로팅 게이트 내에 포획되었던 모든 전하를 방전하게 하며, 따라서 셀들을 소거 상태로 만든다.
프로그래밍 동작은, 선택된 WL에 높은 전압을 인가하는 단계와, 다른 WL들을 도통 상태(conducting state)로 만들도록 다른 WL들에 낮은 전압을 인가하는 단계를 수반한다. 프로그래밍될 셀들의 BL은 0 전압으로 유지되므로 셀들은 BL들의 0 전압과 선택된 WL의 높은 전압에 의해서 야기되는 스트레스하에 놓이게 된다. 프로그래밍될 셀들의 BL들은 0 전압으로 유지되므로, 상기 셀들은, 선택된 WL의 높은 전압과 상기 BL의 0 전압에 의해 야기되는 스트레스하에 놓이게 된다. 프로그래밍될 것으로 의도되지 않은 셀들의 BL들은, BL의 전압과 WL에 인가된 전압 간의 차에 의해 야기되는 스트레스가 상기 셀들의 플로팅 게이트 전하에 변화를 일으킬 정도로 충분하지는 않게끔 되는 전압 레벨에 연결된다. 프로그래밍 과정은 일련의 프로그래밍 펄스들로 이루어지는바, 상기 플로팅 게이트 내에 더 많은 전하가 포획되어야 하는지를 체크하기 위해 셀 게이트에 각 셀의 타겟 드레시홀드 전압을 인가하는 검증 동작들이 상기 일련의 프로그래밍 펄스들 사이사이에 배치된다(interleaved). 어떠한 셀의 플로팅 게이트 내에 더 많은 전하가 포획될 필요가 있다면, 선행한 프로그래밍 펄스보다 조금 더 높은 진폭 또는 더 긴 지속기간(duration)을 지닌 다른 프로그래밍 펄스가 인가된다. 셀이 그것의 타겟 드레시홀드 전압에 도달하였다면, 프로그래밍될 것으로 의도되지 않은 셀들과 유사하게, 그 셀의 BL에 적절한 전압 레벨을 인가함으로써 추가적인 프로그래밍이 금지된다.
판독 또는 검증 프로세스는 셀 게이트에 하나 이상의 기준 전압 레벨들을 인가하는 단계와 상기 셀이 전도성(conductive)인지를 체크하는 단계를 수반한다. 이 기준 전압은 선택된 WL에 인가된다. 다른 WL들은, 다른 셀들을 전도성으로 만드는 판독 통과 전압(read pass voltage)에 연결되며, 셀 체인의 SGS 라인은 도통 상태 로 유지되어 상기 체인을 0 전압에서 유지되고있는 C-소스 라인에 연결한다. BL은 어떠한 전압으로 선충전(precharge)되고, 선택된 WL에 인가된 기준 전압이 테스트 셀(tested cell)의 기준 전압보다 높다면, 테스트 셀은 도통되며, 이는 전체 체인을 도통 상태로 만들고, 상기 선충전된 BL 전압은 줄어든다. 테스트 셀에 인가된 기준 전압이 테스트 셀의 드레시홀드 전압보다 낮다면, 테스트 셀은 셀의 체인을 통한 도통이 이루어지지 않게 하며, BL에 인가된 전압은 그것의 선충전 레벨에서 유지된다. BL들에 연결된 감지 증폭기는 셀의 상태에 대한 결정을 한다. 하나 이상의 메모리 셀들의 정확한 프로그래밍을 검증하기 위해 사용되는 기준전압은, 본 명세서에서 "검증 전압(verify voltage)"이라 지칭된다.
SLC 디바이스의 판독 동작은 "0"과 "1" 전압 레벨 사이에 있는 하나의 기준 전압 레벨을 사용한다. 4개의 셀 상태들을 가진 MLC 디바이스의 판독 동작은 3개의 기준 전압 레벨들을 사용하며, 2N 상태에 의해 표현되는 셀당 N비트를 저장하는 디바이스는 판독 동작을 위하여 2N-1 개의 기준 전압을 필요로 한다.
크로스 커플링 및 프로그래밍 교란과 같은 플래시 프로그래밍 동작과 관련된 현상은, 플래시 셀들의 군(population)의 실제 드레시홀드 전압 분포들이, 셀당 N 비트(N-bits-per-cell) 디바이스에 대해 2N 전압 그룹의 형태를 취하게 한다. 8개의 명목(nominal) 드레시홀드 전압 레벨들을 지닌 디바이스의 드레시홀드 전압 분포의 예가 도 2에 도시된다. 이상적으로, 그러한 디바이스의 셀들을 판독하기 위한 해당 기준 전압들은, 도 2에 도시된 바와 같이 전압 그룹 : VR1, VR2, VR3, VR4, VR5, VR6, 그리고 VR7 사이에 있어야 한다.
신뢰성있는 판독 동작을 위하여, 드레시홀드 전압 레벨 그룹들은 분리되어야만 하며, 많은 수의 전압 레벨들을 사용하는 것은, 최하위 전압 레벨과 최상위 전압 레벨 사이의 차가 더 커진다는 것을 의미한다. 높은 전압 레벨들은, 프로그래밍 동작 중에, WL에 높은 프로그래밍 펄스 전압을 인가하는 것을 요구할 것이며, 이는 하기에 도시된 바와 같이 프로그래밍 교란의 영향을 증가시킨다.
프로그래밍 동작은, 선택되지 않은 WL이 도통 전압에서 유지되게 하고 선택되지 않은 BL이 프로그래밍 전압보다 낮은 어떠한 전압에서 유지되게 한 채로, 선택된 WL에 높은 전압을 인가하고 선택된 BL에 0 전압을 인가함으로써, 프로그래밍될 셀들에 스트레스를 가한다. 선택된 페이지의 모든 게이트들이 선택된 WL에 인가된 높은 전압에 연결되지만, WL 전압과 선택되지 않은 BL 사이의 차가 WL 전압과 선택된 BL 사이의 차보다 낮으므로, 프로그래밍 스트레스는 선택된 WL과 선택된 BL의 교차부에 있는 셀들에만 인가된다. 이상적인 디바이스에서는, 프로그래밍 동작 중에, 선택된 셀들만이 그것들의 플로팅 게이트 전하를 변경할 것이지만, 실제 디바이스에서는 선택된 WL과 선택되지 않은 BL 사이의 더 작은 스트레스가, 이 플로팅 게이트들의 전하 역시 근소하게 변경되도록 할 것이다. 이것은 프로그래밍 교란 현상으로 알려져 있으며, 그 영향은, 주로 하위 전압 레벨 셀들에서 보여지고, 보다 높은 프로그래밍 전압들을 사용할 때에 증가한다. 프로그래밍 교란 효과를 포함 하는 프로그래밍 동작 후의 셀 드레시홀드 전압 분포가 도 6에 도시되며 하기에서 설명된다.
다음의 예는 단순화된 상황에서의 프로그래밍 교란 효과를 도시하는바, 이 경우에 플래시 메모리에 프로그래밍될 데이터는 8개의 전압 레벨들, 즉 #0 내지 #7로 표현된다. 다른 프로그래밍 기법들이 존재하지만, 그것들은 보통 다른 전압 레벨들을 프로그래밍하기 위하여 프로그래밍 전압의 순차적인 증가(sequential increase)를 사용하며, 따라서, 이 예는 레벨 #1, 그후 #2, 그리고 #7 까지 계속 프로그래밍하는 것을 가정한다. 이 예는 또한 레벨 #N으로 프로그래밍될 셀들이 우선 레벨 #1 내지 #(N-1)로 프로그래밍되며, 그후 더 높은 프로그래밍 전압들을 사용하여, 이 셀들이 레벨 #N으로 프로그래밍된다고 가정한다. 이 예는 사용자 데이터가 모두 8개의 전압 레벨들로 표현되며, 사용자 데이터는 이 8개 레벨들 간에 균등하게 분포된다고 가정한다.
프로그래밍은 도 3에 도시된 바와 같이,모든 셀들이 소거 상태에 있는 것에서 시작한다. 레벨 #1을 프로그래밍 한 후의 전압 분포는 도 4에 도시되며, 여기서 레벨 #1은 레벨 #1로 프로그래밍될 셀들, 그리고 또한 레벨 #2 내지 #7로 프로그래밍될 셀들을 포함한다. 레벨 #1로 프로그래밍될 셀들의 BL들은, 이 셀들이 그것들의 플로팅 게이트에서 그것들의 타겟 전하에 도달한 후, 금지 상태(inhibit state)에 놓인다. 도 5는 레벨 #2로 프로그래밍한 후의 전압 분포를 도시하는 바, 여기서 레벨 #2는 레벨 #2로 프로그래밍될 셀들과 또한 레벨 #3 내지 #7로 프로그래밍될 셀들을 포함한다. 레벨 #7을 프로그래밍한 후의 전압 분포가 도 6에 도시되는 바, 여기서 분포 #0과 #1과 같은 하위 레벨 분포들의 폭이 넓어지고 시프트되는 것은, 주로 레벨 #6과 #7과 같은 상위 레벨들을 프로그래밍할 때의 프로그래밍 교란 현상에 의해 야기된다. 레벨 #1 셀들의 일부가 레벨 #2 셀이 된것을 볼 수 있으며, 따라서, 플래시로부터 데이터가 판독될 때, 그 셀들은 잘못 판독될 것이다. 프로그래밍되는 전압 레벨들을 조정하여 최종 전압 분포가 좁아지고 알맞은 위치에 있게 하기 위한 다양한 기법들이 시도되지만, 프로그래밍 교란 효과가, 프로그래밍되는 데이터 내용물에 의존한다는 사실은, 모든 데이터 패턴들에 대해 작용하는 적절한 기법을 설계하는 것을 어렵게 만든다. 예를 들어, 우선 레벨 #1의 위치가 더 낮은 전압으로 설정되어, 레벨 #6과 #7을 프로그래밍하는 것에 의해 야기되는 프로그래밍 교란은 상기 #1의 분포를 올바른 위치에 놓이게 할 수 있으나, 이 경우 하위 레벨들에 의해 야기되는 프로그래밍 교란 효과가 훨씬 미미하기 때문에, 이러한 기법은 레벨 #6과 #7로 표현되는 데이터를 포함하지 않는 페이지에 대해서는 실패할 것이며, #1 셀들의 일부가 #0 셀로 판독될 것이다.
그러므로 위에서 설명된 것과 같은 공지된 방법들의 단점들을 극복하는 플래시 셀들을 프로그래밍하는 방법의 필요성이 널리 인지되며, 그러한 방법을 갖는 것이 매우 유익할 것이다.
본 발명은 프로그래밍 교란 효과가 감소된 셀당 다중 비트(multiple-bits-per-cell) 플래시 디바이스 프로그래밍을 위한 기법이다.
본 발명에 따르면, 메모리 디바이스에 데이터를 저장하는 방법이 제공되는 바, 상기 방법은 (a) 상기 메모리 디바이스의 호스트로부터, 상기 메모리 디바이스의 비휘발성 메모리의 복수의 셀들 내에 저장하기 위한 적어도 2개의 복수 비트들을 수신하는 단계와; (b) 상기 메모리 디바이스의 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계와; 그리고 (c) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계에 후속하여, 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계를 포함하며, 이 단계는 (i) 상기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 전압을 검증 전압보다 큰 제1 값으로 상승시키는 단계와; 그리고 (ii) 상기 제1의 적어도 하나의 셀의 드레시홀드 전압이 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압보다 낮은 제2 값으로 상승시키는 단계에 의해 수행되며, 여기서 상기 각각의 복수 비트들 중 적어도 1 비트는 상기 셀들 중 적어도 하나의 셀에 저장된다.
본 발명에 따르면, 메모리 디바이스가 제공되는 바, 상기 메모리 디바이스는 (a) 복수의 셀들을 포함하는 비휘발성 메모리와; (b) 휘발성 메모리와; 그리고 (c) 제어기를 포함하는 바, 상기 제어기는, 상기 메모리 디바이스의 호스트로부터 상기 메모리 디바이스 내에 저장하기 위한 적어도 2개의 복수 비트들을 수신함에 응답하여, 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하도록 동작하며, 그리고 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 것에 후속하여 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하도록 동작하는바, 이 동작은 (A) 상기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 전압을 검증 전압보다 큰 제1 값으로 상승시키는 단계와, 그리고 (B) 상기 제1의 적어도 하나의 셀의 드레시홀드 전압이 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압보다 낮은 제2 값으로 상승시키는 단계에 의해 수행되며, 여기서 각각의 복수 비트들 중 적어도 하나의 비트는 상기 셀들 중 적어도 하나의 셀에 저장된다.
본 발명에 따르면, 데이터를 저장하는 방법이 제공되는바, 상기 방법은 (a)메모리 디바이스의 휘발성 메모리 내에 적어도 두개 비트들을 저장하는 단계와; 그리고 (b) 상기 휘발성 메모리 내에 적어도 두개 비트들을 저장하는 단계에 후속하여, 상기 메모리 디바이스의 비휘발성 메모리의 복수 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계를 포함하며, 이 단계는 (i) 상기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 전압을 검증 전압보다 큰 제1 값으로 상승시키는 단계와, 그리고 (ii) 각각의 제1의 적어도 하나의 셀의 드레시홀드 전압이 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압보다 낮은 제2 값으로 상승시키는 단계에 의해 수행되며, 여기서 각각의 복수 비트들 중 적어도 하나는 상기 셀들 중 적어도 하나에 저장된다.
본 발명에 따라, 시스템이 제공되는바, 상기 시스템은 (a) 메모리 디바이스와, 상기 메모리 디바이스는 (i) 휘발성 메모리, 그리고 (ii) 복수의 셀들을 포함하는 제1 비휘발성 메모리를 포함하며; (b) 상기 제1 비휘발성 메모리를 위한 소프트웨어 드라이버의 코드가 저장되는 제2 비휘발성 메모리와, 상기 코드는 상기 제1 비휘발성 메모리 내에 적어도 2개의 복수 비트들을 저장하기 위한 코드를 포함하며, 상기 저장은, (i) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계와, (ii) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계에 후속하여, 상기 복수 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계에 의해 이루어지며, 이 단계는 (A) 살기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 전압을 검증 전압보다 높은 제1 값으로 상승시키는 단계와, 그리고 (B) 제1의 적어도 하나의 셀 각각의 드레시홀드 전압이 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압보다 낮은 제2 값으로 상승시키는 단계에 의해 수행되며, 여기서 각각의 상기 복수 비트들 중 적어도 하나의 비트는 상기 셀들 중 적어도 하나에 저장되며; 그리고 (c) 상기 코드를 실행하기 위한 프로세서를 포함한다.
본 발명의 제1의 기본 방법은 메모리 디바이스에 데이터를 저장하는 방법이다. 메모리 디바이스는 그것의 호스트로부터, 상기 메모리 디바이스의 비휘발성 메모리의 셀들에 저장하기 위한 두개 이상의 복수 비트들을 수신한다. 먼저, 복수 비트들이 메모리 디바이스의 휘발성 메모리 내에 저장된다. 후속적으로, 복수의 비트들은 비휘발성 메모리의 복수의 셀들에 저장된다. 비휘발성 메모리의 셀들에 비트들을 저장하는 단계는 상기 셀들 중 제1의 하나 이상의 셀들의 각각의 드레시홀드 전압을 검증 전압보다 큰 제1 값으로 상승시키는 단계와, 그후, 제1 셀(들)의 드레시홀드 전압(들)이 후속적으로 제1 값(들)에서 유지되는 동안, 상기 셀들 중 제2의 하나 이상의 셀들의 각각의 드레시홀드 전압을 상기 검증 전아보다 낮은 제2 값으로 상승시키는 단계를 포함한다. 셀의 드레시홀드 전압이 "실질적으로" 특정한 값에서 유지되는 것은 상기 드레시홀드 전압에 대한 어떠한 변경이 충분히 미미해서(minor) 상기 드레시홀드 전압이 단일 드레시홀드 전압 레벨 그룹 내에서 유지된다는 것을 의미한다. 각각의 복수의 비트들 중 적어도 하나의 비트가 상기 셀들 중 적어도 하나의 셀에 저장된다. 뒤의 한정사항(latter limitation)은 본 발명을, 기입 캐쉬(write cache)를 사용하는 종래 기술의 메모리 디바이스와 구분짓는다. 그러한 종래 기술의 디바이스들에서, 제1 복수의 비트들은, 비휘발성 메모리의 제1 복수의 셀들로 이송(transfer)되기 전에 제1 휘발성 메모리 내에 저장되며; 만약 제1 복수의 비트들이 제1 복수의 셀들로 이동되기 전에, 제2 복수의 셀들 내에 저장될 제2 복수의 비트들이 도착한다면, 상기 제2 복수의 비트들은 제1 복수의 비트들의 이동이 완료될 때까지 제2 휘발성 메모리 내에 저장된다.
본 발명의 제2 기본 방법은 제1 기본 방법과 유사하지만, 메모리 디바이스의 호스트로부터 복수의 비트들을 수신하는 단계를 결여하며, 따라서, 이 기본 방법은, 메모리 디바이스 그 자체에 의해서뿐만아니라 메모리 디바이스의 호스트에 의해서 구현되도록 수정이 가능하다. 먼저, 2개 이상의 복수의 비트들이 메모리 디바이스의 휘발성 메모리 내에 저장된다. 후속적으로, 복수의 비트들이, 제1 기본 방법와 동일한 방식으로, 상기 메모리 디바이스의 비휘발성 메모리의 복수의 셀들 내에 저장된다.
바람직하게는, 각각의 복수의 비트들 중 적어도 하나의 비트가 셀들 중 하나에 각각 저장된다.
바람직하게는, 상기 셀들은 비휘발성 메모리의 공통 워드라인을 공유한다.
바람직하게는, 제1 방법에서, 각각의 복수의 비트들은 호스트에 의해 개별적인 각각의 명령 안에서 송신된다. 예를 들어, 호스트가 "프로그래밍 프리픽스 오피코드(programming prefix opcode), 주소 페이지-1, 데이터 페이지-1, 더미 프로그래밍 서픽스 오피코드(dummy programming suffix opcode), 주소 페이지-2, 데이터 페이지-2, 프로그래밍 서픽스 오피코드" 형태의 순서로 송신하여, 메모리 디바이스에 2개의 복수의 비트들을 송신한다면, 상기 더미 프로그래밍 서픽스 오피코드가 제1 복수의 비트들(주소 페이지-1, 데이터 페이지-1)을 정의하는 필드들을 제2 복수의 비트들(주소 페이지-2, 데이터 페이지-2)을 정의하는 필드들로부터 분리하므로, 상기 2개의 복수 비트들은 2개의 명령에 의해 송신되는 것으로 여겨진다.
바람직하게는, 하기에서 논의되는 "동시 프로그래밍(simultaneous programming) 예"에서와 같이, 셀들 내에 두개 이상의 복수 비트들을 저장하는 것은, 결과적으로 각각의 비트 패턴이, 복수의 비트들 각각으로부터 적어도 하나의 비트가 저장되는 하나 이상의 셀들 각각에 저장되게 한다. 대안적으로, 하기에서 논의되는 "순차 프로그래밍(sequential programming) 예"에서와 같이, 셀들 내에 두개 이상의 복수 비트들을 저장하는 것은, 결과적으로, 복수의 비트들 각각으로부터 적어도 하나의 비트가 저장되는 상기 하나 이상의 셀들 각각에 각 비트 패턴의 단지 일부만이 저장되게 한다.
본 발명의 범주는 또한 복수의 셀들을 지닌 비휘발성 메모리, 비휘발성 메모리, 그리고 호스트로부터 2개 이상의 복수의 비트들을 수신함에 응답하여, 본 발명의 제1 방법을 이용하여 상기 셀들을 프로그래밍하기 위한 제어기를 포함한다. 바람직하게는, 상기 셀들은 NAND 플래시 셀들이다.
본 발명의 범주는 또한 휘발성 메모리를 지닌 메모리 디바이스와, 복수의 셀들을 포함하는 제1 비휘발성 메모리를 포함하는 시스템을 포함하는 바, 상기 시스템은 또한 본 발명의 제2 방법을 구현하는 소프트웨어 드라이버의 코드가 저장되는 제2 비휘발성 메모리와, 상기 코드를 실행하기 위한 프로세서를 포함한다. 바람직하게는, 제1 비휘발성 메모리는 NAND 플래시 메모리이다.
하기의 예에서, "복수" 비트들(pluralities of bits) 은, 비트들의 "논리 페이지들"이다. 본 명세서에서 비트들의 논리 페이지는, 물리 페이지 내의 셀 개수와 수적으로 동일한 비트들의 그룹을 의미하는 것으로 이해되며, 따라서 셀당 N비트인 셀들의 물리 페이지는 N개의 논리 페이지들까지 저장할 수 있다. 플래시 메모리 디바이스들은 일반적으로 그들의 호스트들로부터 한번에 하나의, 비트들의 논리 페이지를 수신하도록 되어 있다. 한 종류(class)의 MLC 플래시 메모리 디바이스들에서, 논리 페이지들이 도착함에 따라 상기 디바이스는 그 플래시 메모리 내에 논리 페이지들을 저장한다. 다른 종류의 MLC 플래시 메모리 디바이스들에서, 상기 디바이스는, 적어도 2개의 논리 페이지들의 만큼의 비트들(two logical pages' worth of bits)이 축적될 때까지(거의 대부분, 전체 물리 페이지(full physical page) 만큼의 비트들이 축적될 때까지), RAM 또는 한 세트의 레지스터들과 같은 로컬 비휘발성 메모리 내에 논리 페이지들을 축적하고, 그후 축적된 비트들 전체를 저장하도록 그 플래시 메모리의 물리 페이지를 프로그래밍한다. 본 발명은 두번째 종류의 MLC 플래시 메모리 디바이스들에 관한 것이다.
본 발명은 본 명세서에서, 단지 예시로서, 첨부의 도면들을 참조로하여 설명된다.
도 1은 NAND 플래시 셀 블록의 개략도이다.
도 2-6은 종래 기술에 따라 NAND 워드 라인의 셀들을 프로그래밍하는 것을 도시한다.
도 7-11은 본 발명에 따라 NAND 워드 라인의 셀들을 프로그래밍하는 것을 도시한다.
도 12는 본 발명의 메모리 디바이스의 고 수준의 블럭도이다.
도 13은 본 발명의 데이터 저장 시스템의 고 수준의 블럭도이다.
본 발명에 따른 플래시 메모리 프로그래밍의 원리 및 동작은 도면들과 그에 수반한 설명들을 참조하여 보다 잘 이해될 수 있을 것이다.
본 발명의 주요 개념은 프로그래밍 동작을, 높은 전압 레벨들을 프로그래밍한 후 낮은 전압 레벨들을 프로그래밍하는 두개 이상의 단계(phase)로 분할하는 것이다. 프로그래밍 교란 효과는 전압 레벨들의 차에 매우 의존적이므로, 전압 분포는, 가장 높은 전압 레벨 및 그보다 낮은 전압 레벨들의 프로그래밍이 최대로 영향을 받을 때에 최고로 시프트된다. 상위 레벨들을 프로그래밍하는 제1 단계와 관련된 프로그래밍 교란은 주로 소거 상태에 있는 셀들에 영향을 준다. 대개, 최종 전 압 레벨들은 소거 상태를 포함하므로, 기준 레벨들을 설정할 때, 그 분포를 확대하는 것이 고려된다.
도면을 다시 참조하면, 프로그래밍 교란 효과를 감소시키도록 프로그래밍 동작이 두 부분으로 분할된 8-레벨 셀 디바이스의 프로그래밍 동작의 예가 도 7 내지 도 11에 도시된다.
도 7에 도시되는 바와 같이, 프로그래밍 동작 전에, 모든 셀들은 레벨 #, 즉 소거 상태에 있다.
프로그래밍의 제 1 단계는 레벨 #4 내지 #7을 프로그래밍하기 위하여 높은 전압을 사용한다. 레벨 #4를 프로그래밍한 후의 셀 전압 분포가 도 8에 도시된다. 현재 레벨 #4에 있는 셀들은 레벨 #4 또는 그보다 높은 레벨, 이 예에서는 레벨 #5, #6, 그리고 #7로 프로그래밍될 셀들이다. 레벨 #4 내지 #7을 프로그래밍한 후의 분포가 도 9에 도시된다. 도 9에 도시된 바와 같이, 레벨 #6 및 #7을 프로그래밍하기 위하여 높은 전압들을 인가하는 것은 프로그래밍 교란 효과로 인해 소거 상태의 셀 분포를 더욱 넓어지게 하였다.
프로그래밍 동작의 제 2 단계는, 이 단계가 단지 레벨 #1 내지 #3을 프로그래밍함에 따라 더 낮은 프로그래밍 전압들만을 사용하므로, 하위 레벨들에 대한 프로그래밍 교란 효과가 최소화된다. 레벨 #1을 프로그래밍 한 후의 전압 분포는 도 10에 도시되며, 레벨 #2와 #3을 프로그래밍한 후의 분포는 도 11에 도시된다. 레벨 #1 및 #2와 같은 하위 레벨은 레벨 #6 및 #7과 같은 상위 레벨들의 프로그래밍 후에 프로그래밍되므로, 하위 레벨 셀은 프로그래밍 교란 효과의 영향 받지 않는다. 또한, 제2 단계는 레벨 0 분포의 폭을 단지 조금만 변경하는 바, 레벨 0분포의 폭은 도 9에서 보다 도 11에서 눈에띄게 더 넓은 것은 아니다.
본 발명의 핵심은 셀들의 물리 페이지에 기입하는 동안, 높은 드레시홀드 전압들로 설정될 페이지의 셀들이, 낮은 드레시홀드 전압들로 설정될 페이지의 셀들을 프로그래밍하기 전에 프로그래밍된다는 것이다. 셀들의 타겟 상태들에 따른 이러한 셀 프로그래밍의 순서는 혁신적인 것이며, 낮은 드레시홀드 상태들에서 높은 드레시홀드 상태들로 프로그래밍이 처리 되는 일반적인 기술과는 반대이다. 이러한 비-표준의(non-standard) 순서는 프로그래밍 교란 효과를 감소시키는 이점을 제공한다.
위의 설명은 MLC NAND 디바이스들의 기본 아키텍쳐(architecture)를 참조로 하지만, 본 발명은 또한 종래 기술의 디바이스들에서 사용되는 보다 복잡한 MLC 플래시 디바이스 아키텍쳐들에도 적용가능하다. 다음에 주목하여야 한다.
A. 위의 예는 워드 라인과 페이지가 일 대 일 대응인 경우이다. 일부 디바이스들에는, 동일 워드 라인을 공유하는 다중 페이지들("듀얼 평면 페이지" 및 "짝수 및 홀수 페이지"이라 칭해지는 구성에서와 같이, 일반적으로 2 페이지)이 존재한다. 주목할 점은 이러한 페이지들은 플래시 메모리 디바이스에 의해 정의되는 물리 페이지들이며, 플래시 다비아시의 호스트에 의해 정의되는 논리 페이지들이 아니라는 점이다. 그러한 페이지들 각각이 독립적으로 기입될 수 있으므로, 페이지가 워드 라인 전체를 점유하는지 또는 그것의 워드 라인을 하나 이상의 다른 페이지들과 공유하는지와는 관계없이, 본 발명의 방법들은 그러한 각각의 페이지의 기입에 적 용된다.
B. 위의 예는 MLC 셀을 공유하는 모든 데이터 비트들이 동시에 셀에 기입되는 경우이다. 즉, 셀이 그 최대 비트 용량보다 적은 비트를 저장하는 안정 상태(stable state)는 없다. 일부 디바이스들에서, 셀의 비트들은 하나씩 셀에 기입되며, 따라서, 일부 비트들이 이미 저장되었는데 반해 다른 비트들은 여전히 저장될 것인 경우가 존재한다. 그러한 방식이 선호되는 한가지 공통적인 예는, 플래시 디바이스의 사용자가 기입될 비트들을 산발적으로(sporadically), 연속적인 비트 그룹 공급(provision)의 사이에 긴 시간 간격(time interval)으로, 제공하는 경우이다. 본 발명의 목적을 위하여, 모든 비트들을 동시에 기입하는 제1 방법은 "동시 기입" 또는 "동시 프로그래밍"이라고 지칭되는 반면, 적어도 하나의 비트가 셀에 저장되고 순차적으로 적어도 하나의 다른 비트가 저장되는 경우, 그 방법은 "순차 기입" 또는 "순차 프로그래밍"이라 지칭된다. 본 발명의 방법들은 동시 기입 방법들과 순차 기입 방법들의 단계들 중 각 하나에 개별적으로 모두 적용가능한바, 상기 순차 기입 방법의 각 단계들은, 그 단계에서 셀당 두개 이상의 비트들이 저장되는 경우, 그 단계 자체가 동시 기입을 사용하여 기입된다.
순차 기입과 동시 기입을 설명하기 위하여, 다음의 테이블은, 바이너리 숫자로서 0과 7 사이의 정수(integer)를 표현하기 위하여, 각각의 비트 패턴을 사용하여 레벨 #0 내지 #7 을 각각 식별하는 한 방법을 도시한다.
레 벨#1 0 1 2 3 4 5 6 7
비트 패턴 111 110 101 100 011 010 001 000
다음의 논의에서는, 3 비트의 비트 패턴에서, 최우측(rightmost) 비트가 최 하위 비트(LSB)이고, 최좌측(leftmsot) 비트가 최상위 비트(MSB)인 것으로 가정된다. 애플리케이션이, 물리 페이지당 4256 8-레벨 플래시 셀들인 2개의 물리 페이지들에 저장하기 위하여, 한번에 8512 데이트 비트들(각각 4256 비트들인 2개의 논리 페이지들)을 생성한다고 가정하다. 제1 8512 데이터 비트들이 생성되면, 이 비트들은 제1 물리 페이지의 셀들의 2개의 MSB로서 저장된다. 제1 프로그래밍 단계에서, 최상위 "00"을 저장할 셀들은 레벨 #6으로 프로그래밍되고, 최상위 "10"을 저장할 셀들은 레벨 #4로 프로그래밍된다. 제 2 프로그래밍 단계에서, 최상위 "01"을 저장할 셀들은 레벨 #2로 프로그래밍된다. 최상위 "11"을 저장할 셀들은 프로그래밍되지 않은채 남는다. 다음의 8512 데이터 비트들이 생성되며, 제2 물리 페이지는 유사하게 프로그래밍되낟. 제3 8512 데이터 비트들이 생성될 때, 이 비트들은 다음과 같이 두 물리 페이지들 모두의 비트 패턴들의 최하위 비트들로서 저장된다. 먼저, 레벨 #6으로 프로그래밍되었으며 최하위 "0"비트들을 저장할 필요가 있는 셀들은 레벨 #7로 프로그래밍되며, 레벨 #4로 프로그래밍되었으며 최하위 "0" 비트들을 저장할 필요가 있는 셀들은 레벨 #5로 프로그래밍된다. 마지막으로, 레벨 #2로 프로그래밍되었으며 최하위 "0"비트들을 저장할 필요가 있는 셀들은 레벨 #3으로 프로그래밍되며, 최하위 "0"비트들을 저장할 필요가 있는 프로그래밍되지 않은 셀들은 레벨 #1로 프로그래밍된다.
물론, 애플리케이션이 한번에 12,768 비트(각각 4256 비트들인 세개의 논리 페이지들)를 생성한다면, 도 7 내지 11에 도시된 바와 같이, 상기 비트들은 동시에 저장된다. 제1 프로그래밍 단계에서, "011"을 저장하도록 프로그래밍될 필요가 있 는 셀들은 레벨 #4로 프로그래밍되고, "010"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #5로 프로그래밍되고, "001"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #6로 프로그래밍되고, "000"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #7로 프로그래밍된다. 제2 프로그래밍 단계에서, "110"을 저장하도록 프로그래밍될 필요가 있는 프로그래밍되지 않은 셀들은 레벨 #1로 프로그래밍된다. "101"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #2로 프로그래밍된다. 그리고 "100"을 저장하도록 프로그래밍될 필요가 있는 프로그래밍되지 않은 셀들은 레벨 #3으로 프로그래밍된다.
다음의 예에서, 드레시 홀드 시프트(shift)로 인하여 부정확하게 판독되는 경우, 비트 에러 수를 줄이기 위하여 다음의 그레이 코드 비트 할당이 사용될 수 있다.
레 벨#1 0 1 2 3 4 5 6 7
비트 패턴 111 110 101 101 001 000 010 011
제1 프로그래밍 단계에서, "001"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #4로 프로그래밍되고, "000"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #5로 프로그래밍되고, "010"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #6로 프로그래밍되고, "011"을 저장하도록 프로그래밍될 필요가 있는 셀들은 레벨 #7로 프로그래밍된다. 제2 프로그래밍 단계에서, "110"을 저장하도록 프로그래밍될 필요가 있는 프로그래밍되지 않은 셀들은 레벨 #1로 프로그래밍된다. "100" 비트들을 저장하도록 프로그래밍될 필요가 있는 프로그래밍되지 않은 셀들은 레벨 #2로 프로그래밍된다. 그리고, "101"을 저장하도록 프로그래밍될 필요가 있는 프로그래밍되지 않은 셀들은 레벨 #3으로 프로그래밍된다.
도 12는 호스트(20)에 결합된 본 발명의 플래시 메모리 디바이스(10)의 고 수준의 블럭도이다. 도 2는 미국 특허 5,404,485(Ban)로부터 적용된것이며, 이 특허는 본 명세서에서 그 전체가 제반 목적을 위하여 참조로서 통합된다. 플래시 메모리 디바이스(10)는 도 1에 도시된 블럭과 같은 셀 블럭을 포함하는 NAND 플래시 메모리(14), 제어기(12), 그리고 RAM(16)을 포함한다. 미국 특허 4,404,485의 "플래시 제어(14)"에 대응하는 제어기(12)는, 미국 특허 5,404,485 및 5,937,425에서 설명되는 바와 같이 RAM(16)의 보조를 받아 플래시 메모리(14)를 관리하며, 상기 특허들 또한 본 명세서에서 그 전체가 제반 목적을 위하여 참조로서 포함된다. 추가적으로, 플래시 메모리(14)의 워드라인에 저장하기 위하여 호스트(20)로부터 두개 이상의 복수의 비트들을 수신함에 따라, 제어기(12)는 먼저 RAM(16)에 상기 비트들을 저장한다. 그후 제어기(12)는 상기 비트들은 플래시 메모리(14)의 타겟 워드 라인으로 이송한다. 제1 프로그래밍 단계에서, 워드라인의 몇몇 셀들의 드레시홀드 전압들은, 최상위 "0"비트들을 저장하는 셀들을 최상위 "1"비트들을 저장하는 셀들로부터 구분하는 검증 레벨보다 높은 값으로 상승된다. 제2 프로그래밍 단계에서, 나머지 셀들 중 많은 셀들의 드레시홀드 전압들이 이 검증 전압 아래의 값으로 상승된다. 워드 라인의 셀들 각각은 호스트(20)로부터 수신된 복수 비트들 중 각각으로부터 하나의 비트를 저장한다.
도 13은 본 발명의 대안적인 데이터 저장 시스템(40)의 고 수준의 부분 블럭도이다. 데이터 저장 시스템(40)은 프로세서(42) 및 4개의 메모리 디바이스 들(RAM(44), 부트 롬(46), 대용량 저장장치(하드디스크)(48), 및 플래시 메모리 디바이스(30))을 포함하는바, 상기 메모리 디바이스들은 모두 공통 버스(50)를 통해 통신한다. 플래시 메모리 디바이스(10)와 마찬가지로, 플래시 메모리 디바이스(30)는 도 1에 도시된 블록과 같은 셀들 블록을 포함하는 NAND 플래시 메모리(32)를 포함하며, 또한 내장 RAM(36)도 포함한다. 플래시 메모리 디바이스(10)와는 다르게, 플래시 메모리 디바이스(30)는 그 자체의 제어기가 없다. 대신에, 미국 특허 5,404,485 및 5,937,425의 방법론과 본 발명의 다중비트 프로그래밍 방법론을 구현하는 소프트웨어 드라이버(52)를 실행함으로써 프로세서(42)가 제어기(12)를 에뮬레이트(emulate)한다. 특히, 소프트웨어 드라이버(52)는 기입 기능(write function)을 포함하는바, 상기 기입 기능은, 프로세서(42)에 의해 실행된 애플리케이션에 의해 워드라인 만큼의 데이터 비트들(wordline's worth of data bits)을 플래시 메모리(32)의 워드라인에 기입하도록 호출될때, 플래시 메모리 디바이스(10)에 대해 위에서 설명된 바와 같이, 먼저 RAM(36)에 모든 비트들을 저장하고 그후 상기 비트들을 플래시 메모리(32)의 타겟 워드라인으로 이송한다. 소프트웨어 드라이버(52)의 코드는 대용량 저장 장치(48)에 저장되며, 실행을 위해 RAM(44)에 로딩된다. 플래시 메모리 디바이스(30)는 또한 프로세서(42)가 플래시 메모리(32) 및 RAM(36)과 통신할 수 있게 해주는 버스 인터페이스(34)를 포함한다.
본 발명은 제한된 수의 실시예들과 관련하여 설명되었으나, 본 발명의 많은 변경, 수정 및 응용들이 이루어질 수 있음이 이해될 것이다.

Claims (17)

  1. 메모리 디바이스로서,
    (a) 복수의 셀들을 포함하는 비휘발성(nonvolatile) 메모리와;
    (b) 휘발성(volatile) 메모리와; 그리고
    (c) 제어기를 포함하여 구성되며,
    상기 제어기는, 상기 메모리 디바이스의 호스트로부터, 상기 메모리 디바이스 내에 저장하기 위한 적어도 2개의 복수 비트(pluralities of bits)들을 수신함에 응답하여,
    (i) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하고, 그리고
    (ii) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 것에 후속하여, 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하며, 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 것은:
    상기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 값을 검증 전압(verify voltage)보다 큰 제1 값으로 상승시키는 단계와; 그리고
    상기 제1의 적어도 하나의 셀 각각의 상기 드레시홀드가 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2 의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압 보다 낮은 제2 값으로 상승시키는 단계를 포함하며,
    여기서 각각의 상기 복수 비트들 중 적어도 하나의 비트는 상기 셀들 중 적어도 하나에 저장되는 것을 특징으로 하는 메모리 디바이스.
  2. 제1 항에 있어서,
    상기 비휘발성 메모리는 NAND 플래시 메모리인것을 특징으로 하는 메모리 디바이스.
  3. 제1 항에 있어서,
    상기 셀들은 상기 비휘발성 메모리의 공통 워드라인(common wordline)을 공유하는 것을 특징으로 하는 메모리 디바이스.
  4. 시스템으로서,
    (a) 메모리 디바이스와, 상기 메모리 디바이스는 (i) 휘발성 메모리와, 그리고 (ii) 복수의 셀들을 포함하는 제1 비휘발성 메모리를 포함하며,
    (b) 상기 제1 비휘발성 메모리를 위한 소프트웨어 드라이버의 코드가 저장되는 제2 비휘발성 메모리와, 상기 코드는 상기 제1 비휘발성 메모리 내에 적어도 2개의 복수 비트들을 저장하기 위한 코드를 포함하며, 상기 제1 비휘발성 메모리 내에 적어도 2개의 복수 비트들을 저장하는 것은:
    (i) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계와, 그리고
    (ii) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 것에 후속하여, 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계를 포함하며, 여기서 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계는:
    상기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 전압을 검증 전압보다 큰 제1 값으로 상승시키는 것과;
    상기 제1의 적어도 하나의 셀의 상기 드레시홀드 전압이 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압보다 낮은 제2 값으로 상승시키는 것을 포함하며,
    여기서, 상기 각각의 복수 비트들 중 적어도 하나의 비트는 상기 셀들 중 적어도 하나의 셀에 저장되며,
    (c) 상기 코드를 실행하기 위한 프로세서를 포함하여 구성되는 것을 특징으로 하는 시스템.
  5. 제4 항에 있어서,
    상기 제1 비휘발성 메모리는 NAND 플래시 메모리인것을 특징으로 하는 시스템.
  6. 제4 항에 있어서,
    상기 셀들은 상기 제1의 비휘발성 메모리의 공통 워드라인을 공유하는 것을 특징으로 하는 시스템.
  7. 메모리 디바이스 내에 데이터를 저장하는 방법으로서,
    (a) 상기 메모리 디바이스의 호스트로부터, 상기 메모리 디바이스의 비휘발성 메모리의 복수의 셀들 내에 저장하기 위한 적어도 2개의 복수 비트들을 수신하는 단계와;
    (b) 상기 메모리 디바이스의 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계와; 그리고
    (c) 상기 휘발성 메모리 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계에 후속하여, 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계를 포함하며, 상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계는:
    (i) 상기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 전압을 검증 전압보다 큰 제1 값으로 상승시키는 것과; 그리고
    (ii) 상기 제1의 적어도 하나의 셀의 상기 드레시홀드 전압이 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압보다 낮은 제2 값으로 상승시키는 것을 포함하며,
    여기서 각각의 상기 복수 비트들 중 적어도 하나의 비트가 상기 셀들 중 적어도 하나의 셀 내에 저장되는 것을 특징으로 하는 메모리 디바이스 내에 데이터를 저장하는 방법.
  8. 제7 항에 있어서,
    각각의 상기 복수 비트들 중 적어도 하나의 비트가 상기 셀들 각각에 저장되는 것을 특징으로 하는 방법.
  9. 제7 항에 있어서,
    상기 셀들은 상기 비휘발성 메모리의 공통 워드라인을 공유하는 것을 특징으로 하는 방법.
  10. 제7 항에 있어서,
    상기 복수 비트들 각각은 상기 호스트에 의해 각각의 개별 명령 내에서 송신되는 것을 특징으로 하는 방법.
  11. 제7 항에 있어서,
    상기 적어도 2개의 복수 비트들을 상기 복수의 셀들 내에 저장하는 단계는, 결과적으로 각각의 비트 패턴이 상기 적어도 하나의 셀 각각에 저장되게 하는 것을 특징으로 하는 방법.
  12. 제7 항에 있어서,
    상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 것은, 결 과적으로 상기 적어도 하나의 셀 각각에 각 비트 패턴의 단지 일부가 저장되게 하는 것을 특징으로 하는 방법.
  13. 데이터를 저장하는 방법으로서,
    (a) 메모리 디바이스의 휘발성 메모리 내에 적어도 2개의 복수 비트들을 저장하는 단계와; 그리고
    (b) 상기 휘발성 메모리 내에 상기 2개의 복수 비트들을 저장하는 단계에 후속하여, 상기 메모리 디바이스의 비휘발성 메모리의 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계를 포함하며, 상기 메모리 디바이스의 비휘발성 메모리의 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계는:
    (i) 상기 셀들 중 제1의 적어도 하나의 셀의 드레시홀드 전압을 검증 전압보다 큰 제1 값으로 상승시키는 것과, 그리고
    (ii) 상기 제1의 적어도 하나의 셀의 상기 드레시홀드 전압이 실질적으로 상기 제1 값으로 유지되는 동안, 상기 셀들 중 제2의 적어도 하나의 셀의 드레시홀드 전압을 상기 검증 전압보다 낮은 제2 값으로 상승시키는 것을 포함하며,
    여기서 각각의 상기 복수 비트들 중 적어도 하나의 비트는 상기 셀들 중 적어도 하나의 셀에 저장되는 것을 특징으로 하는 데이터 저장 방법.
  14. 제13 항에 있어서,
    각각의 상기 복수 비트들 중 적어도 하나의 비트가 상기 셀들 각각에 저장되 는 것을 특징으로 하는 데이터 저장 방법.
  15. 제13 항에 있어서,
    상기 셀들은 상기 비휘발성 메모리의 공통 워드라인을 공유하는 것을 특징으로 하는 데이터 저장 방법.
  16. 제13 항에 있어서,
    상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계는, 결과적으로 각각의 비트 패턴이 상기 적어도 하나의 셀 각각에 저장되게 하는 것을 특징으로 하는 데이터 저장 방법.
  17. 제13 항에 있어서,
    상기 복수의 셀들 내에 상기 적어도 2개의 복수 비트들을 저장하는 단계는, 결과적으로 각각의 비트 패턴의 단지 일부가 상기 적어도 하나의 셀 각각에 저장되게 하는 것을 특징으로 하는 데이터 저장 방법.
KR1020097011726A 2006-11-07 2007-11-04 프로그래밍 교란이 감소된 nand 플래시 메모리 프로그래밍 KR101003163B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US86460706P 2006-11-07 2006-11-07
US60/864,607 2006-11-07
US80610807A 2007-05-30 2007-05-30
US11/806,108 2007-05-30
US11/806,111 US8059456B2 (en) 2006-11-07 2007-05-30 Programming a NAND flash memory with reduced program disturb
US11/806,111 2007-05-30

Publications (2)

Publication Number Publication Date
KR20090097863A KR20090097863A (ko) 2009-09-16
KR101003163B1 true KR101003163B1 (ko) 2010-12-22

Family

ID=41357101

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011726A KR101003163B1 (ko) 2006-11-07 2007-11-04 프로그래밍 교란이 감소된 nand 플래시 메모리 프로그래밍

Country Status (2)

Country Link
KR (1) KR101003163B1 (ko)
TW (1) TWI372394B (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6046935A (en) 1996-03-18 2000-04-04 Kabushiki Kaisha Toshiba Semiconductor device and memory system

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6046935A (en) 1996-03-18 2000-04-04 Kabushiki Kaisha Toshiba Semiconductor device and memory system

Also Published As

Publication number Publication date
TWI372394B (en) 2012-09-11
TW200832413A (en) 2008-08-01
KR20090097863A (ko) 2009-09-16

Similar Documents

Publication Publication Date Title
US8059456B2 (en) Programming a NAND flash memory with reduced program disturb
JP4391941B2 (ja) メモリセルの隣接する行の記憶素子間の結合の効果を減少させる方法
US8194450B2 (en) Methods and control circuitry for programming memory cells
KR101578812B1 (ko) 가장 빠른 및/또는 가장 느린 프로그래밍 비트를 무시하여 프로그램 검증이 감소된 비휘발성 메모리와 방법
US7310255B2 (en) Non-volatile memory with improved program-verify operations
JP4768298B2 (ja) 不揮発性半導体記憶装置
US7224614B1 (en) Methods for improved program-verify operations in non-volatile memories
US7855913B2 (en) Dynamically configurable MLC state assignment
US7734861B2 (en) Pseudo random and command driven bit compensation for the cycling effects in flash memory
US8520441B2 (en) Word line kicking when sensing non-volatile storage
KR100902008B1 (ko) 메모리 셀에 멀티 비트 데이터를 저장하는 플래시 메모리를 포함한 메모리 시스템
US20120243323A1 (en) Nonvolatile Memory and Method for Improved Programming With Reduced Verify
JP2022519866A (ja) フラッシュメモリデバイス
KR20120093289A (ko) 비휘발성 메모리 및 오류들을 관리하기 위한 기입후 판독 및 적응형 재기입을 사용한 방법
US9312020B2 (en) Methods of operating memory devices
KR20110051206A (ko) 비휘발성 메모리와 램프-다운 프로그래밍 방법
WO2009031675A1 (en) Nonvolatile semiconductor memory device and memory system
US9384839B2 (en) Write sequence providing write abort protection
US20080065813A1 (en) Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
US9378823B2 (en) Programming a memory cell to a voltage to indicate a data value and after a relaxation time programming the memory cell to a second voltage to indicate the data value
US10504599B2 (en) Connecting memory cells to a data line sequentially while applying a read voltage to the memory cells and programming the read data to a single memory cell
CN112420109A (zh) 非易失性存储器设备和存储系统
US20170229180A1 (en) Memory devices with a transistor that selectively connects a data line to another data line and methods for programming and sensing
KR101003163B1 (ko) 프로그래밍 교란이 감소된 nand 플래시 메모리 프로그래밍
EP3783614B1 (en) Nonvolatile memory device including a fast read page and a storage device including the same

Legal Events

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

Payment date: 20131119

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141120

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20191008

Year of fee payment: 10