KR20140065440A - 비휘발성 저장소자에 대한 온 칩 다이내믹 판독 - Google Patents

비휘발성 저장소자에 대한 온 칩 다이내믹 판독 Download PDF

Info

Publication number
KR20140065440A
KR20140065440A KR1020147009469A KR20147009469A KR20140065440A KR 20140065440 A KR20140065440 A KR 20140065440A KR 1020147009469 A KR1020147009469 A KR 1020147009469A KR 20147009469 A KR20147009469 A KR 20147009469A KR 20140065440 A KR20140065440 A KR 20140065440A
Authority
KR
South Korea
Prior art keywords
read
volatile storage
storage elements
results
levels
Prior art date
Application number
KR1020147009469A
Other languages
English (en)
Other versions
KR101961975B1 (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 KR20140065440A publication Critical patent/KR20140065440A/ko
Application granted granted Critical
Publication of KR101961975B1 publication Critical patent/KR101961975B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • G11C16/3418Disturbance prevention or evaluation; Refreshing of disturbed memory data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • 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/349Arrangements for evaluating degradation, retention or wearout, e.g. by counting erase cycles
    • G11C16/3495Circuits or methods to detect or delay wearout of nonvolatile EPROM or EEPROM memory devices, e.g. by counting numbers of erase or reprogram cycles, by using multiple memory areas serially or cyclically
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/56Indexing scheme relating to G11C11/56 and sub-groups for features not covered by these groups
    • G11C2211/564Miscellaneous aspects
    • G11C2211/5644Multilevel memory comprising counting devices

Landscapes

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

Abstract

본 명세서에는 칩(예컨대, 메모리 다이) 상에서 판독 레벨들을 동적으로 결정하는 것이 개시된다. 하나의 방법은, 메모리 다이 상의 비휘발성 저장소자들의 그룹을 제 1 세트의 판독 레벨들에서 판독하는 단계를 포함한다. 가장 최신의 2개의 판독 레벨들에 대한 결과들이 메모리 다이 상에 저장된다. 상기 그룹 내의 비휘발성 저장소자들 중에서, 가장 최신의 2개의 판독 레벨들에 대한 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트가 판별된다. 이러한 판별은 메모리 다이 상에 저장된 결과들을 이용하여 메모리 다이 상에서 수행된다. 상기 카운트가 기결정된 기준값(criterion)에 도달한 때의 판독 레벨에 기초하여, 복수의 데이터 상태들 중 인접한 데이터 상태들의 제 1 쌍을 서로 구별하기 위해 동적 판독 레벨이 결정된다. 판독 레벨은 메모리 다이 상에서 동적으로 결정될 수도 있음을 유의해야 한다.

Description

비휘발성 저장소자에 대한 온 칩 다이내믹 판독{ON CHIP DYNAMIC READ FOR NON-VOLATILE STORAGE}
본 발명은 비휘발성 메모리를 위한 기술에 관한 발명이다.
반도체 메모리는 다양한 전자 디바이스들에서 점점 더 인기있게 사용되어 왔다. 예를 들어, 비휘발성 반도체 메모리는 개인용 네비게이션 디바이스, 셀룰러 전화기, 디지털 카메라, 개인 휴대정보 단말기(PDA), 휴대용 연산 장치, 비-휴대용 연산 장치 및 기타 장치에서 사용된다. 전기적으로 소거가능하고 프로그램가능한 판독 전용 메모리(Electrical Erasable Programmable Read Only Memory : EEPROM) 및 플래시 메모리가 가장 인기있는 비휘발성 반도체 메모리이다.
EEPROM과 플래시 메모리 둘다는 플로팅 게이트를 이용하며, 플로팅 게이트는 반도체 기판의 채널 영역 위에 위치하며 그리고 상기 채널 영역으로부터 절연된다. 플로팅 게이트와 채널 영역은 소스 및 드레인 영역 사이에 위치한다. 플로팅 게이트로부터 절연되는 제어 게이트가 플로팅 게이트 위에 제공된다. 트랜지스터의 임계전압은 플로팅 게이트 상에 보유되는 전하의 양에 의해서 제어된다. 즉, 소스와 드레인 사이에서 도통을 허용하기 위해서 트랜지스터가 턴온되기 전에 제어 게이트에 인가되어야만 하는 전압의 최소량은, 플로팅 게이트 상의 전하의 레벨에 의해 제어된다.
일부 EEPROM과 플래시 메모리 디바이스는 2개 범위의 전하들을 저장하는데 이용되는 플로팅 게이트를 가지며, 따라서 메모리 소자는 2개의 상태들, 즉 소거 상태와 프로그래밍된 상태 사이에서 프로그래밍/소거될 수 있다. 이러한 플래시 메모리 디바이스는 때때로 이진(binayr) 플래시 메모리 디바이스라고 지칭되는바, 이는 각각의 메모리 소자가 1 비트의 데이터를 저장할 수 있기 때문이다.
다수개의 서로다른 허용된/유효한(allowed/valid) 프로그래밍된 임계전압 범위들을 식별함으로써, 다중-상태(또는 다중-레벨이라고 지칭됨) 플래시 메모리 디바이스가 구현될 수 있다. 각각의 상이한 임계전압 범위는, 메모리 디바이스에 인코딩된 데이터 비트들의 세트에 대한 기결정된 값에 대응한다. 예를 들어, 4개의 상이한 임계전압 범위들에 대응하는 4개의 상이한 전하 대역들(bands) 중 하나에 메모리 소자가 위치될 수 있다면, 각각의 메모리 소자는 2 비트의 데이터를 저장할 수 있다.
일반적으로, 프로그래밍 동작 동안에 제어 게이트에 인가되는 프로그램 전압 VPGM 은, 시간이 지남에 따라 그 크기가 증가하는 일련의 펄스들로 인가된다. 가능한 하나의 방법에 있어서, 상기 펄스들의 크기는, 각각의 연속적인 펄스들에 대해서 0.2V ~ 0.4V 정도의 소정의 스텝 사이즈 만큼 증가된다. VPGM 이 플래시 메모리 소자들의 제어 게이트들에 인가될 수 있다. 프로그램 펄스들 사이의 시간에서 검증 동작이 수행된다. 즉, 병렬로 프로그래밍되는 소자들의 그룹의 각 소자의 프로그래밍 레벨이 연속적인 프로그래밍 펄스들 사이에서 판독되어, 각 소자의 프로그래밍 레벨이 각각의 소자가 프로그래밍될 예정인 검증 레벨과 같거나 또는 이보다 큰지를 판별한다. 다중 상태 플래시 메모리 소자들의 어레이의 경우에는, 소자의 각각의 상태에 대해서 검증 단계가 수행되어, 상기 소자가 데이터에 관련된 검증 레벨(data-associated verify level)에 도달했는지를 판별할 수 있다. 예를 들어, 4개의 상태들로 데이터를 저장할 수 있는 다중 상태 메모리 소자는, 3개의 비교 포인트에 대해 검증 동작을 수행할 필요가 있을 수도 있다.
또한, EEPROM 또는 낸드(NAND) 스트링의 낸드 플래시 메모리 디바이스와 같은 플래시 메모리 디바이스를 프로그래밍하는 경우, Vpgm 이 제어 게이트에 인가되고 비트라인은 접지되는 것이 전형적인바, 이는 셀 또는 메모리 소자(예컨대, 저장 소자)의 채널로부터 플로팅 게이트로 전자들이 주입되게 한다. 플로팅 게이트에 전자들이 축적되면, 상기 플로팅 게이트는 음으로(negatively) 충전되며 그리고 메모리 소자의 임계전압은 상승하게 되는바, 따라서 이러한 메모리 소자는 프로그래밍된 상태에 있다고 간주된다.
또한, 판독 동작 동안, 판독 기준 전압들이 판독될 저장소자들의 세트에 인가되며, 그리고 저장소자를 도통하게 하는 것이 어떤 판독 기준 전압인지가 판별된다. 판독 기준 전압들은 저장소자들의 데이터 상태들이 서로 구별될 수 있게끔 설정된다. 하지만, 판독 기준 전압들은 고정되는 것이 일반적이며, 그리고 가령, 전하 누설, 온도 변화들, 프로그래밍 싸이클의 횟수 기타 등등의 인자들로 인하여 저장소자들의 세트의 임계전압 분포가 변할 수 있다라는 사실을 설명하지는 못한다. 그 결과, 판독 에러들이 발생할 수 있다.
임계전압 분포들에서의 시프트(shift)를 해결하기 위하여, 새로운 판독 기준 전압들이 "동적으로(dynamically)" 결정될 수 있다. 하지만, 새로운 판독 레벨들을 동적으로 결정하기 위한 몇몇 종래의 방법들은 각각의 상태에 대하여 임계전압 분포를 구성할 것을 요구한다. 하지만, 이러한 것은 상당한 계산을 요구하며, 이는 시간을 소모할 수 있다. 또한, 이들 계산들은 메모리 제어기에서 수행될 필요가 있을 수도 있다.
판독 레벨들을 동적으로 결정하기 위한 종래기술 중 하나는, 데이터를 판독하고 그리고 에러 정정 코드(error correction codes: ECC)를 이용하여 에러들이 정정될 수 있는지를 판별하는 것이다. 만일, ECC 가 에러들을 정정할 수 없다면, 판독 레벨들이 시프트될 수 있으며 그리고 데이터가 다시 판독된다. 만일, ECC 가 여전히 에러들을 정정할 수 없다면, 데이터가 성공적으로 판독될 때까지 상기 프로세스가 반복된다. 일반적으로, 이러한 프로세스는 ECC 를 이용한 정정을 시도하기 위하여 메모리 어레이 외부로 데이터를 전송하는 것을 포함한다. 데이터를 메모리 어레이 외부로 전송하는 것과 ECC 를 수행하는 것 모두는, 상당한 시간을 소비할 수도 있다.
또한, 메모리 어레이가 작아지게 됨에 따라, 셀간 간섭(cell to cell interference) 등의 많은 기생 효과들, 그리고 프로그램 잡음 등의 비-이상적인 효과들이 증가하며, 이는 프로그래밍된 각각의 상태에 대하여 더 넓은 임계 전압 분포들을 야기한다. 따라서, 프로그래밍된 각각의 상태 사이에서 이용가능한 여지(room)가 각각의 세대 별로 점점 더 작아지며, 이는 에러 실패 비트 카운트가 증가함을 의미한다. 따라서, 에러 실패 비트 카운트가 최소화되도록, 각각의 상태에 대한 판독 레벨들을 선택하는 것이 더 중요해지고 있다.
칩(예컨대, 메모리 다이)에서 판독 레벨들을 동적으로 결정하는 기술이 서술된다. 일실시예에서, 비휘발성 저장소자들(예컨대, 메모리 셀들)에 대한 초기 판독이 디폴트 판독 레벨에서 수행된다. 이러한 판독이, 각각의 메모리 셀이 판독 레벨 보다 높거나 혹은 낮은 임계전압을 가졌는지를 판별할 수도 있다는 점을 유의해야 한다. 판독 결과들은 메모리 다이 상의 데이터 래치들의 제 1 세트에 저장될 수도 있다.
다음으로, 다시 한번 판독하기 전에 판독 레벨들이 약간(slightly) 조정될 수 있다. 제 2 판독의 결과들은 데이터 래치들의 제 2 세트에 저장될 수 있다. 다음으로, 데이터 래치들의 2개의 세트들에 있는 결과들이 메모리 셀 대 메모리 셀로(on a memory cell by memory cell basis) 비교될 수 있다. 사실, 이러한 비교는 어떤 메모리 셀이 2개의 판독들에 대해서 다른 결과를 보여주는지를 판별할 수 있다(예컨대, "오류-비교들(mis-compares)"). 만일, 오류-비교들의 개수가 기결정된 임계값보다 크다면, 다른 판독 레벨에서 또 다른 판독이 수행될 수도 있다. 오류-비교들의 개수가 기결정된 임계값보다 작은 경우, 마지막 판독의 결과가 최종 판독 결과로서 이용될 수 있다. 또한, 이용되었던 마지막 판독 레벨은, 후속 판독 동작들을 위한 판독 레벨로 이용될 수도 있다. 따라서, 판독 레벨이 동적으로 결정될 수 있다. 판독 레벨은 메모리 다이 상에서 동적으로 결정됨을 유의해야 한다.
본 발명의 일실시예에서는 판독 레벨들을 동적으로 확립하기 위하여 메모리 다이로부터 외부 콘트롤러로 데이터를 전송하지 않음을 유의해야 한다. 또한, 일실시예는 판독 레벨들을 동적으로 확립하기 위하여 ECC 알고리즘을 실행하지 않는다. 따라서, 적절한 판독 레벨들을 찾기 위하여 메모리 다이 외부로 데이터를 전송하지 않기 때문에, 시간이 절약된다. 또한, 적절한 판독 레벨들을 찾기 위하여 ECC 알고리즘을 수행할 필요가 없기 때문에 시간이 절약된다.
또한, 다음을 유의해야 하는바, 몇몇 경우에 있어서, 외부 콘트롤러 없이 메모리 디바이스를 판매하는 것이 바람직할 수도 있다. 예를 들어, 일부 고객들은 그 자신의 메모리 콘트롤러를 제공하기를 원할 수도 있다. 따라서, 칩 상에서 판독 레벨들을 동적으로 결정하는 실시예들은, 적절한 판독 레벨들을 콘트롤러가 결정하는 임의의 특별한 필요조건이 없이도 메모리 디바이스를 제공할 수 있는 장점을 갖는다.
도1은 낸드 스트링의 평면도이다.
도2는 낸드 스트링의 등가회로도이다.
도3은 비휘발성 메모리 시스템의 블록도이다.
도4는 메모리 어레이의 일실시예를 도시한 블록도이다.
도5는 감지 블록의 일실시예를 도시한 블록도이다.
도6a는 Vt 분포들의 예시적인 세트를 도시한다.
도6b는 Vt 분포들의 예시적인 세트를 도시한다.
도7의 2개의 데이터 상태들에 대한 임계전압 분포들을 나타낸다.
도8은 온-칩 판독 레벨을 동적으로 결정하는 프로세스의 일실시예에 대한 순서도이다.
도9는 판독 레벨들 및 이와 관련된 오류-비교들(mis-compares)의 일례를 도시한다.
도10a는 메모리 다이 상에서 판독 레벨을 동적으로 결정하는 프로세스의 일실시예에 대한 순서도이다.
도10b는 데이터 래치들의 일례를 도시한다.
도11a는 일실시예에서 오류-비교들과 오류 판독들(misreads) 사이의 가능한 관련성에 대한 그래프를 도시한다.
도11b는 일실시예에서 오류-비교들과 오류 판독들(misreads) 사이의 상관관계(correlation)를 나타내는 그래프를 도시한다.
도12는 판독 동작을 수행하기 위한 프로세스의 일실시예에 대한 순서도이다.
도13a는 판독 레벨들을 동적으로 결정하기 위한 프로세스의 일실시예에 대한 순서도이다.
도13b는 판독 레벨들을 동적으로 결정하기 위한 프로세스의 일실시예에 대한 순서도이다.
도14a는 다른 워드라인을 위해 하나의 워드라인에서 동적으로 결정된 판독 레벨들을 이용하는 프로세스의 일실시예에 대한 순서도이다.
도14b는 블록들에서 동적으로 결정된 판독 레벨들을 이용하는 프로세스의 일실시예에 대한 순서도이다.
도15는 하나의 워드라인 전압을 이용하여 2개의 서로 다른 임계전압들에 대한 감지 프로세스를 도시한 순서도이다.
도16은 소스-팔로우어 센싱을 이용하는 판독 프로세스의 일례를 나타낸 순서도이다.
도17은 판독 레벨들을 동적으로 결정하기 위한 프로세스의 일실시예에 대한 순서도이다.
일부 실시예들에서, 칩 상에서 판독 레벨들을 동적으로 결정하는 것은, 낸드(NAND) 메모리 어레이를 이용하여 수행된다. 하지만, 판독 레벨들을 동적으로 결정하는 것은, 다른 임의 유형의 비휘발성 저장소자에서도 수행될 수도 있음을 유의해야 한다. 낸드는, 2개의 선택 게이트들 사이에 샌드위치된 직렬로 배치된 다수의 트랜지스터들을 포함하는 플래시 메모리 시스템의 일례이다. 직렬인 트랜지스터들과 선택 게이트들은, 낸드 스트링이라고 지칭된다. 도1은 하나의 낸드 스트링을 도시한 평면도이다. 도2는 그 등가 회로도이다. 도1 및 도2에 도시된 낸드 스트링은 제 1 선택 게이트(혹은 드레인측 선택 게이트)(120)와 제 2 선택 게이트(혹은 소스측 선택 게이트)(122) 사이에 샌드위치된 직렬로 배치된 4개의 트랜지스터들(100, 102, 104, 106)을 포함한다. 선택 게이트(120)는 비트라인 콘택(126)을 통해 낸드 스트링을 비트라인에 연결한다. 선택 게이트(122)는 낸드 스트링을 소스라인(128)에 연결한다. 선택 게이트(120)는, 선택 라인(SGD)에 적절한 전압들을 인가함으로서 제어될 수 있다. 선택 게이트(122)는, 선택 라인(SGS)에 적절한 전압을 인가함으로서 제어될 수 있다. 각각의 트랜지스터(100, 102, 104, 106)들은 제어 게이트와 플로팅 게이트를 갖는다. 예를 들면, 트랜지스터(100)는 제어 게이트(100CG)와 플로팅 게이트(100FG)를 갖는다. 트랜지스터(102)는 제어 게이트(102CG)와 플로팅 게이트(102FG)를 갖는다. 트랜지스터(104)는 제어 게이트(104CG)와 플로팅 게이트(104FG)를 갖는다. 트랜지스터(106)는 제어 게이트(106CG)와 플로팅 게이트(106FG)를 갖는다. 제어 게이트(100CG)는 워드라인(WL3)에 연결되어 있고, 제어 게이트(102CG)는 워드라인(WL2)에 연결되어 있고, 제어 게이트(104CG)는 워드라인(WL1)에 연결되어 있고, 제어 게이트(106CG)는 워드라인(WL0)에 연결되어 있다.
비록, 도1 및 도2는 하나의 낸드 스트링 내의 4개의 메모리 셀들을 도시하고 있지만, 4개의 트랜지스터를 사용하는 것은 다만 일례일 뿐이다. 낸드 스트링은 4개보다 더 적은 메모리 셀들을 가질 수 있거나 또는 4개 보다 더 많은 메모리 셀들을 가질 수 있다. 예를 들면, 어떤 낸드 스트링들은 8개의 메모리 셀들을 포함할 수 있으며, 16개, 32개, 64개, 128개 등등의 메모리 셀들을 포함할 수도 있다. 본 명세서에서 논의되는 바는 하나의 낸드 스트링에 있는 메모리 셀들의 특정 개수에 한정되는 것이 아니다.
낸드 구성을 사용하는 플래시 메모리 시스템의 전형적인 구조는 복수개의 낸드 스트링들을 포함할 것이다. 각각의 낸드 스트링은 선택 라인 SGS에 의해서 제어되는 소스 선택 게이트에 의해서 소스 라인에 연결되며 그리고 선택 라인 SGD에 의해서 제어되는 드레인 선택 게이트에 의해서 관련 비트라인에 연결된다. 각각의 비트라인과 비트라인 콘택을 통하여 그 비트라인에 연결되는 각각의 낸드 스트링(들)은 메모리 셀들의 어레이의 컬럼들을 포함한다. 비트라인들은 다수의 낸드 스트링들과 공유된다. 일반적으로, 비트라인은 낸드 스트링들의 꼭대기에서 워드라인들과 수직되는 방향으로 진행하며 그리고 하나 이상의 감지 증폭기에 연결된다.
각각의 메모리 셀은 데이터(디지탈 또는 아날로그)를 저장할 수 있다. 디지탈 데이터 1 비트를 저장할 때에, 메모리 셀의 가능한 임계전압의 범위는, 논리 데이터 "1" 과 "0"에 할당되는 2개의 범위로 나뉜다. 낸드 타입의 플래시 메모리에 관한 일 실시예에서, 메모리 셀이 소거된 이후에 임계전압은 음의 값을 갖으며, 이는 논리 "1" 로 정의된다. 프로그램 동작 이후에 임계전압은 양의 값을 갖으며, 이는 논리 "0" 로 정의된다. 임계전압이 음(negative)이며 제어 게이트에 0 볼트가 인가되어 읽기(read) 동작이 시도될 때, 상기 메모리 셀은, 논리 "1" 을 저장하고 있음을 표시하기 위해 턴온될 것이다. 임계전압이 양(positive)이며 제어 게이트에 0 볼트가 인가되어 읽기(read) 동작이 시도될 때, 상기 메모리 셀은 턴온되지 않을 것인 바, 이는 논리 "0"이 저장되어 있음을 나타낸다.
복수 레벨들의 데이터를 저장하는 경우에, 가능한 임계전압의 범위는 데이터의 레벨 개수만큼 나뉘어 진다. 예를 들면, 4개 레벨의 정보가 저장되는 경우(2 비트의 데이터), 데이터 값 "11", "10", "01", "00" 에 할당되는 네 개의 임계전압 범위들이 존재할 것이다. 낸드 타입 메모리에 관한 일 실시예에서, 소거 동작 이후의 임계전압은 음이며 "11"로 정의된다. 양의 임계전압들은 데이터 상태 "10", "01", "00"를 위해 사용된다. 만일, 8개 레벨의 정보(혹은 상태)가 저장된다면(즉, 3 비트의 데이터), "000" , "001" , "010" , "011" , "100" , "101" , "110" 및 "111" 의 데이터 값들에 할당되는 8개의 임계전압 범위들이 존재할 것이다.
메모리 셀에 프로그래밍되는 데이터와 상기 메모리 셀의 임계 전압 레벨들 사이의 특정한 관계는, 그 메모리 셀에 적용된 데이터 인코딩 체계에 의존한다. 예를 들어, 미국등록특허(US 6,222,762)와 미국공개특허(공개번호 2004/0255090)에는 다중-상태 플래시 메모리 셀에 대한 다양한 데이터 인코딩 체계가 설명되어 있는데, 이들 미국등록특허 및 미국공개특허 둘다는 본 발명에 대한 참조로서 그 전체내용이 본 명세서에 통합된다. 일실시예에서는, 그레이 코드 할당(Gray code assignment)을 이용하여 데이터 값들이 임계전압 범위들에 할당되는바, 따라서 플로팅 게이트의 임계전압이, 오류로 인해 인접한 물리적인 상태로 쉬트프되더라도, 오직 1 비트만이 영향을 받을 것이다. 일부 실시예들에서, 데이터 인코딩 체계는 서로 다른 워드라인에 대해서 변경될 수 있으며, 데이터 인코딩 체계는 시간이 지남에 따라 변경될 수 있으며, 혹은 랜덤 워드라인들에 대한 데이터 비트는 반전될 수도 있으며, 아니면 데이터 패턴 민감도를 감소시키기 위하여 그리고 메모리 셀들 웨어 온(wear on)하도록 랜덤화될 수도 있다.
낸드형 플래시 메모리들과 이들의 동작에 대한 관련 사례들은, US 5,570,315, US 5,774,397, US 6,046,935, US 6,456,528, 및 US 2003/0002348 이라는 미국등록특허들 및 미국특허출원들에 제공되며, 이들 특허 문헌들은 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다. 본 발명에서 논의되는 바는 다른 유형들의 비휘발성 메모리 뿐만 아니라 낸드 이외의 다른 유형의 플래시 메모리에도 또한 적용될 수 있다.
낸드 플래시 메모리 뿐만 아니라 다른 유형의 비휘발성 저장소자들도 또한 이용될 수 있다. 예를 들면, 기본적으로는 질화물 층에 트래핑된 전하를 이용하는 메모리 셀인 소위 TANOS 구조(실리콘 기판 상에 TaN-Al2O3-SiN-SiO2 의 적층된 층으로 구성됨)도 또한 이용될 수 있다. 플래시 EEPROM 시스템에서 유용한 다른 유형의 메모리 셀은, 비휘발성 방식으로 전하를 저장하기 위하여, 전도성 플로팅 게이트 대신에 비-전도성 유전체 물질을 이용한다. 그러한 셀은 Chan 등의 논문, "A True Single-Transistor Oxide-Nitride-Oxide EEPROM Device,"(IEEE Electron Device Letters, Vol. EDL-8, No. 3, March 1987, pp. 93-95)에서 설명된다. 실리콘 옥사이드, 실리콘 니트라이드, 그리고 실리콘 옥사이드("ONO")로 형성된 3중 층 유전체가 전도성 제어 게이트와 메모리 셀 채널 위의 반-전도성(semi-conductive) 기판 표면 사이에 샌드위치된다. 상기 셀은 상기 셀 채널로부터 상기 질화물 안으로 전자들을 주입함으로써 프로그래밍되며, 여기에서 전자들은 제한된 영역 내에 포획(trap)되고 저장된다. 이 저장된 전하는 검출가능한 방식으로 상기 셀의 채널 일부의 임계전압을 변화시킨다. 상기 메모리 셀은 고온의 정공(hot hole)들을 상기 질화물 내로 주입함으로써 소거된다. 또한, 노자키(Nozaki) 등의 논문, IEEE Journal of Solid-State Circuits, Vol. 26, No. 4, April 1991, pp. 497-501의 "A 1-Mb EEPROM with MONOS Memory Cell for Semiconductor Disk Application" 을 참조하면, 도핑된 폴리실리콘 게이트가 메모리셀 채널의 일부분 위로 신장되어 별도의 선택 트랜지스터를 형성하는 분리-게이트 구조(split-gate configuration)를 갖는 유사한 메모리 셀이 설명된다. 앞의 두 문헌은 그 전체가 본 명세서에 참조로써 포함된다. William D. Brown과 Joe E. Brewer에 의한 "Nonvolatile Semiconductor Memory Technology," IEEE Press, 1998의 1.2 섹션에 언급된 프로그래밍 기법들은, 본 출원에 대한 참조로서 본 명세서에 통합되며, 또한 상기 섹션에는 이들 기법들은 유전체 전하-포획 디바이스들에도 적용가능하다고 설명되어 있다. 다른 타입의 메모리 디바이스들이 또한 사용될 수 있다.
도3은 하나 이상의 메모리 다이 또는 칩들(212)을 포함할 수 있는 비휘발성 저장 디바이스(210)를 도시한다. 메모리 다이(212)는 메모리 셀들의 어레이(200)(2차원 또는 3차원), 제어 회로(220), 및 판독/기록 회로(230A, 230B)를 포함한다. 일 실시예에서, 다양한 주변 회로들에 의한 상기 메모리 어레이(200)로의 액세스는 어레이의 대향 측들 상에서 대칭적인 방식으로 구현되어, 각 측의 액세스 라인들 및 회로의 밀도는 절반으로 줄어든다. 판독/기록 회로들(230A, 230B)은 메모리 셀들의 페이지가 병렬로 판독되거나 프로그래밍될 수 있게 해주는 복수의 감지 블록들(300)을 포함한다. 메모리 어레이(100)는 로우 디코더들(240A, 240B)을 통해 워드 라인들에 의해 어드레싱될 수 있거나, 컬럼 디코더들(242A, 242B)을 통해 비트 라인들에 의해 어드레싱될 수 있다. 일반적인 실시예에서, 제어기(244)는 동일한 메모리 디바이스(210)(예를 들어, 착탈식 저장 카드 또는 패키지) 내에 하나 이상의 메모리 다이(212)로서 포함된다. 명령들 및 데이터는 라인들(232)을 통해 호스트와 제어기(244) 사이에서 전송되고 라인들(234)을 통해 제어기와 하나 이상의 메모리 다이들(212) 사이에서 전송된다. 일 실시예는 복수의 칩들(212)을 포함할 수 있다.
제어 회로(220)는 메모리 어레이(220) 상에서 메모리 동작들을 수행하기 위하여 판독/기록 회로들(230A, 230B)과 협력하여 동작한다. 제어 회로(220)는 상태 머신(222), 온-칩 어드레스 디코더(224) 및 전력 제어 모듈(226)을 포함한다. 상태 머신(222)은 메모리 동작들에 대한 칩-레벨 제어를 제공한다. 온-칩 어드레스 디코더(224)는 호스트 또는 메모리 제어기에 의해 사용되는 어드레스와 디코더들(240A, 240B, 242A, 및 242B)에 의해 사용되는 하드웨어 어드레스 사이의 어드레스 인터페이스를 제공한다. 전력 제어 모듈(226)은 메모리 동작들 중에 워드 라인들 및 비트 라인들에 공급되는 전력 및 전압들을 제어한다. 일 실시예에서, 전력 제어 모듈(226)은 공급 전압 보다 큰 전압들을 생성할 수 있는 하나 이상의 전하 펌프들(charge pumps)을 포함한다.
일 실시예에서, 제어 회로(220), 전력 제어 회로(226), 디코더 회로(224), 상태 머신 회로(222), 디코더 회로(242A), 디코더 회로(242B), 디코더 회로(240A), 디코더 회로(240B), 판독/기록 회로들(230A), 판독/기록 회로들(230B), 및/또는 제어기(224) 중 하나 또는 이것들의 임의의 조합은, 하나 이상의 관리 회로들로 지칭될 수도 있다.
도4는 메모리 셀 어레이(200)의 예시적인 구조를 도시한다. 일 실시예에서, 메모리 셀들의 어레이는 메모리 셀들의 M 블록들로 분할된다. 플래시 EEPROM 시스템들에서 일반적인 바와 같이, 블록은 소거의 단위(unit)이다. 즉, 각각의 블록은 함께 소거되는 최소 개수의 메모리 셀들을 포함한다. 각각의 블록은 일반적으로 다수의 페이지들로 분할된다. 페이지는 프로그래밍의 단위이다. 하나 이상의 데이터 페이지들은 일반적으로 메모리 셀들의 하나의 로우(row)에 저장된다. 페이지는 하나 이상의 섹터들을 저장할 수 있다. 섹터는 사용자 데이터 또는 오버헤드 데이터를 포함한다. 오버헤드 데이터는 일반적으로 섹터의 사용자 데이터로부터 계산된 ECC(에러 정정 코드)를 포함할 수 있다. 제어기의 부분(하기에서 설명됨)은, 데이터가 어레이 내로 프로그래밍될 때 ECC를 계산하며, 그리고 또한 데이터가 어레이로부터 판독될 때 ECC를 검사한다. 일실시예에서, 제어기(244)는 ECC에 기초하여 소정 개수의 판독 오류들을 정정할 수 있다.
대안적으로, ECC들 및/또는 다른 오버헤드 데이터는 그것들이 속한 사용자 데이터와는 다른 페이지들 또는 심지어 다른 블록들에 저장된다. 사용자 데이터의 섹터는 512 바이트이며, 이는 일반적으로 자기 디스크 드라이브에서의 섹터의 사이즈에 대응한다. 8 페이지 이상, 예를 들어, 32, 62, 128 이상의 페이지들과 같은 다수의 페이지들이 블록을 형성한다. 다른 사이즈의 블록들 및 구성들이 또한 사용될 수 있다.
또 다른 실시예에서, 비트 라인들은 짝수 비트 라인들과 홀수 비트 라인들로 분할된다. 홀수/짝수 비트 라인 아키텍쳐에서, 공통 워드 라인을 따라 있으며 홀수 비트 라인들에 연결된 메모리 셀들이 한번에 프로그래밍되며, 공통 워드 라인을 따라 있으며 짝수 비트 라인들에 연결된 저장 소자들은 또 다른 시간에 프로그래밍된다.
도4는 메모리 어레이(200)의 블록 i를 보다 자세히 도시한다. 블록 i는 X+1 비트 라인들 및 X+1개의 NAND 스트링들을 포함한다. 블록 i는 또한 64개의 데이터 워드 라인들(WL0-WL63), 2개의 더미 워드 라인들(WL_d0, WL_d1), 드레인측 선택 라인(SGD) 및 소스측 선택 라인(SGS)을 포함한다. 각각의 NAND 스트링의 일 단자는 (선택 라인 SGS에 연결된) 드레인 선택 게이트를 통해 대응하는 비트 라인에 연결되고, 또 다른 단자는 (선택 라인(SGS)에 연결된) 소스 선택 게이트를 통해 소스 라인에 연결된다. 64개의 데이터 워드 라인들 및 2개의 더미 워드 라인들이 존재하므로, 각각의 NAND 스트링은 64개의 데이터 메모리 셀들 및 2개의 더미 메모리 셀들을 포함한다. 다른 실시예들에서, NAND 스트링들은 64개의 데이터 메모리 셀들 및 2개의 더미 메모리 셀들 보다 더 많은 또는 더 적은 메모리 셀들을 가질 수 있다. 데이터 메모리 셀들은 사용자 또는 시스템 데이터를 저장할 수 있다. 더미 메모리 셀들은 일반적으로 사용자 또는 시스템 데이터를 저장하는데 사용되지 않는다. 일부 실시예들은 더미 메모리 셀들을 포함하지 않는다.
도5는 감지 모듈(480)로 지칭되는 코어부, 및 공통부(490)로 분할되는 개별 감지 블록(300)의 블록도이다. 일 실시예에서, 각각의 비트 라인에 대해 개별적인 감지 모듈(480)이, 그리고 복수의 감지 모듈들(480)의 세트에 대해 하나의 공통부(490)가 존재할 것이다. 일 실시예에서, 감지 블록은 하나의 공통부(490) 및 8개의 감지 모듈들(480)을 포함할 것이다. 그룹내의 감지 모듈들 각각은 데이터 버스(472)를 통해 관련된 공통부와 통신할 것이다. 보다 자세한 사항은 그 전체가 본 명세서에 참조로서 포함되는 미국 특허 출원 공개 제2006/0140007를 참조하도록 한다.
감지 모듈(480)은 연결된 비트 라인 내의 전도 전류(conduction current)가 소정의 임계레벨을 초과하는지 또는 소정의 임계레벨 미만인지를 결정하는 감지 회로(470)를 포함한다. 일부 실시예들에서, 감지 모듈(480)은 또한 통상적으로 감지 증폭기로서 칭해지는 회로를 포함한다. 감지 모듈(480)은 또한 연결된 비트 라인에 대한 전압 조건을 설정하기 위하여 사용되는 비트 라인 래치(482)를 포함한다. 예를 들어, 비트 라인 래치(482)에 래치된 소정의 상태는, 결과적으로 연결된 비트 라인이 프로그램 금지를 나타내는 상태가 되게할 것이다.
공통부(490)는 프로세서(492), 데이터 래치들의 세트(494), 및 상기 데이터 래치들의 세트(494)와 데이터 버스(420) 사이에 결합된 I/O 인터페이스(496)를 포함한다. 프로세서(492)는 연산들을 수행한다. 예를 들어, 프로세서의 기능들 중 하나는 감지된 메모리 셀 내에 저장된 데이터를 결정하고 상기 결정된 데이터를 데이터 래치들의 세트 내에 저장하는 것이다. 데이터 래치들의 세트(494)는 판독 동작 중에 프로세서(492)에 의해 결정되는 데이터 비트들을 저장하는데 사용된다. 일부 실시예들에서, 데이터 래치들(494)은 판독 레벨들을 동적으로 결정하는 프로세스의 일부로서, 제 1 및 제 2 판독 결과들을 저장하는데 이용된다. 데이터 래치들(494)은 또한 프로그램 동작 중에 데이터 버스(420)로부터 유입(importing)되는 데이터 비트들을 저장하는데 사용된다. 유입된 데이터 비트들은 메모리 내에 프로그래밍될 기록 데이터를 나타낸다. I/O 인터페이스(496)는 데이터 래치들(494)과 데이터 버스(420) 사이의 인터페이스를 제공한다.
판독 또는 감지 중에, 시스템의 동작은 어드레싱된 셀에 서로 다른 제어 게이트 전압들을 공급하는 것을 제어하는 상태 머신(222)의 제어하에 있다. 메모리에 의해 지원되는 다양한 메모리 상태들에 대응하는 다양한 소정의 제어 게이트 전압들을 거침에 따라, 감지 모듈(480)은 이 전압들 중 하나에 트립(trip)할 수 있고 버스(472)를 통해 감지 모듈(480)로부터 프로세서(492)로 출력이 제공될 것이다. 그 시점에서, 프로세서(492)는 입력 라인들(493)을 통해 상태 머신으로부터 얻은 인가된 제어 게이트 전압에 대한 정보 및 감지 모듈의 트립핑 이벤트(들)을 고려하여 결과적인 메모리 상태를 결정한다. 그후 프로세서(492)는 메모리 상태에 대한 바이너리 엔코딩을 연산하고 그리고 결과적인 데이터 비트들을 데이터 래치들(494)에 저장한다. 코어부의 또 다른 실시예에서, 비트 라인 래치(482)는 감지 모듈(480)의 출력을 래치하기 위한 래치로서, 그리고 상술된 것과 같은 비트 라인 래치로서의 두가지 역할을 수행한다.
몇몇 실시예들은 복수의 프로세서들(492)을 포함할 것으로 예상된다. 일 실시예에서, 각각의 프로세서(492)는 각각의 출력 라인들이 함께 와이어드-OR 되도록 된 출력 라인(도 5에 도시되지 않음)을 포함할 것이다. 몇몇 실시예들에서, 상기 출력 라인들은 와이어드-OR 라인에 연결되기 전에 인버팅된다. 이러한 구성은 프로그램 검증 프로세스 동안 프로그래밍 공정이 완료된 때에 대한 빠른 결정을 가능하게 해주는바, 이는 와이어드-OR 라인을 수신하는 상태 머신이, 프로그래밍되는 모든 비트들이 요구된 레벨에 도달했을 때를 결정할 수 있기때문이다. 예를 들어, 각각의 비트가 그것의 요구되는 레벨에 도달했을 때, 그 비트에 대한 논리 0이 와이어드-OR 라인으로 송신될 것이다(또는 데이터 1이 반전된다). 모든 비트들이 데이터 0을 출력할 때(또는 데이터 1이 반전될 때), 상태 머신은 프로그래밍 프로세스를 종료할 것을 인지한다. 각각의 프로세서가 8개의 감지 모듈들과 통신하는 실시예들에서, 상태 머신은 와이어드-OR 라인을 8번 판독해야 하거나(몇몇 실시예들에서), 또는 상태 머신이 한번만 와이어드-OR 라인을 판독하면 되도록 관련된 비트 라인들의 결과들을 축적하기 위하여 로직이 프로세서(492)에 부가된다.
프로그래밍 또는 검증 중에, 프로그래밍될 데이터는 데이터 버스(420)로부터 데이터 래치들(494)의 세트 내에 저장된다. 상태 머신의 제어하의 프로그램 동작은, 어드레싱된 메모리 셀들의 제어 게이트들에 인가되는 (크기가 증가하는)일련의 프로그래밍 전압 펄스들을 포함한다. 각각의 프로그래밍 펄스에는, 저장 소자가 요구된 저장 상태로 프로그래밍되었는지를 판단하기 위한 검증 프로세스가 뒤따른다. 프로세서(492)는 요구되는 메모리 상태와 관련하여 검증된 메모리 상태를 모니터링한다. 두 상태가 일치할 때, 프로세서(492)는 비트 라인이 프로그램 금지를 나타내는 상태로 견인(pull)되도록 비트 라인 래치(482)를 설정한다. 이것은 비트 라인에 결합된 셀이 그것의 제어 게이트 상에서 프로그래밍 펄스들에 노출된다하더라도, 상기 셀이 더 프로그래밍되는 것을 방지해준다. 다른 실시예들에서, 프로세서가 처음에 비트 라인 래치(482)를 로딩하고, 감지 회로는 검증 프로세스 중에 그것을 금지 값으로 설정한다.
데이터 래치 스택(494)은 감지 모듈에 대응하는 데이터 래치들의 스택을 포함한다. 일 실시예에서, 감지 모듈(480)당 3-5개(또는 또 다른 개수)의 데이터 래치들이 존재한다. 일 실시예에서 상기 래치들은 각각 1 비트이다. 일부 구현예들에서(그러나, 반드시는 그러한 것은 아님), 데이터 래치들이 시프트 레지스터로서 구현되어 그 내부에 저장된 병렬 데이터가 데이터 버스(420)를 위한 직렬 데이터로 변환되거나 그 반대의 경우도 가능하다. 바람직한 실시예에서, m 개의 메모리 셀들의 판독/기록 블록에 대응하는 모든 데이터 래치들이 함께 링크되어 블록 시프트 레지스터를 형성할 수 있으며, 따라서 데이터 블록이 직렬 전송(serial transfer)에 의해 입력 또는 출력될 수 있다. 특히, 판독/기록 모듈들의 뱅크는, 그것의 데이터 래치들의 세트 각각이 마치 전체 판독/기록 블록을 위한 시프트 레지스터의 일부인것 처럼 데이터 버스 내로 또는 데이터 버스로부터 데이터를 시프트하도록 적응된다.
판독 동작들 및 감지 증폭기들에 대한 추가적인 정보는 (1) 미국 특허 제7,196,931호 "Non-Volatile Memory And Method With Reduced Source Line Bias Errors,"; (2) 미국 특허 제7,023,736호 "Non-Volatile Memory And Method with Improved Sensing,"; (3) 미국 특허 출원 공개 제2005/0169082호; (4) 미국 특허 제7,196,928호 "Compensating for Coupling During Read Operations of Non-Volatile Memory" 및 (5) 미국 특허 출원 공개 제2006/0158947호 "Reference Sense Amplifier For Non-Volatile Memory"(2006/07/20 공개)에서 찾아볼 수 있다. 위에 렬거된 특허 5개의 문헌들 모두는 그 전체가 본 명세서에 참조로서 포함된다.
(검증을 사용한) 성공적인 프로그래밍 프로세스의 종료시, 메모리 셀들의 임계전압들은 프로그래밍된 메모리 셀들에 대한 하나 이상의 임계전압 분포들 또는 소거된 메모리 셀들에 대한 임계전압 분포 내에 적절히 있어야 한다. 도6a는 각각의 메모리 셀이 3 비트의 데이터를 저장할 때 메모리 셀 어레이에 대한 데이터 상태들에 대응하는 예시적인 Vt 분포들을 도시한다. 그러나, 다른 실시예는 메모리 셀당 4개보다 더 많은 혹은 더 적은 데이터 비트들을 사용할 수 있다. 도 6a는 소거 상태 및 프로그래밍된 상태들 A-G에 대응하는 8개의 Vt 분포들을 도시한다. 일 실시예에서, 소거 상태에서의 임계전압은 음이고, 프로그래밍된 상태들 A-G에서의 임계전압들은 양이다. 그러나, 프로그래밍된 상태들 A-G 중 하나의 임계전압이 음이 될 수도 있다. 소거 상태인 임계 전압들의 전부 또는 일부는 양이 될 수 있다.
소거-G 사이의 데이터 상태들 각각 사이에는 메모리 셀들로부터 데이터를 판독하기 위하여 사용되는 판독 기준 전압들(read reference voltages)이 존재한다. 예를 들어, 도6a는 소거 상태와 A-상태 사이의 판독 기준 전압 VrA, 및 A-상태와 B-상태 사이의 VrB를 도시한다. 주어진 메모리 셀의 임계전압이 각각의 판독 기준 전압들보다 큰지 또는 작은지를 테스트함으로써, 시스템은 메모리 셀이 어떤 상태에 있는지를 결정할 수 있다.
프로그래밍된 각각의 상태의 하부 경계(lower edge) 혹은 하부 경계 부근에는 검증 기준 전압들이 존재한다. 예를 들어, 도 6a는 A-상태에 대한 VvA 및 B-상태에 대한 VvB를 도시한다. 메모리 셀들을 소정 상태로 프로그래밍할 때, 시스템은 이들 메모리 셀들이 검증 기준 전압보다 큰 또는 검증 기준 전압과 같은 임계전압을 가지는지 여부를 테스트할 것이다.
도6b는 Vt 분포들이 부분적으로 오버랩될 수 있음을 예시하는바, 에러 정정 알고리즘이 에러있는 셀들의 소정 퍼센티지를 처리할 수 있으므로 상기 Vt 분포들은 부분적으로 오버랩될 수 있다. 일부 실시예들에서는, 어느 일 시점에서 임계전압 분포는 도6a에 도시된 것과 유사할 수도 있으며, 다른 일 시점에서 임계전압은 도6b처럼 오버랩될 수도 있다. 예를 들어, 프로그래밍 직후의 임계전압 분포는 도6a와 유사할 수 있다. 하지만, 시간이 지나면, 메모리 셀들의 임계전압들은 오버랩이 존재하도록 시프트될 수도 있다.
또한, 다음을 유의해야 하는바, 도시된 임계전압 분포들의 동일한 간격/너비와는 대조적으로, 데이터 보유 손실(data retention loss)에 대한 가변하는 분량의 민감성(susceptibility) 수용하기 위하여, 다양한 분포들은 서로 다른 너비들/간격들을 가질 수 있다.
도7은 데이터 상태들 중 2개의 상태들(F-상태 및 G-상태)에 대한 임계전압 분포들을 도시하는바, 그 각각은 시간에 따른 2개의 포인트들을 도시한다. 커브 702 및 704는 메모리 셀들이 프로그래밍된 직후에 해당하는 Vt 분포들을 도시한다. 커브 712 및 714는 메모리 셀들이 프로그래밍된 후 어느 정도의 시간의 경과된 후에 해당하는 Vt 분포들을 도시한다. 프로그래밍된 직후에는, F-상태와 G-상태 사이에는 상당한 간격이 존재한다. 하지만, 소정 시간 후에는, 여러 가지 이유들로 인해 임계전압들이 시프트될 수 있다. 가능한 이유들 중 하나는 메모리 디바이스가 소정 시간 기간 동안 사용됨이 없이 그대로 대기했다는 점이며, 이는 데이터 보유 손실이라고 지칭되는, 메모리 셀들로부터의 전하 손실을 야기한다. 만일, 메모리 디바이스가 가령, 자동차 등과 같은 뜨거운 환경에 있었다면, 데이터 보유는 더 큰 문제가 될 수도 있다.
커브 714는 G-상태의 임계전압 분포에 대한 가능한 시프트를 보여준다. 이러한 일례에서, 임계전압들은 메모리 셀로부터의 전하 손실로 인하여, 일반적으로 아래쪽으로 시프트된다. 또한, 임계전압들의 범위의 소정 퍼짐(some spreading)이 존재하는데, 이는 임계전압이 시프트 다운되는 분량이 셀마다 다르기 때문이다. 커브 712는 F-상태의 임계전압 분포에 대한 가능한 시프트를 보여준다. G-상태와 유사하게, F-상태에 대한 임계전압들은 일반적으로 아래쪽으로 시프트된다. 또한, 임계전압들의 범위의 소정 퍼짐(some spreading)이 존재한다. 임계전압들의 다른 시프트들도 가능함을 유의해야 한다.
전압 레벨 VrG' 은 프로그래밍 직후에 이용되기에 적합한 판독 레벨을 나타낸다. 전압 레벨 VrG" 은 임계전압 분포들이 커브들(712, 714)로 시프트한 이후에 이용되기에 적합한 판독 레벨을 나타낸다. 상기 일례에서, 판독 포인트 VrG" 는 커브들(712, 714)의 골짜기(상기 커브들이 처음 교차하는 곳)에 해당한다(비록 다른 판독 레벨이 이용될 수도 있지만).
다음을 유의해야 하는바, 만일 판독 레벨 VrG' 이 임계전압 분포들이 커브들(712, 714)로 시프트한 이후에 이용되었다면, VrG' 아래의 임계전압들을 갖는 커브 714 상의 메모리 셀들은 잘못 판독될 것이다. 일반적으로, 박스(711)는 판독 레벨 VrG' 이 사용되었더라면 잘못 판독되었을, 커브 714 상의 임계전압들을 갖는 메모리 셀들을 나타낸다. VrG' 를 이용하는 것은, 커브 712 상의 임계전압들을 갖는 메모리 셀들에 대한 오류 판독(misread: '잘못 판독' 혹은 '오류 판독' 이라함)을 야기하지 않을 것이다. 하지만, 보여지는 바와 같이, 상당한 개수의 메모리 셀들 커브 714 상에 존재한다. y-축은 로그 축척이 될 수도 있음을 유의해야 한다.
에러 정정 알고리즘은 몇몇 오류 판독들을 처리할 수 있다. 하지만, 오류 판독들의 개수가 너무 많으면, 데이터가 성공적으로 판독될 수 없다. 예를 들어, 오류 판독들의 개수가, 일실시예에 따른 제어기(244)의 에러 정정 능력 보다 크다면, 데이터는 정확하게 판독될 수 없다.
하지만, 판독 레벨을 예컨대, VrG" 이 되게끔, 동적으로 조정함으로써, 데이터가 성공적으로 판독될 수 있다. 적은 수의 오류 판독들이 여전히 존재할 수도 있음을 유의해야 하지만, 에러 정정은 이들 적은 수의 오류 판독들을 정정할 수 있을 것이다. 상기 일례에서는, VrG" 보다 작은 임계전압을 갖는 커브 714 상의 메모리 셀들에 대해서 오류 판독이 발생한다. 오류 판독은, VrG" 보다 큰 임계전압을 갖는 커브 712 상의 메모리 셀들에 대해서 발생한다. 로그 축척으로 인하여, 상대적으로 적은 수의 메모리 셀들이 커브들 712 및 714의 교차점에 존재할 수도 있음을 유의해야 한다.
일실시예에서, 오류 판독들을 최소화하기 위하여 판독 레벨이 동적으로 조정된다. 하지만, 이러한 오류 판독들이 반드시 최소화되어야 하는 것은 아니다. 일실시예에서는, ECC를 이용하여 오류 판독들이 정정될 수 있을 정도로 오류 판독들이 충분히 작아지도록, 판독 레벨이 동적으로 조정된다. 몇몇 경우에서는, 상당히 강력한 ECC가 이용될 수도 있으며, 이 경우에는 더 많은 수의 오류 판독들이 용인될 수 있다.
다음을 유의해야 하는바, 메모리 다이 대 메모리 다이 변동들이 존재할 수도 있으며, 이는 임계전압 분포들의 차이를 유발할 수 있다. 또한, 메모리 다이 내에서도 변동들이 존재할 수도 있다. 예를 들어, 하나의 블록과 다른 블록 간에는 차이가 있을 수 있다. 또한, 하나의 블록 내에서 워드라인 대 워드라인 변동들이 존재할 수도 있다. 이러한 차이들에 대한 가능성 있는 여러 이유들 중 하나는, 다양한 간섭 효과들이 다이, 블록, 워드라인, 기타 등등에 따라 서로 다를 수 있다는 점이다. 이러한 점은, 임계전압 분포 폭들에서의 차이들을 유발한다. 또한, 서로 다른 블록들에 기입된 데이터의 이력에도 차이점들이 존재할 수 있다. 예를 들면, 서로 다른 시간들에서 프로그래밍된 2개의 블록들(이들 2개의 블록들은 서로 다른 시간 기간 동안 대기하였음)은, 서로 다른 분량의 임계전압 시프트를 보여줄 것이다. 따라서, 일반적으로, 최적의 판독 레벨들은 다이, 블록, 워드라인, 기타 등등에 따라 달라질 수 있다.
판독 레벨들은 임의의 단위로(다이, 블록, 워드라인, 기타 등등) 동적으로 결정될 수 있다. 심지어 갓(freshly) 프로그래밍된 메모리 어레이들에서도, 다이들, 블록들, 워드라인들, 기타 등등에서 차이들이 존재할 수도 있음을 유의해야 하며, 이는 임계전압 분포들 사이에서 차이들을 야기할 수 있다. 달리 말하면, 일 세트의 판독 레벨들이 모든 다이들, 블록들, 워드라인들 기타 등등에 적합한 경우는 해당되지 않는다. 따라서, 판독 레벨들을 동적으로 조정하는 것은, 갓 프로그래밍된 메모리에 이용될 수 있다. 이러한 점은, 다이들, 블록들, 워드라이들, 기타 등등에 대하여 판독 레벨들을 최적화시킬 수 있다.
도8은 온-칩 판독 레벨을 동적으로 결정하는 프로세스(800)의 일실시예에 대한 순서도이다. 프로세스(800)는 일반적인 순서를 예시하며 그리고 프로세스(800)의 단계들은 다른 순서로 수행될 수도 있음을 유의해야 한다. 또한, 하나의 단계는 여러 하위 단계들을 포함할 수도 있다. 몇몇 경우에 있어서, 한 단계의 여러 하위 단계들을 수행한 이후에, 다른 단계 혹은 단계들(또는 이들의 부분들)이 수행될 수도 있다. 이후, 처음 단계의 더 많은 하위 단계들이 수행될 수도 있다.
단계 802에서, 메모리 다이(212) 상의 비휘발성 저장소자들의 그룹이 제 1 세트의 판독 레벨들에서 판독된다. 일실시예에서, 연속적인 각각의 판독은 낮은 전압이 될 수도 있다. 일실시예에서, 연속적인 각각의 판독은 높은 전압이 될 수도 있다. 일실시예에서, 2개의 판독들이 동일한 판독 레벨에서 수행되며, 이후 2개 이상의 판독들이 다른 판독 레벨에서 수행될 수도 있으며, 기타 등등이 가능하다. 판독 기준 레벨들의 세트는 2개의 데이터 상태들을 구분하기 위한 예상된 판독 레벨 부근에 있을 수도 있다. 도9를 간략히 참조하면, 판독 레벨들의 예시적인 세트, 및 관련된 오류-비교들이 도시된다. 단계 802는 상기 세트 내의 판독 레벨들 중 오직 일부에서만 판독하는 것을 포함할 수도 있음을 유의해야 한다.
단계 804에서, 판독들의 결과들이 메모리 다이(212) 상에 저장된다. 일실시예에서, 각각의 판독 이후에, 상기 결과들이 데이터 래치들의 세트에 저장된다. 이들 데이터 래치들은 메모리 다이(212) 상의 임의의 위치에 배치될 수 있다.
단계 806에서, 얼마나 많은 비휘발성 저장소자들이 가장 최근의 2개의 연속적인 판독들 사이에서 서로 다른 결과들을 보여주고 있는지가 결정된다. 예를 들어, 도9를 다시 참조하면, 오류-비교 카운트(mis-compare count)가 각 쌍의 인접한 판독 레벨들 아래에 도시된다. 처음 2개의 판독들에 대한 오류-비교 카운트는, 초기 판독 레벨과 제 2 판독 레벨의 결과들을 비교함으로써 결정된다. 초기 판독과 제 2 판독 사이에서 서로 다른 결과들을 보여주는 각각의 메모리 셀은, 오류-비교 라고 간주된다. 오류-비교 카운트는 초기 판독 레벨과 제 2 판독 레벨 사이에서 상당히 높을 수 있다. 상기 일례에서, 판독 레벨이 적절한 판독 레벨에 접근함에 따라 오류-비교 카운트가 감소된다. 오류-비교 카운트는 임계전압 분포들 사이의 계곡 부근에서 최저가 될 수 있다. 만일, 이 지점을 넘어서서(예컨대, 더 낮은 전압들 쪽으로) 판독이 지속되었다면, 도9에 도시된 바와 같이 오류-비교 카운트가 증가할 수 있다. 하지만, 이러한 판독들 모두를 수행할 필요는 없다. 사실, 최소 오류-비교 카운트를 결정할 필요는 없는데, 이에 대해서는 다음에 상술한다.
단계 808에서, 오류-비교 카운트가 기결정된 기준값(criterion)에 도달한 때의 판독 레벨에 기초하여, 데이터 상태들의 쌍을 구별하기 위한 판독 레벨이 결정된다. 일실시예에서, 상기 판독 레벨은 단계 802에서 이용된 마지막 판독 레벨로 설정된다. 일반적으로, 데이터 상태들의 쌍은 인접한 데이터 상태들이 될 수 있다. 상기 일례에서, 판독 레벨은 F-상태와 G-상태를 구별하기 위한 것이 될 수 있다. 하지만, 프로세스(800)는 데이터 상태들의 다른 쌍들을 구분하기 위하여 판독 레벨을 동적으로 결정하는데 이용될 수도 있음을 유의해야 한다.
일실시예에서, 단계 808의 기결정된 기준값은 에러 정정 능력들에 근거한다. 예를 들어, 가령, 얼마나 많은 메모리 셀들이 에러 정정 코드들을 저장하는데 이용되는지 등의 인자들(factors)에 따라, 제어기(244)는 소정 개수의 오류 판독들을 정정할 수 있다. 허용되는 오류 비교들의 개수는, 판독 에러들을 정정할 수 있는 제어기의 능력에 근거할 수 있다. 일실시예에서, 허용되는 오류 비교들의 개수는, 제어기(244)가 판독 에러들을 정정할 수 있는 만큼이 될 것이다(단계 802에서 이용된 마지막 판독 레벨이 이용된다면).
일실시예에서, 단계 808의 기결정된 기준값은 최소값에 도달한 오류-비교들의 개수이다. 도9를 참조하면, 일실시예에서, 최소값에 도달할 때까지 오류-비교들은 감소하며 이후 상승할 것이라 가정된다. 최소값들(minima)을 찾아내기 위하여, 한 쌍의 판독들로부터의 오류-비교들의 카운트는, 다음 쌍의 판독들로부터의 오류-비교들의 카운트와 비교될 수 있다. 오류-비교들의 이전(previous) 카운트보다 더 높은 오류-비교들의 카운트가 발견되면, 최소값이 발견된 것이다.
다음으로, 도9의 일례에서, 초기 판독 이후의 다음 판독 레벨들은 더 낮은 전압들임을 유의해야 한다. 초기 판독은, 가령 도7의 VrG'와 같은, 디폴트 레벨이었을 수도 있다. 이들 데이터 상태들에 대해서 임계전압들이 시프트 다운될 것이라 예상된다라는 가정이 있었을 수도 있다. 하지만, 다른 데이터 상태들, 혹은 다른 디바이스들의 경우, 임계전압들이 시프트 업될 것이라고 예상될 수도 있다. 따라서, 단계 802에서 이용된 판독 레벨들은 증가할 수도 있다. 일부 디바이스들, 혹은 상태들의 경우, 임계전압들이 어떤 방향으로 시프트할지를 예측하는 것은 어려울 수도 있다. 이와 같은 경우, 단계 802는 연속적으로 낮은 전압들로 제 1 판독을 수행할 수 있다. 만일, 오류-비교 카운트가 감소하는 대신에 증가한다면, 판독 레벨들이 증가될 수 있다.
도10a는 메모리 다이(212) 상에서 판독 레벨을 동적으로 결정하는 프로세스(1000)의 일실시예에 대한 순서도이다. 프로세스(1000)는 2개의 데이터 상태들을 구분하기 위한 판독 레벨을 결정하는데 이용될 수 있다. 바람직하게는, 프로세스(1000)는 데이터 상태들의 다른 쌍들을 구분하기 위한 판독 레벨을 결정하기 위해서 반복될 수도 있다. 하지만, 아래에 논의되는 바와 같이, 하나의 판독 레벨을 동적으로 결정한 결과들은, 데이터 상태들의 다른 쌍들을 구분하기 위한 판독 레벨들을 결정하는데 이용될 수도 있다. 프로세스(1000)는 프로세스(800)의 일실시예이다. 설명의 편의을 위하여, F-상태와 G-상태를 구분하기 위한 판독 레벨을 결정하는 일례가 이용될 것이다.
단계 1001에서, 허용되는 판독들의 최대 개수에 대한 카운터가 0으로 초기화된다. 단계 1002에서, 초기 레벨에서 비휘발성 저장소자를 판독하는 것이 수행된다. 초기 레벨은, 프로세스(1000) 혹은 다른 프로세스를 이용하여 가장 최근에 결정되었던 레벨이 될 수 있다. 이것은 또한, 공장에서 설정된 디폴트 레벨이 될 수도 있다. 단계 1002는 도8의 단계 802의 일실시예에 대한 하나의 하위 단계가 될 수도 있다.
단계 1004에서, 초기 판독으로부터의 결과들이 제 1 세트의 데이터 래치들로 전송된다. 판독되는 각각의 메모리 셀에 대하여 상기 제 1 세트 내에 하나의 데이터 래치가 존재할 수 있다. 일실시예에서, 데이터 래치들은 메모리 다이(212) 상에 있다. 일례는, 감지 블록(300) 내의 데이터 래치들(494)이다.
단계 1006에서, 판독 레벨이 시프트된다. 일실시예에서, 판독 레벨은, 임계전압들이 시간이 지남에 따라 시프트할 거라 예상되는 방향으로 시프트된다. 판독 레벨은 시프트 다운 혹은 시프트 업될 수 있다. 단계 1006은 프로세스(1000) 동안 여러 번 반복될 수도 있다. 일실시예에서, 판독 레벨은 매번 동일한 양 만큼 시프트된다. 예를 들어, 판독 레벨은 매번 50mV 만큼 시프트될 수 있다. 하지만, 전압 시프트의 크기는 단계 1006의 하나의 이터레이션과 다음 이터레이션에서 서로 다를 수 있다. 또한, 시프트의 방향이 변할 수도 있다. 예를 들어, 처음에 시프트는 낮은 전압들 쪽으로 될 수 있다. 하지만, 적절한 판독 레벨을 찾아내도록 진행되지 않는 것처럼 보인다면, 판독 레벨은 위쪽으로 시프트될 수도 있다.
일실시예에서, 시프트의 양은 오류-비교 카운트의 함수이다. 예를 들면, 오류-비교 카운트가 큰 경우에는 시프트가 클 수 있으며, 그리고 오류-비교 카운트가 감소함에 따라, 판독 레벨에서의 시프트가 또한 감소한다. 오류-비교 카운트는, 2개의 임계전압 분포들 사이의 계곡으로부터 판독 레벨이 얼마나 멀리 떨어져 있는지를 시사한다. 오류-비교들이 많은 경우, 판독 레벨은 상기 계곡 위치로부터 멀리 떨어져 있을 가능성이 있는바, 이는 상기 계곡 위치를 건너뜀(skipping)이 없이, 다음 이터레이션 동안 더 큰 시프트가 행해질 수 있음을 의미한다.
단계 1008에서, 새로운 판독 레벨에서 메모리 셀들이 판독된다. 단계 1010에서, 단계 1008의 판독 결과들이 제 2 세트의 데이터 래치들로 전송된다. 일실시예에서, 이들 래치들은 메모리 다이(212) 상에 존재한다. 하나의 일례로서, 데이터 래치들은 감지 블록(300) 내의 데이터 래치들(494)이다.
단계 1012에서, 제 1 및 제 2 세트의 데이터 래치들 내의 결과들이 비교된다. 일실시예에서는, 메모리 셀 마다(on a memory cell by memory cell basis), 제 1 및 제 2 데이터 래치들 사이에서 XOR 논리 연산이 수행된다. 따라서, 주어진 메모리 셀에 대한 판독 결과들이 2개의 판독들에 대해서 동일하다면, 본 실시예에서 상기 비교는 "0" 을 생산한다. 하지만, 주어진 메모리 셀에 대한 판독 결과들이 2개의 판독들에 대해서 서로 다르다면, 본 실시예에서 상기 비교는 "1" 을 생산한다. 본 명세서에서 "1" 이라는 비교 결과는 "오류-비교" 라고 지칭될 수 있다. 도10b는 2개의 래치들 내의 결과들 사이에서의 배타적 논리합(exclusive OR)을 결정하기 위한, 래치 1, 래치 2 및 XOR 회로를 갖는 래치들(494)의 일실시예를 도시한다. XOR 회로는 오류-비교 결과를 출력할 수 있다. 판독되는 각각의 메모리 셀 마다 이러한 하나의 래치(494)가 있을 수 있다.
단계 1014에서, 판독되는 메모리 셀들에 대한 오류-비교들의 개수가 합계되며(totaled), 그리고 임계값과 비교된다. 일실시예에서, 상기 임계값은 제어기의 오류 정정 능력들에 근거한다. 더 상세한 내용은 후술될 것이다. 일실시예에서, 도10b의 XOR에 의해서 출력되는 오류-비교들의 개수는, 메모리 다이(212) 상에서 합산될 수 있다. 일실시예에서, 총계(total)가 소정 제한값(limit)(예컨대, 32, 64, 등등)에 도달하면, 카운팅이 중지된다.
만일, 오류-비교들이 임계값보다 크다면, 이는 적절한 판독 레벨이 아직까지 발견되지 않았음을 나타낼 수 있다. 만일 그렇다면, MaxReads 에 대한 카운트가 단계 1015에서 1 만큼 증분된다. 다음으로, 단계 1016에서 MaxReads 는 제한값과 비교된다. 몇몇 경우에 있어서, 오류-비교들의 개수는, 허용된 최대 개수의 이터레이션들 내에서 임계값(단계 1014) 아래의 레벨에 도달하지 못할 수도 있음을 유의해야 한다. 이는 상기 데이터가 판독불가능임을 나타낼 수도 있다. 하지만, 상기 데이터를 판독하는데 다른 기법들이 이용되는 것도 또한 가능하다. 서로 다른 판독 레벨들에서의 판독 시도들에도 불구하고, 오류-비교들의 개수가 임계값 보다 작아지는데 실패하면, 프로세스(1000)가 종료될 수 있다. 일실시예에서는, 오류-비교들의 개수가 임계값 보다 작지 않다 하더라도, 가장 적은 개수의 오류-비교들에 대응하는 판독 레벨에 대한 결과들을 이용함으로써, 프로세스(1000)가 종료될 수 있다. 특히, 정정가능한 에러들의 마진 내에 임계값이 적절히(well) 존재한다면, 임의의 판독 에러들은 적절히(well) 정정가능할 수 있다.
최대 개수의 판독들이 수행되지 않는 한, 판독 레벨을 시프트하도록 프로세스(1000)는 단계 1006으로 되돌아갈 수 있다. 또한, 단계 1017에서, 제 2 세트의 데이터 래치들에 저장된 결과들은, 제 1 세트의 데이터 래치들로 전송될 수 있다. 따라서, 다음 판독이 수행되는 때, 제 2 세트의 데이터 래치들이 비워져서 최신(latest) 판독 결과들을 저장한다. 일실시예에서는, 단계 1016에서 제 2 세트의 데이터 래치들로부터 제 1 세트의 데이터 래치들로 결과들을 실제로 전송하는 대신에, 데이터 래치들의 역할이 뒤바뀔 수 있다. 예를 들면, 다음 판독 결과들은 제 1 세트의 데이터 래치들에 저장될 수 있다(단계 1010에 표시된 바와 같이 제 2 세트에 저장되는 것이 아니라).
결국(eventually), 오류-비교들의 개수는 임계값 보다 작아질 것이다(단계 1041 = 예). 이는, 가장 최신의 판독 레벨이 메모리 셀들을 판독하는데 적절했음을 나타낼 수 있다. 일실시예에서, 이러한 점은, 이용중인 에러 정정이, 임의의 오류 판독들을 정정할 수 있을 것임을 나타낸다. 단계 1014의 임계값은 에러들을 정정하기 위한 아슬아슬한 경우(a borderline case) 보다 상당히 낮은 레벨로 설정될 수 있음을 유의해야 한다. 예를 들어, 에러 정정은 100개의 오류 판독들을 정정할 수도 있다. 하지만, 40개 미만의 오류 판독들이 존재할 가능성이 있는 것처럼 임계값이 설정될 수도 있다. 일반적으로, 오류-비교들의 개수는 오류 판독들의 개수와 동일하지 않음을 유의해야 한다. 하지만, 일부 실시예들에서, 오류-비교들의 개수와 오류 판독들의 개수 사이에는 관련성(relationship) 혹은 상관관계(correlation)가 존재한다.
단계 1018에서, 제 2 세트의 래치들 내의 결과들은, 실제 판독 결과들처럼 이용될 수도 있다. 일실시예에서, 이들 결과들은 후속 프로세싱을 위하여 데이터 래치들(494)로부터 시프트된다. 이들 결과들은, 각각의 메모리 셀이 주어진 판독 레벨보다 높거나 혹은 낮은 임계전압을 갖고 있는지를 나타낸다는 점을 유의해야 한다. 달리 말하면, 상기 결과들은 2개의 데이터 상태들을 구분할 수 있다. 예를 들어, 상기 결과들은 F-상태와 G-상태를 구별할 수 있다. 각 메모리 셀의 데이터 상태를 결정하기 위하여, 다른 판독 레벨들(예컨대, VrA, VrB, 등등)에서 판독들이 수행될 수도 있다.
최종 판독 레벨은 후속 사용을 위하여 저장될 수도 있음을 유의해야 한다. 예를 들면, 메모리 셀들의 상기 그룹이 판독될 다음 시간(next time)에서, 상기 최종 판독 레벨은 단계 1002의 초기 판독 레벨로서 이용될 수 있다. 최종 판독 레벨은 메모리 상의 임시 레지스터들 중 하나에 저장될 수도 있으며, 아니면 외부적으로 제어기의 비휘발성 메모리에 저장될 수도 있다. 하지만, 메모리 셀들이 판독될 때마다 프로세스(1000)가 반드시 이용될 필요는 없음을 유의해야 한다. 일실시예에서, 메모리 셀들은 상기 최종 판독 레벨을 이용하여 간단히 판독된다. 따라서, 일실시예에서, 상기 최종 판독 레벨은 단계 1020에서 저장된다. 메모리 다이(212) 외부로 판독 결과들을 전송함이 없이도 판독 레벨이 결정될 수도 있음을 유의해야 한다. 예를 들면, 복잡한 계산을 수행하기 위하여 판독 결과들을 외부 제어기로 전송할 필요가 없다. 또한, ECC 보정들을 상기 결과들에 적용함이 없이도, 판독 레벨이 발견될 수 있다. 하지만, 판독 레벨이 동적으로 결정된 이후에 ECC 보정들이 적용될 수도 있음을 유의해야 한다.
도11a는 일실시예에서 오류 비교들과 오류 판독들('실패 비트 카운트'라고 지칭될 수도 있음) 사이의 가능한 관련성을 도시한 그래프이다. 오류-비교들 및 오류 판독들은, 판독 전압 레벨에 대해서 도시된다. 오류 비교들은, 일례들로서, 프로세스(800) 혹은 프로세스(1000)으로부터의 오류 비교들이 될 수 있다. 오류 비교 포인트에 대한 판독 레벨은, 상기 오류 비교 카운트가 결정되었던 판독 레벨들의 쌍 중에서, 사용되었던 가장 최신의 판독 레벨이 될 수 있다. 오류 비교들에 대한 축척은 임의의 단위들이 될 수 있다. 이와 유사하게, 오류 판독들에 대한 축척들은 임의의 단위들이 될 수 있다.
일반적으로, 도11a의 그래프에서 오류 비교들은 오류 판독들과 상관될 수 있다. 도11b는 일실시예에서 오류 판독들과 오류 비교들 간의 상관관계(1150)를 나타내는 그래프를 도시한다. 만일, 임계값이 소정 숫자(예컨대, 20)로 설정되면, 이는 소정 개수의 오류 판독들에 상관될 수 있다. 따라서, 임계값은, 소정의 용인가능한(tolerable) 개수의 오류 판독들에 상관되도록, 설정될 수 있다. 오류 판독들의 개수는, 메모리 디바이스 상의 제어기(244)의 ECC 능력치보다 상당히 낮을 수 있음을 유의해야 한다.
도12는 판독 동작을 수행하기 위한 프로세스(1200)의 일 실시예를 서술한 순서도이다. 도12는 동적인 판독 레벨들이 어떻게 확립되는지를 설명함이 없이, 일반적인 판독 프로세스를 설명한다. 프로세스(1200)는 판독 레벨들 VrA, VrB, 및 VrC 를 이용하여 판독한다. 따라서, 프로세스(1200)는 셀당 2 비트를 저장하는 메모리 셀들에 대한 판독을 서술한다. VrA, VrB, 및 VrC 중 하나 이상에 대한 전압 레벨들을 결정하기 위하여, 동적인 판독이 이용될 수도 있음을 유의해야 한다.
도12의 프로세스는, 블록의 모든 비트라인들, 블록은 홀수 비트라인들만, 블록의 짝수 비트라인들만, 혹은 블록의 다른 서브세트들의 비트라인들을 포괄하는, 하나의 페이지에 대하여 수행될 수 있다. 단계 1240에서, 판독 기준 전압 Vra 가 타겟 페이지에 관련된 적절한 워드라인에 인가된다. 단계 1242에서, 상기 페이지에 관련된 비트라인들이 감지되어, 어드레스싱된 메모리 셀들이 턴온되는지 혹은 턴온되지 않는지에 대한 여부를 결정한다(메모리 셀들의 제어 게이트들에 Vra이 인가되는 것에 기초하여). 도통되는 비트라인들은 메모리 셀들이 턴온되었음을 나타내며, 따라서 이들 메모리 셀들의 임계전압들은 Vra 보다 낮다(즉, 소거 상태임). 단계 1244에서, 비트라인들에 대한 감지 결과가 이들 비트라인들에 대해서 적절한 래치들에 저장된다.
단계 1246에서, 판독 기준 전압 Vrb가, 판독중인 상기 페이지에 관련된 워드라인들에 인가된다. 단계 1248에서, 전술한 바와 같이, 비트라인들이 감지된다. 단계 1250에서, 결과들이 비트라인들에 대해서 적절한 래치들에 저장된다.
단계 1252에서, 판독 기준 전압 Vrc가, 상기 페이지에 관련된 워드라인들에 인가된다. 단계 1254에서, 전술한 바와 같이, 어떤 메모리 셀들이 턴온되는지를 판별하기 위하여 비트라인들이 감지된다. 단계 1256에서, 감지 단계의 결과들이 비트라인들에 대해서 적절한 래치들에 저장된다.
단계 1258에서, 각각의 비트라인에 대한 데이터 값들이 결정된다. 예를 들어, 만일 메모리 셀이 Vra에서 도통된다면, 그 메모리 셀은 소거 상태에 있다. 만일, 메모리 셀이 Vrb 및 Vrc에서는 도통되지만 Vra에서는 도통되지 않는다면, 그 메모리 셀은 상태 A에 있다. 만일, 메모리 셀이 Vrc에서는 도통되지만 Vra 및 Vrb에서는 도통되지 않는다면, 그 메모리 셀은 상태 B에 있다. 만일, 메모리 셀이 Vra, Vrb 및 Vrc에서 도통되지 않는다면, 그 메모리 셀은 상태 C에 있다. 다른 실시예들에서, 다양한 레벨들(Vra, Vrb 및 Vrc)을 감지하는 것은 상이한 순서들로 발생할 수도 있다.
도13a는 판독 레벨들을 동적으로 결정하는 프로세스(1300)의 일실시예에 대한 순서도이다. 프로세스(1300)는 도12의 판독 동작에서 이용되기 위해 판독 레벨들을 동적으로 결정하는 일 실시예를 서술한다. 프로세스(1300)는 메모리 셀당 3 비트 이상을 저장하는 메모리 셀들에 대해서 수정될 수도 있다.
프로세스(1300)에서는, 프로세스(800) 혹은 프로세스(1000)와 같은 프로세스가 이용되어, 2개의 상태들을 구분하기 위한 판독 레벨(예컨대, VrA)을 동적으로 결정할 수 있다. 이후, 첫번째 것(first one)에 기초하여, 후속 판독 레벨들(예컨대, VrB, VrC)에 대한 초기 값들이 결정될 수 있다. 예를 들면, 프로세스(가령, 800 혹은 1000)에서 이용되도록, VrB 및 VrC에 대한 초기 값들이 결정될 수 있다. 도13a를 서술하는데 이용되는 표기법(notation)이 다음과 같이 설명될 것이다. 마지막 판독을 위해 이용되었던 판독 레벨을 지칭하기 위하여 싱글 프라임(single prime)이 이용될 것이다. 더블 프라임은 그 시점에서 동적으로 결정된 판독 레벨을 지칭할 것이다. 예를 들어, VrA' 은 마지막 판독 동작에 대한 판독 레벨을 나타내는 반면에, VrA" 은 동적으로 결정될 새로운 판독 레벨을 나타낸다. 만일, 프라임이 이용되지 않는다면, 이는 판독 레벨에 대한 일반적인 참조를 나타낸다.
단계 1302에서, VrA" 에 대한 판독 레벨이 동적으로 결정된다. 일실시예에서, 프로세스(800)가 이용된다. 일실시예에서는, 프로세스(1000)가 이용된다. VrA"를 결정하기 위한 프로세스는, 도12의 단계들(1240-1244)을 완수할 수도 있음을 유의해야 한다. 예를 들어, 프로세스(1000) 동안 이용된 마지막 판독 레벨을 인가하는 것은, VrA를 워드라인에 인가하는 것(단계 1240)으로 간주될 수 있다. 결과들의 마지막 세트를 이용하는 단계 1018은, 단계 1244(결과들을 저장함)의 일례가 된다고 간주될 수 있다.
단계 1304에서, VrA" 과 VrA' 사이의 차이가 기록된다(noted). 예를 들어, VrA" 는 VrA' 보다 150mV 만큼 작을 수 있다. 일례로서, VrA' 는 공장에서 설정되었던 디폴트 판독 레벨이었을 수도 있다. 따라서, 이는, 상기 판독 레벨이 디폴트 레벨로부터 150mV 만큼 시프트되었음을 나타낸다.
단계 1306에서, VrB' 및 VrA" 과 VrA' 사이의 차이에 기초하여 VrB에 대한 초기 값이 결정된다. 가장 간단한 일례에서, VrB에 대한 초기 값은 VrA" 과 VrA' 사이의 차이에 의해서 조정될 수 있다. 하지만, 다른 상태들에 대한 임계전압들은 서로 다른 양만큼 시프트할 것이라 예상될 수 있다. 따라서, VrB에 대한 초기 값은 소정의 다른 분량만큼 VrB'와 다를 수 있다.
단계 1308에서, 새로운 판독 레벨 VrB"을 동적으로 결정하기 위한 프로세스에서 VrB에 대한 초기 값이 이용된다. 예를 들어, VrB에 대한 초기 값은 도10의 단계 1002에서 이용될 수 있다. 다음으로, 프로세스(1000)가 종결될 때까지 프로세스(1000)는 계속 진행될 수 있다. 프로세스(1000)에서 사용된 마지막 판독 레벨은 새로운 판독 레벨 VrB" 로서 이용될 수 있다.
VrB"를 결정하기 위한 프로세스(1000)의 소정 단계들은 단계들(1246-1250)의 일례가 될 수 있다. 예를 들어, 프로세스(1000)에서 마지막 판독 레벨을 인가하는 것은, 단계 1246(워드라인에 VrB를 인가하는 것)의 일례가 될 수 있다. 또한, 제 2 세트의 래치들로부터의 데이터를 이용하는 것(단계 1018)은 단계 1250(VrB에서 판독한 결과들을 저장하는 것)의 일례로 간주될 수 있다.
단계 1310에서, VrC에 대한 초기 값이 결정된다. 옵션 A는 VrA" 와 VrA'의 차이 및 VrC' 에 기초하여 VrC 를 결정하는 것이다(단계 1310A). 옵션 B는 VrB" 와 VrB'의 차이 및 VrC' 에 기초하여 VrC 를 결정하는 것이다(단계 1310B). 일실시예에서는, (VrB" - VrB')와 (VrA" - VrA')의 조합(combination)에 기초하여 VrC 가 결정된다. 그것의 Vt 시프트가 그것의 가장 근접한 상태에 더 가까워질 것이라고 예상된다면, VrC 에 가장 가까운 상태에 기초하여 VrC 를 판별하는 것이 더 좋은 것임을 유의해야 한다. VrB에 대한 초기 값에 관한 경우와 유사하게, VrB" 와 VrB' 사이의 차이에 의해서 VrC'를 조정함으로써, VrC 에 대한 초기 값이 결정될 수 있다. 하지만, VrC 에 대한 초기 값은 소정의 다른 양만큼 VrC'와 다를 수도 있다
단계 1312에서, VrC" 를 동적으로 결정하기 위하여 VrC 에 대한 초기 값이 이용된다. 예를 들면, VrC 에 대한 초기 값이 도10의 단계 1002에서 이용된다. 다음으로, 프로세스(1000)는 VrC" 가 결정될 때까지 계속된다. 도12의 단계 1252-1256은, VrC"를 결정하는 프로세스(1000)를 수행함으로써 완수될 수도 있음을 유의해야 한다.
프로세스(1300)는 프로세스(1000)에서 요구되는 판독들의 개수를 감소시킴으로써, 시간을 절약할 수도 있음을 유의해야 한다. 특히, VrB" 및 VrC" 를 결정하는 때에 시간이 절약될 수 있다. 7개의 판독 레벨들(메모리 셀당 3 비트인 경우) 혹은 15개의 판독 레벨들(메모리 셀당 4 비트인 경우)을 찾아야만 하는 경우, 더 많은 시간이 절약될 수 있다.
몇몇 판독 레벨들에 대해서 프로세스(1000)(혹은 유사한 프로세스)를 건너뜀으로써, 더 많은 시간이 절약될 수 있다. 예를 들면, 프로세스(1000)를 이용하여 VrA" 를 결정한 이후, 프로세스(1000)을 수행함이 없이, 적절한 VrB" 및 VrC" 가 결정될 수도 있다. 도13b는 본 발명의 일실시예에 따라 판독 레벨들을 동적으로 결정하는 프로세스(1350)의 일실시예에 대한 순서도를 예시한다. 프로세스(1350)에서는, 2개의 상태들을 구분하기 위한 판독 레벨(예컨대, VrA)을 동적으로 결정하기 위하여 가령, 프로세스(800) 혹은 프로세스(1000) 등과 같은 프로세스가 이용될 수도 있다. 다음으로, 첫번째 것에 근거하여 다른 판독 레벨들이 결정될 수 있다.
단계 1352에서, VrA"에 대한 판독 레벨이 동적으로 결정된다. 일실시예에서, 프로세스(800)가 이용된다. 일실시예에서는, 프로세스(1000)가 이용된다. 단계 1354에서, VrA" 과 VrA' 사이의 차이가 기록된다. 예를 들면, VrA" 는 VrA' 보다 150 mV 작을 수 있다.
단계 1356에서, VrA" 과 VrA' 사이의 차이 및 VrB' 에 기초하여 VrB" 이 결정된다. 가장 단순한 일례에서는 VrA" 과 VrA' 사이의 차이에 의해서 VrB" 이 조정될 수 있다. 하지만, 서로 다른 상태들에 대한 임계전압들은, 서로 다른 양이 되도록 시프트할 것이라 예상될 수 있다. 따라서, VrB" 은 소정의 다른 양 만큼 VrB' 과 다를 수 있으며, 이는 VrA" 과 VrA' 사이의 차이에 근거할 수도 있다. 예를 들어, VrB" 은, VrA" 과 VrA' 사이의 차이에 소정의 추가적인 고정된 분량을 더한 값 만큼 VrB'과 다를 수 있다. VrB" 과 VrB' 사이의 차이 및 VrA" 과 VrA' 사이의 차이에 대한 다른 관련성들이 또한 이용될 수도 있다. 본 실시예에서, VrB" 을 결정하기 위하여 프로세스(1000)가 수행되지 않음을 유의해야 한다. 따라서, 프로세스(1000)를 수행함이 없이, VrB" 에 대한 값이 단계 1246(도12 참조)에서 이용될 수 있다. 따라서, 시간이 더욱 절약된다.
단계 1358에서, VrC" 이 결정된다. 옵션 A에서는, VrA" 과 VrA' 사이의 차이 및 VrC' 에 기초하여 VrC" 이 결정된다(단계 1358A), 옵션 B에서는, VrB" 과 VrB' 사이의 차이 및 VrC' 에 기초하여 VrC" 이 결정된다(단계 1358B). 가장 단순한 일례에서는, VrA" 과 VrA' 사이의 차이에 의해서 VrC" 이 조정될 수 있다. 하지만, VrB"에 대해서 앞서 설명한 바와 같이, VrC" 은 소정의 다른 양 만큼 VrC' 과 다를 수 있으며, 이는 VrA" 과 VrA' 사이의 차이, 혹은 VrB" 과 VrB' 사이의 차이에 근거할 수 있으며 혹은 이들 2개의 차이값들의 조합에 근거할 수도 있다. 다시 한번 설명하면, 본 실시예에서는 VrC"을 결정하기 위하여 프로세스(1000)가 수행되지 않는다. 따라서, 프로세스(1000)를 수행함이 없이, VrC" 에 대한 값이 단계 1252(도12 참조)에서 이용될 수 있다.
동일 블록 내의 서로 다른 워드라인들에 대한 적절한 판독 레벨들이 서로 매우 가까울 수도 있다. 따라서, 가령, 프로세스 800 혹은 프로세스 1000 등을 이용하여 각각의 워드라인에 대해 판독 레벨들을 동적으로 결정하는 대신에, 한 워드라인으로부터 동적으로 결정된 레벨들은, 메모리의 임시 레지스터에 저장될 수 있는바, 이는 상기 임시 레지스터로부터 판독될 수 있으며, 그리고 다른 워드라인에 대한 판독을 위해 이용될 수 있다. 일실시예에서는, 동일한 판독 레벨들이 전체 워드라인들에 대해 이용된다. 하지만, 워드라인 별로 소정의 변동이 존재할 수도 있다. 따라서, 이러한 변동들이 고려될 수도 있다.
도14a는 한 워드라인으로부터 동적으로 결정된 판독 레벨들을 다른 하나의 워드라인을 위해 이용하는 프로세스(1400)의 일실시예에 대한 순서도이다. 단계 1402에서, 워드라인 WLn에 대하여 판독 레벨들이 동적으로 결정된다. 일실시예에서, 프로세스(800)가 이용된다. 일실시예에서는, 프로세스(1000)가 이용된다.
단계 1404에서, 동적으로 결정된 판독 레벨들이 임시 레지스터에 저장된다. 이러한 레지스터는 메모리 다이(212) 상에 있을 수도 있으며, 메모리 다이(212) 밖에 있을 수도 있다. 예를 들어, 판독 레벨들은 제어기(244)에 저장될 수 있다. 판독 레벨들은 메모리 다이(212) 상의 제어 회로(220)에 저장될 수도 있다. 판독 레벨들은 판독 회로(230) 내의 어딘가에 저장될 수도 있으며 혹은 메모리 어레이(200)에 저장될 수도 있다.
단계 1406에서, 저장된 판독 레벨들에 근거하여 WLn+1 이 판독된다. 일실시예에서, 2 이상의 워드라인들에 대해서 똑같은 판독 레벨들이 이용된다. 일실시예에서는, 저장된 판독 레벨들에 기초하여 판독 레벨들을 결정하는데, 워드라인 종속성이 이용된다. 예를 들면, 드레인 선택 게이트 인근의 워드라인들은 다른 워드라인들에 비하여, 임계전압 시프트를 더 많이 경험하거나 혹은 더 적게 경험할 수 있다. 따라서, 이들 워드라인들에 대해서 판독 레벨들을 결정하는데, 이러한 것이 고려될 수 있다(factored).
단계 1408에서, 저장된 판독 레벨들에 근거하여 WLn+2 가 판독된다. 단계 1410에서, 저장된 판독 레벨들에 근거하여 WLn+m 이 판독된다. 단계들 1418-1410은 단계 1406과 유사할 수 있다. 하지만, 앞서 언급한 바와 같이, 워드라인 종속성들이 고려될 수 있다. 단계 1408과 1410 사이의 점선 화살표는 다른 워드라인들도 판독될 수 있음을 나타낸다. 도14a에 도시된 순서와 다른 순서대로 워드라인들이 판독될 수도 있음을 유의해야 한다.
판독 레벨들을 동적으로 결정할 때의 시간을 절약할 수 있는 또 다른 방법은, 선택된 워드라인에 인가된 전압과 동일한 전압을 이용하여 2 이상의 임계전압을 감지하는 것이다. 이는 예를 들어, 판독 레벨들 중 2개를 판독하는 단계 802에서 이용될 수 있다. 도10을 참조하면, 단계 1002의 초기 판독과 단계 1008의 제 2 판독 둘다는 동일한 워드라인 전압을 이용하여 수행될 수 있다. 만일 프로세스(1000)에서 더 많은 판독들이 필요하다고 여겨지면, 동일한 워드라인 전압을 이용하여 제 3 및 제 4 판독들이 수행될 수 있다.
일실시예에서, 하나의 블록으로부터 동적으로 결정된 판독 레벨들은, 다른 블록을 판독할 때에 이용될 수도 있다. 예를 들면, 매우 큰 분량의 메모리가 함께 기입될 수 있으며 거의 같은 시점에서 다수 세트의 블록들에 저장될 수 있다. 이들 블록들은 광범위하게 그대로 남아있을 수 있으며(remain largely untouched), 따라서 이들 블록들은 동일한 데이터-보유/열 스트레스 기타 등등을 경험할 수 있다. 다음으로, 이들 블록들 내의 워드라인들은 유사한 Vt 시프트를 보여줄 것이라 예상될 수 있다. 따라서, 하나의 블록으로부터 동적으로 결정된 판독 레벨들은 다른 블록을 위해 이용될 수 있다.
도14b는 하나의 블록으로부터 동적으로 결정된 판독 레벨들을 다른 블록에서 이용하는 프로세스(1450)의 일례에 대한 순서도이다. 단계 1452에서, 다수의 블록들에 있는 워드라인들이 프로그래밍된다. 이러한 프로그래밍은 거의 같은 시점에서 수행될 수 있다. 단계 1454에서, 거의 같은 시점에서 기입되었던 블록들이 추적된다(tracked). 일실시예에서는, 제어기(244)가 이들 블록들을 추적한다. 제어기(244)는 어떤 블록들이 거의 같은 시각에 기입되었는지를 주목할 수 있으며, 그리고 어떤 블록들이 상기 상태를 벗어났는지를 추적할 수 있다. 만일, 블록(혹은 블록 내의 소정 워드라인들)이 다시 프로그래밍된다면, 제어기(244)는 프로그래밍된 상기 블록(혹은 소정 워드라인들)을 제외시킬 수 있다.
단계 1456에서, 추적된 블록들 중 하나의 블록에 있는 적어도 하나의 워드라인에 대해서 판독 레벨들이 동적으로 결정된다. 단계 1458에서, 동적으로 결정된 판독 레벨들 메모리 다이(212) 혹은 제어기(244)에 저장될 수 있다. 어느 한 경우, 저장소는 임시 레지스터 혹은 영구 저장소가 될 수 있다.
단계 1460에서, 동적으로 결정된 판독 레벨들에 기초하여, 추적된 블록들 중 다른 하나의 블록에 있는 워드라인들이 판독된다. 이러한 것은, 동적으로 결정된 판독 레벨들을 직접 이용하는 것을 포함할 수도 있으며, 혹은 동적으로 결정된 판독 레벨들을 다른 블록에 이용하기 전에 이들 동적으로 결정된 판독 레벨들에 소정의 수정을 가하는 것을 포함할 수도 있다. 단계 1458 직후에 단계 1460을 반드시 수행할 필요는 없다는 점을 유의해야 한다.
도15는 단일 워드라인 전압을 이용하여 2개의 서로 다른 임계전압들을 감지하는 프로세스(1500)의 일례에 대한 순서도이다. 단계 1502에서, 판독 패스 전압(read pass voltage) Vread 가 비선택 워드라인들에 인가된다. 상기 판독 패스 전압은, 메모리 셀의 데이터 상태에 상관없이 상기 메모리 셀이 도통될 정도로 충분히 높을 수 있다.
단계 1504에서, 선택된 워드라인에 판독 비교 전압 Vcgrv 이 인가된다. 일반적으로, 판독 비교 전압은 프로세스(1500)에서 테스트 중인 임계전압(들)에 가깝다. 다음을 유의해야 하는바, 판독 비교 전압을 인가하는 것은, 주어진 낸드 스트링 상의 선택된 메모리 셀이 도통되게 할 수 있다. 또한, 도통 전류의 크기는 메모리 셀의 임계전압의 함수가 될 수 있다. 만일, 메모리 셀의 임계전압이 판독 비교 전압 보다 낮다면, 메모리 셀은 도통 전류를 가질 수 있다.
단계 1506에서, 제 1 시간 기간 동안 비트라인들이 감지된다. 일실시예에서는, 주어진 비트라인에 접속된 캐패시터가 단계 1506 이전에 충전된다. 다음으로 단계 1506에서, 도통 전류(있다면)에 의해서 캐패시터가 방전된다. 도통 전류가 충분히 강하다면, 캐패시터 전압은 메모리 셀이 턴온(예컨대, 전류를 도통시킴)되었음을 나타내는 레벨로 강하할 것이다.
다음을 유의해야 하는바, 캐패시터가 방전되는 시간(감지 시간)이 길면 길수록, 동일한 도통 전류에 대해서 캐패시터 전압이 더욱 더 강하할 것이라 예상된다. 따라서, 어떤 임계전압이 감지중인지에 따라 조정되도록 감지 시간이 선택될 수 있다. 일실시예에서, 짧은 감지 시간을 이용하여 감지한다는 것은, "온(on)" 으로 검출되도록 메모리 셀이 낸드 스트링을 통하는 높은 도통 전류를 가져야만 함을 의미하며, 이는 긴 감지 시간을 이용하여 감지가 수행되는 경우에 요구되는 것보다 그것의 Vt가 더 낮아야 함을 의미한다.
단계 1508에서, 제 2 시간 기간 동안 비트라인들이 감지된다. 예를 들면, 비트라인들은 단계 1508에서 오랜 시간 동안 감지되며, 이는 단계 1508 보다 높은 Vt를 테스트할 수도 있다. 단계 1508은, 단계 1506과 동일한 감지 캐패시터를 감지하는 것을 포함할 수도 있다. 대안적으로는, 2개의 서로 다른 감지 캐패시터들이 사용될 수도 있다. 이러한 경우, 비트라인 전류의 복제본(replica)이 제 2 캐패시터에 제공될 수도 있다.
단계 1510에서, 제 1 감지 시간으로부터의 결과들이 저장된다. 단계 1512에서, 제 2 감지 시간으로부터의 결과들이 저장된다. 제 1 감지 시간이 더 짧았기 때문에, 이것은 더 낮은 임계 전압을 테스트한다. 따라서, 단계 1510에 대한 결과들은, VrA에 대한 것이며, 반면에 단계 1512에 대한 결과들은, VrA + x mV 에 대한 것이다. 하지만, 다른 일실시예에서는, 단계 1510에 대한 결과들은, VrA에 대한 것인 반면에, 단계 1512에 대한 결과들은, VrA - x mV 에 대한 것이다(x는 0 보다 큼).
도15는 동일한 워드라인 전압을 이용하여 2개의 서로 다른 Vt 들을 감지하기 위한 일실시예에 관한 것임을 유의해야 한다. 일실시예에서는, 대신에, 소스-팔로우어 감지(source-follower sensing)가 이용된다. 도16은 소스-팔로우어 감지를 이용하여 판독하는 프로세스(1600)의 일실시예에 대한 순서도이다. 프로세스(1600)는 동일한 워드라인 전압들을 이용하여 2개의 서로 다른 레벨들에서 판독하기 위해 단계(802) 동안에 이용될 수도 있다. 프로세스(1600)는 동일한 워드라인 전압들을 이용하여 2개의 서로 다른 레벨들에서 판독하기 위해 프로세스(1000) 동안에 이용될 수도 있다.
단계 1602에서, 공통 소스 라인이 Vdd ~ 2.5V 까지 충전된다. 단계 1604에서, 선택된 비트라인들은 공통 소스 라인으로부터 비트라인들로 흐르는 전류에 의해서 충전되도록 플로팅된다.
단계 1606에서, Vread가 비선택 워드라인들에 인가된다. 단계 1608에서, 선택된 워드라인에 Vcgrv 가 인가된다. 각 낸드 스트링 상의 선택된 메모리 셀의 임계전압에 근거하여, 메모리 셀은 전류를 도통시킬 수 있다. 이러한 전류는 소스 라인으로부터 비트라인으로 흐를 수 있으며, 따라서 비트라인을 충전할 수 있다. 높은 도통성을 갖는 셀(highly conductive cell)의 경우, 소정의 감지 시간 내에서 더 큰 전류가 흐르게 할 수 있으며 따라서, 관련 비트라인을 더 높은 전압 레벨로 충전시킬 수 있다. 다른 한편으로, 비-도통 셀(non-conductive cell)은 임의의 전류를 흐르게 하지 않을 것이며, 결과적으로 비트라인은 초기 레벨에 머무를 것이다. 따라서, 비트라인에서의 전압 레벨을 감지함으로써, 셀의 상태가 판별될 수 있다.
단계 1610에서, 제 1 전압 레벨에 대해서 비트라인들이 감지된다. 단계 1612에서, 제 2 전압 레벨에 대해서 비트라인들이 감지된다. 이들 2개의 전압 레벨들은, 약간만 서로 다른 임계전압들을 테스트하도록 의도된다. 따라서, 2개의 임계전압들(예컨대, 50 mV 정도로 서로 다름)이, 하나의 워드라인 전압을 이용하여 테스트될 수 있다. 다음을 유의해야 하는바, 프로세스(1600)와 프로세스(1500) 둘다에서는, 프로세스(1000)의 단계(1006)에서 수행된 바와 같이 2개의 서로 다른 임계전압들에서 감지하도록 워드라인 전압 레벨들을 시프트하는 것이 아니라, 하나의 워드라인 전압을 이용하여 다수의 임계전압들이 감지되었음을 유의해한다. 따라서, 2개의 서로 다른 Vcgrv 레벨들에서의 2개의 서로 다른 판독들 사이에서 워드라인들이 자리잡는데(settle) 필요한 임의의 추가 시간이 경감될 수 있다.
일실시예에서, 판독 레벨들을 동적으로 결정할 때에 이용되는 판독 레벨들은 소정 분량만큼 서로 다르다. 예를 들면, 프로세스(1000)에서 제 2 판독(단계 1008)은 제 1 판독(단계 1002)과 50 mV 만큼 다를 수 있다. 다음으로, 단계 1008의 다음 이터레이션의 경우, 판독은 또 다른 50 mV에 의해서 조정될 수 있다. 이는 도8의 단계 802의 일실시예임을 유의해야 한다.
일실시예에서는, 연속적인 판독에서 서로 다른 판독 레벨들을 이용하는 것이 아니라, 가장 최신의 2개의 판독들에 대해서 동일한 판독 레벨이 이용될 수도 있다. 따라서, 단계 802의 일례에서, 가장 최신의 2개의 판독들에 대해서 동일한 판독 레벨이 이용된다. 이러한 것도 오류-비교들이 카운트될 수 있게 해준다는 점을 유의해야 한다. 판독 레벨이 변하지 않았기 때문에, 오류-비교들은 판독 잡음에 의해서 야기될 수도 있으며, 판독 잡음은 메모리 셀의 임계전압이 하나의 판독에서 다른 하나의 판독 사이에서 변동되게 한다. 만일, 판독 레벨이 2개의 임계전압 분포들 사이의 계곡에 가깝다면, 상기 판독 레벨 가까이에는 더 적은 메모리 셀들이 존재하며, 이는 오직 적은 개수의 메모리 셀들의 임계전압이 판독 잡음으로 인하여 요동(jump around)칠 수 있음을 의미한다. 이는 오류-비교 카운트가 낮아야 함을 의미한다. 다른 한편으로, 만일, 판독 레벨이 상기 계곡으로부터 멀리 떨어져 있다면, 임계전압 분포의 그 지점에는 큰 집단(larger population)의 메모리 셀들이 존재할 것이며, 임계전압에서 요동칠 수 있으며 그리고 오류-비교로서 카운트될 수 있는 훨씬 많은 개수의 셀들이 있게 될 것이다. 따라서, 오류-비교 카운트는 오류 판독들(혹은 실패 비트 카운트)에 관한 척도(measure)로서 여전히 이용될 수 있다. 또한, 다음을 유의해야 하는바, 2개의 판독들에 대하여 동일한 판독 레벨을 이용하는 것은 시간을 절약할 수 있는데, 이는 워드라인이 2개의 연속적인 판독들 사이에서 서로 다른 전압으로 상승될 필요가 없기 때문이다.
도17은 판독 레벨들을 동적으로 결정하는 프로세스(1700)의 일실시예에 대한 순서도를 도시한다. 프로세스(1700)는 가장 최근의 2개의 판독들에 대하여 동일한 판독 레벨을 이용한다. 프로세스(1700)는 프로세스(800)의 일실시예이다. 프로세스(1700)는 프로세스(1000)와 유사하기 때문에, 너무 상세히 서술되지 않을 것이다.
단계 1701에서, MaxReads가 0으로 초기화된다. 단계 1702에서, 제 1 판독이 수행된다. 이러한 판독은 초기 판독 레벨에서 수행되며, 이는 디폴트 판독 레벨, 상기 메모리 다이(212), 블록, 워드라인, 기타 등등을 위해 이용된 마지막 판독 레벨이 될 수 있다. 상기 판독 레벨은, 블록 내의 몇몇 다른 워드라인, 다이의 다른 블록, 기타 등등에 대한 마지막 판독 레벨이 될 수도 있다. 단계 1704에서, 제 1 판독의 결과들이 제 1 세트의 데이터 래치들로 전송된다.
단계 1706에서는, 단계 1702와 동일한 레벨에서 제 2 판독이 수행된다. 다음을 유의해야 하는바, 선택된 워드라인 상의 전압에서 시프트가 발생하지 않으며, 따라서 시간을 절약할 수 있다. 단계 1710에서, 제 2 판독의 결과들이 제 2 세트의 데이터 래치들로 전송된다.
단계 1712에서, 제 1 세트 및 제 2 세트의 데이터 래치들 내의 데이터가 비교된다. 단계 1714에서, 오류 비교들이 소정의 임계값보다 작은지의 대한 판별이 수행된다. 임계값이 오류 판독 카운트와 상관되도록, 임계값이 설정될 수도 있다. 예를 들어, 오류 판독 카운트는 ECC 알고리즘에 의해서 정정될 수 있는 것이 될 수 있다. 일실시예에서는, 판독 레벨이 최적의 판독 레벨에 근접하는 경우, 오류-비교 카운트는 낮을 것이라 예상된다. 전술한 바와 같이, 오류-비교 카운트가 낮은 이유들 중 하나는, 오류-비교 카운트가 잡음에 대한 함수가 될 수 있다는 점이다. 최적의 판독 레벨 인근에서는, 적은 개수의 메모리 셀들이 존재한다. 따라서, 잡음에 의해서 영향을 받는 메모리 셀들도 더 적을 것이다.
만일, 오류-비교 카운트가 임계값보다 크다면, 단계 1715에서 MaxReads가 증분된다. 만일, MaxReads가 제한값을 넘어선다면(단계 1716), 프로세스는 종료한다. 최대 개수의 이터레이션들이 수행되지 않았다고 가정하면, 제 2 세트의 데이터 래치들로부터의 데이터는 제 1 세트의 데이터 래치들로 전송된다(단계 1717). 단계 1718에서, 판독 레벨이 시프트된다. 일실시예에서는, 임계전압 분포들이 이동할 것이라 예상되는 방향으로 판독 레벨이 시프트된다. 예를 들어, 판독 레벨은 아래쪽으로 시프트될 수 있다. 판독 레벨은 임의의 분량 만큼 시프트될 수 있다. 일실시예에서, 시프트 분량은 오류-비교 카운트의 함수이다. 예를 들면, 몇몇 경우에 있어서, 오류-비교 카운트는 판독 레벨이 2개의 임계전압 분포들 사이의 계곡으로부터 얼마나 멀리 떨어져 있는지를 시사할 수 있다. 따라서, 오류-비교 카운트가 높다면, 최적의 판독 위치를 건너뛰는(skipping over) 큰 위험이 없이, 다음 이터레이션을 위한 판독 레벨이 더 큰 분량만큼 시프트될 수 있으며, 여기서 상기 최적의 판독 위치는 통상적으로 인접한 상태들 사이의 계곡 위치에서 출현한다. 이와 유사하게, 오류-비교 카운트가 낮다면, 작은 시프트 분량이 이용될 수 있다.
다음으로, 새로운 판독 레벨로 단계 1702 - 1714 가 반복된다. 결국, 오류-비교 카운트는 임계값보다 적어질 것이다. 그렇게 되면, 제 2 세트의 데이터 래치들로부터의 데이터가 단계 1719에서 이용될 수 있다. 일실시예에서는, 제 1 세트의 데이터 래치들로부터의 데이터가 대신에 이용될 수도 있음을 유의해야 한다.
단계 1720에서, 마지막 판독 레벨에 근거하여 동적 판독 레벨이 설정된다. 이 경우, 마지막 2개의 판독들 각각에서 상기 마지막 판독 레벨이 이용되었음을 유의해야 한다. 이러한 동적 판독 레벨은 후속 사용을 위해 저장될 수도 있다. 이러한 동적 판독 레벨은, 동일 단위(예컨대, 워드라인, 블록, 메모리 다이)를 후속으로 판독할 때에 이용될 수도 있다. 또한, 이러한 동적 판독 레벨은 몇몇 다른 단위를 판독할 때에 이용될 수도 있다. 예를 들면, 이러한 동적 판독 레벨은 동일 블록 내의 서로 다른 워드라인을 판독할 때에 이용될 수도 있다. 또한, 이것은 다른 상태들을 구분하기 위한 판독 레벨들을 결정하는데 도움을 주기 위해 이용될 수도 있다.
몇몇 실시예들에서, 동적 판독 레벨들은 필드(field)에서 결정된다. 일실시예에서는, 웨이퍼 소팅(sorting) 시에, 혹은 메모리 디바이스를 선적하기 이전의 몇몇 다른 시간들 동안에 판독 레벨들이 동적으로 결정된다. 이것은 디폴트 판독 레벨들을 설정하는데 이용될 수도 있음을 유의해야 한다. 또한, 이들 디폴트 판독 레벨들은, 서로 다른 단위들(예컨대, 메모리 다이, 블록, 워드라인, 등등)에 대해서 조정될 수도 있다. 따라서, 일실시예에서는, 서로 다른 단위들에 대한 개별적인 디폴트 판독 레벨들이 메모리 디바이스에 저장된다.
일실시예는 비휘발성 저장소를 동작시키시는 방법을 포함한다. 상기 방법은 메모리 다이 상의 비휘발성 저장소자들의 그룹을 제 1 세트의 판독 레벨들에서 판독하는 단계를 포함한다. 상기 비휘발성 저장소자들의 그룹은 복수의 데이터 상태들을 저장한다. 가장 최신의 2개의 판독 레벨들에 대한 결과들이 메모리 다이 상에 저장된다. 상기 그룹 내의 비휘발성 저장소자들 중에서, 가장 최신의 2개의 판독 레벨들에 대한 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트가 판별된다. 이러한 판별은 메모리 다이 상에 저장된 결과들을 이용하여 메모리 다이 상에서 수행된다. 상기 카운트가 기결정된 기준값(criterion)에 도달한 때의 판독 레벨에 기초하여, 복수의 데이터 상태들 중 인접한 데이터 상태들의 제 1 쌍을 서로 구별하기 위해 동적 판독 레벨이 결정된다.
일실시예는 비휘발성 저장 디바이스를 포함하며, 상기 비휘발성 저장 디바이스는 메모리 다이, 메모리 다이 상의 비휘발성 저장소자들의 그룹, 및 비휘발성 저장소자들의 상기 그룹과 통신하는 하나 이상의 관리 회로를 포함한다. 비휘발성 저장소자들의 그룹은 복수의 데이터 상태들을 저장한다. 하나 이상의 관리 회로들은 제 1 세트의 판독 레벨들에서 상기 비휘발성 저장소자들의 그룹을 판독한다. 하나 이상의 관리 회로들은 가장 최신의 2개의 판독 레벨들의 결과들을 메모리 다이 상에 저장한다. 하나 이상의 관리 회로들은, 상기 그룹 내의 비휘발성 저장소자들 중에서, 가장 최신의 2개의 판독 레벨들에 대한 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트를 판별한다. 하나 이상의 관리 회로들은 메모리 다이 상에 저장된 상기 결과들을 이용하여 상기 카운트를 메모리 다이 상에서 판별한다. 하나 이상의 관리 회로들은, 상기 카운트가 기결정된 기준값에 도달한 때의 판독 레벨에 기초하여, 복수의 데이터 상태들 중 인접한 데이터 상태들의 제 1 쌍을 서로 구별하기 위한 조정된 판독 레벨을 획립한다.
일실시예는 비휘발성 저장소자를 동작시키는 다음과 같은 방법을 포함한다. 메모리 다이 상의 비휘발성 저장소자들의 그룹에 있는 각각의 비휘발성 저장소자가 제 1 레벨 보다 위인 임계전압을 갖고 있는지에 대한 판별이 이루어진다. 비휘발성 저장소자들의 그룹은 복수의 데이터 상태들을 저장하며, 상기 그룹 내의 비휘발성 저장소자들 중 일부는 에러 코드들을 저장한다. 상기 그룹 내의 비휘발성 저장소자들 각각이 상기 제 1 레벨 보다 높은 임계전압을 갖고 있는지를 나타내는 표시들(indications)이 메모리 다이 상에 저장된다. 상기 그룹 내의 비휘발성 저장소자들 각각이 제 2 레벨보다 높은 임계전압을 갖고 있는지에 대한 판별이 수행된다. 상기 그룹 내의 비휘발성 저장소자들 각각이 제 2 레벨 보다 높은 임계전압을 갖고 있는지를 나타내는 표시들이 메모리 다이 상에 저장된다. 얼마나 많은 비휘발성 저장소자들이 상기 제 1 레벨과 제 2 레벨 사이의 임계전압을 갖고 있는지에 대한 카운트가 판별된다. 이러한 판별은 저장된 표시들에 기초하여 메모리 다이 상에서 수행된다. 상기 카운트가 임계 분량보다 작은지에 대한 여부가 판별된다. 임계 분량은, 에러 코드들을 이용하여 정정될 수 있는 에러들의 레벨에 대응한다. 상기 카운트가 임계 분량 보다 작다면, 제 1 레벨 혹은 제 2 레벨 중 하나는 데이터 상태들의 쌍 사이를 구분하기 위한 레벨로 설정된다.
일실시예는, 비휘발성 저장소를 동작시키는 방법을 포함하는바, 상기 방법은, 메모리 다이 상의 비휘발성 저장소자들의 그룹을 제 1 판독 레벨에서 판독하는 단계, 상기 비휘발성 저장소자들은 복수의 데이터 상태들을 저장하고, 제 1 판독 레벨은 복수의 데이터 상태들 중 2개의 데이터 상태들을 구분하기 위한 판독 레벨에서 가까우며; 상기 그룹 내의 각각의 비휘발성 저장소자들에 대한 제 1 레벨에서의 판독의 제 1 결과들을 메모리 다이 상의 제 1 데이터 래치에 저장하는 단계; 비휘발성 저장소자들의 상기 그룹을 제 2 판독 레벨에서 판독하는 단계, 제 2 판독 레벨은 2개의 데이터 상태들을 구분하기 위한 판독 레벨에 가까우며, 상기 제 1 및 제 2 판독 레벨들은 서로 다른 임계전압들을 테스트하며; 상기 그룹의 비휘발성 저장소자들 각각에 대한 제 2 레벨에서의 판독의 제 2 결과들을 메모리 다이 상의 제 2 데이터 래치에 저장하는 단계; 오류-비교 카운트를 생성하도록 제 1 데이터 래치 내의 제 1 결과들과 제 2 데이터 래치 내의 제 2 결과들 사이에서 배타적 논리합(XOR)을 수행하는 단계; 그리고 오류-비교 카운트가 임계 분량보다 적다면, 제 1 결과들 혹은 제 2 결과들 중 하나를, 2개의 데이터 상태들 사이를 구분하기 위한 결과로서 이용하는 단계를 포함한다.
일실시예는 비휘발성 저장 디바이스를 포함하는바, 비휘발성 저장 디바이스는 메모리 다이, 상기 메모리 다이 상의 비휘발성 저장소자들의 그룹, 비휘발성 저장소자들의 상기 그룹은 복수의 데이터 상태들을 저장하며; 메모리 다이 상의 제 1 데이터 래치; 메모리 다이 상의 제 2 데이터 래치; 상기 비휘발성 저장소자들의 그룹과 통신하는 하나 이상의 관리 회로들을 포함한다. 하나 이상의 관리 회로들은 제 1 판독 레벨에서 비휘발성 저장소자들의 상기 그룹을 판독하며, 제 1 판독 레벨은 복수의 데이터 상태들 중 인접한 2개의 데이터 상태들을 서로 구분하기 위한 판독 레벨에 가깝다. 하나 이상의 관리 회로들은 상기 그룹의 비휘발성 저장소자들 각각에 대한 제 1 레벨에서의 판독의 제 1 결과들을 제 1 데이터 래치에 저장한다. 하나 이상의 관리 회로들은 제 2 판독 레벨에서 비휘발성 저장소자들의 상기 그룹을 판독한다. 제 2 판독 레벨은 2개의 데이터 상태들을 서로 구분하기 위한 판독 레벨에 가깝다. 제 1 및 제 2 판독 레벨은 서로 다른 임계전압들을 테스트한다. 하나 이상의 관리 회로들은 상기 그룹의 비휘발성 저장소자들 각각에 대한 제 2 레벨에서의 판독의 제 2 결과들을 제 2 데이터 래치에 저장한다.하나 이상의 관리 회로들은 오류-비교 카운트를 생성하도록 제 1 데이터 래치 내의 제 1 결과들과 제 2 데이터 래치 내의 제 2 결과들 사이에서 배타적 논리합(XOR)을 수행한다. 하나 이상의 관리 회로들은 오류-비교 카운트가 임계 분량보다 적다면, 제 1 결과들 혹은 제 2 결과들 중 하나를, 2개의 데이터 상태들 사이를 구분하기 위한 결과로서 이용한다.
앞에서 설명된 본 발명의 세부적인 설명은 예시 및 설명의 목적으로 제공된 것이다. 본 발명을 개시되는 이러한 형태에 정확히 한정시키려 하거나 이러한 형태만이 본 발명의 전부가 되도록 의도된 것이 아니다. 상기의 설명으로부터 많은 수정 및 변경이 가능하다. 상기 설명된 실시예들은 본 발명의 원리 및 그 실제 응용을 가장 잘 설명하기 위해서, 그러므로써 본 발명의 기술분야에서 숙련된 기술을 가진 자들이 다양한 실시예 및 고려되는 특별한 사용에 적합한 다양한 수정을 통해 본 발명을 가장 잘 이용할 수 있도록 하기 위해서 선택되었다. 본 발명의 범위는 본 명세서에 첨부되는 특허청구범위에 의해 정의되도록 의도된다.

Claims (15)

  1. 비휘발성 저장 디바이스의 동작 방법으로서,
    메모리 다이의 비휘발성 저장소자들의 그룹을 제 1 세트의 판독 레벨들에서 판독하는 단계(802) -비휘발성 저장소자들의 상기 그룹은 복수의 데이터 상태들을 저장하며- ;
    가장 최신의 2개의 판독 레벨들에 대한 결과들을 상기 메모리 다이에 저장하는 단계(804);
    상기 그룹 내의 비휘발성 저장소자들 중에서, 가장 최신의 2개의 판독 레벨들에 대한 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트를 판별하는 단계(806) -상기 판별하는 단계는 상기 메모리 다이에 저장된 결과들을 이용하여 상기 메모리 다이에서 수행되며- ; 및
    상기 카운트가 기결정된 기준값(criterion)에 도달한 때의 판독 레벨에 기초하여, 복수의 데이터 상태들 중 제 1 쌍의 인접한 데이터 상태들을 서로 구별하기 위한 동적 판독 레벨을 설정하는 단계(808)
    를 포함하는 비휘발성 저장 디바이스의 동작 방법.
  2. 제1항에 있어서,
    비휘발성 저장소자들의 상기 그룹의 일부는 에러 정정 코드들을 저장하며, 상기 기결정된 기준값에 도달한 카운트는 임계값 미만의 카운트를 포함하며, 상기 임계값은 상기 에러 정정 코드들을 이용한 에러 정정을 적용함에 의해서 정정될 수 있는 레벨에 대응하는 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제 1 세트의 판독 레벨들 중 제 1 판독 레벨은 디폴트 판독 레벨이며 그리고 상기 제 1 세트의 판독 레벨들 중 제 2 판독 레벨은 비휘발성 저장소자들의 상기 그룹의 임계전압 분포들이 시간이 경과함에 따라 이동할 것으로 예상되는 방향쪽에 존재하는 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    비휘발성 저장소자들의 상기 그룹은 제 1 워드라인에 관련되며, 그리고
    다른 워드라인들에 관련된 비휘발성 저장소자들에 대한 제 1 쌍의 인접한 데이터 상태들을 서로 구별하기 위한 초기 판독 레벨로서, 제 1 동적 판독 레벨을 이용하는 단계
    를 더 포함하는 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 판독 레벨들은 균일한 스텝 사이즈(uniform step size)만큼 서로 다른 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  6. 제5항에 있어서,
    상기 동적 판독 레벨은 제 1 동적 판독 레벨이며, 그리고
    상기 균일한 스텝 사이즈만큼 서로 다른 제 2 세트의 판독 레벨들에서 비휘발성 저장소자들의 상기 그룹을 판독하는 단계;
    상기 제 2 세트의 판독 레벨들 중 가장 최신의 2개에 판독 레벨들에 대한 결과들을 상기 메모리 다이에 저장하는 단계;
    상기 그룹 내의 비휘발성 저장소자들 중에서, 상기 제 2 세트의 판독 레벨들 중 상기 가장 최신의 2개의 판독 레벨들에 대한 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트를 판별하는 단계; 및
    상기 카운트가 기결정된 기준값에 도달한 때의 판독 레벨에 기초하여, 복수의 데이터 상태들 중 제 2 쌍의 인접한 데이터 상태들을 서로 구별하기 위한 제 2 동적 판독 레벨을 설정하는 단계
    를 더 포함하는 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  7. 제6항에 있어서,
    상기 제 1 쌍의 인접한 데이터 상태들을 서로 구별하기 위한 상기 제 1 동적 판독 레벨에 기초하여, 상기 제 2 세트의 판독 레벨들에 대한 초기 판독 레벨을 결정하는 단계
    를 더 포함하는 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  8. 제1항 내지 제4항 중 어느 한 항에 있어서,
    상기 제 1 세트의 판독 레벨들 중 적어도 2개의 판독 레벨들은 동일한 크기를 갖는 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  9. 제1항에 있어서,
    상기 기결정된 기준값에 도달한 카운트는 최소값에 도달한 카운트를 포함하는 것을 특징으로 하는 비휘발성 저장 디바이스의 동작 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    판독 레벨들 각각에서의 판독의 결과들을 저장하는 것은, 판독 레벨들 중 제 1 판독 레벨에서 판독한 결과들을 제 1 데이터 래치에 저장하고 그리고 판독 레벨들 중 제 2 판독 레벨에서 판독한 결과들을 제 2 데이터 래치에 저장하는 것을 포함하며, 상기 그룹 내의 비휘발성 저장소자들 중에서 가장 최신의 2개의 판독 레벨들에서의 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트를 판별하는 것은, 상기 제 1 데이터 래치 내의 결과들과 상기 제 2 데이터 래치 내의 결과들을 배타적 논리합(XOR)하는 것을 포함하는, 비휘발성 저장 디바이스의 동작 방법.
  11. 비휘발성 저장 디바이스로서,
    메모리 다이(212);
    상기 메모리 다이의 비휘발성 저장소자들의 그룹 -비휘발성 저장소자들의 상기 그룹은 복수의 데이터 상태들을 저장하며- ; 및
    비휘발성 저장소자들의 상기 그룹과 통신하는 하나 이상의 관리 회로들(220, 230, 242, 244)
    을 포함하며,
    상기 하나 이상의 관리 회로들은 비휘발성 저장소자들의 상기 그룹을 제 1 세트의 판독 레벨들에서 판독하며,
    상기 하나 이상의 관리 회로들은 가장 최신의 2개의 판독 레벨들에 대한 결과들을 상기 메모리 다이에 저장하며,
    상기 하나 이상의 관리 회로들은 상기 그룹 내의 비휘발성 저장소자들 중에서, 상기 가장 최신의 2개의 판독 레벨들에서의 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트를 판별하고,
    상기 하나 이상의 관리 회로들은 상기 메모리 다이에 저장된 결과들을 이용하여 상기 메모리 다이에서 상기 카운트를 판별하며,
    상기 하나 이상의 관리 회로들은 상기 카운트가 기결정된 기준값에 도달한 때의 판독 레벨에 기초하여, 복수의 데이터 상태들 중 제 1 쌍의 인접한 데이터 상태들을 서로 구별하기 위한 조정된 판독 레벨을 설정하는 것을 특징으로 하는 비휘발성 저장 디바이스.
  12. 제11항에 있어서,
    비휘발성 저장소자들의 상기 그룹 중 일부 비휘발성 저장소자들은 에러 정정 코드들을 저장하며, 상기 하나 이상의 관리 회로들은 상기 카운트가 상기 기결정된 기준값에 도달한지를 판별하기 위하여, 상기 에러 정정 코드들을 이용한 에러 정정을 적용함에 의해서 정정될 수 있는 레벨에 대응하는 임계값에 상기 카운트가 도달한지의 여부를 판별하는 것을 특징으로 하는 비휘발성 저장 디바이스.
  13. 제11항 또는 제12항에 있어서,
    상기 하나 이상의 관리 회로들은 스텝 사이즈만큼 서로 다른 제 2 세트의 판독 레벨들에서 비휘발성 저장소자들의 상기 그룹을 판독하며,
    상기 하나 이상의 관리 회로들은 상기 제 2 세트의 판독 레벨들 중 가장 최신의 2개에 판독 레벨들에 대한 결과들을 상기 메모리 다이에 저장하며,
    상기 하나 이상의 관리 회로들은 상기 그룹 내의 비휘발성 저장소자들 중에서, 상기 제 2 세트의 판독 레벨들 중 상기 가장 최신의 2개의 판독 레벨들에 대한 판독들 사이에서 서로 다른 결과를 보여준 비휘발성 저장소자들이 얼마나 많은지에 대한 카운트를 판별하고, 상기 판별은 상기 메모리 다이에 저장된 결과들을 이용하여 상기 메모리 다이에서 수행되며,
    상기 하나 이상의 관리 회로들은 상기 카운트가 기결정된 기준값에 도달한 때의 판독 레벨에 기초하여, 복수의 데이터 상태들 중 제 2 쌍의 인접한 데이터 상태들을 서로 구별하기 위한 조정된 판독 레벨을 설정하는 것을 특징으로 하는 비휘발성 저장 디바이스.
  14. 제13항에 있어서,
    상기 하나 이상의 관리 회로들은 상기 제 1 쌍의 인접한 데이터 상태들을 서로 구별하기 위한 조정된 판독 레벨에 기초하여, 상기 제 2 세트의 판독 레벨들의 초기 판독 레벨을 결정하는 것을 특징으로 하는 비휘발성 저장 디바이스.
  15. 제11항 내지 제14항 중 어느 한 항에 있어서,
    상기 메모리 다이 상의 제 1 데이터 래치와 상기 메모리 다이 상의 제 2 데이터 래치; 및
    상기 제 1 데이터 래치와 상기 제 2 데이터 래치 사이에서 배타적 논리합(XOR)을 수행하기 위한 로직을 더 포함하며,
    상기 하나 이상의 관리 회로들은 판독 레벨들 중 제 1 판독 레벨에서 판독한 결과들을 상기 제 1 데이터 래치에 저장하고,
    상기 하나 이상의 관리 회로들은 판독 레벨들 중 제 2 판독 레벨에서 판독한 결과들을 상기 제 2 데이터 래치에 저장하고,
    상기 하나 이상의 관리 회로들은 상기 제 1 데이터 래치 내의 결과들과 상기 제 2 데이터 래치 내의 결과들을 배타적 논리합(XOR)함으로써 상기 카운트를 결정하는 것을 특징으로 하는 비휘발성 저장 디바이스.
KR1020147009469A 2011-09-21 2012-09-13 비휘발성 저장소자에 대한 온 칩 다이내믹 판독 KR101961975B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/239,194 2011-09-21
US13/239,194 US8406053B1 (en) 2011-09-21 2011-09-21 On chip dynamic read for non-volatile storage
PCT/US2012/055046 WO2013043446A1 (en) 2011-09-21 2012-09-13 On chip dynamic read for non-volatile storage

Publications (2)

Publication Number Publication Date
KR20140065440A true KR20140065440A (ko) 2014-05-29
KR101961975B1 KR101961975B1 (ko) 2019-03-25

Family

ID=46924558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147009469A KR101961975B1 (ko) 2011-09-21 2012-09-13 비휘발성 저장소자에 대한 온 칩 다이내믹 판독

Country Status (6)

Country Link
US (2) US8406053B1 (ko)
EP (1) EP2758963B1 (ko)
KR (1) KR101961975B1 (ko)
CN (1) CN103843067B (ko)
TW (1) TW201322260A (ko)
WO (1) WO2013043446A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180083689A (ko) * 2017-01-13 2018-07-23 삼성전자주식회사 최적의 읽기 전압으로 독출하는 불휘발성 메모리 장치
KR20190062160A (ko) * 2017-11-27 2019-06-05 웨스턴 디지털 테크놀로지스, 인코포레이티드 판독 교정을 갖는 비휘발성 저장 시스템
WO2022212129A1 (en) * 2021-04-02 2022-10-06 Micron Technology, Inc. Identify the programming mode of memory cells during reading of the memory cells

Families Citing this family (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458536B2 (en) 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices
US8891297B2 (en) * 2011-11-01 2014-11-18 Micron Technology, Inc. Memory cell sensing
KR101858560B1 (ko) * 2011-11-24 2018-05-18 삼성전자주식회사 불휘발성 메모리 장치의 동작 방법과 상기 불휘발성 메모리 장치를 포함하는 메모리 시스템의 동작 방법
US9430735B1 (en) * 2012-02-23 2016-08-30 Micron Technology, Inc. Neural network in a memory device
US9036417B2 (en) 2012-09-06 2015-05-19 Sandisk Technologies Inc. On chip dynamic read level scan and error detection for nonvolatile storage
US9135972B2 (en) 2013-02-20 2015-09-15 Apple Inc. Readout of interfering memory cells using estimated interference to other memory cells
US9129711B2 (en) * 2013-02-28 2015-09-08 Kabushiki Kaisha Toshiba Semiconductor memory device
US9530515B2 (en) * 2013-03-13 2016-12-27 Sandisk Technologies Llc Determining read voltages for reading memory
US9190159B2 (en) * 2013-03-15 2015-11-17 Kabushiki Kaisha Toshiba Semiconductor memory device
US9489300B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9489299B2 (en) 2013-06-19 2016-11-08 Sandisk Technologies Llc Data encoding for non-volatile memory
US9390008B2 (en) 2013-12-11 2016-07-12 Sandisk Technologies Llc Data encoding for non-volatile memory
US9129701B2 (en) * 2013-12-19 2015-09-08 Sandisk Technologies Inc. Asymmetric state detection for non-volatile storage
US9455029B2 (en) * 2014-05-23 2016-09-27 Micron Technology, Inc. Threshold voltage analysis
KR102218722B1 (ko) 2014-06-09 2021-02-24 삼성전자주식회사 불휘발성 메모리 시스템 및 메모리 컨트롤러의 동작 방법
KR102290974B1 (ko) 2014-11-07 2021-08-19 삼성전자주식회사 불휘발성 메모리 장치, 메모리 컨트롤러 및 그것들을 포함하는 불휘발성 메모리 시스템의 동작 방법
US9905302B2 (en) 2014-11-20 2018-02-27 Western Digital Technologies, Inc. Read level grouping algorithms for increased flash performance
US9576671B2 (en) 2014-11-20 2017-02-21 Western Digital Technologies, Inc. Calibrating optimal read levels
US9720754B2 (en) 2014-11-20 2017-08-01 Western Digital Technologies, Inc. Read level grouping for increased flash performance
CN105825894B (zh) * 2015-01-07 2019-10-01 华邦电子股份有限公司 存储器读取方法以及数字存储器装置
JP6378102B2 (ja) 2015-01-28 2018-08-22 東芝メモリ株式会社 半導体装置および読み出し方法
CN107646178A (zh) * 2015-03-10 2018-01-30 科锐安特股份有限公司 用于管理数据帧传送的方法和设备
US9472298B1 (en) * 2015-05-13 2016-10-18 Sandisk Technologies Llc Dynamic read valley search in non-volatile memory
KR102412781B1 (ko) 2015-11-03 2022-06-24 삼성전자주식회사 비휘발성 메모리 장치 및 비휘발성 메모리 장치의 독출 방법
US9672928B2 (en) * 2015-11-10 2017-06-06 Samsung Electronics Co., Ltd. Method and apparatus for estimating read levels of nonvolatile memory and for programming pilot signals used for such estimation
KR102585221B1 (ko) * 2016-04-21 2023-10-05 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
US9805809B1 (en) * 2016-08-31 2017-10-31 Sandisk Technologies Llc State-dependent read compensation
US9952944B1 (en) * 2016-10-25 2018-04-24 Sandisk Technologies Llc First read solution for memory
US10262743B2 (en) * 2016-10-25 2019-04-16 Sandisk Technologies Llc Command sequence for first read solution for memory
US10558381B2 (en) 2016-12-16 2020-02-11 Sandisk Technologies Llc Dynamic read table generation
KR20180070974A (ko) 2016-12-19 2018-06-27 삼성전자주식회사 비휘발성 메모리의 리드 동작 방법, 비휘발성 메모리를 포함하는 메모리 시스템 및 이의 동작 방법
US10026486B1 (en) 2017-03-06 2018-07-17 Sandisk Technologies Llc First read countermeasures in memory
CN106683703B (zh) * 2017-03-15 2023-09-15 珠海零边界集成电路有限公司 一种数据读取方法、集成电路及芯片
US10388394B2 (en) * 2017-07-25 2019-08-20 Apple Inc. Syndrome weight based evaluation of memory cells performance using multiple sense operations
US10199111B1 (en) * 2017-08-04 2019-02-05 Micron Technology, Inc. Memory devices with read level calibration
US10347315B2 (en) 2017-10-31 2019-07-09 Sandisk Technologies Llc Group read refresh
US10622075B2 (en) * 2017-12-12 2020-04-14 Sandisk Technologies Llc Hybrid microcontroller architecture for non-volatile memory
KR102427638B1 (ko) 2018-01-10 2022-08-01 삼성전자주식회사 비휘발성 메모리 장치 및 이의 읽기 방법
KR102402668B1 (ko) 2018-02-26 2022-05-26 삼성전자주식회사 비휘발성 메모리 장치, 그것의 동작 방법 및 그것을 포함하는 저장 장치
KR102470726B1 (ko) * 2018-03-14 2022-11-25 삼성전자주식회사 비휘발성 메모리 장치
CN110751276A (zh) * 2018-07-24 2020-02-04 闪迪技术有限公司 在nand存储器阵列中实现具有三值输入和二值权重的神经网络
US10529433B1 (en) 2018-08-13 2020-01-07 Micron Technology, Inc. Offset memory component automatic calibration (AUTOCAL) error recovery for a memory sub-system
US10777286B2 (en) 2018-12-28 2020-09-15 Micron Technology, Inc. Apparatus and methods for determining data states of memory cells
TWI690930B (zh) * 2019-01-09 2020-04-11 力晶積成電子製造股份有限公司 補償非易失性記憶元件在編程時電荷流失與源極線偏置的方法
US10872671B1 (en) 2019-06-13 2020-12-22 Sandisk Technologies Llc Dynamic read voltages in non-volatile memory
US11221800B2 (en) 2020-03-02 2022-01-11 Micron Technology, Inc. Adaptive and/or iterative operations in executing a read command to retrieve data from memory cells
US11740970B2 (en) 2020-03-02 2023-08-29 Micron Technology, Inc. Dynamic adjustment of data integrity operations of a memory system based on error rate classification
US11029890B1 (en) 2020-03-02 2021-06-08 Micron Technology, Inc. Compound feature generation in classification of error rate of data retrieved from memory cells
US11086572B1 (en) 2020-03-02 2021-08-10 Micron Technology, Inc. Self adapting iterative read calibration to retrieve data from memory cells
US12009034B2 (en) 2020-03-02 2024-06-11 Micron Technology, Inc. Classification of error rate of data retrieved from memory cells
US11049582B1 (en) 2020-05-07 2021-06-29 Micron Technology, Inc. Detection of an incorrectly located read voltage
US11562793B2 (en) 2020-05-07 2023-01-24 Micron Technology, Inc. Read soft bits through boosted modulation following reading hard bits
US11238953B2 (en) * 2020-05-07 2022-02-01 Micron Technology, Inc. Determine bit error count based on signal and noise characteristics centered at an optimized read voltage
US11257546B2 (en) * 2020-05-07 2022-02-22 Micron Technology, Inc. Reading of soft bits and hard bits from memory cells
US11081200B1 (en) 2020-05-07 2021-08-03 Micron Technology, Inc. Intelligent proactive responses to operations to read data from memory cells
US11880571B2 (en) 2020-05-13 2024-01-23 Micron Technology, Inc. Counter-based methods and systems for accessing memory cells
US10991444B1 (en) 2020-05-28 2021-04-27 Western Digital Technologies, Inc. Tiered read reference calibration
JP2021190150A (ja) 2020-06-02 2021-12-13 キオクシア株式会社 メモリシステム及びメモリコントローラ
US11488682B2 (en) 2020-06-24 2022-11-01 Sandisk Technologies Llc Calibration for integrated memory assembly
US11049547B1 (en) 2020-08-05 2021-06-29 Samsung Electronics Co., Ltd. Non-volatile memory device, operating method thereof, and storage device including the non-volatile memory device
KR20220086733A (ko) 2020-12-16 2022-06-24 삼성전자주식회사 메모리 컨트롤러, 메모리 장치, 및 저장 장치
US11514983B2 (en) 2021-04-02 2022-11-29 Micron Technology, Inc. Identify the programming mode of memory cells based on cell statistics obtained during reading of the memory cells
US11664073B2 (en) 2021-04-02 2023-05-30 Micron Technology, Inc. Adaptively programming memory cells in different modes to optimize performance
KR20230005634A (ko) * 2021-07-01 2023-01-10 에스케이하이닉스 주식회사 리드 동작을 수행하는 저장 장치 및 그 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323412A1 (en) * 2008-06-30 2009-12-31 Nima Mokhlesi Read disturb mitigation in non-volatile memory
US20100020611A1 (en) * 2008-07-23 2010-01-28 Park Kitae Flash memory systems and operating methods using adaptive read voltage levels
KR20110036398A (ko) * 2009-10-01 2011-04-07 삼성전자주식회사 불안정 메모리 셀 산포를 검출하는 메모리 시스템 및 상기 불안정 메모리 셀 산포 검출방법
US20120023999A1 (en) * 2010-07-27 2012-02-02 Lg Electronics Inc. Refrigerator having ice transfer unit

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6222762B1 (en) 1992-01-14 2001-04-24 Sandisk Corporation Multi-state memory
US5555204A (en) 1993-06-29 1996-09-10 Kabushiki Kaisha Toshiba Non-volatile semiconductor memory device
KR0169267B1 (ko) 1993-09-21 1999-02-01 사토 후미오 불휘발성 반도체 기억장치
US5903495A (en) 1996-03-18 1999-05-11 Kabushiki Kaisha Toshiba Semiconductor device and memory system
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
US6456528B1 (en) 2001-09-17 2002-09-24 Sandisk Corporation Selective operation of a multi-state non-volatile memory system in a binary mode
US7177197B2 (en) * 2001-09-17 2007-02-13 Sandisk Corporation Latched programming of memory and method
US7046568B2 (en) 2002-09-24 2006-05-16 Sandisk Corporation Memory sensing circuit and method for low voltage operation
US7196931B2 (en) 2002-09-24 2007-03-27 Sandisk Corporation Non-volatile memory and method with reduced source line bias errors
US7327619B2 (en) 2002-09-24 2008-02-05 Sandisk Corporation Reference sense amplifier for non-volatile memory
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7237074B2 (en) 2003-06-13 2007-06-26 Sandisk Corporation Tracking cells for a memory system
US20060140007A1 (en) 2004-12-29 2006-06-29 Raul-Adrian Cernea Non-volatile memory and method with shared processing for an aggregate of read/write circuits
US7196928B2 (en) 2005-04-05 2007-03-27 Sandisk Corporation Compensating for coupling during read operations of non-volatile memory
US7471562B2 (en) 2006-05-08 2008-12-30 Macronix International Co., Ltd. Method and apparatus for accessing nonvolatile memory with read error by changing read reference
US7844878B2 (en) 2006-08-09 2010-11-30 Microsoft Corporation Dynamic electronic correction code feedback to extend memory device lifetime
US7876621B2 (en) 2007-04-23 2011-01-25 Sandisk Il Ltd. Adaptive dynamic reading of flash memories
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US7613045B2 (en) 2007-11-26 2009-11-03 Sandisk Il, Ltd. Operation sequence and commands for measuring threshold voltage distribution in memory
US7957187B2 (en) * 2008-05-09 2011-06-07 Sandisk Corporation Dynamic and adaptive optimization of read compare levels based on memory cell threshold voltage distribution
US8458536B2 (en) * 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices
US7859932B2 (en) 2008-12-18 2010-12-28 Sandisk Corporation Data refresh for non-volatile storage
US8027195B2 (en) 2009-06-05 2011-09-27 SanDisk Technologies, Inc. Folding data stored in binary format into multi-state format within non-volatile memory devices
US8358542B2 (en) * 2011-01-14 2013-01-22 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
US8631288B2 (en) * 2011-03-14 2014-01-14 Micron Technology, Inc. Methods, devices, and systems for data sensing in a memory system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323412A1 (en) * 2008-06-30 2009-12-31 Nima Mokhlesi Read disturb mitigation in non-volatile memory
US20100020611A1 (en) * 2008-07-23 2010-01-28 Park Kitae Flash memory systems and operating methods using adaptive read voltage levels
KR20110036398A (ko) * 2009-10-01 2011-04-07 삼성전자주식회사 불안정 메모리 셀 산포를 검출하는 메모리 시스템 및 상기 불안정 메모리 셀 산포 검출방법
US20120023999A1 (en) * 2010-07-27 2012-02-02 Lg Electronics Inc. Refrigerator having ice transfer unit

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180083689A (ko) * 2017-01-13 2018-07-23 삼성전자주식회사 최적의 읽기 전압으로 독출하는 불휘발성 메모리 장치
KR20190062160A (ko) * 2017-11-27 2019-06-05 웨스턴 디지털 테크놀로지스, 인코포레이티드 판독 교정을 갖는 비휘발성 저장 시스템
WO2022212129A1 (en) * 2021-04-02 2022-10-06 Micron Technology, Inc. Identify the programming mode of memory cells during reading of the memory cells

Also Published As

Publication number Publication date
KR101961975B1 (ko) 2019-03-25
WO2013043446A1 (en) 2013-03-28
TW201322260A (zh) 2013-06-01
CN103843067B (zh) 2017-03-29
US8576624B2 (en) 2013-11-05
US20130070524A1 (en) 2013-03-21
EP2758963B1 (en) 2018-05-02
US20130148425A1 (en) 2013-06-13
EP2758963A1 (en) 2014-07-30
CN103843067A (zh) 2014-06-04
US8406053B1 (en) 2013-03-26

Similar Documents

Publication Publication Date Title
KR101961975B1 (ko) 비휘발성 저장소자에 대한 온 칩 다이내믹 판독
US9710325B2 (en) On chip dynamic read level scan and error detection for nonvolatile storage
EP2467854B1 (en) Selective memory cell program and erase
KR101566460B1 (ko) 비휘발성 메모리 어레이 중 마지막 워드 라인의 데이터 보존 개선
KR101699917B1 (ko) 패스트 비트 감지 및 확인 생략을 구비한 비휘발성 저장소의 프로그래밍
US7616495B2 (en) Non-volatile storage apparatus with variable initial program voltage magnitude
KR101882522B1 (ko) 비휘발성 저장 시스템 및 비휘발성 저장장치를 동작시키기 위한 방법
US8942043B2 (en) Non-volatile storage with process that reduces read disturb on end wordlines
US8473809B2 (en) Data coding for improved ECC efficiency
US20140071761A1 (en) Non-volatile storage with joint hard bit and soft bit reading
EP2780912B1 (en) Non-volatile storage with data recovery
KR20120039562A (ko) 비휘발성 저장 소자에 대한 프로그래밍 완료의 검출

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant