KR100751579B1 - 비휘발성 메모리 프로그래밍 - Google Patents

비휘발성 메모리 프로그래밍 Download PDF

Info

Publication number
KR100751579B1
KR100751579B1 KR1020067016784A KR20067016784A KR100751579B1 KR 100751579 B1 KR100751579 B1 KR 100751579B1 KR 1020067016784 A KR1020067016784 A KR 1020067016784A KR 20067016784 A KR20067016784 A KR 20067016784A KR 100751579 B1 KR100751579 B1 KR 100751579B1
Authority
KR
South Korea
Prior art keywords
programming
threshold
additional
verify threshold
nonvolatile storage
Prior art date
Application number
KR1020067016784A
Other languages
English (en)
Other versions
KR20070054594A (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 KR20070054594A publication Critical patent/KR20070054594A/ko
Application granted granted Critical
Publication of KR100751579B1 publication Critical patent/KR100751579B1/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
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • Medicines Containing Plant Substances (AREA)
  • Non-Volatile Memory (AREA)

Abstract

본 발명은 메모리 디바이스들(Devices)을 프로그래밍하기 위한 기술(Technology)에 관한 것이다. 하나 이상의 프로그래밍 연산들(Programming Operations)은 비휘발성 저장 소자들(Non-volatile Storage Elements)의 집합(Set)을 수행하게 된다. 일 예로, 프로그래밍 연산들은 프로그래밍 펄스들의 집합을 적용하는 것을 포함할 수 있다. 검증 처리(Verify Process)는 중간 검증 임계값(Intermediate Verify Threshold)에 도달했지만, 최종 검증 임계값(Final Verify Threshold)에 도달하지 못한 비휘발성 저장 소자를 결정하기 위해 수행된다. 감소 레벨(Reduced Level) 동안 한 개의 부가 프로그래밍 연산(One Additional Programming Operation)은 상기 중간 검증 임계값에 도달했지만 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들을 위해 수행되고, 상기 비휘발성 저장 소자들은 이후의 프로그래밍이 금지된다. 중간 검증 임계값에 도달하지 못한 비휘발성 저장 소자들은 프로그래밍을 계속한다. 최종 검증 임계값에 도달한 비휘발성 저장 소자들은 프로그래밍이 금지된다.
메모리 디바이스, 비휘발성 저장 소자, 검증 처리

Description

비휘발성 메모리 프로그래밍{PROGRAMMING NON-VOLATILE MEMORY}
본 발명은 일반적으로 메모리 디바이스들을 프로그래밍하기 위한 기술에 관련된 것이다.
반도체 메모리 디바이스들은 다양한 전자 디바이스들(Electronic Devices)에서 사용됨으로 인해 대중화되었다. 일 예로, 비휘발성 반도체 메모리는 셀룰러 전화기들, 디지털 카메라들, 개인 휴대 정보 단말기들(PDA: Personal Digital Assistants), 이동 컴퓨팅 디바이스들(Mobile Computing Devices), 미이동 컴퓨팅 디바이스들과 다른 디바이스들에 사용된다. 전기적 소거 및 프로그램 가능 읽기 전용 메모리(EEPROM : Electrical Erasable Programmable Read Only Memory, 이하 EEPROM이라 칭함)와 플래시 메모리(Flash Memory)는 가장 대중화된 비휘발성 반도체 메모리들 중에 하나이다.
대표적인 EEPROM과 플래시 메모리는 반도체 기판에서 채널 영역 위에 제공되고, 상기 채널 영역과 절연된 플로팅 게이트(Floating Gate)를 가지는 메모리 셀을 사용한다. 채널 영역은 소스(Source)와 드레인(Drain) 영역들 사이의 p-웰(well)에 위치된다. 제어 게이트(Control Gate)는 플로팅 게이트 위에 제공되고, 상기 플로팅 게이트와 절연된다. 메모리 셀의 임계 전압(Threshold Voltage)은 플로팅 게이 트에 유지되는 전하량에 의해서 제어된다. 즉, 플로팅 게이트 상의 전하의 레벨은 메모리 셀이 상기 메모리 셀의 소스와 드레인 간의 전도(Conduction)를 할 수 있도록 턴온되기 전에 제어 게이트에 적용돼야만 하는 최소 전압을 결정한다.
일부 EEPROM과 플래시 메모리 디바이스들은 2가지 범위의 전하들을 저장하기 위해서 사용되는 플로팅 게이트를 가진다. 상기 플로팅 게이트를 가짐으로써 메모리 셀은 두 개의 상태들 중 하나로 프로그램되거나 또는 소거될 수 있다. 다중 비트(Multi-bit) 또는 다중 상태 플래시 메모리 셀은 디바이스 내에서 다수의 다른 임계 전압 범위들을 식별하는 것에 의해서 구현된다. 각각의 다른 임계 전압 범위는 데이터 비트들의 집합에 대해 기결정된 값들에 대응한다. 메모리 셀에 프로그램된 데이터와 셀의 임계 전압 레벨들 간의 특별한 관계는 셀들에 적용된 데이터 인코딩 방법에 의존한다. 일 예로, 본원 명세서에 참조로 인용되는, 미국 특허 출원 번호 제6,222,762와 2003년 6월 13일 제출된 미국 특허 출원 번호 제10/461,244호, "Tracking Cells For A Memory System"은 다중 상태 플래시 메모리 셀들에 대한 다양한 데이터 인코딩 방법들을 기술한다. 다중 상태 셀에 대한 올바른 데이터를 저장하기 위해서, 다중 상태 메모리 셀의 임계 전압 레벨들의 다수의 범위들은 충분한 마진(Margin)에 의해 각각의 다른 범위들로 분리된다. 상기 분리된 결과, 메모리 셀의 레벨은 프로그램되거나 소거될 수 있게 된다.
EEPROM 또는 플래시 메모리 디바이스를 프로그래밍할 때, 프로그램 전압이 제어 게이트에 적용되고, 비트 라인(Bit Line)은 접지된다. 채널에서의 전자들은 플로팅 게이트로 주입된다. 전자들이 플로팅 게이트에 축적될 때, 상기 플로팅 게 이트는 음으로 충전되고, 메모리 셀의 임계 전압이 올라가게 된다.
일반적으로, 도1에 나타낸 것과 같이, 제어 게이트에 적용된 프로그램 전압 Vpgm은 펄스의 연속된 파형으로 적용된다. 예를 들면, 0.2V와 같은 펄스들의 크기는 기정의된 스텝 사이즈(Step Size)에 의해서 각각의 연속된 펄스와 함께 증가한다. 펄스들 간의 주기들 동안에, 검증 연산들이 수행된다. 즉, 병행하여 프로그램된 그룹 셀들의 각각의 셀의 프로그래밍 레벨은 검증 레벨과 동일하거나 또는 더 크게 프로그램된게 있는지를 결정하기 위해서 각각의 프로그래밍 펄스 사이에 판독된다. 프로그래밍을 검증하는 한가지 방법은 특정한 비교 포인트에서의 테스트 전도를 하는 것이다. 일 예로, 충분히 프로그램되어 검증된 셀들에 대한 프로그래밍 처리를 멈추기 위해서 0에서 Vdd로 비트 라인 전압을 올리는 것에 의해서, 상기 셀들은 금지된다. 일 예로, 도2는 임계 전압(Vth) 대 시간과 비트 라인 전압(Vbl) 대 시간의 관계를 나타낸 그래프이다. 메모리 셀이 도1의 프로그램 전압 Vpgm를 수신하는 동안, 메모리 셀의 임계 전압은 증가한다. 메모리 셀의 임계 전압이 예를 들면, Vver1와 같은 검증 레벨에 도달하면, 비트 라인 전압은 예를 들면, Vdd와 같은 Vinhibit로 올라가게 된다. 상기 설명된 기술들과 본 발명에서 설명된 다른 기술들은 일 예로, 본원 명세서에 참조로 인용되는, 2003년 3월 5일에 제출된 미국 특허 출원 10/379,608호, "Self Boosting Technique"에 기술된 것과 같이, 다양한 자기 부스팅 기술들(Self Boosting Techniques)과 조합되어 사용될 수 있다. 추가로, 본원 명세서에 참조로 인용되는, 2002년 12월 5일 제출된 미국 특허 출원 제10/314,055호, "Smart Verify for Multi-State Memories"에 기술된 것과 같이 사용 될 수 있다.
도2에 나타낸 것처럼 프로그래밍할 때, 프로그래밍 속도와 프로그래밍 정밀도 간에는 트레이드오프(Tradeoff)가 있다. 프로그래밍 정밀도는 프로그래밍 처리 이후의 프로그램된 메모리 셀들의 임계 전압들의 분포와 관련된다. 임계 전압 분포가 더 밀집할수록, 메모리 셀들을 명백하게 판독하기가 더욱 쉬워진다. 판독 처리가 다른 임계 전압 분포들 간에 명백히 구분될 필요가 있기 때문에, 밀집한 임계 전압 분포들에 대한 요구는 다중 상태 메모리 셀들에서 더욱 중요해진다. 밀집한 임계 전압 분포를 얻기 위해서, 더욱 작은 스텝 사이즈가 프로그램 전압 Vpgm에 사용된다. 그러나 더욱 작은 스텝 사이즈를 사용하는 것은 프로그래밍 처리를 늦춘다.
도3은 종래의 프로그래밍 처리를 개선한 것을 나타낸다. 도3의 처리는 도1의 프로그램 전압 신호 Vpgm을 프로그램된 메모리 셀들의 제어 게이트들에 사용한 것이다. 프로그램 펄스들 사이에, 검증 연산들이 수행된다. 프로그램되는 메모리 셀의 임계 전압이 Vver2보다 작을 경우, 프로그래밍은 비트 라인 전압을 가진 셀이 예를 들면 0V로, 낮게 유지될 때까지 계속된다. 프로그램되는 메모리 셀의 임계 전압이 Vver2보다 크고 Vver1보다 작을 경우, 예를 들면, 1V인 중간 비트 라인 전압이 적용된다. 중간 비트 라인 전압의 결과로, 각각의 프로그램 펄스에 의해 임계 전압에서의 시프트(Shift)가 감소하기 때문에, 예를 들면, 채널 전압이 1V로 증가하게 되고, 메모리 셀의 프로그래밍은 늦춰지게 된다. 비트 라인은 다수개의 펄스들에 대해 메모리 셀의 임계 전압이 최종 목표, Vver1에 도달하기 전까지 중간 비 트 라인 전압에서 유지되게 된다. 메모리 셀의 임계 전압이 Vver1에 도달하면, 비트 라인은 이후의 프로그래밍을 금지하기 위해서 예를 들면, 비트 라인 전압을 Vdd인 Vinhibit까지 증가시키는 것에 의해서 올라가게 된다.
도3의 방식을 사용하는 것은 임계 전압의 펄스에 의한 시프트가 임계 전압이 목표 값에 근접하도록, 예를 들면, 임계 전압이 Vver2보다 크고 Vver1보다 작을 때 감소하기 때문에 도2의 처리보다 더 폭이 좁은 프로그램된 임계 전압 분포를 얻는다. 그러나 도3의 프로그래밍 처리 속도는 중간 비트 라인 바이어스가 메모리 셀들의 프로그래밍을 늦추는 동안에 예를 들면, 일반적으로 2에서 3까지의 펄스들과 같이 다수의 부가 펄스들이 프로그래밍 처리를 끝내기 위해서 필요로 하기 때문에 개선될 수 있다.
종래 메모리 시스템들의 다른 관심은 전력과 관련이 있다. 많은 이전 시스템들은 3V의 Vdd를 사용한다. 더 낮은 Vdd는 메모리 시스템이 작은 전력을 사용할 수 있게하기 때문에, 더 작은 Vdd를 사용하면 장점이 있다. 메모리 시스템이 더 작은 전력을 사용할 경우, 예를 들면, 디지털 카메라와 같은 호스트 디바이스는 더 긴 배터리 수명을 가질 수 있게 된다. Vdd가 예를 들면, 1.8V로 감소할 경우, 메모리 셀들은 1V의 중간 비트 라인 전압을 사용할 수 없게 될 수 있다. 일 예로, 선택 게이트 트랜지스터(Select Gate Transistor)를 가진 NAND 체인(Chain)에서, 예를 들면, 1.8V와 같은 낮은 Vdd가 선택 게이트 트랜지스터를 턴온시키기 위해서 선택 게이트 트랜지스터의 게이트에 적용될 경우, 1V의 비트 라인 전압은 선택 트랜지스터의 소스측에 충분히 전달되지 못할 수 있다. 소스측에 전달될 수 있는 전압은 선택 게이트 트랜지스터의 임계 전압에 의존한다. 일 예로, 선택 게이트가 1.2V의 임계 전압을 가질 경우, 선택 게이트의 소스측에서의 전압은 0.6V-1.8V(게이트 전압)-1.2V(임계전압)의 값에 도달하게 된다. 선택 게이트 트랜지스터의 임계 전압을 낮추는 것에 의해서 소스측에 1V를 전달할 수 있다. 그러나 선택 게이트가 0V와 같이 선택 게이트가 턴오프될 때, 트랜지스터의 누설은 증가하게 된다. 다른 해결책은 일 예로, 2.4V처럼, 선택 게이트의 게이트 전압을 증가시키는 것이다. 그러나 상기 경우, 프로그래밍 동안에, 1.8V가 비트 라인에 적용되고 선택된 NAND 스트링에 속하는 채널 영역이 높은 전압으로 증가할 때, 소위 자기-부스팅 연산(Self-Boosting Operation) 동안에 비트 라인쪽의 채널 영역의 누설이 발생할 수 있다.
본 발명은 메모리 디바이스를 프로그래밍하기 위한 기술에 관한 것이다. 더 상세하게는, 본 발명은 보다 빠른 프로그래밍 처리를 제공하고, 더욱 밀집한 임계 전압 분포를 나타낸다. 일부 실시예들에서, 개선된 프로그래밍 처리는 보다 낮은 중간 비트 라인 전압을 사용하고, 상기 낮은 중간 비트 라인 전압 사용은 보다 낮은 Vdd가 사용될 수 있게 한다.
본 발명의 일 실시예는 비휘발성 저장 소자에 대해 하나 이상의 프로그래밍 연산들을 수행하고, 상기 비휘발성 저장 소자가 중간 검증 임계값에 도달하는지를 결정하고, 상기 결정 단계에 대한 응답으로 상기 비휘발성 저장 소자의 감소 레벨 동안 단지 한 개의 부가 프로그래밍 연산을 수행하고, 상기 한 개의 부가 프로그래밍 연산에 대한 응답으로 상기 비휘발성 저장 소자의 변화에 관계없이 상기 한 개의 부가 프로그래밍 연산을 수행한 후, 상기 비휘발성 저장 소자의 프로그래밍을 금지하는 것을 포함한다. 하나의 구현 예에서, 프로그래밍 처리는 한 개의 펄스의 적용을 포함하는 것으로 간주한 각각의 프로그래밍 연산과 함께 프로그램되는 메모리 셀들의 제어 게이트들에 대해 시간에 대한 크기로 증가시키는 펄스들의 집합의 적용을 포함한다. 또 다른 실시예들에서, 프로그래밍 연산은 특정한 메모리 기술에 적당한 펄스의 적용과는 다른 행위를 포함할 수 있다. 일 예로, 펄스들과는 다른 프로그램 신호들이 고정된 증가 사이즈(Increment Size)를 가지거나 가지지 않고 증가하거나 또는 증가하지 않는 신호들을 포함해서 사용될 수 있다.
본 발명의 또 다른 실시예는 비휘발성 저장 소자에서 증가 사이즈를 가지고 증가하는 프로그램 전압을 포함하는 프로그래밍 연산들을 수행하고, 중간 검증 임계값들의 집합의 특정한 중간 검증 임계값에 도달하는 상기 비휘발성 저장 소자를 결정하고, 상기 결정에 대한 응답으로 상기 비휘발성 저장 소자에 한 개의 부가 프로그래밍 연산을 수행하고, 상기 한 개의 부가 프로그래밍 연산에 대한 응답으로 상기 비휘발성 저장 소자의 변화에도 불구하고 상기 한 개의 부가 프로그래밍 연산을 수행한 후에, 상기 비휘발성 저장 소자의 프로그래밍을 금지하는 것을 포함한다. 상기 한 개의 부가 프로그래밍 연산은 상기 증가 사이즈의 일부분만큼 상기 비휘발성 저장 소자의 임계 전압을 변화시킨다. 상기 사이즈의 일부분은 상기 중간 검증 임계값들 중의 하나에 도달하기 위해 결정되는 것에 의존한다.
일부 실시예들에서, 하나 이상의, 예를 들면, 2개, 3개 이상의, 중간 임계값들이 있을 수 있다.
하나의 구현 예는 비휘발성 저장 소자들의 어레이(Array)와 상기 비휘발성 저장 소자들과 통신하는 제어 회로를 포함한다. 상기 제어 회로는 상기 비휘발성 저장 소자들이 하나 이상의 프로그래밍 연산들을 수행할 수 있게 하고, 중간 검증 임계값에 도달하지만 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자를 결정하고, 감소 레벨 동안 한 개의 부가 프로그래밍 연산이 상기 중간 검증 임계값에 도달했지만 상기 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들을 수행할 수 있게하고, 자동으로 상기 한 개의 부가 프로그래밍 연산 후에, 상기 중간 검증 임계값에 도달한 상기 비휘발성 저장 소자들에 대한 프로그래밍을 금지하고, 상기 중간 검증 임계값에 도달하지 못한 비휘발성 저장 소자들에 대한 프로그래밍을 계속한다.
본 발명의 또 다른 실시예는 비휘발성 저장 소자들의 어레이를 생성하고, 프로그래밍 처리를 위한 최종 검증 임계값을 설정하고, 상기 프로그래밍 처리를 위한 중간 검증 임계값을 설정하며, 하나 이상의 비휘발성 저장 소자들의 집합이 상기 중간 검증 임계값에 도달한 후에, 한 개의 프로그래밍 연산은 상기 하나 이상의 비휘발성 저장 소자들의 집합이 상기 최종 검증 임계값에 도달할 수 있게 한다.
본 발명의 목적들과 장점들은 도면들과 함께 설명되는 본 발명의 우선한 실시예로부터 더욱 명확하게 나타날 것이다.
도1은 프로그램 전압 신호를 나타낸 펄스도이다.
도2는 종래 기술에 따른 시간에 대한 임계 전압(Vth) 분포와 시간에 대한 비 트 라인 전압(Vbl) 분포를 나타낸 그래프이다.
도3은 종래 기술에 따른 시간에 대한 임계 전압(Vth) 분포와 시간에 대한 비트 라인 전압(Vbl) 분포를 나타낸 그래프이다.
도4는 NAND 스트링의 평면도이다.
도5는 NAND 스트링의 등가 회로도(Equivalent Circuit Diagram)이다.
도6은 NAND 스트링의 단면도이다.
도7은 본 발명의 실시예에 따른 다양한 양태들이 구현된 비휘발성 메모리 시스템의 블록도이다.
도8은 메모리 어레이(Memory Array)의 구성의 실시예를 도시한 도면이다.
도9는 열 제어 회로(Column Control Circuit)를 나타낸 도면이다.
도10은 다중 상태(Multi-State) 메모리 셀들에 대한 메모리 셀 임계값 분포들을 나타낸 도면이다.
도11은 시간에 대한 임계 전압(Vth) 분포와 시간에 대한 비트 라인 전압(Vbl) 분포를 나타낸 그래프이다.
도12는 본 발명의 실시예에 따른 메모리를 프로그래밍하기 위한 방법을 설명한 흐름도이다.
도13은 본 발명의 다양한 실시예들에 따른 프로그래밍을 위한 방법을 설명한 흐름도이다.
도14는 본 발명의 다양한 실시예들에 따른 논리적 페이지를 프로그래밍하기 위한 방법을 설명한 흐름도이다.
도15는 본 발명의 일 실시예에 따른 시간에 대한 임계 전압(Vth) 분포와 시간에 대한 비트 라인 전압(Vbl) 분포를 나타낸 그래프이다.
도16은 본 발명의 일 실시예에 따른 시간에 대한 임계 전압(Vth) 분포와 시간에 대한 비트 라인 전압(Vbl) 분포를 나타낸 그래프이다.
본 발명을 구현하기에 적당한 플래시 메모리 시스템의 일 실시예는 두 개의 선택 게이트들(Select Gates) 사이에 직렬로 다중 트랜지스터들을 배열하는 것을 포함하는 NAND 구조를 사용한다. 직렬 트랜지스터들과 선택 게이트들은 NAND 스트링(String)에 인용된다. 도4는 NAND 스트링의 평면도이다. 도5는 도4의 등가 회로도이다. 도4와 도5에 나타낸 NAND 스트링은 직렬로 연결된 4개의 트랜지스터들(100,102,104,106)을 포함하고, 상기 트랜지스터들은 제1 선택 게이트(120)와 제2 선택 게이트(122) 사이에 위치된다. 선택 게이트(120)는 NAND 스트링을 비트 라인(126)과 연결한다. 선택 게이트(122)는 NAND 스트링을 소스 라인(128)과 연결한다. 선택 게이트(120)는 제어 게이트(120CG)에 적용하는 적당한 전압들에 의해서 제어된다. 선택 게이트(122)는 제어 게이트(122CG)에 적용하는 적당한 전압들에 의해서 제어된다. 각각의 트랜지스터들(100,102,104,106)은 제어 게이트와 플로팅 게이트를 가진다. 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 가진다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 가진다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 가진다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 가진다. 제어 게이 트(100CG)는 워드 라인(WL3)과 연결되고, 제어 게이트(102CG)는 워드 라인(WL2)과 연결되고, 제어 게이트(104CG)는 워드 라인(WL1)과 연결되고, 제어 게이트(106CG)는 워드 라인(WL0)과 연결된다. 일 실시예에서, 트랜지스터들(100,102,104,106)은 각각의 메모리 셀들이다. 또 다른 실시예들에서, 메모리 셀들은 다중 트랜지스터들을 포함할 수 있거나 또는 도4와 도5에 나타낸 것과는 다를 수 있다.
도6은 상기 언급된 NAND 스트링의 단면도이다.
상기 도6에 도시한 바와 같이, 상기 NAND 스트링의 트랜지스터들은 p-웰 영역(140)에 형성된다. 각각의 트랜지스터는 제어 게이트(100CG,102CG,104CG,106CG)와 플로팅 게이트(100FG,102FG,104FG,106FG)로 구성된 스택트 게이트 구조(Stacked Gate Structure)를 포함한다. 플로팅 게이트들은 산화 필름(Oxide Film) 상층의 p-웰의 표면에 형성된다. 제어 게이트는 제어 게이트와 플로팅 게이트를 분리하는 인터 폴리실리콘(inter-polysilicon) 유전체 층(Dielectric Layer)을 가지는, 플로팅 게이트 위에 놓인다. 도6은 트랜지스터 120과 122에 대한 제어 게이트와 플로팅 게이트를 나타내는 것이다. 그러나 트랜지스터 120과 122에 대해서, 제어 게이트와 플로팅 게이트는 함께 연결된다. 다른 실시예들에서, 일반적으로, 플로팅 게이트의 상단에 있는 게이트가 연결되지 않는 동안에, 플로팅 게이트로 생각되는 게이트는 연결된다. 메모리 셀들(100,102,104,106)의 제어 게이트들은 워드 라인들(Word Lines)을 형성한다. N+ 확산층들(Diffused Layers)(130,132,134,136,138)은 이웃하는 셀들 간에 분배되고, 상기 분배된 셀들은 NAND 스트링을 형성하기 위해서 서로 직렬로 연결된다. 상기 N+ 확산층들은 각각의 셀들의 소스와 드레인을 형성한다. 일 예로, N+ 확산층(130)은 트랜지스터(122)의 드레인과 트랜지스터(106)의 소스의 역할을 하고, N+ 확산층(132)은 트랜지스터(106)의 드레인과 트랜지스터(104)의 소스의 역할을 하고, N+ 확산층(134)은 트랜지스터(104)의 드레인과 트랜지스터(102)의 소스의 역할을 하고, N+ 확산층(136)은 트랜지스터(102)의 드레인과 트랜지스터(100)의 소스의 역할을 하고, N+ 확산층(138)은 트랜지스터(100)의 드레인과 트랜지스터(120)의 소스의 역할을 한다. N+ 확산층(126)은 N+ 확산층(128)이 다중 NAND 스트링들을 위한 공통 소스 라인에 연결하는 동안에, NAND 스트링의 비트 라인과 연결한다.
도4-도6이 NAND 스트링에서 4개의 메모리 셀들을 보여주고 있더라도, 4개의 트랜지스터들의 사용은 단지 실시예에서만 제공되는 것임을 기억해야한다. NAND 스트링은 4개의 메모리 셀들보다 적거나 더 많을 수도 있다. 일 예로, 일부 NAND 스트링들은 8개의 메모리 셀들, 16개의 메모리 셀들, 32개의 메모리 셀들 등을 포함할 수 있다. 여기서 논의된 것은 NAND 스트링에서 메모리 셀들의 임의의 특정한 수로 한정되어서는 안 된다.
각각의 메모리 셀은 아날로그 또는 디지털 형식으로 표현되는 데이터를 저장할 수 있다. 디지털 데이터의 1 비트를 저장할 때, 메모리 셀의 가능한 임계 전압들의 범위는 논리 데이터 "1"과 "0"으로 할당된 두 개의 범위로 나뉜다. NAND 타입 플래시 메모리의 실시예에서, 메모리 셀이 소거된 후의 전압 임계값은 음으로(Negative) 되고, 논리 "1"로 정의된다. 프로그램 연산 후의 임계 전압은 양으로(Positive) 되고, 논리 "0"으로 정의된다. 임계 전압이 음이고 판독이 시도될 때, 메모리 셀은 저장된 논리 1을 나타내기 위해서 턴온되게 된다. 임계 전압이 양이고 판독 연산이 시도될 때, 메모리 셀은 저장된 논리 0을 나타내기 위해서 턴온되지 않는다. 또한, 메모리 셀은 일 예로, 디지털 데이터의 다중 비트들을 저장하는 것에 의하여, 정보의 다중 레벨들을 저장할 수 있다. 데이터의 다중 레벨들을 저장하는 경우에, 가능한 임계 전압들의 범위는 저장 레벨들의 수만큼 나뉘게 된다. 일 예로, 정보의 4개 레벨들이 저장되는 경우, 데이터 값 "11", "10", "01", "00"으로 할당된 4개의 임계 전압 범위들이 있게 된다. NAND 타입 메모리의 일 예에서, 소거 연산 후의 임계 전압은 음이고, "11"로 정의된다. 양의 임계 전압들은 "10", "01", "00"의 상태들을 사용한다.
NAND 타입 플래시 메모리들에 관련된 예들과 상기 NAND 타입 플래시 메모리들의 연산은 본원 명세서에 참조로 인용되는, 다음의 미국 특허 출원에서 제공된다: 미국 특허 출원 제5,570,315호; 미국 특허 출원 제5,774,397호; 미국 특허 출원 제6,046,935호; 미국 특허 출원 제5,386,422호; 미국 특허 출원 제6,456,528호; 미국 특허 출원 제09/893,277호(출원 번호 US2003/0002348). 자기 부스팅 기술들을 포함한 NAND 플래시 메모리를 프로그래밍하는 것에 대한 정보는 본원 명세서에 참조로 인용되는 2003년 3월 5일 제출된 미국 특허 출원 제10/379,608호, "Self Boosting Technique"와; 2003년 7월 29일 제출된 미국 특허 출원 제10/629,068호, "Detecting Over Programmed Memory"에서 찾아볼 수 있다. 또한, 플래시 메모리 디바이스들의 다른 타입들도 본 발명에서 사용될 수 있다. 일 예로, 다음의 특허들은 NOR 타입 플래시 메모리들을 기술한 것이고, 본원 명세서에 참조로 인용되는: 미국 특허 출원 제5,095,344호; 제5,172,338호; 제5,890,192호와 제6,151,248호가 있다. 플래시 메모리 타입의 또 다른 실시예는 본원 명세서에 참조로 인용되는, 미국 특허 출원 제6,151,248호에 개시되어 있다.
도7은 본 발명의 구현에 사용될 수 있는 플래시 메모리 시스템의 일 실시예의 블록도이다. 메모리 셀 어레이(302)는 열 제어 회로(304), 행 제어 회로(306), c-소스 제어 회로(310) 및 p-웰 제어 회로(308)에 의해 제어된다. 열 제어 회로(304)는 메모리 셀들에 저장된 데이터를 판독하고, 프로그램 연산 동안 메모리 셀들의 상태를 결정하고, 프로그래밍을 촉진시키거나 또는 프로그래밍을 금지시킬 수 있도록 비트 라인들의 전위 레벨들을 제어하기 위해서 메모리 셀 어레이(302)의 비트 라인들에 연결된다. 행 제어 회로(306)는 워드 라인들 중 하나를 선택하고, 판독 전압들을 적용하고, 프로그램 전압들을 적용하고, 소거 전압을 적용하기 위해 워드 라인들에 연결된다. C-소스 제어 회로(310)는 메모리 셀들에 연결된 공통 소스 라인(도8에서 "C-소스"로 명칭됨)을 제어한다. P-웰 제어 회로(308)는 p-웰 전압을 제어한다.
메모리 셀들에 저장된 데이터는 열 제어 회로(304)에 의해 판독되고, 데이터 입력/출력 버퍼(312)를 통해 외부 I/O 라인들에 출력된다. 메모리 셀들에 저장되는 프로그램 데이터는 외부 I/O 라인들을 통해 데이터 입력/출력 버퍼(312)에 입력되고, 열 제어 회로(304)에 전송된다. 외부 I/O 라인들은 제어기(318)에 연결된다.
플래시 메모리 디바이스를 제어하기 위한 명령 데이터는 제어기(318)에 입력된다. 명령 데이터는 무슨 연산이 요청되는지 플래시 메모리에 통보한다. 입력 명 령은 열 제어 회로(304), 행 제어 회로(306), c-소스 제어 회로(310), p-웰 제어 회로(308) 및 데이터 입력/출력 버퍼(312)를 제어하는 상태 머신(316)에 전송된다. 또한, 상태 머신(316)은 READY/BUSY 또는 PASS/FAIL과 같은, 플래시 메모리의 상태 데이터를 출력할 수 있다.
제어기(318)는 퍼스널 컴퓨터, 디지털 카메라 또는 개인 휴대 정보 단말기(PDA: Personal Digital Assistant)와 같은 호스트 시스템에 연결되거나 또는 연결할 수 있다. 제어기(318)는 호스트로부터 명령들을 수신하고, 호스트로부터 데이터를 수신하고, 호스트에 데이터를 제공하고, 호스트에 상태 정보를 제공하기 위해서 호스트와 통신한다. 제어기(318)는 호스트로부터의 명령들을 상태 머신(316)과 통신하는 명령 회로들(314)에 의해서 해석되고 실행될 수 있는 명령 신호들로 변환한다. 일반적으로, 제어기(318)는 메모리 어레이에 쓰여지거나 또는 상기 메모리 어레이로부터 판독되는 사용자 데이터를 위한 버퍼 메모리를 포함한다.
하나의 대표적인 메모리 시스템은 제어기(318) 및 메모리 어레이와 관련된 제어회로, 입력/출력 및 상태 머신 회로들을 각각 포함하는 하나 이상의 집적 회로 칩들을 포함하는 하나의 집적회로를 포함한다. 하나 이상의 집적 회로 칩들에 시스템의 메모리 어레이들과 제어기 회로들을 함께 통합하는 것이 경향이다. 메모리 시스템은 호스트 시스템의 일부로서 내장될(Embedded) 수 있고, 호스트 시스템들에 제거가능하게 삽입가능한 메모리 카드 또는 다른 패키지에 포함될 수 있다. 상기 제거가능한 카드는 예를 들면, 제어기를 포함하는 것과 같이, 전체 메모리 시스템을 포함할 수 있고 또는 단지 호스트에 내장되는 제어기를 가지는 메모리 어레이/ 어레이들과 관련 주변 회로들을 포함할 수 있다. 따라서, 제어기는 호스트에 내장될 수 있거나 또는 제거가능한 메모리 시스템 내에 포함될 수 있다.
일부 구현들에서, 도7의 구성 요소들 중 일부가 조합될 수 있다. 다양한 설계들에서, 메모리 셀 어레이(302)와는 다른, 도7의 구성 요소들 모두 또는 일부가 제어 회로들 또는 제어 회로로 생각될 수 있다.
도8을 참조하면, 메모리 셀 어레이(302)의 실시예 구조가 기술되어 있다. 일 실시예로서, NAND 플래시 EEPROM은 1024개의 블록들로 분할되어 기술된다. 각각의 블록에 저장되는 데이터는 동시에 소거된다. 일 실시예에서, 블록은 동시에 소거되는 셀들의 최소 단위이다. 각각의 블록에서, 일 실시예에서, 짝수 열들과 홀수 열들로 분리된 8512개의 열들이 있다. 또한, 비트 라인들은 짝수 비트 라인(BLe)과 홀수 비트 라인(BLo)으로 분리된다. 도8은 NAND 스트링을 형성하기 위해 직렬로 연결된 4개의 메모리 셀들을 보여준다. 비록 4개의 셀들이 각각의 NAND 스트링을 포함하기 위해서 보이고 있지만, 4개의 메모리 셀들 이상 또는 이하가 사용될 수 있다. NAND 스트링의 한 단자는 제1 선택 트랜지스터(SGD)를 통해 상응하는 비트 라인에 연결되고, 또 다른 단자는 제2 선택 트랜지스터(SGS)를 통해 상응하는 c-소스에 연결된다.
판독 및 프로그래밍 연산들 중에, 4256개의 메모리 셀들이 동시에 선택된다. 선택된 메모리 셀들은 동일한 워드 라인과 동일한 종류의 비트 라인, 예를 들면, 짝수 비트 라인들 또는 홀수 비트 라인들을 가진다. 그러므로 532 바이트의 데이터는 동시에 판독 또는 프로그램될 수 있다. 동시에 판독 또는 프로그램된 532 바이 트의 데이터는 논리적 페이지(Logical Page)를 형성한다. 그러므로 한 개의 블록은 적어도 4개의 워드 라인들, 각각 짝수와 홀수 페이지들을 가진, 8개의 논리적 페이지들을 저장할 수 있다. 각각의 메모리 셀이 예를 들면, 다중 레벨 셀과 같은 2 비트의 데이터를 저장할 때, 한 개의 블록은 16개의 논리적 페이지들을 저장한다. 또한, 다른 사이즈의 블록들과 페이지들이 본 발명에 사용될 수 있다. 추가로, 도7과 도8과는 다른 구성들이 본 발명을 구현하기 위해서 사용될 수 있다.
메모리 셀들은 예를 들면, 20V의 소거 전압까지 p-웰을 올리고, 선택된 블록의 워드 라인들을 접지시키는 것에 의해서 소거된다. 소스와 비트 라인들은 플로팅한다. 소거하는 것은 전체 메모리 어레이, 분리된 블록들 또는 다른 셀들의 유닛에서 수행될 수 있다. 전자들은 플로팅 게이트에서 p-웰 영역으로 전송되고, 임계 전압은 음으로 된다.
판독 및 검증 연산들 중에, SGD 및 SGS와 같은 선택 게이트들과 예를 들면, WL0, WL1 및 WL3과 같은 미선택된 워드 라인들은 통과 게이트들(Pass Gates)로서 트랜지스터들 연산을 만들기 위해서 판독 통과 전압을 예를 들면 4.5V로 올리게 된다. 일 예로, WL2과 같은 선택된 워드 라인은 관계된 메모리 셀의 임계 전압이 특정 레벨에 도달하는지 결정하기 위해서 각각의 판독 및 검증 연산을 지정하는 레벨의 전압에 연결된다. 일 예로, 두 개의 레벨 메모리 셀에 대한 판독 연산에서, 선택된 워드 라인 WL2는 접지될 수 있다. 그 결과, 임계 전압이 0V보다 더 높게 검출된다. 두 개의 레벨 메모리 셀에 대한 검증 연산에서, 선택된 워드 라인 WL2는 0.8V에 연결된다. 그 결과, 임계 전압이 적어도 0.8V에 도달하는지 검증하게 된다. 소스 및 p-웰은 0V이다. 선택된 비트 라인들(BLe)은 일 예로, 0.7V의 레벨로 기충전(pre-charged)된다. 임계 전압이 워드 라인에서의 판독 또는 검증 레벨보다 더 클 경우, 관계된 비트 라인(BLe)의 전위 레벨은 비전도(non-conductive) 메모리 셀때문에 하이 레벨(High Level)을 유지한다. 반면에, 임계 전압이 판독 또는 검증 레벨보다 더 낮을 경우, 관계된 비트 라인(BLe)의 전위 레벨은 전도 메모리 셀때문에, 일 예로, 0.5V보다 작은 로우 레벨(Low Level)로 감소한다. 상기 결과, 메모리 셀의 상태는 비트 라인에 연결된 감지 증폭기(Sense Amplifier)에 의해 검출된다.
상기 기술된 소거, 판독 및 검증 연산들은 당업계에서 알려진 기술에 의해서 수행된다. 따라서, 기술된 많은 상세한 설명들이 당업계에서 하나의 숙달된 기술에 의해서 다양화될 수 있다. 또한, 당업계에서 알려진 다른 판독 및 검증 기술들이 사용될 수 있다.
도9는 도7의 열 제어 회로(304)의 일부분의 스케매틱 블록도이다. 열 제어 회로(304)에서, 데이터 저장 회로(440)는 짝수 번호 비트 라인(BLe)과 홀수 번호 비트 라인(BLo)을 포함하는 각각 두 개의 비트 라인들로 배열된다. 또한, 열 제어 회로(304)에서, 감지 증폭기는 메모리 셀들 안에 데이터를 쓰고, 상기 메모리 셀들에서 데이터를 판독하기 위해서 데이터 저장 회로(440)에 배열된다.
n-채널 MOS 트랜지스터(442)는 데이터 저장 회로(440)와 짝수 번호 비트 라인(BLe) 간의 열 선택(Column Selection)을 위해서 연결된다. 또 다른 n-채널 MOS 트랜지스터(444)는 데이터 저장 회로(440)와 홀수 번호 비트 라인(BLo) 간의 열 선택을 위해서 연결된다. 짝수 번호 비트 라인(BLe) 또는 홀수 번호 비트 라인(BLo) 중에 어느 하나는 데이터 쓰기 또는 데이터 판독의 연산을 제어하기 위해서 선택된다. 더 구체적으로는, 신호 짝수BL이 논리 레벨 1이고 신호 홀수BL이 논리 레벨 0일 때, MOS 트랜지스터(442)는 짝수 번호 비트 라인(BLe)을 선택하기 위해서 전기적으로 전도되고, 이후에 데이터 저장 회로(440)에 연결된다. 반면에, 신호 짝수BL이 논리 레벨 0이고 신호 홀수BL이 논리 레벨 1일 때, 트랜지스터(444)는 홀수 번호 비트 라인(BLo)을 선택하기 위해서 전기적으로 전도되고, 이후에 데이터 저장 회로(440)에 연결된다. 신호 짝수BL은 짝수 번호 비트 라인들을 통해 연결된 열 선택을 위해 모든 n-채널 MOS 트랜지스터들에 적용되고 반면에, 신호 홀수BL은 홀수 번호 비트 라인들을 통해 연결된 열 선택을 위해 모든 n-채널 MOS 트랜지스터들에 적용된다.
각각의 데이터 저장 회로(440)는 3개의 2진 데이터 저장 섹션들(Sections) DS1, DS2, DS3를 포함한다. 저장 섹션 DS1은 내부 데이터 입력/출력 라인들을 지나서 데이터 입력/출력(312)에 연결되고, 외부로 출력되는 데이터를 쓰거나 또는 판독하기 위해서 외부 입력 데이터를 저장한다. 데이터 저장 섹션 DS2는 쓰기 연산 후에, 메모리 셀의 임계값을 확인하기 위한 쓰기 검증 연산의 검출 결과를 저장한다. 데이터 저장 섹션 DS3은 임시로 쓰는 순간 및/또는 판독 순간의 메모리 셀의 데이터를 저장한다. 다른 실시예들에서, 또한, 데이터 저장 섹션들은 다른 기능들을 가질 수 있다. 다양한 실시예들에서, DS1, DS2, DS3는 메모리 장치의 일 부분들, 하나 이상의 레지스터들 또는 정보를 저장할 수 있는 임의의 다른 디바이스들이 될 수 있다. 일 실시예에서, DS1, DS2, DS3는 각각 1비트이다. 또 다른 실시예 들에서, 하나 이상의 DS1, DS2, DS3는 다중 비트들을 저장할 수 있다. 또한, 도9에 나타난 회로와는 다른 회로들이 비트 라인들을 제어하기 위해서 사용될 수 있다.
도9가 짝수/홀수 비트 라인 구성을 보여주는 것에 주목해야한다. 그러나 본 발명은 각각의 비트 라인이 자기 자신의 감지 증폭기 및/또는 데이터 저장을 가진 구성과 같은, 많은 다른 비트 라인 구성과 함께 사용될 수 있다. 본 발명을 구현하기 알맞은 일부 구성들에서, 모든 비트 라인들은 짝수 및 홀수 통과들(Passes)보다는 하나의 통과로 프로그램된다. 일 예로, 본원 명세서에 참조로 인용되는, 2002년 9월 24일 제출된, 미국 특허 출원 번호 제10/254,483호, "Highly Compact Non-Volatile Memory and Method Thereof"를 참조하면 된다.
도10은 2 비트의 데이터 예를 들면, 4개의 데이터 상태들을 저장하는 메모리 셀들에 대한 임계 전압 분포들을 도시한다. 일 실시예에서, 분포(460)는 음의 임계 전압 레벨들을 가지는 소거된 상태에 있는, 예를 들면, "11"을 저장하는 셀들의 임계 전압들의 분포를 나타낸다. 분포(462)는 "10"을 저장하는 셀들의 임계 전압들의 분포를 나타낸다. 분포(464)는 "00"을 저장하는 메모리 셀들의 임계 전압들의 분포를 나타낸다. 분포(466)는 "01"을 저장하는 셀들의 임계 전압들의 분포를 나타낸다. 다른 실시예들에서, 각각의 분포들은 상기 기술된 것과는 다른 데이터 상태들로 대응될 수 있다. 추가로, 본 발명은 2 비트 이상을 저장하는 메모리 셀들을 가지고 동작할 수 있다.
하나의 구현에서, 분포(460)와 같이 소거된 상태에서의 메모리 셀은 분포 462, 464 또는 466와 같이 프로그램 상태들 중의 임의의 하나로 프로그램될 수 있 다. 또 다른 실시예에서, 소거된 상태에서의 메모리 셀들은 2단계 방법론(Two-Step Methodology)에 의해서 프로그램된다. 상기 2단계 방법론에서, 각각의 비트들은 데이터 상태에 대응하는 다른 논리적 페이지들을 저장하게 된다. 즉, 메모리 셀에 저장되는 각각의 비트는 하위 논리적 페이지(Lower Logical Page)와 상위 논리적 페이지(Upper Logical Page)에 속하는 다른 논리적 페이지 어드레스를 가진다. 일 예로, 상태 "10"에서, "0"은 하위 논리적 페이지를 위해 저장되고, "1"은 상위 논리적 페이지를 위해 저장된다. 제1 프로그래밍 단계에서, 셀의 임계 전압 레벨은 하위 논리적 페이지에 프로그램된 비트에 의해서 설정된다. 비트가 논리 "1"일 경우, 초기 소거된 결과로서의 고유한 상태에 있기 때문에, 임계 전압은 변화되지 않는다. 그러나 비트가 논리 "0"으로 프로그램된 경우, 셀의 임계 레벨은 임계 전압 분포(462) 내에서 증가한다.
제2 프로그래밍 단계에서, 셀의 임계 전압 레벨은 상위 논리적 페이지에 프로그램되는 비트에 의해서 설정된다. 상위 논리적 페이지 비트가 논리 "1"일 경우, 셀이 "1"의 상위 페이지 비트를 전달하는 임계 전압 분포 460 또는 462에 대응하는 상태들 중의 하나에 있기 때문에, 어떠한 이후의 프로그래밍도 발생하지 않는다. 상위 논리적 페이지 비트가 논리 "0"이고, 제1 단계가 임계(460)에 대응하는 소거된 상태에서 유지하는 셀이라면, 프로그래밍 처리의 제2 단계는 임계 분포(466) 내에서 임계 전압을 올리는 것을 포함한다. 상위 논리적 페이지 비트가 논리 "0"이고, 셀이 제1 단계의 결과로서 임계 분포(462)에 대응하는 상태로 프로그램된 경우, 프로그래밍 처리의 제2 단계는 임계 전압 분포(464) 내에서 임계 전압을 올리 는 것을 포함한다. 2단계 처리는 단지 다중 상태 메모리를 프로그래밍하기 위한 방법론의 한 실시예이다. 1단계 처리 또는 2단계 이상의 처리를 포함하는 많은 다른 방법론들이 사용될 수 있다. 도8이 2 비트의 4개 상태들을 보여주고 있다 할지라도, 또한, 본 발명은 8개의 상태, 16개의 상태, 32개의 상태 등등을 포함하는 다른 다중 상태 구조들과 함께 사용될 수 있다.
도11은 본 발명의 일 실시예에 따른 프로그래밍 처리를 설명한다. 도11은 임계 전압(Vth) 대 시간과 비트 라인 전압(Vbl) 대 시간의 관계를 나타낸 그래프이다. 가로축은 t1, t2, t3, t4, t5를 나타낸다. 각각의 시간에 대응하는 검증 절차는 프로그램 펄스들 간에 수행된다. 도11에서 기술된 처리는 임의의 다중 상태들에 메모리 셀을 프로그램하기 위해서 사용될 수 있거나 또는, 2진 메모리 셀을 프로그램하기 위해서 사용될 수 있다.
도1의 프로그램 펄스들과 비슷하게, 프로그래밍 펄스들의 집합이 메모리 셀에 적용됨으로써, 메모리 셀의 임계 전압은 도11에 나타나듯이 시간 t1과 t2 사이에서 증가할 것이다. 일부 실시예들에서, 프로그래밍 이전과 소거 이후의 초기 임계 전압은 음의 임계 전압을 가질 것이다. 메모리 셀의 임계 전압이 하위 중간 임계 전압 검증 포인트 Vver2에 도달할 때, 비트 라인 전압은 0V에서 중간 전압 V1으로 올라갈 것이다. 도11은 임계 전압이 t2 이후 t3 이전에 Vver2보다 더 크게 되는 것을 보여준다. t3에서, 메모리 셀의 임계 전압은 Vver2보다 크게 결정될 것이다. 임계 전압이 Vver2보다 크게 결정되자마자, 비트 라인 전압은 중간 전압 V1까지 올라가게 된다. 실시예에서, V1은 종래 기술에서 사용되던 중간 전압보다 더 낮다. 일 예로, 일부 실시예들은 V1을 위해 0.4V 또는 0.5V를 사용할 수 있다. 본 발명은 메모리 셀이 정확하게 한 개의 프로그래밍 펄스를 위해 V1의 비트 라인을 가질 것으로 고려한다. 한 개의 프로그래밍 펄스 이전에, 비트 라인은 금지 전압, 예를 들면, Vdd까지 올라갈 것이다. 따라서, 임계 전압이 Vver2에 도달하자마자, 프로그램 처리는 한 개의 프로그래밍 펄스 동안 늦춰질 것이고, 그 후에 금지된다. 마지막 펄스 동안 프로그래밍 처리를 늦추고, 마지막 펄스를 위한 임계 전압의 많은 시프트를 감소시키는 것에 의해서, 프로그래밍 처리는 더욱 밀집한 임계 전압 분포를 얻을 것이다. 추가로, 더 큰 스텝 사이즈가 사용될 수 있다. 일 예로, 많은 종래 기술에서의 처리들은 0.2V의 Vpgm의 스텝 사이즈를 사용한다. 본 발명은 0.4V의 스텝 사이즈를 고려한다.
일부 실시예들에서, 전압 V1은 다음의 프로그래밍 펄스 동안에, 메모리 셀의 임계 전압 시프트가 프로그램 전압 스텝 사이즈의 반과 동일하게 되는 그러한 방식으로 선택된다. 즉, 프로그램 스텝이 0.4V일 경우, V1은 메모리 셀의 임계 전압에서 시프트가 0.2V와 같게 될 때 선택된다. 임계 전압 다음의 한 개의 부가 프로그래밍 펄스가 Vver2에 도달한 후에, Vver1과 Vver2의 값들은 메모리 셀의 임계 전압의 시프트가 목표값인 Vver1보다 더 크게 될 때 적당한 방법으로 선택된다. 따라서, 일부 실시예들에서, Vver2는 프로그램 전압 스텝 사이즈를 예를 들면, 0.2V인 1/2로 해서 Vver1으로부터 분리된다. 도2의 처리와 비교해서, 상기 기술된 방법의 장점은 더 작은 프로그래밍 펄스들이 요구되고, 그 결과 더 작은 프로그래밍 시간을 생성하는 것이다.
도12는 도11에 대해 상기 기술된 개념들을 사용한 프로그래밍 메모리를 위한 일반적인 방법을 기술한 흐름도이다. 단계 500에서, 시스템은 메모리를 프로그램하기 위해서 명령들과 데이터를 수신하게 된다. 단계 502에서, 초기화가 수행된다. 일 예로, 일부 실시예들에서, 메모리 셀들은 프로그래밍 이전에 소거된다. 추가로, 소거된 일부 메모리 셀들은 소프트 프로그래밍 처리(Soft Programming Process)가 필요하고, 소거된 전체 메모리 셀들은 폭이 좁은 소거된 임계 전압 분포 내에서의 임계 전압을 가지게 된다. 추가로, 상태 레지스터들이 초기화된다. 단계 504에서, 프로그래밍 펄스가 적용된다. 일 예로, 특정한 NAND 체인들에서 트랜지스터들의 제어 게이트들은 프로그래밍 펄스를 수신하는 제어 게이트들을 가진다. 단계 506에서, 검증 연산이 수행되고, 메모리 셀들은 상기 메모리 셀들의 임계 전압들이 Vver2에 도달하는지 결정하기 위해서 테스트된다(도11 참고). 단계 508에서, 검증 연산이 수행되고, 메모리 셀들은 상기 메모리 셀들의 임계 전압들이 Vver1에 도달하는지 결정하기 위해서 테스트된다(도11 참고). 2진 메모리 셀에서, 단지 하나의 Vver1과 하나의 Vver2만이 존재하게 된다. 다중 상태 메모리 셀에서, 각각의 상태는 각각의 상태에 대한 Vver1 및 Vver2를 가지게 된다. 일부 실시예들에서, 각각의 상태에 대한 한 개의 검증 연산들 집합이 존재하게 된다. 따라서, 8개의 상태 메모리 셀에서, Vver2에 대한 검증 절차와 Vver1에 대한 검증 절차를 가지는 각각의 검증 연산의 집합과 함께 7개의 검증 연산들 집합이 존재하게 된다.
단계 506의 검증 처리가 성공적이고, 단계 508의 검증 처리가 실패한 경우(단계 510 참고), 메모리 셀의 임계 전압이 Vver2보다 크고 Vver1보다 작다고 생각 할 수 있다. 이 경우, 한 개의 부가 프로그래밍 펄스가 단계 520에서 메모리 셀에 적용된다. 그러나 상기 프로그래밍 펄스는 감소 레벨 동안 적용된다. 일 예로, 일 실시예에서, 메모리의 비트 라인은 상기 기술되었듯이 중간 전압 V1까지 올라간다. 또 다른 실시예에서, 비트 라인 전압을 올리는 것보다, 오히려 프로그래밍 펄스가 메모리 셀을 줄이는게 더 낫다. 일 실시예는 프로그래밍 펄스의 시작 때 비트 라인에 Vdd를 적용하는 것을 포함한다. 프로그래밍 펄스 동안, 비트 라인 전압은 일부 프로그래밍을 할 수 있도록 Vdd에서 0V으로 감소할 것이다. 일반적으로, 프로그래밍 펄스는 8-10 마이크로 초(microsecond)이다. 실시예에서, 감소한 프로그래밍 펄스는 5 마이크로 초이다. 단계 520은 프로그램된 메모리 셀에 단지 하나의 펄스를 적용하는 것을 포함한다. 상기 하나의 펄스가 적용된 후에, 단계 522에서, 상기 메모리 셀은 이후의 프로그래밍부터 금지될 것이다.
단계 508의 검증 처리가 성공적인 경우(단계 510 참고), 메모리 셀의 임계 전압이 Vver1보다 크고, 단계 512에서, 메모리 셀은 이후의 프로그래밍부터 금지될 것이다.
단계 506의 검증 처리가 실패하고, 단계 508의 검증 처리가 성공적이지 못한 경우(단계 510 참고), 메모리 셀의 임계 전압이 Vver2보다 작다고 생각할 수 있다. 이 경우, 처리 루프들은 다음의 프로그램 펄스를 적용하기 위해서 단계 504로 되돌아간다.
상기 기술되었듯이, 다중 상태 메모리 셀은 다양한 구성들을 가질 수 있다. 일 실시예에서, 다중 상태 메모리 셀은 소거된 상태를 임의의 프로그램된 상태로 프로그램할 수 있게 한다. 일 예로, 도10을 보면, 상태 460에서 메모리 셀은 상태 462, 464 또는 466 중에 하나로 직접 프로그램될 수 있다. 또 다른 실시예에서, 메모리 셀들은 다중 논리적 페이지들을 사용할 수 있고, 상기 기술된 2단계 프로그래밍 처리에 의해서 프로그램될 수 있다. 도13은 상기 기술된 것처럼, 다중 논리적 페이지 메모리 셀의 하위 논리적 페이지를 프로그래밍 처리하는 한가지 실시예를 기술하는 흐름도이다. 또한, 더 많은 비트들, 더 많은 페이지들, 다른 상태 지정들(assignments) 등등을 가진 다른 실시예들은 본 발명의 범위 내에 있다. 도13의 처리에 대한 다양한 변형들은 임계 상태 지정들과 프로그램 방법론에서의 다른 변화들을 조절시키기 위해 만들어질 수 있다. 또한, 도13의 처리는 2진 메모리 셀과 함께 사용될 수 있다.
도13의 단계 550에서, 연산은 호스트로부터 데이터 입력 명령을 수신하고 상태 머신에 데이터 입력 명령을 위치시키는 것에 의해서 시작된다. 단계 552에서, 어드레스 데이터는 호스트로부터 수신되고, 쓰기 연산에 사용되는 페이지를 선택하기 위해서 상태 머신에 저장된다. 단계 554에서, 쓰여지는 데이터는 DS1에 수신되고 저장된다. 단계 556에서, 쓰기 명령은 호스트로부터 수신되고, 상기 쓰기 명령은 상태 머신에 위치된다. 일 실시예에서, 쓰기 명령이 상태 머신에 저장된 후에, 이후 단계들의 연산이 자동으로 상태 머신에 의해서 시작된다. 단계 558에서, DS1에서의 데이터는 DS2로 복사된다. 단계 560에서, 프로그램 전압 Vpgm의 초기값들이 설정된다. 예를 들면, 1V로 설정된다. 그러나 또한, 다른 값들이 사용될 수 있다. 추가로, 프로그램 카운터(PC)는 0으로 초기화된다.
일 실시예에서, 소거된 상태는 논리적 데이터 1에 대응하고, 프로그램 상태는 논리적 데이터 0에 대응한다. 따라서, DS1과 DS2에 데이터가 로딩(Loading) 될 때, 0이 상기 DS1과 DS2 레지스터들에 로드되는 경우, 메모리 셀은 프로그램될 수 있다. 논리적 데이터 1이 DS1과 DS2에 로드되는 경우, 메모리 셀이 이미 소거된 상태이기 때문에, 메모리 셀은 프로그램될 필요가 없다. 2단계 프로그래밍 처리에서 두 개의 논리적 페이지들을 사용하는 다중 상태 메모리 셀의 실시예에서, 하위 상태가 상태 460에서 상태 462로 변화될 경우, 0이 DS1과 DS2에 로드된다. 메모리 셀이 상태 460을 유지할 경우, 1이 DS1과 DS2에 로드된다.
단계 570에서, DS1이 0과 같고 DS2가 0과 같은지 결정한다. DS1이 0이고 DS2가 0이라면, 비트 라인은 0V로 설정된다. DS1이 0이고 DS2가 0인 것은 메모리 셀이 다음 상태로 프로그램되고 임계 전압이 Vver2보다 작은 경우이다.
DS1이 0과 같고 DS2가 1과 같은 경우, 비트 라인은 중간 비트 라인 전압, V1으로 설정된다. DS1이 0과 같고 DS2가 1과 같은 것은 임계 전압이 Vver2보다는 크고 Vver1보다는 작은 경우이다.
DS1이 1과 같은 경우, 메모리 셀의 임계 전압이 Vver1보다 크다고 생각할 수 있다. 이 경우에, 비트 라인은 이후의 프로그래밍을 금지하기 위해서 Vdd로 설정된다.
단계 572에서, 다음의 프로그램 펄스가 메모리 셀의 제어 게이트에 적용된다. 단계 574에서, DS2가 1과 동일한지 결정된다. DS2가 1과 동일한 경우, 또한, DS1은 1로 설정된다. 단계 574는 메모리 셀의 임계 전압이 Vver2보다 크지만 Vver1 보다는 작기 때문에, DS2가 1로 설정된 후에 수행된다. 메모리 셀은 단지 하나 이상의 프로그래밍 펄스를 위해 프로그램될 것이다. 단계 576에서, 메모리 셀은 Vver2에 대한 검증 처리가 필요하다. 임계 전압이 Vver2보다 크거나 같기 때문에, 검증 처리가 성공적인 경우, DS2는 1로 설정된다. DS2가 이미 1인 경우, 상기 DS2는 1을 유지한다. 단계 578에서, 메모리 셀은 Vver1에 대한 검증 처리가 필요하다. 임계 전압이 Vver1에 도달했기 때문에, 검증 처리가 통과한 경우, DS1은 1로 설정된다. DS1이 이미 1인 경우, 상기 DS1은 1을 유지한다. 단계 580에서, 프로그램 전압은 스텝 사이즈에 의해서 증가한다. 일 실시예에서, 스텝 사이즈는 0.4V이다. 그러므로 다음의 프로그래밍 펄스는 이전 펄스보다 큰 0.4V일 것이다. 또 다른 실시예에서, 스텝 사이즈는 0.2V 또는 다른 값들이다. 단계 582에서, 프로그램 카운터는 1씩 증가한다. 단계 584에서, 프로그램되는 모든 메모리 셀들은 DS1 레지스터가 1과 같은 값을 가지는지 결정한다. 상기 모든 DS1 레지스터가 1과 같은 경우, 프로그래밍 처리는 성공적으로 완료된다. 상기 모든 DS1 레지스터가 1과 같지 않은 경우, 프로그래밍 처리는 계속된다. 단계 586에서, 프로그램 카운터가 20보다 작은지 결정한다. 상기 프로그램 카운터가 20보다 큰 경우, 프로그래밍 처리는 실패된다. 프로그램 카운터가 20보다 작은 경우, 처리 루프는 단계 570으로 되돌아간다.
일부 실시예들에서, 프로그램 카운터는 반드시 20과 비교되지 않는다. 상기 프로그램 카운터는 두 개의 레벨 연산을 위해 4 또는 5보다 더 낮을 수 있다. 다중 레벨에 대해서, 상기 프로그램 카운터는 하위 페이지를 위해 12개의 순서와 상위 페이지를 위해 16개의 순서가 될 수 있다. 이러한 값들은 마찬가지로 스텝 사이즈 에 의존한다. 일부 실시예들에서, 프로그램 카운터가 최대값에 도달한 경우, 프로그래밍 처리가 반드시 실패하지는 않는다. 프로그램 카운터가 최대값에 도달한 후, 시스템들은 페이지에서 얼마나 많은 메모리 셀들이 검증 레벨에 도달하지 않았는지를 검사한다. 검증 레벨에 도달하지 못한 셀들의 수가 임의의 값보다 작은 경우, 즉, 1 또는 1보다 작은 경우, 예를 들면, ECC와 같은 에러 정정(Error Correction)이 1 비트로 정정하기 위해서 사용될 수 있기 때문에 프로그래밍 처리는 여전히 성공적인 것으로 생각될 수 있다. 게다가, 많은 경우들에서, 검증 전압을 통과하지 못한 셀은 여전히 하위 게이트 전압에서 수행되는 정상적인 판독 연산을 통과하기에 충분히 높은 임계 전압을 가질 수 있다.
상기 기술된 바와 같이, 두 개의 논리적 페이지들과 2단계 프로그래밍 처리를 사용하는 다중 상태 메모리 셀의 일 실시예에서, 상태 460은 11과 동일하고, 상태 462는 10과 동일하고, 상태 464는 00과 동일하고, 상태 466은 01과 동일하다. 상기 실시예에서, 도13의 처리는 상태 11에서 상태 10까지 셀들을 프로그래밍하는 것에 사용된다. 도14의 처리는 상태 11에서 상태 01까지 또는 상태 10에서 상태 00까지 중의 하나로 메모리 셀들을 프로그래밍하는 것에 사용된다. 즉, 도14는 메모리 셀에 상위 페이지 데이터를 쓰는 일 실시예를 위한 제어 알고리즘을 기술한 흐름도이다.
도14의 단계 620에서, 연산은 호스트로부터 데이터 입력 명령을 수신하고 상태 머신에 데이터 입력 명령을 위치시킬 때 시작한다. 단계 622에서, 어드레스 데이터는 호스트로부터 수신되고, 상태 머신에 위치된다. 단계 624에서, 쓰여지는 데 이터는 DS1에 수신되고 저장된다. 단계 626에서, 쓰기 명령은 호스트로부터 수신되고, 일부 실시예들에서, 이후 처리의 시작이 자동으로 시작되는 상태 머신에 위치된다. 단계 628에서, 프로그램 데이터는 DS1에서 DS2로 복사된다. 단계 630에서, 상태 10 판독 연산은 메모리 셀이 상태 11 또는 10인지 결정하기 위해서 상태 11과 10 사이에 있는 판독 비교 포인트를 사용해서 수행된다. 메모리 셀이 상태 10으로 결정된 경우, 메모리 셀에 대한 DS3 레지스터는 1로 설정된다. 그외의 경우, DS3 레지스터는 0으로 설정된다. 단계 632에서, 테스팅에 근거해서 결정된 프로그램 전압은 16V-18V 범위의 값으로 초기 설정된다. 그러나 또한, 다른 초기 전압들이 사용될 수 있다. 추가로, 프로그램 카운터는 초기 0으로 설정된다.
단계 640에서, DS1 레지스터와 DS2 레지스터 모두가 0으로 설정되는지 결정된다. 상기 DS1 레지스터와 DS2 레지스터 모두 0인 경우, 프로그램되는 메모리 셀의 임계 전압은 프로그램되는 특정한 상태를 위해 Vver2보다 낮은 것으로 생각할 수 있고, 비트 라인은 0V로 설정된다.
DS1이 0으로 설정되고 DS2가 1로 설정된 경우, 메모리 셀의 임계 전압은 Vver2보다 크고 Vver1보다 작은 것으로 생각할 수 있다. 그러므로 비트 라인은 V1의 중간 전압으로 설정된다.
DS1이 1로 설정된 경우, 메모리 셀의 임계 전압은 Vver1보다 크다고 생각할 수 있다. 그러므로 비트 라인 전압은 임임의 이후의 프로그래밍을 금지하기 위해서 Vdd로 설정된다. 단계 642에서, 다음의 프로그래밍 펄스가 적용된다. 단계 644에서, DS2 레지스터가 1로 설정되는지 결정한다. DS2 레지스터가 1로 설정된 경우, 또한, DS1 레지스터는 1로 설정된다. 단계 644는 메모리 셀이 Vver2에 도달하는 것을 확인하기 위해서 사용되고, 단지 한 개의 부가 펄스가 메모리 셀을 프로그램하기 위해 사용된다. 단계 646에서, 검증 처리는 상태 00의 Vver2를 위해 수행된다. DS3가 1과 동일하고, 검증 처리가 통과한 경우, DS2 레지스터는 1로 설정된다. 단계 648에서, 프로그램 검증 처리는 상태 00에 대한 Vver1을 위해 수행된다. DS3가 1로 설정되고, 검증 처리가 통과한 경우, DS1 레지스터는 1로 설정된다. 단계 650에서, 검증 처리는 상태 01의 Vver2를 위해 수행된다. DS3 레지스터가 0으로 설정되고 검증 처리가 통과한 경우, DS1 레지스터는 1로 설정된다. 단계 652에서, 검증 처리는 상태 01에 대한 Vver1을 위해 수행된다. DS3 레지스터가 0으로 설정되고, 검증 처리가 통과한 경우, DS1 레지스터는 1로 설정된다. 단계 654에서, 프로그램 전압은 스텝 사이즈에 의해서 증가한다.
일부 구현들에서, 단계 650은 수행되지 않는다. 즉, 시스템은 프로그래밍 시간을 절약하기 위해서 단지 예를 들면, 상태 01과 같은 가장 높은 프로그램된 상태에 대해 Vver1을 검사한다. 일부 실시예들에서, 더 넓은 임계 전압 분포가 예를 들면, 상태 01와 같은 가장 높은 프로그램된 상태를 위해 다뤄질 수 있다.
단계 656에서, 프로그램 카운터는 1씩 증가한다. 단계 658에서, 프로그램되는 모든 메모리 셀들은 DS1 레지스터가 1로 설정되는지 결정한다. 상기 모든 DS1 레지스터가 1로 설정된 경우, 프로그래밍 처리는 성공적으로 완료된다. 모든 DS1 레지스터가 1로 설정되지 않은 경우, 단계 660에서, 프로그램 카운터는 20보다 작은지 결정한다. 상기 프로그램 카운터가 20보다 큰 경우, 프로그램 처리는 실패된 다. 프로그램 카운터가 20보다 작은 경우, 처리 루프는 단계 640으로 되돌아간다.
상기 기술된 실시예에서, 비트 라인 중간 전압은 다음의 프로그래밍 펄스 동안에, 임계 시프트가 스텝 사이즈의 반과 동일하게 되는 그러한 방식으로 선택된다. 다른 실시예들에서, 시프트는 한쪽 방향이 약간씩 다양할 수 있다. Vver1과 Vver2간의 차이는 시간 tn에서 Vver2 레벨을 통과하는 셀이 tn+1에서 Vver1보다 큰 또는 일부 경우들에서는 근사하는 임계 전압을 가지는 그러한 방식으로 선택된다. 중간 비트 라인 전압 V1은 임의의 시간 tn에서 단지 Vver2보다 크지만 Vver1보다 작은 임계 전압을 가지는 셀들에 적용되고, 단지 한 개의 프로그래밍 펄스에 대해 적용된다. 한 개의 프로그래밍 펄스 후에, 이후의 프로그래밍이 금지된다. 따라서, 제조 처리(Manufacturing Process) 동안에, 도7에 의해서 비휘발성 저장 소자들의 어레이와 메모리 시스템을 생성할 때, 특정 상태에 대한 또는 모든 상태들에 대한, 예를 들면, Vver1과 같은 최종 검증 임계값이 설정되고, 관련된 다양한 상태들에 대한 예를 들면, Vver2와 같은 중간 검증 임계값/임계값들이 설정된다. 그 결과 메모리 셀이 중간 검증 임계값에 도달한 후에, 메모리 셀들은 예를 들면, 하나의 프로그래밍 펄스와 같이 최종 검증 임계값 한 개의 프로그래밍 연산에 도달하는 또는 거의 도달하게 될 것이다. 메모리 셀들의 일부가 Vver1 레벨에 도달하지 못할 수 있다. 상기 기술된 처리에 이어서, 어떠한 부가 프로그래밍 펄스들도 Vver1 레벨에 도달하지 못하는 메모리 셀들을 프로그램하기 위해서 적용되지 않는다. Vver1 레벨에 도달하지 못하는 이유들은 Vver1 및/또는 Vver2 단계 동안에 잡음을 판독하기 때문이거나 또는 가장 최근의 프로그래밍 펄스 동안에 기대되는 것보다 작은 임계 전압 시프트 때문일 수 있다. 따라서, 일부 경우들에서, 상기 언급된 기술들을 사용하는 특정한 메모리 셀은 Vver1보다 낮은 임계 전압을 가질 수 있다.
상기 기술된 실시예들은 2개의 검증 포인트들을 고려한다. 최종 검증 포인트와 중간 검증 포인트. 본 발명의 또 다른 실시예는 3개의 검증 레벨들을 사용한다. 또 다른 실시예들에서, 또한, 3개의 검증 레벨들보다 더 많은 레벨들이 사용될 수 있다.
도15와 도16은 3개의 검증 레벨들을 사용한 실시예를 기술한다. 도15와 도16은 임계 전압(Vth) 대 시간과 비트 라인 전압(Vbl) 대 시간의 관계를 나타낸 그래프를 포함한다. 3개의 검증 레벨들을 가진 실시예에서, 검증 연산 동안에, 목표 전압(Target Voltage) Vver1보다 큰 임계 전압을 가지는 메모리 셀들은 비트 라인 전압을 Vinhibit까지 올리는 것에 의해서 완전히 금지된다. Vver1과 Vver2 사이의 임계 전압을 가지는 메모리 셀들은 이후의 프로그래밍 단계 동안에 중간 비트 라인 전압 V1을 적용하는 것에 의해서 늦춰지고, 상기 이후 완전히 금지되며, V1에서 비트 라인을 가진 단지 한 개의 프로그램 임펄스만이 수행된다. V1과 Vver2의 값들은 tn에서 Vver2를 통과하는 셀이 tn+1에서 Vver1에 도달하거나 또는 거의 도달하는 그러한 방식으로 설정된다. 검증 연산 동안에, Vver3와 Vver2 사이의 임계 전압을 가지는 메모리 셀들은 이후의 프로그래밍 단계 동안 중간 비트 라인 전압 V2를 적용하는 것에 의해서 늦춰지고, 상기 이후 완전히 금지되며, V2에서 비트 라인을 가진 단지 한 개의 프로그래밍 펄스만이 수행된다. V2와 Vver3의 값들은 tn에서 Vver3를 통과하는 셀이 tn+1에서 Vver1에 도달하거나 또는 거의 도달하는 그러한 방식으로 설정된다. 상기 실시예에서, V2와 V1은 다음의 프로그래밍 펄스에서, 메모리 셀이 Vver2를 통과한 경우, 임계 전압 시프트가 프로그램 스텝의 1/3과 같아지고, 메모리 스텝이 Vver3를 통과한 경우, 임계 전압 시프트가 프로그램 스텝의 2/3와 같아지는 그러한 방식으로 선택된다.
도15는 메모리 셀의 임계 전압이 t2와 t3 사이에서 Vver2보다 크게 되는 경우의 프로그램되는 메모리 셀을 나타낸다. 또한, 임계 전압은 t2와 t3 사이에서 과거 Vver3를 증가시킨다. 따라서, 검증 처리가 t3에서 수행될 때, 메모리 셀은 Vver2보다는 크고 Vver1보다는 작게 결정된다. 그러므로 비트 라인 전압은 한 개의 프로그래밍 펄스에 대해 중간 전압 V1까지 올라간다. 한 개의 프로그래밍 펄스 후에, 비트 라인 전압은 Vinhibit까지 올라가고, 메모리 셀은 이후의 프로그래밍부터 금지된다.
도16의 예는 임계 전압이 t2와 t3 사이에서 Vver3를 가로지르는 메모리 셀을 나타낸다. 검증 처리가 t3에서 수행될 때, 메모리 셀의 임계 전압은 Vver3보다 크고 Vver2보다 작게 결정된다. 그러므로 메모리 셀의 비트 라인 전압은 한 개의 펄스에 대해 중간 전압 V2까지 올라간다. 한 개의 프로그래밍 펄스 이후에, 비트 라인 전압은 Vinhibit까지 올라간다.
더 많은 검증 레벨들을 가지면, 더 많은 검증 연산들이 필요하게 된다. 더 많은 검증 연산들이 수행된 경우, 프로그래밍 처리는 더 길어진다.
도3의 처리와 비교했을 때, 본 발명의 한가지 장점은 비트 라인 전압을 올린 이후의 한 개의 프로그램 펄스 뒤에, 어떠한 부가 프로그래밍 펄스들도 요구되지 않는다는 것이다. 그러므로 프로그래밍 시간이 줄어든다.
도2의 쓰기 처리들과 비교해서, 프로그래밍 처리의 가장 최근 단계가 사실상 사이즈의 반이 되기 때문에, 더 큰 스텝 사이즈가 동일한 임계 전압 분포를 유지하기 위해서 사용될 수 있다. 따라서, 요구되는 많은 수의 프로그래밍 펄스들이 감소할 수 있다. 예를 들면, 일부 경우들에서는 거의 50% 감소할 수 있다.
본 발명의 앞선 상세한 설명은 도면과 설명의 목적들을 위해 소개된다. 또한, 상기 상세한 설명은 정확한 양식으로 출원된 본 발명을 철저하게 하거나 또는 제한하는 것으로 생각해서는 안 된다. 많은 수정들과 변화들이 상기 언급된 설명으로 미루어보아 가능하다. 기술된 실시예들은 본 발명의 원리들을 최상으로 설명하기 위해 선택되고, 상기 기술된 실시예들에 의한 본 발명의 실질적인 응용은 당업계에서 다른 기술들을 특정한 사용을 고려하기에 적당하도록 다양한 실시예들과 다양한 수정들을 가진 본 발명을 최상으로 이용할 수 있게 한다. 본 발명에 첨부된 청구항들에 의해 정의된 발명의 범위 내에서 생각된다.

Claims (35)

  1. 비휘발성 저장 소자(Non-volatile Storage Element)에 대해 하나 이상의 프로그래밍 연산들(Programming Operations)을 수행하는 단계와;
    상기 비휘발성 저장 소자가 중간 검증 임계값(Intermediate Verify Threshold)에 도달했는지를 결정하는 단계와, 여기서 상기 중간 검증 임계값은 최종 검증 임계값(Final Verify Threshold)과는 다르며;
    상기 결정 단계에 대한 응답으로 상기 비휘발성 저장 소자의 감소 레벨(Reduced Level) 동안 단지 한 개의 부가 프로그래밍 연산(One Additional Programming Operation)을 수행하는 단계와; 그리고
    상기 한 개의 부가 프로그래밍 연산에 대한 응답으로 상기 비휘발성 소자의 임계 전압(Threshold Voltage)의 변화에 관계없이 상기 단지 한 개의 부가 프로그래밍 연산을 수행한 후, 상기 비휘발성 저장 소자의 프로그래밍을 금지하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  2. 제1항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 스텝 사이즈(Step Size)의 크기로 증가하는 프로그래밍 펄스들(Programming Pulses)을 적용하는 것을 포함하고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 상기 스텝 사이즈의 근사적으로 1/2만큼 상기 비휘발성 저장 소자의 임계 전압을 의도적으로 변화시키는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  3. 제1항에 있어서,
    상기 중간 검증 임계값은, 상기 비휘발성 저장 소자가 상기 중간 검증 임계값에 도달한 이후 상기 한 개의 부가 프로그래밍 연산이 상기 비휘발성 저장 소자로 하여금 상기 최종 검증 임계값에 도달하거나 또는 거의 도달하게 하는 양만큼 상기 최종 검증 임계값보다 작은 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  4. 제1항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은, 상기 비휘발성 저장 소자에 대한 비트 라인 전압(Bit Line Voltage)이 프로그래밍 레벨(Programming Level)에 있는 동안 수행되고;
    상기 비휘발성 저장 소자의 상기 프로그래밍을 금지하는 단계는, 상기 비휘발성 저장 소자에 대한 상기 비트 라인 전압이 금지 레벨(Inhibit Level)에 있는 동안 수행되고; 그리고
    상기 한 개의 부가 프로그래밍 연산은, 상기 비휘발성 저장 소자에 대한 상기 비트 라인 전압이 상기 프로그래밍 레벨과 상기 금지 레벨 사이의 중간 레벨(Intermediate Level)에 있는 동안에 수행되며, 상기 비휘발성 저장 소자에 대한 상기 비트 라인 전압은 정확하게 한 개의 프로그래밍 연산을 위해 상기 중간 레벨 에 있는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  5. 제1항에 있어서,
    상기 한 개의 부가 프로그래밍 연산은 상기 비휘발성 저장 소자에 대한 비트 라인 전압을 증가시킴으로써 상기 감소 레벨 동안 수행되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  6. 제1항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 상기 한 개의 부가 프로그래밍 연산을 위해 프로그래밍 펄스의 폭을 줄이는 것에 의해 상기 감소 레벨 동안 수행되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고;
    상기 단지 한 개의 부가 프로그래밍 연산을 수행하는 단계는 한 개의 프로그래밍 펄스를 적용하는 것을 포함하고; 그리고
    상기 금지하는 단계는 상기 한 개의 프로그래밍 펄스를 적용한 후에 수행되 기 위해 요구되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  8. 비휘발성 저장 소자들에서 하나 이상의 프로그래밍 연산들을 수행하는 단계와;
    중간 검증 임계값에 도달하지만 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자를 결정하는 단계와;
    상기 중간 검증 임계값에 도달하지만 상기 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들에서 감소 레벨 동안 한 개의 부가 프로그래밍 연산을 수행하는 단계와;
    상기 중간 검증 임계값에 도달했지만 임의의 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들에 대해서, 자동으로 상기 한 개의 부가 프로그래밍 연산 후에, 프로그래밍을 금지하는 단계와; 그리고
    상기 중간 검증 임계값에 도달하지 않은 비휘발성 저장 소자들을 위한 프로그래밍을 계속하는 단계를 포함하는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  9. 제8항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 스텝 사이즈의 크기로 증가하는 프로그래밍 펄스들을 적용하는 것을 포함하고; 그리고
    상기 중간 검증 임계값에 도달했지만 상기 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들에 대해서, 상기 한 개의 부가 프로그래밍 연산은 상기 스텝 사이즈의 근사적으로 1/2만큼 임계 전압들을 의도적으로 변화시키는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  10. 제8항에 있어서,
    상기 중간 검증 임계값은, 상기 중간 검증 임계값에 도달한 비휘발성 저장 소자들에 대해서 상기 한 개의 부가 프로그래밍 연산이 상기 비휘발성 저장 소자로 하여금 상기 최종 검증 임계값에 도달하거나 또는 거의 도달하게 하는 양만큼 상기 최종 검증 임계값보다 작은 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  11. 제8항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 상기 비휘발성 저장 소자들에 대한 비트 라인 전압들이 프로그래밍 레벨 범위(Programming Level Range)에 있는 동안 수행되고;
    상기 프로그래밍을 금지하는 단계는 비트 라인 전압들이 금지 레벨에 있는 동안 수행되고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 비트 라인 전압들이 상기 프로그래밍 레벨과 상기 금지 레벨 사이의 중간 레벨에 있는 동안에 수행되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  12. 제11항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고;
    상기 단지 한 개의 부가 프로그래밍 연산을 수행하는 단계는 한 개의 프로그래밍 펄스를 적용하는 것을 포함하고; 그리고
    상기 금지하는 단계는 상기 한 개의 프로그래밍 펄스를 적용한 후에 수행되기 위해 요구되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  13. 제8항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고;
    상기 단지 한 개의 부가 프로그래밍 연산을 수행하는 단계는 한 개의 프로그래밍 펄스를 적용하는 것을 포함하고; 그리고
    상기 금지하는 단계는 상기 한 개의 프로그래밍 펄스를 적용한 후에 수행되기 위해 요구되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  14. 제8항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 상기 한 개의 부가 프로그래밍 연산을 위해 프로그래밍 펄스의 폭을 줄이는 것에 의해 상기 감소 레벨에서 수행되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  15. 비휘발성 저장 소자들의 어레이(Array)와; 그리고
    상기 비휘발성 저장 소자들과 통신하는 제어 회로(Control Circuit)를 포함하여 구성되며,
    상기 제어 회로는 상기 비휘발성 저장 소자들이 하나 이상의 프로그래밍 연산들을 수행할 수 있게 하고, 중간 검증 임계값에 도달하지만 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자를 결정하고, 감소 레벨 동안 한 개의 부가 프로그래밍 연산이 상기 중간 검증 임계값에 도달했지만 상기 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들을 수행할 수 있게하고, 상기 한 개의 부가 프로그래밍 연산 후에, 상기 중간 검증 임계값에 도달하는 상기 비휘발성 저장 소자들에 대한 프로그래밍을 금지하고, 상기 중간 검증 임계값에 도달하지 못한 비휘발성 저장 소자들에 대한 프로그래밍을 계속하며, 상기 제어 회로는 상기 한 개의 부가 프로그래밍 연산 후 및 부가 프로그래밍 연산들 이전에 상기 중간 검증 임계값에 도달하는 상기 비휘발성 저장 소자들에 대한 프로그래밍을 금지하도록 요구 되는 것을 특징으로 하는 비휘발성 저장 시스템.
  16. 제15항에 있어서,
    상기 제어 회로는 제어기(Controller)를 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  17. 제15항에 있어서,
    상기 제어 회로는 상태 머신(State Machine)을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  18. 제15항에 있어서,
    상기 제어 회로는 감지 증폭 회로들(Sense Amplification Circuits), 제어기 및 상태 머신의 집합(Set)을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  19. 제15항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 스텝 사이즈의 크기로 증가하는 프로그래밍 펄스들을 포함하고; 그리고
    상기 중간 검증 임계값에 도달했지만 상기 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들에 대해서, 상기 한 개의 부가 프로그래밍 연산은 상기 스텝 사이즈의 근사적으로 1/2만큼 임계 전압들을 의도적으로 변화시키는 것을 특징으로 하는 비휘발성 저장 시스템.
  20. 제15항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 상기 비휘발성 저장 소자들에 대한 비트 라인 전압들이 프로그래밍 레벨 범위에 있는 동안 수행되고;
    상기 프로그래밍을 금지하는 것은 비트 라인 전압들이 금지 레벨 범위에 있는 동안 수행되고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 비트 라인 전압들이 상기 프로그래밍 레벨 범위와 상기 금지 레벨 범위 사이의 중간 레벨 범위에 있는 동안에 수행되는 것을 특징으로 하는 비휘발성 저장 시스템.
  21. 제15항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 한 개의 프로그래밍 펄스를 적용하는 것을 포함하는 것을 특징으로 하는 비휘발성 저장 시스템.
  22. 비휘발성 저장 소자에서 프로그래밍 연산들을 수행하는 단계와, 여기서 상기 프로그래밍 연산들은 증가하는 프로그램 전압(Increasing Program Voltage)을 포함하며, 상기 증가하는 프로그램 전압은 증가 사이즈(Increment Size)를 가지며;
    상기 비휘발성 저장 소자가 하나 이상의 중간 검증 임계값들의 집합의 특정한 중간 검증 임계값에 도달했는지를 결정하는 단계와;
    상기 결정 단계에 대한 응답으로 상기 비휘발성 저장 소자에서 한 개의 부가 프로그래밍 연산을 수행하는 단계와, 여기서 상기 한 개의 부가 프로그래밍 연산은 상기 증가 사이즈의 일부분만큼 상기 비휘발성 저장 소자의 임계 전압을 변화시키며, 상기 일부분의 사이즈는 상기 중간 검증 임계값들이 도달하기 위해 결정되는 것에 의존하며; 그리고
    상기 한 개의 부가 프로그래밍 연산을 수행한 후에, 상기 비휘발성 저장 소자의 프로그래밍을 금지하는 단계를 포함하여 구성되며,
    여기서 상기 금지하는 단계는 상기 한 개의 부가 프로그래밍 연산 후 및 다른 부가 프로그래밍 연산들 이전에 수행되도록 요구되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  23. 제22항에 있어서,
    상기 증가 사이즈의 일부분은 상기 증가 사이즈의 1/2이고 상기 하나 이상의 중간 검증 임계값들의 집합은 한 개의 중간 검증 임계값을 포함하는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  24. 제22항에 있어서,
    상기 증가 사이즈의 일부분은 상기 증가 사이즈의 1/3이고; 그리고
    상기 중간 검증 임계값들의 집합은 2개의 중간 검증 임계값들을 포함하는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  25. 제22항에 있어서,
    상기 증가 사이즈의 일부분은 상기 증가 사이즈의 2/3이고; 그리고
    상기 중간 검증 임계값들의 집합은 2개의 중간 검증 임계값들을 포함하는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  26. 제22항에 있어서,
    상기 중간 검증 임계값들의 집합은 3개 또는 그 이상의 중간 검증 임계값들을 포함하는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  27. 제22항에 있어서,
    상기 프로그래밍 연산들은 상기 비휘발성 저장 소자에 대한 비트 라인 전압이 프로그래밍 레벨에 있는 동안에 수행되고;
    상기 프로그래밍을 금지하는 단계는 상기 비트 라인 전압이 금지 레벨에 있는 동안에 수행되고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 상기 비트 라인 전압이 상기 프로그래밍 레벨과 상기 금지 레벨 사이의 중간 레벨에 있는 동안에 수행되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  28. 제22항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고;
    상기 한 개의 부가 프로그래밍 연산은 한 개의 프로그래밍 펄스를 적용하는 것을 포함하고; 그리고
    상기 금지하는 단계는 상기 한 개의 프로그래밍 펄스를 적용한 후에 수행되도록 요구되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  29. 비휘발성 저장 소자들의 어레이와;
    상기 비휘발성 저장 소자들과 통신하는 제어 회로와;
    상기 제어 회로는 상기 비휘발성 저장 소자들이 하나 이상의 프로그래밍 연산들을 수행할 수 있게 하고, 중간 검증 임계값에 도달하지만 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자를 결정하고, 감소 레벨 동안 한 개의 부가 프로그래밍 연산이 상기 중간 검증 임계값에 도달했지만 상기 최종 검증 임계값에 도달하지 못한 상기 비휘발성 저장 소자들을 수행할 수 있게하고, 자동으로 상기 한 개의 부가 프로그래밍 연산 후에 상기 중간 검증 임계값에 도달한 상기 비휘발성 저장 소자들에 대한 프로그래밍을 금지하고; 그리고
    상기 하나 이상의 프로그래밍 연산들이 증가하는 프로그램 전압을 포함하며, 상기 증가하는 프로그램 전압은 증가 크기를 가지며, 상기 한 개의 부가 프로그래 밍 연산은, 상기 특정한 중간 검증 임계값에 근거해서 상기 증가 사이즈의 일부분만큼 임계 전압들을 변화시키는 것을 특징으로 하는 비휘발성 저장 시스템.
  30. 제29항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 상기 비휘발성 저장 소자들에 대한 비트 라인 전압들이 프로그래밍 레벨 범위에 있는 동안에 수행되고;
    상기 프로그래밍을 금지하는 것은 상기 비트 라인 전압들이 금지 레벨 범위에 있는 동안 수행되고; 그리고
    상기 한 개의 부가 프로그래밍 연산은 상기 비트 라인 전압들이 상기 프로그래밍 레벨 범위와 상기 금지 레벨 범위 사이의 중간 레벨 범위에 있는 동안에 수행되는 것을 특징으로 하는 비휘발성 저장 시스템.
  31. 제29항에 있어서,
    상기 하나 이상의 프로그래밍 연산들은 프로그래밍 펄스들을 적용하는 것을 포함하고;
    상기 한 개의 부가 프로그래밍 연산은 한 개의 프로그래밍 펄스를 적용하는 것을 포함하고; 그리고
    상기 금지하는 것은 상기 한 개의 프로그래밍 펄스를 적용한 후에 수행되도록 요구되는 것을 특징으로 하는 비휘발성 저장 시스템.
  32. 비휘발성 저장 소자에서 하나 이상의 프로그래밍 연산들을 수행하는 단계와;
    상기 비휘발성 저장 소자가 중간 검증 임계값에 도달했는지 결정하는 단계와; 그리고
    상기 결정 단계에 대한 응답으로 상기 비휘발성 저장 소자에서 정확하게 한 개의 부가 프로그래밍 연산을 수행하는 단계를 포함하여 구성되며,
    상기 중간 검증 임계값은, 상기 한 개의 부가 프로그래밍 연산이 상기 비휘발성 저장 소자가 상기 최종 검증 임계값에 도달하거나 또는 거의 도달할 수 있게 되는 그러한 최종 검증 임계값에 관한 상황에 놓이게 되는 것을 특징으로 하는 비휘발성 메모리를 프로그래밍하기 위한 방법.
  33. 비휘발성 저장 소자들의 어레이를 생성하는 단계와;
    프로그래밍 처리를 위한 최종 검증 임계값을 설정하는 단계와; 그리고
    상기 프로그래밍 처리를 위한 중간 검증 임계값을 설정하는 단계를 포함하여 구성되며,
    하나 이상의 비휘발성 저장 소자들의 집합이 상기 중간 검증 임계값에 도달한 후에, 한 개의 프로그래밍 연산은 상기 하나 이상의 비휘발성 저장 소자들의 집합이 상기 최종 검증 임계값에 도달하거나 또는 거의 도달할 수 있게하는 것을 특징으로 하는 비휘발성 메모리 시스템을 생성하기 위한 방법.
  34. 제33항에 있어서,
    상기 프로그래밍 처리는 프로그래밍 연산들의 집합을 포함하고;
    각각의 프로그래밍 연산은 프로그래밍 펄스의 적용(Application)을 포함하며, 상기 프로그래밍 처리는 스텝 사이즈만큼의 크기로 증가하는 프로그래밍 펄스들의 집합을 포함하고; 그리고
    상기 최종 검증 임계값은 상기 스텝 사이즈의 일부분만큼 상기 중간 검증 임계값과는 다른 것을 특징으로 하는 비휘발성 메모리 시스템을 생성하기 위한 방법.
  35. 제33항에 있어서,
    상기 프로그래밍 처리는 프로그래밍 연산들의 집합을 포함하고;
    각각의 프로그래밍 연산은 프로그래밍 펄스의 적용을 포함하며, 상기 프로그래밍 처리는 스텝 사이즈만큼의 크기로 증가하는 프로그래밍 펄스들의 집합을 포함하고; 및
    상기 최종 검증 임계값은 상기 스텝 사이즈의 1/2만큼 상기 중간 검증 임계값과는 다른 것을 특징으로 하는 비휘발성 메모리 시스템을 생성하기 위한 방법.
KR1020067016784A 2004-01-21 2005-01-10 비휘발성 메모리 프로그래밍 KR100751579B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/761,620 2004-01-21
US10/761,620 US6888758B1 (en) 2004-01-21 2004-01-21 Programming non-volatile memory
PCT/US2005/000666 WO2005073981A1 (en) 2004-01-21 2005-01-10 Programming non-volatile memory

Publications (2)

Publication Number Publication Date
KR20070054594A KR20070054594A (ko) 2007-05-29
KR100751579B1 true KR100751579B1 (ko) 2007-08-27

Family

ID=34523281

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067016784A KR100751579B1 (ko) 2004-01-21 2005-01-10 비휘발성 메모리 프로그래밍

Country Status (9)

Country Link
US (2) US6888758B1 (ko)
EP (2) EP1711950B1 (ko)
JP (1) JP4490977B2 (ko)
KR (1) KR100751579B1 (ko)
CN (1) CN1926637B (ko)
AT (2) ATE492883T1 (ko)
DE (2) DE602005003924T2 (ko)
TW (1) TWI256644B (ko)
WO (1) WO2005073981A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275751B2 (en) 2013-09-13 2016-03-01 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method
US11594293B2 (en) 2020-07-10 2023-02-28 Samsung Electronics Co., Ltd. Memory device with conditional skip of verify operation during write and operating method thereof

Families Citing this family (167)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7020017B2 (en) * 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
US6963508B1 (en) * 2004-04-22 2005-11-08 Fuja Shone Operation method for non-volatile memory
US7023733B2 (en) * 2004-05-05 2006-04-04 Sandisk Corporation Boosting to control programming of non-volatile memory
US7242620B2 (en) * 2004-10-05 2007-07-10 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device and an operation method thereof
US7196946B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling in non-volatile storage
US7196928B2 (en) * 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7187585B2 (en) * 2005-04-05 2007-03-06 Sandisk Corporation Read operation for non-volatile storage that includes compensation for coupling
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
ITRM20050310A1 (it) * 2005-06-15 2006-12-16 Micron Technology Inc Convergenza a programmazione selettiva lenta in un dispositivo di memoria flash.
EP1891644B1 (en) * 2005-06-15 2009-02-11 Micron Technology, Inc. Selective slow programming convergence in a flash memory device
US7656710B1 (en) 2005-07-14 2010-02-02 Sau Ching Wong Adaptive operations for nonvolatile memories
US7230854B2 (en) * 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop
ATE521972T1 (de) * 2005-08-01 2011-09-15 Sandisk Corp Programmierung eines nicht-flüchtigen speichers mit selbst-regulierender maximaler programmschleife
US7023737B1 (en) 2005-08-01 2006-04-04 Sandisk Corporation System for programming non-volatile memory with self-adjusting maximum program loop
US7218552B1 (en) 2005-09-09 2007-05-15 Sandisk Corporation Last-first mode and method for programming of non-volatile memory with reduced program disturb
US7170788B1 (en) 2005-09-09 2007-01-30 Sandisk Corporation Last-first mode and apparatus for programming of non-volatile memory with reduced program disturb
US7180780B1 (en) * 2005-11-17 2007-02-20 Macronix International Co., Ltd. Multi-level-cell programming methods of non-volatile memories
JP4808784B2 (ja) * 2005-12-19 2011-11-02 サンディスク コーポレイション 改善されたパス電圧を用いてプログラム阻害を低減した不揮発性記憶メモリのプログラミング方法
US7352629B2 (en) * 2005-12-29 2008-04-01 Sandisk Corporation Systems for continued verification in non-volatile memory write operations
US7307887B2 (en) * 2005-12-29 2007-12-11 Sandisk Corporation Continued verification in non-volatile memory write operations
US7349260B2 (en) * 2005-12-29 2008-03-25 Sandisk Corporation Alternate row-based reading and writing for non-volatile memory
ATE500591T1 (de) * 2005-12-29 2011-03-15 Sandisk Corp Fortgesetzte verifikation bei schreiboperationen in nichtflüchtigen speicher
US7443726B2 (en) * 2005-12-29 2008-10-28 Sandisk Corporation Systems for alternate row-based reading and writing for non-volatile memory
US7436733B2 (en) * 2006-03-03 2008-10-14 Sandisk Corporation System for performing read operation on non-volatile storage with compensation for coupling
US7499319B2 (en) * 2006-03-03 2009-03-03 Sandisk Corporation Read operation for non-volatile storage with compensation for coupling
US7436713B2 (en) 2006-04-12 2008-10-14 Sandisk Corporation Reducing the impact of program disturb
US7499326B2 (en) * 2006-04-12 2009-03-03 Sandisk Corporation Apparatus for reducing the impact of program disturb
US7426137B2 (en) 2006-04-12 2008-09-16 Sandisk Corporation Apparatus for reducing the impact of program disturb during read
US7515463B2 (en) 2006-04-12 2009-04-07 Sandisk Corporation Reducing the impact of program disturb during read
US7440322B2 (en) * 2006-04-20 2008-10-21 Sandisk Corporation Method and system for flash memory devices
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
US7840875B2 (en) * 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
WO2008097320A2 (en) * 2006-06-01 2008-08-14 Virginia Tech Intellectual Properties, Inc. Premixing injector for gas turbine engines
US7457163B2 (en) * 2006-06-01 2008-11-25 Sandisk Corporation System for verifying non-volatile storage using different voltages
US7440331B2 (en) * 2006-06-01 2008-10-21 Sandisk Corporation Verify operation for non-volatile storage using different voltages
US7310272B1 (en) * 2006-06-02 2007-12-18 Sandisk Corporation System for performing data pattern sensitivity compensation using different voltage
US7450421B2 (en) * 2006-06-02 2008-11-11 Sandisk Corporation Data pattern sensitivity compensation using different voltage
EP1865513A1 (en) * 2006-06-07 2007-12-12 STMicroelectronics S.r.l. Nonvolatile memory device
WO2007149678A2 (en) * 2006-06-19 2007-12-27 Sandisk Corporation Programming defferently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
US7352628B2 (en) * 2006-06-19 2008-04-01 Sandisk Corporation Systems for programming differently sized margins and sensing with compensations at select states for improved read operations in a non-volatile memory
US7606084B2 (en) * 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
EP1870905B1 (en) 2006-06-21 2009-12-30 STMicroelectronics S.r.l. Method and circuit for electrically programming semiconductor memory cells
US7486561B2 (en) * 2006-06-22 2009-02-03 Sandisk Corporation Method for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7489549B2 (en) * 2006-06-22 2009-02-10 Sandisk Corporation System for non-real time reprogramming of non-volatile memory to achieve tighter distribution of threshold voltages
US7355892B2 (en) * 2006-06-30 2008-04-08 Sandisk Corporation Partial page fail bit detection in flash memory devices
US7304893B1 (en) 2006-06-30 2007-12-04 Sandisk Corporation Method of partial page fail bit detection in flash memory devices
US7522454B2 (en) * 2006-07-20 2009-04-21 Sandisk Corporation Compensating for coupling based on sensing a neighbor using coupling
US7506113B2 (en) * 2006-07-20 2009-03-17 Sandisk Corporation Method for configuring compensation
US7885119B2 (en) * 2006-07-20 2011-02-08 Sandisk Corporation Compensating for coupling during programming
WO2008011440A2 (en) * 2006-07-20 2008-01-24 Sandisk Corporation Floating gate memory with compensating for coupling during programming
US7443729B2 (en) * 2006-07-20 2008-10-28 Sandisk Corporation System that compensates for coupling based on sensing a neighbor using coupling
US7400535B2 (en) * 2006-07-20 2008-07-15 Sandisk Corporation System that compensates for coupling during programming
US7894269B2 (en) * 2006-07-20 2011-02-22 Sandisk Corporation Nonvolatile memory and method for compensating during programming for perturbing charges of neighboring cells
US7495953B2 (en) * 2006-07-20 2009-02-24 Sandisk Corporation System for configuring compensation
US7567461B2 (en) 2006-08-18 2009-07-28 Micron Technology, Inc. Method and system for minimizing number of programming pulses used to program rows of non-volatile memory cells
JP4997882B2 (ja) * 2006-09-05 2012-08-08 ソニー株式会社 不揮発性半導体記憶装置およびその書き込み方法
US7440326B2 (en) 2006-09-06 2008-10-21 Sandisk Corporation Programming non-volatile memory with improved boosting
US7599223B2 (en) * 2006-09-12 2009-10-06 Sandisk Corporation Non-volatile memory with linear estimation of initial programming voltage
US7961511B2 (en) * 2006-09-26 2011-06-14 Sandisk Corporation Hybrid programming methods and systems for non-volatile memory storage elements
US7904783B2 (en) * 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7805663B2 (en) * 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US20080092015A1 (en) * 2006-09-28 2008-04-17 Yigal Brandman Nonvolatile memory with adaptive operation
US7818653B2 (en) * 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US7684247B2 (en) * 2006-09-29 2010-03-23 Sandisk Corporation Reverse reading in non-volatile memory with compensation for coupling
US7447076B2 (en) * 2006-09-29 2008-11-04 Sandisk Corporation Systems for reverse reading in non-volatile memory with compensation for coupling
US7596031B2 (en) 2006-10-30 2009-09-29 Sandisk Corporation Faster programming of highest multi-level state for non-volatile memory
EP2067142B1 (en) * 2006-10-30 2015-01-28 SanDisk Technologies Inc. Faster programming of highest multi-level state for non-volatile memory
US7426139B2 (en) * 2006-11-02 2008-09-16 Macronix International Co., Ltd. Dynamic program and read adjustment for multi-level cell memory array
US8001441B2 (en) * 2006-11-03 2011-08-16 Sandisk Technologies Inc. Nonvolatile memory with modulated error correction coding
US7904788B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
US7904780B2 (en) * 2006-11-03 2011-03-08 Sandisk Corporation Methods of modulating error correction coding
US7558109B2 (en) * 2006-11-03 2009-07-07 Sandisk Corporation Nonvolatile memory with variable read threshold
US7551482B2 (en) * 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
US7570520B2 (en) * 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7616506B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Systems for complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7616505B2 (en) * 2006-12-28 2009-11-10 Sandisk Corporation Complete word line look ahead with efficient data latch assignment in non-volatile memory read operations
US7616498B2 (en) * 2006-12-29 2009-11-10 Sandisk Corporation Non-volatile storage system with resistance sensing and compensation
US7440324B2 (en) * 2006-12-29 2008-10-21 Sandisk Corporation Apparatus with alternating read mode
US7590002B2 (en) * 2006-12-29 2009-09-15 Sandisk Corporation Resistance sensing and compensation for non-volatile storage
US7495962B2 (en) * 2006-12-29 2009-02-24 Sandisk Corporation Alternating read mode
US7590007B2 (en) * 2007-01-11 2009-09-15 Kabushiki Kaisha Toshiba Nonvolatile semiconductor memory device
KR100816161B1 (ko) 2007-01-23 2008-03-21 주식회사 하이닉스반도체 플래시 메모리 소자의 프로그램 방법
US7679965B2 (en) * 2007-01-31 2010-03-16 Sandisk Il Ltd Flash memory with improved programming precision
CN102005244B (zh) 2007-02-20 2015-10-21 桑迪士克科技公司 非易失性存储的可变编程
US7535764B2 (en) * 2007-03-21 2009-05-19 Sandisk Corporation Adjusting resistance of non-volatile memory using dummy memory cells
ITRM20070167A1 (it) * 2007-03-27 2008-09-29 Micron Technology Inc Non-volatile multilevel memory cell programming
US7729165B2 (en) * 2007-03-29 2010-06-01 Flashsilicon, Incorporation Self-adaptive and self-calibrated multiple-level non-volatile memories
KR100927119B1 (ko) * 2007-05-10 2009-11-18 삼성전자주식회사 불 휘발성 반도체 메모리 장치 및 그것의 프로그램 방법
KR100888823B1 (ko) * 2007-06-27 2009-03-17 삼성전자주식회사 비휘발성 메모리 시스템, 및 비휘발성 메모리 시스템의프로그램 방법
US7508715B2 (en) * 2007-07-03 2009-03-24 Sandisk Corporation Coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7599224B2 (en) * 2007-07-03 2009-10-06 Sandisk Corporation Systems for coarse/fine program verification in non-volatile memory using different reference levels for improved sensing
US7869273B2 (en) 2007-09-04 2011-01-11 Sandisk Corporation Reducing the impact of interference during programming
US7652929B2 (en) * 2007-09-17 2010-01-26 Sandisk Corporation Non-volatile memory and method for biasing adjacent word line for verify during programming
JP4560073B2 (ja) * 2007-09-18 2010-10-13 株式会社東芝 不揮発性半導体記憶装置
US7746704B1 (en) * 2007-09-21 2010-06-29 Marvell International Ltd. Program-and-erase method for multilevel nonvolatile memory
US7978520B2 (en) 2007-09-27 2011-07-12 Sandisk Corporation Compensation of non-volatile memory chip non-idealities by program pulse adjustment
JP4640658B2 (ja) * 2008-02-15 2011-03-02 マイクロン テクノロジー, インク. マルチレベル抑制スキーム
ITRM20080114A1 (it) * 2008-02-29 2009-09-01 Micron Technology Inc Compensazione della perdita di carica durante la programmazione di un dispositivo di memoria.
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US7813172B2 (en) 2008-06-12 2010-10-12 Sandisk Corporation Nonvolatile memory with correlated multiple pass programming
JP5529858B2 (ja) * 2008-06-12 2014-06-25 サンディスク テクノロジィース インコーポレイテッド インデックスプログラミングおよび削減されたベリファイを有する不揮発性メモリおよび方法
US7848144B2 (en) * 2008-06-16 2010-12-07 Sandisk Corporation Reverse order page writing in flash memories
US7800956B2 (en) * 2008-06-27 2010-09-21 Sandisk Corporation Programming algorithm to reduce disturb with minimal extra time penalty
US8064252B2 (en) 2008-11-21 2011-11-22 Micron Technology, Inc. Multi-pass programming in a memory device
US7839690B2 (en) * 2008-12-11 2010-11-23 Sandisk Corporation Adaptive erase and soft programming for memory
US7974133B2 (en) 2009-01-06 2011-07-05 Sandisk Technologies Inc. Robust sensing circuit and method
WO2010089815A1 (ja) * 2009-02-06 2010-08-12 パナソニック株式会社 不揮発性半導体メモリ
US8223551B2 (en) * 2009-02-19 2012-07-17 Micron Technology, Inc. Soft landing for desired program threshold voltage
JP2010211883A (ja) * 2009-03-11 2010-09-24 Toshiba Corp 不揮発性半導体記憶装置
US7907449B2 (en) 2009-04-09 2011-03-15 Sandisk Corporation Two pass erase for non-volatile storage
US8054691B2 (en) 2009-06-26 2011-11-08 Sandisk Technologies Inc. Detecting the completion of programming for non-volatile storage
JP2011014179A (ja) * 2009-06-30 2011-01-20 Toshiba Corp 不揮発性半導体記憶装置
KR101626548B1 (ko) * 2009-07-15 2016-06-01 삼성전자주식회사 비휘발성 메모리 장치, 그것을 포함한 메모리 시스템, 및 그것의 프로그램 방법
KR101634340B1 (ko) 2009-11-03 2016-06-28 삼성전자주식회사 반도체 메모리 장치의 프로그램 방법
US8473809B2 (en) 2009-11-20 2013-06-25 Sandisk Technologies Inc. Data coding for improved ECC efficiency
US8223556B2 (en) * 2009-11-25 2012-07-17 Sandisk Technologies Inc. Programming non-volatile memory with a reduced number of verify operations
KR101676816B1 (ko) 2010-02-11 2016-11-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
JP2011198419A (ja) * 2010-03-19 2011-10-06 Toshiba Corp 不揮発性半導体記憶装置およびその書き込み方法
US8130551B2 (en) 2010-03-31 2012-03-06 Sandisk Technologies Inc. Extra dummy erase pulses after shallow erase-verify to avoid sensing deep erased threshold voltage
US8218366B2 (en) 2010-04-18 2012-07-10 Sandisk Technologies Inc. Programming non-volatile storage including reducing impact from other memory cells
US8208310B2 (en) 2010-05-04 2012-06-26 Sandisk Technologies Inc. Mitigating channel coupling effects during sensing of non-volatile storage elements
US8737117B2 (en) * 2010-05-05 2014-05-27 Qualcomm Incorporated System and method to read a memory cell with a complementary metal-oxide-semiconductor (CMOS) read transistor
KR101656384B1 (ko) 2010-06-10 2016-09-12 삼성전자주식회사 불휘발성 메모리 장치의 데이터 기입 방법
US8819503B2 (en) 2010-07-02 2014-08-26 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
KR101798013B1 (ko) * 2010-12-30 2017-11-16 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8537623B2 (en) 2011-07-07 2013-09-17 Micron Technology, Inc. Devices and methods of programming memory cells
JP2011204356A (ja) * 2011-07-19 2011-10-13 Toshiba Corp 不揮発性半導体記憶装置
US8842471B2 (en) * 2012-01-06 2014-09-23 Sandisk Technologies Inc. Charge cycling by equalizing and regulating the source, well, and bit line levels during write operations for NAND flash memory: program to verify transition
US8582381B2 (en) 2012-02-23 2013-11-12 SanDisk Technologies, Inc. Temperature based compensation during verify operations for non-volatile storage
US9195586B2 (en) 2012-02-23 2015-11-24 Hgst Technologies Santa Ana, Inc. Determining bias information for offsetting operating variations in memory cells based on wordline address
US8830745B2 (en) 2012-07-17 2014-09-09 Sandisk Technologies Inc. Memory system with unverified program step
US8885416B2 (en) 2013-01-30 2014-11-11 Sandisk Technologies Inc. Bit line current trip point modulation for reading nonvolatile storage elements
US9747977B2 (en) * 2013-03-14 2017-08-29 Intel Corporation Methods and systems for verifying cell programming in phase change memory
US9183940B2 (en) 2013-05-21 2015-11-10 Aplus Flash Technology, Inc. Low disturbance, power-consumption, and latency in NAND read and program-verify operations
WO2014210424A2 (en) 2013-06-27 2014-12-31 Aplus Flash Technology, Inc. Novel nand array architecture for multiple simultaneous program and read
WO2015013689A2 (en) 2013-07-25 2015-01-29 Aplus Flash Technology, Inc. Nand array hiarchical bl structures for multiple-wl and all -bl simultaneous erase, erase-verify, program, program-verify, and read operations
US9293205B2 (en) 2013-09-14 2016-03-22 Aplus Flash Technology, Inc Multi-task concurrent/pipeline NAND operations on all planes
WO2015100434A2 (en) 2013-12-25 2015-07-02 Aplus Flash Technology, Inc A HYBRID NAND WITH ALL-BL m-PAGE OPERATION SCHEME
US9767894B2 (en) 2014-06-09 2017-09-19 Micron Technology, Inc. Programming memories with stepped programming pulses
US9324419B2 (en) 2014-07-15 2016-04-26 Sandisk Technologies Inc. Multiple pass programming for memory with different program pulse widths
US9343141B2 (en) 2014-07-15 2016-05-17 Sandisk Technologies Inc. Reprogramming memory with single program pulse per data state
WO2016014731A1 (en) 2014-07-22 2016-01-28 Aplus Flash Technology, Inc. Yukai vsl-based vt-compensation for nand memory
US9875805B2 (en) * 2015-01-23 2018-01-23 Sandisk Technologies Llc Double lockout in non-volatile memory
KR20160108770A (ko) 2015-03-06 2016-09-20 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
US9672920B2 (en) * 2015-03-13 2017-06-06 Macronix International Co., Ltd. Electronic device, non-volatile memorty device, and programming method
US9548130B2 (en) 2015-04-08 2017-01-17 Sandisk Technologies Llc Non-volatile memory with prior state sensing
US9570179B2 (en) 2015-04-22 2017-02-14 Sandisk Technologies Llc Non-volatile memory with two phased programming
US9437319B1 (en) * 2015-06-25 2016-09-06 Macronix International Co., Ltd. Method for programming non-volatile memory with reduced bit line interference and associated device
CN106486162B (zh) * 2015-08-27 2019-07-23 旺宏电子股份有限公司 存储阵列的编程方法
KR102503169B1 (ko) * 2015-11-03 2023-02-24 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
KR102437591B1 (ko) 2015-12-03 2022-08-30 삼성전자주식회사 불휘발성 메모리 시스템의 동작 방법 및 메모리 컨트롤러의 동작 방법
US10248499B2 (en) 2016-06-24 2019-04-02 Sandisk Technologies Llc Non-volatile storage system using two pass programming with bit error control
US10134479B2 (en) 2017-04-21 2018-11-20 Sandisk Technologies Llc Non-volatile memory with reduced program speed variation
US10553301B2 (en) 2017-06-03 2020-02-04 Sandisk Technologies Llc Dynamic read table block filter
US10614898B1 (en) 2018-09-19 2020-04-07 Sandisk Technologies Llc Adaptive control of memory cell programming voltage
WO2020150935A1 (en) 2019-01-23 2020-07-30 Yangtze Memory Technologies Co., Ltd. Method for programming memory system
US10811111B1 (en) 2019-03-26 2020-10-20 Yangtze Memory Technologies Co., Ltd. Non-volatile memory device and method for programming in non-volatile memory device by applying multiple bitline bias voltages
JP2022525273A (ja) * 2019-03-26 2022-05-12 長江存儲科技有限責任公司 複数のビット線バイアス電圧を印加することによって、不揮発性メモリデバイスに書き込むための方法
US10910076B2 (en) 2019-05-16 2021-02-02 Sandisk Technologies Llc Memory cell mis-shape mitigation
CN110619916A (zh) * 2019-08-12 2019-12-27 长江存储科技有限责任公司 存储器编程方法、装置、电子设备及可读存储介质
US11527291B2 (en) * 2020-02-14 2022-12-13 Micron Technology, Inc Performing a program operation based on a high voltage pulse to securely erase data
US11049578B1 (en) 2020-02-19 2021-06-29 Sandisk Technologies Llc Non-volatile memory with program verify skip
US20230410898A1 (en) * 2020-10-19 2023-12-21 Rambus Inc. Flash memory device with photon assisted programming
US11532370B1 (en) 2021-05-25 2022-12-20 Sandisk Technologies Llc Non-volatile memory with fast multi-level program verify

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5220531A (en) 1991-01-02 1993-06-15 Information Storage Devices, Inc. Source follower storage cell and improved method and apparatus for iterative write for integrated circuit analog signal recording and playback
US5313421A (en) 1992-01-14 1994-05-17 Sundisk Corporation EEPROM with split gate source side injection
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5712180A (en) 1992-01-14 1998-01-27 Sundisk Corporation EEPROM with split gate source side injection
US5412601A (en) 1992-08-31 1995-05-02 Nippon Steel Corporation Non-volatile semiconductor memory device capable of storing multi-value data in each memory cell
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
JP3476952B2 (ja) 1994-03-15 2003-12-10 株式会社東芝 不揮発性半導体記憶装置
JP3730272B2 (ja) 1994-09-17 2005-12-21 株式会社東芝 不揮発性半導体記憶装置
DE69421925T2 (de) 1994-09-30 2000-03-16 St Microelectronics Srl Speichergerät mit Fehlerdetektion und -korrektur und Verfahren zum Schreiben und Löschen des Speichergeräts
JPH09251782A (ja) 1996-03-14 1997-09-22 Fujitsu Ltd 半導体記憶装置
US5712815A (en) 1996-04-22 1998-01-27 Advanced Micro Devices, Inc. Multiple bits per-cell flash EEPROM capable of concurrently programming and verifying memory cells and reference cells
JP3414587B2 (ja) * 1996-06-06 2003-06-09 株式会社東芝 不揮発性半導体記憶装置
JP3481817B2 (ja) 1997-04-07 2003-12-22 株式会社東芝 半導体記憶装置
EP0877386B1 (en) * 1997-05-09 2003-07-30 STMicroelectronics S.r.l. Method and device for analog programming of non-volatile memory cells, in particular flash memory cells
JP3906545B2 (ja) * 1998-02-03 2007-04-18 ソニー株式会社 不揮発性半導体記憶装置
JP2000040382A (ja) 1998-07-23 2000-02-08 Sony Corp 不揮発性半導体記憶装置およびそのデータ書き込み方法
US6128224A (en) * 1998-07-29 2000-10-03 Motorola, Inc. Method and apparatus for writing an erasable non-volatile memory
CN1691338A (zh) * 1999-02-01 2005-11-02 株式会社日立制作所 非易失性存储器元件
US6151248A (en) 1999-06-30 2000-11-21 Sandisk Corporation Dual floating gate EEPROM cell array with steering gates shared by adjacent cells
US6343033B1 (en) * 2000-02-25 2002-01-29 Advanced Micro Devices, Inc. Variable pulse width memory programming
US6301161B1 (en) 2000-04-25 2001-10-09 Winbond Electronics Corporation Programming flash memory analog storage using coarse-and-fine sequence
JP3631463B2 (ja) * 2001-12-27 2005-03-23 株式会社東芝 不揮発性半導体記憶装置
US6424566B1 (en) 2001-02-08 2002-07-23 Advanced Micro Devices, Inc. Program reconnaissance to eliminate variations in vt distributions of multi-level cell flash memory designs
US6738289B2 (en) 2001-02-26 2004-05-18 Sandisk Corporation Non-volatile memory with improved programming and method therefor
US6456533B1 (en) * 2001-02-28 2002-09-24 Advanced Micro Devices, Inc. Higher program VT and faster programming rates based on improved erase methods
JP2002319286A (ja) * 2001-04-19 2002-10-31 Hitachi Ltd 不揮発性記憶装置および記憶システム
US6532172B2 (en) 2001-05-31 2003-03-11 Sandisk Corporation Steering gate and bit line segmentation in non-volatile memories
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
US6529412B1 (en) 2002-01-16 2003-03-04 Advanced Micro Devices, Inc. Source side sensing scheme for virtual ground read of flash eprom array with adjacent bit precharge
TWI292914B (ko) * 2002-01-17 2008-01-21 Macronix Int Co Ltd
US6747893B2 (en) * 2002-03-14 2004-06-08 Intel Corporation Storing data in non-volatile memory devices

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US6301161, US6266270, US6151248

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9275751B2 (en) 2013-09-13 2016-03-01 Samsung Electronics Co., Ltd. Nonvolatile memory device and program method
US11594293B2 (en) 2020-07-10 2023-02-28 Samsung Electronics Co., Ltd. Memory device with conditional skip of verify operation during write and operating method thereof

Also Published As

Publication number Publication date
ATE492883T1 (de) 2011-01-15
CN1926637A (zh) 2007-03-07
EP1881504A3 (en) 2008-05-07
EP1711950B1 (en) 2007-12-19
ATE381762T1 (de) 2008-01-15
US7035146B2 (en) 2006-04-25
EP1881504B1 (en) 2010-12-22
WO2005073981A1 (en) 2005-08-11
CN1926637B (zh) 2010-08-18
EP1881504A2 (en) 2008-01-23
JP4490977B2 (ja) 2010-06-30
DE602005003924D1 (de) 2008-01-31
DE602005025540D1 (de) 2011-02-03
EP1711950A1 (en) 2006-10-18
JP2007519161A (ja) 2007-07-12
US6888758B1 (en) 2005-05-03
DE602005003924T2 (de) 2008-12-18
US20050157552A1 (en) 2005-07-21
KR20070054594A (ko) 2007-05-29
TW200605087A (en) 2006-02-01
TWI256644B (en) 2006-06-11

Similar Documents

Publication Publication Date Title
KR100751579B1 (ko) 비휘발성 메모리 프로그래밍
KR100909721B1 (ko) 오버 프로그래밍을 저감하는 고속 프로그래밍 시스템
EP1678722B1 (en) Programming method based on the behavior of non-volatile memory cells
EP1886319B1 (en) Starting program voltage shift with cycling of non-volatile memory
KR100952235B1 (ko) 비휘발성 메모리에서 프로그램 금지 방안들의 선택적인적용
KR101314306B1 (ko) 스마트 검증을 이용한 다중 상태 비휘발성 메모리프로그래밍 방법
KR20060002801A (ko) 비휘발성 메모리에 대한 자기 부스팅 기술
WO2005101424A1 (en) Variable programming of non-volatile memory
WO2005015566A1 (en) Detecting over programmed memory
WO2005013283A1 (en) Detecting over programmed memory cells after programming of adjacent memory cells
KR20080080529A (ko) 타이밍 정보를 이용한 리버스 커플링 효과
KR100984563B1 (ko) 프로그램 혼란이 감소된 nand 타입 비휘발성 메모리의최종-최초 모드 및 프로그래밍 방법
JP2009522703A (ja) 不揮発性メモリの書込動作における継続的な検証
KR100948200B1 (ko) 비휘발성 저장 장치에서 판독 장애 저감

Legal Events

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

Payment date: 20120727

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130723

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140721

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150716

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160720

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 12