KR101402071B1 - 초기 프로그래밍 전압의 트리밍 동안 감소된 소거/기입 사이클링을 위한 비휘발성 메모리 및 방법 - Google Patents

초기 프로그래밍 전압의 트리밍 동안 감소된 소거/기입 사이클링을 위한 비휘발성 메모리 및 방법 Download PDF

Info

Publication number
KR101402071B1
KR101402071B1 KR1020097005155A KR20097005155A KR101402071B1 KR 101402071 B1 KR101402071 B1 KR 101402071B1 KR 1020097005155 A KR1020097005155 A KR 1020097005155A KR 20097005155 A KR20097005155 A KR 20097005155A KR 101402071 B1 KR101402071 B1 KR 101402071B1
Authority
KR
South Korea
Prior art keywords
page
memory
programming voltage
volatile memory
voltage
Prior art date
Application number
KR1020097005155A
Other languages
English (en)
Other versions
KR20090064384A (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/531,223 external-priority patent/US7606077B2/en
Priority claimed from US11/531,217 external-priority patent/US7606091B2/en
Application filed by 샌디스크 테크놀로지스, 인코포레이티드 filed Critical 샌디스크 테크놀로지스, 인코포레이티드
Publication of KR20090064384A publication Critical patent/KR20090064384A/ko
Application granted granted Critical
Publication of KR101402071B1 publication Critical patent/KR101402071B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/12Programming voltage switching 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • 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/3468Prevention of overerasure or overprogramming, e.g. by verifying whilst erasing or writing
    • G11C16/3481Circuits or methods to verify correct programming of nonvolatile memory cells whilst programming is in progress, e.g. by detecting onset or cessation of current flow in cells and using the detector output to terminate programming
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • 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

Landscapes

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

Abstract

고성능 비휘발성 메모리 장치들은 개별적 유형들의 메모리 페이지들 및 워드라인들을 위해 트리밍된(trimmed) 프로그래밍 전압들을 갖는다. 각각의 소거 가능한 한 블록의 메모리 내에 일 그룹의 워드라인들은 과도한 수의 소거/프로그램 사이클들을 초래하는 문제를 최소화하기 위해서 연속한 프로그램 루프들에서 테스트된다. 주어진 유형의 메모리 페이지들에 대한 최적의 프로그래밍 전압은 한 샘플의 유사한 메모리 페이지들의 통계적 결과들로부터 도출된다.
워드 라인, 소거 가능 블록, 비휘발성 메모리

Description

초기 프로그래밍 전압의 트리밍 동안 감소된 소거/기입 사이클링을 위한 비휘발성 메모리 및 방법{NON-VOLATILE MEMORY AND METHOD FOR REDUCED ERASE/WRITE CYCLING DURING TRIMMING OF INITIAL PROGRAMMING VOLTAGE}
이 발명은, 일반적으로 전기적으로 소거 가능하고 프로그램 가능한 판독전용 메모리(EEPROM) 및 플래시 EEPROM과 같은 비휘발성 반도체 메모리에 관한 것이고, 보다 구체적으로는 여러 그룹의 메모리 셀의 최적의 초기 프로그래밍 전압을 결정하는 것에 관한 것이다.
특히 소형 폼 팩터(form factor) 카드로서 패키지된 EEPROM 및 플래시 EEPROM 형태인, 전하를 비휘발성으로 저장할 수 있는 고체 상태 메모리는 최근에 다양한 이동 및 휴대장치들, 특히 정보 기기들 및 소비자 전자제품들에서 선택되는 저장장치가 되었다. 역시 고체상태 메모리인 RAM(랜덤 액세스 메모리)과는 달리, 플래시 메모리는 비휘발성이어서, 이의 저장된 데이터를 파워가 턴 오프된 후에도 보존한다. 더 높은 비용에도 불구하고, 플래시 메모리는 대량 저장 애플리케이션들에서 점점 더 사용되고 있다. 하드 드라이브들 및 플로피 디스크들과 같은 회전 자기 매체에 기반한 종래의 대량 저장장치는 이동 및 휴대 환경엔 적합하지 않다. 이것은 디스크 드라이브들이 부피가 크고 기계적 고장이 나기 쉽고 큰 레이턴 시(latency) 및 고 파워 요구조건들을 갖는 경향이 있기 때문이다. 이들 바람직하지 못한 속성들은 디스크 기반의 저장장치를 대부분의 이동 및 휴대 애플리케이션들에서 사용되지 못하게 한다. 한편, 내장되고 탈착가능한 카드 형태의 플래시 메모리는 소형 크기, 낮은 전력소모, 고속 및 고 신뢰성 특징들 때문에 이동 및 휴대용 환경에서 이상적으로 적합하다.
EEPROM 및 전기적으로 프로그램 가능한 판독 전용 메모리(EPROM)는 소거될 수 있고 이들의 메모리 셀들에 새로운 데이터가 기입 또는 "프로그램"되게 할 수 있는 비휘발성 메모리이다. 이들 둘 모두는 소스 영역과 드레인 영역 간에 반도체 기판의 채널 영역 내 채널 영역 상에 위치되는, 전계 효과 트랜지스터 구조에서 플로우팅(비접속된) 도전성 게이트를 이용한다. 이때, 제어 게이트는 플로우팅 게이트 위에 제공된다. 트랜지스터의 임계 전압 특성은 플로우팅 게이트 상에 보존되는 전하량에 의해 제어된다. 즉, 플로우팅 게이트 상에 소정 레벨의 전하에 대해서, 소스 영역과 드레인 영역 간에 도통시키기 위하여 트랜지스터가 턴 "온"되기 전에 제어 게이트에 인가되어야 하는 대응하는 전압(임계)이 있다.
플로우팅 게이트는 한 범위의 전하들을 유지할 수 있고, 따라서 임계 전압 윈도우 내에서 임의의 임계 전압 레벨로 프로그램될 수 있다. 임계 전압 윈도우의 크기는 플로우팅 게이트에 프로그램될 수 있는 전하들의 범위에 대응하게 될 장치의 최대 및 최소 임계 레벨들에 의해 경계가 정해진다. 임계 윈도우는 일반적으로 메모리 장치의 특성들, 동작 조건들 및 이력(history)에 좌우된다. 윈도우 내에서 각각의 구별되는 분해가능한(resolvable) 임계전압 레벨 범위는 원리적으로 셀의 유한 메모리 상태를 지정하는데 사용될 수 있다.
통상의 2상태 EEPROM 셀에서, 적어도 하나의 전류 구분점(breakpoint) 레벨은 2개의 영역들로 도통 윈도우를 분할하도록 설정된다. 셀이 소정의 고정된 전압들을 인가함으로써 판독될 때, 이의 소스/드레인 전류는 구분점 레벨(또는 기준 전류(IREF))과 비교됨으로써 메모리 상태로 결정된다. 판독된 전류가 구분점 레벨의 전류보다 높으면, 셀은 한 논리 상태(예를 들면, "제로" 상태)에 있는 것으로 판정된다. 한편, 전류가 구분점 레벨의 전류보다 작으면, 이 셀은 다른 논리 상태(예를 들면, "1" 상태)에 있는 것으로 판정된다. 따라서, 이와 같은 2 상태 셀은 1비트의 디지털 정보를 저장한다. 외부에서 프로그램될 수 있는 기준 전류원은 종종 구분점 레벨 전류를 발생시키기 위한 메모리 시스템의 부분으로서 제공된다.
메모리 용량을 증가시키기 위하여, 플래시 EEPROM 장치들은 반도체 기술 상태들이 진보됨에 따라서 점점 더 고 밀도로 제조되고 있다. 저장 용량을 증가시키는 또 다른 방법은 각 메모리 셀이 2 이상의 상태들을 저장하게 하는 것이다.
복수-상태 또는 복수-레벨 EEPROM 메모리 셀에 대해서, 도통 윈도우는 하나 이상의 구분점에 의해 2개 이상의 영역들로 분할됨으로써, 각 셀이 하나 이상의 데이터 비트를 저장할 수 있도록 한다. 주어진 EEPROM 어레이가 저장할 수 있는 정보는 각 셀이 저장할 수 있는 상태들의 수에 따라서 증가된다. 복수-상태 또는 복수-레벨 메모리 셀들을 갖는 EEPROM 또는 플래시 EEPROM이 미국 특허 5,172,338호에 개시되어 있다.
메모리 셀로서 작용하는 트랜지스터는 전형적으로 두 메커니즘들 중 한 메커니즘에 의해 "프로그램된" 상태로 프로그램된다. "핫(hot) 전자 주입"에서, 드레인에 인가되는 고전압은 기판 채널 영역을 횡단하는 전자들을 가속시킨다. 동시에, 제어 게이트에 인가되는 고전압은 얇은 게이트 유전체를 통해서 플로우팅 게이트로 핫 전자들을 가져간다. "터널링 주입"에서, 고전압은 기판에 대해서 제어 게이트로 인가된다. 이에 따라, 전자들은 기판으로부터 개재된 플로우팅 게이트로 당겨진다.
메모리 장치는 다수의 메커니즘들에 의해 소거될 수 있다. EPROM에 있어서, 메모리는 자외선 조사에 의해 플로우팅 게이트로부터 전하를 제거함으로써 대량으로 소거될 수 있다. EEPROM에 있어서, 얇은 산화물을 통해서 기판채널 영역으로 터널링하기 위하여(즉, 파울러-노다임 터널링) 플로우팅 게이트에서 전자들을 유도하도록 메모리 셀은 고전압을 제어 게이트에 대해서 기판에 인가함으로써 전기적으로 소거될 수 있다. 전형적으로, EEPROM은 한 바이트씩 소거될 수 있다. 플래시 EEPROM에 있어서, 메모리는 한꺼번에 또는 한번에 하나 이상의 블록들을 전기적으로 소거할 수 있는데, 여기서 블록은 메모리의 512 바이트들 혹은 그 이상으로 구성될 수 있다.
메모리 장치들은 전형적으로 카드상에 설치될 수 있는 하나 이상의 메모리 칩들을 포함한다. 각 메모리 칩은 디코더들 및 소거, 기입 및 판독 회로들과 같은 주변 회로들에 의해 지원되는 메모리 셀들의 어레이를 포함한다. 더욱 복잡한 메모리 장치들은 지능적이고 더 높은 레벨의 메모리 동작들 및 인터페이싱을 수행하는 외부 메모리 제어기로 동작한다.
셀이 주어진 상태로 프로그램될 때, 증분적 전하를 플로우팅 게이트에 부가할 때마다, 이 셀엔 연속적인 프로그래밍 전압 펄스들이 가해진다. 펄스들 간에서, 구분점(breakpoint) 레벨에 대한 소스-드레인 전류를 판정하기 위해서 셀은 다시 판독되거나 검증된다. 전류 상태가 원하는 상태에 도달한 것으로 검증될 때 프로그래밍은 중단된다. 사용된 프로그래밍 펄스 열(train)은 메모리 셀의 전하 저장유닛에 프로그램된 축적된 전자들을 중화(counteract)하기 위해서 증가하는 기간(period) 또는 진폭을 가질 수 있다. 프로그래밍 회로들을 일반적으로 선택된 워드라인에 일련의 프로그래밍 펄스들을 인가한다. 이렇게 하여, 제어 게이트들이 워드라인에 접속되는 한 페이지의 메모리 셀들은 함께 프로그램될 수 있다.
양호한 프로그래밍 성능을 달성하기 위해서, 초기 프로그래밍 전압(VPGM0) 및 스텝 크기는 최적으로 선택되어야 한다. 초기 프로그래밍 전압(VPGM0)이 너무 낮게 선택된다면, 이것은 타깃 상태에 도달하기 위해서 과도한 수의 프로그래밍 펄스들을 요구할 수 있다. 반면, 특히 복수-상태 메모리에서, VPGM0가 너무 높게 선택된다면, 프로그래밍은 제 1 펄스에서 타깃 상태를 넘을 수 있다. 최적의 초기 프로그래밍 전압 VPGM0는 몇 단계들 내에 타깃 상태에 도달할 것이다. 최적의 VGM0는 제조 변동들에 꽤 민감하며 통상적으로 공장에서 테스트에 의해 결정된다. 이것이 VPGM0 트리밍으로서 알려진 프로세스이다.
통상적으로, 공장으로부터 출하하기 전에, 다수의 메모리 칩들을 병렬로 테 스트하기 위해 전용의 메모리 테스트가 셋업된다. 테스트들 중 한 테스트는 최적의 초기의 프로그래밍 전압들을 결정하는 것이다(VPGM0 트리밍들). 그러므로 통상적인 VPGM0 트리밍들은 고가의 전용 기계들인 메모리 테스터들에 의해 수행된다. 또한, 이들은 현재의 워드라인에 관한 테스트가 완료된 후에 다음 워드라인으로 이동하는 것인 하나씩 각 워드라인을 테스트하는 경향이 있다. 이러한 식으로, 한 페이지의 메모리 셀들은 타깃 패턴으로(예를 들면, "0000...0", "0"은 주어진 프로그램된 상태를 나타낸다) 프로그램 가능한지 테스트하기 위해서 프로그램 루프에서 프로그램된다. 프로그램 루프는 전형적으로 제 1 시작 프로그래밍 전압으로부터 일련의 프로그래밍 전압 펄스들을 사용한다. 이어서 페이지는 타깃 패턴으로 적합하게 프로그램되었는지를 판정하기 위해 검증 동작에서 다시 판독된다. 프로그램-검증되지 않았다면, 셀들의 페이지/워드라인은 소거되며 증분된 시작 프로그래밍 전압으로 다음 프로그램 루프에서 다시 재 프로그램된다. 이 프로세스는 페이지가 프로그램-검증될 때까지 반복된다. 이렇게 하여, 페이지가 프로그램-검증될 수 있게 하는 시작 프로그래밍 전압의 값에 대해 판정이 행해질 수 있다.
페이지가 적합하게 프로그램될 수 있게 하는 것을 얻기 위해서, 증가한 초기 프로그래밍 전압들을 사용한 프로그램 루프들에 대한 다수의 시도들이 필요로 될 수 있다. 통상적인 VPGM0 트리밍들에서, 증분된 시작 전압을 사용하여 다음 프로그램 루프가 수행되기 전에 페이지가 소거되어야 함을 알 수 있다. 이에 따라, 페이지를 구성하는 메모리 셀들의 워드라인은 이들 시도들 동안 복수회 소거될 수도 있을 것 이다. 또한, 동일 소거 블록 내 그외 모든 다른 워드라인들도 소거-사이클이 행해진다.
비휘발성 메모리 장치는 장치가 소거/프로그램 사이클을 거칠 때마다 겪는 내구성-관계된 스트레스에 기인하여 제한된 사용수명을 갖는다. 예를 들면, 플래시 EEPROM 장치의 내구성은 주어진 수의 프로그램/소거 사이클들을 견디는 능력이다. 비휘발성 메모리 장치들의 내구성을 제한시키는 물리적 현상은 장치 내 활성 유전막들 내에 전자들의 포획(trapping)이다. 도 2를 참조하면, 프로그래밍 동안에, 전자들이 기판에서 유전 인터페이스를 통해 전하 저장유닛에 주입된다. 유사하게, 소거동안에, 전자들은 유전 인터페이스를 통해 전하 저장유닛으로부터 추출된다. 두 경우들에 있어서, 일부 전자들이 유전 인터페이스에 의해 포획된다. 포획된 전자들은 후속의 프로그램/소거 사이클들에서 인가되는 전계에 대항하며 그럼으로써 프로그램된 임계전압을 낮은 값으로 옮겨지게 하며 소거된 임계전압을 더 높은 값으로 옮겨지게 한다. 이것은 임계 윈도우에서 점진적인 경계(gradual closure)에서 알 수 있다. 임계 윈도우 경계는 실제 내구성을 근사적으로 104 프로그램/소거 사이클들로 제한시키는 것이다.
각 블록 내 많은 워드라인들이 있는 메모리 아키텍쳐에서, 셀들의 워드라인을 복수회 소거하는 것은 동일 블록 내 나머지 워드라인들을 동일 회수로 소거하는 것을 수반할 것이다. 블록 내 이들 다른 워드라인들이 테스트되고 있다면, 블록이 소거되는 횟수는 기하학적으로 상승할 것이다. 예를 들면, 워드라인마다 대략 10회 의 시도들을 취하고 각 블록 내에 64개의 워드라인들이 있다면, 이것은 블록이 총 640 회의 소거 사이클링을 겪을 것임을 의미할 것이다. 또한, 다수의 다른 변수들을 커버하기 위해서 VPGMO 트리밍도 수행된다. 예를 들면, 워드라인은 복수의 논리 페이지들 뿐만 아니라 복수의 물리 페이지들을 구성할 수 있다. 블록 경계에 가까운 워드라인들은 주 용역 내 워드라인들에 비해 약간 다른 프로그래밍 특성들을 가질 수 있다. 이들 변동들은 필요로 되는 트리밍들의 수에 10의 또 다른 인자를 기부할 것이다. 이에 따라, 공장에서 통상의 VPGM 트리밍들은 메모리 장치의 수천의 내구성 사이클들만큼을 소비할 수도 있을 것이다. 메모리 장치가 고객에 도달하기 전에 메모리 장치의 사용 수명의 반만큼이 소모되었을 수도 있을 것이다.
그러므로, 고성능 및 고용량 비휘발성 메모리에 대한 일반적인 필요성이 있다. 특히, 최적으로 설정된 시작 프로그래밍 전압들을 가지면서도 이들을 결정하기 위해 메모리를 과도하게 내구성 사이클링하는 지출이 없는 비휘발성 메모리에 대한 필요성이 있다.
발명의 요약
감소된 소거 사이클링에 의한 V PGM 트리밍
발명의 일 면에 따라서, 각 블록은 함께 소거할 수 있는 메모리 셀들에 액세스하기 위한 한 블록의 워드라인들이며, 각 워드라인은 함께 프로그램 가능한 적어도 한 페이지의 메모리 셀들을 내포하는 것인, 블록들로 구성되는 한 어레이의 메모리 셀들을 갖는 비휘발성 메모리에서, 블록 내 워드라인 상의 한 페이지의 메모리 셀들을 프로그램하기 위한 최적의 시작 전압은 각각의 연관된 페이지/워드라인이 지정된 패턴으로 프로그램될 수 있게 하는 개개의 시작 전압들의 통계적 평균을 얻기 위해 블록 내 한 샘플의 유사한 워드라인들을 테스트 프로그램함으로써 추정된다. 이것은 시작 프로그래밍 전압으로부터 일련의 펄스들이 인가되는 프로그램 루프에 샘플의 모든 페이지들을 적용함으로써 달성된다. 샘플의 각 페이지들이 프로그램 루프를 거친 후에, 프로그램-검증된 페이지/워드라인은 추가 처리로부터 제거되며 이의 연관된 시작 프로그래밍 전압은 보존된다. 이어서 블록은 샘플 내 아직 검증되지 않은 워드라인들이 다음 증분된 시작 전압으로 다음 프로그램 루프에 의해 재 프로그램될 수 있도록 소거된다. 사이클링은 샘플 내 모든 워드라인들이 프로그램-검증되었을 때까지 계속된다. 그러면 통계적 평균은 페이지를 위한 최적의 시작 프로그래밍 전압을 도출하기 위해서 개개의 시작 프로그래밍 전압들로부터 얻어질 수 있다.
기술된 방식에 의해 블록 내 워드라인들의 샘플을 테스트하는 것은 블록 소거들의 수를 감소시키는 이점이 있다. 워드라인의 샘플은 서로 간에 동기하여 테스트되므로, 모든 워드라인들이 각 프로그램 루프에서 프로그래밍이 마쳐졌을 때, 이들은 다음 프로그램 루프를 위해 준비하기 위해서 함께 소거된다. 이 방식은 블록 소거 수를 감소되게 하며 종래의 방식에 비해 한 자리수의 크기를 절약하게 할 수 있다. 예를 들면, 통상의 방식은 서로 간에 동기화 없이 매 프로그램 루프 전에 블록 소거와는 무관하게 각 워드라인이 테스트되게 한다. 한 워드라인에 대한 매 프로그램 루프에 연관된 블록 소거는 샘플 내 모든 워드라인에 대해 더 심해진다.
본 발명의 추가의 특징들 및 이점들은 이의 바람직한 실시예들의 다음의 설명으로부터 이해될 것이며, 이 설명은 첨부한 도면들에 관련하여 취해질 것이다.
도 1은 비휘발성 메모리 칩의 기능 블록들을 개요적으로 도시한 것이다.
도 2는 비휘발성 메모리 셀을 개요적으로 도시한 것이다.
도 3은 플로우팅 게이트가 선택적으로 임의의 한 시간에 저장할 수 있는 4개의 상이한 전하들(Q1-Q4)에 대한 제어 게이트 전압(VCG)과 소스-드레인 전류(ID)간의 관계를 도시한 것이다.
도 4는 NOR 어레이의 메모리 셀들의 예를 도시한 것이다.
도 5a는 NAND 스트링으로 구성된 한 스트링의 메모리 셀들을 개요적으로 도시한 것이다.
도 5b는 도 5a에 도시된 것과 같은 NAND 스트링들로부터 구성된, NAND 어레이의 메모리 셀들의 예를 도시한 것이다.
도 6은 소거 가능한 블록들로 구성된 메모리 어레이의 예를 개요적으로 도시한 것이다.
도 7은 선택된 워드라인에 적용되는 계단 파형 형태의 일련의 프로그래밍 전압 펄스들을 도시한 것이다.
도 8은 다수의 메모리 칩들에 대한 최적의 초기 프로그래밍 전압들을 결정하 기 위한 전형적인 테스트 셋업을 도시한 것이다.
도 9는 최적의 초기 프로그래밍 전압들의 결정을 위해 도 8에 도시된 메모리 칩들 중 한 칩을 테스트하는 메모리 테스터의 기능 블록들을 개요적으로 도시한 것이다.
도 10은 바람직한 실시예에 따라, 최적의 초기 프로그래밍 전압들의 결정을 위해 도 8에 도시된 메모리 칩들 중 하나에 동작하는 대안적 메모리 테스터의 기능 블록들을 도시한 것이다.
도 11a는 메모리 장치내 주어진 유형의 워드라인들에 대해 추정된 시작 프로그래밍 전압을 얻기 위한 일반적인 방식을 도시한 흐름도이다.
도 11b는 도 11a에 도시된 양호한 블록을 선택하는 일 실시예를 보다 상세히 도시한 것이다.
도 12는 워드라인 상의 페이지의 초기 프로그래밍 전압을 결정하는 단계들의 종래의 구현을 도시한 흐름도이다.
도 13은 발명의 바람직한 실시예에 따라서, 일반적으로 블록 내 한 샘플의 워드라인들로부터 최적의 시작 프로그래밍 전압을 추정하기 위한 동작을 예시한 흐름도이다.
도 14는 도 13에 도시된 동작의 특정한 구현을 예시한 흐름도이다.
도 15는 한 페이지의 메모리 셀들의 초기 프로그래밍 테스트에서 사용되는 계단 파형을 도시한 것이다.
도 16은 도 15에 도시된 계단 파형 스캔을 사용하여, VPGM 트리밍을 위한 시작 프로그래밍 전압의 결정을 도시한 흐름도이다.
도 17은 한 샘플의 페이지들/워드라인들을 위한 시작 프로그래밍 전압의 복수 패스 결정을 예시한 흐름도이다.
도 18은 고속 프로그래밍 워드라인들을 위해 가중되는 VPGM 트리밍된 값을 얻는 방식을 도시한 흐름도이다.
메모리 시스템
도 1 내지 도 7은 본 발명의 여러 가지 면들이 구현될 수 있는 메모리 시스템들의 예를 도시한 것이다.
도 1은 비휘발성 메모리 칩의 기능 블록들을 개요적으로 도시한 것이다. 메모리 칩(100)은 2차원 어레이의 메모리 셀들(200), 제어회로(210), 및 디코더들, 판독/기입 회로들과 멀티플렉서들과 같은 주변회로들을 포함한다. 메모리 어레이(200)는 행 디코더들(230A, 230B)을 통해서 워드라인들(도 2 참조)에 의해 그리고 컬럼 디코더들(260A, 260B)를 통해서 비트라인들(도 2 참조)에 의해 어드레스될 수 있다. 판독/기입 회로들(270A, 270B)은 한 페이지의 메모리 셀들이 병렬로 판독되거나 프로그램되도록 한다. 바람직한 실시예에서, 페이지는 동일 워드라인을 공유하는 인접한 한 행의 메모리 셀들로부터 구성된다. 한 행의 메모리 셀들이 복수의 페이지들로 분할되는 또 다른 실시예에서, 블록 멀티플렉서들(250A, 250B)은 개 별적인 페이지들에 판독/기입 회로들(270A, 270B)을 멀티플렉스하기 위하여 제공된다.
제어회로(210)는 메모리 어레이(200) 상에 메모리 동작들을 수행하도록 판독/기입 회로들(270)과 협동한다. 제어회로(210)는 전형적으로, 상태 머신(212), 그리고 온-칩 어드레스 디코더 및 전력 제어 모듈(명확히 도시되지 않음)과 같은 그외의 회로들을 포함한다. 상태 머신(212)은 메모리 동작들의 칩 레벨 제어를 제공한다.
메모리 어레이(200)는 전형적으로 행들 및 컬럼들로 배열되고 워드라인들 및 비트라인들에 의해 어드레스될 수 있는 2차원 어레이의 메모리 셀들로서 구성된다. 어레이는 NOR형 혹은 NAND형 아키텍쳐에 따라 형성될 수 있다.
도 2는 비휘발성 메모리 셀을 개요적으로 도시한 것이다. 메모리 셀(10)은 이를테면 플로팅 게이트 혹은 유전층과 같은, 전자 저장유닛(20)을 갖는 전계효과 트랜지스터에 의해 구현될 수 있다. 또한, 메모리 셀(10)은 소스(14), 드레인(16), 및 제어 게이트(30)를 포함한다.
오늘날 사용되는 많은 상업적으로 성공한 비휘발성 고체상태 메모리 장치들이 있다. 이들 메모리 장치들은 다양한 유형들의 메모리 셀들을 사용할 수 있는데, 각 유형은 하나 이상의 전하 저장 소자를 갖는다.
전형적인 비휘발성 메모리 셀들은 EEPROM 및 플래시 EEPROM을 포함한다. EEPROM 셀들 및 이들을 제조하는 방법들의 예들은 미국특허 5,595,924에 주어져 있다. 플래시 EEPROM 셀들, 메모리 시스템들에서 이들의 사용 및 이들을 제조하는 방 법들의 예들이 미국특허들 5,070,032, 5,095,344, 5,315,541, 5,343,063, 5,661,053, 5,313,421, 및 6,222,762에 주어져 있다. 특히, NAND 셀 구조들을 가진 메모리 장치들의 예들은 미국특허들 5,570,315, 5,903,495, 6,046,935에 기술되어 있다. 또한, 유전 저장소자를 이용하는 메모리 장치들의 예들은 Eitan 등의 "NROM: A Novel Localized Trapping, 2-Bit Nonvolatile Memory Cell," IEEE Electron Device Letters, vol. 21, no. 11, November 2000, pp. 543-545와, 미국특허들 5,768,192 및 6,011,725에 기술되어 있다.
실제로, 셀의 메모리 상태는 통상적으로 기준 전압이 제어 게이트에 인가될 때 셀의 소스 전극과 드레인 전극들을 지나는 도통 전류를 감지함으로써 판독된다. 따라서, 셀의 플로우팅 게이트 상에 각각 주어진 전하에 대해서, 고정된 기준 제어 게이트 전압에 관한 대응하는 도통 전류가 검출될 수 있다. 유사하게, 플로우팅 게이트 상에 프로그램 가능한 전하 범위는 대응하는 임계 전압 윈도우 또는 대응하는 도통 전류 윈도우를 규정한다.
대안적으로, 분할된 전류 윈도우 중 도통 전류를 검출하는 대신에, 제어 게이트에서 테스트 하에 소정 메모리 상태에 대한 임계 전압을 설정하거나 도통 전류가 임계 전류보다 낮거나 높은지를 검출하는 것이 가능하다. 한 구현에서, 임계 전류에 대한 도통 전류의 검출은 도통 전류가 비트라인 용량을 통해서 방전하는 레이트를 검사함으로써 달성된다.
도 3은 플로우팅 게이트가 선택적으로 임의의 한 시간에 저장할 수 있는 4개 의 상이한 전하들(Q1-Q4)에 대한 제어 게이트 전압(VCG)과 소스-드레인 전류(ID)간의 관계를 도시한다. 4개의 실선 ID 대 VCG 곡선들은 4개의 가능한 메모리 상태들에 각각 대응하는 메모리 셀의 플로우팅 게이트 상에 프로그램될 수 있는 4개의 가능한 전하 레벨들을 나타낸다. 예로서, 셀들의 모집단의 임계 전압 윈도우는 0.5V 내지 3.5V 범위일 수 있다. 6개의 메모리 상태들은 임계 윈도우를 각각 0.5V 간격으로 5개의 영역들로 임계 윈도우를 분할함으로써 경계가 정해질 수 있다. 예를 들면, 2㎂의 기준 전류(IREF)가 도시된 바와 같이 사용된다면, Q1으로 프로그램되는 셀은 이의 곡선이 VCG=0.5V 및 1.0V로 경계가 정해진 임계 윈도우의 영역에서 IREF와 교차하기 때문에 메모리 상태 "1"에 있는 것으로 간주될 수 있다. 유사하게, Q4는 메모리 상태 "5"에 있다.
상기 설명으로부터 알 수 있는 바와 같이, 메모리 셀이 저장할 상태들이 많으면 많을수록, 임계 윈도우는 더욱 세밀하게 분할된다. 이는 필요로 되는 분해능을 달성할 수 있도록 프로그래밍 및 판독 동작들의 높은 정밀도를 필요로 할 것이다.
도 4는 메모리 셀들의 NOR 어레이의 예를 도시한다. 메모리 어레이(300)에서, 메모리 셀들의 각각의 행은 데이지-체인 방식으로 이들의 소스들(14) 및 드레인들(16)에 의해 접속된다. 이 설계는 가상 그라운드 설계라고도 한다. 한 행 내 셀들(10)은 워드라인(42)과 같은 워드라인에 접속된 제어 게이트들(30)을 구비한다. 컬럼의 셀들은 비트라인들(34, 36)과 같은 선택된 비트라인들에 각각 접속되는 소스들 및 드레인들을 갖는다.
도 5a는 NAND 스트링으로 구성된 메모리 셀들의 스트링을 개요적으로 도시한 것이다. NAND 스트링(50)은 소스들 및 드레인들에 의해 데이지-체인되는(daisy-chained) 일련의 메모리 트랜지스터들(M1, M2,..., Mn)(예를 들면, n=4, 8, 16 또는 그 이상)로 이루어진다. 한 쌍의 선택 트랜지스터들(S1, S2)은 각각 NAND 스트링의 소스 단자(54) 및 드레인 단자(56)를 통해서 외부로 메모리 트랜지스터들 체인의 접속을 제어한다. 메모리 어레이에서, 소스 선택 트랜지스터(S1)가 턴 온 될 때, 소스 단자는 소스 라인에 결합된다(도 5b 참조). 유사하게, 드레인 선택 트랜지스터(S2)가 턴 온 될 때, NAND 스트링의 드레인 단자는 메모리 어레이의 비트라인에 결합된다. 이 체인에 각 메모리 트랜지스터는 의도된 메모리 상태를 나타내도록 주어진 전하량을 저장하기 위하여 전하 저장 소자를 갖는다. 각 메모리 트랜지스터의 제어 게이트는 판독 및 기입 동작들에 대해 제어한다. 도 5b에서 알게 되는 바와 같이, 한 행의 NAND 스트링의 대응하는 메모리 트랜지스터들의 제어 게이트들은 동일 워드라인에 모두 접속된다. 유사하게, 선택 트랜지스터들(S1, S2)의 각각의 제어 게이트는 각각 소스 단자(54) 및 드레인 단자(56)를 통해 NAND 스트링에 제어 액세스를 제공한다. 마찬가지로, 한 행의 NAND 스트링의 대응하는 선택 트랜지스터들의 제어 게이트들은 동일 선택 라인에 모두 접속된다.
NAND 스트링 내의 어드레스된 메모리 트랜지스터가 프로그래밍 동안 판독되거나 검증될 때, 이의 제어 게이트에는 적절한 전압이 공급된다. 동시에, NAND 스트링(50) 내 비-어드레스된 메모리 트랜지스터들의 나머지는 자신들의 제어 게이트 들 상에 충분한 전압을 인가함으로써 완전히 턴 온 된다. 이에 따라, 개별적인 메모리 트랜지스터의 소스로부터 NAND 스트링의 소스 단자(54)까지의 도통 경로가 효과적으로 생성되고 마찬가지로 이 셀의 개별적인 메모리 트랜지스터의 드레인으로부터 드레인 단자(56)까지의 도통 경로가 효과적으로 생성된다. 이와 같은 NAND 스트링 구조들을 갖는 메모리 장치들이 미국 특허 5,570,315, 5,903,495, 6,046,935에 개시되어 있다.
도 5b는 도 5a에 도시된 것과 같은 NAND 스트링들로 구성된, NAND 어레이의 메모리 셀들의 예를 도시한 것이다. NAND 스트링들의 각 컬럼을 따라서, 비트라인(36)과 같은 비트라인은 각 NAND 스트링의 드레인 단자(56)에 결합된다. 각 뱅크의 NAND 스트링들을 따라서, 소스 라인(34)과 같은 소스 라인은 각 NAND 스트링의 소스 단자들(54)에 결합된다. 또한, 한 뱅크의 NAND 스트링들 내 한 행의 셀들을 따른 제어 게이트들은 워드라인들에 접속된다. 한 뱅크의 NAND 스트링들 내 전체 한 행의 메모리 셀들은 한 뱅크의 NAND 스트링의 워드라인들 및 선택 라인들 상에 적절한 전압들에 의해 어드레스될 수 있다. NAND 스트링 내에 메모리 트랜지스터가 판독되고 있을 때, 스트링을 통해 흐르는 전류가 필수적으로, 판독되는 셀에 저장된 전하 레벨에 좌우되도록, 스트링 내 남은 메모리 트랜지스터들은 이들의 연관된 워드라인들을 통해서 좀처럼 턴 온 되지 않는다.
도 6은 소거 가능한 블록들로 구성된 메모리 어레이의 예를 개요적으로 도시한 것이다. 전하 저장 메모리 장치들의 프로그래밍은 이의 전하 저장 소자들에 더 많은 전하를 부가하는 결과가 될 수 있을 뿐이다. 그러므로, 프로그램 동작에 앞 서, 메모리 셀의 전하 저장 소자에 현존하는 전하는 제거(또는 소거)되어야 된다. EEPROM과 같은 비휘발성 메모리는 셀들의 전체 어레이 또는 이 어레이의 셀들의 상당한 그룹들이 함께 전기적으로(즉, 플래시로) 소거될 때 "플래시" EEPROM 이라 칭한다. 일단 소거되면, 한 그룹의 셀들은 재프로그램될 수 있다. 함께 소거 가능한 한 그룹의 셀들은 하나 이상의 어드레스 가능한 소거 단위로 구성될 수 있다. 소거 단위 또는 블록은 전형적으로 데이터의 하나 이상의 페이지들을 저장하는데, 이 페이지는 프로그래밍 및 판독 단위이지만, 하나 이상의 페이지가 단일 동작으로 프로그램되거나 판독될 수도 있다. 각 페이지는 전형적으로, 하나 이상의 데이터 섹터들을 저장하는데, 이 섹터의 크기는 호스트 시스템에 의해 규정된다. 일 예는 자기 디스크 드라이브들에 확립된 표준에 따라, 한 섹터의 512 바이트 사용자 데이터 및 이에 더하여 사용자 데이터 및/또는 이를 저장하는 블록에 관한 몇 바이트들의 오버헤드 정보이다.
도 6에 도시된 예에서, 메모리 어레이(200) 내 개개의 메모리 셀들은 워드라인들(WL0-WLy) 및 비트라인들(BL0-BLx)에 의해 액세스될 수 있다. 메모리는 이를테면 소거 블록들 0, 1,...,m과 같은 소거 블록들로 구성된다. 도 5a 및 도 5b를 참조하면, NAND 스트링(50)이 16개의 메모리 셀들을 내포할 경우, 어레이 내 제 1 뱅크의 NAND 스트링들은 WL0 내지 WL15에 의해 액세스될 수 있다. 소거 블록 0은 제 1 뱅크의 NAND 스트링들의 모든 메모리 셀들이 함께 소거되게 구성된다. 또 다른 메모리 아키텍쳐에서, 하나 이상의 뱅크의 NAND 스트링들은 함께 소거될 수 있다.
도 7은 선택된 워드라인에 인가되는 계단 파형 형태의 일련의 프로그래밍 전 압 펄스들을 도시한 것이다. 셀이 주어진 상태로 프로그램될 때, 증분적 전하를 플로우팅 게이트에 부가하려고 할 때마다, 이 셀엔 연속적인 프로그래밍 전압 펄스들이 가해진다. 펄스들 간에서, 구분점 레벨에 대한 소스-드레인 전류를 판정하기 위해서 셀은 다시 판독되거나 검증된다. 전류 상태가 원하는 상태에 도달한 것으로 검증될 때 프로그래밍은 중단된다. 사용된 프로그래밍 펄스 열은 메모리 셀의 전하 저장유닛에 프로그램된 축적된 전자들을 중화하기 위해서 증가하는 기간(period) 또는 진폭을 가질 수 있다. 프로그래밍 회로들을 일반적으로 선택된 워드라인에 일련의 프로그래밍 펄스들을 인가한다. 이렇게 하여, 제어 게이트들이 워드라인에 접속되는 한 페이지의 메모리 셀들은 함께 프로그램될 수 있다.
메모리 테스트 시스템
도 8 내지 도 10은 본 발명의 여러 면들이 구현될 수 있는 메모리 테스트 시스템들의 예를 도시한 것이다.
양호한 프로그래밍 성능을 달성하기 위해서, 초기 프로그래밍 전압(VPGM0) 및 스텝 크기는 최적으로 선택되어야 한다. 초기 프로그래밍 전압(VPGM0)이 너무 낮게 선택된다면, 이것은 타깃 상태에 도달하기 위해서 과도한 수의 프로그래밍 펄스들을 요구할 수 있다. 반면, 특히 복수-상태 메모리에서, VPGM0가 너무 높게 선택된다면, 프로그래밍은 제 1 펄스에서 타깃 상태를 넘을 수 있다. 유사한 고찰들은 한 펄스에서 다음 펄스로의 스텝 크기에 적용한다. 일반적으로, 최적의 스텝 크기는 몇 개의 스텝들로 도 3에 도시된 각각의 분할된 또는 경계가 정해진 영역을 경계를 가로지르는 적절한 분해능을 가능하게 할 것이다. 최적의 초기 프로그래밍 전압(VPGM0)은 몇 단계들로 타깃 상태에 도달할 것이다. 일반적으로, 스텝 크기는 임계 윈도우 내 분할들의 수에 기초하여 사전에 결정될 수 있다. 최적의 VPGM0는 제조변동들에 꽤 민감하며 통상적으로는 공장에서 테스트함으로써 결정된다. 이것이 VPGM0 트리밍으로서 알려진 프로세스이다.
도 8은 다수의 메모리 칩들에 대한 최적의 초기 프로그래밍 전압들을 결정하기 위한 전형적인 테스트 셋업을 도시한 것이다. 전형적으로 메모리 테스터(300)는 병렬 테스트를 위해서 상당 수의 메모리 칩들(100)에 접속한다. 전형적으로, 공장으로부터 출하하기 전에, 다수의 메모리 칩들을 병렬로 테스트하기 위해 전용의 메모리 테스트가 셋업된다. 테스트들 중 한 테스트는 최적의 초기의 프로그래밍 전압들을 결정하는 것이다(VPGM0 트리밍들).
도 9는 최적의 초기 프로그래밍 전압들의 결정을 위해 도 8에 도시된 메모리 칩들 중 하나를 테스트하는 메모리 테스터의 기능 블록들을 개요적으로 도시한 것이다. 근본적으로, 메모리 테스터(300)는 초기 프로그래밍 전압의 서로 다른 샘플들을 사용하여 다수의 프로그램 동작들을 수행하기 위해서 메모리 칩(10)에 일련의 명령들을 발행한다. 비휘발성 메모리 어레이(200)는 시스템 데이터를 저장하기 위한 유보된 영역("ROMFUSE")(202)을 갖는다. 메모리 테스터는 메모리 인터페이스(310)를 통해 온-칩 메모리 제어기(210)와 상호작용한다. 테스터는 초기에 ROM(308)로부터 가져왔던 RAM(304) 내의 테스트 프로그램을 실행하는 프로세 서(302)를 구비한다. 테스트 프로그램 실행은 한 세트의 테스터 레지스터들(306)에 의해 용이하게 실행될 수 있다. 테스트 프로그램은 사용자 인터페이스(312)로부터 입력들을 통해 사용자에 의해 제어된다. 테스트 결과들에 기초하여, 이를테면 서로 다른 유형의 워드라인들 및 페이지들과 같은 다양한 프로그래밍 변동들에 대해 최적의 초기 프로그램 전압들(VPGMO)이 결정된다. 이들 트리밍된 값들은 이어서 ROMFUSE(202)에 저장된다. 메모리의 정규 사용 동안에, ROMFUSE 내 데이터는 제어기(210)가 메모리 동작들 동안 이들에 액세스를 준비하도록 기동시 제어기 레지스터들(350)에 로딩된다.
도 10은 바람직한 실시예에 따라, 최적의 초기 프로그래밍 전압들의 결정을 위해 도 8에 도시된 메모리 칩들 중 하나에 동작하는 대안적 메모리 테스터의 기능 블록들을 도시한 것이다. 이 구현에서, 테스트 기능들 대부분이 메모리 칩(100) 자체에 내장된다. 온-칩 메모리 제어기(210')는 삽입된 내장형 자기 테스트(Built-in Self Test; "BIST") 모듈(340), 그리고 한 세트의 제어기 레지스터들(350)을 위한 추가된 용량으로 더욱 향상된다. 이에 따라, 기술된 VPGM 트리밍 동작들을 포함하는 다양한 테스트들이 온-칩에서 수행될 수 있다. 테스트 결과들에 기초하여, 최적의 초기의 프로그래밍 전압(VPGMO)은 온-칩에서 혹은 외부 테스터(330)에 의해 결정될 수 있다. 이 결정된 값은 ROMFUSE(202)에 저장된다. 메모리의 정규 사용 동안에, 기동시, ROMFUSE 내 데이터는 제어기(210')가 메모리 동작들 동안 이들에 액세스를 준비하도록 기동시 제어기 레지스터들(350)에 로딩된다.
향상된 자기 테스트 온-칩 제어기(210')로, 외부 전용 테스터는 더 이상 필요하지 않을 수 있다. 개인용 컴퓨터에 의해 구현되는 단순 테스터(310)는 상당 수의 메모리 칩들이 병렬로 테스트되고 있을 때 이들을 동작시키기에 충분할 것이다. 메모리 테스터(310)는 테스터 메모리 인터페이스(332)를 통해 온-칩 메모리 제어기(210')와 상호작용한다. 이것은 사용자 인터페이스(334)로부터 조작자 입력들을 수신한다. 한 구현에서, 테스터(310)는 자기 테스트를 수행할 것을 메모리 칩들(100)의 각각에 간단히 지시하고 각 메모리 칩에 대한 테스트의 끝에서 상태를 보고한다. 또 다른 구현에서, 테스터(310)는 테스트 결과들로부터 통계들을 모으고 통계적 계산들을 행한다.
자기 테스트 온-칩 제어기(210')는 고가의 전용 테스터를 없애는 이점이 있다. 또한, 이것은 현장에서 테스트할 가능성을 허용하므로, 메모리 장치를 사용해감에 따라, 이의 VPGMO 값들은 다시 트리밍될 수도 있을 것이다.
V PGM 트리밍 동작들
도 11a는 메모리 장치내 주어진 유형의 워드라인들에 대해 추정된 시작 프로그래밍 전압을 얻기 위한 일반적인 방식을 도시한 흐름도이다. 전에 언급된 바와 같이, 이 프로세스는 프로그래밍 전압("VPGM") 트리밍이라고도 한다.
단계 400: 양호한 블록 i를 선택한다. 어떤 구현에서, 블록에 더 많은 시간 소비적 VPGM 트리밍 동작을 가하기 전에 이 블록에 신속한 프로그램 가능성 테스트를 수행하는 것이 바람직하다. 구현에 따라서는 이 단계는 선택적이다. 접하게 된 임의의 결함있는 워드라인을 간단히 무시함으로써 생략될 수도 있다. 양호한 블록을 결정하는 보다 상세한 설명은 도 11b에 도시되었다.
단계 410: 샘플링을 위해 선택된 블록 i 내 일 그룹의 워드라인들을 선택한다; {WL(i,j), 여기서 j=0, m-1}. 일반적으로, 선택된 일 그룹의 워드라인들, 그리고 나타내려고 하는 워드라인들의 유형은 유사한 프로그래밍 특성들을 공유한다.
단계 420: VPGM0(i,j)부터 시작하는 계단 펄스 전압파형이 소정 수의 펄스들 내에서 지정된 상태로 전체 페이지를 프로그램하도록 WL(i,j) 상에 페이지에 대해 초기 프로그래밍 전압 VPGMO(i,j)를 결정한다. 워드라인 WL(i,j)를 공유하는 한 페이지의 메모리 셀들은 병렬로 프로그램된다. 계단 파형은 매 펄스마다 스텝만큼 증가하며 소정 수의 펄스들까지 증가하게 예산을 잡는다.
단계 460: 요망된다면 충분한 수의 샘플을 모으기 위해 단계들 400-420을 반복함으로써 더 많은 블록들을 선택한다. 예를 들면, 각 블록은 서로 다른 프로그래밍 특성들을 갖는 3가지 유형들의 워드라인들을 내포할 수 있다. 제 1 유형은 블록의 맨 위의 경계에 제 1의 2개의 워드라인들을 포함한다. 제 2 유형은 블록의 맨 아래의 경계에 마지막 2개의 워드라인들을 포함한다. 제 3 유형은 블록의 주 영역에 대량의 워드라인들을 포함한다. 이들 3 유형들의 워드라인들 중 어느 하나에 대해 더 나은 샘플을 얻기 위해서, 메모리 어레이에 걸쳐 분포된 더 많은 블록들을 수반하여, 더 큰 샘플이 취해지는 것이 바람직하다. 후술하는 바와 같이, 유사한 유형의 워드라인들의 서로 다른 샘플들은 한 세트의 블록들로부터 기하학적으로 유 사하게 위치된 워드라인들을 취함으로써 형성될 수도 있다.
단계 470: 전체 한 샘플의 워드라인들에 대해 평균의 시작 프로그램 전압 ("<VPGMO>")를 계산한다. 이것은 각각의 샘플링된 워드라인에 대한 VPGM0의 총합을 모든 샘플링된 워드라인들의 총합으로 나누어 얻어진다. 즉,
< VPGMO(i,j) > = ΣVPGMO(i,j)/Σ
i,j i,j
도 11b는 도 11a에 도시된 양호한 블록을 선택하는 일 실시예를 보다 상세히 도시한 것이다. 양호한 블록이란 워드라인들을 따른 블록의 모든 페이지들의 메모리 셀들이 프로그램 가능한 이러한 블록이어야 한다. 이에 따라, 도 11a에 도시된 단계 400을 다음과 같이 더 상술한다.
단계 401: 블록을 소거한다.
단계 402: 이어서 블록 내 모든 워드라인들을 소정 수의 펄스들을 사용하여 지정된 상태로 프로그래밍한다.
단계 404: 성공적으로 프로그램하지 못한 블록 내 어떤 워드라인들이 있나? 어떤 실패된 것들이 있다면, 단계 406으로 가고, 그렇지 않다면 단계 408로 간다.
단계 406: 블록이 적어도 한 결함이 있는 워드라인을 내포하기 때문에 이 블록은 불량으로 간주된다. 이것은 특히 NAND 아키텍쳐의 메모리에선 사실이며, 이 경우 NAND 체인 내 불량 셀은 일반적으로 전체 체인을 사용할 수 없게 한다. 불량 블록은 VPGM 트리밍을 위해 선택되지 않을 것이다.
단계 408: 블록은 양호하다. 양호한 블록은 VPGM 트리밍을 위해 선택될 것이다.
단계 409: 블록 내 워드라인이 프로그램될 준비가 된 이 블록을 소거한다.
하나 이상의 결함이 있는 워드라인의 존재가 반드시 전체 블록을 결함이 되게 하지 않는 다른 구현들에서, 불량 블록 탐색을 수행할 필요성은 없다. 앞에 기술된 바와 같이 이 경우, 테스트 동안 결함 워드라인에 접하게 되면, 이는 간단히 무시된다.
도 12는 워드라인 상의 페이지의 초기 프로그래밍 전압을 결정하는 단계들의 종래의 구현을 도시한 흐름도이다. 도 11a의 단계 420의 종래의 구현에서, 블록 내 샘플링된 워드라인들은 저장의 편리하고 효율적인 사용을 위해 하나씩 테스트된다. 다음 워드라인은 이전 워드라인에 관한 테스트가 완료된 후에 테스트될 것이다. 이에 따라, 이전의 워드라인이 성공적으로 프로그램한 것으로 테스트된 후에(혹은 프로그램 불가한 것으로 판정된 후에) 테스트는 다음 워드라인에 대해 반복될 것이다. 종래의 경우에, 도 11a에 도시된 단계 420을 다음과 같이 더 상술한다.
단계 422: 블록 i 내 워드라인들이 프로그램될 수 있도록 이 블록을 소거한다.
단계 424: 처음에, j=0으로 설정함으로써 샘플의 제 1 워드라인을 지적한다.
단계 426: 블록 내 샘플로부터 워드라인 WL(i,j)를 선택하기 위해 "j" 색인을 사용한다.
단계 428: 시작 프로그래밍 전압들의 초기값들을 설정한다: VPGM0(i,j) = VPGM0_(0).
단계 430: VPGM0(i,j)부터 시작하는 소정 수의 펄스들을 사용하여 워드라인 상에 페이지를 지정된 상태로 프로그래밍한다.
단계 432: 페이지/WL이 프로그램되었나? WL(i,j)가 지정된 상태로 프로그램되지 않았다면, 단계 440으로 가고, 그렇지 않다면 단계 450으로 간다.
단계 440: VPGM0(i,j) = VPGM0(i,j) +ΔV이 되게 VPGM0(i,j)을 증분한다.
단계 442: 증분된 VPGM0(i,j)로 워드라인이 다시 프로그램될 수 있게 블록 i를 소거한다.
단계 450: 페이지는 성공적으로 프로그램되었다. VPGM0(i,j)을 보존해 둠으로써 통계들을 수집한다.
단계 452: 다음 워드라인이 프로그램될 수 있게 블록 i를 소거한다.
단계 454: 샘플내 마지막 워드라인에 도달하였나? 마지막 워드라인이 테스트되지 않았다면, 단계 456으로 가로 그렇지 않다면 도 10a에서 단계 460으로 간다.
단계 456: j=j+1으로 하고 다음 워드라인으로 이동하고, 다음 워드라인을 테스트하기 위해 단계 424로 되돌아간다.
이 종래의 방식에서, 페이지는 연속한 프로그램 루프들 사이에 소거들을 갖고, 이들 루프들을 통해 반복하여 사이클이 행해짐을 알 것이다. 앞에서 기술된 바 와 같이, 하나씩 워드라인들을 테스트하는 것은 각 워드라인에 대해 단계 440 및 단계 442에 대한 매 프로그램 루프가 블록 소거를 초래할 것이기 때문에, 더 많은 소거들을 블록에 적용할 것이다. 이 지출은 테스트되는 모든 워드라인에 더 심해질 것이다.
다시 도 6을 참조하면, 각 블록내 많은 워드라인들이 있는 메모리 아키텍쳐에서, 셀들의 워드라인을 복수회 소거하는 것은 같은 블록 내 나머지 워드라인들을 같은 회수로 소거하는 것을 초래할 것이다. 앞에서 언급된 바와 같이, 블록 내 이들 다른 워드라인들도 테스트되고 있다면, 블록이 소거되는 횟수는 기하학적으로 상승할 것이다. 메모리 장치가 고객에 도달하기 전에 메모리 장치의 사용 수명의 반만큼이 소모되었을 수도 있을 것이다.
감소된 소거 사이클링을 사용한 V PGM 트리밍
발명의 일 면에 따라서, 각 블록이, 함께 소거될 수 있는 메모리 셀들에 액세스하기 위한 한 블록의 워드라인들이며, 각 워드라인은 함께 프로그램 가능한 적어도 한 페이지의 메모리 셀들을 내포하는 것인, 이들 블록들로 구성되는 한 어레이의 메모리 셀들을 갖는 비휘발성 메모리에서, 블록 내 워드라인 상에 한 페이지의 메모리 셀들을 프로그램하기 위한 최적의 시작 전압은, 각각의 연관된 페이지/워드라인이 지정된 패턴으로 프로그램될 수 있게 하는 개개의 시작 전압들의 통계적 평균을 얻기 위해서 블록 내 유사한 워드라인들의 샘플을 테스트 프로그램함으로써 추정된다. 이것은 샘플의 모든 페이지들을, 시작 프로그래밍 전압으로부터 일 련의 펄스들이 인가되는 프로그램 루프에 적용함으로써 달성된다. 샘플의 각각의 샘플들이 프로그램 루프를 거친 후에, 프로그램 검증된 페이지/워드라인은 추가 처리에서 제거되고 이의 연관된 시작 프로그래밍 전압은 보존된다. 이어서 블록은 샘플 내 아직 검증되지 않은 워드라인들이 다음 증분된 시간 전압으로 다음 프로그램 루프에 의해 재 프로그램될 수 있도록 소거된다. 사이클링은 샘플 내 모든 워드라인들이 프로그램-검증되었을 때까지 계속된다. 그러면 통계적 평균은 페이지를 위한 최적의 시작 프로그래밍 전압을 도출하기 위해서 개개의 시작 프로그래밍 전압들로부터 얻어질 수 있다.
기술된 방식에 의해 블록 내 워드라인들의 샘플을 테스트하는 것은 블록 소거들의 수를 감소시키는 이점이 있다. 워드라인의 샘플은 서로 간에 동기하여 테스트되므로, 모든 워드라인들이 각 프로그램 루프에서 프로그래밍이 행해졌을 때, 이들은 다음 프로그램 루프를 위해 준비하기 위해서 함께 소거된다. 이 방식은 블록 소거 수를 감소되게 하며 종래의 방식에 비해 한 자리수의 크기를 절약하게 할 수 있다. 예를 들면, 도 11에 도시된 통상의 방식은 서로 간에 동기화 없이 매 프로그램 루프 전에 블록 소거와는 무관하게 각 워드라인 테스트되게 한다. 한 워드라인에 대한 매 프로그램 루프에 연관된 블록 소거는 샘플 내 모든 워드라인에 대해 더 심해진다.
도 13은 발명의 바람직한 실시예에 따라서, 일반적으로 블록 내 한 샘플의 워드라인들로부터 최적의 시작 프로그래밍 전압을 추정하기 위한 동작을 예시한 흐름도이다. 동작은 3 국면들을 갖는 것으로 도시되었다. 제 1 국면(500)은 블록 내 한 샘플의 페이지들/워드라인들을 테스트하고 이들의 통계들을 수집하기 위한 것이다. 이것은 단계 510 내지 단계 550을 포함한다. 각 워드라인은 하나 이상의 물리적 페이지의 메모리 셀들을 지원할 수 있다. 또한, 각 페이지의 메모리 셀들은 각 메모리 셀이 얼마나 많은 비트들을 저장할 수 있는가에 따라 하나 이상의 논리 페이지들의 데이터를 저장할 수 있다. 이에 따라, 복수의 논리 페이지들은 주어진 워드라인에 연관될 수 있다. 여러 논리적 페이지들을 프로그램함에 있어 프로그래밍 특성들에 어떤 현저한 변동들이 있는 한, 각 논리적 페이지의 프로그래밍은 같은 워드라인 상에 자신의 VPGM 트리밍을 가질 수 있다. 임의의 한 시간에 테스트는 주어진 워드라인 상에 주어진 논리 페이지의 프로그래밍으로 전환된다. 편의를 위해, 페이지 혹은 워드라인 테스트를 상호교환적으로 용어가 언급된다. 단계 560을 포함하는 제 2 국면은 샘플될 다른 블록들에 제 1 국면(500)을 반복하는 것이다. 첫 번째 두 국면들은 디코딩 및 프로그래밍 회로들이 하나 이상의 블록에 동작하는 것을 지원한다면 동시에 행해질 수 있다. 단계 570 내지 단계 572를 포함하는 제 3 국면은 테스트되는 워드라인의 유형에 대해 추정된 최적의 시작 프로그래밍 전압을 도출하기 위해서 통계적 평균을 계산하는 것이다.
본 동작은 근본적으로 프로그래밍 단계를 연관된 시작 전압을 갖고 각 워드라인에 적용하고 이어서 워드라인 상의 페이지가 특정된 프로그램 루프 타깃 내에서 지정된 상태로 프로그램되었는지를 판정하기 위해 검증함으로써 샘플 내 워드라인들을 통해 사이클을 행한다. 어떤 페이지/워드라인이 프로그램-검증된다면, 이에 연관된 시작 전압은 저장해 둔다. 페이지/워드라인이 아직 프로그램-검증되지 않았다면, 이에 연관된 시작 전압은 증분된다. 증분 정보 역시, 바람직하게는 누산기에 보존된다. 워드라인들을 통해 사이클을 행하는 것은 프로그램-검증되지 않은 것들에 반복되므로 블록 소거 후에, 이들은 연관된 증분된 시작 전압들로 또 다른 프로그래밍 단계가 적용된다. 이 프로세스는 샘플 내 모든 워드라인들이 특정의 프로그램 루프 타깃 내에 프로그램-검증될 때까지 계속된다.
단계 510: 블록 내 주어진 유형의 페이지를 나타내는 한 샘플의 페이지들을 선택한다.
단계 520: 샘플 내 페이지들 각각에 연관된 시작 프로그래밍 전압에 초기값을 제공한다.
단계 530: 페이지들의 샘플을 내포하는 블록을 소거한다.
단계 540: 타깃 패턴으로 아직 프로그램되지 않은 한 샘플의 페이지들 중에 일부 페이지들을 순차적으로 프로그램하는 것으로, 이 일부의 각 페이지는 연관된 시작 프로그래밍 전압으로 프로그램되며, 각 페이지의 프로그래밍 후에는:
타깃 패턴이 그에 프로그램되었는지를 검증하고;
페이지가 프로그램-검증되지 않았을 때 연관된 시작 프로그래밍 전압을 소정의 량만큼 증분시키며, 그렇지 않다면, 페이지가 프로그램-검증될 수 있게 하는 연관된 시작 프로그래밍 전압을 도출하기 위한 정보를 보관한다.
단계 550: 샘플의 모든 페이지들이 프로그램-검증되었나? 페이지들이 모두 검증되지 않았다면, 단계 530으로 되돌아가고, 그렇지 않다면 단계 560으로 간다.
단계 560: 샘플 내 포함하게 선택된 다른 블록들에 대해 단계 500 내지 단계 560을 반복한다.
단계 570: 연관된 저장해 둔 정보로부터 샘플에 대해 평균 시작 프로그래밍 전압을 계산한다.
단계 572: 샘플의 평균 시작 프로그래밍 전압에 기초하여 주어진 유형의 페이지에 대한 시작 프로그래밍 전압을 도출한다.
특정된 프로그램 루프 타깃은 허용된 최대 수의 증분들에 대한 한계이다. 이 한계는 2가지 서로 다른 방식들로 구현되었을 때 2개의 서로 다른 의미들을 갖는다.
일 실시예에서, 한계는 비교적 낮은 증분 상한을 설정한다. 이것은 페이지의 프로그래밍이 비성공적인 것으로 혹은 불충분한 것으로 간주되기 전에 주어진 시작 전압으로부터 최대 수의 프로그래밍 펄스들 혹은 증분들을 설정한다. 이 수는 메모리 장치의 정규의 사용에서 실제 프로그램 동작 동안 예산된 프로그래밍 단계들의 수와 유사하게 되게 설정된다. 예를 들면, 사용자에 의한 정규 프로그램 동작에서, 특정 논리적 페이지에 대한 프로그래밍은 8 내지 10 프로그래밍 펄스들 내에서 완료될 것이 요구된다. 따라서, VPGM 트리밍 테스트는 실 프로그래밍 조건들을 가깝게 모사한다. 일반적으로 이 한계는 5 내지 15의 범위이다.
나중에 보다 상세히 기술될 또 다른 실시예에서, 프로그래밍 전압은 최종 전압이 프로그램된 페이지에 나타나게 될 때까지 증분이 허용된다. 그러면 최종 전압 은 소정 수의 단계들을 줄임으로써 최적의 시작 전압을 추정하기 위해 사용된다. 이 실시예에서, 정규 프로그래밍 조건들을 모방하기 위해 설정되는 한계는 없다. 그러나, 시작 프로그래밍 전압의 증분은 결함 워드라인에 접하게 된 경우엔 무한하지 않다. 이에 따라, 한계는 결함 워드라인에 접하게 된 경우 최대 소정의 값으로 증분들을 제어하기 위해 상대적으로 높은 수(예를 들면 30 내지 50)로 설정된다. 페이지가 시작 프로그래밍 전압이 최대값으로 증분된 후에 지정된 상태로 프로그램되지 못하였을 때, 워드라인은 결함이 있는 것으로 간주되고 이의 VPGM 데이터는 통계들로부터 배제될 것이다. 또 다른 구현에서, 결함 워드라인을 내포하는 전체 블록이 배제될 수도 있다.
이에 따라, 기술된 2개의 실시예들은 서로 다른 이유들로 프로그램 루프에 제한을 부과한다. 하한을 가진 제 1 실시예는 정규 프로그램 동작에서와 같이 다수의 펄스형태 스텝들의 마진을 제공함으로써 시작 전압으로부터 프로그래밍 성공을 측정한다. 프로그래밍은 하한 내에 완료된다면 성공적인 것으로 간주된다. 반대로, 비성공적 프로그래밍은 시작 전압이 너무 낮게 설정된 것임을 의미한다. 한계가 상한으로 설정되는 제 2 실시예는 결함 워드라인이 결코 프로그램될 수 없는 경우 무한한 증분들을 방지하는 것이다. 이에 따라, 이 한계에 도달되었을 때, 이것은 시작 전압이 너무 낮은 것을 의미하는 것이 아니라, 워드라인이 단순히 결함이 있는 것이다.
또 다른 구현에서, 하한도 고찰된다. 프로그램 루프가 계단 파형의 첫 번째 몇개의(예를 들면, 하나 혹은 2개) 스텝들 내에서 완료된다면, 이것은 페이지가, 전형적이지 않은 것인 매우 고속의 프로그래밍 특성들을 가짐을 의미할 것이다. 이에 따라, 페이지가 소정의 하한 내에서 프로그램-검증되었을 때의 경우에, 이것은 전형적인 것으로 간주되고 통계들을 왜곡하지 않기 위해서 평균화로부터 배제될 것이다.
도 14는 도 13에 도시된 동작의 특정한 구현을 예시한 흐름도이다.
단계 610: 블록 i에 대해 초기값들을 설정한다.
페이지 검증 상태: 모든 j에 대해서 PageDone(j) = FALSE
초기 프로그래밍 전압: 모든 j에 대해서, VPGMO(i,j) = VPGMO_O
ΔVPGM0의 수: 모든 j에 대해서 StepUp#(j) = 0.
단계 620: 블록 i를 소거한다.
단계 630: j = 0.
단계 632: 샘플 중에서 워드라인 WL(i,j)을 선택한다:j=0, m-1
단계 640: VPGM0(i,j)부터 시작하는 소정 수의 펄스들까지를 사용하여 지정된 상태로 워드라인 상의 페이지를 프로그램한다.
단계 642: 페이지가 프로그램되었나? 페이지가 프로그램-검증되지 않았다면, 단계 650으로 가고, 그렇지 않다면 단계 660으로 간다.
단계 650: 워드라인은 아직 프로그램-검증되지 않았다. 따라서 이의 연관된 초기 프로그래밍 전압은 추가의 스텝만큼 증분될 것이다. StepUp#(j)을 증분한다: StepUp#(j)= StepUp#(j)+ 1.
단계 652: VPGM0(i,j)을 증분한다: VPGM0(i, j) = VPGM0(i,j) + StepUp#(j)*ΔV.
단계 660: 워드라인의 테스트를 마쳤고 페이지를 마친 것으로 마크한다: PageDone = TRUE.
단계 662: 최종 프로그래밍 전압에 대한 정보가 초기 전압으로부터 스텝 증가들의 수로서 모아진다. StepUp#Global = StepUp#Global + Stepup#(j).
단계 670: 다음 워드라인: j=j+1.
단계 672: 샘플 내 마지막 워드라인에 도달하였나?(즉, j=m?). WL(i,j)이 마지막 워드라인이 아니라면, 단계 680로 가고, 그렇지 않다면 단계 690으로 간다.
단계 680: 끝마친 페이지를 처리하지 않는다: PageDone(j)=TRUE인가? 현재 페이지가 이미 프로그램-검증된 것임을 상태가 나타낸다면, 이것은 무시 또는 스킵되고 프로세스는 단계 670로 갈 것이며, 그렇지 않다면, 프로세스는 단계 632로 되돌아가서 아직 프로그램-검증되지 않은 다음 워드라인을 테스트한다.
단계 690: 모든 페이지들/WL들이 프로그램될 때까지, 끝마치지 않은 남은 WL들을 다시 스캐닝한다: 모든 j에 대해서 PageDone(j) = TRUE인가? 적어도 한 워드라인이 프로그램-검증되지 않았으면, 단계 620으로 되돌아가서 이를 증분된 프로그래밍 전압으로 재프로그램하고, 그렇지 않다면, 모든 워드라인들의 프로그래밍이 마쳐졌고 프로세스는 도 12에 단계 560으로 갈 것이다.
스케일링에 의한 시작 전압의 추정
발명의 또 다른 면에 따라서, 시작 프로그래밍 전압의 초기값은 워드라인 상에 페이지의 초기 프로그래밍 테스트 실행에 의해 추정된다. 워드라인 상의 선택된 페이지는 페이지가 지정된 패턴으로 프로그램된 것으로 검증될 때까지 계단 파형의 일련의 전압 펄스들 사이에 검증들을 갖고 이들 펄스들에 의해 연속적으로 프로그램된다. 페이지가 프로그램-검증될 때에 최종 프로그래밍 전압은 소정의 량을 줄임으로써(scaling back) 시작 프로그래밍 전압을 추정하기 위해 사용될 것이다. 평균 시작 프로그래밍 전압은 한 샘플의 유사한 페이지/워드라인들을 고려함으로써 얻어진다. 샘플 내 임의의 프로그램될 수 없는 페이지/워드라인들은 통계들을 전형적이지 않은 엔트리들로 왜곡하지 않게 하기 위해서 무시될 수 있다.
또 다른 실시예에서, 프로세스는 더 정교해지는 여기서 제 1 패스(pass)로부터 추정된 시작 프로그래밍 전압은 제 2 패스에서 계단 파형의 초기값으로서 사용된다. 이렇게 하여, 한 샘플의 유사한 페이지들에 대해 평균하였을 때, 대표적인 페이지에 대한 시작 프로그래밍 전압이 추정될 수 있다. 시작 프로그래밍 전압은 최종 프로그래밍 전압을 소정 수의 계단 파형의 스텝들만큼 역으로 차감(negatively offset)함으로써 추정된다. 소정 수의 스텝들은 바람직하게는 정규 프로그램 동작에서 프로그램 성공을 위해 예산된 스텝들의 수와 유사하다.
이 스케일링 방식의 한 이점은 각각의 페이지/워드라인에 관한 간단한 1- 혹은 2-패스 프로그래밍 테스트가 페이지에 대한 시작 프로그래밍 전압에 대한 추정을 얻기에 충분하다는 것이다. 각 페이지는 독립적으로 테스트될 수 있고 테스트동안 복수의 소거 동작을 수반하지 않는다. 그러므로, 한 샘플의 워드라인들간에 블 록 소거의 관리에 대한 필요성이 없다.
도 15는 한 페이지의 메모리 셀들의 초기 프로그래밍 테스트에서 사용되는 계단 파형을 도시한 것이다. 계단 파형 전압은 한 페이지의 메모리 셀들을 지원하는 워드라인에 인가된다. 처음에, 증분 프로그래밍을 수행하기 위해서 Vi의 전압 펄스가 인가된다. 이에 이어 전압은 페이지가 지정된 패턴으로 프로그램되었는지를 검증하기 위해 페이지를 판독하는데 적합한 VVER로 변경한다. 프로그램 펄스 인가 및 검증하는 프로세스는 페이지가 프로그램-검증될 때까지 계속한다. 이때, 프로그래밍 전압은 Vf=StepUps#*ΔV로 증분되었다. 일 실시예에서, 이 최종 전압은 앞에서 기술된 VPGM 트리밍 테스트들을 위한 시작 프로그래밍 전압에 대한 추정으로서 사용하기 위해서 소정 수의 스텝들 전으로 간다. 즉, VPGMO = Vf - NOFFSET*ΔV이며, NOFFSET는 소정 수의 스텝들이다.
도 16은 도 15에 도시된 계단 파형 스캔을 사용하여, 주어진 페이지에 대한 시작 프로그래밍 전압의 결정을 도시한 흐름도이다.
단계 800: 한 페이지의 메모리 셀들을 프로그램하기 위한 연관된 프로그래밍 전압을 제공하며, 연관된 프로그래밍 전압을 소정의 초기 전압 레벨 Vp=Vi를 갖는다.
단계 802: 한 페이지의 메모리 셀들을 소거한다.
단계 810: Vp의 펄스를 한 페이지의 메모리 셀들에 적용한다.
단계 812: 한 페이지의 메모리 셀들이 소정의 메모리 상태들의 대응하는 페 이지에 프로그램되었는지를 검증한다.
단계 814: 페이지가 프로그램-검증되었나? 페이지가 프로그램-검증되지 않았다면, 단계 820으로 가고, 그렇지 않다면 단계 830으로 간다.
단계 820: 연관된 프로그래밍 전압을 소정의 량만큼 증분시킨다. Vp=Vp+DV
단계 830: 페이지에 대한 시작 프로그래밍 전압, VPGMO = Vp - NOFFSET*△V를 보존한다. 바람직한 구현에서, 추정된 시작 프로그래밍 전압은 제 2 패스 테스트 실행에서 더욱 정교해지는 여기서 이것은 계단 파형의 초기값으로서 사용된다. 이렇게 하여, 초기값은 제 1 패스 테스트 실행에서 사용된 것에 비교해서 정규 프로그램 동작들을 더욱 가깝게 모방한다.
전처럼, 유형에 대해 통계적으로 평균의 시작 프로그래밍 전압을 얻기 위해서 유사한 유형의 한 샘플의 워드라인들이 테스트된다. 테스트 결과들을 위한 저장을 감소시키기 위해서, 통계적 평균은 각 테스트 실행 후에 수행되는 것이 바람직하다.
도 17은 한 샘플의 페이지들/워드라인들을 위한 시작 프로그래밍 전압의 복수 패스 결정을 예시한 흐름도이다.
단계 850: 유사한 유형의 한 샘플의 페이지들에 대해 제 1 패스 테스트 실행(예를 들면, 각 페이지에 대해 단계 800 내지 단계 830)을 수행한다.
단계 860: 제 1 패스 테스트 실행으로부터 추정된 시작 프로그래밍 전압들을 위한 제 1 통계 평균을 얻는다: <VPGMO>1.
단계 870: 시작 프로그래밍 전압에 대한 초기값으로서 <VPGMO>1을 사용하여(즉, Vi=<VPGMO>1), 유사한 유형의 한 샘플의 전압들에 대해 제 2 패스 테스트 실행(예를 들면, 각 페이지에 대해 단계 800 내지 단계 830)을 수행한다.
단계 880: 제 2 패스 테스트 실행으로부터 추정된 시작 프로그래밍 전압들을 위한 제 2 통계적 평균을 얻는다: <VPGMO>2.
일 실시예에서, 시작 프로그래밍 전압의 수락가능한 추정을 얻기 위해서 한 패스만으로(단계 850 내지 단계 860) 충분하다. 또 다른 실시예에서, 제 1 패스로부터 얻어진 결과를 정교해지게 하기 위해 제 2 패스(단계 870 내지 단계 880)가 선택적으로 사용된다.
또 다른 구현에서, 추정된 시작 전압 <VPGMO>1 혹은 <VPGMO>2은 도 13 및 도 14에 기술된 VPGM 트리밍 방식을 위한 초기값에 대한 입력으로서 사용될 수 있다. 도 13의 단계 520에 기술된 테스트 및 도 14의 단계 610에 기술된 테스트는 시작 프로그래밍 전압을 위한 초기값 VPGM0_0을 요구한다. 이값이 너무 낮게 설정된다면, 테스트는 워드라인이 프로그램-검증되기 전에 더 많은 스텝들을 통해 사이클을 행해야 할 것이다. 이것은 비효율적이며 메모리 장치의 더 많은 소거 사이클들을 소비할 것이다. 반면 값이 너무 높게 설정된다면, 워드라인은 과대 프로그램(over-programmed) 될 수 있다.
페이지들을 고속 프로그램하는 쪽으로 가중되는 V PGM 트리밍
발명의 또 다른 면에 따라서, 각 블록이 유사한 유형의 프로그래밍 특성들을 갖는 일 그룹의 워드라인들을 갖는 것인, 복수 소거 가능한 블록들을 갖는 메모리 어레이에서, 이 그룹의 대표적인 페이지의 최적의 시작 프로그래밍 전압을 얻기 위한 방식은 하나 이상의 워드라인을 가진 한 세트의 블록들의 각 블록의 기하학적으로 유사한 위치로부터 이 세트에 대해 샘플들을 형성하는 것과, 이 세트의 각 샘플로부터 프로그래밍 전압의 통계적 추정을 얻는 것과, 최적의 시작 프로그래밍 전압을 도출하기 위해 세트 중에서 최소 추정을 선택하는 것을 포함한다. 이렇게 하여, 이 그룹에 대해 워드라인들이 더 느린 것들에 비해 더 낮은 프로그래밍 전압을 요구하기 때문에 이 워드라인들을 더 빠르게 프로그램하기 위해 최적의 값은 가중된다.
다른 단락들에서 기술된 프로그래밍 전압 트리밍 방식들은 페이지 내 모든 비트들이 프로그램-검증되었는지 여부에 관하여 한번에 페이지를 검사한다. 이것은 전체 페이지가 프로그램-검증된 것으로 간주되기 전에 더 느린 비트들도 프로그램-검증되어야 하기 때문에, 테스트 결과들이 이들 더 느린 프로그래밍 비트들에 좌우되게 함을 의미한다. 결과는 시작 전압이 더 빠른 프로그래밍 비트들에 대해 과대 평가되어 과대 프로그래밍될 위험이 있을 수 있다는 것이다. 본 샘플링 및 통계적 계산 방식은 더 느린 프로그래밍 비트들 쪽으로 치우친 방식으로부터 도출되었던 한 세트의 시작 전압들에 대해 가장 낮은 값이 선택될 수 있게 한다.
기하학적으로 유사한 위치에 의해서, 물리적 메모리 어레이의 레이아웃에 어떤 대칭성들이 있음이 이해된다. 동일 대칭 그룹에 속하는 구조들은 매우 유사한 특성들을 가질 것이다. 예를 들면 도 6을 참조하면, WL2 내지 WL13은 다소 유사하지만 동일한 유형의 프로그래밍 특성들을 가진 소거 블록의 주 영역에 일 그룹의 워드라인들을 형성한다. 한 세트의 블록들은 예를 들면 블록0 내지 블록127이다. 샘플들은 세트의 각 블록의 기하학적으로 대응하는 위치로부터 워드라인을 선택함으로써 형성된다. 이에 따라, 제 1 샘플은 블록0으로부터 WL2와, 블록1로부터 WL18과, 블록2로부터 WL34와,,,,블록127로부터 WL1034로 구성될 것이다. 제 2 샘플은 블록0으로부터 WL3과, 블록1로부터 WL19과, 블록2로부터 WL35와,..., 블록127로부터 WL1035로 구성될 것이다. 대체로 한 세트의 128 샘플들이 있을 것이다. VPGM 트리밍 동작들은 샘플들 각각에 수행될 수 있고 따라서 128개의 통계 결과들(예를 들면 <VPGM0>)이 얻어질 것이다. 본 방법은 128 <VPGM0>S 중에 최소인 것을 선택하는 것을 요구한다.
도 18은 워드라인들을 고속 프로그래밍하는 쪽으로 가중되는 VPGM 트리밍된 값을 얻는 방식을 도시한 흐름도이다.
단계 900: 소거 가능한 블록들로 구성되는 한 어레이의 메모리 셀들을 갖는 비휘발성 메모리를 제공하는 것으로, 각 소거 가능한 블록은 함께 소거할 수 있는 메모리 셀들에 액세스하기 위한 한 블록의 워드라인들을 내포하며, 각 워드라인은 함께 프로그램 가능한 적어도 한 페이지의 메모리 셀들을 내포한다.
단계 902: 블록 내 페이지를 나타내는 일 그룹의 페이지들을 선택한다.
단계 904: 한 세트의 블록들을 선택한다.
단계 906: 각 블록으로부터 적어도 한 페이지를 선택함으로써 한 세트의 샘플들을 형성하는 것으로, 페이지는 각 블록의 기하학적으로 대응하는 위치에 위치된다.
단계 908: 세트의 165각 샘플로부터 프로그래밍 전압의 통계적 추정을 얻는다.
단계 910: 세트중에 최소 통계 추정을 선택함으로써 페이지를 위한 시작 프로그래밍 전압을 결정한다. 각 블록으로부터 적어도 유사한 페이지를 선택함으로써 형성된 개개의 샘플들을 테스트하는 방식은 최소 저장 요구조건의 이점을 갖는다. 각 샘플이 테스트된 후에, 평균 형태의 테스트 결과가 얻어져 저장된다. 이어서 다음 샘플이 유사한 방식으로 테스트되고 이의 평균은 저장소 내 첫 번째 것과 비교된다. 어느 것이든 더 낮은 것이 저장소에 보유되고 따라서 한번에 한 샘플로 한 세트의 샘플들이 처리될 때 단지 한 데이터만이 저장될 필요가 있다.
또한, 블록들 각각으로부터 상대적으로 작은 부분을 선택함으로써 샘플이 형성되어, 또 다른 이점은 샘플 평균이 샘플 내 워드라인들의 큰 부분이 결함이 있을 수 있는 임의의 불량 블록들의 존재에 민감하지 않다는 것이다.
모든 특허들, 특허출원들, 논문들, 책들, 명세들, 그외 공보들, 문서들 및 여기에서 참조된 것들은 모든 목적들을 위해 이들 전부를 참조로 여기 포함시킨다. 포함시킨 공보들, 문서들 또는 참조된 것들 중 어느 것과 본 문서의 텍스트간에 용어의 정의 혹은 사용에서 어떤 불일치 혹은 상충의 정도까지도, 본 문서 내 용어의 정의 혹은 사용이 우선할 것이다.
본 발명의 여러 면들이 어떤 실시예들에 관하여 기술되었을지라도, 발명은 첨부된 청구항들의 전체 범위 내에서 보호될 자격이 있음이 이해된다.
상술한 바와 같이, 본 발명은, 일반적으로 전기적으로 소거 가능하고 프로그램 가능한 판독 전용 메모리(EEPROM) 및 플래시 EEPROM과 같은 비휘발성 반도체 메모리에 관한 것이고, 보다 구체적으로는 여러 그룹의 메모리 셀의 최적의 초기 프로그래밍 전압을 결정하는 것에 관한 것이다.

Claims (37)

  1. 함께 소거할 수 있는 메모리 셀들에 액세스하기 위한 한 블록의 워드라인들을 각 소거 가능한 블록이 내포하며, 각 워드라인은 함께 프로그램 가능한 적어도 한 페이지의 메모리 셀들을 내포하는 것인, 소거 가능한 블록들로 구성되는 한 어레이의 메모리 셀들을 갖는 비휘발성 메모리에서, 주어진 페이지에 대한 시작 프로그래밍 전압을 결정하는 방법에 있어서,
    (a) 블록 내 상기 주어진 페이지를 나타내는 한 샘플의 페이지들을 선택하는 단계와,
    (b) 상기 샘플의 각 페이지를 프로그램하기 위한 연관된 프로그래밍 전압을제공하는 단계로서, 상기 연관된 프로그래밍 전압은 연관된 초기값 및 소정 수의 스텝들을 갖는 계단 파형을 갖는 것인, 단계와,
    (c) 상기 한 샘플의 페이지들을 내포하는 상기 블록을 소거하는 단계와,
    (d) 상기 샘플 내 모든 페이지에 대해서 상기 페이지가 상기 연관된 초기값을 갖고 상기 연관된 프로그래밍 전압을 사용하여 타깃 패턴으로 프로그램할 수 있는지를 판정하고, 프로그램할 수 있다면, 상기 연관된 초기값을 수집된 통계들의 부분으로서 축적한 후에 추가 처리에서 상기 페이지를 제외시키고, 그렇지 않다면, 소정의 스텝만큼 상기 연관된 초기값을 증분시키는 단계와,
    (e) 상기 샘플 내 모든 페이지들이 프로그램 가능한 것으로 판정되거나 상기 연관된 초기값이 소정의 최대 전압 한계까지 증분될 때까지 (c) 내지 (d)를 반복하는 단계와,
    (f) 상기 페이지에 대한 시작 프로그래밍 전압을 도출하기 위해서 상기 수집된 통계들로부터 상기 샘플에 대한 평균 시작 프로그래밍 전압을 계산하는 단계를
    포함하는, 방법.
  2. 제 1항에 있어서, 상기 샘플은 상기 메모리 어레이 내 복수의 블록들로부터 취해진 더 큰 샘플의 부분이며;
    상기 수집된 통계들은 상기 복수의 블록들로부터 프로그램 가능한 페이지들에 연관된 축적된 초기값들을 포함하는, 방법.
  3. 제 1항에 있어서, 상기 연관된 초기값의 상기 소정의 스텝 증분은 정규 프로그램 동작 동안 상기 메모리에 적용되는 프로그래밍 전압의 값을 모방하는 것인, 방법.
  4. 제 2항에 있어서, 상기 연관된 초기값의 상기 소정의 스텝 증분은 정규 프로그램 동작 동안 상기 메모리에 적용되는 프로그래밍 전압의 값을 모방하는 것인, 방법.
  5. 제 1항에 있어서, 상기 연관된 프로그래밍 전압의 상기 계단 파형의 상기 소정 수의 스텝들은 15 이하인, 방법.
  6. 제 2항에 있어서, 상기 연관된 프로그래밍 전압의 상기 계단 파형의 상기 소정 수의 스텝들은 15 이하인, 방법.
  7. 제 1항에 있어서, 상기 소정의 최대 전압 한계는 상기 초기값에 상기 계단 파형 전압들의 전체 스텝들의 수를 더한 것인, 방법.
  8. 제 2항에 있어서, 상기 소정의 최대 전압 한계는 상기 초기값에 상기 계단 파형 전압들의 전체 스텝들의 수를 더한 것인, 방법.
  9. 제 7항에 있어서, 상기 전체 스텝들의 수는 40 이상인, 방법.
  10. 제 8항에 있어서, 상기 전체 스텝들의 수는 40 이상인, 방법.
  11. 제 1항에 있어서, 상기 연관된 초기값을 수집된 통계들의 부분으로서 축적하는 단계는,
    상기 페이지가 프로그램-검증되었을 때 상기 초기값에 증분된 스텝들의 수를 축적하는 단계와,
    상기 샘플에 대한 증분된 스텝들의 평균과 상기 소정 스텝의 전압과 곱에 의해 상기 샘플에 대한 평균 시작 프로그래밍 전압을 계산하는 상기 단계를
    포함하는, 방법.
  12. 제 2항에 있어서, 연관된 초기값을 수집된 통계들의 부분으로서 축적하는 단계는,
    상기 페이지가 프로그램-검증되었을 때 상기 초기값에 증분된 스텝들의 수를 축적하는 단계와,
    상기 샘플에 대한 증분된 스텝들의 평균과 상기 소정 스텝의 전압과 곱에 의해 상기 샘플에 대한 평균 시작 프로그래밍 전압을 계산하는 상기 단계를
    포함하는, 방법.
  13. 제 1항에 있어서, (g) 시작 전압을 갖는 계단 파형 프로그래밍 전압으로 상기 페이지에 초기 프로그래밍을 수행하는 단계와,
    (h) 상기 계단 파형의 상기 스텝들 각각 사이에서 타깃 패턴이 상기 페이지에 프로그램되었는지를 검증하는 단계와,
    (i) 상기 페이지가 프로그램-검증되었을 때 상기 계단 파형의 최종 전압을 얻는 단계와,
    (j) 상기 최종 전압들의 선형 스케일링에 의해 상기 연관된 시작 프로그래밍 전압을 추정하는 단계를
    더 포함하고, (g)-(j)는 (a)-(f) 전에 수행되는, 방법.
  14. 제 2항에 있어서, (g) 시작 전압을 갖는 계단 파형 프로그래밍 전압으로 상기 페이지에 초기 프로그래밍을 수행하는 단계와,
    (h) 상기 계단 파형의 상기 스텝들 각각 사이에서 타깃 패턴이 상기 페이지에 프로그램되었는지를 검증하는 단계와,
    (i) 상기 페이지가 프로그램-검증되었을 때 상기 계단 파형의 최종 전압을 얻는 단계와,
    (j) 상기 최종 전압들의 선형 스케일링에 의해 상기 연관된 시작 프로그래밍 전압을 추정하는 단계를
    더 포함하고, (g)-(j)는 (a)-(f) 전에 수행되는, 방법.
  15. 제 2항에 있어서, 각 블록의 페이지를 선택함으로써 한 세트의 샘플들을 형성하는 단계로서, 상기 페이지는 각 블록의 기하학적으로 대응하는 위치에 위치된 것인, 단계와,
    상기 세트의 각 샘플로부터 프로그래밍 전압의 통계적 추정을 얻는 단계를
    포함하고,
    상기 샘플에 대한 평균 시작 프로그래밍 전압을 계산하는 상기 단계는 상기 세트중에 최소 통계적 추정을 선택하는 것에 의한 것인, 방법.
  16. 제 1항 내지 제 15항 중 어느 한 항에 있어서, 개개의 메모리 셀들 각각은 1비트의 데이터를 저장하는, 방법.
  17. 제 1항 내지 제 15항 중 어느 한 항에 있어서, 개개의 메모리 셀들 각각은 1비트 초과의 데이터를 저장하는, 방법.
  18. 비휘발성 메모리에 있어서,
    함께 소거할 수 있는 메모리 셀들에 액세스하기 위한 한 블록의 워드라인들을 각각의 소거 가능한 블록이 내포하며, 각 워드라인은 함께 프로그램 가능한 적어도 한 페이지의 메모리 셀들을 내포하는, 소거 가능한 블록으로 구성되는 한 어레이의 메모리 셀과,
    블록 내 주어진 페이지를 나타내는 지정된 한 샘플의 페이지와,
    상기 샘플의 각 페이지를 프로그램하기 위한 것으로, 연관된 초기값 및 소정 수의 스텝들을 갖는 계단 파형을 갖는 것인, 연관된 프로그래밍 전압과,
    상기 주어진 페이지에 대한 시작 프로그래밍 전압을 결정하기 위한 내장형 자기 테스트 모듈로서, 상기 모듈은
    (a) 상기 한 샘플의 페이지들을 내포하는 상기 블록을 소거하고,
    (b) 상기 샘플 내 모든 페이지에 대해서 상기 페이지가 상기 연관된 초기값을 갖고 상기 연관된 프로그래밍 전압을 사용하여 타깃 패턴으로 프로그램 가능한지를 판정하고, 프로그램 가능하다면, 상기 연관된 초기값을 수집된 통계들의 부분으로서 축적한 후에 추가 처리에서 상기 페이지를 제외시키고, 그렇지 않다면, 소정의 스텝만큼 상기 연관된 초기값을 증분시키며;
    (c) 상기 샘플 내 모든 페이지들이 프로그램 가능한 것으로 판정되거나 상기 연관된 초기값이 소정의 최대 전압 한계까지 증분될 때까지 (a) 내지 (b)를 반복하고;
    (d) 상기 페이지에 대한 시작 프로그래밍 전압을 도출하기 위해서 상기 수집된 통계들로부터 상기 샘플에 대한 평균 시작 프로그래밍 전압을 계산하는 것을 포함하는 메모리 동작들을 제공하는, 상기 모듈을
    포함하는, 비휘발성 메모리.
  19. 제 18항에 있어서, 상기 연관된 초기값의 상기 소정의 스텝 증분은 정규 프로그램 동작 동안 상기 메모리에 적용되는 프로그래밍 전압의 값을 모방하는 것인, 비휘발성 메모리.
  20. 제 18항에 있어서, 상기 연관된 프로그래밍 전압의 상기 계단 파형의 상기 소정 수의 스텝들은 15 이하인, 비휘발성 메모리.
  21. 제 18항에 있어서, 상기 소정의 최대 전압 한계는 상기 초기값에 상기 계단 파형 전압들의 전체 스텝들의 수를 더한, 비휘발성 메모리.
  22. 제 21항에 있어서, 상기 전체 스텝들의 수는 40 이상인, 비휘발성 메모리.
  23. 제 18항에 있어서, 메모리 동작들을 제공하는 상기 모듈은,
    (e) 시작 전압을 갖는 계단 파형 프로그래밍 전압으로 상기 페이지에 초기 프로그래밍을 수행하고;
    (f) 상기 계단 파형의 상기 스텝들 각각 사이에서 타깃 패턴이 상기 페이지에 프로그램되었는지를 검증하고;
    (g) 상기 페이지가 프로그램-검증되었을 때 상기 계단 파형의 최종 전압을 얻으며;
    (h) 상기 최종 전압들의 선형 스케일링에 의해 상기 연관된 시작 프로그래밍 전압을 추정하는 것을
    더 포함하고, (e)-(h)는 (a)-(d) 전에 수행되는, 비휘발성 메모리.
  24. 제 18항에 있어서, 상기 수집된 통계는 상기 비휘발성 메모리와 통신하는 외부 테스터에 의해 처리되는, 비휘발성 메모리.
  25. 제 19항에 있어서, 상기 수집된 통계는 상기 비휘발성 메모리와 통신하는 외부 테스터에 의해 처리되는, 비휘발성 메모리.
  26. 제 20항에 있어서, 상기 수집된 통계는 상기 비휘발성 메모리와 통신하는 외부 테스터에 의해 처리되는, 비휘발성 메모리.
  27. 제 21항에 있어서, 상기 수집된 통계는 상기 비휘발성 메모리와 통신하는 외부 테스터에 의해 처리되는, 비휘발성 메모리.
  28. 제 22항에 있어서, 상기 수집된 통계는 상기 비휘발성 메모리와 통신하는 외부 테스터에 의해 처리되는, 비휘발성 메모리.
  29. 제 23항에 있어서, 상기 수집된 통계는 상기 비휘발성 메모리와 통신하는 외부 테스터에 의해 처리되는, 비휘발성 메모리.
  30. 제 18항에 있어서, 상기 수집된 통계는 상기 내장형 자기 테스트 모듈에 의해 처리되는, 비휘발성 메모리.
  31. 제 19항에 있어서, 상기 수집된 통계는 상기 내장형 자기 테스트 모듈에 의해 처리되는, 비휘발성 메모리.
  32. 제 20항에 있어서, 상기 수집된 통계는 상기 내장형 자기 테스트 모듈에 의해 처리되는, 비휘발성 메모리.
  33. 제 21항에 있어서, 상기 수집된 통계는 상기 내장형 자기 테스트 모듈에 의해 처리되는, 비휘발성 메모리.
  34. 제 22항에 있어서, 상기 수집된 통계는 상기 내장형 자기 테스트 모듈에 의해 처리되는, 비휘발성 메모리.
  35. 제 23항에 있어서, 상기 수집된 통계는 상기 내장형 자기 테스트 모듈에 의해 처리되는, 비휘발성 메모리.
  36. 제 18항 내지 제 35항 중 어느 한 항에 있어서, 개개의 메모리 셀들 각각은 1비트의 데이터를 저장하는, 비휘발성 메모리.
  37. 제 18항 내지 제 35항 중 어느 한 항에 있어서, 개개의 메모리 셀들 각각은 1비트 초과의 데이터를 저장하는, 비휘발성 메모리.
KR1020097005155A 2006-09-12 2007-08-30 초기 프로그래밍 전압의 트리밍 동안 감소된 소거/기입 사이클링을 위한 비휘발성 메모리 및 방법 KR101402071B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/531,223 US7606077B2 (en) 2006-09-12 2006-09-12 Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US11/531,217 US7606091B2 (en) 2006-09-12 2006-09-12 Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US11/531,217 2006-09-12
US11/531,223 2006-09-12
PCT/US2007/077295 WO2008033679A2 (en) 2006-09-12 2007-08-30 Non-volatile memory and method for reduced erase/write cycling during trimming of initial programming voltage

Publications (2)

Publication Number Publication Date
KR20090064384A KR20090064384A (ko) 2009-06-18
KR101402071B1 true KR101402071B1 (ko) 2014-06-27

Family

ID=39184456

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097005155A KR101402071B1 (ko) 2006-09-12 2007-08-30 초기 프로그래밍 전압의 트리밍 동안 감소된 소거/기입 사이클링을 위한 비휘발성 메모리 및 방법

Country Status (6)

Country Link
EP (1) EP2062265B1 (ko)
JP (1) JP4950296B2 (ko)
KR (1) KR101402071B1 (ko)
AT (1) ATE511693T1 (ko)
TW (1) TWI354993B (ko)
WO (1) WO2008033679A2 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606077B2 (en) 2006-09-12 2009-10-20 Sandisk Corporation Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
EP2074626B1 (en) * 2006-09-12 2012-11-28 SanDisk Technologies Inc. Non-volatile memory and method for linear estimation of initial programming voltage
US7606091B2 (en) 2006-09-12 2009-10-20 Sandisk Corporation Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US7453731B2 (en) 2006-09-12 2008-11-18 Sandisk Corporation Method for non-volatile memory with linear estimation of initial programming voltage
US7599223B2 (en) 2006-09-12 2009-10-06 Sandisk Corporation Non-volatile memory with linear estimation of initial programming voltage
US7570520B2 (en) 2006-12-27 2009-08-04 Sandisk Corporation Non-volatile storage system with initial programming voltage based on trial
US7551482B2 (en) 2006-12-27 2009-06-23 Sandisk Corporation Method for programming with initial programming voltage based on trial
WO2008083131A2 (en) * 2006-12-27 2008-07-10 Sandisk Corporation Method for programming with initial programming voltage based on trial
JP5032290B2 (ja) * 2007-12-14 2012-09-26 株式会社東芝 不揮発性半導体記憶装置
KR100960479B1 (ko) * 2007-12-24 2010-06-01 주식회사 하이닉스반도체 플래시 메모리 장치 및 동작 방법
KR101335177B1 (ko) * 2011-09-26 2013-11-29 서울시립대학교 산학협력단 비휘발성 메모리 저장장치에서 워크로드와 데이터 재사용 시간을 고려한 선택적 트림 방법
US8724388B2 (en) * 2012-04-02 2014-05-13 Spansion Llc Adaptively programming or erasing flash memory blocks
TWI498905B (zh) * 2013-12-03 2015-09-01 Winbond Electronics Corp 非揮發性記憶體部份抹除方法
TWI690936B (zh) * 2019-03-20 2020-04-11 大陸商合肥沛睿微電子股份有限公司 固態硬碟裝置與相關的固態硬碟控制電路
TWI701677B (zh) * 2019-03-20 2020-08-11 大陸商合肥沛睿微電子股份有限公司 固態硬碟裝置與相關的資料寫入方法
CN111897682A (zh) * 2019-05-05 2020-11-06 北京兆易创新科技股份有限公司 一种测试结果记录方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011725A (en) 1997-08-01 2000-01-04 Saifun Semiconductors, Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US6246611B1 (en) 2000-02-28 2001-06-12 Advanced Micro Devices, Inc. System for erasing a memory cell
JP2004046985A (ja) 2002-07-12 2004-02-12 Toshiba Corp 不揮発性半導体メモリ及びそのテスト方法
US7280408B2 (en) 2004-05-05 2007-10-09 Sandisk Corporation Bitline governed approach for programming non-volatile memory

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0185611B1 (ko) * 1995-12-11 1999-04-15 김광호 불휘발성 반도체 메모리장치의 고전압 레벨 최적화 회로 및 그 방법
US6304487B1 (en) * 2000-02-28 2001-10-16 Advanced Micro Devices, Inc. Register driven means to control programming voltages
US6928001B2 (en) * 2000-12-07 2005-08-09 Saifun Semiconductors Ltd. Programming and erasing methods for a non-volatile memory cell
KR100541819B1 (ko) * 2003-12-30 2006-01-10 삼성전자주식회사 스타트 프로그램 전압을 차등적으로 사용하는 불휘발성반도체 메모리 장치 및 그에 따른 프로그램 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6011725A (en) 1997-08-01 2000-01-04 Saifun Semiconductors, Ltd. Two bit non-volatile electrically erasable and programmable semiconductor memory cell utilizing asymmetrical charge trapping
US6246611B1 (en) 2000-02-28 2001-06-12 Advanced Micro Devices, Inc. System for erasing a memory cell
JP2004046985A (ja) 2002-07-12 2004-02-12 Toshiba Corp 不揮発性半導体メモリ及びそのテスト方法
US7280408B2 (en) 2004-05-05 2007-10-09 Sandisk Corporation Bitline governed approach for programming non-volatile memory

Also Published As

Publication number Publication date
EP2062265B1 (en) 2011-06-01
KR20090064384A (ko) 2009-06-18
ATE511693T1 (de) 2011-06-15
JP4950296B2 (ja) 2012-06-13
WO2008033679A2 (en) 2008-03-20
JP2010503945A (ja) 2010-02-04
TW200834591A (en) 2008-08-16
TWI354993B (en) 2011-12-21
WO2008033679A3 (en) 2008-07-24
EP2062265A2 (en) 2009-05-27

Similar Documents

Publication Publication Date Title
KR101402071B1 (ko) 초기 프로그래밍 전압의 트리밍 동안 감소된 소거/기입 사이클링을 위한 비휘발성 메모리 및 방법
KR101410288B1 (ko) 초기 프로그래밍 전압의 선형 추정을 위한 비휘발성 메모리및 방법
US7453731B2 (en) Method for non-volatile memory with linear estimation of initial programming voltage
US7599223B2 (en) Non-volatile memory with linear estimation of initial programming voltage
US7606091B2 (en) Method for non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US7606077B2 (en) Non-volatile memory with reduced erase/write cycling during trimming of initial programming voltage
US8971119B2 (en) Select transistor tuning
US7965562B2 (en) Predictive programming in non-volatile memory
US8995184B2 (en) Adaptive operation of multi level cell memory
KR20100028019A (ko) 비휘발성 메모리 및 예측 프로그래밍 방법
JP5529858B2 (ja) インデックスプログラミングおよび削減されたベリファイを有する不揮発性メモリおよび方法
US9342401B2 (en) Selective in-situ retouching of data in nonvolatile memory
JP5395167B2 (ja) 相関複数パスプログラミングのための不揮発性メモリおよび方法
US9442842B2 (en) Memory system performance configuration
US20090129166A1 (en) Method, circuit and system for sensing a cell in a non-volatile memory array

Legal Events

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

Payment date: 20170504

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190429

Year of fee payment: 6