KR101633286B1 - 다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성 - Google Patents

다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성 Download PDF

Info

Publication number
KR101633286B1
KR101633286B1 KR1020147017552A KR20147017552A KR101633286B1 KR 101633286 B1 KR101633286 B1 KR 101633286B1 KR 1020147017552 A KR1020147017552 A KR 1020147017552A KR 20147017552 A KR20147017552 A KR 20147017552A KR 101633286 B1 KR101633286 B1 KR 101633286B1
Authority
KR
South Korea
Prior art keywords
read
offset
hard
storage device
readings
Prior art date
Application number
KR1020147017552A
Other languages
English (en)
Other versions
KR20140093289A (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 KR20140093289A publication Critical patent/KR20140093289A/ko
Application granted granted Critical
Publication of KR101633286B1 publication Critical patent/KR101633286B1/ko

Links

Images

Classifications

    • 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
    • G11C16/26Sensing or reading circuits; Data output circuits
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • 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/1072Adding 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 multilevel 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
    • 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
    • G11C16/3431Circuits or methods to detect disturbed nonvolatile memory cells, e.g. which still read as programmed but with threshold less than the program verify threshold or read as erased but with threshold greater than the erase verify threshold, and to reverse the disturbance via a refreshing programming or erasing step
    • 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
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

개시 판독 임계치가 수신된다. 제 1 오프셋 및 제 2 오프셋이 결정된다. 제 1 판독이 개시 판독 임계치에서 제 1 오프셋만큼 오프셋되어 수행되어 제 1 하드 판독 값을 얻고 제 2 판독이 개시 판독 임계치에서 제 2 오프셋만큼 오프셋되어 수행되어 제 2 하드 판독 값을 얻는다. 소프트 판독 값은 제 1 하드 판독 값 및 제 2 하드 판독 값에 적어도 부분적으로 기초하여 생성된다.

Description

다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성{GENERATING SOFT READ VALUES USING MULTIPLE READS AND/OR BINS}
본 출원은 모든 목적들에 대해 참조로서 여기에 통합되는 2012년 1월 27에 출원된 발명의 명칭이 "LDPC PERFORMANCE AND INCREASE READ THROUGHPUT IN NAND FLASH MEMORY"인 미국 가특허 출원 제 61/591,639 호(대리인 문서 번호 LINKP113+)에 대한 우선권을 주장하고 본 출원은 모든 목적들에 대해 참조로서 여기에 통합되는 2012년 3월 30일에 출원된 발명의 명칭이 "METHOD FOR UPDATING LOG-LIKELIHOOD RATIOS (LLRs) FOR HARD-READ NAND DEVICES"인 미국 가특허 출원 제 61/618,414 호(대리인 문서 번호 LINKP116+)에 대한 우선권을 주장한다.
본 발명은 다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성에 관한 것이다.
현재, 고체 상태 저장 시스템들은 저장된 정보를 판독할 때 본래 소프트 정보를 리턴하지 않는다. 일 예시에서, NAND 플래시 시스템들은 셀이 특정한 판독 임계치를 사용하여 판독될 때 1 또는 0(즉, 하드 판독 값들)을 리턴한다. 몇몇 NAND 플래시 시스템들은 소프트 입력 디코더들(소프트 입력 저밀도 패리티-검사(LDPC) 디코더들과 같은)이 저장 시스템에서 사용될 수 있도록 리턴된 하드 판독 값들로부터 소프트 정보를 합성한다.
소프트 판독 값들을 생성하기 위한 새로운 기술들은, 예를 들면, 더 높은 품질의 소프트 판독값들이 얻어질수록 소프트 입력 에러 보정 디코더에 의한 디코딩이 더 빨라지고, 및/또는 더 적은 저장 장치가 요구되도록 하는 것이 바람직하다.
본 발명은 프로세스; 장치; 시스템; 물체의 구성; 컴퓨터 판독가능 저장 매체상에 구현된 컴퓨터 프로그램 제품; 및/또는 프로세서에 결합된 메모리상에 저장 및/또는 상기 메모리에 의해 제공된 명령들을 실행하도록 구성된 프로세서와 같은, 프로세서를 포함하여 다수의 방식들로 실행될 수 있다. 본 명세서에서, 이들 실행들, 또는 본 발명이 취할 수 있는 임의의 다른 형태는 기술들이라고 불릴 수 있다. 일반적으로, 개시된 프로세스들의 단계들의 순서는 본 발명의 범위내에서 변경될 수 있다. 달리 언급되지 않으면, 태스크를 수행하도록 구성된 것으로 기술된 프로세서 또는 메모리와 같은 구성 요소는 주어진 시간에 태스크를 수행하도록 임시적으로 구성된 일반적인 구성 요소 또는 태스크를 수행하도록 제작된 특정 구성 요소로서 구현될 수 있다. 여기에 사용된 바와 같이, 용어 '프로세서'는 컴퓨터 프로그램 명령들과 같은 데이터를 처리하도록 구성된 하나 이상의 디바이스들, 회로들, 및/또는 프로세싱 코어들을 말한다.
본 발명의 하나 이상의 실시예들의 상세한 설명은 본 발명의 원리들을 도시하는 첨부하는 도면들과 함께 이하에 제공된다. 본 발명은 이러한 실시예들과 연결하여 기술되지만, 본 발명은 임의의 실시예로 제한되지 않는다. 본 발명의 범위는 청구항들에 의해서만 한정되고 본 발명은 다수의 대체물들, 변경들, 및 등가물들을 포함한다. 다수의 특정 상세들은 본 발명의 완전한 이해를 제공하기 위해 후속 설명에서 설명된다. 이들 상세들은 예시의 목적을 위해 제공되고 본 발명은 이들 특정 상세들의 일부 또는 모두가 없이 청구항들에 따라 실행될 수 있다. 명확성의 목적을 위해, 본 발명과 관련된 기술 분야들에서 알려진 기술적인 내용은 본 발명이 불필요하게 모호해지지 않도록 상세하게 기술되지 않았다.
본 발명은 다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성하는 방법 및 시스템을 제공한다.
도 1은 고체 상태 저장 시스템과 연관된 판독 프로세서의 일 실시예를 도시하는 도면.
도 2는 다수의 판독 임계치들에서 복수의 판독들을 사용하여 소프트 판독 값을 결정하기 위한 프로세스의 일 실시예를 예시하는 플로차트.
도 3은 최적의 판독 임계치로부터의 오프셋인 제 1 판독 임계치 및 제 2 판독 임계치의 일 실시예를 도시하는 도면.
도 4는 다양한 기술들을 사용하여 생성된 소프트 판독 값들을 비교하는 성능 차트들의 일 실시예를 도시하는 도면.
도 5는 데이터의 사용 기간 및 저장 장치의 사용 기간에 적어도 부분적으로 기초하여 선택되는 오프셋의 일 실시예를 도시하는 도면.
도 6은 제 1 판독으로부터의 정보를 사용하여 제 2 오프셋을 선택하기 위한 일 실시예를 도시하는 도면.
도 7a는 빈들을 사용하여 소프트 판독 값들을 생성하는 프로세스의 일 실시예를 도시하는 플로차트.
도 7b는 오래된 빈을 새로운 빈으로 맵핑하는 프로세스의 SLC 실시예를 예시하는 플로차트.
도 8은 새로운 빈들에 맵핑되는 오래된 빈들의 일 실시예를 도시하는 도면.
도 9는 하나의 임계치가 고정되고 동시에 다른 것은 변하는 것이 허용되는 2-bit MLC 실시예를 도시하는 도면.
도 10은 LSB가 알려질 때 분포들의 2-bit MLC 실시예를 도시하는 도면.
도 11a는 오른쪽 및 왼쪽 MSB 판독 임계치에 대한 제 1 및 제 2 값들의 2-bit MLC 실시예를 도시하는 도면.
도 11b는 오른쪽 및 왼쪽 MSB 판독 임계치에 대해 제 3 값들의 일 실시예를 도시하는 도면.
본 발명의 다수의 실시예들은 다음의 상세한 설명 및 첨부하는 도면들에 개시된다.
도 1은 고체 상태 저장 시스템과 연관된 판독 프로세서의 일 실시예를 도시하는 도면이다. 도시된 예시에서, 판독 프로세서(100)는 고체 상태 저장 장치(150)에 저장된 정보를 판독한다. 여기에 설명된 판독 관련 기술들을 더 명확히 설명하기 위해, 도 1은 기록 프로세서와 같은 일반적인 저장 시스템이 포함하는 몇몇 구성 요소들을 도시하지 않는다. 그러나, 여기에 설명된 기술들을 수행하는 저장 시스템들은 반드시 이러한 구성 요소들을 배제하지는 않는다. 몇몇 실시예들에서, 판독 프로세서(100)는 주문형 집적 회로(ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA)와 같은 반도체 디바이스를 포함하거나, 또는 그로서 구현된다. 몇몇 실시예들에서, 고체 상태 저장 장치(150)는 NAND 플래시 메모리를 포함한다.
판독 임계치 생성기(108)는 저장 장치 판독 인터페이스(106)로 전달되는 판독 임계치들을 생성한다. (예를 들면, 제 1, 제 2, 등) 판독 임계치를 결정하거나 생성하기 위해 임의의 적절한 기술이 사용될 수 있다. 예를 들면, 소프트 판독 값이 제 1 및 제 2 판독 모두를 사용하여 생성되는 하나의 기술에서, 제 1 및 제 2 판독 임계치는 판독 임계치 생성기(108)로부터 저장 장치 판독 인터페이스(106)로 전달된다. 그의 몇몇 예시들은 더 상세하게 이하에 기술된다. 몇몇 실시예들에서, 판독 임계치 생성기(108)는 제 2 판독 임계치를 생성하기 전에 제 1 판독으로부터의 정보를 분석하기를 기다린다.
저장 장치 판독 인터페이스(106)는 고체 상태 저장 장치(150) 내 하나 이상의 셀들(예를 들면, 페이지)을 판독하기 위해 판독 임계치를 사용한다. 주어진 셀에 저장된 전압 및 지정된 판독 임계치에 의존하여, 하드 판독 값이 저장 장치 판독 인터페이스(106)에 의해 출력된다. 일 예시에서, 고체 상태 저장 장치(150)는 단일 레벨 셀들(SLC)을 포함하고, 여기서 각각의 셀은 단일 비트를 저장한다. 하나의 비트 맵핑에서, SLC 셀이 판독 임계치 아래인 전압을 가질 경우, 저장 장치 판독 인터페이스(106)는 1의 하드 판독 값을 출력하고; SLC 셀이 판독 임계치 위의 전압을 가질 경우, 저장 장치 판독 인터페이스(106)는 0의 하드 판독 값을 출력한다.
하드 판독 값들은 저장 장치 판독 인터페이스(106)로부터 소프트 판독 값들을 생성하는 소프트 정보 생성기(104)로 전달된다. 몇몇 실시예들에서, 소프트 정보 발생기(104)는 셀의 두 번의 판독들을 사용하여 셀에 대한 소프트 판독 값을 생성한다. 몇몇 실시예들에서, 소프트 판독 값은 로그 우도비(LLR)이고, 여기서 부호(예를 들면, + 또는 -)는 결정을 나타내고, 또는 하드 판독 값(예를 들면, 0 또는 1; 11, 10, 01, 또는 00 등) 및 크기는 상기 결정에서 확실성 또는 가능성을 나타낸다(예를 들면, 더 큰 크기는 연관된 결정에서 더 큰 확실성에 대응한다). 몇몇 LLR 예시들이 여기에 기술될 수 있지만, 여기에 설명된 기술들은 반드시 LLR 실시예들로 한정되지는 않는다.
소프트 판독 값들은 소프트 정보 생성기(104)로부터 에러 보정 디코더(102)로 전달된다. 에러 보정 디코더(102)는 소프트 정보를 입력하도록 구성되고 일 예시에서 소프트 입력 저밀도 패리티-검사(LDPC) 디코더이다. 예를 들며, 제 1 반복에서, 소프트 정보 생성기(104)는 페이지의 각각의 셀에 대한 LLR 값들을 에러 보정 디코더(102)에 전달하고, 코드워드는 페이지에 설치된다. 몇몇 실시예들에서, 코드워드는 단지 페이지의 일부분일 수 있다. 에러 보정 디코더(102)는 소프트 판독 값들상에 에러 보정 디코딩을 수행한다. 에러 보정 디코딩이 성공적인 경우, 디코딩된 정보가 출력된다(도시되지 않음).
에러 보정 디코딩이 성공적이지 않을 경우, 디코딩 실패 신호가 에러 보정 디코더(102)로부터 판독 임계치 생성기(108)로 전달된다. 이러한 신호는 재판독 신호로서 사용되고 고체 상태 저장 장치(150)의 재판독은 상이한 판독 임계치들의 세트들로 수행되고 디코딩은 상이한 소프트 판독 값들의 세트로 다시 시도된다.
상기에 기술된 바와 같이, 몇몇 실시예들에서, 셀의 두 개 이상의 판독들을 사용하여 소프트 판독 값이 생성된다. 다음의 도면은 이러한 기술을 더 상세하게 설명한다.
도 2는 다수의 판독 임계치들에서 복수의 판독들을 사용하여 소프트 판독 값을 결정하는 프로세스의 일 실시예를 도시하는 플로차트이다. 몇몇 실시예들에서, 도 1의 판독 프로세서(100)는 도시된 예시 프로세스를 수행한다.
200에서, 판독 임계치(T)가 수신된다. 몇몇 실시예들에서, 200에서 수신된 판독 임계치는 디폴트 및/또는 저장된 판독 임계치이다. 몇몇 실시예들에서, 200에서 수신된 판독 임계치는 최적의 판독 임계치(Topt) 또는 그의 추정치이다.
제 1 오프셋(x) 및 제 2 오프셋(y)이 202에서 결정된다. 몇몇 실시예들에서, 단계들(200, 202)은 도 1의 판독 임계치 생성기(108)에 의해 수행된다. 몇몇 실시예들에서, 디폴트 및/또는 저장된 값들이 202에서 사용된다. 몇몇 실시예들에서, 제 2 오프셋의 결정은 판독이 제 1 오프셋을 사용하여 수행된 후에 수행된다. 제 1 및 제 2 오프셋을 결정하기 위한 몇몇 예시들은 이하에 더 상세히 기술된다.
204에서, 제 1 판독은 개시 판독 임계치에서 제 1 오프셋(예를 들면, T1 = T+x)에 의해 오프셋되어 수행되어 제 1 하드 판독 값을 획득한다. 206에서, 제 2 판독은 개시 판독 임계치에서 제 2 오프셋(예를 들면, T2 = T-y)에 의해 수행되어 오프셋되어 제 2 하드 판독 값을 획득한다. 몇몇 실시예들에서, 단계들(204, 206)은 도 1의 저장 장치 판독 인터페이스(106)에 의해 수행된다. 반드시 제 1(제 2) 판독 임계치가 개시/최적 판독 임계치의 오른쪽(왼쪽)일 필요는 없다; 제 1 판독 임계치는 개시/최적 판독 임계치의 왼쪽일 수 있고, 제 2 판독 임계치는 개시/최적 판독 임계치의 오른쪽일 수 있다.
208에서, 소프트 판독 값은 제 1 하드 판독 값 및 제 2 하드 판독 값에 적어도 부분적으로 기초하여 생성된다. 몇몇 실시예들에서, 208에서 생성된 소프트 판독 값은 제 1 또는 초기 소프트 판독 값이다. 몇몇 실시예들에서, 3 회 이상의 판독들이 소프트 판독 값을 생성하기 위해 사용된다. 일 예시에서, 제 1 및 제 2 하드 판독 값들이 11인 경우, 1이 더 가능성 있다는 것을 나타내는 부호를 갖는 LLR이 출력된다. 상기 예시에 계속하여, 제 1 및 제 2 하드 판독 값들이 00인 경우, 0이 더 가능성 있다는 것을 나타내는 부호를 갖는 LLR이 출력된다; 모든 다른 제 1 및 제 2 하드 판독 값들(예를 들면, 01 또는 10)에 대하여, 비교적 낮은 확실성을 갖는 몇몇 다른 소프트 판독 값이 출력된다. 비트 할당과 제 1 및 제 2 판독 임계치들의 값들에 의존하여, 이들 시퀀스들 중 하나는 유효하고 다른 것은 그렇지 않다. 예를 들면, 제 1 판독 임계치가 제 2 판독 임계치보다 낮고 1이 더 낮은 전압들과 연관되고 0이 더 높은 전압들에 연관되는 경우, 01 시퀀스는 유효하다. 이는 01의 판독을 갖는 셀들이 낮은 확실성을 갖는 것을 반드시 의미하지는 않고, 이는 최적의 임계치 위치에 의존한다. 예를 들면, 최적의 임계치 위치를 가장 낮은 판독 임계치보다 훨씬 더 낮게 추정한 경우, 이들 셀들이 분포들의 교차점으로부터 상당히 멀리 떨어져 있기 때문에 그들은 실제로 높은 확실성을 갖는다. 몇몇 실시예들에서, 단계 208은 소프트 정보 생성기(예를 들면, 도 1에서 104)에 의해 수행된다.
몇몇 실시예들에서, 208에서 소프트 판독 값을 생성하는 것은 셀이 어느 빈에 속하는지를 추적하는 것을 포함한다. 그의 몇몇 실시예들은 이하에 더 상세히 기술된다.
몇몇 실시예들에서, 판독 프로세서(예를 들면, 도 1의 판독 프로세서(100))는 특정 조건들 하에서 도 2에 기술된 프로세스를 사용하도록 구성된다. 몇몇 실시예들에서, (예를 들면, 제 1) 소프트 판독 값을 획득하기 위해 다수의 판독들을 수행하는 것은, 채널 대역폭이 높기 때문에 및/또는 NAND 디바이스들에 대해 이용된 고 레벨의 병렬화 때문에 처리량에서 어떤 감소를 초래하지 않는다. 몇몇 실시예들에서, 에러 보정 디코더가 단일 판독만을 사용하여 획득되거나 생성된 소프트 코드워드를 (아마도) 성공적으로 디코딩할 수 없을 것임이 미리 알려진다. 예를 들면, 시도된 수 개의 마지막 코드워드들에 대하여, 그들 중 일정 퍼센티지 이상이 디코딩에 실패한 경우, 판독 프로세서는 도 2에 도시된 프로세스를 사용하도록 구성될 수 있다. 또는, 이들 페이지들 또는 블록들에 대해 과거에 디코딩이 어려웠기 때문에 특정 페이지들 또는 블록들이 "불량"하다는 것이 알려질 수 있다. 불량의 위치들은 표에서 추적될 수 있고 이들 불량 페이지들 또는 블록들에 대한 추가의 판독들은 이러한 기술을 사용할 수 있다. 몇몇 실시예들에서, 판독 프로세서(예를 들면, 도 1에서 100)는 하나 이상의 이들 조건들을 찾도록 구성되고 이들이 찾아진 경우, 판독 프로세서는 도 2에 도시된 프로세스로 전환한다.
몇몇 실시예들에서, 208에서 소프트 판독 값을 생성하는 것은 (예를 들면) 01과 10 사이를 구별하는 것 및 이들 상이한 시퀀스들에 대해 상이한 소프트 판독 값들을 출력하는 것을 포함한다. 예를 들면, 1이 더 낮은 전압 범위와 연관되고, 0이 더 높은 전압 범위와 연관되는 SLC 시스템들에서, 제 1 판독은 개시 판독 임계치의 오른쪽에 대한 것이고, 제 2 판독은 개시 판독 임계치의 왼쪽에 대한 것이고, 0의 제 1 하드 판독 값 및 1의 제 2 하드 판독 값은 그 밖의 것이다. 이는 하드 판독 값들의 시퀀스가 상기 셀에 의해 저장된 전압이 상당히 큰 양으로 변했다는 것을 나타내기 때문이다. 이는 예상외의 결과이고, 몇몇 실시예들에서, 이것이 발생할 때, 삭제(예를 들면, 0의 LLR)와 연관된 소프트 판독 값이 출력된다.
반대로, 제 1 하드 판독 값이 1이고 제 2 하드 판독 값이 0인 경우, 하드 판독 값들의 상기 시퀀스는 예외적이지도 및/또는 이상하지도 않다. 이는 단순히 셀에 의해 저장된 전압이 결정되지 않은 것(즉, 두 개의 판독 임계치들 사이)을 나타낸다. 이러한 조건(예를 들면, 1의 제 1 하드 판독 값 및 0의 제 2 하드 판독 값)에서 셀에 저장된 정보는 더 좋은 품질일 수 있고 및/또는 다른 조건(예를 들면, 0의 제 1 하드 판독 값 및 1의 제 2 하드 판독 값)에서 셀에 저장된 정보보다 더 유용한 정보를 가지고, 그래서 더 높은 신뢰성이 바람직할 수 있다. 몇몇 실시예들에서, 11, 00, 10은 유효 판독 시퀀스들이라고 불리고, 01은 무효 판독 시퀀스라고 불린다. 몇몇 실시예들에서, 11 및 00은 일치하는 판독 시퀀스들이라 하고 01 및 10은 일치하지 않는 판독 시퀀스들이라고 불린다.
몇몇 실시예들에서, 고체 상태 저장 장치(150)는 다중 레벨 셀들(MLC)을 포함하고 각각의 셀은 두 개 이상의 비트들을 저장한다. 도 1 및 도 2가 SLC 예시들을 도시하지만, 여기에 설명된 기술들은 SLC 실시예들로 한정되지 않는다.
도 3은 최적의 판독 임계치로부터의 오프셋되는 제 1 판독 임계치 및 제 2 판독 임계치의 실시예를 도시하는 도면이다. 이러한 예시에서, 분포(300)는 1이 기록된 셀들(예를 들면, 페이지에서)과 연관된다. 분포(302)는 0이 기록된 셀들과 연관된다. 도 3 및 여기에서 다른 예시들이 더 낮은 전압 값들에 연관된 1 및 더 높은 전압 값들에 연관된 0을 도시하지만, 전압 범위들에 대한 비트 값들의 임의의 할당이 사용될 수 있다. 도 2의 프로세스가 수행될 때, 분포(300) 및 분포(302)가 반드시 예시 프로세스를 수행하는 판독 프로세서에 알려질 필요가 없다는 것을 주의하라. 분포(300) 및 분포(302)는 값들(304, 306, 308)에 대한 그들의 관계를 예시하기 위해 도 3에서 도시된다.
최적의 판독 임계치(306)는 분포(300)가 분포(302)와 교차하는 전압이고; 몇몇 실시예들에서, 도 2의 200에서 수신된 판독 임계치는 최적의 판독 임계치(또는 최적의 판독 임계치의 추정치)이다. 다양한 기술들이 Topt(306)을 추정하거나 생성하기 위해 사용될 수 있다.
제 1 판독 임계치(308(T1))는 최적의 판독 임계치(306)(Topt)의 오른쪽으로 x만큼의 오프셋된다. 제 2 판독 임계치(308(T2))는 최적의 판독 임계치(306)(Topt)의 왼쪽으로 y만큼의 오프셋된다. 몇몇 실시예들에서, 308에서 제 1 판독은 제 2 오프셋(y)이 결정되거나 생성되기 전에 분석된다.
도 4는 다양한 기술들을 사용하여 생성된 소프트 판독 값들을 비교하는 성능 차트들의 일 실시예를 도시하는 도면이다. 도시된 예시에서, 그래프(400)는 두 개의 상이한 소프트 판독 값 생성 기술들에 대한 섹터 실패 레이트들(SFR)을 보여준다. 곡선(402)에서, 처리된 소프트 판독 값은 최적의 판독 임계치에서 판독으로부터 및 또한 최적의 판독 임계치의 오른쪽에 대한 판독으로부터 획득된 하드 판독 값들을 사용하여 생성된다. 곡선(404)은 도 2에 도시된 소프트 정보 생성 기술과 연관된다. 곡선(404)에서, 처리된 소프트 판독 값은 최적 판독 임계치의 오른쪽에 대한 판독 및 또한 최적 판독 임계치의 왼쪽에 대한 판독으로부터 획득된 하드 판독 값들을 사용하여 생성된다.
그래프(400)에 도시된 바와 같이, 곡선(404)의 SFR은 곡선(402)의 SFR보다 적다. 곡선들(402, 404)과 연관된 두 개의 기술들은 그들의 소프트 판독 값들을 생성하기 위해 동일한 횟수의 판독들을 사용하고, 그래서 성능 차이는 곡선(402)에 비하여 곡선(404)에 대한 제 1과 제 2 판독들 사이에 더 큰 분리 때문이다(적어도 부분적으로).
그래프(450)는 두 개의 기술들에 의해 제공된 소프트 판독 값들을 사용하여 코드워드를 처리하도록 요구된 LDPC 반복들의 평균 횟수를 도시한다. 곡선(452)은 다른 기술(또한 곡선(402)에 관련된)과 연관되고 곡선(454)은 도 2에 도시된 기술(또한 곡선(404)에 관련된)과 연관된다. 곡선(452)와 연관된 기술은 코드워드를 디코딩하기 위해 평균적으로 더 많은 LDPC 반복들을 요구하고, 이는 상기 기술을 사용하여 생성된 소프트 정보의 품질이 곡선(454)과 연관된 품질보다 더 나쁘다는 것을 나타낸다. 더 낮은 전력이 소비될수록, 더 많은 페이지들 또는 블록들이 동일한 양의 시간에 출력될 수 있는 등이기 때문에 평균적으로 더 적은 LDPC 반복들이 바람직하다.
도 2을 참조하면, 몇몇 실시예들에서, 기술들은 202에서 제 1 및 제 2 오프셋들을 지능적인 방식으로 결정하기 위해 사용된다. 다음의 도면은 하나의 이러한 실시예를 도시한다.
도 5는 데이터의 사용 기간 및 저장 장치의 사용 기간에 적어도 부분적으로 의존하여 선택된 오프셋의 일 실시예를 도시하는 도면이다. 몇몇 실시예들에서, 프로세스는 제 1 오프셋 및/또는 제 2 오프셋을 결정하기 위해 도 2의 단계 202에서 사용된다. 고체 상태 저장 장치에서, 정보는 전압의 형태로 저장된다. 더 긴 시간 동안 저장된 데이터는 더 짧은 시간 동안 저장된 데이터보다 많은 전압을 잃는 경향이 있다. 또한, 여러 번 삭제되었던 고체 상태 저장 장치는 여러 번 삭제되지 않았던 고체 상태 저장 장치보다 더 누설되기 쉬운(전압에 관하여) 경향이 있다. 고체 상태 저장 장치를 삭제하는 것은 고체 상태 저장 장치의 전기 유전체에 파괴를 야기한다. 편리함과 간결성을 위해, 용어 "저장 장치의 사용 기간"이 이후 사용되지만, 상기 용어는 저장 장치가 삭제된 횟수를 반영하는 것으로 이해된다.
저장 장치의 사용 기간 및/또는 데이터의 사용 기간은 (예를 들면, 저장 장치에서 특정 페이지 또는 블록과 연관된) 분포들을 이동시키고 넓어지게 할 수 있다. 그래프(550)는 여러 이동된 분포들을 도시하고, 그의 각각은 상이한 양의 전압 누설과 연관된다. 이러한 예시에서, 분포들(552a, 552b)은 최대 누설량에 연관되고(예를 들면, 데이터가 매우 오래되고 및/또는 저장 장치가 매우 오래되었기 때문에), 분포들(554a, 554b)은 적당한 누설량과 연관되고, 분포들(556a, 556b)은 최소 누설량과 연관되고, 분포들(558a, 558b)은 누설이 없는 것과 연관된다(예를 들면, 데이터가 새로운 것이고 및/또는 저장 장치가 새로운 것이기 때문에).
다수의 가능한 이동된 분포들을 설명하기 위해, 표(500)는 오프셋을 선택하기 위해 사용된다. 표(500)에서 상부 행은 여러 사용 기간들의 저장 장치를 열거하고(예를 들면, 새로운 저장 장치, 다소 오래된 저장 장치, 오래된 저장 장치, 및 매우 오래된 저장 장치), 표(500)에서 가장 왼쪽 열은 여러 사용 기간들의 저장된 데이터를 열거한다(예를 들면, 새로운 데이터, 다소 오래된 데이터, 오래된 데이터, 및 매우 오래된 데이터). 저장 장치의 사용 기간 및 데이터의 사용 기간에 기초하여, 적절한 제 1 오프셋이 표(500)로부터 선택된다. 오프셋(xno _ leakage)은 분포들(558a, 558b)에 의해 경험되거나 그에 포함된 이동량을 고려하고(예를 들면, 오프셋(xno _ leakage)이 개시 판독 임계치의 오른쪽에 대한 xno _ leakage에서 판독이 이동된 분포(558a 및/또는 558b)에 관하여 원하는 위치가 되게 하도록), 오프셋(xmin _ leakage)은 분포들(556a, 556b)에서 이동량을 고려하고, 오프셋(xmod _ leakage)은 분포들(554a, 554b)에서 이동량을 고려하고, 오프셋(xmax _ leakage)은 분포들(552a, 552b)에서 이동량을 고려한다. 이러한 예시에서, xmax_leakage > xmod _ leakage > xmin _ leakage > xno _ leakage.
몇몇 실시예들에서, 저장 장치의 사용 기간이 결정될 수 있도록 삭제들의 횟수가 기록된다. 몇몇 실시예들에서, 저장 장치 시스템에 의해 또는 몇몇 다른 엔티티(예를 들면, 펌웨어 또는 몇몇 다른 상위 레벨 애플리케이션)에 의해 추적되기 때문에, 데이터의 사용 기간이 알려진다. 몇몇 실시예들에서, 데이터의 사용 기간은 페이지 레벨 또는 (더 메모리 효율적인 기술이 바람직한 경우) 블록 레벨상(또는 수퍼 블록 레벨 또는 몇몇 다른 레벨)에서 추적되고, 상기 블록의 모든 페이지들은 동일한 사용 기간 정보를 사용한다.
도 2에서 단계(202)를 참조하면, 몇몇 실시예들에서, 저장 장치의 사용 기간 및 데이터의 사용 기간은 제 2 오프셋(y)을 결정하기 위해 사용된다. 예를 들면, 표(500)와 유사한 제 2 오프셋들의 표가 존재할 수 있다. 대안적으로, 몇몇 다른 기술(이하에 더 상세히 기술되는 것 중 하나)가 사용된다.
도 6은 제 1 판독으로부터의 정보를 사용하여 제 2 오프셋을 선택하기 위한 일 실시예를 도시하는 도면이다. 도시된 예시에서, 복수의 가능한 제 1 오프셋들(600)이 존재하고 그들 중 하나(본 예시에서, xmin _ leakage(602))가 제 1 오프셋으로 사용되도록 선택된다. 몇몇 실시예들에서, 도 5에서 사용된 프로세스는 제 1 오프셋(602)을 선택하도록 사용된다.
도면(630)에서, 제 1 판독은
Figure 112014059655807-pct00001
에서 수행되고, T는 예상된 분포들(632b, 634b)의 교차점이다. 예상된 분포들(632b, 634b)(점선으로 도시됨)은 일 그룹의 셀들(예를 들면, 페이지 또는 블록)이 가질 것으로 예상되는 분포들이다. 실제로, 분포들(632a, 634a)(실선으로 도시됨)은 상기 그룹의 셀들에 대한 실제 분포들이다. 상기 그룹의 셀들의 분포들이 실제로 632a 및 634a(632b, 634b가 아님)을 따르기 때문에, 제 1 판독은 실제로 실제 분포들(632a, 634a)의 교차점의 오른쪽에 대해 x'이다.
실제 분포들(632a, 634a)과 예상한 분포들(632b, 634b) 사이의 차이에 대해 보상이 행해지지 않는 경우, 제 2 판독이
Figure 112014059655807-pct00002
에서 발생할 것이고, T는 예측된 분포들(632b, 634b)의 교차점이고, ymin _ leakage는 xmin _ leakage에 대응하고 및/또는 제 1 판독에 대칭적인 제 2 판독을 생성할 것이 예측된다. 불행히도, 보상되지 않은 판독 임계치는 실제 분포들(632a, 634a)의 교차점에 매우 가깝고 제 1 판독 임계치(실제 분포들(632a, 634a)의 교차점에 관한)와 대칭적이 아니다. 보상된 제 2 판독 임계치 T2 = T-y'에(또는 적어도 그에 가깝게) 있는 제 2 판독을 갖는 것이 더 바람직할 수 있고, T는 예측된 분포들(632b, 634b)의 교차점이다. 보상된 제 2 판독 임계치에 대한 이전 수식은 T를 사용하여 표현되었다는 것을 주의하라; (예를 들면, 도 2의 단계(200)에서 수신된) 수신된 개시 판독 임계치에 대응할 수 있고 및/또는 실제 분포들(632a, 634a)의 교차점을 결정할 필요를 제거하기 때문에, 예측된 분포들(632b, 634b)의 교차점을 사용하는 것이 바람직할 수 있다.
이러한 예시에서, 630에서 도시된 보상된 제 2 판독 임계치(또는 적어도 그에 가까운)에서 제 2 판독을 얻기 위해, 1들 또는 0들의 측정된 퍼센티지는 예상된 퍼센티지에 대해 비교된다. 예를 들면, 예측된 분포들(632b, 634b)을 사용하여,
Figure 112014059655807-pct00003
에서 제 1 판독은 1들의 52%의 및 0들의 48%의 예측된 퍼센티지에 대응할 수 있다(제 1 판독이 예측된 분포들(632b, 634b)의 교차점의 약간 오른쪽에 있고 그래서 0들보다 1들이 약간 많게 예측되기 때문에, 예측된 퍼센티지들은 50/50이 아니다).
표(660)에서, 가능한 제 2 오프셋들의 각각은 1들의 측정된 퍼센티지의 각각의 범위와 연관된다. (이러한 예시가 1들의 퍼센티지를 사용하지만, 기술이 반드시 그렇게 한정되지는 않고 몇몇 실시예들은 0들의 퍼센티지를 사용한다.) 측정된 퍼센티지가 예측된 퍼센티지에 비교적 가까운 경우(예를 들면, 52%의 예측된 퍼센티지에 대해 1들의 범위(47%, 56%) 내), 선택된 제 1 오프셋에 대응하는 제 2 오프셋이 선택된다(예를 들면, 이러한 예시에서 ymin _ leakage). 이는 1들 또는 0들의 측정된 퍼센티지가 예측된 퍼센티지와 유사할 때 실제 분포들이 예측된 분포들에 상당히 유사할 것으로 생각되기 때문이다.
더 큰 제 2 오프셋에 대하여 1들의 예상된 퍼센티지보다 크게 보상될 필요가 있다. 이와 같이, 표(660)에서, 1들의 예측된 퍼센티지보다 더 높은 것은 ymod_leakage(666)이 선택되게 하거나(본 예시에서, 1들의 측정된 퍼센티지가 (57%, 66%)의 범위내에 있는 경우) 또는 ymax _ leakage(668)이 선택(본 예시에서, 1들의 측정된 퍼센티지가 67% 이상인 경우)되게 한다
더 작은 제 2 오프셋에 대하여 1들의 예상된 퍼센티지보다 더 적게 보상된다(그래프 630에 도시되지 않음). 표(660)에서, 46% 이하의 1들의 퍼센티지는 ymod_leakage(666)이 선택되게 한다.
이러한 특정 예시에서, 1들 중 측정된 60%는 ymod _ leakage(666)가 제 2 (보상된) 오프셋으로서 선택되게 하고; 이후 제 2 판독은 T-ymod _ leakage에서 수행되고, T는 (예를 들면, 도 2의 단계(200)에서 수신된) 개시 판독 임계치이다. (예측 및 실제 분포들 사이의 차이들에 대하여 적어도 부분적으로 보상하는) T-ymod _ leakage에서 판독하는 것은 보상되지 않은 제 2 판독 임계치(예를 들면, T-ymin _ leakage)에서의 제 2 판독보다 더 유용한 정보를 제공할 수 있다.
몇몇 실시예들에서, 표(660)는 사전에 준비된 복수의 표들 중 하나이다. 예를 들면, 시스템은 xno _ leakage(604)가 제 1 오프셋으로서 선택될 때에 대응하는 표(도시되지 않음)를 저장할 수 있다. 이러한 표는 yno _ leakage 및 다른 잠재적인 제 2 오프셋들과 연관된 1들의 47% 내지 56% 및 대응하는 퍼센티지들을 가질 수 있다. 또 다른 저장된 표는 제 1 오프셋으로서 xmod _ leakage(606)의 선택에 대응하는 등이다.
몇몇 실시예들에서, 표 대신 식은 T2의 위치를 생성하거나 얻기 위해 사용된다. 예를 들면, R1 /0(T1)이 T1에서 판독할 때 획득된 0들에 대한 1들의 비를 표시하는 것으로 하고, R1 /0(g)이 저장된 데이터에서(이는 어딘가에 저장될 수 있다) 0들에 대한 1들의 실제 비를 나타내는 것으로 하자. 이 예시에서 T2는 몇몇 미리 결정된 α 및 β에 대하여
Figure 112014059655807-pct00004
형태의 수식을 사용함으로써 획득된다. 이는 이상적인 제 1 판독 위치가 데이터의 사용 기간 및 저장 장치의 사용 기간의 지식이 없는 것과 같은 이유들 때문에 획득될 수 없거나, 또는 T1이 특정 위치에 고정될 때 특히 유용하다. 몇몇 소프트 정보 생성 기술들은 코드워드가 성공적으로 디코딩될 때까지 모든 이전 하드 판독 값들을 저장한다. 후속 기술은 모든 이전 하드 판독 값들을 저장할 필요를 제거하는 소프트 판독 값들을 생성하기 위한 메모리 효율적 방식을 설명한다. 이러한 기술은 상기 기술된 판독 기술에 독립적이고 몇몇 실시예들에서 다른 판독 기술들에 의해 또는 그와 함께 사용된다.
도 7a는 빈들을 사용하여 소프트 판독 값들을 생성하는 프로세스의 일 실시예를 도시하는 플로차트이다. 몇몇 실시예들에서, 상기 프로세스는 도 1의 소프트 정보 생성기(104)에 의해 수행된다. 도 7a에 도시된 프로세스는, 다음 판독 임계치를 선택하기 위한 기술들 및/또는 다음 판독 임계치가 주어지면(예를 들면, 되읽기 값들을 사용하여 그때 그때마다 또는 실제 되읽기 값들이 사용되지 않을 때 미리), 소프트 판독 값들을 생성하는 기술들과 같은, 다양한 판독 기술들과 함께 사용될 수 있다. 몇몇 실시예들에서, 도 7a는 예를 들면 에러 보정 디코더가 실패하고 및/또는 하나 이상의 소프트 판독 값들의 새로운 세트가 하나 이상의 셀들의 한 세트에 바람직할 때마다, 바람직하게 반복될 수 있다.
700에서, 저장 장치는 (N+1)번째 판독 임계치에서 판독된다. 다시 말해서, (N+1)번째 판독은 저장 장치상에 수행되고 있다. 몇몇 실시예들에서, 단계 700은 도 1의 저장 장치 판독 인터페이스(106)에 의해 수행된다. 다음의 판독 임계치를 선택하거나 결정하기 위한 임의의 적절한 기술이 사용될 수 있다. 예를 들면, 도 2에 도시된 프로세스는 제 1 및/또는 제 2 판독 임계치를 획득하기 위해 사용될 수 있다.
702에서, (N+1)번째 판독 임계치(또한 xN +1이라고 불림)는 하나 이상의 저장된 판독 임계치들의 한 세트에 저장된다. 저장된 판독 임계치들은 셀들에 대해 빈 할당들을 갱신하기 위해 후에 사용될 수 있다. 몇몇 실시예들에서, 도 1의 판독 임계치 생성기(108)는 소프트 정보 생성기(104)에 의해 미래의 사용을 위해 (N+1)번째 판독 임계치를 저장하도록 구성된다.
셀과 연관된 오래된 빈은 704에서 얻어지고 오래된 빈은 706에서 새로운 빈으로 맵핑된다. 708에서, 새로운 빈에 대응하는 소프트 판독 값이 셀에 할당된다. 몇몇 실시예들에서, 708에서 소프트 판독 값은 LLR 값들을 포함한다. 예를 들면, 빈
Figure 112014059655807-pct00005
과 연관된 LLR 값은:
Figure 112014059655807-pct00006
로 주어질 수 있다.
몇몇 실시예들에서, 단계(708)는, 예를 들면, 상기 셀에 대한 가장 최근의 하드 판독 값 및/또는 상기 셀에 대한 하나 이상의 이전 하드 판독 값들에 기초하여, 그때 그때마다 소프트 판독 값들을 계산하는 단계를 포함한다. 몇몇 실시예들에서, 단계 708은 하나 이상의 저장된 표들을 사용하는 단계를 포함한다. 예를 들면, 시스템은 한 세트의 저장된 표들을 보유할 수 있고, 각각의 표는 상이한 수의 판독들 또는 빈들과 연관된다. 이들 표들은 사전에 준비되거나 저장될 수 있다(예를 들면, 임의의 판독들이 수행되기 전에). 단계들(704, 706, 708)의 몇몇 예시들이 이하에 더 상세하게 기술된다.
710에서, 셀에 대한 새로운 빈이 저장된다. 몇몇 실시예들에서, 저장된 새로운 빈은 에러 보정 디코딩이 실패하거나 및/또는 다른 소프트 판독 값이 상기 셀에 대하여 바람직한 경우에 다음 반복(예를 들면, 704에서)에서 사용된다. 더 많은 셀들이 있는지가 712에서 결정된다. 더 많은 셀들이 있는 경우, 다음 셀과 연관된 오래된 빈 식별자는 704에서 획득된다. 그렇지 않은 경우, 프로세스는 종료된다. 몇몇 실시예들에서, 단계들(704, 706, 708, 710)은 도 1의 소프트 정보 생성기에 의해 수행된다.
도 7b는 오래된 빈을 새로운 빈으로 맵핑하는 프로세스의 SLC 실시예를 도시하는 플로차트이다. 몇몇 실시예들에서, 도 7a의 단계(706)는 도 7b의 프로세스를 사용한다. 750에서, (N+1)번째 판독이 주어진 빈에 속하는지가 결정된다. 복수의 인접하지만 중첩하지 않는 빈들 중 단 하나는 (N+1)번째 판독에 의해 분리된다. 빈이 (N+1)번째 판독에 의해 분할된 것이 아닌 경우, 빈이 (N+1)번째 판독의 왼쪽에 대한 것인지가 752에서 결정된다. 그러한 경우, 빈
Figure 112014059655807-pct00007
(즉, N번째 판독 후 i번째 빈)은 754에서
Figure 112014059655807-pct00008
(즉, (N+1)번째 판독 이후의 i번째 빈)으로 맵핑된다. 그렇지 않은 경우, 빈
Figure 112014059655807-pct00009
은 765에서
Figure 112014059655807-pct00010
으로 맵핑된다. 754 및 756에서 맵핑들은 빈 갯수 또는 빈 인덱스(즉,
Figure 112014059655807-pct00011
에서 x항)가 변할지라도 빈 경계들을 보존한다는 것을 주의하라. 다시 말해서, 이들 빈들은 왼쪽 및 오른쪽 빈 경계들을 보존하는 새로운 빈들로 맵핑된다.
(N+1)번째 판독이 750에서 주어진 빈에 속하는 경우, 빈은 757에서 (N+1)번째 판독 임계치에서 반으로 분할된다. 758에서 (N+1)번째 판독 임계치의 왼쪽의 절반인지가 결정된다. 그러한 경우, 760에서 새로운 빈
Figure 112014059655807-pct00012
이 된다. 그렇지 않은 경우(즉, (N+1)번째 판독 임계치의 오른쪽에 대한 것이 경우), 762에서 새로운 빈
Figure 112014059655807-pct00013
이 된다. 다시 말해서, (N+1)번째 판독이 속하는 빈은 (N+1)번째 판독 임계치에서 두 개로 분할된다.
764에서 더 많은 빈들이 존재하는지가 결정된다. 만약 그러한 경우, 프로세스는 766에서 다음 빈으로 진행하고 750에서 (N+1)번째 판독이 상기 빈에 속하는지가 결정된다.
도 8은 새로운 빈들로 맵핑되는 오래된 빈들의 일 실시예를 도시하는 도면이다. 도 8에서, 도 7b에 도시된 빈 맵핑이 사용된다. 도표(800)는 4번째 판독 전의 일 세트의 빈들을 도시한다. 빈
Figure 112014059655807-pct00014
(802)은 (-∞, 9)의 범위를 갖고, 빈
Figure 112014059655807-pct00015
(804)은 [9, 15)의 범위를 갖고, 빈
Figure 112014059655807-pct00016
(806)은 [15, 20)의 범위를 갖고, 빈
Figure 112014059655807-pct00017
(808)은 [20, ∞)의 범위를 갖는다. 그룹내 셀들의 각각(예를 들면, 한 페이지의 셀들)은 빈들 중 하나에 속하지만, 시스템은 주어진 셀이 어떤 특정 전압을 갖는지를 반드시 추적하거나 기록하지는 않는다. 여기에 사용된 값들(예를 들면, 판독 임계치들, 빈 범위들, 판독들의 횟수들, 등)은 단순히 예시적이고 한정하는 것이 의도되지 않는다.
빈들 및 그들의 경계들을 나타나는 더 일반적인 방식은:
Figure 112014059655807-pct00018
이고, 여기서
Figure 112014059655807-pct00019
는 오름차순(예를 들면,
Figure 112014059655807-pct00020
)으로 정렬된 제 1의 N 개의 판독 임계치들이다. 판독들은 반드시 상기 순서로 수행되는 것은 아니다.
표(810)는 셀들(A 내지 D)에 대하여 제 4 판독으로부터 오래된 빈들(예를 들면, 제 4 판독 전) 및 하드 판독 값들을 보여준다. 셀 A는 빈
Figure 112014059655807-pct00021
(802)내에 있고, 셀들(B, C)은 빈
Figure 112014059655807-pct00022
내에 있고, 셀 D는 빈
Figure 112014059655807-pct00023
내에 있다. 제 4 판독이 빈
Figure 112014059655807-pct00024
에 속하기 때문에, 셀들(B, C)에 대한 하드 판독 값들은 셀이 오래된 빈
Figure 112014059655807-pct00025
의 왼쪽 부분에 속하는지 오른쪽 부분에 속하는지를 결정하기 위해 사용된다. 이러한 정보는 다른 빈들의 셀들에 대해 요구되지 않고 따라서 셀들(A, D)에 대해 표(810)에 제시되지 않았다.
도면(830)은 제 4 판독 후의 새로운 빈들 및 그들의 범위들을 보여준다: 빈
Figure 112014059655807-pct00026
(832)은 (-∞, 9)의 범위를 갖고, 빈
Figure 112014059655807-pct00027
(834)은 [9, 13)의 범위를 갖고, 빈
Figure 112014059655807-pct00028
(836)은 [13, 15)의 범위를 갖고, 빈
Figure 112014059655807-pct00029
(838)은 [15, 20)의 범위를 갖고, 빈
Figure 112014059655807-pct00030
(840)은 [20, ∞)의 범위를 갖는다.
표(850)는 셀들(A 내지 D)과 연관된 새로운 빈들을 보여준다. 빈
Figure 112014059655807-pct00031
(셀 A가 속하는) 및 빈
Figure 112014059655807-pct00032
(셀 D가 속하는)는 제 4 판독에 의해 분할되지 않는다. 그러나, 셀들(B, C)은 4번째 판독에 의해 분할되는 빈에 있다. 셀 B가 판독의 왼쪽에 대한 것이고 셀 C가 상기 기술된 비트 맵핑에 기초하여 판독의 오른쪽에 대한 것이기 때문에, 셀 B는 빈
Figure 112014059655807-pct00033
에 할당되고 셀 C는
Figure 112014059655807-pct00034
에 할당된다.
오래된 빈으로부터 새로운 빈으로의 이러한 맵핑의 더 정규적인 표현은:
Figure 112014059655807-pct00035
이고, 여기서
Figure 112014059655807-pct00036
는 j번째 판독 후의 i번째 빈(본 예시에서 왼쪽으로부터 오른쪽으로 카운트함)이고 y는 (N+1)번째 판독 임계치(예를 들면, 도표(800)에서 13V)이다.
이러한 예에서, 시스템은 한 세트의 테이블들을 저장하고, 각각의 테이블은 일정한 수의 판독들 또는 빈들과 연관된다. 표(860)는 4 개의 빈들(즉, 3 개의 판독들)과 연관되고, 표(862)는 5 개의 빈들(즉, 4 개의 판독들)과 연관된다. 적절한 수의 빈들/판독들을 갖는 표는 시스템이 반복중인지 또는 판독중인지에 의존하여 선택된다. 표(862)를 사용하여, 셀들(A 내지 D)은 -12, -6, -1, 및 4의 제 4 판독 후에 각각 소프트 판독 값들을 받는다.
이러한 예에서, 표들(860, 862)은 임의의 특정 빈 범위 또는 경계에 속하지 않는다. 예를 들면, 시스템은 (-∞, 1), [1, 3), [3, 5), 및 [5, ∞)의 범위인 빈에 대하여, 또한 (-∞, 9), [9, 15), [15, 20), 및 [20, ∞)의 범위인 빈에 대하여 모두 표(860)를 사용한다. 몇몇 실시예들에서, 그때 그때마다 소프트 판독 값을 계산하는 것보다 더 빠르고 및/또는 계산적으로 더 쉽기 때문에, 소프트 판독 값을 생성하기 위해 표를 사용하는 것이 바람직하다. 예를 들면, 몇몇 다른 기술들은 상기 셀에 대한 소프트 판독 값을 생성하기 위해 주어진 셀에 대한 모든 이전 (예를 들면, N 개의) 하드 판독 값들의 저장을 요구한다. 4k 셀들을 포함하는 페이지가 처리되고 있고 10 회의 판독들이 이미 수행되었을 경우, 이는 40k 비트를 저장하는 것을 요구한다. 셀에 대한 모든 이전 하드 판독 값들을 사용하는 것이 반드시 요청된 추가의 저장 장치 및/또는 처리를 보장하기에 충분히 양호한 품질의 소프트 판독 값을 생성하는 것은 아니다. 주어진 수의 빈들 및 판독들과 연관된(그러나 특정 빈 범위들 및 경계들로 한정되지 않는) 표들에 저장된 미리 계산된 LLR 값들을 사용하는 것은 많은 저장 장치 및/또는 처리를 요구하지 않고 유사한 또는 충분한 품질 결과들을 생성할 수 있다.
몇몇 실시예들에서, 빈 할당은 빈 식별자(예를 들면, 빈의 하위 오른쪽 인덱스)를 사용하여 시스템에서 추적 및/또는 관리된다. 몇몇 실시예들에서, 빈 할당은 소프트 판독 값들 자체를 사용하여 추척되고 및/또는 관리된다. 예를 들면, 표(810)의 오래된 빈 열은 이러한 실시예들에서 -10, -6, -6, 및 3이고 표(850)의 새로운 빈 열은 -12, -6, -1, 및 4이다.
빈 식별자들을 사용하는 것이 빈 할당들을 추적하기 위해 소프트 판독 값들 자체를 사용하는 것보다 더 적은 저장 장치를 요구할 수 있지만, 빈 할당을 추적하기 위해 후자의 기술을 사용하는 것에 몇몇 이점들이 있다. 예를 들면, 갱신된 LLR들이 어떤 이유에서든지 저장될 필요가 있을 경우, 추적할 빈 갯수들을 사용하는 것이 빈들 갯수 및 LLR들 모두의 중복된 저장을 요구하기 때문에, 소프트 판독 값들을 사용하여 빈 할당 그 자신들을 추적하는 것이 바람직할 수 있다. 일 예시 시나리오에서, 시스템이 동시에 상이한 페이지들에 대한 판독 요청들을 서비스하고 있지만 단지 하나의 디코더(예를 들면, 도 1의 에러 보정 디코더(102))만 있는 경우, LLR 갱신 프로세스(예를 들면, 도 1의 소프트 정보 생성기(104))는 디코더가 자유로워지기를 기다리는 동안 상이한 페이지들에 대한 갱신된 LLR들을 획득하기 위해 먼저 구동될 수 있다. 이는 시스템 처리량을 증가시키지만, 갱신된 LLR들은 이들이 디코더에 전달될 수 있을 때까지 저장될 필요가 있고, 이는 LLR 값들 자체를 사용하여 빈 할당을 추적하는 것을 매력적으로 만든다. 이러한 예가 보여주는 바와 같이, 시스템 구성(시스템이 정보를 추적하는 방법의 선택과 같은)은 시스템 요구 조건들, 설계 제한들, 및/또는 임의의 절충들에 따른다.
몇몇 실시예들에서, 소프트 판독 값들이 반복적으로 또는 되풀이하여 생성될 때 빈들은 통합된다. 몇몇 실시예들에서, 분포 교차점으로부터 비교적 멀리 떨어진 인접한 빈들이 병합된다. 이러한 빈들의 병합은 저장될 필요가 있는 정보의 양을 감소시킬 수 있지만, 시스템이 교차점으로부터 너무 멀리 떨어진 빈들에 대한 LLR 값들에서 작은 변경들에 영향을 받지 않기 때문에, 성능(에러 레이트들 또는 에러 보정 디코더 반복들에 의해 측정되는) 열화는 무시될 수 있다. 몇몇 실시예들에서, 시스템은 모든 판독 임계치들을 저장해서 시스템은 어디에 빈 경계들이 있는지 및 어느 빈들이 병합될 수 있는지를 안다. 몇몇 실시예들에서, 빈 병합은 빈 병합이 에러 보정 디코더 또는 다른 구성요소를 바람직하지 않은 상태로 놓을 때에 "적절하게" 수행되도록 오래된 빈 식별자를 새로운 빈 식별자로 맵핑(도 7a의 706에서)하는 동안 수행된다.
몇몇 실시예들에서, 인접한 빈들이 동일한 LLR들을 할당받는 것이 가능하고, 따라서, 이들 빈들을 통합하는 것은 중복성을 제거하고 저장 대역폭을 감소시킬 수 있다. 즉, 예를 들면, 양자화 및/또는 포화가 고려될 필요가 있는 고정점 시스템들에 대한 문제이다. 몇몇 실시예들에서, 빈 병합은 영향받은 빈들이 분포 교차점으로부터 비교적 멀리 떨어져 있는 경우 허용되고 및/또는 수락될 수 있다. 몇몇 실시예들에서, 개시 판독 임계치(예를 들면, 도 2에서 단계(200)에서 수신된) 및/또는 최적의 판독 임계치 또는 추정치(예를 들면, 도 3의 Topt(306))는 따라서 어떤 빈들이 병합되도록 허용되지 않는 영역을 규정하기 위해 사용된다. 몇몇 실시예들에서, 하나 이상의 LLR 값들이 빈들이 병합(예를 들면, 양자화 및/또는 포화의 결과로서)되는 것을 방지하기 위해 충분히 고유한 LLR 값들을 생성하기 위해 위/아래로 이동된다.
몇몇 실시예들에서, 시스템은 MLC 시스템이고 도 7a에 도시된 프로세스는 MLC 시스템에 적용된다. 다음 도면들은 소프트 판독 값들이 빈들을 사용하여 생성되는 경우 몇몇 MLC 실시예들을 도시한다.
도 9는 하나의 임계치가 고정되고 동시에 다른 것은 변하도록 허용된 경우 2 비트 MLC 실시예를 도시하는 도면이다. 도시된 예시에서, 비트 값들은 (왼쪽으로부터 오른쪽으로) 11, 01, 00, 및 10이다. 본 도면 및 다른 도면들에 도시된 예시들은 한정하는 것으로 의도되지 않고 여기에 설명된 기술들은 다른 비트 맵핑들/할당들 및/또는 3-비트(즉, 3 계층 셀(TLC)) 이상의 시스템들과 함께 사용될 수 있다. 최하위 비트(LSB)에 대한 소프트 판독 값을 생성하기 위해, SLC 예시들과 함께 상기에 기술된 프로세스가 사용될 수 있다(예를 들면, 판독들은 주로 01 및 00 분포들의 교차점 부근에서 발생한다). 본 예시에서, 최상위 비트(MSB)에 대한 소프트 판독 값을 생성하기 위해, 하나의 MSB 임계치가 다른 MSB 임계치가 변하도록 허용되는 동안 고정으로 유지된다.
도 900에서, 왼쪽 MSB 판독 임계치는 고정되게 유지되고 동시에 오른쪽 MSB 임계치는 변하도록 허용된다. 이러한 예시에서, 왼쪽 MSB 임계치(적어도 도표(900) 동안, 고정됨)는 처음에 11 및 01 분포들의 교차점에 근접한 값으로 설정된다(성공적인 디코딩의 확률을 최대화하기 위해서).
왼쪽 MSB 판독 임계치가 제 1 및 제 2 판독 임계치들(902)에 고정되게 유지되는 동시에, 오른쪽 MSB 판독 임계치는 변하도록 허용된다. 이와 같이, 제 1 판독(904)에서 오른쪽 MSB 판독 임계치는 제 2 판독(906)에서 오른쪽 MSB 판독 임계치와 동일하지 않다. 이러한 특정한 예시에서, 두 개의 오른쪽 MSB 판독 임계치들(904, 906)은 00 및 10 분포들의 교차점에 가깝다.
또한, 판독 임계치들(902, 904, 906)은 다음의 빈들: 부분(908a) 및 부분(908b)을 포함하는 빈
Figure 112014059655807-pct00037
, 제 1 판독(904)에서 왼쪽 MSB 판독 임계치(902) 및 오른쪽 MSB 판독 임계치 사이의 빈
Figure 112014059655807-pct00038
(910), 및 제 1 판독(904)의 오른쪽 MSB 판독 임계치 및 제 2 판독(906)의 오른쪽 MSB 판독 임계치 사이의 빈
Figure 112014059655807-pct00039
(912)를 규정한다. 부분들(908a, 908b)은 그들이 모두 1의 MSB 값들과 연관되기 때문에 동일한 빈을 포함한다.
도표들(900, 950) 사이에, 소프트 판독 값이 도표(900)에 도시된 빈들을 사용한 MSB에 대한 출력이다. 에러 보정 디코딩이 성공적이지 않은 경우, 하나 이상의 추가의 판독들이 수행되고, 여기서 오른쪽 MSB 판독 임계치가 고정되게 유지되고 왼쪽 MSB 판독 임계치는 변하는 것이 허용된다.
도표(950)에서, 오른쪽 MSB 판독 임계치는 고정되게 유지되고 동시에 왼쪽 MSB 판독 임계치는 변하는 것이 허용된다. 도표(950)는 제 3 및 제 4 판독들이 수행되는 곳과 결과의 빈들을 보여준다. 도표(900)에서와 같이, 오른쪽 MSB 판독 임계치(여기서 도표(950)에서 고정됨)는 00 및 10 분포들의 교차점에 근접한 전압에 고정된다. 왼쪽 MSB 판독 임계치는 변하는 것이 허용되고 제 3 판독 임계치(952)는 제 4 판독 임계치(954)와 일치하지 않고; 둘 모두는 11 및 01 분포들의 교차점 부근에 있다.
도표(950)에서 7 개의 빈들은 이전 판독들에 의해 규정된다. 빈
Figure 112014059655807-pct00040
은 부분(958a) 및 부분(58b)을 포함하고, 빈
Figure 112014059655807-pct00041
(960)은 제 3 판독(952)에서 왼쪽 MSB 판독 임계치 및 제 1 및 제 2 판독(902)에서 왼쪽 MSB 판독 임계치 사이에 있고, 빈
Figure 112014059655807-pct00042
(962)은 전압(952)과 제 4 판독(954)에서 왼쪽 MSB 판독 임계치 사이에 있고, 빈
Figure 112014059655807-pct00043
(964)은 전압(954)과 제 1 판독(904)에서 오른쪽 MSB 판독 임계치 사이에 있고, 빈
Figure 112014059655807-pct00044
(966)은 전압(904)과 제 3 및 제 4 판독(956)에서 오른쪽 MSB 판독 임계치 사이에 있고, 빈
Figure 112014059655807-pct00045
(968)은 전압(956)과 제 2 판독(906)에서 오른쪽 MSB 판독 임계치 사이에 있다. 부분들(958a, 958b) 모두가 1의 MSB 값들과 연관되기 때문에, 그들은 동일한 빈(즉, 빈
Figure 112014059655807-pct00046
)에 포함된다.
도표(950)에 도시된 빈들은 이후 소프트 판독 값들(예를 들면, LLR 값들)을 MSB(예를 들면, LLR 값들의 저장된 표에 액세스하고 그들을 각각의 빈들 내 셀들에 할당함으로써)에 할당하기 위해 사용된다. 01 및 00 분포들이 모두 빈 3(964)에 있지만, 이는 두 개의 분포들이 0의 MSB 값들과 연관되고 프로세스가 MSB에 대하여 소프트 판독 값들을 생성하고 있기 때문에 수락가능하다는 것을 주의하라.
몇몇 실시예들에서, 셀의 LSB는 정확하게 판독된다. 다음의 도면은 LSB의 지식이 MSB에 대한 소프트 판독 값을 생성하는 데 영향을 받는 기술을 설명한다.
도 10은 LSB가 알려진 분포들의 2 비트 MLC 실시예를 도시하는 도표이다. 이전 예시에서와 같이, 도 7a가 LSB에 대한 소프트 정보를 생성하기 위해 사용될 수 있고, 여기에 설명된 기술들은 MSB에 대한 소프트 판독 값을 생성하는 것에 관한 것이다. 도시된 예시에서, 각각의 셀의 LSB가 알려진다. 0의 LSB를 갖는 셀들은 도표(1000)에 도시된 분포들을 갖는다. 1의 LSB를 갖는 셀들이 그래프(1000)로부터 제외되었기 때문에, 11 및 01 분포들은 제거되고 파선으로 도시된다.
유사하게, 도표(1050)는 단지 1의 LSB를 갖는 셀들과 연관된다. 0의 LSB를 갖는 셀들이 그룹으로부터 제외되었기 때문에, 분포들(00, 10)은 제거되고 파선으로 도시된다.
이러한 예시에서, 왼쪽 MSB 판독 임계치는 11 및 01 분포의 교차점 근처에서 변경되고 오른쪽 MSB 판독 임계치는 00 및 10 분포의 교차점 근처에서 변경된다. 왼쪽 및 오른쪽 MSB 판독 임계치를 동시에 변경함으로써, 고체 상태 저장 장치로부터 더 적은 판독들이 요구된다. 예를 들면, 왼쪽 및 오른쪽 MSB 판독 임계치들은 제 1 값으로 설정되고 제 1 판독은 그들 전압들을 사용하여 수행된다. 0의 LSB를 갖는 셀들은 하드 판독 값들이 0인지 1인지에 기초하여 두 개의 빈들 중 하나에 할당된다. 유사하게, 1의 LSB를 갖는 셀들은 하드 판독 값들이 0인지 1인지에 기초하여 두 개의 빈들 중 하나에 할당되고, 이러한 세트의 두 개의 빈들은 이전에 한정된 두 개의 빈들과 상이하다. 디코딩이 실패했을 경우, 제 2 판독이 수행되고 여기서 오른쪽 및 왼쪽 MSB 판독 임계치들 모두가 그들의 제 1 값들로부터 변경된다. 오른쪽 MSB 임계치는 0의 LSB에 대응하는 두 개의 빈들 중 하나를 분할하고, 동시에 왼쪽 MSB 임계치는 1의 LSB에 대응하는 두 개의 빈들 중 하나를 분할한다. 제 2 판독의 하드 판독 값들에 기초하여, 셀들은 분할되는 빈들의 좌측 또는 우측에 할당된다. 이러한 프로세스는 디코딩이 성공적일 때까지 반복된다. 본질적으로, 이러한 기술은 두 개의 독립적인 SLC 빈 맵핑 프로세스들(도 7b를 참조)을 동시에 구동하는 것과 동일하다. 도 9에 도시된 기술에 비하여, 이러한 기술은 저장 장치로부터의 절반만큼의 판독들을 요구한다.
상기 설명된 MSB 기술들이 몇몇 적용들에 대해 유용하지만, 그들은 모든 적용들에 대하여 매력적이지 않을 수 있다. 다음의 도면들은 도 9에서만큼 많은 저장 장치로부터의 판독들이 요구되지 않고, LSB의 지식이 도 10에서만큼 요구되지 않는 기술을 도시한다.
도 11a는 오른쪽 및 왼쪽 MSB 판독 임계치에 대한 제 1 및 제 2 값들의 2비트 MLC 실시예를 도시하는 도면이다. 이러한 예시에서, 주어진 셀에 대하여 LSB의 값의 지식이 없다. 여기에 설명된 기술은 다중 레벨 셀의 MSB에 대한 빈들을 사용하여 소프트 판독 값을 결정하는 것에 관한 것이고; 몇몇 다른 기술(예를 들면, 도 7a)은 LSB에 대한 소프트 판독 값을 결정하기 위해 사용될 수 있다.
Figure 112014059655807-pct00047
Figure 112014059655807-pct00048
를 각각 오름차순으로 정렬될 때 N 개의 이전 왼쪽 MSB 판독 임계치들 및 N 개의 이전 오른쪽 MSB 판독 임계치들이라 하자. 다시 말해서, 왼쪽 MSB 판독 임계치들에 대한 판독들의 순서(예시로서)는 반드시 x1, x2, 등은 아니다.
또한, y1 및 y2를 각각 왼쪽 MSB 판독 임계치 및 오른쪽 MSB 판독 임계치의 (N+1)번째 값이라 하자. 도 7a의 예시에서와 같이, 왼쪽 및 오른쪽 MSB 판독 임계치의 (N+1)번째 값은 두 개의(즉, 상이한) 빈들을 반으로 분할할 것이다. 판독들이 속하는 이들 두 개의 빈들은
Figure 112014059655807-pct00049
(왼쪽 MSB 판독 임계치에 의해 분할됨) 및
Figure 112014059655807-pct00050
(오른쪽 MSB 판독 임계치에 의해 분할됨)로 불린다. (N+1)번째 판독에서 분할된 빈들 내 셀들은 다음과 같이 새로운 빈으로 맵핑된다:
Figure 112014059655807-pct00051
왼쪽 또는 오른쪽 MSB 판독 임계치에 의해 분할되지 않은 모든 다른 빈들에 대하여,
Figure 112014059655807-pct00052
.
도표(1100)는 제 1 판독에 의해 생성된 빈들을 보여준다. 3 개의 "영역들"이 있지만, 제 1의 왼쪽 MSB 판독 임계치의 왼쪽에 대한 영역 및 제 1의, 오른쪽 MSB 판독 임계치의 오른쪽에 대한 영역이 동일한 빈(즉,
Figure 112014059655807-pct00053
)이기 때문에 실제로 단지 2개의 빈들만이 있다는 것을 주의하라. 이는 빈
Figure 112014059655807-pct00054
과 연관된 이들 영역들 모두가 1의 MSB와 연관되고 여기에 설명된 기술은 LSB가 아닌, MSB에 대한 소프트 판독 값을 생성하는 것에 관한 것이기 때문이다.
도표(1130)는 제 2 판독에 의해 생성된 빈들을 보여준다. 제 2의, 왼쪽 MSB 판독 임계치는 왼쪽 빈(
Figure 112014059655807-pct00055
)을 빈들(
Figure 112014059655807-pct00056
,
Figure 112014059655807-pct00057
)로 분할한다. 제 2의, 오른쪽 MSB 판독 임계치는 빈(
Figure 112014059655807-pct00058
)을 빈들(
Figure 112014059655807-pct00059
,
Figure 112014059655807-pct00060
)로 분할한다. 오른쪽
Figure 112014059655807-pct00061
은 임의의 판독에 의해 분할되지 않고
Figure 112014059655807-pct00062
로 된다.
도 11b는 오른쪽 및 왼쪽 MSB 판독 임계치에 대한 제 3 값의 일 실시예를 도시하는 도표이다. 도 11b는 도 11a의 예를 계속한다. 이러한 예에서, 제 3의, 왼쪽 MSB 판독 임계치는 빈(
Figure 112014059655807-pct00063
)을 빈들(
Figure 112014059655807-pct00064
,
Figure 112014059655807-pct00065
)로 분할한다. 이는
Figure 112014059655807-pct00066
의 맵핑을 반영한다. 제 3의, 오른쪽 MSB 판독 임계치는 빈(
Figure 112014059655807-pct00067
)을 빈들(
Figure 112014059655807-pct00068
,
Figure 112014059655807-pct00069
)로 분할한다. 이는
Figure 112014059655807-pct00070
의 맵핑을 반영한다.
도 7a를 참조하면, 도 7a의 프로세스는 MSB에 대한 도 11a 및 도 11b에 도시된 빈 분할을 따른다. 도시된 바와 같이, 도 7a는 (적어도) SLC 시스템들 및 MSB 및 LSB 모두의 2 비트 MLC 시스템들에 적용한다.
전술한 실시예들이 이해의 명확성의 목적들을 위해 약간 상세히 설명되었지만, 본 발명은 제공된 상세들로 한정되지 않는다. 본 발명을 실행하는 많은 대안적인 방식들이 존재한다. 개시된 실시예들은 예시적이고 제한적인 것이 아니다.
100 : 판독 프로세서 102 : 에러 보정 디코더
104 : 소프트 정보 생성기 106 : 저장 장치 판독 인터페이스
108 : 판독 임계치 생성기 150 : 고체 상태 저장 장치

Claims (26)

  1. 소프트 판독 값을 생성하기 위한 시스템에 있어서:
    판독 임계치 생성기로서,
    개시 판독 임계치를 수신하고,
    제 1 오프셋 및 제 2 오프셋을 결정하도록 구성되고, 상기 제 1 오프셋을 결정하는 것은 제 1 판독 및 제 2 판독과 연관된 데이터의 사용 기간에 적어도 부분적으로 기초하는, 상기 판독 임계치 생성기;
    저장 장치 판독 인터페이스로서,
    제 1 하드 판독 값을 획득하기 위해 상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 제 1 판독을 수행하고,
    제 2 하드 판독 값을 획득하기 위해 상기 개시 판독 임계치에서 상기 제 2 오프셋만큼 오프셋된 제 2 판독을 수행하도록 구성된, 상기 저장 장치 판독 인터페이스; 및
    상기 제 1 하드 판독 값 및 상기 제 2 하드 판독 값에 적어도 부분적으로 기초하여 소프트 판독 값을 생성하도록 구성된 소프트 정보 생성기를 포함하는, 소프트 판독 값을 생성하기 위한 시스템.
  2. 제 1 항에 있어서,
    상기 시스템은, 주문형 집적 회로(ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA) 중 하나 이상을 포함하는 반도체 디바이스를 포함하는, 소프트 판독 값을 생성하기 위한 시스템.
  3. 제 1 항에 있어서,
    고체 상태 저장 장치를 추가로 포함하고, 상기 저장 장치 판독 인터페이스는 상기 고체 상태 저장 장치를 판독하도록 구성되는, 소프트 판독 값을 생성하기 위한 시스템.
  4. 소프트 판독 값을 생성하기 위한 시스템에 있어서:
    고체 상태 저장 장치로서, 저장 장치 판독 인터페이스는 상기 고체 상태 저장 장치를 판독하도록 구성되는, 상기 고체 상태 저장 장치;
    판독 임계치 생성기로서,
    개시 판독 임계치를 수신하고,
    제 1 오프셋 및 제 2 오프셋을 결정하도록 구성되고, 상기 제 1 오프셋을 결정하는 것은 (1) 상기 고체 상태 저장 장치의 사용 기간에 적어도 부분적으로 상기 제 1 오프셋을 기초로 하는 것 또는 (2) 복수의 잠재적 제 1 오프셋들을 포함하는 테이블로서, 제 1 판독 및 제 2 판독에 연관된 데이터의 사용 기간에 의해 및 상기 고체 상태 저장 장치의 사용 기간에 의해 인덱스되는 상기 테이블에 액세스 하는 것 중 하나 이상을 포함하는, 상기 판독 임계치 생성기;
    저장 장치 판독 인터페이스로서,
    제 1 하드 판독 값을 획득하기 위해 상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 제 1 판독을 수행하고,
    제 2 하드 판독 값을 획득하기 위해 상기 개시 판독 임계치에서 상기 제 2 오프셋만큼 오프셋된 제 2 판독을 수행하도록 구성된, 상기 저장 장치 판독 인터페이스; 및
    상기 제 1 하드 판독 값 및 상기 제 2 하드 판독 값에 적어도 부분적으로 기초하여 소프트 판독 값을 생성하도록 구성된 소프트 정보 생성기를 포함하는, 소프트 판독 값을 생성하기 위한 시스템.
  5. 삭제
  6. 삭제
  7. 제 1 항에 있어서,
    상기 저장 장치 판독 인터페이스는 하드 판독 값들의 측정된 퍼센티지를 획득하기 위해 상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 복수의 셀들을 판독하도록 추가로 구성되고,
    상기 판독 임계치 생성기는 상기 하드 판독 값들의 측정된 퍼센티지 및 하드 판독 값들의 예상된 퍼센티지에 적어도 부분적으로 기초하여 보상하는 것을 포함하는, 상기 제 2 오프셋을 결정하도록 구성되는, 소프트 판독 값을 생성하기 위한 시스템.
  8. 삭제
  9. 삭제
  10. 삭제
  11. 삭제
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 소프트 판독 값을 생성하기 위한 방법에 있어서:
    개시 판독 임계치를 수신하는 단계;
    제 1 오프셋 및 제 2 오프셋을 결정하기 위해 판독 임계치 생성기를 사용하는 단계로서, 상기 제 1 오프셋을 결정하는 것은 제 1 판독 및 제 2 판독에 연관된 데이터의 사용 기간에 적어도 부분적으로 기초하는, 상기 판독 임계치 생성기를 사용하는 단계;
    상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 제 1 판독을 수행하여 제 1 하드 판독 값을 획득하기 위해 저장 장치 판독 인터페이스를 사용하는 단계;
    상기 개시 판독 임계치에서 상기 제 2 오프셋만큼 오프셋된 제 2 판독을 수행하여 제 2 하드 판독 값을 획득하기 위해 상기 저장 장치 판독 인터페이스를 사용하는 단계; 및
    상기 제 1 하드 판독 값 및 상기 제 2 하드 판독 값에 적어도 일부 기초하여 소프트 판독 값을 생성하기 위해 소프트 정보 생성기를 사용하는 단계를 포함하는, 소프트 판독 값을 생성하기 위한 방법.
  18. 삭제
  19. 소프트 판독 값을 생성하기 위한 방법에 있어서:
    개시 판독 임계치를 수신하는 단계;
    제 1 오프셋 및 제 2 오프셋을 결정하기 위해 판독 임계치 생성기를 사용하는 단계로서, 상기 제 1 오프셋을 결정하는 것은 (1) 고체 상태 저장 장치의 사용 기간에 적어도 부분적으로 상기 제 1 오프셋을 기초로 하는 것 또는 (2) 복수의 잠재적 제 1 오프셋들을 포함하는 테이블로서, 제 1 판독 및 제 2 판독에 연관된 데이터의 사용 기간에 의해 및 상기 고체 상태 저장 장치의 사용 기간에 의해 인덱스되는 상기 테이블에 액세스 하는 것 중 하나 이상을 포함하는, 상기 판독 임계치 생성기를 사용하는 단계;
    상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 제 1 판독을 수행하여 제 1 하드 판독 값을 획득하기 위해 저장 장치 판독 인터페이스를 사용하는 단계;
    상기 개시 판독 임계치에서 상기 제 2 오프셋만큼 오프셋된 제 2 판독을 수행하여 제 2 하드 판독 값을 획득하기 위해 상기 저장 장치 판독 인터페이스를 사용하는 단계; 및
    상기 제 1 하드 판독 값 및 상기 제 2 하드 판독 값에 적어도 부분적으로 기초하여 소프트 판독 값을 생성하기 위해 소프트 정보 생성기를 사용하는 단계를 포함하는, 소프트 판독 값을 생성하기 위한 방법.
  20. 제 4 항에 있어서,
    상기 시스템은 주문형 집적 회로(ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA) 중 하나 이상을 포함하는 반도체 장치를 포함하는, 소프트 판독 값을 생성하기 위한 시스템.
  21. 제 17 항에 있어서,
    상기 방법은 주문형 집적 회로(ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA) 중 하나 이상을 포함하는 반도체 장치에 의해 수행되는, 소프트 판독 값을 생성하기 위한 방법.
  22. 제 19 항에 있어서,
    상기 방법은 주문형 집적 회로(ASIC) 또는 필드 프로그래머블 게이트 어레이(FPGA) 중 하나 이상을 포함하는 반도체 장치에 의해 수행되는, 소프트 판독 값을 생성하기 위한 방법.
  23. 제 4 항에 있어서,
    고체 상태 저장 장치를 추가로 포함하고, 상기 저장 장치 판독 인터페이스는 상기 고체 상태 저장 장치를 판독하도록 구성되는, 소프트 판독 값을 생성하기 위한 시스템.
  24. 제 4 항에 있어서,
    상기 저장 장치 판독 인터페이스는 하드 판독 값들의 측정된 퍼센티지를 획득하기 위해 상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 복수의 셀들을 판독하도록 추가로 구성되고,
    상기 판독 임계치 생성기는 상기 하드 판독 값들의 상기 측정된 퍼센티지 및 하드 판독 값들의 예상된 퍼센티지에 적어도 부분적으로 기초하여 보상하는 것을 포함하는, 상기 제 2 오프셋을 결정하도록 구성되는, 소프트 판독 값을 생성하기 위한 시스템.
  25. 제 17 항에 있어서,
    상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 복수의 셀들을 판독하여 하드 판독 값들의 측정된 퍼센티지를 획득하기 위해 상기 저장 장치 판독 인터페이스를 사용하는 단계; 및
    상기 하드 판독 값들의 측정된 퍼센티지 및 하드 판독 값들의 예상된 퍼센티지에 적어도 부분적으로 기초하여 보상하는 것을 포함하는, 상기 제 2 오프셋을 결정하기 위해 상기 판독 임계치 생성기를 사용하는 단계를 추가로 포함하는, 소프트 판독 값을 생성하기 위한 방법.
  26. 제 19 항에 있어서,
    상기 개시 판독 임계치에서 상기 제 1 오프셋만큼 오프셋된 복수의 셀들을 판독하여 하드 판독 값들의 측정된 퍼센티지를 획득하기 위해 상기 저장 장치 판독 인터페이스를 사용하는 단계; 및
    상기 하드 판독 값들의 측정된 퍼센티지 및 하드 판독 값들의 예상된 퍼센티지에 적어도 부분적으로 기초하여 보상하는 것을 포함하는, 상기 제 2 오프셋을 결정하기 위해 상기 판독 임계치 생성기를 사용하는 단계를 추가로 포함하는, 소프트 판독 값을 생성하기 위한 방법.
KR1020147017552A 2012-01-27 2013-01-23 다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성 KR101633286B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201261591639P 2012-01-27 2012-01-27
US61/591,639 2012-01-27
US201261618414P 2012-03-30 2012-03-30
US61/618,414 2012-03-30
US13/747,329 2013-01-22
US13/747,329 US9269448B2 (en) 2012-01-27 2013-01-22 Generating soft read values using multiple reads and/or bins
PCT/US2013/022741 WO2013112580A1 (en) 2012-01-27 2013-01-23 Generating soft read values using multiple reads and/or bins

Publications (2)

Publication Number Publication Date
KR20140093289A KR20140093289A (ko) 2014-07-25
KR101633286B1 true KR101633286B1 (ko) 2016-07-08

Family

ID=48873860

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147017552A KR101633286B1 (ko) 2012-01-27 2013-01-23 다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성

Country Status (4)

Country Link
US (2) US9269448B2 (ko)
KR (1) KR101633286B1 (ko)
CN (1) CN104205225B (ko)
WO (1) WO2013112580A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102083491B1 (ko) * 2012-12-05 2020-03-02 삼성전자 주식회사 메모리 장치, 메모리 시스템 및 이의 동작 방법
US9390002B1 (en) * 2013-01-23 2016-07-12 SK Hynix Inc. Efficient bin labeling schemes for tracking cells in solid state storage devices
US9367389B2 (en) * 2013-03-14 2016-06-14 Seagate Technology Llc Recovery strategy that reduces errors misidentified as reliable
US9235469B2 (en) 2013-05-22 2016-01-12 Seagate Technology Llc Systems and methods for inter-cell interference mitigation in a flash memory
US10795868B2 (en) * 2013-11-22 2020-10-06 Teradata Us, Inc. Summarizing statistical data for database systems and/or environments
US9236099B2 (en) 2013-12-10 2016-01-12 Seagate Technology Llc Multiple retry reads in a read channel of a memory
US10140353B2 (en) * 2013-12-23 2018-11-27 Teredata, US, Inc. Techniques for query processing using high dimension histograms
US9306600B2 (en) * 2014-01-06 2016-04-05 Micron Technology, Inc. Read threshold calibration for LDPC
US20150293808A1 (en) * 2014-04-10 2015-10-15 Lsi Corporation Soft read handling of read noise
US9741431B2 (en) * 2014-11-10 2017-08-22 Sk Hynix Memory Solutions Inc. Optimal read threshold estimation
US10148293B2 (en) * 2015-03-17 2018-12-04 SK Hynix Inc. Incremental LLR generation for flash memories
US9911466B2 (en) * 2016-02-16 2018-03-06 Micron Technology, Inc. Read threshold voltage selection
US10554227B2 (en) * 2017-03-10 2020-02-04 Western Digital Technologies, Inc. Decoding optimization for channel mismatch
US10236070B2 (en) * 2017-06-27 2019-03-19 Western Digital Technologies, Inc. Read level tracking and optimization
US11295819B2 (en) * 2020-06-30 2022-04-05 Western Digital Technologies, Inc. Dual sense bin balancing in NAND flash
CN112506440A (zh) * 2020-12-17 2021-03-16 杭州迪普信息技术有限公司 基于二分法的数据查找方法和设备
US11978524B2 (en) 2021-08-25 2024-05-07 Western Digital Technologies, Inc. Cumulative wordline dispersion and deviation for read sense determination
US11869614B2 (en) 2021-08-25 2024-01-09 Western Digital Technologies, Inc. Cell statistics generator for NVM devices
US11656789B2 (en) 2021-08-25 2023-05-23 Western Digital Technologies, Inc. Asymmetric read sense

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7849383B2 (en) 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8289771B2 (en) 2010-06-23 2012-10-16 Phison Electronics Corp. Data reading method and control circuit and memory controller using the same

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7821826B2 (en) * 2006-10-30 2010-10-26 Anobit Technologies, Ltd. Memory cell readout using successive approximation
KR100888842B1 (ko) * 2007-06-28 2009-03-17 삼성전자주식회사 읽기 전압을 최적화할 수 있는 플래시 메모리 장치 및그것의 독출 전압 설정 방법
WO2009072102A2 (en) 2007-12-05 2009-06-11 Densbits Technologies Ltd. System and methods employing mock thresholds to generate actual reading thresholds in flash memory devices
US8392809B1 (en) * 2009-10-16 2013-03-05 Marvell International Ltd. Log-likelihood-ratio (LLR) table calibration
US8498152B2 (en) * 2010-12-23 2013-07-30 Sandisk Il Ltd. Non-volatile memory and methods with soft-bit reads while reading hard bits with compensation for coupling
US8358542B2 (en) * 2011-01-14 2013-01-22 Micron Technology, Inc. Methods, devices, and systems for adjusting sensing voltages in devices
US8665650B2 (en) * 2011-02-18 2014-03-04 Marvell World Trade Ltd. Reliability metrics management for soft decoding
US8879317B2 (en) * 2011-03-01 2014-11-04 Sandisk Technologies Inc. System and method of decoding data from memory based on sensing information and decoded data of neighboring storage elements
US8830746B2 (en) * 2011-12-28 2014-09-09 Apple Inc. Optimized threshold search in analog memory cells using separator pages of the same type as read pages
US8937838B2 (en) * 2012-01-10 2015-01-20 Sk Hynix Memory Solutions Inc. Finding optimal read thresholds and related voltages for solid state memory
US8923066B1 (en) * 2012-04-09 2014-12-30 Sk Hynix Memory Solutions Inc. Storage of read thresholds for NAND flash storage using linear approximation
US8856611B2 (en) * 2012-08-04 2014-10-07 Lsi Corporation Soft-decision compensation for flash channel variation
US8923062B1 (en) * 2012-07-06 2014-12-30 Sk Hynix Memory Solutions Inc. Generating read thresholds using gradient descent and without side information
US9159407B2 (en) * 2012-10-22 2015-10-13 Apple Inc. Soft readout from analog memory cells in the presence of read threshold errors
US9390002B1 (en) * 2013-01-23 2016-07-12 SK Hynix Inc. Efficient bin labeling schemes for tracking cells in solid state storage devices
US8773905B1 (en) * 2013-03-06 2014-07-08 Apple Inc. Identifying and mitigating restricted sampling voltage ranges in analog memory cells
KR101429184B1 (ko) * 2013-09-12 2014-08-12 주식회사 디에이아이오 낸드 플래시 메모리 장치의 독출 전압 조정 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7975192B2 (en) 2006-10-30 2011-07-05 Anobit Technologies Ltd. Reading memory cells using multiple thresholds
US7849383B2 (en) 2007-06-25 2010-12-07 Sandisk Corporation Systems and methods for reading nonvolatile memory using multiple reading schemes
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8289771B2 (en) 2010-06-23 2012-10-16 Phison Electronics Corp. Data reading method and control circuit and memory controller using the same

Also Published As

Publication number Publication date
US20160139987A1 (en) 2016-05-19
US9842023B2 (en) 2017-12-12
CN104205225B (zh) 2018-01-05
CN104205225A (zh) 2014-12-10
US20130229867A1 (en) 2013-09-05
US9269448B2 (en) 2016-02-23
WO2013112580A1 (en) 2013-08-01
KR20140093289A (ko) 2014-07-25

Similar Documents

Publication Publication Date Title
KR101633286B1 (ko) 다수의 판독들 및/또는 빈들을 사용한 소프트 판독 값들의 생성
JP5944941B2 (ja) クロス・ページ・セクタ、マルチ・ページ符号化およびパー・ページ符号化を使用して多重レベル・セル・フラッシュ・メモリ・デバイスにデータを記憶するための方法および装置
CN105989891B (zh) 用于增强的闪存性能的读取级别分组
CN109147846B (zh) 读取电平跟踪和优化
US10872013B2 (en) Non volatile memory controller device and method for adjustment
US9407294B2 (en) Non-volatile memory controller with error correction (ECC) tuning via error statistics collection
US8797795B2 (en) Methods and apparatus for intercell interference mitigation using modulation coding
US9639462B2 (en) Device for selecting a level for at least one read voltage
US9106264B2 (en) Encoding and decoding in flash memories using convolutional-type low-density parity check codes
KR20170094775A (ko) 각각의 판독 재시도에 대한 상이한 판독 전압들에서 우도 값 할당들이 부호를 변경하는 판독 재시도 동작들
US20130007566A1 (en) Memory Device with Adaptive Capacity
CN107257958B (zh) 用于定制应用的动态近似存储
US20130176778A1 (en) Cell-level statistics collection for detection and decoding in flash memories
US8276046B2 (en) Apparatus for determining number of bits to be stored in memory cell
WO2013070368A1 (en) Soft information generation for memory systems
KR20120090084A (ko) 조절가능한 용량을 가진 메모리 디바이스
CN110795270A (zh) 固态储存装置及其读取重试方法
US20150149856A1 (en) Decoding with log likelihood ratios stored in a controller
CN109872764B (zh) 一种多级存储单元闪存的ecc多码率编解码系统及方法
CN112599169A (zh) 存储器的读操作控制方法及装置以及存储器控制器
KR101653999B1 (ko) 낸드 플래시 기반의 스토리지 시스템 및 데이터 보존 강화 방법
KR20180038941A (ko) 섹터 스프레딩을 이용하여 메모리 셀들에 비트들을 매핑하는 방법 및 상기 방법을 수행하는 장치
US20140211564A1 (en) Level-estimation in multi-level cell memory
Tabrizi et al. Predicting bad pages in NAND flash to improve read time: A dynamic programming approach

Legal Events

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

Payment date: 20190325

Year of fee payment: 4