KR101728567B1 - Decoding apparatus and method for parallel processing - Google Patents
Decoding apparatus and method for parallel processing Download PDFInfo
- Publication number
- KR101728567B1 KR101728567B1 KR1020120146766A KR20120146766A KR101728567B1 KR 101728567 B1 KR101728567 B1 KR 101728567B1 KR 1020120146766 A KR1020120146766 A KR 1020120146766A KR 20120146766 A KR20120146766 A KR 20120146766A KR 101728567 B1 KR101728567 B1 KR 101728567B1
- Authority
- KR
- South Korea
- Prior art keywords
- bits
- viterbi decoder
- parallel processing
- codewords
- input
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/65—Purpose and implementation aspects
- H03M13/6502—Reduction of hardware complexity or efficient processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M9/00—Parallel/series conversion or vice versa
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Error Detection And Correction (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
병렬 처리 복호화 장치 및 방법이 개시된다. 병렬 처리 복호화 장치는 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력받고, 상기 입력된 제1 블록을 복호화하는 제1 복호기와, 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력받고, 상기 입력된 제2 블록을 복호화하되, 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 상기 제3 N비트를 복호화하는 제2 복호기와, 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력받고, 상기 입력된 제3 블록을 복호화하되, 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 상기 제5 N비트를 복호화하는 제3 복호기를 포함한다.A parallel processing decoding apparatus and method are disclosed. A parallel processing / decoding apparatus includes a first decoder for receiving a first block including a first N (N is a natural number) bit, a second N bit and a third N bit and for decoding the input first block, A second block including 3 N bits, a fourth N bit and a fifth bit, and decoding the input second block, while the first decoder decodes the second N bits, A second decoder for decoding N bits and a third block including the 5th N bits and the 6th N bits and the 7th bit and decoding the input third block, And a third decoder for decoding the fourth N bits while decoding the fifth N bits.
Description
본 발명의 실시예들은 다수의 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 데이터에 대한 복호화의 처리 속도를 증가시키는 기술에 관한 것이다.Embodiments of the present invention relate to techniques for increasing the processing speed of decoding data by circularly parallel processing data using a plurality of decoders.
통신 시스템에서 전송 중에 발생하는 오류를 정정하기 위해 사용되는 여러 채널 부호화 기법 중, 길쌈 부호(Convolutional Code)와 비터비 복호기(Viterbi Decoder)의 조합은 상대적으로 낮은 복잡도로도 우수한 성능을 제공하므로 여러 표준에 채택되어 널리 쓰이고 있다.Among various channel coding techniques used for correcting errors occurring during transmission in a communication system, a combination of a convolutional code and a Viterbi decoder provides superior performance even in a relatively low complexity, And is widely used.
한편, 최근 급증하는 고품질 멀티미디어 서비스의 요구를 수용하기 위해 매우 높은 전송률을 제공하는 시스템의 표준화가 진행되어 오고 있으며, 대표적인 기술로는 초고처리율 무선랜(Very High Throughput Wireless Local Area Network, VHT WLAN)이 있다. 초고처리율 무선랜 기술은 길쌈 부호를 필수로 사용하고, 저밀도 패리티 검사(Low-Density Parity Check, LDPC) 부호를 선택적으로 채택하도록 규정하고 있다. 이때, 길쌈 부호의 복호기로 이용되는 비터비 복호기의 고속 처리를 구현하여, 전송률을 높일 수 있는 기술이 필요하다.Meanwhile, in order to accommodate the rapidly increasing demand for high-quality multimedia services, a system providing a very high data rate has been standardized. As a representative technology, a very high throughput wireless local area network (VHT WLAN) have. High-throughput wireless LAN technology requires that a convolutional code be used, and that a low-density parity check (LDPC) code be selectively adopted. In this case, a technique for increasing the data rate by implementing a high-speed processing of a Viterbi decoder used as a decoder of a convolutional code is needed.
본 발명은 다수의 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 데이터에 대한 복호화의 처리 속도를 증가시키는 것을 목적으로 한다.An object of the present invention is to increase the processing speed of decoding data by circularly processing data by using a plurality of decoders.
상기의 목적을 이루기 위한 병렬 처리 복호화 장치는 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력받고, 상기 입력된 제1 블록을 복호화하는 제1 복호기와, 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력받고, 상기 입력된 제2 블록을 복호화하되, 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 상기 제3 N비트를 복호화하는 제2 복호기와, 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력받고, 상기 입력된 제3 블록을 복호화하되, 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 상기 제5 N비트를 복호화하는 제3 복호기를 포함한다.A parallel processing decoder for achieving the above object receives a first block including a first N (N is a natural number) bit, a second N bit and a third N bit, 1 decoder, a second block including the third N-bit, the fourth N-bit and the fifth bit, and decoding the input second block, wherein the first decoder decodes the second N-bit, A second decoder for decoding the third N bits, and a third block including the fifth N bits and the sixth N bits and the seventh bit, and decoding the input third block, And a third decoder for decoding the fifth N bits while the second decoder is decoding the fourth N bits.
본 발명의 실시예에 따르면, 다수의 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 데이터에 대한 복호화의 처리 속도를 증가시킬 수 있다.According to the embodiment of the present invention, it is possible to increase the processing speed of decoding data by performing parallel parallel processing of data using a plurality of decoders.
도 1은 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성 일례를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 병렬 처리 복호화 방법을 나타내는 흐름도이다.1 is a block diagram of a parallel processing / decoding apparatus according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of the configuration of a parallel processing / decoding apparatus according to an embodiment of the present invention.
3 is a flowchart illustrating a parallel processing decoding method according to an embodiment of the present invention.
이하, 첨부된 도면들을 참조하여 본 발명의 일실시예에 따른 병렬 처리 복호화 장치 및 방법에 대해 상세히 설명한다.Hereinafter, a parallel processing decoding apparatus and method according to an embodiment of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성을 도시한 도면이다.1 is a block diagram of a parallel processing / decoding apparatus according to an embodiment of the present invention.
도 1을 참조하면, 본 발명의 일실시예에 따른 병렬 처리 복호화 장치(100)는 입력 버퍼부(101), 복호화부(103), 출력 버퍼부(105) 및 프로세서(107)를 포함할 수 있다.1, a parallel processing /
입력 버퍼부(101)는 예컨대, 각각 3*N(N은 자연수)비트의 크기를 갖는 제1 내지 제3 입력 버퍼(101-1, 101-2, 101-3)를 포함할 수 있다. 입력 버퍼부(101)는 입력된 데이터를 제1 내지 제3 입력 버퍼(101-1, 101-2, 101-3)에 저장할 수 있다.The input buffer unit 101 may include first through third input buffers 101-1, 101-2, and 101-3 each having a size of 3 * N (where N is a natural number) bits. The input buffer unit 101 may store the input data in the first to third input buffers 101-1, 101-2, and 101-3.
복호화부(103)는 예컨대, 각각 부호율이 1/2인, 제1 내지 제3 복호기(103-1, 103-2, 103-3)를 포함할 수 있다. 즉, 각 복호기는 한 클럭에 C비트의 부호어를 처리하여, C/2비트를 복호화할 수 있다. 여기서, 각 복호기는 부호율이 1/2일 수 있으나, 이에 한정되지 않는다.The decoding unit 103 may include, for example, first to third decoders 103-1, 103-2, and 103-3 each having a coding rate of 1/2. That is, each decoder can process a C-bit codeword in one clock to decode C / 2 bits. Here, each decoder may have a coding rate of 1/2, but it is not limited thereto.
제1 복호기(103-1)는 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력받고, 상기 입력된 제1 블록을 복호화할 수 있다.The first decoder 103-1 may receive a first block including a first N (N is a natural number) bit, a second N bit, and a third N bit, and may decode the input first block.
제2 복호기(103-2)는 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력받고, 상기 입력된 제2 블록을 복호화할 수 있다. 이때, 제2 복호기(103-2)는 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 상기 제3 N비트를 복호화할 수 있다.The second decoder 103-2 receives the second block including the third N bits, the fourth N bits, and the fifth bit, and can decode the input second block. At this time, the second decoder 103-2 can decode the third N bits while the first decoder decodes the second N bits.
제3 복호기(103-3)는 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력받고, 상기 입력된 제3 블록을 복호화할 수 있다. 이때, 제3 복호기(103-3)는 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 상기 제5 N비트를 복호화할 수 있다.The third decoder 103-3 receives the third block including the fifth N bits, the sixth N bits, and the seventh bits, and decodes the input third block. At this time, the third decoder 103-3 may decode the fifth N bits while the second decoder decodes the fourth N bits.
출력 버퍼부(105)는 제1 내지 제3 출력 버퍼(105-1, 105-2, 105-3)를 포함할 수 있으며, 제1 내지 제3 복호기(103-1, 103-2, 103-3) 각각에서 출력되는 데이터를 제1 내지 제3 출력 버퍼(105-1, 105-2, 105-3)에 저장할 수 있다.The output buffer unit 105 may include first through third output buffers 105-1, 105-2, and 105-3. The first through third decoders 103-1, 103-2, and 103- 3) can be stored in the first to third output buffers 105-1, 105-2, and 105-3.
프로세서(107)는 제1 내지 제3 출력 버퍼(105-1, 105-2, 105-3)에 저장된 데이터를 순서대로 정렬하여, 출력할 수 있다.The
도 2는 본 발명의 일실시예에 따른 병렬 처리 복호화 장치의 구성 일례를 도시한 도면이다.FIG. 2 is a diagram illustrating an example of the configuration of a parallel processing / decoding apparatus according to an embodiment of the present invention.
도 2를 참조하면, 병렬 처리 복호화 장치(200)는 입력 버퍼부(201), 복호화부(203) 및 출력 버퍼부(205)를 포함할 수 있다.Referring to FIG. 2, the parallel processing /
입력 버퍼부(201)는 3개의 입력 버퍼 예컨대, 제1 입력 버퍼, 제2 입력 버퍼 및 제3 입력 버퍼를 포함할 수 있다.The input buffer unit 201 may include three input buffers, e.g., a first input buffer, a second input buffer, and a third input buffer.
복호화부(203)는 3개의 복호기, 예컨대, 제1 비터비 복호기, 제2 비터비 복호기 및 제3 비터비 복호기를 포함할 수 있다.The decoding unit 203 may include three decoders, for example, a first Viterbi decoder, a second Viterbi decoder, and a third Viterbi decoder.
출력 버퍼부(205)는 3개의 출력 버퍼, 예컨대, 제1 출력 버퍼, 제2 출력 버퍼 및 제3 출력 버퍼를 포함할 수 있다.The output buffer unit 205 may include three output buffers, e.g., a first output buffer, a second output buffer, and a third output buffer.
여기서, 병렬 처리 복호화 장치(200)는 예컨대, 한 클럭에 C개의 부호어(Codeword)를 처리하여 C/2개의 비트(Bit)를 복호화하는 다수의 비터비 복호기를 이용하여 데이터를 순환 병렬 처리 함으로써, 디펑추어러(Depuncturer) 모듈로부터 클럭당 2C개의 비트를 비터비 복호기로 입력되도록 하여, 데이터에 대한 2배속 복호화 처리를 가능하게 한다.Here, the parallel processing /
병렬 처리 복호화 장치(200)는 각각 3N의 크기를 갖는 3개의 입력 버퍼에, 입력되는 부호어들을 동일하게 저장한 후, 상황에 맞게 3개의 비터비 복호기로 전달하여 준다. 이때, 병렬 처리 복호화 장치(200)는 입력 버퍼의 잔여 정보 비트 수를 공동으로 계산할 수 있다. 다시 말해, 병렬 처리 복호화 장치(200)는 제1 입력 버퍼에서 데이터가 출력되면, 제2 입력 버퍼와 제3 입력 버퍼에서 또한 데이터가 출력된 것으로 판단할 수 있다. The parallel processing /
입력 버퍼에서 비터비 복호기로 비트 데이터 전달시, 병렬 처리 복호화 장치(200)는 한 프레임 내의 데이터 비트 수가 3N 보다 작거나 같으면 제1 비터비 복호기만을 사용한다. 이때, 복호하여 출력되는 비트 수는 입력 부호어의 반으로 마지막 심볼의 경우와 같다. 만약, 한 프레임 내의 데이터 비트 수가 3N 보다 크면, 병렬 처리 복호화 장치(200)는 3N 단위로 각 비터비 복호비에 순환 입력하여 준다.When transferring bit data from the input buffer to the Viterbi decoder, the
여기서, 한 블록의 크기인 3N은 비터비 복호기에 충분한 데이터가 입력될 경우에 처음으로 데이터가 출력될 때까지의 시간 동안 입력된 데이터의 수 N의 3배이며, 역추적 길이 및 비터비 복호기의 구조에 의한 복호 처리 시간에 따라 달라지게 된다.Here, 3N, which is the size of one block, is three times the number N of pieces of data input during the time until the first data is output when sufficient data is input to the Viterbi decoder, and the back trace length and Viterbi decoder And depends on the decoding processing time by the structure.
실질적으로, 병렬 처리 복호화 장치(200)는 3N 비트만큼 입력이 되면, 1/2 부호율의 비터비 복호기를 통해, 앞쪽 2N 부호어의 복호 결과에 해당하는 N비트를 출력할 수 있다. 이때, 해당 비터비 복호기는 복호를 중지하고 내부 메모리 및 레지스터(Register)를 초기화할 수 있다. 따라서, 병렬 처리 복호화 장치(200)는 마지막 N비트를 복호화하지 않게 된다. 결국, 병렬 처리 복호화 장치(200)는 3N 중 2N 만큼만을 복호화하였으므로, 마지막 N 비트를 다음 블록에 중복하여 입력해야 한다. 예컨대, 병렬 처리 복호화 장치(200)는 3N 비트만큼 비터비 복호기에 입력되면 다음 순번의 비터비 복호기(제1 비터비 복호기였으면 제2 비터비 복호기로, 제2 비터비 복호기였으면 제3 비터비 복호기로, 제3 비터비 복호기였으면 제1 비터비 복호기)에 동일한 방법으로 3N만큼 입력을 넣어준다. 이때, 병렬 처리 복호화 장치(200)는 이전 블록의 마지막 N비트를 포함하는 3N 비트를 다음 순번의 비터비 복호기에 입력할 수 있다.Practically, when the parallel
병렬 처리 복호화 장치(200)는 입력된 3N 비트에서, 앞쪽 2N 부호어의 복호 결과에 해당하는 N비트를 출력 함으로써, 비터비 복호에 소요되는 처리 시간을 수용하면서, 복조에 충분한 역추적 길이를 제공함으로써, 블록 단위로 복호화할 때 발생하는 성능 손실을 최소화하고, 가장 적은 수의 비터비 복호기를 사용하여 효율을 높일 수 있다.The parallel
예컨대, 병렬 처리 복호화 장치(200)는 복수의 N비트(예컨대, 1A, 1B, 2A, 2B, 3A, 3B, 4A 등)가 입력되면, 각 입력 버퍼를 통해, 제1 비터비 복호기에 3N 비트(1A, 1B, 2A)를 입력하고, 제2 비터비 복호기에 3N 비트(2A, 2B, 3A)를 입력하며, 제3 비터비 복호기에 3N 비트(3A, 3B, 4A)를 입력할 수 있다. 이때, 병렬 처리 복호화 장치(200)는 제1 비터비 복호기에서 1B의 N비트를 복호화하는 동안, 제2 비터비 복호기에서 2A의 N비트를 복호화하도록 하고, 제2 비터비 복호기에서 2B의 N비트를 복호화하는 동안, 제3 비터비 복호기에서 3A의 N비트를 복호화하도록 함으로써, 데이터의 처리 속도를 증가시킬 수 있다.For example, when a plurality of N bits (for example, 1A, 1B, 2A, 2B, 3A, 3B, and 4A) are input, the parallel processing /
결과적으로, 병렬 처리 복호화 장치(200)는 블록 단위로 각 비터비 복호기에 순환 입력하면, 처음 N 비트와 마지막의 N 비트를 제외하고는 동시에 단일 비터비 복호기가 처리할 수 있는 속도의 2배로 데이터를 처리할 수 있게 된다. 병렬 처리 복호화 장치(200)는 복호된 비트를 순서대로 정렬하기 위하여 각각 크기가 N인 출력 버퍼에 저장했다가, 저장된 복호 비트를 데이터 순서대로 정렬하여, 다음 모듈(예컨대, 디스크램블러)로 전달할 수 있다.As a result, when the parallel processing /
한편, 병렬 처리 복호화 장치(200)는 복호 시, 각 블록의 입력 시작되는 부분에서 비터비 복호기를 초기화할 수 있다. 이때, 병렬 처리 복호화 장치(200)는 첫 블록이 길쌈 부호화 시작점이므로 상태 0(Zero-State)에서 출발하도록 0번째 경로 매트릭(Path Metric) 값에만 다른 값을 두고, 다른 블록에 동일한 값을 두어 초기화할 수 있다.On the other hand, the parallel processing /
도 3은 본 발명의 일실시예에 따른 병렬 처리 복호화 방법을 나타내는 흐름도이다.3 is a flowchart illustrating a parallel processing decoding method according to an embodiment of the present invention.
도 3을 참조하면, 단계 301에서, 병렬 처리 복호화 장치는 입력된 데이터를 각 입력 버퍼에 저장할 수 있다. Referring to FIG. 3, in
단계 303에서, 병렬 처리 복호화 장치는 데이터 중 3N 비트의 한블록을 각 복호기에 순환 입력할 수 있다.In
단계 305에서, 병렬 처리 복호화 장치는 각 복호기에서 출력된 N 비트의 복호 데이터를 각 출력 버퍼에 저장할 수 있다. 이때, 병렬 처리 복호화 장치는 제1 복호기에, 제1 N(N은 자연수)비트, 제2 N비트 및 제3 N비트를 포함하는 제1 블록을 입력시킬 수 있고, 제2 복호기에 상기 제3 N비트, 제4 N비트 및 제5 비트를 포함하는 제2 블록을 입력시킬 수 있다. 또한, 병렬 처리 복호화 장치는 제3 복호기에 상기 제5 N비트, 제6 N비트 및 제7 비트를 포함하는 제3 블록을 입력시킬 수 있다.In
여기서, 병렬 처리 복호화 장치는 상기 제1 복호기가 상기 제2 N비트를 복호화하는 동안, 제2 복호기에서 상기 제3 N비트를 복호화하도록 제어하고, 상기 제2 복호기가 상기 제4 N비트를 복호화하는 동안, 제3 복호기에서 상기 제5 N비트를 복호화하도록 제어하여, 데이터를 병렬 처리할 수 있다.Here, the parallel processing decoder controls the second decoder to decode the third N bits while the first decoder decodes the second N bits, and the second decoder decodes the fourth N bits , The third decoder may control to decode the fifth N bits to parallel-process the data.
단계 307에서, 병렬 처리 복호화 장치는 출력 버퍼에 저장된 복호 데이터를, 데이터 순서에 따라 정렬하여 출력할 수 있다.In
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and / or a combination of hardware components and software components. For example, the apparatus and components described in the embodiments may be implemented within a computer system, such as, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable array (FPA) A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For ease of understanding, the processing apparatus may be described as being used singly, but those skilled in the art will recognize that the processing apparatus may have a plurality of processing elements and / As shown in FIG. For example, the processing unit may comprise a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as a parallel processor.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
100: 병렬 처리 복호화 장치
101: 입력 버퍼부
103: 복호화부
105: 출력 버퍼부
107: 프로세서100: parallel processing decryption device
101: Input buffer unit
103:
105: Output buffer section
107: Processor
Claims (8)
한 클럭에, 상기 C개의 부호어를, C/2개의 비트(Bit)로 복호화하여, 데이터에 대한 순환 병렬 처리하되, 상기 다수의 입력 버퍼로부터, 상기 C개의 부호어를 선택적으로 전달받는 다수의 비터비 복호기
를 포함하고,
상기 다수의 비터비 복호기 중, 제1 비터비 복호기와 제2 비터비 복호기는,
입력되는 3N 비트 중 적어도 하나의 비트를 공통으로 하고,
제1 시점에, 상기 제2 비터비 복호기에서 상기 공통되는 비트를 처리하고, 상기 제1 시점과 연속하는 제2 시점에, 상기 제1 비터비 복호기에서 상기 공통되는 비트를 처리하는 상기 순환 병렬 처리를 통해, 디펑추어러(Depuncturer) 모듈로부터 클럭당 2C개의 비트가 입력되도록 하여, 상기 데이터에 대한 2배속 복호화 처리를 가능하게 하는
병렬 처리 복호화 장치.A plurality of input buffers having a predetermined size and storing C codewords; And
A plurality of C codewords are selectively received from the plurality of input buffers by decoding the C codewords into C / 2 bits at one clock, performing a cyclic parallel process on the data, Viterbi decoder
Lt; / RTI >
Wherein among the plurality of Viterbi decoders, the first Viterbi decoder and the second Viterbi decoder,
At least one bit among 3N bits to be input is common,
Wherein the first Viterbi decoder processes the common bits in the second Viterbi decoder and the second Viterbi decoder processes the common bits in the first Viterbi decoder at a second point subsequent to the first point in time, Allows 2 C bits per clock to be input from the Depuncturer module, thereby enabling a 2x decryption process on the data
A parallel processing decoding apparatus.
상기 병렬 처리 복호화 장치는,
상기 입력 버퍼에서 상기 비터비 복호기로의 상기 C개의 부호어 전달시,
상기 C개의 부호어의 비트 수가 기준값 보다 작거나 같으면, 상기 다수의 복호기 중 임의 제1 비터비 복호기에서 복호화하도록 하는
병렬 처리 복호화 장치.The method according to claim 1,
The parallel processing decoding apparatus includes:
When transmitting the C codewords from the input buffer to the Viterbi decoder,
And if the number of bits of the C codewords is smaller than or equal to a reference value, decoding is performed by an arbitrary first Viterbi decoder among the plurality of decoders
A parallel processing decoding apparatus.
상기 병렬 처리 복호화 장치는,
상기 C개의 부호어의 비트 수가 기준값 보다 크면, 상기 입력 버퍼에서 상기 비터비 복호기로, 상기 C개의 부호어를 순환하여 입력하는
병렬 처리 복호화 장치.The method according to claim 1,
The parallel processing decoding apparatus includes:
If the number of bits of the C codewords is larger than a reference value, the C codewords are cyclically input from the input buffer to the Viterbi decoder
A parallel processing decoding apparatus.
정해진 크기를 갖는 다수의 입력 버퍼에서, C개의 부호어를 저장하는 단계;
다수의 비터비 복호기에서, 한 클럭에, 상기 C개의 부호어를, C/2개의 비트로 복호화하여, 데이터에 대한 순환 병렬 처리하되, 상기 다수의 입력 버퍼로부터, 상기 C개의 부호어를 선택적으로 전달받는 단계
를 포함하고,
상기 다수의 비터비 복호기 중 제1 비터비 복호기와 제2 비터비 복호기는,
입력되는 3N 비트 중 적어도 하나의 비트를 공통으로 하고,
제1 시점에, 상기 제2 비터비 복호기에서 상기 공통되는 비트를 처리하고, 상기 제1 시점과 연속하는 제2 시점에, 상기 제1 비터비 복호기에서 상기 공통되는 비트를 처리하는 상기 순환 병렬 처리를 통해, 디펑추어러 모듈로부터 클럭당 2C개의 비트가 입력되도록 하여, 상기 데이터에 대한 2배속 복호화 처리를 가능하게 하는
병렬 처리 복호화 방법.A parallel processing decoding method implemented by a parallel processing decoding apparatus,
Storing a plurality of C codewords in a plurality of input buffers having a predetermined size;
A plurality of Viterbi decoders decode the C codewords into C / 2 bits in one clock, perform circular parallel processing on the data, and selectively transmit the C codewords from the plurality of input buffers Steps to Receive
Lt; / RTI >
Wherein the first Viterbi decoder and the second Viterbi decoder of the plurality of Viterbi decoders comprise:
At least one bit among 3N bits to be input is common,
Wherein the first Viterbi decoder processes the common bits in the second Viterbi decoder and the second Viterbi decoder processes the common bits in the first Viterbi decoder at a second point subsequent to the first point in time, , 2C bits per clock are input from the diphoon chorder module, thereby enabling a 2x-speed decoding process on the data
Parallel processing decoding method.
상기 입력 버퍼에서 상기 비터비 복호기로의 상기 C개의 부호어 전달시,
상기 병렬 처리 복호화 장치에서, 상기 C개의 부호어의 비트 수가 기준값 보다 작거나 같으면, 상기 다수의 복호기 중 임의 제1 비터비 복호기에서 복호화하도록 하는 단계
를 더 포함하는 병렬 처리 복호화 방법.6. The method of claim 5,
When transmitting the C codewords from the input buffer to the Viterbi decoder,
And performing, in the parallel processing decoding apparatus, decoding by a first one of the plurality of decoders if the number of bits of the C codewords is less than or equal to a reference value
Further comprising the steps of:
상기 병렬 처리 복호화 장치에서, 상기 C개의 부호어의 비트 수가 기준값 보다 크면, 상기 입력 버퍼에서 상기 비터비 복호기로, 상기 C개의 부호어를 순환하여 입력하는 단계
를 더 포함하는 병렬 처리 복호화 방법.6. The method of claim 5,
Wherein if the number of bits of the C codewords is larger than a reference value, the parallel processing decoder performs a step of cyclically inputting the C codewords from the input buffer to the Viterbi decoder
Further comprising the steps of:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120146766A KR101728567B1 (en) | 2012-12-14 | 2012-12-14 | Decoding apparatus and method for parallel processing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120146766A KR101728567B1 (en) | 2012-12-14 | 2012-12-14 | Decoding apparatus and method for parallel processing |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140077692A KR20140077692A (en) | 2014-06-24 |
KR101728567B1 true KR101728567B1 (en) | 2017-04-19 |
Family
ID=51129557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120146766A KR101728567B1 (en) | 2012-12-14 | 2012-12-14 | Decoding apparatus and method for parallel processing |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101728567B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080298513A1 (en) | 2007-05-31 | 2008-12-04 | Sinan Gezici | Adaptive Sliding Block Viterbi Decoder |
KR100888508B1 (en) * | 2007-12-13 | 2009-03-12 | 한국전자통신연구원 | Apparatus and method for viterbi decoding |
-
2012
- 2012-12-14 KR KR1020120146766A patent/KR101728567B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080298513A1 (en) | 2007-05-31 | 2008-12-04 | Sinan Gezici | Adaptive Sliding Block Viterbi Decoder |
KR100888508B1 (en) * | 2007-12-13 | 2009-03-12 | 한국전자통신연구원 | Apparatus and method for viterbi decoding |
Also Published As
Publication number | Publication date |
---|---|
KR20140077692A (en) | 2014-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10536171B2 (en) | Encoding/decoding method, device, and system | |
CN107846261B (en) | Apparatus and method for parallel sequential cancellation decoding and sequential cancellation list decoding | |
US6304995B1 (en) | Pipelined architecture to decode parallel and serial concatenated codes | |
KR102601215B1 (en) | Apparatus for polar coding | |
US7246294B2 (en) | Method for iterative hard-decision forward error correction decoding | |
CN101478314B (en) | Reed-solomon coder-decoder and decoding method thereof | |
US20170075754A1 (en) | Apparatus and method for parallel crc units for variably-sized data frames | |
US9362950B2 (en) | High performance CRC calculation with small footprint | |
CN105103454A (en) | Modular and scalable cyclic redundancy check computation circuit | |
JP7012479B2 (en) | Reed-Solomon Decoder and Decoding Method | |
US8250448B1 (en) | Method of and apparatus for implementing a decoder | |
US7231575B2 (en) | Apparatus for iterative hard-decision forward error correction decoding | |
US8397150B1 (en) | Method, apparatus and computer program for calculating a branch metric | |
US8924829B2 (en) | Device and method for turbo-encoding a block of data | |
KR101874537B1 (en) | Method and Apparatus for Parallel Decoding of Polar Codes | |
KR101728567B1 (en) | Decoding apparatus and method for parallel processing | |
US20170288697A1 (en) | Ldpc shuffle decoder with initialization circuit comprising ordered set memory | |
KR101436973B1 (en) | Supercharged codes | |
CN111277830A (en) | Encoding method, decoding method and device | |
US8745465B1 (en) | Detecting a burst error in the frames of a block of data bits | |
KR102109589B1 (en) | Overhead minimized coding technique and hardware implementation method including transmission/reception error correction technique for high-speed serial interface | |
US20160365873A1 (en) | Non-Binary LDPC Codes Over Non-Associative Finite Division Near Rings | |
KR101355633B1 (en) | Encoder and encoding method | |
JP6807030B2 (en) | Data processing device and data processing method | |
TW202110101A (en) | Iterative decoding circuit and decoding method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |