KR101714009B1 - 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
KR101714009B1
KR101714009B1 KR1020110141121A KR20110141121A KR101714009B1 KR 101714009 B1 KR101714009 B1 KR 101714009B1 KR 1020110141121 A KR1020110141121 A KR 1020110141121A KR 20110141121 A KR20110141121 A KR 20110141121A KR 101714009 B1 KR101714009 B1 KR 101714009B1
Authority
KR
South Korea
Prior art keywords
tbm
data
backtracking
memory
previous
Prior art date
Application number
KR1020110141121A
Other languages
Korean (ko)
Other versions
KR20130073333A (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

Landscapes

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

Abstract

통신 시스템에서 데이터를 역추적하는 방법 및 장치가 제공된다. 이 방법은 메모리를 구성하는 복수의 역추적메모리(Trace Back Memory : TBM) 중 하나인 제1 TBM에서 데이터의 저장을 개시하는 단계, 상기 제1 TBM의 이전 TBM부터 앞쪽으로(backward) 미리 설정된 역추적 길이 동안 역추적을 수행하는 단계, 상기 역추적이 수행되는 TBM의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 단계 및 상기 제1 TBM에서 데이터의 저장이 완료된 후, 상기 복호 정보를 추출한 TBM인 제2 TBM에 데이터의 저장을 개시하는 단계를 포함한다. 본 발명에 따르면, 비터비 복호기를 사용하는 시스템에서 역추적에 필요한 메모리를 최적으로 구성하여, 많은 연산량을 사용하지 않으면서 최소한의 메모리를 사용할 수 있으며 복호 지연 시간을 최소화 할 수 있다.A method and apparatus are provided for backtracking data in a communication system. The method comprises the steps of initiating storage of data in a first TBM which is one of a plurality of trace back memories (TBMs) constituting a memory, a step of backwardly presetting the previous TBM of the first TBM Performing reverse tracking during a tracking length, performing a decoding operation to extract decoding information of data stored in a previous TBM of a TBM in which backtracking is performed, and after decoding of data is completed in the first TBM, And starting to store the data in the second TBM which is the TBM from which the information is extracted. According to the present invention, in a system using a Viterbi decoder, a memory required for backtracking is optimally configured, a minimum memory can be used without using a large amount of computation, and a decoding delay time can be minimized.

Description

최소화된 복호 지연 시간을 갖는 역추적 장치 및 방법{APPARATUS AND METHOD OF TRACEBACK HAVING MINIMIZED DECODING DELAY TIME}[0001] APPARATUS AND METHOD OF TRACEBACK HAVING MINIMIZED DECODING DELAY TIME [0002]

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

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

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

컨볼루션 부호기를 사용하여 데이터를 전송하는 무선 통신 시스템은 비터비복호기를 사용하여 복원한다. 유사한 복호열을 찾아내기 위하여, 무선 통신 시스템은 수신된 정보를 이용하여 진행되는 여러 상태에서 선택된 데이터를 저장하는 메모리를 갖는다. 이러한 메모리는 일정한 시간 동안에 추적이 이루어지게 되므로 정보를 저장한다. A wireless communication system for transmitting data using a convolutional encoder is restored using a Viterbi decoder. In order to find a similar decoding row, the wireless communication system has a memory that stores selected data in various states going on using the 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 information storage and extraction operations are performed in several memories in consideration of time efficiency. It is also possible to use a method to update the information of all data every hour to use minimum memory, but this requires too much computation. In addition, there is a method of performing backward tracking and decoding while advancing backward tracking and decoding of backward tracking while writing to a shift register and shifting memory in the opposite direction, but there is an inconvenience that a memory must be shifted for backward tracking.

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

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

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

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

본 발명의 일 양태에 따르면, 통신 시스템에서 데이터를 역추적하는 방법은 메모리를 구성하는 복수의 역추적메모리(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 back trace memories (TBMs) constituting a memory, Performing backward tracking for a predetermined backward trace length backward from the previous TBM of the first TBM, performing decoding operation for extracting decoding information of data stored in the previous TBM of the backward tracking TBM And starting to store 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.

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

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

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

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

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

상기 역추적 길이가 상기 제1 TBM의 이전 TBM들의 크기의 총합보다 큰 경우, 상기 역추적을 수행하는 단계는 상기 메모리의 맨앞부분까지 역추적을 수행한 후 상기 메모리의 끝부분부터 앞쪽으로(backward) 이어서 역추적을 수행할 수 있다.Wherein if the backtrack length is greater than the sum of the sizes of previous TBMs of the first TBM, performing the backtracking comprises traversing back to the beginning of the memory and then backward from the end of the memory ) Followed by backtracking.

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

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

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

상기 데이터의 저장을 개시하는 단계는 상기 메모리에 저장된 모든 상태의 생존 경로 중 하나의 생존 경로를 선택하고, 상기 모든 상태의 생존 경로를 상기 제1 TBM에 저장하고, 상기 선택된 하나의 생존 경로에 따라서 추적 경로를 포함하는 데이터를 미리 설정된 갱신 타이밍마다 갱신하는 것일 수 있다.Wherein the step of initiating storage of the data comprises selecting a survival path of one of the survival paths of all states stored in the memory, storing the survival path of all the states in the first TBM, And updating the data including the tracking path every predetermined update timing.

상기 데이터의 저장을 개시하는 단계는 상기 메모리에 저장된 모든 상태의 생존 경로 중 선택된 생존 경로만을 제1 TBM에 저장하고, 상기 선택된 생존 경로에 따라서 미리 설정된 갱신 타이밍마다 상기 역추적 길이 동안 추적 경로를 포함하는 데이터를 갱신하는 것 일 수 있다.Wherein the step of starting the storage of the data includes storing only a survival path selected from surviving paths of all states stored in the memory in the first TBM, To update the 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 apparatus starts storing data in a first TBM, which is one of a plurality of back trace memories (TBMs) constituting a memory, And performing a decoding operation to extract decoding information of the stored data from the TBM previous TBM in which the backward tracking is performed, and after decoding of the data is completed in the first TBM, And a back trace unit for starting to store 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 includes a branch value calculator for receiving coded data and preliminarily calculating branch values in all cases, a path selector for performing operations with the calculated branch value, and a memory (TBM), which is one of a plurality of traceback memories (TBMs), through a calculation of the path selection unit, Performs a decoding operation of extracting decoding information of stored data from the TBM previous TBM in which the backward tracking is performed, and after storing the selected path through the operation of the path selecting unit in the first TBM, And a back tracking unit for starting storage of another path selected through the operation of the path selecting unit in the second TBM that is the extracted TBM.

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

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

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

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

또한, 본 발명에 따르면, 메모리에 기록을 하는 동시에 동일한 클락 속도로 역추적을 진행할 수 있으며, 메모리를 시프트하지 않고 메모리의 내용을 토대로 이전 상태 정보를 알아내어 역추적을 진행할 수 있다.In addition, according to the present invention, it is possible to perform back-tracking at the same clock rate while writing in the memory, and reverse state tracking can be performed by obtaining 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 showing an example of a method of 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.
Fig. 3 relates to a ladix-4 structure to which the present invention is applied.
Fig. 4 relates to a ladix-16 structure to which the present invention is applied.
FIG. 5 shows an example of storing the survival path value, performing backward tracking, and outputting decoded data.
6 shows an example of a backtrace memory to which the present invention is applied.
FIG. 7 shows an example of a backtrace memory to which the backtracking method according to the present invention is applied.
8 is a flowchart illustrating an operation of a backtracking apparatus for performing backtracking 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 can easily carry out the present invention. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. 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 showing an example of a method of 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 generating polynomial from the transmitting end of the system (S100).

수신단에 포함된 복호기(예를 들면, 비터비 복호기)는 수신한 데이터를 생성다항식을 근거로 가능한 모든 경로 중에서 최적의 경로를 선택하고(S105), 미리 설정된 일정한 크기 이상 최적 경로 정보를 모든 상태(state)에서 계산하고(S110), 역추적을 통해 그 중 하나를 선택하여 데이터를 복원한다(S115). The decoder (for example, a Viterbi decoder) included in the receiver selects an optimal path from among all possible paths based on the generated polynomial (S105) state (S110), and one of them is selected through backtracking to restore the data (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) A first-in-last-out (FILO) buffer unit or a Last-In-First-Out (LIFO) buffer unit for changing the order of the traced back information. In addition, it may further include a backtrace memory in which backtracking is performed.

가지값 계산부는 부호화된 데이터를 수신하고, 모든 경우의 가지값을 미리 계산한다. 입력되는 데이터의 수에 따라 계산되는 경우의 가지값이 달라진다. 일 예로, 입력 되는 부호화된 데이터가 k개 인경우, 2k개의 가지값을 계산한다. 즉, 입력 되는 부호화된 데이터가 4개 인 경우, 총 16(24)개의 가지값이 계산된다. The branch value calculator receives the encoded data and precomputes branch values in all cases. The branch value in the case of being calculated according to the number of data to be input is changed. For example, if k pieces of coded data to be input are k, 2 k different values are calculated. That is, when there are four coded data to be input, 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 selection unit performs an operation on the calculated value and may include an ACS (Add Compare Select) unit. 4 or a radix-16 structure as shown in FIG. 3 or FIG. If the constraint length is C, the operation is performed on 2 C-1 states. If the constraint length is C, the state of the previous state The branch value is added to the path value of the previous state and compared and selected for every branch that can be in the current state.

상기 비교 및 선택된 값이 역추적 메모리에서 현재 상태의 경로값으로 갱신된다. 현재 상태는 2C-1 개의 경우의 수가 있고, 각 상태는 입력에 따라 매번 갱신이 된다. 갱신되는 상태를 현재 상태라고 하면 현재 상태로 갱신이 가능한 이전 상태의 경로값과 그 이전 상태에서 현재 상태로 오는 가지값을 더한 결과를 모든 가능한 이전 상태에 대해 각각 구하고 이를 비교하여 그 중 최소값을 선택한다. 선택된 최소값을 현재 상태의 경로값으로 갱신된다.The comparison and the selected value are updated with the path value in the current state in the backtrace 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 updated state is called the current state, the result of adding 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 is obtained for every possible previous state, do. The selected minimum value is updated to the current path value.

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

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

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

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

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

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

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

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

도 5는 생존 경로값을 저장하여 역추적을 수행하고 복호데이터를 출력하는 것의 일 예를 나타낸 것이다. FIG. 5 shows an example of storing the survival path value, performing backward tracking, and outputting decoded data.

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

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

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

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

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

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

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

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

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

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

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

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

하나의 TBM에 대하여 경로 정보의 갱신이 완료되면, 다음 TBM에 대하여 동일한 방식으로 경로 정보를 갱신한다. 다음 TBM에 대한 갱신 동작 수행중에는 이전 TBM은 더 이상 갱신 동작을 하지 않는다. 즉, 매 시점 하나의 TBM에 대해서만 갱신 동작이 모든 상태에 대해 이루어진다.When updating of the path information is completed for one TBM, the path information is updated in the same manner for the next TBM. During the update operation for the next TBM, the previous TBM no longer performs the update operation. That is, an 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 traceback memory of Figure 7 is (a TBM of size (N)) * (1-C 2) * (n + 2), T is an n * N, which (T * 2 C- 1 ) + (the 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 taken to store the data in one TBM is at least N clocks and the back-tracking is performed in another TBM during the N clock which is written (WR) to the TBM The path information is updated on one clock and the next TBM is read.

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

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

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

Figure 112011102771835-pat00001
Figure 112011102771835-pat00001

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

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

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

상기 수학식 1에서 역추적 길이(T)를 90으로 하는 경우 TBM의 크기(N)는 10이 최소값이다. 즉, N이 10일 때, 상기 수학식 1의 조건을 만족하면서 최소의 총 메모리 크기와 최소의 지연시간을 갖는다. In Equation (1), when the trailing length (T) is 90, the size (N) of the TBM is the minimum value of 10. That is, when N is 10, it satisfies the condition of Equation (1) and has a minimum total memory size and 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 tracing back 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 constant is used. (N) is 10 and the total memory size is 11 * 2 C-1 * (10 + 2) since the size of N * n must be greater than or equal to 100, to be.

만약, T는 100이고 N이 12라면, 역추적을 위한 TBM의 개수(n)에 대하여 근접 정수를 사용하는 경우 n은 9이므로 총 메모리의 크기는 12*2C-1*(9+2) 이다. If T is 100 and N is 12, if n is an integer, 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, if n is an integer, 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인 경우 보다 적은 하드웨어를 사용하므로 유리할 수 있다.Here, when N is 11 and N is 12, the total memory size is the same. When N is 13, the total memory size is smaller than when N is 11 or 12. However, the memory update of TBM may be advantageous because the N is 11, since N is 12 or 13, which uses less hardware.

도 8은 본 발명에 따라서 도 7의 역추적 메모리에서 역추적을 수행하는 역추적 장치의 동작을 나타낸 순서도이다. 역추적 장치는 역추적 메모리에 데이터가 저장되어 있는 경우, 저장된 데이터를 복호한 후 메모리를 재사용하여, 복호 지연을 감소시키고 메모리를 효율적으로 재사용한다.8 is a flowchart illustrating an operation of a backtracking apparatus for performing backtracking in the backtracking memory of FIG. 7 according to the present invention. When the data is stored in the backtrace memory, the backtracking device reuses the memory after decoding the stored data, 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 backtrace memory (S800). Simultaneously or immediately thereafter, backtracking is performed in the previous TBM of the first TBM (S805). Tracebacks may be performed in a plurality of TBMs depending on the size (N) of the TBM and the value of the traceback length (T). If the traceback length is greater than the size of the previous TBM of the first TBM, backtracking continues from the end of the traceback memory backwards.

역추적이 수행된 동시 또는 직후에, 상기 역추적이 수행되는 TBM 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행한다(S810). 즉, 데이터의 저장되는 동시(또는 직후)에 역추적 및 복호 동작이 서로 다른 TBM에서 수행된다.Simultaneously with or immediately after the backtracking is performed, a decoding operation of extracting decoding information of the stored data at the TBM previous TBM in which the backward tracking is performed is performed (S810). That is, back-tracking 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 backtracking device continuously tries to perform the backtracking (S815), the storage of data is started in the next TBM (second TBM) of the first TBM (S820). The second TBM may be a TBM that extracts decoding information in a previous traceback operation. That is, the data is stored in the memory that has been decoded in the previous traceback operation. Since the data is obtained through decoding, it can be reused as a memory for storing data.

이전 역추적 동작과 같이, 상기 제2 TBM의 이전 TBM에서 역추적을 수행하며, 역추적은 역추적 길이(T) 값에 따라서 복수의 TBM에서 수행될 수 있다. 만약, 상기 제1 TBM의 이전 TBM의 크기가 역추적 길이보다 작은 경우, 역추적 메모리의 끝부분부터 계속해서 역추적을 수행한다.As with the previous traceback operation, backtracking is performed in the previous TBM of the second TBM, and backtracking may be performed in a 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 tracing length, tracing continues from the end of the tracing memory.

이전 역추적 동작에서 데이터를 저장하였던 TBM 부터 시작하여 역추적 길이에 해당하는 크기만큼 역추적을 수행한다. 또한, 역추적이 수행되는 구간의 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행한다. 복호동작을 수행하는 TBM은 이전 역추적 동작에서 역추적을 수행하는 복수의 TBM 중 역추적이 진행되는 마지막 TBM이다.In the previous traceback operation, backtracking is performed by the amount corresponding to the traceback length starting from the TBM in which the data was stored. In addition, a decoding operation is performed to extract decoding information of the stored data in the previous TBM of the section in which the backward tracking is performed. The TBM for performing the decoding operation is the last TBM among the plurality of TBMs performing backward tracking in the previous backward tracking 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 에서 복호 정보를 추출한다. 복호와 데이터의 저장 및 역추적을 동시에 수행하기 때문에 지연이 감소된다.For example, assuming that the backtrace memory is composed of a total of n + 2 TBMs, the backtracking device starts storing data in the (n + 2) th TBM. The storage of the 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 the (n + 1) th TBM, which is a plurality of TBMs before the (n + 2) th TBM. Tracking is performed on a total of n TBMs, and the magnitude of the product of each TBM size (N) and the number of TBMs (n) is equal to or longer than the reverse tracking length (T). The backtracking device extracts the decoding information from the first TBM before completing the storage of data in the (n + 2) th TBM. Delay is reduced because it performs decoding and storing and backtracking of data at the same time.

역추적을 계속 진행하려는 경우, 상기 n+2번째 TBM에서 데이터의 저장이 완료된 후, 복호 정보를 추출하였던 상기 1번째 TBM에서 데이터의 저장을 개시한다. 동시에(또는 데이터의 저장 개시 이후) 3번째 TBM 내지 n+2번째 TBM에서 역추적을 수행한다. 역시, 총 n개의 TBM에서 역추적을 수행한다. 또한, 역추적 장치는 상기 1 번째 TBM에서 데이터의 저장을 완료하기 전에 2번째 TBM 에서 복호 정보를 추출한다. In order to continue tracing back, after the storage of data in the (n + 2) th TBM is completed, the first TBM from which the decoding information is extracted starts to store data. At the same time (or after the start of storage of data), backtracking is performed in the third TBM to the (n + 2) th TBM. Again, traceback is performed on a total of n TBMs. Further, 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 backward tracking memory of FIG. First, after data is stored in n + 1 TBMs during (n + 1) * N clocks, data is stored in TBM n + 2 and back tracking is started in TMB 2 to TBM n +1 . Then, decoding information is extracted from TBM 1 before the data is stored in TBM n + 2 . When the data is stored in TMB n + 2 , the memory moves the storage space to TBM 1 for the next N clocks and starts storing the data. 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에서 저장을 하는 것은 메모리를 재사용하는 것이다.In the same way, after the data is stored in TMB 1 , the memory moves the storage space to TBM 2 for the next N clocks and starts storing the data. 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에서 저장을 하는 것은 메모리를 재사용하는 것이다.Sequentially, when the storage is completed in TMB 2 , the memory moves to the TBM 3 and starts storing. Hayeoteumeuro extracts the decoded information from the TBM 3 during the immediately preceding clock TBM N 2 for storage, it is stored in that the TBM 2 to re-use the memory.

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

상술한 예시적인 시스템에서, 방법들은 일련의 단계 또는 블록으로써 순서도를 기초로 설명되고 있지만, 본 발명은 단계들의 순서에 한정되는 것은 아니며, 어떤 단계는 상술한 바와 다른 단계와 다른 순서로 또는 동시에 발생할 수 있다. 또한, 당업자라면 순서도에 나타낸 단계들이 배타적이지 않고, 다른 단계가 포함되거나 순서도의 하나 또는 그 이상의 단계가 본 발명의 범위에 영향을 미치지 않고 삭제될 수 있음을 이해할 수 있을 것이다.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 . 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 scope of protection of the present invention should be construed according to the following claims, and all technical ideas within the scope of equivalents should be construed as falling within the scope of the present invention.

Claims (20)

통신 시스템에서 데이터를 역추적하는 방법에 있어서,
메모리를 구성하는 복수의 역추적메모리(Trace Back Memory : TBM) 중 하나인 제1 TBM에서 데이터의 저장을 개시하는 단계;
상기 제1 TBM의 이전 TBM부터 앞쪽으로(backward) 미리 설정된 역추적 길이 동안 역추적을 수행하는 단계;
상기 역추적이 수행되는 구간의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 단계; 및
상기 제1 TBM에서 데이터의 저장이 완료된 후, 상기 복호 정보를 추출한 TBM인 제2 TBM에 데이터의 저장을 개시하는 단계를 포함하는 것을 특징으로 하는 역추적 방법.
A method for backtracking data in a communication system,
Initiating storage of data in a first TBM which is one of a plurality of trace back memories (TBMs) constituting a memory;
Performing backtracking for a predetermined backtrack length backward from a previous TBM of the first TBM;
Performing a decoding operation to extract decoding information of data stored in a previous TBM of an interval in which the backward tracking is performed; And
And after the storage of the data in the first TBM is completed, starting to store data in the second TBM, which is the TBM from which the decoding information is extracted.
제 1 항에 있어서,
상기 복수의 TBM의 각각의 크기 또는 개수는 상기 메모리에 상기 데이터를 저장하는 시간 및 하나의 TBM에서 역추적을 수행하는 시간을 고려하여 결정되는 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
Wherein the size or the number of each of the plurality of TBMs is determined in consideration of a time for storing the data in the memory and a time for performing backtracking in one TBM.
제 1 항에 있어서,
상기 복수의 TBM의 각각의 크기(N)는 상기 역추적 길이(T)를 이용하여,
"N≥T/N+1"을 만족하는 정수 값 중 가장 작은 정수 값으로 결정되는 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
The size (N) of each of the plurality of TBMs is calculated using the backtrack length (T)
Quot; N > / N + 1 ".
제 1 항에 있어서,
상기 제2 TBM의 이전 TBM에서 앞쪽으로 상기 역추적 길이 동안 제2 역추적을 수행하는 단계를 더 포함하는 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
Further comprising performing a second traceback during the traceback length forward from a previous TBM of the second TBM.
제 4 항에 있어서,
상기 제2 역추적이 수행되는 구간의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 단계를 더 포함하는 것을 특징으로 하는 역추적 방법.
5. The method of claim 4,
Further comprising performing a decoding operation of extracting decoding information of data stored in a previous TBM of an interval in which the second backtrace is performed.
제 1 항에 있어서,
상기 역추적을 수행하는 단계는;
상기 역추적 길이 및 상기 복수의 TBM 각각의 크기를 기초로 복수의 TBM에서 수행되는 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
Wherein performing the backtrace comprises:
Wherein the backtracking is performed in a plurality of TBMs based on the backtrack length and the size of each of the plurality of TBMs.
제 1 항에 있어서,
상기 역추적 길이가 상기 제1 TBM의 이전 TBM들의 크기의 총합보다 큰 경우,
상기 역추적을 수행하는 단계는 상기 메모리의 맨 앞부분까지 역추적을 수행한 후 상기 메모리의 끝부분부터 앞쪽으로(backward) 이어서 역추적을 수행하는 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
If the traceback length is greater than the sum of the sizes of the previous TBMs of the first TBM,
Wherein the step of backtracking comprises performing a backtracking to the beginning of the memory and then backtracking from the end of the memory backward.
제 1 항에 있어서,
상기 제1 TBM에서 데이터의 저장을 개시하는 것은 상기 역추적을 수행하는 것과 동시에 수행되는 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
Wherein initiating storage of data in the first TBM is performed concurrently with performing the backtracking.
제 1 항에 있어서,
상기 제1 TBM에서 데이터의 저장을 개시하는 것은 상기 복호 동작을 수행하는 것과 동시에 수행되는 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
Wherein starting to store data in the first TBM is performed at the same time as performing the decoding operation.
제 1 항에 있어서,
상기 통신 시스템은,
5/6 부호율을 사용하는 무선랜 시스템인 것을 특징으로 하는 역추적 방법.
The method according to claim 1,
The communication system includes:
Wherein the wireless LAN system uses a 5/6 code rate.
삭제delete 삭제delete 메모리를 구성하는 복수의 역추적메모리(TraceBack Memory : TBM) 중 하나인 제1 TBM에서 데이터의 저장을 개시하고, 상기 제1 TBM의 이전 TBM부터 앞쪽으로 미리 정해진 역추적 길이 동안 역추적을 수행하고, 상기 역추적이 수행되는 구간의 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하고, 상기 제1 TBM에서 데이터의 저장이 완료된 후 상기 복호 정보를 추출한 TBM인 제2 TBM에 데이터의 저장을 개시하는 역추적 부를 포함하는 역추적 장치.A first TBM, which is one of a plurality of back trace memories (TBMs) constituting a memory, and performs back trace for a predetermined back trace length from the previous TBM of the first TBM A decoding operation of extracting decoding information of the stored data from the previous TBM of the section in which the backward tracking is performed is performed, and a second TBM, which is the TBM in which the decoding information is extracted after the data is stored in the first TBM, And a back trace section for starting storage. 제 13 항에 있어서,
상기 복수의 TBM의 각각의 크기 또는 개수는 상기 메모리에 상기 데이터를 저장하는 시간 및 하나의 TBM에서 역추적을 수행하는 시간을 고려하여 결정되는 것을 특징으로 하는 역추적 장치.
14. The method of claim 13,
Wherein the size or number of each of the plurality of TBMs is determined in consideration of a time for storing the data in the memory and a time for performing backtracking in one TBM.
제 13 항에 있어서,
상기 역추적부는,
상기 제2 TBM의 이전 TBM에서 앞쪽으로 상기 역추적 길이 동안 제2 역추적을 수행하는 것을 특징으로 하는 역추적 장치.
14. The method of claim 13,
The back-
And performs a second backtrace during the backtracking length forward in a previous TBM of the second TBM.
제 15 항에 있어서,
상기 역추적부는,
상기 제2 역추적이 수행되는 구간의 이전 TBM에 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하는 것을 특징으로 하는 역추적 장치.
16. The method of claim 15,
The back-
And performs a decoding operation of extracting decoding information of data stored in a previous TBM of a section in which the second backtrace is performed.
부호화된 데이터를 수신하고, 모든 경우의 가지값을 미리 계산하는 가지값 계산부;
상기 계산한 가지값으로 연산을 수행하는 경로선택부; 및
메모리를 구성하는 복수의 역추적메모리(TraceBack Memory : TBM) 중 하나인 제1 TBM에서 상기 경로선택부의 연산을 통하여 선택된 경로를 저장하고, 상기 제1 TBM의 이전 TBM부터 앞쪽으로 미리 정해진 역추적 길이 동안 역추적을 수행하고, 상기 역추적이 수행되는 구간의 이전 TBM에서 저장된 데이터의 복호 정보를 추출하는 복호 동작을 수행하고, 상기 제1 TBM에서 상기 경로선택부의 연산을 통하여 선택된 경로의 저장이 완료된 후 상기 복호 정보를 추출한 TBM인 제2 TBM에 상기 경로선택부의 연산을 통하여 선택된 또 다른 경로의 저장을 개시하는 역추적 부를 포함하는 비터비 디코더(viterbi decoder).
A branch value calculation unit for receiving the coded data and preliminarily calculating branch values in all cases;
A path selector for performing an operation on the calculated value; And
A first TBM, which is one of a plurality of back trace memories (TBMs) constituting a memory, stores a selected path through an operation of the path selecting unit, and stores a predetermined back trace length from the previous TBM of the first TBM Performing a backward tracking while performing a backward tracking and performing a decoding operation of extracting decoding information of stored data in a previous TBM of a section in which the backward tracking is performed, And a backtrace unit for starting storage of another path selected through the operation of the path selection unit in a second TBM that is a TBM from which the decoding information is extracted.
제 17 항에 있어서,
역추적된 정보의 순서를 바꿔주는 FILO(First-In-Last-Out) 버퍼부 또는 LIFO(Last-In-First-Out) 버퍼부를 더 포함하는 비터비 디코더.
18. The method of claim 17,
A first-in-last-out (FILO) buffer unit or a last-in-first-out (LIFO) buffer unit for changing the order of the traced back information.
제 17 항에 있어서,
상기 경로선택부는,
래딕스(Radix)-4를 사용한 병렬 ACS(Add Compare Select)를 포함하는 것을 특징으로 하는 비터비 디코더.
18. The method of claim 17,
Wherein the path selecting unit comprises:
And a parallel ACS (Add Compare Select) using Radix-4.
제 17 항에 있어서,
상기 경로선택부는,
래딕스-16을 사용한 병렬 ACS(Add Compare Select)를 포함하는 것을 특징으로 하는 비터비 디코더.
18. The method of claim 17,
Wherein the path selecting unit comprises:
And a parallel ACS (Add Compare Select) using the 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 KR20130073333A (en) 2013-07-03
KR101714009B1 true 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)

Families Citing this family (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

Family Cites Families (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
KR100686170B1 (en) * 2004-11-30 2007-02-23 엘지전자 주식회사 Apparatus and Method for Decoding

Also Published As

Publication number Publication date
KR20130073333A (en) 2013-07-03

Similar Documents

Publication Publication Date Title
CN101997553B (en) Method and device for decoding convolution code
JP3515720B2 (en) Viterbi decoder
US20070266303A1 (en) Viterbi decoding apparatus and techniques
EP3996285A1 (en) Parallel backtracking in viterbi decoder
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
JP3264855B2 (en) Survivor memory in Viterbi decoder using Torres elimination method
US7840885B2 (en) Distributed ring control circuits for Viterbi traceback
US20060245526A1 (en) Apparatus and method for Viterbi decoding
KR101714009B1 (en) Apparatus and method of traceback having minimized decoding delay time
KR101212856B1 (en) Method and apparatus for decoding data in communication system
RU2222105C2 (en) Method and device for detecting maximal likelihood state in decoding device
JP2010206570A (en) Decoding apparatus and decoding method
KR100262303B1 (en) Survivor path trace back method in decoding with viterbi algorithm and apparatus thereof
US6578119B2 (en) Method and device for memory management in digital data transfer
US20130266096A1 (en) Viterbi decoder for decoding convolutionally encoded data stream
KR100659777B1 (en) Systolic path memory, path memory using it, and viterbi detector thereof
JPH05335973A (en) Viterbi decoder and decoder for convolution code
JP3235333B2 (en) Viterbi decoding method and Viterbi decoding device
KR100564757B1 (en) Low power Viterbi decoder and trace-back method
JP4633759B2 (en) Viterbi decoder
KR20000049852A (en) Viterbi decoder
KR20070098201A (en) Parallel viterbi decoder
TWI394378B (en) Viterbi decoder and writing and reading method
KR0183115B1 (en) Control circuit of path memory of viterbi decoder
KR100726170B1 (en) Apparatus and method for viterbi decoding

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