KR101144096B1 - 소프트-입력, 소프트-출력(siso) 디코더, 통계 유닛 및 적합한 동작을 갖는 비휘발성 메모리 - Google Patents

소프트-입력, 소프트-출력(siso) 디코더, 통계 유닛 및 적합한 동작을 갖는 비휘발성 메모리 Download PDF

Info

Publication number
KR101144096B1
KR101144096B1 KR1020097008470A KR20097008470A KR101144096B1 KR 101144096 B1 KR101144096 B1 KR 101144096B1 KR 1020097008470 A KR1020097008470 A KR 1020097008470A KR 20097008470 A KR20097008470 A KR 20097008470A KR 101144096 B1 KR101144096 B1 KR 101144096B1
Authority
KR
South Korea
Prior art keywords
decoder
data
nonvolatile memory
memory array
output
Prior art date
Application number
KR1020097008470A
Other languages
English (en)
Other versions
KR20090096412A (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/536,372 external-priority patent/US20080092015A1/en
Priority claimed from US11/536,347 external-priority patent/US7805663B2/en
Application filed by 쌘디스크 코포레이션 filed Critical 쌘디스크 코포레이션
Publication of KR20090096412A publication Critical patent/KR20090096412A/ko
Application granted granted Critical
Publication of KR101144096B1 publication Critical patent/KR101144096B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • 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
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/021Detection or location of defective auxiliary circuits, e.g. defective refresh counters in voltage or current generators
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50004Marginal testing, e.g. race, voltage or current testing of threshold voltage
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • 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
    • 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/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

비휘발성 메모리 시스템에 있어서, 소프트-입력 소프트-출력(SISO) 디코더는 메모리로부터 판독되는 데이터 내 에러들을 보정하고 SISO 디코더에 연결된 통계 유닛은 보정들에 관한 데이터를 수집한다. 통계 유닛은 수집된 데이터에 기초한 적어도 하나의 출력을 발생하고 메모리의 적어도 하나의 동작 파라미터는 출력에 응답하여 수정된다.

Description

소프트-입력, 소프트-출력(SISO) 디코더, 통계 유닛 및 적합한 동작을 갖는 비휘발성 메모리{INVOLATILE MEMORY WITH SOFT-INPUT, SOFT-OUTPUT(SISO) DECODER, STATISTICAL UNIT AND ADAPTIVE OPERATION}
본 발명은, 비휘발성 메모리 시스템에 관한 것이고, 비휘발성 메모리 시스템을 동작하기 위한 방법에 관한 것이다.
비휘발성 메모리 시스템들은 여러 분야에 사용된다. 일부 비휘발성 메모리 시스템은 퍼스널 컴퓨터와 같이 보다 큰 시스템에 내장된다. 다른 비휘발성 메모리 시스템들은 호스트 시스템에 착탈 가능하게 연결되어 있고, 서로 다른 호스트 시스템 사이에 호환될 수 있다. 이러한 착탈 가능 메모리 시스템들의 예들은 메모리 카드들과 USB 플래시 드라이브들을 포함한다. 비휘발성 메모리 카드들을 포함하는 전자 회로 카드들은 다수의 잘 알려진 규격에 따라서 상업적으로 구현되었다. 메모리 카드들은 퍼스널 컴퓨터들, 휴대 전화들, 개인 휴대 정보 단말기들(PDAs), 디지털 스틸 카메라들, 디지털 무비 카메라들, 휴대용 오디오 플레이어들 및 대용량의 데이터를 저장하기 위한 기타 호스트 전자 디바이스들과 함께 사용된다. 이러한 카드들은 통상적으로 메모리 셀 어레이의 동작을 제어하며 카드가 연결되는 호스트와 인터페이스하는 제어기와 함께 재프로그램 가능한 비휘발성 반도체 메모리 셀 어레 이를 포함한다. 동일 타입의 여러 카드는 이러한 타입의 카드를 수용하도록 설계된 호스트 카드 슬롯에서 호환될 수 있다. 그러나 많은 전자 카드 규격들의 개발은 어느 정도 서로 호환 가능하지 않은 다양한 타입들의 카드들을 생성하였다. 하나의 규격에 따라 제조된 카드는 통상적으로 다른 규격의 카드에 의해 동작하도록 설계된 호스트에 의해 사용할 수 없다. 메모리 카드 규격들은 PC 카드, CompactFlashTM 카드(CFTM 카드), SmartMediaTM, 멀티미디어카드(MMCTM), 보안 디지털(SD) 카드, 미니SDTM 카드, 가입자 식별 모듈(SIM), 메모리 스틱(Memory StickTM), 메모리 스틱 듀오 카드 및 마이크로SD/TransFlashTM 메모리 모듈 규격들을 포함한다. "Cruzer®"라는 상표명으로 샌디스크사로부터 상업적으로 이용 가능한 여러 USB 플래시 드라이브 제품들이 존재한다. USB 플래시 드라이브들은 전형적으로 상술한 메모리 카드보다 크고 서로 다른 형태이다.
비휘발성 메모리 시스템에 저장된 데이터는 데이터 판독시 잘못된 비트들을 포함할 수 있다. 붕괴된 데이터를 재구성하기 위한 전통적인 방법은 에러 보정 코드들(Error Correction Codes: ECCs)의 어플리케이션을 포함한다. 간단한 에러 보정 코드들은 추가 패리티 비트들을 저장함으로써 데이터를 인코드하고, 이는 데이터가 메모리 시스템에 기록될 때 패리티 그룹의 비트를 필요한 논리값으로 설정한다. 저장 중 데이터에 잘못이 있으면, 패리티 그룹의 비트가 변할 수 있다. 메모리 시스템으로부터 데이터 판독시, 패리티 그룹의 비트들은 ECC에 의해 한번 더 계산 된다. 데이터 붕괴로 인해 계산된 패리티는 필요한 패리티 조건에 맞지 않을 수 있으며, ECC가 붕괴를 감지할 수 있다.
ECC들은 적어도 2개의 기능, 즉 에러 감지와 에러 보정을 가질 수 있다. 각각의 이들 기능을 위한 능력은 전형적으로 잘못되고 이어서 보정될 때 감지될 수 있는 다수의 비트들에서 측정된다. 감지 능력은 보정 능력과 동일하거나 보다 뛰어날 수 있다. 전형적인 ECC는 보정할 수 있는 것보다 많은 수의 에러 비트들을 감지할 수 있다. 데이터 비트들과 패리티 비트들의 집합은 때때로 단어로 불리운다. 초기 예는 (7,4) 해밍 코드(Hamming code)이며, 이 코드는 단어당 2개의 에러(본 발명의 예에서 7비트)까지 감지하는 능력을 가지며, 이러한 7비트 단어에서 하나의 에러를 보정할 수 있는 능력을 갖는다.
보다 복잡한 ECC들은 단어당 싱글 에러보다 많이 보정할 수 있지만, 데이터를 재구성하기가 더욱더 복잡해진다. 공통적인 실행은 몇몇 수용할 수 있는 작은 확률의 올바르지 않은 복구에 의해 데이터를 복구하는 것이다. 그러나 다수의 에러들을 증가시킴으로써 신뢰할 수 있는 데이터 복구의 확률이 또한 급속히 감소되거나 또는 추가 하드웨어 및/또는 성능과 관련된 비용이 지나치게 커진다.
EEPROM 시스템들을 포함하는 반도체 메모리 디바이스에서, 데이터는 트랜지스터들의 임계 전압들에 의해 표시될 수 있다. 전형적으로, 서로 다른 디지털 데이터 저장 값들은 서로 다른 전압 범위들에 대응한다. 몇몇 이유로, 판독 동작 전 또는 판독 동작 동안 전압 레벨들이 자신들의 프로그램된 범위들로부터 시프트되면, 에러가 발생한다. 에러는 ECC에 의해 감지될 수 있으며 몇몇 경우들에 있어서 이들 에러들이 보정될 수 있다.
비휘발성 메모리 시스템에서, 통계 유닛은 자신의 출력으로서 확률 값들을 제공하는 디코더에 의해 비휘발성 메모리 어레이로부터 데이터의 디코딩에 관한 통계 정보를 수집한다.
일례에서, 변하는 파라미터는 메모리 어레이에 데이터를 기록하는 것과 연관된다. 특히, 메모리 어레이에 데이터를 프로그램하기 위해 사용되는 연속적인 전압 펄스들 간의 차는 통계 정보에 따라서 변경될 수 있다.
다른 예에서, 변하는 파라미터는 메모리 어레이로부터의 데이터를 판독하는 것과 연관된다. 특히, 비휘발성 메모리 어레이로부터 데이터를 판독하기 위해 사용된 분석은 통계 정보에 따라서 변할 수 있다.
도 1은, 논리 1과 논리 0 상태들을 구별하기 위해 사용된 전압 VD를 포함하는 비휘발성 메모리 내에 논리 1 상태와 논리 0 상태로 프로그램된 셀들의 임계 전압들의 확률 함수들을 도시하는 도면.
도 2는, 메모리 어레이, 변조기/복조기 회로들 및 인코더/디코더 회로들을 포함하는 메모리 시스템의 구성요소들을 도시하는 도면.
도 3은, 임계 전압 값들을 도시하는 논리 1 상태와 논리 0 상태로 프로그램되는 셀들의 판독 임계 전압들의 확률 함수를 도시하는 도면.
도 4는, 메모리 어레이, 변조기/복조기 회로들 및 인코더/디코더 회로들, 디코더로 확률 값들을 제공하는 복조기를 포함하는 메모리 시스템의 구성요소들을 도시하는 도면.
도 5는, 소프트-입력 소프트-출력(SISO) 디코더를 갖는 ECC 유닛을 도시하는 도면.
도 6은, 변조기와 복조기로 신호를 제공하는 통계 유닛을 갖는 SISO 디코더를 포함하는 메모리 시스템을 도시하는 도면.
도 7은, 비휘발성 메모리 내 셀을 프로그램하기 위해 사용되는 전압을 증가시키는 일련의 펄스들과, 통계 유닛으로부터 신호에 따라서 수정된 펄스들 간의 전압 차이를 도시하는 도면.
도 8은, 네 개의 논리 상태들로 프로그램된 셀들의 판독 임계 전압들의 확률 분포들을 도시하고, 셀들이 연속적인 판독 동작들로 판독되는 임계 전압들, 통계 유닛으로부터 신호에 따라 수정된 판독 동작들의 수를 도시하는 도면.
많은 비휘발성 메모리들에서, 메모리 어레이로부터 데이터 판독은 에러들을 가질 수 있다. 즉, 메모리 어레이로 프로그램되는 입력 데이터의 개별적인 비트들은 상이한 논리값으로 존재하는 것으로서 뒤에 판독될 수 있다. 도 1은 메모리 셀 상태를 나타내는 물리적인 파라미터(임계 전압, VT)와 메모리 셀이 프로그램될 논리값들 간의 관계를 도시한다. 본 발명의 예에서, 단지 셀 내에 단지 2 상태들만이 저장된다. 따라서, 셀은 데이터의 1 비트를 저장한다. 논리 0 상태로 프로그램된 셀들은 일반적으로 논리 1(프로그램되지 않은) 상태에서 셀들보다 높은 임계 전압을 갖는다. 대안적인 체계에서, 논리 1 상태는 메모리 셀의 프로그램되지 않은 상태이다. 도 1의 수직축은 예상된 임계 전압 분포에 기초한 어느 특별한 임계 전압에서 셀을 판독하는 확률을 나타낸다. 제 1 확률 함수는 논리 1로 프로그램되는 셀들을 위해 도시되고, 논리 0으로 프로그램되는 셀들을 위해 도시된다. 그러나 이들 함수들은 이들 간에 어느 정도의 중첩을 갖는다. 구별 전압 VD는 이러한 셀들의 판독시 사용된다. VD 이하의 임계 전압을 갖는 셀들은 상태 1로서 간주될 것이며, 반면에 VD 이상의 임계 전압을 갖는 셀들은 상태 0으로서 간주될 것이다. 도 1에 도시되는 바와 같이, 이것이 항상 옳은 것은 아니다. 함수간 중첩 때문에, 논리 1 상태로 프로그램되는 메모리 셀이 VD보다 큰 임계 전압을 갖는 것으로 판독되고, 이에 따라 논리 0 상태에 있는 것으로 판독될 확률이 있다. 이와 유사하게, 논리 0 상태로 프로그램되는 메모리 셀이 논리 1 상태를 갖는 것으로 판독될 확률이 있다.
함수 간의 중첩은 메모리 어레이 내 물리적인 결함들과 메모리 어레이 내 나중 프로그래밍 또는 판독 동작들에 의해 프로그램된 셀들에 기인한 방해를 포함하는 다수의 이유 때문에 일어난다. 중첩은 또한 매우 타이트한 임계 전압 범위 내 큰 다수의 셀들을 유지하기 위한 일반적인 능력의 부족에 기인하여 일어날 수 있다. 소정의 프로그래밍 기법들은 좁은(보다 작은 표준 편차를 갖는) 임계 전압들의 함수들을 허용할 수 있다. 그러나 이러한 프로그래밍은 더 많은 시간이 걸릴 수 있 다. 몇몇 메모리 시스템에서, 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)에 의해 1차적으로 수신된다. 입력 데이터는 메모리 시스템(200) 내에 저장될 호스트 데이터이거나 메모리 제어기에 의해 발생된 데이터일 수도 있다. 그 다음, 인코더(203)는 인코딩 체계를 이용하여 입력 데이터 비트들로부터 ECC 비트들(1111)을 계산한다. 인코딩 체계의 일례는 데이터 비트들의 선택된 그룹들을 위한 패리티 비트들일 수 있다.
그 다음, 입력 데이터 비트들과 ECC 비트들 모두는 변조기(207)를 포함하는 변조/복조 유닛(205)으로 전송된다. 변조기(207)는 ECC 유닛(201)에 의해 전송된 디지털 데이터를 메모리 어레이(209)에 기록되는 형태로 변환한다. 하나의 체계에 있어서, 디지털 데이터는 복수의 메모리 셀 내 복수의 임계 전압 값들로 변환된다. 따라서, 메모리 셀 내 저장된 임계 전압으로 디지털 데이터를 변환하기 위해 사용된 다양한 회로들이 변조기를 형성하기 위해 고려될 수 있다. 도 2의 예에 있어서, 각각의 메모리 셀은 1 비트의 데이터를 유지할 수 있다. 따라서, 각각의 메모리 셀은 도 1에 도시된 바와 같이 논리 "1" 상태와 논리 "0" 상태를 나타내는 2 범위 중 하나에서 임계 전압을 가질 수 있다. 논리 "1" 상태를 저장하는 메모리 셀들은 VD보다 작은 임계 전압(<VD)을 갖는 반면, 논리 "0" 상태를 저장하는 메모리 셀들은 VD보다 큰 임계 전압(>VD)을 갖는다. 셀들은 프로그램될 수 있으며 VD보다 큰 공칭 임계 전압으로 입증되어, 적어도 초기에 2개의 논리 상태들로 프로그램된 셀들 간에 몇몇 바람직한 분리가 존재한다는 것을 보장한다.
데이터는 일정 기간 동안 메모리 어레이(209) 내에 저장될 수 있다. 이러한 시간 동안, 다양한 이벤트들이 메모리 셀들의 임계 전압들을 변경하기 위해 발생할 수 있다. 특히, 프로그래밍과 판독을 포함하는 동작들이 다른 앞서서 프로그램된 셀들에 영향을 끼치는 방법으로 워드 라인들 및 비트 라인들에 적용될 수 있다. 이러한 방해들은 특히 디바이스들의 면적이 인접한 셀들 간의 상호작용이 의미가 있도록 감소되는 곳에서 일반적이다. 전하는 또한 오랜 기간에 걸쳐 손실될 수 있다. 이러한 데이터 유지 실패들은 또한 판독시 데이터가 변경되도록 야기할 수 있다. 이러한 변경들의 결과로서, 데이터 비트들은 초기에 프로그램된 데이터 비트들과 다른 상태들을 갖는 판독 출력일 수 있다. 도 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)는 입력 데이터 비트들에 대응하는 데이터 비트들의 보정된 시퀀스를 출력하거나(또는 다수의 에러들이 너무 높다면 출력을 제공하는데 실패한다).
도 3 및 도 4에는 메모리 시스템(200)에 대해 대안적인 메모리 시스템이 도시되어 있다. 도 3은 VD=0과 논리 0을 나타내는 VD 이하의 임계 전압들 및 논리 1을 나타내는 VD 이상의 전압들을 갖는 도 1의 것들과 유사한 함수들을 도시한다. 임계 전압들을 2개의 상이한 범위들로 나누는 단일 전압 VD를 도시하는 대신, 본 명세서에서 임계 전압들은 실제적인 전압 수들에 의해 표시된다. 논리 "1"에 대응하는 함수는 0 볼트 이상의 중심이고 논리 "0"에 대응하는 함수는 "0" 볼트 이하의 중심이다.
도 4는 상이한 판독 프로세스를 갖는 (동일한 입력 데이터 비트들과 ECC 비트들을 이용하는) 메모리 시스템(200)의 것과 유사한 데이터 저장 프로세스를 이용 하는 메모리 시스템(421)을 도시한다. 특히, 임계 전압이 특별한 값을 초과하는지 또는 미만인지를 단순히 결정하는 대신에, 메모리 시스템(421)은 도 3에 도시된 바와 같이 임계 전압들을 판독한다. 실제적인 임계 전압이 반드시 판독될 필요가 없다는 것이 이해될 것이다. 셀 동작의 다른 수단이 데이터(예를 들어, 전류 감지)를 저장하고 검색하기 위해 사용될 수 있다. 전압 감지는 단지 예로서 사용된다. 일반적으로, 임계 전압은 트랜지스터가 턴온되는 게이트 전압을 언급한다. 도 4는 전술한 예 보다 상세한 정보를 제공하는 판독 발생을 도시한다. 이것은 도 2의 분석보다 높은 분석(및 프로그래밍을 위해 사용되는 것보다 상태들을 분석하는 분석)을 갖는 판독으로 간주될 수 있다. 전술한 예에 있어서, 에러들이 판독 데이터에서 발생한다. 본 명세서에서, 제 2 및 제 3 비트들에 대응하는 판독들은 에러이다. 제 2 및 제 3 비트들은 논리 "0"이었고 프로그래밍에 의해 셀에 VD 보다 작은 임계 전압을 갖도록 저장되었지만 셀들은 VD 보다 높은 0.05 볼트 및 0.10 볼트의 임계 전압을 갖는 것으로 판독된다 (VD = 0 볼트).
일련의 판독 동작들에 의해 도 4의 메모리 어레이(423)로부터 판독된 로우 전압들은 변조/복조 회로(427) 내 복조기(425)로 전송된다. 로우 전압들은 아날로그-디지털 변환의 분석에 의해 지시된 유한 분석을 갖는다. 본 명세서에서, 로우 데이터는 확률 데이터로 변환된다. 특히, 각각의 셀 판독은 대응하는 비트가 1 또는 0인 확률로 변환된다. 메모리 어레이로부터 일련의 판독들(0.75, 0.05, 0.10, 0.15, 1.25, 1.0, 3.0, 및 0.5볼트)은 셀의 상태를 나타낼 뿐 아니라, 그러한 상태 에 대해 확실함의 정도를 제공하기 위해 또한 사용될 수 있다. 이것은 메모리 셀이 특별한 비트에 의해 프로그램된 확률로서 표현될 수 있다. 따라서, 0 볼트에 가까운 판독들은 낮은 확률 값들을 제공할 수 있는 반면에, 0 볼트로부터 보다 먼 판독들은 보다 높은 확률 값들을 제공한다. 도시된 확률 값들은 (이하 보다 상세히 설명된) 로그 확률비(log likelihood ratios)이다. 이것은 논리 0 상태에서 셀들에 대해 음수 값들을 제공하며 논리 1 상태에서 셀들에 대해 양수 값들을 제공하고, 수의 크기는 상태가 정확히 식별되는 확률을 나타낸다. 제 2 및 제 3 확률 값(0.1, 0.2)은 논리 "1"을 나타낸다. 제 2 및 제 3 값들은 매우 낮은 확률들을 나타낸다.
확률 값들은 ECC 유닛(431) 내 디코더(429)로 전송된다(몇몇 경우에, 로우 값들로부터 확률 값들을 획득하는 것은 디코더에서 수행되고 있는 것으로 간주될 수 있다). 디코더(429)는 확률 값들에 대해 디코딩 동작들을 수행한다. 이러한 디코더는 소프트-입력 디코더로서 간주될 수 있다. 일반적으로, 소프트-입력은 디코드될 데이터에 관련된 몇몇 품질 정보를 포함하는 입력을 언급한다. 소프트-입력으로서 제공된 추가적인 정보는 일반적으로 디코더가 보다 나은 결과를 획득하도록 허용한다. 디코더는 출력으로서 계산된 확률 값들을 제공하기 위해 소프트-입력을 이용하여 디코딩 계산들을 수행할 수 있다. 이것은 소프트-출력으로서 간주되며 이러한 디코더는 소프트-입력 소프트-출력(SISO) 디코더로서 간주된다. 그 다음, 이러한 출력은 디코딩을 반복하고 결과들을 개선하기 위해 SISO 디코더에 입력으로서 다시 사용될 수 있다. SISO 디코더는 다른 유닛으로 하드 출력을 제공하는 보다 큰 디코더의 부분을 형성할 수 있다. SISO 디코더들은 일반적으로 양호한 성능을 제공 하며 몇몇 경우들에 있어서 하드-입력 하드-출력 디코딩에 의해 가능한 것보다 나은 성능을 제공할 수 있다. 특히, 오버헤드의 동일한 양을 위해(다수의 ECC 비트들), SISO 디코더는 보다 큰 에러 보정 능력을 제공할 수 있다. SISO 디코더를 효율적으로 사용하기 위해, 적절한 인코딩/디코딩 체계가 구현될 수 있으며 복조는 과도한 복잡함이 없고 메모리 어레이로부터 데이터를 판독하기 위한 과도한 시간을 필요로 하지 않고 소프트-입력을 효율적으로 획득하기 위해 적용된다.
일 실시예에서, SISO 디코더를 위한 소프트-입력은 메모리 프로그래밍시 사용되었던 것보다 많은 다수의 상태들을 분석하는 분석에 의해 비휘발성 메모리 어레이 내 데이터를 판독함으로써 제공된다. 따라서, 데이터는 2개의 임계 전압 범위들 중 하나로 메모리 셀을 프로그래밍함으로써 기록될 수 있으며, 이어서 3개 이상의 임계 전압 범위들을 분석함으로써 판독된다. 전형적으로, 판독에서 사용된 다수의 임계 전압은 프로그래밍에서 사용된 몇몇 다중의 다수의 임계 전압 범위들(예를 들어, 2배)일 수 있다. 그러나 이것이 항상 그러한 경우는 아니다.
인코더/디코더 회로(ECC 유닛)는 전용 회로로서 구성될 수 있거나 이러한 함수가 제어기 내 펌웨어에 의해 수행될 수 있다. 전형적으로, 제어기는 ECC와 같은 특정한 함수들을 위해 설계된 회로들을 가지며 또한 제어기 동작들을 관리하기 위해 펌웨어를 갖는 주문형 반도체(Application Specific Integrated Circuit: ASIC)이다. 따라서, 인코더/디코더는 메모리 제어기 내 하드웨어와 펌웨어의 조합에 의해 형성될 수 있다. 변조기/복조기 회로들은 메모리 칩, 제어기 칩, 개별적인 칩 또는 몇몇 조합 위에 존재할 수 있다. 일반적으로, 변조기 회로들은 메모리 칩(메 모리 어레이에 연결된 주변 회로들과 같은) 위에 적어도 몇몇 구성요소들을 포함할 수 있다. 비록 도 4가 높은 분석(아날로그 판독)으로 판독되고 있는 임계 전압들을 나타내는 반면에, 선택된 분석의 정도는 사용된 비휘발성 메모리의 타입을 포함하는 다수의 팩터들에 달려있을 수 있다.
도 5는 ECC 유닛(431), 특히 디코더(429)의 보다 상세한 도면이다. 디코더(429)는 SISO 디코더(532)와 소프트-하드 컨버터(534)를 포함한다. SISO 디코더들은 일반적으로 로우 확률 데이터를 수용하고, 로우 확률 데이터에 관해 ECC 계산들을 수행하여 계산된 확률 데이터를 제공한다. 계산된 확률 데이터는 소프트-출력으로 간주될 수 있다. 많은 경우들에 있어서, 그 다음, 이러한 소프트-출력은 SISO 디코더에 입력으로서 제공되어 제 2 디코딩 반복이 수행되도록 한다. SISO 디코더는 적어도 하나의 사전결정된 조건이 달성될 때까지 연속적인 반복들을 수행할 수 있다. 예를 들어, 사전결정된 조건은 모든 비트들이 소정의 최저값보다 큰 확률을 갖는 것일 수 있다. 사전결정된 조건은 또한 최소 확률 값과 같은 확률 값들의 총합일 수 있다. 사전결정된 조건은 하나의 반복에서 다음 반복으로의 결과들의 수렴일 수 있다(즉, 추가 반복들로부터 약간의 개선이 있을 때까지 반복을 지속). 사전결정된 조건은 사전결정된 수의 반복들이 완료되는 것일 수 있다. 이들 조건들의 조합들이 또한 사용될 수 있다. 디코딩은 데이터가 저장되기 전에 데이터에 관해 인코더(432)에 의해 수행된 인코딩의 결과인 데이터 내 인코드된 패턴을 이용하여 수행된다. 인코더(432) 및 디코더 시스템(429)은 모두 ECC 유닛(431)의 부분들로 간주된다.
효율적인 디코딩은 적절한 인코딩/디코딩 체계를 갖는 것에 따른다. 다양한 체계들은 SISO 디코더(532)와 같은 SISO 디코더에서 연속적인 디코딩을 위한 적절한 방법으로 데이터를 인코딩하는 것으로 알려져 있다. 인코딩/디코딩 체계들은 터보 코드들, 제품 코드들, BCH 코드들, 리드-솔로몬 코드들, 컨볼루션 코드들(미국 특허출원 제 11/383,401호 및 제 11/383,405호 참조), 해밍 코드들, 및 저밀도 패리티 체크(LDPC) 코드들을 포함하지만, 이에 제한되지 않는다. LDPC 코드들과 터보 코드들의 상세한 설명과 이들이 SISO 디코딩과 함께 사용될 수 있는 방법이 본 발명의 출원과 거의 동시에 출원된 "Soft-input soft-output decoder for nonvolatile memory"와 "Methods of soft-input soft-out-put decoding for nonvolatile memory"란 제목의 미합중국 특허출원 제 11/536,286호 및 제 11/536,327호에 제공된다.
도 6은 SISO 디코더(657)에 연결된 통계 유닛(655)을 갖는 디코더(653)를 포함하는 본 발명의 실시예에 따른 메모리 시스템(651)을 도시한다. 통계 유닛(655)은 SISO 디코더(657)에 의해 수행된 디코딩 동작들에 관해 SISO 디코더(657)로부터 데이터를 수신한다. 특히, 통계 유닛(655)는 복조기(659)로부터 SISO 디코더(657)에 의해 수신되는 데이터의 품질의 하나 이상의 통계 표시기들을 획득하기 위해 SISO 디코더(657)에 의해 수행된 동작들에 관해 통계 데이터를 수집할 수 있다. 데이터 품질의 한 측정은 데이터의 신호대 잡음비(SNR)이다. SNR 또는 다른 품질 측정은 SISO 디코더에 의해 디코드된 모든 데이터에 대해 몇몇 시간의 주기에 걸쳐서 획득될 수 있다. 대안으로, 개개의 품질 표시기들은 메모리 어레이의 상이한 부분 들에 대해 계산될 수 있다. 품질 표시기는 대량의 데이터에 걸쳐서 획득되어 통계적으로 충분한 인구가 사용되도록 할 수 있다. 품질 표시기는 반복적인 디코딩 체계에서 사전결정된 조건을 달성하기 위해 필요한 평균 반복들로부터 획득될 수 있다. 품질 표시기는 보정들이 요구되는 레이트, 보정들의 평균 해밍 거리, 수행된 보정들의 타입 또는 SISO 디코더에 의해 디코딩에 관한 몇몇 다른 통계로부터 획득될 수 있다.
일반적으로, 특별한 디코더는 몇몇 최대 SNR까지 SNR들의 범위를 갖는 데이터를 디코드할 수 있다. 소프트-입력의 SNR에 영향을 끼치는 방법으로 동작 파라미터들을 변경하는 것이 여러 메모리 시스템들에서 가능하다. 그러나 보다 나은(높은) SNR을 제공하는 것은 보다 복잡함 또는 보다 많은 시간 또는 둘 다를 필요로 할 수 있다. 따라서, 일반적으로 양호한 SNR을 획득하는 것 대 추가적인 시간을 초래하는 것 간의 트레이드오프가 존재하며 메모리 시스템을 동작하기가 복잡하다. 디코더가 몇몇 최소 SNR을 초과하는 데이터를 신뢰할 수 있게 보정할 수 있는 곳에서, 최소값에 가까운 SNR을 제공하는 방법으로 메모리 시스템을 동작하기에 효율적일 수 있다. 특별한 SNR(또는 SNR 범위)은 디코더로의 입력을 위한 타깃 SNR(타깃 범위)로서 선택될 수 있다. 전형적으로, 메모리로부터의 데이터의 SNR은 사용과 더불어 악화 된다. 따라서, 메모리는 초기에 높은 SNR을 갖는 데이터를 제공할 수 있으며 후에 낮은 SNR을 갖는 데이터를 제공할 수 있다. 일례에서, 동작 파라미터들은 타깃 값, 또는 타깃 범위 내에서 SNR을 유지하기 위해 조정된다. 메모리 시스템이 새롭고 높은 SNR을 가지려고 할 때, 동작 파라미터들은 타깃 SNR, 또는 SNR 범 위를 유지하기 위해 적절한 레벨들로 설정될 수 있다. 후에, 몇몇 이용 후, 메모리는 보다 낮은 SNR을 갖는 데이터를 출력하려고 하며 동작 파라미터들은 사용에 의해 야기된 SNR 내 드롭을 보상하기 위해 적절한 레벨들로 설정될 수 있다. 따라서, SNR은 타깃 SNR에서 유지되거나, 또는 타깃 SNR 범위 내에 유지된다. 대안으로, 디코더의 성능에 영향을 끼치는 동작 파라미터를 변경함으로써 디코더로 데이터 입력시 SNR 내 드롭을 보상하는 것이 편할 수 있다. 메모리 어레이의 동작 파라미터들의 이러한 조절은 SNR 값에 기초할 수 있거나 SISO 디코딩으로부터 획득된 다른 품질 표시기에 기초할 수 있다. 도 6은 변조기(661)와 복조기(659)로 피드백 신호를 제공하는 통계 유닛(655)을 도시한다. 다른 신호들은 또한 통계 유닛(655)에 의해 제공될 수 있다. 특별한 예들에 있어서, 프로그래밍과 판독 동작들은 통계 유닛으로부터의 신호들에 따라서 변경된다. 다른 예들에서, 다른 동작 파라미터들이 변경될 수 있다.
변경될 수 있는 메모리 어레이의 동작 파라미터의 일례는 메모리 셀을 프로그램하기 위해 사용된 전압 펄스의 펄스 높이이다. 하나의 프로그래밍 체계에 있어서, 메모리 셀은 메모리 셀이 몇몇 타깃 임계 전압에 도달한 것으로 입증될 때까지 메모리 셀의 제어 게이트로 일련의 증가 전압 펄스들을 인가함으로써 프로그램된다. 도 7은 메모리 셀을 프로그램하기 위해 사용된 일련의 프로그래밍 전압 펄스들의 예를 도시한다. 메모리 셀이 사전결정된 임계 전압에 도달하였는지 입증하기 위해 각각의 전압 펄스 간에 입증 동작이 수행된다. 연속적인 프로그래밍 전압 펄스들은 증분 ΔV 만큼 증가한다. 이러한 증분의 사이즈는 메모리 어레이로부터 판독 된 데이터의 품질에 영향을 끼칠 수 있다. 일반적으로, ΔV가 작으면, 개별적인 논리 상태들에 대한 임계 전압 분배들은 좁을 것이며(작은 표준 편차), 따라서 데이터의 오판독이 감소된다. 그러나 ΔV가 펄스의 수보다 작다면, 특별한 임계 전압으로 메모리 셀을 프로그램하기 위해 필요한 시간이 증가된다. 일 실시예에 있어서, 증분 ΔV의 사이즈는 통계 유닛으로부터의 품질 표시에 응답하여 선택된다. 특히, 통계 유닛이 SNR이 타깃보다 높다는 것을 나타내면, ΔV는 사이즈가 증가될 수 있으며, 따라서 메모리 어레이로부터 판독된 데이터의 SNR이 감소된다. 통계 유닛이 SNR이 타깃보다 낮다는 것을 나타내면, ΔV는 사이즈가 감소될 수 있으며 따라서 메모리 어레이로부터 판독된 데이터의 SNR이 감소된다.
ΔV의 사이즈는 초기에 상대적으로 큰 사전결정된 값으로 설정될 수 있는데, 이는 메모리 시스템의 SNR이 초기에 높게 존재하려는 경향 때문이다. 메모리가 사용될 때, 어레이로부터 판독된 데이터의 SNR은 드롭되는 경향이 있다. 이러한 드롭은 통계 유닛(655)에 의해 검출되며, ΔV의 사이즈에 응답하여 감소된다. 따라서, 통계 유닛(655)은 메모리 어레이(663)에 관해 동작들을 수행하는 변조기(661) 내 프로그래밍 회로로 피드백 신호를 제공하며, 프로그래밍 회로는 피드백 신호에 응답하여 메모리 어레이(663)의 적어도 하나의 동작 파라미터를 변경한다. 프로그래밍과 연관된 다른 동작 파라미터들은 통계 유닛(655)으로부터의 신호에 응답하여 수정될 수 있다.
변경될 수 있는 동작 파라미터의 다른 예는 판독 동작의 분석이다. 도 8은 메모리 셀들이 4 상태들 중 하나로 프로그램되는 예를 도시한다. 3개의 연속적인 판독들, 4개의 프로그램된 상태들에 대응하는 4개의 임계 전압 범위들을 분석하는 제 1 판독, 제 1 판독의 임계 전압 범위를 3개의 범위들로 더 분석하는 제 2 판독 그리고 이들 범위들을 더 분석하는 제 3 판독이 수행된다. 각각의 이들 판독들은 메모리 시스템으로부터 데이터를 출력하기 위해 필요한 시간에 더해진다. 보다 많은 판독들은 일반적으로 보다 많은 정보를 SISO 디코더에 제공하고 SISO 디코더가 데이터를 더 좋게 보정하도록 허용하는 보다 높은 분석을 제공한다. 그러나, 높은 분석 판독은 보다 많은 시간을 필요로 한다. 예를 들어, 두 상태들을 구별하기 위해 싱글 판독은 완료를 위해 25마이크로초를 요구할 수 있으며, 4 상태들을 구별하기 위한 3개의 판독들은 75마이크로초를 요구할 수 있다. 일례에서, 수행되는 판독들의 수는 통계 유닛(655)으로부터의 신호에 의해 결정된다. 따라서, 통계 유닛(655)이 높은 SNR을 나타낸다면, 판독들의 수가 감소될 수 있으며, 시간이 절약된다. 통계 유닛(655)이 낮은 SNR을 나타내면, 판독들의 수가 감소될 수 있으며, SISO 디코더에 이용가능한 정보가 증가하며 따라서 낮은 SNR을 보상한다. 다른 메모리들에 있어서, 다른 판독 시스템들이 도 8의 것과 같은 판독 패턴을 도시하지 않기 위해 사용된다. 일반적으로, 이러한 메모리들에 있어서 보다 높은 분석은 보다 많은 시간 또는 보다 많은 복잡성을 요구한다. 따라서, 분석의 감소는 일반적으로 보다 빠르거나, 보다 단순하거나, 또는 둘 다인 판독을 허용할 것이다.
일례에서, 판독 분석은 초기에 사전결정된 레벨로 설정된다. 통계 정보가 통계 유닛에 의해 수집됨에 따라서, 이러한 수는 변경될 수 있다. 예를 들어, 메모리 어레이로부터의 데이터 출력의 SNR은 메모리가 사용됨에 따라서 드롭될 수 있으며 보상을 위해 판독 분석이 증가될 수 있다. 따라서, 통계 유닛은 피드백 신호를 제공하고 메모리 어레이의 동작 파라미터는 피드백 신호에 응답하여 변경된다. 판독 또는 기록과 연관된 메모리 어레이(663)의 다른 동작 파라미터들은 또한 통계 유닛(655)으로부터의 신호에 응답하여 변경될 수 있다.
도 8의 판독 체계는 NAND 플래시 메모리와 함께 사용될 수 있다. 이것은 연속적으로 함께 연결된 메모리 셀들의 스트링들을 이용하는 메모리의 타입이다. 다양한 NAND 플래시 메모리 설계들과 NAND 플래시 메모리 시스템들의 방법들이 미합중국 특허 제 7,888,621호, 제 7,092,290호 및 제 6,983,428호에 기술된다.
몇몇 경우에, ECC 유닛은 연쇄적인 인코딩과 디코딩을 제공하기 위해 하나 이상의 인코더와 하나 이상의 디코더를 이용할 수 있다. 이러한 장치에서 하나 이상의 디코더들로부터의 통계 정보를 수집하는 통계 유닛이 제공될 수 있다. 대안으로, 개개의 통계적인 유닛들은 하나 이상의 개개의 출력들을 제공하는 각각의 통계 유닛에 의해 상이한 디코더들을 위해 제공될 수 있다.
통계 유닛으로부터의 신호는 메모리 어레이의 동작 파라미터에 영향을 끼치는 메모리 시스템 내 어느 회로로 제공될 수 있다. 이것은 변조기, 복조기, 메모리 어레이, ECC 유닛 내 회로들을 포함하거나, 또는 메모리 제어기 내 어떠한 회로를 포함한다. 하나 이상의 동작 파라미터를 제어하기 위해 하나 이상의 신호가 통계 유닛에 의해 발생될 수 있다. 예를 들어, 프로그래밍 펄스 전압과 판독 분석 모두가 통계 유닛에 의해 제공된 신호에 응답하여 변경될 수 있거나, 또는 이들은 동일하거나 상이한 통계 정보에 기초할 수 있는 개개의 신호들에 응답하여 변경될 수 있다.
몇몇 경우, 통계 유닛은 제어기 ASIC의 부분으로서 형성된다. 통계 유닛은 전용 회로들, 제어기 내 펌웨어 또는 전용 회로들과 펌웨어의 조합에 의해 형성될 수 있다. 대안으로, 통계 유닛은 제어기로부터 개별적으로 전용 칩 또는 기타 칩에 형성될 수 있다.
전술한 다양한 예들은 플래시 메모리로 언급된다. 그러나 다양한 다른 비휘발성 메모리들이 현재 사용되고 있으며 본 명세서에 기술된 기법들은 어느 적절한 비휘발성 메모리 시스템들에 적용될 수 있다. 이러한 메모리 시스템들은 강유전체 스토리지에 기초한 메모리 시스템들(FRAM 또는 FeRAM), 자기저항 저장장치에 기초한 메모리 시스템들(MRAM), 그리고 위상 변화에 기초한 메모리들("Ovonic Unified Memory"를 위한 PRAM 또는 "OUM")을 포함할 수 있지만 이에 제한되지 않는다.
모든 특허들, 특허 출원들, 논문들, 교재들, 명세서들, 다른 간행물들, 문서들 및 본 명세서에 참조된 것들은 모든 목적들을 위해 이들 전부가 본 명세서에 참조로서 인용된다. 모든 인용된 간행물들, 문서들 및 본 발명의 문서의 원문 간의 용어의 정의 또는 사용 또는 본 발명의 문서에 있어서 용어의 사용에 있어서 어떠한 불일치 또는 충돌이 있을 것이다.
비록 본 발명의 다양할 실시예들이 소정의 바람직한 실시예들에 관하여 기술되었다 하더라도, 본 발명이 첨부된 청구항들의 전 범위 내에서 보호된다는 것이 이해된다.
상술한 바와 같이, 본 발명은, 비휘발성 메모리 시스템과, 비휘발성 메모리 시스템을 동작하기 위한 방법을 제공하는데 사용된다.

Claims (19)

  1. 비휘발성 메모리 어레이를 관리하는 방법으로서,
    비휘발성 메모리 어레이로부터 저장된 데이터를 판독하는 단계;
    디코더를 사용하여 상기 데이터를 디코딩하는 단계로서, 상기 디코더의 출력은 저장된 데이터 비트에 해당하는 확률값을 포함하고, 상기 출력은 상기 디코더의 보정된 데이터를 유도하는데 사용되는, 단계;
    상기 디코더에 의해 상기 저장된 데이터의 디코딩에 관한 통계 정보를 수집하는 단계; 및
    상기 통계 정보에 대한 응답으로 상기 디코더로 입력되는 데이터의 품질에 영향을 미치도록 상기 비휘발성 메모리 어레이 중 적어도 하나의 동작 파라미터를 변경하는 단계;를 포함하며,
    상기 적어도 하나의 동작 파라미터는 상기 비휘발성 메모리 어레이 내 프로그래밍 동작에 사용된 연속적인 전압 펄스 간의 전압 차를 포함하는,
    비휘발성 메모리 어레이 관리 방법.
  2. 제 1항에 있어서, 상기 적어도 하나의 동작 파라미터는 상기 비휘발성 메모리 어레이 내 판독 동작에 사용된 분석(resolution)을 더 포함하는, 비휘발성 메모리 어레이 관리 방법.
  3. 삭제
  4. 비휘발성 메모리 어레이 내 데이터를 관리하는 방법으로서,
    비휘발성 메모리 어레이로부터 저장된 데이터를 판독하는 단계;
    상기 저장된 데이터로부터 로우 확률 정보를 유도하는 단계;
    디코더로 상기 로우 확률 정보를 제공하는 단계로서, 상기 디코더는 상기 로우 확률 정보와, 상기 저장 데이터의 인코드된 패턴으로부터 출력 확률 정보를 계산하는 단계;
    상기 저장 데이터에 대한 품질 정보를 계산하는 단계로서, 상기 품질 정보는 상기 디코더에 의해 수행된 보정량을 반영하는 단계; 및
    상기 품질 정보에 대한 응답으로 상기 디코더로 입력되는 데이터의 품질에 영향을 미치도록 상기 비휘발성 메모리 어레이 중 적어도 하나의 동작 파라미터를 변경하는 단계;를 포함하며,
    상기 출력 확률 정보는 상기 디코더에 입력으로 제공되어, 상기 디코더는 상기 저장된 데이터에 대한 출력 확률 정보를 계산하기 위한 적어도 2개의 반복을 수행하고,
    상기 출력 확률 정보의 계산의 반복은 사전결정된 조건이 충족될 때까지 수행되며,
    상기 품질 정보는 상기 사전결정된 조건이 충족되기 전에 수행된 반복의 수로부터 유도되는, 비휘발성 메모리 어레이 내 데이터 관리 방법.
  5. 제 4항에 있어서, 상기 품질 정보는 저장되고, 다른 저장된 데이터에 대한 품질 정보에 의해 통계적으로 분석되며, 상기 적어도 하나의 동작 파라미터는 상기 통계 분석에 응답하여 변경되는, 비휘발성 메모리 어레이 내 데이터 관리 방법.
  6. 삭제
  7. 삭제
  8. 삭제
  9. 비휘발성 메모리 어레이 내 데이터를 관리하는 방법으로서,
    비휘발성 메모리 어레이로부터 저장된 데이터를 판독하는 단계;
    상기 저장된 데이터로부터 로우 확률 정보를 유도하는 단계;
    디코더로 상기 로우 확률 정보를 제공하는 단계로서, 상기 디코더는 상기 로우 확률 정보와, 상기 저장 데이터의 인코드된 패턴으로부터 출력 확률 정보를 계산하는 단계;
    상기 저장 데이터에 대한 품질 정보를 계산하는 단계로서, 상기 품질 정보는 상기 디코더에 의해 수행된 보정량을 반영하는 단계; 및
    상기 품질 정보에 대한 응답으로 상기 디코더로 입력되는 데이터의 품질에 영향을 미치도록 상기 비휘발성 메모리 어레이 중 적어도 하나의 동작 파라미터를 변경하는 단계;를 포함하며,
    상기 출력 확률 정보는 상기 디코더에 입력으로 제공되어, 상기 디코더는 상기 저장된 데이터에 대한 출력 확률 정보를 계산하기 위한 적어도 2개의 반복을 수행하고,
    상기 출력 확률 정보의 계산의 반복은 사전결정된 조건이 충족될 때까지 수행되며,
    상기 품질 정보는 상기 사전결정된 조건이 충족되기 전에 수행된 보정의 수로부터 유도되는, 비휘발성 메모리 어레이 내 데이터 관리 방법.
  10. 비휘발성 메모리 어레이 내 데이터를 관리하는 방법으로서,
    비휘발성 메모리 어레이로부터 저장된 데이터를 판독하는 단계;
    상기 저장된 데이터로부터 로우 확률 정보를 유도하는 단계;
    디코더로 상기 로우 확률 정보를 제공하는 단계로서, 상기 디코더는 상기 로우 확률 정보와, 상기 저장 데이터의 인코드된 패턴으로부터 출력 확률 정보를 계산하는 단계;
    상기 저장 데이터에 대한 품질 정보를 계산하는 단계로서, 상기 품질 정보는 상기 디코더에 의해 수행된 보정량을 반영하는 단계; 및
    상기 품질 정보에 대한 응답으로 상기 디코더로 입력되는 데이터의 품질에 영향을 미치도록 상기 비휘발성 메모리 어레이 중 적어도 하나의 동작 파라미터를 변경하는 단계;를 포함하며,
    상기 출력 확률 정보는 상기 디코더에 입력으로 제공되어, 상기 디코더는 상기 저장된 데이터에 대한 출력 확률 정보를 계산하기 위한 적어도 2개의 반복을 수행하고,
    상기 출력 확률 정보의 계산의 반복은 사전결정된 조건이 충족될 때까지 수행되며,
    상기 품질 정보는 상기 디코더에 의해 수행된 보정들의 타입으로부터 유도되는, 비휘발성 메모리 어레이 내 데이터 관리 방법.
  11. 제 4항에 있어서, 상기 적어도 하나의 동작 파라미터는 상기 메모리 어레이의 메모리 셀을 프로그램하기 위해 사용된 전압 펄스들의 시퀀스에 영향을 미치는, 비휘발성 메모리 어레이 내 데이터 관리 방법.
  12. 제 4항에 있어서, 상기 적어도 하나의 동작 파라미터는 상기 메모리 어레이의 메모리 셀에 저장된 데이터를 판독하기 위해 사용된 분석(resolution)을 포함하는, 비휘발성 메모리 어레이 내 데이터 관리 방법.
  13. 비휘발성 메모리 시스템으로서,
    복수의 데이터 비트를 저장하는 비휘발성 메모리 어레이;
    특별한 데이터 비트들의 확률을 나타내는 확률값을 출력하기 위해 상기 메모리 어레이 내에 저장된 데이터를 디코드하는 디코더;
    상기 디코더에 의해 수행된 디코딩에 관한 정보를 수집하고, 상기 수집된 정보에 기초한 출력을 제공하는 통계 유닛으로서, 상기 출력은 상기 디코더로 입력되는 데이터의 품질에 영향을 미치도록 상기 비휘발성 메모리 어레이의 동작을 제어하는 적어도 하나의 회로에 제공되는, 통계 유닛; 및
    상기 비휘발성 메모리 어레이에 연결된 판독 회로;를 포함하며,
    상기 출력은 상기 판독 회로에 제공되며, 상기 판독 회로는 상기 출력에 응답하여 판독 분석을 수정하는,
    비휘발성 메모리 시스템.
  14. 삭제
  15. 제 13항에 있어서, 상기 비휘발성 메모리 어레이에 연결된 프로그래밍 회로, 상기 프로그래밍 회로에 제공된 상기 출력, 상기 출력에 응답하여 프로그래밍 전압을 수정하는 상기 프로그래밍 회로를 더 포함하는, 비휘발성 메모리 시스템.
  16. 제 15항에 있어서, 상기 프로그래밍 전압은 상기 비휘발성 메모리를 프로그램하기 위해 사용된 연속적인 전압 펄스들 간의 전압차를 감소시키기 위해 수정되는, 비휘발성 메모리 시스템.
  17. 비휘발성 메모리 시스템으로서,
    인코딩 체계에 따라 데이터를 인코드하는 인코더;
    상기 인코드된 데이터를 저장하는 비휘발성 메모리 어레이;
    상기 비휘발성 메모리 어레이로부터 인코드된 데이터를 두 번 이상 디코딩을 반복하되, 상기 반복되는 디코딩에 대한 특정 출력을 상기 반복되는 디코딩에서 다음 디코딩을 위한 입력으로 제공받는 디코더; 및
    둘 이상의 디코딩 반복을 수행하여 상기 비휘발성 메모리 어레이로부터 상기 인코드된 데이터와, 연속적인 반복에 입력 데이터로서 제공된 특별한 반복의 출력 데이터를 디코드하는 디코더; 및
    상기 디코딩으로부터 상기 인코드된 데이터의 데이터 품질의 적어도 하나의 측정을 유도하고, 상기 디코더로 입력되는 데이터의 품질에 영향을 미치도록 상기 메모리 어레이의 동작을 제어하는 적어도 하나의 회로에 출력을 제공하는 통계 유닛;을
    포함하는, 비휘발성 메모리 시스템.
  18. 제 17항에 있어서, 상기 인코드된 데이터를 상기 메모리 어레이에 기록하는 기록 회로, 상기 기록 회로에 제공된 출력을 더 포함하는, 비휘발성 메모리 시스템.
  19. 제 17항에 있어서, 상기 메모리 어레이로부터 상기 인코드된 데이터를 판독하는 판독 회로, 상기 판독 회로에 제공된 출력을 더 포함하는, 비휘발성 메모리 시스템.
KR1020097008470A 2006-09-28 2007-09-19 소프트-입력, 소프트-출력(siso) 디코더, 통계 유닛 및 적합한 동작을 갖는 비휘발성 메모리 KR101144096B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/536,347 2006-09-28
US11/536,372 2006-09-28
US11/536,372 US20080092015A1 (en) 2006-09-28 2006-09-28 Nonvolatile memory with adaptive operation
US11/536,347 US7805663B2 (en) 2006-09-28 2006-09-28 Methods of adapting operation of nonvolatile memory
PCT/US2007/078841 WO2008042598A2 (en) 2006-09-28 2007-09-19 Involatile memory with soft-input,soft-output (siso) decoder, statistical unit and adaptive operation

Publications (2)

Publication Number Publication Date
KR20090096412A KR20090096412A (ko) 2009-09-10
KR101144096B1 true KR101144096B1 (ko) 2012-07-10

Family

ID=39269078

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097008470A KR101144096B1 (ko) 2006-09-28 2007-09-19 소프트-입력, 소프트-출력(siso) 디코더, 통계 유닛 및 적합한 동작을 갖는 비휘발성 메모리

Country Status (5)

Country Link
EP (1) EP2067144A2 (ko)
JP (1) JP5297380B2 (ko)
KR (1) KR101144096B1 (ko)
TW (1) TWI360126B (ko)
WO (1) WO2008042598A2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7904783B2 (en) 2006-09-28 2011-03-08 Sandisk Corporation Soft-input soft-output decoder for nonvolatile memory
US7805663B2 (en) 2006-09-28 2010-09-28 Sandisk Corporation Methods of adapting operation of nonvolatile memory
US7818653B2 (en) 2006-09-28 2010-10-19 Sandisk Corporation Methods of soft-input soft-output decoding for nonvolatile memory
US8526230B2 (en) * 2008-07-01 2013-09-03 Lsi Corporation Methods and apparatus for write-side intercell interference mitigation in flash memories
US8458536B2 (en) 2008-07-17 2013-06-04 Marvell World Trade Ltd. Data recovery in solid state memory devices
US8406048B2 (en) * 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
JP5537551B2 (ja) * 2008-09-28 2014-07-02 ラマト アット テル アビブ ユニバーシティ リミテッド フラッシュメモリにおける適応符号化用の方法およびシステム
US8671327B2 (en) 2008-09-28 2014-03-11 Sandisk Technologies Inc. Method and system for adaptive coding in flash memories
US8179731B2 (en) 2009-03-27 2012-05-15 Analog Devices, Inc. Storage devices with soft processing
JP2011203833A (ja) * 2010-03-24 2011-10-13 Toshiba Corp メモリシステム
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8429500B2 (en) 2010-03-31 2013-04-23 Lsi Corporation Methods and apparatus for computing a probability value of a received value in communication or storage systems
US8504885B2 (en) 2010-03-31 2013-08-06 Lsi Corporation Methods and apparatus for approximating a probability density function or distribution for a received value in communication or storage systems
US8386895B2 (en) 2010-05-19 2013-02-26 Micron Technology, Inc. Enhanced multilevel memory
US8499227B2 (en) * 2010-09-23 2013-07-30 Micron Technology, Inc. Memory quality monitor based compensation method and apparatus
WO2012042444A1 (en) * 2010-09-29 2012-04-05 International Business Machines Corporation Decoding in solid state memory devices
KR101792868B1 (ko) * 2010-11-25 2017-11-02 삼성전자주식회사 플래시 메모리 장치 및 그것의 읽기 방법
US9030870B2 (en) * 2011-08-26 2015-05-12 Micron Technology, Inc. Threshold voltage compensation in a multilevel memory
JP6290913B2 (ja) * 2012-11-09 2018-03-07 コーヒレント・ロジックス・インコーポレーテッド 多重プロセッサシステムのためのリアルタイム分析及び制御
US10467090B2 (en) 2016-03-02 2019-11-05 Toshiba Memory Corporation Memory controller and decoding method
JP7066584B2 (ja) * 2018-09-18 2022-05-13 キオクシア株式会社 メモリシステム
KR20210085284A (ko) 2019-12-30 2021-07-08 삼성전자주식회사 Pim 메모리 디바이스, pim 메모리 디바이스를 포함하는 컴퓨팅 시스템 및 pim 메모리 디바이스의 동작 방법
KR102611823B1 (ko) * 2023-03-17 2023-12-08 주식회사 프라터 Ldpc 디코더의 tdmp 알고리즘에 의한 패리티 검사 행렬의 디코딩 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6279133B1 (en) * 1997-12-31 2001-08-21 Kawasaki Steel Corporation Method and apparatus for significantly improving the reliability of multilevel memory architecture
JP2001266498A (ja) * 2000-03-23 2001-09-28 Sony Corp データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法
JP2001266499A (ja) * 2000-03-23 2001-09-28 Sony Corp データ記録装置及びデータ記録方法、データ再生装置及びデータ再生方法、並びに、データ記録再生装置及びデータ記録再生方法
JP2003203435A (ja) * 2002-01-09 2003-07-18 Fujitsu Ltd データ再生装置
US6751766B2 (en) * 2002-05-20 2004-06-15 Sandisk Corporation Increasing the effectiveness of error correction codes and operating multi-level memory systems by using information about the quality of the stored data
JP2005078721A (ja) * 2003-09-01 2005-03-24 Nippon Telegr & Teleph Corp <Ntt> 誤り訂正方法およびメモリ回路
JP4444755B2 (ja) * 2004-08-17 2010-03-31 Kddi株式会社 連接符号システムおよび連接符号処理方法、復号装置
JP5177991B2 (ja) * 2006-10-25 2013-04-10 株式会社東芝 不揮発性半導体記憶装置

Also Published As

Publication number Publication date
KR20090096412A (ko) 2009-09-10
JP5297380B2 (ja) 2013-09-25
TW200823910A (en) 2008-06-01
WO2008042598A2 (en) 2008-04-10
JP2010505200A (ja) 2010-02-18
EP2067144A2 (en) 2009-06-10
WO2008042598A3 (en) 2008-06-19
TWI360126B (en) 2012-03-11

Similar Documents

Publication Publication Date Title
KR101144096B1 (ko) 소프트-입력, 소프트-출력(siso) 디코더, 통계 유닛 및 적합한 동작을 갖는 비휘발성 메모리
US7805663B2 (en) Methods of adapting operation of nonvolatile memory
US7558109B2 (en) Nonvolatile memory with variable read threshold
US7904788B2 (en) Methods of varying read threshold voltage in nonvolatile memory
US20080092015A1 (en) Nonvolatile memory with adaptive operation
US8001441B2 (en) Nonvolatile memory with modulated error correction coding
US7904780B2 (en) Methods of modulating error correction coding
KR101017847B1 (ko) 가변 판독 임계값을 갖는 비휘발성 메모리
US7904783B2 (en) Soft-input soft-output decoder for nonvolatile memory
US7818653B2 (en) Methods of soft-input soft-output decoding for nonvolatile memory
US7849383B2 (en) Systems and methods for reading nonvolatile memory using multiple reading schemes
KR20090086523A (ko) 에러가 발생할 수 있는 확률을 기초로 하여 에러가 보정된 비휘발성 메모리
US8140935B2 (en) ECC controller for use in flash memory device and memory system including the same
US8762800B1 (en) Systems and methods for handling immediate data errors in flash memory
US10395754B2 (en) Method for decoding bits in a solid state drive, and related solid state drive
US8589765B1 (en) Memory read-out
US20080320366A1 (en) Methods of reading nonvolatile memory
WO2009002940A2 (en) Systems and methods of reading nonvolatile memory
TWI385512B (zh) 在非揮發性半導體記憶體陣列中儲存資料及解碼儲存其中的資料之方法、非揮發性半導體及快閃記憶體系統、及管理快閃記憶體中之資料的方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180328

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee