KR102002510B1 - 디코딩 장치 및 디코딩 방법 - Google Patents

디코딩 장치 및 디코딩 방법 Download PDF

Info

Publication number
KR102002510B1
KR102002510B1 KR1020130041679A KR20130041679A KR102002510B1 KR 102002510 B1 KR102002510 B1 KR 102002510B1 KR 1020130041679 A KR1020130041679 A KR 1020130041679A KR 20130041679 A KR20130041679 A KR 20130041679A KR 102002510 B1 KR102002510 B1 KR 102002510B1
Authority
KR
South Korea
Prior art keywords
packet
decoding
processing time
decoder
remaining processing
Prior art date
Application number
KR1020130041679A
Other languages
English (en)
Other versions
KR20140124214A (ko
Inventor
권필성
곽승현
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to KR1020130041679A priority Critical patent/KR102002510B1/ko
Priority to US14/254,832 priority patent/US9369236B2/en
Publication of KR20140124214A publication Critical patent/KR20140124214A/ko
Application granted granted Critical
Publication of KR102002510B1 publication Critical patent/KR102002510B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, 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 using interleaving techniques
    • 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
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • H03M13/2978Particular arrangement of the component decoders
    • H03M13/2987Particular arrangement of the component decoders using more component decoders than component codes, e.g. pipelined turbo iterations
    • 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/6561Parallelized implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

본 발명은 터보 디코더 및 그 디코딩 방법에 관한 것으로, 본 발명의 일 실시예에 따른 디코딩 방법은, 복수의 디코더 코어들 중 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하는 단계; 상기 계산된 각각의 디코더 코어의 디코딩 잔여 처리 시간 중 디코딩 잔여 처리 시간이 가장 작은 디코더 코어를 선택하는 단계; 및 상기 선택된 디코더 코어에 패킷을 할당하는 단계;를 포함할 수 있다. 본 발명의 일 실시예에 따르면, 터보 디코더 코어를 실시간으로 모니터링함으로써, 터보 디코더 코어의 효율적인 선택을 통해 자원을 배분함으로써 디코더의 처리율(Throughput)을 향상시킬 수 있다.

Description

디코딩 장치 및 디코딩 방법{APPARATUS AND METHOD FOR DECODING}
본 발명은 터보 디코더 및 그 디코딩 방법에 관한 것이다. 보다 구체적으로, 본 발명은 터보 디코더 코어의 효율적인 선택을 위한 디코더 및 디코딩 방법에 관한 것이다.
최근 3세대 이동 통신 기술인 WCDMA를 비롯해 4세대 이동 통신 기술로 일컬어지는 LTE/WiMax 16m와 같은 이동 통시 시스템에서 고속 데이터 전송을 위한 채널 코딩 기법으로 터보 코딩(Turbo Coding)이 사용되고 있다.
터보 코딩은 순방향 에러 정정(FEC: Forward Error Corrction) 영역의 중요한 개선점을 나타낸다. 터보 코딩의 다양한 변형 예가 존재하지만, 대부분의 타입의 터보 코딩은, 반복적 디코딩의 사용과 결합된 인터리빙 단계들에 의해 분리되는 다수의 인코딩 단계들을 사용한다. 이러한 결합은 통신 시스템에서의 잡음 한계에 대하여 이전에는 이요할 수 없었던 성능을 제공한다. 즉, 터보 코딩은 기존의 순방향 에러 정정 기술을 사용하여 이전에 가능했던 것보다 잡음 전력 스펙트럼 밀도에 대한 더 낮은 비트당 에너지에서 신뢰할 수 있는 통신을 가능하게 한다.
도 1은 터보 디코더의 일 예의 개략적인 블록 구성도이다.
도 1을 참고하면, 최근 WCDMA/LTE/WiMax 16m과 같은 이동 통신 시스템에서 트래픽(traffic) 처리를 위해 공통으로 사용되고 있는 터보 디코더 코어는 기본적으로 두 개 이상의 구성 디코더(Component Decoder)를 포함한다.
도 1에 도시된 바와 같이, 터보 디코더 코어(100)에서 디코딩 과정은, 각 구성 디코더로 채널 입력 및 다른 구성 디코더에서 생성된 출력 값인 LLR(Log-Likelihood Ratio) 값이 입력으로 들어와서 내부의 LLR 값을 생성하게 된다. 이렇게 생성된 LLR 값은 다른 구성 디코더에서 입력 수신 신호 이외에 추가적인 LRR 값으로 이용되어 새로운 구성 디코더에서 좀 더 높은 신뢰도의 LLR 값이 생성되도록 한다.
구체적으로, LLR 소프트 입력(soft input)이 제1 인터리버(130)를 통과하며 인터리빙되어 제1 구성 디코더(110)로 입력되고, 상기 제1 구성 디코더(110)를 통과한 신호는 디인터리버(140)로 들어간다. 상기 디인터리버(140)에서 디인터리빙된 신호는 제2 구성 디코더(120)로 입력되어 디코딩되고, 이 디코딩된 신호는 제2 인터리버(150)에 의해 인터리빙되어 상기 제1 구성 디코더(110)로 들어가게 된다. 상기 제1 구성 디코더(110)에 재입력된 신호는 상술한 과정을 거쳐 제2 구성 디코더(120)에 입력되고, 다시 제1 구성 디코더(110)로 들어가게 되는 반복 구조(iterative structure)를 가진다.
이와 같은 반복 구조를 갖는 터보 디코더 코어는 디코딩 과정을 반복함에 따라 높은 신뢰도를 갖는 LLR 값을 생성할 수 있다. 터보 디코더 코어는 특정 반복(iteration) 횟수만큼 반복 디코딩을 수행한 후 최종 소프트 출력(soft output)을 이용하여 경성 판정(hard decision)을 수행해서 최종적으로 디코딩된 값을 얻게 된다. 이와 같이 터보 디코더 코어는 두 개 이상의 구성 디코더를 내부에 포함하여 각 구성 디코더에서 생성된 LLR 값을 서로 주고 받으며 반복적 디코딩 과정을 수행해서 디코딩된 출력을 내보내게 되며 이러한 반복 디코딩 과정을 통해 점차 에러 정정 능력이 향상되게 된다.
그러나, 하나의 디코더 코어를 통해서 얻을 수 있는 처리율(throughput)은 매우 제한적일 수 있다. 따라서, LTE를 비롯한 고속 데이터 시스템에서는 다수의 디코더 코어를 갖는 멀티 코어 디코더를 가질 수 있다.
도 2는 멀티 코어 디코더의 일 예의 개략적인 블록 구성도이다.
도 2를 참고하면, 멀티 코어 디코더(200)는 적어도 두 개 이상의 디코더 코어(220, 230, 240, 250)를 포함한다. 예를 들면, 상기 디코더 코어(220, 230, 240, 250)에는 LLR 메모리(280)로부터 HARQ(Hybrid-ARQ)(290)를 통해 FEC 단위로 LLR이 디코더(200)로 입력된다, 디코더(200)의 제어부(210)는 비어 있는 디코더 코어에 입력된 신호를 순차적으로 입력시킨다. 즉, 초기에는 LLR이 순차적으로 디코더 코어에 입력된다. 그 후 모든 디코더 코어에서 LLR이 입력되어 디코딩되고 있는 경우, 입력된 신호의 디코딩이 먼저 처리된 디코더 코어를 순차적으로 선택하여 다음 FEC 패킷이 입력되게 된다.
기존 멀티 코어 구조의 터보 디코더(200)는 처리 상황을 고려하지 않고 순차적으로 코어를 선택해서 FEC 단위의 LLR이 입력된다. 때문에, 입력되는 FEC의 크기가 매우 가변적일 경우 FEC의 크기를 정렬하는 작업을 하지 않으면 특정 코어로 부하(load)가 몰릴 수 있다. 이로 인해 디코더 입력의 처리 속도보다 디코딩 속도가 늦어지는 현상이 발생되고 이는 디코딩 처리율(throughput)을 저하시킨다.
또한, 디코딩 처리율 저하는 다중 사용자 정보 처리시 연관성 있는 FEC간 출력 시간의 차이를 매우 크게 발생시킬 수 있다. 이는 FEC의 재정렬을 위한 출력 메모리(270)의 크기를 증가시킴으로써 하드웨어의 복잡도를 높일 수 있다.
본 발명은 전술한 필요성을 충족하기 위해 제안되는 것으로서, 이동 통신 시스템에서 고속 데이터 전송을 위해 수신기에서 사용되는 터보 디코더 코어의 효율적인 선택을 통해 디코더의 처리율(Throughput)을 향상시키는 것을 목적으로 한다.
또한 본 발명의 일 실시예에서는 효율적인 디코더 코어 선택을 통해서 제한된 자원(resource) 상황에서도 디코더의 처리율(Throughput)을 증가시키는 것을 목적으로 한다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기 목적을 달성하기 위해 본 발명에 따른 디코딩 방법은, 복수의 디코더 코어들 중 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하는 단계; 상기 계산된 각각의 디코더 코어의 디코딩 잔여 처리 시간 중 디코딩 잔여 처리 시간이 가장 작은 디코더 코어를 선택하는 단계; 및 상기 선택된 디코더 코어에 패킷을 할당하는 단계;를 포함하여 이루어진다.
또한, 상기 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하는 단계는, 상기 각각의 디코더 코어의 제1 버퍼에 저장된 현재 디코딩되는 제1 패킷의 잔여 처리 시간을 계산하는 단계;를 포함할 수 있다.
또한, 상기 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하는 단계는, 상기 각각의 디코더 코어의 제2 버퍼에 저장된 추후 디코딩될 제2 패킷의 잔여 처리 시간을 계산하는 단계; 및 상기 제1 패킷의 잔여 처리 시간 및 상기 제2 패킷의 잔여 처리 시간을 합산하는 단계;를 더 포함할 수 있다.
또한, 상기 제1 패킷의 잔여 처리 시간을 계산하는 단계는, 상기 제1 패킷의 미리 정해진 반복 디코딩 횟수에서 현재 수행된 반복 디코딩 횟수를 뺀 잔여 디코딩 반복 횟수에 상기 제1 패킷의 크기를 곱한 값을 이용하여 상기 제1 패킷의 잔여 처리 시간을 계산하는 단계;를 포함할 수 있다.
또한, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계는, 상기 제2 패킷의 미리 정해진 반복 디코딩 횟수에 상기 제2 패킷의 크기를 곱한 값을 이용하여 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계;를 포함할 수 있다.
또한, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계는, 상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있는지 여부를 판단하는 단계; 상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있는 경우, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계;를 포함할 수 있다.
또한, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계는, 상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있지 않은 경우, 상기 제2 패킷의 잔여 처리 시간을 0으로 설정하는 단계;를 더 포함할 수 있다.
또한, 상기 본 발명에 따른 디코더는 수신된 패킷의 디코딩을 수행하는 복수의 디코더 코어; 상기 복수의 디코더 코어들 중 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하고, 상기 계산된 각각의 디코더 코어의 디코딩 잔여 처리 시간 중 디코딩 잔여 처리 시간이 가장 작은 디코더 코어를 선택하는 산술 논리 연산부(ALU: Arithmetic Logic Unit); 및 상기 선택된 디코더 코어에 패킷을 할당하도록 제어하는 제어부;를 포함한다.
본 발명에 따른 터보 디코더 및 터보 디코딩 방법은 터보 디코더 코어를 실시간으로 모니터링 함으로써, 터보 디코더 코어의 효율적인 선택을 통해 자원을 배분함으로써 디코더의 처리율(Throughput)을 향상시킬 수 있다. 또한 효율적인 디코더 코어 선택을 통해 제한된 자원 상황에서도 디코더의 처리율(Throughput)을 증가시킬 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 터보 디코더의 일 예의 개략적인 블록 구성도이다.
도 2는 멀티 코어 디코더의 일 예의 개략적인 블록 구성도(block diagram)이다.
도 3은 본 발명의 일 실시예에 따른 멀티 코어 터보 디코더의 블록 구성도의 일 예이다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어 터보 디코딩 방법의 일 예을 개략적으로 나타낸 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 멀티 코어 터보 디코더에서 디코딩 처리 시간이 가장 작은 디코더 코어를 선택하는 방법의 일 예를 나타낸 흐름도이다.
하기에서 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 이하 첨부된 도면을 참조하여 본 발명의 실시 예를 설명하기로 한다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 3은 본 발명의 일 실시예에 따른 멀티 코어 터보 디코더의 블록 구성도의 일 예이다.
도 3을 참고하면, 본 발명의 일 실시예에 따른 멀티 코어 디코더(300)는 적어도 두 개 이상의 디코더 코어(320, 330, 340, 350)를 포함한다. 도 2와 관련하여 상술한 멀티 코어 디코더(200)와 달리, 도 3에 도시된 멀티 코어 디코터(300)는 산술 논리 연산부(ALU: Arithmetic Logic Unit)(360)를 더 포함한다. 상기 ALU(360)는 복수의 디코더 코어들(320, 330, 340, 350) 각각의 디코딩 잔여 처리 시간(processing time)을 실시간으로 계산한다. 상기 ALU(360)에서 계산된 디코더 코어들의 디코딩 잔여 처리 시간을 통해, 제어부(310)는 최소 잔여 처리 시간을 가진 디코더 코어를 선택하여 다음으로 처리된 패킷을 할당할 수 있다. 이러한 부하 균형(load balancing) 기능을 통해 자원 배분을 효율적으로 할 수 있으며 멀티 코어 디코더(300)의 처리율을 높일 수 있다.
도 2를 참고하면, 상기 ALU(360)를 포함하지 않는 멀티 코어 디코더(200)는, 제어부(210)가 디코더(200)에 입력된 신호를 예를 들면, FEC 패킷 단위로 디코더 코어들(210 내지 250)에게 할당한다. 예를 들면, 초기에는 패킷을 제1 디코더 코어(210)부터 제n 디코더 코어(250)로 순차적으로 할당하고, 제어부(210)는 순차로 디코딩이 종료된 디코더 코어를 선택한다. 즉, 이 경우, 제어부(210)는 디코더 코어들의 처리 상황을 고려하지 않고 순차적으로 코어를 선택해서 패킷을 할당하게 되므로, 입력되는 패킷의 크기가 가변적일 경우 특정 코어로 부하가 몰릴 수 있다.
다시 도 3으로 돌아와 구체적으로 살펴보면, 본 발명의 일 실시예에 따른 디코더(300)에는 FEC 단위로 LLR이 입력될 수 있다. 실시예에 따라, 도시된 바와 같이 LLR 메모리(380)로부터 HARQ(Hybrid-ARQ)(390)를 통해 LLR이 입력될 수 있으나, 이에 한정되는 것은 아니다. 디코더(300)의 제어부(310)는 ALU(360)에 의해 계산된 각각의 디코더 코어의 디코딩 잔여 처리 시간을 실시간으로 보고받을 수 있다. 제어부(310)는 상기 디코더 코어의 디코딩 잔여 처리 시간이 가장 작은 디코딩 코어를 선택하여, 선택된 디코딩 코어에 다음으로 디코딩될 패킷을 입력하도록 제어할 수 있다.
예를 들면, 상기 멀티 코어 디코더(300)는 제1 내지 제n 디코더 코어(320, 330, 340, 350)를 포함할 수 있다. 도 3에는 12개의 디코더 코어가 도시되어 있으나, 이에 한정하는 것은 아니다. 상기 ALU(360)는 상기 제1 내지 제n 디코더 코어(320, 330, 340, 350)로부터 받은 정보를 이용하여 상기 제1 내지 제n 디코더 코어(320, 330, 340, 350) 각각에 할당된 패킷들의 디코딩 잔여 처리 시간을 실시간으로 계산할 수 있다.
실시예에 따라 상기 디코더 코어들(320, 330, 340, 350)이 상기 ALU(360)에게 제공하는 정보는 상기 제1 내지 제n 디코더 코어(320, 330, 340, 350)에 할당된 패킷들의 크기, 미리 정해진 반복 디코딩 횟수, 현재 수행된 반복 디코딩 횟수 등이 될 수 있다. 상기 제1 내지 제n 디코더 코어(320, 330, 340, 350) 각각에 할당된 패킷들의 크기, 각각의 디코더 코어에서 반복되는 디코딩 횟수 등은 서로 다를 수 있다. 상기 디코더 코어들(320, 330, 340, 350)은 상기 미리 설정된 반복되는 디코딩 횟수를 제어부(310)로부터 수신할 수 있다.
실시예에 따라, 상기 ALU(360)는 상기 디코더 코어들(320, 330, 340, 350)에 할당된 패킷의 크기를 이용하여 디코딩 잔여 처리 시간을 계산할 수 있고 또는 상기 할당된 패킷의 크기와 미리 설정된 디코딩 횟수를 곱한 값을 이용하여 디코딩 잔여 처리 시간을 계산할 수도 있다.
또한, 실시예에 따라 디코더 코어가 적어도 두 개의 버퍼(353, 354)를 포함할 수 있다. 이 경우, 제1 버퍼(353)에는 현재 디코딩되고 있는 제1 패킷이 저장되고, 제2 버퍼(354)에는 추후 디코딩될 제2 패킷이 저장될 수 있다. 상기 제1 버퍼(353) 및 제2 버퍼(354) 둘 중 어느 하나의 버퍼에만 패킷이 저장될 수도 있다. 상기 제1 버퍼(353)에 저장된 제1 패킷의 디코딩이 완료되면, 제2 버퍼(354)에 저장된 제2 패킷의 디코딩이 수행될 수 있다. 실시예에 따라 상기 제2 패킷은 제2 버퍼(354)에 저장된 채로 디코딩되고, 제2 패킷의 디코딩 이후에 디코딩될 제3 패킷은 제1 버퍼(353)에 저장될 수도 있다.
이때, 제2 버퍼(354)는 비어있고, 제1 버퍼(353)에만 현재 디코딩되고 있는 제1 패킷이 저장되어 있는 경우에 디코더 코어의 디코딩 잔여 처리 시간의 계산은, 상기 제1 패킷의 디코딩 잔여 처리 시간을 계산함으로써 이루어진다. 예를 들면, 상기 디코더 코어에서 미리 정해진 반복 디코딩 횟수(M1)에서 현재 수행된 반복 디코딩 횟수(M2)를 뺀 횟수(M1-M2)에 상기 현재 디코딩되고 있는 제1 패킷의 크기(S1)를 곱한 값을 이용하여 디코딩 코어의 잔여 처리 시간을 계산할 수 있다.
또는 상기 디코딩 코어에 제1 버퍼(353) 및 제2 버퍼(354)에 상기 제1 패킷 및 상기 제2 패킷이 각각 저장되어 있는 경우에 디코더 코어의 디코딩 잔여 처리 시간의 계산은, 상기 제1 패킷의 디코딩 잔여 처리 시간 및 상기 제2 패킷의 디코딩 잔여 처리 시간을 계산하여 이루어질 수 있다. 예를 들면, 상기 디코더 코어에서 미리 정해진 반복 디코딩 횟수(M1)에서 현재 수행된 반복 디코딩 횟수(M2)를 뺀 횟수(M1-M2)에 상기 현재 디코딩되고 있는 제1 패킷의 크기(S1)를 곱한 값을 이용하여 상기 제1 패킷의 디코딩 잔여 처리 시간을 계산할 수 있다. 또한 상기 제2 패킷의 디코딩 잔여 처리 시간은 상기 제2 패킷의 미리 정해진 반복 디코딩 횟수(M3)에 상기 제2 패킷의 크기(S2)를 곱한 값을 이용하여 계산할 수 있다. 그 후 ALU(360)는 상기 제1 패킷의 디코딩 잔여 처리 시간 및 제2 패킷의 디코딩 잔여 처리 시간을 합산하여 해당 디코더 코어의 디코딩 잔여 처리 시간을 계산할 수 있다.
실시예에 따라, 상기 ALU(360)는 상기 디코더 코어의 제2 버퍼(354)에 추후 디코딩될 제2 패킷이 저장되어 있는지 여부를 판단하여, 상기 판단 결과 제2 버퍼(354)에 추후 디코딩될 제2 패킷이 저장되어 있는 경우 상기 제2 패킷의 잔여 처리 시간을 계산할 수 있다. 이때, 상기 제2 버퍼(354)에 추후 디코딩될 제2 패킷이 저장되어 있지 않은 경우, 상기 ALU(360)는 상기 제2 패킷의 잔여 처리 시간을 0으로 설정할 수 있다.
상기 ALU(360)에 의한 상기 복수의 디코더 코어들 중 각각의 디코더 코어의 디코딩 잔여 처리 시간의 계산은, 상기 복수의 디코더 코어들 중 어느 하나의 디코더 코어로부터 진행 중이던 패킷의 디코딩이 완료되었음을 지시하는 신호를 상기 ALU(360)가 수신할 때까지 반복하여 이루어질 수 있다. 이 경우, 상기 ALU(360)는 상기 복수의 디코더 코어들로부터 실시간으로 상술한 디코딩 잔여 처리 시간의 계산을 위한 정보를 수신하여 상기 디코딩 잔여 처리 시간을 계산할 수 있다.
또는, 제어부(310)가 상기 복수의 디코더 코어들 중 어느 하나의 디코더 코어에 디코딩될 새로운 패킷을 할당한 경우에, ALU(360)가 각각의 디코더 코어들의 디코딩 잔여 처리 시간을 계산할 수 있다. 즉, 패킷이 새로 할당되는 경우에 ALU(360)는 디코더 코어들의 디코딩 잔여 처리 시간을 계산하여 최소 디코딩 잔여 처리 시간을 갖는 디코더 코어를 선택하여 저장하고, 디코딩 코어에서 디코딩이 수행 중에는 디코딩 잔여 처리 시간을 계산하지 않을 수 있다. 그 후 어느 하나의 디코더 코어로부터 진행 중이던 패킷의 디코딩이 완료되었음을 지시하는 신호를 수신하는 경우에 제어부(310)는 상기 선택된 디코더에 디코딩될 새로운 패킷을 할당할 수 있고, 다시 디코더 코어들의 디코딩 잔여 처리 시간을 계산할 수 있다. 이 경우, 상기 복수의 디코더 코어들로부터 상술한 디코딩 잔여 처리 시간의 계산을 위한 정보를 수신하여 각각의 디코딩 잔여 처리 시간을 계산할 수 있다. 또는 실시예에 따라, ALU(360)는 새로운 패킷이 할당된 디코더 코어에 대하여만 새로이 할당된 패킷의 크기 등 잔여 처리 시간 계산을 위한 정보를 수신하여 상기 새로운 패킷이 할당된 디코더 코어에 대하여 디코딩 잔여 처리 시간을 계산할 수 있다. 이때, ALU(360)는 나머지 디코더 코어에 대해서는 따로 디코딩 잔여 처리 시간 계산을 위한 정보를 디코더 코어로부터 수신하지 않고 디코더(300)의 내부 클럭에 따라 디코딩 잔여 처리 시간을 계산할 수도 있다.
실시예에 따라, 상기 터보 디코더는 CTC(Convolutional Turbo Code) 디코더일 수 있다. 일반적인 터보 코드에서 인코더가 매 클럭마다 하나의 비트 입력을 받아 처리하는 반면에 CTC(Convolutional Turbo Code) 코드에서는 매 클럭마다 2개의 비트를 입력받아 처리한다. 따라서 CTC 디코더에서 처리 속도가 향상될 수 있다.
상술한 바에 따라, 디코더 코어들의 디코딩 잔여 처리 시간을 계산하여, 최소 디코딩 잔여 처리 시간을 갖는 디코더 코어에 새로이 디코딩될 패킷을 할당함으로써, 터보 디코더 코어의 효율적인 선택을 통해 자원을 배분함으로써 디코더의 처리율(Throughput)을 향상시킬 수 있다.
또한, 상기와 같이 복수의 디코더 코어들을 사용하여 디코딩을 수행하는 멀티 코어 디코더(200, 300)의 경우, 각 코어에서 디코딩된 패킷들을 출력 메모리(270, 370)에 저장하여 버스트(burst) 단위로 만드는 작업이 필요하다. 이때, 도 2에 따른 디코더(200)의 경우, 디코딩 처리율 저하는 다중 사용자 정보 처리시 연관성 있는 FEC 간 출력 시간의 차이를 매우 크게 발생시킬 수 있고, 이는 FEC의 재정렬을 위한 출력 메모리(270)의 크기를 증가시킴으로써 하드웨어의 복잡도를 높일 수 있다. 그러나, 사술한 바에 따라 본 발명의 일 실시예에 따른 ALU(360)를 포함하는 멀티 코어 디코더(300)에서는 디코딩 효율이 증가하여 디코딩된 패킷들을 처리할 출력 메모리(370) 크기를 작게 하여 하드웨어의 복잡도를 줄일 수 있다.
이상에서는 본 발명의 일 실시예에 따른 디코더의 구조와 그 동작에 대하여 살펴보았다.
이하에서는 본 발명의 일 실시예에 따른 디코딩 방법에 대하여 살펴보도록 한다.
도 4는 본 발명의 일 실시예에 따른 멀티 코어 터보 디코딩 방법의 일 예을 개략적으로 나타낸 흐름도이다.
도 4를 참고하면, 단계 410에서 산술 논리 연산부(ALU: Arithmetic Logic Unit)는 복수의 디코더 코어들 중 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산한다.
즉, 상기 ALU(360)는 상기 디코더 코어(320, 330, 340, 350)들로부터 받은 정보를 이용하여 상기 디코더 코어(320, 330, 340, 350)들 각각에 할당된 패킷들의 디코딩 잔여 처리 시간을 실시간으로 계산할 수 있다. 실시예에 따라 상기 ALU(360)로 제공되는 정보는 상기 디코더 코어(320, 330, 340, 350)들에게 할당된 패킷들의 크기, 미리 정해진 반복 디코딩 횟수, 현재 수행된 반복 디코딩 횟수 등이 될 수 있다. 상기 디코더 코어(320, 330, 340, 350)들 각각에 할당된 패킷들의 크기, 각각의 디코더 코어에서 반복되는 디코딩 횟수 등은 서로 다를 수 있다. 상기 디코더 코어들(320, 330, 340, 350)은 상기 미리 설정된 반복되는 디코딩 횟수를 제어부(310)로부터 수신할 수 있다. 구체적인 디코딩 잔여 처리 시간의 계산 방법은 상기 도 3과 관련한 설명에서 기재되었으므로 생략하기로 한다.
단계 420에서 상기 ALU(360)는 단계 410에서 계산된 각각의 디코더 코어의 디코딩 잔여 처리 시간들 중 디코딩 처리 시간이 가장 작은 디코딩 코어를 선택할 수 있다. 즉, 가장 먼저 디코딩이 완료될 것이 기대되는 디코딩 코어를 선택할 수 있다.
상기 ALU(360)는 단계 420에서 선택된 디코딩 잔여 처리 시간이 가장 작은 디코딩 코어의 정보를 제어부(310)로 전송하고, 상기 제어부(310)는 상기 단계 420에서 선택된 디코더 코어에 패킷을 할당할 수 있다.
ALU(360)에서 디코딩 코어의 디코딩 잔여 처리 시간을 계산하는 과정 및 디코딩 잔여 처리 시간이 가장 작은 디코더 코어를 선택하는 과정의 일 실시예를 도 5를 참고하여 설명하도록 한다.
도 5는 본 발명의 일 실시예에 따른 멀티 코어 터보 디코더에서 디코딩 처리 시간이 가장 작은 디코더 코어를 선택하는 방법의 일 예를 나타낸 흐름도이다.
도 5를 참고하면, 단계 510에서 ALU(360)는 디코더 코어의 인덱스(index)를 0으로 초기화 한다.
그 후 단계 520에서 ALU(360)는 선택된 디코더 코어의 버퍼의 상태(dmem_st)를 판단한다. 도 5와 관련된 실시예에서는 디코더 코어가 두 개의 버퍼를 포함하고 있는 것을 가정하고 설명하도록 한다. 상기 버퍼의 상태(dmem_st)는 제1 및 제2 버퍼에 저장된 패킷이 있는지 여부를 나타내는 것으로, dmem_st = 0 인 경우에는 제1 버퍼 및 제2 버퍼에 저장된 패킷이 존재하지 않는 것을 나타낸다. 또한, dmem_st = 1 또는 dmem_st = 2 는 제1 버퍼 또는 제2 버퍼 중 어느 하나에 패킷이 저장된 것을 나타내고, dmem_st = 3 은 제1 버퍼 및 제2 버퍼 모두에 패킷이 저장되어 있음을 나타낸다.
상기 단계 520에서 버퍼의 상태(dmem_st)를 판단한 결과 0인 경우, 해당 코어의 버퍼는 비어있는 것이므로, 디코딩되고 있거나 디코딩될 패킷이 없는 상태로 디코딩 잔여 처리 시간이 없으므로, 단계 525에서 ALU(360)는 현재 디코딩하고 있는 패킷의 잔여 처리 시간(Tproc_crnt) 및 추후 디코딩할 패킷의 잔여 처리 시간(Tproc_next)를 모두 0으로 설정할 수 있다.
상기 단계 520에서 버퍼의 상태(dmem_st)를 판단한 결과 0이 아닌 경우에는, 단계 530에서 ALU(360)는 현재 디코딩 하고 있는 패킷의 잔여 처리 시간(Tproc_crnt)을 계산한다. 즉, 버퍼의 상태(dmem_st)가 0이 아닌 것은 선택된 디코더 코어의 제1 버퍼에 디코딩되는 제1 패킷이 저장되어 있음을 나타내는 것이므로, ALU(360)는 현재 디코딩하고 있는 패킷의 잔여 처리 시간(Tproc_crnt)을 계산할 수 있다.
실시예에 따라, 현재 처리하고 있는 제1 패킷의 잔여 처리 시간(Tproc_crnt)의 계산은 현재 처리하고 있는 제1 패킷의 미리 정해진 반복 디코딩 횟수에서 현재 수행된 반복 디코딩 횟수를 뺀 잔여 반복 디코딩 횟수(cnt_iteration)에 상기 제1 패킷의 크기(blksize_dec)를 곱한 값을 이용하여 계산할 수 있다. 예를 들면, 도시된 바와 같이 현재 디코딩 하고 있는 패킷의 잔여 처리 시간(Tproc_crnt)은 현재 디코딩 하고 있는 패킷의 크기(blksize_dec)에 잔여 디코딩 반복횟수에 1을 더한 값(cnt_iteration+1)을 곱한 값으로 계산할 수 있다. 상기 패킷의 크기(blksize_dec)는 평행 디코더(parallel decoder)일 경우 parallel 디코더 코어 개수로 나눈 값일 수 있다.
단계 540에서 ALU(360)는 선택된 디코더 코어의 버퍼의 상태(dmem_st)를 판단한다. 즉, 상기 현재 처리되고 있는 제1 패킷이 저장된 제1 버퍼 이외에 제2 버퍼에도 추후 디코딩될 제2 패킷이 저장되어 있는지 여부를 판단한다.
상기 단계 540에서 dmem_st = 3인 경우, 즉 제1 버퍼 및 제2 버퍼 모두에 패킷이 저장되어 있는 경우에는 단계 545에서 ALU(360)는 추후 디코딩될 제2 패킷의 디코딩 잔여 처리 시간(Tproc_next)을 계산할 수 있다. 실시예에 따라, 추후 디코딩될 제2 패킷의 잔여 처리 시간(Tproc_next)의 계산은 추후 디코딩될 제2 패킷의 미리 정해진 반복 디코딩 횟수(ItrNum)에 상기 제2 패킷의 크기(blksize)를 곱한 값을 이용하여 계산할 수 있다. 예를 들면, 도시된 바와 같이 추후 디코딩될 패킷의 잔여 처리 시간(Tproc_next)은 추후 디코딩될 패킷의 크기(blksize)에 잔여 디코딩 반복횟수에 1을 더한 값(ItrNum+1)을 곱한 값으로 계산할 수 있다.
상기 단계 540에서 dmem_st = 3이 아닌 경우, 즉 제2 버퍼에 추후 디코딩될 패킷이 저장되어 있지 않은 경우에는 단계 547에서 ALU(360)는 추후 디코딩할 패킷의 잔여 처리 시간(Tproc_next)를 0으로 설정할 수 있다.
단계 525, 단계 530, 단계 545 및 단계 547에서 계산된 현재 디코딩하고 있는 패킷의 잔여 처리 시간(Tproc_crnt) 및 추후 디코딩할 패킷의 잔여 처리 시간(Tproc_next)에 따라, 단계 550에서 ALU(360)는 해당 코어의 디코딩 잔여 처리 시간(Tproc[index])를 계사한다. 상기 디코딩 잔여 처리 시간(Tproc[index])은 현재 디코딩하고 있는 패킷의 잔여 처리 시간(Tproc_crnt) 및 추후 디코딩할 패킷의 잔여 처리 시간(Tproc_next)의 합일 수 있다.
그 후 단계 560에서 ALU(360)는 멀티 코어 디코더(300)의 모든 디코더 코어들의 디코딩 잔여 처리 시간(Tproc[index])이 계산되었는지 여부를 판단한다. 즉, ALU(360)는 단계 510에서 설정한 index가 코어의 개수(MAX_CORE)보다 작은지 여부를 판단하여, 작은 경우, index를 1 증가시켜 상기 단계 520 내지 단계 550 반복하여 수행한다.
모든 코어에 대하여 디코딩 잔여 처리 시간(Tproc[index])을 계산한 경우, 단계 570에서 ALU(360)는 디코딩 잔여 처리 시간(Tproc[index]) 중 가장 작은 디코딩 잔여 처리 시간의 index를 확인한다. 즉, ALU(360)는 디코딩 잔여 처리 시간이 가장 적게 남은 디코더 코어를 선택할 수 있다.
이때, 상기 디코딩 잔여 처리 시간이 가장 적게 남은 디코더 코어의 선택은 제어부(310)에 의해 이루어질 수도 있다. 즉, 제어부(310)는 ALU(360)로부터 각각의 디코더 코어들의 디코딩 잔여 처리 시간 정보를 전달받아 전달받은 정보를 토대로 가장 작은 디코딩 잔여 처리 시간을 갖는 디코더 코어를 선택할 수 있다.
그 후, 단계 580에서 복수의 디코더 코어들 중 어느 하나의 디코더 코어로부터 진행 중이던 패킷의 디코딩이 완료되었음을 지시하는 신호가 발생하였는지 여부를 판단할 수 있다. 상기 판단은 ALU(360)에 의해 이루어질 수도 있고, 제어부(310)에 의해 이루어질 수도 있다.
상기 단계 580에서 진행 중이던 패킷의 디코딩이 완료되었음을 지시하는 신호가 발생하지 않은 경우, 단계 510으로 복귀하여 ALU(360)는 실시간으로 디코더 코어들 각각의 디코딩 잔여 처리 시간을 계산할 수 있다. 실시예에 따라, 단계 510으로 복귀하지 않을 수 있다. 이 경우에 ALU(360)는 단계 590에서 제어부(510)가 단계 570에서 선택한 코어에 새로이 디코딩될 패킷을 할당한 이후에만 다시 디코더 코어들의 디코딩 잔여 처리 시간을 계산할 수 있다.
상기 단계 580에서 진행 중이던 패킷의 디코딩이 완료되었음을 지시하는 신호가 발생한 경우에는, 제어부(310)는 상기 단계 570에서 선택한 코어에 새로이 디코딩될 패킷을 할당하여 코어의 선택을 종료한다.
본 명세서와 도면에 개시 된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
300: 디코더 310: 제어부
320, 330, 340, 350: 디코더 코어 360: 산술 논리 연산부

Claims (14)

  1. 디코딩 방법에 있어서,
    할당된 패킷 크기, 미리 정해진 디코딩 반복 횟수, 및 이미 수행된 디코딩 반복 횟수 중에서 적어도 하나에 관련된 정보를 확인하는 단계;
    상기 정보에 기반하여 복수의 디코더 코어들 중 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하는 단계;
    상기 계산된 각각의 디코더 코어의 디코딩 잔여 처리 시간 중 디코딩 잔여 처리 시간이 가장 작은 디코더 코어를 결정하는 단계; 및
    상기 결정된 디코더 코어에 패킷을 할당하는 단계;를 포함하는 디코딩 방법.
  2. 제1 항에 있어서, 상기 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하는 단계는,
    상기 각각의 디코더 코어의 제1 버퍼에 저장된 현재 디코딩되는 제1 패킷의 잔여 처리 시간을 계산하는 단계;
    를 포함하는 것을 특징으로 하는 디코딩 방법.
  3. 제2 항에 있어서, 상기 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하는 단계는,
    상기 각각의 디코더 코어의 제2 버퍼에 저장된 추후 디코딩될 제2 패킷의 잔여 처리 시간을 계산하는 단계; 및
    상기 제1 패킷의 잔여 처리 시간 및 상기 제2 패킷의 잔여 처리 시간을 합산하는 단계;
    를 더 포함하는 것을 특징으로 하는 디코딩 방법.
  4. 제2 항에 있어서, 상기 제1 패킷의 잔여 처리 시간을 계산하는 단계는,
    상기 제1 패킷의 미리 정해진 반복 디코딩 횟수에서 현재 수행된 반복 디코딩 횟수를 뺀 잔여 디코딩 반복 횟수에 상기 제1 패킷의 크기를 곱한 값을 이용하여 상기 제1 패킷의 잔여 처리 시간을 계산하는 단계;
    를 포함하는 것을 특징으로 하는 디코딩 방법.
  5. 제3 항에 있어서, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계는,
    상기 제2 패킷의 미리 정해진 반복 디코딩 횟수에 상기 제2 패킷의 크기를 곱한 값을 이용하여 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계;
    를 포함하는 것을 특징으로 하는 디코딩 방법.
  6. 제3 항에 있어서, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계는,
    상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있는지 여부를 판단하는 단계;
    상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있는 경우, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계;
    를 포함하는 것을 특징으로 하는 디코딩 방법.
  7. 제6 항에 있어서, 상기 제2 패킷의 잔여 처리 시간을 계산하는 단계는,
    상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있지 않은 경우, 상기 제2 패킷의 잔여 처리 시간을 0으로 설정하는 단계;
    를 더 포함하는 것을 특징으로 하는 디코딩 방법.
  8. 디코더에 있어서,
    수신된 패킷의 디코딩을 수행하는 복수의 디코더 코어;
    할당된 패킷 크기, 미리 정해진 디코딩 반복 횟수, 및 이미 수행된 디코딩 반복 횟수 중에서 적어도 하나에 관련된 정보를 확인하고, 상기 정보에 기반하여 상기 복수의 디코더 코어들 중 각각의 디코더 코어의 디코딩 잔여 처리 시간을 계산하고, 상기 계산된 각각의 디코더 코어의 디코딩 잔여 처리 시간 중 디코딩 잔여 처리 시간이 가장 작은 디코더 코어를 결정하는 산술 논리 연산부(ALU: Arithmetic Logic Unit); 및
    상기 결정된 디코더 코어에 패킷을 할당하도록 제어하는 제어부;를 포함하는 디코더.
  9. 제8 항에 있어서, 상기 산술 논리 연산부는,
    상기 각각의 디코더 코어의 제1 버퍼에 저장된 현재 디코딩되는 제1 패킷의 잔여 처리 시간을 계산하는 것을 특징으로 하는 디코더.
  10. 제9 항에 있어서, 상기 산술 논리 연산부는,
    상기 각각의 디코더 코어의 제2 버퍼에 저장된 추후 디코딩될 제2 패킷의 잔여 처리 시간을 계산하고, 상기 제1 패킷의 잔여 처리 시간 및 상기 제2 패킷의 잔여 처리 시간을 합산하여 디코딩 잔여 처리 시간을 계산하는 것을 특징으로 하는 디코더.
  11. 제9 항에 있어서, 상기 산술 논리 연산부는,
    상기 제1 패킷의 미리 정해진 반복 디코딩 횟수에서 현재 수행된 반복 디코딩 횟수를 뺀 잔여 디코딩 반복 횟수에 상기 제1 패킷의 크기를 곱한 값을 이용하여 상기 제1 패킷의 잔여 처리 시간을 계산하는 것을 특징으로 하는 디코더.
  12. 제10 항에 있어서, 상기 산술 논리 연산부는,
    상기 제2 패킷의 미리 정해진 반복 디코딩 횟수에 상기 제2 패킷의 크기를 곱한 값을 이용하여 상기 제2 패킷의 잔여 처리 시간을 계산하는 것을 특징으로 하는 디코더.
  13. 제10 항에 있어서, 상기 산술 논리 연산부는,
    상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있는지 여부를 판단하고, 상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있는 경우, 상기 제2 패킷의 잔여 처리 시간을 계산하는 것을 특징으로 하는 디코더.
  14. 제13 항에 있어서, 상기 산술 논리 연산부는,
    상기 제2 버퍼에 추후 디코딩될 제2 패킷이 저장되어 있지 않은 경우, 상기 제2 패킷의 잔여 처리 시간을 0으로 설정하는 것을 특징으로 하는 디코더.
KR1020130041679A 2013-04-16 2013-04-16 디코딩 장치 및 디코딩 방법 KR102002510B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130041679A KR102002510B1 (ko) 2013-04-16 2013-04-16 디코딩 장치 및 디코딩 방법
US14/254,832 US9369236B2 (en) 2013-04-16 2014-04-16 Decoding apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130041679A KR102002510B1 (ko) 2013-04-16 2013-04-16 디코딩 장치 및 디코딩 방법

Publications (2)

Publication Number Publication Date
KR20140124214A KR20140124214A (ko) 2014-10-24
KR102002510B1 true KR102002510B1 (ko) 2019-07-22

Family

ID=51687652

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130041679A KR102002510B1 (ko) 2013-04-16 2013-04-16 디코딩 장치 및 디코딩 방법

Country Status (2)

Country Link
US (1) US9369236B2 (ko)
KR (1) KR102002510B1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015090387A1 (en) * 2013-12-18 2015-06-25 Telefonaktiebolaget L M Ericsson (Publ) Methods, decoder and encoder for managing video sequences
US10338996B2 (en) * 2015-01-27 2019-07-02 Nxp Usa, Inc. Pipelined decoder and method for conditional storage
CN104796161B (zh) * 2015-04-01 2018-04-24 北京思朗科技有限责任公司 一种Turbo译码中的滑窗划分方法及装置
US10489204B2 (en) 2017-01-31 2019-11-26 Samsung Electronics Co., Ltd. Flexible in-order and out-of-order resource allocation

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6421696B1 (en) * 1999-08-17 2002-07-16 Advanced Micro Devices, Inc. System and method for high speed execution of Fast Fourier Transforms utilizing SIMD instructions on a general purpose processor
KR101425620B1 (ko) * 2007-12-17 2014-07-31 삼성전자주식회사 멀티 코어 프로세서 기반의 비디오 디코딩 방법 및 장치
EP2522146B1 (en) * 2010-01-06 2016-08-31 Dolby Laboratories Licensing Corporation Complexity-adaptive scalable decoding and streaming for multi-layered video systems
US9060365B2 (en) * 2013-03-12 2015-06-16 Qualcomm Incorporated Method and apparatus for sharing decoding time across transport blocks

Also Published As

Publication number Publication date
US20140310578A1 (en) 2014-10-16
KR20140124214A (ko) 2014-10-24
US9369236B2 (en) 2016-06-14

Similar Documents

Publication Publication Date Title
KR101323444B1 (ko) 반복적 디코더 및 반복적 디코딩 방법
US20190296769A1 (en) Method and device for interleaving data
RU2437208C2 (ru) Способ и устройство кодирования и декодирования данных
CN110572165B (zh) 编码的速率匹配处理方法和装置
CN110326342B (zh) 一种用于指定编码子信道的有序序列的装置和方法
WO2018171485A1 (en) Methods and apparatus for coding sub-channel selection
WO2014173133A1 (zh) 极性码的译码方法和译码装置
KR102002510B1 (ko) 디코딩 장치 및 디코딩 방법
CN104092470B (zh) 一种Turbo码译码装置及方法
JP2008092571A (ja) データを符号化および復号する方法ならびに装置
CN111082812B (zh) 使用路径度量解码输入数据的设备及使用其的解码方法
WO2012034097A1 (en) Accessing memory during parallel turbo decoding
WO2021188513A1 (en) List decoding of polarization-adjusted convolutional codes
KR101429786B1 (ko) 데이터를 인코딩 및 디코딩하는 방법 및 장치
KR20110037953A (ko) 데이터 복호화 방법, 데이터 인터리브 방법, 데이터 복호화 장치, 인터리버 테이블 생성 장치 및 데이터 인터리브 장치
US8923453B2 (en) System and method for iteration scheduling in joint equalization and turbo decoding
CN103812510A (zh) 译码方法及装置
CN103595424B (zh) 分量译码方法、译码器及Turbo译码方法、装置
CN108352924B (zh) 一种数据处理方法及装置
US11018696B2 (en) Soft output decoding of polar codes
CN103916141B (zh) Turbo码译码方法及装置
CN101882933B (zh) 一种LTE中进行Turbo译码的方法及Turbo译码器
KR20150004489A (ko) Ldpc 부호화, 복호화 방법 및 그 방법을 이용하는 장치
US9325351B2 (en) Adaptive multi-core, multi-direction turbo decoder and related decoding method thereof
JP5567216B2 (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