KR100808664B1 - 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치 - Google Patents

패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치 Download PDF

Info

Publication number
KR100808664B1
KR100808664B1 KR1020060124575A KR20060124575A KR100808664B1 KR 100808664 B1 KR100808664 B1 KR 100808664B1 KR 1020060124575 A KR1020060124575 A KR 1020060124575A KR 20060124575 A KR20060124575 A KR 20060124575A KR 100808664 B1 KR100808664 B1 KR 100808664B1
Authority
KR
South Korea
Prior art keywords
block
parity
shift
partial
parity check
Prior art date
Application number
KR1020060124575A
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 KR1020060124575A priority Critical patent/KR100808664B1/ko
Priority to US11/861,884 priority patent/US8190967B2/en
Application granted granted Critical
Publication of KR100808664B1 publication Critical patent/KR100808664B1/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/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
    • 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/1185Parity check matrix structured for simplifying encoding, e.g. by having a triangular or an approximate triangular structure wherein the parity-check matrix comprises a part with a double-diagonal
    • 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/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도 패리티 검사 부호화 방법 및 장치에 관한 것이다.
본 발명에서는 부호화 과정에서의 구조적 특성에 대응하여
Figure 112006091089771-pat00001
Figure 112006091089771-pat00002
에 대응하는 행렬 곱을 제거하였다. 이에 따라, 패리티 검사 행렬의 부분블록 A, 부분블록 B 및 부분블록 C에 대응하는 시프트 웨이트 중에서도 -1이 아닌 시프트 웨이트만을 저장하여 부호화에 사용하고, 정보 단위 블록의 순환 시프트 동작을 병렬 처리하여 제1 패리티블록과 제2 패리티 블록이 거의 동시에 생성되도록 하였다.
이러한, 블록 저밀도 패리티 검사 부호화 방법은 부호화 과정의 복잡도를 줄이는 것이 가능하며, 패리티 검사행렬을 저장하기 위해 필요한 메모리의 양을 줄일 수 있다.
또한, 독립적인 처리가 가능한 부분을 분리하여 병렬 처리하고, 일부 정보 단위 블록에 대해서만 순환 시프트를 수행하므로 복잡도를 개선할 뿐만 아니라 부호화 과정에서의 시간 지연을 줄이는 효과를 가져올 수 있다.
Figure R1020060124575
LDPC, 패리티 검사행렬, 시프트 웨이트, 블록 LDPC

Description

패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도 패리티 검사 부호화 방법 및 장치{Parity check matrix storing method, block LDPC coding method and the apparatus using Parity check matrix storing method}
도 1은 일반적인 LDPC 부호의 패리티 검사행렬의 일 예를 도시한 도면이다.
도 2는 일반적인 패리티 검사행렬을 사용하는 LDPC 부호의 factor 그래프를 도시한 것이다.
도 3은 일반적인 블록 LDPC 부호의 패리티 검사행렬을 개략적으로 도시한 도면이다.
도 4는 블록 LDPC 부호의 패리티 검사행렬의 부분블록의 위 첨자 행렬을 도시한 도면이다.
도 5는 블록 LDPC 부호의 패리티 검사행렬의 부분블록의 위 첨자 행렬을 도시한 도면이다.
도 6은 블록 LDPC 부호의 부호어를 정보블록, 제1 패리티블록 및 제2 패리티블록으로 분할한 것을 도시한 도면이다.
도 7은 블록 LDPC 부호의 패리티 검사행렬을 6개의 부분블록들로 분할한 도면이다.
도 8는 본 발명의 실시 예에 따른 패리티 검사행렬을 각 24 비트 정보 단위 블록 별 시프트 웨이트로 구성된 행렬을 도시한 도면이다.
도 10은 본 발명의 실시 예에 따른 부분블록 A에 대응되는 시프트 웨이트를 메모리에 저장한 일 예를 도시한 도면이다.
도 11은 본 발명의 실시 예에 따른 부분블록 C에 대응되는 시프트 웨이트를 메모리에 저장한 일 예를 도시한 도면이다.
도 12는 본 발명의 실시 예에 따른 부분블록 B에 대응되는 시프트 웨이트를 메모리에 저장하는 일 예를 도시한 도면이다.
도 13은 본 발명의 실시 예에 따른 부분블록 블록 LDPC 부호화 장치가 부호화하는 과정을 도시한 흐름도이다.
도 14는 본 발명의 실시 예에 따른 블록 LDPC 부호화 과정에서 제1 패리티블록을 생성하는 과정을 도시한 흐름도이다.
도 15은 본 발명의 실시 예에 따른 블록 LDPC 부호화 과정에서 제2 패리티블록을 생성하는 과정을 도시한 흐름도이다.
도 16은 본 발명의 실시 예에 따른 제1 패리티블록의 순환 시프트 결과와 각 패리티부분블록들의 가산 방법을 도시한 흐름도이다.
도 17은 본 발명의 실시 예에 따른 패리티부분블록의 생성 방법을 도시한 흐름도이다.
도 18는 본 발명의 실시 예에 따른 블록 LDPC 부호화 장치를 도시한 구성도이다.
도 19은 본 발명의 실시 예에 따른 제1 부호화부가 패리티부분블록 및 제1 패리티블록을 생성하는 과정의 신호 흐름을 도시한 것이다.
본 발명은 저밀도 패리티 검사(Low Density Parity Check, LDCP) 부호화에 관한 것으로, 특히 블록 저밀도 패리티 검사 부호화 장치 및 방법에 관한 것이다.
이동통신시스템의 발전에 따라 유무선 네트워크에서 대용량 데이터를 효율적으로 전송하기 위한 기술에 대한 요구가 늘어나고 있다. 이에 따라 이동통신시스템에서는 채널 상태에 따른 잡음, 간섭, 페이딩(Fading) 등의 오류로 인한 데이터의 손실을 효과적으로 감소시킴으로써, 시스템 성능을 향상시키기 위한 방법으로 오류정정부호(error-control code)를 사용한다.
대표적인 오류정정부호로는 터보 부호(turbo code)와 LDPC 부호가 있다. LDPC 부호는 성능 면에서는 터보 부호와 유사한 성능을 내면서도, 터보 부호 방식에 비해 더 낮은 복잡도의 복호 방법을 제공하고 병렬화가 쉬워 고속 처리에 적합하다. 또한, 부호 길이가 길어지면 샤논 한계(Shannon limit)에 도달하는 우수한 성능을 나타내므로, 이를 차세대 이동통신시스템에 적용하기 위해 많은 연구가 진행되고 있다.
LDPC 부호의 기본 구조는 패리티 검사행렬(Parity check matrix)에 의해 정의된다. 이 행렬은 대부분의 요소(element)가 0의 값(zero value)을 가지고, 0의 값을 가지는 요소들 이외에 극히 소수의 요소들이 0이 아닌 값(non-zero value)을 가지는 성긴(sparse) 구조로 정의된다. (N,j,k) LDPC 부호는 블록(block)길이가 N인 선형 블록 부호(linear block code)로, 각 열(column)마다 j개의 0이 아닌 값을 가지는 요소들과, 각 행(row)마다 k개의 1의 값을 가지는 요소들을 가지는 것을 의미한다.
이때, 패리티 검사행렬 안의 각 열 혹은 각 행의 0이 아닌 요소의 수를 웨이트(weight)라고 하고, 각 열의 웨이트와 각 행의 웨이트가 일정한 LDPC 부호를 균일(regular) LDPC 부호, 각 열 및 행의 웨이트가 일정하지 않은 LDPC 부호를 불균일(irregular) LDPC 부호라고 한다. 일반적으로 균일 LDPC 부호의 성능에 비해, 불균일 LDPC 부호가 더 우수한 성능을 갖는다고 알려져 있다. 그러나, 불균일 LDPC 부호의 경우, 패리티 검사행렬 내 각 열의 웨이트와 각 행의 웨이트가 일정하지 않기 때문에, 즉, 불균일 하기 때문에 패리티 검사행렬 안의 각 열의 웨이트와 각 행의 웨이트를 적절하게 조절해야만 우수한 성능을 보장받을 수 있다.
도 1은 일반적인 LDPC 부호의 패리티 검사행렬의 일 예를 도시한 도면이고, 도 2는 도 1의 패리티 검사행렬을 사용하는 LDPC 부호의 factor 그래프를 도시한 것이다.
도 1에 도시된 바에 따르면, (8,2,4) LDPC 부호의 패리티 검사행렬 H는 LDPC 부호를 복호화하기 위해 사용되는 것으로서, 8개의 열과 4개의 행으로 구성되어 있으며, 각 열의 웨이트는 2이고, 각 행의 웨이트는 4로 균일하다. 이렇게 상기 패리티 검사행렬 내 각 열의 웨이트와 각 행의 웨이트가 균일하므로 도 1에 도시되어 있는 (8,2,4) LDPC 부호는 균일 LDPC 부호가 된다.
도 2는 전술한 (8,2,4) LDPC 부호의 factor 그래프를 도시한 도면이다.
도 2를 참조하면, 상기 (8,2,4) LDPC 부호의 factor 그래프는 8개의 변수 노드(variable node)들(x1, x2, x3, x4, x5, x6, x7, x8)과 4개의 검사 노드(check node)들(s16, s18, s10, s12)로 구성되며, 변수 노드와 검사 노드를 연결하는 에지(edge)의 수가 많을수록 LDPC 부호의 성능이 좋아진다. 부호화를 위해서 패리티 검사행렬로부터 생성 행렬(generator matrix) G를 계산해야 하므로, 부호 길이가 길어지고, 패리티 검사행렬의 크기가 커지면 생성 행렬을 구하는 복잡도가 높아진다.
이와 같은 문제를 해결하기 위해, LDPC 부호의 부호화를 효율적으로 수행하면서, 성능의 감소는 없도록 개발한 것이 블록 LDPC 부호이다. 블록 LDPC 부호는 패리티 검사행렬에서 생성 행렬을 계산하지 않고, 패리티 검사행렬을 적절히 분할하고 분할된 행렬을 이용하여 직접 부호화한다.
도 3은 일반적인 블록 LDPC 부호의 패리티 검사행렬을 개략적으로 도시한 것이고, 도 4 및 도 5는 도 3에 도시한 블록 LDPC 부호의 패리티 검사행렬의 부분 행렬의 위 첨자 행렬을 도시한 것이다.
블록 LDPC 부호는 효율적인 부호화뿐만 아니라 효율적인 패리티 검사행렬의 저장 및 성능 개선을 모두 고려한 새로운 LDPC 부호로서, 블록 LDPC 부호는 균일 LDPC 부호의 구조를 일반화시켜 확장한 개념의 LDPC 부호이다.
도 3에 도시된 바에 따르면, 블록 LDPC 부호의 패리티 검사행렬인 H 행렬은 전체 패리티 검사행렬을 다수의 부분블록(Partial Block)들로 분할하고, 부분블록 들 각각에 순열 행렬(permutation matrix)을 대응시키는 형태를 갖는다.
이후, 상기 부분블록에 대응하는 순열 행렬을 '부분 행렬'이라고 칭한다. w는 z x z 크기를 가지는 순열 행렬을 나타내며, 그 값이 -1인 경우 영 행렬을 의미하고, 그 값이 0인 경우 z x z 크기의 단위 행렬을 의미한다. 상기 값이 0보다 큰 수일 경우 그 값만큼 z x z 크기의 단위 행렬을 순환 시프트(cyclic shift)한 순열 행렬이 된다. 순열 행렬 w의 위첨자 Hb는 도 4 및 도 5에 도시된 바와 같다.
또한, m b 는 해당 순열 행렬이 상기 패리티 검사행렬의 다수의 부분블록들 중 m b 번째 행에 위치함을 나타내며, n b 는 해당 순열 행렬이 상기 패리티 검사행렬의 다수의 부분블록들 중 n b 번째 열에 위치함을 나타낸다. 즉, Wm b n b 는 상기 다수의 부분블록들로 구성된 패리티 검사행렬의 m b 번째 행과 n b 번째 열이 교차하는 지점의 부분블록에 존재하는 순열 행렬을 나타낸다.
한편, 상기 도 3의 LDPC 부호의 전체 패리티 검사행렬은 전체 행의 개수가
Figure 112006091089771-pat00003
이고, 전체 열의 개수는
Figure 112006091089771-pat00004
이므로, 상기 블록 LDPC 부호의 전체 패리티 검사행렬의 최대 랭크(full rank)를 가지는 경우 상기 부분블록들의 크기에 상관없이 부호화 율(coding rate)은 다음의 수학식 1과 같이 나타낼 수 있다.
[수학식 1]
Figure 112006091089771-pat00005
상기 전체 LDPC 패리티 검사행렬은
Figure 112006091089771-pat00006
크기이지만,
Figure 112006091089771-pat00007
개의 위 첨자를 이용하여 표시할 수 있으므로 전체 패리티 검사행렬 정보를 저장하기 위해 필요한 메모리 크기는 1/z로 줄어든다.
한편, 효율적인 부호화를 위해 상기 LDPC 패리티 검사행렬은 특별한 구조를 갖는다. 상기 LDPC 부호는
Figure 112006091089771-pat00008
길이를 갖는 정보 블록 형태의 입력 데이터를 기반으로
Figure 112006091089771-pat00009
크기의 패리티 검사 비트를 생성하는 것으로, 전체 부호어(code word)는 정보 블록에 패리티 검사 블록을 덧붙인
Figure 112006091089771-pat00010
크기가 되어 전송된다.
도 6은 블록 LDPC 부호의 부호어를 정보블록(u), 제1 패리티블록(p1)과 제2 패리티블록(p2)의 부분블록들로 분할한 것을 도시한 도면이다.
여기서, 정보 블록은 블록 LDPC 부호를 부호화하는 과정에서 실제 정보어에 매핑되는 패리티 검사행렬의 파트를 나타낸다. 또한 제1 패리티블록과 제2 패리티블록은 블록 LDPC 부호를 부호화하는 과정에서 실제 패리티에 매핑되는 패리티 검사행렬의 파트를 나타내며, 패리티 파트를 2개의 파트로 분할한 것이다.
도 7은 블록 LDPC 부호의 구조적 특성에 따라 패리티 검사행렬을 6개의 부분블록들로 분할한 도면이다.
도 7을 참조하면, 도 6에 도시되어 있는 블록 LDPC 부호의 패리티 검사행렬을 정보파트와 패리티파트로 분할하고, 정보파트에 포함되는 부분블록 A 및 부분블록 C, 제1 패리티파트에 포함되는 부분블록 B 및 부분블록 C, 제2 패리티파트에 포함되는 부분블록 T 및 부분블록 E로 분할한다. 여기서, 정보파트는 블록 LDPC 부호 를 부호화하는 과정에서 실제 정보어 벡터(정보블록)가 매핑되는 패리티 검사행렬의 파트를 의미한다. 패리티파트는 블록 LDPC 부호를 부호화하는 과정에서 실제 패리티 블록에 매핑되는 패리티 검사행렬의 파트를 나타내며 패리티파트를 2개의 파트들로 분할한 것이다.
한편, 상기 패리티 검사행렬 및 부호어 블록들 간의 관계는 다음의 수학식 2와 같이 표시할 수 있다.
[수학식 2]
Figure 112006091089771-pat00011
상기 수학식 2로부터 다음 수학식3과 같이 패리티블록을 구하는 식을 유도할 수 있다
[수학식 3]
Figure 112006091089771-pat00012
수학식 3에서
Figure 112006091089771-pat00013
가 단위 행렬(identity matrix)이 되도록 구성하고,
Figure 112006091089771-pat00014
을 간단하게 구할 수 있는 구조로 구성함으로써, LDPC 부호화를 효율적으로 구현할 수 있도록 한 것이 블록 LDPC 부호화다. 따라서 상기의 수학식 3은 다음 수학식 4와 같이 간략화 할 수 있다.
[수학식 4]
Figure 112006091089771-pat00015
도면 6과 같이 정보블록과 패리티블록을 z 단위의 크기로 분할하면(이후 이를 '정보 단위 블록'이라고 칭한다.), 0인 아닌 LDPC 패리티 검사행렬을 구성하고 있는 부분블록과의 곱은 z 크기의 정보 단위 블록을 부분블록의 웨이트(shift weight) 값만큼 순환 시프트 한 것과 같게 된다. 수학식 5는 z를 4라고 할 경우 부분블록 웨이트 값에 따른 부분블록과 정보블록의 곱을 표시한 것이다. 결과 값은 수학식 5에서 보는 바와 같이 정보 블록 자신을 웨이트 값만큼 순환 시프트 한 것은 시프트 웨이트 값만큼 순환 시프트 된 부분블록과 정보블록을 곱한 것과 같다.
[수학식 5]
Figure 112006091089771-pat00016
전술한 블록 LDPC 부호는 터보 부호와 함께 고속 데이터 전송 시에 성능 이 득이 우수한 것으로 알려져 있으며, 전송 채널에서 발생하는 잡음에 의한 오류를 효과적으로 정정하여 데이터 전송의 신뢰도를 높일 수 있다는 장점을 가진다. 그러나, 최근 이동통신시스템의 발전에 따라 고화질의 동영상 데이터와 같은 고용량의 데이터를 실시간으로 처리하기 위해서는, 종래의 블록 LDPC 부호화에서 좀더 고속으로 고용량의 데이터 처리가 가능하도록 복잡도를 최소화시킬 필요가 있다. 또한, 종래의 블록 LDPC 부호화 구현 과정에서 필요한 메모리의 용량을 줄이고 하드웨어 복잡도를 개선하여 부품의 단가를 낮추는 것 또한 필요하다.
본 발명이 이루고자 하는 기술적 과제는, 고속으로 고용량의 데이터 처리가 가능하도록 복잡도를 최소화시키고 속도를 높인 블록 LDPC 부호화 장치 및 방법을 제공하는데 있다. 또한, 블록 LDPC 부호화 구현 과정에서 필요한 메모리의 용량을 줄이고 하드웨어 복잡도를 개선한 블록 LDPC 부호화 장치 및 방법을 제공하는데 있다.
상기한 목적을 달성하기 위한 본 발명의 특징에 따른 블록 저밀도 패리티 검사 부호의 패리티 검사행렬을 저장하는 방법은,
상기 패리티 검사행렬의 시프트 웨이트를 부분블록 별로 분류하는 단계; 및
상기 패리티 검사행렬 중 부분블록 A, 부분블록 B 및 부분블록 C에 대응하는 시프트 웨이트만을 저장하는 단계를 포함한다.
또한, 본 발명의 다른 특징에 따른 블록 저밀도 패리티 검사 부호화 방법은,
부분블록-여기서 부분블록은 패리티 검사행렬을 블록 저밀도 패리티 검사의 구조적 특성에 대응하여 분할한 것임- A 및 C의 시프트 웨이트를 이용하여, 정보블록에 포함된 정보 단위 블록을 순환 시프트하는 단계; 상기 순환 시프트한 결과를 누적가산하여 상기 부분블록 A에 대응하는 하나 이상의 패리티부분블록과, 상기 부분블록 A 및 C에 대응하는 제1 패리티블록을 생성하는 단계; 부분블록 B의 시프트 웨이트에 대응하여 상기 제1 패리티블록을 순환 시프트한 결과를 상기 패리티부분블록과 가산하고, 가산한 결과를 나열하여 제2 패리티블록을 생성하는 단계; 및 상기 정보블록, 상기 제1 패리티블록 및 상기 제2 패리티블록을 조합하여 부호어를 생성하는 단계를 포함한다.
또한, 본 발명의 또 다른 특징에 따른 블록 저밀도 패리티 검사 부호화 장치는,
블록 저밀도 패리티 검사 부호의 패리티 검사행렬의 시프트 웨이트를 부분블록-여기서 부분블록은 패리티 검사행렬을 블록 저밀도 패리티 검사 부호의 구조적 특성에 대응하여 분할한 것임-별로 분류하여 저장하는 제1 메모리; 상기 제1 메모리로부터 읽어온 부분블록 A 및 C에 대응되는 시프트 웨이트를 이용해 정보 단위 블록-여기서 정보 단위 블록은 정보블록을 설정된 크기로 분할한 것임-을 순환 시프트하고 누적가산하여 하나 이상의 패리티부분블록과 제1 패리티블록을 출력하는 제1 부호화부; 상기 제1 메모리로부터 읽어온 부분블록 B에 대응되는 시프트 웨이트를 이용해 상기 제1 부호화부로부터 입력된 상기 제1 패리티블록을 순환 시프트한 결과와 상기 패리티부분블록을 가산한 뒤 나열하여 제2 패리티블록을 출력하 는 제2 부호화부; 및 상기 정보 단위 블록, 상기 제1 부호화부로부터 입력된 상기 제1 패리티블록 및 상기 제2 부호화부로부터 입력된 상기 제2 패리티블록을 조합하여 부호어를 출력하는 조합부를 포함한다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나, 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이제 아래에서는 본 발명의 실시 예에 따른 블록 LDPC 부호의 패리티 검사행렬의 저장 방법, 블록 LDPC 부호화 방법 및 장치, 특히, 가변 길이 블록 LDPC 부호화 방법 및 장치 에 대하여 도면을 참고로 하여 상세하게 설명한다.
본 발명의 실시 예에서는 가변 길이 블록 LDPC 부호화의 패리티 검사행렬로 IEEE 802.16e의 패리티 검사행렬을 예를 들어 설명한다. 한편, 패리티 검사행렬은 부호화 율에 따라 다른 형태로 제안이 가능한데 본 발명의 실시 예에서는 1/2, 2/3, 3/4, 5/6의 부호화 율을 고려하여 설명한다.
본 발명의 실시 예를 설명하기에 앞서, 패리티 검사행렬을 메모리에 저장하 기 위해서는 우선, 전술한 수학식 4의 T 행렬의 역행렬을 쉽게 구할 수 있도록 T 행렬을 이중대각선 행렬로 만든다. 이때, 이중대각선 행렬의 역행렬은 하삼각 행렬이 된다. 한편, E 행렬은 마지막 부분 행렬만 영행렬이 아닌 단위행렬이 되도록 구성한다. 따라서
Figure 112006091089771-pat00017
Figure 112006091089771-pat00018
개의 부분 행렬로 구성되며, 이들 부분행렬은 모두 단위행렬이 된다.
전술한 방법으로 생성된 제1 패리티블록은 다음의 수학식 6과 같이 표현이 가능하다.
[수학식 6]
Figure 112006091089771-pat00019
전술한 수학식 6에서,
Figure 112006091089771-pat00020
값이 -1이면
Figure 112006091089771-pat00021
Figure 112006091089771-pat00022
크기의 영행렬이고,
Figure 112006091089771-pat00023
의 값이 영보다 크거나 같으면 단위 행렬이 순환 시프트된 순환행렬 형태를 갖는다. 또한, 상기 수학식 6은 부분블록 A 및 C 에서 각 행의 영행렬이 아닌 부분에 해당하는 모든 정보 단위 블록을 웨이트 값만큼 순환 시프트하여 배타적 논리합을 구한 것과 같다.
제2 패리티블록은 수학식 4의 첫 번째 식으로부터 계산이 가능하며, T 블록 의 역 행렬은 하삼각 행렬이 되므로, 제2 패리티블록은 다음의 수학식 7과 같이 표현된다.
[수학식 7]
Figure 112006091089771-pat00024
전술한 수학식 7에서 부분블록 B는 두 개의 -1이 아닌 웨이트를 갖는다. 이 중 하나는 부분블록 B의 첫 행에 위치한다. 따라서 제1 패리티블록을 부분블록 B의 첫 번째 행의 시프트 웨이트 만큼 순환 시프트한 후, 정보블록(u)을 부분블록 A의 각 행 별로 웨이트 값만큼 순환 시프트한 뒤 누적가산하여 출력한 모든 패리티부분블록과 이 값의 배타적 논리합을 구한다. 또한, 전술한 배타적 논리합 중 -1이 아닌 다른 웨이트가 위치하는 행부터 mb-1 번째 행까지의 배타적 논리합에 두 번째 시프트 웨이트 만큼 순환 시프트한 값을 배타적 논리합으로 더한다. 이렇게 더해진 결과들을 모두 배타적 논리합으로 더하면 제2 패리티블록이 된다.
한편, 수학식 7에서의 시프트 웨이트 중 많은 부분이 영행렬이므로, 블록 LDPC 패리티 검사행렬을 영행렬이 아닌 시프트 웨이트와 정보 단위 블록의 위치정보로 저장하여 사용하는 것이 가능하다.
이제 아래에서는 본 발명의 실시 예에 따른 블록 LDPC 부호의 패리티 검사행 렬의 저장 방법을 도면을 참고로 상세하게 설명한다.
패리티 검사 행렬은 시스템 설계 시 설정 된 것을 사용하며, 다음에서는 시스템 설계 시 설정된 패리티 검사 행렬의 시프트 웨이트 값을 저장하는데 있어서 블록 LDPC 부호의 구조적 특성을 이용하는 방법에 대하여 설명한다.
도 8은 본 발명의 특징에 따른 패리티 검사 행렬의 시프트 웨이트 값의 일 예를 도시한 것으로서, 부호화 율이 1/2이고 정보 단위 블록의 크기가 24 × 24인 경우의 일 예를 도시한 것이다.
도 8에 도시된 일 예와 같이 패리티 검사 행렬의 시프트 웨이트 값이 주어지면, 우선, 이를 도 7에 도시된 바와 같이 6개의 부분블록(정보 파트에 해당하는 부분블록 A 및 C, 제1 패리티파트에 해당하는 부분블록 C 및 D, 제2 패리티파트에 해당하는 부분블록 T 및 E) 별로 분류한다.
한편, 6개의 부분블록 중에서 부분블록 A, B 및 C에 대응되는 시프트 웨이트만을 메모리에 저장하며, 이 중에서도 시프트 웨이트 중에서 -1이 아닌 시프트 웨이트와 해당 시프트 웨이트의 위치정보만을 해당 부분블록 별로 저장한다. -1의 값을 가지는 시프트 웨이트는 영행렬을 의미하며, 영행렬을 사용하여 행렬 곱을 수행하면 결과값이 0이므로 이는 계산에서 제외하여도 된다.
도 9는 이러한 본 발명의 실시 예에 따라 부분블록 A에 대응되는 시프트 웨이트를 메모리에 저장한 일 예를 도시한 것이고, 도 10은 부분블록 C에 대응되는 시프트 웨이트, 도 11은 부분블록 B에 대응되는 시프트 웨이트의 메모리 저장의 일 예를 도시한 것이다.
이처럼, 부분블록 A, C 및 B에 대응되는 시프트 웨이트 만을 메모리에 저장하는 이유는, 부분블록 D, E 및 T가 블록 LDPC 부호의 구조적 특성에 포함되어 블록 LDPC 부호화 장치를 구성하는 과정에서 부분블록 D, E, T의 특성이 포함되기 때문이다.
도 12는 본 발명의 실시 예에 따라 송신기가 부분블록 A에 해당하는 시프트 웨이트를 메모리에 저장하는 일 예를 도시한 것이다.
도 9 및 도 12를 참조하면, 부분블록 A의 시프트 웨이트를 행 단위로 순차적으로 읽어와 메모리에 저장하며, 행 별로 시프트 웨이트를 저장하기에 앞서 각 행 번호(i)을 먼저 저장한다(S110). 이후, 시프트 웨이트가 -1 보다 큰(즉, 해당 정보 단위 블록이 영행렬이 아니면)경우(S120), 시프트 웨이트 열 변호(j) 및 해당 시프트 웨이트 값을 열 순서에 따라 순차적으로 저장한다(S130). 이때, 시프트 웨이트가 -1인 경우에는 저장하지 않는다. 이 동작은 각 행 별로 모든 시프트 웨이트에 대하여 반복 수행한다(S140).
한편, 부분블록 A의 각 행 별로 마지막 시프트 웨이트에 대하여 시프트 웨이트가 -1인 경우에는(S150) 열 번호 및 시프트 웨이트 대신 -1을 저장하여 행의 끝을 표시한다(S160).
전술한 과정은 부분블록 A의 모든 행의 시프트 웨이트 데이터를 저장할 때까지 반복 수행된다(S100).
한편, 도 10 및 도 11에 도시된 바와 같이 부분블록 C는 한 행에 걸쳐 있으므로, 열 번호(j) 만으로 시프트 웨이트의 위치정보를 표현하고, 부분블록 B는 한 열로 구성되므로, 행 번호(i)만으로 시프트 웨이트의 위치정보를 표현한다. 이때도 마찬가지로, -1보다 큰 시프트 웨이트에 대해서만 위치정보와 시프트 웨이트를 메모리에 저장한다.
전술한 바와 같이 블록 LDPC 부호의 패리티 검사행렬을 저장하면, 패리티 검사행렬을 모두 저장할 필요 없이 부분블록 A, B 및 C에 대응되는 시프트 웨이트 만을 저장하여 사용하고, 영행렬이 아닌 정보 단위 블록의 시프트 웨이트의 위치정보와 시프트 웨이트 값만을 메모리에 저장하여, 부호화 장치를 구성함에 있어 패리티 검사행렬을 저장하는데 필요한 메모리의 양을 현저히 줄임으로써 부호화 장치의 구성 단가의 하락의 효과를 가져올 수 있다.
이제 다음에서는 본 발명의 실시 예에 따른 블록 LDPC 부호화 방법에 대하여 도면을 참조하여 설명한다.
도 13은 본 발명의 실시 예에 따른 블록 LDPC 부호화 장치가 부호화하는 방법을 도시한 흐름도이다.
도 13을 참조하면, 우선 정보블록(u)의 위치정보에 해당하는 정보어 벡터가입력되면, 부호화 장치는 패리티 검사행렬의 정보파트에 대응되는 부분블록 A 및 부분블록 C의 시프트 웨이트를 이용하여 정보블록을 순환 시프트한 결과를 부분블록 A의 각 행 별로 누적가산한 하나 이상의 패리티부분블록과 순환 시프트한 결과를 모두 더한 제1 패리티블록(p1)를 생성한다(S200). 이때, 정보블록의 순환 시프트는 실제로는 정보 단위 블록 별로 이루어지며, 정보 단위 블록 별로 이루어진 순환 시프트 결과의 가산 방법은 배타적 논리합을 이용한다.
패리티부분블록과 제1 패리티블록(p1)이 생성되면, 제1 패리리블록(p1)을 부분블록 B의 웨이트를 이용하여 순환 시프트하고, 순환 시프트한 결과와 패리티부분블록들을 더한 뒤 순서대로 나열하여 제2 패리티블록(p2)를 생성한다(S210).
이후, 부호화 장치는 상기 정보블록(u), 제1 패리티블록(p1) 및 제2 패리티블록(p2)을 조합하여 부호어를 생성한다(S220). 이때, 부호어로 조합되는 순서는 정보블록(u), 제1 패리티블록(p1) 그리고 제2 패리티블록(p2)의 순이다.
도 14는 본 발명의 실시 예에 따라서 블록 LDPC 부호화 과정에서 전술한 제1 패리티블록을 생성하는 과정을 상세하게 도시한 흐름도이다.
부호화 장치에 부호화할 정보어 벡터가 입력되면, 이를 이용하여 정보블록(u)을 읽어오고, 메모리로부터 부분블록 A 및 C에 대응되는 위치정보 및 시프트 웨이트를 읽어온다(S300).
이후, 메모리에서 읽어온 부분블록 A 및 C의 시프트 웨이트를 이용하여 정보블록(u)을 순환 시프트 한다(S310). 이때, 순환 시프트 동작은 실제로는 정보 단위 블록 별로 이루어지며 정보 단위 블록을 대응되는 시프트 웨이트만큼 순환시켜 수행된다.
모든 정보 단위 블록에 대한 순환 시프트 동작을 수행하면, 정보 단위 블록 별로 순환 시프트 결과를 부분블록 A의 각 행에 대응하여 누적가산한 하나 이상의 패리티부분블록을 생성한다(S320). 이때, 사용되는 가산 방법은 배타적 논리합이 사용되며, 생성된 패리티부분블록의 개수는 부분블록 A의 행의 개수와 동일하다. 이렇게 생성된 패리티부분블록은 이후, 제2 패리티블록을 생성하는데 사용된다.
부호화 장치는 정보블록의 순환 시프트 결과를 모두 더하여 제1 패리티블록을 생성한다(S330). 이때, 이미 전술한 패리티부분블록 생성 과정에서 누적가산을 수행하였으므로 제1 패리티부분블록을 생성하기 위해서는 부분블록 A의 마지막 행에 대응되는 패리티부분블록에 전술한 부분블록 C에 대응되는 순환 시프트 결과를 더하기만 하면 된다.
한편, 본 발명의 실시 예에 따른 순환 시프트 동작은 부분블록 A의 각 행과 부분블록 C에 대응하여 각각 병렬로 처리가 가능하며, 이를 누적 가산하는 동작 또한 병렬처리가 가능하다. 이와 같은 독립적인 처리가 가능한 동작의 병렬처리는 부호화 과정의 시간지연을 단축시켜 고속의 부호화를 수행하는 것이 가능하도록 하는 효과가 있다.
도 15는 본 발명의 실시 예에 따라서 블록 LDPC 부호화 과정에서 전술한 제2 패리티블록을 생성하는 과정을 상세하게 도시한 흐름도이다.
도 14에 도시된 바에 따르면, 전술한 과정을 통해 하나 이상의 패리티부분블록이 생성된다(S320). 이 패리티부분블록을 순서대로 나열한다. 즉, 생성된 제2 패리티블록은 패리티 부분블록의 모두 나열한 길이가 된다.
부호화 장치는 메모리로부터 부분블록 B에 대응되는 시프트 웨이트를 읽어온다(S400). 이후, 읽어온 부분블록 B의 시프트 웨이트를 이용하여 제1 패리티블록을 순환 시프트 한다(S410). 순환 시프트 된 결과는 해당 위치부터 패리티 부분블록 끝까지 더하여 제2 패리티 블록을 생성한다(S430).
부호어는 정보블록과 생성된 제1 패리티블록 다음 제2 패리티블록이 순서대 로 나열되어 출력된다.
전술한 바와 같이 제1 패리티블록 및 제2 패리티블록을 생성하면, 독립적인 동작들에 대한 병렬 처리로 인해 제1 패리티블록의 생성시까지의 시간을 단축 시킬 수 있을 뿐만 아니라, 제2 패리티블록을 생성하기 위해 제1 패리티블록 생성과정에서의 결과를 활용함으로써 제1 패리티블록과 제2 패리티블록이 거의 동시에 생성되도록 시간지연을 줄일 수 있다.
도 16은 제1 패리티블록의 순환 시프트 결과와 각 패리티부분블록들의 가산 방법을 나타낸 것으로서, 도 8에 도시된 패리티 검사행렬을 사용하여 계산하는 일 예를 도시한 것이다. 부분블록 B는 가변 길이 블록 LDPC 부호의 특성에 따라 두 개의 값만이 -1이 아닌 값을 갖는다. 그 위치는 부분블록 B의 맨 처음과 중간 위치가 된다. 즉 도 9에 도시된 예에서처럼 부분블록 B는 첫 번째, 여섯 번째에 -1이 아닌 시프트 웨이트를 가진다.
도 16에 도시된 바에 따르면, 제1 패리티 블록은 부분블록 B의 시프트 웨이트 만큼 순환 시프트 되어 해당 시프트 웨이트의 위치에 대응되는 패리티부분블록부터 마지막 패리티부분블록까지 모두 더해진다. 즉, 도 8에 도시된 부분블록 B를 사용하는 경우, 제1 패리티블록을 1만큼 순환 시프트 한 결과를 맨 처음 패리티부분블록부터 맨 끝 패리티부분블록까지 모두 더하고, 제1 패리티블록을 6번째 패리티부분블록부터 맨 끝 패리티부분블록까지 모두 더한다.
이렇게 더해진 결과는 순서대로 나열되어 제2 패리티블록을 생성한다.
전술한 바와 같이 제2 패리티블록을 생성하기 위하여 새로운 계산 없이, 제1 패리티블록 계산 과정의 결과를 이용하는 부호화 방법은 부호화 장치의 복잡도를 감소시킬 뿐만 아니라 계산 과정의 생략으로 인한 시간 단축의 효과를 가져온다.
도 17은 본 발명의 실시 예에 따라서 전술한 패리티부분블록의 생성 방법을 도시한 흐름도이다.
전술한 제1 패리티블록 생성과정에서의 순환 시프트 동작을 정보블록(u) 전체에 대하여 수행할 필요가 없다. 이는 시프트 웨이트가 -1이 아닌 영행렬을 정보블록의 정보 단위 블록에 행렬 곱을 이용하여 계산하면 결과는 모두 0이 되므로 실제 순환 시프트한 결과를 더해주는 과정에서 생략되어도 되기 때문이다. 이와 같은 이유로, 전술한 바와 같이 시프트 웨이트를 메모리에 저장 시 시프트 웨이트가 -1인 경우는 저장에서 제외된다.
즉, 도 9와 같이 저장된 시프트 웨이트 및 위치정보를 이용할 경우, 부분블록 A의 각 행 별로 수행되는 순환 시프트 동작에서 시프트 웨이트가 -1이 아닌 위치에 대응하는 정보 단위 블록만을 읽어와 순환 시프트를 수행하는 것이 가능하다. 이때 사용되는 정보 단위 블록은 전술한 바와 같이 정보블록(u)을 일정 크기, 즉 z 단위로 분할한 것을 의미하며, 순환 시프트 동작은 정보 단위 블록 별로 이루어진다.
하나의 패리티부분블록을 생성하기 위해서는 부분블록 A의 해당 행의 시프트 웨이트에 대응하여 정보 단위 블록 별로 순환 시프트 한 결과를 모두 더해야 한다.
그러기 위해서는 우선 메모리에서 부분블록 A의 해당 행의 시프트 웨이트 및 위치정보를 순차적으로 읽어온다(S500). 이때, 순차적으로 읽어온 위치정보가 -1인 경우에는(S510) 해당 행이 끝난 것을 의미하므로 결과 패리티블록을 생성한다(S500).
한편, 위치정보 및 시프트 웨이트를 읽어오면, 해당 위치정보(j)를 이용해 대응되는 정보 단위 블록의 주소를 산출한다(S520). 정보 단위 블록의 주소는 다음의 수학식 8을 이용하여 산출이 가능하다.
[수학식 8]
정보 단위 블록 시작 주소 = j ×z
정보 단위 블록 끝 주소 값 = (j + 1) × z - 1
여기서, z는 정보 단위 블록의 크기를 의미하며, j는 메모리로부터 읽어온 부분블록 A의 위치정보 중 열 번호에 해당한다.
정보 단위 블록의 주소 값이 산출되면, 주소 값에 대응되는 정보 단위 블록을 읽어와(S530), 해당 시프트 웨이트 만큼 순환 시프트 시킨다(S540). 이렇게 순환 시프트 된 결과는 현재까지 누적가산된 순환 시프트 결과에 가산된다(S550).
한편, 해당 행에 대한 모든 순환 시프트 동작이 끝나면, 현재까지 누적가산된 순환 시프트 결과를 해당 패리티부분블록으로 출력한다(S560).
이때, 전술한 바와 같이 시프트 웨이트가 -1이 아닌 경우에 대해서만 순환 시프트 동작을 수행하여 누적가산하는 것은, 시프트 웨이트가 -1인 경우는 영행렬을 의미하고, 영행렬과 정보 단위 블록의 곱 역시 영행렬이므로 누적가산에서 빠져도 되기 때문이다.
전술한 바와 같이 패리티부분블록을 생성하면 각 시프트 웨이트의 위치정보 가 따로 저장이 되므로 각 시프트 웨이트에 대응하는 정보 단위 블록의 순환 시프트 동작은 서로 독립적으로 수행이 가능하므로 병렬 수행이 가능하여 부호화 수행에 있어 시간 단축의 효과를 가져온다.
또한, 시프트 웨이트를 모두 저장하지 않고 -1이 아닌 경우에만 저장함으로써, 대부분의 시프트 웨이트가 -1인 패리티 검사행렬의 특성상 저장에 사용되는 메모리의 양을 현저히 줄일 수 있다.
이제 다음에서는 본 발명의 실시 예에 따른 블록 LDPC 부호화 장치에 대하여 도면을 참조하여 설명한다.
도 18은 본 발명의 실시 예에 따른 블록 LDPC 부호화 장치(100)를 도시한 구성도이다.
도 18를 참조하면, 블록 LDPC 부호화 장치(100)은 제1 메모리(110), 제1 부호화부(120), 제2 부호화부(130), 조합부(140), 및 제2 메모리(150)를 포함한다.
제1 메모리(110)는 블록 LDPC 부호의 패리티 검사행렬의 시프트 웨이트 값을 저장한다. 패리티 검사행렬은 전술한 바와 같이 6개의 부분블록으로 분류될 수 있으며, 제1 메모리(110)에는 전술한 바와 같이 6개의 부분블록 중에서 A, C 및 B에 해당하는 시프트 웨이트 값만 저장된다.
제2 메모리(150)는 정보블록(u)을 정보 단위 블록 별로 분류하여 저장한다.
제1 부호화부(120)는 제1 순환 시프트부(121), 제2 순환 시프트부(122), 제1 가산부(123), 제1 패리티블록 생성부(124), 및 주소생성부(125)를 포함하며, 정보블록의 위치에 대응되는 정보어 벡터가 입력되면, 정보어 벡터에 대응되는 정보블 록의 정보 단위 블록들에 대하여 부분블록 A 및 부분블록 C의 시프트 웨이트를 이용하여 순환 시프트하여 패리티부분블록들과 제1 패리티블록(p1)을 출력한다. 도 19는 제1 부호화부(120)가 전술한 바와 같이 패리티부분블록 및 제1 패리티블록을 생성하는 과정의 신호 흐름을 도시한 것이다.
주소생성부(125)는 제1 메모리(110)로부터 부분블록 A 및 C의 시프트 웨이트의 위치정보(열 번호) 및 시프트 웨이트를 읽어와 출력하고, 위치정보에 대응하여 제2 메모리(150)로부터 정보 단위 블록을 읽어와 출력한다.
제1 순환 시프트부(121)는 주소생성부(125)로부터 입력받은 정보 단위 블록 및 부분블록 A의 시프트 웨이트를 이용하여 정보 단위 블록을 순환 시프트하여 출력한다. 이때, 부분블록 A의 각 행에서 수행되는 순환 시프트 동작은 서로 독립적으로 수행이 가능하므로 동시에 수행되는 것이 가능하다.
제2 순환 시프트부(122)는 주소생성부(125)로부터 입력받은 정보 단위 블록 및 부분블록 C의 시프트 웨이트를 이용하여 정보 단위 블록을 순환 시프트하여 출력한다. 이 동작도 부분블록 A의 각 행에 대응되는 순환 시프트 동작과 서로 독립적이므로 동시에 처리가 가능하다.
제1 가산부(123)는 제1 순환 시프트부(121)로부터 입력 받은 순환 시프트 값의 누적가산을 수행한다. 즉, 부분블록 A 의 각 행 별로 순환 시프트 된 결과를 누적가산하고, 이전 행의 누적가산결과와 다시 가산함으로써 하나 이상의 패리티부분블록들을 출력한다. 이때, 가산동작은 배타적 논리합을 이용해 수행되며, 도면에 도시하지는 않았지만 모든 패리티부분블록들은 초기화 과정에서 '0'으로 초기화 된 다.
제1 패리티블록 생성부(124)는 제1 가산부로부터 부분블록 A에 대응되는 모든 순환 시프트 결과 값을 누적한 결과, 즉 마지막 패리티부분블록과 제2 순환 시프트부(122)로부터 출력된 순환 시프트 결과의 누적가산결과를 더하여 제1 패리티블록(p1)을 산출하여 출력한다.
제2 부호화부(130)는 제3 순환 시프트부(131) 및 제2 패리티블록 생성부(132)를 포함하며, 제1 부호화부(120)로부터 패리티부분블록들과 제1 패리티블록이 출력되면, 이를 읽어와서 제2 패리티블록을 생성하여 출력한다.
즉, 제3 순환 시프트부(131)는 제1 부호화부로부터 제1 패리티블록을 입력받아서 제1 메모리에서 읽어온 부분블록 B의 시프트 웨이트만큼 순환 시프트한다. 제2 패리티 생성부는 제3 순환 시프트부(131)로부터 출력된 제1 패리티블록의 시프트 결과를 제2 부호화부로부터 읽어온 패리티부분블록들과 배타적 논리합을 구한 뒤 패리티부분블록의 순서에 대응하여 이를 나열하여 제2 패리티블록(p2)를 출력한다.
조합부(140)는 제2 메모리(150)로부터 정보어 벡터에 대응하여 읽어온 정보 단위 블록들, 제1 패리티블록 및 제2 패리티블록을 조합하여 블록 LDPC 부호어를 생성한 뒤 출력한다. 이후, 부호어는 변조장치(200)로 전달되어 변조된 후 송신된다.
제2 메모리(150)는 정보블록을 정보 단위 블록 별로 저장한다.
전술한 바와 같이 블록 LDPC 부호화를 수행하면, 패리티블록 생성 과정 중
Figure 112006091089771-pat00025
Figure 112006091089771-pat00026
에 대응하는 행렬 곱을 제거하고 블록 LDPC 부호화의 특성을 이용하여 행렬 곱을 순환 시프트와 배타적 논리합으로 대체함으로써 부호화 과정의 복잡도를 줄이는 것이 가능하며, 패리티 검사행렬을 저장하기 위해 필요한 메모리의 양을 줄일 수 있다.
또한, 정보 단위 블록의 순환 시프트 동작 및 누적 가산을 부분블록의 각 행 별로 병렬 처리하는 것과 같이 독립적인 처리가 가능한 부분을 분리하여 병렬 처리하고, 정보블록의 모든 정보 단위 블록이 아닌 -1이 아닌 시프트 웨이트 값에 대응되는 정보 단위 블록에 대해서만 순환 시프트를 수행하므로 복잡도를 개선할 뿐만 아니라 부호화 과정에서의 시간 지연을 줄이는 효과를 가져올 수 있다.
이상에서 본 발명의 실시 예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
본 발명의 실시 예에 따르면, 블록 LDPC 부호의 패리티블록 생성 과정 중
Figure 112006091089771-pat00027
Figure 112006091089771-pat00028
에 대응하는 행렬 곱을 제거하고, 이에 따라 패리티 검사 행렬 전체가 아닌 부분블록 A, B 및 C에 대응되는 시프트 웨이트만을 저장하여 사용하므로 패리티 검사 행렬을 저장하기 위한 메모리의 양을 현저히 줄이는 효과가 있다.
또한, 정보 단위 블록의 순환 시프트 동작 및 순환 시프트 결과의 누적가산동작과 같이 독립적인 처리가 가능한 부분을 분리하여 병렬 처리하고, 정보블록의 모든 정보 단위 블록이 아닌 -1이 아닌 시프트 웨이트 값에 대응되는 정보 단위 블 록에 대해서만 순환 시프트를 수행하므로 복잡도를 개선할 뿐만 아니라 부호화 과정에서의 시간 지연을 줄이는 효과를 가져올 수 있다.

Claims (20)

  1. 블록 저밀도 패리티 검사 부호의 패리티 검사행렬을 저장하는 방법에 있어서,
    상기 패리티 검사행렬의 시프트 웨이트를 부분블록 별로 분류하는 단계; 및
    상기 패리티 검사행렬 중 부분블록 A, 부분블록 B 및 부분블록 C에 대응하는 시프트 웨이트만을 저장하는 단계
    를 포함하는 패리티 검사행렬 저장 방법.
  2. 제 1항에 있어서,
    상기 저장하는 단계에서,
    상기 부분블록 A, 부분블록 B 및 부분블록 C에 대응하는 시프트 웨이트 중에서 영행렬에 대응되는 시프트 웨이트를 제외한 나머지 시프트 웨이트만을 저장하는 것을 특징으로 하는 패리티 검사행렬 저장 방법.
  3. 제 2항에 있어서,
    상기 저장하는 단계는,
    상기 부분블록 A, 부분블록 B 및 부분블록 C에 대응하는 시프트 웨이트 중에서 영행렬에 대응되는 시프트 웨이트를 제외한 나머지 시프트 웨이트에 대응되는 위치정보를 저장하는 단계
    를 포함하는 것을 특징으로 하는 패리티 검사행렬 저장 방법.
  4. 제 3항에 있어서,
    상기 위치정보는,
    상기 부분블록 A의 경우 행 번호 및 열 번호에 대응되고,
    상기 부분블록 B의 경우 행 번호에 대응되고,
    상기 부분블록 C의 경우 열 번호에 대응되는 것을 특징으로 하는 패리티 검사행렬 저장 방법.
  5. 부분블록-여기서 부분블록은 패리티 검사행렬을 블록 저밀도 패리티 검사의 구조적 특성에 대응하여 분할한 것임- A 및 C의 시프트 웨이트를 이용하여, 정보블록에 포함된 정보 단위 블록을 순환 시프트하는 단계;
    상기 순환 시프트한 결과를 누적가산하여 상기 부분블록 A에 대응하는 하나 이상의 패리티부분블록과, 상기 부분블록 A 및 C에 대응하는 제1 패리티블록을 생성하는 단계;
    부분블록 B의 시프트 웨이트에 대응하여 상기 제1 패리티블록을 순환 시프트한 결과를 상기 패리티부분블록과 가산하고, 가산한 결과를 나열하여 제2 패리티블록을 생성하는 단계; 및
    상기 정보블록, 상기 제1 패리티블록 및 상기 제2 패리티블록을 조합하여 부호어를 생성하는 단계
    를 포함하는 블록 저밀도 패리티 검사 부호화 방법.
  6. 제 5항에 있어서,
    상기 정보 단위 블록을 순환 시프트 하는 단계 이전에,
    상기 패리티 검사행렬의 시프트 웨이트를 메모리에 저장하는 단계를 더 포함하며,
    상기 패리티 검사행렬의 시프트 웨이트를 메모리에 저장하는 단계는,
    부호화 율에 대응하여 상기 패리티 검사 행렬을 생성하는 단계;
    상기 패리티 검사행렬을 시프트 웨이트 행렬로 표현하는 단계;
    상기 시프트 웨이트 행렬을 하나 이상의 부분블록으로 분류하는 단계; 및
    상기 시프트 웨이트 행렬 내의 영행렬이 아닌 단위행렬에 대응되는 시프트 웨이트 중 상기 부분블록 A, 부분블록 B 및 부분블록 C에 대응되는 시프트 웨이트의 위치정보 및 시프트 웨이트를 저장하는 단계를 포함하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 방법.
  7. 제 5항 또는 제6항에 있어서,
    상기 정보 단위 블록을 순환 시프트 하는 단계는,
    상기 부분블록 A 및 C의 시프트 웨이트를 읽어오는 단계; 및
    상기 부분블록 A 및 C의 시프트 웨이트에 대응하여 상기 정보 단위 블록을 순환 시프트하는 단계를 포함하고,
    상기 패리티부분블록 및 상기 제1 패리티 부분블록을 생성하는 단계는,
    순환 시프트한 결과를 상기 부분블록 A의 각 행 별로 누적 가산하여 상기 패리티부분블록을 생성하는 단계; 및
    상기 부분블록 A 및 C의 시프트 웨이트에 대응하여 상기 정보 단위 블록을 순환 시프트한 결과를 모두 가산하여 제1 패리티블록을 생성하는 단계를 포함하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 방법.
  8. 제 7항에 있어서,
    상기 시프트 웨이트를 읽어오는 단계는,
    상기 시프트 웨이트에 대응하는 위치정보를 읽어오는 단계를 포함하며,
    상기 정보 단위 블록을 순환 시프트하는 단계는,
    상기 시프트 웨이트를 이용하여 상기 위치정보에 대응되는 상기 정보 단위 블록을 순환 시프트하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 방법.
  9. 제 7항에 있어서,
    상기 패리티부분블록을 생성하는 단계는,
    상기 부분블록 A의 행 중에서 상기 패리티부분블록에 대응되는 행의 위치정보 및 시프트 웨이트를 이용하여 상기 위치정보에 대응되는 모든 정보 단위 블록의 순환 시프트한 결과를 누적가산하여 상기 패리티부분블록에 대응되는 행의 이전 행 까지 순환 시프트한 결과를 누적가산한 값에 더하여 생성하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 방법.
  10. 제 7항에 있어서,
    상기 부분블록 B의 시프트 웨이트를 읽어오는 단계;
    상기 제1 패리티블록을 상기 부분블록 B의 시프트 웨이트에 대응하여 순환 시프트하는 단계;
    상기 패리티부분블록과 상기 제1 패리티블록을 순환 시프트한 결과를 가산하는 단계; 및
    상기 패리티부분블록과 상기 제1 패리티블록을 순환 시프트한 결과의 가산 결과를 나열하여 제2 패리티블록을 생성하는 단계
    를 포함하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 방법.
  11. 제 7항에 있어서,
    블록 저밀도 패리티 검사 부호화 과정에서 수행되는 가산은 배타적 논리합을 이용하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 방법.
  12. 제 10항에 있어서,
    상기 패리티부분블록과 상기 제1 패리티블록을 순환 시프트한 결과의 가산 결과를 나열하는 순서는 상기 패리티부분블록의 순서에 대응하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 방법.
  13. 블록 저밀도 패리티 검사 부호의 패리티 검사행렬의 시프트 웨이트를 부분블록-여기서 부분블록은 패리티 검사행렬을 블록 저밀도 패리티 검사 부호의 구조적 특성에 대응하여 분할한 것임-별로 분류하여 저장하는 제1 메모리;
    상기 제1 메모리로부터 읽어온 부분블록 A 및 C에 대응되는 시프트 웨이트를 이용해 정보 단위 블록-여기서 정보 단위 블록은 정보블록을 설정된 크기로 분할한 것임-을 순환 시프트하고 누적가산하여 하나 이상의 패리티부분블록과 제1 패리티블록을 출력하는 제1 부호화부;
    상기 제1 메모리로부터 읽어온 부분블록 B에 대응되는 시프트 웨이트를 이용해 상기 제1 부호화부로부터 입력된 상기 제1 패리티블록을 순환 시프트한 결과와 상기 패리티부분블록을 가산한 뒤 나열하여 제2 패리티블록을 출력하는 제2 부호화부; 및
    상기 정보 단위 블록, 상기 제1 부호화부로부터 입력된 상기 제1 패리티블록 및 상기 제2 부호화부로부터 입력된 상기 제2 패리티블록을 조합하여 부호어를 출력하는 조합부
    를 포함하는 블록 저밀도 패리티 검사 부호화 장치.
  14. 제 13항에 있어서,
    상기 정보블록을 정보 단위 블록으로 분할하여 저장하는 제2 메모리
    를 더 포함하고,
    상기 제1 부호화부는 상기 제2 메모리로부터 읽어온 상기 정보 단위 블록을 이용하여 상기 패리티부분블록 및 상기 제1 패리티블록을 생성하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 장치.
  15. 제 13항 또는 제 14항에 있어서,
    상기 제1 부호화부는,
    상기 정보 단위 블록을 상기 부분블록 A의 시프트 웨이트를 이용하여 순환 시프트한 결과를 출력하는 제1 순환 시프트부;
    상기 정보 단위 블록을 상기 부분블록 C의 시프트 웨이트를 이용하여 순환 시프트한 결과를 출력하는 제2 순환 시프트부;
    상기 제1 순환 시프트부에서 출력되는 순환 시프트한 결과를 상기 부분블록의 각 행 별로 누적가산하여 생성된 상기 패리티부분블록을 출력하는 제1 가산부; 및
    상기 제1 순환 시프트부에서 출력되는 모든 순환 시프트한 결과를 가산한 결과에 대응되는 패리티부분블록과 상기 제2 순환 시프트부에서 출력된 순환 시프트한 결과를 더하여 상기 제1 패리티블록을 출력하는 제1 패리티블록 생성부
    를 포함하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 장치.
  16. 제 15항에 있어서,
    상기 제1 메모리는 시프트 웨이트에 대응되는 위치정보를 저장하고,
    상기 제1 부호화부는,
    상기 제1 메모리로부터 순환 시프트에 사용할 시프트 웨이트에 대응되는 위치정보를 읽어오고, 상기 위치정보에 하여 상기 정보 단위 블록을 상기 제2 메모리로부터 읽어와 출력하는 주소생성부를 더 포함하고,
    상기 제1 순환 시프트부는 상기 주소생성부로부터 출력되는 상기 정보단위 블록을 읽어와 상기 위치정보에 대응되는 시프트 웨이트로 순환 시프트하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 장치.
  17. 제 15항에 있어서,
    상기 제2 부호화부는,
    상기 정보 단위 블록을 상기 부분블록 B의 시프트 웨이트를 이용하여 순환 시프트한 결과를 출력하는 제3 순환 시프트부; 및
    상기 제3 순환 시프트부로부터 출력되는 순환 시프트한 결과와 상기 패리티부분블록을 가산하여 나열한 상기 제2 패리티블록을 출력하는 제2 패리티 생성부
    를 포함하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 장치.
  18. 제 15항에 있어서,
    상기 제1 메모리는 상기 부분블록 중 상기 부분블록 A, 상기 부분블록 C 및 상기 부분블록 B에 대응되는 시프트 웨이트 중에서 영행렬에 대응되는 시프트 웨이 트를 제외한 나머지 시프트 웨이트를 저장하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 장치.
  19. 제 15항에 있어서,
    상기 제1 순환 시프트부는,
    상기 부분블록 A의 각 행 별로 독립적으로 순환 시프트를 수행하며, 상기 부분블록 A의 각 행에 대응되는 순환 시프트 동작은 병렬로 수행되는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 장치.
  20. 제 19항에 있어서,
    상기 제2 순환 시프트부는,
    상기 제1 순환 시프트부에서 수행하는 순환 시프트 동작과 독립적으로 순환 시프트를 수행하며, 상기 제1 순환 시프트부에서 수행하는 순환 시프트 동작과 병렬로 순환 시프트를 수행하는 것을 특징으로 하는 블록 저밀도 패리티 검사 부호화 장치.
KR1020060124575A 2006-12-08 2006-12-08 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치 KR100808664B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060124575A KR100808664B1 (ko) 2006-12-08 2006-12-08 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
US11/861,884 US8190967B2 (en) 2006-12-08 2007-09-26 Parity check matrix storing method, block LDPC coding method, and apparatus using parity check matrix storing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060124575A KR100808664B1 (ko) 2006-12-08 2006-12-08 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR100808664B1 true KR100808664B1 (ko) 2008-03-07

Family

ID=39397260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060124575A KR100808664B1 (ko) 2006-12-08 2006-12-08 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치

Country Status (2)

Country Link
US (1) US8190967B2 (ko)
KR (1) KR100808664B1 (ko)

Families Citing this family (114)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7466992B1 (en) 2001-10-18 2008-12-16 Iwao Fujisaki Communication device
US7127271B1 (en) 2001-10-18 2006-10-24 Iwao Fujisaki Communication device
US7107081B1 (en) 2001-10-18 2006-09-12 Iwao Fujisaki Communication device
US8090402B1 (en) 2003-09-26 2012-01-03 Iwao Fujisaki Communication device
US8121635B1 (en) 2003-11-22 2012-02-21 Iwao Fujisaki Communication device
US8208954B1 (en) 2005-04-08 2012-06-26 Iwao Fujisaki Communication device
US8161363B2 (en) * 2006-12-04 2012-04-17 Samsung Electronics Co., Ltd Apparatus and method to encode/decode block low density parity check codes in a communication system
US8559983B1 (en) 2007-05-03 2013-10-15 Iwao Fujisaki Communication device
US7890089B1 (en) 2007-05-03 2011-02-15 Iwao Fujisaki Communication device
US8676273B1 (en) 2007-08-24 2014-03-18 Iwao Fujisaki Communication device
TW200926612A (en) * 2007-12-07 2009-06-16 Univ Nat Chiao Tung Multi-mode parallelism data exchange method and its device
US8775717B2 (en) 2007-12-27 2014-07-08 Sandisk Enterprise Ip Llc Storage controller for flash memory including a crossbar switch connecting a plurality of processors with a plurality of internal memories
US8744720B1 (en) 2007-12-27 2014-06-03 Iwao Fujisaki Inter-vehicle middle point maintaining implementer
US20110113312A1 (en) * 2008-06-09 2011-05-12 Hideki Kobayashi Check matrix generating method, check matrix, decoding apparatus, and decoding method
US8340726B1 (en) 2008-06-30 2012-12-25 Iwao Fujisaki Communication device
US8452307B1 (en) 2008-07-02 2013-05-28 Iwao Fujisaki Communication device
CN102077471B (zh) * 2008-07-04 2014-03-12 三菱电机株式会社 校验矩阵生成装置、校验矩阵生成方法、校验矩阵生成程序、发送装置、接收装置以及通信系统
FR2953666B1 (fr) * 2009-12-09 2012-07-13 Commissariat Energie Atomique Procede de codage ldpc a redondance incrementale
US8788922B2 (en) * 2011-02-28 2014-07-22 Apple Inc Error correction codes for incremental redundancy
US8910020B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc Intelligent bit recovery for flash memory
US8909982B2 (en) 2011-06-19 2014-12-09 Sandisk Enterprise Ip Llc System and method for detecting copyback programming problems
US8862960B2 (en) * 2011-10-10 2014-10-14 Lsi Corporation Systems and methods for parity shared data encoding
US8793543B2 (en) 2011-11-07 2014-07-29 Sandisk Enterprise Ip Llc Adaptive read comparison signal generation for memory systems
US8954822B2 (en) * 2011-11-18 2015-02-10 Sandisk Enterprise Ip Llc Data encoder and decoder using memory-specific parity-check matrix
US8924815B2 (en) 2011-11-18 2014-12-30 Sandisk Enterprise Ip Llc Systems, methods and devices for decoding codewords having multiple parity segments
US9048876B2 (en) 2011-11-18 2015-06-02 Sandisk Enterprise Ip Llc Systems, methods and devices for multi-tiered error correction
US9699263B1 (en) 2012-08-17 2017-07-04 Sandisk Technologies Llc. Automatic read and write acceleration of data accessed by virtual machines
US9501398B2 (en) 2012-12-26 2016-11-22 Sandisk Technologies Llc Persistent storage device with NVRAM for staging writes
US9612948B2 (en) 2012-12-27 2017-04-04 Sandisk Technologies Llc Reads and writes between a contiguous data block and noncontiguous sets of logical address blocks in a persistent storage device
US9239751B1 (en) 2012-12-27 2016-01-19 Sandisk Enterprise Ip Llc Compressing data from multiple reads for error control management in memory systems
US9454420B1 (en) 2012-12-31 2016-09-27 Sandisk Technologies Llc Method and system of reading threshold voltage equalization
US9003264B1 (en) 2012-12-31 2015-04-07 Sandisk Enterprise Ip Llc Systems, methods, and devices for multi-dimensional flash RAID data protection
US9214959B2 (en) 2013-02-19 2015-12-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for skip layer data decoding
US9214965B2 (en) 2013-02-20 2015-12-15 Sandisk Enterprise Ip Llc Method and system for improving data integrity in non-volatile storage
US9329928B2 (en) 2013-02-20 2016-05-03 Sandisk Enterprise IP LLC. Bandwidth optimization in a non-volatile memory system
US9124300B2 (en) * 2013-02-28 2015-09-01 Sandisk Technologies Inc. Error correction coding in non-volatile memory
US9870830B1 (en) 2013-03-14 2018-01-16 Sandisk Technologies Llc Optimal multilevel sensing for reading data from a storage medium
US9367246B2 (en) 2013-03-15 2016-06-14 Sandisk Technologies Inc. Performance optimization of data transfer for soft information generation
US9136877B1 (en) 2013-03-15 2015-09-15 Sandisk Enterprise Ip Llc Syndrome layered decoding for LDPC codes
US9244763B1 (en) 2013-03-15 2016-01-26 Sandisk Enterprise Ip Llc System and method for updating a reading threshold voltage based on symbol transition information
US9009576B1 (en) 2013-03-15 2015-04-14 Sandisk Enterprise Ip Llc Adaptive LLR based on syndrome weight
US9236886B1 (en) 2013-03-15 2016-01-12 Sandisk Enterprise Ip Llc Universal and reconfigurable QC-LDPC encoder
US9092350B1 (en) 2013-03-15 2015-07-28 Sandisk Enterprise Ip Llc Detection and handling of unbalanced errors in interleaved codewords
US9170941B2 (en) 2013-04-05 2015-10-27 Sandisk Enterprises IP LLC Data hardening in a storage system
US10049037B2 (en) 2013-04-05 2018-08-14 Sandisk Enterprise Ip Llc Data management in a storage system
US9274889B2 (en) 2013-05-29 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data processing using global iteration result reuse
US9159437B2 (en) 2013-06-11 2015-10-13 Sandisk Enterprise IP LLC. Device and method for resolving an LM flag issue
US8959414B2 (en) 2013-06-13 2015-02-17 Lsi Corporation Systems and methods for hybrid layer data decoding
US8917466B1 (en) 2013-07-17 2014-12-23 Lsi Corporation Systems and methods for governing in-flight data sets in a data processing system
US8817404B1 (en) 2013-07-18 2014-08-26 Lsi Corporation Systems and methods for data processing control
US9043517B1 (en) 2013-07-25 2015-05-26 Sandisk Enterprise Ip Llc Multipass programming in buffers implemented in non-volatile data storage systems
US9384126B1 (en) 2013-07-25 2016-07-05 Sandisk Technologies Inc. Methods and systems to avoid false negative results in bloom filters implemented in non-volatile data storage systems
US9524235B1 (en) 2013-07-25 2016-12-20 Sandisk Technologies Llc Local hash value generation in non-volatile data storage systems
US9196299B2 (en) 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
US8908307B1 (en) 2013-08-23 2014-12-09 Lsi Corporation Systems and methods for hard disk drive region based data encoding
US9235509B1 (en) 2013-08-26 2016-01-12 Sandisk Enterprise Ip Llc Write amplification reduction by delaying read access to data written during garbage collection
US9639463B1 (en) 2013-08-26 2017-05-02 Sandisk Technologies Llc Heuristic aware garbage collection scheme in storage systems
US9519577B2 (en) 2013-09-03 2016-12-13 Sandisk Technologies Llc Method and system for migrating data between flash memory devices
US9442670B2 (en) 2013-09-03 2016-09-13 Sandisk Technologies Llc Method and system for rebalancing data stored in flash memory devices
US9400797B2 (en) 2013-09-17 2016-07-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for recovered data stitching
US9158349B2 (en) 2013-10-04 2015-10-13 Sandisk Enterprise Ip Llc System and method for heat dissipation
US9219503B2 (en) 2013-10-16 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-algorithm concatenation encoding and decoding
US9298608B2 (en) 2013-10-18 2016-03-29 Sandisk Enterprise Ip Llc Biasing for wear leveling in storage systems
US9442662B2 (en) 2013-10-18 2016-09-13 Sandisk Technologies Llc Device and method for managing die groups
US9436831B2 (en) 2013-10-30 2016-09-06 Sandisk Technologies Llc Secure erase in a memory device
US9263156B2 (en) 2013-11-07 2016-02-16 Sandisk Enterprise Ip Llc System and method for adjusting trip points within a storage device
US9244785B2 (en) 2013-11-13 2016-01-26 Sandisk Enterprise Ip Llc Simulated power failure and data hardening
US9152555B2 (en) 2013-11-15 2015-10-06 Sandisk Enterprise IP LLC. Data management with modular erase in a data storage system
US9703816B2 (en) 2013-11-19 2017-07-11 Sandisk Technologies Llc Method and system for forward reference logging in a persistent datastore
US9323606B2 (en) 2013-11-21 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for FAID follower decoding
US9520197B2 (en) 2013-11-22 2016-12-13 Sandisk Technologies Llc Adaptive erase of a storage device
US9520162B2 (en) 2013-11-27 2016-12-13 Sandisk Technologies Llc DIMM device controller supervisor
US9582058B2 (en) 2013-11-29 2017-02-28 Sandisk Technologies Llc Power inrush management of storage devices
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9129665B2 (en) 2013-12-17 2015-09-08 Sandisk Enterprise Ip Llc Dynamic brownout adjustment in a storage device
US9553608B2 (en) * 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
US9549457B2 (en) 2014-02-12 2017-01-17 Sandisk Technologies Llc System and method for redirecting airflow across an electronic assembly
US9497889B2 (en) 2014-02-27 2016-11-15 Sandisk Technologies Llc Heat dissipation for substrate assemblies
US9703636B2 (en) 2014-03-01 2017-07-11 Sandisk Technologies Llc Firmware reversion trigger and control
US9519319B2 (en) 2014-03-14 2016-12-13 Sandisk Technologies Llc Self-supporting thermal tube structure for electronic assemblies
US9348377B2 (en) 2014-03-14 2016-05-24 Sandisk Enterprise Ip Llc Thermal isolation techniques
US9485851B2 (en) 2014-03-14 2016-11-01 Sandisk Technologies Llc Thermal tube assembly structures
US9454448B2 (en) 2014-03-19 2016-09-27 Sandisk Technologies Llc Fault testing in storage devices
US9390814B2 (en) 2014-03-19 2016-07-12 Sandisk Technologies Llc Fault detection and prediction for data storage elements
US9448876B2 (en) 2014-03-19 2016-09-20 Sandisk Technologies Llc Fault detection and prediction in storage devices
US9390021B2 (en) 2014-03-31 2016-07-12 Sandisk Technologies Llc Efficient cache utilization in a tiered data structure
US9626400B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Compaction of information in tiered data structure
US9626399B2 (en) 2014-03-31 2017-04-18 Sandisk Technologies Llc Conditional updates for reducing frequency of data modification operations
US9697267B2 (en) 2014-04-03 2017-07-04 Sandisk Technologies Llc Methods and systems for performing efficient snapshots in tiered data structures
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
US9645749B2 (en) 2014-05-30 2017-05-09 Sandisk Technologies Llc Method and system for recharacterizing the storage density of a memory device or a portion thereof
US9703491B2 (en) 2014-05-30 2017-07-11 Sandisk Technologies Llc Using history of unaligned writes to cache data and avoid read-modify-writes in a non-volatile storage device
US10656842B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Using history of I/O sizes and I/O sequences to trigger coalesced writes in a non-volatile storage device
US10162748B2 (en) 2014-05-30 2018-12-25 Sandisk Technologies Llc Prioritizing garbage collection and block allocation based on I/O history for logical address regions
US10372613B2 (en) 2014-05-30 2019-08-06 Sandisk Technologies Llc Using sub-region I/O history to cache repeatedly accessed sub-regions in a non-volatile storage device
US9070481B1 (en) 2014-05-30 2015-06-30 Sandisk Technologies Inc. Internal current measurement for age measurements
US10146448B2 (en) 2014-05-30 2018-12-04 Sandisk Technologies Llc Using history of I/O sequences to trigger cached read ahead in a non-volatile storage device
US10656840B2 (en) 2014-05-30 2020-05-19 Sandisk Technologies Llc Real-time I/O pattern recognition to enhance performance and endurance of a storage device
US10114557B2 (en) 2014-05-30 2018-10-30 Sandisk Technologies Llc Identification of hot regions to enhance performance and endurance of a non-volatile storage device
US9093160B1 (en) 2014-05-30 2015-07-28 Sandisk Technologies Inc. Methods and systems for staggered memory operations
US8891303B1 (en) 2014-05-30 2014-11-18 Sandisk Technologies Inc. Method and system for dynamic word line based configuration of a three-dimensional memory device
US9652381B2 (en) 2014-06-19 2017-05-16 Sandisk Technologies Llc Sub-block garbage collection
US9768808B2 (en) 2015-04-08 2017-09-19 Sandisk Technologies Llc Method for modifying device-specific variable error correction settings
US9606737B2 (en) 2015-05-20 2017-03-28 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to extend life of flash-based storage devices and preserve over-provisioning
US9639282B2 (en) 2015-05-20 2017-05-02 Sandisk Technologies Llc Variable bit encoding per NAND flash cell to improve device endurance and extend life of flash-based storage devices
US9830084B2 (en) 2015-12-03 2017-11-28 Sandisk Technologies Llc Writing logical groups of data to physical locations in memory using headers
US10013179B2 (en) 2015-12-03 2018-07-03 Sandisk Technologies Llc Reading logical groups of data from physical locations in memory using headers
US10606697B2 (en) 2018-06-21 2020-03-31 Goke Us Research Laboratory Method and apparatus for improved data recovery in data storage systems
US10771189B2 (en) 2018-12-18 2020-09-08 Intel Corporation Forward error correction mechanism for data transmission across multi-lane links
US11637657B2 (en) * 2019-02-15 2023-04-25 Intel Corporation Low-latency forward error correction for high-speed serial links
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US11296994B2 (en) 2019-05-13 2022-04-05 Intel Corporation Ordered sets for high-speed interconnects
US11740958B2 (en) 2019-11-27 2023-08-29 Intel Corporation Multi-protocol support on common physical layer

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003188737A (ja) * 2001-12-13 2003-07-04 Sony Corp インターリーブ処理方法及びインターリーブ処理装置
JP2005136990A (ja) 2003-10-27 2005-05-26 Directv Group Inc 減少されたメモリの低密度パリティチェック(ldpc)コードを提供する方法および装置
KR100550101B1 (ko) 2003-12-22 2006-02-08 한국전자통신연구원 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
JP2006100941A (ja) * 2004-09-28 2006-04-13 Samsung Yokohama Research Institute Co Ltd 信号処理装置、低密度パリティ検査符号の符号化方法および復号方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049793A (en) * 1996-11-15 2000-04-11 Tomita; Kenichi System for building an artificial neural network
US7162684B2 (en) * 2003-01-27 2007-01-09 Texas Instruments Incorporated Efficient encoder for low-density-parity-check codes
US7395494B2 (en) * 2003-12-22 2008-07-01 Electronics And Telecommunications Research Institute Apparatus for encoding and decoding of low-density parity-check codes, and method thereof
US7506238B2 (en) * 2004-08-13 2009-03-17 Texas Instruments Incorporated Simplified LDPC encoding for digital communications
KR100669152B1 (ko) * 2004-11-25 2007-01-15 한국전자통신연구원 저밀도 패리티 검사 코드의 부호화 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003188737A (ja) * 2001-12-13 2003-07-04 Sony Corp インターリーブ処理方法及びインターリーブ処理装置
JP2005136990A (ja) 2003-10-27 2005-05-26 Directv Group Inc 減少されたメモリの低密度パリティチェック(ldpc)コードを提供する方法および装置
KR100550101B1 (ko) 2003-12-22 2006-02-08 한국전자통신연구원 저밀도 패리티 검사 부호의 부호화와 복호 장치 및 그방법
JP2006100941A (ja) * 2004-09-28 2006-04-13 Samsung Yokohama Research Institute Co Ltd 信号処理装置、低密度パリティ検査符号の符号化方法および復号方法

Also Published As

Publication number Publication date
US20080140686A1 (en) 2008-06-12
US8190967B2 (en) 2012-05-29

Similar Documents

Publication Publication Date Title
KR100808664B1 (ko) 패리티 검사행렬 저장 방법 및 이를 이용한 블록 저밀도패리티 검사 부호화 방법 및 장치
CN101073205B (zh) 低密度奇偶校验编码器和解码器以及低密度奇偶校验编码和解码方法
CN109379086B (zh) 低复杂度的码率兼容的5g ldpc编码方法和编码器
JP4672016B2 (ja) 低密度パリティ検査行列を用いた符号化及び復号化方法
KR100502609B1 (ko) Ldpc 코드를 이용한 부호화기 및 부호화 방법
JP5875713B2 (ja) 送信機および受信機、並びに符号化率可変方法
KR100949519B1 (ko) 낮은 복잡도 및 고속 복호를 위한 패리티 검사행렬 생성방법과, 그를 이용한 저밀도 패리티 검사 부호의 부호화장치 및 그 방법
JP2007503755A (ja) 移動通信システムにおけるブロック低密度パリティ検査符号の符号化/復号化装置及び方法
JP5774237B2 (ja) 誤り訂正符号化方法および誤り訂正符号化装置
KR101216075B1 (ko) 채널 코드를 이용한 복호화 및 복호화 장치
KR100883654B1 (ko) 저밀도 패러티 검사 부호의 복호장치 및 방법
KR100918741B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
KR101077552B1 (ko) 복수의 기본 패리티 검사행렬을 이용한 저밀도 패리티 검사부호의 복호화 장치 및 그 방법
KR100943602B1 (ko) 통신 시스템에서 신호 수신 장치 및 방법
US8327215B2 (en) Apparatus and method for encoding LDPC code using message passing algorithm
US20100031116A1 (en) Method for encoding low density parity check codes using result of checking previously specified parity bits
JP4645645B2 (ja) 復号装置及び検査行列生成方法
KR20090064709A (ko) Ldpc 부호의 패리티 검사 행렬 생성 장치 및 그방법과, 그를 이용한 ldpc 부/복호화 장치
JP2009182421A (ja) 復号化方法及び復号化装置
JP2011072020A (ja) 復号装置
KR100956592B1 (ko) 메시지 전달 알고리즘을 이용한 ldpc 코드 부호화 장치및 그 방법
KR100800775B1 (ko) 이동 통신 시스템에서 채널 부호화 장치 및 방법
KR100678521B1 (ko) 비균일 저밀도 패리티 검사 부호의 부호화 장치 및 방법
KR20190063431A (ko) 저지연 및 고신뢰도 특성을 가지는 ldpc 부호화 장치 및 방법
JP2010041628A (ja) 符号化装置、符号化方法および符号化プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130130

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140128

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160128

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170125

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180130

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190130

Year of fee payment: 12