KR20040092783A - Trellis decoder using viterbi algorithm and grouping method of the same - Google Patents

Trellis decoder using viterbi algorithm and grouping method of the same Download PDF

Info

Publication number
KR20040092783A
KR20040092783A KR1020030027095A KR20030027095A KR20040092783A KR 20040092783 A KR20040092783 A KR 20040092783A KR 1020030027095 A KR1020030027095 A KR 1020030027095A KR 20030027095 A KR20030027095 A KR 20030027095A KR 20040092783 A KR20040092783 A KR 20040092783A
Authority
KR
South Korea
Prior art keywords
memory
state
metric
trellis decoder
viterbi algorithm
Prior art date
Application number
KR1020030027095A
Other languages
Korean (ko)
Inventor
김선영
Original Assignee
매그나칩 반도체 유한회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 매그나칩 반도체 유한회사 filed Critical 매그나칩 반도체 유한회사
Priority to KR1020030027095A priority Critical patent/KR20040092783A/en
Publication of KR20040092783A publication Critical patent/KR20040092783A/en

Links

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/25Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM]
    • H03M13/256Error detection or forward error correction by signal space coding, i.e. adding redundancy in the signal constellation, e.g. Trellis Coded Modulation [TCM] with trellis coding, e.g. with convolutional codes and TCM
    • 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/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

PURPOSE: A trellis decoder using a Viterbi algorithm and a method for grouping a state thereof are provided to reduce a total chip size and improve a degree of integration by reducing an area between a path metric memory and an adder/comparator/selector. CONSTITUTION: A memory bank is divided into plural memory banks. The divided memory banks are used for grouping path metrics provided from an adder/comparator/selector. A switch is arrayed between the adder/comparator/selector and the bank memory in order to connect the adder/comparator/selector to the bank memory.

Description

비터비 알고리즘을 이용한 트렐리스 디코더와 그의 스테이트 그룹핑 방법{TRELLIS DECODER USING VITERBI ALGORITHM AND GROUPING METHOD OF THE SAME}TRELLIS DECODER USING VITERBI ALGORITHM AND GROUPING METHOD OF THE SAME}

본 발명은 비터비 디코더(Viterbi decoder)에 관한 것으로, 특히 비터비 디코더의 연결 면적을 줄이기 위한 경로 메트릭 메모리(Path metric memory)의 관리 방법에 관한 것이다.The present invention relates to a Viterbi decoder, and more particularly, to a method of managing a path metric memory for reducing the connection area of a Viterbi decoder.

통신 시스템의 일차적인 목적인 정확한 정보의 전달을 위한 채널 코딩(Channel coding)은 디지털 통신 시스템(Digital communication system)에서 주요한 연구의 대상이다. 디지털 통신 시스템은 채널 용량 한계의 극복과 정보의 신뢰성을 보장하기 위하여 각각 아날로그 신호를 이산화하는 소스 코딩(Source coding)과 채널 상의 에러를 정정하기 위해 채널 코딩(Channel coding)의 과정을 거쳐 데이터를 전송한다.Channel coding, which is the primary purpose of a communication system, for accurate information transfer is a major research subject in a digital communication system. Digital communication systems transmit data through source coding for discretizing analog signals and channel coding to correct errors on the channel, respectively, in order to overcome channel capacity limitations and ensure information reliability. do.

채널 부호화는 블럭 코드(Block code)와 콘볼루션 코드(Convolutional code 또는 길쌈 부호)로 크게 나누어지며, 블럭 코드는 선형 코드(Linear code)와 순환 코드(Cyclic code)로 분리된다.Channel coding is largely divided into a block code and a convolutional code, and the block code is divided into a linear code and a cyclic code.

블럭 코드와 콘볼루션 코드에 대한 근본적인 차이는 기억장치의 유무에 있다. 블록부호의 부호기는 k비트의 정보를 n비트의 부호어(codeword)로 만들어 내는 무기억장치인 반면에, 콘볼루션 부호의 부호기는 출력 계열의 현재의 입력 뿐만 아니라 과거의 입력계열에 의해서도 결정되므로 기억이 있는 장치로 간주된다.The fundamental difference between block code and convolutional code is the presence of storage. The coder of the block code is an inorganic memory that generates k-bit information into an n-bit codeword, whereas the coder of the convolution code is determined not only by the current input of the output series but also by the past input sequence. It is considered a device with memory.

블럭 코딩에 비하여 에러 정정 효율이 우수한 콘볼루션 코딩이 주로 사용되고 있다. 콘볼루션 코딩은 디코딩시에 많은 양의 메모리를 필요로하며 디코딩 지연이 발생하기 때문에 실시간 처리가 가능한 디코딩 알고리즘이 필요하게 되었다.Convolutional coding, which has better error correction efficiency than block coding, is mainly used. Convolutional coding requires a large amount of memory during decoding and a decoding delay occurs, which requires a decoding algorithm capable of real-time processing.

이에 콘볼루션 코딩의 최대 유사 디코딩 알고리즘인 비터비 알고리즘이 제안되었다.The Viterbi algorithm, which is the maximum likelihood decoding algorithm of convolutional coding, has been proposed.

비터비 알고리즘은 최대 근사 복호(Maximum likelihood decoding)를 수행하고 트렐리스 도(Trellis diagram)를 사용하여 필요한 계산량을 줄이는 알고리즘이다. 이 알고리즘은 각 상태에 입력되는 경로들과 수신 신호와의 유사성 비교를 통해서 한 스테이트(State)에 하나의 생존 경로(Survivor path) 만을 존재하게 한다. 이러한 과정은 트렐리스 도의 시간에 따른 각 단에서 반복된다. 따라서, 비터비 알고리즘이 요구하는 계산량은 전송 부호열의 길이에 좌우되는 것이 아나라 상태 수(State number)에 의해 의존하게 된다.The Viterbi algorithm is an algorithm that performs maximum likelihood decoding and reduces the amount of computation required by using the Trellis diagram. This algorithm allows only one Survivor path to exist in a state by comparing the similarity between the paths input to each state and the received signal. This process is repeated at each stage of the trellis diagram over time. Therefore, the amount of computation required by the Viterbi algorithm does not depend on the length of the transmitted code string, but depends on the state number.

도 1은 비터비 알고리즘을 적용한 트렐리스 디코더의 구성도로서, 트렐리스 디코더는 브랜치 메트릭 계산부(11, Branch Metric Calculation unit; 이하 BMC라 함)와, 가산 비교 선택부(12, Add Compare Selection unit; 이하 ACS라 함), 경로 메트릭 네트워크(13, Path Metric Network; 이하 PMN이라 함) 및 생존자 메모리부(14, Survivor Memory Unit; 이하 SMU라 함)로 구성되어 있다.1 is a block diagram of a trellis decoder to which the Viterbi algorithm is applied. The trellis decoder includes a branch metric calculation unit 11 (hereinafter referred to as BMC) and an add comparison selection unit 12. A selection unit (hereinafter referred to as ACS), a path metric network (hereinafter referred to as PMN) and a survivor memory unit 14 (hereinafter referred to as SMU).

여기서 메트릭(Metric)이란, 수신 신호와 대응하는 브랜치에서의 코드간 거리를 계산한 값으로서, 이 거리가 신호 판별의 기준이 되는 것이다. 메트릭은 경판정(Hard-decision) 복호의 경우에는 해밍 거리(Hamming distance)가 되고, 연판정(Soft-decision)의 경우에는 유클리드 거리(Euclidean distance)가 된다.Here, a metric is a value obtained by calculating a distance between codes in a branch corresponding to a received signal, and this distance serves as a reference for signal discrimination. The metric is a Hamming distance in case of hard-decision decoding, and an Euclidean distance in case of soft-decision.

전술한 브랜치 메트릭 계산부(11)는 수신 심볼을 입력받아 트렐리스 도를 이용하여 각 스테이트를 지나는 경로와 수신심볼 사이의 거리를 계산하고, 그 결과인 브랜치 메트릭(BMt)을 가산 비교 선택부(12)로 제공한다.The above-described branch metric calculation unit 11 receives the received symbol and calculates the distance between the path passing through each state and the received symbol by using the trellis degree, and adds the resultant branch metric BMt to the comparison comparison selection unit. Provided by (12).

상기 가산 비교 선택부(12)는 매 시간 t의 각 스테이트에 입력되는 경로 중에서 최소 경로 메트릭을 갖는 경로를 선택하는 역할을 하는 것으로서, 브랜치 메트릭 계산부(11)로부터 제공된 다수개의 브랜치 메트릭(BMt)과 경로 메트릭 네트워크(13)로부터 제공된 이전 경로 메트릭(PMt-1)을 더하여 가산하고,(이전 경로 메트릭에다가 현재 스테이트에서 머지된 다수개의 브랜치 메트릭을 축척시킴) 현재 스테이지에서의 축적된 다수개의 경로 메트릭을 비교하여, 그 중에서 가장 작은 값을 갖는 경로 메트릭을 선택한다.The addition comparison selecting unit 12 serves to select a path having a minimum path metric among the paths input to each state at each time t, and a plurality of branch metrics BMt provided from the branch metric calculation unit 11. And adds the previous path metric (PMt-1) provided from the path metric network 13 (scaling a number of branch metrics merged in the current state to the previous path metric) and accumulated path metrics at the current stage. Are compared to select the path metric with the smallest value among them.

이렇게 선택된 경로 메트릭을 생존 경로 메트릭이라 하며, 경로 메트릭 네트워크(13)로 제공된다. 그리고, 생존 경로를 트레이스백 알고리즘에 따라 역추적하여 복원 심볼을 찾아내기 정보가 상기 생존자 메모리부(14)로 제공된다.The route metric thus selected is called a surviving route metric and is provided to the route metric network 13. Then, the survivor memory 14 is provided to the survivor memory unit 14 to trace back the survival path according to the traceback algorithm.

경로 메트릭 네트워크(13)는 가산 비교 선택부(12)로부터 출력된 생존자 메트릭을 입력 받아 저장하고 있다가, 다음 단계에서 각 스테이트의 이전 경로 메트릭으로 사용되도록 다시 상기 가산 비교 선택부(12)에게 제공해주는 역할을 한다.The route metric network 13 receives the survivor metric output from the add comparison selector 12 and stores the survivor metric, and then provides the survivor metric to the add comparison selector 12 to be used as a previous route metric for each state in the next step. It plays a role.

생존자 메모리부(14)는 각 스테이트가 갖는 생존 경로를 역추적하여 복원 심볼을 수행하기 위해서 디코딩 깊이(Decoding depth) 만큼 생존 경로 정보를 유지하고 있으면서, 트레이스백 알고리즘에 따라 최종 복원된 심볼을 출력한다.The survivor memory 14 outputs the last reconstructed symbol according to the traceback algorithm while maintaining the survival path information by the decoding depth in order to trace back the survival path of each state and perform the reconstruction symbol. .

이러한 구조를 갖는 종래의 트렐리스 디코더에서 브랜치 메트릭 계산부(11)나 가산 비교 선택부(12)는 트렐리스부호가 갖는 스테이트 수에 따라 하드웨어 양이나 계산량이 증가된다.In the conventional trellis decoder having such a structure, the branch metric calculation unit 11 or the addition comparison selection unit 12 increases the amount of hardware or the amount of calculation according to the number of states of the trellis code.

종래에는 각 스테이트마다 브랜치 메트릭 계산부와 가산 비교 선택부를 하나씩 가지고 있으면서, 각 스테이트에서 필요한 메트릭만을 따로 따로 계산하였기 때문이다.This is because conventionally, each state has one branch metric calculation unit and one addition comparison selection unit, and separately calculates only the metrics necessary for each state.

예를 들어 16스테이트 TCM 디코더의 브랜치 메트릭에서 트렐리스 도를 조사해보면 한 스테이트마다 4개의 브랜치 메트릭을 갖게 되므로, 총 64개(16×4)의 브랜치 메트릭을 계산해야 하고, 이를 위해 64개의 가산기를 이용하여 덧셈 연산하고, 64번의 절대치 계산을 수행해야 한다.For example, if you examine the trellis in the branch metric of a 16-state TCM decoder, you will have four branch metrics for each state, so you need to calculate a total of 64 (16 × 4) branch metrics. Add operation using, and must perform 64 absolute calculations.

여기서, 이전 스테이트와 현재 스테이트간의 브랜치 메트릭은 NTSC간섭 제거 필터로부터 출력된 입력 신호와 기준값과의차를 계산한 값으로서, 만약 정확한 경로의 브랜치인 경우에는 브랜치 메트릭은 정확히 0값이 되지만, 통상적인 통신환경에서는 잡음의 영향으로 브랜치 메트릭은 0에 가까운 값을 가지게 된다. 즉, 디코더로 입력되는 데이터는 부호 심볼에 잡음이 섞여진 채로 들어오고, 부호심볼의 기준값과의 차이를 계산하여 브랜치 메트릭으로 정하고, 이 메트릭을 비교하여 원래 신호에 가장 가까운 신호를 복호해 내는 것이다.Here, the branch metric between the previous state and the current state is a value calculated from the difference between the input signal output from the NTSC interference cancellation filter and the reference value. If the branch of the correct path is a branch metric is exactly 0, In the communication environment, the branch metric has a value close to zero due to the influence of noise. That is, the data input to the decoder enters with the noise mixed in the code symbol, calculates the difference from the reference value of the code symbol, sets it as a branch metric, and compares this metric to decode the signal closest to the original signal. .

그러나, 각 스테이트의 브랜치마다 기준값은 항상 정해져 있기 때문에, 각 스테이트가 갖는 브랜치 메트릭을 조사해 보면 동일한 값(메트릭)을 갖는 브랜치들이 존재하고 있음을 알 수 있다.However, since the reference value is always determined for each branch of each state, the branch metrics of each state can be examined to show that there are branches having the same value (metric).

이와 같이, 종래의 TCM 디코더는 각 스테이트별로 브랜치 메트릭 계산부와 가산 비교 선택부를 따로 따로 구현함으로 인해 동일한 브랜치 메트릭(BM)을 중복해서 계산하는 비효율을 초래하는 문제점이 있었다. 또한, 각각의 브랜치 메트릭을계산하는 상당량의 하드웨어로 인해 비용 및 면적이 증가되는 문제점도 있었다As described above, the conventional TCM decoder has a problem of inefficiency of repeatedly calculating the same branch metric BM by separately implementing the branch metric calculation unit and the addition comparison selection unit for each state. In addition, there is a problem in that the cost and the area are increased due to the considerable amount of hardware for calculating each branch metric.

한편, 이러한 디코더의 사이즈를 줄이기 위해 가산 비교 선택부 하나를 두고 직렬(Serial)처리하는 방법과, 고성능(High performance) 구현을 위해 가산 비교 선택부를 병렬로(Parallel) 배치하는 방법이 있다.In order to reduce the size of the decoder, there is a method of serial processing with one addition comparison selection unit and a method of arranging the addition comparison selection unit in parallel for high performance.

첫번째의 경우는 디코더의 사이즈를 줄일 수는 있으나 성능이 떨어지는 단점이 있고, 두번째의 경우는 성능은 향상되지만 면적이 커지는 단점이 있다.In the first case, the size of the decoder can be reduced, but the performance is inferior. In the second case, the performance is improved but the area is increased.

따라서, 전술한 두가지 방법을 절충한 것이 여러개의 스테이트가 가산 비교 선택부를 공유(Sharing)하는 방법이다. 이 방법을 사용하기 위해서 기존에 나왔던 스킴(Scheme)은 가산 비교 선택부와 경로 메트릭 네트워크 사이에 멀티플렉서를 사용하여 연결하였다.Therefore, a compromise between the two methods described above is a method in which several states share the addition comparison selection unit. In order to use this method, the existing scheme (Scheme) uses a multiplexer to connect between the add comparison selector and the path metric network.

도 2는 종래기술에 따른 라우팅 네트워크를 도시한 구성도이다.2 is a block diagram illustrating a routing network according to the prior art.

도 2를 참조하면, 4개의 가산 선택 비교부(ACS0 ∼ ACS3)와 4개의 디멀티플렉서(DMUX)와 4개의 브랜치 메트릭 계산부(B0 ∼ B3) 및 4개의 멀티플렉서(MUX)가 배열되어 있다.Referring to FIG. 2, four addition select comparison units ACS0 to ACS3, four demultiplexers DMUX, four branch metric calculation units B0 to B3, and four multiplexers MUX are arranged.

한편, 도 2에 도시된 바와 같은 라우팅 네트워크를 적용할 경우에는 가산 비교 선택부와 경로 메트릭 네트워크 사이의 연결 면적이 커지는 문제점이 발생한다.On the other hand, when the routing network shown in FIG. 2 is applied, a problem arises in that the connection area between the addition comparison selection unit and the path metric network becomes large.

본 발명의 상기와 같은 종래 기술의 문제점을 해결하기 위하여 제안된 것으로서, 비터비 알고리즘을 이용한 비터비 디코더의 연결 면적을 줄일 수 있는 비터비 알고리즘을 이용한 트렐리스 디코더 그 스테이트 그룹핑 방법을 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above problems of the prior art, and provides a trellis decoder state grouping method using a Viterbi algorithm capable of reducing the connection area of the Viterbi decoder using the Viterbi algorithm. There is a purpose.

도 1은 비터비 알고리즘을 적용한 트렐리스 디코더의 구성도.1 is a block diagram of a trellis decoder to which the Viterbi algorithm is applied.

도 2는 종래기술에 따른 라우팅 네트워크를 도시한 구성도.2 is a block diagram illustrating a routing network according to the prior art.

도 3은 본 발명의 일실시예에 따른 16 스테이트 비터비 디코더의 스왑드 스테이트 그룹핑을 도시한 구성도.3 is a diagram illustrating swapped state grouping of a 16 state Viterbi decoder according to one embodiment of the present invention;

도 4는 본 발명의 일실시예에 따른 라우팅 네트워크를 도시한 구성도.4 is a block diagram illustrating a routing network according to an embodiment of the present invention.

도 5는 본 발명의 일실시예에 따른 인 플레이스 업데이팅 기술을 도시한 도면.5 illustrates an in-place updating technique according to an embodiment of the present invention.

* 도면의 주요부분에 대한 부호의 설명 *Explanation of symbols on the main parts of the drawings

ACS0 ∼ ACS3 : 가산 비교 선택부ACS0 to ACS3: Addition comparison selection section

B0 ∼ B3 : 브랜치 메트릭B0-B3: Branch metrics

상기 목적을 달성하기 위하여 본 발명은, 비터비 알고리즘을 이용한 트렐리스 디코더의 스테이트 그룹핑을 실시함에 있어서, 메모리 뱅크를 나누어, 가산 비교 선택부로 부터 제공되는 경로 메트릭을 상기 나누어진 메모리 뱅크에서 서로 바꾸어 그룹핑하는 것을 특징으로 하는 비터비 알고리즘을 이용한 트렐리스 디코더의 스테이트 그룹핑 방법을 제공한다.In order to achieve the above object, in the state grouping of the trellis decoder using the Viterbi algorithm, the present invention divides the memory banks and replaces the path metrics provided from the addition comparison selection unit with each other in the divided memory banks. A state grouping method of a trellis decoder using a Viterbi algorithm is provided.

또한, 상기 목적을 달성하기 위하여 본 발명은, 상기의 그룹핑 방법을 이용한 트렐리스 디코더에 있어서, 상기 가산 비교 선택부와 뱅크 메모리 사이에 스위치를 배치하여 경로 메트릭 메모리와 상기 가산 비교 선택부 사이를 연결하는 것을 특징으로 하는 비터비 알고리즘을 이용한 트렐리스 디코더를 제공한다.In addition, in order to achieve the above object, the present invention provides a trellis decoder using the grouping method, wherein a switch is arranged between the addition comparison selection unit and the bank memory to provide a connection between the path metric memory and the addition comparison selection unit. Provided is a trellis decoder using a Viterbi algorithm, characterized in that the connection.

종래기술의 문제점에서 언급했듯이 성능을 크게 떨어뜨리지 않으면서 면적을 줄이기 위해 몇개의 가산 비교 선택부를 여러개의 스테이트가 공유하는 방법을 사용하게 되면, 가산 비교 선택부와 경로 메트릭 메모리 사이의 연결 면적이 전체 칩 사이즈의 상당한 부분을 차지하게 된다. 따라서, 이 부분을 줄이는 것이 중요한 문제가 된다.As mentioned in the problem of the prior art, the method of sharing several addition comparison selections with several states in order to reduce the area without significantly degrading the performance leads to the total connection area between the addition comparison selection and the path metric memory. It takes up a significant portion of the chip size. Therefore, reducing this portion is an important problem.

16개의 스테이트를 갖는 비터비 디코더를 설계시 병렬로 구성하게 되면, 16개의 가산 비교 선택부가 필요하게 된다. 따라서, 본 발명은 4개의 가산 비교 선택부만을 가지고 4개의 스테이트가 하나의 가산 비교 선택부를 공유하면서 처리하게 된다. 이 때, 가산 비교 선택부와 계산된 경로 메트릭 값을 저장하는 메모리 사이의 상호 연결이(Interconnection)이 복잡하게 된다.When the Viterbi decoder having 16 states is configured in parallel in design, 16 addition comparison selection parts are required. Therefore, the present invention has only four addition comparison selection sections, and four states are processed while sharing one addition comparison selection section. At this time, the interconnection between the addition comparison selection unit and the memory storing the calculated path metric value becomes complicated.

기존에 나왔던 방법으로는 4*1 멀티플렉서를 사용하여 구성하는 방법이 있으나, 이 경우에는 상호 연결하는 면적이 커지는 단점이 있다. 따라서, 경로 본 발명에서는 메트릭 메모리에 경로 메트릭 값을 넣을 때 스테이트 그룹핑 테크닉(Stata-grouping technique)과 인 플레이스 업데이팅 테크닉(In-place updating technique)을 사용하여 연결 면적을 줄일 수 있도록 한다.Conventionally, there is a method of using a 4 * 1 multiplexer, but in this case, there is a disadvantage in that the interconnection area becomes large. Therefore, in the present invention, when the path metric value is inserted into the metric memory, the connection area can be reduced by using a stata-grouping technique and an in-place updating technique.

이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부한 도면을 참조하여 설명하기로 한다.DETAILED DESCRIPTION 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 technical idea of the present invention. do.

도 3은 본 발명의 일실시예에 따른 16 스테이트 비터비 디코더의 스왑드 스테이트 그룹핑을 도시한 구성도이다.3 is a block diagram illustrating swapped state grouping of a 16 state Viterbi decoder according to an embodiment of the present invention.

도 3은 B0 ∼ B3의 메모리 뱅크(Memory bank)와, S0 ∼ S15의 16개의 스테이트와 4개의 ACS로 구성된 일예를 도시한다.3 shows an example composed of a memory bank of B0 to B3, 16 states of S0 to S15, and four ACSs.

본 발명에서 제안된 스테이트 그룹핑에 따르면, 뱅크로부터 ACS로의 연결은 고정되어 있으며, 절반 이상의 상위 스테이트(High half states)는 4개의 ACS로부터 계산된 4개의 출력 경로 메트릭을 서로 다른 뱅크에 저장하기 위해 교환되어 있다(Swapped). 아울러, ACS에서 어떠한 스테이트가 계산되는 가를 결정해야 한다.According to the state grouping proposed in the present invention, the connection from the bank to the ACS is fixed, and more than half high states are exchanged to store four output path metrics calculated from the four ACSs in different banks. Swapped. In addition, you must determine which states are calculated in the ACS.

스테이트 지정(State assignment)은 라우팅 네트워크에 큰 영향을 미친다. 새로운 경로 메트릭인 S0와 S8은 S0와 S1으로부터 계산되어지고, 새로운 경로 메트릭인 S2와 S10은 S4와 S5로부터 계산되어진다.State assignments have a big impact on routing networks. The new path metrics S0 and S8 are calculated from S0 and S1, and the new path metrics S2 and S10 are calculated from S4 and S5.

만일 ACS0과 ACS1이 각각 (S0,S2)과 (S8,S10)로 지정된다면, ACS0과 ACS1은 B0과 B2에 반드시 연결되어야 한다. 이러한 연결을 간단히 하기 위해 ACS0과 ACS1은 각각 (S0,S10)과 (S8,S2)를 계산하도록 지정될 수 있다.If ACS0 and ACS1 are specified as (S0, S2) and (S8, S10) respectively, ACS0 and ACS1 must be connected to B0 and B2. To simplify this connection, ACS0 and ACS1 can be specified to calculate (S0, S10) and (S8, S2), respectively.

이러한 경우에 ACS0을 B1에 연결하고 ACS1을 B2에 연결하는 것이 가능하다. 입력 스테이트들의 인코딩에서 Sn=1이라면 상위 스테이트(High numbered state)는 하위 ACS에서 계산되기 때문에 이러한 기술을 스왑드 컴퓨팅(Swapped computing) 즉, 교환 계산이라 한다.In this case it is possible to connect ACS0 to B1 and ACS1 to B2. If Sn = 1 in the encoding of the input states, this technique is called swapped computing, that is, because the high numbered state is calculated at the lower ACS.

전술한 스테이트 그룹핑과 스왑드 컴퓨팅을 적용함으로써, ACS0에서 계산된 출력 경로 메트릭은 B0 또는 B1에 저장된다. 유사하게, ACS들도 하기에 요약하여 도시한 표 1과 같이 오직 두개의 뱅크와 연결된다.By applying the above state grouping and swapped computing, the output path metrics calculated at ACS0 are stored at B0 or B1. Similarly, ACSs are also connected to only two banks, as shown in Table 1 summarized below.

ACS0ACS0 (S0,B0)(S0, B0) (S10,B0)(S10, B0) (S5,B1)(S5, B1) (S15,B1)(S15, B1) ACS1ACS1 (S8,B2)(S8, B2) (S2,B2)(S2, B2) (S13,B3)(S13, B3) (S7,B3)(S7, B3) ACS2ACS2 (S1,B1)(S1, B1) (S11,B1)(S11, B1) (S4,B0)(S4, B0) (S14,B0)(S14, B0) ACS3ACS3 (S9,B3)(S9, B3) (S3,B3)(S3, B3) (S12,B2)(S12, B2) (S6,B2)(S6, B2)

여기서 가장 왼쪽의 열은 ACS를 나타내면, 그 우측의 열은 가각 스테이트와 뱅크를 나타낸다.The leftmost column here represents the ACS, while the rightmost column represents each state and bank.

도 4는 본 발명의 일실시예에 따른 라우팅 네트워크를 도시한 구성도이다.4 is a diagram illustrating a routing network according to an embodiment of the present invention.

도 4를 참조하면, 각 연결을 제어하기 위해 2개의 스위치가 배치되어 있으며, 2*2의 각 스위치들은 각각 두개의 ACS와 뱅크 메모리를 연결한다. 모든 스위치들은 입력 스테이트 인코딩의 Sv-1에 의해 동시에 제어된다. 만일 Sv-1=1이라면, 모든 스위치들은 교차 연결(Crossover connection)하게 되며, 그 반대의 경우에는 직선 연결(Straight connection)을 하게 된다.Referring to FIG. 4, two switches are arranged to control each connection, and each of 2 * 2 switches connects two ACSs and a bank memory. All switches are simultaneously controlled by S v-1 of the input state encoding. If S v-1 = 1, then all switches are crossover connected and vice versa.

따라서, 도 2에 도시된 종래의 라우팅 네트워크에 비해 보다 효과적인 연결 영역을 갖는 아키텍쳐(Area-efficient architecture)를 구현할 수 있다.Accordingly, an area-efficient architecture having a more effective connection area than that of the conventional routing network shown in FIG. 2 can be implemented.

한편, 전술한 예에서는 16 스테이트를 예로 설명했지만 16 스테이트가 아닌 스테이트의 수와 뱅크의 수의 각각 변화된 일반적인 경우에도 적용이 가능하다.On the other hand, in the above example, the 16 states have been described as examples, but the present invention can be applied to a general case in which the number of non-16 states and the number of banks are changed.

도 5는 본 발명의 일실시예에 따른 인 플레이스 업데이팅 기술을 도시한 도면이다.5 illustrates an in-place updating technique according to an embodiment of the present invention.

경로 메트릭 관리에서의 가장 중요한 기술중의 하나인 인 플레잇 업데이팅은 읽혀진 입력 값의 위치에 출력 값을 저장함으로써, 임시적으로 사용되는 버퍼(Temporary buffer)을 제거할 수 있도록 하며, 이 기술은 전술한 스킴과 어떠한 불일치 없이 적용이 가능하다.In-plane updating, one of the most important techniques in path metric management, allows the removal of temporary buffers by storing output values in the position of read input values. It can be applied without any inconsistency with a scheme.

도 5는 본 발명에서 제안된 스테이트 그룹핑이 인 플레이스 업데이팅과 기술과 같이 적용되었을 때의 경로 메트릭 메모리의 컨텐츠(Contents)를 나타낸다.5 shows the contents of the path metric memory when the state grouping proposed in the present invention is applied with in-place updating and techniques.

전술한 경로 메트릭 업데이트 스킴을 확인하기 위해 CDMA 2000에 사용되는256 스테이트의 1/3 레이트 비터비 디코더에 적용하였는 바, 표 2는 세가지 형태의 비터비 디코더에서의 게이트 카운트를 비교 도시한다.As applied to the 256-state 1/3 rate Viterbi decoder used in CDMA 2000 to identify the path metric update scheme described above, Table 2 shows a comparison of the gate counts in the three types of Viterbi decoder.

블럭block 병렬 연결Parallel connection 멀티플렉서 이용Using Multiplexor 본 발명The present invention ACSACS 33,28033,280 2,9402,940 2,9402,940 네트워크network 5,7645,764 192192 트레이스 백Traceback 537537 9898 9898 어드레스 발생기Address generator 223223 564564 672672 기타Etc 15,96015,960 500500 198198 synthesis 50,00050,000 9,3669,366 4,1004,100

디코더는 16개의 ACS와 8개의 스위치와 16개의 1포트 메모리 뱅크로 구성된다. 16개의 ACS로 인해 디코더는 일시에 16개의 스테이트를 처리할 수 있으므로, 16번의 반복으로 256개의 모든 스테이트 모두 처리할 수 있다.The decoder consists of 16 ACS, 8 switches and 16 1-port memory banks. The 16 ACSs allow the decoder to process 16 states at once, so all 256 states can be processed in 16 iterations.

본 발명의 기술 사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술 분야의 통상의 전문가라면 본 발명의 기술 사상의 범위내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.Although the technical idea of the present invention has been described in detail according to the above preferred embodiment, it should be noted that the above-described embodiment is for the purpose of description and not of limitation. In addition, those skilled in the art will understand that various embodiments are possible within the scope of the technical idea of the present invention.

종래의 경우에는 경로 메트릭 메모리와 가산 비교 선택부 사이의 면적이 침 사이즈의 절반 이상을 차지하였으나, 상기와 같이 본 발명은 연결 면적을 1/30 정도로 줄어들게 하여 전체 칩 사이즈를 줄일 수 있도록 하여, 궁극적으로 비터비 디코더의 집적도를 향상시킬 수 있는 탁월한 효과를 기대할 수 있다.In the conventional case, the area between the path metric memory and the add comparison selector occupies more than half of the needle size, but as described above, the present invention reduces the overall chip size by reducing the connection area by about 1/30. As a result, an excellent effect of improving the density of the Viterbi decoder can be expected.

Claims (4)

비터비 알고리즘을 이용한 트렐리스 디코더의 스테이트 그룹핑을 실시함에 있어서,In performing state grouping of the trellis decoder using the Viterbi algorithm, 메모리 뱅크를 나누어, 가산 비교 선택부로 부터 제공되는 경로 메트릭을 상기 나누어진 메모리 뱅크에서 서로 바꾸어 그룹핑하는 것을 특징으로 하는 비터비 알고리즘을 이용한 트렐리스 디코더의 스테이트 그룹핑 방법.A state grouping method of a trellis decoder using a Viterbi algorithm, characterized in that the memory banks are divided and the path metrics provided from the add comparison selector are alternately grouped in the divided memory banks. 제 1 항의 그룹핑 방법을 이용하는 트렐리스 디코더에 있어서,In a trellis decoder using the grouping method of claim 1, 상기 가산 비교 선택부와 뱅크 메모리 사이에 스위치를 배치하여 경로 메트릭 메모리와 상기 가산 비교 선택부 사이를 연결하는 것을 특징으로 하는 비터비 알고리즘을 이용한 트렐리스 디코더.And a switch disposed between the add comparison selector and the bank memory to connect between the path metric memory and the add compare selector. 제 2 항에 있어서,The method of claim 2, 상기 스위치는 입력 스테이트 인코딩의 Sv-1에 의해 제어되는 것을 특징으로 하는 비터비 알고리즘을 이용한 트렐리스 디코더.And the switch is controlled by S v-1 of input state encoding. 제 3 항에 있어서,The method of claim 3, wherein 상기 Sv-1=1이라면, 모든 스위치들은 교차 연결 되며, 그 반대의 경우에는 직선 연결되는 것을 특징으로 하는 비터비 알고리즘을 이용한 트렐리스 디코더.If S v-1 = 1, all switches are cross-connected, and vice versa, a trellis decoder using a Viterbi algorithm.
KR1020030027095A 2003-04-29 2003-04-29 Trellis decoder using viterbi algorithm and grouping method of the same KR20040092783A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020030027095A KR20040092783A (en) 2003-04-29 2003-04-29 Trellis decoder using viterbi algorithm and grouping method of the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020030027095A KR20040092783A (en) 2003-04-29 2003-04-29 Trellis decoder using viterbi algorithm and grouping method of the same

Publications (1)

Publication Number Publication Date
KR20040092783A true KR20040092783A (en) 2004-11-04

Family

ID=37373120

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030027095A KR20040092783A (en) 2003-04-29 2003-04-29 Trellis decoder using viterbi algorithm and grouping method of the same

Country Status (1)

Country Link
KR (1) KR20040092783A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006107124A1 (en) 2005-04-08 2006-10-12 Hanmi Pharmaceutical Co., Ltd. Immunoglobulin fc fragment modified by non-peptide polymer and pharmaceutical composition comprising the same
WO2007021129A1 (en) 2005-08-16 2007-02-22 Hanmi Pharmaceutical Co., Ltd. A method for the mass production of immunoglobulin fc region deleted initial methionine residues

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006107124A1 (en) 2005-04-08 2006-10-12 Hanmi Pharmaceutical Co., Ltd. Immunoglobulin fc fragment modified by non-peptide polymer and pharmaceutical composition comprising the same
WO2007021129A1 (en) 2005-08-16 2007-02-22 Hanmi Pharmaceutical Co., Ltd. A method for the mass production of immunoglobulin fc region deleted initial methionine residues

Similar Documents

Publication Publication Date Title
US4606027A (en) Error correction apparatus using a Viterbi decoder
JP5265083B2 (en) Method and apparatus for soft output viterbi detection using a multi-step trellis
US5432803A (en) Maximum likelihood convolutional decoder
CA2352206C (en) Component decoder and method thereof in mobile communication system
EP1102408B1 (en) Viterbi decoder
US5537424A (en) Matched spectral null codes with partitioned systolic trellis structures
KR100779782B1 (en) High-speed acs unit for a viterbi decoder
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
JPH06338808A (en) Addition comparison selector
KR20040092783A (en) Trellis decoder using viterbi algorithm and grouping method of the same
KR100282966B1 (en) EL state selection device and method in decoding device
CN106452461A (en) Method for realizing viterbi decoding through vector processor
JP2010206570A (en) Decoding apparatus and decoding method
EP1192719A1 (en) Viterbi decoder
US7020831B2 (en) Pipelined add-compare-select circuits and methods, and applications thereof
RU2247471C2 (en) Component decoder and method for decoding in mobile communication system
US7818654B2 (en) Addressing strategy for Viterbi metric computation
KR100410995B1 (en) survivor path memory management method using immediate traceback algorithm for Viterbi decoder and apparatus for the same
KR100491016B1 (en) Trace-Back Viterbi Decoder with Consecutive Control of Backward State Transition and Method thereof
US7242723B2 (en) Decoder for a trellis code
JP4217261B2 (en) ACS circuit
KR20040031323A (en) Recording apparatus and method for path metrics of vitervi decoder
JP2002076924A (en) Viterbi decoder
JP2000252840A (en) Error-correcting decoder
JPH04177917A (en) Error correction decoder

Legal Events

Date Code Title Description
N231 Notification of change of applicant
SUBM Surrender of laid-open application requested