KR101017847B1 - 가변 판독 임계값을 갖는 비휘발성 메모리 - Google Patents

가변 판독 임계값을 갖는 비휘발성 메모리 Download PDF

Info

Publication number
KR101017847B1
KR101017847B1 KR1020097010854A KR20097010854A KR101017847B1 KR 101017847 B1 KR101017847 B1 KR 101017847B1 KR 1020097010854 A KR1020097010854 A KR 1020097010854A KR 20097010854 A KR20097010854 A KR 20097010854A KR 101017847 B1 KR101017847 B1 KR 101017847B1
Authority
KR
South Korea
Prior art keywords
memory
voltages
flash memory
voltage
threshold
Prior art date
Application number
KR1020097010854A
Other languages
English (en)
Other versions
KR20090089342A (ko
Inventor
이갈 브란드만
케빈 엠. 콘레이
Original Assignee
쌘디스크 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/556,626 external-priority patent/US7558109B2/en
Priority claimed from US11/556,615 external-priority patent/US7904788B2/en
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20090089342A publication Critical patent/KR20090089342A/ko
Application granted granted Critical
Publication of KR101017847B1 publication Critical patent/KR101017847B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

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

Abstract

데이터가 메모리 수명 동안 조정되는 하나 이상의 판독 전압들을 사용하여 비휘발성 메모리 어레이로부터 판독된다. 프로그래밍 타깃 전압들 및 판독 전압들은 메모리 상태들을 점점 더 넓어지는 임계 윈도우에 맵핑하도록 메모리 수명에 걸쳐 함께 조정될 수 있다. 개별적인 메모리 상태들이 더 넓어지는 서브-범위들로 맵핑되어, 에러들을 감소시킨다.
데이터, 메모리 수명, 판독 전압, 비휘발성 메모리 어레이, 프로그래밍 타깃 전압.

Description

가변 판독 임계값을 갖는 비휘발성 메모리{NONVOLATILE MEMORY WITH VARIABLE READ THRESHOLD}
본 발명은, 비휘발성 메모리 시스템에 관한 것이며, 비휘발성 메모리 시스템을 동작시키는 방법에 관한 것이다.
비휘발성 메모리 시스템들은 다양한 애플리케이션(application)들에서 사용된다. 일부의 비휘발성 메모리 시스템들은 개인용 컴퓨터와 같은 더 큰 시스템에 내장된다. 다른 비휘발성 메모리 시스템들은 호스트 시스템(host system)에 제거 가능하게 접속되며, 상이한 호스트 시스템들 사이에서 상호교환될 수 있다. 이와 같은 제거 가능한 메모리 시스템들의 예들로는 메모리 카드(memory card)들 및 USB 플래시 드라이브(flash drive)가 있다. 비휘발성 메모리 카드들을 포함하는 전자 회로 카드들이 다수의 널리-공지된 표준들에 따라 상업적으로 구현되었다. 메모리 카드들은 개인용 컴퓨터들, 셀룰러 전화들, 개인용 디지털 보조장치들(PDA들), 디지털 정지 카메라들, 디지털 무비 카메라(digital movie camera)들, 휴대용 오디오 플레이어 및 대량의 데이터의 저장을 위한 다른 호스트 전자 디바이스들과 함께 사용된다. 이와 같은 카드들은 통상적으로 메모리 셀 어레이(memory cell array)의 동작을 제어 및 지원하고 카드가 접속되는 호스트와 인터페이싱(interfacing)하는 제어기와 함께 재프로그래밍 가능한 비휘발성 반도체 메모리 셀 어레이를 포함한다. 동일한 유형의 카드 중 여러 개가 그 유형의 카드를 수용하도록 디자인된 호스트 카드 슬롯(host card slot)에서 상호교환될 수 있다. 그러나 많은 전자 카드 표준들의 개발은 다양한 정도로 서로 호환 불가능한 상이한 유형들의 카드들을 생성하였다. 하나의 표준에 따라 제조된 카드는 통상적으로 또 다른 표준의 카드와 함께 동작하도록 디자인된 호스트와 함께 사용할 수는 없다. 메모리 카드 표준들은 PC 카드, 콤팩트플래시TM 카드(CFTM 카드), 스마트미디어TM 카드, 멀티미디어카드(MMCTM), 보안 디지털(SD) 카드, 미니SDTM 카드, 가입자 아이덴티티 모듈(Subscriber Identity Module: SIM), 메모리스틱TM, 메모리 스틱 듀오 카드 및 마이크로SD/트랜스플래시TM 메모리 모듈 표준들을 포함한다. 상표 "Cruzer®" 하에서 SanDisk 코퍼레이션으로부터 상업적으로 입수 가능한 여러 USB 플래시 드라이브 제품들이 존재한다. USB 플래시 드라이브들은 전형적으로 상술된 메모리 카드들보다 더 크고 상술된 메모리 카드와 상이하게 형성된다.
비휘발성 메모리 시스템에 저장된 데이터는 데이터가 판독될 때 에러있는 비트(erroneous bit)들을 포함할 수 있다. 손상된 데이터를 재구성하는 종래의 방식들은 에러 수정 코드(Error Correction Code: ECC)들의 적용을 포함한다. 간단한 에러 수정 코드들은 데이터가 메모리 시스템 내로 기록될 때, 비트들의 그룹들의 패리티(parity)를 필요한 논리적 값으로 설정하는 부가적인 패리티 비트들을 저장 함으로써 데이터를 인코딩(encoding)한다. 저장 동안에 데이터가 에러있게 되는 경우에, 비트들의 그룹들의 패리티가 변화할 수 있다. 메모리 시스템으로부터 데이터를 판독할 시에, 비트들의 그룹의 패리티가 ECC에 의해 다시 한번 계산된다. 데이터 손상(data corruption) 때문에, 계산된 패리티는 필요한 패리티 조건과 부합하지 않을 수 있고, ECC는 손상을 검출할 수 있다.
ECC들은 적어도 2개의 기능들: 에러 검출 및 에러 수정을 가질 수 있다. 이러한 기능들 각각에 대한 능력은 전형적으로 에러있는 것으로 검출되고 나서 수정될 수 있는 비트들의 수로 측정된다. 검출 능력은 수정 능력과 동일하거나 수정 능력보다 더 클 수 있다. 전형적인 ECC는 자신이 수정할 수 있는 것보다 더 높은 수의 에러 비트들을 검출할 수 있다. 데이터 비트들 및 패리티 비트들의 컬렉션(collection)은 종종 워드(word)라고 칭해진다. 초기의 예는 워드 당 2개의 에러들(이 예에서 7 비트)까지 검출하는 능력을 가지며 7-비트 워드에서 하나의 에러를 수정하는 능력을 가지는 (7,4) 해밍 코드(Hamming code)이다.
더 복잡한 ECC들은 워드 당 단일 에러 이상을 수정할 수 있지만, 데이터를 재구성하기가 계산적으로 점점 더 복잡해진다. 통상적인 관행은 부정확한 복구의 어떤 수용 가능하게 작은 가능도(likelihood)로 데이터를 복구하는 것이다. 그러나 에러들의 수가 증가함에 따라, 신뢰 가능한 데이터 복구의 확률이 또한 급속하게 감소하거나, 또는 부가적인 하드웨어 및/또는 성능에서의 관련 비용들이 엄청나게 높아진다.
EEPROM 시스템들을 포함한 반도체 메모리 디바이스들에서, 데이터는 트랜지 스터들의 임계 전압들에 의해 표현될 수 있다. 전형적으로, 상이한 디지털 데이터 저장 값들은 상이한 전압 범위들에 대응한다. 이 때문에, 판독 동작 동안, 전압 레벨들이 자신의 선호되는 범위들로 시프트(shift)하는 경우에, 에러가 발생한다. 상기 에러는 ECC에 의해 검출될 수 있고, 일부 경우들에서, 이러한 에러들은 수정될 수 있다.
플래시 메모리 어레이에서, 제 1 시간에, 복수의 메모리 상태들이 제 1 임계 윈도우(threshold window)로 맵핑되고, 복수의 메모리 셀들의 개별적인 메모리 셀들이 상기 제 1 임계 윈도우의 서브-범위(sub-range)들로 맵핑되며, 이후의 제 2 시간에, 상기 복수의 메모리 상태들이 제 2 임계 윈도우로 맵핑되고, 상기 복수의 메모리 상태들의 개별적인 메모리 상태들이 상기 제 2 임계 윈도우의 서브-범위들로 맵핑되며, 상기 제 2 윈도우가 상기 제 1 윈도우보다 더 넓다.
플래시 메모리 어레이로부터 데이터를 판독하는 방법은 복수의 메모리 셀들의 임계 전압들을 제 1 소정 전압들에 비교함으로써 상기 메모리로부터 제 1 데이터 비트들을 판독하는 단계, ECC 디코더에서 상기 제 1 데이터 비트들을 디코딩하는 단계, 및 이후에 메모리 셀들의 임계 전압들을 제 2 소정 전압들에 비교함으로써 상기 복수의 메모리 셀들로부터 제 2 데이터 비트들을 판독하는 단계를 포함하며, 상기 제 2 소정 전압들은 상기 ECC 디코더에서의 상기 제 1 데이터 비트들의 디코딩으로부터 결정된다.
플래시 메모리 시스템은 복수의 프로그래밍된 상태들로 프로그래밍된 복수의 셀들을 포함하는 플래시 메모리 어레이; 및 상기 메모리 어레이에 접속되며, 제 1 모드에서 상기 복수의 프로그래밍된 상태들을 구별하기 위하여 메모리 셀 임계 전압을 제 1 복수의 소정 전압들에 비교하고, 제 2 모드에서 상기 복수의 프로그래밍된 상태들을 구별하기 위하여 상기 메모리 셀 임계 전압을 제 2 복수의 소정 전압들에 비교하는 판독 회로를 포함하며, 상기 제 2 복수의 소정 전압들 중 가장 높은 전압은 상기 제 1 복수의 소정 전압들 중 가장 높은 전압보다 더 높다.
플래시 메모리 시스템은 복수의 비휘발성 메모리 셀들을 포함하는 메모리 어레이; 상기 메모리 어레이로부터의 데이터를 디코딩하는 ECC 디코더; 상기 메모리 어레이에 접속되고, 상기 메모리 셀의 프로그래밍된 상태를 결정하기 위하여 메모리 셀의 임계 전압을 적어도 하나의 소정 전압에 비교하는 판독 회로; 및 상기 ECC 디코더로부터의 정보에 응답하여 상기 적어도 하나의 소정 전압을 증가시키거나 감소시키는 조정 회로를 포함한다.
도 1은, 논리 1 및 논리 0 상태들을 구별하는데 사용되는 전압(VD)을 포함하는, 비휘발성 메모리에서 논리 1 상태 및 논리 0 상태로 프로그래밍된 셀들의 임계 전압들의 가능도 함수들을 도시하는 도면.
도 2는, 메모리 어레이, 변조기/복조기 회로들 및 인코더/디코더 회로들을 포함하는 메모리 시스템의 구성요소들을 도시하는 도면.
도 3은, 임계 전압 값들을 나타낸, 논리 1 상태 및 논리 0 상태로 프로그래 밍된 셀들의 판독 임계 전압들의 가능도 함수를 도시하는 도면.
도 4는, 메모리 어레이, 변조기/복조기 회로들 및 인코더/디코더 회로들을 포함하는 메모리 시스템의 구성요소들을 도시하며, 복조기는 디코더에 가능도 값들을 제공하는, 도면.
도 5는, 소프트-입력 소프트-출력(Soft-Input Soft-Output) 디코더를 갖는 ECC 유닛을 도시하는 도면.
도 6은, 2개의 예시적인 구별 전압들을 갖는 메모리 셀의 논리 1 상태 및 논리 0 상태의 가능도 함수들을 도시하는 도면.
도 7a는, 메모리 상태들 및 메모리 상태들 내에서의 부가적인 레졸루션(resolution) 사이의 구별을 제공하는 3개의 판독 패스(read pass)들과 함께, 데이터의 3 비트를 나타내는, 8개의 메모리 상태들의 가능도 함수들을 도시하는 도면.
도 7b는, 구별 전압의 양측 상의 증분들에서 구별 전압 및 부가적인 판독 전압들을 포함하는 판독 전압들의 예시적인 배열을 도시하는 도면.
도 8은, 메모리 셀 상태에 대한 가능도 함수가 메모리가 사용될 때 변화할 수 있는 방법을 도시하며, 가능도 분포는 사용에 따라 더 넓어진, 도면.
도 9a는, 메모리 수명의 초기 단계에서 4개의 메모리 상태들의 가능도 함수들 및 이러한 상태들을 분석하는 구별 전압들을 도시하는 도면.
도 9b는, 동일한 구별 전압들을 갖는 메모리 수명의 이후의 단계에서 도 9A의 4개의 메모리 상태들의 가능도 함수들을 도시하는 도면.
도 10a는, 구별 전압들이 이전 예에서보다 더 가깝게 이격되는 또 다른 실시예에 따른 메모리 수명의 초기 단계에서 4개의 메모리 상태들의 가능도 함수들을 도시하는 도면.
도 10b는, 도 10a의 구별 전압들보다 더 넓게 이격되는 조정된 구별 전압들을 갖는 메모리 수명의 이후의 단계에서 도 10a의 4개의 메모리 상태들의 가능도 함수들을 도시하는 도면.
도 11은, ECC 디코더, 상기 ECC 디코더에 의해 수정들에 관한 통계적 정보를 수집하는 통계적 유닛 및 판독 전압들과 같은 동작 파라미터들을 조정하고 통계적 유닛으로부터의 신호에 응답하여 타깃 전압들을 프로그래밍하는 조정 유닛을 포함하는 메모리 시스템을 도시하는 도면.
많은 비휘발성 메모리들에서, 메모리 어레이로부터 판독된 데이터는 에러들을 가질 수 있다. 즉, 메모리 어레이로 프로그래밍되는 입력 데이터의 개별적인 비트들은 이후에 상이한 논리적 값인 것으로 판독될 수 있다. 도 1은 메모리 셀 상태(임계 전압(VT))를 나타내는 물리적 파라미터 및 메모리 셀이 프로그래밍될 수 있는 논리 값들 사이의 관계를 도시한다. 이 예에서, 2개의 상태들만이 셀에 저장된다. 따라서, 셀은 1 데이터 비트를 저장한다. 논리 0 상태로 프로그래밍된 셀들은 일반적으로 논리 1(프로그래밍되지 않은) 상태의 셀들보다 더 높은 임계 전압을 갖는다. 대안적인 방식에서, 논리 1 상태는 메모리 셀의 프로그래밍되지 않은 상태이 다. 도 1의 수직축은 예상된 임계 전압 분포에 기초하여 임의의 특정 임계 전압에서 셀을 판독할 가능도를 나타낸다. 제 1 가능도 함수는 논리 1로 프로그래밍된 셀들에 대해 도시되어 있고, 제 2 가능도 함수는 논리 0으로 프로그래밍된 셀들에 대해 도시되어 있다. 그러나, 이러한 함수들은 자신들 사이의 어느 정도의 중첩을 가질 수 있다. 이와 같은 셀들을 판독하는데 있어서 구별 전압(VD)이 사용된다. VD 이하의 임계 전압을 갖는 셀들은 상태 1인 것으로 간주되는 반면, VD 이상의 임계 전압을 갖는 셀들은 상태 0인 것으로 간주된다. 도 1에 도시된 바와 같이, 이것이 항상 정확하지는 않을 수 있다. 함수들 사이의 중첩 때문에, 논리 1 상태로 프로그래밍된 메모리 셀이 VD보다 더 큰 임계 전압을 갖는 것으로 판독되어서 논리 0 상태인 것으로 판독되는 비-제로 가능도(non-zero likelihood)가 존재한다. 유사하게, 논리 0 상태로 프로그래밍된 메모리 셀이 논리 1 상태를 갖는 것으로 판독되는 비-제로 가능도가 존재한다.
함수들 사이의 중첩은 메모리 어레이에서의 물리적 결함들 및 메모리 어레이에서의 이후의 프로그래밍 또는 판독 동작들에 의하여 프로그래밍된 셀들에 초래되는 방해(disturbance)를 포함한 다수의 이유들 때문에 발생한다. 중첩은 또한 많은 수의 셀들을 매우 타이트한 임계 전압 범위 내에서 유지하는 능력의 일반적인 결여로 인하여 발생할 수 있다. 일부 프로그래밍 기술들은 임계 전압들의 함수들이 좁아지도록 한다(더 작은 표준 편차들을 갖도록 한다). 그러나, 이와 같은 프로그래밍은 더 많은 시간을 필요로 할 수 있다. 일부 메모리 시스템들에서, 1 비트 이상 이 메모리 셀에 저장된다. 일반적으로, 메모리 셀에 가능한 한 많은 비트들을 저장하는 것이 바람직하다. 이용 가능한 임계 전압 범위를 효율적으로 사용하기 위하여, 인접한 상태들에 대한 함수들은 상당히 중첩되게 될 수 있다.
비휘발성 메모리 시스템들은 메모리 어레이로부터 판독되는 데이터에서 발생하는 에러들을 극복하기 위하여 통상적으로 ECC 방법들을 사용한다. 이와 같은 방법들은 일반적으로 인코딩 시스템에 따라 메모리 어레이에서 저장된 입력 데이터로부터 일부의 부가적인 ECC 비트들을 계산한다. 다른 ECC 방식들은 더 복잡한 방식으로 입력 데이터를 출력 데이터에 맵핑할 수 있다. ECC 비트들은 일반적으로 입력 데이터와 함께 저장되지만, 별도로 저장될 수 있다. 입력 데이터 및 ECC 비트들은 이후에 비휘발성 메모리 어레이로부터 함께 판독되며, 디코더는 임의의 에러들이 존재하는지를 검사하기 위하여 상기 데이터 및 ECC 비트들 둘 모두를 사용한다. 일부 경우들에서, 이와 같은 ECC 비트들은 또한 에러인 비트들을 식별하는데 사용될 수 있다. 그 후, 에러있는 비트는 자신의 상태를 변화시킴으로써 수정된다("0"으로부터 "1"로 또는 "1"로부터 "0"으로 변화된다). 데이터 비트들에 ECC 비트들을 추가하는 것은 데이터를 비휘발성 메모리에 저장하기 전에 인코딩하는 유일한 방식이 아니다. 예를 들어, 데이터 비트들은 다음 변환들: 00 대 1111, 01 대 1100, 10 대 0011 및 11 대 0000을 제공하는 방식에 따라 인코딩될 수 있다.
도 2는 메모리 시스템(200)에 저장되는 입력 데이터의 예를 도시한다. 입력 데이터는 우선 인코더(203)를 포함하는 ECC 유닛(201)에 의해 수신된다. 입력 데이터는 메모리 시스템(200)에 저장될 호스트 데이터이거나, 또는 메모리 제어기에 의 해 발생된 데이터일 수 있다. 도 2의 예는 4 입력 데이터 비트들(1001)을 도시한다. 그 후, 인코더(203)는 인코딩 방식을 사용하여 입력 데이터 비트들로부터 ECC 비트들을 계산한다. 인코딩 방식의 일례는 데이터 비트들의 선택된 그룹들에 대한 패리티 비트들인 ECC 비트들을 발생시키는 것이다.
그 후, 입력 데이터 비트들 및 ECC 비트들 모두는 변조기(207)를 포함하는 변조/복조 유닛(205)으로 송신된다. 변조기(207)는 ECC 유닛(201)에 의해 송신된 디지털 데이터를 메모리 어레이 내에 기록되는 형태로 변환한다. 하나의 방식에서, 디지털 데이터는 복수의 메모리 셀들에서의 복수의 임계 전압 값들로 변환된다. 따라서, 디지털 데이터를 메모리 셀에서의 저장된 임계 전압으로 변환하는데 사용되는 다양한 회로들이 변조기를 형성하는 것으로 간주될 수 있다. 도 2의 예에서, 각각의 메모리 셀은 1 데이터 비트를 소유할 수 있다. 따라서, 각각의 메모리 셀은 2개의 범위들, 즉 도 1에 도시된 바와 같이 논리 "1" 상태를 나타내는 하나 및 논리 "0" 상태를 나타내는 다른 하나 중 하나의 임계 전압을 가질 수 있다. 논리 "1" 상태를 저장하는 메모리 셀들은 VD보다 적은(<VD) 임계 전압을 가지는 반면, 논리 "0" 상태를 저장하는 메모리 셀들은 VD보다 큰(>VD) 임계 전압을 갖는다. 셀들은 적어도 처음에, 2개의 논리적 상태들로 프로그래밍된 셀들 사이에 어떤 선호된 분리가 존재한다는 것을 보장하기 위하여 VD보다 더 높은 공칭 임계 전압으로 프로그래밍 및 검증될 수 있다.
데이터는 어떤 시간 기간 동안 메모리 어레이(209)에 저장될 수 있다. 이 시 간 동안, 다양한 이벤트(event)가 발생하여 메모리 셀들의 임계 전압들이 변화하도록 할 수 있다. 특히, 프로그래밍 및 판독을 포함한 동작들은 다른 이전에 프로그래밍된 셀들에 영향을 주는 방식으로 워드 라인들 및 비트 라인들에 전압들이 인가되는 것을 필요로 할 수 있다. 이와 같은 방해들은 특히 장치들의 치수가 감소되어 인접한 셀들 사이의 상호작용이 상당한 경우에 통상적이다. 전하가 또한 긴 시간 기간에 걸쳐 손실될 수 있다. 이와 같은 데이터 유지 실패들은 또는 판독될 때 데이터가 변화하도록 할 수 있다. 이와 같은 변화들의 결과로서, 데이터 비트들은 원 프로그래밍된 데이터 비트들과 상이한 상태들을 갖는 것으로 판독될 수 있다. 도 2의 예에서, 하나의 입력 데이터 비트(211)는 자신이 원 VD보다 더 큰(>VD) 임계 전압을 갖는 것으로 기록되었을 때 VD보다 적은(<VD) 임계값을 갖는 것으로 판독된다.
메모리 셀들의 임계 전압들은 변조/복조 유닛(205) 내의 복조기(213)에 의해 데이터 비트들로 변환된다. 이것은 변조기에 의해 수행된 프로세스의 반대이다. 복조기(213)는 메모리 어레이(209) 내의 메모리 셀로부터 전압 또는 전류를 판독하고 상기 판독으로부터 셀의 상태를 도출하는 감지 증폭기들을 포함할 수 있다. 도 2의 예에서, VD보다 적은(<VD) 임계 전압을 갖는 메모리 셀은 "1"의 복조된 출력을 제공하며, VD보다 큰(>VD) 임계 전압을 갖는 메모리 셀은 "0"의 복조된 출력을 제공한다. 이것은 도시된 출력 시퀀스(11011111)를 제공한다. 이 시퀀스의 제 2 비트(208)는 메모리 어레이(209)에 저장되는 결과로서 에러가 있다.
복조기(213)의 출력은 ECC 유닛(201) 내의 디코더(215)로 송신된다. 디코 더(215)는 임의의 에러들이 존재하는지를 데이터 비트들 및 ECC 비트들로부터 결정한다. 코드의 수정 능력 내에 있는 적은 수의 에러들이 존재하는 경우에, 에러들이 수정된다. 많은 수의 에러들이 존재하는 경우에, 상기 에러들이 코드의 검출 능력 내에 있다면, 상기 에러들이 식별될 수 있지만 수정될 수는 없다. 에러들의 수가 코드의 검출 능력을 초과한 경우에, 에러들은 검출될 수 없거나, 또는 에러있는 수정을 발생시킬 수 있다. 도 2의 예에서, 제 2 비트에서의 에러가 검출되고 수정된다. 이것은 입력 시퀀스와 동일한 디코더(215)로부터의 출력(1001)을 제공한다. 메모리 시스템(200)의 디코딩은 디코더(215)가 입력 데이터 비트들 및 ECC 비트들을 나타내는 데이터 비트들만 수신하고 상기 디코더(215)가 입력 데이터 비트들에 대응하는 데이터 비트들의 수정된 시퀀스를 출력하기 때문에(또는 에러들의 수가 너무 높으면 출력을 제공하지 못하기 때문에) 하드-입력 하드-출력 디코딩(hard-input hard-output decoding)인 것으로 간주된다.
메모리 시스템(200)에 대한 대안적인 메모리 시스템이 도 3 및 4에 도시되어 있다. 도 3은 VD=0이고 VD 이하의 임계 전압들은 논리 0을 나타내고 VD 이상의 임계 전압들은 논리 1을 나타내는, 도 1과 유사한 함수들을 도시한다. 임계 전압들을 2개의 상이한 범위들로 분할하는 단일 전압(VD)을 도시하는 대신에, 여기서 임계 전압들은 실제 전압 수(actual voltage number)들로 표시된다. 논리 "1"에 대응하는 함수는 0볼트 이상에서 센터링(centering)되고, 논리 "0"에 대응하는 함수는 0 볼트 이하에서 센터링된다.
도 4는 상이한 판독 프로세스를 갖는, (동일한 입력 데이터 비트들 및 ECC 비트들을 사용한) 메모리 시스템(200)의 데이터 저장 프로세스와 유사한 데이터 저장 프로세스를 사용하는 메모리 시스템(421)을 도시한다. 특히, 단순히 임계 전압이 특정 값 이상인지 또는 이하인지를 결정하는 대신에, 메모리 시스템(421)은 도 3에 도시된 바와 같은 임계 전압들을 판독한다. 실제 임계 전압이 반드시 판독되지는 않는다는 점이 이해될 것이다. 다른 셀 동작 수단(예를 들어, 전류 감지)이 데이터를 저장 및 검색하는데 사용될 수 있다. 전압 감지는 단지 예로서 사용된다. 일반적으로, 임계 전압은 트랜지스터가 턴 온(turn on)되는 게이트 전압을 칭한다. 도 4는 이전 예보다 더 상세한 정보를 제공하는 판독 동작을 도시한다. 이것은 도 2의 레졸루션보다 더 높은 레졸루션(및 프로그래밍에 사용되는 것보다 더 많은 상태들을 분석하는 레졸루션)을 갖는 판독으로서 간주될 수 있다. 이전 예에서와 같이, 판독된 데이터에서 에러들이 발생한다. 여기서, 제 2 및 제 3 비트들에 대응하는 판독들이 에러가 있다. 제 2 및 제 3 비트들은 논리 "0"이었고, VD보다 더 적은 임계 전압을 갖도록 셀을 프로그래밍함으로써 저장되었지만, 셀들은 VD(VD=0 볼트)보다 더 높은 0.05 볼트 및 0.10 볼트의 임계 전압들을 갖는 것으로 판독된다.
일련의 판독 동작들에 의하여 도 4의 메모리 어레이(423)로부터 판독된 원 전압들이 변조/복조 유닛(427) 내의 복조기(425)로 송신된다. 원 전압들은 아날로그-대-디지털 변환의 레졸루션에 의해 지시된 유한한 레졸루션을 갖는다. 여기서, 원 데이터는 가능도 데이터로 변환된다. 특히, 각각의 셀 판독은 대응하는 비트가 1 또는 0인 가능도로 변환된다. 메모리 어레이로부터의 일련의 판독들(0.75, 0.05, 0.10, 0.15, 1.25, 1.0, 3.0, 및 0.5 볼트)은 셀의 상태를 나타낼 수 있을 뿐만 아니라, 그 상태에 관한 정확성 정도(degree of certainty)를 제공하는데 사용될 수 있다. 이것은 메모리 셀이 특정 비트로 프로그래밍되는 가능도로서 표현될 수 있다. 따라서, 0 볼트에 가까운 판독들은 낮은 가능도 값들을 제공할 수 있는 반면, 0으로부터 먼 판독들은 더 높은 가능도 값들을 제공한다. 도시된 가능도 값들은 (이하에 상세히 설명되는) 로그 가능도 비(log likelihood ratio)들이다. 이것은 논리 0 상태의 셀들에 음수들을 제공하고, 논리 1 상태의 셀들에 양수들을 제공하고, 상기 수의 크기는 상태가 정확하게 식별되는 가능도를 나타낸다. 제 2 및 제 3 가능도 값들(0.1, 0.2)은 논리 "1"을 나타낸다. 제 2 및 제 3 값들은 매우 낮은 가능도들을 나타낸다.
가능도 값들은 ECC 유닛(431) 내의 디코더(429)로 송신된다(일부 경우들에서, 원 값들로부터 가능도 값들을 획득하는 것은 디코더에서 수행되는 것으로 간주될 수 있다). ECC 유닛(431)은 또한 인코더(432)를 포함한다. 디코더(429)는 가능도 값들에 대한 디코딩 동작들을 수행한다. 이와 같은 디코더는 소프트-입력 디코더로서 간주될 수 있다. 일반적으로, 소프트-입력은 디코딩되어야 하는 데이터와 관련된 어떤 품질 정보를 포함하는 입력을 칭한다. 소프트-입력으로서 제공된 부가적인 정보는 일반적으로 디코더가 더 양호한 결과들을 획득하도록 한다. 디코더는 소프트-입력을 사용하여 디코딩 계산들을 수행해서, 계산된 가능도 값들을 출력으로 제공할 수 있다. 이것은 소프트-출력으로 간주되며, 이와 같은 디코더는 소프트 -입력 소프트-출력(SISO) 디코더로서 간주된다. 그 후, 이 출력은 디코딩을 반복하고 결과들을 개선시키기 위하여 SISO 디코더로의 입력으로서 다시 사용될 수 있다. SISO 디코더는 또 다른 유닛에 하드 출력을 제공하는 더 큰 디코더의 부분을 형성할 수 있다. SISO 디코더들은 일반적으로 양호한 성능을 제공하며, 일부 경우들에서, 하드-입력 하드-출력 디코딩으로 가능한 것보다 더 양호한 성능을 제공할 수 있다. 특히, 동일한 량의 오버헤드(overhead)(ECC 비트들의 수)에 대하여, SISO 디코더는 더 큰 에러 수정 능력을 제공할 수 있다. SISO 디코더를 효율적으로 사용하기 위하여, 적절한 인코딩/디코딩 방식이 구현될 수 있고, 복조는 과도한 복잡성 없이 그리고 메모리 어레이로부터 데이터를 판독하는데 있어서 과도한 시간을 필요로 함이 없이 소프트-출력을 효율적으로 획득하도록 적응된다.
하나의 실시예에서, SISO 디코더에 대한 소프트-입력은 메모리를 프로그래밍하는데 사용된 더 많은 수의 상태들을 분석하는 레졸루션으로 비휘발성 메모리 어레이 내의 데이터를 판독함으로써 제공된다. 따라서, 데이터는 메모리 셀을 2개의 임계 전압 범위들 중 하나로 프로그래밍함으로써 기록되고 나서, 3개 이상의 임계 전압 범위들을 분석함으로써 판독될 수 있다. 전형적으로, 판독에서 사용된 임계 전압 범위들의 수는 프로그래밍에서 사용된 임계 전압 범위들의 수의 어떤 배수(예를 들어, 2배)일 것이다. 그러나, 이것이 항상 그러하지는 않다.
ECC 유닛은 전용 회로로서 형성되거나, 또는 이 기능이 제어기 내의 펌웨어에 의해 수행될 수 있다. 전형적으로, 제어기는 ECC와 같은 특정 기능들을 위해 디자인된 회로들을 가지며 제어기 동작들을 관리하는 펌웨어를 또한 가지는 주문형 반도체(Application Specific Integrated Circuit: ASIC)이다. 따라서, 인코더/디코더는 메모리 제어기에서 하드웨어 및 펌웨어의 조합으로 형성될 수 있다. 인코더/디코더(ECC 유닛)는 대안적으로 메모리 칩 상에 위치될 수 있다. 변조/복조 유닛은 메모리 칩, 제어기 칩, 별도의 칩 또는 어떤 조합상에 있을 수 있다. 일반적으로, 변조/복조 유닛은 (메모리 어레이에 접속된 주변 회로들과 같은) 메모리 칩 상의 적어도 일부의 구성요소들을 포함할 수 있다. 도 4가 높은 레졸루션으로 판독(아날로그 판독)되는 임계 전압들을 나타내지만, 선택된 레졸루션의 정도는 사용된 비휘발성 메모리의 유형을 포함한 다수의 팩터(factor)들에 따를 수 있다.
도 5는 ECC 유닛(431), 특히 디코더(429)의 더 상세한 도면을 도시한다. 디코더(429)는 SISO 디코더(532) 및 소프트-하드 변환기(534)를 포함한다. SISO 디코더들은 일반적으로 원 가능도 데이터를 수용하고, 원 가능도 데이터에 대한 ECC 계산들을 수행하여 계산된 가능도 데이터를 제공한다. 상기 계산된 가능도 데이터는 소프트-출력으로 간주된다. 그 후, 많은 경우들에서, 이와 같은 소프트-출력은 SISO 디코더로의 입력으로서 제공되어, 제 2 디코딩 반복이 수행된다. SISO 디코더는 적어도 하나의 소정 조건이 달성될 때까지 연속적인 반복들을 수행할 수 있다. 예를 들어, 소정 조건은 모든 비트들이 어떤 최소 값보다 더 큰 가능도를 갖는 것일 수 있다. 소정 조건은 또한 평균 가능도 값과 같은 가능도 값들의 집합(aggregate)일 수 있다. 소정 조건은 하나의 반복으로부터 다음 반복까지의 결과들의 수렴(convergence)일 수 있다(즉, 부가적인 반복들로부터 더 적은 개선이 존재할 때까지 반복하는 것을 유지한다). 소정 조건은 소정 수의 반복들이 완료되는 것일 수 있다. 이러한 조건들의 조합이 또한 사용될 수 있다. 디코딩은 데이터가 저장되기 전에 데이터에 대해 인코더(432)에 의해 수행된 인코딩의 결과인 데이터 내의 인코딩된 패턴을 사용하여 수행된다. 인코더(432) 및 디코더(429) 둘 모두는 ECC 유닛(431)의 부분들로서 간주된다.
효율적인 디코딩은 적절한 인코딩/디코딩 방식을 갖는 것에 의존한다. SISO 디코더(532)와 같은 SISO 디코더에서의 이후의 디코딩에 적합한 방식으로 데이터를 인코딩하는 다양한 방식들이 공지되어 있다. 인코딩/디코딩 방식들은 터보 코드(turbo code)들, 프로덕트 코드(product code)들, BCH 코드들, 리드-솔로몬 코드(Reed-Solomon code)들, 컨볼루션 코드(convolutional code)들(미국 특허 출원 번호 11/383,401 및 11/383,405 참조), 해밍 코드들, 및 저밀도 패리티 검사(Low Density Parity Check: LDPC) 코드들을 포함하지만, 이에 국한되지 않는다. LDPC 코드들 및 터보 코드들, 그리고 이러한 코드들이 SISO 디코딩과 함께 사용될 수 있는 방법의 상세한 설명은 모두는 2006년 9월 28일자로 출원된 명칭이 "Soft-input soft-output decoder for nonvolatile memory"인 미국 특허 출원 번호 11/536,286 및 명칭이 "Method of soft-input soft-output decoding for nonvolatile memory인 미국 특허 출원 번호 11/536,327에 제공되어 있다.
일부 경우들에서, ECC 디코더에 의해 수행된 수정들에 관한 통계들이 수집되었다. 이와 같은 통계들은 메모리 어레이의 동작 파라미터들에서 조정들을 행하는데 사용될 수 있다. 2006년 9월 28일자로 출원된 미국 특허 출원 번호 11/536,347 및 11/536,372는 조정되는 동작 파라미터들을 갖는 비휘발성 메모리 시스템들 및 이와 같은 파라미터들을 조정하는 방법들을 기술한다.
조정될 수 있는 비휘발성 메모리의 동작 파라미터의 일례는 프로그래밍된 메모리 상태들 사이의 구별 전압이다. 도 6은 논리 1로 프로그래밍되고 논리 0으로 프로그래밍된 셀들의 판독 임계 전압들에 대한 가능도 함수들(635a, 635b)을 도시한다. 제 1 구별 전압(VD)은 도 6에 도시된 바와 같이, 셀이 실제로 논리 1로 프로그래밍되었을 상당한 가능도가 존재할지라도, VD보다 더 높은 임계 전압을 갖는 임의의 셀이 논리 0으로 프로그래밍되는 것으로 간주되기 때문에, 많은 수의 에러들을 제공하는 위치에 도시되어 있다. VD를 구별 전압으로 사용하는 것은 상당한 수의 셀들이 자신들이 논리 1로 프로그래밍되었을지라도 논리 0인 것으로 판독된다는 것을 의미한다. 이와 같은 데이터 비트들은 일반적으로 ECC에 의해 수정된다. 논리 0으로 프로그래밍된 셀이 논리 1을 갖는 것으로 판독될 가능도가 매우 낮아서, 이와 같은 비트들의 ECC 수정은 드물다. 따라서, ECC 디코더는 이 경우에, 1-대-0 수정들보다 더 많은 0-대-1 수정들을 수행할 것이다.
제 2 구별 전압(VD')이 논리 1 함수 및 논리 0 함수가 교차하는 임계 전압에 도시되어 있다. 따라서, 셀이 VD'의 임계 전압을 갖는 경우에, 상기 셀이 논리 1 및 논리 0으로 프로그래밍되었을 가능도가 동일하다. 이것이 구별 전압에 대한 최적의 위치이다. VD'의 구별 전압에서도, 셀의 임계 전압이 잘못된 논리 상태를 나타낼 가능도가 약간 존재한다. 그러나 상기 가능도는 낮고, 논리 1을 갖는 것으로 이 후에 판독되는 논리 0으로 프로그래밍된 셀들의 수는 논리 0을 갖는 것으로 이 후에 판독되는 논리 1로 프로그래밍된 셀들의 수와 동일하다. 구별 전압이 자신의 최적 값이 아닐 때(예를 들어, VD), 구별 전압이 자신의 최적 값(예를 들어, VD')에 이르도록 하거나, 또는 구별 전압이 자신의 최적 값에 가깝게 이르도록 구별 전압을 조정하는 것이 바람직할 수 있다. 구별 전압이 자신의 최적 값이 아니라는 것을 검출하는 하나의 방식은 구별 전압의 양측 상의 메모리 상태들에 대응하는 비트들에 대해 ECC 디코더에 의하여 행해진 수정으로부터 검출하는 것이다.
ECC 디코딩은 일반적으로 구별 전압의 양측 상의 논리 상태들 사이에 행해진 수정들의 수로부터 구별 전압이 최적 위치에 위치되는지를 나타낼 수 있다. 구별 전압이 자신의 최적 위치가 아닌 경우에, ECC 디코딩은 구별 전압이 이동되어야 하는 방향을 (구별 전압의 양측 상의 상태들로부터의 수정들의 수로부터) 나타낼 수 있다. ECC 디코딩은 또한 더 낮은 상태로부터 더 높은 상태로의 수정들에 비교된 더 높은 상태(이 예에서, 논리 0)로부터 더 낮은 상태(이 예에서, 논리 1)로의 수정들의 각각의 수들로부터 구별 전압이 얼마나 많이 이동되어야 하는지를 나타낼 수 있다. 초기 구별 전압들을 사용하여 판독된 데이터의 ECC 수정들로부터 구별 전압들이 조정되어야 하는지를 결정하기 위하여 적절한 회로들이 사용될 수 있다. 이와 같은 조정들이 행해져야 하는 경우에, 상기 회로들은 구별 전압들이 어느 방향으로 조정되어야 하는지를 나타낼 수 있고, 구별 전압들이 어떻게 조정되어야 하는지를 또한 나타낼 수 있다.
도 6이 저장된 데이터의 1 비트를 나타내는 2개의 프로그래밍된 상태들만을 도시할지라도, 일부의 구성들에서, 메모리 셀들은 저장된 데이터의 1 비트 이상을 나타내는 3개 이상의 상태들로 프로그래밍될 수 있다. 도 7a는 메모리 셀의 임계 전압 범위(임계 윈도우)가 프로그래밍된 상태들을 개별적으로 나타내는 8개의 서브-범위들로 분할되는 예를 도시한다. 3 데이터 비트들이 이와 같은 셀에 저장된다. 상기 셀은 자신의 임계 전압을 7개의 구별 전압들(Va-Vg)과 비교하는 제 1 판독 패스(R1) 동안 8개의 서브-범위들(737a-h) 중 하나에 있는 것으로 판독된다. 구별 전압들(Va-Vg)은 이웃하는 상태들에 대한 가능도 함수들이 교차할 것으로 예상되는 장소에 위치된다. 상기 셀의 임계 전압을 구별 전압들(Va-Vg)과 비교하는 것 이외에, 임계 전압은 또한 제 2 판독 패스(R2)에서 중간 전압들(Vh-Vo)에 비교된다. 중간 전압들(Vh-Vo)은 구별 전압들(Va-Vg) 사이이며, 제 1 판독 패스(R1)의 각각의 서브-범위(737a-737h) 내에서 부가적인 레졸루션을 제공한다. 제 3 판독 패스(R3)는 서브-범위들(737a-h) 내에서 더 분석하는 부가적인 중간 전압들(Vp-Vee)을 사용하여 수행된다. 일부 경우들에서, 높은 레졸루션을 달성하기 위하여 더욱더 많은 패스들이 수행될 수 있다. 2개 이상의 판독 패스들의 결과들이 높은 레졸루션을 갖는 메모리 셀의 임계 전압을 제공하기 위하여 사용될 수 있다. 이것은 아날로그-대-디지털 변환의 형태로 간주될 수 있다. 각각의 판독의 결과들은 메모리 어레이에 대한 주변 회로들로서 형성되는 레지스터(register)들에서 래칭(latching)될 수 있다. 모든 필요한 판독들이 수행되었을 때, 레지스터들의 콘텐트(content)들이 ECC 디코더와 같은 다른 회로들로 송신되는 임계 전압 값(또는 등가물)을 제공하기 위 하여 사용된다. 대안적으로, 각각의 판독으로부터 출력이 메모리 칩으로부터 (아날로그-대-디지털 변환이 수행되는) 어느 장소의 회로들로 송신될 수 있다. 이와 같은 데이터를 송신하는 것은 효율을 위하여 부가적인 판독들과 병렬로 행해질 수 있다.
일부 메모리 시스템들에서, ECC 수정들에 응답하여 다른 조정들이 행해질 수 있다. 예를 들어, 임계 전압들을 특정 비트들과 관련된 확률 값들과 상관시키기 위하여 검색 테이블이 사용되는 경우에, 상기 검색 테이블은 하나의 상태로부터 또 다른 상태로 수정들의 수를 평형화하기 위하여 조정될 수 있다. 따라서, 임계 전압의 상관성 및 확률은 ECC 수정의 관측들에 따라 동적으로 갱신된다.
도 6의 2개의 상태 메모리 셀에서와 같이, 도 7a의 예에서의 구별 전압들은 인접한 상태들 사이의 상관성들을 평형화하기 위하여 조정될 수 있다. 예를 들어, 구별 전압(Vc)은 100 상태로부터 101 상태로의 수정들의 수 및 101 상태로부터 100 상태로의 수정들의 수가 더 동일하게 행해지도록 조정될 수 있다. 일반적으로, 구별 전압들이 조정되는 경우에, 제 2 판독 패스(R2) 및 제 3 판독 패스(R3)의 중간 전압들이 또한 조정된다. 일반적으로, 이와 같은 중간 전압들은 셀의 임계 전압에 관한 유용한 정보를 획득하는 패턴으로 배열된다. 이와 같은 정보는 메모리 셀의 상태에 관한 확률 값들을 제공하는데 사용될 수 있다. R1, R2 및 R3와 같은 별도의 판독 패스들을 수행하는 것이 항상 필요하지는 않고, 일부 경우들에서, 단일 시퀀스의 전압 비교들이 구별 전압들 및 중간 전압들을 포함하는 단일 판독으로서 수행된다. 또 다른 예에서, 이진 검색이 수행될 수 있다.
도 7a의 예에서 2개 이상의 메모리 상태들이 존재하기 때문에, ECC에 의한 수정, 및 이와 같은 수정에 의한 분석이 더 복잡할 수 있다. 1로부터 0으로 및 0으로부터 1로의 비트들의 수정들의 수를 간단하게 모니터링하는 것은 일반적으로 충분하지 않다. 셀 당 3 비트들의 경우에, 0-대-1 수정들보다 더 많은 1-대-0 수정들은 비트들의 메모리 상태들로의 맵핑에 따라서 구별 전압이 일부 경우들에서는 증가되어야 하고 다른 경우들에서는 감소되어야 한다는 것을 의미한다. 예를 들어, 100 상태 및 101 상태 사이에서 구별 전압을 조정하기 위해서는, 다른 비트들이 이러한 상태들 둘 모두에 대해 동일하기 때문에, 최하위 비트의 수정만이 고려될 필요가 있다. (더 높은 비트들로서 1 및 0을 갖는 셀들에서 최하위 비트들에 대하여) 1로부터 0으로보다 0으로부터 1로의 더 높은 수정들의 수는 임계 전압이 너무 높아서 낮아져야 한다는 것을 나타낼 것이다. 통계적 유닛은 수정된 비트 및 수정되지 않은 비트를 나타내는데 사용되는 메모리 상태들에 대한 수정들을 추적하여 적절한 조정이 행해질 수 있도록 할 수 있다.
도 7b는 구별 전압(Vredn) 주위에 배열된 중간 판독 전압들(V1-V6)의 패턴의 일례를 도시한다. 특히, 도 7b는 Vreadn의 양측 상에서 전압차(δ)에서 중간 전압들(V1 및 V2), Vreadn의 양측 상에서 전압차(2δ)에서 중간 전압들(V3 및 V4), 그리고 Vreadn의 양측 상에서 전압차(3δ)에서 중간 전압들(V5 및 V6)을 도시한다. 셀의 임계 전압은 도 7a에서와 같이 증가하는 레졸루션의 판독들에서 Vreadn 및 V1-V6과 비교되거나, 증가하거나 감소하는 전압의 순서 또는 임의의 다른 편리한 순서로 비교될 수 있다. 일반적으로, Vreadn이 인접한 상태들 사이의 ECC 수정을 평형화하기 위하여 조정되는 경우에, 중간 전압들(V1-V6)이 Vreadn으로부터 동일한 오프셋(offset)들을 유지하게 위하여 이에 따라 조정될 것이다.
구별 전압들의 조정은 ECC 디코더에 의해 행해진 수정에 따라 어느 한 방향에서 행해질 수 있다. 따라서, 특정한 프로그래밍된 상태와 관련된 임계 전압 범위는 넓어지거나 좁아질 수 있고, 전압에서 위로 시프트되거나 아래로 시프트될 수 있다. 일반적으로, 플래시 메모리에서, 특정한 프로그래밍된 상태에 대한 가능도 함수는 메모리 사용에 따라 더 넓어진다. 도 8은 동일한 셀에 대한 2개의 가능도 함수들(839a-839b)을 도시하며, 함수(839a)는 임계 전압(VT)의 함수로서의 가능도의 수명 분포의 시작을 도시하고, 함수(839b)는 임계 전압(VT)의 함수로서의 가능도의 수명 분포의 끝을 도시한다. 도시된 바와 같이, 수명 분포의 시작(839a)은 수명 분포의 끝(839b)보다 더 좁다. 메모리 셀들로부터의 실제 데이터가 y-축이 상이한 임계 전압들에서 판독된 셀들의 수를 나타내는 도 8의 분포들과 유사한 분포들을 나타낸다는 점이 이해될 것이다. 가능도는 본 설명에서 y-축에 사용된다.
메모리가 사용될 때 프로그래밍된 메모리 상태들과 관련된 가능도 분포들의 확장을 처리하는 하나의 방식이 도 9a 및 9b에 도시되어 있다. 도 9a는 메모리의 수명의 초기에 4개의 프로그래밍된 상태들과 관련된 4개의 가능도 분포들(941a-d)을 도시한다. 구별 전압들(V7, V8 및 V9)은 분포들(941a-d) 사이에 위치된다. 도 9a는 이 경우에 큰 마진(margin)이 사용되며 셀을 오판할 가능성들이 낮다는 것을 나타내는, 인접한 분포들(941a-d) 사이에 상당한 중첩이 존재하지 않는다는 것을 도시한다.
도 9b는 셀이 판독, 프로그래밍 및 소거와 같은 다수의 메모리 동작들을 겪은 후에, 메모리의 수명의 이후의 단계에서 동일한 셀의 동일한 4개의 프로그래밍된 상태들과 관련된 가능도 분포들(943a-d)을 도시한다. 상기 분포들(943a-d)은 분포들(941a-d)에 비하여 넓어졌고, 약간의 중첩을 나타내어 저장된 데이터를 오판할 가능도가 상당할 수 있다. 구별 전압들(V7-V9)은 이전과 같이 메모리 상태들 사이를 구별하는데 사용된다. 따라서, 메모리 상태들은 동일한 임계 윈도우(V10-V11)로 맵핑된 채로 유지되고, 개별적인 메모리 상태들은 임계 윈도우(V10-V11) 내의 동일한 서브-범위들로 맵핑된 채로 유지된다. 분포들이 계속 넓어지는 경우에, 어느 포인트에서, 메모리로부터 판독된 데이터에서의 에러들의 수가 ECC 디코더의 용량을 초과하고, 메모리는 더 이상 사용할 수 없게 된다. 이 예에서, 구별 전압들(V7-V9)은 처음에 필요한 것보다 더 큰 마진을 제공하는 레벨들로 설정된다. 이것은 메모리의 수명 전체에 걸쳐 임계 윈도우(V10 내지 V11)를 사용한다. 그러나, 이 넓은 임계 윈도우를 사용하는 것은 메모리 셀들을 V9 및 V11 사이와 같은 높은 임계 윈도우들에 프로그래밍하기 위하여 높은 전압들이 필요하기 때문에 메모리에 불필요하게 스트레스(stress)를 가할 수 있다.
도 10a 및 10b는 메모리의 수명의 처음에 더 작은 임계 윈도우(V15-V16)를 사용하여 메모리의 수명의 나중에 더 큰 임계 윈도우(V15'-V16')를 사용하는 대안적인 배열을 도시한다. 처음에, 메모리 셀 상태들은 더 좁은 임계 윈도우(총 임계 전압 범위)(V15-V16)로 맵핑되고 나서, 더 넓은 임계 윈도우(총 임계 전압 범 위)(V15'-V16')로 맵핑된다. 도 10a는 도 9a의 유사한 메모리 상태들(941a-d)보다 서로 더 가까운 4개의 메모리 상태들에 대한 가능도 함수들(1045a-d)을 도시한다. 이것은 서로 더 가깝게 배열되는 타깃 전압들로의 프로그래밍의 결과이다. 프로그래밍 타깃 전압은 메모리 셀이 프로그래밍 동작 동안 달성하는 것으로 검증되는 메모리 셀 임계 전압이다(전형적으로, 일단 메모리 셀이 타깃 전압에 도달하는 것으로 검증되면, 상기 셀의 부가적인 프로그래밍이 금지되는 반면, 다른 셀들은 부가적으로 프로그래밍된다). 프로그래밍 타깃 전압들(특히, 가장 높은 프로그래밍 타깃 전압)은 도 9a에서보다 더 낮아서, 프로그래밍 전압들(예를 들어, NAND 메모리 내의 선택된 워드 라인 및 선택되지 않은 워드 라인에 각각 공급된 Vprog 및 Vpass)이 감소될 수 있다. 구별 전압들(V12-V14)은 판독 동안 각각의 메모리 상태에 대하여 더 좁은 임계 전압 서브-범위들을 규정한다. 따라서, 메모리 상태들이 맵핑되는 임계 윈도우(V15-V15)는 임계 윈도우(V10-V11)보다 이 예에서 더 좁다.
메모리가 어떤 시간 동안 사용된 이후에, 가능도 함수들은 더 넓어져서, 도 10b의 가능도 함수들(1047a-d)을 발생시킨다. 따라서, 프로그래밍 타깃 전압들 및 구별 전압들이 동일하게 유지되는 경우에, 가능도 함수들 사이에 고도의 중첩이 발생할 것이며, 그 결과로 많은 수의 에러들이 발생할 것이다. 이 문제를 극복하기 위하여, 도 10b는 구별 전압들(V12-V14)보다 더 넓게 이격되는 인접한 구별 전압들(V12'-V14')을 도시한다. 메모리 상태들은 동일한 메모리 상태들이 이전에 맵핑되었던 임계 윈도우(V15-V16)보다 도 10b에서 더 넓은 임계 윈도우(V15'-V16')로 맵핑된다. 따라서, 도 10a 및 도 10b의 메모리는 메모리 상태들이 맵핑되는 총 임 계 전압 범위를 증가시킴으로써 개별적인 메모리 상태들에 대한 확장하는 가능도 분포들을 보상한다. 이 방식의 하나의 장점은 메모리 수명의 초기에, 프로그래밍 및 판독에 더 낮은 전압들이 사용되고, 이러한 더 낮은 전압들이 판독 및 프로그래밍되는 메모리 셀들에 더 적은 스트레스를 제공한다는 것이다. 이와 같은 감소된 스트레스는 메모리 셀들의 웨어-아웃(wear-out)을 저속화하고 제품 수명을 증가시킬 수 있다. 메모리 상태들을 임계 윈도우에 재맵핑하는 것은 프로그래밍 타깃 전압들 뿐만 아니라, 판독 전압들을 조정하는 것을 포함할 수 있다. 프로그래밍 타깃 전압들은 메모리 시스템의 수명이 지나감에 따라 더 넓게 이격된다.
도 10a 및 10b는 상술된 메모리 상태들과 관련된 임계 전압 서브-범위들 내에서 분석되는 높은 레졸루션 판독을 제공하기 위하여 다른 판독 전압들이 또한 사용될 수 있을지라도, 판독 동작들 동안 사용된 구별 전압들(V12-V14 및 V12'-V14')을 도시한다. 일반적으로, 프로그래밍 타깃 전압들 및 판독 전압들은 소정 방식에 따라 함께 조정되거나 예를 들어, ECC 디코더로부터의 정보에 응답하여 응답형 방식으로 개별적으로 조정될 수 있다. 조정은 메모리의 수명 전체에 걸쳐 작은 증분들에서 발생하거나, 메모리 수명 동안 제한된 회수만 발생할 수 있다. 일례에서, 판독 전압들 및 프로그래밍 타깃 전압들은 데이터 품질이 임계 레벨이라는 결정에 응답하여 소정량들 만큼 증가된다. 예를 들어, 임계 레벨은 필요한 수정들의 수, 반복 디코더에 의한 반복들의 수, 또는 높은 레졸루션 판독이 수행될 때의 메모리 상태들에 대한 확률 값에 따를 수 있다.
또 다른 예에서, 조정은 수행되는 소거 동작들의 임계 수에 응답하여 행해질 수 있다. 소거 카운트가 각각의 블록에 대하여 유지되는 경우에, 블록에 대한 프로그래밍 및 판독 전압들은 어떤 소거 카운트가 도달될 때 변화할 수 있다. 이와 같은 시스템에서, 상이한 블록들은 상이한 프로그래밍 및 판독 전압들을 사용하고, 메모리 시스템은 어느 블록이 블록 내의 오버헤드 비트들 또는 제어기에 의해 유지되는 테이블을 사용하여, 또는 전용 회로, 제어기 또는 다른 적절한 구조의 일부를 사용하여 어떤 다른 적절한 방식으로 전압들을 조정하였는지를 추적한다. 이와 같은 시스템이 반드시 데이터의 품질을 결정하는 ECC 디코더를 가지는 것은 아니다.
판독 전압들 및 프로그래밍 타깃 전압들은 메모리의 수명에 걸쳐 함께 변화될 수 있다. 그러나, 판독 전압들에 대한 어떤 변화들은 타깃 전압들을 변화시킴이 없이 행해질 수 있다. 예를 들어, 수정의 전체 레이트가 수용 가능한 경우에 인접한 상태들 사이의 에러 수정들을 평형화하기 위하여 구별 전압들에 대한 변화들이 행해질 수 있다.
일반적으로, 판독 전압이 조정될 때, 상기 판독 전압은 이후의 조정이 행해질 때까지 조정된 전압으로 유지된다. 그러나, 일부 경우들에서, 판독 전압의 일시적인 조정을 행하는 것이 바람직할 수 있다. 예를 들어, 데이터가 메모리로부터 판독되고 양호하지 않은 품질(예를 들어, 낮은 확률 값들 또는 ECC에 의해 표시된 높은 수의 에러들)로 이루어지는 것으로 발견되는 경우에, 하나 이상의 판독 전압들이 양호하지 않은 품질 데이터의 ECC 수정에 의해 결정된 방식으로 조정될 수 있고, 상기 데이터는 다시 판독될 수 있다. 이것은 더 양호한 품질 데이터가 획득되도록 하여, 상기 데이터가 디코딩될 수 있도록 할 수 있다. 그러나, 이와 같은 판 독 전압들을 이들의 조정된 레벨들로 유지할 필요는 없을 수 있다. 이 방식은 메모리로부터 달리 회복할 수 없는 데이터를 검색하는데 사용될 수 있다. 일반적으로, 이와 같은 데이터는 이후에 또 다른 위치로 재기록되어, 상기 데이터는 더 저하되지 않게 된다. 그 후, 이 원 블록은 소거될 수 있다. 이것은 메모리 제어기에 의해 수행되는 스크럽 동작(scrub operation)의 부분이거나, (호스트 판독 명령에 응답한) 정상적인 판독 동작의 부분으로서 발생할 수 있다. 프로그래밍 타깃 전압들은 일반적으로 이 종류의 조정 동안 변화되지 않은 채로 유지된다. 에러 핸들링의 예들은 미국 특허들 5,657,332 및 6,751,766에서 제공된다.
도 11은 ECC 인코더(1153), ECC 디코더(1155) 및 통계적 유닛(1157)을 갖는 ECC 모듈(1151)을 포함하는 본 발명의 실시예에 따른 메모리 시스템(1149)을 도시한다. 통계적 유닛(1157)은 ECC 디코더(1155)에 의해 수행된 수정들에 관한 통계적 정보를 수집한다. ECC디코더(1155)는 SISO 디코더 또는 하드-입력 하드-출력 디코더를 포함하거나, 이들 둘 모두를 포함할 수 있다. 일례에서, SISO 디코더는 하드-입력 하드-출력 디코더와 연계된다(통계적 유닛은 디코더들 둘 모두에 의한 디코딩에 관한 통계들을 모을 수 있다). SISO 디코딩에 대한 LDPC 코드 및 하드-입력 하드-출력 디코딩에 대한 BCH 코드와 같이 2개의 인코딩 방식들이 사용될 수 있다. 통계적 유닛은 데이터의 전체 품질을 나타내는 통계들을 모을 수 있고, ECC 디코딩 시스템에 의해 수행되는 수정들의 수를 또한 표시하거나, 상이한 메모리 상태들 사이의 수정들의 비들을 표시할 수 있다. 통계적 유닛의 출력은 변조/복조 회로(1161) 내의 조정 유닛(1159)에 제공된다. 조정 유닛(1159)은 메모리 어레 이(1167)로 데이터를 프로그래밍할 시에 변조기(1163)에 의해 사용되는 동작 파라미터들(특정 메모리 상태들에 대한 타깃 전압들) 및 메모리 어레이(1167)로부터 데이터를 판독할 시에 복조기(1165)에 의해 사용되는 동작 파라미터들(예를 들어, 판독 전압들)에 대한 적절한 변화들을 행한다.
상기의 다양한 예들은 플래시 메모리와 관련된다. 그러나, 다양한 다른 비휘발성 메모리들이 현재 사용중이며, 본원에 설명된 기술들은 임의의 적절한 비휘발성 메모리 시스템들에 적용될 수 있다. 이와 같은 메모리 시스템들은 강유전체 저장에 기초한 메모리 시스템들(FRAM 또는 FeRAM), 자기저항 저장에 기초한 메모리 시스템들(MRAM), 및 위상 변화에 기초한 메모리들{PRAM 또는 "OUM(Ovonic Unified Memory)"}을 포함하지만, 이에 국한되지 않는다.
본원에 참조된 모든 특허들, 특허 출원들, 논문들, 서적들, 명세서들, 다른 간행물들, 문서들, 등은 모든 목적들을 위하여 그 전체가 본원에 참조되어 있다. 참조된 간행물들, 문서들, 등 중 어느 하나 및 본 문서의 텍스트 사이의 용어의 사용 또는 정의에서의 불일치 또는 상충이 존재하는 한, 본 문서의 용어의 정의 또는 사용이 지배적일 것이다.
본 발명의 다양한 양상들이 어떤 바람직한 실시예들과 관련하여 설명되었을지라도, 본 발명이 첨부된 청구항들의 전체 범위 내에서 보호 권리가 부여된다는 점이 이해된다.
상술한 바와 같이, 본 발명은, 비휘발성 메모리 시스템과, 비휘발성 메모리 시스템을 동작시키는 방법을 제공하는데 사용된다.

Claims (47)

  1. 플래시 메모리 어레이를 관리하는 방법에 있어서,
    제 1 시간에, 메모리 셀의 복수의 메모리 상태들을 제 1 임계 윈도우로 맵핑하는 단계로서, 상기 복수의 메모리 상태들의 개별적인 메모리 상태들이 상기 제 1 임계 윈도우의 서브-범위들로 맵핑되는, 맵핑 단계와;
    제 2 시간에, 상기 메모리 셀의 상기 복수의 메모리 상태들을 제 2 임계 윈도우로 맵핑하는 단계로서, 상기 복수의 메모리 상태들의 개별적인 메모리 상태들이 상기 제 1 윈도우보다 더 넓은 상기 제 2 임계 윈도우의 서브-범위들로 맵핑되는, 맵핑 단계를
    포함하는, 플래시 메모리 어레이 관리 방법.
  2. 제 1항에 있어서, 상기 제 1 또는 제 2 임계 윈도우의 상기 서브-범위들을 분석하고 상기 서브-범위들 내에서 부가적으로 분석됨으로써 상기 메모리 셀을 판독하는 단계를 더 포함하는, 플래시 메모리 어레이 관리 방법.
  3. 제 2항에 있어서, 인코딩 방식에 따라 소프트-출력을 계산하기 위하여 상기 판독의 결과들을 소프트-입력으로서 사용하는 소프트-입력 소프트-출력 디코더에 상기 판독의 결과들을 제공하는 단계를 더 포함하는, 플래시 메모리 어레이 관리 방법.
  4. 제 3항에 있어서, 상기 제 1 임계 윈도우로의 맵핑으로부터 상기 제 2 임계 윈도우로의 맵핑으로 변화시키는 것은 상기 소프트-입력 소프트-출력 디코더에 의해 획득된 정보에 응답하는, 플래시 메모리 어레이 관리 방법.
  5. 제 1항에 있어서, 상기 제 1 임계 윈도우로의 맵핑으로부터 제 2 전압 범위로의 맵핑으로 변화시키는 것은 소정 회수 이상 소거되는 메모리 셀을 포함하는 플래시 메모리 어레이의 부분에 응답하는, 플래시 메모리 어레이 관리 방법.
  6. 제 1항에 있어서, 상기 플래시 메모리 어레이는 호스트에 접속하기 위한 인터페이스 및 메모리 제어기를 포함하는 제거 가능한 메모리 카드인, 플래시 메모리 어레이 관리 방법.
  7. 제 1항에 있어서, 메모리 상태에 대응하는 제 2 임계 전압 범위의 서브-범위는 상기 메모리 상태에 대응하는 제 1 임계 전압 범위의 서브-범위에 상이한 상한 및 하한을 가지는, 플래시 메모리 어레이 관리 방법.
  8. 플래시 메모리 어레이로부터 데이터를 판독하는 방법에 있어서,
    복수의 메모리 셀들의 임계 전압들을 제 1 소정 전압들에 비교함으로써 상기 메모리 어레이로부터 제 1 데이터 비트들을 판독하는 단계와;
    ECC 디코더에서 상기 제 1 데이터 비트들을 디코딩하는 단계와;
    이후에 메모리 셀들의 임계 전압들을 제 2 소정 전압들에 비교함으로써 상기 복수의 메모리 셀들로부터 제 2 데이터 비트들을 판독하는 단계를
    포함하며,
    상기 제 2 소정 전압들은 상기 ECC 디코더에서 수행된 상기 제 1 데이터 비트들의 디코딩으로부터 결정되는, 데이터 판독 방법.
  9. 제 8항에 있어서, 상기 ECC-디코더는 소프트-입력 소프트-출력 디코더인, 데이터 판독 방법.
  10. 제 8항에 있어서, 상기 제 1 소정 전압들은 제 1 프로그래밍된 메모리 상태 및 제 2 프로그래밍된 메모리 상태 사이를 구별하는 제 1 구별 전압을 포함하는, 데이터 판독 방법.
  11. 제 10항에 있어서, 상기 제 2 소정 전압들은 상기 제 1 프로그래밍된 메모리 상태 및 상기 제 2 프로그래밍된 메모리 상태 사이를 구별하는 제 2 구별 전압을 포함하며, 상기 제 2 구별 전압은 상기 제 1 프로그래밍된 메모리 상태 및 상기 제 2 프로그래밍된 메모리 상태에서 데이터의 ECC 수정들로부터 결정되는, 데이터 판독 방법.
  12. 제 11항에 있어서, 상기 제 2 구별 전압은 상기 제 1 프로그래밍된 메모리 상태로부터 상기 제 2 프로그래밍된 메모리 상태로의 상기 ECC 디코더에 의한 수정들의 수를 상기 제 2 프로그래밍된 메모리 상태로부터 상기 제 1 프로그래밍된 메모리 상태로의 상기 ECC 디코더에 의한 수정들의 수와 평형화하도록 선택되는, 데이터 판독 방법.
  13. 제 8항에 있어서, 상기 제 2 소정 전압은 상기 제 1 소정 전압들 중 어느 하나보다 더 높은 전압을 포함하는, 데이터 판독 방법.
  14. 제 8항에 있어서, 제 1 복수의 타깃 전압들을 사용하여 상기 제 1 데이터 비트들을 상기 메모리 어레이로 프로그래밍하고 나서 상기 제 1 복수의 타깃 전압을 조정하는 단계를 더 포함하는, 데이터 판독 방법.
  15. 다수의 임계 전압들로 프로그래밍되는 메모리 셀들을 포함하는 플래시 메모리 어레이를 관리하는 방법에 있어서,
    상기 셀의 임계 전압을 메모리 상태들에 개별적으로 대응하는 복수의 제 1 임계 전압 범위들 중 하나 내에 있는 것으로 식별하고 출력을 제공하기 위하여 상기 제 1 임계 전압 범위들 중 하나 내에서 부가적으로 분석됨으로써 메모리 셀을 판독하는 단계와;
    소프트-입력 소프트-출력 디코더를 사용하여 상기 메모리 셀의 출력에 대해 ECC 수정을 수행하는 단계와;
    이후에 상기 메모리 셀을 소거하고 프로그래밍하는 단계와;
    이후에 상기 셀의 임계 전압을 메모리 상태들에 개별적으로 대응하는 복수의 제 2 임계 전압 범위들 중 하나 내에 있는 것으로 식별함으로써 상기 메모리 셀을 판독하는 단계를
    포함하며,
    상기 복수의 제 2 임계 전압 범위들 중 하나는 상기 소프트-입력 소프트-출력 디코더에 의해 수행된 ECC 수정에 따라 규정되는 한도를 가지는, 플래시 메모리 어레이 관리 방법.
  16. 제 15항에 있어서, 상기 한도는 상기 한도의 양측 상의 제 2 임계 전압 범위들 내에서의 임계 전압들을 갖는 셀에서의 데이터의 수정을 평형화하도록 선택되는, 플래시 메모리 어레이 관리 방법.
  17. 제 15항에 있어서, 상기 한도는 상기 제 1 임계 전압 범위들 중 하나의 대응하는 한도보다 더 높은, 플래시 메모리 어레이 관리 방법.
  18. 제 15항에 있어서, 상기 제 2 임계 전압 범위들의 개별적인 전압 범위들은 상기 제 1 임계 전압 범위들의 개별적인 전압 범위들보다 더 넓은, 플래시 메모리 어레이 관리 방법.
  19. 제 15항에 있어서, 메모리 상태에 대응하는 상기 복수의 제 2 임계 전압 범위들의 개별적인 전압 범위는 메모리 상태에 대응하는 상기 복수의 제 1 임계 전압 범위들 중 하나보다 더 높이 신장되는, 플래시 메모리 어레이 관리 방법.
  20. 제 19항에 있어서, 상기 개별적인 전압 범위는 상기 메모리 상태에 대응하는 상기 복수의 제 1 임계 전압 범위들 중 하나보다 더 넓은, 플래시 메모리 어레이 관리 방법.
  21. 플래시 메모리 어레이를 관리하는 방법에 있어서,
    제 1 모드에서, 복수의 메모리 셀들을 제 1 복수의 타깃 전압들로 프로그래밍하는 단계로서, 상기 제 1 복수의 타깃 전압들의 개별적인 타깃 전압들은 메모리 상태들에 대응하는, 프로그래밍 단계와;
    상기 제 1 모드에서, 개별적인 셀들의 메모리 상태들을 결정하기 위하여 상기 복수의 메모리 셀들의 임계 전압들을 제 1 복수의 구별 전압들과 비교함으로써 상기 복수의 메모리 셀들을 판독하는 단계와;
    이후에, 제 2 모드에서, 상기 복수의 메모리 셀들을 제 2 복수의 타깃 전압들로 프로그래밍하는 단계로서, 상기 제 2 복수의 타깃 전압들의 개별적인 타깃 전압들은 메모리 상태들에 대응하는, 프로그래밍 단계와;
    상기 제 2 모드에서, 개별적인 셀들의 메모리 상태들을 결정하기 위하여 상 기 복수의 메모리 셀들의 임계 전압들을 제 2 복수의 구별 전압들과 비교함으로써 상기 복수의 메모리 셀들을 판독하는 단계를
    포함하는, 플래시 메모리 어레이 관리 방법.
  22. 제 21항에 있어서, 특정 메모리 상태에 대응하는 상기 제 2 복수의 타깃 전압들의 개별적인 타깃 전압은 상기 특정 메모리 상태에 대응하는 상기 제 1 복수의 타깃 전압들의 개별적인 타깃 전압보다 더 큰, 플래시 메모리 어레이 관리 방법.
  23. 제 21항에 있어서, 상기 제 2 복수의 구별 전압들은 상기 제 1 복수의 구별 전압들로부터 개별적으로 오프셋되는, 플래시 메모리 어레이 관리 방법.
  24. 제 21항에 있어서, 상기 제 2 복수의 구별 전압들은 상기 제 1 복수의 구별 전압들보다 더 큰 전압 범위에 걸쳐 신장되는, 플래시 메모리 어레이 관리 방법.
  25. 플래시 메모리 시스템에 있어서,
    복수의 프로그래밍된 상태들로 프로그래밍된 복수의 셀들을 포함하는 플래시 메모리 어레이와;
    상기 메모리 어레이에 접속되며, 제 1 모드에서 상기 복수의 프로그래밍된 상태들을 구별하기 위하여 메모리 셀 임계 전압을 제 1 복수의 소정 전압들에 비교하고, 제 2 모드에서 상기 복수의 프로그래밍된 상태들을 구별하기 위하여 상기 메 모리 셀 임계 전압을 제 2 복수의 소정 전압들에 비교하는 판독 회로를
    포함하며,
    상기 제 2 복수의 소정 전압들 중 가장 높은 전압은 상기 제 1 복수의 소정 전압들 중 가장 높은 전압보다 더 높은, 플래시 메모리 시스템.
  26. 제 25항에 있어서, 프로그래밍 회로를 더 포함하는, 플래시 메모리 시스템.
  27. 제 26항에 있어서, 상기 프로그래밍 회로는 상기 제 1 모드에서 셀들을 프로그래밍된 상태에 개별적으로 대응하는 제 1 복수의 타깃 전압들로 프로그래밍하고, 상기 제 2 모드에서 셀들을 프로그래밍된 셀들에 개별적으로 대응하는 제 2 복수의 임계 전압들로 프로그래밍하는, 플래시 메모리 시스템.
  28. 제 27항에 있어서, 상기 메모리 어레이의 부분이 상기 제 1 모드에서 프로그래밍되었는지 또는 상기 제 2 모드에서 프로그래밍이 되었는지를 나타내는 기록을 유지하는 것을 더 포함하는, 플래시 메모리 시스템.
  29. 제 27항에 있어서, 상기 제 2 복수의 타깃 전압들 중 가장 높은 타깃 전압은 상기 제 1 복수의 타깃 전압들 중 가장 높은 타깃 전압보다 더 높은, 플래시 메모리 시스템.
  30. 제 27항에 있어서, 상기 제 2 복수의 타깃 전압들은 상기 제 1 복수의 타깃 전압들보다 더 넓게 이격되는, 플래시 메모리 시스템.
  31. 제 25항에 있어서, 상기 판독 회로는 셀 상태들에 관한 확률 정보를 제공하기 위하여 복수의 프로그래밍된 상태들의 개별적인 상태들 내에서 더 구별하는, 플래시 메모리 시스템.
  32. 제 25항에 있어서, 소프트-입력 소프트-출력 디코더를 더 포함하는, 플래시 메모리 시스템.
  33. 제 32항에 있어서, 상기 플래시 메모리 시스템은 상기 소프트-입력 소프트-출력 디코더에 의해 발생된 신호에 응답하여 상기 제 1 모드로부터 상기 제 2 모드로 변화하는, 플래시 메모리 시스템.
  34. 제 25항에 있어서, 소거 카운트 표시자를 더 포함하며, 상기 플래시 메모리 시스템은 상기 소거 카운트 표시자에 의해 유지되는 소거 카운트가 소정 값을 초과할 때 상기 제 1 모드로부터 상기 제 2 모드로 변화하는, 플래시 메모리 시스템.
  35. 제 25항에 있어서, 상기 플래시 메모리 시스템은 호스트 인터페이스를 갖는 제거 가능한 메모리 카드 내에 있는, 플래시 메모리 시스템.
  36. 플래시 메모리 시스템에 있어서,
    복수의 비휘발성 메모리 셀들을 포함하는 메모리 어레이와;
    상기 메모리 어레이로부터의 데이터를 디코딩하는 ECC 디코더와;
    상기 메모리 어레이에 접속되고, 상기 메모리 셀들의 프로그래밍된 상태를 결정하기 위하여 메모리 셀의 임계 전압을 적어도 하나의 소정 전압에 비교하는 판독 회로와;
    상기 ECC 디코더로부터의 정보에 응답하여 상기 적어도 하나의 소정 전압을 증가 또는 감소시키는 조정 회로를
    포함하는, 플래시 메모리 시스템.
  37. 제 36항에 있어서, 상기 ECC 디코더는 소프트-입력 소프트-출력 디코더인, 플래시 메모리 시스템.
  38. 제 37항에 있어서, 상기 판독 회로는 상기 소프트-입력 소프트-출력 디코더에 소프트-입력을 제공하는, 플래시 메모리 시스템.
  39. 제 36항에 있어서, 상기 판독 회로는 상기 임계 전압을 상기 프로그래밍된 상태와 관련된 임계 전압 범위를 규정하는 2개의 소정 전압들에 비교하고, 상기 조정 회로는 상기 임계 전압 범위를 확장시키는, 플래시 메모리 시스템.
  40. 제 36항에 있어서, 상기 복수의 비휘발성 메모리 셀들을 복수의 타깃 전압들로 프로그래밍하는 프로그래밍 회로를 더 포함하는, 플래시 메모리 시스템.
  41. 제 36항에 있어서, 상기 조정 회로는 상기 ECC 디코더로부터의 정보에 응답하여 상기 복수의 타깃 전압들 중 적어도 하나를 증가 또는 감소시키는, 플래시 메모리 시스템.
  42. 제 41항에 있어서, 상기 조정 회로는 복수의 타깃 전압을 증가시키고 상기 적어도 하나의 소정 전압을 함께 증가시키는, 플래시 메모리 시스템.
  43. 플래시 메모리 시스템에 있어서,
    플래시 메모리 셀들의 어레이와;
    소프트-입력 소프트-출력 디코더와;
    메모리 어레이에 접속되고, 상기 소프트-입력 소프트-출력 디코더에 입력을 제공하며, 제 1 모드에서 복수의 메모리 상태들을 구별하기 위하여 메모리 셀의 임계 전압을 제 1 복수의 소정 전압들에 비교하고 제 2 모드에서 상기 복수의 메모리 상태들을 구별하기 위하여 상기 메모리 셀의 임계 전압을 제 2 복수의 소정 전압들에 비교하는 판독 회로를
    포함하며,
    상기 제 2 복수의 소정 전압들 중 가장 높은 전압은 상기 제 1 복수의 소정 전압들 중 가장 높은 전압보다 더 높고, 상기 제 2 복수의 소정 전압들은 상기 소프트-입력 소프트-출력 디코더에 의해 수행된 수정들에 의해 결정되는, 플래시 메모리 시스템.
  44. 제 43항에 있어서, 상기 플래시 메모리 시스템은 상기 소프트-입력 소프트-출력 디코더에 의해 수행된 수정들에 응답하여 상기 제 1 모드로부터 상기 제 2 모드로 변화하는, 플래시 메모리 시스템.
  45. 제 43항에 있어서, 플래시 메모리 셀들을 타깃 전압들로 프로그래밍하는 프로그래밍 회로를 더 포함하는, 플래시 메모리 시스템.
  46. 제 45항에 있어서, 상기 프로그래밍 회로는 상기 제 1 모드에서 복수의 플래시 메모리 셀들을 제 1 복수의 타깃 전압들로 프로그래밍하고 상기 제 2 모드에서 상기 복수의 플래시 메모리 셀들을 제 2 복수의 타깃 전압들로 프로그래밍하며, 상기 제 2 복수의 타깃 전압들 중 가장 높은 타깃 전압은 상기 제 1 복수의 타깃 전압들 중 가장 높은 타깃 전압보다 더 높은, 플래시 메모리 시스템.
  47. 제 46항에 있어서, 상기 메모리 어레이의 부분이 상기 제 1 모드에서 프로그래밍되었는지 또는 상기 제 2 모드에서 프로그래밍이 되었는지를 나타내는 표시자 를 더 포함하는, 플래시 메모리 시스템.
KR1020097010854A 2006-11-03 2007-10-29 가변 판독 임계값을 갖는 비휘발성 메모리 KR101017847B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/556,615 2006-11-03
US11/556,626 US7558109B2 (en) 2006-11-03 2006-11-03 Nonvolatile memory with variable read threshold
US11/556,626 2006-11-03
US11/556,615 US7904788B2 (en) 2006-11-03 2006-11-03 Methods of varying read threshold voltage in nonvolatile memory

Publications (2)

Publication Number Publication Date
KR20090089342A KR20090089342A (ko) 2009-08-21
KR101017847B1 true KR101017847B1 (ko) 2011-03-04

Family

ID=39343625

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097010854A KR101017847B1 (ko) 2006-11-03 2007-10-29 가변 판독 임계값을 갖는 비휘발성 메모리

Country Status (5)

Country Link
EP (1) EP2084709B1 (ko)
JP (1) JP5409371B2 (ko)
KR (1) KR101017847B1 (ko)
TW (1) TWI390533B (ko)
WO (1) WO2008057822A2 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904788B2 (en) 2006-11-03 2011-03-08 Sandisk Corporation Methods of varying read threshold voltage in nonvolatile memory
KR101378602B1 (ko) * 2008-05-13 2014-03-25 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
EP2308058B1 (en) * 2008-07-01 2016-01-27 LSI Corporation Methods and apparatus for read-side intercell interference mitigation in flash memories
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
WO2010035241A1 (en) * 2008-09-28 2010-04-01 Ramot At Tel Aviv University Ltd. Method and system for adaptive coding in flash memories
JP5590620B2 (ja) 2008-09-30 2014-09-17 エルエスアイ コーポレーション メモリ・デバイスの軟データ生成の方法および装置
US8179731B2 (en) 2009-03-27 2012-05-15 Analog Devices, Inc. Storage devices with soft processing
KR101792868B1 (ko) * 2010-11-25 2017-11-02 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
US9898361B2 (en) 2011-01-04 2018-02-20 Seagate Technology Llc Multi-tier detection and decoding in flash memories
US9292377B2 (en) 2011-01-04 2016-03-22 Seagate Technology Llc Detection and decoding in flash memories using correlation of neighboring bits and probability based reliability values
US8446786B2 (en) * 2011-01-20 2013-05-21 Micron Technology, Inc. Outputting a particular data quantization from memory
US9502117B2 (en) * 2011-03-14 2016-11-22 Seagate Technology Llc Cell-level statistics collection for detection and decoding in flash memories
US8938658B2 (en) * 2011-11-07 2015-01-20 Sandisk Enterprise Ip Llc Statistical read comparison signal generation for memory systems
US8719647B2 (en) 2011-12-15 2014-05-06 Micron Technology, Inc. Read bias management to reduce read errors for phase change memory
US9257203B2 (en) 2012-12-06 2016-02-09 Micron Technology, Inc. Setting a default read signal based on error correction
KR102025193B1 (ko) 2013-02-19 2019-09-25 삼성전자주식회사 메모리 컨트롤러 및 그것의 동작 방법, 메모리 컨트롤러를 포함하는 메모리 시스템
US9633749B2 (en) 2013-12-19 2017-04-25 Sandisk Technologies Llc System and method of managing tags associated with read voltages
KR102284658B1 (ko) * 2015-03-19 2021-08-02 삼성전자 주식회사 비휘발성 메모리 장치, 이를 포함하는 메모리 시스템 및 상기 비휘발성 메모리 장치의 동작 방법
JP6545631B2 (ja) 2016-03-02 2019-07-17 東芝メモリ株式会社 不揮発性半導体記憶装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339546B1 (en) 1999-09-17 2002-01-15 Hitachi, Ltd. Storage device counting error correction

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3200012B2 (ja) * 1996-04-19 2001-08-20 株式会社東芝 記憶システム
JP3930074B2 (ja) * 1996-09-30 2007-06-13 株式会社ルネサステクノロジ 半導体集積回路及びデータ処理システム
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
JP4427361B2 (ja) * 2004-03-16 2010-03-03 株式会社東芝 不揮発性半導体メモリ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6339546B1 (en) 1999-09-17 2002-01-15 Hitachi, Ltd. Storage device counting error correction

Also Published As

Publication number Publication date
KR20090089342A (ko) 2009-08-21
WO2008057822A2 (en) 2008-05-15
JP5409371B2 (ja) 2014-02-05
WO2008057822A3 (en) 2008-12-31
JP2010509700A (ja) 2010-03-25
EP2084709A2 (en) 2009-08-05
TWI390533B (zh) 2013-03-21
TW200836201A (en) 2008-09-01
EP2084709B1 (en) 2014-04-02

Similar Documents

Publication Publication Date Title
KR101017847B1 (ko) 가변 판독 임계값을 갖는 비휘발성 메모리
US7558109B2 (en) Nonvolatile memory with variable read threshold
US7904788B2 (en) Methods of varying read threshold voltage in nonvolatile memory
KR101144096B1 (ko) 소프트-입력, 소프트-출력(siso) 디코더, 통계 유닛 및 적합한 동작을 갖는 비휘발성 메모리
US7805663B2 (en) Methods of adapting operation of nonvolatile memory
US8001441B2 (en) Nonvolatile memory with modulated error correction coding
US7904780B2 (en) Methods of modulating error correction coding
US7904783B2 (en) Soft-input soft-output decoder for nonvolatile memory
US7818653B2 (en) Methods of soft-input soft-output decoding for nonvolatile memory
US20080092015A1 (en) Nonvolatile memory with adaptive operation
US9329934B2 (en) Data storage device and method to correct bit values using multiple read voltages
US7849383B2 (en) Systems and methods for reading nonvolatile memory using multiple reading schemes
US9244763B1 (en) System and method for updating a reading threshold voltage based on symbol transition information
US7840875B2 (en) Convolutional coding methods for nonvolatile memory
KR20090086523A (ko) 에러가 발생할 수 있는 확률을 기초로 하여 에러가 보정된 비휘발성 메모리
US8589765B1 (en) Memory read-out
US20080320366A1 (en) Methods of reading nonvolatile memory
TWI387970B (zh) 讀取非揮發記憶體之系統及方法
WO2008057820A1 (en) Nonvolatile memory with modulated error correction coding

Legal Events

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

Payment date: 20140204

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