KR20190019732A - H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로 - Google Patents

H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로 Download PDF

Info

Publication number
KR20190019732A
KR20190019732A KR1020170105035A KR20170105035A KR20190019732A KR 20190019732 A KR20190019732 A KR 20190019732A KR 1020170105035 A KR1020170105035 A KR 1020170105035A KR 20170105035 A KR20170105035 A KR 20170105035A KR 20190019732 A KR20190019732 A KR 20190019732A
Authority
KR
South Korea
Prior art keywords
matrix
circulation
column
improved
matrices
Prior art date
Application number
KR1020170105035A
Other languages
English (en)
Other versions
KR102395537B1 (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 에스케이하이닉스 주식회사
Priority to KR1020170105035A priority Critical patent/KR102395537B1/ko
Priority to US15/871,548 priority patent/US11163634B2/en
Publication of KR20190019732A publication Critical patent/KR20190019732A/ko
Application granted granted Critical
Publication of KR102395537B1 publication Critical patent/KR102395537B1/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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/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/118Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
    • H03M13/1182Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the structure of the parity-check matrix is obtained by reordering of a random parity-check matrix
    • 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations

Abstract

QC-LDPC 코드의 H 행렬 생성 회로는 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하도록 구성된 변환 값 계산부; 및 상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하도록 구성된 시프트부를 포함한다.

Description

H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 H 행렬을 사용하는 에러 정정 회로{H MATRIX GENERATING CIRCUIT, OPERATING METHOD THEREOF AND ERROR CORRECTION CIRCUIT USING H MATRIX GENERATED BY THE SAME}
본 발명은 H 행렬 생성 회로에 관한 것으로, 더욱 상세하게는 QC-LDPC(Quasi Cyclic Low Density Parity Check) 코드의 H 행렬을 생성하는 회로에 관한 것이다.
데이터 저장 장치는 외부 장치의 라이트 요청에 응답하여, 외부 장치로부터 제공된 데이터를 저장하도록 구성될 수 있다. 또한, 데이터 저장 장치는 외부 장치의 리드 요청에 응답하여, 저장된 데이터를 외부 장치로 제공하도록 구성될 수 있다. 외부 장치는 데이터를 처리할 수 있는 전자 장치로서, 컴퓨터, 디지털 카메라 또는 휴대폰 등을 포함할 수 있다. 데이터 저장 장치는 외부 장치에 내장되어 동작하거나, 분리 가능한 형태로 제작되어 외부 장치에 연결됨으로써 동작할 수 있다.
데이터 저장 장치는 인코더 및 디코더를 포함할 수 있다. 인코더는 외부 장치로부터 전송된 데이터에 대해 인코딩 동작을 수행하고, 데이터 저장 장치는 인코딩 동작을 통해 패리티 데이터가 부가된 데이터를 저장할 수 있다. 또한, 외부 장치가 저장된 데이터를 요구할 때, 디코더는 저장된 데이터에 대해 디코딩 동작을 수행하고, 데이터 저장 장치는 디코딩 동작을 통해 에러 정정된 데이터를 외부 장치로 전송할 수 있다.
본 발명의 실시 예는 작은 저장 용량을 요구하는 QC-LDPC 코드의 개선된 H 행렬을 생성하는 H 행렬 생성 회로, 그것의 동작 방법 및 개선된 H 행렬을 사용하는 에러 정정 회로를 제공하는 데 있다
본 발명의 실시 예에 따른 QC-LDPC 코드의 H 행렬 생성 회로는 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하도록 구성된 변환 값 계산부; 및 상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하도록 구성된 시프트부를 포함할 수 있다.
본 발명의 실시 예에 따른 QC-LDPC 코드의 H 행렬 생성 회로의 동작 방법은 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하는 단계; 및 상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하는 단계를 포함할 수 있다.
본 발명의 실시 예에 따른 에러 정정 회로는 QC-LDPC 코드의 H 행렬 정보를 저장하도록 구성된 H 행렬 저장부; 및 상기 H 행렬 정보에 근거하여 코드워드에 대한 디코딩 동작을 수행하도록 구성된 디코더를 포함하되, 상기 QC-LDPC 코드의 H 행렬은 복수의 순환 행렬들을 포함하되, 열 구간들 각각의 첫번째 순환 행렬을 항등행렬로서 포함할 수 있다.
본 발명의 실시 예에 따른 QC-LDPC 코드의 H 행렬 생성 회로 및 그것의 동작 방법은 작은 저장 용량을 요구하는 개선된 H 행렬을 생성할 수 있다.
본 발명의 실시 예에 따른 에러 정정 회로는 작은 용량으로 QC-LDPC 코드의 H 행렬을 저장할 수 있다.
도1은 본 발명의 실시 예에 따른 개선된 H 행렬을 생성하는 생성 회로를 도시한 블록도,
도2는 QC-LDPC 코드의 H 행렬의 구성을 설명하기 위한 도면,
도3은 H 행렬에 포함되는 순환 행렬의 구성을 설명하기 위한 도면,
도4는 H 행렬을 H 행렬 정보로 변환하는 방법을 설명하기 위한 도면,
도5는 도1의 H 행렬 생성 회로의 동작 방법을 설명하기 위한 도면,
도6은 도1의 H 행렬 생성 회로의 동작 방법을 도시한 순서도,
도7은 본 발명의 실시 예에 따른 에러 정정 회로를 도시한 블록도,
도8은 본 발명의 실시 예에 따른 데이터 저장 장치를 도시한 블록도이다.
이하, 도면들을 참조하여 본 발명의 실시 예에 대해 상세히 설명하기로 한다.
도1은 본 발명의 실시 예에 따른 H 행렬 생성 회로(10)를 도시한 블록도이다.
도1을 참조하면, H 행렬 생성 회로(10)는 원본 H 행렬을 변환하여 개선된 H 행렬을 생성할 수 있다. 개선된 H 행렬은 QC-LDPC 코드에 근거한 인코딩 동작 및 디코딩 동작에서 사용될 수 있다. 인코딩 동작에서 데이터는 개선된 H 행렬에 근거하여 인코딩됨으로써 코드워드로 생성되고 디코딩 동작에서 코드워드는 개선된 H 행렬에 근거하여 패리티 체크 검사됨으로써 에러를 포함하는지 여부를 체크받을 수 있다.
H 행렬 생성 회로(10)는 변환 값 계산부(11) 및 시프트부(12)를 포함할 수 있다.
변환 값 계산부(11)는 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산할 수 있다. 변환 값 계산부(11)는 소정 열 구간의 첫번째 순환 행렬을 순환 시프트하여 항등행렬로 변환하기 위한 시프트 값을, 해당 열 구간에 대응하는 변환 값으로 계산할 수 있다.
시프트부(12)는 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 해당 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성할 수 있다. 시프트부(12)는 개선된 H 행렬에서 열 구간들 각각의 첫번째 순환 행렬이 항등행렬이도록, 개선된 H 행렬을 생성할 수 있다.
개선된 H 행렬은 그 구조에 기인하여, 열 구간들 각각의 첫번째 순환 행렬의 위치, 및 나머지 순환 행렬들 각각의 위치 및 시프트 값을 포함하는 H 행렬 정보로서 압축되고 저장될 수 있다. 다른 말로 하면, 개선된 H 행렬은 그 전체의 실제 값들로 저장되기 보다, 실제 값들을 유도할 수 있는 정보 값들로 압축되고 저장될 수 있다. 아래에서 상세하게 설명될 바와 같이, H 행렬 정보는 H 행렬과 그 본질이 동일하지만 더 작은 크기를 가질 수 있다. 특히, 본 발명에 따라 생성된 H 행렬 정보는 개선된 H 행렬에서 열 구간들 각각의 첫번째 순환 행렬의 시프트 값을 포함하지 않으므로, 보다 적은 메모리 용량만을 요구할 수 있다.
실시 예에 따라, H 행렬 생성 회로(10)는 개선된 H 행렬을, 열 구간들 각각의 첫번째 순환 행렬의 위치, 및 나머지 순환 행렬들 각각의 위치 및 시프트 값을 포함하는 H 행렬 정보로 압축하여 출력할 수 있다.
도2는 QC-LDPC 코드의 H 행렬(HM)의 구성을 설명하기 위한 도면이다. 도1의 원본 H 행렬 및 개선된 H 행렬은 도2의 H 행렬(HM)과 유사하게 구성될 수 있다.
도2를 참조하면, H 행렬(HM)은 순환 행렬들(C11~C34)로 구성될 수 있다. H 행렬(HM)에 포함된 순환 행렬들(C11~C34)의 개수는 예시적인 것이다. 순환 행렬들(C11~C34)은 동일한 크기의 정방행렬들일 수 있다. 순환 행렬들(C11~C34) 각각은 n개의 행들과 n개의 열들로 구성될 수 있다. H 행렬(HM)이 M개의 행들과 N개의 행들로 구성될 때, M 및 N 각각은 n의 배수일 수 있다. 따라서, H 행렬(HM)은 N을 n으로 나눈 몫, 예를 들어, 4개의 열 구간들(CRG1~CRG4)로 분할될 수 있다. 하나의 열 구간에는 M을 n으로 나눈 몫, 예를 들어, 3개의 순환 행렬들이 위치할 수 있다.
순환 행렬들(C11~C34)의 위치들 중 일부에는 영행렬이 배치될 수 있다.
순환 행렬들(C11~C34)은 후술될 바와 같이 항등행렬이 순환 시프트됨으로써 생성될 수 있다.
도3은 H 행렬(HM)에 포함되는 순환 행렬의 구성을 설명하기 위한 도면이다. 도3에 도시된 순환 행렬들(C(0), C(1), C(2)) 각각의 크기, 즉, 3X3은 예시일 뿐이고, 순환 행렬은 설계에 따라 다양한 크기를 가질 수 있지만, 이하에서 순환 행렬은 3X3의 크기를 가지는 것으로 가정할 것이다.
순환 행렬은 항등행렬(IM)을 순환 시프트함으로써 생성될 수 있다. 순환 행렬(C(1))은 항등행렬(IM)을 오른쪽으로 "1"만큼 순환 시프트함으로써 생성될 수 있다. 순환 행렬(C(2))은 항등행렬(IM)을 오른쪽으로 "2"만큼 순환 시프트함으로써 생성될 수 있다.
이하에서, C(x)는 항등행렬(IM)을 오른쪽으로 "x"만큼 순환 시프트함으로써 생성된 순환 행렬로 정의되고, "x"는 C(x)의 시프트 값으로 정의될 것이다. 따라서, 항등행렬(IM)은 C(0)으로 표현될 수 있다.
도2의 H 행렬(HM)에 포함된 순환 행렬들(C11~C34)은 서로 다른 시프트 값들을 각각 가질 수 있다.
도4는 H 행렬(HM)을 H 행렬 정보(HM_IV)로 변환하는 방법을 설명하기 위한 도면이다.
H 행렬(HM)은, 순환 행렬들 각각의 위치 및 시프트 값을 포함하는 H 행렬 정보(HM_IV)로 변환될 수 있다. 구체적으로, 순환 행렬(41)의 위치는 해당 순환 행렬에서 첫번째 행의 "1"의 H 행렬(HM)에서의 위치, 즉, (i, j)일 수 있다. 그리고, 순환 행렬(41)의 대응하는 시프트 값 "1"이 추가되어 순환 행렬(41)은 (i, j, 1)로 변환될 수 있다. 즉, 순환 행렬(41)의 시프트 값 "1"만 알면, 순환 행렬(41)의 나머지 행의 "1"의 위치들은 쉽게 유도할 수 있기 때문에, 시프트 값 "1"이 H 행렬 정보(HM_IV)에 포함될 수 있다.
마찬가지로, 순환 행렬(42)은, 첫번째 행의 "1"의 H 행렬(HM)에서의 위치(p, q)에 시프트 값 "0"이 부가되어 (p, q, 0)로 변환될 수 있다.
따라서, H 행렬 정보(HM_IV)는 H 행렬(HM)과 본질적으로 동일할 수 있다. H 행렬(HM)은 저장되는 크기를 최소화하기 위해, 복원하는데 최소한으로 필요한 값들을 포함하는 H 행렬 정보(HM_IV)로 변환되고, H 행렬(HM) 대신 H 행렬 정보(HM_IV)가 에러 정정 회로에 저장되고 사용될 수 있다.
본 발명에 따르면 H 행렬 정보(HM_IV)의 크기는 더 감소될 수 있다. 본 발명의 실시 예에 따라 생성된 개선된 H 행렬은 보다 심플한 규칙을 가지도록 생성되어, 보다 작은 크기의 H 행렬 정보로 변환될 수 있다.
도5는 도1의 H 행렬 생성 회로(10)의 동작 방법을 설명하기 위한 도면이다. 도5에서 원본 H 행렬(OHM) 및 개선된 H 행렬(AHM)을 구성하는 사각형들은 순환 행렬들 또는 영행렬들을 의미한다. 순환 행렬들은 앞서 설명한 C(x) 형태로 도시되고, 영행렬들은 숫자 "0"으로 도시된다.
도5를 참조하면, H 행렬 생성 회로(10)는 원본 H 행렬(OHM)을 입력받을 수 있다. 원본 H 행렬(OHM)은 행 방향 및 열 방향으로 배치된 순환 행렬들 또는 영행렬들을 포함할 수 있다.
H 행렬 생성 회로(10)는 동일한 열 구간에 위치하는 순환 행렬들을 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬(AHM)을 생성할 수 있다. 어떤 열 구간에 대응하는 변환 값은 해당 열 구간의 첫번째 순환 행렬을 순환 시프트하여 항등행렬로 변환하기 위한 시프트 값일 수 있다. 도5에서 열 구간들(CRG1~CRG4) 각각의 첫번째 순환 행렬은 굵은 라인으로 표시되어 있다.
예를 들어, 열 구간(CRG1)의 첫번째 순환 행렬(C(2))은 항등행렬이 되려면 "-2"만큼 순환 시프트되어야 하므로, 변환 값 계산부(11)는 열 구간(CRG1)에 대응하는 변환 값을 "-2"로 계산할 수 있다. 따라서, 시프트부(12)는 열 구간(CRG1)에 위치하는 순환 행렬들을 "-2"만큼 모두 순환 시프트할 수 있다.
열 구간(CRG2)의 첫번째 순환 행렬(C(0))은 항등행렬이므로, 변환 값 계산부(11)는 열 구간(CRG2)에 대응하는 변환 값을 "0"으로 계산할 수 있다. 따라서, 시프트부(12)는 열 구간(CRG2)에 위치하는 순환 행렬들을 순환 시프트하지 않을 수 있다.
열 구간(CRG3)의 첫번째 순환 행렬(C(1))은 항등행렬이 되려면 "-1"만큼 순환 시프트되어야 하므로, 변환 값 계산부(11)는 열 구간(CRG3)에 대응하는 변환 값을 "-1"로 계산할 수 있다. 따라서, 시프트부(12)는 열 구간(CRG3)에 위치하는 순환 행렬들을 "-1"만큼 모두 순환 시프트할 수 있다.
열 구간(CRG4)의 첫번째 순환 행렬(C(0))은 항등행렬이므로, 변환 값 계산부(11)는 열 구간(CRG4)에 대응하는 변환 값을 "0"으로 계산할 수 있다. 따라서, 시프트부(12)는 열 구간(CRG4)에 위치하는 순환 행렬들을 순환 시프트하지 않을 수 있다.
따라서, 개선된 H 행렬(AHM)에서 열 구간들(CRG1~CRG4) 각각의 첫번째 순환 행렬은 모두 항등행렬(C(0))이 될 수 있다. 개선된 H 행렬(AHM)의 열 구간들(CRG1~CRG4) 각각의 첫번째 순환 행렬이 항등행렬(C(0))임을 알고 있다면 해당 첫번째 순환 행렬의 시프트 값은 필요가 없다.
따라서, 개선된 H 행렬(AHM) 대신 저장되는 H 행렬 정보는, 열 구간들(CRG1~CRG4) 각각의 첫번째 순환 행렬의 위치를 포함하되, 열 구간들(CRG1~CRG4) 각각의 첫번째 순환 행렬의 시프트 값, 즉, "0"은 포함하지 않을 수 있다. 그리고, H 행렬 정보는, 개선된 H 행렬(AHM)의 나머지 순환 행렬들 각각의 위치 및 시프트 값을 도4를 참조한 바와 동일하게 포함할 수 있다.
정리하면, 개선된 H 행렬(AHM)은, 원본 H 행렬(OHM)의 열 구간들(CRG1~CRG4) 각각이 순환 시프트됨으로써 생성되었으므로 원본 H 행렬(OHM)의 특성을 동일하게 가질 수 있다. 그러나, 개선된 H 행렬(AHM)은 원본 H 행렬(OHM)보다 작은 용량의 H 행렬 정보로서 압축되고 저장될 수 있다.
도6은 도1의 H 행렬 생성 회로(10)의 동작 방법을 도시한 순서도이다.
단계(S110)에서, 변환 값 계산부(11)는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산할 수 있다. 변환 값 계산부(11)는 소정 열 구간의 첫번째 순환 행렬을 순환 시프트하여 항등행렬로 변환하기 위한 시프트 값을 해당 열 구간에 대응하는 변환 값으로 계산할 수 있다.
단계(S120)에서, 시프트부(12)는 동일한 열 구간에 위치하는 순환 행렬들을 해당 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써, 개선된 H 행렬을 생성할 수 있다. 결국, 시프트부(12)는 개선된 H 행렬에서 열 구간들 각각의 첫번째 순환 행렬이 항등행렬이도록, 개선된 H 행렬을 생성할 수 있다.
단계(S130)에서, H 행렬 생성 회로(10)는 개선된 H 행렬을, 개선된 H 행렬의 열 구간들 각각의 첫번째 순환 행렬의 위치, 및 나머지 순환 행렬들 각각의 위치 및 시프트 값을 포함하는 H 행렬 정보로 압축하고 출력할 수 있다.
도7은 본 발명의 실시 예에 따른 에러 정정 회로(20)를 도시한 블록도이다.
에러 정정 회로(20)는 H 행렬 저장부(21) 및 디코더(22)를 포함할 수 있다.
H 행렬 저장부(21)는 QC-LDPC 코드의 H 행렬 정보(AHM_IV)를 저장할 수 있다. 이때, QC-LDPC 코드의 H 행렬은 도1 내지 도6을 참조하여 설명된 방법에 따라 생성된 개선된 H 행렬일 수 있다. 상술한 바와 같이, 개선된 H 행렬은, 열 구간들 각각의 첫번째 순환 행렬을 항등행렬로서 포함할 수 있다. 따라서, H 행렬 정보(AHM_IV)는 개선된 H 행렬의 열 구간들 각각의 첫번째 순환 행렬의 위치, 및 나머지 순환 행렬들 각각의 위치 및 시프트 값을 포함할 수 있다. H 행렬 정보(AHM_IV)는 개선된 H 행렬의 열 구간들 각각의 첫번째 순환 행렬의 시프트 값을 포함하지 않을 수 있다.
디코더(22)는 H 행렬 저장부(21)에 저장된 H 행렬 정보(AHM_IV)에 근거하여 코드워드(CW)에 대한 디코딩 동작을 수행하고 에러 정정된 코드워드(CCW)를 출력할 수 있다. 디코더(22)는 H 행렬 정보(AHM_IV)에 근거하여 개선된 H 행렬의 실제 값들을 유도 내지 복원하여 디코딩 동작에 사용할 수 있다.
도8은 본 발명의 실시 예에 따른 데이터 저장 장치(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)는 비휘발성 메모리 장치(120)로부터 리드된 코드워드(CW)에 대해 QC-LDPC 코드의 H 행렬에 근거하여 디코딩 동작을 수행할 수 있다. 에러 정정부(111)는 도7에 도시된 에러 정정 회로(20)와 실질적으로 동일하게 구성되고 동작할 수 있다. 에러 정정부(111)는 비휘발성 메모리 장치(120)에 저장된 H 행렬 정보(AHM_IV)를, 예를 들어, 동작 개시 시에 로드하고, 내부의 H 행렬 저장부(미도시)에 저장하고 디코딩 동작에 사용할 수 있다.
비휘발성 메모리 장치(120)는 컨트롤러(110)의 제어에 따라, 컨트롤러(110)로부터 전송된 데이터를 저장하고, 저장된 데이터를 리드하여 컨트롤러(110)로 전송할 수 있다. 비휘발성 메모리 장치(120)는 H 행렬 정보(AHM_IV) 및 코드워드(CW)를 저장할 수 있다.
비휘발성 메모리 장치(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) 등을 포함할 수 있다.
한편, 도8은 데이터 저장 장치(100)가 1개의 비휘발성 메모리 장치(120)를 포함하는 것으로 도시하나, 데이터 저장 장치(100)에 포함되는 비휘발성 메모리 장치들의 개수는 이에 제한되지 않는다.
본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있으므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: H 행렬 생성 회로
11: 변환 값 계산부
12: 시프트부

Claims (14)

  1. 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하도록 구성된 변환 값 계산부; 및
    상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하도록 구성된 시프트부를 포함하는 QC-LDPC(Quasi Cyclic Low Density Parity Check) 코드의 H 행렬 생성 회로.
  2. 제1항에 있어서,
    상기 변환 값 계산부는, 상기 열 구간의 첫번째 순환 행렬을 순환 시프트하여 항등행렬로 변환하기 위한 시프트 값을 상기 열 구간에 대응하는 변환 값으로 계산하는 H 행렬 생성 회로.
  3. 제1항에 있어서,
    상기 시프트부는, 상기 개선된 H 행렬에서 열 구간들 각각의 첫번째 순환 행렬이 항등행렬이도록 상기 개선된 H 행렬을 생성하는 H 행렬 생성 회로.
  4. 제1항에 있어서,
    상기 개선된 H 행렬은, 상기 개선된 H 행렬의 열 구간들 각각의 첫번째 순환 행렬의 위치, 및 상기 개선된 H 행렬의 나머지 순환 행렬들 각각의 위치 및 시프트 값을 포함하는 H 행렬 정보로 압축되는 H 행렬 생성 회로.
  5. 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하는 단계; 및
    상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하는 단계를 포함하는 QC-LDPC(Quasi Cyclic Low Density Parity Check) 코드의 H 행렬 생성 회로의 동작 방법.
  6. 제5항에 있어서,
    상기 변환 값들을 계산하는 단계는,
    상기 열 구간의 첫번째 순환 행렬을 순환 시프트하여 항등행렬로 변환하기 위한 시프트 값을 상기 열 구간에 대응하는 변환 값으로 계산하는 단계를 포함하는 H 행렬 생성 회로의 동작 방법.
  7. 제5항에 있어서,
    상기 개선된 H 행렬을 생성하는 단계는,
    상기 개선된 H 행렬에서 열 구간들 각각의 첫번째 순환 행렬이 항등행렬이도록 상기 개선된 H 행렬을 생성하는 단계를 포함하는 H 행렬 생성 회로의 동작 방법.
  8. 제5항에 있어서,
    상기 개선된 H 행렬을, 상기 개선된 H 행렬의 열 구간들 각각의 첫번째 순환 행렬의 위치, 및 상기 개선된 H 행렬의 나머지 순환 행렬들 각각의 위치 및 시프트 값을 포함하는 H 행렬 정보로 압축하는 단계를 더 포함하는 H 행렬 생성 회로의 동작 방법.
  9. QC-LDPC(Quasi Cyclic Low Density Parity Check) 코드의 H 행렬 정보를 저장하도록 구성된 H 행렬 저장부; 및
    상기 H 행렬 정보에 근거하여 코드워드에 대한 디코딩 동작을 수행하도록 구성된 디코더를 포함하되,
    상기 LDPC 코드의 H 행렬은 복수의 순환 행렬들을 포함하되, 열 구간들 각각의 첫번째 순환 행렬을 항등행렬로서 포함하는 에러 정정 회로.
  10. 제9항에 있어서,
    상기 H 행렬 정보는, 상기 열 구간들 각각의 상기 첫번째 순환 행렬의 위치, 및 상기 H 행렬의 나머지 순환 행렬들 각각의 위치 및 시프트 값을 포함하는 에러 정정 회로.
  11. 제10항에 있어서,
    상기 H 행렬 정보는, 상기 첫번째 순환 행렬의 시프트 값을 포함하지 않는 에러 정정 회로.
  12. 제10항에 있어서,
    상기 디코더는, 상기 첫번째 순환 행렬의 상기 위치, 및 상기 나머지 순환 행렬들 각각의 상기 위치 및 상기 시프트 값에 근거하여 상기 H 행렬의 값들을 유도하는 에러 정정 회로.
  13. 제9항에 있어서,
    상기 H 행렬은, 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 생성되는 에러 정정 회로.
  14. 제13항에 있어서,
    상기 열 구간에 대응하는 상기 변환 값은, 상기 열 구간의 첫번째 순환 행렬을 순환 시프트하여 상기 항등행렬로 변환하기 위한 시프트 값인 에러 정정 회로.
KR1020170105035A 2017-08-18 2017-08-18 H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로 KR102395537B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020170105035A KR102395537B1 (ko) 2017-08-18 2017-08-18 H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로
US15/871,548 US11163634B2 (en) 2017-08-18 2018-01-15 H matrix generating circuit, operating method thereof and error correction circuit using H matrix generated by the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170105035A KR102395537B1 (ko) 2017-08-18 2017-08-18 H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로

Publications (2)

Publication Number Publication Date
KR20190019732A true KR20190019732A (ko) 2019-02-27
KR102395537B1 KR102395537B1 (ko) 2022-05-10

Family

ID=65361498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170105035A KR102395537B1 (ko) 2017-08-18 2017-08-18 H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로

Country Status (2)

Country Link
US (1) US11163634B2 (ko)
KR (1) KR102395537B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473824B1 (en) * 2008-09-08 2013-06-25 Marvell International Ltd. Quasi-cyclic low-density parity-check (QC-LDPC) encoder
US20150200747A1 (en) * 2012-07-27 2015-07-16 Panasonic Corporation Transmission method, reception method, transmitter, and receiver

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370264B2 (en) * 2003-12-19 2008-05-06 Stmicroelectronics, Inc. H-matrix for error correcting circuitry
KR101455978B1 (ko) * 2007-03-27 2014-11-04 엘지전자 주식회사 Ldpc 부호를 이용한 부호화 방법
KR100949519B1 (ko) 2007-12-18 2010-03-24 한국전자통신연구원 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법
JP5320964B2 (ja) * 2008-10-08 2013-10-23 ソニー株式会社 サイクリックシフト装置、サイクリックシフト方法、ldpc復号装置、テレビジョン受像機、及び、受信システム
US8464142B2 (en) * 2010-04-23 2013-06-11 Lsi Corporation Error-correction decoder employing extrinsic message averaging
US8499218B2 (en) * 2011-09-30 2013-07-30 Mitsubishi Electric Research Laboratories, Inc. System and method for determining quasi-cyclic low-density parity-check codes having high girth
EP2879318A1 (en) * 2013-11-29 2015-06-03 Panasonic Corporation Efficient component interleaving for rotated constellations with time-frequency slicing
US10804933B2 (en) * 2016-09-30 2020-10-13 Lg Electronics Inc. QC LDPC code rate matching method and device therefor
WO2018079987A1 (ko) * 2016-10-24 2018-05-03 엘지전자 주식회사 Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치
WO2018128435A2 (ko) * 2017-01-06 2018-07-12 엘지전자 주식회사 다중 ldpc 코드에서 ldpc 베이스 코드를 선택하는 방법 및 이를 위한 장치
CN109150196A (zh) * 2017-06-27 2019-01-04 华为技术有限公司 信息处理的方法、装置和通信设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8473824B1 (en) * 2008-09-08 2013-06-25 Marvell International Ltd. Quasi-cyclic low-density parity-check (QC-LDPC) encoder
US20150200747A1 (en) * 2012-07-27 2015-07-16 Panasonic Corporation Transmission method, reception method, transmitter, and receiver

Also Published As

Publication number Publication date
US20190056988A1 (en) 2019-02-21
KR102395537B1 (ko) 2022-05-10
US11163634B2 (en) 2021-11-02

Similar Documents

Publication Publication Date Title
US9673840B2 (en) Turbo product codes for NAND flash
KR101854954B1 (ko) 치환 소행렬의 합을 사용하는 체크섬
US8700974B2 (en) Memory system controller having seed controller using multiple parameters
US8839069B2 (en) Encoding and decoding techniques using low-density parity check codes
US20160372161A1 (en) Data storage device and operating method thereof
US10707902B2 (en) Permutation network designing method, and permutation circuit of QC-LDPC decoder
TW201730765A (zh) 錯誤校正電路和錯誤校正方法
JP6847796B2 (ja) メモリシステム
US20170214415A1 (en) Memory system using integrated parallel interleaved concatenation
US9960788B2 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
JP6975047B2 (ja) ライトワンスメモリコードのエラー訂正コード管理
US9876511B2 (en) Memory system and memory control method
US10693498B2 (en) Parity check matrix generator, operating method thereof and error correction circuit using parity check matrix generated by the same
CN110391816B (zh) 错误校正电路及包括错误校正电路的存储器系统
KR102395537B1 (ko) H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로
US11003528B2 (en) Memory system including an error correction function
US11190220B2 (en) Apparatus and method for managing parity check matrix
US10951238B1 (en) Memory system and method for controlling non-volatile memory
JP5913735B2 (ja) プログラム状態とデータパターンとの間のマッピング
US9906241B2 (en) Apparatus and method for turbo product codes
RU2743784C1 (ru) Способ кодирования данных на основе LDPC кода

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