KR20190019728A - 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 - Google Patents

에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 Download PDF

Info

Publication number
KR20190019728A
KR20190019728A KR1020170105025A KR20170105025A KR20190019728A KR 20190019728 A KR20190019728 A KR 20190019728A KR 1020170105025 A KR1020170105025 A KR 1020170105025A KR 20170105025 A KR20170105025 A KR 20170105025A KR 20190019728 A KR20190019728 A KR 20190019728A
Authority
KR
South Korea
Prior art keywords
codeword
data blocks
decoding operation
code word
data
Prior art date
Application number
KR1020170105025A
Other languages
English (en)
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 에스케이하이닉스 주식회사
Priority to KR1020170105025A priority Critical patent/KR20190019728A/ko
Priority to US15/908,994 priority patent/US20190056991A1/en
Publication of KR20190019728A publication Critical patent/KR20190019728A/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
    • 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
    • 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
    • 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
    • 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/2957Turbo codes and decoding
    • H03M13/296Particular turbo code structure
    • H03M13/2963Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes

Landscapes

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

Abstract

에러 정정 회로는 복수의 데이터 블록들을 포함하는 데이터 청크를 수신하도록 구성되되, 상기 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함되는, 제어부; 및 상기 데이터 청크에서 상기 제어부에 의해 선택되는 코드워드에 대해 디코딩 동작을 수행하도록 구성된 디코더를 포함하되, 상기 제어부는, 상기 제1 방향의 제1 코드워드에 대한 제1 디코딩 동작의 결과에 따라, 상기 제2 방향의 제2 코드워드 또는 상기 제1 방향의 제3 코드워드를 우선적으로 선택한다.

Description

에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치{ERROR CORRECTION CIRCUIT, OPERATING METHOD THEREOF AND DATA STORAGE DEVICE INCUDING THE SAME}
본 발명은 에러 정정 회로에 관한 것으로, 더욱 상세하게는 데이터 저장 장치에 적용되는 에러 정정 회로에 관한 것이다.
데이터 저장 장치는 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 외부 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 데이터 저장 장치는 외부 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 외부 장치에 연결됨으로써 동작할 수 있다.
데이터 저장 장치는 에러 정정 회로를 포함할 수 있다. 에러 정정 회로는 외부 장치로부터 전송된 데이터에 대해 인코딩 동작을 수행하고, 데이터 저장 장치는 인코딩 동작을 통해 패리티 데이터가 부가된 데이터를 저장할 수 있다. 또한, 외부 장치가 저장된 데이터를 요구할 때, 에러 정정 회로는 저장된 데이터에 대해 디코딩 동작을 수행하고, 데이터 저장 장치는 디코딩 동작을 통해 에러 정정된 데이터를 외부 장치로 전송할 수 있다.
에러 정정 회로의 에러 정정 능력 및 에러 정정 동작의 신속한 완료는 데이터 저장 장치의 데이터 신뢰성 및 동작 성능과 직결될 수 있다.
본 발명의 실시 예는 에러 정정 동작을 신속하게 수행할 수 있는 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치를 제공하는 데 있다.
본 발명의 실시 예에 따른 에러 정정 회로는 복수의 데이터 블록들을 포함하는 데이터 청크를 수신하도록 구성되되, 상기 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함되는, 제어부; 및 상기 데이터 청크에서 상기 제어부에 의해 선택되는 코드워드에 대해 디코딩 동작을 수행하도록 구성된 디코더를 포함하되, 상기 제어부는, 상기 제1 방향의 제1 코드워드에 대한 제1 디코딩 동작의 결과에 따라, 상기 제2 방향의 제2 코드워드 또는 상기 제1 방향의 제3 코드워드를 우선적으로 선택할 수 있다.
본 발명의 실시 예에 따른 에러 정정 회로의 동작 방법은 복수의 데이터 블록들을 포함한 데이터 청크를 수신하되, 상기 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함되는, 단계; 상기 제1 방향의 제1 코드워드에 대한 제1 디코딩 동작의 결과에 따라, 상기 제2 방향의 제2 코드워드 또는 상기 제1 방향의 제3 코드워드를 우선적으로 선택하는 단계; 및 선택된 코드워드에 대한 디코딩 동작을 수행하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 데이터 저장 장치는 복수의 데이터 블록들을 포함하는 데이터 청크를 리드하고 출력하도록 구성되되, 상기 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함되는, 비휘발성 메모리 장치; 및 상기 데이터 청크에 대해 에러 정정 동작을 수행하도록 구성된 에러 정정부를 포함하되, 상기 에러 정정부는, 상기 제1 방향의 제1 코드워드에 대한 제1 디코딩 동작의 결과에 따라, 상기 제2 방향의 제2 코드워드 또는 상기 제1 방향의 제3 코드워드를 우선적으로 선택하도록 구성된 제어부; 및 상기 제어부에 의해 선택되는 코드워드에 대해 디코딩 동작을 수행하도록 구성된 디코더를 포함할 수 있다.
본 발명의 실시 예에 따른 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치는 에러 정정 동작을 신속하게 수행할 수 있다.
도1은 본 발명의 실시 예에 따른 에러 정정 회로를 도시한 블록도,
도2는 TPC 알고리즘에 근거한 데이터 청크를 예시적으로 도시하는 도면,
도3a 및 도3b는 도1의 에러 정정 회로가 데이터 청크에 대한 에러 정정 동작을 수행하는 방법을 설명하기 위한 도면들,
도4는 도1의 에러 정정 회로의 동작 방법을 도시하는 순서도,
도5는 본 발명의 실시 예에 따른 데이터 저장 장치를 도시한 블록도,
도6은 본 발명의 실시 예에 따른 SSD를 도시하는 블록도,
도7은 본 발명의 실시 예에 따른 데이터 처리 시스템을 도시하는 블록도이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 에러 정정 회로(10)를 도시한 블록도이다.
에러 정정 회로(10)는 데이터 청크(DCH)를 수신하고, 데이터 청크(DCH)에 대한 에러 정정 동작을 수행하고, 정정된 데이터 청크(DCH)를 출력할 수 있다.
데이터 청크(DCH)는 TPC(Turbo Product Code) 알고리즘에 근거하여 생성된 데이터일 수 있다. 데이터 청크(DCH)는 복수의 데이터 블록들을 포함하고, 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함될 수 있다. 제1 방향 및 제2 방향은 로우 방향 및 컬럼 방향이거나 또는 그 반대일 수 있다. 따라서, 데이터 청크(DCH)는 로우 방향의 코드워드들, 즉, 로우 코드워드들 및 컬럼 방향의 코드워드들, 즉, 컬럼 코드워드들을 포함할 수 있다. 데이터 청크(DCH)의 구조는 도2를 참조하여 상세하게 설명될 것이다.
에러 정정 회로(10)는 제어부(11) 및 디코더(12)를 포함할 수 있다.
제어부(11)는 데이터 청크(DCH)에서 디코딩 동작이 수행될 코드워드를 선택하고 디코더(12)로 제공할 수 있다. 제어부(11)는 디코딩 동작의 성공 가능성이 보다 높은 코드워드에 대해 디코딩 동작을 수행하도록 디코더(12)를 제어할 수 있다.
구체적으로, 제어부(11)는 제1 방향의 코드워드에 대한 디코딩 동작의 결과에 따라, 제2 방향의 코드워드 또는 제1 방향의 다른 코드워드를 이어서 디코딩 동작이 수행되도록 우선적으로 선택할 수 있다. 즉, 제어부(11)는 앞선 디코딩 동작의 결과에 따라, 디코딩 동작이 이어서 수행될 코드워드의 방향을 유지하거나 변경할 수 있다.
제1 방향의 코드워드에 대한 디코딩 동작이 성공할 때, 제어부(11)는 제2 방향의 코드워드를 우선적으로 선택할 수 있다. 즉, 제어부(11)는 제1 방향의 코드워드에 대한 디코딩 동작이 성공할 때, 디코딩 동작이 이어서 수행될 코드워드의 방향을 변경할 수 있다. 특히, 제어부(11)는 디코딩 동작이 성공한 코드워드에서 정정된 데이터 블록을 식별하고, 정정된 데이터 블록을 포함하는 제2 방향의 코드워드를 우선적으로 선택할 수 있다. 복수의 정정된 데이터 블록들이 존재할 때, 제어부(11)는 정정된 데이터 블록들을 포함하는 복수의 제2 방향의 코드워드들을 순차적으로 선택할 수 있다.
한편, 제1 방향의 코드워드에 대한 디코딩 동작이 실패할 때, 제어부(11)는 제1 방향의 다른 코드워드를 우선적으로 선택할 수 있다. 즉, 제어부(11)는 제1 방향의 코드워드에 대한 디코딩 동작이 실패할 때, 디코딩 동작이 이어서 수행될 코드워드의 방향을 유지할 수 있다.
디코더(12)는 제어부(11)에 의해 선택되는 코드워드에 대한 디코딩 동작을 수행할 수 있다. 디코더(12)는 디코딩 동작이 성공인지 또는 실패인지 여부를 제어부(11)에게 알릴 수 있다. 디코더(12)는, 예를 들어, BCH 알고리즘에 근거하여 코드워드에 대한 디코딩 동작을 수행할 수 있지만 본 발명의 실시 예는 이에 제한되지 않는다.
실시 예에 따라, 제어부(11)는 데이터 청크(DCH)에 대해 프리 디코딩 프로세스를 진행할 수 있다. 프리 디코딩 프로세스에서 디코더(12)는 제어부(11)의 제어에 따라 데이터 청크(DCH)에 포함된 코드워드들 각각에 대해 디코딩 동작을 수행할 수 있다. 코드워드들 각각에 대한 디코딩 동작은, 예를 들어, BCH 알고리즘에 근거하여 수행될 수 있지만 본 발명의 실시 예는 이에 제한되지 않는다. 디코더(12)는 프리 디코딩 프로세스을 통해 데이터 청크(DCH)에 대한 에러 정정 동작을 성공적으로 완료하거나, 데이터 청크(DCH)의 일부 코드워드들에 대한 디코딩 동작을 실패할 수도 있다.
제어부(11)가 프리 디코딩 프로세스를 진행할 때, 상술한 디코딩 프로세스는 프리 디코딩 프로세스와 구분하여 포스트 디코딩 프로세스로 명명될 수 있다. 제어부(11)는 프리 디코딩 프로세스에서 디코딩 동작에 실패한 코드워드들에 대해 포스트 디코딩 프로세스를 진행할 수 있다. 제어부(11)는 어떤 방향의 코드워드에 대해 포스트 디코딩 프로세스를 우선적으로 진행할 것인지를 제어함으로써 에러 정정 동작을 신속하게 종료할 수 있다.
정리하면, 본 발명의 에러 정정 회로(10)는 데이터 청크(DCH)에서 디코딩 동작이 수행될 코드워드를 입력된 순서와 같은 단순한 순서에 따라 선택하지 않고, 디코딩 동작의 성공 가능성을 고려하여 선택할 수 있다. 따라서, 에러 정정 회로(10)는 데이터 청크(DCH)에 대한 에러 정정 동작을 더욱 신속하게 종료할 수 있다.
도2는 TPC 알고리즘에 근거한 데이터 청크(DCH)를 예시적으로 도시하는 도면이다.
도2를 참조하면, TPC 알고리즘에 근거하여 생성된 데이터 청크(DCH)는 복수의 데이터 블록들을 포함할 수 있다. 미도시되었지만 데이터 블록들 각각은 복수의 데이터 비트들을 포함할 수 있다. 데이터 블록들은 로우 코드워드들(RC1~RC4)과 컬럼 코드워드들(CC1~CC4)을 구성하기 위해 조합될 수 있다. 어떤 하나의 데이터 블록은 어떤 하나의 로우 코드워드에 포함되는 동시에 어떤 하나의 컬럼 코드워드에 포함될 수 있다. 로우 방향의 코드워드들이란 로우 코드워드들(RC1~RC4)을 의미하고, 컬럼 방향의 코드워드들이란 컬럼 코드워드들(CC1~CC4)을 의미할 수 있다. 한편, 도2는 4개의 로우 코드워드들(RC1~RC4)과 4개의 컬럼 코드워드들(CC1~CC4)로 구성되는 데이터 청크(DCH)를 도시하지만, 데이터 청크(DCH)에 포함되는 로우 코드워드들과 컬럼 코드워드들의 개수는 이에 제한되지 않는다.
로우 코드워드들(RC1~RC4)은 로우 패리티 데이터 블록들(RP1~RP4)을 포함할 수 있다. 로우 코드워드들(RC1~RC4) 각각은, 대응하는 데이터 블록들이 인코딩됨으로써 생성된 로우 패리티 데이터 블록을 포함할 수 있다. 예를 들어, 로우 코드워드(RC2)는 데이터 블록들(D21~D24)이 인코딩됨으로써 생성된 로우 패리티 데이터 블록(RP2)을 포함할 수 있다. 로우 패리티 데이터 블록들(RP1~RP4) 각각을 생성하기 위해, 인코딩 동작은, 예를 들어, BCH 코드에 근거하여 수행될 수 있지만, 본 발명에서 인코딩 동작은 이에 제한되지 않고 다양한 ECC 알고리즘에 근거하여 수행될 수 있다.
컬럼 코드워드들(CC1~CC4)은 컬럼 패리티 데이터 블록들(CP1~CP4)을 포함할 수 있다. 컬럼 코드워드들(CC1~CC4) 각각은, 대응하는 데이터 블록들이 인코딩됨으로써 생성된 컬럼 패리티 데이터 블록을 포함할 수 있다. 예를 들어, 컬럼 코드워드(CC1)는 데이터 블록들(D11~D41)이 인코딩됨으로써 생성된 컬럼 패리티 데이터 블록(CP1)을 포함할 수 있다. 컬럼 패리티 데이터 블록들(CP1~CP4) 각각을 생성하기 위해, 인코딩 동작은, 예를 들어, BCH 코드에 근거하여 수행될 수 있지만, 본 발명에서 인코딩 동작은 이에 제한되지 않고 다양한 ECC 알고리즘에 근거하여 수행될 수 있다.
한편, 데이터 청크(DCH)는 추가 패리티 데이터 블록(PP)을 더 포함할 수 있다. 추가 패리티 데이터 블록(PP)은 로우 패리티 데이터 블록들(RP1~RP4) 및 컬럼 패리티 데이터 블록들(CP1~CP4)이 인코딩됨으로써 생성될 수 있다. 추가 패리티 데이터 블록(PP)은 로우 패리티 데이터 블록들(RP1~RP4) 및 컬럼 패리티 데이터 블록들(CP1~CP4)에 발생한 에러를 정정하기 위해 사용될 수 있다.
디코더(12)는 로우 코드워드들(RC1~RC4)에 대한 디코딩 동작들을 로우 패리티 데이터 블록들(RP1~RP4)에 근거하여 수행할 수 있다. 구체적으로, 로우 코드워드들(RC1~RC4) 각각에 대한 디코딩 동작은 대응하는 로우 패리티 데이터 블록에 근거하여 대응하는 데이터 블록들에 포함된 에러들을 정정함으로써 수행될 수 있다. 예를 들어, 로우 코드워드(RC2)에 대한 디코딩 동작은 로우 패리티 데이터 블록(RP2)에 근거하여 데이터 블록들(D21~D24)에 포함된 에러들을 정정함으로써 수행될 수 있다.
마찬가지로, 디코더(12)는 컬럼 코드워드들(CC1~CC4)에 대한 디코딩 동작들을 컬럼 패리티 데이터 블록들(CP1~CP4)에 근거하여 수행할 수 있다. 구체적으로, 컬럼 코드워드들(CC1~CC4) 각각에 대한 디코딩 동작은 대응하는 컬럼 패리티 데이터 블록에 근거하여 대응하는 데이터 블록들에 포함된 에러들을 정정함으로써 수행될 수 있다. 예를 들어, 컬럼 코드워드(CC1)에 대한 디코딩 동작은 컬럼 패리티 데이터 블록(CP1)에 근거하여 데이터 블록들(D11~D41)에 포함된 에러들을 정정함으로써 수행될 수 있다.
데이터 청크(DCH)에서, 동일한 데이터 블록에 포함된 에러들은 대응하는 로우 코드워드에 대한 디코딩 동작 또는 대응하는 컬럼 코드워드에 대한 디코딩 동작을 통해 정정될 수 있다. 따라서, 동일한 데이터 블록에 포함된 에러들은 대응하는 로우 코드워드에 대한 디코딩 동작에서 정정되지 못하더라도 대응하는 컬럼 코드워드에 대한 디코딩 동작을 통해 정정될 수 있거나, 또는 그 반대일 수 있다.
도3a 및 도3b는 도1의 에러 정정 회로(10)가 데이터 청크(DCH)에 대한 에러 정정 동작을 수행하는 방법을 설명하기 위한 도면들이다.
도3a를 참조하면, 제어부(11)는 데이터 청크(DCH)에서 예시적으로 로우 코드워드(RC1)를 선택하고, 디코더(12)는 로우 코드워드(RC1)에 대한 디코딩 동작을 수행할 수 있다. 로우 코드워드(RC1)에 대한 디코딩 동작이 성공할 때, 제어부(11)는 로우 코드워드(RC1)에서 정정된 데이터 블록들(D12, D13)을 식별할 수 있다.
예를 들어, 제어부(11)는 디코딩 동작이 수행되기 전 및 후의 로우 코드워드들(RC1)을 비교함으로써 정정된 데이터 블록들(D12, D13)을 식별할 수 있다. 데이터 블록(D12)은, 예를 들어, 1개의 에러가 정정되었고, 데이터 블록(D13)은, 예를 들어, 2개의 에러들이 정정되었을 수 있다.
도3b를 참조하면, 제어부(11)는 정정된 데이터 블록들(D12, D13)을 포함하는 컬럼 코드워드들(CC2, CC3)을 선택할 수 있다. 컬럼 코드워드들(CC2, CC3)의 일부 에러들이 로우 코드워드(RC1)에 대한 디코딩 동작을 통해 정정되었으므로, 컬럼 코드워드들(CC2, CC3)에 대한 디코딩 동작의 성공 가능성은 증가할 수 있다. 따라서, 제어부(11)는 컬럼 코드워드들(CC2, CC3) 각각에 대한 디코딩 동작이 다른 코드워드보다 우선적으로 수행되도록 컬럼 코드워드들(CC2, CC3)을 순차적으로 선택할 수 있다.
한편, 정정된 데이터 블록들(D12, D13)의 정정률들이 고려될 수 있다. 정정률은, 해당 정정된 데이터 블록에서 얼마나 많은 에러들이 정정되었는지를 의미할 수 있다. 정정률은, 해당 정정된 데이터 블록에서 정정된 에러들의 개수에 근거하여 결정될 수 있다. 예를 들어, 2개의 에러들이 정정된 컬럼 코드워드(CC3)의 정정률은 1개의 에러가 정정된 컬럼 코드워드(CC2)의 정정률보다 높을 수 있다.
실시 예에 따라, 제어부(11)는 제어부(11)는 정정된 데이터 블록들(D12, D13)의 정정률들에 근거하여 컬럼 코드워드들(CC2, CC3) 중 일부만을 우선적으로 선택할 수 있다. 예를 들어, 오직 데이터 블록(D13)의 정정률이 소정 기준을 초과할 때, 제어부(11)는 컬럼 코드워드(CC3)만을 우선적으로 선택할 수 있다.
한편, 도3a에 도시된 바와 달리, 로우 코드워드(RC1)에 대한 디코딩 동작이 실패할 때, 제어부(11)는 계속 로우 방향의 다른 코드워드, 예를 들어, 로우 코드워드(RC2)를 선택할 수 있다. 즉, 제어부(11)는 로우 코드워드(RC1)에 대한 디코딩 동작이 실패할 때, 디코딩 동작이 이어서 수행될 코드워드의 방향을 로우 방향으로 유지할 수 있다.
도3a 및 도3b는 로우 방향의 디코딩 동작의 성공/실패 결과에 따라 컬럼 방향의 코드워드가 우선적으로 선택되는 과정을 도시한다. 이와 유사하게, 컬럼 방향의 디코딩 동작의 성공/실패 결과에 따라 로우 방향의 코드워드가 우선적으로 선택될 수 있다. 예를 들어, 도3b에서 컬럼 코드워드(CC3)에 대한 디코딩 동작이 성공할 때, 컬럼 코드워드(CC3)에서 정정된 데이터 블록을 식별하고, 정정된 데이터 블록을 포함하는 로우 방향의 코드워드가 우선적으로 선택될 수 있다.
실시 예에 따라, 제어부(11)는 도3b의 컬럼 코드워드들(CC2, CC3) 각각에 대한 디코딩 동작이 수행된 뒤, 제어부(11)는 컬럼 코드워드들(CC2, CC3)에 대한 디코딩 동작의 성공/실패 결과와 무관하게 로우 방향의 코드워드, 예를 들어, 로우 코드워드(RC2)를 우선적으로 선택할 수 있다. 즉, 컬럼 방향의 코드워드는 로우 방향의 코드워드에 대한 디코딩 동작의 성공/실패 결과에 의존하여 선택되지만, 로우 방향의 코드워드는 컬럼 방향의 코드워드에 대한 디코딩 동작의 성공/실패 결과에 독립적으로, 예를 들어, 소정 순서에 따라 선택될 수 있다.
유사하게, 실시 예에 따라, 로우 방향의 코드워드가 컬럼 방향의 디코딩 동작의 성공/실패 결과에 의존하여 선택되더라도, 디코딩 동작이 수행될 컬럼 방향의 코드워드는 로우 방향의 디코딩 동작의 성공/실패 결과와 무관하게 선택될 수 있다.
도4는 도1의 에러 정정 회로(10)의 동작 방법을 도시하는 순서도이다. 도4는 에러 정정 회로(10)가 데이터 청크(DCH)에서 이전 디코딩 동작의 결과에 따라, 디코딩 동작을 이어서 수행할 코드워드를 동일한 방향 또는 다른 방향에서 선택하고 디코딩 동작을 수행하는 방법을 도시한다. 도4에 도시된 방법에서, 제1 방향 및 제2 방향은 로우 방향 및 컬럼 방향이거나 또는 그 반대일 수 있다.
도4를 참조하면, 단계(S110)에서, 제어부(11)는 제1 방향의 코드워드를 선택할 수 있다.
단계(S120)에서, 디코더(12)는 제1 방향의 선택된 코드워드에 대한 디코딩 동작을 수행할 수 있다. 디코더(12)는 디코딩 동작의 결과를 제어부(11)에게 알릴 수 있다.
단계(S130)에서, 제어부(11)는 제1 방향의 코드워드에 대한 디코딩 동작이 성공했는지 여부를 판단할 수 있다. 디코딩 동작이 실패한 것으로 판단될 때, 절차는 단계(S170)로 진행될 수 있다. 그러나, 디코딩 동작이 성공한 것으로 판단될 때, 절차는 단계(S140)로 진행될 수 있다.
단계(S140)에서, 제어부(11)는 제1 방향의 코드워드에서 하나 이상의 정정된 데이터 블록들을 식별할 수 있다.
단계(S150)에서, 제어부(11)는 정정된 데이터 블록들을 포함하는 제2 방향의 하나 이상의 코드워드들을 선택할 수 있다.
단계(S160)에서, 디코더(12)는 제2 방향의 선택된 코드워드들 각각에 대한 디코딩 동작을 수행할 수 있다. 디코더(12)는 디코딩 동작의 결과를 제어부(11)에게 알릴 수 있다.
단계(S170)에서, 제어부(11)는 데이터 청크(DCH)에서 디코딩 동작이 수행되지 않은 제1 방향의 다른 코드워드가 존재하는지 여부를 판단할 수 있다. 제1 방향의 다른 코드워드가 존재할 때, 절차는 단계(S110)로 진행될 수 있다. 즉, 단계(S110)에서, 제어부(11)는 디코딩 동작이 이어서 수행될 제1 방향의 다른 코드워드를 선택할 수 있다.
그러나, 단계(S170)에서, 디코딩 동작이 수행되지 않은 제1 방향의 다른 코드워드가 존재하지 않을 때, 절차는 단계(S180)로 진행될 수 있다.
단계(S180)에서, 제어부(11)는 데이터 청크(DCH)에서 디코딩 동작이 수행되지 않은 제2 방향의 다른 코드워드가 존재하는지 여부를 판단할 수 있다. 제2 방향의 다른 코드워드가 존재하지 않을 때, 절차는 종료할 수 있다.
그러나, 단계(S180)에서, 디코딩 동작이 수행되지 않은 제2 방향의 다른 코드워드가 존재할 때, 절차는 단계(S190)로 진행될 수 있다.
단계(S190)에서, 제어부(11)는 디코딩 동작이 이어서 수행될 제2 방향의 다른 코드워드들을 선택할 수 있다.
단계(S200)에서, 디코더(12)는 제2 방향의 선택된 코드워드들 각각에 대한 디코딩 동작을 수행할 수 있다. 디코더(12)는 디코딩 동작의 결과를 제어부(11)에게 알릴 수 있다.
실시 예에 따라, 단계(S200)까지 절차가 진행된 뒤에 디코딩 동작에 실패한 상태인 코드워드들에 대해 제어부(11)는 도4에 도시된 과정을 반복할 수 있다.
도4에 도시된 방법에 따르면, 제1 방향의 코드워드는 제2 방향의 디코딩 동작의 성공/실패 결과에 무관하게 선택될 수 있다. 그러나 상술한 바와 같이, 제1 방향의 코드워드도 제2 방향의 디코딩 동작의 성공/실패 결과에 의존하여 정정된 데이터 블록을 포함하는 코드워드로 선택될 수 있다.
도5는 본 발명의 실시 예에 따른 데이터 저장 장치(100)를 도시한 블록도이다.
데이터 저장 장치(100)는 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치(100)는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다.
데이터 저장 장치(100)는 PCMCIA(Personal Computer Memory Card International Association) 카드, CF(Compact Flash) 카드, 스마트 미디어 카드, 메모리 스틱, 다양한 멀티 미디어 카드(MMC, eMMC, RS-MMC, MMC-micro), SD(Secure Digital) 카드(SD, Mini-SD, Micro-SD), UFS(Universal Flash Storage) 또는 SSD(Solid State Drive) 등으로 구성될 수 있다.
데이터 저장 장치(100)는 컨트롤러(110) 및 비휘발성 메모리 장치(120)를 포함할 수 있다.
컨트롤러(110)는 데이터 저장 장치(100)의 제반 동작을 제어할 수 있다. 컨트롤러(110)는 외부 장치로부터 전송된 라이트 요청에 응답하여 비휘발성 메모리 장치(120)에 데이터를 저장하고, 외부 장치로부터 전송된 리드 요청에 응답하여 비휘발성 메모리 장치(120)에 저장된 데이터를 리드하여 외부 장치로 출력할 수 있다.
컨트롤러(110)는 에러 정정부(111)를 포함할 수 있다. 에러 정정부(111)는 도1의 에러 정정 회로(10)와 실질적으로 동일하게 구성될 수 있다. 에러 정정부(111)는 비휘발성 메모리 장치(120)로부터 리드된 데이터 청크에 대해 도1 내지 도4를 참조하여 설명한 바와 같이 에러 정정 동작을 수행할 수 있다.
비휘발성 메모리 장치(120)는 컨트롤러(110)의 제어에 따라, 컨트롤러(110)로부터 전송된 데이터를 저장하고, 저장된 데이터를 리드하여 컨트롤러(110)로 전송할 수 있다.
비휘발성 메모리 장치(120)는 낸드 플래시(NAND Flash) 또는 노어 플래시(NOR Flash)와 같은 플래시 메모리 장치, FeRAM(Ferroelectrics Random Access Memory), PCRAM(Phase-Change Random Access Memory), MRAM(Magnetic Random Access Memory) 또는 ReRAM(Resistive Random Access Memory) 등을 포함할 수 있다.
한편, 도5는 데이터 저장 장치(100)가 1개의 비휘발성 메모리 장치(120)를 포함하는 것으로 도시하나, 데이터 저장 장치(100)에 포함되는 비휘발성 메모리 장치들의 개수는 이에 제한되지 않는다.
도6은 본 발명의 실시 예에 따른 SSD(1000)를 도시하는 블록도이다.
SSD(1000)는 컨트롤러(1100)와 저장 매체(1200)를 포함할 수 있다.
컨트롤러(1100)는 호스트 장치(1500)와 저장 매체(1200) 사이의 데이터 교환을 제어할 수 있다. 컨트롤러(1100)는 내부 버스(1170)을 통해 연결된 프로세서(1110), 램(1120), 롬(1130), ECC부(1140), 호스트 인터페이스(1150) 및 저장 매체 인터페이스(1160)를 포함할 수 있다.
프로세서(1110)는 컨트롤러(1100)의 제반 동작을 제어할 수 있다. 프로세서(1110)는 호스트 장치(1500)의 데이터 처리 요청에 따라 저장 매체(1200)에 데이터를 저장하고, 저장 매체(1200)로부터 저장된 데이터를 리드할 수 있다. 프로세서(1110)는 저장 매체(1200)를 효율적으로 관리하기 위해서, 머지 동작 및 웨어 레벨링 동작 등과 같은 SSD(1000)의 내부 동작을 제어할 수 있다.
램(1120)은 프로세서(1110)에 의해 사용되는 프로그램 및 프로그램 데이터를 저장할 수 있다. 램(1120)은 호스트 인터페이스(1150)로부터 전송된 데이터를 저장 매체(1200)에 전달하기 전에 임시 저장할 수 있고. 저장 매체(1200)로부터 전송된 데이터를 호스트 장치(1500)로 전달하기 전에 임시 저장할 수 있다.
롬(1130)은 프로세서(1110)에 의해 리드되는 프로그램 코드를 저장할 수 있다. 프로그램 코드는 프로세서(1110)가 컨트롤러(1100)의 내부 유닛들을 제어하기 위해서 프로세서(1110)에 의해 처리되는 명령들을 포함할 수 있다.
ECC부(1140)는 저장 매체(1200)에 저장될 데이터를 인코딩하고, 저장 매체(1200)로부터 리드된 데이터를 디코딩할 수 있다. ECC부(1140)는 ECC 알고리즘에 따라 데이터에 발생된 에러를 검출하고 정정할 수 있다 ECC부(1140)는 도1의 에러 정정 회로(10)와 실질적으로 동일하게 구성될 수 있다.
호스트 인터페이스(1150)는 호스트 장치(1500)와 데이터 처리 요청 및 데이터 등을 교환할 수 있다.
저장 매체 인터페이스(1160)는 저장 매체(1200)로 제어 신호 및 데이터를 전송할 수 있다. 저장 매체 인터페이스(1160)는 저장 매체(1200)로부터 데이터를 전송받을 수 있다. 저장 매체 인터페이스(1160)는 저장 매체(1200)와 복수의 채널들(CH0~CHn)을 통해 연결될 수 있다.
저장 매체(1200)는 복수의 비휘발성 메모리 장치들(NVM0~NVMn)을 포함할 수 있다. 복수의 비휘발성 메모리 장치들(NVM0~NVMn) 각각은 컨트롤러(1100)의 제어에 따라 라이트 동작 및 리드 동작을 수행할 수 있다.
도7은 본 발명의 실시 예에 따른 데이터 처리 시스템(2000)을 도시하는 블록도이다.
데이터 처리 시스템(2000)은 컴퓨터, 랩탑, 넷북, 스마트폰, 디지털 TV, 디지털 카메라, 네비게이션 등을 포함할 수 있다. 데이터 처리 시스템(2000)은 메인 프로세서(2100), 메인 메모리 장치(2200), 데이터 저장 장치(2300) 및 입출력 장치(2400)를 포함할 수 있다. 데이터 처리 시스템(2000)의 내부 유닛들은 시스템 버스(2500)를 통해서 데이터 및 제어 신호 등을 주고받을 수 있다.
메인 프로세서(2100)는 데이터 처리 시스템(2000)의 제반 동작을 제어할 수 있다. 메인 프로세서(2100)는, 예를 들어, 마이크로프로세서와 같은 중앙 처리 장치일 수 있다. 메인 프로세서(2100)는 운영 체제, 애플리케이션 및 장치 드라이버 등의 소프트웨어들을 메인 메모리 장치(2200) 상에서 수행할 수 있다.
메인 메모리 장치(2200)는 메인 프로세서(2100)에 의해 사용되는 프로그램 및 프로그램 데이터를 저장할 수 있다. 메인 메모리 장치(2200)는 데이터 저장 장치(2300) 및 입출력 장치(2400)로 전송될 데이터를 임시 저장할 수 있다.
데이터 저장 장치(2300)는 컨트롤러(2310) 및 저장 매체(2320)를 포함할 수 있다. 데이터 저장 장치(2300)는 도5의 데이터 저장 장치(100) 또는 도6의 SSD(1000)와 실질적으로 유사하게 구성되고 동작할 수 있다.
입출력 장치(2400)는 사용자로부터 데이터 처리 시스템(2000)을 제어하기 위한 명령을 입력받거나 처리된 결과를 사용자에게 제공하는 등 사용자와 정보를 교환할 수 있는 키보드, 스캐너, 터치스크린, 스크린 모니터, 프린터 및 마우스 등을 포함할 수 있다.
실시 예에 따라, 데이터 처리 시스템(2000)은 LAN(Local Area Network), WAN(Wide Area Network) 및 무선 네트워크 등의 네트워크(2600)를 통해 적어도 하나의 서버(2700)와 통신할 수 있다. 데이터 처리 시스템(2000)은 네트워크(2600)에 접속하기 위해서 네트워크 인터페이스(미도시)를 포함할 수 있다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 에러 정정 회로
11: 제어부
12: 디코더

Claims (18)

  1. 복수의 데이터 블록들을 포함하는 데이터 청크를 수신하도록 구성되되, 상기 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함되는, 제어부; 및
    상기 데이터 청크에서 상기 제어부에 의해 선택되는 코드워드에 대해 디코딩 동작을 수행하도록 구성된 디코더를 포함하되,
    상기 제어부는, 상기 제1 방향의 제1 코드워드에 대한 제1 디코딩 동작의 결과에 따라, 상기 제2 방향의 제2 코드워드 또는 상기 제1 방향의 제3 코드워드를 우선적으로 선택하는 에러 정정 회로.
  2. 제1항에 있어서,
    상기 제어부는, 상기 제1 디코딩 동작이 성공할 때, 상기 제1 코드워드에서 하나 이상의 정정된 데이터 블록들을 식별하고, 상기 정정된 데이터 블록들을 포함하는 상기 제2 방향의 코드워드들 각각을 상기 제2 코드워드로서 우선적으로 선택하는 에러 정정 회로.
  3. 제2항에 있어서,
    상기 제어부는, 상기 제2 방향의 코드워드들을 선택한 뒤에, 상기 제3 코드워드를 우선적으로 선택하는 에러 정정 회로.
  4. 제2항에 있어서,
    상기 제어부는, 상기 정정된 데이터 블록들 중 소정 기준을 초과하는 정정률을 가진 하나 이상의 데이터 블록들을 식별하고, 식별된 데이터 블록들을 포함하는 상기 제2 방향의 코드워드들 각각을 상기 제2 코드워드로서 우선적으로 선택하는 에러 정정 회로.
  5. 제1항에 있어서,
    상기 제어부는, 상기 제1 디코딩 동작이 실패할 때, 상기 제3 코드워드를 우선적으로 선택하는 에러 정정 회로.
  6. 제1항에 있어서,
    상기 디코더는, 제1 디코딩 동작을 수행하기 전에 상기 데이터 청크에 대한 프리 디코딩 프로세스를 진행하고,
    상기 제1 코드워드, 상기 2 코드워드 및 상기 제3 코드워드는 상기 프리 디코딩 프로세스에서 디코딩 동작에 실패한 코드워드들인, 에러 정정 회로.
  7. 복수의 데이터 블록들을 포함한 데이터 청크를 수신하되, 상기 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함되는, 단계;
    상기 제1 방향의 제1 코드워드에 대한 제1 디코딩 동작의 결과에 따라, 상기 제2 방향의 제2 코드워드 또는 상기 제1 방향의 제3 코드워드를 우선적으로 선택하는 단계; 및
    선택된 코드워드에 대한 디코딩 동작을 수행하는 단계를 포함하는 에러 정정 회로의 동작 방법.
  8. 제7항에 있어서,
    상기 제2 코드워드 또는 상기 제3 코드워드를 선택하는 단계는,
    상기 제1 디코딩 동작이 성공할 때, 상기 제1 코드워드에서 하나 이상의 정정된 데이터 블록들을 식별하는 단계; 및
    상기 정정된 데이터 블록들을 포함하는 상기 제2 방향의 코드워드들 각각을 상기 제2 코드워드로서 우선적으로 선택하는 단계를 포함하는 에러 정정 회로의 동작 방법.
  9. 제8항에 있어서,
    상기 제2 코드워드 또는 상기 제3 코드워드를 선택하는 단계는,
    상기 제2 방향의 코드워드들 각각을 선택한 뒤에, 상기 제3 코드워드를 우선적으로 선택하는 단계를 더 포함하는 에러 정정 회로의 동작 방법.
  10. 제8항에 있어서,
    상기 제2 코드워드 또는 상기 제3 코드워드를 선택하는 단계는,
    상기 정정된 데이터 블록들 중 소정 기준을 초과하는 정정률을 가진 하나 이상의 데이터 블록들을 식별하는 단계; 및
    식별된 데이터 블록들을 포함하는 상기 제2 방향의 코드워드들 각각을 상기 제2 코드워드로서 우선적으로 선택하는 단계를 포함하는 에러 정정 회로의 동작 방법.
  11. 제7항에 있어서,
    상기 제2 코드워드 또는 상기 제3 코드워드를 선택하는 단계는,
    상기 제1 디코딩 동작이 실패할 때, 상기 제3 코드워드를 우선적으로 선택하는 단계를 포함하는 에러 정정 회로의 동작 방법.
  12. 제7항에 있어서,
    상기 제1 디코딩 동작을 수행하기 전에 상기 데이터 청크에 대한 프리 디코딩 프로세스를 진행하는 단계를 더 포함하되,
    상기 제1 코드워드, 상기 2 코드워드 및 상기 제3 코드워드는 상기 프리 디코딩 프로세스에서 디코딩 동작에 실패한 코드워드들인, 에러 정정 회로의 동작 방법.
  13. 복수의 데이터 블록들을 포함하는 데이터 청크를 리드하고 출력하도록 구성되되, 상기 데이터 블록들 각각은 제1 방향의 대응하는 코드워드 및 제2 방향의 대응하는 코드워드에 포함되는, 비휘발성 메모리 장치; 및
    상기 데이터 청크에 대해 에러 정정 동작을 수행하도록 구성된 에러 정정부를 포함하되,
    상기 에러 정정부는,
    상기 제1 방향의 제1 코드워드에 대한 제1 디코딩 동작의 결과에 따라, 상기 제2 방향의 제2 코드워드 또는 상기 제1 방향의 제3 코드워드를 우선적으로 선택하도록 구성된 제어부; 및
    상기 제어부에 의해 선택되는 코드워드에 대해 디코딩 동작을 수행하도록 구성된 디코더를 포함하는 데이터 저장 장치.
  14. 제13항에 있어서,
    상기 제어부는, 상기 제1 디코딩 동작이 성공할 때, 상기 제1 코드워드에서 하나 이상의 정정된 데이터 블록들을 식별하고, 상기 정정된 데이터 블록들을 포함하는 상기 제2 방향의 코드워드들 각각을 상기 제2 코드워드로서 우선적으로 선택하는 데이터 저장 장치.
  15. 제14항에 있어서,
    상기 제어부는, 상기 제2 방향의 코드워드들을 선택한 뒤에, 상기 제3 코드워드를 우선적으로 선택하는 데이터 저장 장치.
  16. 제14항에 있어서,
    상기 제어부는, 상기 정정된 데이터 블록들 중 소정 기준을 초과하는 정정률을 가진 하나 이상의 데이터 블록들을 식별하고, 식별된 데이터 블록들을 포함하는 상기 제2 방향의 코드워드들 각각을 상기 제2 코드워드로서 우선적으로 선택하는 데이터 저장 장치.
  17. 제13항에 있어서,
    상기 제어부는, 상기 제1 디코딩 동작이 실패할 때, 상기 제3 코드워드를 우선적으로 선택하는 데이터 저장 장치.
  18. 제13항에 있어서,
    상기 디코더는, 제1 디코딩 동작을 수행하기 전에 상기 데이터 청크에 대한 프리 디코딩 프로세스를 진행하고,
    상기 제1 코드워드, 상기 2 코드워드 및 상기 제3 코드워드는 상기 프리 디코딩 프로세스에서 디코딩 동작에 실패한 코드워드들인, 데이터 저장 장치.
KR1020170105025A 2017-08-18 2017-08-18 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치 KR20190019728A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170105025A KR20190019728A (ko) 2017-08-18 2017-08-18 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
US15/908,994 US20190056991A1 (en) 2017-08-18 2018-03-01 Error correction circuit, operating method thereof and data storage device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170105025A KR20190019728A (ko) 2017-08-18 2017-08-18 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치

Publications (1)

Publication Number Publication Date
KR20190019728A true KR20190019728A (ko) 2019-02-27

Family

ID=65360548

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170105025A KR20190019728A (ko) 2017-08-18 2017-08-18 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치

Country Status (2)

Country Link
US (1) US20190056991A1 (ko)
KR (1) KR20190019728A (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11463112B1 (en) * 2021-04-06 2022-10-04 Micron Technology, Inc. Dynamic bit flipping order for iterative error correction
US11923868B1 (en) 2022-08-18 2024-03-05 Micron Technology, Inc. Stall mitigation in iterative decoders
US11901911B1 (en) 2022-08-18 2024-02-13 Micron Technology, Inc. Stall detection and mitigation in iterative decoders
US11923867B1 (en) 2022-08-18 2024-03-05 Micron Technology, Inc. Iterative decoder with a dynamic maximum stop condition

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146553B2 (en) * 2001-11-21 2006-12-05 Infinera Corporation Error correction improvement for concatenated codes
US8607124B2 (en) * 2009-12-24 2013-12-10 Densbits Technologies Ltd. System and method for setting a flash memory cell read threshold
KR102673873B1 (ko) * 2016-06-30 2024-06-10 삼성전자주식회사 데이터 복구 방법 및 이를 적용하는 메모리 시스템 및 레이드 스토리지 시스템
US10547332B2 (en) * 2017-02-01 2020-01-28 Tsofun Algorithm Ltd. Device, system and method of implementing product error correction codes for fast encoding and decoding
KR102369313B1 (ko) * 2017-08-18 2022-03-03 에스케이하이닉스 주식회사 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
KR20190030923A (ko) * 2017-09-15 2019-03-25 에스케이하이닉스 주식회사 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치

Also Published As

Publication number Publication date
US20190056991A1 (en) 2019-02-21

Similar Documents

Publication Publication Date Title
US9898363B2 (en) Data storage device and operating method thereof
US9817749B2 (en) Apparatus and method of offloading processing from a data storage device to a host device
US10102066B2 (en) Data processing device and operating method thereof
US9830084B2 (en) Writing logical groups of data to physical locations in memory using headers
US10013179B2 (en) Reading logical groups of data from physical locations in memory using headers
US11184033B2 (en) Data storage device
KR20190019728A (ko) 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
US9304851B2 (en) Decoding with log likelihood ratios stored in a controller
US11664826B2 (en) Error correction code engine performing ECC decoding, operation method thereof, and storage device including ECC engine
KR20170101367A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20210121654A (ko) 메모리 시스템의 데이터 에러를 복구하는 장치 및 방법
KR102333140B1 (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102369313B1 (ko) 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
CN109508253B (zh) 错误校正电路、其操作方法以及包括其的数据存储装置
KR20190030923A (ko) 에러 정정 회로, 그것의 동작 방법 및 그것을 포함하는 데이터 저장 장치
US11115063B2 (en) Flash memory controller, storage device and reading method
US20170018315A1 (en) Test system and test method
US20170017417A1 (en) Data storage device and operating method thereof
US20240194282A1 (en) Flash memory module testing method and associated memory controller and memory device