KR20140121880A - 분배된 코드워드 부분들 - Google Patents
분배된 코드워드 부분들 Download PDFInfo
- Publication number
- KR20140121880A KR20140121880A KR1020147024981A KR20147024981A KR20140121880A KR 20140121880 A KR20140121880 A KR 20140121880A KR 1020147024981 A KR1020147024981 A KR 1020147024981A KR 20147024981 A KR20147024981 A KR 20147024981A KR 20140121880 A KR20140121880 A KR 20140121880A
- Authority
- KR
- South Korea
- Prior art keywords
- die
- codeword
- memory
- volatile memory
- dies
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
본 발명의 실시예들은 에러 정정 코드("ECC") 코드워드들을 부분들로 분할하고, 다수의 메모리 컴포넌트 사이에 그 부분들을 저장하기 위한 장치, 방법들, 컴퓨터 판독가능 매체 및 시스템 구성들을 설명한다. 예를 들어, 디바이스는 m개의 다이를 포함하는 비휘발성 메모리("NVM")를 포함할 수 있다. 메모리 제어기는 m개의 다이 사이에 ECC 코드워드의 부분들을 저장하도록 구성될 수 있다. 다양한 실시예들에서, 메모리 제어기 및/또는 저밀도 패리티 체크("LDPC") 디코더와 같은 반복 디코더는 m개의 다이와 연관된 신뢰성 메트릭들에 적어도 부분적으로 기초하여 ECC 코드워드들을 디코딩하도록 구성될 수 있다. 그외의 실시예들이 설명되고 및/또는 청구될 수 있다.
Description
본 발명의 실시예들은 일반적으로 데이터 처리 분야, 및 더 구체적으로, 비휘발성 메모리에 저장된 데이터를 보호하기 위한 데이터 인코딩의 이용에 관한 것이다.
본원에 제공된 배경기술 설명은 일반적으로 본 개시물의 배경을 제공하는 목적을 위한 것이다. 출원 시 선행 기술로서 다르게는 인정받을 수 없는 설명의 양태들뿐만 아니라, 본 배경기술 부분에서 설명되는 범위까지의, 현재 이름을 올린 발명자들의 연구는 본 발명에 대한 선행 기술로서 명시적으로도 그리고 묵시적으로도 인정되지 않는다. 본원에 달리 표시되지 않는 한, 본 부분에 설명된 접근 방법들은 본 발명의 특허청구범위에 대한 선행 기술이 아니고, 본 부분에서의 포함에 의해 선행 기술이 되도록 인정되지 않는다.
비휘발성 메모리("NVM")의 메모리 제어기는 비트 에러들을 다루고 데이터를 복구하기 위한 다양한 데이터 인코딩/디코딩 기법들을 이용할 수 있다. 예를 들어, 데이터는 하나 이상의 코드워드로서, 예를 들어, 저밀도 패리티 체크("LDPC") 코드워드들로서 인코딩될 수 있다. 메모리 제어기는 코드워드들을 디코딩하도록 구성된, LDPC 디코더와 같은, 반복 디코더(iterative decoder)를 포함할 수 있다.
LDPC 인코딩된 코드워드들과 같은, 코드워드들의 일부 타입들은 원래의 메시지 및 연관된 패리티 데이터를 포함할 수 있다. 비이진(non-binary) 반복 디코더(예를 들어, LDPC 디코더)는 디코딩 동안 코드워드를 여러 번 처리할 수 있다. 심벌들 및 소프트 정보(예를 들어, 심벌들이 정확할 연관된 확률들)는 가변 노드들과 가변 노드들 사이의 관계들에 대응하는 체크 노드들 사이에서 통과될 수 있다. 각 반복은 코드워드를 원래의 메시지에 더 근접하게 할 수 있다.
NVM은 복수의 다이와 같은, 복수의 물리적 컴포넌트를 포함할 수 있다. 현재의 디바이스들에서, 코드워드는 단일 다이 상에 저장될 수 있다. 그러나, 그 다이가, 예를 들어, 높은 로우(raw) 비트 에러율("RBER")로 인한, 특히 낮은 신뢰성을 가지면, 코드워드의 디코딩 동안의 실패의 확률은 특히 높을 수 있다.
실시예들은 첨부된 도면들과 함께 이하의 상세한 설명에 의해 용이하게 이해될 것이다. 본 설명을 용이하게 하기 위해, 유사한 참조 번호들은 유사한 구조적엘리먼트들을 지정한다. 실시예들은 첨부된 도면들에서 한정이 아닌 예로서 예시된다.
도 1은 다양한 실시예들에 따른, 다수의 다이 사이에 저장된 예시의 코드워드들을 개략적으로 예시하는 도면.
도 2는 다양한 실시예들에 따른, 반복 디코더가 코드워드들을 디코딩하도록 다이의 로우 비트 에러율들을 이용할 수 있는 방법의 예시를 도시하는 도면.
도 3은 다양한 실시예들에 따른, 하드 디시젼(hard decision)들이 행해질 수 있는, 그리고 소프트 정보가 생성될 수 있는 방법을 보여주기 위한, 정보의 하나의 비트를 저장하는 데 이용되는 2개의 레벨의 전압 분포를 도시하는 도면.
도 4는 다양한 실시예들에 따른, 단일 다이 상에 저밀도 패리티 체크("LDPC") 코드워드들을 저장하는 것에 비해 메모리의 다수의 다이 사이에 LDPC 인코딩된 코드워드들을 저장하는 것으로부터 야기될 수 있는 예시의 RBER 분포들을 도시하는 도면.
도 5는 다양한 실시예들에 따른, 예시의 방법을 개략적으로 도시하는 도면.
도 6은 다양한 실시예들에 따른, 예시의 컴퓨팅 디바이스를 개략적으로 도시하는 도면.
도 1은 다양한 실시예들에 따른, 다수의 다이 사이에 저장된 예시의 코드워드들을 개략적으로 예시하는 도면.
도 2는 다양한 실시예들에 따른, 반복 디코더가 코드워드들을 디코딩하도록 다이의 로우 비트 에러율들을 이용할 수 있는 방법의 예시를 도시하는 도면.
도 3은 다양한 실시예들에 따른, 하드 디시젼(hard decision)들이 행해질 수 있는, 그리고 소프트 정보가 생성될 수 있는 방법을 보여주기 위한, 정보의 하나의 비트를 저장하는 데 이용되는 2개의 레벨의 전압 분포를 도시하는 도면.
도 4는 다양한 실시예들에 따른, 단일 다이 상에 저밀도 패리티 체크("LDPC") 코드워드들을 저장하는 것에 비해 메모리의 다수의 다이 사이에 LDPC 인코딩된 코드워드들을 저장하는 것으로부터 야기될 수 있는 예시의 RBER 분포들을 도시하는 도면.
도 5는 다양한 실시예들에 따른, 예시의 방법을 개략적으로 도시하는 도면.
도 6은 다양한 실시예들에 따른, 예시의 컴퓨팅 디바이스를 개략적으로 도시하는 도면.
이하의 상세한 설명에서, 유사한 참조 번호들이 전체에 걸쳐 유사한 부분들을 지정하는 본원의 일부를 형성하는, 그리고 실시될 수 있는 예시 실시예의 방식으로 도시된, 첨부된 도면들을 참조한다. 본 발명의 범주로부터 벗어나지 않고 그외의 실시예들이 이용될 수 있고, 구조적 또는 논리적 변경들이 행해질 수 있다는 것은 당연하다. 따라서, 이하의 상세한 설명은 제한하는 의미로 취해지지 않고, 실시예들의 범주는 첨부된 특허청구범위 및 그들의 등가물들에 의해 정의된다.
다양한 동작들이 청구 대상을 이해하는데 가장 도움이 되는 방식으로, 차례로 다수의 별개의 액션들 또는 동작들로서 설명될 수 있다. 그러나, 설명의 순서는 이러한 동작들이 반드시 순서에 따른다는 것을 의미하는 것으로서 해석되어서는 안된다. 구체적으로, 이러한 동작들은 제시의 순서대로 수행되지 않을 수 있다. 설명된 동작들은 설명된 실시예와 상이한 순서로 수행될 수 있다. 다양한 부가적인 동작들이 수행될 수 있고, 및/또는 설명된 동작들은 부가적인 실시예들에서 생략될 수 있다.
본 개시의 목적들을 위해, 구절 "A 및/또는 B"는 (A), (B), 또는 (A 및 B)를 의미한다. 본 개시의 목적들을 위해, 구절 "A, B, 및/또는 C"는 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C), 또는 (A, B 및 C)를 의미한다.
설명은 구절들 "실시예에서", 또는 "실시예들에서"를 이용할 수 있고, 이는 동일한 또는 상이한 실시예들 중 하나 이상을 각각 지칭할 수 있다. 또한, 본 발명의 실시예들에 관해 이용되는 바와 같은, 용어들 "포함하는", "함유하는", "갖는" 등은 동의어이다.
본원에서 이용되는 바와 같은, 용어 "모듈"은 하나 이상의 소프트웨어 또는 펌웨어 프로그램들을 실행하는 ASIC(Application Specific Integrated Circuit), 전자 회로, (공유, 전용, 또는 그룹) 프로세서 및/또는 (공유, 전용, 또는 그룹) 메모리, 설명된 기능성을 제공하는 조합 논리 회로 및/또는 그외의 적합한 컴포넌트들을 지칭하거나, 그 일부이거나, 또는 그를 포함할 수 있다. 본원에서 이용되는 바와 같은, "컴퓨터 구현된 방법"은 하나 이상의 프로세서, 하나 이상의 프로세서를 갖는 컴퓨터 시스템, (하나 이상의 프로세서를 포함할 수 있는) 스마트 폰과 같은 모바일 디바이스, 태블릿, 랩톱 컴퓨터, 셋톱 박스, 게이밍 콘솔 등에 의해 실행되는 임의의 방법을 지칭할 수 있다.
이제 도 1을 참조하면, 판독/기입 로직(14)을 갖는 예시의 메모리 제어기(12)는 비휘발성 메모리("NVM")(16)에 동작가능하게 연결될 수 있다. 다양한 실시예들에서, 메모리 제어기(12)는 하드웨어(예를 들어, 디지털 회로)를 이용하여 구현될 수 있다. 일부 실시예들에서, NVM(16)은 NAND 플래시 메모리일 수 있다. 다양한 실시예들에서, NVM(16)은 강유전체 랜덤 액세스 메모리("FeTRAM"), 나노와이어 기반 NVM, 상 변화 메모리("PCM"), 스위치를 갖는 PCM("PCMS") 등과 같은 그외의 타입의 메모리일 수 있다.
용어 "메모리 장치"는 본원에서 메모리 제어기(예를 들어, 12) 및 NVM(예를 들어, 16)을 갖는 임의의 디바이스를 지칭하는 데 이용될 수 있다. 일부 실시예들에서, 메모리 제어기 및 NVM은 태블릿 또는 모바일 전화기와 같은 컴퓨팅 디바이스 내로 설치될 수 있는 집적 회로의 형태로 메모리 장치 내에 함께 패키징될 수 있다. 다양한 실시예들에서, NVM(16)은 다양한 수의 다이(18)를 포함할 수 있다. 도 1의 예시에서, NVM(16)은 6개의 다이(18), 다이 0 - 5를 포함한다. 더 많거나 또는 더 적은 다이(18)가 NVM(16)에 포함될 수 있다. 6개의 다이(18)는 예시적인 목적들만을 위해 도 1에 포함된다.
코드워드로서 인코딩된 메시지(또는 그 일부분)는 다이(18)와 같은 단일 메모리 컴포넌트 상에 저장될 수 있다. 그러나, 이러한 메모리 컴포넌트가 실패하면, 코드워드에 의해 표현되는 데이터를 복구하는 것이 어려울 수 있다. 예를 들어, 랜덤 변수 x는, log(x)-μ가 가우시안 분포를 가지면, 평균 μ를 갖는 로그 정규 분포를 갖는다고 할 수 있어서, 로그 정규 분포의 확률 분포 함수("pdf")는:
에 의해 주어질 수 있다.
따라서, 예시의 메모리 장치에서, 적은 다이는 낮은 로우 비트 에러율("RBER")들을 가질 수 있고 다이의 마이너 부분(minor fraction)은 높은 RBER들을 가질 수 있다. 높은 RBER들을 갖는 다이 상에 저장된 전체의 코드워드들에 대해, 디코딩 동안의 치명적 에러의 확률은 더 높을 수 있다. 따라서, 코드워드들의 부분들은 코드워드 다이버시티로부터 획득될 수 있는 다양한 이점들을 얻을 수 있도록 다이와 같은 다수의 메모리 컴포넌트들 사이에 저장 - "다이버시티 결합(diversity combining)"으로서 지칭될 수 있는 프로세스 - 될 수 있다(즉, 코드워드들은 다양한 컴포넌트들 사이에서 분할되고 분배됨).
다양한 실시예들에서, 도 1에 도시된 바와 같이, 코드워드들은 다수의 다이(18) 사이에 저장될 수 있다. NVM(16)에 저장된 2개의 코드워드, CW0 및 CW1가 도시된다. 단일 다이(18) 상에 코드워드를 저장하는 대신, 각 코드워드는 6개의 부분으로 분할되고, 다수의 다이(18)의 세그먼트들(20)에 저장된다. 예를 들어, CW0은 CW0(A) - (F)로 나뉘고, 이는 다이 0 - 5의 세그먼트들(20)에 저장된다. 마찬가지로, CW1은 CW1(A) - (F)로 나뉘고, 이는 다이 0 - 5의 세그먼트들(20)에 저장된다.
도 1의 예시는 예시의 목적들만을 위한 것이고, 한정하도록 의도되지 않는다. 일반적으로, 코드워드는 m개의 부분으로 분할되고, m개의 다이 사이에 분배될 수 있다. 예를 들어, 코드워드는 2개의 부분으로 분할되고, 2개의 다이 사이에 저장될 수 있다. 또 다른 예시로서, 코드워드는 4개의 부분으로 분할되고, 4개의 다이 사이에 저장될 수 있다. 다양한 실시예들에서, 코드워드는 8개의 부분으로 분할될 수 있고, 8개의 다이 사이에 저장될 수 있다.
다양한 실시예들에서, 반복 디코더(22)는 m개의 다이(예를 들어, 도 1에서 6개)로부터 m개의 코드워드 부분을 입력으로서 수신하고, m개의 코드워드 부분 및 각 코드워드 부분의 비트들 또는 비트들의 그룹과 연관된 소프트 정보를 이용하여 코드워드를 디코딩하도록 구성될 수 있다. 도 1에 도시된 것과 같은, 다양한 실시예들에서, 반복 디코더(22)는 메모리 제어기(12)의 일부일 수 있다. 그외의 실시예들에서, 반복 디코더(22)는 메모리 제어기(12)로부터 분리되지만, 그에 동작 가능하게 연결될 수 있다.
다양한 실시예들에서, "소프트 정보"는 코드워드 부분의 비트 또는 비트들의 그룹이 정확할 우도(예를 들어, 신뢰 수준)를 지칭할 수 있다. 다양한 실시예들에서, 소프트 정보는 로그 형태로 표현될 수 있다. 단일 비트, 또는 "이진" 구현들의 경우, 소프트 정보는 로그-우도 비율들, 또는"LLR"로서 표현될 수 있다. 다중 비트, 또는 "비이진" 구현들의 경우, 소프트 정보는 로그 밀도 비율들, 또는 "LDR"로서 표현될 수 있다. 다양한 실시예들에서, 반복 디코더(22)는 LDPC 디코더일 수 있고, 코드워드들(예를 들어, CW0, CW1) 및/또는 그것들의 부분들은 LDPC 인코더(도시되지 않음)에 의해 인코딩된 코드워드들일 수 있다.
다양한 실시예들에서, m개의 다이와 연관된 신뢰성 메트릭(reliability metric)들은 반복 디코더(22)에 대한 입력으로서 이용될 수 있는 소프트 정보를 생성하는 데 이용될 수 있다. 예를 들어, 다양한 실시예들에서, m개의 다이와 연관된 신뢰성 메트릭들은 RBER들일 수 있다. 이러한 RBER들은 m개의 다이로부터 판독된 데이터와 연관된 소프트 정보를 생성하는 데 이용될 수 있다.
예를 들어, 그리고 이제 도 2를 참조하면, LDPC 코드워드(도 1의 CW0)의 부분을 각각 저장하는, 6개의 메모리 세그먼트(220)는 NVM의 6개의 상이한 다이(도 1의 다이 0 - 5) 상에 위치할 수 있다. 각 다이는 연관된 신뢰성 메트릭(224)을 가질 수 있고, 이는 도 2에서 RBER이다. 좌측으로부터 시작하면, CW0(A)를 저장하는 메모리 세그먼트(220)를 갖는 다이는 0.002의 연관된 RBER을 갖는다. CW0(B)를 저장하는 메모리 세그먼트(220)를 갖는 다이는 0.005의 연관된 RBER을 갖는다. CW0(C)를 저장하는 메모리 세그먼트(220)를 갖는 다이는 0.008의 연관된 RBER을 갖는다. CW0(D)를 저장하는 메모리 세그먼트(220)를 갖는 다이는 0.009의 연관된 RBER을 갖는다. CW0(E) 및 CW0(F)를 저장하는 메모리 세그먼트(220)를 갖는 다이는 0.01의 연관된 RBER을 갖는다.
다양한 실시예들에서, 도 1의 반복 디코더(22)와 같은 반복 디코더는 하나 이상의 다이의 RBER들에 적어도 부분적으로 기초하여 하나 이상의 다이(예를 들어 도 1의 다이(18))로부터 수신된 데이터와 연관된 소프트 정보를 생성하도록 구성될 수 있다. 도 2에서, 예를 들어, LDPC 디코더(222)는 다이의 RBER에 기초하여 각 다이에 잠재적 확률들(예를 들어, LLR들, LDR들)을 할당함으로써 각 수신된 코드워드 부분의 각 비트 또는 비트들의 그룹에 대한 소프트 정보를 생성할 수 있다. LDPC 디코더(222)는 이후 그것이 그러한 다이로부터 수신하는 CW0의 부분들을 할당된 잠재적 확률들에 적어도 부분적으로 기초하여 디코딩할 수 있다.
예를 들어, 도 2에서, 다이 0 및 다이 1은 양쪽 모두 비교적 낮은 RBER들, 0.002 및 0.005를 각각 갖는다. 따라서, LDPC 디코더(222)는 그것들을 높은 신뢰성("HR")이라고 간주할 수 있고, 따라서 {-16, -8, -3, +3, +8, +16}과 같은, 비교적 높은 잠재적 확률들을 다이 0 및 다이 1에 할당할 수 있다. 대조적으로, LDPC 디코더(222)는 {-5, -3, -1, +1, +3, +5}와 같은, "덜 확실한" 신뢰성 값들을 더 높은 RBER들(0.01)을 갖는 도 2의 다이 4 및 다이 5와 같은 낮은 신뢰성("LR") 다이에 할당할 수 있다. LLR 또는 잠재적 확률의 표시(sign)는 비트가 0(양) 또는 1(음)인지를 표시할 수 있다.
도 3은 2-레벨, 단일 비트(X) 메모리 셀의 예시의 전압 분포를 도시하고, 여기에서 수평 축은 공급 전압을 나타내고, 수직 축은 확률 분포를 나타낸다. 먼저 "중심 판독 기준" 전압이 셀에 인가되어 비트 X가 1 또는 0인지에 대해 "하드 디시젼"을 산출할 수 있다.
일단 하드 디시젼이 행해지면, 대응하는 소프트 정보(예를 들어, 하드 디시젼이 정확할 확률)가 생성될 수 있다. 소프트 정보를 생성하기 위해, "추가(extra) 판독 기준" 전압들이, 예를 들어, 메모리 제어기에 의해 인가될 수 있다. 이러한 추가 판독 기준 공급 전압들은 도 3에서 중심 판독 기준 전압의 측면에 위치하는 점선들에 의해 표현된다. 부가적으로, 잠재적 확률들(예를 들어, LLR들, LDR들)은 추가 판독 기준 공급 전압들 사이의 영역들에 할당될 수 있다. 이러한 잠재적 확률들은 다이의 RBER에 기초하고, 일부 실시예들에서, 그에 반비례할 수 있다. 예를 들어, 높은 RBER/낮은 신뢰성 다이에 비교적 작은 크기의 잠재적 확률들이 할당될 수 있는 반면, 낮은 RBER/높은 신뢰성 다이에 비교적 큰 크기의 잠재적 확률들이 할당될 수 있다. 다양한 실시예들에서, 소프트 정보는 추가 판독 기준 공급 전압들(예를 들어, 어느 영역) 및 대응하는 확률들(예를 들어, 영역과 연관된 확신의 크기)로부터 야기된 소프트 디시젼들에 기초하여 생성될 수 있다. 이는 "높은" 및 "낮은" LLR들이 추가 판독 기준 전압들에 의해 정의된 영역들에 할당되는 예를 통해 더 잘 이해될 것이다.
도 3에서, 도 2에 관해 전술한 일련의 "높은" LLR들이 추가 판독 기준 전압들에 의해 정의된 영역들 내에 위치하는 것으로 도시된다. 중심 판독 기준 전압의 인가가 비트 X=1이라는 것을 표시한다고 가정한다. 가장 좌측의 추가 판독 기준 공급 전압이 이후 인가될 수 있다. 가장 좌측의 추가 판독 기준 공급 전압이 1을 산출하면, -16의 LLR이 하드 디시젼에 할당될 수 있고, 이는 비트 X가 확실히 1이라는 높은 레벨의 확신을 표시할 수 있다. 그러나, 가장 좌측의 추가 판독 기준 공급 전압이 0을 산출하면, 우측으로의 다음의 추가 판독 기준 공급 전압이 인가될 수 있다. 다음의 추가 판독 기준 공급 전압이 1을 산출하면, -8의 LLR이 하드 디시젼에 할당되어, 중간 레벨의 확신을 표시할 수 있다. 그러나, 그것이 0을 산출하면, -3의 LLR이 하드 디시젼에 할당되어, 비교적 낮은 레벨의 확신을 표시할 수 있다.
도 3의 "높은" LLR들 아래에 도 2에 관해 전술한 "낮은" LLR들이 도시된다. 이러한 낮은 LLR들은 도 2의 다이 4 및 다이 5에 할당될 수 있다. 이러한 낮은 LLR들을 이용하는 경우(예를 들어, 다이 4 또는 다이 5로부터의 코드워드를 디코딩하는 동안), 비트 X에 대한 하드 디시젼과 연관된 소프트 정보는 결코 +/-5보다 클 수 없고, +/-1만큼 낮을 수 있다. 이는 다이 0 또는 1이 디코딩되는 경우보다 더 낮은 레벨의 확신을 표시할 수 있다.
도 4는 평균 RBER들에 대해 정정 불가능 비트 에러율들("UBER")을 비교하는 예시의 성능 결과들을 도시하는 차트를 도시한다. 제1 데이터 세트에서, 각 코드워드는 단일 다이 상에 저장되고, 이는 코드워드 다이버시티가 없다는 것을 의미한다. 제2 데이터 세트에서, 6개의 다이 사이에서 각 LDPC 코드워드를 나눔으로써 다이버시티 결합이 달성된다. 도 4에서 알 수 있는 바와 같이, 다수의 메모리 컴포넌트들 사이에서 코드워드들을 분배함으로써 약 10x의 게인들이 실현될 수 있다.
도 5는 메모리 제어기(예를 들어, 도 1의 메모리 제어기(12)) 및/또는 메모리 제어기와 연관된 반복 디코더(예를 들어, 도 1의 반복 디코더(22), 도 2의 LDPC 디코더(222))에 의해 구현될 수 있는 예시의 방법(500)을 도시한다. 블록(502)에서, 비휘발성 메모리(예를 들어, NAND 플래시)의 m개의 다이 사이에 LDPC 코드워드와 같은 코드워드의 m개의 부분을 저장할 수 있다.
블록(504)에서, 예를 들어, 비휘발성 메모리의 m개의 다이로부터, 반복 디코더(예를 들어, 도 1의 반복 디코더(22) 또는 도 2의 LDPC 디코더(222))에 대한 입력으로서, 코드워드의 m개의 부분을 수신할 수 있다. 예를 들어, 판독/기입 로직(예를 들어, 14)에 의해 m개의 다이로부터 코드워드의 m개의 부분을 판독하고, 반복 디코더(예를 들어, 22, 220)에 패스할 수 있다.
블록(506)에서, m개의 다이와 연관된 신뢰성 메트릭들을 이용하여, 예를 들어, 반복 디코더에 대한 입력으로서, 소프트 정보를 생성할 수 있다. 다양한 실시예들에서, 소프트 정보는 전술한 바와 같은, m개의 다이의 신뢰성 메트릭들에 적어도 부분적으로 기초하는 잠재적 확률들(예를 들어, {-16, -8, -3, +3, +8, +16} 또는 {-5, -3, -1, +1, +3, +5})을 포함할 수 있다.
m개의 수신된 코드워드 부분 및 소프트 정보를 이용하여, 블록(508)에서, 메모리 제어기(예를 들어, 도 1의 메모리 제어기(12)) 및/또는 반복 디코더(예를 들어, 도 1의 반복 디코더(22) 또는 도 2의 LDPC 디코더(222))는 코드워드를 반복적으로 디코딩할 수 있다.
도 6은 다양한 실시예들에 따른 컴퓨팅 디바이스(600)를 예시한다. 컴퓨팅 디바이스(600)는 인쇄 회로 기판("PCB")(602)을 수용한다. PCB(602)는 프로세서(604) 및 적어도 하나의 통신 칩(606)을 포함하나 이에 한정되지 않는, 다수의 컴포넌트를 포함할 수 있다. 프로세서(604)는 PCB(602)에 물리적으로 및 전기적으로 연결될 수 있다. 다양한 실시예들에서, 적어도 하나의 통신 칩(606)은 또한 PCB(602)에 물리적으로 및 전기적으로 연결될 수 있다. 추가적인 구현들에서, 통신 칩(606)은 프로세서(604)의 일부일 수 있다.
그것의 응용들에 따라, 컴퓨팅 디바이스(600)는 PCB(602)에 물리적으로 및 전기적으로 결합될 수 있거나 또는 결합되지 않을 수 있는 그외의 컴포넌트들을 포함할 수 있다. 이러한 그외의 컴포넌트들은 휘발성 메모리(예를 들어, 동적 랜덤 액세스 메모리(608), 또한 "DRAM"으로서 지칭됨), 비휘발성 메모리(예를 들어 읽기 전용 메모리(610), 또한 "ROM"으로서 지칭됨), 플래시 메모리(612), 그래픽 프로세서(614), 디지털 신호 프로세서(도시되지 않음), 암호 프로세서(도시되지 않음), 칩셋(616), 안테나(618), 디스플레이(도시되지 않음), 터치 스크린 디스플레이(620), 터치 스크린 제어기(622), 배터리(624), 오디오 코덱(도시되지 않음), 비디오 코덱(도시되지 않음), 전력 증폭기(626), GPS(global positioning system) 디바이스(628), 컴퍼스(630), 가속도계(도시되지 않음), 자이로스코프(도시되지 않음), 스피커(632), 카메라(634), 및 (하드 디스크 드라이브, 고체 상태 드라이브, CD(compact disk), DVD(digital versatile disk)와 같은) 대용량 저장 디바이스(도시되지 않음) 등을 포함하나 이에 한정되지 않는다.
통신 칩(606)은 컴퓨팅 디바이스(600)에의 및 그로부터의 데이터의 전송을 위한 유선 및/또는 무선 통신들을 가능하게 할 수 있다. 용어 "무선" 및 그 파생어들은 비고체 매체를 통한 변조된 전자기 방사의 이용을 통해 데이터를 통신할 수 있는 회로들, 디바이스들, 시스템들, 방법들, 기법들, 통신 채널들 등을 설명하는 데 이용될 수 있다. 그 용어는, 일부 실시예들에서 아닐 수 있지만, 연관된 디바이스들이 임의의 와이어들을 포함하지 않는다는 것을 의미하지 않는다. 통신 칩(606)은 Wi-Fi(IEEE 802.11 군), WiMAX(IEEE 802.16 군), IEEE 802.20, LTE(Long Term evolution), Ev-DO, HSPA+, HSDPA+, HSUPA+, EDGE, GSM, GPRS, CDMA, TDMA, DECT, 블루투스, 그들의 파생물들뿐만 아니라 3G, 4G, 5G, 및 그 너머로 지정된 임의의 그외의 무선 프로토콜들을 포함하나 이에 한정되지 않는, 다수의 무선 표준들 또는 프로토콜들 중 임의의 것을 구현할 수 있다. 컴퓨팅 디바이스(600)는 복수의 통신 칩(606)을 포함할 수 있다. 예를 들어, 제1 통신 칩(606)은 Wi-Fi 및 블루투스와 같은 근거리 무선 통신 전용일 수 있고, 제2 통신 칩(606)은 GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO 등과 같은 장거리 무선 통신 전용일 수 있다.
컴퓨팅 디바이스(600)의 프로세서(604)는 프로세서(604) 내에 패키징된 집적 회로 다이를 포함할 수 있다. 다양한 실시예들에서, 프로세서(604)의 집적 회로 다이는 본원에 설명된 하나 이상의 기법을 이용하여 코드워드들의 분배된 저장 및 분배된 코드워드들의 반복 디코딩을 용이하게 하도록 형성된, 트랜지스터들 또는 금속 인터커넥트들과 같은, 하나 이상의 디바이스를 포함할 수 있다. 용어 "프로세서"는 레지스터들 및/또는 메모리로부터의 전자 데이터를 처리하여 그 전자 데이터를 레지스터들 및/또는 메모리에 저장될 수 있는 그외의 전자 데이터로 변환하는 임의의 디바이스 또는 디바이스의 일부분을 지칭할 수 있다.
통신 칩(606)은 또한 통신 칩(606) 내에 패키징된 집적 회로 다이를 포함할 수 있다. 다양한 실시예들에서, 통신 칩(606)의 집적 회로 다이는 본원에 설명된 하나 이상의 기법을 이용하여 코드워드들의 분배된 저장 및 분배된 코드워드들의 반복 디코딩을 용이하게 하도록 형성된, 트랜지스터들 또는 금속 인터커넥트들과 같은, 하나 이상의 디바이스를 포함할 수 있다.
다양한 구현들에서, 컴퓨팅 디바이스(600)는 랩톱, 넷북, 노트북, 울트라북, 스마트 폰, 태블릿, PDA(personal digital assistant), 울트라 모바일 PC, 모바일 폰, 데스크톱 컴퓨터, 서버, 프린터, 스캐너, 모니터, 셋톱 박스, 엔터테인먼트 제어 유닛, 디지털 카메라, 휴대용 뮤직 플레이어, 또는 디지털 비디오 리코더일 수 있다. 추가적인 구현들에서, 컴퓨팅 디바이스(600)는 데이터를 처리하는 임의의 그외의 전자 디바이스일 수 있다.
시스템, 방법들, (일시적 및 비일시적) 컴퓨터 판독가능 매체, 장치, 디바이스들 및 그외의 다양한 컴포넌트들은 이하의 것을 구현하도록 구성될 수 있다. 다양한 실시예들에서, 코드워드의 제1 부분은 제1 다이 상에 저장될 수 있고, 코드워드의 제2 부분은 제2 다이 상에 저장될 수 있다. 다양한 실시예들에서, 반복 디코더는 제1 및 제2 다이와 연관된 신뢰성 메트릭들에 적어도 부분적으로 기초하여 코드워드를 반복적으로 디코딩하도록 구성될 수 있다.
다양한 실시예들에서, 비휘발성 메모리는 NAND 플래시 메모리, FeTRAM, 나노와이어 기반 메모리, PCM 또는 PCMS일 수 있다. 다양한 실시예들에서, 신뢰성 메트릭들은 반복 디코더에 대한 입력을 위한 소프트 정보를 생성하는 데 이용될 수 있다. 다양한 실시예들에서, 코드워드는 LDPC 코드워드일 수 있고, 반복 디코더는 LDPC 디코더일 수 있다. 다양한 실시예들에서, 제1 및 제2 다이와 연관된 신뢰성 메트릭들은 로우 비트 에러율들일 수 있다.
다양한 실시예들에서, 반복 디코더는 비휘발성 메모리의 m개의 다이로부터 에러 정정 코드와 함께 이용하기 위한 코드워드의 m개의 부분을 수신할 수 있다. 다양한 실시예들에서, 반복 디코더는 m개의 다이와 연관된 m개의 신뢰성 메트릭 및 m개의 수신된 부분에 기초하여 코드워드를 반복적으로 디코딩할 수 있다. 다양한 실시예들에서, m은 2, 4, 6, 8 등과 같을 수 있다. 다양한 실시예들에서, 코드워드의 m개의 부분을 수신하는 것은 NAND 플래시 메모리의 m개의 다이로부터 코드워드의 m개의 부분을 판독하는 것을 포함할 수 있다.
다양한 실시예들에서, m개의 신뢰성 메트릭은 m개의 다이의 로우 비트 에러율들일 수 있다. 다양한 실시예들에서, m개의 다이 중 제1 다이와 연관된 잠재적 확률들은 m개의 다이 중 제1 다이의 로우 비트 에러율에 기초하여 생성될 수 있다. 다양한 실시예들에서, 생성된 잠재적 확률들의 크기들은 m개의 다이 중 제1 다이의 로우 비트 에러율에 반비례할 수 있다. 다양한 실시예들에서, 잠재적 확률은, 하나 이상의 추가 판독 기준 공급 전압의 결과들에 기초하여, m개의 다이 중 제1 다이와 연관된 잠재적 확률들로부터 선택될 수 있다.
특정 실시예들이 설명의 목적들을 위하여 본원에 예시되고 설명되었지만, 동일한 목적들을 달성하기 위해 계획된 광범위한 대안 및/또는 등가 실시예들 또는 구현들이, 본 발명의 범주로부터 벗어나지 않고, 도시되고 설명된 실시예들을 대체할 수 있다. 본 출원은 본원에 논의된 실시예들의 임의의 구성들 또는 변형들을 포함하도록 의도된다. 따라서, 본원에 설명된 실시예들은 특허청구범위 및 그 등가물들에 의해서만 한정된다는 것이 명백하게 의도된다.
Claims (37)
- 제1 다이 및 제2 다이를 포함하는 비휘발성 메모리,
상기 제1 다이 상에 에러 정정 코드와 함께 이용하기 위한 코드워드의 제1 부분을 저장하고, 상기 제2 다이 상에 상기 코드워드의 제2 부분을 저장하도록 구성된 판독/기입 로직, 및
상기 제1 및 제2 다이와 연관된 신뢰성 메트릭(reliability metric)들에 적어도 부분적으로 기초하여 상기 코드워드를 반복적으로 디코딩하도록 구성된 반복 디코더(iterative decoder)
를 포함하는 장치. - 제1항에 있어서,
상기 비휘발성 메모리는 NAND 플래시 메모리인 장치. - 제1항에 있어서,
상기 비휘발성 메모리는 강유전체 랜덤 액세스 메모리("FeTRAM")인 장치. - 제1항에 있어서,
상기 비휘발성 메모리는 나노와이어 기반 메모리를 포함하는 장치. - 제1항에 있어서,
상기 비휘발성 메모리는 상 변화 메모리 또는 스위치를 갖는 상 변화 메모리를 포함하는 장치. - 제1항에 있어서,
상기 신뢰성 메트릭들은 상기 반복 디코더에 대한 입력을 위한 소프트 정보를 생성하는 데 이용되는 장치. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 코드워드는 저밀도 패리티 체크(low-density parity-check) 코드워드인 장치. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 제1 및 제2 다이와 연관된 상기 신뢰성 메트릭들은 로우 비트 에러율(raw bit error rate)들인 장치. - 제1항 내지 제6항 중 어느 한 항에 있어서,
상기 비휘발성 메모리는 제3, 제4, 제5 및 제6 다이를 포함하고, 상기 메모리 제어기는 상기 제3 다이 상에 상기 코드워드의 제3 부분을 저장하고, 상기 제4 다이 상에 상기 코드워드의 제4 부분을 저장하고, 상기 제5 다이 상에 상기 코드워드의 제5 부분을 저장하고, 상기 제6 다이 상에 상기 코드워드의 제6 부분을 저장하고, 상기 제3, 제4, 제5, 및 제6 다이와 연관된 신뢰성 메트릭들에 적어도 부분적으로 기초하여 상기 코드워드를 디코딩하도록 더 구성되는 장치. - 반복 디코더에 의해, 비휘발성 메모리의 m개의 다이로부터 에러 정정 코드와 함께 이용하기 위한 코드워드의 m개의 부분을 수신하는 단계, 및
상기 반복 디코더에 의해, 상기 m개의 다이와 연관된 m개의 신뢰성 메트릭 및 상기 m개의 수신된 부분에 기초하여 상기 코드워드를 반복적으로 디코딩하는 단계
를 포함하는 컴퓨터 구현된 방법. - 제10항에 있어서,
m=2인 컴퓨터 구현된 방법. - 제10항에 있어서,
m=4인 컴퓨터 구현된 방법. - 제10항에 있어서,
m=6인 컴퓨터 구현된 방법. - 제10항에 있어서,
m=8인 컴퓨터 구현된 방법. - 제10항에 있어서,
상기 코드워드의 m개의 부분을 수신하는 단계는, NAND 플래시 메모리의 m개의 다이로부터 상기 코드워드의 m개의 부분을 판독하는 단계를 포함하는 컴퓨터 구현된 방법. - 제10항에 있어서,
상기 m개의 다이와 연관된 상기 신뢰성 메트릭들을 이용하여, 상기 반복 디코더에 대한 입력을 위한, 소프트 정보를 생성하는 단계를 더 포함하는 컴퓨터 구현된 방법. - 제16항에 있어서,
상기 반복 디코더는 저밀도 패리티 체크 디코더인 컴퓨터 구현된 방법. - 제10항에 있어서,
상기 m개의 신뢰성 메트릭은 상기 m개의 다이의 로우 비트 에러율들인 컴퓨터 구현된 방법. - 제18항에 있어서,
상기 반복 디코더에 의해, 상기 m개의 다이 중 제1 다이의 로우 비트 에러율에 기초하여 상기 m개의 다이 중 상기 제1 다이와 연관된 잠재적 확률들을 생성하는 단계를 더 포함하는 컴퓨터 구현된 방법. - 제19항에 있어서,
상기 생성된 잠재적 확률들의 크기들은 상기 m개의 다이 중 상기 제1 다이의 상기 로우 비트 에러율에 반비례하는 컴퓨터 구현된 방법. - 제20항에 있어서,
상기 반복 디코더에 의해, 상기 m개의 다이 중 상기 제1 다이와 연관된 잠재적 확률들로부터, 하나 이상의 추가 판독 기준 공급 전압의 결과들에 기초하여 잠재적 확률을 선택하는 단계를 더 포함하는 컴퓨터 구현된 방법. - 컴퓨팅 디바이스 상에서 실행되는 것에 응답하여, 상기 컴퓨팅 디바이스로 하여금 제10항 내지 제21항 중 어느 한 항에 따른 방법을 수행하게 하는 복수의 명령어를 포함하는 적어도 하나의 머신 판독가능 매체.
- 제10항 내지 제21항 중 어느 한 항에 따른 방법을 수행하도록 구성되는 장치.
- 프로세서,
상기 프로세서에 동작가능하게 연결되고, m개의 연관된 신뢰성 메트릭을 갖는 m개의 다이를 포함하는 비휘발성 메모리, 및
상기 프로세서에 의해 동작되고, 상기 m개의 다이 사이에 에러 정정 코드와 함께 이용하기 위한 코드워드의 m개의 부분을 분배하고, 상기 m개의 다이와 연관된 상기 m개의 신뢰성 메트릭으로부터 생성된 소프트 정보에 적어도 부분적으로 기초하여 상기 코드워드를 반복적으로 디코딩하도록 구성된 메모리 제어기
를 포함하는 시스템. - 제24항에 있어서,
상기 비휘발성 메모리는 NAND 플래시 메모리인 시스템. - 제24항에 있어서,
상기 코드워드는 저밀도 패리티 체크 코드워드인 시스템. - 제24항에 있어서,
상기 m개의 다이와 연관된 상기 신뢰성 메트릭들은 m개의 로우 비트 에러율인 시스템. - 제27항에 있어서,
상기 메모리 제어기는 상기 m개의 다이 중 제1 다이의 로우 비트 에러율에 기초하여 상기 m개의 다이 중 상기 제1 다이와 연관된 잠재적 확률들을 생성하도록 더 구성되는 시스템. - 제28항에 있어서,
상기 생성된 잠재적 확률들의 크기들은 상기 m개의 다이 중 상기 제1 다이의 상기 로우 비트 에러율에 반비례하는 시스템. - 제29항에 있어서,
상기 메모리 제어기는 상기 m개의 다이 중 상기 제1 다이와 연관된 상기 잠재적 확률들로부터, 상기 제1 다이의 셀에 인가된 하나 이상의 추가 판독 기준 공급 전압의 결과들에 기초하여 잠재적 확률을 선택하도록 더 구성되는 시스템. - 제24항 내지 제30항 중 어느 한 항에 있어서,
터치 스크린 디스플레이를 더 포함하는 시스템. - 제24항 내지 제30항 중 어느 한 항에 있어서,
스피커를 더 포함하는 시스템. - 제24항 내지 제30항 중 어느 한 항에 있어서,
디지털 이미지들을 캡처하기 위해 상기 프로세서에 의해 동작되도록 구성된 디지털 카메라를 더 포함하는 시스템. - 제24항 내지 제30항 중 어느 한 항에 있어서,
무선 안테나를 더 포함하는 시스템. - 제24항 내지 제30항 중 어느 한 항에 있어서,
상기 비휘발성 메모리는 강유전체 랜덤 액세스 메모리("FeTRAM")인 시스템. - 제24항 내지 제30항 중 어느 한 항에 있어서,
상기 비휘발성 메모리는 나노와이어 기반 메모리인 시스템. - 제24항 내지 제30항 중 어느 한 항에 있어서,
상기 비휘발성 메모리는 상 변화 메모리 또는 스위치를 갖는 상 변화 메모리인 시스템.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2012/028763 WO2013137851A1 (en) | 2012-03-12 | 2012-03-12 | Distributed codeword portions |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140121880A true KR20140121880A (ko) | 2014-10-16 |
KR101668934B1 KR101668934B1 (ko) | 2016-10-28 |
Family
ID=49161597
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020147024981A KR101668934B1 (ko) | 2012-03-12 | 2012-03-12 | 분배된 코드워드 부분들 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20140122973A1 (ko) |
KR (1) | KR101668934B1 (ko) |
DE (1) | DE112012006014B4 (ko) |
WO (1) | WO2013137851A1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190035936A (ko) * | 2016-09-16 | 2019-04-03 | 마이크론 테크놀로지, 인크. | 전류 적분 감지를 이용하여 확률 정보를 생성하기 위한 장치 및 방법 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9136011B2 (en) * | 2012-04-26 | 2015-09-15 | Hgst Technologies Santa Ana, Inc. | Soft information module |
US9059737B2 (en) * | 2013-01-11 | 2015-06-16 | HGST Netherlands B.V. | Disk drive with distributed codeword blocks |
US10365966B1 (en) * | 2014-03-25 | 2019-07-30 | Marvell lnternational Ltd. | Methods and systems for wordline based encoding and decoding in NAND flash |
KR102296738B1 (ko) | 2015-06-01 | 2021-09-01 | 삼성전자 주식회사 | 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법 |
US10033411B2 (en) | 2015-11-20 | 2018-07-24 | Intel Corporation | Adjustable error protection for stored data |
US10268538B2 (en) * | 2016-11-28 | 2019-04-23 | Alibaba Group Holding Limited | Efficient and enhanced distributed storage clusters |
KR102258140B1 (ko) * | 2017-07-06 | 2021-05-28 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
US10725857B2 (en) * | 2018-02-27 | 2020-07-28 | Western Digital Technologies, Inc. | Data storage system for improving data throughput and decode capabilities |
US11037646B2 (en) | 2018-08-07 | 2021-06-15 | Samsung Electronics Co., Ltd. | Memory controller, operating method of memory controller and memory system |
KR102599047B1 (ko) | 2018-11-13 | 2023-11-06 | 삼성전자주식회사 | 데이터 신뢰성을 향상한 메모리 컨트롤러, 이를 포함하는 메모리 시스템 및 메모리 컨트롤러의 동작방법 |
US11438012B2 (en) * | 2018-11-29 | 2022-09-06 | Micron Technology, Inc. | Failure-tolerant error correction layout for memory sub-systems |
US10908996B2 (en) | 2019-02-22 | 2021-02-02 | Intel Corporation | Distribution of a codeword across individual storage units to reduce the bit error rate |
US11086714B2 (en) | 2019-09-20 | 2021-08-10 | Intel Corporation | Permutation of bit locations to reduce recurrence of bit error patterns in a memory device |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0184737A2 (en) * | 1984-12-04 | 1986-06-18 | Kabushiki Kaisha Toshiba | Semiconductor memory device having error detection/correction function |
JP2005196886A (ja) * | 2004-01-08 | 2005-07-21 | Matsushita Electric Ind Co Ltd | 多値記憶不揮発性メモリ装置 |
WO2008121553A1 (en) * | 2007-03-29 | 2008-10-09 | Sandisk Corporation | Non-volatile storage with decoding of data using reliability metrics based on multiple reads |
US20110252289A1 (en) * | 2010-04-08 | 2011-10-13 | Seagate Technology Llc | Adjusting storage device parameters based on reliability sensing |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7966546B2 (en) * | 2007-03-31 | 2011-06-21 | Sandisk Technologies Inc. | Non-volatile memory with soft bit data transmission for error correction control |
KR101466694B1 (ko) * | 2007-08-28 | 2014-11-28 | 삼성전자주식회사 | Ecc 회로, ecc 회로를 구비하는 메모리 시스템 및그의 오류 정정 방법 |
US8413015B2 (en) * | 2009-09-21 | 2013-04-02 | Sandisk Technologies Inc. | Nonvolatile memory controller with scalable pipelined error correction |
US8572311B1 (en) * | 2010-01-11 | 2013-10-29 | Apple Inc. | Redundant data storage in multi-die memory systems |
US8892980B2 (en) * | 2010-06-15 | 2014-11-18 | Fusion-Io, Inc. | Apparatus, system, and method for providing error correction |
US8533550B2 (en) * | 2010-06-29 | 2013-09-10 | Intel Corporation | Method and system to improve the performance and/or reliability of a solid-state drive |
JP2012022422A (ja) * | 2010-07-13 | 2012-02-02 | Panasonic Corp | 半導体記録再生装置 |
US8392807B2 (en) * | 2010-07-23 | 2013-03-05 | Sandisk Technologies Inc. | System and method of distributive ECC processing |
US8665650B2 (en) * | 2011-02-18 | 2014-03-04 | Marvell World Trade Ltd. | Reliability metrics management for soft decoding |
US8959407B2 (en) * | 2012-11-28 | 2015-02-17 | Intel Corporation | Scaling factors for hard decision reads of codewords distributed across die |
US8898549B2 (en) * | 2013-02-12 | 2014-11-25 | Seagate Technology Llc | Statistical adaptive error correction for a flash memory |
-
2012
- 2012-03-12 US US13/992,851 patent/US20140122973A1/en not_active Abandoned
- 2012-03-12 DE DE112012006014.8T patent/DE112012006014B4/de active Active
- 2012-03-12 WO PCT/US2012/028763 patent/WO2013137851A1/en active Application Filing
- 2012-03-12 KR KR1020147024981A patent/KR101668934B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0184737A2 (en) * | 1984-12-04 | 1986-06-18 | Kabushiki Kaisha Toshiba | Semiconductor memory device having error detection/correction function |
JP2005196886A (ja) * | 2004-01-08 | 2005-07-21 | Matsushita Electric Ind Co Ltd | 多値記憶不揮発性メモリ装置 |
WO2008121553A1 (en) * | 2007-03-29 | 2008-10-09 | Sandisk Corporation | Non-volatile storage with decoding of data using reliability metrics based on multiple reads |
US20110252289A1 (en) * | 2010-04-08 | 2011-10-13 | Seagate Technology Llc | Adjusting storage device parameters based on reliability sensing |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190035936A (ko) * | 2016-09-16 | 2019-04-03 | 마이크론 테크놀로지, 인크. | 전류 적분 감지를 이용하여 확률 정보를 생성하기 위한 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
DE112012006014B4 (de) | 2020-02-13 |
DE112012006014T5 (de) | 2014-12-11 |
WO2013137851A1 (en) | 2013-09-19 |
US20140122973A1 (en) | 2014-05-01 |
KR101668934B1 (ko) | 2016-10-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101668934B1 (ko) | 분배된 코드워드 부분들 | |
US9250990B2 (en) | Use of error correction pointers to handle errors in memory | |
US9043681B2 (en) | Reconstructing codewords using a side channel | |
US8959407B2 (en) | Scaling factors for hard decision reads of codewords distributed across die | |
US10944428B2 (en) | Device, system and method for determining bit reliability information | |
US9037943B2 (en) | Identification of non-volatile memory die for use in remedial action | |
KR101669379B1 (ko) | 추정된 확률 밀도 함수에 기초한 중앙 판독 기준 전압 결정 | |
US9698830B2 (en) | Single-bit first error correction | |
US10574272B2 (en) | Memory system | |
US10382064B2 (en) | Efficient LDPC encoder for irregular code | |
US9621187B2 (en) | Processing elementary check nodes of an iterative decoder | |
US20160248447A1 (en) | Scheme to avoid miscorrection for turbo product codes | |
US9172399B2 (en) | Updating variable nodes associated with an iterative decoder | |
US9048875B2 (en) | Conserving computing resources during error correction | |
US9317364B2 (en) | Memory controller with distribution transformer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |