KR20060019249A - 고속 데이터 전송오류 정정을 위한 터보 코드 복호기 - Google Patents

고속 데이터 전송오류 정정을 위한 터보 코드 복호기 Download PDF

Info

Publication number
KR20060019249A
KR20060019249A KR1020040067815A KR20040067815A KR20060019249A KR 20060019249 A KR20060019249 A KR 20060019249A KR 1020040067815 A KR1020040067815 A KR 1020040067815A KR 20040067815 A KR20040067815 A KR 20040067815A KR 20060019249 A KR20060019249 A KR 20060019249A
Authority
KR
South Korea
Prior art keywords
deinterleaver
comparison
input value
counting unit
value
Prior art date
Application number
KR1020040067815A
Other languages
English (en)
Inventor
김한주
박성진
김민구
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020040067815A priority Critical patent/KR20060019249A/ko
Publication of KR20060019249A publication Critical patent/KR20060019249A/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/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/2975Judging correct decoding, e.g. iteration stopping criteria
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • 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/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • 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
    • H04L1/0053Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables specially adapted for power saving

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

본 발명은 고속의 패킷 데이터 통신을 위한 디지털 통신 시스템에 있어서, 고속의 데이터 전송과정에서 발생할 수 있는 오류를 정정하기 위한 터보 디코딩(turbo decoding)에 관한 것으로, 특히 터보 코드를 사용하는 시스템에서 복호기의 반복 복호(iterative decoding) 과정 정지 기준(stopping criterion)에 따라 소비 전력 및 시간 지연을 감소할 수 있도록 하는 터보 코드 복호기에 관한 것이다. 본 발명은 현재 순환된 입력값에 대한 디인터리빙을 수행하여 출력하는 디인터리버; 상기 디인터리버의 입력값과 출력값을 동시에 검출하여 상기 입력값과 출력값의 동일여부를 판단하는 비교 및 카운트 부; 및 상기 비교 및 카운트 부를 구동하는 비교 신호를 발생하는 비교 신호 발생기를 포함하여 이루어지는 것을 특징으로 한다.
터보 디코딩(turbo decoding), 반복 복호(iterative decoding) 과정 정지 기준(stopping criterion), HDA(Hard Decision Aided)방식

Description

고속 데이터 전송오류 정정을 위한 터보 코드 복호기{turbo code decoder for error correction of high speed data transmission}
도 1은 종래기술에 따라 CRC를 사용하는 터보 복호기를 나타내는 블록도
도 2 는 종래기술에 따라 HDA 정지 기준을 사용하는 경우의 터보 복호기를 나타내는 블록도
도 3 은 본 발명에 따른 정지기준을 가지는 터보 복호기를 나타낸 블록도
도 4 는 본 발명에 따라 디인터리버 입력과 출력의 정보어 차이를 계산하는 장치를 나타낸 블록도
도 5 는 본 발명에 의한 비교신호에 따른 디이터리버의 입출력값 비교 동작을 나타내는 타이밍도



본 발명은 고속의 패킷 데이터 통신을 위한 디지털 통신 시스템에 있어서, 고속의 데이터 전송과정에서 발생할 수 있는 오류를 정정하기 위한 터보 디코딩(turbo decoding)에 관한 것으로, 특히 터보 코드를 사용하는 시스템에서 복호기의 반복 복호(iterative decoding) 과정 정지 기준(stopping criterion)에 따라 소비 전력 및 시간 지연을 감소할 수 있도록 하는 터보 코드 복호기에 관한 것이다.
터보 코드는 두 개의 RSC(Recursive systematic convolutional) 부호기를 인터리버를 통해 병렬로 연접하여 생성한 부호로서, 복호시 각 구성 부호에 대한 연성 입력/연성 출력 복호기(SISO decoder)를 직렬로 연접하고 이들 구성 복호기로부터 생성된 부가 정보(extrinsic information)를 교환하는 과정을 통해 반복 복호(iterative decoding)를 수행하게 된다.
따라서 이러한 반복 복호 방식에서는 복호 성능을 그대로 유지하면서 어느 시점에서 복호를 중단하는가를 판단하는 것이 구현된 복호기의 전력 소모와 시간 지연을 결정하는 매우 중요한 변수가 된다.
즉, 반복 복호 방식에서 복호 시간을 단축하고 복호에 따른 전력 소모를 최소화하기 위해서는 복호하는 프레임의 오류 발생 유무를 수시로 점검해야하며 보통 이를 위한 방법으로 CRC (Cyclic redundancy check)비트가 터보 코드와 함께 사용되고 있다.
일반적으로 사용되는 CRC 비트를 이용한 정지 기준(stopping criterion)을 적용한 방법은 다음과 같다. 부호화를 위해 터보 부호기(turbo encoder)로 전달되 는 프레임에는 복호 후 해당 프레임에 대한 오류 발생 여부를 상위 계층에 보고할 수 있도록 하기 위해 오류 검출을 위한 CRC 비트가 포함되어 있다. 이러한 CRC 비트는 해당 프레임에 대한 오류 발생 여부를 검출 할 수 있는 능력으로 인해 터보 복호기의 정지 룰(stopping rule)로서도 사용될 수 있다. 즉, 임의의 프레임에 대한 매 반복 복호 과정에서 CRC 체크(check)과정을 통해 오류를 검출하고, 오류가 검출되지 않으면 복호를 정지하게 된다.
도 1은 종래기술에 따라 CRC를 사용하는 터보 복호기를 나타내는 블록도이다. 이때, SISO 1(100), SISO 2 (120)는 연성 입력/연성 출력 복호기(Soft Input Soft Output; 이하 SISO decoder)를 의미한다. 직렬 연결 구조에 의해 SISO 복호기 1(100) 의 동작후 SISO 복호기 2 의 동작이 완료되는 복호 과정을 한 번의 반복(iteration) 과정이라 정의한다.
SISO 복호기 1(100)의 출력은 인터리버(110)에 의하여 재배열된 다음 SISO 복호기 2(120) 에 입력된다. SISO 복호기 2(120)에 입력된 재배열 정보는 디인터리버에 의하여 복원된다. 복호기에서는 통상적으로 2개의 디인터리버(deinterleaver)(130, 140)가 사용된다. 디인터리버 2(140)는 하드 디시젼(Hard Decision)된 값을 정보어로 변환하는 역할을 담당하며, 이후 기술함에 있어서는 디인터리버 2(140)가 중점적으로 고려된다.
도시된 바와 같이 통상적인 터보 복호기는 SISO 복호기 2(120)의 입력값과 출력값을 더한 후 하드 디시젼 (Hard Decision) 과정과 디인터리빙(deinterleavering)과정을 거쳐 필요한 데이터를 얻게 된다. CRC 를 사용하는 터보 복호기에서는 디인터리버 2(140)의 출력을 가지고 도 1 에서 보이는 CRC 체크부(150)에 의해 반복 복호 정지 여부를 판단하게 된다. 이때 디인터리버 1(130)는 SISO 복호기 2(120)의 출력을 다시 SISO 복호기 1(100)로 전달하여 복호과정을 반복하도록 한다.
SISO 복호기 1(100)로부터 시작되어 SISO 복호기 2(120)에서 종료되는 반복(iteration) 과정을 통하여 보다 정확한 데이터를 얻을 수 있게 되며, 통상적인 최대 반복 횟수(max iteration)는 8 이다.
그러나, CRC를 이용한 터보 복호기의 복호 정지는 다음과 같은 문제점을 갖고 있다. 첫째, 매 프레임마다 CRC 비트에 의한 데이터 오버헤드(data overhead)가 존재한다. 즉, 불필요한 정보라고 할수 있는 CRC 비트에 의하여 데이터 송수신상의 부담이 가중된다.
둘째, 터보 부호화 프레임(turbo encoding frame)에 CRC가 존재하지 않는 경우에는 해당 프레임에 대한 터보 복호기 정지 룰로써 사용할 수 없다. 즉, UMTS 혹은 HSDPA에서 코드 유닛(code unit)이 둘 이상인 경우에는 일반적으로 임의의 코드 유닛에 터보 복호기 정지를 위한 CRC 비트가 항상 존재한다고 볼 수 없으므로 복호기 정지 룰로써 사용할 수 없다.
상기한 문제점을 해결 하기위해 CRC 사용 여부와 관계없이 적용할 수 있는 정지기준인 HDA(Hard Decision Aided)방식이 있다.
도 2 는 종래기술에 따라 HDA 정지 기준을 사용하는 경우의 터보 복호기를 나타내는 블록도이다.
HDA방식은 임의의 반복(iteration)과정에서 SISO 복호기 2(220)의 출력 정보와 이전 반복(iteration)과정에서의 SISO 복호기 2(220)의 출력 정보를 비교하고, 비교 결과 두 정보에 차이가 없으면 복호를 정지하는 방식이다.
도시된 바와 같이, 도 2 는 도 1 에 도시된 터보 복호기의 CRC 체크부(150)를 이전 반복(iteration) 과정의 디인터리버 2(240) 출력을 저장한 메모리부(250)와 현재 반복(iteration)과정에서의 디인터리버 2(240)출력을 비교하는 비교 및 카운트부(260)로 대체함으로써 구현할 수 있다.
즉, 도 1 과 동일하게 SISO 복호기 1(200)의 출력은 인터리버(210)에 의하여 재배열된 다음 SISO 복호기 2(220) 에 입력된다. SISO 복호기 2(220)에 입력된 재배열 정보는 디인터리버 1, 2(230, 240)에 의하여 복원된다.
이때 디인터리버 1(230)는 SISO 복호기 2(220)의 출력을 다시 SISO 복호기 1(200)로 전달하여 복호과정을 반복하도록 한다. 한편, 디인터리버 2(240)에 의하여 복원된 정보는 메모리(250), 비교 및 카운트부(260)에 의하여 복호 정지 여부를 결정한다. 즉, 메모리(250), 비교 및 카운트부(260)는 임의의 반복(iteration)과정에서 SISO 복호기 2(220)의 출력 정보와 이전 반복(iteration)과정에서의 SISO 복호기 2(220)의 출력 정보를 비교하고, 비교 결과 두 정보에 차이가 없으면 복호를 정지한다.
즉, 메모리(250)는 이전 반복(iteration)과정에서의 SISO 복호기 2(220)의 출력 정보를 저장하고, 비교 및 카운트부(260)는 임의의 반복(iteration)과정에서 SISO 복호기 2(220)의 출력 정보를 전달받아 두 정보를 비교한다. 비교 결과 두 정 보에 차이가 없으면 터보 복호기는 복호를 정지한다. HDA방식은 일반적으로 CRC 사용여부에 관계없이 FER 성능면에서 비교적 우수한 성능을 보인다.
그러나, 종래기술에 의한 HDA방식의 정지 기준에서는 이전 반복 과정의 SISO 2 의 정보어 출력을 현재 반복 과정의 SISO 2 의 정보어 출력과 비교해야 하므로, 하드웨어 구현시 이전 반복 과정의 SISO 2 의 정보어 출력을 저장하기 위한 추가적인 메모리가 필요하게 되어, 결국 하드웨어 크기가 증가하게 된다는 문제점이 있었다.
본 발명은 상기한 종래의 문제점을 해결하기 위한 것으로, 복호기의 반복 복호 과정 정지 기준에 있어서, 추가적인 메모리 없이도 디인터리버의 버퍼를 활용함으로써 간편하게 하드웨어를 구현하고, 어떤 프레임 크기에도 동일하게 적용할 수 있는 터보 복호 정지 기준을 제공하여 반복 복호에 따른 시간 지연과 전력 소모를 줄이는 것을 목적으로 한다.
이러한 목적을 달성하기 위하여 본 발명은 현재 순환된 입력값에 대한 디인터리빙을 수행하여 출력하는 디인터리버; 상기 디인터리버의 입력값과 출력값을 동시에 검출하여 상기 입력값과 출력값의 동일여부를 판단하는 비교 및 카운트 부; 및 상기 비교 및 카운트 부를 구동하는 비교 신호를 발생하는 비교 신호 발생기를 포함하여 이루어지는 것을 특징으로 한다.
이러한 목적을 달성하기 위한 본 발명에 있어서, 상기 비교 신호 발생기는 쓰기 신호(WE)를 천이하여 비교 신호를 생성하는 것을 특징으로 한다.
이러한 목적을 달성하기 위한 본 발명에 있어서, 상기 비교 및 카운트 부는 상기 입력값과 출력값의 동일여부를 판단하여 상기 입력값과 출력값이 동일한 경우는 데이터 복원을 위한 순환을 정지하는 것을 특징으로 한다.
이러한 목적을 달성하기 위한 본 발명에 있어서, 상기 비교 및 카운트 부는 상기 입력값과 출력값의 동일여부를 판단하여 상기 입력값과 출력값이 동일하지 않은 경우는 데이터 복원을 위한 순환을 계속하는 것을 특징으로 한다.
이하 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명될 것이다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한 하기에서 본 발명을 설명함에 있어, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의 내려진 용어들로서 이는 사용자의 의도 또는 관례 등에 따라 달라질 수 있으므로, 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 3 은 본 발명에 따른 정지기준을 가지는 터보 복호기를 나타낸 블록도이다. 본 발명에 따른 터보 복호기는 터보 코드를 사용하는 고속의 패킷 데이터 통신 시스템에서 터보 부호기에 입력되는 프레임의 오류 검출을 위한 CRC가 사용되지 않거나 혹은 사용할 수 없는 경우에 적용될 수 있다. 따라서 본 발명은 CRC 가 사용되지 않거나 혹은 사용할 수 없는 경우 복호 과정에서 이를 대신하여 터보 복호를 중단시킬 수 있는 HDA 정지 기준을 제공한다.
본 발명에 따른 정지 기준은 추가적인 메모리가 필요없이 디인터리버 2(340)의 버퍼(buffer)를 활용한다. 또한 본 발명에 따른 정지 기준은 하드웨어상으로 구현이 간편하며, 어떠한 프레임 크기에도 동일하게 적용할 수 있다. 따라서, 본 발명에 따른 정지 기준을 적용함으로써 터보 복호기의 성능은 그대로 유지하면서도 반복 복호에 따른 시간 지연과 전력 소모를 줄일 수 있다.
도 3 에 도시된 바와 같이 본 발명은 통상적인 HDA방식에 따른 임의의 반복(iteration)과정을 수행한다. 즉, 본 발명에 따른 터보 복호기는 반복(iteration)과정에서 SISO 복호기 2(320)의 출력 정보와 이전 반복(iteration)과정에서의 SISO 복호기 2(320)의 출력 정보를 비교한 다음, 비교 결과 두 정보에 차이가 없으면 복호를 정지한다.
즉, 본 발명은 도 2 과 동일하게 SISO 복호기 1(300)의 출력을 인터리버(310)에 의하여 재배열한 다음 SISO 복호기 2(320)에 입력한다. SISO 복호기 2(320)에 입력된 재배열 정보는 디인터리버 1, 2(330, 340)에 의하여 복원된다.
이때 디인터리버 1(330)는 SISO 복호기 2(320)의 출력을 다시 SISO 복호기 1(300)로 전달하여 복호과정을 반복하도록 한다. 한편, 본 발명에 따른 터보 복호기의 비교 및 카운트부(350)는 디인터리버 2(340)에 의하여 복원된 정보를 판단하 여 복호 정지 여부를 결정한다.
즉, 본 발명에 따른 HDA 정지 기준 터보 복호기는 도 1 의 디인터리버 2(340)의 입력과 출력의 차이를 비교하여 차이가 없는 경우 복호를 정지하도록 이루어진다. 이때 본 발명은 입력과 출력의 차이를 비교하는 비교 및 카운트부(350)를 별도로 구비함을 특징으로 한다.
다시 말하면, 비교 및 카운트부(350)는 종전의 반복(iteration)과정에 따른 값인 디인터리버 2(340)의 출력값과 새로운 반복 과정에 돌입하는 값인 디인터리버 2(340)의 입력값을 비교하여, 차이가 없는 경우 즉, 디인터리버 2(340)의 입출력값이 동일한 경우는 데이터 복원을 위한 순환을 정지하도록 한다. 이는 데이터 복원이 정상적으로 이루어진 것으로 판단할 수 있기 때문이다.
만일, 비교 및 카운트부(350)가 종전의 반복(iteration)과정에 따른 값인 디인터리버 2(340)의 출력값과 새로운 반복 과정에 돌입하는 값인 디인터리버 2(340)의 입력값을 비교한 결과, 차이가 발생하는 경우 즉, 디인터리버 2(340)의 입출력값이 동일하지 않은 경우는 데이터 복원을 위한 순환을 계속하도록 한다.
한편, 본 발명은 상기 비교 및 카운트부(350)를 별도로 구비함과 아울러 디인터리버 2(340)의 입출력값을 검출하기 위하여 상기 비교 및 카운트부(350)를 구동하는 비교 신호 발생기(360)를 구비하는 것을 특징으로 한다.
비교 신호 발생기(360)는 상기 비교 및 카운트부(350)로 하여금 디인터리버 2(340)의 입출력값을 검출하도록 하는 비교 신호를 발생하며, 비교 신호에 따라 비교 및 카운트부(350)는 디인터리버 2(340)의 입출력값을 검출하여 그 동일성 여부 를 판단할 수 있게 된다.
도 4 는 본 발명에 따라 디인터리버 입력과 출력의 정보어 차이를 계산하는 장치를 나타낸 블록도이다. 도 4 에 도시된 디인터리버(400)는 도 3 에 도시된 디인터리버 2 에 해당된다.
디인터리버(400)는 도시된 바와 같이 디인터리버 어드레스 신호와 디인터리버 입력 신호가 인에이블됨으로써 디인터리빙을 수행하게 되며, 데이터 복원을 수행하게 된다. 디인터리버 입력 데이터가 디인터리버(400)에 임시 저장되기 위해서는 WE(Write Enable) 신호가 인가되어야 한다.
즉, WE(Write Enable) 신호가 인가되면 디인터리버 입력 데이터는 디인터리버(400)의 버퍼 즉, 메모리에 임시 저장된다. 메모리에 임시 저장된 입력 데이터는 디인터리버 어드레스 신호에 의하여 해당 어드레스의 데이터가 출력된다. 이때 상기 디인터리버 어드레스에 해당하는 디인터리버(400) 메모리값이 출력된다. 이 값은 바로 디인터리버(400) 내부 메모리에 저장되어 있던 이전 순환(iteration) 과정에서 얻어진 정보어 값이 된다.
따라서 디인터리버(400)가 동작할때 WE(Write Enable) 신호가 인가되기 전에는 입력단자 쪽에서는 데이터 갱신을 위한 현재 순환 과정에서의 정보어 값을, 출력단자 쪽에서는 이전 순환 과정에서 저장된 정보어 값을 얻을 수 있게 된다.
또한 같은 어드레스에 대해 출력값은 같은 정보어 위치를 나타내므로 새로 입력되는 데이터와 갱신 전 들어있던 데이터를 동시에 검출하여 비교하고, 비교 결과 두 값이 서로 틀린 경우에만 카운트하도록 한다. 만일 비교 결과 두 값이 차이 가 없으면 복호를 정지하게 된다.
본 발명에 따른 상기 HDA 정지기준은 디인터리버(400)에 이미 저장되어 있는 데이터와, 입력되고 있는 데이터를 동시에 꺼내어 비교하기 때문에 추가적으로 하드 디시젼(hard decision)된 정보어를 저장할 메모리가 필요없다.
전술한 바와 같이 본 발명은 비교 및 카운트부(410)를 별도로 구비함과 아울러 디인터리버 (400)의 입출력값을 검출하기 위하여 상기 비교 및 카운트부(410)를 구동하는 비교 신호 발생기(420)를 구비하는 것을 특징으로 한다.
비교 신호 발생기(420)는 비교 및 카운트부(410)를 구동하는 클럭 신호(clock signal)인 비교신호를 발생하며, 비교신호는 WE(Write Enable) 신호를 일정시간 천이(shift)시켜 생성할 수 있다. 즉, 비교 신호 발생기(420)는 WE(Write Enable) 신호에 의하여 디인터리버(400)의 메모리에 디인터리버 입력값이 저장되기 전 WE(Write Enable) 신호에 앞서 비교신호를 발생함으로써 비교 및 카운트부(410)를 구동시키도록 한다.
따라서, WE(Write Enable) 신호에 앞서서 발생한 비교신호는 비교 및 카운트부(410)를 구동하여 디인터리버(400)의 입력값과 출력값을 검출한 다음 두 값의 동일성 여부를 판단한다. 두 값의 동일성 여부 판단 결과 두 값이 서로 차이가 없는 경우 즉, 디인터리버(400)의 입출력값이 동일한 경우는 데이터 복원을 위한 순환을 정지하도록 한다. 이는 데이터 복원이 정상적으로 이루어진 것으로 판단할 수 있기 때문이다. 본 발명은 디인터리버(400) 쓰기(write)동작 시점에 정보어 차이 여부를 알 수 있기 때문에 CRC 적용 방법보다 빠른 복호정지 효과를 얻을 수 있게 된다.
도 5 는 본 발명에 의한 비교신호에 따른 디이터리버의 입출력값 비교 동작을 나타내는 타이밍도이다.
도시된 바와 같이, 디인터리버 어드레스(address)와 디인터리버 데이터는 이미 입력되어 있고, WE(Write Enable)신호가 인에이블(enable)되어 있지 않은 시점에서 이전에 이미 저장되어 있던 데이터(data)가 출력되고 있는 상태이다. WE(Write Enable)신호가 입력되면, 해당 어드레스(address)에 데이터가 저장되고, 그 값이 반영되어 출력되기까지는 어느 정도의 시간 지연(delay)이 발생하게 된다.
즉, 도시된 바와 같이 디인터리버 입력 데이터는 디인터리버 어드레스(address)에 의하여 디인터리버에 제공되지만, 디인터리버의 출력값은 디인터리버 어드레스(address) 지정 및 데이터 입력과 동시에 실시간으로 출력되지 않는다.
따라서, 이러한 지연시간동안 디인터리버의 입력값과 출력값이 일치하지 않게 되고, 비교 신호발생기는 이 지연시간 동안 두 값을 비교하기 위한 비교 신호를 발생한다. 비교 신호는 WE(Write Enable)신호와 동일한 신호로서 단지 WE(Write Enable)신호에 앞서서 비교 및 카운트부를 구동하도록 이루어진다.
따라서, 비교 및 카운트부는 이전 순환에 의한 출력값과 현재 입력되는 현재 순환값을 동시에 비교할 수 있게 된다. 비교 결과 두 값이 서로 차이가 없는 경우 즉, 디인터리버의 입출력값이 동일한 경우는 데이터 복원을 위한 순환을 정지하도록 한다. 이는 데이터 복원이 정상적으로 이루어진 것으로 판단할 수 있기 때문이다.
이상에서 본 발명에 대한 기술사상을 첨부도면과 함께 서술하였지만 이는 본 발명의 바람직한 실시예를 예시적으로 설명한 것이지 본 발명을 한정하는 것은 아니다. 또한, 이 기술분야의 통상의 지식을 가진 자라면 누구나 본 발명의 기술사상의 범주를 이탈하지 않는 범위 내에서 다양한 변형 및 모방이 가능함은 명백한 사실이다.
본 발명은 전술한 바와 같이 복호기의 반복 복호 과정 정지 기준에 있어서, 추가적인 메모리없이도 디인터리버의 버퍼를 활용함으로써 간편하게 하드웨어를 구현하고, 어떤 프레임 크기에도 동일하게 적용할 수 있는 터보 복호 정지 기준을 제공함으로써 반복 복호에 따른 시간 지연과 전력 소모를 줄일 수 있게 되었다.

Claims (8)

  1. 고속 데이터 전송오류 정정을 위한 터보 코드 복호 장치에 있어서,
    현재 순환된 입력값에 대한 디인터리빙을 수행하여 출력하는 디인터리버;
    상기 디인터리버의 입력값과 출력값을 동시에 검출하여 상기 입력값과 출력값의 동일여부를 판단하는 비교 및 카운트 부; 및
    상기 비교 및 카운트 부를 구동하는 비교 신호를 발생하는 비교 신호 발생기를 포함하여 이루어지는 것을 특징으로 하는 터보 코드 복호 장치.
  2. 제 1항에 있어서, 상기 비교 신호 발생기는 쓰기 신호(WE)를 천이하여 비교 신호를 생성하는 것을 특징으로 하는 터보 코드 복호 장치.
  3. 제 1항에 있어서, 상기 비교 및 카운트 부는 상기 입력값과 출력값의 동일여부를 판단하여 상기 입력값과 출력값이 동일한 경우는 데이터 복원을 위한 순환을 정지하는 것을 특징으로 하는 터보 코드 복호 장치.
  4. 제 1항에 있어서, 상기 비교 및 카운트 부는 상기 입력값과 출력값의 동일여 부를 판단하여 상기 입력값과 출력값이 동일하지 않은 경우는 데이터 복원을 위한 순환을 계속하는 것을 특징으로 하는 터보 코드 복호 장치.
  5. 고속 데이터 전송오류 정정을 수행하는 터보 코드 복호 장치를 구비하는 디지털 통신 시스템에 있어서,
    현재 순환된 입력값에 대한 디인터리빙을 수행하여 출력하는 디인터리버;
    상기 디인터리버의 입력값과 출력값을 동시에 검출하여 상기 입력값과 출력값의 동일여부를 판단하는 비교 및 카운트 부; 및
    상기 비교 및 카운트 부를 구동하는 비교 신호를 발생하는 비교 신호 발생기를 포함하여 이루어지는 것을 특징으로 하는 디지털 통신 시스템.
  6. 제 5 항에 있어서, 상기 비교 신호 발생기는 쓰기 신호(WE)를 천이하여 비교 신호를 생성하는 것을 특징으로 하는 디지털 통신 시스템.
  7. 제 5 항에 있어서, 상기 비교 및 카운트 부는 상기 입력값과 출력값의 동일여부를 판단하여 상기 입력값과 출력값이 동일한 경우는 데이터 복원을 위한 순환을 정지하는 것을 특징으로 하는 디지털 통신 시스템.
  8. 제 5 항에 있어서, 상기 비교 및 카운트 부는 상기 입력값과 출력값의 동일여부를 판단하여 상기 입력값과 출력값이 동일하지 않은 경우는 데이터 복원을 위한 순환을 계속하는 것을 특징으로 하는 디지털 통신 시스템.
KR1020040067815A 2004-08-27 2004-08-27 고속 데이터 전송오류 정정을 위한 터보 코드 복호기 KR20060019249A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040067815A KR20060019249A (ko) 2004-08-27 2004-08-27 고속 데이터 전송오류 정정을 위한 터보 코드 복호기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040067815A KR20060019249A (ko) 2004-08-27 2004-08-27 고속 데이터 전송오류 정정을 위한 터보 코드 복호기

Publications (1)

Publication Number Publication Date
KR20060019249A true KR20060019249A (ko) 2006-03-03

Family

ID=37126668

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040067815A KR20060019249A (ko) 2004-08-27 2004-08-27 고속 데이터 전송오류 정정을 위한 터보 코드 복호기

Country Status (1)

Country Link
KR (1) KR20060019249A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355982B1 (ko) * 2012-07-05 2014-01-29 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101355982B1 (ko) * 2012-07-05 2014-01-29 한국과학기술원 연접 비씨에이치 부호, 복호 및 다계층 복호 회로 및 방법, 이를 이용한 플래쉬 메모리 장치의 오류 정정 회로 및 플래쉬 메모리 장치

Similar Documents

Publication Publication Date Title
US6950977B2 (en) Mechanism for turbo decoding when CRC for partial blocks is provided
KR100321978B1 (ko) 통신시스템에서반복복호장치및방법
KR100549894B1 (ko) 부호화 장치, 부호화 방법, 이동국 장치 및 기지국 장치
JP4478668B2 (ja) 並列のターボ復号機中でのインターリーブの方法およびシステム。
US7500169B2 (en) Turbo decoder, turbo decoding method, and turbo decoding program
GB2374500A (en) Stopping iterative decoding in a turbo decoder when a minimum absolute LLR is greater than a dynamic threshold
KR20080098391A (ko) 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더
US8196006B2 (en) Modified branch metric calculator to reduce interleaver memory and improve performance in a fixed-point turbo decoder
US7584389B2 (en) Turbo decoding apparatus and method
JP2014209785A (ja) 複数のコード・タイプをプログラマブル復号する方法および装置
JP4837645B2 (ja) 誤り訂正符号復号回路
KR100628201B1 (ko) 터보 디코딩 방법
JP2006033720A (ja) 符号化装置、復号装置
US20090313522A1 (en) Method and apparatus for low latency turbo code encoding
JP3512176B2 (ja) ターボ復号装置およびターボ復号における復号の繰返し回数の制御方法
WO2008048944A2 (en) Using sam in error correcting code encoder and decoder implementations
KR20060019249A (ko) 고속 데이터 전송오류 정정을 위한 터보 코드 복호기
US7584407B2 (en) Decoder and method for performing decoding operation using map algorithm in mobile communication system
KR100762612B1 (ko) 터보 복호화 장치에서 인터리버와 디인터리버간 메모리공유 장치 및 방법
US7480846B2 (en) Iterative turbo decoder with single memory
US20090015448A1 (en) decoder
US6691261B1 (en) De-interleaver and method of de-interleaving
KR20090030378A (ko) 이동통신 시스템에서 블럭 인터리빙을 위한 장치 및 방법
KR20040061283A (ko) 터보 디코딩의 인터리버 주소 발생 방법
KR100617822B1 (ko) 터보 복호기를 위한 고속 입력 장치 및 방법

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination