KR20140090671A - 메모리 시스템들을 위한 소프트 정보 생성 - Google Patents

메모리 시스템들을 위한 소프트 정보 생성 Download PDF

Info

Publication number
KR20140090671A
KR20140090671A KR1020147015604A KR20147015604A KR20140090671A KR 20140090671 A KR20140090671 A KR 20140090671A KR 1020147015604 A KR1020147015604 A KR 1020147015604A KR 20147015604 A KR20147015604 A KR 20147015604A KR 20140090671 A KR20140090671 A KR 20140090671A
Authority
KR
South Korea
Prior art keywords
values
soft information
read
storage medium
data
Prior art date
Application number
KR1020147015604A
Other languages
English (en)
Other versions
KR101981355B1 (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 KR20140090671A publication Critical patent/KR20140090671A/ko
Application granted granted Critical
Publication of KR101981355B1 publication Critical patent/KR101981355B1/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/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/1012Adding 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 codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/56Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency
    • G11C11/5621Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using storage elements with more than two stable states represented by steps, e.g. of voltage, current, phase, frequency using charge storage in a floating gate
    • G11C11/5642Sensing or reading circuits; Data output circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

구현들은 데이터가 메모리에 저장 및 판독될 수 있는 신뢰성을 향상시키기 위해 사용되는 에러 제어 코드들의 성능을 강화시킬 수 있는 메모리 시스템 내의 사용에 적절한 시스템들, 방법들 및/또는 디바이스들을 포함한다. 일부 구현들은 스토리지 매체로부터 판독되는 인코딩된 데이터를 디코딩하기 위해 소프트 정보를 생성 및 이용하도록 된 시스템들, 방법들 및/또는 디바이스들을 포함한다. 특히, 일부 구현들은 스토리지 매체 특성화 파라미터 값들의 다양한 조합들에 대해 스토리지 매체로부터 판독될 수 있는 비트-튜플들에 대한 소프트 정보 값들을 포함하는 특성화 벡터들의 집합을 이용한다. 일부 구현들은 하나 이상의 스토리지 매체 특성화 파라미터 값들과 관련된 판독 비교 신호 값들을 결정 및 사용하도록 된다. 그리고, 일부 구현들은 식별된 에러 상태 및 하나 이상의 스토리지 매체 특성화 파라미터 값들과 관련된 시프트된 판독 비교 신호 값들을 결정 및 이용하도록 된다.

Description

메모리 시스템들을 위한 소프트 정보 생성{SOFT INFORMATION GENERATION FOR MEMORY SYSTEMS}
본 발명은 메모리 시스템들에서 에러 제어를 사용하는 것에 관한 것이며, 특히, 메모리로부터 판독된 데이터를 디코딩하기 위해 소프트 정보를 생성 및 이용하는 것에 관한 것이다.
가전 기기들 및 기업 컴퓨팅 시스템들의 지속적인 질적 강화(enrichment)에 대해 항상 존재하는 요구는 종종 데이터 스토리지 용량을 향상시키도록 하는 요구를 동반한다. 또한, 많은 스토리지 용량에 대한 요구는 큰 스토리지 밀도에 대한 요구를 불러일으켜서, 파워 소모 및 폼 팩터(form factor)와 같은 사양들이 유지되고 바람직하게는 감소될 수 있다. 비-휘발성 메모리들 및 특히 플래시 메모리는 점점 대중화되고 있는 바, 그 이유는 이들이 가전 기기들의 증가된 휴대성(portability)을 가능하게 해왔으며, 최근에는, 클라우드 컴퓨팅 및 다른 매스 스토리지 어플리케이션들에 적절한 상대적으로 저전력인 기업 매스 스토리지 시스템들에 이용되어 왔기 때문이다. 따라서, 이러한 디바이스들의 이득이 되는 속성들의 장점을 더 취하기 위해 플래시 메모리와 같은 비-휘발성 메모리들의 스토리지 밀도를 증가시키도록 하는 추가적인 압박이 존재한다.
플래시 메모리를 포함하는 반도체 메모리 디바이스들은 전형적으로, 데이터를 전하 또는 전압과 같은 전기적 값으로 저장하기 위해 메모리 셀들을 이용한다. 예를 들어, 플래시 메모리 셀은 데이터 값을 나타내는 전하를 저장하기 위해 사용되는 플로팅 게이트를 갖는 단일 트랜지스터를 포함한다. 스토리지 밀도의 증가들은 특별한 영역에 포함될 수 있는 트랜지스터들 - 따라서 메모리 셀들 - 의 수를 증가시키기 위해 반도체 제조 공정들의 최소 피쳐 사이즈(feature size)를 감소시키는 것을 포함하여 다양한 방식들로 이루어져 왔다. 추가적으로, 스토리지 밀도를 더 증가시키기 위해, 플래시 메모리는 단일-레벨 플래시 메모리로부터 다중-레벨 플래시 메모리로 개발되어 와서, 둘 이상의 비트들이 각각의 메모리 셀에 의해 저장될 수 있다.
증가되는 스토리지 밀도의 문제점은 저장된 데이터가 점점, 잘못 저장 및/또는 판독되기 쉽다는 것이다. 에러 제어 코딩(ECC)은 의사-랜덤 변동들, 매체 내의 결함들, 동작 조건들, 디바이스 히스토리 및/또는 기록-판독 회로망, 등에 의해 도입되는 정정불가능한 에러들의 수를 제한하기 위해 이용되어 왔다. 소프트 정보를 사용하는 에러 제어 방법들은 특히 전도유망한 바, 그 이유는 소프트 정보 디코딩은 특별한 에러 제어 코드의 에러 검출 및 정정 능력(capability)을 향상시키고, 따라서 시스템의 용량을 향상시킬 수 있기 때문이다. 그러나, 소프트 정보 디코딩의 이용은 다수의 이전의 해결불가능한 문제점들 때문에 제한되어 왔다. 예를 들어, 소프트 정보 디코딩 구현들은 바람직하지 않은 지연들을 도입하는 경향이 있고, 일반적으로 파워 집중적(power intensive)이며 그리고 상대적으로 큰 반도체 풋프린트(footprint)들을 가진다. 따라서, 소프트 정보 디코딩 방법들은 이러한 그리고 다른 물리적 제약들로 인해 상대적으로 바람직하지 않은 것으로 남아 있다.
첨부된 특허 청구 범위의 범위 내에 있는 시스템들, 방법들 및 디바이스들의 다양한 구현들 각각은 여러 양상들을 가지는 바, 이러한 양상들 중 어떤 단일의 양상은 본 명세서에 기술된 속성들에 대해 단독으로 역할한다. 첨부된 특허 청구 범위의 범위를 한정함이 없이, 일부 현저한 특징들이 기술된다. 본 발명을 고려한 이후, 그리고 특히 "상세한 설명"란을 고려한 이후, 어떻게 다양한 구현들의 특징들이 다음의 사항들을 가능하게 하기 위해 사용되는지 이해될 것인 바, 이 사항들은 (i) 스토리지 매체로부터 판독된 에러 제어 인코딩된 데이터(error control encoded data)를 디코딩하기 위해 소프트 정보를 생성 및 이용하는 것; (ii) 하나 이상의 스토리지 매체 특성들과 관련된, 통계적으로 결정된 판독 비교 신호 값들을 결정 및 이용하는 것; 그리고 (iii) 하나 이상의 스토리지 매체 특성들과 관련된, 통계적으로 결정된 시프트된 판독 비교 신호 값들을 결정 및 이용하는 것이다.
일부 구현들은 플래시 메모리 또는 다른 스토리지 매체의 사용을 지원하기 위해 소프트 정보 에러 정정 디코딩을 이용하도록 된 시스템들, 방법들 및/또는 디바이스들을 포함한다. 특히, 일부 구현들에서, 소프트 정보 생성 시스템, 방법 및/또는 디바이스는 스토리지 매체 특성화 파라미터 값들의 대응하는 세트들을 위해 특성화 벡터(characterization vectors)들의 미리 생성된 집합(pre-generated collection)을 이용하는 바, 상기 스토리지 매체 특성화 파라미터 값들은 스토리지 매체로부터 판독될 수 있는 비트-튜플들에 대한 소프트 정보 값들을 포함한다. 일부 구현들에서, 소프트 정보는 특별한 제조 공정에 의해 생성되는 메모리 디바이스들을 위한 디바이스 특성화 공정에 의해 생성되며, 특성화 모듈 또는 룩-업 테이블(look-up table)에 저장된다. 상기 특성화 모듈 또는 룩-업 테이블은 스토리지 매체 특성화 파라미터 값들을 이용하여 인덱싱된다. 판독 동작 동안, 소프트 정보는, 스토리지 매체의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하여 특성 모듈로부터 특별한 특성화 벡터를 검색하고 그리고 스토리지 매체로부터 판독된 원시 데이터(raw data) 내의 각각의 비트-튜플에 대해 선택된 특성화 벡터로부터 각각의 소프트 정보 값을 선택함으로써 생성된다.
일부 구현들은 특성화 벡터들로부터 소프트 정보를 로그 유사도 비(LLR: log-likelihood ratio) 및/또는 천이(transition) 확률의 형태로 생성하도록 된 시스템들, 방법들 및/또는 디바이스들을 포함하고, 상기 특성화 벡터들은 다중-레벨 플래시 메모리 디바이스들에 대한 공동-페이지 판독들 및 단일-페이지 판독들 중 적어도 하나와 관련된 비트-튜플들에 대한 소프트 정보 값들을 포함한다. 그 다음, 소프트 정보 값들은 저 밀도-패리티 체크(LDPC) 코드 디코더 또는 다수의 다른 에러 정정 코드 디코더들 중 어느 것과 같은 ECC 디코더에 전달될 수 있다. 일부 구현들은 하나 이상의 스토리지 매체 특성화 파라미터 값들에 의해 인덱싱된 디바이스 조건들 및 공정 편차(variation)들의 다수의 조합들에 대한 특성화 벡터들의 집합을 생성하기 위해 디바이스 특성화 공정으로부터의 통계적 데이터를 이용한다. 일부 구현들에서, 특성화 벡터들 각각은 소프트 정보 값들(예컨대, LLR 값들 및/또는 천이 확률들)을 포함한다. 일부 구현들에서, 특성화 벡터들 각각은 디바이스 특성화 공정의 통계적 데이터로부터 결정된 판독 비교 신호 값들(예컨대, 전압들)의 적어도 일 세트를 포함한다. 일부 구현들에서, 특성화 벡터들 각각은 디바이스 특성화 공정의 통계적 데이터로부터 결정된 판독 비교 신호 값들의 두 개의 세트들을 포함한다. 판독 비교 신호 값들의 제2 세트는 디바이스 특성화 공정으로부터 이끌어내진 천이 확률들에 따라, 판독 비교 신호 값들의 제1 세트로부터 시프트된다.
일부 구현들은 스토리지 매체 내의 데이터의 위치들의 특별한 세트로부터 에러 정정된 데이터를 제공하기 위해 사용되는 판독 동작들의 수를 제한하기 위해서, 소프트 정보 값들의 두 개의 이전에 생성된 시퀀스들의 결합이 소프트 정보 값들의 제3 시퀀스를 생성하도록 한다. 이를 위해, 일부 구현들에서, 특성화 벡터들 중 적어도 하나(또는 대안적으로는, 특성화 벡터들 각각)는 소프트 정보 값들의 두 개의 이전에 생성된 시퀀스들로부터 소프트 정보 값들의 제3 시퀀스를 생성하기 위해 사용될 수 있는 가중 인자(weighting factor)들의 세트를 포함한다. 일부 구현들은 하나 이상의 현재의 스토리지 매체 특성들에 근거하여 상기 가중 인자들을 동적으로 계산한다. 추가적으로 그리고/또는 대안적으로는, 일부 구현들에서 소프트 정보 값들의 제3 시퀀스는 식별된 에러의 상태에 응답하여 생성된다.
일부 구현들에서, 데이터를 판독하는 것과 관련된 전체 레이턴시는 판독 동작들의 수를 제한함으로써(예컨대, 최대 두 개의 판독 동작들) 제어될 수 있다. 더욱이, 일부 구현들에서, 생성되는 소프트 정보 값들은 이전의 방법들에서 사용되는 소프트 정보 값들보다 신뢰성있을 수 있는 바, 그 이유는 특별한 비트-튜플들에 대한 소프트 정보 값들 및 판독 비교 신호 값들 중 하나 이상이 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하기 때문인 바, 이러한 파라미터 값들은 스토리지 매체의 적어도 일부와 관련된 물리적 특성, 스토리지 매체의 적어도 일부와 관련된 동작 모드, 스토리지 매체의 적어도 일부와 관련된 사용의 히스토리, 스토리지 매체의 적어도 일부와 관련된 상태 특성, 스토리지 매체의 적어도 일부와 관련된 판독 타입, 스토리지 매체의 적어도 일부와 관련된 위치 중 적어도 하나의 표시와 같은 것이다.
일부 구현들은 스토리지 매체의 현재의 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트에 근거하여 선택된, 통계적으로 결정된 판독 비교 신호 값을 이용하여 스토리지 매체로부터 데이터를 판독하도록 된 시스템들, 방법들 및/또는 디바이스들을 포함한다. 일부 구현들에서, 통계적으로 결정된 판독 비교 신호 값들은 특성화 벡터들의 집합에 저장되고, 그리고 특별한 제조 공정에 의해 생성된 디바이스들에 대한 특성화 공정에 의해 생성된다.
일부 구현들은 공칭(nominal) 판독 비교 신호 값 또는 천이 확률들에 근거하여 통계적으로 결정된 제1 판독 비교 신호 값에 대해 오프셋되고, 식별된 에러 상태에 응답하여 사용되는 통계적으로 결정된 시프트된 판독 비교 신호 값을 이용하여 스토리지 매체로부터 데이터를 판독하도록 된 시스템들, 방법들 및/또는 디바이스들을 포함한다. 일부 구현들에서, 통계적으로 결정된 시프트된 판독 비교 신호 값은 스토리지 매체의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트에 근거하여 선택된다. 일부 구현들에서, 다양한 시프트된 판독 비교 신호 값들은 특성화 벡터들의 집합에 저장되고, 그리고 특별한 제조 공정에 의해 생성된 디바이스들에 대한 특성화 공정에 의해 생성된다.
본 발명이 매우 상세하게 이해될 수 있도록, 보다 특별한 설명이 다양한 구현들의 특징들을 참조하게 될 수 있으며, 이러한 다양한 구현들의 일부는 첨부 도면들에 예시된다. 그러나, 첨부 도면들은 단지, 본 발명의 보다 적절한 특징들을 예시하며, 그러므로 설명이 다른 효과적인 특징들에 대해 인정될 수 있는 경우 제한적인 것으로 고려되어서는 안된다.
도 1은 데이터 스토리지 환경의 구현의 도해이다.
도 2는 시간에 걸쳐 다중-레벨 플래시 메모리 셀에서 발견될 수 있는 전압 분포의 도해이다.
도 3은 소프트 정보 생성 모듈을 포함하는 데이터 스토리지 환경의 구현의 도해이다.
도 4는 도 3에 포함된 소프트 정보 생성 모듈의 구현의 도해이다.
도 5a는 단일-레벨 메모리 셀 또는 다중-레벨 메모리 셀의 단일-페이지 판독과 관련될 수 있는 천이 확률 테이블이다.
도 5b는 도 5a의 천이 확률 테이블로부터 생성될 수 있는 특성화 벡터의 구현의 개략적인 도해이다.
도 6a는 다중-레벨 메모리 셀의 공동-페이지 판독과 관련될 수 있는 천이 확률 테이블이다.
도 6b는 도 6a의 천이 확률 테이블로부터 생성될 수 있는 특성화 벡터의 구현의 개략적인 도해이다.
도 7은 스토리지 매체로부터 판독된 데이터로부터 소프트 정보 값들을 생성하는 방법의 구현의 순서도 표시이다.
도 8은 이전에 생성된 소프트 정보 값들로부터 소프트 정보 값들을 생성하는 방법의 구현의 순서도 표시이다.
도 9는 스토리지 매체에 대한 소프트 정보 값들 및 판독 비교 전압들을 생성하는 동작을 하는 특성화 환경의 구현의 도해이다.
도 10은 하나 이상의 특성화 벡터들을 생성하는 방법의 구현의 순서도 표시이다.
도 11은 다중-메모리 셀들로부터 판독하기 위해 시프트된 판독 비교 전압을 생성하는 방법의 구현의 순서도 표시이다.
도 12는 특성화 벡터에 저장된 판독 비교 전압들의 복수의 세트들을 이용하는 방법의 구현의 순서도 표시이다.
일반적인 실시에 따르면, 도면들에 예시된 다양한 특징들은 스케일링하도록 그려진 것이 아닐 수 있다. 따라서, 다양한 특징들의 치수들은 임의로 확장되거나 또는 명확성을 위해 감소될 수 있다. 추가적으로, 도면들의 일부는 소정 시스템, 방법 또는 디바이스의 컴포넌트들의 모두를 도시하지 않을 수 있다. 마지막으로, 유사한 도면 부호들은 명세서 및 도면들의 전반에서 유사한 특징들을 나타내기 위해 사용될 수 있다.
본 명세서에 기술된 다양한 구현들은 데이터가 메모리에 저장 및 판독될 수 있는 신뢰성을 향상시키기 위해 사용되는 에러 제어 코드들의 성능을 강화시킬 수 있는 시스템들, 방법들 및/또는 디바이스들을 포함한다. 일부 구현들은 스토리지 매체로부터 판독되는 에러 제어 인코딩된 데이터를 디코딩하기 위해 소프트 정보를 생성 및 이용하도록 하는 시스템들, 방법들 및/또는 디바이스들을 포함한다. 특히, 일부 구현들은 스토리지 매체로부터 판독될 수 있는 비트-튜플들에 대한 소프트 정보 값들을 포함하는 특성화 벡터들의 집합을 이용하며, 각각의 특성화 벡터는 스토리지 매체 특성화 파라미터 값들의 서로 다른 세트에 대응한다. 추가적으로 그리고/또는 대안적으로는, 일부 구현들은 소프트 정보 값들의 제1 시퀀스를 생성하기 위해서, 하나 이상의 스토리지 매체 특성화 파라미터 값들과 관련된 통계적 분포들의 대응하는 세트들로부터 식별된 판독 비교 신호 값들을 결정 및 이용하도록 된다. 추가적으로 그리고/또는 대안적으로는, 일부 구현들은 소프트 정보 값들의 제2 시퀀스를 생성하기 위해, 식별된 에러 상태 및 하나 이상의 스토리지 매체 특성화 파라미터 값들과 관련된 시프트된 판독 비교 신호 값들을 결정 및 이용하도록 된다. 추가적으로 그리고/또는 대안적으로는, 일부 구현들은 식별된 에러 상태에 응답하여 소프트 정보 값들의 제3 시퀀스를 생성하도록 소프트 정보 값들의 제1 및 제2 시퀀스들을 결합하도록 된다.
다수의 세부사항들이 첨부 도면들에 예시된 예시적인 구현들의 완전한 이해를 제공하기 위해 본 명세서에 기술된다. 그러나, 본 발명은 많은 이러한 특정 세부사항들 없이 실시될 수 있다. 그리고, 잘 알려진 방법들, 컴포넌트들 및 회로들은 본 명세서에 기술된 실시예들의 보다 적절한 양상들을 불필요하게 모호하게 만들지 않도록 빠짐없이 상세하게는 기술되지 않는다.
도 1은 데이터 스토리지 환경(100)의 구현의 도해이다. 일부 예시적인 특징들이 도시되지만, 이 기술 분야의 숙련자들은 다양한 다른 특징들이 간결성을 위해 그리고 본 명세서에 기술된 예시적 구현들의 보다 적절한 양상들을 모호하게 만들지 않도록 예시되지 않았음을 본 발명으로부터 이해할 것이다. 이를 위해, 비 제한적인 예로서, 데이터 스토리지 환경(100)은 데이터 프로세싱 시스템(100), 메모리 제어기(120) 및 스토리지 매체(130)을 포함한다. 일부 구현들에서, 스토리지 매체(130)는 하나 이상의 플래시 메모리 디바이스들을 포함한다. 일부 구현들에서, 스토리지 매체(130)는 NAND 타입 플래시 메모리 및 NOR 타입 플래시 메모리 중 적어도 하나를 포함한다.
데이터 프로세싱 시스템(110)은 데이터 연결들(101)를 통해 메모리 제어기(120)에 연결된다. 더욱이, 이 기술 분야의 숙련자들은 다양한 구현들에서, 데이터 프로세싱 시스템(110)이 메모리 제어기(120)를 컴포넌트로서 포함함을 본 발명으로부터 이해할 것이다. 데이터 프로세싱 시스템(110)은 컴퓨터, 랩탑 컴퓨터, 태블릿 디바이스, 넷북, 인터넷 키오스크, 개인용 디지털 단말기, 모바일 폰, 스마트 폰, 게임 디바이스, 컴퓨터 서버 또는 어떤 다른 컴퓨팅 디바이스와 같은 어떤 적절한 컴퓨터 디바이스일 수 있다. 일부 구현들에서, 데이터 프로세싱 시스템(110)은 하나 이상의 프로세서들, 하나 이상의 타입의 메모리, 디스플레이 및/또는 키보드, 터치 스크린 디스플레이, 마우스, 트랙-패드, 디지털 카메라 및/또는 기능성을 추가하도록 하는 어떤 수의 보충 디바이스들과 같은 다른 사용자 인터페이스 컴포넌트들을 포함한다.
스토리지 매체(130)는 데이터 연결들(103)을 통해 메모리 제어기(120)에 연결된다. 더욱이, 이 기술분야의 숙련자들은 다양한 구현들에서, 메모리 제어기(120) 및 스토리지 매체(130)가 동일한 디바이스에 상기 디바이스의 구성 컴포넌트들로서 포함됨을 본 발명으로부터 이해할 것이다. 스토리지 매체(130)는 제한 없이, 플래시 메모리와 같은 비휘발성 반도체 메모리 디바이스들을 포함하는 어떤 수의(즉, 하나 이상의) 메모리 디바이스들을 포함할 수 있다. 예를 들어, 플래시 메모리 디바이스들은 클라우드 컴퓨팅과 같은 어플리케이션들에 적절한 기업 스토리지를 위해 구성될 수 있다. 추가적으로 그리고/또는 대안적으로는, 플래시 메모리는 또한, 개인용 랩탑 및 태블릿 컴퓨터들 용의 개인용 플래시 드라이버들 또는 하드 디스크 대체품들과 같은 상대적으로 작은 스케일의 어플리케이션들을 위해 구성될 수 있다.
스토리지 매체는 종종, 선택가능한 부분(131)과 같은 다수의 어드레싱가능하고 개별적으로 선택가능한 블록들로 나누어진다. 일부 실시예들에서, 플래시 메모리의 경우, 개별적으로 선택가능한 블록들은 플래시 메모리 디바이스 내의 최소 사이즈의 소거가능한 유닛들이다. 다시 말해, 각각의 블록은 동시에 소거될 수 있는 최소 개수의 메모리 셀들을 포함한다. 각각의 블록은 일반적으로, 복수의 페이지들로 더 나누어지며, 각각의 페이지는 전형적으로, 블록 내의 가장 작은 개별적으로 액세스가능한 서브-블록인 최소 유닛의 인스턴스이다. 그러나, 데이터 세트의 최소 유닛은 또한, 동일한 타입의 플래시 메모리 내의 섹터일 수 있다. 즉, 각각의 페이지는 복수의 섹터들을 포함하고, 각각의 섹터는 데이터 세트의 최소 유닛이어서, 일 페이지는 플래시 메모리 디바이스로의 데이터 기록 또는 판독을 위한 최소 유닛이다.
일반적으로, 일 블록은 어떤 수의 페이지들, 예컨대, 64 페이지, 128 페이지, 256페이지 또는 다른 적절한 수의 페이지들을 포함할 수 있다. 블록들은 전형적으로, 복수의 구역(zone)들로 그룹화된다. 각각의 블록 구역은 병행 동작들의 병행성의 정도를 증가시키고 스토리지 매체(130)의 관리를 간락화하는 어느 정도까지 독립적으로 관리될 수 있다.
상기에 주목된 바와 같이, 비 휘발성 반도체 메모리 디바이스들의 데이터 스토리지 밀도들은 일반적으로 증가되고 있고, 증가되는 스토리지 밀도의 문제점은 저장된 데이터가 점점, 잘못 저장 및/또는 판독되기 쉽다는 점이다. 하기에 매우 상세히 기술되는 바와 같이, 에러 제어 코딩은 의사-랜덤 변동들, 매체 내의 결함들, 동작 조건들, 디바이스 히스토리 및/또는 기록-판독 회로망, 등 또는 이러한 인자들의 조합에 의해 도입되는 정정불가능한 에러들의 수를 제한하기 위해 이용되어 왔다.
일부 구현들에서, 메모리 제어기(120)는 관리 모듈(121), 입력 버퍼(123), 출력 버퍼(124), 에러 제어 모듈(125) 및 스토리지 매체 인터페이스(I/O)(128)를 포함한다. 이 기술분야의 숙련자들은 메모리 제어기(120)가 간결성을 위해 그리고 본 명세서에 기술된 예시적 구현들의 보다 적절한 특징들을 모호하게 만들지 않도록 예시되지 않은 다양한 추가적인 특징들을 포함할 수 있음을 그리고 특징들의 다른 구성이 가능할 수 있음을 본 발명으로부터 이해할 것이다. 입력 및 출력 버퍼들(123, 124)은 데이터 연결들(101)을 통해 데이터 프로세싱 시스템(110)에 인터페이스를 제공한다. 유사하게, 스토리지 매체 I/O(128)는 데이터 연결들(103)을 통해 스토리지 매체(130)에 인터페이스를 제공한다. 일부 구현들에서, 스토리지 매체 I/O(128)는 스토리지 매체(130)에 판독 비교 신호 값들을 제공할 수 있는 회로망을 포함하여 판독 및 기록 회로망을 포함한다.
일부 구현들에서, 관리 모듈(121)은 하나 이상의 프로그램들, 예컨대, 관리 모듈(121)에서 명령어들을 실행하도록 구성된 프로세서(122)를 포함한다. 그러나, 이 기술분야의 숙련자들은 프로세서(122)가 메모리 제어기(120)의 기능 내에서 그리고 일부 경우들에서는 메모리 제어기(120)의 기능을 넘어 하나 이상의 컴포넌트들에 의해 공유될 수 있음 본 발명으로부터 이해할 것이다. 관리 모듈(121)은 컴포넌트들의 동작을 조직화하기 위해, 입력 및 출력 버퍼들(123, 124), 에러 제어 모듈(125) 및 스토리지 매체 I/O(128)에 연결된다.
에러 제어 모듈(125)은 스토리지 매체 I/O(128)와 입력 및 출력 버퍼들(123, 124) 사이에 연결된다. 에러 제어 모듈(125)은 데이터에 무심코 도입되는 정정불가능한 에러들의 수를 제한하기 위해 제공된다. 이를 위해, 에러 제어 모듈(125)은 인코더(126) 및 디코더(127)를 포함한다. 인코더(126)는 스토리지 매체(130)에 후속적으로 저장되는 코드워드를 생성하기 위해 에러 제어 코드를 적용시킴으로써 데이터를 인코딩한다. 인코딩된 데이터가 스토리지 매체로부터 판독될 때, 디코더(127)는 데이터를 복구하기 위해 그리고 에러 제어 코드의 에러 정정 능력 내에서 복구된 데이터 내의 에러들을 정정하기 위해 디코딩 프로세스를 적용한다. 이 기술분야의 숙련자들은 다양한 에러 제어 코드들이 서로 다른 에러 검출 및 정정 능력들을 가짐을 그리고 특별한 코드들이 본 개시물의 필수적인 범위를 넘어서는 이유들에 대해 다양한 어플리케이션들을 위해 선택됨을 본 발명으로부터 이해할 것이다. 따라서, 다양한 타입의 에러 제어 코드들의 빠짐없는 리뷰가 간결성을 위해 제공되지 않는다. 더욱이, 이 기술분야의 숙련자는 에러 제어 코드들의 각각의 타입 또는 군(family)은 그 에러 제어 코드들의 타입 또는 군에 특별한 인코딩 및 디코딩 알고리즘들을 가질 수 있음을 이해할 것이다. 한편, 비터비 알고리즘(Viterbi algorithm)과 같은 일부 알고리즘들은 에러 제어 코드들의 다수의 서로 다른 타입들 또는 군들의 디코딩에서 적어도 어느 정도까지 이용될 수 있다. 따라서, 간결성을 위해, 이 기술분야의 숙련자들에게 알려져 있고 일반적으로 이용가능한 다양한 타입의 인코딩 및 디코딩 알고리즘들의 빠짐없는 설명은 본 명세서에 제공되지 않는다.
기록 동작 동안, 입력 버퍼(123)는 데이터 프로세싱 시스템(110)으로부터 스토리지 매체(130)에 저장될 데이터를 수신한다. 입력 버퍼(123) 내의 데이터는 코드워드를 생성하기 위해 데이터를 인코딩하는 인코더(126)에 이용가능하게 이루어진다. 코드워드는 이용되는 스토리지 매체의 타입에 좌우되는 방식으로 스토리지 매체(130)에 코드워드를 전달하는 스토리지 매체 I/O(128)에 이용가능하게 이루어진다. 동일한 데이터에 대한 판독 동작 동안, 스토리지 매체 I/O(128)는 대응하는 코드워드가 코드워드를 판독하고 디코더(127)에 그 코드워드를 제공하기 위해 저장되는 스토리지 매체(130)의 부분에 액세스한다.
만일 디코딩이 성공적이면, 디코딩된 데이터는 출력 버퍼(124)에 제공되며, 상기 디코딩된 데이터는 데이터 프로세싱 시스템(110)에 이용가능하게 이루어진다. 일부 구현들에서, 만일 디코딩이 성공적이지 않으면, 메모리 제어기(120)는 하기에 보다 상세히 논의되는 바와 같이, 서로 다른 디코딩 또는 에러 정정을 사용하여 다시 스토리지 매체로부터 코드워드를 판독한다.
많은 에러 제어 코드들의 경우, 디코딩 프로세스는 소프트 정보를 사용함으로써 개선될 수 있다. 하드 정보 디코딩은 일반적으로, 데이터 값(예컨대, 데이터-비트 또는 코드-비트)이 특별한 심볼 알파벳에서 일 심볼인지 또는 또다른 심볼인지에 관하여 절대적인 결정(absolute decision)들이 이루어짐을 의미한다. 예를 들어, 바이너리 시스템에서, 심지어 스토리지 위치로부터 판독되는 원시 전기적 아날로그 값이, 데이터 값을 나타내는 전기적 값이 확실성(certainty) - 상기 데이터 값이 "0" 또는 "1"이라는 확실성 - 으로 결정하기에 충분함을 나타내지 않는 경우에도, 특별한 데이터 값은 "0" 또는 "1"일 수 있다. 다시 말해, 특별한 데이터 값에 대한 하드-결정은 스토리지 매체로부터 판독되는 아날로그 전기적 값에 대응하는 가장 높은 가능성을 가진 심볼에 근거하며, 대안적인 결정들이 참(true)일 수 있을 확률들은 하드-결정 프로세스에 의해 무시된다. 종종, 하드-결정은 아날로그 판독 값으로부터 심볼들을 정의하는 전기적 레벨(들)까지의 유클리드 거리(Euclidian distance)들에 근거한다. 그에 반해서, 소프트 정보의 사용은 스토리지 매체로부터 무엇이 판독되는지에 비추어 서로 다른 여러 가지 결과들이 참일 확률을 무시하지 않는다. 소프트 정보를 이용하는 에러 제어 방법들은 특히 전도유망한 바, 그 이유는 소프트 정보 디코딩이 종종 특별한 에러 제어 코드의 에러 검출 및 정정 능력을 향상시키고, 따라서 시스템의 용량을 향상시키기 때문이다.
그러나, 상기에 논의된 바와 같이, 소프트 정보 디코딩의 이용은 다수의 이전에 해결불가능한 문제점들 때문에 제한되어 왔다. 일 특별한 난제는 소프트 정보의 사용을 유익하게 하도록 충분한 통계적 정확도를 가지는 소프트 정보를 생성하기 위해 이전에 요구된 지연을 관리하는 것이었다. 유사-랜덤 전기적 변동들, 동작 조건들 및 디바이스 히스토리로부터의 영향들로 인해, 판독되는 어떤 일 데이터의 결과는 저장된 데이터 상의 누적된 영향들의 현재의 세트를 통계적으로 나타내지 못할 수 있다. 따라서, 이전의 방법들을 이용하여, 소프트 정보 생성은 동일한 데이터를 다수 번 판독하는 것을 요했고, 각각의 비트 또는 심볼에 대해 통계적으로 정확한 소프트 정보 값을 생성하기 위해 판독 결과들을 결합하는 것을 요했다. 소프트 정보의 정확도는 일반적으로, 판독들의 수로 개선된다. 그러나, 각각의 판독은 지연을 추가하며, 데이터 값들의 전체 시퀀스를 위해 정확한 소프트 정보를 생성하도록 하는 종합적인 지연은 소프트 정보의 사용을 바람직하지 않게 만들었다.
이에 반하여, 하기에 논의된 바와 같이, 일부 구현들은 플래시 메모리 또는 다른 스토리지 매체의 사용을 지원하기 위해 소프트 정보 에러 정정 디코딩을 이용하도록 된 시스템들, 방법들 및/또는 디바이스들을 포함한다. 특히, 일부 구현들에서, 소프트 정보 생성 시스템, 방법 및/또는 디바이스는 스토리지 매체 특성화 파라미터 값들의 다양한 조합들에 대해 스토리지 매체로부터 판독될 수 있는 비트-튜플들에 대한 소프트 정보 값들을 포함하는 특성화 벡터들의 미리 생성된 집합을 이용한다. 일부 구현들에서, 소프트 정보는 특별한 제조 공정에 의해 생성된 메모리 디바이스들에 대한 디바이스 특성화 공정에 의해 생성되며, 스토리지 매체 특성화 파라미터 값들을 이용하여 인덱싱되는 특성화 모듈 또는 룩-업 테이블에 저장된다. 판독 동작 동안, 소프트 정보의 시퀀스는, 스토리지 매체의 현재의 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하여 특성화 모듈로부터 특별한 특성화 벡터를 검색하고, 그리고 스토리지 매체로부터 판독되는 원시 데이터 내의 각각의 비트-튜플에 대해 선택된 특성화 벡터로부터 각각의 소프트 정보 값을 선택함으로써 생성된다. 스토리지 매체의 현재 상태와 관련된 스토리지 매체 특성화 파라미터 값들은 때때로, 스토리지 매체의 현재 상태와 관련된다고 할 수 있는 바, 그 이유는 스토리지 매체 특성화 파라미터 값들이 스토리지 매체의 상태의 일부 양상들만을 표시하기 때문이다.
플래시 메모리 디바이스들은 데이터를 전하들 또는 전압들과 같은 전기적 값으로 저장하기 위해 메모리 셀들을 이용한다. 각각의 플래시 메모리 셀은 전형적으로는, 전하를 저장하기 위해 사용되는 플로팅 게이트를 가진 단일 트랜지스터를 포함하며, 상기 전하는 트랜지스터의 임계 전압(즉, 트랜지스터를 턴 온 시키기 위해 필요되는 전압)을 변경한다. 전하의 크기 및 전하가 생성하는 대응하는 임계 전압은 하나 이상의 데이터 값들을 나타내기 위해 사용될 수 있다. 판독 동작 동안, 판독 전압은 트랜지스터의 제어 게이트에 인가되고, 결과적인 전류 또는 전압은 데이터 값에 매핑된다.
플래시 메모리 내의 스토리지 밀도를 증가시키기 위해, 플래시 메모리는 단일-레벨 플래시 메모리로부터 다중-레벨 플래시 메모리로 발전되어 와서, 둘 이상의 비트들이 각각의 메모리 셀에 의해 저장될 수 있다. 단일-레벨 플래시 메모리 셀(SLC)은 정보의 일 비트("0" 또는 "1")를 저장한다. 다시 말해, SLC 메모리 디바이스의 스토리지 밀도는 셀(또는 트랜지스터) 당 일 비트이다. 다중-레벨 플래시 메모리 셀(MLC)은 다중-비트 비트-튜플을 나타내기 위해 셀의 전체 전압 범위 내에서 서로 다른 여러 가지 범위들을 이용함으로써 둘 이상의 비트들을 저장할 수 있다. 또한, MLC 메모리 디바이스의 스토리지 밀도는 셀 당 복수의 비트들(예컨대, 트랜지스터 당 2 비트)이다.
도 2를 참조하여 하기에 논의되는 바와 같이, MLC 메모리 디바이스는 서로 다른 여러 가지 비트-튜플들을 나타내기 위해 메모리 셀의 전체 전압 범위 내에서 전압 범위들을 사용함으로써 복수의 비트들을 저장하기 위해 사용된다. MLC 메모리 디바이스는 전형적으로, 동일한 제조 공정을 이용하여 생성되는 SLC 메모리 디바이스보다 많은 에러를 가지기 쉬운 바, 그 이유는 서로 다른 데이터 값들을 저장하기 위해 사용되는 전압들 간의 유효 전압차(effective voltage difference)가 MLC 메모리 디바이스의 경우보다 작기 때문이다. 더욱이, 유사-랜덤 전기적 변동들, 스토리지 매체 내의 결함들, 동작 조건들, 디바이스 히스토리 및/또는 기록-판독 회로망과 같은 어떤 수의 인자들의 조합으로 인해, 전형적인 에러는 특별한 비트-튜플의 정확한 스토리지를 나타낼 수 있는 전압 범위에 인접한 전압 범위에 있는, 특별한 MLC 내의 저장된 전압 레벨을 포함한다. 도 2를 참조하여 하기에 더욱 상세히 논의되는 바와 같이, 이러한 에러들의 영향(impact)은 데이터를 그레이-코딩함으로써 감소될 수 있어서, 인접한 전압 범위들은 비트-튜플들 간의 단일-비트 변경들을 나타낸다.
도 2는 시간에 걸쳐 다중 레벨 플래시 메모리 셀에서 발견될 수 있는 전압 분포들(200)의 도해이다. 이 기술분야의 숙련자들은 전압 분포들(200)이 예시적인 목적을 위해 간략화되었음을 본 발명으로부터 이해할 것이다. MLC의 셀 전압은 거의, NMOS 트랜지스터의 소스 단자에서의 전압 VSS(210)으로부터 드레인 단자에서의 전압 VDD(214)로 확장된다.
소스와 드레인 전압들(VSS(210)과 VDD(214)) 사이의 순차적인 전압 범위들(201, 202, 203, 204)은 대응하는 비트-튜플들 "11", "01", "00", "10"을 각각 나타내기 위해 사용된다. 각각의 전압 범위(201, 202, 203, 204)는 각각의 중앙 전압(201b, 202b, 203b, 204b)을 가진다. 각각의 전압 범위(201, 202, 203, 204)는 또한, 의사-랜덤 전기적 변동들, 스토리지 매체 내의 결함들, 동작 조건들, 디바이스 히스토리(에컨대, 많은 수의 프로그램-소거(P/E) 사이클들) 및/또는 기록-판독 회로망의 불완전한 성능 또는 설계와 같은 어떤 수의 인자들의 조합의 결과로 발생될 수 있는 전압들의 각각의 분포(201a, 202a, 203a, 204a)를 가진다.
이상적으로는, 기록 동작 동안, MLC의 플로팅 게이트 상의 전하는 결과적인 셀 전압이 MLC에 대응하는 비트-튜플을 기록하기 위해 범위들(201, 202, 203, 204) 중 하나의 중앙에 있도록 설정될 수 있다. 특히, 결과적인 셀 전압은 비트-튜플들 "11", "01", "00" 및 "10" 중 대응하는 하나를 기록하기 위해 V11(201b), V10(202b), V00(203b) 및 V10(204b) 중 하나로 설정될 수 있다. 실제로, 상기에 언급된 인자들로 인해, 초기 셀의 전압은 MLC에 기록된 데이터에 대한 중앙 전압과 다를 수 있다.
판독 비교 전압들 VR1(211), VR2(212) 및 VR3(213)은 인접한 중앙 전압들 사이에 위치되는 바, 예컨대, 인접한 중앙 전압들 사이의 중간 지점에 또는 그 근처에 위치되고, 따라서 전압 범위들(201, 202, 203, 204) 간의 임계 전압들을 정의한다. 판독 동작 동안, 판독 비교 전압들 VR1(211), VR2(212) 및 VR3(213)은 비교 프로세스를 이용하여 셀 전압을 결정하기 위해 인가된다. 그러나, 상기에 논의된 다양한 인자들로 인해, 실제 셀 저압 및/또는 MLC를 판독할 때 수신되는 셀 전압은 셀에 기록된 데이터 값에 대응하는 각각의 중앙 전압 V11(201b), V10 (202b), V00(203b) 또는 V10(204b)과 다를 수 있다. 예를 들어, 실제 셀 전압은 완전히 다른 전압 범위에 있을 수 있는 바, 이는 MLC가 상기 MLC에 기록했던 것과 다른 비트-투풀을 저장하고 있음을 강하게 나타낸다. 보다 일반적으로는, 실제 셀 전압은 판독 비교 전압들 중 하나와 가까이 있을 수 있는 바, 이는 두 개의 인접한 비트-튜플들 중 어느 것이 MLC에 의해 저장되는지의 확실성으로 결정하는 것을 어렵게 만든다.
셀 전압 및/또는 MLC를 판독할 때 수신된 셀 전압의 에러들은 기록 동작들, 판독 동작들 동안 발생될 수 있거나 또는 데이터가 MLC에 기록되는 시간과 판독 동작이 MLC에 저장된 데이터를 판독하기 위해 수행되는 시간 사이의 셀 전압의 "구동"으로 인해 발생될 수 있다. 논의의 용의를 위해, 때때로 셀 전압 및/또는 MLC를 판독할 때 수신되는 셀 전압의 에러들은 "셀 전압 드리프트(drift)"라고 집합적으로 지칭된다.
일 전압 범위로부터 인접한 전압 범위로 드리프트하는 셀 전압의 영향을 줄이기 위한 일 방식은 비트-튜플들을 그레이-코딩하는 것이다. 비트-튜플들을 그레이-코딩하는 것은 특별한 전압 범위의 각각의 비트-튜플이 단 하나의 비트에 의해 인접한 전압 범위의 각각의 비트-튜플과 다르도록 비트-튜플들의 할당에 제약을 두는 것을 포함한다. 예를 들어, 도 2에 도시된 바와 같이, 인접한 범위들(201 및 202)에 대한 대응하는 비트-튜플들은 각각 "11" 및 "01"이고, 인접한 범위들(202 및 203)에 대한 대응하는 비트-튜플들은 각각 "01" 및 "00"이이며, 그리고 인접한 범위들(203 및 204)에 대한 대응하는 비트-튜플들은 각각 "00" 및 "10"이다. 그레이-코딩을 이용하여, 셀 전압이 판독 비교 전압 레벨에 가깝게 드리프트하면, 에러는 전형적으로, 2-비트 비트-튜플 내에서 단일 비트로 제한된다.
도 3은 다중-레벨 플래시 메모리 디바이스들에서 발생되는 전압 분포들로부터 정보를 이용하는 데이터 스토리지 환경(200)의 구현의 도해이다. 도 3에 도시된 데이터 스토리지 환경(200)은 도 1에 도시된 데이터 스토리지 환경(100)과 유사하고, 이 데이터 스토리지 환경(100)으로부터 적응된 것이다. 각각에 대한 공통 요소들은 공통적인 도면 부호들을 포함하며, 도 1과 3 간의 차이점만이 간결성을 위해 본 명세서에 기술된다. 더욱이, 어떤 특정한 특징들이 예시되지만, 이 기술 분야의 숙련자들은 다양한 다른 특징들이 간결성을 위해 그리고 본 명세서에 기술된 예시적 구현들의 보다 적절한 양상들을 모호하게 만들지 않도록 예시되지 않았음을 본 발명으로부터 이해할 것이다.
이를 위해, 비-제한적인 예로서, 데이터 스토리지 환경(200) 및 특히 메모리 제어기(200)는 또한, 스토리지 매체(130)로부터 판독되는 에러 제어 인코딩된 데이터를 디코딩하기 위한 소프트 정보, 스토리지 매체의 하나 이상의 특성들과 관련된 통계적으로 결정된 판독 비교 신호 값들, 및 식별된 에러 상태 및 스토리지 매체의 하나 이상의 특성들과 관련된 통계적으로 결정된 시프트된 판독 비교 신호 값들 중 적어도 하나를 이용하도록 되어 있다.
특히, 메모리 제어기(120)는 소프트 정보 생성 모듈(229)을 추가적으로 포함한다. 도 4 및 7을 참조하여 하기에 더욱 상세히 기술되는 바와 같이, 일부 구현들에서, 소프트 정보 생성 모듈(229)은 특성화 벡터들의 미리 생성된 집합을 이용함으로써 스토리지 매체(130)로부터 판독되는 데이터의 각각의 세트에 대한 소프트 정보 값들을 생성하는 바, 상기 특성화 벡터들의 미리 생성된 집합은 스토리지 매체 특성화 파라미터 값들의 다양한 조합들에 대해 스토리지 매체로부터 판독될 수 있는 비트-튜플들에 대한 소프트 정보 값들을 포함한다. 도 4 및 9를 참조하여 하기에 더욱 상세히 기술되는 바와 같이, 일부 구현들에서, 소프트 정보는 특별한 제조 공정에 의해 생성되는 메모리 디바이스들에 대한 디바이스 특성화 제조 공정에 의해 생성되고, 소프트 정보 생성 모듈(229)에 포함된 특성화 모듈 또는 룩-업 테이블에 저장된다.
소프트 정보 생성 모듈(229)은 관리 모듈(121), 에러 제어 모듈(125) 및 스토리지 매체 I/O(128)에 연결된다. 특히, 관리 모듈(121)은 소프트 정보 생성 모듈(229)에 제어 라인(225) 및 데이터 라인(226) 각각 상으로 제어 신호 및 하나 이상의 스토리지 매체 특성화 파라미터 값들을 제공하기 위해 연결된다. 스토리지 매체 I/O(128)은 데이터를 판독할 때 사용하기 위해 스토리지 매체(130)에 제공될 판독 비교 전압들을 데이터 라인(227)을 통해 수신하고, 데이터 라인(228)을 통해 판독 동작으로부터의 결과적인 원시 판독 데이터를 소프트 정보 생성 모듈(229)에 제공하기 위해 연결된다. 소프트 정보 생성 모듈(229)은 스토리지 매체 I/O(128)로부터 수신된 원시 판독 데이터에 대응하는 소프트 정보의 적어도 하나의 시퀀스를 디코더(127)에 제공하기 위해 연결된다. 추가적으로 그리고/또는 대안적으로는, 일부 구현들에서, 소프트 정보 생성 모듈(229)은 또한, 판독 비교 신호 값들(예컨대, 전압 레벨들 또는 전압 레벨들의 표시들, 등)의 하나 이상의 세트들을 스토리지 매체 I/O(128)에 제공하기 위해 연결된다. 일부 구현들에서, 관리 모듈(121)은 소프트 정보 생성 모듈(229)을 포함한다.
기록 동작 동안, 상기에 기술된 바와 같이, 입력 버퍼(123)는 데이터 프로세싱 시스템(110)으로부터 스토리지 매체(130)에 저장될 데이터를 수신한다. 입력 버퍼(123) 내의 데이터는 코드워드를 생성하기 위해 데이터를 인코딩하는 인코더(126)에 이용가능하게 이루어진다. 코드워드는 이용되고 있는 스토리지 매체의 타입에 좌우되는 방식으로 스토리지 매체(130)에 코드워를 전달하는 스토리지 매체 I/O(128)를 통해 스토리지 매체에 전해진다. 예를 들어, MLC 플래시 메모리의 경우, 코드워드의 각각의 비트-튜플은 각각의 메모리 셀의 플로팅 게이트 상이 전하를 충전함으로써 각각의 메모리 셀 내로 기록된다.
판독 동작은 데이터 프로세싱 시스템(110)(또는 그와 유사한 것)이 제어 라인(111) 상으로 메모리 제어기(120)에 제어 신호를 전송함으로써 스토리지 매체(130)로부터 데이터를 요청할 때 개시된다. 일부 구현들에서, 메모리 제어기(120)는 데이터 프로세싱 시스템(110)으로부터 스토리지 매체(130)의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들을 판독 요청과 함께 수신한다. 일부 구현들에서, 메모리 제어기(120)는 데이터 프로세싱 시스템(110)으로부터 판독 요청을 수신함에 응답하여, 스토리지 매체(130)의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들을 검색한다. 또한, 메모리 제어기(120)의 관리 모듈(121)은 소프트 정보 생성 모듈(229)에 판독 요청을 패스한다. 일부 구현들에서, 소프트 정보 생성 모듈(229)은 판독 요청과 함께, 스토리지 매체(130)의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들을 수신한다. 일부 구현들에서, 소프트 정보 생성 모듈(229)은 판독 요청을 수신함에 응답하여, 관리 모듈(121), 데이터 프로세싱 시스템(110) 및/또는 스토리지 매체 특성화 파라미터 값 스토리지 모듈 중 하나로부터 하나 이상의 스토리지 매체 특성화 파라미터 값들을 검색한다. 일부 구현들에서, 하나 이상의 스토리지 매체 특성화 파라미터 값들은, 스토리지 매체의 적어도 일부와 관련된 물리적 특성, 스토리지 매체의 적어도 일부와 관련된 동작 모드, 스토리지 매체의 적어도 일부와 관련된 사용의 히스토리, 스토리지 매체의 적어도 일부와 관련된 상태 특성, 스토리지 매체의 적어도 일부와 관련된 판독 타입, 스토리지 매체의 적어도 일부와 관련된 위치 중 적어도 하나의 표시를 제공한다. 일부 구현들에서, 하나 이상의 스토리지 매체 특성화 파라미터 값들은 액세스되고 있는 스토리지 매체 위치들의 표시, 액세스되고 있는 스토리지 매체 위치들의 이전의 프로그램/소거 사이클들의 수의 표시, 스토리지 매체(130)의 현재 온도의 표시를 포함한다.
소프트 정보 생성 모듈(229)은 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하여 특성화 벡터를 검색하고, 선택적인 부분(131)과 같은 스토리지 매체(130)의 일부로부터 판독하도록 스토리지 매체 I/O(128)를 프롬프트한다. 스토리지 매체 I/O(128)는 스토리지 매체로부터 판독하고 소프트 정보 생성 모듈(229)에 원시 하드-결정 판독 데이터의 시퀀스를 제공한다. 주목할 필요가 있는 점으로서, 일부 구현들에서, 원시 판독 데이터는 하드-결정 데이터일 수 있는 바, 그 이유는 특성화 모듈 내의 특성화 벡터들에 저장된 소프트 정보는 많은 경우들에서 소정 판독 동작에 대한 개별적인 메모리 셀들로부터 판독되는 원시 전기적 아날로그 값보다 통계적으로 정확하기 때문이다. 게다가, 통계적으로 정확한 소프트 정보 값들의 단일 세트를 생성하기 위해 복수의 판독 동작들을 요하는 이전의 시스템들을 제공하는 것과는 대조적으로, 소프트 정보 생성 모듈(229)은 단일-페이지 판독 동작을 이용하여 통계적으로 정확한 소프트 정보 값들을 생성할 수 있다. 일부 구현들에서, 소프트 정보 생성 모듈(229)은, 스토리지 매체(130)로부터 판독되는 원시 하드-결정 데이터 내의 각각의 비트-튜플에 대해 선택된 특성화 벡터로부터 각각의 소프트 정보 값을 선택함으로써 원시 하드-결정 판독 데이터에 대응하는 소프트 정보 값의 시퀀스를 생성한다.
추가적으로 그리고/또는 대안적으로는, 판독 동작 동안, 소프트 정보 생성 모듈(229)은 스토리지 매체 I/O(128)에 통계적으로 결정된 판독 비교 신호 값들을 제공한다. 일반적으로, 통계적으로 결정된 판독 비교 신호 값들은 스토리지 매체(130)의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하여 선택된다. 따라서, 스토리지 매체(130)의 소정 현재 상태에 대해, 통계적으로 결정된 판독 비교 신호 값들은 하나 이상의 스토리지 매체 특성화 파라미터 값들에 관련함이 없이 선택된 공칭 설계 값보다 정확한 판독 데이터를 생성할 수 있다. 일부 구현들에서, 통계적으로 결정된 판독 비교 신호 값들은 하나 이상의 스토리지 매체 특성화 파라미터 값들에 의해 인덱싱된 특성화 벡터들의 집합에 저장된다. 도 4 및 10을 참조하여 하기에 더욱 상세히 기술되는 바와 같이, 일부 구현들에서, 통계적으로 결정된 판독 비교 신호 값들은 특별한 제조 공정에 의해 생성되는 디바이스들에 대한 특성화 공정을 이용하여 결정된다.
추가적으로 그리고/또는 대안적으로는, 제1 판독 동작 이후에 식별된 에러 상태에 응답하여, 소프트 정보 생성 모듈(229)은 스토리지 매체 I/O(127)에 통계적으로 결정된 시프트된 판독 비교 신호 값들을 제공한다. 일반적으로, 통계적으로 결정된 시프트된 판독 비교 신호 값들은 공칭 설계 값 또는 제1의 통계적으로 결정된 판독 비교 신호 값에 대해 오프셋되며, 특별한 제조 공정에 의해 생성되는 디바이스들에 대한 특성화 공정을 사용하여 결정된 천이 확률들의 세트에 근거한다.
도 4는 도 3에 포함된 소프트 정보 생성 모듈(229)의 구현의 도해이다. 다시, 상기에 주목된 바와 같이, 어떤 특정한 특징들이 예시되지만, 이 기술 분야의 숙련자들은 다양한 다른 특징들이 간결성을 위해 그리고 본 명세서에 기술된 예시적 구현들의 보다 적절한 양상들을 모호하게 만들지 않도록 예시되지 않았음을 본 발명으로부터 이해할 것이다. 이를 위해, 비 제한적인 예로서, 소프트 정보 생성 모듈(229)은 소프트 정보 관리 제어기(410), 특성화 모듈(420), 계산/조정 모듈(430) 및 출력 멀티플렉스(MUC)(440)를 포함한다. 도 3에 도시된 바와 같이, 소프트 정보 생성 모듈(229)은 에러 제어 모듈(125), 메모리 관리 모듈(120) 및 스토리지 매체 I/O(128)에 연결된다.
소프트 정보 관리 제어기(410)는 소프트 정보 생성 모듈(229)의 동작을 조직화하기 위해, 특성화 모듈(420), 계산/조정 모듈(430) 및 MUX(440) 각각에 연결된다. 특히, 소프트 정보 관리 제어기(410)는 제어 및 데이터 라인들(401 및 402) 각각 상으로 판독 요청 및 하나 이상의 스토리지 매체 특성화 파라미터들을 수신하기 위해 연결된다. 소프트 정보 관리 제어기(410)는 또한, 제어 라인(411) 상으로 특성화 모듈(420)에 선택 제어 신호를 제공하고 그리고 데이터 라인(412) 상으로 선택된 특성화 벡터를 수신하기 위해 연결된다. 일부 구현들에서, 소프트 정보 관리 제어기(410)는 또한, 데이터 라인(414)을 통해 스토리지 매체 I/O(128)에 판독 비교 신호 값들(예컨대, 비교 전압들 또는 다른 전기적 신호들)을 제공하고 그리고 데이터 라인(415)을 통해 스토리지 매체 I/O(128)로부터 원시 판독 데이터를 수신하기 위해 연결된다. 소프트 정보 관리 제어기(410)는 또한, 대응하는 데이터 라인들(416 및 417)을 통해 계산/조정 모듈(430) 및 출력 MUX(440)에 소프트 정보 값들의 시퀀스를 제공하고 그리고 제어 라인(403)을 통해 출력 MUX(440)에 제어 신호를 제공하기 위해 연결된다. 출력 MUX(440)는 또한, 계산/조정 모듈(430)으로부터 데이터 라인(431) 상에서 소프트 정보 값들의 조정된 시퀀스를 수신하기 위해 연결된다. 출력 MUX(440)는 제어 라인(403) 상으로 수신되는 제어 신호에 따라, 변환 모듈(433) 및 계산/조정 모듈(430) 중 하나로부터 데이터 라인(441) 상으로 소프트 정보 값들을 선택적으로 제공하기 위해 연결된다.
특성화 모듈(420)은 특성화 벡터들(421-1 , 421-2, 421-3,... 421-n)의 집합을 포함하고, 이들 각각은 하나 이상의 스토리지 매체 특성화 파라미터 값들에 대한 스토리지 매체(130)와 관련된, 비트-튜플들에 대한 소프트 정보 값들 및 판독 비교 신호 값들과 같은 특성화 데이터를 저장한다. 일부 구현들에서, 특성화 벡터(421)에 저장된 특성화 데이터는 통계적으로 이끌어 내진다. 특성화 벡터(421)의 보다 상세한 예시적 구현들은 도 5a, 5b, 6a 및 6b을 참조하여 하기에 기술된다.
소프트 정보 관리 제어기(410)는 선택 모듈(431), 판독 제어기(432) 및 변환 모듈(433)을 포함한다. 선택 모듈(431)은 스토리지 매체(130)의 현재 상태에 따라 특성화 벡터들(421-1, 421-2, 421-3,... 421-n)의 저장된 집합으로부터 일 특성화 벡터를 선택하기 위해 하나 이상의 스토리지 매체 특성화 파라미터 값들을 사용하도록 구성된다. 일부 구현들에서, 선택 제어 신호는, 특성화 모듈(420)로 하여금 스토리지 매체(130)의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하여 특성화 벡터를 선택하도록 하는 스토리지 매체 특성화 파라미터 값들 중 하나 이상의 조합과 관련된 인덱스 키 및/또는 스토리지 매체 특성화 파라미터 값들 중 하나 이상을 포함한다.
판독 제어기(432)는 스토리지 매체 I/O(128)를 통해 스토리지 매체(130)의 일부를 판독하도록 구성된다. 일부 구현들에서, 판독 제어기(432)는 판독 동작에 대한 판독 비교 신호 값들을 스토리지 매체 I/O(128)에 제공하도록 구성된다. 일부 구현들에서, 제1 판독의 경우, 판독 제어기(432)는 스토리지 매체(130)의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하여 선택된 특성화 벡터로부터 하나 이상의 통계적으로 결정된 판독 비교 신호 값들을 선택한다. 일부 구현들에서, 판독 제어기(432)는 제1 판독으로부터 생성된 소프트 정보 값들이 에러 제어 디코더(127)에 의해 정정 불가능했던 에러를 포함함을 결정함에 응답하여 스토리지 매체(130)의 동일한 부분을 두번째 판독하도록 구성된다. 제2 판독의 경우, 판독 제어기(432)는 선택된 특성화 벡터로부터 하나 이상의 시프트된 판독 비교 신호 값들을 선택한다. 일부 구현들에서, 시프트된 판독 비교 신호 값들은 도 8을 참조하여 하기에 더욱 상세히 논의되는 바와 같이, 천이 확률들의 세트에 근거하여 각각의 공칭 또는 디폴트 판독 신호 값 또는 통계적으로 결정된 제1 판독 비교 신호 값에 대해 개별적으로 오프셋된다. 스토리지 매체의 동일한 부분이 2번째 판독되지만, 제1 판독 이후에 기록됨이 없이, 일부 상황들에서 제2 판독 동안 하나 이상의 시프트된 판독 비교 신호 값들의 사용은 제1 판독 동작의 결과로 판독된 원시 하드-결정 판독 데이터와 다른, 스토리지 매체(130)로부터 판독된 원시 하드-결정 판독 데이터를 생성한다.
변환 모듈(433)은 원시 하드-결정 판독 데이터에 대응하는 소프트 정보 값들의 시퀀스를 생성하도록 구성된다. 소프트 정보 값들의 시퀀스는 원시 하드-결정 판독 데이터의 각각의 비트-튜플에 대해 선택된 특성화 벡터로부터 각각의 소프트 정보 값을 선택함으로써 적어도 부분적으로 생성된다. 특히, 일부 구현들에서, 제1 판독의 경우, 변환 모듈(433)은 LLR들의 제1 시퀀스
Figure pct00001
를 생성하기 위해 제1 판독으로부터의 하드-결정 판독 데이터 내의 각각의 비트-튜플에 LLR의 형태로 적어도 하나의 소프트 정보 값을 할당하는 바, 여기서 n은 코드워드 길이이다. 일부 구현들에서, 만일 소프트 정보 값들의 제1 시퀀스가 정정불가능한 에러를 포함하는 것으로 결정되면, 변환 모듈(433)은 소프트 정보 값들, LLR들의 제2 시퀀스
Figure pct00002
Figure pct00003
를 생성하기 위해 제2 판독으로부터의 하드-결정 판독 데이터 내의 각각의 비트-튜플에 LLR의 형태로 적어도 하나의 소프트 정보 값을 할당하는 바, 여기서 n은 코드워드 길이이다.
계산/조정 모듈(430)은 소프트 정보 값들의 제1 및 제2 시퀀스들을 결합함으로써 소프트 정보 값들의 제3 시퀀스를 생성하도록 구성된다. 일부 구현들에서, 소프트 정보 값들의 제3 시퀀스는 소프트 정보 값들의 제2 시퀀스가 적어도 하나의 정정불가능한 에러를 포함한다는 결정에 응답하여 생성된다. 일부 구현들에서, 소프트 정보 값들의 제3 시퀀스는 소프트 정보 값들의 제2 시퀀스의 적어도 일부로부터의 정보가 이용가능해질 때 생성된다. 도 7을 참조하여 하기에 더욱 상세히 논의되는 바와 같이, 일부 구현들에서, 소프트 정보 값들의 제3 시퀀스의 각각의 소프트 정보는, 제1 및 제2 시퀀스들로부터 대응하는 소프트 정보 값들을 비교하고 그리고 비교가 제1 조건을 만족할 때, 제1 및 제2 소프트 정보 값들이 제1 조합에 소프트 정보 값들의 제3 시퀀스의 각각의 값을 동일시하고, 비교가 제2 조건을 만족할 때, 소프트 정보 값들의 제2 조합에 소프트 정보 값들의 제3 시퀀스의 각각의 값을 동일시함으로써 생성된다.
예로서, 일부 구현들에서, 소프트 정보 값들의 제3 시퀀스는 LLR들의 제3(및 마지막) 시퀀스
Figure pct00004
인 바, 여기서 n은 다음의 수식(1)에 따라 생성된 코드워드 길이이다:
Figure pct00005
여기서 α1 및 α2는 α1 + α2 = 1 (또는 어떤 균등한 상수)를 만족하는 가중 인자들이다. 일부 구현들에서, 두 개의 가중 인자들은 미리 결정된 상수들이지만, 다른 구현들에서 이들은 LLR들의 두 개의 시퀀스들
Figure pct00006
Figure pct00007
에 근거하여 생성된다. 수식 1에 도시된 바와 같이, 소프트 정보 값들의 제1 조합은 제1 및 제2 소프트 정보 값들 중 단 하나만을 포함하고, 소프트 정보 값들의 제2 조합은 제1 및 제2 소프트 정보 값들의 가중된 조합을 포함한다.
예를 들어, 일부 구현들에서, 가중 인자들 α1 및 α2는:
Figure pct00008
로서 생성된다.
일부 구현들에서, LLR들의 마지막 시퀀스
Figure pct00009
에 근거하여 디코딩된 데이터는 디코딩이 성공적인지 결정하도록 테스트되지 않는다. 대신, 어떤 이러한 결정에 관련함이 없이, 결과적인 디코딩된 데이터가 데이터 프로세싱 시스템(110)(도 1, 3)에 보내진다. 따라서, 일부 구현들에서, 데이터 프로세싱 시스템(110)으로부터의 판독 요청에 응답하여 소프트 정보 생성 모듈(229)에 의해 제공되는 소프트 정보는 두 번의 판독 동작들로부터 생성되는 LLR들의 제1, 제2 및 제3 시퀀스들에 제한된다. 이 기술분야의 숙련자들은 더 많은 수의 판독 동작들이 가능함을 그리고 각각의 후속적인 판독 동작이 때때로 최대 레이턴시라 지칭되는, 판독 동작을 완료하기 위해 요구되는 최대 시간량을 증가시킴을 본 발명으로부터 이해할 것이다. 최대 레이턴시에 거의 직면(encounter)하지 않더라도, 데이터 프로세싱 시스템(110)은 메모리 제어기(120)의 최대 레이턴시를 수용하도록 설계되어야만 한다. 전형적으로는, 보다 짧은 최대 레이턴시들이 보다 긴 최대 레이턴시에 비해 선호된다.
일부 구현들에서, LLR들은 천이 확률들로부터 생성될 수 있고, 상기 천이 확률들은 다양한 조건들 하에서, 제조 공정에 의해 생성된 메모리 디바이스들의 샘플들을 통계적으로 특성화함으로써 결정된다. 이를 위해, 특성화 공정에 대한 토대는 다음과 같이 확립될 수 있다. X를
Figure pct00010
레벨들의 세트로 두며, 이 레벨들 상에서 q-비트 비트-튜플이 플래시 메모리 셀에 기록되며, q-비트들 각각은 q-페이지들 중 각각의 q-페이지로부터 비롯된다. 예를 들어, q = 2일 때, X = {11,01,00,10}이다. 다른 예에서, q = 3일 때, X = {111, 011, 001, 000, 010, 110, 100, 101}이다. Y를 q-비트 비트-튜플이 도 2를 참조하여 상기에 기술된 판독 비교 전압들 VR1, VR2 및 VR3과 같은 판독 비교 전압들에 근거하여 플래시 메모리 셀로부터 판독되는 Q 레벨들의 세트로 둔다. 의사-랜덤 변동들, 스토리지 매체 내의 결함들, 동작 조건들, 디바이스 히스토리 및/또는 기록-판독 회로망 등으로 인해, 플래시 메모리 셀로부터의 판독 전압 레벨
Figure pct00011
은 기록된 전압 레벨
Figure pct00012
과 다를 수 있다. 메모리 셀 내의 각각의 레벨에 대한 실제 전압들의 세트는 전형적으로, 도 2를 참조하여 상기에 기술된 바와 같이 가능한 값들의 분포 또는 세트를 가진다. 전압 분포들은 페이지 위치, 페이지 타입, 프로그램/소거(P/E) 사이클들, 데이터 모드(동작, 정체(retention)), 온도 등과 같은 인자들에 의해 영향을 받는다. 일부 구현들에서, 전압 분포 및 상기 전압 분포의 편차는 디바이스 특성화 공정에 근거하여 천이 확률들 및/또는 LLR들과 같은 소프트 정도 값들을 생성하기 위해 사용될 수 있다.
다음은 소프트 정보 생성 방법의 구현을 기술하기 위해 q = 2(즉, MLC 플래시 메모리 내에서 셀 당 2 비트)인 예를 기술한다. 그러나, 이 기술분야의 숙련자는 2-비트 구현이 메모리 셀 당 더 많은 비트(q≥ 3)인 MLC 플래시 메모리의 다른 타입들까지 확장될 수 있음을 본 발명으로부터 이해할 것이다.
스토리지 매체 특성화 파라미터 값들의 각각의 조합은 디바이스 특성화 공정에서 특성화될 수 있는 스토리지 매체(예컨대, 플래시 메모리 디바이스)의 각각의 상태를 나타내며, 동일한 제조 공정에 의해 생성되는 다른 디바이스들에 대해 존재할 수 있다. 도 9 내지 11을 참조하여 하기에 기술되는 바와 같이, 특성화 파라미터 값 조합들의 세트에 대해 스토리지 매체를 특성화하기 위해, 데이터는 동작의 다양한 모드들(예컨대, 동작 모드, 정체 모드, 등)을 포함하여 특성화 파라미터 값 조합들 각각을 근사화하는 테스트 조건들 하에서 기록되고 스토리지 매체로부터 판독된다.
MLC 플래시 메모리(예컨대, 스토리지 매체(130))에 관하여, 일반적으로 MLC 플래시 메모리 상에서 수행될 수 있는 판독 동작들의 두 가지 타입이 존재하는 바, 이는 결과적으로, 천이 확률들의 세트들이 분리(disjoint)되게 한다. 하나는 다수의 q-페이지 MLC 메모리 셀들로부터 특별한 페이지의 각각의 비트들을 판독하는 것을 포함하는 단일-페이지 판독이다. 예를 들어, 2-페이지 플래시 메모리의 경우, 두 개의 구성 페이지들은 하위 페이지(lower page) 및 상위 페이지(upper page)로서 지칭되고, 하위 페이지 비트는 전형적으로, 2-비트 비트-튜플의 최하위 비트이고, 상위 페이지는 최상위비트이다. 단일-페이지 판독 시나리오의 경우, 다수의 MLC 플래시 메모리 셀들로부터의 상위 페이지 및 하위 페이지 비트 중 하나가 판독된다. 따라서, 하위-페이지 판독은 다수의 2-페이지 MLC 플래시 메모리 셀들로부터 각각의 하위-페이지 비트들의 시퀀스를 전달한다. 다른 타입이 판독은 일반적으로 다수의 q-페이지 MLC 플래시 메모리 셀들로부터 둘 이상의 페이지들의 각각의 비트들을 판독하는 것을 포함하는 공동-페이지 판독이며, 공동-페이지 판독은 2-페이지 MLC 플래시 메모리 셀들로부터 각각의 2-비트 비트-튜플들의 시퀀스를 전달한다. 판독의 타입 그리고 스토리지 매체 특성화 파리미터 값들 각각의 경우, 하나 이상의 천이 확률 테이블들은 기록 데이터와 판독 데이터를 비교함으로써 생성된다.
예를 들어, 도 5a는 스토리지 매체 특성화 파라미터 값들의 특별한 조합에 대해 SLC 플래시 메모리 셀 또는 MLC 플래시 메모리 셀의 단일-페이지 판독과 관련된 천이 확률 테이블(50)이다. 천이 확률 테이블(50) 내의 천이 확률 값들
Figure pct00013
은 다음과 같이 결정된다.
Figure pct00014
Figure pct00015
를 하위 페이지에 기록된 데이터 비트 및 동일한 하위 페이지로부터 판독된 데이터라고 각각 둔다. 각각의 천이 확률
Figure pct00016
은 특별한 비트 값
Figure pct00017
은 비트
Figure pct00018
가 기록되었을 때 판독되는
Figure pct00019
로서 결정된다. 예를 들어, 천이 확률
Figure pct00020
는 "0"이 기록되었을 때 "0"이 판독된 확률이고, 천이 확률
Figure pct00021
는 "0"이 기록되었을 때 "1"이 판독된 확률이고, 이하 이와 같은 방식으로 나타나는 확률이다. 게다가, 천이 확률들 및 단일-페이지 판독에 대해 생성되는 후속적인 LLR들은 MLC 플래시 메모리 셀이 둘 이상의 비트들을 포함하는 비트-튜플을 저장하더라도 단일 비트를 각각 포함하는 비트-튜플들에 대응한다. 이 기술분야의 숙련자들은 상위 페이지에 대한 천이 확률 테이블이 스토리지 매체 특성화 파라미터 값들의 조합에 대해 상위 페이지 데이터를 기록 및 판독함으로써 유사하게 획득됨을 본 발명으로부터 이해할 것이다. 또한, 이 기술분야의 숙련자들은 가능한 기록 비트 값들 각각에 대해, 천이 확률들이 수식 (4)을 만족함을 본 발명으로부터 이해할 것이다.
Figure pct00022
도 6a는 MLC 플래시 메모리 셀의 공동-페이지 판독과 관련된 천이 확률 테이블(60)이다. 다시, 공동-페이지 판독은 일반적으로, 다수의 q-페이지 MLC 플래시 메모리 셀들로부터 하나 이상의 페이지들의 각각의 비트들을 판독하는 것을 포함한다. 따라서, 판독 데이터의 시퀀스는 다중-비트 비트-튜플들을 포함하고, 공동-페이지 판독에 대해 생성된 천이 확률들 및 LLR들은 둘 이상의 비트들을 각각 포함하는 비트-튜플들에 대응한다. 따라서, 2-페이지 MLC 플래시 메모리의 경우, 상위 페이지 및 하위 페이지 모두에 대한 비트들은 예컨대, 판독 동작 동안 2-비트 플래시 메모리 셀에 의해 생성되는 전압 레벨을 결정함으로써 함께 판독된다. 다시, 특성화 공정은 판독 레벨들
Figure pct00023
을 기록 레벨들
Figure pct00024
과 비교하는 것을 포함하고, 천이 확률
Figure pct00025
은 기록 레벨
Figure pct00026
에 비춘 판독 레벨
Figure pct00027
의 조건적인 확률이다. 추가적으로, 공동-페이지 판독의 경우, 기록 및 판독 레벨들 {11,01,00,10}은 테이블 내의 각각의 인덱스 {3,1,0,2}에 매핑된다. 따라서, 예를 들어 천이 확률
Figure pct00028
는 "1"(또는 "01")이 기록되었을 때 "3"(또는 "11")이 판독된 확률이다. 또한, 상기에 기술된 바와 같이, 각각의 기록 레벨에 대해 천이 확률들은 수식 (4)을 만족한다.
일단 천이 확률들이 스토리지 매체 특성화 파라미터 값들의 조합에 대해 생성되었으면, 대응하는 LLR들은 특성화 벡터들의 집합에 생성 및 저장될 수 있다. 이 기술분야의 숙련자들은 일부 구현들에서 천이 확률들이 LLR들 대신 또는 LLR들에 더하여 특성화 벡터들의 집합에 저장됨을 본 발명으로부터 이해할 것이다. 그러나, LLR들은 천이 확률들에 의해 제공되는 소프트 정보의 보다 컴팩트한 표시를 제공한다.
일부 구현들에서, 스토리지 매체 특성화 파라미터 값들의 조합에 대한 LLR들은 다음의 수식 (5)을 이용하여 생성될 수 있다.
Figure pct00029
수식 (5)에서,
Figure pct00030
는 q-비트 다중-레벨 메모리 셀로부터 판독된 제k 비트를 나타내는 바, 이는
Figure pct00031
인 경우에 판독 전압 레벨
Figure pct00032
에 대응한다. 수식 (5)은 (5a)로서 다시 쓰여질 수 있는 바, (5a)에서,
Figure pct00033
는 전압 레벨들 X의 서브세트를 나타내고, 여기서 제k 비트는 0이며,
Figure pct00034
는 전압 레벨들 X의 서브세트를 나타내고, 여기서 제k 비트는 1이고,
Figure pct00035
이다.
Figure pct00036
단일-페이지 판독의 경우, 수식 (5a)는 수식 (6) 및 (7)을 간략화한다.
Figure pct00037
공동-페이지 판독의 경우, 수식 (5a)은
Figure pct00038
Figure pct00039
인 경우 상기 만큼 간결하게 간략화하지 못한다. 그런,
Figure pct00040
인 경우의 예로서, 수식 (5a)은 다음과 같이 쓰여질 수 있다.
Figure pct00041
이 기술분야의 숙련자들은 본 발명으로부터 그리고 특별한 수식들 (5a), (8) 및 (9)에서, y = 01, 00, 10인 경우 LLR들을 어떻게 획득하는지 이해할 것이다.
도 5b는 (예컨대, 도 4에 도시된 특성화 벡터들(421) 중 어느 하나에 대응하는) 특성화 벡터(500)의 구현의 개략적인 도해이며, 일부 구현들에서 특성화 벡터는 도 5a의 테이블 내의 천이 확률 값들로부터 생성된 소트프 정보 값들(532, 533)을 포함한다. 일부 구현들에서, 특성화 벡터(500)는 스토리지 매체 특성화 파라미터 필드(510), 판독 비교 전압 필드(520), 단일-페이지 판독 LLR 값 필드(530) 및 가중 인자 필드(540)를 포함한다. 도 3 및 4를 더 참조하여, 일부 구현들에서, 특성화 벡터는 스토리지 매체로부터 원시 데이터 값들을 판독하는 것 및/또는 판독 데이터에 대응하는 소프트 정보 값들의 시퀀스를 생성하는 것을 용이하게 하는 데이터 구조이다. 일부 구현들에서, 단일-페이지 판독 및/또는 공동-페이지 판독에 대한 각각의 LLR 값들(예컨대,
Figure pct00042
Figure pct00043
)은 특별한 제조 공정으로부터 생성된 디바이스들에 대한 스토리지 매체 특성화 파라미터 값들의 조합에 대해 각각의 특성화 벡터에 저장된다. 또한, 메모리 제어기 또는 메모리 제어기의 소프트 정보 생성 모듈은, 판독 데이터의 각각의 비트-튜플에 대해 선택된 특성화 벡터로부터 각각의 LLR 값을 선택함으로써 원시 판독 데이터에 대응하는 소프트 정보 값들의 시퀀스를 생성한다. 상기에 주목된 바와 같이, 일부 구현들에서 원시 판독 데이터는 하드-결정 데이터인 바, 그 이유는 LLR들과 같은 미리 생성된 소프트 정보가 소정 판독 동작에 대해 개별적인 메모리 셀들로부터 판독된 원시 전기적 값들보다 통계적으로 정확할 수 있기 때문이다. 보다 큰 통계적 정확도는 제어된 디바이스 특성화 공정의 결과이다.
스토리지 매체 특성화 파라미터 필드(510)는 하나 이상의 스토리지 매체 특성화 파라미터 값들을 저장하기 위해 제공된다. 예를 들어, 스토리지 매체 특성화 파라미터 필드(510)는 온도 필드(511) 및 P/E 사이클 필드(12)를 포함한다. 그러나, 이 기술분야의 숙련자들은 어떤 수의 스토리지 매체 특성화 파라미터 값 필드들도 스토리지 매체 특성화 파라미터 필드(510)에 포함될 수 있음을 본 발명으로부터 이해할 것이다. 예를 들어, 제한 없이, 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트는, 스토리지 매체의 적어도 일부와 관련된 물리적 특성, 스토리지 매체의 적어도 일부와 관련된 동작 모드, 스토리지 매체의 적어도 일부와 관련된 사용의 히스토리, 스토리지 매체의 적어도 일부와 관련된 상태 특성, 스토리지 매체의 적어도 일부와 관련된 판독 타입, 스토리지 매체의 적어도 일부와 관련된 위치 중 적어도 하나의 표시를 제공한다. 상기에 주목된 바와 같이, 필드(510) 내의 스토리지 매체 특성화 파라미터 값들은 특성화 벡터(500) 내의 유지 데이터가 적용가능한 스토리지 매체의 상태에 대응한다. 따라서, 일부 구현들에서, 특성화 벡터들의 집합은 인덱싱될 수 있고, 따라서 각각의 필드들에 저장된 하나 이상의 스토리지 매체 특성화 파라미터 값들에 의해 검색 및 선택가능하게 될 수 있다.
일부 구현들에서, 특성화 벡터(500)는 스토리지 매체 특성화 파라미터 필드(510)를 포함하지 않고, 대신 특성화 벡터(500)에 대응하는 스토리지 매체 특성화 파라미터 값들은 특성화 벡터들의 테이블 또는 데이터베이스 내의 특성화 벡터(500)의 위치에 의해 암시된다. 예를 들어, 3, 4 및 5의 포텐셜 값들을 각각 가지는 세 개의 스토리지 매체 특성화 파라미터들(a, b 및 c)이 존재하는 경우, 60 개의 스토리지 매체의 구별되는 상태(distinct state)들에 대해 60개(즉, 3 x 4 x 5)의 구별되는 특성화 벡터들의 세트가 존재할 것이다. 60개의 특성화 벡터들 중 어느 하나는, 스토리지 매체의 현재 상태에 대응하는 세 개의 스토리지 매체 특성화 파라미터들(a, b 및 c)로부터 인덱스를 형성하고 그리고 그 인덱스에 대응하는 특성화 벡터를 판독하거나 그렇지 않으면 획득함으로써 액세스된다.
판독 비교 전압 필드(520)는 특성화 벡터(500)를 정의하기 위해 사용되는 하나 이상의 스토리지 매체 특성화 파라미터 값들에 의해 특성화되는 스토리지 매체의 각각의 상태에 적용가능한 판독 비교 전압들 및/또는 판독 비교 전압들의 표시들을 저장하기 위해 제공된다. 일부 구현들에서, 판독 비교 전압 필드(520)는 서로 다른 판독 동작들에 대한 비교 전압들을 포함한다. 예를 들어, 판독 비교 전압 필드(520)는 제1 판독 비교 전압 필드(521) 및 제2 판독 비교 전압 필드(522)를 포함한다. 필드(521) 내의 제1 판독 비교 전압들은 플래시 메모리 셀들의 세트의 제1 판독 동안 사용된다. 제1 판독은 때때로, "공칭 판독"으로 지칭된다. 일부 구현들에서, 제1 판독 비교 전압들은 특별한 제조 공정을 이용하여 생성된 디바이스들에 대한 디폴트 판독 비교 전압들과 같은 디폴트 판독 비교 전압 값들이다. 일부 다른 구현들에서, 제1 판독 비교 전압 필드(521)는 제1의 통계적으로 결정된 판독 비교 전압 값들 VR1 -1(521a), VR2 -1(521b) 및 VR3 - 1(521c)를 포함하고, 이들은 특별한 제조 공정에 의해 생성된 디바이스들에 대한 특성화 공정에 의해 생성된다. 예를 들어, 일부 실시예들에서, 제1 판독 비교 전압 값들은 각각의 임계 에러율을 만족시키기 위해 디바이스 특성화 공정 동안 선택된다. 일부 구현들에서, 제2 판독 비교 전압 필드(522)는 제1의 통계적으로 결정된 판독 비교 전압 값들 VR1 -2(522a), VR2 -2(522b) 및 VR3 -2(522c)를 포함하고, 이들은 천이 확률들의 세트에 근거하여 공칭 판독 비교 신호 값 또는 통계적으로 결정된 제1 판독 비교 신호 값에 대해 오프셋되고, 식별된 에러 상태에 응답하여 사용된다. 상기에 기술된 바와 같이, 시프트된 판독 비교 전압 값들을 사용하는 제2 판독은 전형적으로는, 제1 판독이 하나 이상의 정정불가능한(즉, 데이터가 하나 이상의 추가적인 판독 동작을로부터 수신되지 않는 한 에러 제어 모듈(125)에 의해 정정불가능한) 에러들을 가지는 데이터를 생성하는 경우에만 수행된다. 일부 구현들에서, 판독 비교 전압 필드(520)는 도 2를 참조하여 상기에 기술된 판독 비교 전압들 VR1, VR2 및 VR3과 같은 실제 판독 비교 전압 레벨들을 포함한다. 일부 구현들에서, 판독 비교 전압 필드(520)는 오프셋 값, 퍼센티지 값 및/또는 불연속적인(discretized) 값과 같은 판독 비교 전압들의 표시를 포함한다.
단일-페이지 판독 LLR 값 필드(530)는 판독 데이터 값들(531)(예컨대, "0 및 "1")에 의해 인덱싱되는 각각의 하위 및 상위 페이지 판독들에 대한 하위 페이지 LLR 값들(532) 및 상위 페이지 LLR 값들(533)을 저장한다. 소프트 정보의 시퀀스들은 판독 데이터 내의 각각의 비트-튜플에 대한 적절한 LLR 값을 선택함으로써 원시 판독 데이터로부터 생성된다. 예를 들어, 하위 페이지 판독의 경우, 하위 페이지 LLR 값들(532)의 각각의 값은 원시 데이터의 각각의 비트에 대해 선택될 수 있다.
상기에 기술된 바와 같이, 식별된 에러 상태(예컨대, 제2 판독에 의해 생성된 데이터 내의 정정불가능한 에러)에 응답하여, 소프트 정보 값들의 제1 및 제2 시퀀스들은 소프트 정보 값들의 제3 시퀀스를 생성하기 위해 결합된다. 일부 구현들에서, 소프트 정보 값들의 제1 및 제2 시퀀스들의 결합은 특성화 벡터(500)에 저장된 가중 인자들을 이용한다. 가중 인자 필드(540)는 하위 페이지 판독들에 대한 하위 페이지 가중 인자들(541) 및 상위 페이지 판독들에 대한 상위 페이지 가중 인자들(542)을 포함한다.
도 6b는 (도 4에 도시된 특성화 벡터들(421) 중 어느 하나에 대응하는) 특성화 벡터(600)의 구현의 개략적인 도해이고, 일부 구현들에서 특성화 벡터(600)는 도 6a의 테이블 내의 천이 확률 값들로부터 생성된 소프트 정보 값들(632, 633)을 포함한다. 도 6b에 도시된 특성화 벡터(600)는 도 5b에 도시된 특성화 벡터(500)와 유사하다. 특성화 벡터들 모두에 대해 공통인 요소들은 동일한 도면 부호들을 할당받았으며, 도 5b 및 6b에 도시된 특성화 벡터들(500 및 600) 간의 차이들 만이 간략성을 위해 본 명세서에 기술된다. 더욱이 어떤 특정한 특징들이 예시되지만, 이 기술 분야의 숙련자들은 다양한 다른 특징들이 간결성을 위해 그리고 본 명세서에 기술된 예시적 구현들의 보다 적절한 양상들을 모호하게 만들지 않도록 예시되지 않았음을 본 발명으로부터 이해할 것이다.
특성화 벡터(500)에 비해, 특성화 벡터(600)는 판독 데이터 값들(631)에 의해 인덱싱되는 각각의 하위 및 상위 페이지 판독들에 대한 하위 페이지 LLR 값들(632) 및 상위 페이지 LLR 값들(633)을 저장하는 공동-페이지 판독 LLR 값 필드(630)를 포함한다. 상기에 기술된 바와 같이, 소프트 정보의 시퀀스들은 판독 데이터 내의 각각의 비트-튜플에 대해 LLR 값들의 적절한 쌍을 선택함으로써 원시 판독 데이터로부터 생성된다. 추가적으로, 일부 구현들에서, 가중 인자 필드(640)는 하위 페이지 및 상위 페이지 판독들 모두에 적용가능한 가중 인자들(641a, 641b)을 저장한다.
도 7은 스토리지 매체로부터 판독되는 데이터로부터 소프트 정보 값들을 생성하는 방법(700)의 순서도 표시이다. 일부 구현들에서, 방법(700)은 메모리 제어기 또는 메모리 제어기와 관련된 모듈에 의해 수행된다. 간략하게는, 방법(700)은 스토리지 매체의 현재 상태에 근거하여 선택된 하나 이상의 판독 비교 신호 값들을 이용하여 스토리지 매체로부터 데이터를 판독하는 단계와, 판독 데이터 및 상기 스토리지 매체의 현재 상태로부터의 소프트 정보 값들의 대응하는 시퀀스를 생성하는 단계와, 그리고 소프트 정보 값들의 하나 이상의 추가적인 시퀀스들을 생성할지를 결정하는 단계를 포함한다. 상기에 주목된 바와 같이, 일부 구현들에서, 다양한 비트-튜플들에 대한 판독 비교 신호 값(들) 및 소프트 정보 값들은 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거하여 선택가능한 특성화 벡터들에 저장된다. 또한, 원시 판독 데이터로부터 생성된 소프트 정보 값들의 시퀀스들은 스토리지 매체(예컨대, 플래시 메모리)의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들에 근거한다.
이를 위해, 블록(7-1)으로 표시된 바와 같이, 방법(700)은 판독 데이터 요청을 수신하는 단계를 포함한다. 예를 들어, 도 3 및 4를 더 참조하여, 메모리 제어기(120)는 데이터 프로세싱 시스템(110)으로부터 판독 데이터 요청을 수신하고, 소프트 정보 생성 모듈(229)에 상기 요청을 패스한다. 블록(7-2)으로 표시된 바와 같이, 방법(700)은 스토리지 매체의 현재 상태와 관련된 하나 이상의 스토리지 매체 특성화 파라미터 값들을 수신 또는 검색하는 단계를 포함한다. 일부 구현들에서, 스토리지 매체 특성화 파라미터 값들 중 하나 이상은 판독 데이터 요청으로 수신된다. 일부 구현들에서, 스토리지 매체 특성화 파라미터 값들 중 하나 이상은 판독 데이터 요청을 수신함에 응답하여 검색된다.
블록(7-3)으로 표시된 바와 같이, 방법(700)은 특성화 벡터(예컨대, 도 4, 5b 또는 6b에 각각 도시된 벡터(421, 500 또는 600))를 검색하기 위해 하나 이상의 스토리지 매체 특성화 파라미터 값들을 이용하는 단계를 포함한다. 예를 들어, 도 4를 더 참조하여, 소프트 정보 관리 제어기(410)는 제어 라인(411) 상으로 특성화 모듈(420)에 선택 제어 신호를 전송하기 위해 하나 이상의 스토리지 매체 특성화 파라미터 값들을 이용한다. 이에 응답하여, 특성화 모듈(420)은 데이터 라인(412)을 통해 소프트 정보 관리 제어기(410)에 (하나 이상의 스토리지 매체 특성화 파라미터 값들에 대응하는) 특성화 벡터의 적어도 일부를 제공한다.
블록(7-4)로 표시된 바와 같이, 방법(700)은 선택된 특성화 벡터로부터 하나 이상의 제1 판독 비교 전압들을 선택하는 단계를 포함한다. 또한, 블록(7-5)으로 표시된 바와 같이, 방법(700)은 판독 회로망(예컨대, 스토리지 매체 I/O(128))에 선택된 하나 이상의 제1 판독 비교 전압들(뿐만 아니라 어드레스 또는 다른 위치 값)을 제공하는 단계 및 스토리지 매체(130)로부터 원시 판독 데이터(예컨대, 코드워드)를 수신하는 단계를 포함한다. 블록(7-6)으로 표시된 바와 같이, 방법(700)은 제1 판독으로부터의 원시 판독 데이터 내의 각각의 비트-튜플에 (단계(7-3)에서 검색된) 특성화 벡터로부터의 적어도 하나의 소프트 정보 값을 할당함으로써 소프트 정보 값들의 제1 시퀀스를 생성하는 단계를 포함한다. 특히, 예컨대 블록(7-6a)으로 표시된 바와 같이, LLR들의 제1 시퀀스
Figure pct00044
는 원시 데이터 내의 각각의 비트-튜플에 적어도 하나의 LLR 값을 할당함으로써 생성될 수 있다.
블록(7-7)으로 표시된 바와 같이, 방법(700)은 스토리지 매체(130)로부터 판독된 원시 판독 데이터(예컨대, 코드워드) 및 소프트 정보 값들의 대응하는 제1 시퀀스를 ECC 디코더(에컨대, 도 3의 디코더(127))에 제공하는 단계를 포함한다. 블록(7-8)으로 표시된 바와 같이, 방법(700)은 ECC 디코더가 소프트 정보 값들의 제1 시퀀스를 이용하여 코드워드를 성공적으로 디코딩했는지 결정하는 단계를 포함한다. 블록(7-9)으로 표시된 바와 같이, 만일 디코딩이 성공적이면(블록(7-8)로부터 "예" 경로), 방법(700)은 어떤 추가의 액션도 관련된 데이터를 성공적으로 판독하기 위해 요구되지 않기 때문에 소프트 정보 값들의 제1 시퀀스에 대응하는 코드워드들에 대해 종료한다. 반면, 블록(7-10)으로 표시된 바와 같이, 만일 디코딩이 성공적이지 않으면(블록(7-8)으로부터 "아니오" 경로), 방법(700)은 에러 표시자를 수신하는 단계를 포함한다. 또한, 블록(7-11)으로 표시된 바와 같이, 방법(700)은 이전에 선택된 특성화 벡터로부터 하나 이상의 제2 판독 비교 전압들을 선택하는 단계를 포함한다. 또한, 블록(7-12)으로 표시된 바와 같이, 방법(700)은 판독 회로망(예컨대, 스토리지 매체 I/O(128))에 선택된 하나 이상의 제2 판독 비교 전압들을 제공하는 단계 및 스토리지 매체(130)로부터 원시 판독 데이터의 새로운 세트를 수신하는 단계를 포함한다. 블록(7-13)으로 표시된 바와 같이, 방법(700)은 제2 판독으로부터의 원시 판독 데이터 내의 각각의 비트-튜플에 특성화 벡터로부터의 적어도 하나의 소프트 정보 값을 할당함으로써 소프트 정보 값들의 제2 시퀀스를 생성하는 단계를 포함한다. 특히, 블록(7-13a)으로 표시된 바와 같이, 일부 구현들에서, LLR들의 제2 시퀀스
Figure pct00045
Figure pct00046
는 원시 데이터 내의 각각의 비트-튜플에 적어도 하나의 LLR 값을 할당함으로써 생성된다.
블록(7-14)으로 표시된 바와 같이, 방법(700)은 ECC 디코더(예컨대, 도 3의 디코더(127))에 소프트 정보 비트 값들의 제2 시퀀스를 제공하는 단계를 포함한다. 블록(7-15)으로 표시된 바와 같이, 방법(700)은 ECC 디코더가 소프트 정보 값들의 제2 시퀀스를 사용하여 (제2 판독으로부터 획득된) 코드워드를 성공적으로 디코딩했는지 결정하는 단계를 포함한다. 블록(7-9)으로 표시된 바와 같이, 만일 디코딩이 성공적이면(블록(7-15)로부터 "예" 경로), 방법(700)은 어떤 추가의 액션도 관련된 데이터를 성공적으로 판독하기 위해 요구되지 않기 때문에 제2 판독으로부터의 코드워드들에 대해 종료한다. 반면, 블록(7-16)으로 표시된 바와 같이, 만일 디코딩이 성공적이지 않으면(블록(7-16)으로부터 "아니오" 경로), 방법(700)은 수식 (1) 및 (2)를 참조하여 상기에 기술되고, 도 8을 참조하여 하기에 추가로 기술되는 바와 같이, 소프트 정보 값들의 제1 및 제2 시퀀스들을 결합함으로써 소프트 정보 값들의 제3 시퀀스를 생성하는 단계를 포함한다.
도 8은 이전에 생성된 소프트 정보 값들로부터 소프트 정보 값들을 생성하는 방법(800)의 구현의 순서도 표시이다. 일부 구현들에서, 방법(800)은 메모리 제어기 또는 메모리 제어기와 관련된 모듈에 의해 수행된다. 간략하게는, 방법(800)은 소프트 정소 값들의 이전에 생성된 두 개의 시퀀스들의 조합에 근거하여 소프트 정보 값들의 제3 시퀀스를 생성하는 단계를 포함한다. 이를 위해, 블록(8-1)으로 표시되는 바와 같이, 방법(800)은 이전에 생성된 소프트 정보 값들의 제1 시퀀스로부터 소프트 정보 값을 선택하는 단계와, 그리고 블록(8-2)으로 표시되는 바와 같이, 이전에 생성된 소프트 정보 값들의 제2 시퀀스로부터 대응하는 소프트 정보 값을 선택하는 단계를 포함한다. 블록(8-3)으로 표시되는 바와 같이 그리고 상기 수식 (1)을 참조하여, 방법(800)은 제1 및 제2 시퀀스들로부터 선택된 소프트 정보 값들의 부호(sign)들(즉, 양(positive) 또는 음(negative))이 매치되는지 결정하는 단계를 포함한다. 블록(8-5)으로 표시되는 바와 같이, 만일, 부호들이 매치되면(예컨대, 둘 모두가 양의 숫자들이거나 둘 모두가 음의 숫자들이면), 방법(800)은 제3 시퀀스의 각각의 소프트 정보 값을 오직 소프트 정보 값들의 제2 시퀀스부터 선택된 소프트 정보 값으로 셋팅 또는 이와 동일시하는 단계를 포함한다(블록(8-5)로부터 "예" 경로). 한편, 블록(8-4)으로 표시되는 바와 같이 그리고 수식들 (1), (2) 및 (3)을 참조하여, 만일 부호들이 매치되지 않으면, 방법(800)은 제3 시퀀스의 각각의 소프트 정보 값을 소프트 정보 값들의 제1 및 제2 시퀀스들로부터 선택된 값들의 가중된 조합으로 설정 또는 이와 동일시하는 단계를 포함한다.
도 9는 MLC 플래시 메모리와 같은 그러한 스토리지 매체를 위한 소프트 정보 값 및 통계적으로 결정된 판독 비교 신호 값들을 생성하도록 동작 가능한 스토리지 매체 특성화 환경(900)의 구현도이다. 비록 일부 특정한 특징들이 예시되고 있지만, 통상의 지식을 가진자이면 본 발명의 개시내용으로부터 다양한 다른 특징들이 간결성을 위해 그리고 여기에 개시된 예시적인 구현들의 많은 관련 양상들을 모호하게 하지 않도록 예시되지 않았음을 알 수 있을 것이다. 이를 위해, 비-제한적인 예로서, 특성화 환경(900)은 테스트 대상의 스토리지 매체(930) 및 특성화 제어기(920)를 포함한다.
테스트 대상의 스토리지 매체(930)는 동일한 제조 공정에 의해 제작되는 하나 이상의 메모리 디바이스(예컨대, MLC 플래시 메모리 디바이스)를 포함한다. 특성화 제어기(920)는 관리 모듈(921), 테스트 데이터 생성기(923), 통계 생성기(926), 스토리지 매체 I/O(928), 기록 버퍼(924), 판독 버퍼(925) 및 특성화 벡터 데이터베이스(929)를 포함한다.
어떤 구현들에서, 특성화 제어기(920)는 관리 모듈(921), 테스트 데이터 생성기(923), 통계 생성기(926)를 비롯한 하나 이상의 프로그램들을 실행하기 위한 하나 이상의 프로세서(미도시)를 포함한다. 어떤 구현들에서, 관리 모듈(921), 테스트 데이터 생성기(923) 및 통계 생성기(926)는 하나 이상의 DRAM 장치 및/또는 비휘발성 메모리 장치와 같은 비-휘발성 컴퓨터 판독 가능 스토리지 매체(도시하지 않음)에 저장되는 프로그램들이며, 상기 비-휘발성 컴퓨터 판독 가능 스토리지 매체는 통신 버스들(미도시) 중 하나에 의해 하나 이상의 프로세서들에 결합된다. 관리 모듈(921)은 특성화 제어기(920)의 동작을 조정하기 위해 통계 생성기(926), 테스트 데이터 생성기(930) 및 저장 I/O(928)에 결합된다. 스토리지 매체 I/O(928)는 데이터 연결부(903)를 통해 테스트 대상의 스토리지 매체(930)에 대한 인터페이스를 제공한다. 어떤 구현들에서, 스토리지 매체 I/O(928)는 전압들과 같은 판독 비교 신호 값들을 테스트 대상의 스토리지 매체(930)에 결합된 신호 라인들에 제공할 수 있는 회로를 비롯한 판독 및 기록 회로를 포함한다. 기록 버퍼(924) 및 판독 버퍼(923)는 스토리지 매체 I/O(928)와 통계 생성기(926) 사이에 병렬로 결합된다. 기록 버퍼(924) 및 판독 버퍼(923)는 통계 생성기(926)에 의해 판독가능하다. 기록 버퍼(924)는 스토리지 매체 I/O(928)에 의해 판독가능하고, 판독 버퍼(923)는 기록 매체 I/O(928)에 의해 판독가능하다. 또한, 기록 버퍼(924)는 테스트 데이터 생성기(923)에 의해 기록가능하다. 통계 생성기(926)는 특성화 벡터 데이터베이스(929)에 특성화 벡터들을 기록할 수 있다.
동작시, 판독의 각 유형 및 스토리지 매체 특성화 파라미터 값들의 특정 세트에 대해, 하나 이상의 천이 확률 테이블이 기록 데이터와 판독 데이터를 비교함으로써 생성된다. 이를 위해, 테스트 데이터 생성기(924)는 기록 버퍼(924)에 기록 데이터를 제공한다. 스토리지 매체 I/O(928)는 기록 버퍼(924)에 있는 데이터를 테스트 대상의 기록 매체(930)에 기록한다. 또한, 스토리지 매체 I/O(928)는 테스트 대상의 스토리지 매체(930)로부터 데이터를 판독하여 이 판독 데이터를 판독 버퍼(923)에 제공한다. 통계 생성기(926)는 기록 버퍼(924) 및 판독 버퍼(923)의 내용들을 비교하여, 이 판독 데이터에서의 에러들의 존재 및 그 위치를 결정한다. 이 프로세스는 테스트 데이터의 통계적 유의량(statistically signficant amount)을 생성하기 위해, 특성화 벡터에 대응하는 하나 이상의 스토리지 매체 특성화 파라미터 값들의 범위 내에서 여러 번 반복되는바, 상기 통계적 유의량으로부터 천이 확률 값, LLR 값 및 통계적 기반의 판독 비교 전압들이 상기 특성화 벡터의 포함을 위해 계산될 수 있다.
도 10은 어떤 실시예들에 따른, 특성화 데이터에 근거한 소프트 정보 값들 및 판독 비교 전압들을 비롯한 하나 이상의 특성화 벡터를 생성하는 방법(1000)의 흐름도를 도시한 것이다. 어떤 구현들에서, 방법(1000)은 메모리 제어기와 관련된 모듈에 의해 수행된다. 간단히 말해서, 방법(1000)은 특정 제조 공정에 의해 생성된 통계적 특성화 메모리 디바이스들을 포함한다.
이를 위해, 블록(10-1)으로 나타낸 바와 같이, 방법(1000)은 특성화 벡터에 대한 테스트 조건들을 정의하기 위해 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트(본 명세서에서, 때때로, 특정 세트라 칭함)를 선택하는 단계를 포함한다. 블록(10-2)으로 나타낸 바와 같이, 방법(1000)은 데이터 벡터들(즉, 테스트 데이터)을 생성하는 단계를 포함한다. 어떤 구현들에서, 이 데이터 벡터들은 의사-랜덤식으로(pseudo-randomly) 생성된다. 블록(10-3)으로 나타낸 바와 같이, 방법(1000)은 상기 데이터 벡터들을 기록 및 판독하는 단계를 포함한다. 블록(10-4)으로 나타낸 바와 같이, 방법(1000)은 판독 데이터 벡터들에서의 에러의 존재 및 위치를 레코딩하고, 이 판독 데이터 벡터들에서의 에러의 존재 및 위치와 관련된 통계를 생성하는 단계를 포함한다. 블록(10-5)으로 나타낸 바와 같이, 방법(1000)은 기록 및 판독 후 상기 저장된 데이퍼 벡터들에 대응하는 원시 판독 전압 값들을 레코딩 하는 단계를 포함한다. 블록(10-6)으로 나타낸 바와 같이, 방법(1000)은 스토리지 매체 특성화 파라미터 값들의 특정 세트에 관하여 스토리지 매체에 대해 충분한 데이터가 수집되었는지를 판단하는 단계를 포함하며, 이 경우에 상기 스토리지 매체 특성화 파라미터 값들의 특정 세트에 대한 테스팅이 완료된다. 어떤 구현들에서, 상기 수집된 정보가 소정 레벨의 통계적 정확도를 만족할 때 테스팅이 완료된다. 어떤 구현들에서, 테스팅 완료는 상기 수집된 정보가, 각각의 임계 에러율을 만족하는 제1 판독 비교 전압 값들을 생성하기에 충분해야 함을 더 요한다. 어떤 구현들에서, 테스팅 완료는 상기 수집된 정보가, 소정 레벨의 통계적 정확성을 갖는 천이 확률 값을 생성하기에 충분해야 함을 요한다.
만일 테스팅이 미완료(블록(0-6)으로부터 "아니오"경로)이면, 방법(1000)은 많은 테스트 데이터를 생성하기 위해 방법(1000)의 일부들(블록(10-2 내지 10-5)으로 나타냄)을 반복하는 단계를 포함한다. 반면에, 만일 테스팅이 완료(블록(10-7)으로 나타낸 바와 같이 단계(10-6)로부터 "예"경로)이면, 방법(1000)은 상기 특성화 데이터 벡터(즉, 하나 이상의 스토리지 매체 특성화 파라미터 값들 중 특정 세트의 파라미터 값에 대응하는 특성화 벡터)에 대한 천이 확률들을 생성하는 단계를 포함한다. 어떤 구현들에서, 블록(10-8)으로 나타낸 바와 같이, 방법 (1000)은 상기 천이 확률들을 LLR 값들로 변환하는 단계를 포함한다. 블록(10-9)으로 나타낸 바와 같이, 방법(1000)은 상기 레코딩된 판독 전압들(이 전압들은 옵션에 따라서는 상기 판독 전압들이 레코딩되는 동안 생성된다)을 생성하고, 그리고 레코딩된 판독 전압들의 분포들로부터 제1 판독 비교 전압 값들로서 사용할 각각의 전압 골(voltages troughs)들을 식별하는 단계를 포함한다. 예컨대, 도 2를 더 참조하면, 판독 비교 전압 VRI(211), VR2(212) 전압 및 VR3(213)은 인접하는 중앙 전압들 사이에 위치한 전압 골에 있으며, 전압 범위들(201, 202, 203, 204) 사이의 임계 전압들을 정의한다. 어떤 구현들에서, 방법(1000)은 상기 비교 전압의 선택을, 중앙 전압들의 각 쌍 사이의 절반 지점에 또는 이 부근에 판독 비교 전압들이 간격져 놓이게 하는 것에 추가적으로 또는 이에 대안적으로, 그러한 각각의 판독 비교 전압이 2개의 전압 분포들 사이의 골에 있는지에 기초한다. 어떤 구현들에서, 방법(1000)은 (예컨대, 레코딩된 정보에 따라, 판독 에러를 최소화하는 판독 비교 전압들을 선택함으로써) 미리 정의된 에러 최소화 기준에 따라 판독 비교 전압들을 선택한다. 전술한 바와 같이, 어떤 구현들에서, 방법(1000)은 각각의(예를 들면, 미리 정의된) 임계 에러율을 만족하는 판독 비교 전압들을 선택한다. 본 명세서에서, 레코딩된 판독 전압들의 생성된 분포들은 종종 통계라 칭한다.
도 11은 천이 확률에 기초하여 다중 레벨의 메모리 셀들로부터 데이터를 판독하기 위한 시프트된 판독 비교 신호 값들(예를 들어, 전압들)을 생성하는 방법(1100)의 순서도이다. 어떤 구현들에서, 방법(1100)은, 메모리 제어기와 관련된 모듈에 의해 수행된다. 간단히 말해서, 방법(1100)은 통계적 특성화 메모리 디바이스들을 포함하는바, 이 메모리 디바이스들은 만일 판독 비교 신호 값들의 제 1 세트가 적어도 하나의 정정 불가능한 에러 없이 데이터를 제공하지 못하는 경우에 사용될 수 있는 판독 비교 신호 값들의 제 2 세트를 결정하도록 특수한 제조 공정에 의해 제작된다.
이를 위해, 블록(11-1)으로 나타낸 바와 같이, 방법(1100)은 특성화 벡터에 대한 테스팅 조건들을 정의하는 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트 (본 명세서에서 때때로 특정 세트라 칭함)를 선택하는 단계를 포함한다. 블록(11-2)으로 나타낸 바와 같이, 방법(1100)은 하나 이상의 스토리지 매체 특성화 파라미터 값들의 상기 특정 세트에 대한 천이 확률들을 생성하는 단계를 포함한다. 예를 들어, 천이 확률들은 도 10을 참조하여 전술한 방법을 사용하여 생성될 수 있다. 블록(11-3)으로 나타낸 바와 같이, 방법(1100)은 전술한 바와 같이 제1 세트의 판독 비교 전압 값들로서 사용할 상기 각각의 전압 골들을 검색하거나 선택하는 단계를 포함한다. 추가적으로 혹은 대안적으로, 상기 제1 세트의 판독 비교 전압 값들은 메모리 셀의 전압 범위에 걸쳐 동등한 간격을 갖는 판독 비교 전압 값들에 기초한 공칭 값들(nominal values)일 수 있다. 블록(11-4)으로 나타낸 바와 같이, 방법(1100)은 상기 전압 골들 중 하나를 선택하는 단계를 포함하며, 이에 대해 방법(1100)은 특성화 벡터(즉, 하나 이상의 스토리지 매체 특성화 파라미터의 상기 특정 세트에 대응하는 특성화 벡터)에 저장될 상기 제2 세트의 판독 비교 전압 값들에 대한 대응하는 시프트된 판독 비교 전압 값을 생성할 것이다.
블록(11-5)으로 나타낸 바와 같이, 방법(1100)은 천이 확률에 기초하여, 상기 선택된 전압 골에 관하여 상기 각각의 시프트된 판독 비교 전압의 오프셋 방향을 결정하는 단계를 포함한다. 어떤 구현들에서, 상기 오프셋 방향을 결정하는 단계는 MLC 플래시 메모리 셀 내의 인접 전압 레벨들을 나타내는 두 개의 천이 확률들 간의 차이의 부호(sign)를 결정하는 것을 포함한다. 예를 들어, 도 2 및 도 6을 더 참조하면, 전술한 바와 같이 하나의 전압 범위로부터 인접 전압 범위로 드리프트(drift)하는 셀 전압의 영향을 줄이기 위한 하나의 방법은 비트 튜플들(bit-tuples)을 그레이 코딩하는 것이다. 비트 튜플들을 그레이 코딩하는 것은 특정 전압 범위의 각각의 비트-튜플이 단지 1 비트만큼 인접 전압 범위의 각각의 비트-튜플과 다르게 되도록 비트-튜플들의 할당을 억제하는 단계를 포함한다. 예를 들면, 도 2에 나타낸 바와 같이, 인접 범위들(201, 202)에 대한 대응 비트-튜플들은 각각 "11"과 "01" 이고, 인접 범위들(202, 203)에 대한 대응 비트-튜플들은 각각 "01"과 "00"이며, 인접 범위들(203, 204)에 대한 대응 비트-튜플들은 각각 "00"과 "10"이다. 이와 같이, 만일 셀 전압이 가장 가까운 판독 비교 전압에 가까우면 결과적인 에러는 2 비트의 비트-튜플 내에서 단일 비트로 제한된다. 도 6a에 관하여, 어떤 구현들에서, 그레이 코딩은 천이 확률들이 만일 제 1 판독 비교 전압이 원하는 결과를 생성하지 못하는 경우에 사용될 수 있는 제 2 혹은 폴백(즉, 시프트된) 판독 비교 전압 값을 생성하도록 하는데 사용될 수 있게 해준다. 전술한 바와 같이, 그레이 코딩은 일반적으로, 가장 가능성이 있는 멀티 비트의 비트-튜플들의 에러들을 단일-비트 에러들로 제한한다. 이와 같이, 그러한 에러와 관련된 천이 확률들의 쌍은 도 6a에서의 표(60)의 대각선을 따라 인접 (즉, 대각선에 있지 않고 이에 인접) 위치한다. 예컨대, 어떤 구현 예들에서, 천이 확률 쌍(P31, P13)은 판독 비교 전압 값 VR1 으로부터 각각의 시프트된 판독 비교 전압 값 오프셋의 방향을 생성하는데 사용된다. 보다 구체적으로, 어떤 구현들에서, 판독 비교 전압 값 VR1 으로부터의 오프셋의 방향은 천이 확률 쌍(P31, P13)의 차이의 부호에 의해 제공된다. 마찬가지로, 마찬가지로, 천이 확률 쌍(P10, P01) 및 (P02, P20)은 각각, 대응하는 판독 비교 전압 값들 VR2 , VR3 로부터의 각각의 시프트된 판독 비교 전압 값들의 각각의 방향을 생성하는데 사용된다.
블록(11-6)으로 표시된 바와 같이, 방법(1100)은 천이 확률들에 근거하여 선택된 판독 비교 전압에 관련된 시프트된 판독 비교 전압의 오프셋의 크기를 결정하는 단계를 포함한다. 일부 구현들에서, 상기 오프셋의 크기는 전술한 오프셋의 방향을 결정하기 위해 사용되는 동일한 두 개의 천이 확률들(Pij, Pji)에 근거한다. 일 예에서, 판독 비교 전압 값 VR1으로부터의 오프셋의 크기는 천이 확률 쌍(P31, P13)에 따라 결정된다.
일부 구현들에서, 오프셋의 크기는 천이 확률 쌍(예컨대, (P31, P13))의 확률들 간의 차이의 절대 값으로 결정된다. 다시 말해, 오프셋의 크기는 절대 값(예컨대,
Figure pct00047
Figure pct00048
)을 트랙킹한다. 예를 들어, 오프셋의 크기는 대응하는 절대 값이 커질수록 커진다. 유사하게, 오프셋의 크기는 대응하는 절대 값이 작아질수록 작아진다.
일부 구현들에서, 오프셋의 크기는 천이 확률 쌍(Pij, Pji)의 확률들 간의 차이의 절대 값의 선형 또는 비-선형 함수로서 결정된다. 일부 구현들에서, 오프셋의 크기는 각각의 천이 확률 쌍(Pij, Pji) 간의 차이의 선형 함수이다. 예를 들어, 일부 구현들에서, 오프셋의 크기는
Figure pct00049
으로서 선형적으로 결정되는 바, 여기서
Figure pct00050
는 절대 값
Figure pct00051
을 전압 값으로 변환하기 위한 계수이다. 일부 구현들에서,
Figure pct00052
는 플래시 특성화 데이터에 의해 결정된다. 일부 구현들에서,
Figure pct00053
는 제조 공정 특성화 데이터에 의해 결정된다. 일부 구현들에서, 오프셋의 크기는 각각의 천이 확률 쌍(Pij, Pji) 간의 차이의 비-선형 함수이다. 예를 들어, 일부 구현들에서, 오프셋의 크기는
Figure pct00054
으로서 비 선형적으로 결정되는 바, 여기서 지수
Figure pct00055
는 디바이스 및/또는 시스템 모델의 비-선형 특성들을 포함하기 위해 사용된다. 일부 구현들에서,
Figure pct00056
로 표시되는 상기 비-선형 특성들은 플래시 특성화 데이터 및 제조 공정 특성화 데이터 중 적어도 하나로부터 결정된다. 일부 구현들에서, 커브 피팅 프로세스(curve fitting process)가 소정 확률 쌍(Pij, Pji)으로부터 오프셋의 크기를 결정하기 위해 사용될 수 있는 고차(higher-order) 비-선형 모델을 생성하기 위해 하나 이상의 타입의 특성화 데이터(예컨대, 플래시 특성화 데이터, 제조 공정 특성화 데이터, 등)와 조합하여 사용된다. 일부 구현들에서, 각각의 수학적 모델은 다수의 항(term)들을 포함하고, 상기 항 각각은 각각의 스케일링 계수 및/또는 지수 값을 가진다. 따라서, 커브 피팅 프로세스는 비-선형 모델의 하나 이상의 계수들 및/또는 하나 이상의 지수 값을 결정하기 위해 사용된다. 일부 구현들에서, 오프셋 수식들(또는 모델)은 머신 러닝 방법을 이용하여 결정된다. 예를 들어, 수식들은 히스토리적 데이터에 근거한 플래시 특성화 데이터 및/또는 데이터 패턴들과 같은 이전에 결정된 정보 및 판독 데이터의 조합을 이용하여 포뮬레이션된다.
블록(11-7)으로 표시된 바와 같이, 방법(1100)은 특성화 벡터에 시프트된 판독 비교 전압(또는 시프트된 판독 비교 전압과 대응하는 판독 비교 전압 간의 오프셋)을 저장하는 단계를 포함한다. 블록(11-8)으로 표시된 바와 같이, 방법(1100)은 고려할 추가적인 판독 비교 전압 레벨들이 존재하는지 결정하는 단계를 포함한다. 고려할 추가적인 판독 비교 전압 레벨들이 존재하는 경우("블록(11-8)로부터 "예" 경로), 방법(1100)은 하나 이상의 스토리지 매체 특성화 파라미터 값들의 특정된 세트에 대해 특성화 벡터에 저장될 추가적인 시프트된 판독 비교 전압을 결정하도록 블록들(11-4 및 11-7)로 표시된 방법의 부분을 반복하는 단계를 포함한다. 한편, 고려할 어떤 다른 판독 비교 전압 레벨들도 존재하지 않는 경우("블록(11-8)로부터 "아니오" 경로), 방법(1100)은 블록(11-9)으로 표시된 바와 같이 하나 이상의 스토리지 매체 특성화 파라미터 값들의 특정된 세트에 대해 중지된다.
도 12는 스토리지 매체에 대해 특성화 벡터에 저장된 판독 비교 전압들의 다수의 세트들을 이용하여 스토리지 매체로부터 데이터를 판독하는 방법(1200)의 구현의 순서도 표시이다. 일부 구현들에서, 방법(1200)은 메모리 제어기 또는 스토리지 매체에 연결된 메모리 제어기와 관련된 모듈에 의해 수행되고, 전형적으로는 제1 판독 동작(블록들(12-3, 12-4 및 12-5) 참조)이 어떠한 복구불가능한 에러들도 가지지 않는 데이터를 획득하지 못할 때 수행된다. 간략하게는, 방법(1200)은 (예컨대, 스토리지 매체의 현재 상태에 대응하는) 하나 이상의 스토리지 매체 특성화 파라미터 값들의 특정된 세트에 대응하는 특성화 벡터로부터 적어도 두 개의 판독 비교 전압들을 검색하는 단계 및 서로 다른 두 시간들에서 스토리지 매체의 메모리 동작들의 동일한 세트로부터 원시 데이터를 검색하도록 판독 회로망에 적어도 두 개의 판독 비교 전압들을 인가하는 단계를 포함한다.
이를 위해, 블록(12-1)으로 표시된 바와 같이, 방법(1200)은 데이터가 판독될 스토리지 매체의 현재 상태에 대응하는 하나 이상의 스토리지 매체 특성화 파라미터 값들의 특정된 세트를 수신 또는 검색하는 단계를 포함한다. 블록(12-2)으로 표시된 바와 같이, 방법(1200)은 스토리지 매체 특성화 파라미터 값들의 특정된 세트에 근거하여 특성화 벡터를 선택하는 단계를 포함한다. 블록(12-3)으로 표시된 바와 같이, 방법(1200)은 선택된 특성화 벡터로부터 제1 판독 비교 전압 값들을 획득하는 단계를 포함한다. 블록(12-4)으로 표시된 바와 같이, 방법(1200)은 데이터가 판독될 스토리지 매체의 판독 회로망에 제1 판독 비교 전압 값들을 제공하는 단계를 포함한다. 블록(12-5)으로 표시된 바와 같이, 방법(1200)은 제1 판독 비교 전압 값들에 근거하여, 스토리지 매체의 하나 이상의 특정된 어드레스들 또는 메모리 위치들로부터 제1 판독 데이터 값들을 수신하는 단계를 포함한다. 블록(12-6)으로 표시된 바와 같이, 방법(1200)은 선택된 특성화 벡터로부터 제2 판독 비교 전압 값들을 획득하는 단계를 더 포함한다. 블록(12-7)으로 표시된 바와 같이, 방법(1200)은 스토리지 매체의 판독 회로망에 제2 판독 비교 전압 값들을 제공하는 단계를 포함한다. 블록(12-8)으로 표시된 바와 같이, 방법(1200)은 제2 판독 비교 전압 값들에 근거하여, 블록(12-5)에서 액세스되는 것들과 동일한 (스토리지 매체의) 하나 이상의 특정된 어드레스들 또는 메모리 위치들로부터 제2 판독 데이터 값들을 수신하는 단계를 포함한다. 상기에 기술된 바와 같이, 도 12에 도시되지 않지만, 일부 구현들에서, 스토리지 매체의 하나 이상의 특정된 어드레스들 또는 메모리 위치들에 대한 데이터 값들은 적어도 제2 판독 데이터 값들을 사용하여 복구된다.
첨부된 특허 청구 범위 내의 구현들의 다양한 양상들이 상기에 기술되지만, 상기에 기술된 구현들의 다양한 특징들이 매우 다양한 형태들로 구현될 수 있고, 상기에 기술된 어떤 특정 구조 및/또는 기능이 단지 예시적인 것임이 분명해야 한다. 본 발명에 근거하여, 이 기술 분야의 숙련자는 본 명세서에 기술된 양상이 어떤 다른 양상들과 독립적으로 구현될 수 있고, 이 양상들 중 둘 이상이 다양한 방식들로 조합될 수 있음을 이해해야만 한다. 예를 들어, 장치가 본 명세서에 제시된 어떤 수의 양상들을 이용하여 구현될 수 있고 그리고/또는 방법이 본 명세서에 제시된 어떤 수의 양상들을 이용하여 실시될 수 있다. 추가적으로, 이러한 장치는 본 명세서에 제시된 양상들 중 하나 이상에 더하여 또는 이러한 양상들 외의 다른 구조 및/또는 기능을 이용하여 구현될 수 있고 그리고/또는 방법은 본 명세서에 제시된 양상들 중 하나 이상에 더하여 또는 이러한 양상들 외의 다른 구조 및/또는 기능을 이용하여 실시될 수 있다.
또한, 비록 용어들 "제1", "제2", 등이 다양한 요소들을 기술하기 위해 본 명세서에서 사용될 수 있지만, 이 요소들은 이 용어들에 의해 제한되지 않아야만 함이 이해될 것이다. 이 용어들은 단지, 일 요소를 타 요소로부터 구별하기 위해 사용된다. 예를 들어, 제1 컨택은 제2 컨택으로 불릴 수 있고, 유사하게 제2 컨택은 제1 컨택으로 불릴 수 있는 바, 이는 "제1 컨택"의 모든 상황(occurrence)들이 일관되게 재명명(renamed)되고, "제2 컨택"의 모든 상황들이 일관되게 재명명되기만 하면, 설명의 의미를 변경할 수 있다. 제1 컨택 및 제2 컨택은 모두 컨택들이지만, 이들은 동일한 컨택이 아니다.
본 명세서에서 사용되는 용어는 오직 특별한 실시예들을 기술하는 목적을 위한 것이며, 특허 청구 범위를 제한하는 것으로 의도된 것이 아니다. 실시예들의 상세한 설명 및 첨부된 특허 청구 범위에 사용되는 단수형 "일", "하나의" 및 "상기"는 문맥이 달리 분명하게 나타내지 않는 한, 복수형을 마찬가지로 포함하도록 의도된 것이다. 또한, 본 명세서에 사용된 용어 "및/또는"은 관련된 나열된 아이템들 중 하나 이상의 어떠한 그리고 모든 가능한 조합들을 나타내고 이를 포괄하는 것임이 이해될 것이다. 또한, 용어들 "포함한다" 및/또는 "포함하는"이 본 명세서에서 사용될 때, 언급된 기능들, 완전체(integer)들, 단계들, 동작들, 요소들 및/또는 컴포넌트들의 존재를 특정하지만, 하나 이상의 다른 특징들, 완전체들, 단계들, 동작들, 요소들, 컴포넌트들 및/또는 이들의 그룹들의 존재 또는 추가를 배제하는 것이 아님이 이해될 것이다.
본 명세서에서 사용된 용어 "(만일) ~하면"은 문맥에 좌우되어, 언급된 선행 조건이 참(true)"일 때" 또는 "일 시" 또는 "임을 결정함에 응답하여" 또는 "임을 결정함에 따라" 또는 "임을 검출함에 응답하여"로 해석될 수 있다. 마찬가지로, 문구, "(만일) [언급된 선행 조건이 참]임을 결정하면" 또는 "(만일) [언급된 선행 조건이 참]이면" 또는 "[언급된 선행 조건이 참]일 때"는 문맥에 좌우되어, 언급된 선행 조건이 참"일 시" 또는 "임을 결정함에 응답하여" 또는 "임을 결정함에 따라" 또는 "임을 검출할 시" 또는 "임을 검출함에 응답하여"로 해석될 수 있다.

Claims (45)

  1. 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법으로서,
    상기 스토리지 매체에 대한 하나 이상의 스토리지 매체 특성화 파라미터 값(storage medium characterization parameter value)들의 세트에 근거하여 소프트 정보(soft information) 값들을 포함하는 특성화 벡터를 검색하는 단계와;
    상기 스토리지 매체로부터 판독되는 제1 복수의 데이터 값들 및 검색된 특성화 벡터에 대응하는 제1 복수의 소프트 정보 값들을 생성하는 단계와; 그리고
    상기 스토리지 매체로부터 판독되는 제2 복수의 데이터 값들 및 상기 검색된 특성화 벡터에 대응하는 제2 복수의 소프트 정보 값들을 생성하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  2. 제1항에 있어서,
    스토리지 매체의 부분으로부터 제1 판독 비교 신호를 이용하여 제1 복수의 데이터 값들을 판독하는 단계와; 그리고
    상기 스토리지 매체의 동일한 부분으로부터 상기 제1 판독 비교 신호와 다른 제2 판독 비교 신호를 이용하여 제2 복수의 데이터 값들을 판독하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 제2 복수의 소프트 정보 값들 또는 상기 제2 복수의 소프트 정보 값들 및 상기 제1 복수의 소프트 정보 값들의 조합으로부터 출력 데이터를 생성하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 복수의 소프트 정보 값들이 적어도 하나의 정정불가능한 에러를 포함하는 데이터의 표시임을 나타내는 에러 표시자(error indicator)를 획득하는 단계를 더 포함하고,
    상기 제2 복수의 소프트 정보 값들은 상기 에러 표시자를 수신함에 응답하여 생성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  5. 제1항 내지 청구항 제4항 중 어느 한 항에 있어서,
    상기 제1 복수의 소프트 정보 값들 및 상기 제2 복수의 소프트 정보 값들을 조합함으로써 제3 복수의 소프트 정보 값들을 생성하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  6. 제5항에 있어서,
    상기 제3 복수의 소프트 정보 값들은 상기 제2 복수의 소프트 정보 값들이 적어도 하나의 정정불가능한 에러를 포함하는 데이터의 표시임을 나타내는 에러 표시자를 수신함에 응답하여 생성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    판독 데이터 요청을 수신하는 단계를 더 포함하고, 상기 판독 데이터 요청은 요청되는 데이터가 위치되는 상기 스토리지 매체 내의 위치의 표시를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  8. 제7항에 있어서,
    상기 판독 데이터 요청을 수신함에 응답하여 상기 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트를 검색하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  9. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트를 수신하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  10. 제7항에 있어서,
    상기 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트는:
    상기 스토리지 매체의 적어도 일부와 관련된 물리적 특성,
    상기 스토리지 매체의 적어도 일부와 관련된 동작 모드,
    상기 스토리지 매체의 적어도 일부와 관련된 사용의 히스토리,
    상기 스토리지 매체의 적어도 일부와 관련된 상태 특성(condition characteristic),
    상기 스토리지 매체의 적어도 일부와 관련된 판독 타입, 그리고
    상기 스토리지 매체의 적어도 일부와 관련된 위치
    중 적어도 하나의 표시를 제공하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  11. 제7항에 있어서,
    상기 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트는 액세스되는 스토리지 매체 위치들의 표시, 액세스되는 상기 스토리지 매체 위치들의 이전의 프로그램/소거 사이클들의 수의 표시 및 상기 스토리지 매체의 현재 온도의 표시를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  12. 제4항에 있어서,
    상기 검색된 특성화 벡터로부터 하나 이상의 제1 판독 비교 신호 값들을 선택하는 단계와;
    상기 스토리지 매체와 관련된 판독 회로망에 상기 하나 이상의 제1 판독 비교 신호 값들을 제공함으로써 상기 제1 복수의 데이터 값들을 판독하는 단계와;
    상기 검색된 특성화 벡터로부터 하나 이상의 제2 판독 비교 신호 값들을 선택하는 단계와; 그리고
    상기 스토리지 매체와 관련된 상기 판독 회로망에 상기 하나 이상의 제2 판독 비교 신호 값들을 제공함으로써 상기 제2 복수의 데이터 값들을 판독하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  13. 제12항에 있어서,
    상기 하나 이상의 제1 판독 비교 신호 값들 및 상기 하나 이상의 제2 판독 비교 신호 값들은 전압 값들의 각각의 표시인 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  14. 제12항에 있어서,
    상기 하나 이상의 제2 판독 비교 신호 값들 중 적어도 하나는 천이 확률 쌍에 따라 상기 하나 이상의 제1 판독 비교 신호 값들 중 대응하는 하나에 대해 오프셋되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  15. 제12항에 있어서,
    상기 특성화 벡터는 적어도 두 개의 판독 비교 신호 값들을 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  16. 제1항 내지 제15항 중 어느 한 항에 있어서,
    상기 제1 복수의 소프트 정보 값들을 생성하는 단계는:
    상기 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트에 근거하여 특성화 벡터를 검색하는 단계와, 상기 특성화 벡터는 하나 이상의 비트-튜플들 각각에 대한 하나 이상의 소프트 정보 값들을 포함하고; 그리고
    상기 제1 복수의 데이터 값들 내의 각각의 비트-튜플에 대해 상기 특성화 벡터로부터 각각의 소프트 정보 값을 선택하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  17. 제16항에 있어서,
    상기 제1 복수의 데이터 값들은 단일 비트 비트-튜플들의 시퀀스를 포함하고, 상기 각각의 소프트 정보 값을 선택하는 단계는 각각의 비트-튜플에 대해 상위 페이지(upper page) 또는 하위 페이지(lower page)에 대응하는 소프트 정보 값을 선택하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  18. 제16항에 있어서,
    상기 제1 복수의 데이터 값들은 비트 쌍 비트-튜플들의 시퀀스를 포함하고, 상기 각각의 소프트 정보 값을 선택하는 단계는 각각의 비트-튜플에 대한 상위 페이지 및 하위 페이지 모두에 대응하는 소프트 정보 값을 선택하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  19. 제16항에 있어서,
    상기 특성화 벡터의 소프트 정보 값은 천이 확률 및 로그-가능성 비(log-likelihood ratio) 중 적어도 하나를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  20. 제16항에 있어서, 상기 특성화 벡터는 판독 비교 전압 값들의 쌍을 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  21. 제20항에 있어서,
    상기 특성화 벡터는 상기 판독 비교 전압 값들의 쌍과 관련된 가중 값들의 쌍을 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  22. 제16항에 있어서,
    상기 특성화 벡터는 특성화 파라미터들의 조합에 의해 정의되는 테이블 형태로 저장되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  23. 제1항 내지 제22항 중 어느 한 항에 있어서,
    상기 제2 복수의 소프트 정보 값들을 생성하는 단계는:
    상기 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트에 근거하여 특성화 벡터를 검색하는 단계와, 상기 특성화 벡터는 하나 이상의 비트-튜플들 각각에 대한 하나 이상의 소프트 정보 값들을 포함하고; 그리고
    상기 제2 복수의 데이터 값들 내의 각각의 비트-튜플에 대해 상기 특성화 벡터로부터 각각의 소프트 정보 값을 선택하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  24. 제5항에 있어서,
    상기 제3 복수의 소프트 정보 값들을 생성하는 단계는:
    상기 제1 복수의 소프트 정보 값들 중 하나를 상기 제2 복수의 소프트 정보 값들 중 대응하는 하나와 비교하는 단계와;
    상기 비교가 제1 조건을 만족할 때, 상기 제3 복수의 소프트 정보 값들 중 대응하는 하나를 각각의 비교된 소프트 정보 값들의 제1 조합과 동일시(equating)하는 단계와; 그리고
    상기 비교가 상기 제1 조건을 만족하지 못할 때, 상기 제3 복수의 소프트 정보 값들 중 대응하는 하나를 각각의 비교된 소프트 정보 값들의 제2 조합과 동일시 하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  25. 제24항에 있어서,
    상기 비교는 각각의 비교된 소프트 정보 값들의 부호(sign)들이 동일한지 결정하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  26. 제24항에 있어서,
    상기 각각의 비교된 소프트 정보 값들의 제1 조합은 상기 각각의 비교된 소프트 정보 값들 중 단 하나를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  27. 제24항에 있어서,
    상기 제3 복수의 소프트 정보 값들 중 대응하는 하나를 각각의 비교된 소프트 정보 값들의 제2 조합과 동일시하는 단계는 상기 제1 조건이 만족되지 못할 때 상기 각각의 비교된 소프트 정보 값들의 가중된 합(weighted sum)을 계산하는 단계를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  28. 제27항에 있어서,
    상기 하나 이상의 스토리지 매체 특성화 파라미터 값들의 세트와 관련된 특성화 벡터로부터 상기 가중된 합을 결정하기 위해 각각의 가중(weight)들을 검색하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  29. 제27항에 있어서,
    상기 각각의 비교된 소프트 정보 값들로부터 상기 가중된 합을 결정하기 위해 각각의 가중들을 계산하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  30. 제1항 내지 제29항 중 어느 한 항에 있어서,
    상기 제1 복수의 소프트 정보 값들을 전송하는 단계를 더 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  31. 제1항 내지 제30항 중 어느 한 항에 있어서,
    상기 데이터 값들은 에러-제어 인코딩되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대한 소프트 정보 값들을 생성하는 방법.
  32. 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스로서,
    복수의 특성화 벡터들을 포함하는 특성화 모듈과, 각각의 특성화 벡터는 하나 이상의 특성화 파라미터 값들의 세트에 대응하고, 하나 이상의 비트-튜플 조합들 각각에 대한 하나 이상의 소프트 정보 값들을 포함하며;
    하나 이상의 특성화 파라미터 값들의 특정된 세트에 근거하여 특성화 벡터를 선택하기 위한 선택 모듈과; 그리고
    변환 모듈을 포함하여 구성되며, 상기 변환 모듈은,
    선택된 특성화 벡터로부터의 각각의 소프트 정보 값을 제1 복수의 데이터 값들의 각각의 비트-튜플과 관련시킴으로써 상기 제1 복수의 데이터 값들에 대응하는 제1 복수의 소프트 정보 값들을 생성하고, 그리고
    상기 선택된 특성화 벡터로부터의 각각의 소프트 정보 값을 제2 복수의 데이터 값들의 각각의 비트-튜플과 관련시킴으로써 상기 제2 복수의 데이터 값들에 대응하는 제2 복수의 소프트 정보 값들을 생성하기 위한 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  33. 제32항에 있어서,
    상기 제1 복수의 소프트 정보 값들 민 상기 제2 복수의 소프트 정보 값들의 조합으로부터 제3 복수의 소프트 정보 값들을 생성하기 위한 조정 모듈을 더 포함하여 구성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  34. 제32항 또는 제33항 중 어느 한 항에 있어서,
    제1 시간에, 상기 스토리지 매체와 관련된 판독 회로망에 하나 이상의 판독 비교 신호 값들의 각각의 제1 세트를 제공하고, 상기 제1 복수의 데이터 값들을 수신하며; 그리고
    제2 시간에, 상기 스토리지 매체와 관련된 판독 회로망에 하나 이상의 판독 비교 신호 값들의 각각의 제2 세트, 및 상기 제2 복수의 데이터 값들을 제공하기 위한 판독 제어기를 더 포함하여 구성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  35. 제34항에 있어서,
    각각의 특성화 벡터는 하나 이상의 판독 비교 신호 값들의 제1 세트 및 하나 이상의 판독 비교 신호 값들의 제2 세트를 포함하는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  36. 제35항에 있어서,
    상기 하나 이상의 판독 비교 신호 값들의 각각의 제2 세트의 각각은 상기 하나 이상의 판독 비교 신호 값들의 각각의 제1 세트 중 대응하는 하나 및 각각의 천이 확률 쌍과 관련되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  37. 제32항 내지 제36항 중 어느 한 항에 있어서,
    판독 데이터 요청을 수신하고, 상기 판독 데이터 요청을 수신함에 응답하여 상기 특성화 벡터를 선택하도록 상기 선택 모듈에게 프롬프트(prompt)하기 위한 판독 제어기를 더 포함하여 구성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  38. 제37항에 있어서,
    상기 판독 제어기는 또한, 상기 판독 데이터 요청과 관련하여, 하나 이상의 스토리지 매체 특성화 파라미터 값들의 특정된 세트를 수신하기 위한 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  39. 제37항에 있어서,
    상기 판독 제어기는 또한, 상기 판독 데이터 요청을 수신함에 응답하여, 하나 이상의 스토리지 매체 특성화 파라미터 값들의 특정된 세트를 검색하기 위한 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  40. 제32항 내지 39항 중 어느 한 항에 있어서,
    상기 하나 이상의 판독 비교 신호 값들의 제1 세트가 적어도 하나의 정정불가능한 에러를 포함하는 데이터를 산출(yield)함을 나타내는 에러 표시자를 획득하고; 그리고
    상기 에러 표시자를 획득함에 응답하여 상기 판독 회로망에 상기 하나 이상의 판독 비교 신호 값들의 각각의 제2 세트를 제공하기 위한 판독 제어기를 더 포함하여 구성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  41. 제32항 내지 제40항 중 어느 한 항에 있어서,
    상기 제2 복수의 소프트 정보 값들 또는 상기 제2 복수의 소프트 정보 값들 및 상기 제1 복수의 소프트 정보 값들의 조합으로부터 데이터를 출력하기 위한 디코더를 더 포함하여 구성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  42. 제32항 내지 제41항 중 어느 한 항에 있어서,
    상기 제1 복수의 소프트 정보 값들 및 상기 제2 복수의 소프트 정보 값들을 조합함으로써 제3 복수의 소프트 정보 값들을 생성하기 위한 조정 모듈을 더 포함하여 구성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  43. 제42항에 있어서,
    상기 제3 복수의 소프트 정보 값들은 상기 제2 복수의 소프트 정보 값들이 적어도 하나의 정정불가능한 에러를 포함하는 데이터의 표시임을 나타내는 에러 표시자를 수신함에 응답하여 생성되는 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터에 대해 소프트 정보 값들을 생성하도록 동작가능한 디바이스.
  44. 스토리지 매체로부터 판독되는 데이터로부터 소프트 정보 값들을 생성하는 방법으로서,
    제1 판독 비교 신호를 사용하여 제1 시간에 제1 복수의 데이터 값들을 판독하는 단계와;
    제2 판독 비교 신호를 사용하여 제2 시간에 제2 복수의 데이터 값들을 판독하는 단계와;
    상기 스토리지 매체의 부분으로부터 판독되는 상기 제1 복수의 데이터 값들 및 하나 이상의 스토리지 매체 특성화 파라미터 값들의 제1 세트에 근거하여 제1 복수의 소프트 정보 값을 생성하는 단계와; 그리고
    상기 스토리지 매체의 동일한 부분으로부터 판독되는 상기 제2 복수의 데이터 값들 및 하나 이상의 스토리지 매체 특성화 파라미터 값들의 제2 세트에 근거하여 제2 복수의 소프트 정보 값을 생성하는 단계를 포함하고, 상기 스토리지 매체 특성화 파라미터 값들의 제2 세트는 상기 스토리지 매체 특성화 파라미터 값들의 제1 세트와 다른 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터로부터 소프트 정보 값들을 생성하는 방법.
  45. 제44항에 있어서,
    상기 제2 판독 비교 신호는 상기 제1 판독 비교 신호와 다른 것을 특징으로 하는 스토리지 매체로부터 판독되는 데이터로부터 소프트 정보 값들을 생성하는 방법.
KR1020147015604A 2011-11-07 2012-10-10 메모리 시스템들을 위한 소프트 정보 생성 KR101981355B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161556793P 2011-11-07 2011-11-07
US61/556,793 2011-11-07
US13/602,047 2012-08-31
US13/602,047 US9058289B2 (en) 2011-11-07 2012-08-31 Soft information generation for memory systems
PCT/US2012/059459 WO2013070368A1 (en) 2011-11-07 2012-10-10 Soft information generation for memory systems

Publications (2)

Publication Number Publication Date
KR20140090671A true KR20140090671A (ko) 2014-07-17
KR101981355B1 KR101981355B1 (ko) 2019-05-22

Family

ID=48224585

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147015604A KR101981355B1 (ko) 2011-11-07 2012-10-10 메모리 시스템들을 위한 소프트 정보 생성

Country Status (5)

Country Link
US (3) US8938658B2 (ko)
EP (1) EP2776929B1 (ko)
KR (1) KR101981355B1 (ko)
CN (1) CN104040504B (ko)
WO (3) WO2013070368A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160018149A (ko) * 2014-08-08 2016-02-17 삼성전자주식회사 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법
KR20180042889A (ko) * 2016-10-18 2018-04-27 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR20200040350A (ko) * 2018-10-08 2020-04-20 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI594256B (zh) 2010-04-19 2017-08-01 慧榮科技股份有限公司 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
US11869584B2 (en) 2010-04-19 2024-01-09 Silicon Motion, Inc. Memory access module for performing a plurality of sensing operations to generate digital values of a storage cell in order to perform decoding of the storage cell
US9037931B2 (en) * 2011-12-21 2015-05-19 Advanced Micro Devices, Inc. Methods and systems for logic device defect tolerant redundancy
US9135106B2 (en) * 2012-05-22 2015-09-15 Hgst Technologies Santa Ana, Inc. Read level adjustment using soft information
US9092353B1 (en) 2013-01-29 2015-07-28 Pmc-Sierra Us, Inc. Apparatus and method based on LDPC codes for adjusting a correctable raw bit error rate limit in a memory system
US10230396B1 (en) 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9813080B1 (en) 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US9397701B1 (en) 2013-03-11 2016-07-19 Microsemi Storage Solutions (Us), Inc. System and method for lifetime specific LDPC decoding
US9021331B2 (en) * 2013-03-14 2015-04-28 Seagate Technology Llc Method and apparatus for generation of soft decision error correction code information
US9454414B2 (en) 2013-03-15 2016-09-27 Microsemi Storage Solutions (Us), Inc. System and method for accumulating soft information in LDPC decoding
US9590656B2 (en) 2013-03-15 2017-03-07 Microsemi Storage Solutions (Us), Inc. System and method for higher quality log likelihood ratios in LDPC decoding
US9450610B1 (en) * 2013-03-15 2016-09-20 Microsemi Storage Solutions (Us), Inc. High quality log likelihood ratios determined using two-index look-up table
US9467170B2 (en) * 2013-05-17 2016-10-11 Marvell World Trade Ltd. NAND flash memory systems with efficient soft information interface
US9235469B2 (en) * 2013-05-22 2016-01-12 Seagate Technology Llc Systems and methods for inter-cell interference mitigation in a flash memory
KR20150018091A (ko) * 2013-08-09 2015-02-23 에스케이하이닉스 주식회사 오류 검출 회로 및 이를 이용한 데이터 처리 장치
US9298552B2 (en) * 2013-09-27 2016-03-29 Intel Corporation Using read values from previous decoding operations to calculate soft bit information in an error recovery operation
TWI527048B (zh) * 2013-11-29 2016-03-21 慧榮科技股份有限公司 應用於快閃記憶體裝置的錯誤更正碼單元、自我測試方法及相關的控制器
US9633749B2 (en) * 2013-12-19 2017-04-25 Sandisk Technologies Llc System and method of managing tags associated with read voltages
KR102110767B1 (ko) * 2013-12-24 2020-06-09 삼성전자 주식회사 메모리 컨트롤러 구동방법 및 메모리 컨트롤러
TWI541819B (zh) * 2013-12-30 2016-07-11 慧榮科技股份有限公司 用來進行錯誤更正之方法、記憶裝置、與控制器
US9696920B2 (en) * 2014-06-02 2017-07-04 Micron Technology, Inc. Systems and methods for improving efficiencies of a memory system
KR102215741B1 (ko) * 2014-06-23 2021-02-17 삼성전자주식회사 불휘발성 메모리 및 메모리 컨트롤러를 포함하는 스토리지 장치 및 스토리지 장치의 동작 방법
US9417804B2 (en) 2014-07-07 2016-08-16 Microsemi Storage Solutions (Us), Inc. System and method for memory block pool wear leveling
US9985653B2 (en) 2015-04-10 2018-05-29 Samsung Electronics Co., Ltd. Methods and systems for soft-decision decoding
US10332613B1 (en) 2015-05-18 2019-06-25 Microsemi Solutions (Us), Inc. Nonvolatile memory system with retention monitor
TWI562152B (en) * 2015-05-29 2016-12-11 Phison Electronics Corp Decoding method, memory storage device and memory control circuit unit
US10970382B2 (en) * 2015-07-10 2021-04-06 Sital Technology And Hardware Engineering (1997) Ltd. System for device authentication
US11645430B2 (en) * 2015-07-10 2023-05-09 Sital Technology And Hardware Engineering (1997) Ltd. System for device authentication
WO2017017668A1 (en) * 2015-07-10 2017-02-02 Sital Technology And Hardware Engineering (1997) Ltd. System for device authentication
US9799405B1 (en) 2015-07-29 2017-10-24 Ip Gem Group, Llc Nonvolatile memory system with read circuit for performing reads using threshold voltage shift read instruction
US9886214B2 (en) 2015-12-11 2018-02-06 Ip Gem Group, Llc Nonvolatile memory system with erase suspend circuit and method for erase suspend management
US9892794B2 (en) 2016-01-04 2018-02-13 Ip Gem Group, Llc Method and apparatus with program suspend using test mode
US9899092B2 (en) 2016-01-27 2018-02-20 Ip Gem Group, Llc Nonvolatile memory system with program step manager and method for program step management
CN107452421B (zh) * 2016-05-31 2020-06-16 建兴储存科技(广州)有限公司 固态储存装置及其状态预测方法
US10055351B1 (en) 2016-06-29 2018-08-21 EMC IP Holding Company LLC Low-overhead index for a flash cache
US10261704B1 (en) 2016-06-29 2019-04-16 EMC IP Holding Company LLC Linked lists in flash memory
US10037164B1 (en) 2016-06-29 2018-07-31 EMC IP Holding Company LLC Flash interface for processing datasets
US10331561B1 (en) 2016-06-29 2019-06-25 Emc Corporation Systems and methods for rebuilding a cache index
US10089025B1 (en) 2016-06-29 2018-10-02 EMC IP Holding Company LLC Bloom filters in a flash memory
US10146438B1 (en) 2016-06-29 2018-12-04 EMC IP Holding Company LLC Additive library for data structures in a flash memory
US10291263B2 (en) 2016-07-28 2019-05-14 Ip Gem Group, Llc Auto-learning log likelihood ratio
US10157677B2 (en) 2016-07-28 2018-12-18 Ip Gem Group, Llc Background reference positioning and local reference positioning using threshold voltage shift read
US10236915B2 (en) 2016-07-29 2019-03-19 Microsemi Solutions (U.S.), Inc. Variable T BCH encoding
US10025661B1 (en) 2016-12-27 2018-07-17 Sandisk Technologies Llc Adaptive hard and soft bit decoding
US10489243B2 (en) * 2017-03-13 2019-11-26 Toshiba Memory Corporation Memory controller and memory system
CN108572887A (zh) * 2017-03-14 2018-09-25 上海骐宏电驱动科技有限公司 数据检验校正方法
US10776018B2 (en) 2017-06-19 2020-09-15 International Business Machines Corporation Efficient discovery of silent read failures on underlying media of storage systems
US10970363B2 (en) 2017-10-17 2021-04-06 Microsoft Technology Licensing, Llc Machine-learning optimization of data reading and writing
CN109979519B (zh) * 2017-12-27 2021-03-16 华邦电子股份有限公司 存储器完整性的检验方法、非易失性存储器以及电子装置
TWI684106B (zh) * 2018-09-28 2020-02-01 大陸商深圳衡宇芯片科技有限公司 訓練人工智慧更正儲存裝置的對數概度比的方法
CN111796961A (zh) * 2019-04-09 2020-10-20 深圳大心电子科技有限公司 数据读取方法、存储控制器与存储装置
CN111243647B (zh) * 2020-01-02 2022-05-24 长江存储科技有限责任公司 闪存编程参数确定方法、装置、电子设备及存储介质
CN113129980B (zh) * 2020-08-04 2022-06-03 长江存储科技有限责任公司 一种信息译码方法、装置、电子设备及存储介质
US11966277B2 (en) * 2022-01-25 2024-04-23 Dell Products L.P. Storage error identification/reduction system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090089342A (ko) * 2006-11-03 2009-08-21 쌘디스크 코포레이션 가변 판독 임계값을 갖는 비휘발성 메모리
US20100002506A1 (en) * 2008-07-04 2010-01-07 Samsung Electronics Co., Ltd. Memory device and memory programming method
US20110205823A1 (en) * 2010-02-19 2011-08-25 Gerrit Jan Hemink Non-Volatile Storage With Temperature Compensation Based On Neighbor State Information

Family Cites Families (289)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4173737A (en) 1978-05-04 1979-11-06 Zenith Radio Corporation Limited position, non-volatile memory tuning system
US4888750A (en) 1986-03-07 1989-12-19 Kryder Mark H Method and system for erase before write magneto-optic recording
US4916652A (en) 1987-09-30 1990-04-10 International Business Machines Corporation Dynamic multiple instruction stream multiple data multiple pipeline apparatus for floating-point single instruction stream single data architectures
US5129089A (en) 1987-12-18 1992-07-07 Digital Equipment Corporation Distributed interlock apparatus and distributed interlock management method
US5270979A (en) 1991-03-15 1993-12-14 Sundisk Corporation Method for optimum erasing of EEPROM
US5657332A (en) 1992-05-20 1997-08-12 Sandisk Corporation Soft errors handling in EEPROM devices
US5416915A (en) 1992-12-11 1995-05-16 International Business Machines Corporation Method and system for minimizing seek affinity and enhancing write sensitivity in a DASD array
US5537555A (en) 1993-03-22 1996-07-16 Compaq Computer Corporation Fully pipelined and highly concurrent memory controller
US5329491A (en) 1993-06-30 1994-07-12 Intel Corporation Nonvolatile memory card with automatic power supply configuration
US5519847A (en) 1993-06-30 1996-05-21 Intel Corporation Method of pipelining sequential writes in a flash memory
US5708849A (en) 1994-01-26 1998-01-13 Intel Corporation Implementing scatter/gather operations in a direct memory access device on a personal computer
US5696917A (en) 1994-06-03 1997-12-09 Intel Corporation Method and apparatus for performing burst read operations in an asynchronous nonvolatile memory
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5666114A (en) 1994-11-22 1997-09-09 International Business Machines Corporation Method and means for managing linear mapped address spaces storing compressed data at the storage subsystem control unit or device level
US5530705A (en) 1995-02-08 1996-06-25 International Business Machines Corporation Soft error recovery system and method
US5606532A (en) * 1995-03-17 1997-02-25 Atmel Corporation EEPROM array with flash-like core
WO1997000518A1 (fr) 1995-06-14 1997-01-03 Hitachi, Ltd. Memoire a semiconducteurs, unite de memoire et carte de memoire
US5890193A (en) 1995-07-28 1999-03-30 Micron Technology, Inc. Architecture for state machine for controlling internal operations of flash memory
US6728851B1 (en) 1995-07-31 2004-04-27 Lexar Media, Inc. Increasing the memory performance of flash memory devices by writing sectors simultaneously to multiple flash memory devices
US6134148A (en) 1997-09-30 2000-10-17 Hitachi, Ltd. Semiconductor integrated circuit and data processing system
US5943692A (en) 1997-04-30 1999-08-24 International Business Machines Corporation Mobile client computer system with flash memory management utilizing a virtual address map and variable length data
US6006345A (en) 1997-05-09 1999-12-21 International Business Machines Corporation Pattern generator for memory burn-in and test
US6000006A (en) 1997-08-25 1999-12-07 Bit Microsystems, Inc. Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage
JPH11126497A (ja) 1997-10-22 1999-05-11 Oki Electric Ind Co Ltd 不揮発性半導体記憶装置
US6018304A (en) 1997-12-18 2000-01-25 Texas Instruments Incorporated Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability
US6070074A (en) 1998-04-24 2000-05-30 Trw Inc. Method for enhancing the performance of a regenerative satellite communications system
US6138261A (en) 1998-04-29 2000-10-24 Trw Inc. Concatenated coding system for satellite communications
US6182264B1 (en) 1998-05-22 2001-01-30 Vlsi Technology, Inc. Smart dynamic selection of error correction methods for DECT based data services
US7111293B1 (en) 1998-06-03 2006-09-19 Ants Software, Inc. Method for increased concurrency in a computer system
US6192092B1 (en) 1998-06-15 2001-02-20 Intel Corp. Method and apparatus for clock skew compensation
US6505305B1 (en) 1998-07-16 2003-01-07 Compaq Information Technologies Group, L.P. Fail-over of multiple memory blocks in multiple memory modules in computer system
US6314501B1 (en) 1998-07-23 2001-11-06 Unisys Corporation Computer system and method for operating multiple operating systems in different partitions of the computer system and for allowing the different partitions to communicate with one another through shared memory
US6295592B1 (en) 1998-07-31 2001-09-25 Micron Technology, Inc. Method of processing memory requests in a pipelined memory controller
US6288860B1 (en) 1999-01-04 2001-09-11 Maxtor Corporation Servo area numbering strategy for computer disk drives
US6438661B1 (en) 1999-03-03 2002-08-20 International Business Machines Corporation Method, system, and program for managing meta data in a storage system and rebuilding lost meta data in cache
US6449625B1 (en) 1999-04-20 2002-09-10 Lucent Technologies Inc. Use of a two-way stack approach to optimize flash memory management for embedded database systems
US6564271B2 (en) 1999-06-09 2003-05-13 Qlogic Corporation Method and apparatus for automatically transferring I/O blocks between a host system and a host adapter
US7333364B2 (en) 2000-01-06 2008-02-19 Super Talent Electronics, Inc. Cell-downgrading and reference-voltage adjustment for a multi-bit-cell flash memory
US20050114587A1 (en) 2003-11-22 2005-05-26 Super Talent Electronics Inc. ExpressCard with On-Card Flash Memory with Shared Flash-Control Bus but Separate Ready Lines
US7318117B2 (en) 2004-02-26 2008-01-08 Super Talent Electronics, Inc. Managing flash memory including recycling obsolete sectors
US20080282128A1 (en) 1999-08-04 2008-11-13 Super Talent Electronics, Inc. Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance
US6412042B1 (en) 1999-11-17 2002-06-25 Maxtor Corporation System and method for improved disk drive performance and reliability
US6484224B1 (en) 1999-11-29 2002-11-19 Cisco Technology Inc. Multi-interface symmetric multiprocessor
DE19961138C2 (de) 1999-12-17 2001-11-22 Siemens Ag Multiport-RAM-Speichervorrichtung
US8037234B2 (en) 2003-12-02 2011-10-11 Super Talent Electronics, Inc. Command queuing smart storage transfer manager for striping data to raw-NAND flash modules
US7082056B2 (en) 2004-03-12 2006-07-25 Super Talent Electronics, Inc. Flash memory device and architecture with multi level cells
US20020152305A1 (en) 2000-03-03 2002-10-17 Jackson Gregory J. Systems and methods for resource utilization analysis in information management environments
US6516437B1 (en) 2000-03-07 2003-02-04 General Electric Company Turbo decoder control for use with a programmable interleaver, variable block length, and multiple code rates
US6615307B1 (en) 2000-05-10 2003-09-02 Micron Technology, Inc. Flash with consistent latency for read operations
US20030188045A1 (en) 2000-04-13 2003-10-02 Jacobson Michael B. System and method for distributing storage controller tasks
US6678788B1 (en) 2000-05-26 2004-01-13 Emc Corporation Data type and topological data categorization and ordering for a mass storage system
US6442076B1 (en) 2000-06-30 2002-08-27 Micron Technology, Inc. Flash memory with multiple status reading capability
US6980985B1 (en) 2000-08-30 2005-12-27 At&T Corp. Distributed evalulation of directory queries using a topology cache
US7028165B2 (en) 2000-12-06 2006-04-11 Intel Corporation Processor stalling
US6738870B2 (en) 2000-12-22 2004-05-18 International Business Machines Corporation High speed remote storage controller
KR100381955B1 (ko) 2001-01-03 2003-04-26 삼성전자주식회사 기입 드라이버를 이용한 셀 전류 측정 스킴을 갖는 플래시메모리 장치
US20020165942A1 (en) 2001-01-29 2002-11-07 Ulrich Thomas R. Data path accelerator with variable parity, variable length, and variable extent parity groups
JPWO2002082435A1 (ja) 2001-03-30 2004-07-29 富士通株式会社 記憶装置及びそのフォーカス制御方法
US7017107B2 (en) 2001-04-30 2006-03-21 Sun Microsystems, Inc. Storage array employing scrubbing operations at the disk-controller level
US6938253B2 (en) 2001-05-02 2005-08-30 Portalplayer, Inc. Multiprocessor communication system and method
US6757768B1 (en) 2001-05-17 2004-06-29 Cisco Technology, Inc. Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US7068603B2 (en) 2001-07-06 2006-06-27 Juniper Networks, Inc. Cross-bar switch
US6836815B1 (en) 2001-07-11 2004-12-28 Pasternak Solutions Llc Layered crossbar for interconnection of multiple processors and shared memories
JP4569055B2 (ja) 2001-08-06 2010-10-27 ソニー株式会社 信号処理装置及び信号処理方法
TW539946B (en) 2001-08-07 2003-07-01 Solid State System Company Ltd Window-based flash memory storage system, and the management method and the access method thereof
JP4437519B2 (ja) 2001-08-23 2010-03-24 スパンション エルエルシー 多値セルメモリ用のメモリコントローラ
US7028213B2 (en) 2001-09-28 2006-04-11 Hewlett-Packard Development Company, L.P. Error indication in a raid memory system
US7032123B2 (en) 2001-10-19 2006-04-18 Sun Microsystems, Inc. Error recovery
JP3663377B2 (ja) 2001-10-23 2005-06-22 インターナショナル・ビジネス・マシーンズ・コーポレーション データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法
US7380085B2 (en) 2001-11-14 2008-05-27 Intel Corporation Memory adapted to provide dedicated and or shared memory to multiple processors and method therefor
US6798696B2 (en) 2001-12-04 2004-09-28 Renesas Technology Corp. Method of controlling the operation of non-volatile semiconductor memory chips
EP1337066B1 (en) * 2002-02-15 2005-01-12 Matsushita Electric Industrial Co., Ltd. Hybrid arq retransmission method with reduced buffer size requirement and receiver therefor
US6871257B2 (en) 2002-02-22 2005-03-22 Sandisk Corporation Pipelined parallel programming operation in a non-volatile memory system
US6836808B2 (en) 2002-02-25 2004-12-28 International Business Machines Corporation Pipelined packet processing
KR100476888B1 (ko) 2002-04-04 2005-03-17 삼성전자주식회사 온도보상기능을 가진 멀티비트 플래쉬메모리
JP4079684B2 (ja) 2002-05-08 2008-04-23 株式会社日立製作所 ヒープメモリ管理方法およびそれを用いた計算機システム
US6895464B2 (en) 2002-06-03 2005-05-17 Honeywell International Inc. Flash memory management system and method utilizing multiple block list windows
US6978343B1 (en) 2002-08-05 2005-12-20 Netlogic Microsystems, Inc. Error-correcting content addressable memory
US7051155B2 (en) 2002-08-05 2006-05-23 Sun Microsystems, Inc. Method and system for striping data to accommodate integrity metadata
US7120856B2 (en) 2002-09-25 2006-10-10 Leanics Corporation LDPC code and encoder/decoder regarding same
JP2004178782A (ja) 2002-10-04 2004-06-24 Sharp Corp 半導体記憶装置およびその制御方法および携帯電子機器
US7660998B2 (en) 2002-12-02 2010-02-09 Silverbrook Research Pty Ltd Relatively unique ID in integrated circuit
US20040114265A1 (en) 2002-12-16 2004-06-17 Xerox Corporation User-selectable automatic secure data file erasure of job after job completion
US20040153902A1 (en) 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
US7296216B2 (en) 2003-01-23 2007-11-13 Broadcom Corporation Stopping and/or reducing oscillations in low density parity check (LDPC) decoding
US7043505B1 (en) 2003-01-28 2006-05-09 Unisys Corporation Method variation for collecting stability data from proprietary systems
US7162678B2 (en) 2003-03-14 2007-01-09 Quantum Corporation Extended error correction codes
US7527466B2 (en) * 2003-04-03 2009-05-05 Simmons Robert J Building-erection structural member transporter
KR100543447B1 (ko) 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
JP4170988B2 (ja) 2003-05-09 2008-10-22 富士通株式会社 実行環境の危険予測/回避方法,システム,プログラムおよびその記録媒体
JP2006526227A (ja) 2003-05-23 2006-11-16 ワシントン ユニヴァーシティー Fpgaデバイスを使用するインテリジェントデータ記憶および処理
US7877647B2 (en) 2003-05-23 2011-01-25 Hewlett-Packard Development Company, L.P. Correcting a target address in parallel with determining whether the target address was received in error
US7685254B2 (en) 2003-06-10 2010-03-23 Pandya Ashish A Runtime adaptable search processor
US7076598B2 (en) 2003-09-09 2006-07-11 Solid State System Co., Ltd. Pipeline accessing method to a large block memory
US7054968B2 (en) 2003-09-16 2006-05-30 Denali Software, Inc. Method and apparatus for multi-port memory controller
US7100002B2 (en) 2003-09-16 2006-08-29 Denali Software, Inc. Port independent data transaction interface for multi-port devices
US7523157B2 (en) 2003-09-25 2009-04-21 International Business Machines Corporation Managing a plurality of processors as devices
US7012835B2 (en) 2003-10-03 2006-03-14 Sandisk Corporation Flash memory data correction and scrub techniques
US7173852B2 (en) 2003-10-03 2007-02-06 Sandisk Corporation Corrected data storage and handling methods
US7401174B2 (en) 2003-12-16 2008-07-15 Matsushita Electric Industrial Co., Ltd. File system defragmentation and data processing method and apparatus for an information recording medium
US7376887B2 (en) 2003-12-22 2008-05-20 International Business Machines Corporation Method for fast ECC memory testing by software including ECC check byte
US20050251617A1 (en) 2004-05-07 2005-11-10 Sinclair Alan W Hybrid non-volatile memory system
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
JP4477365B2 (ja) 2004-01-29 2010-06-09 株式会社日立製作所 複数インタフェースを有する記憶装置、および、その記憶装置の制御方法
US7350044B2 (en) 2004-01-30 2008-03-25 Micron Technology, Inc. Data move method and apparatus
US7389465B2 (en) 2004-01-30 2008-06-17 Micron Technology, Inc. Error detection and correction scheme for a memory device
US20080147964A1 (en) 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7035159B2 (en) 2004-04-01 2006-04-25 Micron Technology, Inc. Techniques for storing accurate operating current values
US7020017B2 (en) 2004-04-06 2006-03-28 Sandisk Corporation Variable programming of non-volatile memory
EP1870814B1 (en) 2006-06-19 2014-08-13 Texas Instruments France Method and apparatus for secure demand paging for processor devices
US7490283B2 (en) 2004-05-13 2009-02-10 Sandisk Corporation Pipelined data relocation and improved chip architectures
US20050273560A1 (en) 2004-06-03 2005-12-08 Hulbert Jared E Method and apparatus to avoid incoherency between a cache memory and flash memory
US7334179B2 (en) 2004-06-04 2008-02-19 Broadcom Corporation Method and system for detecting and correcting errors while accessing memory devices in microprocessor systems
US7159069B2 (en) 2004-06-23 2007-01-02 Atmel Corporation Simultaneous external read operation during internal programming in a flash memory device
US8190808B2 (en) 2004-08-17 2012-05-29 Rambus Inc. Memory device having staggered memory operations
EP3422583B1 (en) 2004-08-30 2020-07-08 Google LLC Systems and methods for providing nonvolatile memory management in wireless phones
FR2875358B1 (fr) 2004-09-15 2006-12-15 Eads Telecom Soc Par Actions S Insertion d'un flux secondaire d'informations binaires dans un flux principal de symboles d'une modulation numerique
US7760880B2 (en) 2004-10-13 2010-07-20 Viasat, Inc. Decoder architecture system and method
JP4956922B2 (ja) 2004-10-27 2012-06-20 ソニー株式会社 記憶装置
WO2006068435A2 (en) 2004-12-22 2006-06-29 Lg Electronics Inc. Apparatus and method for decoding using channel code
US20060156177A1 (en) 2004-12-29 2006-07-13 Sailesh Kottapalli Method and apparatus for recovering from soft errors in register files
US7657696B2 (en) 2005-02-25 2010-02-02 Lsi Corporation Method to detect NAND-flash parameters by hardware automatically
US7707232B2 (en) 2005-05-13 2010-04-27 Microsoft Corporation Implementation for collecting unmanaged memory
US7283395B2 (en) 2005-06-24 2007-10-16 Infineon Technologies Flash Gmbh & Co. Kg Memory device and method for operating the memory device
US8171367B2 (en) 2005-06-27 2012-05-01 Thomson Licensing Stopping criteria in iterative decoders
US20070061597A1 (en) 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
KR100705220B1 (ko) 2005-09-15 2007-04-06 주식회사 하이닉스반도체 프로그램 속도를 증가시키기 위한 플래시 메모리 장치의소거 및 프로그램 방법
EP1934745A2 (en) 2005-09-27 2008-06-25 Nxp B.V. Error detection / correction circuit as well as corresponding method
US7652922B2 (en) 2005-09-30 2010-01-26 Mosaid Technologies Incorporated Multiple independent serial link memory
KR100715147B1 (ko) 2005-10-06 2007-05-10 삼성전자주식회사 전류소모를 감소시키는 내부전원전압 발생회로를 가지는멀티칩 반도체 메모리 장치
US20070083697A1 (en) 2005-10-07 2007-04-12 Microsoft Corporation Flash memory management
US8223553B2 (en) 2005-10-12 2012-07-17 Macronix International Co., Ltd. Systems and methods for programming a memory device
US7954037B2 (en) 2005-10-25 2011-05-31 Sandisk Il Ltd Method for recovering from errors in flash memory
US8006161B2 (en) 2005-10-26 2011-08-23 Samsung Electronics Co., Ltd Apparatus and method for receiving signal in a communication system using a low density parity check code
KR100966043B1 (ko) 2005-10-31 2010-06-25 삼성전자주식회사 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 송수신 장치 및 방법
US7500062B2 (en) 2005-11-17 2009-03-03 International Business Machines Corporation Fast path memory read request processing in a multi-level memory architecture
WO2007058617A1 (en) 2005-11-17 2007-05-24 Chee Keng Chang A controller for non-volatile memories, and methods of operating the memory controller
US7546515B2 (en) 2005-12-27 2009-06-09 Sandisk Corporation Method of storing downloadable firmware on bulk media
US7562283B2 (en) 2005-12-27 2009-07-14 D.S.P. Group Ltd. Systems and methods for error correction using binary coded hexidecimal or hamming decoding
US7349264B2 (en) 2005-12-28 2008-03-25 Sandisk Corporation Alternate sensing techniques for non-volatile memories
US7742339B2 (en) 2006-01-10 2010-06-22 Saifun Semiconductors Ltd. Rd algorithm improvement for NROM technology
US8020060B2 (en) 2006-01-18 2011-09-13 Sandisk Il Ltd Method of arranging data in a multi-level cell memory device
KR100725410B1 (ko) 2006-01-20 2007-06-07 삼성전자주식회사 전원 상태에 따라 비휘발성 메모리의 블록 회수를 수행하는장치 및 그 방법
US20070234143A1 (en) 2006-01-25 2007-10-04 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of testing for failed bits of semiconductor memory devices
JP4859471B2 (ja) 2006-02-02 2012-01-25 株式会社日立製作所 ストレージシステム及びストレージコントローラ
US7870326B2 (en) 2006-07-28 2011-01-11 Samsung Electronics Co., Ltd. Multiprocessor system and method thereof
JP4863749B2 (ja) 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム
US7681106B2 (en) 2006-03-29 2010-03-16 Freescale Semiconductor, Inc. Error correction device and methods thereof
US20070245061A1 (en) 2006-04-13 2007-10-18 Intel Corporation Multiplexing a parallel bus interface and a flash memory interface
US7685494B1 (en) 2006-05-08 2010-03-23 Marvell International, Ltd. Error correction coding for varying signal-to-noise ratio channels
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7707481B2 (en) 2006-05-16 2010-04-27 Pitney Bowes Inc. System and method for efficient uncorrectable error detection in flash memory
US7701764B2 (en) 2006-05-17 2010-04-20 Micron Technology, Inc. Apparatus and method for reduced peak power consumption during common operation of multi-NAND flash memory devices
US20070300130A1 (en) 2006-05-17 2007-12-27 Sandisk Corporation Method of Error Correction Coding for Multiple-Sector Pages in Flash Memory Devices
US7606084B2 (en) 2006-06-19 2009-10-20 Sandisk Corporation Programming differently sized margins and sensing with compensations at select states for improved read operations in non-volatile memory
JP4842719B2 (ja) 2006-06-28 2011-12-21 株式会社日立製作所 ストレージシステム及びそのデータ保護方法
WO2008003094A2 (en) 2006-06-29 2008-01-03 Digital Fountain, Inc. Efficient representation of symbol-based transformations with application to encoding and decoding of forward error correction codes
US7774684B2 (en) 2006-06-30 2010-08-10 Intel Corporation Reliability, availability, and serviceability in a memory device
JP2008047273A (ja) 2006-07-20 2008-02-28 Toshiba Corp 半導体記憶装置およびその制御方法
US7831895B2 (en) 2006-07-25 2010-11-09 Communications Coding Corporation Universal error control coding system for digital communication and data storage systems
TW200813724A (en) 2006-07-28 2008-03-16 Samsung Electronics Co Ltd Multipath accessible semiconductor memory device with host interface between processors
US20080052446A1 (en) 2006-08-28 2008-02-28 Sandisk Il Ltd. Logical super block mapping for NAND flash memory
US7450425B2 (en) 2006-08-30 2008-11-11 Micron Technology, Inc. Non-volatile memory cell read failure reduction
TW200816651A (en) 2006-09-25 2008-04-01 Sunplus Technology Co Ltd Decoding method and system of real-time wireless channel estimation
US7886204B2 (en) 2006-09-27 2011-02-08 Sandisk Corporation Methods of cell population distribution assisted read margining
US8171380B2 (en) 2006-10-10 2012-05-01 Marvell World Trade Ltd. Adaptive systems and methods for storing and retrieving data to and from memory cells
JP2008117195A (ja) 2006-11-06 2008-05-22 Hitachi Ltd 半導体記憶装置
TWI307100B (en) 2006-11-07 2009-03-01 Macronix Int Co Ltd Memory and method for reading error checking thereof
US7508703B2 (en) 2006-11-13 2009-03-24 Sandisk Corporation Non-volatile memory with boost structures
US8074011B2 (en) * 2006-12-06 2011-12-06 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery after reaching a read count limit
WO2008070803A1 (en) 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for managing data from a requesting device with an empty data token directive
KR100808664B1 (ko) 2006-12-08 2008-03-07 한국전자통신연구원 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
WO2008075292A2 (en) 2006-12-18 2008-06-26 Nxp B.V. Power-on temperature sensor/spd detect
KR100881669B1 (ko) 2006-12-18 2009-02-06 삼성전자주식회사 비휘발성 데이터 저장장치의 정적 데이터 영역 검출 방법,마모도 평준화 방법 및 데이터 유닛 병합 방법과 그 장치
KR100842680B1 (ko) 2007-01-08 2008-07-01 삼성전자주식회사 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템
US7603490B2 (en) 2007-01-10 2009-10-13 International Business Machines Corporation Barrier and interrupt mechanism for high latency and out of order DMA device
KR100855587B1 (ko) 2007-01-17 2008-09-01 삼성전자주식회사 메일박스 영역을 가지는 멀티 패스 액세스블 반도체 메모리장치 및 그에 따른 메일박스 액세스 제어방법
US7596643B2 (en) 2007-02-07 2009-09-29 Siliconsystems, Inc. Storage subsystem with configurable buffer
US7913022B1 (en) 2007-02-14 2011-03-22 Xilinx, Inc. Port interface modules (PIMs) in a multi-port memory controller (MPMC)
WO2008111058A2 (en) 2007-03-12 2008-09-18 Anobit Technologies Ltd. Adaptive estimation of memory cell read thresholds
KR100918707B1 (ko) 2007-03-12 2009-09-23 삼성전자주식회사 플래시 메모리를 기반으로 한 메모리 시스템
JP4897524B2 (ja) 2007-03-15 2012-03-14 株式会社日立製作所 ストレージシステム及びストレージシステムのライト性能低下防止方法
KR100907218B1 (ko) 2007-03-28 2009-07-10 삼성전자주식회사 읽기 레벨 제어 장치 및 그 방법
WO2008121553A1 (en) 2007-03-29 2008-10-09 Sandisk Corporation Non-volatile storage with decoding of data using reliability metrics based on multiple reads
WO2008121577A1 (en) 2007-03-31 2008-10-09 Sandisk Corporation Soft bit data transmission for error correction control in non-volatile memory
US8032724B1 (en) 2007-04-04 2011-10-04 Marvell International Ltd. Demand-driven opportunistic garbage collection in memory components
US7996642B1 (en) 2007-04-25 2011-08-09 Marvell International Ltd. Digital locked loop on channel tagged memory requests for memory optimization
US8151171B2 (en) 2007-05-07 2012-04-03 Broadcom Corporation Operational parameter adaptable LDPC (low density parity check) decoder
US8073648B2 (en) 2007-05-14 2011-12-06 Sandisk Il Ltd. Measuring threshold voltage distribution in memory using an aggregate characteristic
US7930547B2 (en) 2007-06-15 2011-04-19 Alcatel-Lucent Usa Inc. High accuracy bloom filter using partitioned hashing
KR100891005B1 (ko) 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
JP4564520B2 (ja) 2007-08-31 2010-10-20 株式会社東芝 半導体記憶装置およびその制御方法
US8095851B2 (en) 2007-09-06 2012-01-10 Siliconsystems, Inc. Storage subsystem capable of adjusting ECC settings based on monitored conditions
JP5399403B2 (ja) 2007-10-31 2014-01-29 アギア システムズ インコーポレーテッド マルチレベルフラッシュメモリの系統誤差訂正
US7894264B2 (en) 2007-11-07 2011-02-22 Micron Technology, Inc. Controlling a memory device responsive to degradation
US8429492B2 (en) 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US8453022B2 (en) 2007-12-05 2013-05-28 Densbits Technologies Ltd. Apparatus and methods for generating row-specific reading thresholds in flash memory
US8621137B2 (en) 2007-12-27 2013-12-31 Sandisk Enterprise Ip Llc Metadata rebuild in a flash memory controller following a loss of power
WO2009084724A1 (en) 2007-12-28 2009-07-09 Kabushiki Kaisha Toshiba Semiconductor storage device
US20090172335A1 (en) 2007-12-31 2009-07-02 Anand Krishnamurthi Kulkarni Flash devices with raid
US8159874B2 (en) 2008-01-22 2012-04-17 Micron Technology, Inc. Cell operation monitoring
US8271515B2 (en) 2008-01-29 2012-09-18 Cadence Design Systems, Inc. System and method for providing copyback data integrity in a non-volatile memory system
JP4617405B2 (ja) 2008-02-05 2011-01-26 富士通株式会社 不良メモリを検出する電子機器、不良メモリ検出方法およびそのためのプログラム
JP4672743B2 (ja) 2008-03-01 2011-04-20 株式会社東芝 誤り訂正装置および誤り訂正方法
US8230300B2 (en) 2008-03-07 2012-07-24 Apple Inc. Efficient readout from analog memory cells using data compression
JP2009266349A (ja) 2008-04-28 2009-11-12 Toshiba Corp 不揮発性半導体記憶装置
US8185706B2 (en) 2008-04-30 2012-05-22 Apple Inc. Copyback optimization for memory system
KR101518199B1 (ko) 2008-05-23 2015-05-06 삼성전자주식회사 오류 정정 장치, 그 방법 및 상기 장치를 포함하는 메모리장치
KR101412690B1 (ko) 2008-05-28 2014-06-27 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
KR101412974B1 (ko) 2008-05-28 2014-06-30 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
JP5072723B2 (ja) 2008-06-11 2012-11-14 株式会社東芝 不揮発性半導体記憶装置
US8959280B2 (en) 2008-06-18 2015-02-17 Super Talent Technology, Corp. Super-endurance solid-state drive with endurance translation layer (ETL) and diversion of temp files for reduced flash wear
US8627169B2 (en) 2008-06-20 2014-01-07 Cadence Design Systems, Inc. Method and apparatus for dynamically configurable multi level error correction
KR101436506B1 (ko) 2008-07-23 2014-09-02 삼성전자주식회사 메모리 장치 및 메모리 데이터 프로그래밍 방법
US8130552B2 (en) 2008-09-11 2012-03-06 Sandisk Technologies Inc. Multi-pass programming for memory with reduced data storage requirement
KR101484556B1 (ko) 2008-10-28 2015-01-20 삼성전자주식회사 독출 보상 회로
US8023334B2 (en) 2008-10-31 2011-09-20 Micron Technology, Inc. Program window adjust for memory cell signal line delay
KR101516577B1 (ko) 2008-11-10 2015-05-06 삼성전자주식회사 비휘발성 반도체 메모리 장치, 그를 포함하는 메모리 카드와 메모리 시스템 및 그의 리드 전압 추정 방법
US9063874B2 (en) 2008-11-10 2015-06-23 SanDisk Technologies, Inc. Apparatus, system, and method for wear management
KR20100058166A (ko) 2008-11-24 2010-06-03 삼성전자주식회사 불휘발성 메모리 장치 및 그것을 포함하는 메모리 시스템
US8209466B2 (en) 2008-12-16 2012-06-26 Intel Corporation Methods and systems to allocate addresses in a high-endurance/low-endurance hybrid flash memory
US9128699B2 (en) 2008-12-22 2015-09-08 Intel Corporation Method and system for queuing transfers of multiple non-contiguous address ranges with a single command
KR101535225B1 (ko) 2009-01-06 2015-07-09 삼성전자주식회사 디코딩 방법 및 그 방법을 이용하는 메모리 시스템 장치
KR100996009B1 (ko) 2009-02-02 2010-11-22 주식회사 하이닉스반도체 불휘발성 메모리 소자 및 그 동작 방법
US8645749B2 (en) 2009-02-04 2014-02-04 Micron Technology, Inc. Systems and methods for storing and recovering controller data in non-volatile memory devices
KR20100090439A (ko) 2009-02-06 2010-08-16 주식회사 하이닉스반도체 불휘발성 메모리 장치의 독출 방법 및 이를 구현하는 불휘발성 메모리 장치
KR20100093885A (ko) 2009-02-17 2010-08-26 삼성전자주식회사 불휘발성 메모리 장치, 그것의 동작 방법, 그리고 그것을 포함하는 메모리 시스템
US8259506B1 (en) 2009-03-25 2012-09-04 Apple Inc. Database of memory read thresholds
US8042011B2 (en) 2009-04-28 2011-10-18 Synopsys, Inc. Runtime programmable BIST for testing a multi-port memory device
US20100281207A1 (en) 2009-04-30 2010-11-04 Miller Steven C Flash-based data archive storage system
KR101575248B1 (ko) 2009-04-30 2015-12-07 삼성전자주식회사 메모리 컨트롤러 및 그것을 포함하는 메모리 시스템
US8412985B1 (en) 2009-06-30 2013-04-02 Micron Technology, Inc. Hardwired remapped memory
US7941696B2 (en) 2009-08-11 2011-05-10 Texas Memory Systems, Inc. Flash-based memory system with static or variable length page stripes including data protection information and auxiliary protection stripes
US7818525B1 (en) 2009-08-12 2010-10-19 Texas Memory Systems, Inc. Efficient reduction of read disturb errors in NAND FLASH memory
US8464106B2 (en) 2009-08-24 2013-06-11 Ocz Technology Group, Inc. Computer system with backup function and method therefor
US8077515B2 (en) 2009-08-25 2011-12-13 Micron Technology, Inc. Methods, devices, and systems for dealing with threshold voltage change in memory devices
US8254170B2 (en) 2009-08-25 2012-08-28 Sandisk Il Ltd. Preloading data into a flash storage device
JP5197544B2 (ja) 2009-10-05 2013-05-15 株式会社東芝 メモリシステム
US8312349B2 (en) 2009-10-27 2012-11-13 Micron Technology, Inc. Error detection/correction based memory management
CN101699406B (zh) 2009-11-12 2011-12-14 威盛电子股份有限公司 数据储存系统与方法
US8130553B2 (en) 2009-12-02 2012-03-06 Seagate Technology Llc Systems and methods for low wear operation of solid state memory
US8250380B2 (en) 2009-12-17 2012-08-21 Hitachi Global Storage Technologies Netherlands B.V. Implementing secure erase for solid state drives
TWI399645B (zh) 2010-01-15 2013-06-21 Silicon Motion Inc 管理記憶體讀出資料之方法以及記憶裝置
US8661184B2 (en) 2010-01-27 2014-02-25 Fusion-Io, Inc. Managing non-volatile media
JP5788183B2 (ja) 2010-02-17 2015-09-30 三星電子株式会社Samsung Electronics Co.,Ltd. 不揮発性メモリ装置、それの動作方法、そしてそれを含むメモリシステム
US8365041B2 (en) 2010-03-17 2013-01-29 Sandisk Enterprise Ip Llc MLC self-raid flash data protection scheme
US8164967B2 (en) 2010-03-24 2012-04-24 Apple Inc. Systems and methods for refreshing non-volatile memory
US8737141B2 (en) 2010-07-07 2014-05-27 Stec, Inc. Apparatus and method for determining an operating condition of a memory cell based on cycle information
US8737136B2 (en) 2010-07-09 2014-05-27 Stec, Inc. Apparatus and method for determining a read level of a memory cell based on cycle information
US20120023144A1 (en) 2010-07-21 2012-01-26 Seagate Technology Llc Managing Wear in Flash Memory
US8503238B1 (en) 2010-07-21 2013-08-06 Sk Hynix Memory Solutions Inc. Error recovery for flash memory
US8694854B1 (en) 2010-08-17 2014-04-08 Apple Inc. Read threshold setting based on soft readout statistics
CN102385902A (zh) 2010-09-01 2012-03-21 建兴电子科技股份有限公司 固态储存装置及其数据控制方法
WO2012051600A2 (en) 2010-10-15 2012-04-19 Kyquang Son File system-aware solid-state storage management system
EP2633409A4 (en) 2010-10-27 2014-07-23 Lsi Corp ADAPTIVE ECC TECHNIQUES FOR FLASH MEMORY AND BASED ON DATA STORAGE
US9063878B2 (en) 2010-11-03 2015-06-23 Densbits Technologies Ltd. Method, system and computer readable medium for copy back
KR101774496B1 (ko) 2010-12-08 2017-09-05 삼성전자주식회사 비휘발성 메모리 장치, 이를 포함하는 장치들, 및 이의 동작 방법
KR20120064462A (ko) 2010-12-09 2012-06-19 삼성전자주식회사 메모리 컨트롤러, 이의 오류정정 방법, 및 이를 포함하는 메모리 시스템
US8615681B2 (en) 2010-12-14 2013-12-24 Western Digital Technologies, Inc. System and method for maintaining a data redundancy scheme in a solid state memory in the event of a power loss
US9038066B2 (en) 2010-12-22 2015-05-19 Vmware, Inc. In-place snapshots of a virtual disk configured with sparse extent
JP2012151676A (ja) 2011-01-19 2012-08-09 Jvc Kenwood Corp 復号装置および復号方法
US8966319B2 (en) 2011-02-22 2015-02-24 Apple Inc. Obtaining debug information from a flash memory device
US9047955B2 (en) 2011-03-30 2015-06-02 Stec, Inc. Adjusting operating parameters for memory cells based on wordline address and cycle information
US8909888B2 (en) 2011-04-29 2014-12-09 Seagate Technology Llc Secure erasure of data from a non-volatile memory
US8898373B1 (en) 2011-06-29 2014-11-25 Western Digital Technologies, Inc. System and method for improving wear-leveling performance in solid-state memory
US8566667B2 (en) 2011-07-29 2013-10-22 Stec, Inc. Low density parity check code decoding system and method
US20130047045A1 (en) 2011-08-19 2013-02-21 Stec, Inc. Error indicator from ecc decoder
US9047210B2 (en) 2011-09-15 2015-06-02 Sandisk Technologies Inc. Data storage device and method to correct bit values using multiple read voltages
US9378133B2 (en) 2011-09-30 2016-06-28 Intel Corporation Autonomous initialization of non-volatile random access memory in a computer system
US8683297B2 (en) 2011-11-02 2014-03-25 Sandisk Technologies Inc. Systems and methods of generating a replacement default read threshold
JP5943395B2 (ja) 2011-11-02 2016-07-05 国立大学法人 東京大学 メモリコントローラおよびデータ記憶装置
US8456919B1 (en) 2011-11-10 2013-06-04 Sandisk Technologies Inc. Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder
US8687421B2 (en) 2011-11-21 2014-04-01 Sandisk Technologies Inc. Scrub techniques for use with dynamic read
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
JP2013142947A (ja) 2012-01-10 2013-07-22 Sony Corp 記憶制御装置、記憶装置および記憶制御装置の制御方法
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
WO2013112332A1 (en) 2012-01-24 2013-08-01 Apple Inc. Enhanced programming and erasure schemes for analog memory cells
US8964482B2 (en) 2012-01-30 2015-02-24 Freescale Semiconductor, Inc. Dynamic healing of non-volatile memory cells
US8817569B2 (en) 2012-03-19 2014-08-26 Sandisk Technologies Inc. Immunity against temporary and short power drops in non-volatile 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
US20130343131A1 (en) 2012-06-26 2013-12-26 Lsi Corporation Fast tracking for flash channels
US8634267B2 (en) 2012-05-14 2014-01-21 Sandisk Technologies Inc. Flash memory chip power management for data reliability and methods thereof
KR20140028481A (ko) 2012-08-29 2014-03-10 에스케이하이닉스 주식회사 쓰기 전류를 측정할 수 있는 반도체 메모리 장치 및 쓰기 전류 측정 방법
US8938656B2 (en) 2012-09-14 2015-01-20 Sandisk Technologies Inc. Data storage device with intermediate ECC stage
US9104328B2 (en) 2012-10-31 2015-08-11 Hitachi, Ltd. Storage apparatus and method for controlling storage apparatus
US8634248B1 (en) 2012-11-09 2014-01-21 Sandisk Technologies Inc. On-device data analytics using NAND flash based intelligent memory
US8949544B2 (en) 2012-11-19 2015-02-03 Advanced Micro Devices, Inc. Bypassing a cache when handling memory requests
US8869008B2 (en) 2013-01-17 2014-10-21 Apple Inc. Adaptation of analog memory cell read thresholds using partial ECC syndromes
US9042181B2 (en) 2013-03-15 2015-05-26 SanDisk Technologies, Inc. Periodic erase operation for a non-volatile medium

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090089342A (ko) * 2006-11-03 2009-08-21 쌘디스크 코포레이션 가변 판독 임계값을 갖는 비휘발성 메모리
US20100002506A1 (en) * 2008-07-04 2010-01-07 Samsung Electronics Co., Ltd. Memory device and memory programming method
KR20100004731A (ko) * 2008-07-04 2010-01-13 삼성전자주식회사 메모리 장치 및 메모리 프로그래밍 방법
US20110205823A1 (en) * 2010-02-19 2011-08-25 Gerrit Jan Hemink Non-Volatile Storage With Temperature Compensation Based On Neighbor State Information

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160018149A (ko) * 2014-08-08 2016-02-17 삼성전자주식회사 비휘발성 메모리 장치의 디폴트 독출 전압 설정 방법 및 비휘발성 메모리 장치의 데이터 독출 방법
KR20180042889A (ko) * 2016-10-18 2018-04-27 삼성전자주식회사 스토리지 장치, 메모리 시스템, 및 그것의 읽기 전압 결정 방법
KR20200040350A (ko) * 2018-10-08 2020-04-20 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법

Also Published As

Publication number Publication date
KR101981355B1 (ko) 2019-05-22
WO2013070367A2 (en) 2013-05-16
EP2776929B1 (en) 2020-04-29
CN104040504B (zh) 2017-10-24
US20130117640A1 (en) 2013-05-09
WO2013070367A3 (en) 2013-07-18
US20130117613A1 (en) 2013-05-09
EP2776929A1 (en) 2014-09-17
US8793543B2 (en) 2014-07-29
US9058289B2 (en) 2015-06-16
WO2013070368A1 (en) 2013-05-16
US8938658B2 (en) 2015-01-20
WO2013070366A3 (en) 2013-07-25
US20130117616A1 (en) 2013-05-09
CN104040504A (zh) 2014-09-10
WO2013070366A2 (en) 2013-05-16

Similar Documents

Publication Publication Date Title
KR101981355B1 (ko) 메모리 시스템들을 위한 소프트 정보 생성
US9244763B1 (en) System and method for updating a reading threshold voltage based on symbol transition information
US8456919B1 (en) Method and apparatus to provide data including hard bit data and soft bit data to a rank modulation decoder
US10388394B2 (en) Syndrome weight based evaluation of memory cells performance using multiple sense operations
US9692449B2 (en) Read threshold calibration for LDPC
US8429501B2 (en) Memory storage device, memory controller thereof, and method thereof for generating log likelihood ratio
US9092350B1 (en) Detection and handling of unbalanced errors in interleaved codewords
JP5183625B2 (ja) 適応能力を有するメモリ素子
US9136015B2 (en) Threshold adjustment using data value balancing in analog memory device
US8085599B2 (en) Memory device and method for estimating characteristics of multi-bit programming
US20130163328A1 (en) Inter-cell interference algorithms for soft decoding of ldpc codes
US9685243B2 (en) Determining soft data from a hard read
JP2012504820A (ja) 性能要因調整に基づくメモリ・デバイスの軟データ生成の方法および装置
CN109599143B (zh) 具有读阈值机制的存储系统及其操作方法
TW201508759A (zh) 用來進行記憶體存取管理之方法以及記憶裝置及其控制器
JP2014512063A (ja) データセンシングのための方法、装置、およびシステム
US20130290612A1 (en) Soft information module
US9009576B1 (en) Adaptive LLR based on syndrome weight
CN114496044A (zh) 使用无模型回归的读取阈值优化系统和方法
US9239751B1 (en) Compressing data from multiple reads for error control management in memory systems
CN114255807A (zh) 以先前读取为条件的读取重试阈值优化系统和方法
US11874736B2 (en) Calculating soft metrics depending on threshold voltages of memory cells in multiple neighbor word lines

Legal Events

Date Code Title Description
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant