KR20130073333A - Apparatus and method of traceback having minimized decoding delay time - Google Patents

Apparatus and method of traceback having minimized decoding delay time Download PDF

Info

Publication number
KR20130073333A
KR20130073333A KR1020110141121A KR20110141121A KR20130073333A KR 20130073333 A KR20130073333 A KR 20130073333A KR 1020110141121 A KR1020110141121 A KR 1020110141121A KR 20110141121 A KR20110141121 A KR 20110141121A KR 20130073333 A KR20130073333 A KR 20130073333A
Authority
KR
South Korea
Prior art keywords
tbm
backtracking
data
memory
path
Prior art date
Application number
KR1020110141121A
Other languages
Korean (ko)
Other versions
KR101714009B1 (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 KR1020110141121A priority Critical patent/KR101714009B1/en
Publication of KR20130073333A publication Critical patent/KR20130073333A/en
Application granted granted Critical
Publication of KR101714009B1 publication Critical patent/KR101714009B1/en

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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • 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/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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
    • 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/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms

Abstract

PURPOSE: A reverse tracking device with a minimized decoding delay time and a method thereof are provided to be able to use minimum memories without using many operation quantities, and to be able to minimize the decoding delay time. CONSTITUTION: A reverse tracking device stores data in a first trace back memory (TBM) which is one of multiple TBMs comprising the reverse tracking device (S800). The reverse tracking device performs a decoding operation which extracts the decoding information of data stored in a previous TBM of the TBM performing the reverse tracking simultaneously with or immediately after that the reverse tracking is performed (S810). Data are stored in the following TBM of the first TBM (S820) in case that the reverse tracking needs to continue after the reverse tracking device completed the storage of data (S815). [Reference numerals] (8S15) Determining whether reverse tracking is continued or not; (AA) Start; (BB) End; (S800) Start data storage; (S805) Start reverse tracking; (S810) Extracting decoded information; (S820) Move to next TBM

Description

최소화된 복호 지연 시간을 갖는 역추적 장치 및 방법{APPARATUS AND METHOD OF TRACEBACK HAVING MINIMIZED DECODING DELAY TIME}Backtracking apparatus and method with minimized decoding delay time {APPARATUS AND METHOD OF TRACEBACK HAVING MINIMIZED DECODING DELAY TIME}

본 발명은 역추적 장치 및 방법에 관한 것으로서, 보다 자세하게는 복호 지연 시간을 최소화하는 역추적 장치 및 방법에 관한 것이다.The present invention relates to a backtracking apparatus and method, and more particularly, to a backtracking apparatus and method for minimizing decoding delay time.

일반적으로, 비터비 복호기는 전력 소모는 낮게 유지되면서, 회로의 성능은 원하는 레벨로 또는 그 이상으로 유지되는 것이 바람직하다. 따라서, 비터비 복호기를 구현하는 에너지 효율적인 방법 및 구조에 대한 필요성이 존재한다.In general, it is desirable that the Viterbi decoder maintain the power consumption while keeping the performance of the circuit at or above the desired level. Accordingly, there is a need for an energy efficient method and structure for implementing Viterbi decoders.

비터비 복호기는 많은 응용을 갖는다. 예를 들어, 비터비 복호기는 통신 시스템에서 수신기가 수신한 심볼 스트림에 근거하여 원격 송신기에 의해 송신되었을 것으로 가장 고려되는 심볼 스트림을 결정할 수 있다. 또는, 데이터 저장 시스템 및 디스크 드라이브 등에서의 다른 응용들이 존재한다. Viterbi decoders have many applications. For example, the Viterbi decoder can determine the symbol stream most considered to have been transmitted by the remote transmitter based on the symbol stream received by the receiver in the communication system. Or other applications exist in data storage systems and disk drives.

컨볼루션 부호기를 사용하여 데이터를 전송하는 무선 통신 시스템은 비터비복호기를 사용하여 복원한다. 유사한 복호열을 찾아내기 위하여, 무선 통신 시스템은 수신된 정보를 이용하여 진행되는 여러 상태에서 선택된 데이터를 저장하는 메모리를 갖는다. 이러한 메모리는 일정한 시간 동안에 추적이 이루어지게 되므로 정보를 저장한다. A wireless communication system for transmitting data using a convolutional encoder uses a Viterbi decoder to recover. In order to find similar decoding strings, a wireless communication system has a memory for storing selected data in various states of progress using received information. These memories store information because they are tracked over a period of time.

메모리를 효율적으로 관리하기 위한 다양한 방법이 구현이 되고 있지만, 시간적인 효율성을 고려하여 여러 개의 메모리에서 정보 저장 및 추출 동작을 수행한다. 최소한의 메모리를 사용하기 위해 매 시간마다 모든 데이터의 정보를 갱신하는 방법을 사용하기도 하지만, 이는 너무 많은 연산이 필요로 한다. 또한, 시프트 레지스터에 기록하면서 역추적을 기록 클락보다 빠르게 진행하여 복호화하고 반대방향으로 메모리를 시프트하여 역추적을 하고 복호화하는 방법이 있으나, 역추적을 위하여 메모리를 시프트 해야하는 불편이 있다.Various methods for efficiently managing memory have been implemented, but in consideration of time efficiency, information storage and extraction operations are performed in multiple memories. Some use a method of updating the information of all data every hour to use the least amount of memory, but this requires too much computation. In addition, there is a method of performing the reverse tracking faster than the write clock while decoding to the shift register and decoding and shifting the memory in the opposite direction to perform the reverse tracking and decoding, but it is inconvenient to shift the memory for the reverse tracking.

메모리를 효과적으로 사용하면서도 동일한 클락을 사용하여 역추적 및 복호까지 완료하며, 메모리를 시프트하지 않는 효율적인 역추적 장치 및 역추적 방법이 요구된다.There is a need for an efficient backtracking device and a backtracking method that use memory effectively and complete backtracking and decoding using the same clock, and do not shift the memory.

본 발명의 기술적 과제는, 최소의 메모리를 사용하면서 많은 연산량이 필요하지 않도록 하는 역추적 방법 및 메모리를 제공하는 데 있다.SUMMARY OF THE INVENTION The present invention has been made in an effort to provide a backtracking method and a memory in which a large amount of computation is not required while using a minimum memory.

본 발명의 다른 기술적 과제는, 역추적 메모리를 최적으로 분할하고, 분할한 메모리를 동시에 다양하게 동작할 수 있는 방법을 제공하는 데 있다.Another technical problem of the present invention is to provide a method for optimally dividing a backtracking memory and variously operating the divided memory simultaneously.

본 발명의 다른 기술적 과제는, 복호열을 역추적하는데 최소의 복호 지연 시간을 갖는 효율적인 메모리 구조를 제공하는 데 있다.Another technical problem of the present invention is to provide an efficient memory structure having a minimum decoding delay time for tracking back a decoding sequence.

본 발명의 일 양태에 따르면, 통신 시스템에서 데이터를 역추적하는 방법은 메모리를 구성하는 복수의 역추적메모리(Trace Back Memory : TBM) 중 하나인 제1 TBM에서 데이터의 저장을 개시하는 단계, 상기 제1 TBM의 이전 TBM부터 앞쪽으로(backward) 미리 설정된 역추적 길이 동안 역추적을 수행하는 단계, 상기 역추적이 수행되는 TBM의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 단계, 상기 제1 TBM에서 데이터의 저장이 완료된 후, 상기 복호 정보를 추출한 TBM인 제2 TBM에 데이터의 저장을 개시하는 단계를 포함한다.According to an aspect of the present invention, a method for backtracking data in a communication system includes initiating storage of data in a first TBM, which is one of a plurality of Trace Back Memorys (TBMs) constituting a memory. Performing backtracking for a preset backtracking length from a previous TBM of the first TBM, and performing a decoding operation of extracting decoding information of data stored in the previous TBM of the TBM on which the backtracking is performed; And after storing the data in the first TBM, initiating the storing of the data in the second TBM which is the TBM from which the decoding information is extracted.

상기 복수의 TBM의 각각의 크기 또는 개수는 상기 메모리에 생존 경로를 저장하는 시간 및 하나의 TBM에서 역추적을 수행하는 시간을 고려하여 결정될 수 있다.The size or number of each of the plurality of TBMs may be determined in consideration of the time of storing a survival path in the memory and the time of performing backtracking in one TBM.

상기 복수의 TBM의 각각의 크기(N)는 상기 역추적 길이(T)를 기초로, "N≥T/N+1"을 만족하는 정수 값 중 가장 작은 정수 값으로 결정될 수 있다.Each size N of the plurality of TBMs may be determined as the smallest integer value among integer values satisfying "N≥T / N + 1" based on the backtracking length T.

상기 제2 TBM의 이전 TBM에서 앞쪽으로 상기 역추적 길이 동안 제2 역추적을 수행하는 단계를 더 포함할 수 있다.The method may further include performing a second traceback during the traceback length forward from the previous TBM of the second TBM.

상기 제2 역추적이 수행되는 구간의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 단계를 더 포함할 수 있다.The method may further include performing a decoding operation of extracting decoding information of data stored in the previous TBM of the section in which the second traceback is performed.

상기 역추적을 수행하는 단계는, 상기 역추적 길이 및 상기 복수의 TBM 각각의 크기를 기초로 복수의 TBM에서 수행될 수 있다.Performing the backtracking may be performed in a plurality of TBMs based on the backtracking length and the size of each of the plurality of TBMs.

상기 역추적 길이가 상기 제1 TBM의 이전 TBM들의 크기의 총합보다 큰 경우, 상기 역추적을 수행하는 단계는 상기 메모리의 맨앞부분까지 역추적을 수행한 후 상기 메모리의 끝부분부터 앞쪽으로(backward) 이어서 역추적을 수행할 수 있다.If the traceback length is greater than the sum of the sizes of previous TBMs of the first TBM, performing the traceback may be performed backward from the end of the memory after performing the traceback to the front of the memory. Backtracking may then be performed.

상기 데이터의 저장을 개시하는 것은 상기 역추적을 수행하는 것과 동시에 수행될 수 있다.Initiating storage of the data may be performed simultaneously with performing the backtracking.

상기 데이터의 저장을 개시하는 것은 상기 복호 동작을 수행하는 것과 동시에 수행될 수 있다.Initiating storage of the data may be performed simultaneously with performing the decoding operation.

상기 통신 시스템은 5/6 부호율을 사용하는 무선랜 시스템일 수 있다.The communication system may be a WLAN system using a 5/6 code rate.

상기 데이터의 저장을 개시하는 단계는 상기 메모리에 저장된 모든 상태의 생존 경로 중 하나의 생존 경로를 선택하고, 상기 모든 상태의 생존 경로를 상기 제1 TBM에 저장하고, 상기 선택된 하나의 생존 경로에 따라서 추적 경로를 포함하는 데이터를 미리 설정된 갱신 타이밍마다 갱신하는 것일 수 있다.Initiating storage of the data may include selecting one survival path of all states of survival stored in the memory, storing the survival paths of all states in the first TBM, and according to the selected one survival path. The data including the tracking path may be updated at each preset update timing.

상기 데이터의 저장을 개시하는 단계는 상기 메모리에 저장된 모든 상태의 생존 경로 중 선택된 생존 경로만을 제1 TBM에 저장하고, 상기 선택된 생존 경로에 따라서 미리 설정된 갱신 타이밍마다 상기 역추적 길이 동안 추적 경로를 포함하는 데이터를 갱신하는 것 일 수 있다.Initiating the storing of the data includes storing only selected survival paths in all the survival paths stored in the memory in the first TBM, and including a tracking path for the traceback length for each preset update timing according to the selected survival path. May be to update data.

본 발명의 다른 양태에 따르면, 역추적 장치는 메모리를 구성하는 복수의 역추적메모리(TraceBack Memory : TBM) 중 하나인 제1 TBM에서 데이터의 저장을 개시하고, 상기 제1 TBM의 이전 TBM부터 앞쪽으로 미리 정해진 역추적 길이 동안 역추적을 수행하고, 상기 역추적이 수행되는 TBM 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하고, 상기 제1 TBM에서 데이터의 저장이 완료된 후 상기 복호 정보를 추출한 TBM인 제2 TBM에 데이터의 저장을 개시하는 역추적 부를 포함한다.According to another aspect of the present invention, a backtracking device initiates storage of data in a first TBM, which is one of a plurality of TraceBack Memory (TBMs) constituting a memory, and starts forward from the previous TBM of the first TBM. Performing a backtracking for a predetermined backtracking length, extracting decoded information of the data stored in the TBM before the backtracking, and performing the decoding after the data storage is completed in the first TBM. And a backtracking unit which starts storing data in the second TBM which is the TBM from which the information is extracted.

본 발명의 다른 양태에 따르면, 비터비 디코더는 부호화된 데이터를 수신하고, 모든 경우의 가지값을 미리 계산하는 가지값 계산부, 상기 계산한 가지값으로 연산을 수행하는 경로선택부 및 메모리를 구성하는 복수의 역추적메모리(TraceBack Memory : TBM) 중 하나인 제1 TBM에서 상기 경로선택부의 연산을 통하여 선택된 경로를 저장하고, 상기 제1 TBM의 이전 TBM부터 앞쪽으로 미리 정해진 역추적 길이 동안 역추적을 수행하고, 상기 역추적이 수행되는 TBM 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하고, 상기 제1 TBM에서 상기 경로선택부의 연산을 통하여 선택된 경로의 저장이 완료된 후 상기 복호 정보를 추출한 TBM인 제2 TBM에 상기 경로선택부의 연산을 통하여 선택된 또 다른 경로의 저장을 개시하는 역추적 부를 포함한다.According to another aspect of the present invention, a Viterbi decoder comprises a branch value calculation unit for receiving encoded data and pre-calculating branch values in all cases, a path selection unit for performing calculations with the calculated branch values, and a memory. Storing the selected path through the operation of the path selector in the first TBM, which is one of a plurality of traceback memories (TBMs), and backtracking for a predetermined backward tracking length forward from the previous TBM of the first TBM. Perform a decoding operation of extracting the decoding information of the data stored in the TBM before the back-tracking TBM, and storing the selected path through the operation of the path selection unit in the first TBM after the decoding is completed. And a traceback unit for starting to store another path selected through the operation of the path selector in the second TBM which is the extracted TBM.

역추적된 정보의 순서를 바꿔주는 FILO(First-In-Last-Out) 버퍼부 또는 LIFO(Last-In-First-Out) 버퍼부를 더 포함할 수 있다.The apparatus may further include a first-in-last-out (FILO) buffer unit or a last-in-first-out (LIFO) buffer unit for changing the order of the traced information.

상기 경로선택부는 래딕스(Radix)-4를 사용한 병렬 ACS(Add Compare Select)를 포함할 수 있다.The path selector may include a parallel add compare select (ACS) using radix-4.

상기 경로선택부는 래딕스-16을 사용한 병렬 ACS(Add Compare Select)를 포함할 수 있다.The path selector may include a parallel Add Compare Select (ACS) using Radix-16.

본 발명에 따르면, 비터비 복호기를 사용하는 시스템에서 역추적에 필요한 메모리를 최적으로 구성하여, 많은 연산량을 사용하지 않으면서 최소한의 메모리를 사용할 수 있으며 복호 지연 시간을 최소화 할 수 있다.According to the present invention, in a system using a Viterbi decoder, the memory necessary for backtracking is optimally configured, so that the minimum memory can be used without using a large amount of computation and the decoding delay time can be minimized.

또한, 본 발명에 따르면, 메모리에 기록을 하는 동시에 동일한 클락 속도로 역추적을 진행할 수 있으며, 메모리를 시프트하지 않고 메모리의 내용을 토대로 이전 상태 정보를 알아내어 역추적을 진행할 수 있다.In addition, according to the present invention, the backtracking can be performed at the same clock speed while writing to the memory, and the backtracking can be performed by finding previous state information based on the contents of the memory without shifting the memory.

도 1은 본 발명이 적용되는 통신 시스템의 수신단에서 신호를 수신하고 복호하는 방법의 일 예를 나타낸 순서도이다.
도 2는 본 발명이 적용되는 비터비 복호기의 일 예를 나타낸 것이다.
도 3은 본 발명이 적용되는 래딕스-4 구조에 관한 것이다.
도 4는 본 발명이 적용되는 래딕스-16 구조에 관한 것이다.
도 5는 생존 경로값을 저장하여 역추적을 수행하고 복호데이터를 출력하는 것의 일 예를 나타낸 것이다.
도 6은 본 발명이 적용되는 역추적 메모리의 일 예를 나타낸다.
도 7은 본 발명에 따른 역추적 방법이 적용되는 역추적 메모리의 일 예를 나타낸다.
도 8은 본 발명에 따라서 도 7의 역추적 메모리에서 역추적을 수행하는 역추적 장치의 동작을 나타낸 순서도이다.
1 is a flowchart illustrating an example of a method for receiving and decoding a signal at a receiving end of a communication system to which the present invention is applied.
2 shows an example of a Viterbi decoder to which the present invention is applied.
3 relates to a Radix-4 structure to which the present invention is applied.
4 relates to a Radix-16 structure to which the present invention is applied.
5 illustrates an example of storing a survival path value to perform backtracking and outputting decoded data.
6 shows an example of a traceback memory to which the present invention is applied.
7 shows an example of a traceback memory to which the traceback method according to the present invention is applied.
8 is a flowchart illustrating an operation of a backtracking apparatus for performing backtrace in the backtracking memory of FIG. 7 according to the present invention.

이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 이하에서 개시되는 실시 예에 한정되지 않는다. 또한 도면에서 본 발명을 명확하게 개시하기 위해서 본 발명과 관계없는 부분은 생략하였으며, 도면에서 동일하거나 유사한 부호들은 동일하거나 유사한 구성요소들을 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present invention. Also, in order to clearly illustrate the present invention in the drawings, portions not related to the present invention are omitted, and the same or similar reference numerals denote the same or similar components.

도 1은 본 발명이 적용되는 통신 시스템의 수신단에서 신호를 수신하고 복호하는 방법의 일 예를 나타낸 순서도이다.1 is a flowchart illustrating an example of a method for receiving and decoding a signal at a receiving end of a communication system to which the present invention is applied.

수신단은 생성다항식에 의해 부호화된 데이터를 시스템의 송신단으로부터 수신한다(S100).The receiving end receives the data encoded by the generated polynomial from the transmitting end of the system (S100).

수신단에 포함된 복호기(예를 들면, 비터비 복호기)는 수신한 데이터를 생성다항식을 근거로 가능한 모든 경로 중에서 최적의 경로를 선택하고(S105), 미리 설정된 일정한 크기 이상 최적 경로 정보를 모든 상태(state)에서 계산하고(S110), 역추적을 통해 그 중 하나를 선택하여 데이터를 복원한다(S115). The decoder included in the receiver (eg, Viterbi decoder) generates the received data, selects an optimal path among all possible paths based on the polynomial (S105), and selects the optimal path information of a predetermined size or more in advance in all states ( state) and recovers the data by selecting one of them through backtracking (S115).

도 2는 본 발명이 적용되는 비터비 복호기의 일 예를 나타낸 것이다.2 shows an example of a Viterbi decoder to which the present invention is applied.

도 2를 참조하면, 비터비 복호기는 가지값 계산부(Branch Metric Unit : BMU), 경로선택부(Path Metric Unit : PMU), 역추적부(Trace Back Unit : TBU)를 포함하며, 경우에 따라 역추적된 정보의 순서를 바꿔주는 FILO(First-In-Last-Out) 버퍼(buffer)부 또는 LIFO(Last-In-First-Out) 버퍼부를 더 포함할 수 있다. 또한, 역추적이 수행되는 역추적 메모리를 더 포함할 수 있다.Referring to FIG. 2, the Viterbi decoder includes a branch metric unit (BMU), a path metric unit (PMU), and a trace back unit (TBU). The apparatus may further include a first-in-last-out (FILO) buffer unit or a last-in-first-out (LIFO) buffer unit for changing the order of the traced information. The apparatus may further include a backtracking memory on which the backtracking is performed.

가지값 계산부는 부호화된 데이터를 수신하고, 모든 경우의 가지값을 미리 계산한다. 입력되는 데이터의 수에 따라 계산되는 경우의 가지값이 달라진다. 일 예로, 입력 되는 부호화된 데이터가 k개 인경우, 2k개의 가지값을 계산한다. 즉, 입력 되는 부호화된 데이터가 4개 인 경우, 총 16(24)개의 가지값이 계산된다. The branch value calculating unit receives the encoded data and calculates the branch values in all cases in advance. The branch value when calculated depends on the number of data input. For example, when k coded data is input, 2 k branch values are calculated. That is, when the input coded data is four, a total of 16 (2 4 ) branch values are calculated.

경로선택부는 상기 계산한 가지값으로 연산을 수행하며, ACS(Add Compare Select)부를 포함할 수 있다. 도 3 또는 도 4와 같이 래딕스-4 또는 래딕스-16 구조일 수 있다. 부호화 과정에서 사용된 생성다항식을 근거로 연산하며, 만약 구속장(constraint length)이 C인 경우 2C-1개의 상태에 대하여 연산하며, 각 상태에서 입력에 따라 현재 상태가 될 수 있는 이전 상태의 가지값을 이전 상태의 경로값과 더하여 현재 상태가 될 수 있는 모든 가지에 대해 비교하고 선택한다.The path selector may perform an operation based on the calculated branch value, and may include an add compare select (ACS) unit. 3 or 4 may be a Radix-4 or Radix-16 structure. Computation is performed based on the generated polynomial used in the encoding process. If the constraint length is C, the operation is performed on 2 C-1 states. The branch value is added to the path value of the previous state to compare and select for all branches that may be present.

상기 비교 및 선택된 값이 역추적 메모리에서 현재 상태의 경로값으로 갱신된다. 현재 상태는 2C-1 개의 경우의 수가 있고, 각 상태는 입력에 따라 매번 갱신이 된다. 갱신되는 상태를 현재 상태라고 하면 현재 상태로 갱신이 가능한 이전 상태의 경로값과 그 이전 상태에서 현재 상태로 오는 가지값을 더한 결과를 모든 가능한 이전 상태에 대해 각각 구하고 이를 비교하여 그 중 최소값을 선택한다. 선택된 최소값을 현재 상태의 경로값으로 갱신된다.The comparison and selected value is updated with the path value of the current state in the backtracking memory. The current state is the number of 2 C-1 cases, and each state is updated each time according to the input. If the state to be updated is called the current state, the path value of the previous state that can be updated to the current state and the branch value coming from the previous state to the current state are calculated for all possible previous states, and compared with each other to select the minimum value. do. The selected minimum value is updated with the path value of the current state.

도 3은 본 발명이 적용되는 래딕스-4(Radix-4) 구조에 관한 것이다. 이는, 구속장이 3인 경우이고, 상태는 4(=23-1)개 이다.3 relates to a Radix-4 structure to which the present invention is applied. This is the case when the restriction is 3, and the state is 4 (= 2 3-1 ).

도 3을 참조하면, 래딕스 4-구조를 가지는 경우, 현재 상태가 "X00"라면, 현재 상태가 될 수 있는 이전 상태 "00X", "01X", "10X", "11X"에서 "X00"으로 상태가 변하는 경우의 가지값을 각각 이전상태의 경로값과 더한다. 그리고, 4개의 경로 중 최소의 경로값을 갖는 것을 선택한다. 왜냐하면, 입력된 부호화된 데이터와 상태 천이에 따른 예상 부호화 값의 차이가 적을 확률이 높은 유사열임을 나타내기 때문이다. Referring to FIG. 3, in the case of having a Radix 4-structure, if the current state is "X00", the previous states "00X", "01X", "10X", and "11X" may be "X00". Add the branch values when the state changes to the path values of the previous state. Then, the one with the smallest path value among four paths is selected. This is because it indicates that a similar sequence has a high probability that the difference between the input coded data and the expected coded value due to the state transition is small.

도 4는 본 발명이 적용되는 래딕스-16(Radix-16) 구조에 관한 것이다. 이는 구속장이 5이고, 상태는 16(=25-1)개인 경우이다.4 relates to a Radix-16 structure to which the present invention is applied. This is the case when the restriction is 5 and the state is 16 (= 2 5-1 ).

도 4를 참조하면, 래딕스-16 구조를 가지는 경우, 현재 상태가 "X0000"라면, 현재 상태가 될 수 있는 16개의 이전 상태 "0000X", "0001X",…,"1111X"에서 "X0000"으로 상태가 변하는 경우의 가지값을 각각 이전상태의 경로값과 더한다. 그리고, 16개의 경로 중 최소의 경로값을 갖는 것을 선택한다. Referring to Fig. 4, in the case of having a Radix-16 structure, if the current state is "X0000", the 16 previous states "0000X", "0001X",... Add the branch value when the state changes from "1111X" to "X0000" with the path value of the previous state, respectively. Then, the one with the smallest path value among 16 paths is selected.

이와 같이 경로선택부에서 선택된 최소의 경로값은 각 상태 별로 역추적 메모리에 저장된다. As such, the minimum path value selected by the path selector is stored in the backtracking memory for each state.

한편, 역추적부는 역추적 메모리에서 가장 유사한 복호열을 역추적을 통해 찾는 역할을 한다.On the other hand, the traceback unit finds the most similar decoding sequence in the traceback memory through traceback.

역추적부에서 생존 경로값을 저장하면서 역추적을 수행하는 방법은 크게 두 가지가 있으며, 역추적을 수행하여 복호데이터를 출력할 수 있다. 여기서 생존 경로값이란 경로선택부에서 선택한 최소의 경로값을 말한다.There are two ways to perform backtracking while storing survival path values in the backtracker, and decoded data can be output by performing backtracking. Here, the survival path value means the minimum path value selected by the path selection unit.

첫째, 매 시점마다 모든 상태의 선택된 생존 경로를 선택하여 역추적 메모리에 저장하고, 상기 경로선택부에서 선택된 경로에 따라서 이전 정보를 갱신하는 방법이 있다. First, there is a method of selecting a selected survival path of all states at every time point and storing the selected survival path in the traceback memory and updating previous information according to the path selected by the path selection unit.

도 5는 생존 경로값을 저장하여 역추적을 수행하고 복호데이터를 출력하는 것의 일 예를 나타낸 것이다. 5 illustrates an example of storing a survival path value to perform backtracking and outputting decoded data.

도 5를 참조하면, 일정한 시간이 지난 후, 하나의 상태를 읽어 시간 "t-T" 에서의 상태를 간단히 결정할 수 있다. 여기서, "t"는 시간 인스턴트(time instant)를 말하고, "T"는 역추적 길이(depth)를 말한다.Referring to FIG. 5, after a certain time, one state may be read to simply determine the state at time "t-T". Here, "t" refers to time instant and "T" refers to backtracking depth.

모든 상태의 경로 정보를 새로운 경로 정보로 갱신하고, 선택된 경로에 따라 이전 상태의 경로 정보 중 "t-T" 시점에 저장된 정보를 복호데이터로 출력한다. 이때, 필요한 역추적 메모리의 크기는 (상태 가지수(2C-1)* T) 이다. 또한, 일정한 역추적 길이가 지나면 입력시 복조가 이루어지는 최소 복조 지연시간을 가진다. 하지만, 매 시점마다 모든 메모리의 생존 경로를 갱신해야 하는 과정에서 하드웨어 복잡도가 크고 파워 소모가 크게 된다.The path information of all states is updated with new path information, and information stored at the time point "tT" among the path information of the previous state is output as decoded data according to the selected path. At this time, the size of the traceback memory required is (state index (2 C-1 ) * T). Also, it has a minimum demodulation delay time for demodulation upon input after a certain traceback length. However, the hardware complexity is high and the power consumption is large in the process of updating the survival paths of all memories at each time point.

둘째, 매 시점 모든 상태의 선택된 생존 경로만을 저장하고, 일정한 시간이 지난 후, 어느 상태에서 저장된 생존 경로값을 통해 이전 상태를 추적하고 다시 그 이전 상태를 추적하는 형태로 T 스텝만큼 역추적하여 복호데이터를 얻는 방법이 있다. 이 경우, 매 시점마다 모든 정보를 갱신할 필요가 없으므로 하드웨어 복잡도가 적어 파워소모도 적게 된다. 역추적 메모리에 선택된 생존 경로를 저장하는 과정과 역추적 과정에서 복조 지연시간이 두 배 이상 늘어난다. Second, it stores only the selected survival paths of all states at every point in time, and after a certain time, traces the previous state through the stored survival path values in one state and traces back the previous state again by T step in order to decode There is a way to get the data. In this case, since it is not necessary to update all the information at every time point, the hardware complexity is low and the power consumption is also reduced. The demodulation delay is more than doubled in the process of storing the selected survival path in the traceback memory and in the traceback process.

이때, 매 시점마다 입력되는 정보로부터 얻은 생존 경로값을 이용하여 역추적을 하므로, 시간적 효율성을 위해 역추적 길이보다 큰 역추적 메모리를 두고 여러 개의 리드 멀티플 포인터(read multiple pointer)를 이용하여 메모리를 운용할 수 있다. 여기서, 리드 멀티플 포인터란 다수의 리드 포인터를 이용하여 동시에 다수의 메모리 공간에서 읽기 동작이 수행될 수 있도록 하는 포인터를 말한다. 다음 도 6에서 세 지점에서 동시에 읽기 동작이 수행되는 것을 볼 수 있다. In this case, since backtracking is performed using the survival path value obtained from the information input at each time point, the memory is stored using multiple read multiple pointers with a backtracking memory larger than the backtracking length for time efficiency. It can be operated. In this case, the read multiple pointer refers to a pointer that allows a read operation to be simultaneously performed in a plurality of memory spaces using a plurality of read pointers. Next, in FIG. 6, it can be seen that read operations are simultaneously performed at three points.

도 6은 본 발명이 적용되는 역추적 메모리의 일 예를 나타낸다.6 shows an example of a traceback memory to which the present invention is applied.

도 6을 참조하면, 역추적 길이를 T라고 할 때, 리드 포인터를 여러 개(도 6의 경우 3개) 두어, 일정 시간 후에는 연속적으로 데이터가 저장(Write : WR)되면서 복호(Decoding : DC)되어 나오도록 역추적(TakeBack : TB)하여 구성한다. Referring to FIG. 6, when the traceback length is T, a plurality of read pointers (three in FIG. 6) are placed, and data is continuously stored (Write: WR) after a predetermined time. Backtrack (TakeBack: TB) to configure.

저장 메모리는 (2 * 리드 포인터 개수)개로 나뉘어져 있고, 도 6의 경우 2 * 3개이다.The storage memory is divided into (2 * number of read pointers), which is 2 * 3 in FIG.

각 저장 메모리의 크기는 T/(리드 포인터 수 -1)이고, 도 6의 경우 T/(3-1)이다.The size of each storage memory is T / (lead pointer number -1), and T / (3-1) in FIG.

전체 메모리의 크기는 (2 * 리드포인터 개수) * T/(리드 포인터 개수-1) * 2C-1이므로, 도 6의 경우 (2*3) * T/(3-1) * 2C- 1 이다. 구속장의 크기(C) 값은 가변적이다. 원활한 저장과 복호를 위해 충분한 메모리를 사용하는 것이 바람직하다.Since the total memory size is (2 * number of lead pointers) * T / (number of lead pointers -1 ) * 2 C-1 , in the case of FIG. 6, (2 * 3) * T / (3-1) * 2 C- 1 The magnitude (C) value of the constraint field is variable. It is desirable to use enough memory for smooth storage and decoding.

도 7은 본 발명에 따른 역추적 방법이 적용되는 역추적 메모리의 일 예를 나타낸다. 7 shows an example of a traceback memory to which the traceback method according to the present invention is applied.

도 7을 참조하면, 역추적 메모리는 복수의 TBM(도 7의 경우, TBM1,…,TBNn +2)으로 나뉘어져 있다. 각 TBM의 크기가 N이며, N은 시간 측면에서 하나의 TBM을 다 채우는데 필요한 시간이다.Referring to FIG. 7, the backtracking memory is divided into a plurality of TBMs (TBM 1 ,..., TBN n +2 in FIG. 7). The size of each TBM is N, where N is the time required to fill one TBM in terms of time.

각각의 TBM은 매 시점 모든 경로정보를 갱신한다. 이전 상태에서 선택된 새로운 경로 정보와 그에 따른 추적 경로 정보를 함께 갱신한다. 이때, 추적 경로 정보의 갱신은 선택된 새로운 경로 정보만 갱신하는 것이 아니라 이전 상태가 가지는 역추적에 필요한 경로 정보도 모두 갱신하는 것을 의미한다. 단, 이러한 갱신은 하나의 TBM 내에서 수행된다.Each TBM updates all route information at each time point. Update the new route information selected in the previous state and the trace route information accordingly. At this time, updating the tracking path information means not only updating the selected new path information but also updating all path information necessary for the backtracking of the previous state. However, this update is performed in one TBM.

하나의 TBM에 대하여 경로 정보의 갱신이 완료되면, 다음 TBM에 대하여 동일한 방식으로 경로 정보를 갱신한다. 다음 TBM에 대한 갱신 동작 수행중에는 이전 TBM은 더 이상 갱신 동작을 하지 않는다. 즉, 매 시점 하나의 TBM에 대해서만 갱신 동작이 모든 상태에 대해 이루어진다.When the update of the path information for one TBM is completed, the path information is updated in the same manner for the next TBM. While performing the update operation for the next TBM, the previous TBM no longer performs the update operation. That is, the update operation is performed for all states only for one TBM at a time.

상기 도 7의 총 역추적 메모리의 크기는 (하나의 TBM의 크기(N))*(2C-1)*(n+2)이며, T가 n*N이면, 이는 (T*2C-1)+(하나의 TBM의 크기)*(2C-1)*(2)와 같다. The size of the total backtracking memory of FIG. 7 is (size of one TBM) * (2 C-1 ) * (n + 2), and if T is n * N, it is (T * 2 C− 1 ) + (size of one TBM) * (2 C-1 ) * (2)

하나의 TBM의 크기가 N일 때 하나의 TBM에 데이터가 저장되는데 걸리는 시간은 적어도 N 클락(clock)이고, TBM에 저장(Write : WR)되는 N 클락 동안 다른 TBM에서 역추적을 수행하여, 또 하나의 클락에 경로 정보를 갱신하여 다음 TBM을 읽는다. When the size of one TBM is N, the time it takes for data to be stored in one TBM is at least N clocks, and backtracking is performed in the other TBMs during the N clocks stored in the TBM. Update the path information in one clock to read the next TBM.

이러한 방식으로 하나의 리드 포인터로 n개의 TBM 정보를 읽어서 역추적을 n클락 동안 수행하고, 다음 클락에 복호를 수행하여 복호데이터를 얻는다. In this manner, n TBM information is read with one read pointer to perform backtracking for n clocks, and the next clock is decoded to obtain decoded data.

TBM의 크기 및 TBM의 개수의 곱(N*n)이 역추적 길이 T보다 길거나 같아야 한다. 그래야 역추적을 제대로 수행할 수 있다. 만약, T/N이 정수이면, 역추적에 필요한 TBM 수(n)는 T/N로 선택한다. T/N이 정수가 아니면, n은 T/N보다 크고 가장 인접한 정수로 선택한다. The product of the size of TBM and the number of TBMs (N * n) must be longer or equal to the backtracking length T. This will allow you to perform backtracking properly. If T / N is an integer, the TBM number n required for backtracking is selected as T / N. If T / N is not an integer, n is greater than T / N and selected as the nearest integer.

일 예로, 역추적 길이(T)를 n개의 TBM으로 나누고 하나의 TBM의 크기(N)를 정하는 기준은 메모리에 생존 경로를 저장하는 시간과 역추적 시간을 고려하여 다음 수학식 1을 만족시키는 N으로 정한다.For example, the criterion for dividing the backtracking length (T) into n TBMs and determining the size (N) of one TBM is based on the time required to store the survival path in the memory and the backtracking time. Decide on

Figure pat00001
Figure pat00001

역추적은 TBM의 정보를 읽어 해당 상태의 경로 정보를 얻고, 이로부터 다음 상태 정보를 얻어서 해당 다음 상태에 해당하는 다음 TBM을 찾고, 상기 다음 TBM의 경로 정보를 얻는 방식이다. The backtracking method is to obtain the path information of the corresponding state by reading the information of the TBM, find the next TBM corresponding to the next state by obtaining the next state information therefrom, and obtain the path information of the next TBM.

상기 수학식 1의 조건을 만족하는 N 중 최소값을 찾아 역추적 과정에서 메모리를 효율적으로 나누어 사용하면, 복호 지연 시간을 최소화 할 수 있다. N이 너무 큰 경우 하나의 TBM에서 갱신해야 할 경로 정보가 많으므로 전력소모가 클 수 있다.When the minimum value of N satisfying the condition of Equation 1 is found and the memory is efficiently divided and used in the traceback process, the decoding delay time can be minimized. If N is too large, power consumption may be high because a lot of path information needs to be updated in one TBM.

무선랜 시스템(예를 들어, IEEE 802.11n 시스템) 중 5/6 부호율을 사용하는 시스템과 같이 긴 역추적 길이를 필요로 하는 경우에도 적용할 수 있다.The present invention can also be applied to a case in which a long traceback length is required, such as a system using a 5/6 code rate in a WLAN system (for example, an IEEE 802.11n system).

상기 수학식 1에서 역추적 길이(T)를 90으로 하는 경우 TBM의 크기(N)는 10이 최소값이다. 즉, N이 10일 때, 상기 수학식 1의 조건을 만족하면서 최소의 총 메모리 크기와 최소의 지연시간을 갖는다. When the backtracking length T is 90 in Equation 1, the size N of the TBM is 10. That is, when N is 10, it satisfies the condition of Equation 1 and has a minimum total memory size and a minimum delay time.

이때, 하나의 TBM 크기는 10*2C-1이며 T는 90이고, 역추적을 위한 TBM의 개수 n은 9이고, 총 메모리의 크기는 10*2C-1*(9+2) 이다.In this case, one TBM size is 10 * 2 C-1 , T is 90, the number n of TBMs for backtracking is 9, and the total memory size is 10 * 2 C-1 * (9 + 2).

한편, T가 100인 경우, 상기 수학식 1의 조건을 만족시키는 N의 최소값은 11이다. 이때, 하나의 TBM 크기가 T/N으로 정수로 나누어 떨어지지 않으므로 근접 정수를 사용한다. N*n의 크기가 역추적 길이(T)인 100보다 크거나 같아야 하므로, 역추적을 위한 TBM의 개수(n)는 10이고 총 메모리의 크기는 11*2C-1*(10+2)이다. On the other hand, when T is 100, the minimum value of N satisfying the condition of Equation 1 is 11. In this case, since one TBM size is not divided by an integer by T / N, a proximity integer is used. Since the size of N * n must be greater than or equal to 100, the backtracking length (T), the number of TBMs for backtracking (n) is 10 and the total memory size is 11 * 2 C-1 * (10 + 2) to be.

만약, T는 100이고 N이 12라면, 역추적을 위한 TBM의 개수(n)에 대하여 근접 정수를 사용하는 경우 n은 9이므로 총 메모리의 크기는 12*2C-1*(9+2) 이다. If T is 100 and N is 12, when using a near-integer for the number n of TBMs for backtracking, n is 9, so the total memory size is 12 * 2 C-1 * (9 + 2) to be.

또한, T는 100이고 N이 13이라면, 역추적을 위한 TBM의 개수(n)에 대하여 근접 정수를 사용하는 경우 n은 8이므로 총 메모리의 크기는 13*2C-1*(8+2) 이다. In addition, if T is 100 and N is 13, when the proximity integer is used for the number n of TBMs for backtracking, n is 8, so the total memory size is 13 * 2 C-1 * (8 + 2). to be.

여기서, N이 11인 경우와 N이 12인 경우 총 메모리의 크기가 같고, N이 13인 경우는 N이 11 또는 12인 경우보다 총 메모리의 크기가 작다. 하지만, TBM의 메모리 갱신 시 N이 11인 경우가 N이 12 또는 13인 경우 보다 적은 하드웨어를 사용하므로 유리할 수 있다.Herein, when N is 11 and N is 12, the total memory size is the same, and when N is 13, the total memory size is smaller than when N is 11 or 12. However, when N is 11 for memory update of TBM, it may be advantageous because less hardware is used when N is 12 or 13.

도 8은 본 발명에 따라서 도 7의 역추적 메모리에서 역추적을 수행하는 역추적 장치의 동작을 나타낸 순서도이다. 역추적 장치는 역추적 메모리에 데이터가 저장되어 있는 경우, 저장된 데이터를 복호한 후 메모리를 재사용하여, 복호 지연을 감소시키고 메모리를 효율적으로 재사용한다.8 is a flowchart illustrating an operation of a backtracking apparatus for performing backtrace in the backtracking memory of FIG. 7 according to the present invention. When the data is stored in the backtracking memory, the backtracking device decodes the stored data and reuses the memory, thereby reducing the decoding delay and efficiently reusing the memory.

역추적 장치는 역추적 메모리를 구성하고 있는 복수의 TBM 중 하나인 제1 TBM에서 데이터의 저장을 개시한다(S800). 이와 동시에 또는 직후에, 상기 제1 TBM의 이전 TBM에서 역추적을 수행한다(S805). 역추적은 TBM의 크기(N) 및 역추적 길이(T) 값에 따라서 복수의 TBM에서 수행될 수 있다. 만약, 역추적 길이가 상기 제1 TBM의 이전 TBM의 크기보다 큰 경우, 역추적 메모리의 끝부분부터 앞쪽으로(backward) 계속해서 역추적을 수행한다.The backtracking device starts storing data in the first TBM, which is one of a plurality of TBMs constituting the backtracking memory (S800). At the same time or immediately after, the backtracking is performed in the previous TBM of the first TBM (S805). Backtracking can be performed in multiple TBMs depending on the size (N) and backtracking length (T) values of the TBM. If the backtracking length is larger than the size of the previous TBM of the first TBM, the backtracking is continued continuously from the end of the backtracking memory.

역추적이 수행된 동시 또는 직후에, 상기 역추적이 수행되는 TBM 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행한다(S810). 즉, 데이터의 저장되는 동시(또는 직후)에 역추적 및 복호 동작이 서로 다른 TBM에서 수행된다.Simultaneously or immediately after the backtracking is performed, a decoding operation of extracting the decoding information of the data stored in the TBM before the backtracking is performed (S810). That is, backtracking and decoding operations are performed in different TBMs at the same time (or immediately after) the data is stored.

데이터의 저장이 완료된 후, 역추적 장치가 계속해서 역추적을 진행하고자 하는 경우(S815), 상기 제1 TBM의 다음 TBM(제2 TBM)에서 데이터의 저장을 개시한다(S820). 상기 제2 TBM은 이전 역추적 동작에서 복호 정보를 추출한 TBM일 수 있다. 즉, 이전 역추적 동작에서 복호를 수행한 메모리에 데이터의 저장을 수행한다. 복호를 통해서 데이터를 얻었기 때문에, 데이터를 저장하는 메모리로 재사용할 수 있다.After the storage of the data is completed, if the traceback device continues to trace back (S815), the storage of the data is started in the next TBM (second TBM) of the first TBM (S820). The second TBM may be a TBM from which decoding information is extracted in a previous traceback operation. That is, the data is stored in the memory in which the decoding was performed in the previous traceback operation. Since data is obtained through decoding, it can be reused as a memory for storing data.

이전 역추적 동작과 같이, 상기 제2 TBM의 이전 TBM에서 역추적을 수행하며, 역추적은 역추적 길이(T) 값에 따라서 복수의 TBM에서 수행될 수 있다. 만약, 상기 제1 TBM의 이전 TBM의 크기가 역추적 길이보다 작은 경우, 역추적 메모리의 끝부분부터 계속해서 역추적을 수행한다.Like the previous traceback operation, the traceback is performed in the previous TBM of the second TBM, and the traceback may be performed in the plurality of TBMs according to the traceback length T value. If the size of the previous TBM of the first TBM is smaller than the backtracking length, the backtracking is continuously performed from the end of the backtracking memory.

이전 역추적 동작에서 데이터를 저장하였던 TBM 부터 시작하여 역추적 길이에 해당하는 크기만큼 역추적을 수행한다. 또한, 역추적이 수행되는 구간의 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행한다. 복호동작을 수행하는 TBM은 이전 역추적 동작에서 역추적을 수행하는 복수의 TBM 중 역추적이 진행되는 마지막 TBM이다.Starting from TBM where data was saved in the previous traceback operation, the traceback is performed by the size corresponding to the traceback length. Also, a decoding operation of extracting decoding information of data stored in a previous TBM of a section in which backtracking is performed is performed. The TBM performing the decoding operation is the last TBM in which the backtracking is performed among the plurality of TBMs performing the backtracking in the previous backtracking operation.

일 예로, 역추적 메모리가 총 n+2개의 TBM으로 구성되어 있다고 가정하면, 역추적 장치는 n+2번째 TBM에서 데이터의 저장을 개시한다. 데이터의 저장은 경로 정보를 갱신하는 것 또는 생존 전이 정보(survivor transition information)를 갱신하는 것일 수 있다. 동시에(또는 데이터의 저장 개시 이후) 상기 n+2 번째 TBM 이전 복수의 TBM인 2번째 TBM 내지 n+1번째 TBM에서 역추적을 수행한다. 총 n개의 TBM에서 역추적을 수행하며, 각 TBM 크기(N)와 TBM의 개수(n)의 곱의 크기는 역추적 길이(T)와 같거나 길다. 역추적 장치는 상기 n+2 번째 TBM에서 데이터의 저장을 완료하기 전에 1번째 TBM 에서 복호 정보를 추출한다. 복호와 데이터의 저장 및 역추적을 동시에 수행하기 때문에 지연이 감소된다.As an example, assuming that the backtracking memory consists of a total of n + 2 TBMs, the backtracking device starts storing data at the n + 2th TBM. The storage of data may be updating the path information or updating the survivor transition information. At the same time (or after the start of storage of data), backtracking is performed in the second TBM to n + 1th TBM, which are a plurality of TBMs before the n + 2th TBM. Backtracking is performed on a total of n TBMs, and the magnitude of the product of each TBM size (N) and the number (n) of TBMs is equal to or longer than the backtracking length (T). The backtracking device extracts the decoding information from the first TBM before completing the storage of data in the n + 2th TBM. The delay is reduced because decoding and data storage and backtracking are performed simultaneously.

역추적을 계속 진행하려는 경우, 상기 n+2번째 TBM에서 데이터의 저장이 완료된 후, 복호 정보를 추출하였던 상기 1번째 TBM에서 데이터의 저장을 개시한다. 동시에(또는 데이터의 저장 개시 이후) 3번째 TBM 내지 n+2번째 TBM에서 역추적을 수행한다. 역시, 총 n개의 TBM에서 역추적을 수행한다. 또한, 역추적 장치는 상기 1 번째 TBM에서 데이터의 저장을 완료하기 전에 2번째 TBM 에서 복호 정보를 추출한다. In case of continuing to trace back, after the data storage is completed in the n + 2 th TBM, the data storage is started in the first TBM from which the decoded information was extracted. At the same time (or after the start of storage of data), backtracking is performed in the 3rd TBM to n + 2th TBM. Again, backtracking is performed on a total of n TBMs. In addition, the backtracking device extracts the decoding information from the second TBM before completing the storage of the data in the first TBM.

상기 실시예는 상기 도 7의 역추적 메모리에 적용할 수 있다. 먼저 (n+1)*N 클럭 동안 n+1개의 TBM에 데이터가 저장이 된 이후, TBMn +2에 데이터를 저장하면서 TMB2 내지 TBMn +1에서 역추적을 시작한다. 그리고, TBMn +2 에 데이터의 저장이 완료되기 전에 TBM1으로부터 복호 정보를 추출한다. TMBn +2에 데이터의 저장이 완료되면, 다음 N클럭 동안 메모리는 TBM1으로 저장공간을 옮겨 데이터의 저장을 시작한다. 바로 이전 N클럭 동안 TBMn +2에서 데이터가 저장되는 동안 TBM1에서 복호 정보를 추출하였으므로, 복호 정보가 추출된 TBM1에서 데이터의 저장을 다시 수행하는 것은 메모리를 재사용하는 것이다. The above embodiment can be applied to the backtracking memory of FIG. 7. First to (n + 1) * N clock after the data n + 1 of the TBM is stored for, and, while storing data on the TBM n +2 starting traceback from the TMB to TBM 2 n +1. Decoding information is extracted from TBM 1 before data storage is completed in TBM n +2 . When the data is stored in TMB n +2 , the memory moves to TBM 1 and starts storing data for the next N clocks. Hayeoteumeuro immediately extract the decoded information from the TBM 1 for the previous N is clock data is stored in the TBM n +2 for, performing a storage of the data back from the decoded information extracted TBM 1 to re-use the memory.

동일하게, TMB1에 데이터의 저장이 완료된 후, 다음 N클럭 동안 메모리는 TBM2으로 저장공간을 옮겨 데이터의 저장을 시작한다. 바로 이전 N클럭 동안 TBM1이 저장되는 동안 TBM2에서 복호 정보를 추출하였으므로, TBM2에서 저장을 하는 것은 메모리를 재사용하는 것이다.Similarly, after the storage of data in TMB 1 is completed, the memory transfers the storage space to TBM 2 to start storing data for the next N clocks. Hayeoteumeuro extracts the decoded information from the TBM 2 during the immediately preceding clock is N 1 stored for TBM, The Save in TBM 2 to re-use the memory.

순차적으로, TMB2에 저장이 완료되면 메모리는 TBM3으로 저장공간을 옮겨 저장을 시작한다. 바로 이전 N클럭 동안 TBM2이 저장되는 동안 TBM3에서 복호정보를 추출하였으므로, TBM2에서 저장을 하는 것은 메모리를 재사용하는 것이다.In sequential order, when the storage is completed in TMB 2 , the memory is moved to TBM 3 to start the storage. Decoding information is extracted from TBM 3 while TBM 2 is stored during the previous N clocks, so storing in TBM 2 is reusing the memory.

이 과정을 TMB4, TMB5, …에서도 반복한다. 이와 같이 복호된 메모리에 저장하는 방식으로 메모리를 효율적으로 사용하고, 복호 지연 시간을 줄일 수 있다.This process includes TMB 4 , TMB 5 ,. Repeat on. In this way, the memory can be efficiently used and the decoding delay time can be reduced by storing in the decoded memory.

상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.In the above-described exemplary system, the methods are described on the basis of a flowchart as a series of steps or blocks, but the present invention is not limited to the order of the steps, and some steps may occur in different orders or simultaneously . It will also be understood by those skilled in the art that the steps shown in the flowchart are not exclusive and that other steps may be included or that one or more steps in the flowchart may be deleted without affecting the scope of the invention.

이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The foregoing description is merely illustrative of the technical idea of the present invention, and various changes and modifications may be made by those skilled in the art without departing from the essential characteristics of the present invention. Therefore, the embodiments disclosed in the present invention are intended to illustrate rather than limit the scope of the present invention, and the scope of the technical idea of the present invention is not limited by these embodiments. The protection scope of the present invention should be interpreted by the following claims, and all technical ideas within the equivalent scope should be interpreted as being included in the scope of the present invention.

Claims (20)

통신 시스템에서 데이터를 역추적하는 방법에 있어서,
메모리를 구성하는 복수의 역추적메모리(Trace Back Memory : TBM) 중 하나인 제1 TBM에서 데이터의 저장을 개시하는 단계;
상기 제1 TBM의 이전 TBM부터 앞쪽으로(backward) 미리 설정된 역추적 길이 동안 역추적을 수행하는 단계;
상기 역추적이 수행되는 TBM의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 단계; 및
상기 제1 TBM에서 데이터의 저장이 완료된 후, 상기 복호 정보를 추출한 TBM인 제2 TBM에 데이터의 저장을 개시하는 단계를 포함하는 것을 특징으로 하는 역추적 방법.
In a method for backtracking data in a communication system,
Initiating storage of data in a first TBM, one of a plurality of Trace Back Memorys (TBMs) constituting a memory;
Performing backtracking for a preset backtracking length backward from a previous TBM of the first TBM;
Performing a decoding operation of extracting decoding information of data stored in a previous TBM of the TBM on which the backtracking is performed; And
And after the storage of the data in the first TBM is completed, initiating storage of the data in the second TBM which is the TBM from which the decoding information is extracted.
제 1 항에 있어서,
상기 복수의 TBM의 각각의 크기 또는 개수는 상기 메모리에 생존 경로를 저장하는 시간 및 하나의 TBM에서 역추적을 수행하는 시간을 고려하여 결정되는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
The size or number of each of the plurality of TBMs is determined in consideration of the time of storing a survival path in the memory and the time of performing backtracking in one TBM.
제 1 항에 있어서,
상기 복수의 TBM의 각각의 크기(N)는 상기 역추적 길이(T)를 이용하여,
"N≥T/N+1"을 만족하는 정수 값 중 가장 작은 정수 값으로 결정되는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
Each size N of the plurality of TBMs uses the backtracking length T,
And a smallest integer value among integer values satisfying "N≥T / N + 1".
제 1 항에 있어서,
상기 제2 TBM의 이전 TBM에서 앞쪽으로 상기 역추적 길이 동안 제2 역추적을 수행하는 단계를 더 포함하는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
And performing a second backtrace during the backtracking length forward from the previous TBM of the second TBM.
제 4 항에 있어서,
상기 제2 역추적이 수행되는 구간의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 역추적 방법.
The method of claim 4, wherein
And performing a decoding operation of extracting decoding information of data stored in a previous TBM of a section in which the second traceback is performed.
제 1 항에 있어서,
상기 역추적을 수행하는 단계는;
상기 역추적 길이 및 상기 복수의 TBM 각각의 크기를 기초로 복수의 TBM에서 수행되는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
Performing the backtracking;
And a plurality of TBMs based on the traceback length and the size of each of the plurality of TBMs.
제 1 항에 있어서,
상기 역추적 길이가 상기 제1 TBM의 이전 TBM들의 크기의 총합보다 큰 경우,
상기 역추적을 수행하는 단계는 상기 메모리의 맨 앞부분까지 역추적을 수행한 후 상기 메모리의 끝부분부터 앞쪽으로(backward) 이어서 역추적을 수행하는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
If the traceback length is greater than the sum of the sizes of previous TBMs of the first TBM,
The performing the backtracking may include performing backtracking up to the front of the memory and then performing backward backtracking from the end of the memory.
제 1 항에 있어서,
상기 데이터의 저장을 개시하는 것은 상기 역추적을 수행하는 것과 동시에 수행되는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
Initiating storage of the data is performed simultaneously with performing the backtracking.
제 1 항에 있어서,
상기 데이터의 저장을 개시하는 것은 상기 복호 동작을 수행하는 것과 동시에 수행되는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
Initiating storage of the data is performed simultaneously with performing the decoding operation.
제 1 항에 있어서,
상기 통신 시스템은,
5/6 부호율을 사용하는 무선랜 시스템인 것을 특징으로 하는 역추적 방법.
The method of claim 1,
The communication system,
Backtracking method characterized in that the wireless LAN system using a 5/6 code rate.
제 1 항에 있어서,
상기 데이터의 저장을 개시하는 단계는,
상기 메모리에 저장된 모든 상태의 생존 경로 중 하나의 생존 경로를 선택하고,
상기 모든 상태의 생존 경로를 상기 제1 TBM에 저장하고,
상기 선택된 하나의 생존 경로에 따라서 추적 경로를 포함하는 데이터를 미리 설정된 갱신 타이밍마다 갱신하는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
Initiating the storage of the data,
Select one survival path among all survival paths stored in the memory,
Storing all of the survival paths in the first TBM,
And updating the data including the tracking path at each preset update timing according to the selected one survival path.
제 1 항에 있어서,
상기 데이터의 저장을 개시하는 단계는,
상기 메모리에 저장된 모든 상태의 생존 경로 중 선택된 생존 경로만을 제1 TBM에 저장하고,
상기 선택된 생존 경로에 따라서 미리 설정된 갱신 타이밍마다 상기 역추적 길이 동안 추적 경로를 포함하는 데이터를 갱신하는 것을 특징으로 하는 역추적 방법.
The method of claim 1,
Initiating the storage of the data,
Only the selected survival paths among all the survival paths stored in the memory are stored in the first TBM,
And updating the data including the tracking path during the backtracking length at every preset update timing in accordance with the selected survival path.
메모리를 구성하는 복수의 역추적메모리(TraceBack Memory : TBM) 중 하나인 제1 TBM에서 데이터의 저장을 개시하고, 상기 제1 TBM의 이전 TBM부터 앞쪽으로 미리 정해진 역추적 길이 동안 역추적을 수행하고, 상기 역추적이 수행되는 TBM 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하고, 상기 제1 TBM에서 데이터의 저장이 완료된 후 상기 복호 정보를 추출한 TBM인 제2 TBM에 데이터의 저장을 개시하는 역추적 부를 포함하는 역추적 장치.Initiate storage of data in the first TBM, one of a plurality of TraceBack Memory (TBMs) constituting the memory, and perform backtracking for a predetermined backtracking length forward from the previous TBM of the first TBM. And performing decoding operation for extracting decoding information of data stored in the TBM before the backtracking, and storing the data in the second TBM which is the TBM from which the decoding information is extracted after the data is stored in the first TBM. A backtracking device comprising a backtracking portion for initiating. 제 13 항에 있어서,
상기 복수의 TBM의 각각의 크기 또는 개수는 상기 메모리에 생존 경로를 저장하는 시간 및 하나의 TBM에서 역추적을 수행하는 시간을 고려하여 결정되는 것을 특징으로 하는 역추적 장치.
The method of claim 13,
The size or number of each of the plurality of TBMs is determined in consideration of the time to store the survival path in the memory and the time to perform backtracking in one TBM.
제 13 항에 있어서,
상기 역추적부는,
상기 제2 TBM의 이전 TBM에서 앞쪽으로 상기 역추적 길이 동안 제2 역추적을 수행하는 것을 특징으로 하는 역추적 장치.
The method of claim 13,
The backtracking unit,
And performing a second backtrace during the backtracking length forward from the previous TBM of the second TBM.
제 15 항에 있어서,
상기 역추적부는,
상기 제2 역추적이 수행되는 구간의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 것을 특징으로 하는 역추적 장치.
The method of claim 15,
The backtracking unit,
And a decoding operation of extracting decoding information of data stored in a previous TBM of a section in which the second traceback is performed.
부호화된 데이터를 수신하고, 모든 경우의 가지값을 미리 계산하는 가지값 계산부;
상기 계산한 가지값으로 연산을 수행하는 경로선택부; 및
메모리를 구성하는 복수의 역추적메모리(TraceBack Memory : TBM) 중 하나인 제1 TBM에서 상기 경로선택부의 연산을 통하여 선택된 경로를 저장하고, 상기 제1 TBM의 이전 TBM부터 앞쪽으로 미리 정해진 역추적 길이 동안 역추적을 수행하고, 상기 역추적이 수행되는 TBM 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하고, 상기 제1 TBM에서 상기 경로선택부의 연산을 통하여 선택된 경로의 저장이 완료된 후 상기 복호 정보를 추출한 TBM인 제2 TBM에 상기 경로선택부의 연산을 통하여 선택된 또 다른 경로의 저장을 개시하는 역추적 부를 포함하는 비터비 디코더(viterbi decoder).
A branch value calculator which receives the encoded data and calculates branch values in all cases in advance;
A path selector for performing an operation on the calculated branch value; And
Stores the selected path through the operation of the path selector in the first TBM, which is one of a plurality of traceback memories (TBMs) constituting a memory, and has a predetermined backward tracking length forward from the previous TBM of the first TBM. While performing a backtracking operation, performing a decoding operation of extracting decoding information of data stored in a previous TBM of the backtracking TBM, and storing the selected path through the operation of the path selection unit in the first TBM. And a tracer for starting to store another path selected through the operation of the path selector in a second TBM, which is the TBM from which the decoding information is extracted.
제 17 항에 있어서,
역추적된 정보의 순서를 바꿔주는 FILO(First-In-Last-Out) 버퍼부 또는 LIFO(Last-In-First-Out) 버퍼부를 더 포함하는 비터비 디코더.
The method of claim 17,
A Viterbi decoder further comprising a first-in-last-out (FILO) buffer unit or a last-in-first-out (LIFO) buffer unit for changing the order of the traced information.
제 17 항에 있어서,
상기 경로선택부는,
래딕스(Radix)-4를 사용한 병렬 ACS(Add Compare Select)를 포함하는 것을 특징으로 하는 비터비 디코더.
The method of claim 17,
The path selector,
Viterbi decoder comprising parallel Add Compare Select (ACS) using Radix-4.
제 17 항에 있어서,
상기 경로선택부는,
래딕스-16을 사용한 병렬 ACS(Add Compare Select)를 포함하는 것을 특징으로 하는 비터비 디코더.
The method of claim 17,
The path selector,
Viterbi decoder featuring parallel Add Compare Select (ACS) using Radix-16.
KR1020110141121A 2011-12-23 2011-12-23 Apparatus and method of traceback having minimized decoding delay time KR101714009B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110141121A KR101714009B1 (en) 2011-12-23 2011-12-23 Apparatus and method of traceback having minimized decoding delay time

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110141121A KR101714009B1 (en) 2011-12-23 2011-12-23 Apparatus and method of traceback having minimized decoding delay time

Publications (2)

Publication Number Publication Date
KR20130073333A true KR20130073333A (en) 2013-07-03
KR101714009B1 KR101714009B1 (en) 2017-03-10

Family

ID=48987813

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110141121A KR101714009B1 (en) 2011-12-23 2011-12-23 Apparatus and method of traceback having minimized decoding delay time

Country Status (1)

Country Link
KR (1) KR101714009B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069517B2 (en) 2016-07-06 2018-09-04 Samsung Electronics Co., Ltd. Convolutional decoder and method of decoding convolutional codes

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040065841A (en) * 2003-01-16 2004-07-23 엘지전자 주식회사 Operation method for traceback of viterbi decoder
KR20060060755A (en) * 2004-11-30 2006-06-05 엘지전자 주식회사 Apparatus and method for decoding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040065841A (en) * 2003-01-16 2004-07-23 엘지전자 주식회사 Operation method for traceback of viterbi decoder
KR20060060755A (en) * 2004-11-30 2006-06-05 엘지전자 주식회사 Apparatus and method for decoding

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10069517B2 (en) 2016-07-06 2018-09-04 Samsung Electronics Co., Ltd. Convolutional decoder and method of decoding convolutional codes
US10382061B2 (en) 2016-07-06 2019-08-13 Samsung Electronics Co., Ltd. Convolutional decoder and method of decoding convolutional codes

Also Published As

Publication number Publication date
KR101714009B1 (en) 2017-03-10

Similar Documents

Publication Publication Date Title
JP3515720B2 (en) Viterbi decoder
CN101997553B (en) Method and device for decoding convolution code
CN1808912B (en) Error correction decoder
US20070266303A1 (en) Viterbi decoding apparatus and techniques
CN100517984C (en) Unified viterbi/turbo decoder for mobile communication systems
US5878092A (en) Trace-back method and apparatus for use in a viterbi decoder
EP3996285A1 (en) Parallel backtracking in viterbi decoder
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
CN100413217C (en) VCP and ACS circuit for VCP
JP3264855B2 (en) Survivor memory in Viterbi decoder using Torres elimination method
US7840885B2 (en) Distributed ring control circuits for Viterbi traceback
WO2005011129A1 (en) Viterbi decoder
JP2001036418A (en) Viterbi decoder and transmitter
KR101212856B1 (en) Method and apparatus for decoding data in communication system
KR101714009B1 (en) Apparatus and method of traceback having minimized decoding delay time
RU2222105C2 (en) Method and device for detecting maximal likelihood state in decoding device
JP2010206570A (en) Decoding apparatus and decoding method
KR20130081279A (en) Channel decoding method and tail biting convolutional decoder
US20130266096A1 (en) Viterbi decoder for decoding convolutionally encoded data stream
Chandel et al. Viterbi decoder plain sailing design for TCM decoders
JPH05335973A (en) Viterbi decoder and decoder for convolution code
KR100564757B1 (en) Low power Viterbi decoder and trace-back method
JP4633759B2 (en) Viterbi decoder
KR100726171B1 (en) Apparatus and method for viterbi decoding
KR100659777B1 (en) Systolic path memory, path memory using it, and viterbi detector thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20200224

Year of fee payment: 4