KR102395537B1 - H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로 - Google Patents
H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로 Download PDFInfo
- Publication number
- KR102395537B1 KR102395537B1 KR1020170105035A KR20170105035A KR102395537B1 KR 102395537 B1 KR102395537 B1 KR 102395537B1 KR 1020170105035 A KR1020170105035 A KR 1020170105035A KR 20170105035 A KR20170105035 A KR 20170105035A KR 102395537 B1 KR102395537 B1 KR 102395537B1
- Authority
- KR
- South Korea
- Prior art keywords
- matrix
- improved
- cyclic
- matrices
- identity
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error 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/0793—Remedial or corrective actions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1148—Structural properties of the code parity-check or generator matrix
- H03M13/118—Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure
- H03M13/1182—Parity 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Error Detection And Correction (AREA)
Abstract
QC-LDPC 코드의 H 행렬 생성 회로는 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하도록 구성된 변환 값 계산부; 및 상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하도록 구성된 시프트부를 포함한다.
Description
본 발명은 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은 본 발명의 실시 예에 따른 데이터 저장 장치를 도시한 블록도이다.
도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: 시프트부
11: 변환 값 계산부
12: 시프트부
Claims (14)
- 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하도록 구성된 변환 값 계산부; 및
상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하고, 상기 개선된 H 행렬의 H 행렬 정보를 출력하도록 구성된 시프트부를 포함하되,
상기 원본 H 행렬이 첫번째 순환 행렬이 항등행렬이 아닌 열 구간을 포함할 때, 상기 개선된 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 행렬 생성 회로. - 복수의 순환 행렬들을 포함하는 원본 H 행렬의 열 구간들에 각각 대응하는 변환 값들을 계산하는 단계;
상기 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 개선된 H 행렬을 생성하는 단계; 및
상기 개선된 H 행렬의 H 행렬 정보를 메모리에 저장하는 단계를 포함하되,
상기 원본 H 행렬이 첫번째 순환 행렬이 항등행렬이 아닌 열 구간을 포함할 때, 상기 개선된 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 행렬 생성 회로의 동작 방법. - QC-LDPC(Quasi Cyclic Low Density Parity Check) 코드의 H 행렬 정보를 저장하도록 구성된 H 행렬 저장부; 및
상기 H 행렬 정보에 근거하여 코드워드에 대한 디코딩 동작을 수행하도록 구성된 디코더를 포함하되,
상기 QC-LDPC 코드의 H 행렬은 복수의 순환 행렬들을 포함하되, 열 구간들 각각의 첫번째 순환 행렬을 항등행렬로서 포함하고,
상기 H 행렬 정보는, 상기 열 구간들 각각의 상기 항등행렬을 제외한 다른 순환 행렬들의 시프트 값들을 포함하지만 상기 항등행렬의 시프트 값은 포함하지 않는 에러 정정 회로. - ◈청구항 10은(는) 설정등록료 납부시 포기되었습니다.◈제9항에 있어서,
상기 H 행렬 정보는, 상기 H 행렬의 순환 행렬들의 위치들을 더 포함하는 에러 정정 회로. - 삭제
- ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈제10항에 있어서,
상기 디코더는, 상기 첫번째 순환 행렬의 위치, 및 나머지 순환 행렬들 각각의 위치 및 시프트 값에 근거하여 상기 H 행렬의 값들을 유도하는 에러 정정 회로. - ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈제9항에 있어서,
상기 H 행렬은, 원본 H 행렬에서 동일한 열 구간에 위치하는 순환 행렬들을 상기 열 구간에 대응하는 변환 값만큼 순환 시프트함으로써 생성되는 에러 정정 회로. - ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈제13항에 있어서,
상기 열 구간에 대응하는 상기 변환 값은, 상기 열 구간의 첫번째 순환 행렬을 순환 시프트하여 상기 항등행렬로 변환하기 위한 시프트 값인 에러 정정 회로.
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 KR20190019732A (ko) | 2019-02-27 |
KR102395537B1 true 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)
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)
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 |
CN109792253A (zh) * | 2016-09-30 | 2019-05-21 | Lg电子株式会社 | Qc ldpc码速率匹配方法和用于该方法的装置 |
WO2018079987A1 (ko) * | 2016-10-24 | 2018-05-03 | 엘지전자 주식회사 | Ldpc 코드의 운송블록 분할 방법 및 이를 위한 장치 |
CN109891755A (zh) * | 2017-01-06 | 2019-06-14 | Lg 电子株式会社 | 多lpdc 码中选择ldpc 基本码的方法及其设备 |
CN109150196B (zh) * | 2017-06-27 | 2024-06-18 | 华为技术有限公司 | 信息处理的方法、装置和通信设备 |
-
2017
- 2017-08-18 KR KR1020170105035A patent/KR102395537B1/ko active IP Right Grant
-
2018
- 2018-01-15 US US15/871,548 patent/US11163634B2/en active Active
Patent Citations (2)
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 |
---|---|
KR20190019732A (ko) | 2019-02-27 |
US20190056988A1 (en) | 2019-02-21 |
US11163634B2 (en) | 2021-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106856103B (zh) | 用于与非闪存的涡轮乘积码 | |
US10388400B2 (en) | Generalized product codes for flash storage | |
US8700974B2 (en) | Memory system controller having seed controller using multiple parameters | |
KR101739878B1 (ko) | 컨트롤러, 이의 동작방법, 및 상기 컨트롤러를 포함한 메모리 시스템 | |
US20170250714A1 (en) | Error correction circuit and error correction method | |
US20160372161A1 (en) | Data storage device and operating method thereof | |
KR102275717B1 (ko) | 플래시 메모리 시스템 및 그의 동작 방법 | |
US10484014B2 (en) | Controller, semiconductor memory system and operating method thereof | |
US10142419B2 (en) | Erasure correcting coding using data subsets and partial parity symbols | |
US10141952B2 (en) | Memory system and operating method thereof | |
JP6975047B2 (ja) | ライトワンスメモリコードのエラー訂正コード管理 | |
US9960788B2 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
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 | |
KR102395537B1 (ko) | H 행렬 생성 회로, 그것의 동작 방법 및 그것에 의해 생성된 h 행렬을 사용하는 에러 정정 회로 | |
US10897271B2 (en) | Multi-dimensional quasi-cyclic (QC) low-density parity-check (LDPC) code constructions | |
US10511334B2 (en) | Error correction circuit, operating method thereof and data storage device including the same | |
CN105915234B (zh) | 避免对涡轮乘积码误校正的方案 | |
CN106708649B (zh) | 解码方法、存储器储存装置及存储器控制电路单元 | |
US10951238B1 (en) | Memory system and method for controlling non-volatile memory | |
US9906241B2 (en) | Apparatus and method for turbo product codes | |
CN105938728B (zh) | 用于近似平衡码的编码器和解码器设计 | |
Viet | Adaptive Redundant Data Allocation Using Unused Blocks for Improving Access Efficiency in Dependable Storage Systems |
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 |