KR101622956B1 - 비경쟁 기반 병렬 처리 다중모드 엘디피씨 복호 장치 - Google Patents

비경쟁 기반 병렬 처리 다중모드 엘디피씨 복호 장치 Download PDF

Info

Publication number
KR101622956B1
KR101622956B1 KR1020090120993A KR20090120993A KR101622956B1 KR 101622956 B1 KR101622956 B1 KR 101622956B1 KR 1020090120993 A KR1020090120993 A KR 1020090120993A KR 20090120993 A KR20090120993 A KR 20090120993A KR 101622956 B1 KR101622956 B1 KR 101622956B1
Authority
KR
South Korea
Prior art keywords
ldpc
data
decoding
unit
crisp
Prior art date
Application number
KR1020090120993A
Other languages
English (en)
Other versions
KR20100066395A (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
Priority claimed from US12/378,775 external-priority patent/US8296640B2/en
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Publication of KR20100066395A publication Critical patent/KR20100066395A/ko
Application granted granted Critical
Publication of KR101622956B1 publication Critical patent/KR101622956B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/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/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1114Merged schedule message passing algorithm with storage of sums of check-to-bit node messages or sums of bit-to-check node messages, e.g. in order to increase the memory efficiency
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • H03M13/1117Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
    • H03M13/1122Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1134Full parallel processing, i.e. all bit nodes or check nodes are processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • H03M13/1165QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
    • 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
    • H03M13/1188Parity 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 wherein in the part with the double-diagonal at least one column has an odd column weight equal or greater than three
    • 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
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6519Support of multiple transmission or communication standards
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/65253GPP LTE including E-UTRA
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6527IEEE 802.11 [WLAN]
    • 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/6522Intended application, e.g. transmission or communication standard
    • H03M13/6544IEEE 802.16 (WIMAX and broadband wireless access)
    • 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
    • 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/6569Implementation on processors, e.g. DSPs, or software implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L27/00Modulated-carrier systems
    • H04L27/26Systems using multi-frequency codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0047Decoding adapted to other signal detection operation
    • H04L1/005Iterative decoding, including iteration between signal detection and decoding operation

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 무선통신네트워크에서 부호화된 전송 데이터를 복호하기 위한 장치 및 방법에 관한 것이다. 이때, 복호하기 위한 수신 장치는, 데이터를 수신하기 위한 적어도 하나의 수신 안테나와, 상기 적어도 하나의 수신 안테나를 통해 수신받은 데이터를 저장하기 위한 적어도 두 개의 메모리 유닛들과, LDPC(Low-Density Parity-Check) 복호 방식(operation)을 수행하는 적어도 하나의 복호기를 포함하고, 각각의 복호기는, 복호 행렬(decoding matrix)의 일부분을 이용하여 상기 수신받은 데이터의 적어도 일부분을 독립적으로 복호하고, 다른 적어도 하나의 복호기와 상기 LDPC 복호 방식을 연동한다.
복호, LPDC(Low-Density Parity-Check), 단위 복호기, 복호 행렬

Description

비경쟁 기반 병렬 처리 다중모드 엘디피씨 복호 장치{CONTENTION-FREE PARALLEL PROCESSING MULTIMODE LDPC DECODER}
본 발명은 무선통신장치에 관한 것으로서, 특히, 수신 데이터를 복호하기 위한 무선 통신 장치에 관한 것이다.
LDPC(Low-Density Parity-Check) 코드는 잡음 전송 채널을 통해 메시지를 전송을 위한 에러 보정 코드이다. 상기 LDPC 코드는 선형 블록 코드로 분류된다.
LDPC 코드와 다른 에러 보정 코드가 완벽한 전송을 보장할 수 없다. 하지만, 상기 LDPC 코드는 정보의 손실 확률을 원하는 만큼 줄일 수 있다. LDPC 코드는 샤논의 한계(Shannon Limit)로 알려져 있는 이론적인 최대 데이터 전송률을 허용하는 첫 번째 코드이다. LDPC 코드는 샤논의 한계의 0.0045dB로 수행할 수 있다.
LDPC 코드는 1963년 개발 당시에는 실행하기에 비현실적이었다. 1993년에 발견된 터보 코드(Turbo code)는 1990년대 후반 선택된 코딩 기법이 되었다. 상기 터보 코드는 우주 공간(deep-space) 위성 통신 같은 응용프로그램을 위해 사용된다. LDPC는 복잡한 처리를 필요로 하지만 2007년에 발견된 가장 효율적인 코딩 기법이다. LDPC 코드는 최소 거리 중 가장 큰 값(이하, dmin이라 칭함)을 산출하고, 복호 복잡도를 제거할 수 있다.
따라서, 본 발명의 목적은 부호화된 전송 데이터를 복호할 수 있는 수신 장치를 제공함에 있다.
본 발명의 다른 목적은 부호화된 전송 데이터를 복호할 수 있는 복호기를 제공함에 있다.
본 발명의 또 다른 목적은 무선통신네트워크에서 전송 데이터를 수신 및 복호하기 위한 방법을 제공함에 있다.
본 발명의 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 수신 단은 데이터를 수신받기 위한 적어도 하나의 수신 안테나와, 상기 수신받은 데이터를 저장하기 위한 적어도 두 개의 저장부들과, LDPC 복호 방식을 수행하는 적어도 하나의 복호기를 포함하여 구성된다. 각각의 복호기는 복호 행렬의 일부분을 이용하여 수신받은 데이터의 일부분을 독립적으로 복호한다. 추가적으로, 각각의 복호기는 다른 복호기들과 협력하여 LDPC 복호 방식을 수행한다.
본 발명의 제 2 견지에 따르면, 상기 복호기는 데이터를 저장하기 위한 적어도 두 개의 메모리 유닛들을 포함하여 구성된다. 상기 복호기는 다수 개의 메모리 유닛들 중 어느 하나에 저장된 복호 행렬과 적어도 하나의 단위 복호기를 더 포함한다. 각각의 단위 복호기는 프로세서 배열과 다수 개의 명령어(instruction)들을 포 함한다. 다수 개의 명령어들 중 일부분은 명령어 제어기에 저장된다. 다수 개의 명령어들은 각각의 단위 복호기에서 LDPC복호 방식을 수행하고; 상기 단위 복호기에서 복호 행렬의 일부분을 이용하여 수신 데이터의 일부분을 독립적으로 복호하며; 상기 단위 복호기에서 LDPC 복호 방식을 위해 다른 단위 복호기들과 협력하도록 야기한다.
본 발명의 제 3 견지에 따르면, 상기 수신받은 데이터는 적어도 두 개의 메모리 유닛들에 저장된다. 적어도 하나의 복호기는 병렬 LDPC복호 방식을 수행한다. 각각의 복호기는 다른 복호기에서 수행된 복호 방식에 독립적으로 복호 행렬의 일부분을 이용하여 병렬 LDPC 복호 방식을 수행한다.
상술한 바와 같이 무선 통신시스템에서 LDPC 코드를 이용하는 경우, 다중 LDPC 복호기에서 메모리를 공유함으로써, 메모리 충돌을 방지할 수 있는 이점이 있다.
이하 본 발명의 바람직한 실시 예를 첨부된 도면을 참조하여 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의 된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하 본 발명은 무선통신네트워크에서 전송 데이터를 복호하기 위한 기술에 대해 설명한다.
도 1은 본 발명에 따른 ACK/NACK 메시지를 전송하기 위한 무선 네트워크의 구성을 도시하고 있다.
상기 도 1에 도시된 바와 같이 무선 네트워크(100)는 기지국들(101, 102, 103)을 포함한다. 미 도시되었지만 상기 무선 네트워크(100)는 다른 기지국들을 더 포함할 수도 있다. 상기 기지국(101)은 다른 기지국들(102, 103)과 통신한다. 또한, 상기 기지국(101)은 인터넷(103) 또는 IP 기반 네트워크와 통신한다.
상기 기지국(102)은 상기 기지국(101)을 통해 서비스 영역(120)에 위치하는 첫 번째 그룹의 단말(Subscriber Station)들을 상기 인터넷(130)에 접속시킨다. 즉, 상기 기지국(102)은 상기 첫 번째 그룹의 단말들로 상기 인터넷(130)의 무선 광대역 접속(wireless broadband access)을 제공한다. 상기 첫 번째 그룹의 단말은 작은 영역(SB: Small Business)에 위치하는 단말(111), 특정 기업(E: Enterprise)에 위치하는 단말(112), 와이파이(WiFi) 핫 스팟(Hotspot)에 위치하는 단말(113), 첫 번째 주택(R: Residence)에 위치하는 단말(114), 두 번째 주택(R)에 위치하는 단말(115) 및 이동 장치(Mobile device), 휴대폰(cell phone), 무선 랩탑(Wireless laptop), 무선 PDA(personal data assistant) 등을 포함하는 단말(116)을 포함한다.
기지국(103)은 상기 기지국(101)을 통해 서비스 영역(125)에 위치하는 두 번째 그룹의 단말들을 상기 인터넷(130)에 접속시킨다. 즉, 상기 기지국(103)은 상기 두 번째 그룹의 단말들로 상기 인터넷(130)의 무선 광대역 접속을 제공한다. 상기 두 번째 그룹의 단말들은 두 번째 주택(R)에 위치하는 단말(115) 및 이동 장치(Mobile device), 휴대폰(cell phone), 무선 휴대용 컴퓨터(Wireless laptop), 무선 PDA 등을 포함하는 단말(116)을 포함한다. 예를 들어, 상기 기지국들(101, 102, 103)은 OFDM 또는 OFDMA 통신방식을 이용하여 통신한다.
상기 기지국(101)은 상기 기지국들의 개수보다 많거나 적은 개수의 노드들과 통신할 수 있다. 더욱이, 상기 도 1에 도시된 바와 같이 6개의 단말들이 존재하는 동안, 상기 기지국(101)은 상기 무선 네트워크(110)에서 추가적인 단말을 위한 무선 광대역 접속을 제공할 수 있다. 또한, 상기 기지국(101)은 단말(115)와 단말(116)이 기지국(102)과 기지국(103)의 서비스 영역의 경계에 위치한 것을 인식한다. 상기 단말(115)과 단말(116)은 각각 상기 기지국(102) 또는 상기 기지국(103)과 통신하며 핸드오프 모드로 동작한다.
상기 단말들(111 내지 116)은 인터넷(130)을 통해 음성 서비스, 데이터 서비스, 비디오 서비스, 화상 회의 서비스 및 방송 서비스에 접속할 수 있다. 예를 들어, 상기 단말들(111 내지 116) 중 적어도 하나의 단말은 와이파이(WiFI) 무선랜(WLAN)의 AP(Access Point)에 접속할 수 있다. 상기 단말(116)은 무선 랩탑, PDA, 노트북, 휴대용 단말 및 다른 무선 장치 등을 포함하는 적어도 하나의 이동 단말을 나타낼 수 있다. 예를 들어, 상기 단말들(114, 115)은 무선통신이 가능한 PC(Personal Computer), 랩탑, 게이트웨이(Gateway) 및 다른 장치 등 나타낼 수 있다.
도 2a는 본 발명에 따른 OFDMA 전송 경로의 블록구성을 도시하고, 도 2b는 본 발명에 따른 OFDMA 수신 경로의 블록 구성을 도시한다. 상기 도 2a와 2b에서 상기 OFDMA 송신 경로는 상기 기지국(102)을 나타내고, 상기 OFDMA 수신 경로는 상기 단말(116)을 나타내는 것으로 가정한다. 그러나, 상기 OFDMA 송신 경로는 상기 단말(116)을 나타내고, 상기 OFDMA 수신 경로는 기지국(102)을 나타낼 수도 있다.
상기 기지국(102)의 전송 경로는 채널 부호화 블럭(channel coding and modulation block)(205), 직/병렬 변환 블럭(S/P: Serial-to-Parallel block)(210), FFT(Fast Fourier Transmform)연산 블럭(215), 병/직렬변환 블럭(P/S: Parallel-to-Serial block)(220)), CP(Cyclic Prefix) 삽입 블럭(225) 및 RF처리기(230)를 포함하여 구성된다. 상기 단말(116)의 수신 경로는 RF처리기(255), CP제거 블럭(260), 직/병렬 변환 블럭(265), IFFT(Inverse Fast Fourier Transform)연산 블럭(270), 병/직렬 변환 블럭(275) 및 채널 복호화 블럭(channel decoding and demodulation block)(280)을 포함하여 구성된다.
상기 도 2a와 b에 도시된 전송 경로와 수신 경로를 구성하는 적어도 하나의 성분은 소프트 웨어 구조로 나타낼 수 있다. 이때, 다른 적어도 하나의 성분은 하드웨어로 구성되거나 하드웨어와 소프트웨어가 혼합된 형태로 구성될 수 있다. 특히, 상기 FFT 연산 블럭(215)과 IFFT 연산블럭(270)은 소프트웨어 알고리즘으로 구성된다. 이때, 상기 FFT연산 블럭(215)과 상기 IFFT연산 블럭(270)의 크기(N)는 실 시 예에 따라 달라질 수 있다.
더욱이, 본원 발명에서 FFT와 IFFT 수단을 구체화시킨 것은 본원 발명을 명확히 나타내기 위한 것이지 권리 범위를 제한하는 것이 아니다. 이에 따라, 상기 FFT는 DFT(Discrete Fourier Transform)로 나타내고, IFFT는 IDFT(Inverse Discrete Fourier Transform)로 나타낼 수도 있다. 이때, 상기 DFT와 IDFT의 변수 N에 대한 값은 정수(integer)(i.e., 1, 2, 3, 4, etc.)로 나타내지만, 상기 FFT와 IFFT의 변수 N에 대한 값은 2의 제곱(i.e., 1, 2, 4, 8, 16, etc.)으로 나타낼 수 있다.
상기 채널 부호화 블럭(205)은 정보 비트의 집합을 수신한다. 이후, 상기 채널 부호화 블럭(205)은 주파수 영역 변조 심볼의 시퀀스를 생성하기 위해 입력 비트를 부호 및 변조한다. 상기 직/병렬 변환 블럭(210)는 상기 변조된 직렬 심볼을 IFFT 연산 블럭(215)과 FFT연산 블럭(270)의 크기(N)에 맞는 병렬 데이터로 변환한다. 예를 들어, 상기 직/병렬 변환 블럭(210)은 역 다중화기(De-multiplexes)로 구성된다. 상기 IFFT연산 블럭(215)은 IFFT연산을 통해 상기 크기가 N인 병렬 데이터 스트림을 시간 영역 신호로 변환시킨다. 상기 병/직렬 변환 블럭(220)은 상기 IFFT연산 블럭(215)으로부터 제공받은 시간 영역의 병렬 신호를 시간 영역의 직렬 신호로 변환한다. 예를 들어, 상기 병/직렬 변환 블럭(220)은 다중화기(Multiplexes)로 구성된다. 상기 CP삽입 블럭(225)은 상기 시간 영역의 신호에 보호 영역(CP)을 삽입한다. 상기 RF처리기(230)는 상기 CP삽입 블럭(225)으로부터 제공받은 신호를 무선 채널을 통해 전송하기 위한 고주파(RF: Radio Freuqency) 신호로 변환한다. 이 때, 상기 RF처리기(230)는 상기 신호를 고주파 신호로 변환하기 전에 기저대역에서 상기 신호를 필터링할 수도 있다.
상기 기지국(102)에서 전송한 RF신호는 무선 채널을 통과하여 상기 단말(116)에 도착한다. 이때, 상기 단말(116)은 상기 기지국(102)에서 신호를 전송하기 위해 수행한 동작을 역방향으로 수행한다. 상기 RF 처리기(255)는 상기 수신받은 신호를 기저대역 신호로 변환한다. 상기 CP제거 블럭(260)은 상기 RF처리기(255)로부터 제공받은 시간 영역의 기저대역 신호에서 보호대역(CP)을 제거한다. 상기 직/병렬 변환 블럭(265)은 상기 CP제거 블럭(260)으로부터 제공받은 직렬 신호를 병렬 신호로 변환한다. 상기 FFT연산 블럭(270)은 FFT연산을 통해 상기 직/병렬 변환 블럭(265)으로부터 제공받은 시간 영역의 병렬 신호를 주파수 영역의 병렬 신호로 변환시킨다. 상기 병/직렬 변환 블럭(275)은 상기 FFT 연산 블럭(270)으로부터 제공받은 주파수 영역의 병렬 신호를 변조된 데이터 심볼의 시퀀스로 변환한다. 상기 채널 복호화 블럭(280)은 상기 병/직렬 변환 블럭(275)으로부터 제공받은 변조된 심볼을 복조 및 복호하여 원본 데이터 스트림을 복원한다.
상기 도 1에 도시된 기지국들(101 내지 103)은 각각 다운링크를 통해 단말들(111 내지 116)로 신호를 전송하기 위한 송신 경로와 상향링크를 통해 상기 단말들(111 내지 116)로부터 신호를 수신받기 위한 수신 경로로 구성된다. 단말들(111 내지 116)은 상향링크를 통해 기지국들(101 내지 103)로 신호를 전송하기 위한 송신 경로와 하향링크를 통해 상기 기지국들(101 내지 103)로부터 신호를 수신받기 위한 수신 경로로 구성된다.
상기 채널 복호화 블럭(280)은 수신받은 데이터를 복호한다. 상기 채널 복호화 블럭(280)은 LDPC 복호 방식를 수행하는 복호기를 포함한다. 구체적으로 상기 채널 복호화 블럭(280)은 적어도 하나의 CRISP(Context-based operation Reconfigurable Instruction Set Processors)로 구성된다. 상기 CRISP에 대한 보다 상세한 내용은 2005년 5월 6일자로 미국에 출원된 출원번호(Application Number) 11,123,313인 "CONTEXT-BASED OPERATION RECONFIGURABLE INSTRUCTION SET PROCESSOR AND METHOD OF OPERATION" 특허, 2005년 6월 1일자로 미국에 출원된 출원번호 11,142,504인 특허, 2009년 1월 27일자로 미국 특허청에 등록된 등록번호(Patent Number) 7,483,933인 "CORRELATION ARCHITECTURE FOR USE IN SOFTWARE-DEFINED RADIO SYSTEMS" 특허, 2005년 6월 1일자로 미국에 출원된 출원번호 11,142,504인 "MULTISTANDARD SDR ARCHITECTURE USING CONTEXT-BASED OPERATION RECONFIGURABLE INSTRUCTION SET PROCESSORS"특허, 2005년 9월 13일자로 미국에 출원된 출원번호 11,225,479인 "TURBO CODE DECODER ARCHITECTURE FOR USE IN SOFTWARE-DEFINED RADIO SYSTEMS" 특허, 2006년 8월 9일 미국에 출원된 출원번호 11,501,577인 "MULTI-CODE CORRELATION ARCHITECTURE FOR USE IN SOFTWARE-DEFINED RADIO SYSTEMS" 특허 중 적어도 하나에 기술되어 있다.
상기 LDPC CRISP의 최상위(top-level) 구조(300)는 상기 도 3에 도시된 바와 같이 구성된다. 하지만, 상기 LDPC CRISP 최상위 구조(300)는 본원 발명의 특징을 벗어나지 않는 범위에서 다르게 구성될 수도 있다.
상기 LDPC CRISP(300)은 지시 복호&주소 생성기(instruction decoder & address generator block)(305)를 포함한다. 예를 들어, 상기 지시 복호 & 주소 생성기(305)는 프로그램 가능한 제한된 상태 머신(finite state machine)이다. 또한, 상기 지시 복호 & 주소 생성기(305)는 상기 LDPC CRISP(300)과 상기 LDPC CRISP(300)의 구성 성분을 제어하기 위한 제어기로 동작한다. 상기 LDPC CRISP(300)는 입력 버퍼(input buffer block)(310), 읽기 스위치(read switch block)(315), 프로세서 배열(processor array)(320), 쓰기 스위치(write switch block)(325) 및 외부 버퍼(extrinsic buffer block)(330)를 더 포함하여 구성된다. 미 도시되었지만, 상기 입력 버퍼(310)는 상기 외부 버퍼(330)를 포함할 수 있다. 예를 들어, 상기 입력 버퍼(310)와 상기 외부 버퍼(330)는 동일한 버퍼로 구성된다.
상기 지시 복호 & 주소 생성기(305)는 상기 LDPC CRISP(300)의 운영을 제어하기 위한 다수 개의 명령어(instruction)들을 포함한다. 상기 전체 명령어들 일부 명령어들은 상기 LDPC CRISP(300)의 운영에 따라 재구성될 수 있다. 상기 명령어들은 상기 LDPC CRISP(300)의 직렬 V 복호(Serial V decoding) 또는 직렬 C 복호(Serial-C decoding)에 따라 재구성될 수 있다. 추가적으로, 상기 명령어들은 범람 기법(flooding technique), 합-곱 기술(Sum Product technique) 및 최소 합 기술(min-sum technique) 중 어느 하나에 따른 상기 LDPC CRISP(300)의 복호 수행에 따라 재구성될 수도 있다.
상기 명령어들은 상기 LDPC CRISP(300)의 반복회수 변화에 따라 재구성될 수도 있다. 이때, 상기 LDPC CRISP(300)는 단순히 다수 반복 실행한다. 다른 예를 들 어, 상기 LDPC CRISP(300)는 특정 이벤트가 발생할 때까지 지속적으로 반복 수행하거나 특정 시간이 경과할 때까지 지속적으로 반복 수행한다. 더욱이, 상기 명령어들은 상기 LDPC CRISP(300)가 IEEE 802.16e 표준 및 DVB-S2(Digital Video Broadcasting - Satellite - Second Generation)와 IMT-Advanced(International Mobile Telecommunications - Advanced) 중 적어도 하나의 표준을 사용하는 시스템에서 복호를 수행하는지 여부에 따라 재구성될 수도 있다. 상기 LDPC CRISP(300)는 CDMA, OFDMA, IEEE 802.16e, 3세대 시스템 및 4세대 시스템 등과 같이 LDPC 복호 알고리즘을 지원하는 어떠한 시스템이든 지원한다.
추가적으로, 상기 명령어들은 복호에 사용하기 위한 LDPC CRISP 복호기 유닛의 개수 변화에 따라 재구성될 수도 있다. 상기 지시 복호 & 주소 발생기(305)는 상기 도 5a와 b에 도시된 바와 같이 H 행렬을 저장할 수도 있다.
상기 입력 버퍼(310)는 부호워드 또는 심볼과 같은 데이터를 수신한다. 상기 입력 버퍼(310)는 수신 데이터를 저장하기 위한 적어도 하나의 메모리 블럭들을 포함한다. 예를 들어, 상기 입력 버퍼(310)는 수신 데이터를 저장하기 위해 24개의 메모리 블럭들을 포함한다.
상기 읽기 스위치(315)는 상기 지시 복호 & 주소 생성기(305)로부터 H 행렬을 읽어온다(read). 상기 읽기 스위치(315)는 상기 입력 버퍼(310)로부터 수신 데이터를 읽어온다. 이때, 상기 읽기 스위치(315)는 H 행렬을 사용하여 상기 입력 버퍼(310)로부터 읽어올 데이터의 위치를 결정한다. 상기 읽기 스위치(315)는 상기 입력 버퍼(310)로부터 읽은 수신 데이터에 Z-계수 우 쉬프트 다중화 방식(Z-factor right shift multiplexor (MUX) operation)을 적용한다. 상기 Z-계수 우 쉬프트 다중화기는 H 행렬 또는 쉬프트 벡터로부터 산출된 쉬프트 데이터를 기반으로 구동된다.
상기 프로세서 배열(320)은 적어도 하나의 프로세서 요소를 포함한다. 각각의 프로세서 요소는 범람 기법(flooding technique), 합-곱 기술(Sum Product technique) 및 최소 합 기술(min-sum technique) 중 어느 하나를 수행하기 위한 다수 개의 프로세서들을 포함한다.
예를 들어, 상기 프로세서 배열(320)은 최소 합 기술을 이용하여 최소 값을 산출한다. 더욱이, 상기 프로세서 배열(320)는 IEEE 9802.16e 표준, DVB-S2 및 4G 중 적어도 하나의 시스템을 위해 복호를 수행한다. 구체적으로, 상기 프로세서 배열(320)은 4개의 프로세서 요소들을 포함한다. 또한, 상기 프로세서 요소는 24개의 프로세서들을 포함한다. 예를 들어, 상기 LDPC CRISP(300)은 2/4 단위 LDPC 복호기 CRISP(2/4-unit LDPC decoder CRISP)(300)을 나타낸다.
상기 쓰기 스위치(325)는 상기 프로세서 배열(320)로부터 최소/다음 최소 선택&합(Min/Next Min select & sum)을 수신한다. 상기 쓰기 스위치 블록(325)은 출력되는 외부 데이터의 집합을 생성하기 위해 상기 프로세서 배열(320)로부터 수신받은 상기 최소/다음 최소 선택 및 합에 z계수 좌 쉬프트 다중화 방식을 적용한다. 더욱이, 상기 쓰기 스위치(325)는 상기 쓰기 스위치(325)의 출력 외부 데이터를 상기 외부 버퍼(330)에 쓴다(write). 이하 설명에서 쓴다는 표현은 버퍼 또는 메모리에 저장시킨다는 의미로 사용된다. 예를 들어, 상기 쓰기 스위치(325)는 상기 읽기 스위치(315)와 반대로 동작하도록 H행렬을 이용한다.
상기 외부 버퍼(330)는 적어도 하나의 메모리 유닛에 외부 데이터를 저장한다. 구체적으로 상기 외부 버퍼(330)는 24개의 메모리 유닛들을 포함한다. 상기 외부 버퍼(330)는 상기 읽기 스위치(315)가 출력되는 외부 데이터를 읽을 수 있도록 상기 읽기 스위치(315)와 결합된다.
상기 LDPC CRISP(300)는 수신 데이터의 복호를 수 차례 반복할 수 있다. 상기 LDPC CRISP(300)은 입력 데이터를 읽고, 상기 외부 데이터 출력하기 위해 상기 입력 데이터에 복호 방식을 적용한다. 이에 따라, 상기 LDPC CRISP(300)은 이전 복호 프로세스로부터의 외부 데이터를 이용하여 복호 프로세스를 적어도 한번 반복한다. 상술한 바와 같이 상기 LDPC CRISP(300)가 입력 데이터를 이용하여 이후 반복에 사용하기 위한 외부 데이터를 생성하므로 상기 입력 데이터는 한번 사용된다.
상기 LDPC CRISP(300)은 정지 이벤트가 발생할 때까지 복호를 반복할 수 있다. 예를 들어, 상기 LDPC CRISP(300)는 특정 횟수 복호를 반복할 수 있다. 다른 예를 들어, 상기 LDPC CRISP(300)는 외부 데이터가 특정 값까지 도달할 때까지 복호를 반복할 수 있다. 여기서, 상기 특정 값은 수렴 점(convergence point)을 포함한다. 또 다른 예를 들어, 상기 LDPC CRISP(300)는 연속적으로 반복하는 동안 최상위 비트(MSB: Most Significant Bit) 출력이 변경되지 않을 때까지 복호를 반복할 수도 있다.
LDPC 코드는 부족한(sparse) 패리티 체크 행렬인 H의 특징을 나타내는 선형 부호이다. 상기 H 행렬은 저밀도인 1(Low density of one's)을 갖는다. 상기 H의 부족성(sparseness)은 큰 dmin을 산출하고, 복호 복잡도를 줄일 수 있다. 예를 들어, 상기 H 행렬은 하기 <수학식 1>과 같이 나타낼 수 있다.
Figure 112009075623657-pat00001
상기 LDPC 코드의 모든 행(row)은 동일한 가중치(Wr)를 갖고, 모든 열(column)도 동일한 가중치(Wc)를 갖는다. 균형적인 LDPC 코드는 균형적인 (Wc, Wr)을 나타낸다. Otherwise, the LDPC code is irregular. 반면에, 상기 LDPC 부호는 불균형하다. 균형적인 부호는 실행 및 분석이 용이하다. 더욱이 균형적인 부호는 낮은 오류 마루(error floors)를 갖는다. 하지만, 불균형한 부호는 균형적인 부호보다 이론적인 용량을 근접한다.
도 4는 본 발명에 따른 패리티 체크 행렬에 대응되는 터너(Tanner) 그래프를 도시하고 있다. 상기 도 4는 본원 발명의 특징을 나타내기 위한 터너 그래프(400)를 도시한다. 하지만, 본 발명의 특징을 벗어나지 않는 범위에서 상기 터너 그래프(400)을 다르게 나타낼 수 있다.
상기 터너 그래프(400)는 상호 그래프(bipartite graph)이다. 상기 상호 그 래프에서 노드들은 서로 다른 두 개의 집합으로 분리되고, 에지(edge)는 두 개의 다른 타입의 노드들로 연결된다. 상기 터너 그래프(400)에서 노드들의 두 개의 타입은 v-노드(variable-nodes)와 c-노드(check-nodes)를 나타낸다.
상기 v-노드는 부호워드의 비트 또는 패리티 체크 H 행렬(parity check H-matrix)의 열 (column)에 대응된다. 이때, v-노드에 대응되는 부호워드의 비트와 상기 패리티 체크 H행렬의 행은 동등하다. 상기 v-노드는 n개 존재한다. v-노드는 비트 노드처럼 나타낼 수도 있다. 상기 c-노드는 패리티 체크 방정식(parity check equations) 또는 패리티 체크 H 행렬의 행(row)에 대응된다. 이때, 상기 c-노드에 대응되는 패리티 체크 방정식과 상기 패리티 체크 H 행렬의 행은 동등하다. 상기 c-노드는 적어도 m개 존재한다. 여기서, 상기 m은 n-k 값을 갖는다.
상기 터너 그래프(400) 상기 <수학식 1>에 의해 패리티 체크 H 행렬에 대응된다. 상기 터너 그래프(400)는 5개의 c-노드들과 10개의 v-노드들을 포함한다. 여기서, 상기 c-노드의 개수는 패리티 비트의 개수를 나타내고, v-노드의 개수는 부호워드에 포함되는 비트의 개수를 나타낸다. 만일, H 행렬의 hij가 1인 경우, C-노드인 fi는 v-노드인 cj에 대응된다. 예를 들어, c-노드인 f0은 c0, c1, c2, c3, c5, c7 and c9에 연결될 수 있다. 상기 f0와 c0의 연결은 h00에 대응되고, 상기 f0와 c2의 연결은 h01에 대응된다. 이에 따라, 상기 H 행렬의 첫 번째 행(row)에 대응되는 fo의 연결은 하기 <수학식 2>와 같이 나타낼 수 있다.
Figure 112009075623657-pat00002
노드의 등급(degree)은 상기 노드에 연결된 에지(edge)의 개수로 나타낸다. 상기 터너 그래프(400)에서 주기는 에지의 경로에 대한 전체 길이를 나타낸다. c1→f2→c2→f0→c1의 경로는 짧은 주기를 나타낸다. 상기 짧은 주기는 복호 성능에 불리한 영향을 미치므로 피해야 한다. 상기 짧은 주기는 H 행렬의 열들에 의한 경로의 오버랩을 통해 나타낼 수 있다.
상기 LDPC CRISP(300)은 LDPC부호를 복호하기 위해 합곱 프로세스(sum-product process)를 사용한다. 경판정 복호 또는 연판정 복호가 수행된다. 추가적으로, 상기 LDPC CRISP(300)는 최소 합 프로세스(min-sum process)를 사용한다.
상기 LDPC CRISP(300)는 다중 전송 표준에 사용할 수 있는 일반적인 복호기(universal decoder)로 구성된다. 여기서, 상기 다중 전송 표준은 IEEE 802.16e 표준, DVB-S2 및 4G 등을 포함한다. 상기 LDPC는 1/4 부호율, 1/2 부호율, 2/3 부호율, 3/4 부호율 및 5/6 부호율 등과 같은 서로 다른 부호율의 코드들을 사용하기 위해 구성된다.
도 5a는 본 발명에 따른 1/2 부호율 H 행렬을 도시하고 있다. 상기 도 5a는 본 발명의 특징에 따른 1/2부호율 H 행렬(500)을 도시하고 있다. 하지만, 상기 1/2 부호율 H행렬(500)은 본 발명의 특징을 벗어나지 않는 범위에서 다르게 나타낼 수도 있다.
수신 경로에 저장된 패리티 체크 H 행렬(parity check H-matrix)은 1/2부호율 H행렬(rate 1/2 code H-Matrix)(500)에 따라 구성될 수 있다. 여기서, 상기 수신 경로는 채널 복호화 블럭(channel decoder and demodulator)(280)을 나타낸다. 상기 1/2 부호율 H행렬(500)은 프레임당 576개의 비트 전송을 나타내는 576 X 288행렬이다. 상기 1/2부호율 H 행렬(500)의 첫 번째 12개의 열(column)(505)은 데이터 비트들을 나타내고, 두 번째 12개의 열(510)은 잉여(redundancy) 비트들을 나타낸다. 더욱이, 각각의 비트는 24 X 24 행렬을 나타내는 위치 비트(location bit)이다. 상기 Z 계수는 행렬 당 비트의 개수를 정의한다. 예를 들어, 상기 z 계수는 24개이다. 상기 1/2 부호율 H 행렬(500)을 사용하는 경우, 전송되는 각각의 프레임은 288개의 데이터 비트들과 288개의 잉여 비트들을 포함한다. '-1'값은 영(0) 행렬을 나타낸다. 따라서, '-1'값은 해당 값이 행렬을 나타내는데 사용되지 않음을 나타낸다. '-1'과 다른 값들은 행렬을 나타내는 위치 값이다. 예를 들어, h01(515)의 위치 값 '94'에 의한 행렬은 23을 산출하기 위해 4로 분리되고, 나머지를 제거한다(rounded-down). 그래서, 단위 행렬은 23번 쉬프트된다.
도 5b는 본 발명에 따른 5/6 부호율 H 행렬(rate 5/6 code H-Matrix)을 도시하고 있다. 상기 도 5는 본 발명의 특징을 따른 5/6 부호율 H 행렬(500)을 도시한다. 하지만, 상기 5/6 부호율 H 행렬(500)은 본 발명의 특징을 벗어나지 않는 범위에서 다르게 나타낼 수 있다.
상기 패리티 체크 H 행렬(parity check H-matrix)은 5/6부호율 H 행렬(550) 에 따라 구성될 수 있다. 상기 5/6 부호율 H 행렬(550)은 프레임 당 576개의 비트 전송을 나타내는 576 X 288 행렬이다. 상기 5/6 부호율 H 행렬(550)의 첫 번째 20 개의 열(column)들(555)은 데이터 비트를 나타내고, 마지막 4개의 열들(560)은 잉여 비트를 나타낸다. 이에 따라, 상기 5/6 부호율 H행렬(550)을 사용하는 경우, 전송되는 각각의 프레임은 480개의 데이터 비트들과 96개의 잉여 비트들을 포함한다. '-1'값은 영(0)인 24 X 24 행렬을 나타낸다. 따라서, 상기 '-1'값은 해당 값이 행렬을 나타내는 비트로 사용되지 않음을 나타낸다. '-1'을 제외한 다른 값들은 행렬을 나타내는 위치 값이다. 예를 들어, h01(565)의 위치 값 '25'에 따른 행렬은 6을 산출하기 위해 4로 분리되고 나머지가 제거된다(rounded down). 이에 따라, 단위 행렬은 6번 쉬프트된다.
4G H 행렬(4G H-matrix)은 두 개의 벡터들로 구성된다. 상기 첫 번째 벡터는 위치 값을 포함하고 두 번째 벡터는 쉬프트 값을 포함한다. 예를 들어, 상기 H행렬(500)의 첫 번째 행(row)을 위한 위치 벡터는 하기 <수학식 3>과 같이 나타낼 수 있다.
Figure 112009075623657-pat00003
상기 <수학식 3>에서 H0 벡터에 포함되는 각각의 값은 행 0에서 0이 아닌 (non-zero) 열 위치(column position)를 나타낸다. 또한, 상기 H행렬(500)을 위한 쉬프트 값을 포함하는 두 번째 벡터(Hs0)는 하기 <수학식 4>와 같이 나타낼 수 있다.
Figure 112009075623657-pat00004
상기 <수학식 4>는 하기 <수학식 5>와 같이 나타낼 수도 있다.
Figure 112009075623657-pat00005
도 6은 본 발명에 따른 직렬-v LDPC CRISP(serial-v LDPC CRISP)의 상세 블록 구성을 도시하고 있다. 상기 도 6은 본 발명의 특징을 포함하는 직렬-v LDPC CRISP(600)를 도시한다. 하지만, 상기 직렬-v LDPC CRISP(600)은 본 발명의 특징을 벗어나지 않는 범위에서 다르게 나타낼 수도 있다.
상기 직렬-v LDPC CRISP(600)은 2/4 유닛 LDPC CRISP(2/4-unit LDPC CRISP)(300)와 동일한 일반적인 구조를 갖는다. 상기 직렬-v LDPC CRISP(600)은 다수 개의 개별 메모리 유닛들(605)로 구성된 입력 버퍼를 포함한다. 상기 개별 메모리 유닛들(605)은 다수 개로 분리되고, 상기 분리된 각각의 메모리 장치는 남은 개별 메모리 유닛들(remaining individual memory units)(605)에서 발생하는 개별 데이터 입력 방식으로부터 데이터를 수신받을 수 있다. 상기 직렬-v LDPC CRISP(600)는 24개의 메모리 유닛들(605a-605x)을 포함한다. 상술한 실시 예에서, 상기 직렬- v LDPC CRISP(600)은 24개의 메모리 유닛들을 포함하지만, 상기 직렬-v LDPC CRISP(600)는 다른 개수의 메모리 유닛들을 포함할 수도 있다. 상기 메모리 유닛들(605)은 수신 경로를 통해 수신받은 데이터를 저장한다. 이에 따라, 상기 직렬-v LDPC CRISP(600)은 24개의 데이터들을 동시에 읽을 수 있도록 구성된다. 만일, 하나의 메모리 유닛을 사용하는 경우, 상기 직렬-v LDPC CRISP(600)는 한번에 하나의 데이터만을 읽을 수 있다
예를 들어, 각각의 메모리 유닛(605)은 수신 경로로부터 데이터를 수신받을 수 있다. 구체적으로, 각각의 메모리 유닛(605)은 데이터의 24비트들을 수신받기 때문에 메모리 유닛 605(b)가 데이터를 수신받는 경우, 상기 메모리 유닛 605(b)는 t0 시간에 24번부터 47번까지의 데이터 비트들을 수신받는다. 또한, 상기 메모리 유닛 605(c)는 t0시간에 48번부터 71번까지의 데이터 비트들을 수신받고, 상기 메모리 유닛 605(i)는 t0시간에 192번부터 215번까지의 데이터 비트들을 수신받는다. 그리하여, 상기 메모리 유닛들(605a 내지 605x)은 동시에 데이터의 576 비트들을 수신받을 수 있다. 이에 따라, 전송되는 데이터는 576비트보다 작게 구성되어야 한다. 상기 메모리 유닛들은 프레임 당 576개까지의 비트들을 수신받아 저장한다. 블록 크기에 따라 데이터는 다른 메모리 뱅크들(memory banks)(605)로 분배될 수도 있다.
미 도시되었지만, 각각의 메모리 유닛(605)은 6개의 메모리 뱅크들을 포함한다. 다른 예를 들어, 각각의 메모리 유닛(605)은 하기 도 8에 도시된 바와 같이 8개의 메모리 뱅크들을 포함할 수도 있다.
상기 직렬-v LDPC CRISP(600)은 외부/행 뺄셈 블럭(extrinsic/row subtractor block)(610)을 포함한다. 상기 외부/행 뺄셈 블록(610)은 상기 쓰기 스위치(640)에 의해 상기 메모리 뱅크에 저장된 외부 데이터의 일부분을 제거한다.
상기 직렬-v LDPC CRISP(600)는 24입력 2출력(24 to 2) 또는 24 입력 4 출력(24 to 4)의 읽기 스위치(615)를 포함한다. 상기 읽기 스위치(615)는 상기 메모리 뱅크들(605)로부터 데이터를 읽을 수 있도록 구성된다. 이때, 상기 읽기 스위치(615)가 읽는 데이터는 상기 외부/행 뺄셈 블록(610)에 의해 일부분이 제거된 외부 데이터를 포함한다. 상기 읽기 스위치(615)는 행 당(per row) 24개의 입력/외부 데이터(input/extrinsic data)로부터 N개의 입력들을 선택하여 정렬한다. N은 프로세서 배열(625)에서 운영되는 프로세서 요소(processors element)들의 개수에 대응된다.
더욱이, 상기 직렬-v LDPC CRISP(600)은 z계수 우 쉬프트 다중화기(Z-factor right shift MUX block)(620)를 포함한다. 상기 z 계수 우 쉬프트 다중화기(620)는 상기 메모리 뱅크(605)로부터 읽은 수신 데이터에 Z-계수 우 쉬프트 다중화 방식(Z-factor right shift MUX operation)을 적용한다. N개의 입력/외부 출력(inputs/extrinsic outputs)을 선택한 후, 상기 z 계수 우 쉬프트 다중화기(Z-factor right shift MUX block)(620)는 H행렬을 기반으로 N개의 입력/외부 출력(inputs/extrinsic output)들을 정렬한다.
예를 들어, 상기 z 계수 쉬프트(Z-factor shift)는 H 행렬에 따라 각각의 메 모리 유닛(605)에 포함되는 데이터를 정렬한다. 여기서, 메모리 유닛 605(b)의 데이터는 h01(515)의 위치 값 '94'를 기반으로 처리된다. 구체적으로, 각각의 위치 값이 24 X 24 행렬에 대응될 때, 메모리 유닛 605(b)에 저장된 데이터의 24비트는 h01(515)의 위치 값 '94'를 기반으로 처리된다. 이때, 상기 데이터의 24비트(24번부터 47번까지의 데이터 비트)는 t0 +p 시간에 쉬프트된다. 또한, 메모리 유닛 605(c)에 저장된 데이터의 24비트는 h02(520)의 위치 값 '73'을 기반으로 처리된다. 이때, 상기 데이터의 24비트(48번부터 71번까지의 데이터 비트)는 t0 +q 시간에 쉬프트된다. 미 도시되었지만, 메모리 유닛 605(i)에 저장된 데이터의 24비트는 h08(525)의 위치 값 '55'을 기반으로 처리된다. 이때, 상기 데이터의 24비트(192번부터 215번까지의 데이터 비트)는 t0 +r 시간에 쉬프트된다. 그러므로, 메모리 유닛들(605a 내지 605x)의 모든 데이터는 H행렬을 기반으로 쉬프트 된다.
상기 프로세서 배열(625)는 범람 기법(flooding technique), 합곱 기법(sum products technique) 및 최소 합 기법(min-sum technique) 중 어느 하나를 수행한다. 상기 프로세서 배열(625)은 상기 도 3에 도시된 프로세서 배열(320)과 동일하게 구조 및 함수를 포함한다. 예를 들어, 상기 프로세서 배열(625)은 최소 합 기법을 사용하여 최소 값을 확인한다. 더욱이, 상기 프로세서 배열(625)은 IEEE 802.16e 표준, DVB-S2 및 4G 중 적어도 하나에 대한 복호를 수행한다. 상기 프로세서 배열(625)에 포함되는 각각의 프로세서는 H 행렬(500)에 의해 나타내어진 것처 럼 다른 방정식을 적용한다. 예를 들어, 상기 프로세서 배열은 24개의 프로세서들로 구성된다. 다른 예를 들어, 상기 프로세서 배열(625)은 24개의 프로세서들을 포함하는 2/4 유닛들을 포함한다. 상기 프로세서 배열에 포함되는 각각의 프로세서는 상기 메모리 유닛들(605a-605x)로부터 데이터를 읽어 온다. 이때, 상기 메모리 유닛들(605a-605x)에 저장된 모든 데이터는 다른 방정식을 이용하여 동시에 처리된다. 예를 들어, 첫 번째 프로세서는 t1시간에 두 번째 메모리 유닛(605b)로부터 첫 번째 데이터를 읽고, 두 번째 프로세서는 t1시간에 두 번째 메모리 유닛(605b)로부터 두 번째 데이터를 읽으며, 세 번째 프로세서는 t1시간에 두 번째 메모리 유닛(605b)로부터 세 번째 데이터를 읽는다. 두 번째 주기(time t2)의 경우, 상기 첫 번째 프로세서는 t2시간에 세 번째 메모리 유닛(605c)로부터 첫 번째 데이터를 읽고 상기 두 번째 프로세서는 t2시간에 세 번째 메모리 유닛(605c)로부터 두 번째 데이터를 읽으며, 상기 세 번째 프로세서는 t2시간에 세 번째 메모리 유닛(605c)로부터 세 번째 데이터를 읽는다. 이때, 상기 메모리 유닛들(605a-605x)은 다중 뱅크로 구성된다. 상기 다중 프로세서들은 t1시점에 하나의 뱅크(예: 0번째 뱅크)로부터 데이터를 읽고, 다음 시점에 다음 뱅크(예: 1번째 뱅크)로부터 데이터를 읽는다. 이때, 상기 메모리 유닛들(605a 내지 605x)은 0번째 뱅크의 모든 데이터를 읽은 후에 다음 뱅크로부터 데이터를 읽는다.
상기 프로세서 배열(625)은 주기 당 처리된 z계수 열(Z-factor column)의 개 수에 의존한다. 상기 프로세서 배열(625)은 가장 작은 비트와 두 번째 작은 비트에 각각 대응되는 최소 값과 다음 최소 값을 출력한다. 상기 프로세서 배열(625)은 상기 최소 값과 다음 최소 값을 적어도 하나의 레지스터에 저장한다. 상기 적어도 하나의 레지스터는 상기 프로세서 배열(625)에 포함된다.
상기 직렬-v LDPC CRISP(600)은 적어도 하나의 선택 및 합 블록(selection and sum blocks)(630)을 포함한다. 예를 들어, 상기 직렬-v LDPC CRISP(600)은 첫 번째 선택 및 합 블록(630a)과 두 번째 선택 및 합 블록(630b)을 포함한다. 각각의 선택 및 합 블록은 최소 값과 다음 최소 값의 선택 및 합 방식(min/next min selection and sum operation)을 수행한다. 예를 들어, 상기 첫 번째 선택 및 합 블록(630a)은 첫 번째 체크 노드에서 최소/다음 최소 선택 및 합을 수행한다. 또한, 상기 두 번째 선택 및 합 블록(630b)은 두 번째 체크 노드에서 최소/다음 최소 선택 및 합을 수행한다.
상기 직렬-v LDPC CRISP(600)는 적어도 하나의 z 계수 좌 쉬프트 다중화 블럭(Z-factor left shift MUX block)(635)을 포함한다. 예를 들어, 상기 직렬-v LDPC CRISP(600)은 첫 번째 z 계수 좌 쉬프트 다중화 블럭(635a)과 두 번째 z 계수 좌 쉬프트 다중화 블럭(635b)을 포함한다. 각각의 z 계수 좌 쉬프트 다중화 블럭은 z 계수 좌 쉬프트 다중화 방식을 통해 최소/다음 최소 선택 및 합을 수신한다.
상기 직렬-v LDPC CRISP(600)은 출력 데이터의 집합을 생성한다. 예를 들어, 상기 출력 데이터는 외부 데이터를 나타낸다. 각각의 쓰기 스위치 블록(write switch blocks)(640a)는 다수 개의 외부 메모리 유닛(645)과 상기 다수개의 메모리 뱅크(605) 중 적어도 하나에 상기 쓰기 스위치 블록(635)의 출력 데이터를 쓴다. 구체적으로, 상기 첫 번째 쓰기 스위치 블록(640a)는 다수 개의 외부 메모리 유닛들(645)에 상기 출력 데이터를 쓰고, 상기 두 번째 쓰기 스위치 블록(640b)은 다수 개의 메모리 유닛들(605)에 상기 출력 데이터를 쓴다.
상기 외부 메모리 유닛들(645)은 외부 출력을 저장한다. 구체적으로, 각각의 메모리 뱅크(645)는 6개의 메모리들을 포함한다. 상기 외부 메모리 유닛들(645)은 24개의 메모리 뱅크들을 포함한다. 블록 크기에 따라 데이터는 다른 메모리 뱅크들(645)로 분배될 수도 있다. 상기 외부 메모리 유닛(645)은 상기 읽기 스위치(315)가 외부 출력을 읽을 수 있도록 상기 외부/행 뺄셈 블록(extrinsic/row subtractor block)(610)과 결합된다. 그래서, 상기 외부/행 뺄셈 블록(610)은 상기 쓰기 스위치(640)에 의해 상기 외부 메모리 유닛(645)에 저장된 외부 데이터의 일부를 제거한다. 상기 직렬-v LDPC CRISP(600)은 수신받은 데이터를 수 차례 반복할 수 있다. 적어도 하나의 외부 메모리 유닛645(a)는 한 주기에 24개의 데이터를 출력한다.
상기 직렬-v LDPC CRISP(600)은 직렬-v 전체 z 부분 행(serial-v full Z partial row)을 수행한다. 직렬-v 전체 z 부분 행은 주기 당 전체 z 계수 행이 처리되는 것을 의미한다. 이때, 상기 직렬-v 전체 z부분 행은 행에 포함되는 일부 열들만을 처리된다.상기 직렬-v LDPC CRISP(600)은 직렬-v 전체/부분 행 부분 z 프로세싱(serial-v full/partial row partial Z processing)을 수행할 수 있다. 직렬-v 전체/부분 행 부분 z 프로세싱은 주기 당 열의 전체 또는 부분이 Z 계수 행의 부분 에서 처리되는 것을 의미한다. 직렬-v 전체/부분 행 부분 z 프로세싱은 IEEE 802.16e, 4G 및 DVB-S2 중 어느 하나를 위해 이용될 수 있다. 상기 직렬-v 전체/부분 행 부분 z 프로세싱은 IEEE802.16e에 가장 적당하다. 상기 직렬-v LDPC CRISP(600)은 적응적인 z 계수 LDPC(flexible Z-factor LDPC)로 나타낼 수 있다. 1/2 부호율을 사용하는IEEE802.16e과 같이 표준 열의 수가 적고 Wr의 값이 작으며, 넓은 z 계수의 범위를 요구하는 표준은 직렬-v 전체/부분 행 부분 z 구조가 적합하다. 그러나, 열의 수가 많고, Wr의 값이 큰 H 행렬의 경우, 직렬-v 전체/부분 행 부분 z 구조는 고차원의 다중화 레벨에 의해 많은 게이트 영역을 필요로 한다. 이 경우, 직렬-v 부분 행 전체 z 프로세싱 구조(serial-v partial row full Z processing architecture)가 유리하다. 예를 들어, IEEE 802-16e의 5/6부호율은 24개의 열들에서 Wr=20을 필요로 한다. 그러므로 24개의 열들 중 20개의 열들이 선택된다. 다른 예를 들어, 4G의 5/6 부호율은 192개의 열들에서 Wr=22를 필요로 한다. 그러므로, 192개의 열들 중 22개의 열들이 선택된다. Wr은 Wr/(No. of units) 을 기반으로 z 계수 데이터의 행이 끝날 때까지 행 당 얼마나 많은 주기가 소요되는지를 정의한다.
도 7은 본 발명에 따른 직렬-c LDPC CRISP(serial-c LDPC CRISP)의 상세 블록 구성을 도시하고 있다. 상기 도 7은 본 발명의 특징을 나타내는 직렬-c LDPC CRISP(700)를 도시한다. 하지만, 상기 직렬-c LDPC CRISP(700)은 본원 발명의 특징이 벗어나지 않는 범위에서 다르게 구성할 수 있다.
상기 직렬-c LDPC CRISP(700)은 다수 개의 메모리 유닛들(705)과 다수 개의 외부 메모리 유닛들(extrinsic memory units)(710)을 포함한다. 예를 들어, 상기 직렬-c LDPC CRISP(700)은 31개의 메모리 유닛들(705)을 포함한다. 상기 메모리 유닛(705)은 수신 경로를 통해 수신받은 값(a, b, c, d, e, f)을 저장한다. 블록의 크기에 따라 데이터는 다른 메모리 뱅크들(705)로 분배될 수도 있다. 더욱이, 미 도시되었지만, 입력 값 'f'는 레지스터에 저장한다(load). 예를 들어, 각각의 메모리 유닛(705)은 6개의 메모리들을 포함한다.
외부 메모리 블록(710) 외부 출력을 저장한다. 예를 들어, 각각의 외부 메모리 유닛(710)은 6개의 메모리 뱅크들을 포함한다. 다수 개의 외부 메모리 유닛들(710)은 31개의 메모리 유닛들을 포함한다. 블록 크기에 따라 데이터는 다른 메모리 유닛들(710)과 구별된다. 상기 다수 개의 외부 메모리 유닛들(710)은 쓰기 스위치(740)로부터 데이터를 수신받는다. 상기 직렬-c LDPC CRISP(700)은 수신된 값의 반복을 수 차례 수행할 수 있다.
상기 직렬-c LDPC CRISP(700)은 32 입력 6출력(32 to 6) 의 읽기 스위치들(715)을 포함한다. 상기 읽기 스위치들(715)은 상기 메모리 유닛(705)와 외부 메모리 유닛(710)로부터 값을 읽어 온다. 상기 직렬-c LDPC CRISP(700)은 다수 개의 z 계수 우 쉬프트 다중화 블록(Z-factor right shift MUX block)(720), 프로세서 배열(725), 합-차 블록(addition subtraction block)(730), 최소 검출 블록(minimum detection block)(735), 쓰기 블록(write block)(740) 및 입력 멤 블록(input mem block)(745)을 포함한다.
첫 번째 반복의 경우, 상기 쓰기 스위치(715)는 읽기 값과 레지스터 'f'의 값을 선택하여 비교한다. 상기 프로세서(720)는 최소 검출 방식(minimum detection operation)을 수행한다. 상기 쓰기 블록(740a)은 레지스터에 최소 값(e, f)를 다시 쓰고, 상기 최소 값을 외부 메모리(710)의 'e' 값에 겹쳐 쓴다. 그러므로, 상기 쓰기 블록(740a)은 레지스터와 외부 메모리(710)에 다른 최소 값(d, e, f)을 쓴다. 상기 쓰기 블록(740a)은 상기 외부 메모리(710)의 값이 min (b, c, d, e, f), min (c, d, e, f), min (d, e, f), min (e, f) 및 'f'까지 상술한 프로세서를 지속한다.
두 번째 반복의 경우, min(b, c, d, e, f)으로부터 새로운 체크 노드 값 'a1'를 얻는다. 이때, 'a' 값에 대응되는 출력을 얻을 수 있다. 상기 쓰기 블록(740)은 'a'의 이전 값을 겹쳐 써 레지스터와 외부 메모리(710)에 a1을 쓴다. 이후, a1과 min(c, d, e, f)으로부터 새로운 체크 노드 값 'b1'을 발견한다. 이때, 'b'에 대응되는 출력을 발견할 수 있다. 상기 쓰기 블록(740)은 'b' 이전 값을 겹쳐 써 상기 레지스터와 외부 메모리(710)에 b1을 쓴다. 상술한 프로세서는 새로운 체크 노드 'f1'이 결정될 때까지 반복된다. 더욱이, 상기 직렬-c LDPC 복호기(700)는 두 번째 반복을 위해 초기화와 직렬-c를 반복한다. 첫 번째 반복을 위한 초기 값은 a1, b1, c1, d1, e1 및 f1이다.
도 8은 본 발명에 따른 4G 메모리 배열(4G memory array)을 도시하고 있다. 상기 도 8은 본 발명의 특징을 나타내는 메모리 배열(800)을 도시한다. 이때, 상기 메모리 배열(800)은 본 발명의 특징을 벗어나지 않는 범위에서 다르게 나타낼 수 있다.
상기 메모리 배열(800)은 입력 버퍼(310), 메모리(605), 외부 메모리(645), 메모리(705) 및 외부 메모리(710) 중 적어도 하나의 같이 일반적인 구조를 갖는다. 상기 4G 메모리 배열(800)은 IMT-Advanced 표준에서 사용하기 위해 개조된다. 그러나, 상기 4G 메모리 배열(800)은 IEEE 802.16e 표준, DVB-S2 및 다른 무선 통신 표준에서도 사용될 수 있다.
상기 4G 메모리 배열(800)은 24개의 메모리 유닛들(805a 내지 805x)을 포함한다. 각각의 메모리 유닛(805a 내지 805x)은 8개의 메모리 뱅크들(bank0 내지 bank7)을 포함한다.
상기 4G 메모리 배열(800)은 2/4 유닛 LDPC 복호기 CRISP(2/4-unit LPDC decoder CRISP)(300)와 결합될 수 있다. 상기 2/4 유닛 LDPC 복호기 CRISP(300)은 4개의 프로세서 요소 배열(processor element array)들로 구성된다. 2/4 유닛 LDPC 복호기 CRISP(300)은 직렬-v LDPC CRISP(600) 또는 직렬-c LDPC CRISP(700)처럼 구성된다. 2/4 유닛 LDPC 복호기 CRISP(300)은 하나 또는 두 개 또는 네 개의 프로세서 요소들로 구성된다.
4G H 행렬은 192개의 열들을 포함한다. 5/6 부호율을 사용하는 경우, 상기 H 행렬은 4608 X 768로 구성된다. 그러므로, 상기 2/4 유닛 LDPC CRISP(300)는 4G 표준에서 프레임 당 4608개의 비트들을 수신할 수 있다.
4G H 행렬을 구성하는 열들은 4G 메모리 배열(800)의 24 열 각각에 대한 8개의 뱅크들로 분배된다. 상기 2/4 유닛 LDPC 복호기 CRISP(300)은 다른 주기의 각각 의 뱅크(bank0 내지 bank7)에 접속한다. 상기 2/4 유닛 LDPC 복호기 CRISP(300)은 모든 메모리 유닛들(805a 내지 805x)에 동시에 접속하므로 8비트의 데이터와 16비트의 외부 데이터를 포함한다. 여기서, 상기 모든 메모리 유닛들은 24개의 메모리 유닛들을 나타낸다.
각각의 뱅크는 데이터의 576개의 비트에 대응된다. 예를 들어, 뱅크0은 메모리 유닛들(805a 내지 805x)에 저장된 데이터의 576개의 비트에 대응된다. 각각의 뱅크(bank0 내지 bank7)에 데이터의 576개의 비트들이 대응되는 경우, 상기 4G메모리 배열은 데이터의 4608개의 비트들을 저장한다.
상기 4G 배열은 이용된 배열(constellation)에 따라 데이터의 4608개의 비트보다 많은 양을 저장한다. 상기 4G 메모리(800)와 상기 LDPC 복호기들의 결합에 의해 지원할 수 있는 H행렬의 크기가 결정된다. 또한, 상기 4G 메모리(800)의 구조 변경에 의해 상기 H행렬의 Wc와 Wr이 결정된다. 여기서, 상기 LDPC 복호기는 2/4 유닛 복호기(2/4 unit decoder)(300, 600), 병렬 2/4 유닛 복호기(parallel 2/4 unit decoder)(1000, 1100)를 포함한다.데이터는 4G 메모리 배열(800)에서 한번에 하나의 뱅크에 쓰여진다. 예를 들어, 뱅크0은 뱅크1 이전에 쓰여진다. 또한, 데이터는 다중 뱅크로부터 한번에 읽혀질 수도 있다. 예를 들어, 데이터는 메모리 유닛 805(a)의 뱅크 0과 메모리 유닛 805(c)의 뱅크 1(820)로부터 동시에 읽혀질 수 있다. 그러나, 데이터는 동일한 메모리 유닛의 두 개의 뱅크들로부터 동시에 읽혀질 수 없다. 예를 들어, 데이터는 메모리 유닛805(d)의 뱅크3(830)과 뱅크2(835)로부 터 동시에 읽혀질 수 없다.
도 9는 본 발명에 따른 행 외부 메모리 배열(row extrinsic memory arrangement) 을 도시하고 있다. 상기 도 9는 본 발명에 따른 행 외부 메모리 배열(900)을 도시한다. 하지만, 행 외부 메모리 배열(900)은 본 발명의 특징을 벗어나지 않는 범위에서 다르게 구성될 수 있다.
행 외부 메모리(900)은 메모리 유닛(805)의 뱅크를 나타낸다. 예를 들어, 상기 행 외부 메모리(900)는 메모리 유닛 805(a)의 뱅크0(815)에 대응될 수 있다. 상기 행 외부 메모리(900)는 8개의 행들(905a 내지 905h)을 포함한다. 상기 행 외부 메모리(900)는 임시적인 외부 행들을 보관한다. 행 외부 메모리(900)의 크기는 H행렬의 최대 Wc에 의해 결정된다. 4G 표준과 IEEE 802.16e 표준의 경우, 상기 최대 Wc는 6이다. 이는 상기 행 외부 메모리(900)가 입력/외부 크기보다 6배 큰 것을 나타낸다. 예를 들어, 각각의 데이터 집합은 6개의 다른 방정식으로 사용될 수 있다. 상기 도 9에서 최대 Wc는 8이다. 예를 들어, 각각의 데이터 집합은 8개의 다른 방정식들(different equations.)로 사용될 수 있다. 상기 도 8에 도시된 메모리 유닛(805)의 뱅크는 24X16비트의 행 외부 데이터를 위해 8개의 행들을 포함한다.
다중 2/4유닛 LDPC CRISP(multiple 2/4-unit LDPC CRISP)(300)은 높은 전송률의 LDPC 복호 운영을 수행하기 위해 병렬로 사용된다. 상기 다중 2/4 유닛 LDPC CRISP(300)은 독립 행 프로세싱(independent row processing), 파이프 라인 프로세싱(pipelined processing) 및 병렬 열 프로세싱(parallel column processing) 중 적어도 하나를 이용할 수 있다.
도 10은 본 발명에 따른 4G 5/6부호율 H 행렬(4G rate 5/6 code H-Matrix)을 도시하고 있다. 상기 도 10은 본 발명에 따른 4G 5/6 부호율 H행렬(1000) 을 도시한다. 하지만, 상기 4G 5/6 부호율 H행렬(1000)은 본 발명의 특징을 벗어나지 않는 범위에서 다르게 구성될 수 있다.
상기 4G 5/6 부호율 H 행렬(1000)은 32 X 22의 크기를 갖는다. 상기 4G 5/6 부호율 H 행렬(1000)이 프로세싱되는 경우, 각각의 메모리 유닛(605a 내지 605x)의 크기는 24이다. 예를 들어, 상기 도 10에서, 볼드체(bold) 번호는 뱅크들에서 변화를 나타내고, 이탤릭체(italic) 번호는 주기의 변화를 나타낸다.
상기 4G 5/6 부호율 H 행렬(1000)은 행 별로 독립적으로 데이터를 처리하기 위해 두 개 이상의 작은 행렬들로 분해된다. 상기 분해된 작은 행렬은 상기 5/6 부호율 H 행렬(1000)의 행들을 기반으로 구성된다. 이때, 첫 번째 작은 행렬의 각각의 행은 두 번째 작은 행렬의 행에 독립적이다. 예를 들어, 상기 5/6 부호율 H 행렬(1000)을 기반으로 구성된 19 X 22 크기의 두 개의 행렬들은 하기 <표 1>과 같이 나타낼 수 있다.
Row1 Row2
0 18
1 28
2 21
3 6
5 Null
7 17
8 31
9 23
10 20
11 19
12 25
13 26
Null 14
Null 15
Null 16
22 27
24 Null
30 Null
Null Null
많은 열들을 포함하는 행렬을 위해 독립 행을 선택하기 위한 기회는 자주 발생한다. 예를 들어, 상기 <표 1>에서 행 0은 행 18에 독립적이고, 행 1은 행 28에 독립적이다. 상기 'null' 값은 다른 행렬의 행에 대응되는 독립적인 행이 없음을 나타낸다. 예를 들어, 적어도 두 개의 2/4 유닛 LDPC CRISP(2/4-unit LDPC CRISP)(600)들을 포함하는 LDPC 복호기에서 첫 번째 2/4 유닛 LDPC CRISP (600a)이 행 5를 처리하는 경우, 다른 2/4 유닛 LDPC CRISP(600b)는 독립 행에 대응되는 값이 없으므로 대기 모드로 동작한다.
독립적인 행의 레벨은 비트율 증가 요소인 U로 정의될 수 있다. 상기 U는 결정된 독립적인 행의 수에 대한 원본 행렬의 행 수로 정의된다. 예를 들어, 상기 <표 1>에서 U는 32/20으로 1.6이 된다. 상기 <표 1>에서 4G표준의 5/6 부호율 H 행렬(1000)은 두 개의 작은 행렬들로 분해되지만, 상기 H 행렬(1000)은 두 개 이상의 작은 행렬들로 분해될 수도 있다.
도 11은 본 발명에 따른 병렬 2/4 유닛 LDPC 복호기(parallel 2/4-unit LDPC decoder)를 도시하고 있다. 상기 도 11은 본 발명의 특징에 따른 병렬 2/4 유닛 LDPC CRISP를 도시하고 있다. 하지만, 상기 병렬 2/4 유닛 LDPC CRISP는 본 발명의 특징을 벗어나지 않는 범위에서 다르게 구성될 수 있다.
병렬 2/4의 단위 LDPC 복호기(1100)는 독립 행 프로세싱(Independent Rows processing)을 이용하여 LDPC 복호를 수행할 수 있다. 상기 병렬 2/4 유닛 LDPC 복호기(1100)는 첫 번째 2/4 유닛 LDPC CRISP(600a)와 두 번째 2/4 유닛 LDPC CRISP(600b)를 포함한다. 각각의 2/4 유닛 LDPC CRISP(600a, 600b)은 입력 외부 메모리(1110)와 행 외부 메모리(row extrinsic memory)(1115a-1115b)들 각각에 결합된다. 각각의 2/4 유닛 LDPC CRISP(600a, 600b)은 미 도시되었지만 임시 외부 메모리들에 각각 결합된다.
상기 4G5/6 부호율 H 행렬(1000)은 독립 행 분해 운영을 통해 두 개의 작은 행렬들로 분해된다. 여기서, 상기 작은 행렬은 19 X 22의 크기로 구성된다. 상기 두 개의 작은 행렬은 1/2 4G5/6 부호율 H 행렬(1105a)과 1/2 4G 5/6 부호율 H 행렬(1105b)이다. 상기 독립 행 분해 운영에서 3 null 행은 추가된다. 상기 독립 행들은 첫 번째 2/4 유닛 LDPC CRISP(600a)와 두 번째 2/4 유닛 LDPC CRISP(600b)에 의해 병렬로 처리된다.
상기 메모리 유닛들(605a-605x)은 첫 번째 2/4 유닛 LDPC CRISP(600a)와 두 번째 2/4 유닛 LDPC CRISP(600b)이 한번에 다른 메모리 유닛(605)을 읽을 수 있도록 다중 뱅크, 다중 프로세서로 구성된다. 예를 들어, 첫 번째 2/4 유닛 LDPC CRISP(600a)는 t1 시간에 하나의 뱅크(예: 메모리 605(a)의 뱅크 0)로부터 데이터를 읽고, 두 번째 2/4 유닛 LDPC CRISP(600b)는 t1 시간에 다른 뱅크(예: 메모리 605(c)의 뱅크 0)로부터 데이터를 읽는다.
상기 병렬 2/4 유닛 LDPC 복호기(parallel 2/4-unit LDPC decoder)(1100)는 동시에 두 개의 데이터 집합을 읽고 처리할 수 있다. 예를 들어, 상기 병렬 2/4 유닛 LDPC 복호기(1100)는 상기 4G 5/6 부호율 H 행렬(1000)의 두 개의 부분을 동시에 처리한다. 여기서, 상기 H 행렬(1000)의 두 개의 부분은 상기 H행렬(1000)을 기반으로 구성한 두 개의 작은 행렬들을 의미한다. 상기 병렬 2/4 유닛 LDPC 복호기(1100)에 의해 처리된 프로세서는 상기 도 6에 도시된 2/4 유닛 LDPC CRISP(600)와 유사한 함수들을 포함한다. 그러나, 상기 병렬 2/4 유닛 LDPC 복호기(1100)이 두 개의 2/4 유닛 LDCP CRISP(600)을 포함하므로 상기 병렬 2/4 유닛 LDPC 복호기(1100)은 동시에 두 개의 작은 행렬을 처리할 수 있다.
예를 들어, 상기 첫 번째 2/4 유닛 LDPC CRISP(600a)는 t1 시간 동안 1/2 4G 5/6 부호율 H 행렬(1105a)를 읽는 다. 다른 예를 들어, 상기 두 번째 2/4 유닛 LDPC CRISP(600b)는 t1 시간 동안 1/2 4G 5/6 부호율 H 행렬(1105b)를 읽어온다. 또 다른 예를 들어, 상기 <표 1>에서 상기 병렬 2/4 유닛 LDPC 부호기(1100)의 프로세서 배열(625)에 포함되는 각각의 프로세서들은1/2 4G 5/6 부호율 H 행렬(1105a 내지 1105b)를 읽어온다. 그러므로, 상기 첫 번째 2/4 유닛 LDPC CRISP(600a)가 행 0을 처리하는 동안, 상기 두 번째 2/4 유닛 LDPC CRISP(600b)는 행 18을 처리한다. 이후에, 상기 첫 번째 2/4 유닛 LDPC CRISP(600a)가 행 1을 처리하는 동안, 상기 두 번째 2/4 유닛 LDPC CRISP(600b)는 행 28을 처리한다. 그러나, 상기 첫 번째 2/4 유닛 LDPC CRISP(600a)가 행 5을 처리하는 동안, 상기 두 번째 2/4 유닛 LDPC CRISP(600b)는 대기 모드로 동작한다. 추가적으로, 상기 두 번째 2/4 유닛 LDPC CRISP(600b)가 행 14를 처리하는 동안, 상기 첫 번째 2/4 유닛 LDPC CRISP(600a)는 대기 모드로 동작한다.
상기 첫 번째 2/4 유닛 LDPC CRISP(600a)과 두 번째 2/4 유닛 LDPC CRISP(600b)은 동시에 1/2 4G 5/6 부호율 H행렬(1105a-b)을 각각 읽는다. 2/4 유닛 LDPC CRISP(600)은 주기당 데이터의 24비트들을 처리할 수 있다. 이에 따라, 상기 병렬 2/4 유닛 LDPC 복호기(1100)는 주기당 상기 1/2 4G 5/6 부호율 H행렬(1105a-b)로부터 데이터의 48비트들을 처리할 수 있다.
상기 병렬 2/4 유닛 LDPC 복호기(1100)는 병렬 열 프로세싱을 이용하여 데이터를 처리한다. 상기 병렬 열 프로세싱(parallel columns processing)의 경우, 상기 4G 5/6 부호율 H행렬(1000)의 각 행은 두 개의 열 집합으로 분리된다. 상기 첫 번째 2/4 유닛 LDPC CRISP(600a)은 상기 행의 첫 번째 부분(1005)을 처리하고, 두 번째 2/4 유닛 LDPC CRISP(600b)은 상기 행의 두 번째 부분(1010)을 처리한다.
도 12는 본 발명에 따른 다중 2/4 유닛 LDPC 복호기(multiple 2/4-unit LDPC decoder)를 도시하고 있다. 상기 도 12는 본 발명의 특징에 따른 다중 2/4 유닛 LDPC 복호기를 도시한다. 하지만, 상기 다중 2/4 유닛 LDPC 복호기는 본 발명의 특징을 벗어나지 않는 범위에서 다르게 구성될 수도 있다.
상기 다중 2/4 유닛 LDPC 복호기(1200)는 다수 개의 2/4 유닛 LDPC CRISP들(600a 내지 600d)을 포함한다. 각각의 2/4 유닛 LDPC CRISP들(600a 내지 600d)은 각각의 임시 외부 메모리(1205a 내지 1205d)에 결합된다. 2/4 유닛 LDPC CRISP들(600a 내지 600d)은 각각의 행 외부 메모리(1210a-1210d )에 결합된다. 더욱이, 2/4 유닛 LDPC CRISP 600(a)와 600(b)는 입력 외부 메모리(1215a)에 결합되고, 2/4 유닛 LDPC CRISP 600(c)와 600(d)는 입력 외부 메모리(1215b)에 결합된다.
상기 4G 5/6 부호율 H 행렬(1000)은 20 X 11 크기의 네 개의 소형 행렬들로 분리된다. 이때, 상기 소형 행렬들을 1/4 4G 5/6부호율 H 행렬(1205a 내지 d)라 칭한다. 상기 4G 5/6 부호율 H 행렬(1000)은 다중 병렬 2/4 유닛 LDPC 복호기(1200)에서 2/4 유닛 LDPC CRISP(600)의 개수에 대응되는 개수의 소형 행렬들을 분리한다.
4G 5/6 부호율 H행렬(1000)의 각 행은 두 개의 열 집합들로 분리된다. 첫 번째 2/4 유닛 LDPC CRISP(600a)는 상기 행의 첫 번째 부분(1005)을 처리한다. 두 번째 2/4 유닛 LDPC CRISP(600b)는 상기 행의 두 번째 부분(1010)을 처리한다. 세 번째 2/4 유닛 LDPC CRISP(600c)는 두 번째 행의 첫 번째 부분(1005)을 처리한다. 네 번째 2/4 유닛 LDPC CRISP(600d)는 상기 두 번째 행의 두 번째 부분(1010)을 처리한다.
상기 각각의 2/4 유닛 LDPC CRISP들(600a-d)은 다른 행을 처리할 수도 있다. 예를 들어, 첫 번째 2/4 유닛 LDPC CRISP(600a)는 첫 번째 행의 첫 번째 부분(1005)을 처리하고, 두 번째 2/4 유닛 LDPC CRISP(600b)는 두 번째 행의 두 번째 부분(1010)을 처리하며, 세 번째 2/4 유닛 LDPC CRISP(600c)는 세 번째 행의 첫 번째 부분(1005)을 처리하고, 네 번째 2/4 유닛 LDPC CRISP(600d)는 네 번째 행의 두 번째 부분(1010)을 처리한다.
또한, 적어도 하나의 2/4 유닛 LDPC CRISP(600a-d)는 대기 모드로 동작할 수도 있다. 예를 들어, 첫 번째 2/4 유닛 LDPC CRISP(600a)와 네 번째 2/4 유닛 LDPC CRISP(600d)는 데이터를 처리하고, 두 번째 2/4 유닛 LDPC CRISP(600b)와 세 번째 2/4 유닛 LDPC CRISP(600c)는 대기 모드로 동작할 수 있다.
상기 다중 2/4 유닛 LDPC 복호기(1200)는 파이프라인 프로세싱을 이용하여 LDPC 복호를 수행한다. 각각의 2/4 유닛 LDPC CRISP(600)은 각각의 1/4 4G표준의 5/6부호율 H 행렬(1205a-d) 중 어느 하나를 처리한다. 상기 파이프라인 프로세싱은 임의 개의 머신들을 사용할 수도 있다. 예를 들어, 상기 파이프 라인 프로세싱은 LDPC 머신 당 유닛의 개수에 의해 분리된 열의 개수까지의 머신들을 사용할 수 있다. 각각의 머신은 주기당 행의 Z 계수의 2/4 열을 처리한다. 각각의 머신은 행 별로 외부(extrinsic) 데이터를 읽기 위한 x 주기와 새롭게 산출된 외부 데이터를 쓰기 위한 x 주기를 필요로 한다. 2/4 유닛 LDPC CRISP(600a)가 이전 행의 쓰기의 y주기를 갖추는 경우, 파이프라이닝(pipelining) 발생한다. 다음 2/4 유닛 LDPC CRISP(600b)는 다른 행의 읽기를 시작한다. 이전 머신이 이전 행에 데이터를 쓴 후에 각각의 머신은 다른 행을 읽어 프로세스를 진행한다.
다중 2/4 유닛 LDPC 복호기(1200)은 1/4 4G 5/6 부호율 H 행렬(1205a 내지 d) 각각을 읽고 처리할 수 있다. 상기 다중 병렬 2/4 유닛 LDPC 복호기(1200)에 의해 이용된 프로세스는 상기 도 6에 도시된 2/4유닛 LDPC CRISP(600)과 유사한 함수들을 포함한다. 그러나, 상기 다중 병렬 2/4 유닛 LDPC 복호기(1200)는 4개의 2/4 유닛 LDPC CRISP(600)들로 구성된다. 상기 다중 병렬 2/4 유닛 LDPC 복호기(1200)는 1/4 4G표준의 5/6 부호율 H 행렬(1205a 내지 1205d)를 동시에 처리할 수 있다.
예를 들어, 상기 도 13에 도시된 바와 같이 첫 번째 2/4 유닛 LDPC CRISP(600a)는 ti -1 시간 동안 행 i-1을 위해 데이터(1305)를 쓴다. 이후, 다음 주기 동안, 두 번째 2/4 유닛 LDPC CRISP(600b)는 ti 시간 동안 행i를 위해 데이터(1310)를 읽는다. 상기 두 번째 2/4 유닛 LDPC CRISP(600b)는 임시 메모리(1315)에 상기 데이터를 쓰고, 데이터(1320)를 처리한다. 또한, 상기 두 번째 2/4 유닛 LDPC CRISP(600b)는 하기 도 16에 도시된 바와 같이 메모리에 외부 데이터(1325)를 쓴다. 이후, 상기 첫 번째 2/4 유닛 LDPC CRISP(600a)난 다음 주기 동안 행 r+1을 읽을 수 있다.
상기 2/4 유닛 LDPC CRISP들(600a 내지 600d)은 성공한 주기 동안 데이터의 서로 다른 행을 읽는다. 그러므로 상기 2/4 유닛 LDPC CRISP들(600a 내지 600d)은 동일한 시간에 동일한 메모리 뱅크로부터 데이터를 읽지 않는다.
도 14는 본 발명에 따른 단일 장치 파이프라인 프로세스를 도시하고 있다. 즉, 하나의 2/4 유닛 LDPC CRISP(single 2/4 unit LDPC CRISP)(600)에서의 파이프라인 프로세스를 도시한다. 상기 2/4 유닛 LDPC CRISP(600)는 ti -1 시간 동안 행i-1을 위해 데이터(1405)를 쓴다. 이후, 다은 주기 동안 상기 2/4 유닛 LDPC CRISP(600)는 ti시간 동안 행i를 위해 데이터(1410)를 읽는다. 상기 2/4 유닛 LDPC CRISP(600)는 임시 메모리)1415)에 데이터를 쓰고, 데이터(1420)를 처리하며, 하기 도 16에 도시된 바와 같이 메모리에 외부 데이터(1425)를 쓴다. 이후, 상기 2/4 유닛 LDPC CRISP(600)는 다음 주기 동안 행 i+1을 읽는다.
다중 병렬 2/4 유닛 LDPC 복조기(1200)는 병렬 열 프로세싱을 수행한다. 상기 2/4 유닛 LDPC CRISP(600a-d) 각각은 1/4 4G 5/6 부호율 H행렬들(1205a 내지 1205d) 각각의 행으로부터 데이터를 읽는다. 이후, 2/4 유닛 LDPC CRISP들(600a 내지 600d)은 상기 데이터를 처리하고, 다른 2/4 유닛 LDPC CRISP의 최소 값과 자신의 최소 값을 비교한다. 예를 들어, 2/4 유닛 LDPC CRISP(600a)는 자신의 최소 값과 2/4 유닛 LDPC CRISP(600c)의 최소 값을 비교한다. 또한, 2/4 유닛 LDPC CRISP(600b)는 자신의 최소 값과 2/4 유닛 LDPC CRISP(600c)의 최소 값을 비교한다. 그러므로 다중 병렬 2/4 유닛 LDPC 복조기(1200)는 병렬 열들에서 머신들 사이의 최소 값을 통과시킨다. 상기 입력/외부 메모리들(1105)은 뱅크의 범위를 기반으로 2/4 유닛 LDPC CRISP들(600a 내지 600d) 사이에서 각각의 2/4 유닛 LDPC CRISP들(600a 내지 600d)가 처리할 수 있도록 나뉜다.
도 15는 본 발명에 따른 병렬 처리를 도시하고 있다. 즉, 다중 2/4 유닛 LDPC CRISP(multiple 2/4 unit LDPC CRISP)(600)에서의 병렬 처리를 도시한다. 각각의 2/4 유닛 LDPC CRISP(600)은 ti시간 동안 행 i를 위해 데이터(1505)를 읽는다. 상기 데이터는 1/4 4G표준의 5/6 부호율 H행렬(1205a 내지 1205d)에 따라 읽혀진다. 각각의 2/4 유닛 LDPC CRISP(600)는 임시 메모리(1515)에 데이터를 쓰고, 데이터(1520)를 처리하며, 하기 도 16에 도시된 바와 같이 메모리에 외부 데이터(1525)를 쓴다. 상기 1520에서 데이터를 프로세싱하는 경우, 각각의 2/4 유닛 LDPC CRISP(600)는 데이터를 처리하고, 최소 값을 산출한다. 최소 값을 산출한 후, 첫 번째 2/4 유닛 LDPC CRISP(600a)는 세 번째 2/4 유닛 LDPC CRISP(600c)에서 산출한 최소 값과 자신이 산출한 최소 값을 비교한다. 또한, 두 번째 2/4 유닛 LDPC CRISP(600b)는 네 번째 2/4 유닛 LDPC CRISP(600d)에서 산출한 최소 값과 자신이 산출한 최소 값을 비교한다. 이후, 각각의 2/4 유닛 LDPC CRISP(600)는 다음 주기 동안 행 r+1를 읽는다(1530).
다중 병렬 2/4 유닛 LDPC 복조기(1200)는 병렬 열 프로세싱 방법과 파이프라인 프로세싱 방법을 함께 사용한다. 상기 다중 병렬 2/4 유닛 LDPC 복조기(1200)는 병렬 열들에서 머신들 사이의 최소 값을 통과시킨다. 예를 들어, 상기 다중 병렬 2/4 유닛 LDPC 복조기(1200)는 첫 번째 2/4 유닛 LDPC CRISP(600a)와 세 번째 2/4 유닛 LDPC CRISP(600c) 사이의 최소 값을 통과시킨다. 또한, 상기 다중 병렬 2/4 유닛 LDPC 복조기(1200)는 두 번째 2/4 유닛 LDPC CRISP(600b)와 네 번째 2/4 유닛 LDPC CRISP(600d) 사이의 최소 값을 통과시킨다. 상기 입력/외부 메모리들(1105)은 뱅크의 범위를 기반으로 2/4 유닛 LDPC CRISP들(600a 내지 600d) 사이에서 각각의 2/4 유닛 LDPC CRISP들(600a 내지 600d)가 처리할 수 있도록 나뉜다.
도 16은 본 발명에 따른 LDPC 복호 처리를 도시하고 있다. 상기 LDPC 복호를 위한 처리는 상기 도 16에 도시된 바와 같이 구성된다. 하지만, 본 발명의 특징을 벗어나지 범위에서 상기 LDPC 복호를 위한 처리를 다르게 나타낼 수 있다.
데이터는 1605단계에서 수신 경로로 수신된다. 부호워드가 수신된다. 상기 데이터는 1610단계에서 입력 버퍼(305)에 저장된다. 상기 입력 버퍼(305)는 다중 메모리 유닛(605)을 포함한다. 상기 입력 버퍼는 24개의 메모리 유닛들(605a 내지 605x)을 포함한다. 상기 입력 버퍼(305)는 프레임 당 576개의 비트들을 저장한다.
상기 프로세서 배열(320)은 1615단계에서 상기 입력 버퍼(305)에 저장된 데이터를 처리한다. 상기 프로세서 배열(320)은 상기 입력 버퍼(305)에 저장된 데이터를 처리하기 위하여 H행렬을 사용한다. 상기 읽기 스위치(315)는 H 행렬에 따라 데이터를 처리하기 위하여 상기 입력 버퍼(305)로부터 데이터를 읽는다. 상기 읽기 스위치(315)는 외부/행 외부 뺄셈기(610), 읽기 스위치(615) 및 z 계수 쉬프트 다중화기(620)를 포함한다. 여기서, 상기 읽기 스위치(615)는 24 입력 2출력(24 to 2) 또는 24입력 4출력(24 to 4) 스위치를 포함한다. 상기 읽기 스위치(305)는 데이터를 읽고, H 행렬에 따라 z 계수 우 쉬프트를 사용한다. 예를 들어, 상기 읽기 스위치(305)는 명령 복호기 & 주소 생성기(305) 안에 저장된 H 행렬을 사용할 수 있다. 상기 읽기 스위치(320)는 H 행렬을 통해 데이터 비트24-47, 48-71, 192-239를 읽는다. 상기 도 5와 도 6에 도시된 바와 같이 위치 값 '94'에 대응되는 데이터 비트 24-47, 위치 값 '73'에 대응되는 데이터 비트 48-71, 위치 값 '55'에 대응되는 데이터 비트 192-215, 위치 값 '83'에 대응되는 데이터 비트 216-239, 위치 값 '7'에 대응되는 데이터 비트 288-311, 및 위치 값 '0'에 대응되는 데이터 비트 312-335; 여기서, 상기 데이터 비트 288-311 및 312-335는 잉여 비트를 나타낼 수 있다. 또한 '-1' 값은 위치 값으로 사용되지 않는 것을 나타낸다.
복조기(280)는 하나의 2/4 유닛 LDPC CRISP(600)을 포함한다. 읽기 스위치는 t1 시간 동안 데이터 비트 24-47을 읽고; t2 시간 동안 데이터 비트 48-71을 읽으며; t3 시간 동안 데이터 비트 192-215를 읽고; t5시간 동안 데이터 비트 216-239를 읽으며; t6시간 동안 데이터 비트 312-335를 읽는다.
상기 복조기(280)는 두 개의 2/4 유닛 LDPC CRISP(600)들을 포함한다. 각각의 2/4 유닛 LDPC CRISP(600)은 H 행렬의 일부분을 읽는다. 각각의 2/4 유닛 LDPC CRISP(600)은 각각의 주기 동안 H행렬의 일부분을 동시에 읽을 수도 있다. 추가적으로, 하나의 2/4 유닛 LDPC CRISP(600)는 주기 동안 대기 모드로 동작할 수 있다.
상기 복조기(280)는 4개의 2/4 유닛 LDPC CRISP(600)들을 포함한다. 각각의 2/4 유닛 LDPC CRISP(600)은 H 행렬의 일부분을 읽는다. 각각의 2/4 유닛 LDPC CRISP(600)은 각각의 주기 동안 H행렬의 일부분을 동시에 읽을 수도 있다. 추가적으로, 적어도 하나의 2/4 유닛 LDPC CRISP(600)는 주기 동안 대기 모드로 동작할 수 있다.
상기 프로세서 배열(320)은 최소 값과 다음 최소 값을 확인하기 위해 최소 합 운영을 수행한다. 상기 최소 값과 다음 최소 값은 상기 프로세서 배열(320)의 적어도 하나의 레지스터에 쓰여진다.
이후, 상기 쓰기 스위치(335)는 1620단계에서 상기 프로세서 배열(320)의 동작 결과를 외부 버퍼(330)에 쓴다. 상기 쓰기 스위치는 최소/다음 최소 선택&합 블록(630)과 Z 계수 좌 쉬프트 다중화기(635) 및 쓰기 스위치(640)를 포함한다. 여기서, 상기 쓰기 스위치는 2입력 24 출력 또는 4 입력 24 출력 스위치를 포함한다. 상기 프로세서 배열(320)은 최소/다음 최소 선택&합 블록(630a)과 Z 계수 좌 쉬프트 다중화기(635a) 및 쓰기 스위치(640a)에 의해 정의된 경로를 통해 상기 외부 메모리(330)에 외부 데이터의 하나를 쓴다. 여기서, 상기 쓰기 스위치(640a)는 2입력 24 출력 또는 4 입력 24 출력 스위치를 포함한다. 추가적으로, 상기 프로세서는 최소/다음 최소 선택&합 블록(630b)과 Z 계수 좌 쉬프트 다중화기(635b) 및 쓰기 스위치(640b)에 의해 정의된 경로를 통해 다음 반복을 위한 외부 데이터를 적용한다. 여기서, 상기 쓰기 스위치(640b)는 2입력 24 출력 또는 4 입력 24 출력 스위치를 포함한다.
상기 외부 버퍼(330)는 외부 메모리 유닛들(645)을 포함한다. 상기 외부 버퍼(330)는 다중 외부 메모리 유닛(645)을 포함한다. 상기 외부 버퍼(330)는 24개의 메모리 유닛들(645a 내지 645x)을 포함한다. 상기 외부 버퍼(330)는 576개의 비트들을 저장할 수 있다.
상기 복조기(280)는 1625단계에서 중지 이벤트가 발생하는지 확인한다. 상기 중지 이벤트는 상기 복조기(280)의 데이터 반복 복호의 중단을 지시하는 이벤트를 의미한다. 이때, 상기 중지 이벤트는 다수의 반복 수행, 시간 기한, 데이터 발견 집합 및 MBS 획득 등을 포함한다. 상기 복조기에서 중지 이벤트 발생을 결정한 경우, 상기 복조기는 1230단계로 진행하여 프로세서를 중단한다. 한편, 상기 복조기에서 중지 이벤트가 발생하지 않은 경우, 상기 복조기는 1635단계로 진행한다.
상기 읽기 스위치(315)는 1635단계에서 외부 버퍼(330)로부터 데이터를 읽는다. 상기 외부/행 외부 뺄셈기(610)는 상기 프로세서 배열(320)에 의해 처리된 v노드에 대응하는 외부 데이터를 제거할 수 있다. 상기 v노드에 대응하는 외부 데이터는 상기 외부 데이터가 v 노드의 새로운 값을 결정하는 계산에 도움이 되지 않기 때문에 제거된다. 상기 외부/행 외부 뺄셈기(610)는 상기 외부 버퍼(300)에서 각각의 비트를 위한 상기 운영을 수행한다. 상기 외부/행 외부 뺄셈기(610)는 외부 메모리(330)로부터 외부 데이터를 읽는다. 이때, 상기 외부 데이터는 최소/다음 최소 선택&합 블록(630b)과 Z 계수 좌 쉬프트 다중화기(635b) 및 쓰기 스위치(640b)에 의해 정의된 경로를 통해 상기 외부 메모리(330)에 수신된다. 여기서, 상기 쓰기 스위치(640b)는 2입력 24 출력 또는 4 입력 24 출력 스위치를 포함한다.
이후, 상기 프로세서 배열(320)은 상기 1615단계로 되돌아가 다른 복호를 반복 수행한다. 이후 반복에서 데이터는 상기 입력 버퍼(305)로부터 읽혀 지지 않는다. 오히려, 상기 데이터는 외부 버퍼(330)로부터 읽혀진다. 그러므로 상기 프로세서 배열(320)은 최소/다음 최소 선택&합 블록(630a)과 Z 계수 좌 쉬프트 다중화기(635a) 및 쓰기 스위치(640a)에 의해 정의된 경로를 통해 외부 메모리(330)로 외부 데이터의 하나를 쓴다. 여기서, 상기 쓰기 스위치(640a)는 2입력 24 출력 또는 4 입력 24 출력 스위치를 포함한다. 추가적으로 상기 외부 데이터는 최소/다음 최소 선택&합 블록(630b)과 Z 계수 좌 쉬프트 다중화기(635b) 및 쓰기 스위치(640b)에 의해 정의된 경로를 통해 다음 반복에 사용될 수 있다. 여기서, 상기 쓰기 스위치(640b)는 2입력 24 출력(2 to 24) 또는 4 입력 24 출력(4 to 24) 스위치를 포함한다.
도 17a와 b는 본 발명에 따른 H 행렬의 선-프로세싱을 도시하고 있다. 상기 H 행렬 선-프로세싱은 하기 도 17a와 b에 도시된 바와 같이 구성된다. 하지만, 본 발명의 특징을 벗어나지 범위에서 상기 H 행렬 선-프로세싱을 다르게 나타낼 수 있다.
이하 설명에서 상기 메모리 유닛들(605a 내지 605x)은 다중 뱅크들로 구성된다. 또한, 2/4 유닛 LDPC CRISP들(600a 내지 600d)를 위한 각각의 다중 프로세서는 한번에 상기 메모리 유닛(605)의 하나의 뱅크로부터 데이터를 읽는다. 예를 들어, 상기 2/4 유닛 LDPC CRISP(600a)는 t1시간에 메모리 (605a)의 뱅크 0으로부터 데이터를 읽고, 2/4 유닛 LDPC CRISP(605b)는 t1 시간에 메모리(605c)의 뱅크0으로부터 데이터를 읽는다.
상기 4G 5/6 부호율 H 행렬(1000)은 적어도 두 개의 2/4 유닛 LDPC CRISP(600)들에 의해 처리되기 때문에 메모리 경쟁이 발생할 수도 있다. 메모리 경쟁을 피하기 위해, 상기 4G 5/6 부호율 H 행렬(1000)은 경쟁을 피하기 위해 선-처리한다. 예를 들어, 상기 병렬 2/4 유닛 LDPC 복조기(1200)는 네 개의 2/4 유닛 LDPC CRISP(600)들을 포함하여 주기 당 네 개의 열을 처리할 수 있다.
상기 도 17a는 본 발명에 따른 4G 표준 5/6 부호율 H 행렬(1000)의 모듈로 24행렬에서 가능한 메모리 경쟁을 도시한다. 상기 모듈로 24 행렬(1705)은 하기 도 17a에 도시된 바와 같이 구성된다. 하지만, 본 발명의 특징을 벗어나지 범위에서 상기 모듈로 24 행렬(1705)을 다르게 나타낼 수 있다.
상기 도 17a에 도시된 행렬(1705)에 표시된 수는 4G 표준 5/6부호율 H 행렬(1000)의 모듈로 24를 표시한다. 주기당 4개의 열들을 처리하기 때문에, 모든 네 번째 열을 명료하게 표시하기 위해 박스로 표시한다. 더욱이, 밝게 표시된(highlighted) 번호는 주기 당 행에서 가능한 경쟁을 나타낸다. 예를 들어, 첫 번째 행의 5번째 주기에 표시된 '2'는 두 개의 서로 다른 읽기/쓰기 처리에 의해 동일한 시점에 동일한 뱅크에 접속되므로 경쟁이 발생한다. 더욱이, 마지막 행은 첫 번째 주기에 '11'로 표시된 경쟁과 두 번째 주기에 '23'으로 표시된 경쟁이 존재한다.
도 17b는 본 발명에 따라 선-처리된 모듈로 24 행렬(1750)을 도시한다. 상기 선-처리된 모듈로 24 행렬(1750)은 하기 도 17b에 도시된 바와 같이 구성된다. 하지만, 본 발명의 특징을 벗어나지 범위에서 상기 선-처리된 모듈로 24 행렬(1750)을 다르게 나타낼 수 있다.
상기 4G 5/6 부호율 H 행렬(1000)은 경쟁을 피하기 위해 행에서 다른 주기를 위한 읽기/쓰기 접속이 상충되지 않도록 이동시켜 선 처리된다. 예를 들어, 첫 번째 행의 5번째 주기에 표시된 '2'의 경쟁은 마지막 주기에서 처리하도록 이동시킴으로써 경쟁을 피할 수 있다. 상기 2/4 유닛 LDPC CRISP(600)은 상기 5번째 주기 동안 상기 '2'가 있던 위치에서 대기 모드로 동작한다. 상기 '2'는 마지막 주기 동안 상기 2/4 유닛 LDPC CRISP(600)에 의해 처리된다.
그러나, 마지막 행의 경우, 첫 번째 주기의 '11'과 두 번째 주기의 '23'의 두 개의 경쟁이 존재한다. 이때, 경쟁을 피하기 위해 상기 두 번째 주기의 '23'을 마지막 주기로 이동시키는 경우, 새로운 경쟁이 발생한다. 즉, 마지막 주기에도 '23'의 읽기/쓰기 운영이 나타내므로 상기 두 번째 주기의 '23'을 마지막 주기로 이동시키면 새로운 경쟁이 발생한다. 그래서, 상기 두 번째 주기의 '23'을 세번째 주기의 '0'에 의한 읽기/쓰기 운영과 교체한다. 이에 따라, 경쟁을 피할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능하다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
도 1은 본 발명에 따른 ACK/NACK 메시지를 전송하기 위한 무선 네트워크의 구성을 도시하는 도면,
도 2a는 본 발명에 따른 OFDMA 전송 경로의 블록 구성을 도시하는 도면,
도 2b는 본 발명에 따른 OFDMA 수신 경로의 블록 구성을 도시하는 도면,
도 3은 본 발명에 따른 LDPC CRISP의 최상위 레벨(top-level) 구조를 도시하는 도면,
도 4는 본 발명에 따른 패리티 체크 행렬(parity check matrix)에 대응되는 터너(Tanner) 그래프를 도시하는 도면,
도 5a는 본 발명에 따른 1/2 부호율(rate 1/2 code)의 부호를 도시하는 도면,
도 5b는 본 발명에 따른 5/6 부호율(rate 5/6 code)의 부호를 도시하는 도면,
도 6은 본 발명에 따른 직렬(serial)-v LDPC CRISP의 상세 블록 구성을 도시하는 도면,
도 7은 본 발명에 따른 직렬(serial)-c LDPC CRISP의 상세 블록 구성을 도시하는 도면,
도 8은 본 발명에 따른 4G 메모리 배열(4G memory array)을 도시하는 도면,
도 9는 본 발명에 따른 행 외부 메모리 배열(row extrinsic memory arrangement) 을 도시하는 도면,
도 10은 본 발명에 따른 4G 5/6부호율의 H 행렬을 도시하는 도면,
도 11은 본 발명에 따른 병렬 2/4 유닛(unit) LDPC 복호기를 도시하는 도면,
도 12는 본 발명에 따른 다중 2/4 유닛 LDPC 복호기를 도시하는 도면,
도 13은 본 발명에 따른 파이프라인 프로세스(pipeline process)를 도시하는 도면,
도 14는 본 발명에 따른 단일 머신 파이프라인 프로세스(single machine pipeline process)를 도시하는 도면,
도 15는 본 발명에 따른 병렬 프로세스(parallel process)를 도시하는 도면,
도 16은 본 발명에 따른 LDPC 복호 프로세스를 도시하는 도면, 및
도 17a와 b는 본 발명에 따른 H행렬의 구성을 도시하는 도면.

Claims (20)

  1. 무선통신네트워크에서 부호화된 전송 데이터를 복호하기 위한 수신 장치에 있어서,
    데이터를 수신하기 위한 적어도 하나의 수신 안테나와,
    상기 적어도 하나의 수신 안테나를 통해 수신받은 데이터를 저장하기 위한 적어도 두 개의 메모리 유닛들과,
    LDPC(Low-Density Parity-Check) 복호 방식(operation)을 수행하는 적어도 하나의 복호기를 포함하고,
    각각의 복호기는, 복호 행렬(decoding matrix)의 일부분을 이용하여 상기 수신받은 데이터의 적어도 일부분을 독립적으로 복호하고, 다른 적어도 하나의 복호기와 상기 LDPC 복호 방식의 수행을 연동하는 것을 특징으로 하는 장치.
  2. 제 1항에 있어서,
    상기 적어도 하나의 복호기 중 적어도 두 개의 복호기들은, 병렬 프로세스(parallel process)를 이용하여 LDPC 복호 방식을 수행하는 것을 특징으로 하는 장치.
  3. 제 2항에 있어서,
    상기 병렬 프로세스는, 병렬 열 처리(parallel columns process)하는 것을 특징으로 하는 장치.
  4. 제 1항에 있어서,
    상기 적어도 하나의 복호기 중 적어도 두 개의 복호기들은, 파이프라인 프로세스(pipelined process)를 이용하여 LDPC 복호 방식을 수행하는 것을 특징으로 하는 장치.
  5. 제 1항에 있어서,
    상기 적어도 하나의 복호기 중 적어도 두 개의 복호기들은, 병렬 프로세스(parallel process)와 파이프라인 프로세스(pipelined process)를 이용하여 LDPC 복호 방식을 수행하는 것을 특징으로 하는 장치.
  6. 제 1항에 있어서,
    적어도 두 개의 임시 외부 메모리 유닛들(temporary extrinsic memory units)을 더 포함하는 것을 특징으로 하는 장치.
  7. 제 1항에 있어서,
    상기 복호 행렬은, 경쟁을 피하기 위해 선-처리되는 것을 특징으로 하는 장치.
  8. 무선 통신 장치에서 부호화된 전송 데이터를 복호하기 위한 복호 장치에 있어서,
    데이터를 저장하기 위한 적어도 두 개의 메모리 유닛들과,
    상기 적어도 두 개의 메모리 유닛들 중 적어도 하나의 메모리 유닛에 저장된 복호 행렬과,
    적어도 하나의 단위 복호기를 포함하고,
    각각의 단위 복호기는, 프로세서 배열과, 적어도 두 개의 명령어(instruction)들을 포함하고,
    상기 적어도 두 개의 명령어들 중 일부는 명령 제어부에 저장되고,
    상기 적어도 두 개의 명령어들은 상기 각각의 단위 복호기가 LDPC 복호 방식(operation)을 수행하고, 복호 행렬의 일부분을 사용하여 수신 데이터의 적어도 일부분을 독립적으로 복호하며, 다른 적어도 하나의 단위 복호기와 상기 LDPC 복호 방식의 수행을 연동하도록 하는 것을 특징으로 하는 장치.
  9. 제 8항에 있어서,
    상기 적어도 하나의 단위 복호기 중 적어도 두 개의 단위 복호기들은, 병렬 프로세스(parallel process)를 이용하여 LDPC 복호 방식을 수행하는 것을 특징으로 하는 장치.
  10. 제 9항에 있어서,
    상기 병렬 프로세스는, 병렬 열 처리(parallel columns process)하는 것을 특징으로 하는 장치.
  11. 제 8항에 있어서,
    상기 적어도 하나의 단위 복호기 중 적어도 두 개의 단위 복호기들은, 파이프라인 프로세스(pipelined process)를 이용하여 LDPC 복호 방식을 수행하는 것을 특징으로 하는 장치.
  12. 제 8항에 있어서,
    상기 적어도 하나의 단위 복호기 중 적어도 두 개의 단위 복호기들은, 병렬 프로세스(parallel process)와 파이프라인 프로세스(pipelined process)를 이용하여 LDPC 복호 방식을 수행하는 것을 특징으로 하는 장치.
  13. 제 8항에 있어서,
    적어도 두 개의 임시 외부 메모리 유닛들(temporary extrinsic memory units)을 더 포함하는 것을 특징으로 하는 장치.
  14. 제 8항에 있어서,
    상기 복호 행렬은, 경쟁을 피하기 위해 선-처리되는 것을 특징으로 하는 장치.
  15. 무선 통신 네트워크에서 전송 데이터를 복호하기 위한 방법에 있어서,
    전송 데이터를 수신받는 과정과,
    적어도 두 개의 메모리 유닛들에 상기 수신받은 데이터를 저장하는 과정과,
    적어도 하나의 복호기를 통해 병렬 LDPC 복호 방식(operation)을 수행하는 과정을 포함하고,
    각각의 복호기는 다른 적어도 하나의 복호기를 통해 수행된 복호 방식의 복호 행렬에 대한 적어도 일부분을 이용하여 상기 병렬 LDPC 복호 방식을 수행하는 것을 특징으로 하는 방법.
  16. 제 15항에 있어서,
    상기 병렬 LDPC 복호 방식은, 병렬 열 처리(parallel columns process)하는 것을 특징으로 하는 방법.
  17. 제 16항에 있어서,
    상기 적어도 하나의 복호기 중 적어도 두 개의 복호기들은 파이프라인 프로세스(pipelined process)를 이용하여 LDPC 복호 방식을 수행하는 것을 특징으로 하는 방법.
  18. 제 15항에 있어서,
    상기 병렬 LDPC 복호 방식 동안 임시 외부 메모리에 수신받은 데이터의 적어도 일부분을 저장하는 과정을 더 포함하는 것을 특징으로 하는 방법.
  19. 제 15항에 있어서,
    상기 적어도 하나의 복조기 중 첫 번째 복조기는 대기 모드로 동작하고,
    두 번째 복호기는 병렬 LDCP 복호 방식을 수행하는 것을 특징으로 하는 방법.
  20. 제 15항에 있어서,
    상기 복호 행렬은, 경쟁을 피하기 위해 선-처리되는 것을 특징으로 하는 방법.
KR1020090120993A 2008-12-08 2009-12-08 비경쟁 기반 병렬 처리 다중모드 엘디피씨 복호 장치 KR101622956B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US20127308P 2008-12-08 2008-12-08
US61/201,273 2008-12-08
US12/378,775 US8296640B2 (en) 2008-06-20 2009-02-19 Method and apparatus for parallel processing multimode LDPC decoder
US12/378,775 2009-02-19
US12/386,772 2009-04-22
US12/386,772 US8335979B2 (en) 2008-12-08 2009-04-22 Contention-free parallel processing multimode LDPC decoder

Publications (2)

Publication Number Publication Date
KR20100066395A KR20100066395A (ko) 2010-06-17
KR101622956B1 true KR101622956B1 (ko) 2016-05-20

Family

ID=42232437

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090120993A KR101622956B1 (ko) 2008-12-08 2009-12-08 비경쟁 기반 병렬 처리 다중모드 엘디피씨 복호 장치

Country Status (4)

Country Link
US (1) US8335979B2 (ko)
EP (1) EP2356749A4 (ko)
KR (1) KR101622956B1 (ko)
WO (1) WO2010068017A2 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8811452B2 (en) * 2009-12-08 2014-08-19 Samsung Electronics Co., Ltd. Method and apparatus for parallel processing turbo decoder
CN102130693B (zh) * 2010-11-10 2013-06-05 华为技术有限公司 一种低密度奇偶校验码的译码方法和装置
CN102480337B (zh) * 2010-11-30 2016-04-13 国际商业机器公司 无线电软件系统以及用于其的解码装置和方法
US8726122B2 (en) * 2011-05-11 2014-05-13 Samsung Electronics Co., Ltd. High throughput LDPC decoder
RU2608958C2 (ru) * 2012-07-09 2017-01-27 ЗетТиИ Корпорейшн Способ и устройство сохранения данных
US9306591B2 (en) * 2014-05-08 2016-04-05 SiTune Corporation Calibration of high speed asynchronous convertor
US9264059B2 (en) 2014-05-08 2016-02-16 SiTune Corporation Calibration of time-interleaved analog-to-digital converter
US20160070662A1 (en) 2014-09-04 2016-03-10 National Instruments Corporation Reordering a Sequence of Memory Accesses to Improve Pipelined Performance
US11791938B2 (en) * 2019-09-26 2023-10-17 Nvidia Corporation Parity check decoding

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034828A1 (en) * 2002-08-15 2004-02-19 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
KR20050004118A (ko) * 2003-07-03 2005-01-12 더 디렉티브 그룹, 인크. 병렬 디코딩이 가능한 저밀도 패리티 검사 코드를생성하기 위한 방법 및 시스템
KR20060071856A (ko) * 2004-12-22 2006-06-27 엘지전자 주식회사 채널 코드를 이용한 복호화 및 복호화 장치
KR20080031136A (ko) * 2006-10-02 2008-04-08 브로드콤 코포레이션 중복 부분 행렬 기반의 저밀도 패리티 체크 디코더

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US6957375B2 (en) * 2003-02-26 2005-10-18 Flarion Technologies, Inc. Method and apparatus for performing low-density parity-check (LDPC) code operations using a multi-level permutation
KR100955952B1 (ko) 2003-10-13 2010-05-19 삼성전자주식회사 무선 통신 시스템에서 리프팅 저밀도 패러티 검사 부호를이용한 시공간 부호화 방법 및 장치
FR2871976B1 (fr) * 2004-06-22 2006-08-11 St Microelectronics Sa Decodeur ldpc
US7568059B2 (en) 2004-07-08 2009-07-28 Asocs Ltd. Low-power reconfigurable architecture for simultaneous implementation of distinct communication standards
WO2006068435A2 (en) * 2004-12-22 2006-06-29 Lg Electronics Inc. Apparatus and method for decoding using channel code
KR100791225B1 (ko) 2005-12-01 2008-01-03 한국전자통신연구원 유형적으로 분류된 인덱스를 이용한 ldpc 복호화 장치및 그 방법
KR100899738B1 (ko) 2006-02-02 2009-05-27 삼성전자주식회사 노드 메모리 기반의 ldpc 복호기 및 복호방법
US8359522B2 (en) * 2007-05-01 2013-01-22 Texas A&M University System Low density parity check decoder for regular LDPC codes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034828A1 (en) * 2002-08-15 2004-02-19 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
KR20050004118A (ko) * 2003-07-03 2005-01-12 더 디렉티브 그룹, 인크. 병렬 디코딩이 가능한 저밀도 패리티 검사 코드를생성하기 위한 방법 및 시스템
KR20060071856A (ko) * 2004-12-22 2006-06-27 엘지전자 주식회사 채널 코드를 이용한 복호화 및 복호화 장치
KR20080031136A (ko) * 2006-10-02 2008-04-08 브로드콤 코포레이션 중복 부분 행렬 기반의 저밀도 패리티 체크 디코더

Also Published As

Publication number Publication date
WO2010068017A2 (en) 2010-06-17
EP2356749A4 (en) 2013-05-29
US20100146362A1 (en) 2010-06-10
US8335979B2 (en) 2012-12-18
WO2010068017A8 (en) 2011-03-10
WO2010068017A3 (en) 2010-09-10
EP2356749A2 (en) 2011-08-17
KR20100066395A (ko) 2010-06-17

Similar Documents

Publication Publication Date Title
KR101622956B1 (ko) 비경쟁 기반 병렬 처리 다중모드 엘디피씨 복호 장치
JP4402700B2 (ja) 通信システムの信号受信装置及び方法
US7162684B2 (en) Efficient encoder for low-density-parity-check codes
EP1626506B1 (en) Simplified LPDC encoding for digital communications
US8732565B2 (en) Method and apparatus for parallel processing in a gigabit LDPC decoder
EP2182639B1 (en) Low-density parity check convolution code (ldpc-cc) decoding method and decoding device
US7669109B2 (en) Hardware-efficient low density parity check code for digital communications
US8689093B2 (en) Method and apparatus for channel encoding and decoding in a communication system using a low-density parity check code
US20090037791A1 (en) Layered decoder and method for performing layered decoding
US20150200747A1 (en) Transmission method, reception method, transmitter, and receiver
US9825650B2 (en) Decoder architecture for cyclically-coupled quasi-cyclic low-density parity-check codes
WO2009075429A1 (en) Apparatus and method for decoding low density parity check code using prototype matrix
US8010881B2 (en) Multi-code LDPC (low density parity check) decoder
EP2897294A1 (en) LDPC decoding using different quantization for check node and variable node processing
Studer et al. Configurable high-throughput decoder architecture for quasi-cyclic LDPC codes
KR100883654B1 (ko) 저밀도 패러티 검사 부호의 복호장치 및 방법
US8209592B2 (en) Method and apparatus for software-defined radio LDPC decoder
EP3046259A1 (en) Apparatuses and methods for ldpc convolutional encoding and decoding
US8296640B2 (en) Method and apparatus for parallel processing multimode LDPC decoder
CN107733442B (zh) 结构化ldpc码的处理方法及装置
KR102396814B1 (ko) 통신 또는 방송 시스템에서 채널 부호화/복호화 방법 및 장치
KR102000268B1 (ko) 복호화 장치 및 복호화 방법
Kim et al. Flexible LDPC decoder architecture for high-throughput applications
WO2024080110A1 (ja) 送信装置、送信方法、受信装置、及び、受信方法

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