KR20150091148A - 계층적 반복 에러 교정을 위한 종료 기준 - Google Patents

계층적 반복 에러 교정을 위한 종료 기준 Download PDF

Info

Publication number
KR20150091148A
KR20150091148A KR1020157017461A KR20157017461A KR20150091148A KR 20150091148 A KR20150091148 A KR 20150091148A KR 1020157017461 A KR1020157017461 A KR 1020157017461A KR 20157017461 A KR20157017461 A KR 20157017461A KR 20150091148 A KR20150091148 A KR 20150091148A
Authority
KR
South Korea
Prior art keywords
error correction
correction circuit
codeword
error
layer
Prior art date
Application number
KR1020157017461A
Other languages
English (en)
Other versions
KR101645906B1 (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 KR20150091148A publication Critical patent/KR20150091148A/ko
Application granted granted Critical
Publication of KR101645906B1 publication Critical patent/KR101645906B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3707Adaptive decoding and hybrid decoding, e.g. decoding methods or techniques providing more than one decoding algorithm for one code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Algebra (AREA)
  • Pure & Applied Mathematics (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 계층적 반복 에러 교정을 위한 종료 기준과 관련된 장치 및 방법을 포함한다. 복수의 방법은 에러 교정 회로에 의해 코드워드를 수신하는 단계, 에러 교정 회로에 의해 코드워드를 반복적으로 에러 교정하는 단계를 포함하며, 상기 에러 교정하는 단계는 계층별로 코드워드를 패리티 체크하는 단계 및 각각의 계층 이후에 코드워드를 업데이트하는 단계를 포함한다. 방법은 특정 계층에 대한 패리티 체크가 올바름에 응답하여 반복 에러 교정을 종료하는 단계를 포함할 수 있다.

Description

계층적 반복 에러 교정을 위한 종료 기준{STOPPING CRITERIA FOR LAYERED ITERATIVE ERROR CORRECTION}
우선권 정보
이 출원은 2012년 12월 07일에 출원된 미국 가출원 번호 61/734,473의 정규 출원인 2013년 01월 22일에 출원된 미국 출원 번호 13/746,768의 우선권을 주장하며, 이들의 내용은 본 명세서에 참조로서 포함된다.
기술 분야
본 발명은 일반적으로 반도체 메모리 및 방법에 관한 것이며, 더 구체적으로 계층적 반복 에러 교정(layered iterative error correction)을 위한 종료 기준(stopping criteria)에 관한 장치 및 방법에 관한 것이다.
일반적으로 메모리 소자가 컴퓨터 또는 그 밖의 다른 전자 장치에서 내부, 반도체, 집적 회로로서 제공된다. 여러 다른 유형의 메모리, 가령, 휘발성 및 비휘발성 메모리가 존재한다. 휘발성 메모리는 자신의 데이터(가령, 호스트 데이터, 에러 정보 등)를 유지하기 위해 전력을 필요로 할 수 있으며 랜덤-액세스 메모리(RAM), 동적 랜덤 액세스 메모리(DRAM), 및 동기식 동적 랜덤 액세스 메모리(SDRAM) 등을 포함한다. 비휘발성 메모리는 전력이 공급되지 않을 때 저장된 데이터를 유지함으로써 영속 데이터를 제공할 수 있고 NAND 플래시 메모리, NOR 플래시 메모리, 리드 온리 메모리(ROM), 전기 소거식 프로그래머블 ROM(EEPROM), 소거식 프로그래머블 ROM(EPROM), 및 저항 가변 메모리, 가령, 상 변경 랜덤 액세스 메모리(PCRAM), 저항 랜덤 액세스 메모리(RRAM), 및 자기저항 랜덤 액세스 메모리(MRAM) 등을 포함할 수 있다.
메모리 소자들은 서로 조합되어 메모리 시스템, 가령, 솔리드 스테이트 드라이브(SSD)의 저장 볼륨(storage volume)을 형성할 수 있다. 솔리드 스테이트 드라이브가 비휘발성 메모리(가령, NAND 플래시 메모리 및 NOR 플래시 메모리)를 포함하거나, 및/또는 휘발성 메모리(가령, DRAM 및 SRAM), 또는 다양한 그 밖의 다른 유형의 비휘발성 및 휘발성 메모리를 포함할 수 있다.
솔리드 스테이트 드라이브가 성능, 크기, 중량, 강건성, 동작 온도 범위, 및 전력 소비율의 측면에서 하드 드라이브에 비해 이점을 가질 수 있기 때문에, 컴퓨터를 위한 메인 저장 볼륨으로서 하드 디스크 드라이브를 대체하기 위해 SSD가 사용될 수 있다. 예를 들어, SSD는 움직이는 부분이 없어 탐색 시간, 대기 시간, 및 자기 디스크 드라이브와 연관된 그 밖의 다른 전기-기계적 딜레이를 피할 수 있기 때문에, 자기 디스크 드라이브에 비교할 때 우등한 성능을 가질 수 있다.
메모리가 광범위한 전자 적용예에 대해 휘발성 및 비휘발성 데이터 저장소로서 사용된다. 비휘발성 메모리는 휴대용 전자 장치, 가령, 랩톱 컴퓨터, 휴대용 메모리 스틱, 디지털 카메라, 셀룰러 전화기, 휴대용 음악 재생기, 가령, MP3 재생기, 영화 재생기, 및 그 밖의 다른 전자 장치에서 사용될 수 있다. 메모리 셀이 어레이로 배열될 수 있으며, 이때 어레이가 메모리 소자에서 사용된다.
한 가지 유형의 에러 교정이 저밀도 패리티 체크(LDPC) 코드를 포함한다. 인코딩되지 않은(가령, "원시(raw)") 데이터가 전송 및/또는 저장을 위한 코드워드(codeword)로 인코딩될 수 있다. 차후 코드워드는 디코딩되어 데이터를 복원할 수 있다. 강력한 에러 교정이 바람직하지만 대기 시간(latency), 처리율 및/또는 전력 제약, 가령, 휴대용 전자 장치의 제약에 대해 균형을 이룰 수 있다.
도 1은 본 발명의 복수의 실시예에 따라 적어도 하나의 메모리 시스템을 포함하는 컴퓨팅 시스템의 형태로 된 장치의 블록도이다.
도 2는 본 발명의 복수의 실시예에 따라 계층적 반복 에러 교정을 종료하기 위한 흐름도를 도시한다.
도 3은 본 발명의 복수의 실시예에 따라 에러 교정 회로(ECC) 전력 절약률 대 원시 비트 에러율(RBER)을 도시하는 플롯이다.
도 4는 본 발명의 복수의 실시예에 따라 코드워드 에러율(CWER) 대 원시 비트 에러율(RBER)을 도시하는 플롯이다.
본 발명은 계층적 반복 에러 교정을 위한 종료 기준과 관련된 장치 및 방법을 포함한다. 복수의 방법은 에러 교정 회로에 의해 코드워드를 수신하는 단계, 에러 교정 회로에 의해 코드워드를 반복적으로 에러 교정하는 단계를 포함하며, 상기 반복적으로 에러 교정하는 단계는 계층별로 코드워드를 패리티 체크하는 단계 및 각각의 계층 이후에 코드워드를 업데이트하는 단계를 포함할 수 있다. 방법은 특정 계층에 대한 패리티 체크가 올바름(correct)에 응답하여 반복 에러 교정을 종료하는 단계를 포함할 수 있다.
본 발명의 다음의 상세한 설명에서, 본 발명의 일부를 형성하며, 본 발명의 하나 이상의 실시예가 실시될 수 있는 방식을 설명하기 위해 나타난 첨부된 도면이 참조된다. 이들 실시예는 해당 분야의 통상의 기술자가 본 발명의 실시예를 실시하기에 충분히 상세하게 기재되었으며, 그 밖의 다른 실시예가 사용될 수 있고 공정, 전기, 및/또는 구조적 변경이 본 발명의 범위 내에서 이뤄질 수 있음이 자명하다. 본 명세서에서 사용될 때, 지시어 "M"은, 구체적으로, 도면의 도면 부호와 관련하여, 이렇게 지정된 복수의 특정 특징부가 포함될 수 있음을 가리킨다. 본 명세서에서 사용될 때, "복수의" 특정한 것은 이러한 것의 하나 이상을 지칭할 수 있다(가령, 복수의 메모리 소자는 하나 이상의 메모리 소자를 지칭할 수 있다).
본 명세서의 도면은 첫 번째 숫자가 도면 번호에 대응하고 나머지 숫자가 도면의 요소 또는 구성요소를 식별하는 넘버링 규칙을 따른다. 서로 다른 도면 간 유사한 요소 또는 구성요소가 유사한 숫자의 사용에 의해 식별될 수 있다. 자명하다시피, 본 명세서의 다양한 실시예에서 나타난 요소들이 추가되거나, 교환되거나, 및/또는 제거되어, 본 발명의 복수의 추가 실시예를 제거할 수 있다. 덧붙여, 알다시피, 도면에서 제공되는 요소들의 비율 및 상대 축척은 본 발명의 특정 실시예를 설명하려 의도된 것이며 한정하려는 것이 아니다.
도 1은 본 발명의 복수의 실시예에 따라 적어도 하나의 메모리 시스템(104)을 포함하는 컴퓨팅 시스템(100)의 형태로 된 장치의 블록도이다. 본 명세서에서 사용될 때, 메모리 시스템(104), 제어기(108), 또는 메모리 소자(110)는 또한 개별적으로 "장치(apparatus)"라고 간주될 수 있다. 상기 메모리 시스템(104)은 예를 들어 솔리드 스테이트 드라이브(SSD)일 수 있으며, 호스트 인터페이스(106), 제어기(108)(가령, 프로세서 및/또는 그 밖의 다른 제어 회로), 및 복수의 메모리 소자(110-1, ..., 110-M)(가령, 솔리드 스테이트 메모리 소자, 가령, NAND 플래시 소자)를 포함할 수 있고, 이는 메모리 시스템(104)을 위한 저장 볼륨을 제공한다. 복수의 메모리 소자(110-1, ..., 110-M)가 본 명세서에서 일반적으로 메모리 소자(110)로서 언급될 수 있다. 또 다른 실시예에서, 메모리 시스템(104)은 단일 메모리 소자일 수 있다.
도 1에 도시된 바와 같이, 제어기(108)는 복수의 채널을 통해 호스트 인터페이스(106) 및 메모리 소자(110)로 연결될 수 있고 메모리 시스템(104)과 호스트(102) 사이에 데이터를 전송하도록 사용될 수 있다. 상기 인터페이스(106)는 표준화된 인터페이스의 형태를 가질 수 있다. 예를 들어, 메모리 시스템(104)이 컴퓨팅 시스템(100) 내 데이터 저장소용으로 사용될 때, 인터페이스(106)는 직렬 고급 기술 결합(serial advanced technology attachment)(SATA), 병렬 컴포넌트 인터커넥트 익스프레스(peripheral component interconnect express)(PCIe), 또는 전역 직렬 버스(USB), 그 밖의 다른 커넥터 및 인터페이스일 수 있다. 그러나 일반적으로 인터페이스(106)는 메모리 시스템(104)과 인터페이스(106)에 호환되는 리셉터를 갖는 호스트(102) 간에 제어, 주소, 데이터, 및 그 밖의 다른 신호를 전달하기 위한 인터페이스를 제공할 수 있다.
호스트(102)는 호스트 시스템, 가령, 개인 랩톱 컴퓨터, 데스크톱 컴퓨터, 디지털 카메라, 모바일 전화기, 또는 메모리 카드 판독기, 그 밖의 다른 다양한 유형의 호스트일 수 있다. 상기 호스트(102)는 시스템 마더보드 및/또는 백플레인(backplane)을 포함하고 복수의 메모리 액세스 소자(가령, 복수의 프로세서)를 포함할 수 있다. 호스트(102)는 또한 메모리 제어기일 수 있으며, 예를 들어, 이때, 메모리 시스템(104)이 (가령, 온-다이 제어기(on-die controller)를 갖는) 메모리 소자이다.
상기 제어기(108)는 데이터 판독, 프로그램 검증, 기록, 소거 동작, 및 그 밖의 다른 동작을 제어하기 위해 (일부 실시예에서 단일 다이 상의 복수의 메모리 어레이일 수 있는) 메모리 소자(110)와 통신할 수 있다. 일부 실시예에서, 제어기(108)는 복수의 메모리 소자(110-1, ..., 110-M) 중 일부 또는 전부와 동일한 다이 또는 상이한 다이 상에 있을 수 있다.
구체적으로 도시되지 않더라도, 일부 실시예에서, 제어기(108)는 제어기(108)를 메모리 소자(110-1, ..., 110-M)로 연결하는 채널 각각에 대해 이산 메모리 채널 제어기를 포함할 수 있다. 상기 제어기(108)는, 예를 들어, 하드웨어 및/또는 펌웨어(가령, 하나 이상의 집적 회로) 및/또는 복수의 메모리 소자(110-1, ..., 110-M)로의 액세스를 제어하거나 및/또는 호스트(102)와 메모리 소자(110-1, ..., 110-M) 간 데이터 전송을 촉진하기 위한 소프트웨어의 형태로 된 복수의 구성요소를 포함할 수 있다.
복수의 메모리 소자(110-1, ..., 110-M)는 메모리 셀(가령, 비휘발성 메모리 셀)의 복수의 어레이를 포함할 수 있다. 상기 어레이는 예를 들어 NAND 아키텍처를 갖는 플래시 어레이일 수 있다. 그러나 실시예는 특정 유형의 메모리 어레이 또는 어레이 아키텍처에 국한되지 않는다. 예를 들어, 메모리 셀은 복수의 물리 페이지를 포함하는 복수의 블록으로 그룹지어질 수 있다. 복수의 블록이 메모리 셀의 플레인(plane)에 포함될 수 있고, 어레이는 복수의 플레인을 포함할 수 있다. 예를 들어, 메모리 소자는 페이지당 8KB(킬로바이트)의 사용자 데이터, 블록당 128 페이지의 사용자 데이터, 플레인당 2048 블록, 및 소자(device)당 16 플레인을 저장하도록 구성될 수 있다.
동작 중에, 데이터는, 예를 들어, 데이터의 페이지로서 메모리(가령, 시스템(104)의 메모리 소자(110-1, ..., 110-M))에 기록되거나 및/또는 메모리로부터 판독될 수 있다. 따라서, 데이터의 페이지가 메모리 시스템의 데이터 전송 크기로서 지칭될 수 있다. 데이터는 섹터(가령, 호스트 섹터)라고 지칭되는 데이터 세그먼트 단위로 호스트(가령, 호스트(102))로 전송/호스트로부터 전송될 수 있다. 따라서 데이터의 섹터가 호스트의 데이터 전송 크기로 지칭될 수 있다.
도 1에 도시된 바와 같이, 제어기(108)는 대수 에러 교정 회로(114)("대수 ECC(Algebraic ECC)")와 연결된 반복 에러 교정 회로(112)("계층적 반복 ECC(Layered Iterative ECC)")를 포함할 수 있다. 반복 에러 교정 회로(112)는 메모리 소자(110)로 연결될 수 있고 대수 에러 교정 회로(114)는 호스트 인터페이스(106)로 연결될 수 있다. 예를 들어, 상기 반복 에러 교정 회로(112)는 의사-순환(quasi-cyclic) 저밀도 패리티 체크(LDPC) 코드 회로 또는 계층적 반복 에러 교정을 적용하는 그 밖의 다른 반복 에러 교정 회로일 수 있다. 단일 회로로서 도시되더라도, 반복 에러 교정 회로(112)는 개별적인 (가령, 메모리 소자(110)에 저장될 데이터를 인코딩하기 위한) 인코딩 회로 및 (가령, 메모리 소자(110)에 저장된 데이터를 디코딩하기 위한) 디코딩 회로로서 제공될 수 있다. 대수 에러 교정 회로(114)는 BCH(Bose-Chaudhuri-Hocquenghem) 에러 교정 회로, 및 리드 솔로몬(Reed Solomon) 에러 교정 회로, 또는 그 밖의 다른 대수 에러 교정 회로를 포함한 그룹 중 하나일 수 있다. 단일 회로로서 도시되었지만, 대수 에러 교정 회로(114)는 개별적인 (가령, 메모리 소자(110)에 저장될 데이터를 인코딩하기 위한) 인코딩 회로 및 (메모리 소자(110)에 저장된 데이터를 디코딩하기 위한) 디코딩 회로로서 제공될 수 있다. 반복 에러 교정 회로(112)와 대수 에러 교정 회로(114) 각각은 이산 구성요소, 가령, 주문형 집적 회로(ASIC)일 수 있거나, 구성요소는 제어기(108)의 또 다른 일부분과 별개인 이산 물리적 형태를 가질 필요는 없는 제어기(108) 내 회로에 의해 제공되는 기능을 반영할 수 있다. 도 1의 제어기(108) 내 구성요소들로서 도시되었지만, 반복 에러 교정 회로(112) 및 대수 에러 교정 회로(114) 각각은 제어기(108) 외부에 있거나, 제어기(108) 내 위치한 복수의 구성요소 및 제어기(108) 외부에 위치하는 복수의 구성요소를 가질 수 있다.
반복 에러 교정 회로(112)는 메모리 소자(110)로부터 코드워드를 수신하도록 구성될 수 있다. 복수의 실시예에서, 반복 에러 교정 회로(112)는, 소프트 데이터(soft data)를 수신하지 않고, 메모리 소자(110)로부터 판독된 하드 데이터(hard data)로 구성될 수 있는 코드워드를 수신할 수 있다. 복수의 실시예에서, 반복 에러 교정 회로(112)는 하드 데이터를 포함하는 코드워드를 수신하고 이와 함께 상기 코드워드에 대응하는 소프트 데이터를 수신할 수 있다. 복수의 실시예에서, 상기 반복 에러 교정 회로(112)는 하드 데이터를 포함하는 코드워드를 수신할 수 있고, 별도로 상기 코드워드에 대응하는 소프트 데이터를 수신할 수 있다(가령, 코드워드의 개별적인 소프트 판독을 기초로 소프트 데이터가 수신되거나 소프트 데이터가 본래 하드 데이터와 함께 판독되고, 버퍼링되고, 버퍼로부터 수신된다). 하드 데이터는 메모리 셀의 데이터 상태에 대응하는 데이터이다. 예를 들어, 2-비트 메모리 셀이 4개의 데이터 상태 중 하나로 프로그램될 수 있으며, 여기서 각각의 데이터 상태가 데이터 00, 01, 10, 또는 11 중 하나에 대응한다. 이와 달리, 메모리 셀과 연관된 소프트 데이터가 메모리 셀이 프로그램되는 타깃 상태(target state)를 나타내는 상태 분포(가령, Vt 분포) 내에서의 메모리 셀 상에 저장된 상태의 위치(가령, 임계 전압(Vt))를 가리킬 수 있다. 코드워드에 대응하는 소프트 데이터(코드워드는 하드 데이터로 구성됨)가 코드워드 내 하드 데이터에 대응하는 소프트 데이터를 포함할 수 있다(가령, 소프트 데이터가 코드워드 내 하드 데이터의 더 높은 분해능을 가리킬 수 있다). 메모리 소자가 이로부터 판독된 하드 데이터에 대한 특정 수의 소프트 데이터 비트를 결정하도록 구성될 수 있다. 앞서 기재된 2-비트 메모리 셀에 대해, 소프트 데이터의 예시는 최대 16개의 서로 다른 상태를 다르게 나타낼 수 있는 4비트를 이용하는 더 큰 분해능을 포함할 수 있다. 소프트 데이터의 분해능은 이산 판독 신호를 이용하는 실시예에 대해 메모리 셀 상에 저장된 Vt를 찾기 위해 이뤄진 판독 횟수에 따라 달라질 수 있으며, 이때, 더 많은 판독이 더 큰 분해능을 제공할 수 있다. 램핑 판독 신호(ramping read signal)를 이용하는 실시예의 경우, 소프트 데이터의 분해능은 메모리 셀의 Vt의 값을 데이터와 상관시키는 아날로그-디지털 변환기 또는 또 다른 회로로부터의 출력으로서 제공된 분해능에 따라 달라질 수 있으며, 이때 분해능은 메모리 소자(110)로부터 입/출력(I/O) 버스를 가로질러 전송되는 비트의 수에 의해 반영된다. 예를 들어, 메모리 소자(110)가 8비트의 분해능으로 데이터의 2비트를 저장하는 특정 메모리 셀을 판독하고, I/O 버스를 통해 2비트(하드 데이터의 2비트 및 소프트 데이터의 0비트) 내지 8비트(하드 데이터의 2비트 및 소프트 데이터의 6비트)를 전달하도록 구성될 수 있다.
반복 에러 교정 회로(112)는 계층별로 코드워드를 패리티 체크하고 각각의 계층 후에 상기 코드워드를 업데이트함으로써 코드워드를 반복적으로 에러 교정할 수 있다. 반복 에러 교정 회로(112)에 의해 수행되는 에러 교정의 하나의 반복구간(iteration)이 둘 이상의 패리티 체크 계층을 포함할 수 있다. 상기 반복 에러 교정 회로(112)는 반복 신뢰 전파 디코더(iterative belief propagation decoder)를 이용할 수 있으며, 여기서, 반복 에러 교정 회로(112)는 두 가지 유형의 프로세싱 노드: 변수 노드(variable node) 및 체크 노드(check node)를 포함할 수 있다. 프로세싱 노드들은 LDPC 코드의 패리티 체크 행렬에 따라 연결될 수 있다. 체크 노드는 코드워드를 패리티 체크(가령, 신드롬 체크를 수행) 및/또는 업데이트하는 회로로서 구현될 수 있다. 복수의 실시예에서, 코드워드를 업데이트하는 것은 신뢰도 데이터(가령, 로그-우도 비(log-likelihood ratio)(LLR)), 및 그 밖의 다른 함수를 업데이트하는 것을 포함할 수 있다. 예를 들어, 변수 노드 각각과 연관된 신뢰도 데이터를 업데이트함으로써, 변수 노드 각각과 연관된 코드워드의 각자의 비트의 값이 업데이트될 수 있다(가령, 코드워드의 비트를 업데이트하는 것은 비트의 값을 변경하는 것 또는 비트의 값을 유지하는 것을 포함한다). 따라서 신뢰도 데이터를 업데이트하는 것이 코드워드를 효과적으로 업데이트한다. (가령, 하드 데이터 판독을 기초로 하는) 소프트 데이터 및/또는 신뢰도 데이터 없이 하드 데이터를 수신하는 것을 포함하는 실시예의 경우, 신뢰도 데이터가, 디코딩 프로세스 동안, LDPC 코드의 패리티 체크 제약을 적어도 부분적으로 기초로 하여 코드워드에 할당될 수 있다. (가령, 소프트 데이터 판독을 기초로 하는) 소프트 데이터와 함께 하드 데이터를 수신하는 것을 포함하는 실시예의 경우, 신뢰도 데이터가, 소프트 데이터를 적어도 부분적으로 기초로 하여 코드워드에 할당될 수 있다(가령, 하드 판독 경우와 달리, 반복 에러 교정 회로(112)로의 입력이 신뢰도 데이터를 포함할 것이다). 디코딩하는 각각의 계층(또는 예를 들어 일부 복수의 계층 또는 반복구간당 1회) 동안 코드워드가 업데이트될 수 있다(가령, 반복 에러 교정 회로(112)가 LDPC 코드의 패리티 체크 제약을 기초로 입력 신뢰도 데이터를 업데이트할 수 있다). 하나의 반복구간의 각각의 계층은 체크 노드 중 전부는 아니더라도 일부(less than all)(가령, 각각의 것)로부터의 입력을 수신하는 것 및 체크 노드들 중 각자의 체크 노드로부터의 입력(가령, 업데이트된 신뢰도 데이터)을 적어도 부분적으로 기초로 하여(가령, 일부 실시예에서, 상기 입력만 기초로 하여) 신뢰도 데이터를 업데이트하는 것을 포함할 수 있다. 일부 실시예는 복수의 계층 중 L번째마다 신뢰도 데이터를 업데이트하는 것을 포함할 수 있다(가령, L은 1 계층 내지 모든 계층 사이의 변수이며, 이때, 신뢰도 데이터는 모든 계층마다, 하나 걸러 하나의 계층마다, 세 번째 계층마다, ..., 최대, 반복구간당 1회까지 업데이트될 수 있다). 신뢰도 데이터는 체크 노드들 중 연결된 각자의 체크 노드로부터의 입력을 기초로 업데이트될 수 있다. 복수의 실시예에서, 변수 노드는 이와 연결된 체크 노드 각각으로부터 입력을 수신할 때까지 계층적 업데이트가 진행될 수 있다. 변수 노드로부터의 추후 (업데이트된) 신뢰도 데이터 값을 이와 연결된 체크 노드 각각으로 전송하기 전에, 이와 연결된 복수의 체크 노드 모두에 대해 변수 노드에 저장된 신뢰도 데이터를 계층적 업데이트하는 것이 하나의 반복구간 동안 완료될 수 있다.
반복 에러 교정 회로(112)는 특정 계층에 대해 계층적 패리티 체크가 올바름에 응답하여 대수 에러 교정 회로(114)로 코드워드 또는 이의 복사본을 전송할 수 있다. 일부 실시예에서, 반복 에러 교정 회로(112)는, 특정 계층에 대해 계층적 패리티 체크가 올바름에 응답하여 또는 특정 계층 및 적어도 하나의 그 밖의 다른 계층에 대해 계층적 패리티 체크가 올바름에 응답하여, 코드워드의 에러 교정을 종료할 수 있다. 복수의 실시예에서, 특정 계층에서, 또는 일부 실시예에서 특정 계층 및 적어도 하나의 그 밖의 다른 계층에서, 어떠한 패리티 에러도 없을 때(구체적 계층 및/또는 적어도 하나의 그 밖의 다른 계층에서 체크되는 모든 데이터의 유닛에 대해 패리티 체크가 올바를 때) 계층적 패리티 체크가 올바르다고 간주될 수 있다. 일부 실시예에서, 특정 계층에서 또는 일부 실시예에서 특정 계층 및 적어도 하나의 그 밖의 다른 계층에서 임계 개수보다 적은 패리티 에러가 존재할 때 계층적 패리티 체크가 올바르다. 예를 들어, 패리티 에러의 임계 개수는 대수 에러 교정 회로(114)의 교정 능력을 기초로 선택될 수 있다. 복수의 실시예에서, 제어기(108)가 메모리 소자(110)의 복수의 특성, 가령, 메모리 소자(110)의 나이, 메모리 소자(110)의 프로그램/소거 사이클의 횟수, 메모리 소자(110)의 저장 밀도, 메모리 소자(110)의 보유율(retention rate)(가령, 프로그램된 메모리 셀이 전하를 보유할 수 있는 시간), 및/또는 메모리 소자(110) 내 코드워드가 저장된 물리적 위치(가령, 코드워드 또는 이의 일부분이 가장자리 워드 라인(edge word line) 상에 저장되는지 여부), 그 밖의 다른 메모리 소자(110)의 특성을 기초로 에러의 임계 개수를 선택하도록 구성될 수 있다. 일부 실시예에서, 패리티 에러의 임계 개수가 선택 가능한 옵션으로서 제어기(108)의 펌웨어 내에 형성될 수 있다.
일부 실시예에서, 코드워드가 특정 반복구간의 특정 계층에서 임계 개수보다 적은 패리티 에러를 포함할 때까지 반복 에러 교정 회로(112)가 코드워드를 에러 교정할 수 있다. 복수의 실시예에 따라, (가령, 코드워드가 특정 계층에서 임계 개수보다 적은 패리티 에러를 포함한 후) 대수 에러 교정 회로(114)가 반복 에러 교정 회로(112)로부터 업데이트된 코드워드를 수신할 수 있도록 연쇄 코딩 스킴(concatenated coding scheme)이 사용될 수 있다. 그 후 대수 에러 교정 회로(114)가 이의 대수 에러 교정 코드 제약에 따라 코드워드를 에러 교정할 수 있다. 대수 에러 교정 회로(114)는 대수 에러 교정 회로에 의한 성공적인 에러 교정에 응답하여 코드워드 또는 이의 복사본을 호스트 인터페이스(106)(그리고 호스트 인터페이스는 코드워드를 수신하도록 구성될 수 있음)로 전송하도록 구성될 수 있다. 제어기(108)는 대수 에러 교정 회로에 의한 성공적인 에러 교정에 응답하여 성공적인 프로그램 검증 동작을 지시하도록 구성될 수 있다. 대수 에러 교정 회로(114)에 의한 에러 교정이 성공적이지 않은 경우, 반복 에러 교정 회로(112)는 대수 에러 교정 회로(114)에 의한 성공적이지 않은 에러 교정에 응답하여 메모리 소자(110)로부터(가령, 메모리의 소프트 판독으로부터 또는 이전에 판독된 소프트 데이터를 저장하는 버퍼로부터) 소프트 데이터를 수신하도록 구성될 수 있다(가령, 제어기(108)는 소프트 판독을 개시하거나 및/또는 하드 데이터와 함께 이전에 판독된 소프트 데이터를 요청할 수 있다).
복수의 실시예에서, 반복 에러 교정 회로(112)는 하드 데이터를 포함하는 수신된 코드워드에 대해 단 한 번 반복될 수 있고 그 후 반복 에러 교정 회로(112)에 의해 이뤄지지 않은 임의의 잔여 에러 교정에 대해 코드워드가 대수 에러 교정 회로(114)로 전송될 수 있다. 연쇄 스킴이 코드워드를 교정하는 데 불충분한 경우, 소프트 데이터가 메모리 소자(110)로부터 불러와 질 수 있고 반복 에러 교정 회로(112)가 코드워드를 교정하는 데 필요한 횟수만큼 또는 최대 지정 임계 반복 횟수까지 반복될 수 있다.
반복 에러 교정 회로(112)가 복수의 반복구간(가령, 정규화-min-sum(normalized-min-sum)의 반복구간 또는 그 밖의 다른 반복 디코딩 알고리즘)에 걸쳐 증가된 성능을 전달할 수 있다. 반복 에러 교정 회로(112)의 반복구간은 모든 패리티를 검토하고 코드워드를 업데이트하는 것(가령, 하드 판정(hard decision))에 상응할 수 있다. 그러나 반복 에러 교정 회로(112)에 의해 소비되는 전력의 크기가 수행되는 반복의 횟수에 정비례한다. 일부 메모리 시스템(가령, 휴대용 전자 장치에서처럼 플래시 메모리를 이용하는 시스템)의 엄격한 전력 예산을 가정하면, 본 발명의 복수의 실시예가 모든 반복구간을 완료하기 전에, 또는 심지어 특정 반복구간을 완료하기 전에, 반복 에러 교정 회로(112)를 종료한다. 덧붙여, (가령, 내부 코드를 제공하는) 반복 에러 교정 회로(112)와 (가령, 외부 코드를 제공하는) 대수 에러 교정 회로(114) 모두를 사용하는 연쇄 코딩 스킴이 사용된다. 반복 에러 교정 회로(112) 및 대수 에러 교정 회로(114) 모두가 코드워드를 교정하도록 동작한다고 가정하면, 나머지 에러가 대수 에러 교정 회로(114)의 교정 능력 내에 있다고 의심되자마자, 반복 에러 교정 회로(112)를 종료하는 것이 전력 절약의 측면에서 유익할 수 있다. 코드워드의 에러 교정이 반복 에러 교정 회로에 의한 반복 에러 교정을 종료한 것에 응답하여(가령, 특정 계층이 임계 개수 미만의 패리티 에러를 가질 때) 대수 에러 교정 회로에 의해 시작될 수 있다. 그러나 복수의 실시예에서, 대수 에러 교정 회로가 코드워드를 조작(가령, 교정)하는 동안 반복 에러 교정 회로는 코드워드를 반복적으로 에러 교정하는 것을 계속할 수 있다. 이러한 실시예에서, 반복 에러 교정 회로는 제 2 에러 교정 회로가 코드워드에 대한 교정 불가능 에러를 보고하는 것에 응답하여 종료될 수 있다. 예를 들어, 반복 에러 교정 회로(112)는 계층적 min-sum 디코딩 알고리즘을 사용하는 LDPC 디코더를 포함할 수 있으며, 이때, 계층은 단일 패리티 체크를 기초로 각각의 LDPC 코드워드 비트가 업데이트되는 반복구간의 조각(fraction)으로 간주될 수 있다. 이러한 계층 결과가 패리티 에러 없음인 경우(또는 임계 개수 미만의 패리티 에러인 경우), 코드워드가 대수 에러 교정 회로(114)의 에러 교정 능력 내에 있을 것이라는 가정이 성립될 수 있다.
도 2는 본 발명의 복수의 실시예에 따르는 계층적 반복 에러 교정을 종료하는 흐름도를 도시한다. (220)에서, 하드 데이터를 포함하는 코드워드가 메모리 소자(가령, 도 1에 도시된 메모리 소자(110))로부터 수신될 수 있다. (222)에서, (가령, 도 1에 도시된 반복 에러 교정 회로(112)에 의해) 코드워드에 대해 에러 교정이 수행될 수 있다. 예를 들어, 코드워드에 대한 반복 에러 교정이 계층별로 수행될 수 있다. 계층 "L" 이후, (224)에서 나타나는 바와 같이, 코드워드는 업데이트될 수 있다. 에러 교정의 각각의 계층 이후, 반복 에러 교정 회로는 해당 계층 내 패리티 에러의 개수를 인지할 수 있다. (226)에서, 패리티 에러의 개수가 (가령, 대수 에러 교정 회로의 교정 능력을 기초로 선택된) 패리티 체크 임계값 내에 있는 경우, (230)에서 (반복구간의 다음 계층을 체크하지 않고) 반복 에러 교정이 종료될 수 있고 코드워드는 다른 에러 교정 회로로(대수 에러 교정 회로로) 전송될 수 있다. (226)에서 패리티 에러의 개수가 패리티 체크 임계값 내에 있지 않은 경우, (228 및 222)에 도시된 바와 같이 에러 교정 반복구간의 다음 계층이 수행될 수 있다. 도 2에 구체적으로 도시되어 있지 않지만, (에러 교정의 마지막 반복구간의 마지막 계층에 대해 패리티 체크가 올바름인지 여부에 무관하게) 임계 횟수의 반복구간이 완료됨에 응답하여 반복 에러 교정이 종료될 수 있다.
(232)에서, 대수 에러 교정 회로가 코드워드를 에러 교정한 후, 코드워드가 대수 에러 교정에 합격(pass)인지 불합격(fail)인지 여부에 대한 결정이 이뤄질 수 있다. 대수 에러 교정에 불합격인 경우, (234)에서, 코드워드에 대응하는 소프트 데이터가 메모리 소자로부터 불러와질 수 있고 (222)에서 상기 소프트 데이터를 고려하여 상기 코드워드에 대해 반복 에러 교정이 시작될 수 있다. 본 발명의 복수의 실시예에서, 제 1 에러 교정 회로(가령 반복 에러 교정 회로) 및 제 2 에러 교정 회로(가령, 대수 에러 교정 회로)에 의해 불합격 에러 교정에 응답하여, 소프트 데이터가 메모리 소자로부터 수신될 수 있다. 대수 에러 교정 회로는 최대 임계 개수의 에러(가령, 비트 또는 심볼 에러)까지 교정할 수 있다. 도 2에 구체적으로 도시되지 않더라도, 대수 에러 교정 회로가 코드워드 내 에러의 개수가 대수 에러 교정 회로에 의해 교정 가능한 에러의 임계 개수를 초과한 것에 응답하여 교정 불가능 에러를 보고할 수 있다. 대수 에러 교정이 성공적인 경우, (236)에서, 코드워드가 호스트로 출력될 수 있다. 제 1 에러 교정 회로 및 제 2 에러 교정 회로에 의한 성공적인 에러 교정에 응답하여 코드워드가 호스트로 전송될 수 있다.
도 3은 본 발명의 복수의 실시예에 따르는 에러 교정 회로(ECC) 전력 절약률 대 원시 비트 에러율(RBER)을 도시하는 플롯(plot)이다. ECC 전력 절약률은 0 내지 P로 나타나며, P는 전력 절약률의 퍼센티지(반드시 100%는 아님)를 나타낸다. RBER는 10-(x-1) 내지 10-(x+ 1)로 나타나며, 여기서 x는 양의 정수를 나타낸다. 그래프의 오른쪽에 가까운 RBER이 통상적인 메모리 소자에 대한 수명의 시작부분에서의 통상적인 RBER을 나타낼 수 있다. 도시된 바와 같이, 원시 비트 에러율이 증가함에 따라(그래프의 왼쪽 방향으로의 추세) 전력 절약률이 약화될 수 있다. 곡선이 본 발명의 복수의 실시예에 따라 반복 에러 교정 회로에 대한 전력 절약률을 가리키는 실험적 데이터를 나타낸다.
도 4는 본 발명의 복수의 실시예에 따라 코드워드 에러율(CWER) 대 원시 비트 에러율(RBER)을 도시하는 플롯이다. 상기 CWER은 10-7 내지 100으로 표현된다. RBER는 (y+1)*10-(x-1) 내지 (y-1)10-(x+ 1)로 표현되며, 여기서 x 및 y 각각은 양의 정수를 나타낸다. 도 4에서의 x의 값은 도 3에서의 x의 값과 반드시 동일한 것은 아니다. 도 4에서 구별 가능하지 않더라도, 2개의 곡선이 실제로 나타난다. 제 1 곡선은 본 발명의 복수의 실시예에 따라 반복 에러 교정 회로가 종료될 때 코드워드 불합격률(failure rate)을 나타내고 (제 1 곡선과 본질적으로 공선형(collinear)인) 제 2 곡선은 종래의 알고리즘에 따르는 복수의 반복구간의 완료 이전에 반복 에러 교정 회로를 종료하지 않는(가령, 반복 에러 교정 회로가 이르게 종료되지 않는) 일부 이전 접근법에 따르는 코드워드 불합격률을 나타낸다. 따라서 도 3 및 도 4에 도시된 바와 같이, 본 발명의 복수의 실시예가 코드워드 불합격률을 증가시키지 않고 (가령, 연쇄 에러 교정 스킴에서) 반복 에러 교정 회로의 전력 소비량을 감소시킬 수 있다.
결론
본 발명은 계층적 반복 에러 교정에 대한 종료 기준과 관련된 장치 및 방법을 포함한다. 복수의 방법은 에러 교정 회로에 의해 코드워드를 수신하는 단계, 에러 교정 회로에 의해 코드워드를 반복적으로 에러 교정하는 단계를 포함할 수 있으며, 상기 에러 교정하는 단계는 코드워드를 계층별로 패리티 체크하는 단계 및 각각의 계층 이후에 코드워드를 업데이트하는 단계를 포함한다. 방법은 특정 계층에 대해 패리티 체크가 올바름에 응답하여 반복 에러 교정을 종료하는 단계를 포함할 수 있다.
본 명세서에 특정 실시예가 도시되고 기재되었지만, 해당 분야의 통상의 기술자라면 동일한 결과를 얻도록 계산된 배열이 나타난 특정 실시예를 치환할 수 있음을 알 것이다. 본 개시내용은 본 발명의 하나 이상의 실시예의 각색 또는 변형을 커버하도록 의도된다. 상기의 기재는 예를 들기 위해 이뤄졌으며 한정을 위한 것이 아님이 이해되어야 한다. 상기의 기재를 검토하면 해당 분야의 통상의 기술자에게 상기의 실시예와 본 명세서에 특정하게 기재되지 않은 그 밖의 다른 실시예의 조합이 자명할 것이다. 본 발명의 하나 이상의 실시예의 범위가 상기의 구조물 및 방법이 사용되는 다른 적용예를 포함한다. 따라서 본 발명의 하나 이상의 실시예의 범위가 이하의 특허청구범위 및 이러한 특허청구범위의 균등물의 전체 범위를 참조하여 결정될 것이다.
상기의 상세한 설명에서, 일부 특징부가 본 발명을 명료화하기 위한 목적으로 하나의 단일 실시예로 그룹지어졌다. 이러한 개시 방법은 본 발명의 개시된 실시예가 각각의 청구항에서 명시적으로 언급된 것보다 많은 특징을 사용해야 한다는 의도를 반영한 것으로 해석되어서는 안 된다. 오히려, 이하의 특허청구범위가 반영할 때, 본 발명의 대상은 하나의 단일 개시된 실시예의 모든 특징보다 적은 사항을 포함한다. 따라서 이하의 특허청구범위는 상세한 설명에 포함되며, 이때 각각의 청구항이 개별적인 실시예로서 나타난다.

Claims (35)

  1. 에러 교정 회로에 의해 코드워드를 수신하는 단계,
    상기 에러 교정 회로에 의해 코드를 반복적으로 에러 교정하는 단계 - 상기 에러 교정하는 단계는
    상기 코드워드를 계층(layer)별로 패리티 체크(parity check)하는 단계, 및
    각각의 계층 이후에 코드워드를 업데이트하는 단계를 포함함 -
    특정 계층에 대한 패리티 체크가 올바름(correct)에 응답하여 반복 에러 교정을 종료하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서, 반복 에러 교정을 종료하는 단계는 임계 개수의 데이터 유닛 내에서 특정 계층에 대한 패리티 체크가 올바름에 응답하여 반복 에러 교정을 종료하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 반복 에러 교정을 종료하는 단계는 모든 데이터 유닛에 대해 특정 계층에 대한 패리티 체크가 올바름에 응답하여 반복 에러 교정을 종료하는 단계를 포함하는, 방법.
  4. 제1항에 있어서, 반복 에러 교정을 종료하는 단계는 특정 반복구간의 특정 계층 후에, 상기 특정 반복구간의 다음 계층을 에러 교정하지 않고, 반복 에러 교정을 종료하는 단계를 포함하는, 방법.
  5. 제1항에 있어서, 상기 방법은 임계 횟수의 반복구간이 완료되고 패리티 체크가 마지막 반복구간의 마지막 계층에 대해 올바르지 않음(incorrect)에 응답하여 반복 에러 교정을 종료하는 단계를 포함하는, 방법.
  6. 제1항에 있어서, 반복 에러 교정을 종료하는 단계는 특정 계층 및 적어도 하나의 다른 계층에 대한 패리티 체크가 올바름에 응답하여 반복 에러 교정을 종료하는 단계를 포함하는, 방법.
  7. 제6항에 있어서, 반복 에러 교정을 종료하는 단계는 임계 개수의 데이터 유닛 내에서 특정 계층 및 적어도 하나의 다른 층에 대한 패리티 체크가 올바름에 응답하여 반복 에러 교정을 종료하는 단계를 포함하는, 방법.
  8. 제6항에 있어서, 반복 에러 교정을 종료하는 단계는 모든 데이터 유닛에 대해 특정 계층 및 적어도 하나의 다른 계층에 대한 패리티 체크가 올바름에 응답하여 반복 에러 교정을 종료하는 단계를 포함하는, 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 방법은 반복 에러 교정을 종료하는 단계 이후 상이한 에러 교정 회로로 코드워드를 전송하는 단계를 포함하는, 방법.
  10. 제9항에 있어서, 에러 교정 회로에 의해 코드워드를 반복적으로 에러 교정하는 단계는 코드워드를 에러 교정하기 위해 의사-순환(quasi-cyclic) 저밀도 패리티 체크 코드를 이용하는 단계를 포함하고,
    상기 방법은 상기 상이한 에러 교정 회로에 의해 코드워드를 에러 교정하기 위해 대수 코드를 이용하는 단계를 포함하는, 방법.
  11. 제 1 에러 교정 회로에 의해 코드워드를 수신하는 단계,
    상기 제 1 에러 교정 회로에 의해 상기 코드워드를 계층별로 반복적으로 에러 교정하는 단계,
    상기 제 1 에러 교정 회로에 의해 각각의 계층 이후에 코드워드를 업데이트하는 단계, 및
    특정 계층에 대한 패리티 체크가 올바름에 응답하여 상기 코드워드를 제 2 에러 교정 회로로 전송하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 방법은, 마지막 반복구간의 마지막 계층에 대한 패리티 체크가 올바른지 여부에 무관하게, 임계 횟수의 반복구간이 완료됨에 응답하여 코드워드를 제 2 에러 교정 회로로 전송하는 단계를 포함하는, 방법.
  13. 제12항에 있어서, 코드워드를 전송하는 단계는 코드워드의 복사본을 전송하는 단계를 포함하고,
    상기 방법은 제 2 에러 교정 회로가 코드워드를 조작하는 동안 제 1 에러 교정 회로에 의해 코드워드를 반복적으로 에러 교정하는 것을 계속하는 단계를 포함하는, 방법.
  14. 제13항에 있어서, 상기 방법은 제 2 에러 교정 회로가 코드워드에 대해 교정 불가능한 에러를 보고함에 응답하여 제 1 에러 교정 회로에 의해 반복적으로 에러 교정을 종료하는 단계를 포함하는, 방법.
  15. 제12항에 있어서,
    제 2 에러 교정 회로에 의해 코드워드에서 최대 임계 개수까지의 에러를 교정하는 단계, 및
    코드워드 내 에러의 개수가 임계값을 초과함에 응답하여, 교정 불가능한 에러를 보고하는 단계
    를 포함하는, 방법.
  16. 제15항에 있어서,
    제 1 에러 교정 회로에 의해 코드워드를 에러 교정하도록 의사-순환 저밀도 패리티 체크 코드를 이용하는 단계, 및
    제 2 에러 교정 회로에 의해 코드워드를 에러 교정하기 위해 대수 코드를 이용하는 단계
    를 포함하는, 방법.
  17. 제11항 내지 제16항 중 어느 한 항에 있어서, 특정 계층은 반복구간의 마지막 계층이 아닌 다른 계층인, 방법.
  18. 메모리 소자로부터의 하드 데이터(hard data)를 포함하는 코드워드를 수신하는 단계,
    코드워드가 특정 계층에서 임계 개수 미만의 패리티 에러를 포함할 때까지 또는 임계 횟수의 반복구간이 수행된 때까지, 제 1 에러 교정 회로에 의해 코드워드를 계층별로 반복적으로 에러 교정하는 단계,
    제 2 에러 교정 회로에 의해 코드워드를 에러 교정하는 단계, 및
    제 1 에러 교정 회로 및 제 2 에러 교정 회로에 의해 불합격된 에러 교정에 응답하여 메모리 소자로부터 소프트 데이터를 수신하는 단계
    를 포함하는, 방법.
  19. 제18항에 있어서, 상기 방법은 코드워드가 특정 계층에서 임계 개수 미만의 패리티 에러를 포함함에 응답하여, 제 1 에러 교정 회로로부터 제 2 에러 교정 회로로 코드워드를 전송하는 단계를 포함하는, 방법.
  20. 제18항에 있어서, 상기 방법은 제 1 에러 교정 회로 및 제 2 에러 교정 회로에 의한 성공적인 에러 교정에 응답하여 제 2 에러 교정 회로로부터 호스트로 코드워드를 전송하는 단계를 포함하는, 방법.
  21. 제18항에 있어서, 상기 방법은 제 1 에러 교정 회로 및 제 2 에러 교정 회로에 의한 성공적인 에러 교정에 응답하여, 성공적인 프로그램 검증 동작을 가리키는 단계를 포함하는, 방법.
  22. 제18항 내지 제21항 중 어느 한 항에 있어서, 상기 방법은 제 1 에러 교정 회로에 의해 반복 에러 교정을 종료함에 응답하여, 제 2 에러 교정 회로에 의한 코드워드의 에러 교정을 시작하는 단계를 포함하는, 방법.
  23. 제22항에 있어서,
    제 1 에러 교정 회로에 의해 의사-순환 저밀도 패리티 체크 코드를 이용하는 단계, 및
    제 2 에러 교정 회로에 의해 대수 코드를 이용하는 단계
    를 포함하는, 방법.
  24. 코드워드를 계층별로 반복적으로 에러 교정하고,
    각각의 계층 이후 코드워드를 업데이트하며,
    특정 계층에 대한 패리티 체크가 올바름에 응답하여 대수 에러 교정 회로로 코드워드를 전송하도록
    구성된 반복 에러 교정 회로
    를 포함하는, 장치.
  25. 제24항에 있어서, 특정 계층에 어떠한 패리티 에러가 없을 때 반복 패리티 체크가 올바른(correct), 장치.
  26. 제24항에 있어서, 특정 계층에서 임계 개수 미만의 패리티 에러가 존재할 때 반복 패리티 체크가 올바른, 장치.
  27. 제26항에 있어서, 대수 에러 교정 회로에 의해 교정 가능한 에러의 개수를 기초로 임계 개수가 선택되는, 장치.
  28. 제26항에 있어서, 상기 장치는, 장치의 나이, 장치의 프로그램/소거 사이클 횟수, 장치의 저장 밀도(storage density), 장치의 보유율, 및 장치 내 코드워드가 저장되는 물리적 위치를 포함하는 특성 군 중에서 선택된 장치의 특성을 기초로 임계 개수를 선택하도록 구성된, 장치.
  29. 제26항에 있어서, 패리티 에러의 임계 개수가 장치의 펌웨어에서 선택 가능한 옵션인, 장치.
  30. 제24항 내지 제29항 중 어느 한 항에 있어서, 상기 반복 에러 교정 회로는 의사-순환 저밀도 패리티 체크 코드 회로를 포함하는, 장치.
  31. 메모리 소자,
    상기 메모리 소자에 연결된 제 1 교정 회로 - 상기 제 1 에러 교정 회로는
    메모리 소자로부터의 하드 데이터를 포함하는 코드워드를 수신하고,
    상기 코드워드가 특정 반복구간의 특정 계층에서 임계 개수 미만의 패리티 에러를 포함할 때까지 또는 임계 횟수의 반복구간이 수행된 때까지 계층별로 코드워드를 반복적으로 에러 교정하도록 구성됨 - ,
    상기 제 1 에러 교정 회로에 연결된 제 2 에러 교정 회로 - 상기 제 2 에러 교정 회로는
    코드워드가 특정 계층에서 임계 개수 미만의 패리티 에러를 포함한 후 제 1 에러 교정 회로로부터의 코드워드를 수신하며,
    코드워드를 에러 교정하도록 구성됨 - ,
    제 2 에러 교정 회로에 연결된 호스트 인터페이스 - 호스트 인터페이스는 제 2 에러 교정 회로에 의한 성공적인 에러 교정에 응답하여 코드워드를 수신하도록 구성됨 -
    를 포함하는, 장치.
  32. 제31항에 있어서, 제 1 에러 교정 회로는 제 2 에러 교정 회로에 의한 비성공적인 에러 교정에 응답하여 메모리 소자로부터 소프트 데이터를 수신하도록 구성되는, 장치.
  33. 제31항 또는 제32항에 있어서, 상기 장치는 임계 개수의 패리티 에러를 정의하도록 선택 가능한 옵션을 제공하는 펌웨어를 포함하는, 장치.
  34. 제31항에 있어서, 제 1 에러 교정 회로는 의사-순환 저밀도 패리티 체크(LDPC) 코드 회로를 포함하며 제 2 에러 교정 회로는 대수 에러 교정 회로를 포함하는, 장치.
  35. 제34항에 있어서, 대수 에러 교정 회로는 BCH(Bose-Chaudhuri-Hocquenghem) 에러 교정 회로 및 리드 솔로몬(Reed Solomon) 에러 교정 회로를 포함하는 군 중 하나를 포함하는, 장치.
KR1020157017461A 2012-12-07 2013-12-09 계층적 반복 에러 교정을 위한 종료 기준 KR101645906B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261734473P 2012-12-07 2012-12-07
US61/734,473 2012-12-07
US13/746,768 2013-01-22
US13/746,768 US9116822B2 (en) 2012-12-07 2013-01-22 Stopping criteria for layered iterative error correction
PCT/US2013/073836 WO2014089550A1 (en) 2012-12-07 2013-12-09 Stopping criteria for layered iterative error correction

Publications (2)

Publication Number Publication Date
KR20150091148A true KR20150091148A (ko) 2015-08-07
KR101645906B1 KR101645906B1 (ko) 2016-08-12

Family

ID=50882399

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157017461A KR101645906B1 (ko) 2012-12-07 2013-12-09 계층적 반복 에러 교정을 위한 종료 기준

Country Status (6)

Country Link
US (4) US9116822B2 (ko)
EP (1) EP2929436B1 (ko)
JP (1) JP6110953B2 (ko)
KR (1) KR101645906B1 (ko)
CN (2) CN104937555B (ko)
WO (1) WO2014089550A1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102081588B1 (ko) * 2013-08-08 2020-02-26 삼성전자 주식회사 Ecc 디코더의 동작 방법 및 그것을 포함하는 메모리 컨트롤러
TWI527382B (zh) * 2013-10-22 2016-03-21 群聯電子股份有限公司 解碼方法、解碼電路、記憶體儲存裝置與控制電路單元
TWI536749B (zh) * 2013-12-09 2016-06-01 群聯電子股份有限公司 解碼方法、記憶體儲存裝置與記憶體控制電路單元
JP6200381B2 (ja) * 2014-06-11 2017-09-20 ファナック株式会社 監視対象の稼働状況に応じた誤り訂正機能を有する制御装置
US9853661B2 (en) * 2015-12-08 2017-12-26 Apple Inc. On-the-fly evaluation of the number of errors corrected in iterative ECC decoding
US10133627B2 (en) * 2015-12-11 2018-11-20 SK Hynix Inc. Memory device controller with mirrored command and operating method thereof
KR102473209B1 (ko) * 2015-12-14 2022-12-02 삼성전자주식회사 스토리지 장치 및 스토리지 장치의 동작 방법
TWI575533B (zh) * 2016-04-18 2017-03-21 群聯電子股份有限公司 資料校正方法、記憶體控制電路單元與記憶體儲存裝置
DE102016107285B4 (de) * 2016-04-20 2019-04-25 Infineon Technologies Ag Verfahren zur verwendung einer speichervorrichtung, speichervorrichtung und speichervorrichtungsanordnung
US10326479B2 (en) 2016-07-11 2019-06-18 Micron Technology, Inc. Apparatuses and methods for layer-by-layer error correction
US10312937B2 (en) * 2016-11-02 2019-06-04 Qualcomm Incorporated Early termination technique for LDPC decoder architecture
US10289348B2 (en) * 2016-12-30 2019-05-14 Western Digital Technologies, Inc. Tapered variable node memory
US10312944B2 (en) * 2017-03-17 2019-06-04 Micron Technology, Inc. Error correction code (ECC) operations in memory for providing redundant error correction
US10331514B2 (en) * 2017-03-17 2019-06-25 Micron Technology, Inc. Tiered error correction code (ECC) operations in memory
JP2018160056A (ja) 2017-03-22 2018-10-11 東芝メモリ株式会社 メモリコントローラ、メモリシステムおよび制御方法
JP6840591B2 (ja) 2017-03-24 2021-03-10 キオクシア株式会社 復号装置
CN107133123A (zh) * 2017-04-28 2017-09-05 郑州云海信息技术有限公司 一种关于pmc‑raid卡奇偶校验错误的注错测试的方法
US10853167B2 (en) * 2019-01-28 2020-12-01 Winbond Electronics Corp. Memory apparatus having hierarchical error correction code layer
KR102519413B1 (ko) * 2019-05-03 2023-04-07 삼성전자주식회사 무선 통신 시스템에서 저밀도 패리티-검사 부호의 복호화를 위한 장치 및 방법
US11543970B2 (en) * 2020-01-15 2023-01-03 Micron Technology, Inc. Managing dynamic temperature throttling thresholds in a memory subsystem
US11108407B1 (en) 2020-03-09 2021-08-31 SK Hynix Inc. Performance of a bit flipping (BF) decoder of an error correction system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751771B2 (en) * 2000-02-11 2004-06-15 Mediatek, Inc. Method and apparatus for error processing in optical disk memories

Family Cites Families (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5379415A (en) * 1992-09-29 1995-01-03 Zitel Corporation Fault tolerant memory system
US7046694B2 (en) * 1996-06-19 2006-05-16 Digital Radio Express, Inc. In-band on-channel digital broadcasting method and system
US6108152A (en) * 1996-10-01 2000-08-22 Seagate Technology, Inc. Redundant synchronization fields to improve disc drive read performance
US7225172B2 (en) * 1999-07-01 2007-05-29 Yeda Research And Development Co. Ltd. Method and apparatus for multivariable analysis of biological measurements
JP3426540B2 (ja) * 1999-07-12 2003-07-14 理学電機工業株式会社 試料交換機を有する分析システム
US6526531B1 (en) 2000-03-22 2003-02-25 Agere Systems Inc. Threshold detection for early termination of iterative decoding
US6981198B2 (en) * 2001-04-26 2005-12-27 Storage Technology Corporation Dynamic error correction code shortening
JP2002353821A (ja) * 2001-05-24 2002-12-06 Mitsubishi Electric Corp 誤り訂正復号方法および復号装置
EP1659727B1 (en) * 2004-11-19 2015-03-25 ATI International SRL Iterative decoding of packet data
WO2007001305A1 (en) 2005-06-27 2007-01-04 Thomson Licensing Stopping criteria in iterative decoders
CN101194428A (zh) * 2005-06-27 2008-06-04 汤姆森许可贸易公司 迭代解码器中的停止准则
US20070089016A1 (en) 2005-10-18 2007-04-19 Nokia Corporation Block serial pipelined layered decoding architecture for structured low-density parity-check (LDPC) codes
US20070113143A1 (en) 2005-10-25 2007-05-17 Yu Liao Iterative decoder with stopping criterion generated from error location polynomial
US7624330B2 (en) * 2005-12-12 2009-11-24 Lsi Corporation Unified memory architecture for recording applications
WO2007068554A1 (en) 2005-12-12 2007-06-21 Thomson Holding Germany Gmbh & Co. Ohg Serial concatenation scheme and its iterative decoding using an inner ldpc and an outer bch code
CN101336516B (zh) * 2006-01-31 2013-04-24 英特尔公司 级联低密度奇偶校验码的迭代解码
US8848442B2 (en) 2006-03-06 2014-09-30 Sandisk Il Ltd. Multi-bit-per-cell flash memory device with non-bijective mapping
US7502254B2 (en) 2006-04-11 2009-03-10 Sandisk Il Ltd Method for generating soft bits in flash memories
US7761772B2 (en) * 2006-10-18 2010-07-20 Trellisware Technologies, Inc. Using no-refresh DRAM in error correcting code encoder and decoder implementations
US8464120B2 (en) * 2006-10-18 2013-06-11 Panasonic Corporation Method and system for data transmission in a multiple input multiple output (MIMO) system including unbalanced lifting of a parity check matrix prior to encoding input data streams
US8166379B1 (en) 2006-11-03 2012-04-24 Marvell International Ltd. Calculating soft information from a multi-level modulation signal
US8059763B1 (en) 2006-11-09 2011-11-15 Marvell International Ltd. Approximate soft-information computation in multi-level modulation signaling schemes
US7895506B2 (en) * 2006-12-18 2011-02-22 Intel Corporation Iterative decoder with early-exit condition detection and methods for decoding
US7814401B2 (en) 2006-12-21 2010-10-12 Ramot At Tel Aviv University Ltd. Soft decoding of hard and soft bits read from a flash memory
US8583981B2 (en) 2006-12-29 2013-11-12 Marvell World Trade Ltd. Concatenated codes for holographic storage
US8065598B1 (en) 2007-02-08 2011-11-22 Marvell International Ltd. Low latency programmable encoder with outer systematic code and low-density parity-check code
US8341506B2 (en) * 2007-03-30 2012-12-25 HGST Netherlands B.V. Techniques for correcting errors using iterative decoding
US7765426B2 (en) 2007-06-07 2010-07-27 Micron Technology, Inc. Emerging bad block detection
WO2008151516A1 (fr) * 2007-06-08 2008-12-18 Datang Mobile Communications Equipment Co., Ltd Procédé, équipement et système pour codage et décodage ldpc
US8065583B2 (en) 2007-07-06 2011-11-22 Micron Technology, Inc. Data storage with an outer block code and a stream-based inner code
US7889707B2 (en) * 2007-10-02 2011-02-15 Samsung Electronics Co., Ltd. Method and system for unequal error protection with block codes for wireless transmission
US7848142B2 (en) 2007-10-31 2010-12-07 Micron Technology, Inc. Fractional bits in memory cells
JP4462342B2 (ja) 2007-12-18 2010-05-12 ソニー株式会社 復号装置および復号方法
US8291292B1 (en) * 2008-01-09 2012-10-16 Marvell International Ltd. Optimizing error floor performance of finite-precision layered decoders of low-density parity-check (LDPC) codes
KR20090083758A (ko) 2008-01-30 2009-08-04 삼성전자주식회사 연접 부호 복호화 방법 및 장치
US20090220034A1 (en) * 2008-03-03 2009-09-03 Ramprashad Sean A Layered receiver structure
US20090271686A1 (en) 2008-04-28 2009-10-29 Qualcomm Incorporated Communication signal decoding with iterative cooperation between turbo and reed-solomon decoding
KR101526317B1 (ko) * 2008-05-09 2015-06-11 삼성전자주식회사 계층적 디코딩 장치
US8291283B1 (en) * 2008-06-06 2012-10-16 Marvell International Ltd. Layered quasi-cyclic LDPC decoder with reduced-complexity circular shifter
JP2010009719A (ja) * 2008-06-30 2010-01-14 Fujitsu Ltd 復号器及び記録再生装置
US8406048B2 (en) 2008-08-08 2013-03-26 Marvell World Trade Ltd. Accessing memory using fractional reference voltages
TWI581269B (zh) 2008-09-30 2017-05-01 Lsi公司 利用解碼器效能回饋用於記憶體裝置之軟性資料產生的設備及方法
US8184756B2 (en) * 2008-12-18 2012-05-22 Viasat, Inc. Symbol timing acquisition using early-late interpolation
US8190962B1 (en) * 2008-12-30 2012-05-29 Qualcomm Atheros, Inc. System and method for dynamic maximal iteration
US8225166B2 (en) 2009-02-09 2012-07-17 Mediatek Inc. Signal processing apparatus for setting error indication information according error detection result of outer-code decoder output and related method thereof
US8413010B1 (en) * 2009-03-12 2013-04-02 Western Digital Technologies, Inc. Data storage device employing high quality metrics when decoding logical block address appended to a data sector
US8578256B2 (en) * 2009-04-22 2013-11-05 Agere Systems Llc Low-latency decoder
US8443267B2 (en) * 2009-04-28 2013-05-14 Lsi Corporation Systems and methods for hard decision assisted decoding
US8392789B2 (en) 2009-07-28 2013-03-05 Texas Instruments Incorporated Method and system for decoding low density parity check codes
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
TWI419481B (zh) * 2009-12-31 2013-12-11 Nat Univ Tsing Hua 低密度奇偶檢查碼編解碼器及其方法
US8327225B2 (en) 2010-01-04 2012-12-04 Micron Technology, Inc. Error correction in a stacked memory
US8522121B2 (en) * 2010-02-19 2013-08-27 Broadcom Corporation Low complexity error correction using cyclic redundancy check (CRC)
KR101633048B1 (ko) 2010-02-25 2016-06-24 삼성전자주식회사 메모리 시스템 및 그것의 데이터 처리 방법
US8700970B2 (en) 2010-02-28 2014-04-15 Densbits Technologies Ltd. System and method for multi-dimensional decoding
KR101541040B1 (ko) * 2010-03-12 2015-08-03 엘에스아이 코포레이션 플래시 메모리들을 위한 ldpc 소거 디코딩
JP2011197957A (ja) * 2010-03-18 2011-10-06 Toshiba Corp 誤り訂正符号復号装置及び誤り訂正符号復号方法
US8341486B2 (en) 2010-03-31 2012-12-25 Silicon Laboratories Inc. Reducing power consumption in an iterative decoder
US8775913B2 (en) 2010-03-31 2014-07-08 Lsi Corporation Methods and apparatus for computing soft data or log likelihood ratios for received values in communication or storage systems
US8332728B2 (en) 2010-04-02 2012-12-11 Skymedi Corporation Method and apparatus of generating a soft value for a memory device
US8499226B2 (en) 2010-06-29 2013-07-30 Lsi Corporation Multi-mode layered decoding
US8650457B1 (en) * 2010-09-03 2014-02-11 Marvell International Ltd. Methods and systems for reconfigurable LDPC decoders
US8243511B2 (en) 2010-09-27 2012-08-14 Seagate Technology Llc Reuse of information from memory read operations
US8627175B2 (en) * 2010-09-27 2014-01-07 Seagate Technology Llc Opportunistic decoding in memory systems
KR101807538B1 (ko) * 2010-12-30 2017-12-12 삼성전자주식회사 듀얼-신드롬 생성기를 포함하는 에러 정정 코드 블록, 이의 동작 방법, 및 상기 에러 정정 코드 블록을 포함하는 시스템
JP5790029B2 (ja) * 2011-03-01 2015-10-07 ソニー株式会社 復号装置、復号方法、およびプログラム
CN102696176B (zh) * 2011-07-27 2014-07-16 华为技术有限公司 译码装置
EP2737630A2 (en) * 2011-07-29 2014-06-04 SanDisk Technologies Inc. Checksum using sums of permutation sub-matrices
US8938660B1 (en) * 2011-10-10 2015-01-20 Marvell International Ltd. Systems and methods for detection and correction of error floor events in iterative systems
US8996957B1 (en) * 2012-05-22 2015-03-31 Pmc-Sierra, Inc. Systems and methods for initializing regions of a flash drive having diverse error correction coding (ECC) schemes
US9021337B1 (en) * 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for adaptively selecting among different error correction coding schemes in a flash drive
US8781033B2 (en) * 2012-06-26 2014-07-15 Lsi Corporation Apparatus and method for breaking trapping sets
US8966339B1 (en) * 2012-12-18 2015-02-24 Western Digital Technologies, Inc. Decoder supporting multiple code rates and code lengths for data storage systems
US8984376B1 (en) * 2013-03-14 2015-03-17 Pmc-Sierra Us, Inc. System and method for avoiding error mechanisms in layered iterative decoding
US9564922B1 (en) * 2014-03-19 2017-02-07 Microsemi Storage Solutions (U.S.), Inc. Error correction code decoder with stochastic floor mitigation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6751771B2 (en) * 2000-02-11 2004-06-15 Mediatek, Inc. Method and apparatus for error processing in optical disk memories

Also Published As

Publication number Publication date
EP2929436A1 (en) 2015-10-14
CN104937555A (zh) 2015-09-23
JP6110953B2 (ja) 2017-04-05
EP2929436B1 (en) 2020-07-01
CN107967186B (zh) 2021-07-27
CN104937555B (zh) 2018-01-16
US20190149175A1 (en) 2019-05-16
WO2014089550A1 (en) 2014-06-12
US20210258022A1 (en) 2021-08-19
US10998923B2 (en) 2021-05-04
US20140164867A1 (en) 2014-06-12
CN107967186A (zh) 2018-04-27
US10193577B2 (en) 2019-01-29
JP2016504848A (ja) 2016-02-12
US11405058B2 (en) 2022-08-02
EP2929436A4 (en) 2016-08-31
KR101645906B1 (ko) 2016-08-12
US9116822B2 (en) 2015-08-25
US20150333774A1 (en) 2015-11-19

Similar Documents

Publication Publication Date Title
KR101645906B1 (ko) 계층적 반복 에러 교정을 위한 종료 기준
US10628256B2 (en) Updating reliability data
US9319073B2 (en) Mitigation of write errors in multi-level cell flash memory through adaptive error correction code decoding
US10326479B2 (en) Apparatuses and methods for layer-by-layer error correction
US9170877B2 (en) Resolving trapping sets
US9471421B2 (en) Data accessing method, memory storage device and memory controlling circuit unit
US9973213B2 (en) Decoding method, and memory storage apparatus and memory control circuit unit using the same
US10534665B2 (en) Decoding method, memory storage device and memory control circuit unit
US20080168319A1 (en) Flash memory Device Error Correction Code Controllers and Related Methods and Memory Systems
TWI612527B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US10691538B2 (en) Methods and apparatuses for error correction
JP2019057752A (ja) メモリシステム
KR102606829B1 (ko) Ldpc 디코더, 반도체 메모리 시스템 및 그것의 동작 방법
US10177793B2 (en) Error correction code (ECC) operations in memory
CN113496752B (zh) 解码方法、存储器存储装置及存储器控制电路单元

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
FPAY Annual fee payment

Payment date: 20190724

Year of fee payment: 4