KR101017321B1 - 다중 상태 메모리들을 위한 스마트 검사 - Google Patents

다중 상태 메모리들을 위한 스마트 검사 Download PDF

Info

Publication number
KR101017321B1
KR101017321B1 KR1020057010198A KR20057010198A KR101017321B1 KR 101017321 B1 KR101017321 B1 KR 101017321B1 KR 1020057010198 A KR1020057010198 A KR 1020057010198A KR 20057010198 A KR20057010198 A KR 20057010198A KR 101017321 B1 KR101017321 B1 KR 101017321B1
Authority
KR
South Korea
Prior art keywords
state
check
programming
subset
storage elements
Prior art date
Application number
KR1020057010198A
Other languages
English (en)
Other versions
KR20050101159A (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 KR20050101159A publication Critical patent/KR20050101159A/ko
Application granted granted Critical
Publication of KR101017321B1 publication Critical patent/KR101017321B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5628Programming or writing circuits; Data input circuits
    • G11C11/5635Erasing circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • 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/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3436Arrangements for verifying correct programming or erasure
    • G11C16/3454Arrangements for verifying correct programming or for detecting overprogrammed cells
    • G11C16/3459Circuits or methods to verify correct programming of nonvolatile memory cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/562Multilevel memory programming aspects
    • G11C2211/5621Multilevel programming verification

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)
  • Hardware Redundancy (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 "스마트 검사" 기술을 제공하며, 이 기술에 의해 다중 상태 메모리들은 시퀀스-상태 기반 검사 구현들을 위해 다중 상태 검사 범위의 검사-결과 기반의 동적 조정을 사용하여 프로그래밍된다. 이 기술은 순차적으로 검사된 다중 상태 메모리 구현들 내에서 신뢰할 수 있는 동작을 유지하면서 다중 상태 기록 속도를 증가시킬 수 있다. 이것은 기록 시퀀스의 각각의 프로그램/검사/로크아웃 단계에 대한 순차적 검사 동작들의 수를 최소화하기 위해 "지능형" 수단을 제공함으로써 달성된다. 선택된 저장 소자들의 프로그램/검사 주기 시퀀스 동안 다중 상태 메모리에 대한 기록 시퀀스의 예시적 실시예에서, 처리의 시작시, 선택된 저장 소자들이 프로그래밍되는 다중 상태 범위의 가장 낮은 상태만이 검사 단계 동안 체크된다. 하나 이상의 선택된 소자에 의해 제 1 저장 상태에 도달되면, 다중 상태들의 시퀀스의 다음 상태는 검사 처리에 부가된다. 이 다음 상태는 시퀀스의 이 선행 상태에 도달하는 가장 빠른 소자들 상에 즉시, 또는 여러 프로그램 주기들의 지연 후에 부가될 수 있다. 검사 단계에서 체크되는 세트로의 상태들의 부가는 시퀀스의 다중 상태들의 나머지 세트를 통해, 가장 높은 상태가 부가될 때까지 계속된다. 게다가, 이들 레벨들에 대해 구속되어 있는 선택된 저장 소자들 모두가 이들 목표값들에 대해 성공적으로 검사하고 다른 프로그래밍으로부터 로크아웃됨에 따라, 낮은 상태들이 검사 세트로부터 제거될 수 있다.
다중 상태 메모리, 검사, 프로그래밍, 시퀀스, 비휘발성 메모리, 저장 시스템

Description

다중 상태 메모리들을 위한 스마트 검사{SMART VERIFY FOR MULTI-STATE MEMORIES}
본 발명은 반도체 비휘발성 데이터 저장 시스템 구조들 및 그 동작 방법들의 분야에 관한 것이며, 특히 프로그램 검사 방법들에 관한 것이다.
비휘발성 메모리들에 대한 다수의 구조가 이용된다. 한 설계의 NOR 어레이는 인접한 비트(컬럼) 라인들 사이에 접속된 메모리 셀들과 워드(로우) 라인들에 접속된 제어 게이트들을 가진다. 개개의 셀들은 직렬로 형성된 선택 트랜지스터를 구비하거나 구비하지 않은 하나의 부동 게이트 트랜지스터, 또는 단일 선택 트랜지스터에 의해 분리된 2개의 부동 게이트 트랜지스터를 포함한다. 이러한 어레이들 및 저장 시스템들에서의 사용 예들은 본 명세서에 참조로서 완전히 포함된 다음의 미국 특허들 및 산디스크 코포레이션(SanDisk Corporation)의 계류중인 출원들 내에 주어진다: 특허 번호 제5,095,344호, 제5,172,338호, 제5,602,987호, 제5,663,901호, 제5,430,859호, 제5,657,332호, 제5,712,180호, 제5,890,192호, 제6,103,573호, 제6,151,248호 및 제6,426,893호와 2000년 9월에 출원된 일련 번호 제09/667/344호.
한 설계의 NAND 어레이는 8, 16 또는 32와 같은 다수의 메모리 셀을 가지며, 이들 셀들은 비트 라인과 기준 전위 사이에 어느 쪽이든 선택 트랜지스터들을 통해 일련의 문자열로 접속되어 있다. 워드 라인들은 다수의 상이한 연속 문자열을 가로질러 대응하는 셀들의 제어 게이트들에 접속된다. 이러한 어레이 및 동작의 관련 예들은 2001년 6월 27일에 출원된 미국 특허 출원 번호 제 09/893,277호에 제공되어 있으며, 역시 본 발명에 참조로서 포함되어 있다.
저장 소자 데이터에 대한 다중 상태를 플래시, 전기적으로 소거 가능 및 프로그래밍 가능한 판독 전용 메모리들(EEPROMs)과 같은 비휘발성 메모리에 기록할 때, 기록 또는 프로그래밍 동작은 통상적으로, 각각의 소자가 원하는 상태에 도달할 때까지 일련의 데이터 상태들을 통해 저장 소자들의 목표된 모집단(population)으로 점진적으로 이동하도록 설계된다. 이것은 저장 소자들의 상태를 점진적으로 변경하고, 검사 처리에서 이 상태를 나타내는 파라미터를 감지하며, 아직 검사되지 않은 셀들의 상태를 원하는 최종 또는 목표 상태에 있는 것으로 더 변경함으로써 행해진다. EEPROM에서, 이것은 통상적으로, 각각의 후속 프로그래밍 펄스에 대한 조종 전압 단계(예컨대, 계단식)를 순차적으로 증가시키는 것을 사용하여 임계 전압(Vth) 레벨들(소거되거나 0 상태로부터 시작)을 증가시키는 것으로 이루어진다. 각각의 저장 소자가 기록될 Vth 데이터 상태 목표를 통과함에 따라, 기록 세션의 지속기간 동안 연관된 저장 소자들에 모두 후속 기록되는 것이 종료되어 대응하는 상태 검사 동작 동안 로크아웃된다(lock out).
검사 동작은 저장 유닛의 상태가 데이터 연관된 목표값에 비교되는 감지 또는 기록 동작이다. 이진 저장 유닛에 대해, 접지 상태를 제외하고 하나의 데이터 상태만이 있으며, 다중 상태의 경우는 부가의 상태들을 가질 것이다. 예를 들어, 각각의 저장 소자 또는 셀이 총 3-비트 또는 8개 상태를 저장하는 경우를 고려한다. 공통 셀 어레이 구조에서, 동시에 각각 기록 또는 판독되는 기록 또는 감지 그룹의 모든 셀들은 공통 제어 또는 조종(steering), 게이트로 제한될 것이다. 이러한 구현에서, 가능한 상태들(예컨대, 3-비트 예에서 상태들0, 1, 2, 3, 4, 5, 6, 7)의 범위에 걸쳐 셀들을 판독 또는 검사하기 위하여, 모든 조종 전압 감지 상태들을 통해 연속적으로(예컨대, 순차적으로) 스캐닝하는 것이 필수적이다. 예에서, 판독 동작에 대한 7개의 순차적 감지 동작이 있다. 이들은, 판독 또는 검사되는 셀들의 전체 세트 내에서 각각의 셀에 대한 8개의 가능한 상태 중 저장된 상태를 동시에 결정하기 위하여 7개의 임계 전압 판별에서 수행된다. 프로그램/검사/로크아웃 시퀀스에 적용된 판독 동작의 이러한 분류를 사용하여, 이 경우 각각의 프로그래밍 펄스는 일련의 검사 단계들(연관된 저장 상태 프로그래밍 로크아웃과 함께)로 달성되며, 이 검사 세트는 프로그래밍 가능한 데이터 상태들의 대응하는 세트와 연관되는 조종 전압 목표 Vth 레벨들의 총 세트(예컨대, 8개 상태 저장 소자에 대한 7개 세트)를 통해 순차적으로 진행될 수 있다.
도 1은 플래시형 메모리에서 8개 상태의 경우에 대한 기본적 다중 상태 프로그램/검사 동작을 예시한다. 조종 또는 제어 게이트 프로그램 전압 레벨들을 점진적으로 증가시키는 것을 포함하는 프로그래밍 펄스들은 조종 게이트 감지 전압 레벨들을 증가시키는 7 단계 검사 시퀀스로 엇갈린다(interlace).
도 2는 7개의 순차적으로 증가하는 검사 펄스 1, 2, 3, 4, 5, 6 및 7로 라벨이 붙여진 파형(103)(또한 B로 라벨이 붙여짐)에서 이 검사 연속물들을 연장한다. 이 예는 검사 레벨들 3 및 4 사이의 (변경된) 상태(즉 감지된 임계값 또는 Vth 레벨)의 저장 소자에 대한 검사의 결과들을 보여주며, 임계 전압을 직접적으로 또는 이 상태를 표시하는 다른 파라미터(예컨대, 전류 레벨)를 표시하는 점선(101)(또한 A로 라벨이 붙여짐)에 의해 표시된다. 감지 파라미터(조종 게이트 전압과 같이)에 대한 파형에서 검사 라벨들의 각각에서의 감지 결과들은 파형(105)(또한 C로 라벨이 붙여짐)에 의해 표시된 감지 스트로브에 의해 캡처된다. 이 스트로빙된 감지 검사 결과들은 파형(107)(또한 D로 라벨이 붙여짐)으로 보여준다. 검사 레벨이 저장된 전하 레벨보다 낮을 때마다, 이는, 첫 번째 3개의 검사 스트로브에 대해 보여준 바와 이 "1" 논리 레벨 펄스를 유발하고, 더 높으면 마지막 4개의 검사 스트로브에 대해 보여준 바와 같이 "0" 논리 레벨을 유발한다.
실제로, 프로그래밍 내의 각각의 단계에 대해 이러한 전체 검사 세트를 사용하는 것은, 프로그래밍 진행의 임의의 지점에서 셀들의 모집단이 미칠 수 있는 한정된 Vth 범위(또는 데이터 상태들의 범위)만 있기 때문에, 불필요하게 과다한 것이며 시간을 낭비한다(통상적으로 각각의 검사 감지 동작은 프로그래밍 펄스와 거의 동일한 시간이 걸린다). 본 설계들은 다음에 기술된 바와 같이, 한정된 슬라이딩 범위의 검사 세트 구현을 제공함으로써 이러한 특성을 이용한다.
진행 프로그래밍 방식을 사용함으로써, 단계 1에서 시작해서 단계 2로 그리 고 계속하여 단계 7까지 오름차 단계들(ascending stages)을 통해 진행함에 따라, 셀들의 모집단 내의 임계 전압들의 분포가 통계적으로 잘 반응되어 있다. 제한된 검사 세트 개념의 설명을 돕기 위하여, 데이터 상태의 상태 로크아웃을 먼저 무시한다; 즉 로크아웃이 없는 것으로 생각한다. 이렇게 주어지면, 이 진행을 위한 하나의 Vth 분포 시나리오의 예는 다음의 스냅에 기술되어 있다. 소거 상태로부터 시작하여, 셀들의 모집단은 그 모집단의 상당한 부분이 상태들 4 및 5 사이의 Vth 범위 내에 놓이는 지점에 연속적으로 프로그래밍되었다. 이 시나리오에서, 상태들 3 및 4 사이에 놓이는 상대적으로 소수의 낙오된 것(straggler)이 있고 상태 3 아래에는 Vth들이 없다. 마찬가지로, 상태들 5 및 6(즉, 상태 5로서 판독) 사이에 Vth를 가지고 미리 레이싱(racing)하는 상대적으로 소수의 셀들이 있고 상태 6 이상에서는 없다. 이러한 시나리오에서, 이 지점에서 셀들이 Vth 범위에 미치는 상태들 3, 4 또는 5에만 존재하기 때문에, 상태들 1, 2, 6 및 7에 대해 검색하는 검사 동작들을 수행하는 것은 무의미하다. 결과적으로, 현재 사용중인 방식은, 프로그래밍 시퀀스 내의 주어진 지점에서 예상된 Vth 범위를 엔벨로프(envelop)하는데 필요한 윈도우 범위에만 미치도록 Vth 검사 레벨들의 범위를 감소시킨다. (예컨대, 상기 예에서, 프로그래밍 시퀀스 내의 이 지점에서, 7개 검사의 총 세트 대신에 상태들 3, 4 및 5에 걸쳐 단 3개의 검사가 수행된다). 프로그래밍이 더 높은 임계 전압 범위들로 진행함에 따라, Vth 검사 윈도우 범위가 상향으로 슬리이딩된다. 이러한 방식으로 프로그래밍 동작은 실질적으로 속도가 상승된다. 예를 들어, 각각의 프로그래밍 펄스에 대한 시간이 각각의 검사 단계에 대한 시간에 비교 가능한 경우에, 이러한 방식은 최대 8개 단계(즉, 1개의 프로그래밍 펄스에 7개의 검사를 더함)로부터 4개의 단계(1개의 프로그래밍 펄스에 3개의 검사를 더함)까지 총 기록 시간을 절반 감소시키고 원래의(raw) 기록 속도를 2배로 한다.
이러한 처리의 예는 도 3에 예시되어 있다. 이것은 예시적 프로그래밍 처리에서 어느 상태들이 어느 상태에 체크되는지의 개략적 표현이다. 이것은 제어기에서 유지되는 룩업 테이블 또는 다른 메커니즘을 통해 구현될 수 있다. 도 3의 테이블에서, 주어진 프로그래밍 펄스 후에 검사된 다중 상태들이 격자 상의 대응하는 지점에서 체크 마크에 의해 표시되었다. 예를 들어, 첫 번째 2개의 프로그래밍 펄스 후에, 접지보다 위에서 가장 낮은 단계만(예컨대, 1 상태)이 체크되었는데, 이것은 저장 소자들이 2 상태로 쉽게 진행할 것 같지 않기 때문이다. 제 3 펄스 후에, 이 지점에서 2 상태에 도착한 셀들이 있을 수 있기 때문에 2 상태의 검사가 부가된다. 3 단계는 5번째 펄스 후에 검사 목록에 유사하게 부가된다. 1 상태로 진행하는 임의의 셀이 7번째 펄스에 의해 프로그래밍될 것 같음에 따라, 1 상태 검사는 이 지점에서 중단된다. 유사하게 2 상태는 11번째 펄스에서 중단된다.
이것이 모든 비접지 상태들(예를 들어, 3-비트 예에서 7개의 판독)을 체크하는 것에 비해 프로그래밍 펄스들 사이의 판독들의 수를 상당히 감소시키지만, 신뢰할 수 있는 기록 동작을 보장하기 위해 스캔 윈도우에 대한 충분한 보호 대역을 유지하면서 더 높은 기록 속도를 위해 감소된 스캔의 슬라이딩 윈도우 방식을 쓸모 없이 계산하는 것을 사용함으로써 다수의 문제점이 있다. 이들 문제점들은 충분한 보호 대역의 결정에 주로 관련된다. 즉, 얼마나 자주 각각의 새로운 상태를 가져와야 하는지, 각각의 상태를 중단하는 것이 언제 안전한지이다. 도 3에 예시된 검사 동작은, 온도나 전압원, 장치 수명, 또는 처리와 연관된 제조 차이들 및 다른 변동들과 같은 동작 상태들에 무관하게 메모리의 동작을 안전하게 포함시켜야 한다. 검사 동작 동안 더 작은 상태들을 체크함으로써 성능이 향상되었지만, 강력한 동작을 보장하기 위해 충분한 체크가 있어야 한다. 더욱이, 상기 감소된 스캔을 사용함으로써 저장 소자 당 상태들의 수가 증가하여 성능 개선 이점이 증가하였지만, 그것은 특히 낮은 동작 전압들에 대한 경향을 고려하여 오류에 대한 여지도 증가하였다.
한 셀씩의 데이터 상태의 상태 로크아웃으로 돌아가서, 목표 데이터(Vth) 상태가 달성되면, 각각의 셀 상의 다른 프로그래밍을 종료하는 것이 필수적이며, 목표 데이터(Vth) 상태 달성은 감소된 윈도우 Vth 스캔 내에서 발생해야 한다. 나머지 Vth들이 체크되지 않았기 때문에, 연관된 상태의 로크아웃은 특정한 프로그래밍 단계 동안 가능하지 않다. 예컨대, 상기 예에서, 데이터 단계들 3, 4 및 5를 가지 셀들만이 로크아웃될 가능성이 있으며, 데이터 상태들 1, 2, 6, 7을 가진 셀들은 특정 프로그램/검사 단계 동안 로크아웃될 수 없다). 따라서, 이 검사 속도 상승 알고리즘에 대한 기준 요건은 프로그래밍 시퀀스에서의 임의의 시간에 충분히 넓고 적당히 위치된 검사 윈도우 범위가 예상된 Vth 분포의 넓이를 포함하도록 확립된다( 이미 로크아웃된 셀들은 배제함).
불충분한 검사 스팬 윈도우의 경우에, Vth 분포의 두 끝 부분(즉, 너무 천천히 또는 너무 빨리 프로그래밍되는 두 부분)의 셀들은 실제로 적당한 Vth 레벨들을 달성하고 프로그래밍 로크아웃을 필요로 할 때는 놓칠 수 있다. 이것은 셀들이 여전히 더 높은 Vth 레벨들로 진행함에 따라(낙후된 경우에 로크아웃되지 않거나, 너무 늦게 로크아웃되지 않아서, 속도 위반된 것들에 대한 가능한 인과), 대응하는 데이터 상태 에러(즉, 기록 실패)를 불가피하게 유발할 것이다. 따라서, 감소된 Vth 스캔 윈도우 알고리즘(즉, 윈도우 크기 및 프로그램 단계가 배치에 의존)은 기록 신뢰성을 고려하지 않고 증가된 기록 속도를 달성하기 위해 주의 깊게 맞추어져야 한다.
프로그래밍 펄스 당 검사 동작들의 수를 감소시키기 위한 대안적인 기존 방식은, 2001년 6월 27일 출원되고 상기에 참조로서 포함된 미국 특허 출원 일련 번호 제09/893,277호에 대해 상술된 바와 같이, 셀 NAND 구조 당 2-비트를 위해 개발되었다(여기서, 기준 목적을 위해, 4개의 상태가 오름차 Vth 레벨에서 0, 1, 2, 3으로 표시됨).이 NAND 구현 논리에 대한 하나의 선택적 동작 모드는 다수의 섹터 어드레스를 갖는 각각의 저장 유닛을 다루며, 각각의 어드레스는 단일 저장 유닛이 하나의 섹터 어드레스 내에 다수의 비트를 저장하기보다, 저장 유닛에 2개 비트 중 하나를 저장한다. 더 높은 2개의 Vth 상태(2, 3)가 더 낮은 2개의 Vth 상태(0, 1)로 부터 위로 프로그래밍되는 경우에, 그 동작은 다음과 같다: 2개의 상태(2, 3)로 목표된 셀들이 먼저 프로그래밍되고, 2개의 더 높은 상태 중 더 높은 Vth(즉, 상태 2)로 로크아웃된다. 이것은 각각의 프로그래밍 펄스들 후에 단일 검사-2 동작만을 사용하고, 이들이 검사-2 레벨을 통과함에 따라 두 2들 및 3들의 다른 프로그래밍을 로크아웃하여 달성된다. 모든 2들 및 3들이 그렇게 로크아웃되었으면, 3들은 자동적으로 로크아웃되지 않고, 프로그래밍 시퀀스가 3들에 대해 재시작되었지만 검사-3 레벨에서 단일 검사 동작 세트를 가진다. 2 및 3 상태들의 동시 프로그래밍 동안 2들만의 검사와 함께 변동이 시작된다. 3 상태의 검사는 프로그래밍 펄스들의 미리 결정된 수 후에 부가되고, 2들 검사는 그로부터 완료될 때까지 3들 검사만 남겨두고 결국 중단된다. 이 처리의 다양한 양상들은 미국 특허 번호 제5,920,507호에 더욱 상세히 논의되며, 본 명세서에 참조로서 포함되었다.
이러한 방식은 목표된 Vth 레벨(즉, 상태)에서 단일 검사를 사용하여 목표 Vth 레벨과 같거나 이보다 더 큰 Vth에 대해 목표된 모든 셀들을 로크아웃함으로써 다중 상태 저장의 더 큰 레벨들로 연장될 수 있다(예컨대, 저장 소자 당 8개의 상태를 저장). 모든 셀들이 그렇게 로크아웃되면, 동작은 다음의 더 높은 Vt 상태 또는 이를 넘어 목표된 셀들에 대해 반복되어, 가장 높은 데이터 상태에 목표된 셀들이 대응하는 검사 목표를 통과할 때까지 이 루프를 반복한다.
이 방식을 이용함으로써, 단일 검사 펄스는 검사 시간들이 프로그래밍 시간보다 우세한 시스템들에서 명확히 각각의 프로그래밍 펄스 동작과 함께 요구되고, 그에 의해 최적의 기록 성능 솔루션을 제공한다. 그러나, 단일 펄스 프로그래밍 시간들이 단일 검사들의 시간들에 비교 가능한 시스템들에 대해, 통상적으로 기존 크기의 저장 FLASH 메모리들에 대해, 상기 방식은 2개의 이유로 인해 기록 성능을 실제로 감소시킨다: (1) 검사되는 상기 상태들에 대해 목표된 셀들의 프로그래밍 진행은 조기에 불필요하게 중단되어, 후속 Vth 프로그래밍 단계들에서 부가의 프로그래밍 시간을 지시하여 이 이른 종료에 의해 진행 손실을 유발한다; (2) 다음의 더 높은 상태의 회복시 초기 프로그래밍 상태들(예컨대, 조종 또는 제어, 게이트 전압 계단식 시작 레벨)은 이전 프로그래밍 시퀀스의 끝에서 멈춘 낮은 값으로 낙오(drop-back)되어야 한다. 이 낙오는, 모집단의 각각의 셀이 이전에 로크아웃된(그리고, 대응하는 레벨로부터 각각의 셀이 프로그래밍을 다시 시작해야 하는) 특정하고 적절한 레벨이 단일 프로그램 시작 상태에서 모집단으로서 셀들에게 더 이상 적용될 수 없기 때문에, 셀들이 목표 범위를 초과하지 않도록 보장하기 위하여 필수적이다. 최상의 시작 상태는 가장 빠른 프로그래밍 셀과 연관된 것(즉, 로크아웃되어야 할 그룹에서 제 1 셀에 대한 프로그래밍 전압 세트)으로 감소되어야 하고, 그에 의해 나머지 셀들에 대한 프로그래밍 펄스들의 감소된 수를 증가시킨다. 안전한 여지를 위해, 시작 전압은 최적 레벨보다 다소 아래로 감소되어야 하고, 프로그래밍 펄스들의 수를 증가시켜 기록 성능을 더 저하시킨다. 이러한 방식은 또한, 신뢰할 수 있는 기록과 성능을 균형 맞추는 로크아웃(즉, 비지능적/적응적) 값(이 경우, 프로그래밍을 재시작하기 위해)을 제안하는 문제를 재도입할 수 있다. 증가된 기록 속도에 찬성하여 너무 과격하게 밀고 나가면, 이것은 프로그래밍 상태를 초과하는 위험을 가지며, 반면 너무 신중하면, 기록 속도에 손해가 생긴다.
기존의 프로그램/검사 방법들의 제한들의 관점에서, 다음의 섹션은 빠른 기록 성능의 조합된 요건을 적응적으로/동적으로 만족시키면서 기록 신뢰성을 보장할 수 있는 개선된 방법을 논의한다.
본 발명의 하나의 주요 양상에 따라, 간단히 일반적으로, 다중 상태 메모리들은, 다중 상태 메모리들은 시퀀스-상태 기반 검사 구현들을 위해 다중 상태 검사 범위의 검사-결과 기반의 동적 조정하는 "스마트 검사" 기술을 사용하여 프로그래밍된다. "스마트 검사" 기술은 순차적으로 검사된 다중 상태 메모리 구현들 내에서 신뢰할 수 있는 동작을 유지하면서 다중 상태 기록 속도를 증가시킬 수 있다. 이것은 기록 시퀀스의 각각의 프로그램/검사/로크아웃 단계에 대한 순차적 검사 동작들의 수를 최소화하기 위해 "지능형" 수단을 제공함으로써 달성된다. 예시적 실시예에서, 검사 스캔 범위 내에 포함되는 가장 높은 데이터 상태 레벨에서 데이터 비상태 검사뿐만 아니라, 검사 스캔 범위 내에 포함되는 가장 낮은 데이터 상태에 대한 모든 셀 로크아웃 상태를 통해 가장 빠른 프로그래밍 셀을 검출하기 위해 모집단 이동을 모니터링함으로써(그에 의해 가장 느린 프로그래밍 셀들을 포함함), 임계 전압 스캔 윈도우의 스캔의 낮고 높은 끝 부분들이 신뢰할 수 있게 확립될 수 있고 부가의 불필요한 검사 동작들로부터 최소한의 시간을 소모할 수 있다.
선택된 저장 소자들의 프로그램/검사 시퀀스 동안 다중 상태 메모리에 대한 기록 시퀀스의 예시적 실시예에서, 처리의 시작시, 선택된 저장 소자들이 프로그래밍되는 다중 상태 범위의 가장 낮은 상태만이 검사 단계 동안 체크된다. 예를 들어, 저장 소자들은 플래시 EEPROM 메모리의 메모리 셀들이 될 수 있고, 프로그래밍 전압으로 펄스화되고 진행을 모니터링하기 위해 후속적으로 감지된다. 하나 이상의 선택된 소자에 의해 제 1 저장 상태에 도달되면, 다중 상태들의 시퀀스의 다음 상태는 검사 처리에 부가된다. 이 다음 상태는 시퀀스의 이 선행 상태에 도달하는 가장 빠른 소자들 상에 즉시, 또는 여러 프로그램 주기들의 지연 후에 부가될 수 있다. 지연량은 로크아웃될 수 있거나, 바람직하게 파라미터 기반 구현을 사용할 수 있어서, 지연량을 장치 특성들에 따라 설정되도록 허용한다.
검사 단계에서 체크되는 세트로의 상태들의 부가는 시퀀스의 다중 상태들의 나머지 세트를 통해, 가장 높은 상태가 부가될 때까지 계속된다. 유사하게, 이들 레벨들에 대해 구속되어 있는 선택된 저장 소자들 모두가 이들 목표값들에 대해 성공적으로 검사하고 다른 프로그래밍으로부터 로크아웃됨에 따라, 낮은 상태들이 검사 세트로부터 제거될 수 있다. 부가적으로, 적절히 프로그래밍될 수 없는 이전에 식별된 결함이 있는 셀들은 프로그램/지능적 검사 동작에 대한 영향을 제거하여 (예를 들어, 초기에 그들을 로크아웃함으로써) 맵핑될 수 있다.
본 발명의 부가의 양상들, 특징들 및 이점들은 다음 설명의 예시적 실시예들에 포함되어 있으며, 이 설명은 첨부 도면을 참조하여 읽어야 한다.
도 1은 점진적으로 더 높은 조종 프로그램 전압과 교대하는 총 7개 검사 시 퀀스를 보여주는 프로그램/검사 파형 시퀀스를 도시한 도면.
도 2는 총 순차적 7-단계 검사 시퀀스를 도시한 도면.
도 3은 주어진 프로그래밍 펄스 후에 상태들이 검사되어야 하는 룩업 테이블의 예를 도시한 도면.
도 4는 본 발명의 예시적 실시예의 흐름도.
도 5a 및 도 5b는 본 발명의 2개의 실시예의 시뮬레이션에서 각각의 프로그래밍 단계 다음에 인가된 검사 펄스들의 수를 도시한 도면.
도 6은 도 5b의 실시예에서 사용된 검사 펄스들의 수의 범위에 대한 발생들의 분포를 도시한 도면.
도 7은 로크아웃 후의 프로그래밍 상태들에 대한 결과 시뮬레이션의 임계 분포들을 도시한 도면.
도 8은 프로그래밍 상태들의 각각을 로크아웃하기 직전에 프로그래밍 단계들에서 아직 로크아웃되지 않은 셀 모집단에 대한 결과 시뮬레이션의 임계 분포들을 도시한 도면.
도 9는 누적적 프로그래밍 펄스들의 수의 함수로서 대응하는 검사/로크아웃된 상태들로 프로그래밍될 셀들의 수를 도시한 도면.
도 10은 프로그램 관련 검사/로크아웃 구현을 개략적으로 도시한 도면.
도 11은 스마트 검사 동작을 예시하는 감소된 순차적 7 단계 검사 시퀀스를 도시한 도면.
도 12는 스마트 검사 동작의 높은 전압의 끝 부분을 확립하기 위한 피크 검 사 레벨 검출 및 응용을 개략적으로 도시한 도면.
도 13은 스마트 검사 동작의 낮은 전압의 끝 부분을 확립하기 위한 최소 검사 레벨 검출 및 응용을 개략적으로 도시한 도면.
본 발명의 다양한 양상들은 비휘발성 메모리 시스템들에서 일반적으로 응용 가능하다. 하기뿐만 아니라 기술 배경의 설명이 EEPROM 플래시 메모리 실시예에 의해 주로 주어져 있지만, 메모리 어레이에서 사용되는 특정 형태의 저장 유닛이 본 발명에 제한되지 않는다. 저장 소자들이 판독, 기록되고 데이터를 저장하는 특정 방법들은 본 발명의 주요 양상들에 들어가지 않으며, 셀 검사/프로그래밍 종료 동작에 의해 셀을 수행하기 위해 상태의 상태들을 통해 순차적 검사를 하는 임의의 다양한 비휘발성 및 휘발성 시스템들이 사용될 수 있다.
주요 양상에 따라, 본 발명은 신뢰할 수 있는 최소 시간 소모하는 다중 상태 기록 동작을 순차적 검사 구현으로 확립하기 위하여 다중 상태 검사 범위의 검사 결과 기반의 동적 조정을 사용한다. 이것은 다중 상태 저장의 순차적 감지/검사를 위한 적절한 기록 신뢰성을 유지하면서 높은 속도의 검사 알고리즘을 제공한다. 예를 들어, 상태 0으로부터 다중 상태 저장 소자들을 상태들 1, 2 등으로 순차적으로 프로그래밍할 때, 초기 단계에서 1 상태만 검사될 것이다. 빠른 프로그래밍 셀들이 1 상태에서 검사를 시작할 때, 상태 2는 검사 상태 범위에 부가되어, 아마도 파라미터 기반이 될 수 있는 다수의 프로그램/검사 주기를 지체할 것이다. 다른 상태들은 유사하게, 더 높은 상태 레벨들로 프로그래밍이 진행함에 따라 검사 세트에 부 가될 수 있다. 이들 더 낮은 레벨들에서 설정되도록 목표된 저장 소자들의 총 세트가 그렇게 확인되면 더 낮게 놓인 검사 레벨들이 제거될 수 있다. 따라서 동적 조정에 기초한 이러한 검사 결과들은 검사들의 최소 수를 허용하면서 적당한 검사 범위 커버리지를 보장함으로써 배경 기술에 기술된 감소된 스캔의 보호 대역 슬라이딩 윈도우 방식을 쓸모 없게 계산하는 것을 개선한다. 일반적으로 말해서, 상태들의 수가 클수록 본 발명에 의해 실현되는 개선이 크다.
본 발명의 다양한 양상들은 배경 기술에서 참조로서 포함된 다양한 비휘발성 메모리들로 구현될 수 있다. 감지 처리들에 대한 더욱 세부 사항들은 2000년 9월 27일자 출원된 미국 특허 출원 일련 번호 제09/671,793호, 2002년 1월 18일자 출원된 일련 번호 제10/052,888호, 및 2002년 1월 18일자 출원된 제10/052,924호에 제공되어 있으며, 이들은 본 명세서에 참조로 포함되었다. 예시적 실시예는, 임계 전압이 부동 게이트형 메모리 셀의 관련 물리적 양일 때 전압값들을 검사하는 것에 관하여 기술되었지만, 전류 또는 주파수와 같은 저장 소자의 상태를 표시하는 다른 파라미터들의 사용에 기초하여 검사가 이루어질 수 있다. 다수의 이러한 변동이 참조로서 기술되어 있다. 더욱이, 본 발명의 다양한 양상들은 본 명세서에 참조로서 포함된 미국 특허 번호 제5,532,962호의 사용에 더 기술되어 있는 바와 같이, 판독 및 검사 마진들의 사용과 함께 조합될 수 있다.
검사 결과 기반 방식의 기본 개념은 셀들의 모집단의 프로그래밍의 진행에 관련된 정보를 제공 및 사용하고, 그에 의해 Vth(또는 다른 파라미터) 스캔 윈도우 에 대한 적절하고 신뢰할 수 있는 스팬을 동적으로 확립하는 것이다. 소거 또는 접지 상태(상태 0)로부터 시작하여, 유용한 정보의 제 1 조각은 가장 빠른 프로그래밍 저장 소자 또는 프로그래밍되는 셀 또는 셀들의 세트가 그 세트의 다음의 가장 낮은 데이터 상태(예컨대, 상태 1)의 목표 Vth를 교차할 때(즉, 피크 Vth 검출기의 개념을 따름) 알려진다. 따라서, 이러한 교차가 검출될 때까지, 이 가장 낮은 레벨에 대해 단일 검사 통과는 각각의 프로그래밍 펄스를 동반해야 한다. 이 점까지, Vth 검출의 데이터 상태 양상은 실패되는 것이 바람직하며, 즉, 대응하는 목표 데이터 상태들에 무관하게, 셀들이 총 모집단은 피크 임계 전압 검출에 참여한다고 할 수 있다. 달리 말하면, 이 정보는 가장 빠른 셀의 목표 상태에 무관하게 알려져야 한다. 일단 검출되면, 데이터 상태의 검사 및 로크아웃은 이 값보다 위의 데이터 상태들의 제한된 범위(예컨대, 이 가장 낮은 레벨보다 위의 한 검사 Vth 단계까지)에 대해 수행된다.
이 처리를 계속하여, 유용한 정보의 다른 조각은 이 가장 낮은 데이터 상태에 대해 목표된 모든 셀들이 실제로 검사/로크아웃을 완료한다는 결정이다. 이것이 알려지면, 검사 동작은 가장 낮은 상태가 더 이상 필요하지 않고 안전하게 소거될 수 있도록 하기 위한 것이다. 이것은 다음의 더 높은 Vth 데이터 상태까지 Vth 스캔 윈도우의 하부를 상향 이동시킴(shifting up)을 시그널링한다; 예를 들어, 상태들 1, 2, 3이 검사되었으면, 이것은 상태들 2, 3으로 이동시킨다. 이 전략은 기존의 가장 낮은 상태 검사에서 목표된 셀들의 각각의 모집단이 연관된 검사/로크아웃을 완료할 때까지 계속될 수 있다. 이것은 검사 범위의 하부 끝 부분을 검사하기 위한 시간 소모를 쉽게 제거할 수 있는 방법뿐만 아니라, Vth 윈도우 스캔을 동적으로 위치시키기 위한 범위(gauge)를 제공한다.
더 높은 상태 검사를 증가시킬 때를 결정하기 위해서만 이러한 낮은 상태 제거 조건을 사용할 수 있는 가능한 방식이 있다. 그러나 이 방식에서 Vth 스캔의 상기 결정된 높은 끝 부분 범위를 넘어 레이싱한 초과적으로 빠른 프로그래밍 셀들의 위험은 여전히 존재하고, 그에 의해 로크아웃을 제공하기 위한 기회를 놓친다. 이 위험을 감소시키기 위해, 한가지 선택은 Vth 스캔의 높은 범위에 보호 대역을 부가하고, 그에 의해 이러한 발생의 가능성을 감소시키는 것이다. 그러나, 이러한 방식의 희생은 높은 Vth 끝 부분에서 빈번한 불필요한 검사들로 인해 기록 성능이 감소된다.
이러한 문제를 완전히 회피하기 위한 방법은 임의의 주어진 시간에 가장 높은 셀 Vth에 관련된 정보를 제공하는 것이다. 이것은 상기 도입된 개념이다; 즉, 목표 데이터와 무관하게, 총 셀 모집단의 가장 빠른 프로그래밍 셀이 주어진 Vth 검사 레벨을 교차할 때를 결정하기 위한 수단(피크 Vth 검출기). 체크될 가장 높은 Vth 범위(모집단 Vth 분포에 존재할 것으로 예상되는 것보다 더 높은 하나의 상태에 미쳐야 함)로 임의의 시간에 적용된 이 수단으로, 이러한 교차가 시그널링되면, 검사 Vth 높은 끝 부분은 다음의 더 높은 레벨로 증가된다. 이 수단은 다음 펄스 후의 새로운 레벨에서 반복된다. (상술한 바와 같이, 이 가장 빠른 셀 또는 셀들에 대한 목표된 데이터가 전술된 가장 높은 검사 레벨과 사실상 일치한다면, 그들은 마찬가지로 로크아웃될 것임을 주지한다). 이러한 방식으로, Vth 스캔 범위의 하부 끝 부분으로, Vth 스캔 범위의 상부 끝 부분은 프로그래밍 시퀀스에서 임의의 시간에(즉, 단계) 가장 빠른 프로그래밍 셀에 관련된 정보에 기초하여 마찬가지로 적응적으로 조정된다. 더욱 일반적으로, 검사 스캔 윈도우로의 더 높은 상태들의 부가는 이들 더 낮은 상태들이 완전히 로크아웃됨에 따라 더 낮은 상태 검사들을 제거하는 처리와 무관한 처리이다.
일견, 이 피크 Vth 검출기는 높은 끝 부분에서 하나의 부가의 검사를 강요함으로써 기록 속도를 감소시키는 것으로 나타나며, 이 목적에 의해, 대부분의 시간이 연관된 Vth를 찾지 않는 것을 목표로 한다; 그러나, 기존의 슬라이딩 윈도우 방식에 대한 신뢰할 수 있는 기록 동작을 보장하기 위한 대안적인 블라인드 보호 대역이 더 넓은 윈도우 엔벨로핑을 지시할 것 같기 때문에, 긴 실행에서 그 자체를 위해 치른다.
동작을 더욱 개선시키기 위한 대안은 선행 상태에서 급속한 프로그래밍 상태를 검사할 때 다음 상태를 검사 세트에 즉시 부가하지 않는 것이다. 설계에 의해(예컨대, 조종 게이트의 프로그램 전압 계단에 의해 결정되는 바와 같이) 다음의 더 높은 상태 레벨에 도달하기 위하여 가장 빠른 프로그래밍 셀들에 대한 다수의 프로그램 펄스를 공통으로 취할 것이므로, 다음의 더 높은 검사 레벨을 포함하도록 서두를 필요가 없다. 예를 들어, 설계에 의해, 한 저장 상태에서 다른 저장 상태로 진행하기 위해 4개의 프로그래밍 펄스가 걸린다면, 다음 검사 레벨을 부가하기 전에, 피크 검출 지점을 넘어서 하나 또는 두 개의 프로그램 펄스를 안전하게 대기할 수 있다. 실제의 지체량은 로크아웃될 수 있거나, 예시적 실시예에서 파라미터 기반 구현을 사용할 수 있을 것이다. 파라미터는 동작 상태들, 장치 수명 및 충분한 안전 마진을 허용하면서 성능을 개선시키기 위한 다른 요인들에 따라 설정될 수 있다. 하기에 기술될 시뮬레이션 예로, 이 지체는 수용할 수 없는 위험을 초래하지 않고 기록 속도를 부가의 10% 정도 얻을 수 있다.
이러한 방식을 위한 전체 시퀀스는 기존의 구현들에서와 같은 완료로 발생하며: [1] 로크아웃된 모든 셀들의 초기에서, 또는 [2] (계단식) 프로그래밍 시퀀스의 끝 부분에서 종료하며, 이 경우, 이 상태를 시그널링하는 플래그가 발생한다. 특정한 실시예에 대한 이러한 방식의 시뮬레이션 기반 성능은 하기에 상세히 기재되며, 상술된 종래 기술의 검사 펄스 감소 방식들의 위험들(즉, "비지능적")을 발생하지 않고 원래의 기록 속도를 2배로 한다.
도 4는 본 발명의 예시적 실시예에 대한 흐름도이며, 프로그래밍될 메모리의 부분이 선택되는 단계(201)에서 시작한다. 이것은 메모리 구조에 적절한 하나 이상의 기록 단위가 될 것이며, 기록 단위는 본 명세서에서 페이지로서 참조된다. 기록될 저장 소자들이 선택되면, 이 소자들은 통상적으로 데이터 비상태의 사전 기록 조정 단계(210)의 처리를 받는다.
단계(210)는 데이터 기록을 위해 준비된 선택된 저장 소자들을 얻기 위해 소프트 프로그래밍, 사전 프로그래밍, 소거, 소프트 소거, 및/또는 다른 조정 단계들(저장 유닛 형태에 적절한 것)을 선택적으로 포함할 수 있는 대표적 소거 처리이다. 명세서에서 보여주는 예시적 실시예는 단계들(211, 213, 215 및 217)을 포함한다.
단계(211)는 때때로 사용되는 사전 프로그래밍 처리이며, 여기서, 예를 들어 저장 소자 마모를 한결같게 하고 소거를 위한 더 균일한 시작 지점을 제공하기 위해, 소거에 앞서, 모든 대응하는 워드 라인들을 올림(raising)으로써 어드레싱된 저장 소자들에 비-데이터 의존 프로그래밍이 주어진다. 단계(213)는 상기 포함된 인용 참조들에 기술된 소거 처리로서 사용되는 저장 유닛의 형태에 적절하다. 특정 예는 미국 특허 번호 제5,095,344호에 개시된 플래시 EEPROM 메모리에 적합한 스마트 소거 처리이다. 단계(215)는 소거 저장 유닛들을 실제 기록 단계에 대한 더 균일한 시작 범위로 들어가도록 설계된 임의의 소프트 프로그래밍 또는 유사한 동작들이다. 임의의 저장 유닛들이 소거 동안(또는 검사를 특징으로 하는 경우 소프트 프로그래밍 동안), 유닛들은 단계(217)에서 논리적 어드레스 공간에서 맵핑되고 적절하게 동작하는 저장 유닛들에 의해 대체될 수 있다. 다시, 실제 단계들 및 단계(210)에 대한 실행은 특정 메모리 및 그 요건들에 따라 변할 것이다.
이 점에서, 메모리는 기록 단계를 위해 준비된다. 기록 단계(220)는 저장 소자의 데이터 상태를 나타내는 파라미터의 레벨에 대한 일련의 점진적 변경들을 유 발하고, 그 결과가 검사되고, 저장 소자들이 목표 데이터 상태들에 검사함에 따라, 저장 소자들은 그 처리로부터 제거된다. 이 처리는 종래 기술에서 알려진 바와 같이 광범위하지만, 단계(221)에서 종래 기술과 상이하다.
전하 저장 메모리 소자(예컨대, EEPROM 또는 플래시)의 예시적 실시예에 대해 단계(221)의 초기 검사 범위의 설정에 따라, 실제 기록은 단계(223)에서 프로그래밍 펄스로 시작된다. 펄스는 본 기술 분야에 알려진 바와 같이, 루프(220)의 각각 반복으로 지속기간, 전압 레벨 또는 둘 다에서 변할 수 있다. 제 1 검사 전에 여러 개의 초기 펄스가 있을 수 있으며, 특정 수는 파라미터 기반 구현이 될 수 있다. 단계(225)는, 가장 낮은 프로그래밍 상태만을 초기에 포함하여, 검사될 상태들에 대한 레벨들의 목표된 범위에 걸쳐, 검사 레벨들에 대한 이전 펄스에서 펄스화된 소자들 각각의 상태를 감지한다. 각각의 검사 레벨에서, 연관된 데이터 목표값에 대해 각각의 소자의 측정된 파라미터를 비교한다. 이러한 방식으로, 이들 소자들 각각은 루프(220)의 반복을 위해 확립된 검사 상태들의 범위에 걸쳐 비교된다: 종래 기술에서, 이것은 가능한 상태들 모두를 포함할 수 있거나, 배경 기술 섹션에 기술된 바와 같이, 룩업 테이블 또는 유사한 구현을 사용하여 루프 반복들의 수에 기초한 서브세트로 이루어질 수 있다. 본 발명의 원리 양상에 따라, 사용된 검사 레벨들의 세트는 단계(221)에서 이전 반복의 검사 결과들에 의해 결정된다. 상태들의 초기 검사 세트는 가장 낮은 상태만 취해질 수 있거나 검사들이 없는 경우에도 가능하며, 설정 가능한 파라미터에 기초할 수 있다. (본 논의에서 검사 설정이 목표값들의 전체 세트의 적절한 서브세트로서 취해지지만, 서브세트가 전체 세트와 일치하는 경우들, 특히 다중 상태들의 수가 작은 경우가 있을 수 있다.)
단계(227)에서, 목표 상태에 대한 검사 상태를 통과하는 모든 소자들이 로크아웃된다. 단계(229)는 프로그래밍되는 소자들 모두가 목표 데이터값들에 검사되었는지 여부를 결정한다. 검사되었다면, 처리는 단계(231)에서 종료한다: 검사되지 않았다면, 처리는 단계(221)로 복귀된다. 더욱 일반적으로, 일부 소자들은 단계(229)에 결정된 대로 프로그래밍되지 않을 수 있어서, 기록 에러를 유발하며, 이 경우, 불량한 소자들 또는 블록들이 맵핑될 수 있다.
단계(221)는 로크아웃 상태가 이러한 결정에 사용되는 범위까지 단계(225)뿐만 아니라 단계(227)의 결과들에 기초하여 다음 검사 동작에 어느 상태들이 포함되는지를 결정한다. 상술된 바와 같이, 이것은 본 발명의 주요 양상이다. 도 3에 대해 배경 기술 섹션에 기술된 실시예의 룩업 테이블 형태가 어느 상태들이 다음 검사 동작에 포함되는지를 이 단계에서 결정할 수 있지만, 이 경우, 기록 처리(220)에서 루프의 흐름 반복에 전적으로 기초하여 결정이 이루어질 수 있는 반면, 본원에서는 단계(225)(및 잠재적으로 단계(227))의 검사 결과에 기초한다. 단계(225)의 결과들에 의존하여, 단계(221)는 필요시 검사될 더 높은 상태들을 부가한다. 마찬가지로, 단계(227)를 참조하여, 더 낮은 상태들로 프로그래밍되는 소자들이 모두 검사되고 로크아웃될 때(또는 불량한 셀들로 결정되고 맵핑됨) 더 낮은 상태 검사들을 제거한다. 검사 설정이 단계(221)에서 재확립되면, 처리는 다시 단계(223)로 계속된다.
도5 내지 도 9는 는 예시적 메모리 실시예에 대한 "스마트 검사" 처리의 시 뮬레이션 결과들을 도시하며, 여기서 저장 유닛은 8개 상태를 저장하는 메모리 셀이다. 이 방법이 구현될 수 있는 비휘발성 메모리의 특정 예는 미국 특허 제5,712,180호, 제6,103,573호 및 제6,426,893호와 미국 특허 출원 일련 번호 제09/667,344호에 개시되어 있으며, 모두 상기 참조로서 포함되었다. 예시적 실시예에 대한 더 세부 사항들은 시뮬레이션의 설명을 따른다.
"스마트 검사" 알고리즘은 접지 또는 소거(0) 상태로부터 의 1500개의 8-상태 셀의 모집단을 목표된 프로그램 데이터 상태들(1,2,3,4,5,6,7)로 이동시키기 위해 시뮬레이션되었다. 이 시뮬레이션을 용이하게 하기 위해, 모든 전압 레벨들이 임의 단위들로 주어지고, 상태들(1, 2, 3, 4, 5, 6, 7)에 대한 목표 임계 전압 "Vth" 레벨들은 각각 값들(2, 3, 4, 5, 6, 7, 8)로 설정된다. 전체 모집단에 대한 시작 Vth 분포는 0.25에 중심을 두고 -1 내지 +1/2에 미치는 초기 Vth를 유발하는 0.22의 1-σ값을 가진 정규 분포가 되도록 설정되었다. 프로그래밍 단계 당 평균 프로그래밍 속도는 0.25로 설정되어 약 4 단계에서 한 상태에서 다른 상태로 이동하는 셀들을 유발한다(그리고 그에 의해 1 단계 값 근처로 한정되도록 각 프로그래밍된 상태에 대해 전체 로크아웃된 분포를 허용한다). 그러나, 일부 작은 셀 대 셀 변동을 반영하기 위하여, 속도들의 확산이 포함되었고, 평균 0.25속도 값에 중심을 두어 0.015인 1-σ값을 가진 정규 분포를 따라, 단계 당 0.2 내지 0.3 △Vth 범위에 미치는 속도들을 유발한다. 전체 시뮬레이션을 통하여, 임의의 주어진 셀에 할당된 속도 값은 변하지 않은 채 남아 있었다. 주어진 셀에 대한 일정한 속도 값의 가정 은 모든 저장 기술들에 적용될 수 있는 것이 아니라, 본 발명을 실시하기 위해 필요하지 않은 어떤 경우에 적용될 수 있음을 주지해야 한다.
실제로, 프로그래밍 파형의 각 후속 단계에 대해 균일하게 증가하는 계단식 전압(예를 들어, 예시적 메모리 구조에 조종 전압에 인가됨)을 사용할 때, 모든 셀들의 평균 프로그래밍 속도는 다소 동일할 것이다. 이 속도는 안정된 상태의 프로그래밍 상태가 통상적으로 첫 번째 6개의 프로그램 펄스 내에 도달되었으면, 상기 계단식 프로그램 전압 단계의 전압과 거의 일치할 것이다. 따라서, 속도들의 인위적 확산의 사용은 실제로 발생하는 것보다 더 나쁜 경우의 상태가 될 것이다. 이러함에도 불구하고, 알 수 있는 바와 같이, 스마트 검사 방법론에는 어떠한 문제도 없다.
시작 Vth의 할당들, 목표 데이터 상태 및 1500개 셀 모집단의 각각의 셀에 대한 속도는 난수 기반 셔플링을 통해 Vth 분포, 데이터 상태 및 속도 할당들에 대한 셔플링과 무관하게 행해졌다. 8개 상태 각각에 할당된 셀들의 수는 대충 동일했다(평균 상태 당 ~188개 셀). 프로그래밍된 셀들의 전체 모집단(즉, 0으로 로크아웃되는 상태들(1,2,3,4,5,6,7))은 "스마트 검사" 시퀀스 및 기준을 사용하여 프로그램 검사 시퀀스를 통해 이동되었다. 이 시뮬레이션의 결과들은 도 3 내지 도 7에 도시되어 있다.
도 5a의 그래프는 스마트 검사 알고리즘 당 각각의 프로그래밍 단계 후에, 셀 모집단에 인가된 단계들(303) 또는 검사(vfy) 펄스들의 수를 도시하고 있다. 또 한, 아직 로크아웃되지 않은 셀 모집단의 최소(Vt_min, 304) 및 최대(Vt_max, 305) Vth들뿐만 아니라, 각 프로그램 단계 후에 인가된 낮은(Vfy_lo, 301) 및 높은(Vfy_hi, 302) 검사 전압 레벨들이 도시되어 있다. 이 처리는 임계값들이 위로 이동을 시작하기 전에 셀들을 안정한 상태로 가져오기 위해 다수의 펄스로 시작된다. 첫 번째 수 개의 프로그램 펄스는 Vth 분포가 검사 지점까지 프로그래밍되는 동안 가장 낮은 상태 검사만을 필요로 한다. 그 후, 검사들의 수가 증가하여, 2개 내지 3개의 검사 펄스 레벨 주위에 달하고, 마지막 수 개의 상태들이 대응하는 목표들로 프로그래밍될 때(약 프로그램 펄스 수 37에서 모든 상태들이 검사 및 로크아웃됨), 하나의 검사 상태를 향해 아래로 떨어진다. 이 시퀀스를 통해, 순차적 검사 스캔들의 낮고 높은 검사 한도들은 스마트 검사 논리 기준 당 적절하고 최적의 데이터 상태 Vth 범위로 지능적으로 쉽게 미칠 수 있도록 하기 위해 적응적으로 조정된다(모든 가장 낮은 상태 셀들 검사/로크아웃된 상태 및 피크 Vth 검출 기준 각각에 기초함).
이러한 지능형 검사 스캔 방법의 효용은 발생하는 것의 복잡성을 볼 때 분명하다. 예를 들어, 2개의 검사가 충분한 시간을 가지더라도, 3개의 검사를 하기 위한 일부 시간이 또한 필요하고, 또한 기록 실패의 위험 없이, 발생에 대한 4개 레벨 검사가 필요할 수도 있다. 더욱이, 임의의 엄격히 제어된 비적응적 쓸모 없는 계산 구현은 문제없이 Vfy_lo 및 Vfy_h(즉, 슬라이딩 검사 윈도우)의 최적의 전이들(transitions)을 정확하게 따를 것 같지 않다. 따라서, 신뢰할 수 있는 기록 동 작을 보장하기 위하여, 도 3에 대해 기술된 비적응적 검사 윈도우 범위는 프로그래밍 펄스 당 4 내지 가능하게 5개 검사 레벨로 보호 대역이 되어야 할 것이고 이는 실질적으로 성능 이점을 저하시킨다. 더욱이, 프로그래밍 시퀀스의 초기 및 최종 부분들에서 보다 소수의 검사들(하나의 검사 레벨로 내려 감)을 사용하기 위한 적응성 방법의 능력과 적극적으로 일치하기 위한 능력은 비적응성 구현에서 계획하기 어렵다.
도 5a의 실시예는 다음 검사 세트를 검사 세트에 부가하기 전에 검사된 기존의 최대 상태에서 가장 빠른 프로그래밍 셀들의 검사 다음에 2개의 프로그램 단계의 지연을 포함한다. 예를 들어, 프로그램 단계(5)에서, Vt_max 라인(305)은 이동하기 시작하여 단계(5)에서 상태 1의 "전압"=1 라인을 교차한다; 그러나, 2 상태가 단계(9)에서 검사 세트에 부가되는 다른 2개 단계에 대해 단 1 상태만이 검사되며, 이는 이 지점에서 최대 2까지 위로 이동하는 검사들의 수(#Vfy 펄스들, 303)로 도시되어 있다. 전체 처리는 단계(37) 후에 완료되어, 초기 5개의 프로그램 단계를 포함한다.
도 5b는 도 5a와 유사하지만 상태를 검사 세트에 부가하기 전에 지연하지 않고 초기 5개 프로그램 단계 없는 실시예에 대한 것이다. 예를 들어, Vt_max 라인(305)이 단계 2에서 상태 1의 "전압"=1 라인을 교차한 후에, 2 상태는 지연 없이 다음 검사 세트에 부가된다. 이 경우에, 처리 대부분 동안, 4개 검사의 임시 필요에 따라 단계 당 3개의 검사가 있다. 이 처리는 83 대신 총 100개 검사를 요구하여(비교를 위해 도 5a의 초기 4개의 펄스가 무시되는 경우) 도 5a의 것만큼 빠르지 않다. 도 5b의 실시예는 도 4 내지 도 7에 대해 더 논의된다.
도 6은 도 5b의 실시예에서 사용되는 검사 펄스 수의 범위에 대한 발생들의 분포를 도시한다. 3-검사 상태가 1/2 시간을 우세하지만, 2개 검사로 떨어지는 능력은 4개 검사까지 증가하기 위한 필요대로 약 1/4 시간 발생한다. 평균적으로, 프로그래밍 펄스 당 약 2.7 검사가 필요하고, 도 5a의 실시예에 대해 2.5 이하까지 떨어지는 것을 도시하고 있다. 하나의 프로그램 동작(또는 단계)을 수행하기 위해 필요한 시간이 하나의 검사 동작에 대한 시간에 비교 가능하다고 가정하면, 도 5b의 예에서, 스마트 검사 알고리즘은 전체 프로그램 시간을 총 7-단계 검사가 필요한 시간의 46%까지 안전하게 감소시킬 수 있다. 따라서, 원래의 프로그래밍 속도가 대략 2배가 된다.
도 7은 도 5b의 실시예에 대해, 시작 소거 또는 0 상태 분포뿐만 아니라 로크아웃 후에 7개 프로그램 상태 각각에 대한 결과 시뮬레이션된 Vth 분포들("Vt")의 스냅이 주어져 있다. 각각의 분포들이 알고리즘에 의해 지시된 바와 같이, 예상된 0.25 임의 단위의 Vth 범위로 적당하게 잘 한정되어 있다.
도 8은 7개의 프로그램 상태 각각에 대해 목표된 모든 셀들을 로크아웃하기 직전에 프로그래밍 단계들에서 아직 로크아웃되지 않은 셀 모집단에 대한 결과 시뮬레이션된 Vth 분포들(뿐만 아니라, 첫 번째 프로그래밍 펄스 후의 시작 분포)의 스냅이다. 이것은 프로그래밍 시퀀스를 통해 셀들의 모집단에 대해 프로그래밍 처리가 얼마나 잘 행해졌는지를 나타낸다. 601은 초기 분포를 나타낸다. 603은 모든 목표된 상태 1 셀들이 로크아웃된 직후에, 프로그램 펄스 8 후에 셀들의 분포에 대응한다. 이것은 최후 목적지가 1-상태이지만, 아직 로크아웃되지 않았고, 더 높은 상태로 가는 중에 통과되는 상태들을 가진 두 셀을 포함한다. 이것은 1 상태에 대한 것에 대해 그보다 위의 레벨들을 가진 셀들의 수를 설명한다. 유사하게, 605는 모든 상태 2 셀이 로크아웃되기 직전에 프로그램 펄스 13에 대응하며, 후속 상태들에 대해서도 유사하다.
도 9는 누적적 프로그래밍 펄스들의 수의 함수로서 대응하는 검사/로크아웃된 상태들로 프로그래밍될 셀들의 수를 도시한다. 데이터 상태들의 주지된 범위에 있는 셀들의 수를 표시하는 수평 라인들이 겹쳐진다. 라인(701)은 데이터 1, 2, 3, 4, 5, 6 또는 7을 가진 셀들의 수에 대응하고 라인(702)은 데이터 2, 3, 4, 5, 6 또는 7을 가진 셀들의 수에 대응하는 등 라인(707)이 데이터 7을 가진 셀들의 수를 도시한다. 제 1 펄스 후, 곡선은 데이터 1을 가진 셀들이 로크아웃되기 시작할 때까지 편평하게 있고, 그 후에 가장 높은 상태의 낙오한 셀들이 최종적으로 로크아웃됨에 따라 편평해질 때까지 선형으로 올바르게 감소한다. 예상된 바와 같이, 평균적으로, 마지막 상태가 프로그래밍을 완료한 지점에서 다음의 더 높은 상태를 프로그래밍하는 것을 완료하는데 후속 4개의 프로그래밍 단계가 걸린다. 그러나, 다른 선형 곡선의 꼬임들에 의해 명백한 바와 같이, 이들 수평 라인들에 대한 곡선의 교차 지점들이 직선 거동(behavior)과 근접하긴 하지만 동일하게 일치하지 않음을 주지한다. 이것은 일반적인 모집단의 통계적으로 잘 처리된 진행에 반해, 가장 빠른 프로그래밍 셀 및 가장 느린 프로그래밍 셀로부터 프로그래밍 속도 변동의 결과 이다. 이것은 다시, 적응성의 스마트 검사 방법의 중요성을 다시 한번 지적한다.
시뮬레이션이 논증한 바와 같이, 스마트 검사 방법은 신뢰할 수 있는 프로그램/검사/로크아웃 동작을 보장하면서 장치 성능을 개선하는데 효과적이다. 이것은 기록 시퀀스의 각각의 프로그램/검사/로크아웃 단계에 대한 순차적 검사 동작들의 수를 최소화하기 위해 "지능형" 수단을 제공한다. 검사 스캔 범위 내에 포함된 가장 높은 데이터 상태 레벨에서의 비상태적 검사뿐만 아니라 검사 스캔 범위 내에 포함된 가장 낮은 데이터 상태에 대한 모든 셀 로크아웃 상태를 통해(그에 의해 가장 낮은 프로그래밍 셀들을 포함) 가장 빠른 프로그래밍 셀을 둘 다 검출하기 위해 모집단 이동을 모니터링함으로써, Vth 스캔 윈도우의 Vth 스캔의 낮고 높은 끝 부분들은 부가의 불필요한 검사 동작들로부터 최소한의 시간을 소모하면서 쉽게 확립될 수 있다.
도 5b의 실시예에서, 원래의 기록 성능은 프로그래밍 시퀀스의 다음 검사 상태를 검사 세트에 도입하기 전에 지연을 포함하는 도 5a의 실시예에 대한 다른 개선으로도, 총 7개 상태 검사 방법에 비해 2배가 된다. 이들 개선들은, 각각의 소자의 상태를 나타내는 파라미터를 동시에 감지하여 이들 이동들(또는 소자가 실패되는 경우에 이동하도록 시도된 이동들)의 결과를 검사함으로써, 그 후에 동시에 동작하는 저장 소자들의 세트의 상태들을 점진적으로 이동시키는 반복 처리에 그 프로그래밍이 의존하는 메모리 시스템들에서 실현될 수 있다.
스마트 검사 기술에 대한 개선의 예시적 실시예는 도 10 내지 도 13에 대해 기술된다. 이 예시적 실시예는 3-비트/저장 소자 기술(즉, 7-검사 시퀀스를 가진 8-상태)에 대한 스마트 검사 동작의 개략적 구현을 기술한다. 이 실시예에 대해, 저장 소자 또는 메모리 셀은 제어된 형태이며, 제어된 다중 상태 기록에 요구되는 점진적으로 증가한 저장 레벨들은 각각의 연속하는 프로그래밍 펄스로 조종 게이트 전압을 점진적으로 증가시킴으로써 달성된다. 그 외에도, 다중 상태 메모리 셀 판독은 7개의 조종 게이트 전압 레벨(다중 상태 데이터 프로그래밍에 사용된 7개 검사 전압 레벨에 대응함)의 증가하는 진행을 통해 이 조종 게이트를 순차적으로 스캐닝함으로써 달성된다.
도 10은 개개의 메모리 소자(1001)에 대한 프로그램 검사 및 로크아웃 회로(프로그래밍 세션의 리마인더를 위해 메모리 소자의 로크아웃 종료 프로그래밍)의 한 실시예를 개략적으로 도시한 것이다. 도 10의 이 구조는 도 1 및 도 2에 관해 배경 기술 섹션에 기술되어 알 수 있는 바와 같이, 실시예와 함께 사용하기 위해 종래 기술 분야에서 알려진 것과 유사하고, 스마트 검사 경우가 논의될 때 참조하기 위해 여기서 더 논의된다. 이 예에서 메모리 소자(1001)가 부동 게이트 트랜지스터이지만, 다른 형태의 저장 소자가 하기 논의된 대로 사용될 수 있다. n개의 이러한 메모리 소자가 동시에 프로그래밍되는 경우(여기서, n은 통상적으로 수백 내지 수천 개의 범위가 될 수 있다), n개의 이러한 프로그래밍 검사 회로에 대응되어 있고 모두 동시에 작동한다. 이들 n개의 회로로부터 나오는 정보는 스마트 검사 동작에 대한 기초를 형성한다.
도 10의 상세한 검사/로크아웃 도면을 보면, 회로는 2줄 테두리에 의해 강조 되어 있는 모든 n개의 회로에 공통인 구성요소들(예컨대, 카운터(1009), 리셋(1021) 및 기준 전압 Ref)뿐만 아니라, 각각의 회로에서 복제된 구성요소들(예컨대, 비교기(1011), 기록될 데이터 상태 레지스터(1019) 및 다양한 논리 소자들)을 포함한다. 프로그램 검사 동안, 각각의 메모리 소자(1001)는 대응하는 감지 증폭 비교기(1011)에 접속되며, 비교기(1011)는 셀의 도전 레벨을 기준원 Ref에 비교한다. 이 실시예에서, 이 비교기(1011)의 작동은 저장 소자의 조종 게이트에 접속된 감지 파라미터 구동기(1003)(예컨대, 도 2의 조종 게이트 전압 크기 B(103)를 제공함)의 출력이 소자의 저장된 메모리 상태 파라미터(예컨대, 도 2의 101에 의해 예시된 셀 Vth)보다 더 작을 때마다 "1"의 논리 레벨을 출력한다. (도 10에서, 노드들 A, B, C 및 D에서의 파형은 소자들(1001, 1003, 1005 및 1007)과 도 2의 101, 103, 105 및 107로 각각 라벨이 붙여진 파형들 모두에 각각 대응한다.) 대안적으로, 감지 파라미터 구동기(1003)의 출력 B가 소자의 저장된 메모리 상태 파라미터보다 더 클 때마다, 비교기는 논리 "0" 레벨을 출력한다.
감지 파라미터 구동기(1003) 파형의 진행은 카운터(1009)에 의해 제어되고, 카운터(1009)는 도 2의 파형(103)에 의해 예시된 바와 같이 노드 B에서 7개의 순차적 검사 펄스를 발생하기 위해 1부터 7까지 카운트한다. 각 셀은 8개의 가능한 데이터 상태0, 1, 2, 3, 4, 5, 6, 7 중 하나를 저장하고, 이중 특정한 하나는 각 셀에 대해, 대응하는 기록된 데이터 상태 레지스터(1019)에 로딩된다. 상태 0은 도 4에서 단계(210)에 대응하는 기록될 셀들 모두에 대해 데이터 비상태적 사전 설정 동작(예컨대, 섹터 소거)에 의해 확립된다. 대응하는 상태에 대한 목표 데이터가 0으로 남아 있다면, 그 저장 소자에 대한 로크아웃은 즉시 설정되고(그 세부 사항들은 도시되지 않음), 소자의 프로그래밍도 발생하지 않는다. 데이터 상태들 1, 2, 3, 4, 5, 6 및 7은 7개의 프로그램 가능한 상태를 구성하고, 그들 상태를 확립하기 위한 프로그램 검사 동안 사용되는 1, 2, 3, 4, 5, 6 및 7의 검사 레벨들에 각각 연관된 카운터(1009)에 대응한다. 프로그래밍 진행에 따라, 저장 소자 파라미터(예를 들어, 저장 셀 Vth)는 검사/로크아웃 동작에 의해 종료될 때까지 상태들 1, 2, 3...을 통해 순차적으로 및 제어 가능하게 이동된다.
카운터(1009)와 기록될 데이터 상태 레지스터(1019) 사이에 모두 끼워진 4-입력 NAND 게이트(1017)로 공급하는 3개의 XNOR 게이트(1015a 내지 1015c)(8개 데이터 상태의 3-비트 등가에 대응)의 함수는 카운터(1009) 값에 의해 결정되는 바와 같이 목표의 기록될(감지 파라미터 구동기(1003)를 통해) 데이터 상태와 검사될 동시 레벨 사이에 일치가 발생할 때 상태를 트랩하기 위한 것이다. NAND의 4개의 레그는 비교기(1011) 출력으로부터 나오며, 도 2의 107에 의해 예시된 바와 같이 AND 게이트(1007)로부터 비교기 출력 D의 시간 동기된 펄스를 제공하는 플러스 펄스화 검사 스트로브 회로(1005)에 의해 게이트되어 있다. [1] 기록될 데이터 상태와 카운터(즉, 검사 레벨)의 일치와, [2]비교기 출력 하이(예컨대, 검사 레벨보다 높은 셀 Vth)의 조합된 상태들에 대해, 이 4-입력 NAND 게이트(1017)의 출력은 논리적 "0"(검사 스트로브 (1005) 펄스에 의해 게이트)으로 펄스 다운되고, 그렇지 않으면 논리적 "1"의 상태에 있다. 4-입력 NAND 게이트(1017)의 출력은 로크아웃 SR 래치(1013)(본 명세서에서 교차 결합 NAND 게이트 기반 래치로 구현됨)의 하나의 레그(세트 레그라 칭해짐)로 공급된다. 어드레싱된 저장 유닛들의 세트에 대한 데이터 프로그래밍 세션의 시작시, 모든 로크아웃 SR 래치들(1013)은 논리적 "0"으로 설정된다. 이것은, 모든 SR 래치들의 다른 레그(리셋 레그라 칭해짐)에 리셋 펄스(1021)(이 구현에서 논리적 레벨 "0"으로 펄스 다운되고, 그렇지 않으면 논리적 레벨 "1"의 상태에 있음)를 인가하여, 모든 대응하는 저장 소자들의 로크아웃들을 논리적 "0"으로 초기화함으로써 구현된다. 상술된 상태들마다 4-입력 NAND 게이트(1017)로부터 논리적 "0" 펄스로 되는 음의 수신시, 대응하는 SR 래치 로크아웃은 논리적 "1"로 플립된다. 이 상태는 데이터 프로그래밍 세션의 지속기간 동안 연관된 저장 소자에 대한 모든 다른 프로그래밍을 종료한다.
예에 의해, 다음은 목표된 데이터 상태가 도 2에 도시된 상태 3인 메모리 셀에 대한 로크아웃을 유발하는 프로그램/검사의 진행을 기술한다. 초기에 셀은 데이터 상태 0(예컨대, 소거)으로 설정되고, 대응하는 로크아웃 래치(1013)는 리셋 신호(1021)에 의해 논리적 레벨 "0"으로 설정된다. 그 다음, 초기 프로그래밍 레벨(예컨대, 조종 또는 제어 게이트 전압) 펄스로 시작하여, 점차로 증가하는 일련의 레벨 프로그래밍 펄스들을 수신하며, 각각의 펄스는 도 1에 도시된 바와 같이, 7-레벨 검사 펄스 시퀀스가 뒤따른다. 첫 번째 수 개의 프로그래밍 펄스에 대해, 이 검사 시퀀스(도 2의 107에 의해 예시됨)의 스트로빙된 결과들은 모두 0들이다(즉, 양으로 가는 펄스들이 없음). 부가의 프로그래밍 펄스들로, 셀 상태가 검사 레벨 1 넘어 로 밀어넣음에 따라(즉, 데이터 상태 1로 프로그래밍), 스트로빙된 결과는 레벨 1 검사 스트로브 동안 단일 논리적 "1" 펄스이다. 이것은 로크아웃 상태를 트리거하지 않지만, 이 시간 동안 검사 상태(즉, 카운터(1009) 값이 1임)는 목표된 데이터 상태(즉, 기록될 데이터 상태(1019)가 3임)와 일치하지 않기 때문이다. 검사 3 펄스에 대한 일치가 일어나지 않을 때, 시퀀스의 그 지점에서의 스트로빙된 결과는 "0"이며, 이는 로크아웃 상태를 설정하는 것을 금지한다.
다른 프로그램 펄스들은 검사 2 레벨(즉, 데이터 상태 2로 프로그래밍) 넘어 셀 상태로 밀어 넣어 검사 1 및 검사 2 스트로브 지점들에 동기되는 2개의 순차적인 논리적 "1" 펄스의 스트로브 결과를 유발한다. 다시, 이것은 요구된 일치 상태들이 충족되지 않기 때문에 로크아웃을 트리거하지 않는다. 이것은 다른 프로그래밍 펄스들의 인가 후일 때만이며, 로크아웃 상태가 논리적 레벨 "1" 로 설정되는 검사 3 레벨 바로 너머로 셀 상태를 밀어넣어 메모리 셀에 다른 프로그래밍 펄스들의 인가를 종료한다. 이것은 다음과 같이 발생한다: 스트로빙된 검사 출력 시퀀스는 검사 1, 검사 2 및 검사 3 스트로브 지점들에 동기되는 3개의 순차적인 논리적 "1" 펄스를 포함한다. 제 3 검사 스트로브 동안, 검사 상태(즉, 카운터(1009) 값)의 상태 및 목표 데이터 상태가 충족되어, 이 논리적 "1" 펄스가 4-입력 NAND(1017)을 통해 SR 로크아웃 래치(1013)의 세트 레그로 전송될 수 있게 한다.
상태 오버슈트(예컨대, 상기 예에서 상태 3에 점차적으로 프로그래밍되는 대신, 갑작스럽게 오버슈트 및 상태 4로 점프함)를 유발하는 우발적인 탈선적/초과적 셀 프로그래밍의 경우에서도, 상기 로크아웃은 여전히 발생할 것임을 주지한다. 이 것은 검사 레벨을 초과하는 셀 Vth의 요구된 비교기(1011) 상태는 검사 3 스트로브 동안 여전히 충족될 것이고, 그에 의해 로크아웃을 트리거한다. 따라서, 다른 프로그래밍이 발생하지 않고 기록 실패의 정도를 제한한다. 이러한 상황에서 로크아웃이 발생하지 않는다면, 셀은 프로그래밍 세션의 끝 부분에 프로그래밍 펄스들을 수신하기를 계속하여, 가장 높은 레벨 상태 7에 대해 허용되는 Vth 레벨들을 훨씬 넘어 잠재적으로 송신하여 잠재적으로 더욱 엄격한 실패도를 유발한다.
끝 부분의 프로그래밍 세션 구현은 본 명세서에 도시되지 않았다. 이것은 [1] 로크아웃을 달성한 모든 어드레싱된 저장 소자들 또는 [2] 도달되는 미리 결정된 최대 프로그램 카운트의 초기를 시그널링하는 실시예들에 의해 구현된다. 검사/로크아웃 처리에 대한 더 세부 사항들은 미국 특허 번호 제5,172,338호 또는 상기 포함된 다른 참조들에서 알 수 있다.
스마트 검사의 목적은 총 7-세트 시퀀스로부터 신뢰할 수 있는 기록 동작에 필요한 최소로 프로그래밍 진행의 임의 지점에서 사용되는 검사들의 수를 동적으로 감소시키는 것이다. 도 11은 검사 펄스들 3, 4 및 5만이 발행된 스마트 검사 개념의 피크 검사 레벨 실시예에서 최소 세트를 예시한다. 이것은 예를 들어 도 5b에 도시된 시뮬레이션의 프로그램 단계15의 상황이 될 수 있다. 이것은 프로그래밍 진행(예를 들어, 도 11의 경우에 5 및 3 각각)에서 임의의 특정 지점에 요구된 신뢰할 수 있는 최대 및 최소 검사 레벨을 동적으로 확인하는 것을 지시한다. 파형들(1101, 1103, 1105 및 1107)은 도 2의 신호들(101, 103, 105 및 107)에 대응하고, 다시 저장 소자(1001)(노드 A)의 셀 파라미터, 감지 파라미터 구동기(1003)(노드 B)의 출력, 검사 스트로브(1005)(노드 C)의 출력, 및 AND 게이트(1007)(도 10의 노드 D)의 출력에 대한 신호들을 표현한다.
도 12는 n개의 메모리 소자를 동시에 프로그래밍할 때 최대 또는 피크 검사 레벨을 구현하기 위한 하나의 양호한 실시예를 개략적으로 도시한다. 그것은 AND 게이트(1007)의 출력으로서 도 10에 표시된 바와 같이, n개의 검사/로크아웃 회로 각각의 대응하는 D개의 노드로부터 나오는 입력들(1207)을 가진 n-입력 OR 게이트(1211)를 포함한다. 상술된 바와 같이, 각각의 D 노드는 저장 소자 상태(예컨대, 셀 Vth 파라미터)가 인가된 검사 레벨(즉, 감지 파라미터, 도 10의 노드 B에서의 값이며 도 11에서 1103으로 표시됨)을 초과할 때마다, 논리적 레벨 "1"(도 10의 검사 스트로브(1005)에 의해 스트로빙됨)에 순간적으로 펄스화할 것이다. 마찬가지로, n-입력 OR 게이트(1211)는 하나 이상의 어드레싱된 메모리 소자가 이 프로그래밍 레벨(예컨대 셀 Vth) 요건을 만족할 때마다, 논리 레벨 "1"로 펄스화될 것이다. 이 펄스화 상태는, 카운터(2359)에 의해 결정되는 바와 같이, 동시적 검사 레벨이 3개의 XNOR(1251a 내지 1251c)에서 구현된 배타적 OR 회로 함수에 의해 확립되고 그에 의해 펄스가 AND 게이트(1253)를 통과하도록 허용하는 최대 검사 레벨 "카운터" 레지스터(1233)의 기존 값과 일치할 때 확립된다. 이 펄스는 피크 검사 레벨을 다음 이용 가능한 값으로 주장하기 위하여 새로운 최대 검사 레벨 "카운터" 함수 블록(1235)으로 공급된다.
이 구현의 배경적 개념은, 하나 이상의 저장 소자가 스캐닝되는 기존의 피크 검사 레벨 넘어 통과하는 즉시(최대 검사 레벨 "카운터" 레지스터(1233)에 저장됨), 다음 프로그래밍 펄스 직후의 검사 시퀀스는 다음의 이용 가능한 검사 레벨까지 차후 스캐닝될 것이다. 이 처리는 새로운 최대 검사 카운트 로드 회로 블록(1231)으로 향하는 점선의 흐름으로 표시되며, 이 블록(1231)은 새로운 최대 검사 레벨 "카운트"를 최대 검사 레벨 "카운트" 레지스터(1233)로 즉시 로드한다. 이 지점으로부터, 제어된 펄스 프로그래밍 동작 하에, 새로운 피크 검사 레벨을 다시 한번 통과시키기 위해 하나 이상의 저장 소자를 충분히 프로그래밍하기 전에 다수의 후속 프로그래밍 펄스를 취할 것이다. 나중의 이벤트가 발생할 때까지, n-입력 OR 게이트(1211)는 논리적 "0"으로 유지할 것이며, 그에 의해 전류의 최대 검사 레벨로 고정시킨다. 상기 나중의 이벤트가 결과로서 발생할 때(예컨대, 부가의 4내지 5개의 프로그래밍 펄스 후), n-입력 OR 게이트(1211)는 논리적 "1" 펄스를 다시 한번 출력할 것이고, 그에 의해 최대 검사 레벨을 다음의 더 높은 레벨로 증가시킬 것이다.
임의의 시간에 최대 검사 레벨이 검사 범위의 최고(즉, 회로 블록(1235)에서 최대 허용치)를 초과하도록 시도한다면, 이러한 증가는 더이상 허용되지 않음을 주지한다. 최대 검사 레벨은 검사 범위의 최고(이 예, 3-비트 실시예에서 검사 레벨 7)로 고정된 채 남아 있다.
동시 증가 방식에 대한 대안적 실시예는 도 12에 도시되어 있으며, 대안적 분기에서, 새로운 최대 검사 레벨 "카운트" 회로 블록(1235) 바로 아래에서 나오고 소자들(1241, 1243, 1245 및 1247)로 이루어져 있다. 이제, 이 새로운 최대 검사 레벨 "카운트" 회로 블록(1235)이 펄스화될 때(즉, 하나 이상의 저장 소자가 기존의 검사 레벨에 도달할 때) 점선을 따르기보다는, 대신, 프로그램 카운트라고 칭하는 프로그램 펄스 카운터가 기능 블록(1241)을 통해 0으로 설정되고, 기능 블록들(1243 및 1245)을 통해 각각의 연속하는 프로그래밍 펄스로 1씩 증가된다. 이 카운터가 규정된 "지연 카운트"(예컨대, 3의 지연 카운트)에 도달하면, 프로그래밍 펄스들의 다른 카운트는 기능 블록들(1245 및 1247)을 통해 중단되고, 새로운 최대 검사 레벨 "카운트"가 기능 블록(1231)을 통해 최대 검사 레벨 "카운트" 레지스터(1233)로 로드된다. 이 대안적 실시예의 배경적 개념은 다음의 더 높은 검사 레벨에 도달 및 통과하기 위해 저장 소자들에 대한 수 개보다 많은 프로그래밍 펄스를 취할 것이기 때문에, 수 개의 프로그래밍 펄스 동안 다음의 더 높은 검사 레벨의 사용을 지연하고 그에 의해 부가의 시간을 저장하고 기록 동작의 속도를 더욱 상승시키는 것이다. 이 블록들(1235, 1241, 1243, 1245 및 1247)에 표시된 처리는 메모리 장치 상의 하드웨어 구현이 외부의 오프칩 제어(off-chip control)에 의존하는 것보다 더 바람직하지만, 대안적으로 소프트웨어 또는 펌웨어를 통해 구현될 수 있다.
"지연 카운트"값은 이전에 논의한 바와 같이, 로크아웃값을 갖기보다는 설정 가능한 파라미터를 통해 구현되는 것이 바람직하다. 변동시, "지연 카운트"값은 제어기에 의해 모니터링되고, 장치 거동(behavior)에 기초하여, 예를 들어 온도 또는 전원 장치 변동들과 같은 동작 상태들, 또는 프로그래밍이나 판독 오류들에 응답하 여 동적으로 변경될 수 있다.
전체 데이터 프로그램 동작의 시작시에, 피크 검사 레벨은 제 1 상태와 연관된 것으로 설정된다(즉, 최대 검사 레벨 "카운트" 레지스터(1233)가 1로 설정된다). 이것은 이 프로그래밍 동작에 앞서 모든 어드레싱된 저장 소자들에 대해 설정된 상태가 상태 0(예컨대 소거 동작을 통해)이기 때문에 허용되며, 이들 셀들 중 어느 것이 제 1 상태와 연관된 검사 레벨에 도달하기 전에 다수의 프로그래밍 펄스를 취할 것이다.
도 13은 n개의 저장 소자를 동시에 프로그래밍할 때 최소 검사 레벨을 구현하기 위한 하나의 양호한 실시예를 개략적으로 도시한다. 동시에 동작하는 n개의 회로 블록(1301-1 내지 1301-n)을 도시한다; n개의 동시에 어드레싱된 저장 소자의 각각에 대해 하나의 블록이 대응된다. 각각의 상기 회로 블록은 도 10에 도시된 대응하는 n개의 검사/로크아웃 회로의 기존 회로 부분을 포함한다. 도 10에서와 같이, 모든 n개의 회로에 공통인 이들 회로 블록들은 이중선 테두리들에 의해 강조되어 있다(예를 들어, 최소 검사 레벨 "카운트" 레지스터(1305)). 각각의 상기 회로 블록(1301-i(1 ≤i ≤n))은 일치 회로(기록될 데이터 상태(1019)와 최소 감사 레벨을 일치)를 포함하며, 이 회로는 예시적 3-비트 구현에 대해 3-입력 NAND 게이트(1331)로 공급하는 3개의 XNOR(1331a 내지 1331c) 게이트로부터 만들어진 배타적 or 회로 함수로 이루어져 있다.
이 일치 회로의 목적은 목표 데이터가 전류의 최소 검사 레벨과 연관된 것과 일치하지 않는 모든 저장 소자들의 상태를 무시하기 위한 것이다. 2-입력 OR 게이 트(1339)의 더 낮은 입력 레그로 논리적 레벨 "1"을 출력함으로써 이렇게 행해진다. 이것은 n+1개의 입력 AND 게이트(1313)로 전송되고, 그에 의해 결정 처리를 방해하지 않는다.
일치의 경우에(즉, 저장 소자의 목표 데이터가 이 최소 검사 레벨에 연관된 것과 일치하는 경우), 2-입력 OR 게이트(1339)의 출력 결과는 상부 입력 레그에 제공되는 논리 레벨에 달려 있고(rest), 로크아웃 기능 회로 블록(1303)으로부터 공급된다. 일치가 주어지면, 연관된 저장 소자의 목표 상태가 실제로 논리적 "1"로 설정된 로크아웃 회로(1303)에 의해 플래그된 바와 같이 도달된 경우, 2-입력 OR 게이트(1339)의 전송 결과는 논리적 "1"이 된다. 그렇지 않은 경우, 2-입력 OR 게이트(1339)의 전송 결과는 논리적 "0"으로 남아있다. 이 회로가 하는 것은 목표 데이터가 전류의 최소 검사 레벨과 일치하고 아직 로크아웃되지 않은 임의의 저장 소자들을 분리시키고, 그에 의해 논리적 "0"을 n+1개의 입력 AND 게이트(1313)로 전송하는 것이다. 이러한 저장 소자가 하나라도 존재한다면, 이것은 n+1개의 입력 AND 게이트(1313)의 출력에서 스트로빙된 논리적 "0"을 유발할 것이다. 논리적 "1"의 스트로빙된 펄스가 n+1개의 입력 AND 게이트(1313)에 의해 출력되는 것은 모든 이러한 셀들이 로크아웃될 때만이다. 스트로빙은 검사 스트로브 기능 블록(1005)에 의해 구현되며, AND 게이트(1313)에도 공급된다.
이 n+1개의 입력 AND 게이트(1313)의 출력은 일련의 2개의 기능 회로 블록에 공급된다. 새로운 최소 검사 레벨 "카운트"라 칭해지는 제 1 회로 블록(1315)은 논리적 "1" 펄스를 수신할 때, 기존의 최소 검사 레벨을 1씩 증가시킨다. 다음 블록 (1317)은 후속하는 프로그램/검사 연속물에 사용하기 위해 최소 검사 레벨 "카운트" 레지스터(1305)로 새로운 최소값을 로드한다. 임의 시간에, 전류의 최소 검사 레벨과 연관된 데이터 상태에 목표된 저장 소자들이 없다면, 도 13의 실시예는 다음의 프로그램/검사 동작들 동안 이 최소 검사 레벨을 다음의 더 높은 데이터 상태의 레벨로 증가시킬 것임을 주지한다.
임의의 시간에 최소 검사 레벨이 검사 범위의 최고(즉, 최대 허용치)를 초과한다면, 다른 증가는 허용되지 않음을 주지한다. 최소 검사 레벨은 검사 범위의 최고(즉, 이 실시예에서 검사 레벨 7)로 고정된 채 유지된다.
여기에서 기본 개념은 전류의 가장 낮은 검사 레벨에 대응하는 데이터 상태(대응하는 로크아웃 상태로 나타낸 바와 같이)로 실제로 도달하는 이용시 이 데이터 상태로 기록되도록 목표되는 모든 저장 소자들에 앞서, 동일한 가장 낮은 검사 레벨이 후속하는 프로그램/검사 동작에 계속 사용되도록 해야 한다. 모든 이러한 셀들이 실제로 그렇게 프로그래밍되면(논리적 "1" 상태로 플립되는 모든 로크아웃들에 의해 증거된 바와 같이), 차후 동일한 낮은 끝 부분 검사 지점에서 계속 검사하려는 의도가 없고, 다음의 프로그램/검사 동작들에 대한 최소 검사 레벨은 다음의 더 높은 레벨에서 시작할 수 있다.
전체 데이터 프로그램 동작의 시작에서, 최소 검사 레벨은 이 검사 레벨까지 프로그래밍될 셀들에 대비하여, 제 1 상태에 연관된 것으로 설정된다(즉, 최소 검사 레벨 "카운트“ 레지스터(1305)가 1로 설정된다).
상기 피크 검사와 최소 검사 실시예들을 조합하여 사용하는 동안, 각각의 프 로그래밍 펄스 후에 검사 펄스들의 수는 프로그래밍 시퀀스의 임의의 지점에서 요구되는 최소로 동적으로 유지된다. 통상적으로, 프로그램 세션의 시작시에, 최대 및 최소 검사 레벨들은 둘 다 상태 1에 있을 것이다. 다수의 펄스 후에, 최대는 가장 빠른 프로그래밍 셀들보다 위에 있도록 증가할 것이다. 독립적으로, 어떤 나중 지점에서 최소는 또한, 이전 최소 상태에 대해 목표된 모든 셀이 그렇게 프로그래밍된(그리고 로크아웃됨) 바와 같이 증가할 것이다. 7 단계 순차적 검사 범위에 미치는 8-상태 실시예에서, 최대 및 최소의 연속하는 동적 조정은 검사들의 평균수가 그 값의 절반보다 작도록 요구되도록 허용한다(예컨대, 프로그램 단계 당 평균 ~<3개 검사). 가장 높은 상태까지 셀들을 프로그래밍함에 따라, 최대 검사 레벨은 높은 끝 부분 한도 7로 고정되고, 어떤 나중 지점에서 최소 검사 레벨도 또한 이 한도로 고정된다. 이러한 동작 거동의 예들은 개시 내용의 도 5a 및 도 5b에 도시되어 있다.
스캔 윈도우의 결정은 검사될 상태들이 순차적으로 체크될 때 제공하는 시간 절감에 대해 주로 기술되었지만, 본 발명은 또한, 상기 포함된 미국 특허 출원 일련 번호 제09/671,793호에 개시된 바와 같이, 다중 상태들이 동시에 검사되는 실시예들에서 구현될 수 있다. 유사한 경우, 이것이 속도 증가의 관점에서 동일한 이점을 유발하지 않지만, 전력 소모의 감소와 같은 다른 이점이 있을 수 있다.
지금까지의 논의는, 메모리 장치에 대해 부동 게이트 EEPROM 또는 플래시 셀들과 같은 전하 저장 장치를 사용한 다중 상태 실시예들에 대해 주로 언급하였지만, 자기 및 광 매체들뿐만 아니라, 다중 상태 DRAM과 같은 휘발성 저장 매체들을 포함하는 다른 다중 상태 실시예들에서도 마찬가지로 적용될 수 있다. 저장 소자들이 판독되고, 기록되고, 데이터를 저장하는 특정 방법이 본 발명의 주요 양상들에 들어가지 않으므로, 본 발명의 다양한 양상은 0.1um아래의 트랜지스터들, 단일 전자 트랜지스터들, 유기/탄소 성분 나노 트랜지스터들 및 분자 트랜지스터들을 포함하는 다른 메모리 형태들에 적용될 수 있으며, 이에 제한되지는 않는다. 예를 들어, 이탄(Eitan)에 의한 미국 특허 제5,991,193호 및 사토(Sato) 등에 의한 미국 특허 번호 제4,630,086호에 각각 개시된 NROM 및 MNOS 셀들, 또는 갈라거(Gallagher) 등에 의한 미국 특허 제5,991,193호 및 쉬미츠(Shimizu) 등에 의한 미국 특허 번호 제5,892,706호에 각각 개시된 자기 RAM 및 FRAM 셀들이 또한 사용될 수 있으며, 이들 특허 모두는 본 명세서에 참조로 포함되었다.
본 발명이 다양한 예시적 실시예들에 관해 기술되었지만, 본 발명은 첨부된 청구항의 전체 범위 내에서 보호되도록 권리가 주어짐을 이해할 것이다.

Claims (21)

  1. 복수의 다중 상태 저장 소자를 갖는 비휘발성 메모리를 동작시키는 방법에 있어서:
    상기 저장 소자들 중 선택된 소자들에 제 1 프로그래밍 펄스를 인가하는 단계;
    상기 다중 상태 레벨들의 제 1 서브세트에 대해 상기 선택된 저장 소자들 상의 상기 제 1 프로그래밍 펄스의 결과를 검사하는 단계;
    상기 검사의 결과들에 기초하여 상기 다중 상태 레벨들의 제 2 서브세트를 형성하는 단계로서, 상기 제 1 서브세트 내에 포함되지 않은 상기 다중 상태 레벨들 중 하나의 레벨을 상기 제 2 서브세트 내에 포함시킬지 여부를 결정하는 단계를 포함하는 상기 제 2 서브세트 형성 단계;
    상기 검사 단계에 후속하여, 하나 이상의 상기 선택된 저장 소자에 제 2 프로그래밍 펄스를 인가하는 단계; 및
    상기 다중 상태 레벨들의 상기 제 2 서브세트에 대해 상기 하나 이상의 상기 선택된 저장 소자 상의 상기 제 2 프로그래밍 펄스의 결과를 검사하는 단계를 포함하는, 비휘발성 메모리 동작 방법.
  2. 제 1 항에 있어서, 상기 선택된 저장 소자들 중 상기 제1 프로그래밍 펄스의 결과를 검사하는 단계에서 각각의 목표값(target value)에 있는 것으로 검사된 저장 소자들에 대해서는 추가 프로그래밍 펄스를 인가하는 것이 종료되는 것을 특징으로 하는 비휘발성 메모리 동작 방법.
  3. 제 1 항에 있어서, 상기 검사에 기초하여 상기 다중 상태 레벨들의 제 2 서브세트를 형성하는 상기 단계는 상기 제 1 서브세트 내에 포함된 상기 다중 상태 레벨들 중 하나의 레벨을 상기 제 2 서브세트 내에서 배제할지 여부를 결정하는 단계를 더 포함하는, 비휘발성 메모리 동작 방법.
  4. 복수의 다중 상태 데이터 저장 소자에 대한 프로그램 동작을 수행하는 방법에 있어서:
    제 1 데이터 상태로부터의 상기 저장 소자들을, 복수의 제 2 데이터 상태를 순차적으로 통과하여 점진적으로 이동시키기 위한 프로그래밍 동작을 수행하는 단계;
    각각의 제 2 데이터 상태에 각각 대응하는 목표값들의 세트로부터 하나 이상의 목표값의 서브세트에 대한 선행하는 프로그래밍 동작의 결과를 검사하는 단계;
    상기 선행하는 검사의 결과에 기초하여 후속 검사 동작을 위한 하나 이상의 상기 목표값의 상기 서브세트를 후속적으로 재확립(re-establishing)하는 단계로서, 상기 선행하는 검사의 서브세트 내에 있지 않은 목표값을 포함시킬지 여부를 결정하는 단계를 포함하는, 상기 재확립 단계; 및
    상기 프로그래밍 동작을 수행하는 단계 및 상기 재확립된 목표값들의 서브세트를 사용하는 검사 단계를 후속적으로 반복하는 단계를 포함하는, 프로그램 동작 수행 방법.
  5. 제 4 항에 있어서, 상기 방법은 상기 복수의 저장 소자 중 상기 선행하는 프로그래밍 동작의 결과를 검사하는 단계에서 각각의 목표값에 있는 것으로 검사된 저장 소자들에 대해서는 추가 프로그래밍을 종료하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 동작 수행 방법.
  6. 제 4 항에 있어서, 상기 결과 검사 단계는 목표값들의 서브세트에 대해, 선행하는 프로그래밍 동작의 결과를 순차적으로 비교하는 단계를 포함하는, 프로그램 동작 수행 방법.
  7. 제 4 항에 있어서, 상기 후속적으로 재확립된 목표값들의 서브세트는 선행하는 목표값들의 서브세트와 동일한, 프로그램 동작 수행 방법.
  8. 제 4 항에 있어서, 상기 목표값들의 상기 서브세트를 후속적으로 재확립하는 상기 단계는 상기 선행하는 검사의 서브세트 내에서 목표값을 삭제할지 여부를 결정하는 단계를 더 포함하는, 프로그램 동작 수행 방법.
  9. 제 4 항에 있어서, 상기 프로그래밍 동작 수행 단계는 상기 저장 소자들을 프로그래밍 전압으로 펄스화하는 단계를 포함하는, 프로그램 동작 수행 방법.
  10. 제 9 항에 있어서, 상기 저장 소자들은 EEPROM 메모리 셀들을 포함하고, 상기 검사 단계는 목표값들의 서브세트에 대해 상기 메모리 셀들의 임계값들을 나타내는 파라미터를 포함하고, 상기 목표값들은 상기 파라미터의 값들인, 프로그램 동작 수행 방법.
  11. 제 4 항에 있어서, 상기 프로그래밍 동작을 수행하는 단계 및 상기 재확립된 목표값들의 서브세트를 사용하는 검사 단계를 반복하는 단계에 후속하여:
    상기 선행하는 검사의 결과에 기초하여 후속 검사 동작에 대한 하나 이상의 목표값의 상기 서브세트를 후속적으로 재확립하는 단계로서, 상기 선행하는 검사의 서브세트 내에 있지 않은 목표값을 포함할지 여부를 결정하는 단계를 포함하는, 상기 재확립 단계를 1회 이상 반복하고;
    상기 프로그램 동작을 수행하는 단계를 후속적으로 반복하는, 프로그램 동작 수행 방법.
  12. 제 11 항에 있어서, 상기 방법은 상기 복수의 다중 상태 데이터 저장 소자 중 정확하게 프로그램되지 않은 저장 소자들을 제거하는 단계를 더 포함하는 것을 특징으로 하는 프로그램 동작 수행 방법.
  13. 제 11 항에 있어서, 상기 선행하는 검사의 목표값들의 서브세트 내에 있지 않은 목표값 N을 포함할지 여부를 결정하는 상기 단계는 상기 선행하는 검사의 상 기 목표값들의 서브세트 중 하나의 값에서 하나 이상의 상기 저장 소자 검사에 기초하는, 프로그램 동작 수행 방법.
  14. 제 13 항에 있어서, 상기 제 2 데이터 상태들의 시퀀스 내의 상기 목표값 N은, 상기 제 2 데이터 상태들의 시퀀스 내의 목표값(N-1)에서 하나 이상의 상기 저장 소자 검사에 응답하여 목표값들의 서브세트 내에 포함되는, 프로그램 동작 수행 방법.
  15. 제 14 항에 있어서, 목표값 N은, 선행하는 검사에서, 목표값(N-1)에서 하나 이상의 상기 저장 소자 검사 후에 상기 검사 서브세트 내에 포함되어 있는 프로그래밍 동작들의 제 1 수(number)인, 프로그램 동작 수행 방법.
  16. 제 15 항에 있어서, 상기 제 1 수는 설정 가능한 파라미터인, 프로그램 동작 수행 방법.
  17. 메모리에 있어서:
    복수의 다중 상태 저장 소자들;
    프로그램 동작을 수행하기 위해 저장 유닛들에 접속 가능한 프로그래밍 회로로서, 상기 프로그램 동작에 의해 상기 저장 소자들의 상태가 변경될 수 있는, 상기 프로그래밍 회로;
    상기 저장 소자들의 상태를 나타내는 파라미터의 값을 결정하기 위해 상기 저장 소자들에 접속 가능한 감지 회로;
    상기 다중 상태 레벨들의 서브세트에 대응하는 상기 파라미터에 대한 목표값들을 사용하여 프로그램 검사 동작을 수행하기 위해 상기 감지 회로에 접속된 비교 회로; 및
    상기 비교 회로에 접속된 논리 회로로서, 상기 프로그램 검사 동작에서 사용되는 상기 다중 상태 레벨들의 서브세트로의 하나 이상의 다중 상태 레벨의 부가는 선행하는 프로그램 검사 동작의 결과들에 기초하여 결정되는, 상기 논리 회로를 포함하는, 메모리.
  18. 제 17 항에 있어서, 프로그램 검사 동작에서, 상기 비교 회로는 상기 저장 소자들의 상태를 상기 목표값들에 순차적으로 비교하는, 메모리.
  19. 제 17 항에 있어서, 상기 프로그램 검사 동작에서 사용되는 상기 다중 상태 레벨들의 세트로부터 하나 이상의 다중 상태 레벨의 삭제는 상기 선행하는 프로그램 검사 동작의 결과들에 기초하여 결정되는, 메모리.
  20. 제 17 항에 있어서, 상기 논리 회로는 상기 프로그램 검사 동작에서 각각의 목표값들에 대해 정확하게 검사하는 다른 프로그래밍 저장 소자들로부터 로크아웃되는, 메모리.
  21. 제 17 항에 있어서, 상기 저장 소자들은 부동 게이트 메모리 셀들인, 메모리.
KR1020057010198A 2002-12-05 2003-12-01 다중 상태 메모리들을 위한 스마트 검사 KR101017321B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/314,055 US7073103B2 (en) 2002-12-05 2002-12-05 Smart verify for multi-state memories
US10/314,055 2002-12-05

Publications (2)

Publication Number Publication Date
KR20050101159A KR20050101159A (ko) 2005-10-20
KR101017321B1 true KR101017321B1 (ko) 2011-02-28

Family

ID=32468407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057010198A KR101017321B1 (ko) 2002-12-05 2003-12-01 다중 상태 메모리들을 위한 스마트 검사

Country Status (10)

Country Link
US (3) US7073103B2 (ko)
EP (1) EP1568041B1 (ko)
JP (1) JP4382675B2 (ko)
KR (1) KR101017321B1 (ko)
CN (1) CN1720586B (ko)
AT (1) ATE357727T1 (ko)
AU (1) AU2003296003A1 (ko)
DE (1) DE60312729T2 (ko)
TW (1) TWI314325B (ko)
WO (1) WO2004053882A1 (ko)

Families Citing this family (221)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7630237B2 (en) 2003-02-06 2009-12-08 Sandisk Corporation System and method for programming cells in non-volatile integrated memory devices
US7574341B1 (en) * 2003-11-12 2009-08-11 Hewlett-Packard Development Company, L.P. Speculative expectation based event verification
US7418678B1 (en) * 2003-12-01 2008-08-26 Jasper Design Automation, Inc. Managing formal verification complexity of designs with counters
US7355237B2 (en) * 2004-02-13 2008-04-08 Sandisk Corporation Shield plate for limiting cross coupling between floating gates
US7023733B2 (en) * 2004-05-05 2006-04-04 Sandisk Corporation Boosting to control programming of non-volatile memory
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US7535771B2 (en) * 2004-11-04 2009-05-19 Macronix International Co., Ltd. Devices and methods to improve erase uniformity and to screen for marginal cells for NROM memories
US7158421B2 (en) * 2005-04-01 2007-01-02 Sandisk Corporation Use of data latches in multi-phase programming of non-volatile memories
US7420847B2 (en) * 2004-12-14 2008-09-02 Sandisk Corporation Multi-state memory having data recovery after program fail
US7120051B2 (en) * 2004-12-14 2006-10-10 Sandisk Corporation Pipelined programming of non-volatile memories using early data
US7849381B2 (en) * 2004-12-21 2010-12-07 Sandisk Corporation Method for copying data in reprogrammable non-volatile memory
US7408804B2 (en) * 2005-03-31 2008-08-05 Sandisk Corporation Systems for soft programming non-volatile memory utilizing individual verification and additional soft programming of subsets of memory cells
US7206230B2 (en) 2005-04-01 2007-04-17 Sandisk Corporation Use of data latches in cache operations of non-volatile memories
US7463521B2 (en) 2005-04-01 2008-12-09 Sandisk Corporation Method for non-volatile memory with managed execution of cached data
US7447078B2 (en) * 2005-04-01 2008-11-04 Sandisk Corporation Method for non-volatile memory with background data latch caching during read operations
US7339834B2 (en) * 2005-06-03 2008-03-04 Sandisk Corporation Starting program voltage shift with cycling of non-volatile memory
EP1748446A1 (en) * 2005-07-28 2007-01-31 STMicroelectronics S.r.l. Two pages programming
US7366014B2 (en) * 2005-07-28 2008-04-29 Stmicroelectronics S.R.L. Double page programming system and method
US7230854B2 (en) * 2005-08-01 2007-06-12 Sandisk Corporation Method for programming non-volatile memory with self-adjusting maximum program loop
US7023737B1 (en) 2005-08-01 2006-04-04 Sandisk Corporation System 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
US7366022B2 (en) * 2005-10-27 2008-04-29 Sandisk Corporation Apparatus for programming of multi-state non-volatile memory using smart verify
JP4855474B2 (ja) * 2005-10-27 2012-01-18 サンディスク コーポレイション スマート検証を利用してマルチステート不揮発性メモリをプログラミングする方法
US7301817B2 (en) * 2005-10-27 2007-11-27 Sandisk Corporation Method for programming of multi-state non-volatile memory using smart verify
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
US7616481B2 (en) 2005-12-28 2009-11-10 Sandisk Corporation Memories with alternate sensing techniques
US7310255B2 (en) * 2005-12-29 2007-12-18 Sandisk Corporation Non-volatile memory with improved program-verify operations
US7224614B1 (en) 2005-12-29 2007-05-29 Sandisk Corporation Methods for improved program-verify operations in non-volatile memories
WO2007132452A2 (en) 2006-05-12 2007-11-22 Anobit Technologies Reducing programming error in memory devices
US8239735B2 (en) 2006-05-12 2012-08-07 Apple Inc. Memory Device with adaptive capacity
KR101202537B1 (ko) 2006-05-12 2012-11-19 애플 인크. 메모리 디바이스를 위한 결합된 왜곡 추정 및 에러 보정 코딩
CN103280239B (zh) 2006-05-12 2016-04-06 苹果公司 存储设备中的失真估计和消除
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
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
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
WO2008026203A2 (en) 2006-08-27 2008-03-06 Anobit Technologies Estimation of non-linear distortion in memory devices
US7602650B2 (en) * 2006-08-30 2009-10-13 Samsung Electronics Co., Ltd. Flash memory device and method for programming multi-level cells in the same
US7525838B2 (en) * 2006-08-30 2009-04-28 Samsung Electronics Co., Ltd. Flash memory device and method for programming multi-level cells in the same
US7734861B2 (en) * 2006-09-08 2010-06-08 Sandisk Corporation Pseudo random and command driven bit compensation for the cycling effects in flash memory
US7885112B2 (en) * 2007-09-07 2011-02-08 Sandisk Corporation Nonvolatile memory and method for on-chip pseudo-randomization of data within a page and between pages
US7606966B2 (en) * 2006-09-08 2009-10-20 Sandisk Corporation Methods in a pseudo random and command driven bit compensation for the cycling effects in flash memory
KR101062032B1 (ko) 2006-10-13 2011-09-05 샌디스크 코포레이션 비휘발성 메모리에서의 분할된 소거 및 소거 검증
JP4990979B2 (ja) 2006-10-13 2012-08-01 サンディスク コーポレイション 不揮発性記憶素子における区分化されたソフトプログラミング
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
WO2008053473A2 (en) 2006-10-30 2008-05-08 Anobit Technologies Ltd. Memory cell readout using successive approximation
US7924648B2 (en) 2006-11-28 2011-04-12 Anobit Technologies Ltd. Memory power and performance management
US8151163B2 (en) 2006-12-03 2012-04-03 Anobit Technologies Ltd. Automatic defect management in memory devices
US7900102B2 (en) 2006-12-17 2011-03-01 Anobit Technologies Ltd. High-speed programming of memory devices
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
WO2008086237A2 (en) * 2007-01-05 2008-07-17 California Institute Of Technology Codes for limited magnitude asymmetric errors in flash memories
US7751240B2 (en) 2007-01-24 2010-07-06 Anobit Technologies Ltd. Memory device with negative thresholds
US8151166B2 (en) 2007-01-24 2012-04-03 Anobit Technologies Ltd. Reduction of back pattern dependency effects in memory devices
EP2458592B1 (en) 2007-02-20 2014-03-26 SanDisk Technologies, Inc. Multiple pass write sequence for non-volatile storage
US7564711B2 (en) * 2007-02-20 2009-07-21 Sandisk Corporation Multiple pass write sequence for non-volatile storage
KR101371522B1 (ko) * 2007-02-27 2014-03-12 삼성전자주식회사 비휘발성 메모리 장치 및 그것의 구동 방법
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
KR100816220B1 (ko) * 2007-03-14 2008-03-21 주식회사 하이닉스반도체 불휘발성 메모리 장치의 언더 프로그램 셀 검출 방법 및그를 이용한 프로그램 방법
US8001320B2 (en) 2007-04-22 2011-08-16 Anobit Technologies Ltd. Command interface for memory devices
WO2008139441A2 (en) 2007-05-12 2008-11-20 Anobit Technologies Ltd. Memory device with internal signal processing unit
US8234545B2 (en) 2007-05-12 2012-07-31 Apple Inc. Data storage with incremental redundancy
US7925936B1 (en) 2007-07-13 2011-04-12 Anobit Technologies Ltd. Memory device with non-uniform programming levels
US7898885B2 (en) * 2007-07-19 2011-03-01 Micron Technology, Inc. Analog sensing of memory cells in a solid state memory device
US7649782B2 (en) * 2007-07-31 2010-01-19 Freescale Semiconductor, Inc. Non-volatile memory having a dynamically adjustable soft program verify voltage level and method therefor
US8259497B2 (en) 2007-08-06 2012-09-04 Apple Inc. Programming schemes for multi-level analog memory cells
US7869273B2 (en) * 2007-09-04 2011-01-11 Sandisk Corporation Reducing the impact of interference during programming
US7813188B2 (en) * 2007-09-10 2010-10-12 Hynix Semiconductor Inc. Non-volatile memory device and a method of programming a multi level cell in the same
US8174905B2 (en) 2007-09-19 2012-05-08 Anobit Technologies Ltd. Programming orders for reducing distortion in arrays of multi-level analog memory cells
KR100891405B1 (ko) * 2007-09-27 2009-04-02 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 그 동작 방법
US7773413B2 (en) 2007-10-08 2010-08-10 Anobit Technologies Ltd. Reliable data storage in analog memory cells in the presence of temperature variations
US8527819B2 (en) 2007-10-19 2013-09-03 Apple Inc. Data storage in analog memory cell arrays having erase failures
US8068360B2 (en) 2007-10-19 2011-11-29 Anobit Technologies Ltd. Reading analog memory cells using built-in multi-threshold commands
US8000141B1 (en) 2007-10-19 2011-08-16 Anobit Technologies Ltd. Compensation for voltage drifts in analog memory cells
KR101509836B1 (ko) 2007-11-13 2015-04-06 애플 인크. 멀티 유닛 메모리 디바이스에서의 메모리 유닛의 최적화된 선택
JP2009129480A (ja) * 2007-11-20 2009-06-11 Toshiba Corp 不揮発性半導体記憶装置の閾値制御方法
DE102007055479B4 (de) * 2007-11-21 2015-09-10 Audi Ag Knotenelement für eine Fachwerkskonstruktion
US8225181B2 (en) 2007-11-30 2012-07-17 Apple Inc. Efficient re-read operations from memory devices
JP5151439B2 (ja) * 2007-12-12 2013-02-27 ソニー株式会社 記憶装置および情報再記録方法
US8209588B2 (en) 2007-12-12 2012-06-26 Anobit Technologies Ltd. Efficient interference cancellation in analog memory cell arrays
US8456905B2 (en) 2007-12-16 2013-06-04 Apple Inc. Efficient data storage in multi-plane memory devices
US8085586B2 (en) 2007-12-27 2011-12-27 Anobit Technologies Ltd. Wear level estimation in analog memory cells
US7916544B2 (en) * 2008-01-25 2011-03-29 Micron Technology, Inc. Random telegraph signal noise reduction scheme for semiconductor memories
US8156398B2 (en) 2008-02-05 2012-04-10 Anobit Technologies Ltd. Parameter estimation based on error correction code parity check equations
US20090199058A1 (en) * 2008-02-06 2009-08-06 Christoph Seidl Programmable memory with reliability testing of the stored data
US7924587B2 (en) 2008-02-21 2011-04-12 Anobit Technologies Ltd. Programming of analog memory cells using a single programming pulse per state transition
US7864573B2 (en) 2008-02-24 2011-01-04 Anobit Technologies Ltd. Programming analog memory cells for reduced variance after retention
ITRM20080114A1 (it) * 2008-02-29 2009-09-01 Micron Technology Inc Compensazione della perdita di carica durante la programmazione di un dispositivo di memoria.
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
US8059457B2 (en) 2008-03-18 2011-11-15 Anobit Technologies Ltd. Memory device with multiple-accuracy read commands
US8400858B2 (en) 2008-03-18 2013-03-19 Apple Inc. Memory device with reduced sense time readout
KR100954949B1 (ko) * 2008-05-14 2010-04-27 주식회사 하이닉스반도체 불휘발성 메모리 장치의 멀티 레벨 셀 프로그램 방법
US8433980B2 (en) * 2008-06-23 2013-04-30 Sandisk Il Ltd. Fast, low-power reading of data in a flash memory
US7924613B1 (en) 2008-08-05 2011-04-12 Anobit Technologies Ltd. Data storage in analog memory cells with protection against programming interruption
US7995388B1 (en) 2008-08-05 2011-08-09 Anobit Technologies Ltd. Data storage using modified voltages
US8169825B1 (en) 2008-09-02 2012-05-01 Anobit Technologies Ltd. Reliable data storage in analog memory cells subjected to long retention periods
US8949684B1 (en) 2008-09-02 2015-02-03 Apple Inc. Segmented data storage
JP5172555B2 (ja) 2008-09-08 2013-03-27 株式会社東芝 半導体記憶装置
US8482978B1 (en) 2008-09-14 2013-07-09 Apple Inc. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
US8000135B1 (en) 2008-09-14 2011-08-16 Anobit Technologies Ltd. Estimation of memory cell read thresholds by sampling inside programming level distribution intervals
KR101532754B1 (ko) 2008-09-22 2015-07-02 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US7768836B2 (en) * 2008-10-10 2010-08-03 Sandisk Corporation Nonvolatile memory and method with reduced program verify by ignoring fastest and/or slowest programming bits
US8239734B1 (en) 2008-10-15 2012-08-07 Apple Inc. Efficient data storage in storage device arrays
US8045375B2 (en) 2008-10-24 2011-10-25 Sandisk Technologies Inc. Programming non-volatile memory with high resolution variable initial programming pulse
US8261159B1 (en) 2008-10-30 2012-09-04 Apple, Inc. Data scrambling schemes for memory devices
US8208304B2 (en) 2008-11-16 2012-06-26 Anobit Technologies Ltd. Storage at M bits/cell density in N bits/cell analog memory cell devices, M>N
US8174857B1 (en) 2008-12-31 2012-05-08 Anobit Technologies Ltd. Efficient readout schemes for analog memory cell devices using multiple read threshold sets
US8248831B2 (en) 2008-12-31 2012-08-21 Apple Inc. Rejuvenation of analog memory cells
US8924661B1 (en) 2009-01-18 2014-12-30 Apple Inc. Memory system including a controller and processors associated with memory devices
US8111544B2 (en) * 2009-02-23 2012-02-07 Taiwan Semiconductor Manufacturing Company, Ltd. Programming MRAM cells using probability write
US8228701B2 (en) 2009-03-01 2012-07-24 Apple Inc. Selective activation of programming schemes in analog memory cell arrays
KR101005145B1 (ko) * 2009-03-06 2011-01-04 주식회사 하이닉스반도체 불휘발성 메모리 소자의 프로그램 방법
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8832354B2 (en) 2009-03-25 2014-09-09 Apple Inc. Use of host system resources by memory controller
US8238157B1 (en) 2009-04-12 2012-08-07 Apple Inc. Selective re-programming of analog memory cells
KR101015644B1 (ko) * 2009-05-29 2011-02-22 주식회사 하이닉스반도체 불휘발성 메모리 장치 및 이를 프로그램하는 방법
US8054691B2 (en) 2009-06-26 2011-11-08 Sandisk Technologies Inc. Detecting the completion of programming for non-volatile storage
US8479080B1 (en) 2009-07-12 2013-07-02 Apple Inc. Adaptive over-provisioning in memory systems
US8495465B1 (en) 2009-10-15 2013-07-23 Apple Inc. Error correction coding over multiple memory pages
US8243520B2 (en) * 2009-11-02 2012-08-14 Infineon Technologies Ag Non-volatile memory with predictive programming
US8223556B2 (en) * 2009-11-25 2012-07-17 Sandisk Technologies Inc. Programming non-volatile memory with a reduced number of verify operations
US8174895B2 (en) * 2009-12-15 2012-05-08 Sandisk Technologies Inc. Programming non-volatile storage with fast bit detection and verify skip
US8677054B1 (en) 2009-12-16 2014-03-18 Apple Inc. Memory management schemes for non-volatile memory devices
US8694814B1 (en) 2010-01-10 2014-04-08 Apple Inc. Reuse of host hibernation storage space by memory controller
US8572311B1 (en) 2010-01-11 2013-10-29 Apple Inc. Redundant data storage in multi-die memory systems
KR101676816B1 (ko) 2010-02-11 2016-11-18 삼성전자주식회사 플래시 메모리 장치 및 그것의 프로그램 방법
US8233324B2 (en) 2010-03-25 2012-07-31 Sandisk Il Ltd. Simultaneous multi-state read or verify in non-volatile storage
US8218366B2 (en) 2010-04-18 2012-07-10 Sandisk Technologies Inc. Programming non-volatile storage including reducing impact from other memory cells
US8694853B1 (en) 2010-05-04 2014-04-08 Apple Inc. Read commands for reading interfering memory cells
US8416624B2 (en) 2010-05-21 2013-04-09 SanDisk Technologies, Inc. Erase and programming techniques to reduce the widening of state distributions in non-volatile memories
US8572423B1 (en) 2010-06-22 2013-10-29 Apple Inc. Reducing peak current in memory systems
US8514630B2 (en) 2010-07-09 2013-08-20 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays: current based approach
US8305807B2 (en) 2010-07-09 2012-11-06 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8432732B2 (en) 2010-07-09 2013-04-30 Sandisk Technologies Inc. Detection of word-line leakage in memory arrays
US8595591B1 (en) 2010-07-11 2013-11-26 Apple Inc. Interference-aware assignment of programming levels in analog memory cells
US9104580B1 (en) 2010-07-27 2015-08-11 Apple Inc. Cache memory for hybrid disk drives
US8767459B1 (en) 2010-07-31 2014-07-01 Apple Inc. Data storage in analog memory cells across word lines using a non-integer number of bits per cell
US8856475B1 (en) 2010-08-01 2014-10-07 Apple Inc. Efficient selection of memory blocks for compaction
US8310870B2 (en) 2010-08-03 2012-11-13 Sandisk Technologies Inc. Natural threshold voltage distribution compaction in non-volatile memory
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
US9021181B1 (en) 2010-09-27 2015-04-28 Apple Inc. Memory management for unifying memory cell conditions by using maximum time intervals
US8374031B2 (en) 2010-09-29 2013-02-12 SanDisk Technologies, Inc. Techniques for the fast settling of word lines in NAND flash memory
US8345482B2 (en) * 2010-12-15 2013-01-01 Micron Technology, Inc. Methods for segmented programming and memory devices
US8472280B2 (en) 2010-12-21 2013-06-25 Sandisk Technologies Inc. Alternate page by page programming scheme
KR101211840B1 (ko) * 2010-12-30 2012-12-12 에스케이하이닉스 주식회사 반도체 메모리 장치의 프로그램 방법
US8379454B2 (en) 2011-05-05 2013-02-19 Sandisk Technologies Inc. Detection of broken word-lines in memory arrays
US8843693B2 (en) 2011-05-17 2014-09-23 SanDisk Technologies, Inc. Non-volatile memory and method with improved data scrambling
US8456911B2 (en) 2011-06-07 2013-06-04 Sandisk Technologies Inc. Intelligent shifting of read pass voltages for non-volatile storage
US8432740B2 (en) 2011-07-21 2013-04-30 Sandisk Technologies Inc. Program algorithm with staircase waveform decomposed into multiple passes
US8750042B2 (en) 2011-07-28 2014-06-10 Sandisk Technologies Inc. Combined simultaneous sensing of multiple wordlines in a post-write read (PWR) and detection of NAND failures
US8726104B2 (en) 2011-07-28 2014-05-13 Sandisk Technologies Inc. Non-volatile memory and method with accelerated post-write read using combined verification of multiple pages
US8775901B2 (en) 2011-07-28 2014-07-08 SanDisk Technologies, Inc. Data recovery for defective word lines during programming of non-volatile memory arrays
KR20130019082A (ko) * 2011-08-16 2013-02-26 삼성전자주식회사 비휘발성 메모리 장치의 설계 방법
US9361986B2 (en) 2011-09-19 2016-06-07 Sandisk Technologies Inc. High endurance non-volatile storage
EP2780912B1 (en) 2011-11-18 2016-10-26 SanDisk Technologies LLC Non-volatile storage with data recovery
US9036415B2 (en) 2011-12-21 2015-05-19 Sandisk Technologies Inc. Mitigating variations arising from simultaneous multi-state sensing
US8737132B2 (en) 2012-01-06 2014-05-27 Sandisk Technologies Inc. Charge cycling by equalizing the source and bit line levels between pulses during no-verify write operations for NAND flash memory
US8582381B2 (en) 2012-02-23 2013-11-12 SanDisk Technologies, Inc. Temperature based compensation during verify operations for non-volatile storage
US8730722B2 (en) 2012-03-02 2014-05-20 Sandisk Technologies Inc. Saving of data in cases of word-line to word-line short in memory arrays
US8937835B2 (en) 2012-03-13 2015-01-20 Sandisk Technologies Inc. Non-volatile storage with read process that reduces disturb
JP5398872B2 (ja) * 2012-04-27 2014-01-29 株式会社東芝 半導体記憶装置
US8937837B2 (en) 2012-05-08 2015-01-20 Sandisk Technologies Inc. Bit line BL isolation scheme during erase operation for non-volatile storage
US9142305B2 (en) 2012-06-28 2015-09-22 Sandisk Technologies Inc. System to reduce stress on word line select transistor during erase operation
US9053819B2 (en) 2012-07-11 2015-06-09 Sandisk Technologies Inc. Programming method to tighten threshold voltage width with avoiding program disturb
US8750045B2 (en) 2012-07-27 2014-06-10 Sandisk Technologies Inc. Experience count dependent program algorithm for flash memory
JP2014053060A (ja) 2012-09-07 2014-03-20 Toshiba Corp 半導体記憶装置及びその制御方法
US20140071761A1 (en) 2012-09-10 2014-03-13 Sandisk Technologies Inc. Non-volatile storage with joint hard bit and soft bit reading
JP2014063551A (ja) 2012-09-21 2014-04-10 Toshiba Corp 半導体記憶装置
US9810723B2 (en) 2012-09-27 2017-11-07 Sandisk Technologies Llc Charge pump based over-sampling ADC for current detection
US9164526B2 (en) 2012-09-27 2015-10-20 Sandisk Technologies Inc. Sigma delta over-sampling charge pump analog-to-digital converter
US20140108705A1 (en) 2012-10-12 2014-04-17 Sandisk Technologies Inc. Use of High Endurance Non-Volatile Memory for Read Acceleration
US8885416B2 (en) 2013-01-30 2014-11-11 Sandisk Technologies Inc. Bit line current trip point modulation for reading nonvolatile storage elements
US8929142B2 (en) * 2013-02-05 2015-01-06 Sandisk Technologies Inc. Programming select gate transistors and memory cells using dynamic verify level
US9311999B2 (en) * 2013-09-06 2016-04-12 Micron Technology, Inc. Memory sense amplifiers and memory verification methods
US9165683B2 (en) 2013-09-23 2015-10-20 Sandisk Technologies Inc. Multi-word line erratic programming detection
GB2518632A (en) * 2013-09-26 2015-04-01 Ibm Estimation of level-thresholds for memory cells
US9620238B2 (en) 2014-01-20 2017-04-11 Sandisk Technologies Llc Methods and systems that selectively inhibit and enable programming of non-volatile storage elements
JP2015204126A (ja) 2014-04-16 2015-11-16 株式会社東芝 半導体記憶装置
US9484086B2 (en) 2014-07-10 2016-11-01 Sandisk Technologies Llc Determination of word line to local source line shorts
US9460809B2 (en) 2014-07-10 2016-10-04 Sandisk Technologies Llc AC stress mode to screen out word line to word line shorts
US9443612B2 (en) 2014-07-10 2016-09-13 Sandisk Technologies Llc Determination of bit line to low voltage signal shorts
US9514835B2 (en) 2014-07-10 2016-12-06 Sandisk Technologies Llc Determination of word line to word line shorts between adjacent blocks
US9218874B1 (en) 2014-08-11 2015-12-22 Sandisk Technologies Inc. Multi-pulse programming cycle of non-volatile memory for enhanced de-trapping
US9202593B1 (en) 2014-09-02 2015-12-01 Sandisk Technologies Inc. Techniques for detecting broken word lines in non-volatile memories
US9240249B1 (en) 2014-09-02 2016-01-19 Sandisk Technologies Inc. AC stress methods to screen out bit line defects
US9449694B2 (en) 2014-09-04 2016-09-20 Sandisk Technologies Llc Non-volatile memory with multi-word line select for defect detection operations
US9443606B2 (en) 2014-10-28 2016-09-13 Sandisk Technologies Llc Word line dependent two strobe sensing mode for nonvolatile storage elements
US9875805B2 (en) 2015-01-23 2018-01-23 Sandisk Technologies Llc Double lockout in non-volatile memory
US9564213B2 (en) 2015-02-26 2017-02-07 Sandisk Technologies Llc Program verify for non-volatile storage
KR20160108770A (ko) 2015-03-06 2016-09-20 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그것의 동작 방법
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
US9659666B2 (en) 2015-08-31 2017-05-23 Sandisk Technologies Llc Dynamic memory recovery at the sub-block level
US9711211B2 (en) 2015-10-29 2017-07-18 Sandisk Technologies Llc Dynamic threshold voltage compaction for non-volatile memory
US9564226B1 (en) 2015-10-30 2017-02-07 Sandisk Technologies Llc Smart verify for programming non-volatile memory
US10014063B2 (en) 2015-10-30 2018-07-03 Sandisk Technologies Llc Smart skip verify mode for programming a memory device
US9842655B2 (en) * 2015-12-08 2017-12-12 Intel Corporation Reducing verification checks when programming a memory device
US9698676B1 (en) 2016-03-11 2017-07-04 Sandisk Technologies Llc Charge pump based over-sampling with uniform step size for current detection
US10452480B2 (en) 2017-05-25 2019-10-22 Micron Technology, Inc. Memory device with dynamic processing level calibration
US10140040B1 (en) * 2017-05-25 2018-11-27 Micron Technology, Inc. Memory device with dynamic program-verify voltage calibration
US10373696B2 (en) * 2017-08-18 2019-08-06 Western Digital Technologies, Inc. Methods and operations using XNOR functions with flash devices and solid state drives
TWI646550B (zh) * 2017-12-08 2019-01-01 旺宏電子股份有限公司 非揮發性記憶體及其寫入方法
US10664194B2 (en) 2018-05-16 2020-05-26 Micron Technology, Inc. Memory system with dynamic calibration using a variable adjustment mechanism
US10566063B2 (en) 2018-05-16 2020-02-18 Micron Technology, Inc. Memory system with dynamic calibration using a trim management mechanism
US10990466B2 (en) 2018-06-20 2021-04-27 Micron Technology, Inc. Memory sub-system with dynamic calibration using component-based function(s)
CN109524047B (zh) * 2018-10-15 2021-04-16 上海华虹宏力半导体制造有限公司 快闪存储器的字节编程重试方法
US12075618B2 (en) 2018-10-16 2024-08-27 Silicon Storage Technology, Inc. Input and digital output mechanisms for analog neural memory in a deep learning artificial neural network
US10741568B2 (en) * 2018-10-16 2020-08-11 Silicon Storage Technology, Inc. Precision tuning for the programming of analog neural memory in a deep learning artificial neural network
KR102528274B1 (ko) 2018-11-06 2023-05-02 삼성전자주식회사 비휘발성 메모리 장치 및 그 구동 방법
US10910075B2 (en) 2018-11-13 2021-02-02 Sandisk Technologies Llc Programming process combining adaptive verify with normal and slow programming speeds in a memory device
KR102641097B1 (ko) * 2018-12-31 2024-02-27 삼성전자주식회사 저항성 메모리 장치 및 저항성 메모리 장치의 프로그램 방법
US10748622B2 (en) 2019-01-21 2020-08-18 Sandisk Technologies Llc State adaptive predictive programming
CN111863087B (zh) * 2019-04-29 2022-08-30 北京兆易创新科技股份有限公司 一种控制编程性能的方法和装置
US10839928B1 (en) 2019-05-16 2020-11-17 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
US11081198B2 (en) 2019-05-16 2021-08-03 Sandisk Technologies Llc Non-volatile memory with countermeasure for over programming
CN112945355A (zh) * 2021-01-27 2021-06-11 武汉正维电子技术有限公司 双脉冲数据采集方法
US11556416B2 (en) 2021-05-05 2023-01-17 Apple Inc. Controlling memory readout reliability and throughput by adjusting distance between read thresholds
CN115512747A (zh) 2021-06-23 2022-12-23 桑迪士克科技有限责任公司 用于具有相邻平面干扰检测的智能验证的设备和方法
US11847342B2 (en) 2021-07-28 2023-12-19 Apple Inc. Efficient transfer of hard data and confidence levels in reading a nonvolatile memory
JP2023093187A (ja) * 2021-12-22 2023-07-04 キオクシア株式会社 半導体記憶装置
US12046267B2 (en) * 2022-08-25 2024-07-23 Sandisk Technologies Llc Advanced window program-verify

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0856850A2 (en) * 1997-01-31 1998-08-05 Kabushiki Kaisha Toshiba Multi-level memory
US6243290B1 (en) * 1999-08-31 2001-06-05 Hitachi, Ltd. Nonvolatile semiconductor memory device

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5218569A (en) * 1991-02-08 1993-06-08 Banks Gerald J Electrically alterable non-volatile memory with n-bits per memory cell
US6222762B1 (en) * 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
KR100253868B1 (ko) 1995-11-13 2000-05-01 니시무로 타이죠 불휘발성 반도체기억장치
KR100327421B1 (ko) * 1997-12-31 2002-07-27 주식회사 하이닉스반도체 비휘발성 메모리 소자의 프로그램 시스템 및 그의 프로그램 방법
JP2000040382A (ja) 1998-07-23 2000-02-08 Sony Corp 不揮発性半導体記憶装置およびそのデータ書き込み方法
KR100319559B1 (ko) 1999-11-01 2002-01-05 윤종용 문턱 전압 분포들 사이의 마진을 일정하게 유지할 수 있는멀티-스테이트 불휘발성 반도체 메모리 장치
US6538922B1 (en) * 2000-09-27 2003-03-25 Sandisk Corporation Writable tracking cells
US20020174295A1 (en) * 2001-01-29 2002-11-21 Ulrich Thomas R. Enhanced file system failure tolerance
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
US6621739B2 (en) * 2002-01-18 2003-09-16 Sandisk Corporation Reducing the effects of noise in non-volatile memories through multiple reads

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0856850A2 (en) * 1997-01-31 1998-08-05 Kabushiki Kaisha Toshiba Multi-level memory
US6243290B1 (en) * 1999-08-31 2001-06-05 Hitachi, Ltd. Nonvolatile semiconductor memory device

Also Published As

Publication number Publication date
TWI314325B (en) 2009-09-01
US7584391B2 (en) 2009-09-01
DE60312729D1 (de) 2007-05-03
US7243275B2 (en) 2007-07-10
EP1568041B1 (en) 2007-03-21
DE60312729T2 (de) 2007-12-06
US20060107136A1 (en) 2006-05-18
KR20050101159A (ko) 2005-10-20
US20040109362A1 (en) 2004-06-10
JP4382675B2 (ja) 2009-12-16
EP1568041A1 (en) 2005-08-31
TW200418043A (en) 2004-09-16
ATE357727T1 (de) 2007-04-15
WO2004053882A1 (en) 2004-06-24
JP2006509326A (ja) 2006-03-16
CN1720586B (zh) 2011-05-18
AU2003296003A1 (en) 2004-06-30
CN1720586A (zh) 2006-01-11
US7073103B2 (en) 2006-07-04
US20070234144A1 (en) 2007-10-04

Similar Documents

Publication Publication Date Title
KR101017321B1 (ko) 다중 상태 메모리들을 위한 스마트 검사
US9224456B2 (en) Setting operating parameters for memory cells based on wordline address and cycle information
US9195586B2 (en) Determining bias information for offsetting operating variations in memory cells based on wordline address
US5619453A (en) Memory system having programmable flow control register
JP4655245B2 (ja) フラッシュメモリ装置におけるメモリブロック消去
US7623390B2 (en) Programming method for non-volatile memory and non-volatile memory-based programmable logic device
US7663914B2 (en) Method of programming a multi bit flash memory device to avoid programming errors and a device implementing the same
US7903467B2 (en) Programming method of multi-bit flash memory device for reducing programming error
US8000149B2 (en) Non-volatile memory device
JP4796125B2 (ja) メモリセルの部分集合を個別に検証して追加的に消去する不揮発性メモリの消去
US7525838B2 (en) Flash memory device and method for programming multi-level cells in the same
US6603680B2 (en) Semiconductor device and data processing system
US20120239858A1 (en) Apparatus and method for determining an operating condition of a memory cell based on cycle information
US20080068883A1 (en) Flash memory devices and programming methods for the same
US20010052102A1 (en) Method and apparatus for performing error correction on data read from a multistate memory
JP2007510253A (ja) 不揮発性メモリアレイの読み取り誤り検出のための方法、回路、及びシステム
JP2001508218A (ja) 複数デジタル・ビットのための安定化回路
KR100769258B1 (ko) 문턱 전압 분포를 줄일 수 있는 불 휘발성 메모리 장치
JP2008536248A (ja) メモリセルの部分集合を個別に検証してさらにソフトプログラミングすることによる不揮発性メモリのソフトプログラミング
EP2074627B1 (en) Segmented bitscan for verification of programming
US20140082437A1 (en) Block And Page Level Bad Bit Line And Bits Screening Methods For Program Algorithm
JP2009043391A (ja) フラッシュメモリ素子のプログラム方法
JP4159336B2 (ja) プログラム検証システム
US7184310B2 (en) Sequential program-verify method with result buffering

Legal Events

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

Payment date: 20140117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150119

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160119

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170119

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180118

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190116

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200115

Year of fee payment: 10