KR100659777B1 - Systolic path memory, path memory using it, and viterbi detector thereof - Google Patents

Systolic path memory, path memory using it, and viterbi detector thereof Download PDF

Info

Publication number
KR100659777B1
KR100659777B1 KR1020050126871A KR20050126871A KR100659777B1 KR 100659777 B1 KR100659777 B1 KR 100659777B1 KR 1020050126871 A KR1020050126871 A KR 1020050126871A KR 20050126871 A KR20050126871 A KR 20050126871A KR 100659777 B1 KR100659777 B1 KR 100659777B1
Authority
KR
South Korea
Prior art keywords
memory
value
state
systolic
path
Prior art date
Application number
KR1020050126871A
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 KR1020050126871A priority Critical patent/KR100659777B1/en
Application granted granted Critical
Publication of KR100659777B1 publication Critical patent/KR100659777B1/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
    • 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
    • H03M13/4176Sequence 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 using a plurality of RAMs, e.g. for carrying out a plurality of traceback implementations simultaneously
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6522Intended application, e.g. transmission or communication standard

Landscapes

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

Abstract

A systolic path memory, a path memory of a viterbi decoder using the same and a viterbi decoder are provided to improve performance and to reduce a size and complexity. In a systolic path memory comprising a plurality of memory cells, the memory cell comprises a first determining memory(1400) receiving and storing state metric information for a fixed time. A second determining memory(1420) stores an output value of the first determining memory for a fixed time. A state register receives and stores state information having a minimum probability distance value. A MUX selects a state register value in a next unit time. According to the selection of a state register value in the next unit time of the MUX, one bit left-shifted value of the state register in the present unit time is stored in the state register in the next unit time, and another bit is selected as the value of the second determining memory corresponding to the state register value in the present unit time.

Description

시스톨릭 패스 메모리, 이를 이용한 비터비 디코더의 패스 메모리 및 비터비 디코더{Systolic path memory, path memory using it, and viterbi detector thereof}Systolic path memory, path memory and Viterbi decoder of Viterbi decoder using the same {Systolic path memory, path memory using it, and viterbi detector approx}

도 1은 통신시스템의 기능블록을 도시한 것이다.1 illustrates a functional block of a communication system.

도 2는 (2, 1/2) 컨볼루션 인코더의 구성을 도시한 것이다.2 shows a configuration of a (2, 1/2) convolutional encoder.

도 3는 (2, 1/2) 컨볼루션 인코더의 4 상태의 트렐리스도와 상태천이도를 도시한 것이다.3 shows trellis and state transition diagrams of four states of a (2, 1/2) convolutional encoder.

도 4는 입력 시퀀스 U = ( 0, 0, 1, 0, 1, 0, 0, 0,… )일 때의 트렐리스도를 도시한 것이다.4 shows a trellis diagram when the input sequence U = (0, 0, 1, 0, 1, 0, 0, 0, ...).

도 5a 내지 도 5e는 비터비 알고리즘에서의 디코딩 과정의 예를 도시한 것이다. 5A to 5E illustrate examples of the decoding process in the Viterbi algorithm.

도 6은 비터비 검출기의 기본 구성을 블록도로 도시한 것이다.6 is a block diagram showing the basic configuration of the Viterbi detector.

도 7은 ACS 유니트에 대한 4-state 트렐리스도를 도시한 것이다.7 shows a 4-state trellis diagram for the ACS unit.

도 8a는 비터비 검출기의 8-state 트렐리스를 도시한 것이다 Figure 8a shows an 8-state trellis of a Viterbi detector.

도 8b는 비터비 검출기의 ACS 회로를 도시한 것이다.8B shows the ACS circuit of the Viterbi detector.

도 9는 8-state 비터비 검출기의 패스 메모리 셀을 도시한 것이다.9 shows a pass memory cell of an 8-state Viterbi detector.

도 10은 8-state 레지스터 교환 방식의 패스 메모리를 도시한 것이다.10 illustrates a pass memory of the 8-state register exchange method.

도 11은 8-state 패스 선택 방식의 패스 메모리를 도시한 것이다.11 shows a pass memory of the 8-state pass selection method.

도 12는 시스톨릭 패스 메모리의 구성을 도시한 것이다.Fig. 12 shows the configuration of the systolic pass memory.

도 13a 내지 도 13g는 시스톨릭 패스 메모리의 예를 도시한 것이다.13A-13G show examples of systolic pass memories.

도 14는 본 발명에 의한 새로운 시스톨릭 패스 메모리의 구성을 도시한 것이다.Fig. 14 shows the configuration of a new systolic pass memory according to the present invention.

도 15는 본 발명에 의한 새로운 시스톨릭 패스 메모리의 예를 도시한 것이다.Figure 15 shows an example of a new systolic pass memory in accordance with the present invention.

도 16은 본 발명에 의한 비터비 검출기의 구성을 도시한 것이다.Fig. 16 shows the configuration of the Viterbi detector according to the present invention.

도 17은 본 발명에 의한 시스톨릭 및 PS 패스메모리의 결합된 형태를 도시한 것이다.17 illustrates a combined form of systolic and PS pass memories according to the present invention.

도 18은 본 발명에 의한 패스메모리의 보상부의 동작원리를 설명하기 위한 것이다.18 illustrates an operation principle of a compensation unit of a pass memory according to the present invention.

<도면의 주요부분에 대한 부호의 설명><Description of the symbols for the main parts of the drawings>

14,16,18:메모리 셀 160:시스톨릭 패스 메모리14, 16, 18: memory cell 160: systolic pass memory

162:패스선택 패스 메모리 164:비교기162: path selection path memory 164: comparator

166:보상부 1400:제1결정 메모리166: Compensation unit 1400: First decision memory

1420:제2결정 메모리 1440:상태 레지스터1420: Second decision memory 1440: Status register

1460:MUX 1480:ACS유니트1460: MUX 1480: ACS unit

1600:브랜치 메트릭부 1620:ACS부1600: branch metric unit 1620: ACS unit

1640:패스 메모리1640: pass memory

본 발명은 비터비 디코더에 관한 것으로서, 특히 시스톨릭 패스 메모리, 이를 이용한 비터비 디코더의 패스 메모리 및 비터비 디코더에 관한 것이다.The present invention relates to a Viterbi decoder, and more particularly, to a systolic pass memory, a pass memory and a Viterbi decoder of a Viterbi decoder using the same.

통신기술과 디지털 신호처리와 정보 저장매체의 비약적인 발달로 인해 정보량이 꾸준히 증가하고, 신호의 처리속도 또한 증가하고 있다. 이런 데이터 처리를 위해 코딩 기술뿐 아니라 디코딩 기술이 중요하다. 여러 노이즈 채널을 가진 디지털 신호 처리에서 가장 널리 사용되고 있는 코딩 방법은 컨볼루션 코딩 방식이다. 상기 컨볼루션 코딩 방식의 가장 효과적인 디코딩 방식은 비터비 디코딩 방식이다. 컨볼루션 코딩과 비터비 디코딩은 강력한 Forward-Error-Correction(FEC)기능 때문에 디지털 통신시스템, 인공위성, CDMA2000, 디지털 저장매체, Digital Video Broadcast(DVB)와 Digital Audio Broadcast(DAB) 시스템 등에서 널리 쓰이고 있다. 이런 채널 코딩 기술의 하드웨어에 있어서 빠른 속도, 적은 전력, 작은 크기와 높은 코딩 이득 등이 중요하다. Due to the rapid development of communication technology, digital signal processing and information storage media, the amount of information is steadily increasing and the processing speed of signals is also increasing. Decoding techniques as well as coding techniques are important for this data processing. The most widely used coding method in digital signal processing with multiple noise channels is convolutional coding. The most effective decoding scheme of the convolutional coding scheme is the Viterbi decoding scheme. Convolutional coding and Viterbi decoding are widely used in digital communications systems, satellites, CDMA2000, digital storage media, Digital Video Broadcast (DVB) and Digital Audio Broadcast (DAB) systems because of their powerful forward-error-correction (FEC) capabilities. High speed, low power, small size and high coding gain are important in the hardware of such channel coding technology.

정보량과 속도의 증가로 인해 하드웨어의 사이즈와 파워문제가 크게 대두되었다. 이로 인해 채널 코딩 하드웨어에서도 사이즈를 줄여 보려는 많은 연구들이 활발히 진행되고 있다. 그 중 가장 널리 알려진 방법은 Generalized Viterbi Algorithm(GVA), radix-4 transition Viterbi detector 등이 있고, 또한 Folding Viterbi Detector(FVA), Double Folding Viterbi Detector(DFVD)등이 있다. 이러한 비터비 디코딩 방식들은 컨볼루션 코딩에서 Constraint length에 따른 상태천이도(Transient state diagram)의 상태 수를 줄이거나, 시간 축에 따른 상태를 제거하는 방식들이다. 하드웨어의 부담과 복잡도(Complexity)는 비교적 줄어들지만, 그에 따라 BER이나 성능이 나빠지는 단점이 있다. The increase in the amount and speed of information has led to significant problems with hardware size and power. For this reason, many studies are being actively conducted to reduce the size in channel coding hardware. The most widely known methods include Generalized Viterbi Algorithm (GVA) and radix-4 transition Viterbi detectors, and also Folding Viterbi Detector (FVA) and Double Folding Viterbi Detector (DFVD). These Viterbi decoding methods reduce the number of states in the transient state diagram according to the constraint length or eliminate the state along the time axis in convolution coding. The burden and complexity of the hardware is relatively reduced, but the disadvantage is that the BER or performance becomes poor.

비터비 검출기는 Branch Metric(BM) Unit, Add-Compare-Selector(ACS) Unit과 Path Memory(PM)로 구성되어 있다. 이 중에서 상기 Path Memory는 Constraint Length와 관련되어 대부분의 경우 Constraint length의 5배 이상으로 Path Memory를 구성하므로 비터비 검출기에서 큰 부분을 차지한다. 따라서, Path Memory와 관련된 많은 연구가 진행되고 있다. 비터비 검출기의 Path Memory는 크게 레지스터 교환(Register-Exchange) Path Memory와 역추적(Trace-Back) Path Memory 두 가지 방식이 주로 쓰이고 있고, 대부분 이 두 가지를 응용하여 새로운 Path Memory를 만들어 사용하고 있다. Viterbi detector consists of Branch Metric (BM) Unit, Add-Compare-Selector (ACS) Unit and Path Memory (PM). Of these, the path memory occupies a large part in the Viterbi detector because the path memory is composed of five or more times the constraint length in relation to the constraint length. Therefore, many researches on path memory have been conducted. Path memory of Viterbi detector is mainly used as register-exchange path memory and trace-back path memory, and most of them are used to make new path memory. .

상기 레지스터 교환방식은 사이즈가 상기 역추적 방식에 비해 작고, 빠른 속도가 장점이다. 그러나, 최근 Constraint Length가 커지면서, 비교적 낮은 비트율에서 사용되고 있다. 이에 비해 역추적 방식은 사이즈가 크고, 속도가 비교적 느리지만 높은 코딩 이득과 우수한 비트에러율(Bit Error Rate)로 인해 역추적 방식이 주로 많은 응용 분야에서 사용되고 있다. The register exchange method is advantageous in size and small in speed compared with the backtracking method. However, as the Constraint Length increases in recent years, it has been used at relatively low bit rates. On the other hand, the backtracking method is large and relatively slow, but the backtracking method is mainly used in many applications because of the high coding gain and the excellent bit error rate.

최근 인공위성이나 HDTV, DMB방식의 Constraint Length가 7이나 8, 그 이상에 이르고 있다. 높은 Constraint Length로 인해 비터비 검출기 역시 복잡도 및 사이즈가 큰 이슈이다. 비터비 검출기에서 크기나 복잡도를 줄이면 성능이 떨어지 고, 성능을 올리면 크기나 복잡도가 증가하는 trade-off의 관계에 있다.In recent years, the satellite, HDTV, and DMB-based constraint lengths have reached 7 or 8 or more. Due to the high constraint length, Viterbi detectors are also an issue of high complexity and size. In a Viterbi detector, reducing the size or complexity reduces performance, while increasing the performance increases the size or complexity.

따라서, 종래기술에 비해 크기와 복잡도는 줄이고 성능을 향상시킬 수 있는 비터비 디코더의 Path Memory가 필요하다.Accordingly, there is a need for a Path Memory of a Viterbi decoder that can reduce size and complexity and improve performance compared to the prior art.

본 발명이 이루고자 하는 기술적 과제는 종래기술에 비해 크기와 복잡도는 줄이고 성능을 향상시킬 수 있는 시스톨릭 패스 메모리를 제공하는 것이다. The technical problem to be achieved by the present invention is to provide a systolic pass memory which can reduce the size and complexity and improve the performance compared to the prior art.

본 발명이 이루고자 하는 다른 기술적 과제는 상기 시스톨릭 패스 메모리를 이용한 비터비 디코더의 패스 메모리를 제공하는 것이다.Another object of the present invention is to provide a pass memory of a Viterbi decoder using the systolic pass memory.

본 발명이 이루고자 하는 또 다른 기술적 과제는 상기 본 발명에 의한 패스메모리를 이용한 비터비 디코더를 제공하는 것이다.Another technical problem to be achieved by the present invention is to provide a Viterbi decoder using a pass memory according to the present invention.

상기 기술적 과제를 이루기 위한 본 발명에 의한 시스톨릭 패스 메모리는, 복수의 메모리 셀로 이루어지는 시스톨릭 패스메모리에 있어서, 상기 메모리 셀은A systolic pass memory according to the present invention for achieving the above technical problem is a systolic pass memory comprising a plurality of memory cells.

상태메트릭 정보를 받아 소정의 시간동안 저장하는 제1결정 메모리; 상기 제1결정 메모리의 출력값을 소정의 시간동안 저장하고 있는 제2결정 메모리; 최소 확률거리 값을 가진 상태정보를 받아 저장하고 있는 상태 레지스터; 및 다음 유니트 시간에서의 상태 레지스터 값을 선택하는 MUX로 이루어짐을 특징으로 하고, 상기 MUX의 다음 유니트 시간에서의 상태레지스터 값 선택은 현재 유니트 시간에서의 상태레지스터 값 중 한 비트 쉬프트 레프트 시킨 값을 다음 유니트 시간에서의 상태 레지스터에 저장하고, 나머지 한 비트는 현재 유니트 시간에서의 상태레지스터 값에 해당하는 제2결정 메모리의 값으로 선택한다.A first decision memory that receives the state metric information and stores the state metric information for a predetermined time; A second decision memory that stores an output value of the first decision memory for a predetermined time; A state register for receiving and storing state information having a minimum probability distance value; And a MUX for selecting a state register value at a next unit time, wherein the state register value selection at a next unit time of the MUX is performed by shifting a bit shifted by one bit of the state register value at the current unit time. Stored in the status register at unit time, the other bit is selected as the value of the second decision memory corresponding to the status register value at the current unit time.

상기 제1결정 메모리는 첫 번째 단의 메모리 셀일 경우에는 비터비 검출기의 ACS 유니트로부터 상태메트릭 정보를 받아 소정의 시간동안 저장하고, 두 번째 단 이상의 메모리 셀일 경우에는 앞 단의 메모리 셀로부터 상태 메트릭 정보를 받아 소정의 시간동안 저장하고, 상기 상태 레지스터는 첫 번째 단의 메모리 셀일 경우에는 비터비 검출기의 ACS유니트로부터 최소 확률거리 값을 가진 상태정보를 받아 저장하고, 두 번째 단 이상의 메모리 셀일 경우에는 앞 단의 메모리셀의 MUX로부터 최소 확률거리 값을 가진 상태정보를 받아 저장함이 바람직하다.The first decision memory receives the state metric information from the ACS unit of the Viterbi detector in the case of the first stage memory cell and stores the state metric information for a predetermined time, and the state metric information from the memory cell of the preceding stage in the case of the second or more memory cells. Receive and store for a predetermined time, and the status register receives and stores the state information with the minimum probability distance value from the ACS unit of the Viterbi detector in the case of the first stage memory cell, and in the case of the second stage or more memory cell It is preferable to receive and store state information having a minimum probability distance value from the MUX of the memory cell.

상기 다른 기술적 과제를 이루기 위한 본 발명에 의한 시스톨릭 패스 메모리를 이용한 패스 메모리는, 패스선택 패스메모리; 제1항의 시스톨릭 패스메모리; 상기 시스톨릭 패스메모리와 상기 패스선택 패스메모리의 출력값을 비교하여 상기 출력값들이 동일하면 상기 출력값을 패스메모리의 출력값으로 하고, 상기 비교결과 상기 출력값들이 서로 다르면 보상부를 제어하는 제어신호를 생성하는 비교기; 및 상기 비교기로부터 제어신호가 활성화되면, 이전 유니트 시간에서의 최소 확률거리값을 가리키는 상태메트릭을 이용하여 현재 유니트 시간에서의 상태메트릭을 보정하여 코드워드를 복호화하는 보상부를 포함함을 특징으로 한다. 상기 패스 메모리는 상기 패스선택 패스메모리와, 상기 시스톨릭 패스메모리는 상태메트릭를 저장하는 레지스터를 공유함이 바람직하다.According to another aspect of the present invention, there is provided a pass memory using a systolic pass memory, including: a path selection pass memory; The systolic pass memory of claim 1; A comparator for comparing the output values of the systolic pass memory and the path selection pass memory and using the output values as output values of the pass memory when the output values are the same, and generating a control signal for controlling the compensator if the output values are different from each other; And a compensator configured to decode the codeword by correcting the state metric at the current unit time by using the state metric indicating the minimum probability distance value at the previous unit time when the control signal is activated from the comparator. The pass memory preferably shares the path selection pass memory and the systolic pass memory registers for storing state metrics.

상기 보상부는 상기 패스선택 패스메모리와 시스톨릭 패스메모리의 출력이 다르면 이전 상태의 최소 상태 메트릭 값을 체크하여 이전의 최소 상태 메트릭 값 으로부터 현재 값을 보고 출력값을 만들어 출력함이 바람직하다.When the outputs of the path selection pass memory and the systolic pass memory are different, the compensator checks the minimum state metric value of the previous state, outputs a current value from the previous minimum state metric value, and outputs the output value.

상기 또 다른 기술적 과제를 이루기 위한 본 발명에 의한 시스톨릭 패스 메모리를 이용한 패스 메모리를 구비하는 비터비 검출기는, 코딩된 신호들에 대해 확률거리를 계산하는 브랜치 메트릭부; 현재 들어온 확률거리 값들과 이전 상태에서 들어온 누적된 확률거리 값들을 더하여 상기 더한 확률거리값들이 두 개일 경우 상기 확률거리값들을 비교하여, 확률거리값이 작은 것을 선택하는 ACS부; 및 상기 ACS부에서 전달된 신호들을 토대로 트렐리스를 재구성하여 디코딩하는 제2항의 패스메모리를 포함함을 특징으로 한다.According to another aspect of the present invention, there is provided a Viterbi detector including a pass memory using a systolic pass memory, including: a branch metric unit configured to calculate a probability distance with respect to coded signals; An ACS unit which selects a small probability distance value by comparing the probability distance values when two additional probability distance values are added by adding current probability distance values and cumulative probability distance values input from a previous state; And a pass memory of claim 2, which reconfigures and decodes the trellis based on the signals transmitted from the ACS unit.

이하, 첨부된 도면들을 참조하여 본 발명에 따른 개방형 ATM 교환 시스템에서의 저속 점대다중점 연결 제어 방법 및 장치에 대해 상세히 설명한다.Hereinafter, a low speed point-to-multipoint connection control method and apparatus in an open ATM switching system according to the present invention will be described in detail with reference to the accompanying drawings.

먼저 비터비 검출기의 기본이 되는 비터비 알고리즘에 대해 설명하기로 한다. 노이즈 채널에 강한 컨볼루션 코딩과 이에 가장 효과적인 디코딩 방식인 비터비 알고리즘에 대해 살펴 보도록 한다. First, the Viterbi algorithm that is the basis of the Viterbi detector will be described. Let's look at the convolutional coding on the noise channel and the Viterbi algorithm, which is the most effective decoding method.

도 1은 통신시스템의 기능블록을 도시한 것으로서, 컨볼루션 코딩과 비터비 디코더를 포함하고 있다. 도 1은 통신 시스템에서 컨볼류션 인코더와 디코더의 위치와 변조기/복조기(modulator/demodulator)의 위치를 보여주고 있다. 도 1을 참조하면, 입력 시퀀스 U는 컨볼류션 코딩되어 코드워드(codeword) V가 되어 변조기(modulator)에 넘겨지고, 변조된 신호는 노이즈 채널을 거쳐 다시 복조되어 시퀀스 R이 된다. 비터비 디코더는 복조된 신호 R 시퀀스를 디코딩하여 원래 신호 U로 깨끗하게 복원하게 된다.1 shows a functional block of a communication system, including convolutional coding and a Viterbi decoder. FIG. 1 shows the positions of convolutional encoders and decoders and the positions of modulators / demodulators in a communication system. Referring to FIG. 1, the input sequence U is convolutionally coded to become a codeword V, passed to a modulator, and the modulated signal is demodulated again via a noise channel to become a sequence R. The Viterbi decoder decodes the demodulated signal R sequence to cleanly restore the original signal U.

컨볼류션 코드는 k, n 및 K의 세 개의 정수로 표현된다. n은 인코더의 입력 비트수, k는 인코더의 출력 비트수, K는 Constraint Length로 알려진 변수이다. k/n은 코딩 방식의 코딩율이 된다. Constraint Length K는 인코딩 쉬프트 레지스터의 수로 k-turple stage 수가 된다. 따라서, 컨볼루션 인코더를 표현할 때 보통 (K, k/n)로 나타낸다. 도 2는 (2, 1/2) 컨볼루션 인코더의 구성을 도시한 것으로서, 도 2을 참조하여 컨볼루션 코드를 설명하기로 한다.The convolutional code is represented by three integers, k, n and K. n is a variable known as the number of input bits of the encoder, k is the number of output bits of the encoder, and K is the constraint length. k / n is the coding rate of the coding scheme. Constraint Length K is the number of encoding shift registers, which is the number of k-turple stages. Thus, when representing a convolutional encoder, it is usually represented by (K, k / n). FIG. 2 illustrates a configuration of a (2, 1/2) convolutional encoder, and a convolution code will be described with reference to FIG. 2.

도 2를 참조하면, Constraint Length K = 2 이고, 코딩율이 k/n = 1/2 이다. 도 2에 도시된 바와 같이 두 개의 쉬프트 레지스터(A1, A0)가 사용되었다. 쉬프트 레지스터는 한 클럭 동안 입력을 저장한다. 현재 값과 쉬프트 레지스터에 의해 지연된 값들의 상관관계를 이용하여 정보소스(Information Source)를 코딩하기 때문에 컨볼루션 코드라 불린다. 또한 세 개의 modulo-2 가산기(adder)가 사용된다. 1-bit 입력 시퀀스 U=(u0, u1, u2,… )가 인코더에 입력되고, 스위치가 아래 위로 작동하여 2-bit 코드워드 V=(v0, v1, v2,…)가 출력으로 사용된다. 쉬프트 레지스터 A1의 출력 aj는 uj -1 과 같고, A0의 출력 bj는 uj -2 와 같다. 인코더의 입력 시퀀스와 쉬프트 레지스터, 발생 다항식은 다음과 같다. Referring to FIG. 2, the Constraint Length K = 2 and the coding rate is k / n = 1/2. Two shift registers A 1 and A 0 were used as shown in FIG. 2. The shift register stores the input for one clock. It is called a convolutional code because the information source is coded using the correlation between the current value and the value delayed by the shift register. Three modulo-2 adders are also used. The 1-bit input sequence U = (u 0 , u 1 , u 2 ,…) is input to the encoder and the switch is operated up and down so that the 2-bit codeword V = (v 0 , v 1 , v 2 ,…) Is used as the output. Output a j of shift register A 1 is equal to u j -1 , and output b j of A 0 is equal to u j -2 . The input sequence, shift register, and generator polynomial of the encoder are as follows.

U = (u0, u1, u2,…)U = (u 0 , u 1 , u 2 ,…)

A = (A1, A0 )A = (A 1 , A 0 )

V(u) = (uj + uj-1 + uj-2, uj + uj-2 )V (u) = (u j + u j-1 + u j-2 , u j + u j-2 )

수학식 3에 의하면 1-bit의 입력이 인코더에 인가될 때마다 2-bit의 출력 코드워드가 발생된다. 예를 들어, 아래의 1-bit의 입력 시퀀스 U가 차례대로 인코더에 입력될 때, 출력으로 2-bit의 V와 같은 코드워드가 발생된다.According to Equation 3, a 2-bit output codeword is generated whenever a 1-bit input is applied to an encoder. For example, when the following 1-bit input sequence U is sequentially input to the encoder, a codeword such as 2-bit V is generated as an output.

정보 시퀀스 U = ( 0, 0, 1, 0, 1, 0, 0, 0, ㅇ) Information sequence U = (0, 0, 1, 0, 1, 0, 0, 0, ㅇ)

출력 코드워드 V = ( 00, 00, 11, 10, 00, 10, 11, 00, ㅇ) Output codeword V = (00, 00, 11, 10, 00, 10, 11, 00, o)

상술한 예에서 살펴본 입력 시퀀스 U와 그 때의 쉬프트 레지스터(A1, A0)에 저장된 상태, 출력 코드워드 V의 상태를 한눈에 알아 볼 수 있도록 만든 것으로 트렐리스도(Trellis diagram)와 상태천이도(State diagram)가 있다. 상기 트렐리스도는 신호의 천이(transient)를 한눈에 알아보기 쉽도록 만든 그래프이고, 상태천이도라 불리는 State diagram은 입력과 출력의 관계와 그때의 쉬프트 레지스터의 상태를 알아보기 쉽게 만든 그래프이다.The trellis diagram and the state transition diagram are provided to show at a glance the state of the input sequence U, the state stored in the shift registers A1 and A0, and the state of the output codeword V. There is a (State diagram). The trellis diagram is a graph that makes it easy to see the transition of the signal at a glance, and the state diagram called the state transition diagram is a graph that makes it easy to identify the relationship between the input and output and the state of the shift register at that time.

도 3는 (2, 1/2) 컨볼루션 인코더의 4 상태의 트렐리스도와 상태천이도를 도시한 것이다. 컨볼루션 코드의 상태수는 Constraint Length K에 의해 결정되는데, (2, 1/2) 컨볼류션 인코더의 경우에는 2K = 22 = 4과 같이 4-state가 된다. 이 때의 K는 쉬프트 레지스터의 개수와 같다.3 shows trellis and state transition diagrams of four states of a (2, 1/2) convolutional encoder. The number of states of the convolution code is determined by the Constraint Length K. In the case of the (2, 1/2) convolutional encoder, the state is 4-state, such as 2 K = 2 2 = 4. K at this time is equal to the number of shift registers.

트렐리스 다이어그램에서 S0(00), S2(10), S1(01), S3(11)은 앞에서 설명한 쉬프트 레지스터(A1, A0 )의 상태 값들이다. 쉬프트 레지스터의 상태가 한 상태에서 다음 상태로 전이된다는 것은 한 비트가 입력으로 들어왔다는 것을 의미하고 그 입력 값에 의해 다음 상태로 옮겨가게 된다. 이 때, 코드워드 값들이 앞에서 살펴본 일정한 규칙에 의해 발생되어 변조기(Modulator)를 통해 변조된 후 채널을 통해 전송되게 되는 것이다. 예를 들어, 현재 쉬프트 레지스터의 상태가 (00)이고, 입력으로 0의 값이 들어왔다면 다음 상태인 (00)으로 상태는 바뀌게 되고, 이때 Codeword (00)가 발생하여 출력으로 나가게 된다. 만약, 현재 상태가 (00)이고, 입력으로 1의 값이 들어왔다면 쉬프트 레지스터의 값은 다음 상태인 (10)로 바뀌게 되고, 출력으로 Codeword (11)이 나가게 되는 것이다. 최종적으로 컨볼루션 디코더인 비터비 검출기는 이 Codeword값을 전송받아 디코딩하게 된다.In the trellis diagram, S 0 (00), S 2 (10), S 1 (01), and S 3 (11) are the state values of the shift registers A 1 and A 0 described above. Transitioning the state of a shift register from one state to the next means that a bit has entered the input and is shifted to the next state by that input value. In this case, the codeword values are generated according to the above-described rules and are modulated by the modulator and then transmitted through the channel. For example, if the state of the current shift register is (00) and a value of 0 is entered as an input, the state is changed to the next state (00). At this time, a codeword (00) is generated to go to the output. If the current state is (00) and a value of 1 is entered as an input, the value of the shift register changes to the next state (10), and the codeword (11) is outputted. Finally, the Viterbi detector, a convolutional decoder, receives this codeword value and decodes it.

도 4는 입력 시퀀스 U = ( 0, 0, 1, 0, 1, 0, 0, 0,… )일 때의 트렐리스도를 도시한 것이다. 도 4에서 굵은 선으로 표시된 곳이 입력 시퀀스의 흐름을 나타낸다. 굵은 선에 해당하는 코드워드 값들을 그대로 읽으면, V = ( 00, 00, 11, 10, 00, 10, 11, 00,…)과 같이 8 unit time 동안 진행된 값들이 발생하게 된다. 이 코드워드 값들이 채널을 통해 전송되게 되고, 비터비 검출기는 전송받은 코드워드를 거꾸로 도 4에 나타낸 것과 같은 트렐리스도를 재구성하여 Information Source를 디코딩하게 되는 것이다. 코딩시에는 전송될 V값들을 코드워드라 부르지만, 비터비 디코딩시에는 이 값들을 Branch Metric(BM)이라 부른다.4 shows a trellis diagram when the input sequence U = (0, 0, 1, 0, 1, 0, 0, 0, ...). In FIG. 4, a thick line indicates the flow of the input sequence. If the codeword values corresponding to the thick line are read as they are, values progressed for 8 unit time such as V = (00, 00, 11, 10, 00, 10, 11, 00, ...) are generated. These codeword values are transmitted through the channel, and the Viterbi detector decodes the information source by reconstructing the trellis as shown in FIG. 4. In coding, the V values to be transmitted are called codewords. In Viterbi decoding, these values are called Branch Metrics (BMs).

다음으로, 비터비 알고리즘에 대해 설명하기로 한다. A. J. Viterbi가 1967년 비터비 알고리즘(Viterbi Algorithm)이라 알려진 컨볼루션 코드의 디코딩 알고리즘을 처음으로 소개하였다. 이어, 1969년에는 Omura가 가중치를 가진 가장 짧은 확률거리를 계산하여 찾아낼 수 있는 dynamic programming 방법을 제시하였다. 이후, Forney는 컨볼루션 코드들이 Maximum Likelihood 디코딩 알고리즘을 통해 디코딩될 수 있다는 것을 알게 되었고, 비터비 알고리즘이 Intersymbol Interference(ISI)가 존재하는 채널을 통해 전송되는 신호들을 Maximum Likelihood Estimation을 통해 재생산해 낼 수 있다는 것을 밝혀냈다. 현재까지 비터비 알고리즘은 콘볼루션 코드방식을 사용하는 모든 채널의 디코딩 방식으로 쓰이고 있다. 비터비 디코딩 방식은 기존의 threshold 방식과는 달리 채널을 통해 전송받은 신호들에 가중치를 넣고 확률거리를 계산하여 가장 가능성 있는 신호를 검출하는 방식이다.Next, the Viterbi algorithm will be described. A. J. Viterbi first introduced the decoding algorithm of convolutional code, known as the Viterbi Algorithm, in 1967. In 1969, Omura presented a dynamic programming method that can be found by calculating the shortest probability distance with weights. Later, Forney found that convolutional codes could be decoded using the Maximum Likelihood decoding algorithm, and the Viterbi algorithm could reproduce signals transmitted over channels with Intersymbol Interference (ISI) through Maximum Likelihood Estimation. I found out. To date, the Viterbi algorithm has been used to decode all channels using convolutional code. Unlike the conventional threshold method, the Viterbi decoding method adds weights to signals received through a channel and calculates a probability distance to detect the most likely signal.

codeword V=(v0, v1, v2,…)가 Binary Symmetric Channel(BSC)을 통해 전달되어 비터비 검출기가 수신된 시퀀스 R = (r0, r1, r2,…)를 전송 받았다고 가정하자. 비터비 검출기는 신호를 전송받으면 모든 전이 가능한 경우에 대해 확률거리를 계산한다. 이를 수학식으로 나타내면 다음과 같다. The codeword V = (v 0 , v 1 , v 2 ,…) was passed through the Binary Symmetric Channel (BSC), indicating that the Viterbi detector received the received sequence R = (r 0 , r 1 , r 2 ,…). Suppose When a Viterbi detector receives a signal, it calculates the probability distance for all transitionable cases. This is expressed as the following equation.

Figure 112005074935197-pat00001
Figure 112005074935197-pat00001

여기서

Figure 112005074935197-pat00002
이다. 전송받은 코드워드에서 모든 경우에 대해 원래의 코드워드, 비터비 알고리즘에서는 Branch Metric(BM)을 빼게 된다. 이 값을 확률거리라 하고, 이 경우에는 Hamming distance라 한다. here
Figure 112005074935197-pat00002
to be. In all cases, the original codeword and the Viterbi algorithm subtract the branch metric (BM) from the received codeword. This value is called probability distance, and in this case Hamming distance.

상술한 예제를 가지고 비터비 알고리즘의 동작원리에 대해 설명한다. 컨볼루션 코딩에 의해 발생된 코드워드 V가 노이즈 채널을 통해 전송되어 비터비 검출기가 전송받은 코드워드 R은 다음과 같다.The operation principle of the Viterbi algorithm will be described with the example described above. The codeword V generated by the convolutional coding is transmitted through the noise channel, and the codeword R received by the Viterbi detector is as follows.

전송된 코드워드 : V = ( 00, 00, 11, 10, 00, 10, 11, 00, ㅇ)Codewords Transmitted: V = (00, 00, 11, 10, 00, 10, 11, 00, o)

수신된 코드워드 : R = ( 00, 01, 11, 10, 10, 10, 11, 00, ㅇ)Received codeword: R = (00, 01, 11, 10, 10, 10, 11, 00, o)

상기 코드워드를 비교해 보면, 두 번째와 다섯 번째 코드워드에서 에러가 발생한 것을 알 수 있다. 우선, 비터비 검출기가 전송받은 코드워드를 가지고 확률거리를 계산하여 트렐리스 다이어그램을 전개하는 방법에 대해 설명하도록 하겠다. Comparing the codewords, it can be seen that an error occurs in the second and fifth codewords. First, the Viterbi detector will be described how to develop a trellis diagram by calculating the probability distance from the transmitted codeword.

비터비 검출기가 첫 번째 코드워드 (00)를 입력 받았다면, 도 5의 (a)와 같이 트렐리스를 전개한다. 항상 트렐리스의 처음 상태는 (00)에서 시작되기 때문에 S0(00)에서 트렐리스가 전개되어 다음 상태인 S0(00)과 S2(10)로 상태가 변하게 된다. S0 에서 전개될 수 있는 경우는 S0 와 S2 두 가지 경우가 존재한다. S0 에서 S0 로 전개될 때의 Branch Metric(BM)값은 도 4에서 알 수 있듯이 (00)이고, S0에서 S2로 전개될 때의 BM값은 (11)이다. 이제 각각의 경우에 대해서 확률거리를 계산하면 된다. 해밍 거리(Hamming distance) 값을 계산해 보면, S0에서 S0로 전개될 경우에 는 (00)에서 (00)을 빼기 때문에 확률거리는 0이 된다. 도 5의 (a)에 보면 계산된 값을 확인할 수 있다. S0에서 S2로 전개될 경우에는 (00) 에서 (11)을 빼는 것이므로 확률거리는 2가 된다. 다음으로, time unit 2에서 비터비 검출기가 에러가 있는 신호 (01)을 받았다. 이 경우에도 마찬가지의 방법으로 확률거리를 계산하면 된다. 이제부터는 이전에 계산된 확률거리를 계속 누적시켜야 한다. 식으로 보면, 다음과 같다.If the Viterbi detector receives the first codeword (00), the trellis is developed as shown in FIG. Always the first state of the trellis is expanded trellis at Suga S 0 (00) since the start at (00) is changed to the next state of the state S 0 (00) and S 2 (10). If that can be deployed in the S 0 is there are two cases: S 0 and S 2. And Branch Metric (BM) value can be seen in Figure 4, as (00) when deployed in the S 0 to S 0, the value of BM when deployed in the S 0 to S 2 is 11. Now calculate the probability distance for each case. In calculating the Hamming distance (Hamming distance) value, when to be deployed from S 0 to S 0 is the probability because the distance is 0, the subtraction (00) from (00). In Figure 5 (a) it can be confirmed the calculated value. If it develops from S 0 to S 2 , the probability distance is 2 since (00) is subtracted from (11). Next, at time unit 2 the Viterbi detector received an error signal (01). In this case, the probability distance may be calculated in the same manner. From now on, you must continue to accumulate previously calculated probability distances. In terms of the equation,

Figure 112005074935197-pat00003
Figure 112005074935197-pat00003

따라서, 상태 S1의 경우 (01)에서 BM값 (10)을 뺀 확률거리 2와 이전 상태에서 저장되어 있던 확률거리 2를 더해서 현재 상태에서의 확률거리는 4가 되었다. S3의 경우에는 2이다. 다른 표현으로 보면 다음과 같다. Therefore, in the case of state S 1 , the probability distance in the current state is 4 by adding the probability distance 2 obtained by subtracting the BM value (10) from (01) and the probability distance 2 stored in the previous state. 2 for S 3 . In other words:

Figure 112005074935197-pat00004
Figure 112005074935197-pat00004

Time unit 3부터는 이제 모든 경우, 4-state의 트렐리스의 경우 8가지에 대해 모든 확률거리를 계산해야 된다. S2의 경우에 대해 계산해보면, S0에서 전개되어 오는 경우가 있고, S1에서 전개되어 오는 경우가 있다. 현재 전송받은 입력이 (11)이므로, S0에서 S2 로 전개된 경우의 확률거리는 1이고, S1 에서 S2 로 전개된 경우의 확률거리는 (11)에서 (10)을 뺀 값 1과 이전 확률거리 4를 더해 5가 된다. 이제 비터비 검출기는 두 가지의 경우에 대해 비교하고 둘 중 작은 확률거리 값을 선택하고 나머지는 버리게 된다. 이때 선택된 경우를 Survivor Path라 부르고 그 때의 확률거리 값은 다음과 같이 계산된다. From time unit 3 we now have to calculate all probability distances for all 8 cases for all cases, for the 4-state trellis. When calculating the case of S 2 , it may be developed from S 0 and may be developed from S 1 . Since the currently received input is (11), the probability distance when S 0 is expanded to S 2 is 1, and the probability distance when S 1 is expanded to S 2 is 1 and minus (10). Add 4 to the probability distance to 5. Now the Viterbi detector compares the two cases, selects the smaller probability distance value of the two, and discards the rest. The selected case is called Survivor Path and the probability distance value at that time is calculated as follows.

Figure 112005074935197-pat00005
Figure 112005074935197-pat00005

다른 상태들, S0 , S2 , S3의 경우에도 같은 방식으로 두 가지 경우에 대해 계산한 다음 확률거리 값이 작은 경우를 선택하여 레지스터에 저장하게 된다. Time unit 4 정도되면 벌써 선택되지 않은 패스(path)들이 눈에 띌 정도이다. 도 5의 (e)의 Time Unit 11를 보면 Time Unit 8까지는 survivor path가 단지 하나밖에 존재하지 않는다. 이제 이 값들을 차례대로 읽기만 하면 전송된 코드워트들이 디코딩되어 정보시퀀스(information sequence)가 복구되는 것이다. 이 때, 읽어야 하는 값들은 현재 time unit에서 가장 작은 확률거리 값을 가지고 있는 상태의 첫 번째 비트를 읽는 것이다. 그 값들을 차례대로 읽어보면, 다음과 같다.For the other states, S 0 , S 2 , and S 3 , we calculate the two cases in the same way and then select the case where the probability distance value is small and store it in the register. At time unit 4, paths that are not already selected are noticeable. Referring to Time Unit 11 of FIG. 5E, only one survivor path exists up to Time Unit 8. Now, reading these values in order, the transmitted codewords are decoded and the information sequence is restored. At this time, the values to be read are reading the first bit of the state having the smallest probability distance value in the current time unit. If you read the values in order, they are as follows.

Decoded Bits D = ( 0, 0, 1, 0, 1, 0, 0, 0, ㅇ)Decoded Bits D = (0, 0, 1, 0, 1, 0, 0, 0, ㅇ)

Info Sequence U = ( 0, 0, 1, 0, 1, 0, 0, 0, ㅇ)Info Sequence U = (0, 0, 1, 0, 1, 0, 0, 0, ㅇ)

확률거리를 계산하고 누적하는 과정에서 만약 채널에서의 노이즈나 여러 가지 이유로 에러가 삽입되지 않았다면 계산된 확률거리 중 가장 작은 값은 0이 될 것이다. 그러나, 에러가 삽입되어 확률거리 값이 0이 아닌 값이 되는 것이다. 따라 서, 확률거리가 가장 작은 값이 전송된 신호일 확률이 가장 높은 것이다. 위의 예는 비터비 디코딩 중에서 constraint length=2인 가장 간단한 4-state의 경우에 대한 것이었다. Constraint Length=7 이나 8 이상인 경우도 현재 쓰이고 있다. 비터비 알고리즘이 많은 응용 분야에서 사용되고 있지만, 기본적인 알고리즘은 앞의 예에서 든 것과 같다.In the process of calculating and accumulating probability distances, if the error is not inserted due to noise in the channel or for various reasons, the smallest value of the calculated probability distances will be zero. However, an error is inserted so that the probability distance value is nonzero. Therefore, the value with the smallest probability distance is most likely to be the transmitted signal. The above example was for the simplest 4-state case where constraint length = 2 in Viterbi decoding. Constraint Length = 7 or more than 8 are currently used. Although the Viterbi algorithm is used in many applications, the basic algorithm is the same as in the previous example.

상술한 바와 같이 컨볼루션 코딩된 값들이 노이즈 채널을 지나면서, 전송되는 신호에 에러가 삽입되었음에도 불구하고, 디코딩된 값들을 보면 깨끗하게 에러가 정정되어 있는 것을 알 수 있다. 이 예제에서는 두 번째와 다섯 번째 코드워드에 에러가 삽입되었다. 위의 예에서 볼 수 있듯이 확률거리를 계산하여 가장 가능성이 높은 신호를 검출하기 때문에 비터비 알고리즘은 Forward-Error- Correction(FEC) 기능이 있음을 알 수 있다. Although the convolution coded values pass through the noise channel as described above, even though an error is inserted into the transmitted signal, the decoded values clearly show that the error is corrected. In this example, an error is inserted in the second and fifth codewords. As shown in the example above, the Viterbi algorithm has a Forward-Error- Correction (FEC) function because it detects the most likely signal by calculating the probability distance.

다음으로, 비터비 검출기의 구조에 대해 설명하기로 한다. 도 6은 비터비 검출기의 기본 구성을 블록도로 도시한 것이다. 도 6을 참조하면, 비터비 검출기는 전송될 V 값과 입력되는 R 값의 차이를 나타내는 해밍거리(Hamming distance)를 계산하기 위한 Branch Metric(BM) Unit, 계산된 확률거리와 이전의 확률거리를 더하거나 비교하거나 Survivor Path를 선택하는 Add-Compare-Select(ACS) Uint, 상기 ACS unit에서 전달된 신호들을 토대로 트렐리스를 재구성하는 Path Memory(PM), 이렇게 세 부분으로 이루어져 있다. 상기 세 부분들이 상술한 비터비 알고리즘을 수행하여 인코딩되어 전송된 신호들을 깨끗하게 디코딩한다.Next, the structure of the Viterbi detector will be described. 6 is a block diagram showing the basic configuration of the Viterbi detector. Referring to FIG. 6, the Viterbi detector uses a branch metric (BM) unit for calculating a Hamming distance indicating a difference between a V value to be transmitted and an input R value, a calculated probability distance, and a previous probability distance. Add-Compare-Select (ACS) Uint for adding, comparing, or selecting a Survivor Path, Path Memory (PM) for reconstructing trellis based on the signals transmitted from the ACS unit. The three parts perform the Viterbi algorithm described above to cleanly decode the encoded and transmitted signals.

비터비 검출기를 구성하는 구조에는 여러 가지가 있지만, Branch Metric Unit, ACS Uint, Path Memory Unit 세 Uint가 주로 쓰이고 있고, 더 추가된다면 동기화 블록이나 마지막의 survivor path를 결정하는 블록이 추가되는 정도이다. 도 6의 D-1 Unit은 누적된 확률거리 값이 다음 상태가 들어왔을 때 비교하기 위해 사용되는 지연 소자이다.There are several structures that make up the Viterbi detector, but three Uints are mainly used, such as branch metric unit, ACS unit, and path memory unit, and if additional units are added, a synchronization block or a block for determining the last survivor path is added. D- 1 unit of FIG. 6 is a delay element used to compare accumulated probability distance values when a next state is entered.

먼저, Branch Metric Unit을 설명하기로 한다. 코딩된 신호들이 채널을 통해 비터비 검출기의 입력으로 들어오게 되면, 우선 모든 확장 및 전이 가능한 경우에 대해 확률거리로 알려진 가중치가 계산된다. 이런 확률거리를 계산하는 블록을 Branch Metric(BM) Unit이라 부른다. 가장 간단하게는 Hard decision을 할 경우에는 해밍거리로 알려진 확률거리를 계산하는 방법이 있다. 상술한 확률거리 계산법을 말한다. Hard decision 방법의 경우 결정되는 비트수가 1비트로 한정되어 있는 경우에 주로 사용되고 있다. 그러나, 최근 처리되어야 할 비트수의 증가로 해밍거리방법 만으로는 여러 가지 경우에 대해 확률거리를 계산할 때 가중치 값을 충분히 분리하지 못하기 때문에 Soft decision이나 비트수가 여러 개일 경우 유클리디안 거리(Euclidean distance)를 사용한다. First, the branch metric unit will be described. When the coded signals enter the input of the Viterbi detector through the channel, the weights, known as probability distances, are first calculated for all possible extensions and transitions. The block that calculates this probability distance is called a branch metric (BM) unit. In the simplest case, the hard decision is to calculate the probability distance known as the hamming distance. The probability distance calculation method mentioned above is said. The hard decision method is mainly used when the number of bits determined is limited to 1 bit. However, due to the increase in the number of bits that need to be processed recently, the Hamming distance method alone does not sufficiently separate the weighted values when calculating the probability distance for various cases. Therefore, when the soft decision or the number of bits is large, the Euclidean distance Use

해밍거리를 계산하는 경우 전송받은 신호로부터 original BM 값들을 단순히 빼주기만 하여 Hamming weight를 계산하였지만, Euclidean distance의 경우, Hamming distance 값에 제곱하여 가중치 값들이 더욱 크게 생성되게 한다. 그러나, Euclidean distance를 계산하게 되면, 2개의 제곱항과 하나의 곱셈항이 생성된다. original BM 값인 Vj의 경우 상수항이기 때문에 따로 제곱을 취해 계산할 필요가 없다. 그러나, Received signal Rj의 경우 제곱의 계산을 취해야 한다. 실제 하드웨어의 구현시 제곱을 계산하는 곱셈기를 만드는 것은 하드웨어의 부담이 굉장히 크다. 따라서 수학식 8과 같이 Euclidean 거리를 계산한다.When calculating the Hamming distance, Hamming weight was calculated by simply subtracting the original BM values from the transmitted signal. However, in the case of Euclidean distance, the Hamming distance is squared to the Hamming distance value to make the weight values larger. However, when calculating Euclidean distance, two square terms and one multiplication term are generated. In the case of Vj, the original BM value, since it is a constant term, there is no need to calculate squares separately. However, for received signal Rj, the square must be calculated. In a real hardware implementation, building a multiplier that calculates squares is very expensive. Therefore, Euclidean distance is calculated as shown in Equation 8.

Figure 112005074935197-pat00006
Figure 112005074935197-pat00006

상기 계산된 확률거리 값들은 Add-Compare-Select(ACS) Unit으로 전달되어 다음 계산이 계속 이루어진다. 수학식 8에 의해 가능성 있는 모든 경로에 대한 확률 거리를 구하고 그 중에서 가장 작은 확률 거리를 가지는 천이 경로의 신호 열을 선택함으로써 원래의 디지털 데이터 열을 추출해낼 수 있다. The calculated probability distance values are transferred to an Add-Compare-Select (ACS) unit to continue the next calculation. Equation 8 can be used to extract the original digital data sequence by obtaining the probability distances for all possible paths and selecting the signal sequence of the transition path having the smallest probability distance.

Branch Metric(BM) 값들은 응용되는 분야에 따라 다른 값을 가질 수 있고, 상태수가 다를 때에도 4-state일 때와 8-state일 때처럼 다른 값을 가지게 된다. 4-state 일 때는 도 3과 같이 (00), (10), (01), (11)의 4가지의 Branch Metric 값을 가지고, 8-state 일 때는 EPR4 read 채널(channel)에 사용되는 예와 같이 0, ±1, ± 2 다섯 가지의 값으로 나뉘어진다. Branch metric (BM) values can have different values depending on the application, and even when the number of states is different, they have different values as in the 4-state and 8-state. In case of 4-state, it has four branch metric values of (00), (10), (01), and (11) as shown in FIG. 3, and in case of 8-state, it is used for EPR4 read channel. As 0, ± 1, ± 2 divided into five values.

다음으로 ACS 유니트를 설명하기로 한다. 전송받은 신호들이 BM unit에서 각각의 전이 가능한 경우에 대해 확률거리 값들을 계산하여 ACS unit에 전달하게 되면, ACS unit은 이제 전송받은 확률거리 값들을 가지고 경로메모리(Path Memory)에서 트렐리스를 전개시켜 나갈 여러가지 신호들을 만드는 작업을 하게 된다. 앞에서 예를 들어 설명한 것처럼, 도 7에서와 같은 트렐리스를 전개시켜 나가는 계산들 을 하게 된다. 우선 Time unit 2까지는 단순히, BM unit에서 계산된 확률거리 값들을 각각의 상태에 해당하는 레지스터에 확률거리를 누적시켜 저장하게 된다. 그러나, 이제 Time unit 3이 되면 상황이 바뀌어 각각의 상태에 들어오게 되는 확률거리 값이 아래쪽에서 오는 것 위쪽에서 오는 것 두 가지가 된다. 예로, Time unit 3의 S0상태인 (00)에서는 이전 상태인 Time unit 2의 S0와 S1의 두 상태에서 확률거리 값들이 전달되어 들어온다. 현재 들어온 확률거리 값들이 계산되어 이전 상태에서 들어온 누적된 확률거리 값들과 더해져(Add) 전달된다. Next, the ACS unit will be described. When the received signals calculate the probability distance values for each transitionable case in the BM unit and deliver them to the ACS unit, the ACS unit now deploys the trellis in the path memory with the received probability distance values. You will be working on a variety of signals to get you going. As described above, for example, calculations are performed to develop the trellis as shown in FIG. First, up to time unit 2, the probability distance values calculated in the BM unit are stored by accumulating the probability distances in registers corresponding to each state. However, when time unit 3 is reached, there are two probable distance values coming from the bottom and coming from the top. For example, in the state S0 of time unit 3 (00), the probability distance values are transmitted in two states S0 and S1 of time unit 2 which are the previous states. The current probability distance values are calculated and added to the accumulated probability distance values from the previous state.

이때, ACS unit은 두 가지 확률거리 값을 비교(Compare)한다. 그리고, 확률거리가 작은 쪽의 값을 선택(Select)한다. 마지막으로, 현재 선택된 값을 레지스터에 저장해 다음 상태(Time unit 4)에서 사용한다. 선택된 값들을 Survivor Path라 부른다. 선택되지 못한 값들은 버려지게 된다. 그래서, 도 7에 선택되지 못한 Path에는 X를 표시하였다. 위와 같은 과정을 통해서, 트렐리스가 시간에 따라 진행되어 나간다. 이렇게 계산된 값들과 Survivor path와 관련된 일련의 신호들이 경로 메모리(Path Memory)에 전달된다.At this time, the ACS unit compares two probability distance values. Then, the value with the smaller probability distance is selected. Finally, the currently selected value is stored in a register for use in the next state (Time unit 4). The selected values are called Survivor Path. Unselected values are discarded. Thus, X is indicated in the path not selected in FIG. Through this process, Trellis proceeds with time. The calculated values and a series of signals related to the survivor path are transferred to the path memory.

도 8에 8-state 비터비 검출기의 ACS 회로의 일부를 나타내었다. 도 8의 (a)는 상태 (000)와 (100)에서 (000)와 (001)으로 전개되는 트렐리스이다. BM 값이 0, 2yk+1, -2yk+1의 값을 가지게 된다. 이것을 회로로 구성한 것이 도 8의 (b)이다. 도 8의 (b)에서 볼 수 있듯이 BM을 계산하는 부분의 add/subtractor, incrementor와 현재 들어온 값과 이전 값을 비교하는 비교기(comparator), 둘 중 작은 값을 선택 하는 Mux, survivor 확률거리 값을 저장하는 플립플롭(Flip-flop) 등을 볼 수 있다. 또한, survivor path에 관한 정보를 경로메모리(Path Memory)에 전달하는 sm값을 볼 수 있다. 8 shows a part of the ACS circuit of the 8-state Viterbi detector. 8A is a trellis that develops from states (000) and (100) to (000) and (001). The BM value has a value of 0, 2y k +1 and -2y k +1. This circuit is constituted by Fig. 8B. As shown in (b) of FIG. 8, add / subtractor, incrementor and comparator comparing the current value and the previous value, and the Mux and survivor probability distance values of the smaller value of the BM calculation part. You can see the flip-flop you are saving. In addition, it can be seen that the sm value that delivers information about the survivor path to the path memory (Path Memory).

도 8의 (b)는 8-state 비터비 검출기의 일부이다. 이런 ACS unit 4개가 모여 full 비터비 검출기의 ACS unit을 완성한다. ACS 회로에서 확률거리를 전달하기 위해 n비트 버스선을 이용하였으며 도 8의 (b)에서는 굵은 선으로 나타내었다. 여기서 ACS 회로는 레지스터 2개, 증분기 회로(increment circuit) 2개, 가산기 2개, 비교기2개, Mux 2개 등으로 이루어져 있음을 알 수 있다. 이들은 모두 확률거리를 더하거나 비교해야 하기 때문에 n비트 회로로 이루어져 있으며 이에 대한 하드웨어가 상당히 큰 비중을 차지하게 된다. 8B is a part of an 8-state Viterbi detector. These four ACS units combine to complete the ACS unit of the full Viterbi detector. An n-bit bus line was used to transmit the probability distance in the ACS circuit, and is shown in bold in FIG. Here, it can be seen that the ACS circuit consists of two registers, two incremental circuits, two adders, two comparators, and two Muxes. They all consist of n-bit circuits because they need to be added or compared with probability distances, and hardware is a big part of this.

다음으로 경로 메모리(Path Memory)를 설명하기로 한다. 앞에서 설명한 ACS unit에서 전달받은 신호들을 이용하여 도 7에 나타난 트렐리스를 확장하여 어느 한 값으로 수렴하여 입력신호를 디코딩하여 출력으로 내보내는 역할을 하는 블록이 경로 메모리(PM)이다. 앞의 예에서 설명한 8-state 비터비 검출기의 경로메모리를 도 9에 나타내었다. Next, a path memory will be described. The path memory PM is a block that expands the trellis shown in FIG. 7 by using the signals transmitted from the ACS unit, converges to a value, decodes the input signal, and outputs the output signal to the output. The path memory of the 8-state Viterbi detector described in the previous example is shown in FIG. 9.

도 9에서 볼 수 있듯이 레지스터에 전달될 값들이 저장되고, ACS 회로에서 전달받은 sm신호에 의해 Mux가 전달되어야 할 신호를 선택하게 되어 전개되어 간다. PM 회로는 PM Cell 회로들이 여러 신호를 추적할 수 있도록 여러 개를 직렬로 연결하게 된다. PM회로의 초기 입력 값으로 각 상태를 나타내는 가장 이전 디지털 값을 이용한다. 즉, (100) 상태에 해당되는 PM 회로 초기 입력 값은 1을 이용한다. 각 상태의 가장 이전 디지털 값을 이용하여 초기값이 정해지면 트렐리스 확장을 거쳐가며 어는 한 값으로 수렴되게 된다. 이 값이 결국 비터비 검출기의 출력이 된다.As shown in FIG. 9, values to be transmitted to the register are stored, and the signal to be transmitted Mux is selected by the sm signal received from the ACS circuit. PM circuits are connected in series so that PM Cell circuits can track multiple signals. As the initial input value of the PM circuit, the oldest digital value representing each state is used. That is, the PM circuit initial input value corresponding to the (100) state uses 1. When the initial value is determined by using the oldest digital value of each state, it goes through the trellis expansion and converges to one value. This value eventually becomes the output of the Viterbi detector.

기본적인 비터비 검출기의 경로메모리의 구조는 위와 같다. 비터비 검출기의 구조나 구현(implementation)에 대한 많은 연구가 진행되어 왔다. 그 중에서도, 비터비 검출기의 성능(Performance)를 평가하는 요소 중 속도(speed)와 Bit Error Rate(BER)에 가장 영향을 많이 주는 블록은 경로메모리이다. The structure of the path memory of the basic Viterbi detector is as described above. Much research has been conducted on the structure or implementation of a Viterbi detector. In particular, among the factors evaluating the performance of the Viterbi detector, the block having the most influence on speed and Bit Error Rate (BER) is path memory.

비터비 검출기의 PM 회로는 크게 Register-Exchange(RE) 방식과 Trace-Back(TB) 방식으로 나뉜다. 대부분의 비터비 검출기의 PM회로를 구성할 때, 이 두 가지 방식이나 이 둘을 응용한 PM회로들이 사용된다. 위의 예에서는 Register Exchange 방식을 예로 든 것이다. PM circuit of Viterbi detector is divided into Register-Exchange (RE) method and Trace-Back (TB) method. When constructing the PM circuit of most Viterbi detectors, these two schemes or PM circuits using both are used. The example above uses the Register Exchange method as an example.

상기 RE방식은 크기가 작고, 속도가 빠르고, 복잡도(Complexity)가 낮지만 BER이 높고 파워소모가 큰 단점이 있다. 이와 반대로 Trace Back 방식은 크기가 상기 RE방식에 비해 크고, 속도가 느리고, 복잡도가 높지만, BER이 낮고 파워소모가 작은 장점이 있다. 이 두 가지 방식의 이러한 특성 때문에 각각의 응용방식에 적당한 PM방식이 여러 분야에서 활용되고 있다.The RE method is small in size, fast in speed, and low in complexity, but has a high BER and high power consumption. On the contrary, the Trace Back method has a large size, a slow speed, and a high complexity compared to the RE method, but has a low BER and low power consumption. Due to these characteristics of these two methods, the PM method suitable for each application method is used in various fields.

구체적으로, Register Exchange 경로메모리를 설명하기로 한다. Register Exchange 방식은 가장 간단하게 survivor path를 업데이트하고 디코딩하는 방식이다. 모든 트렐리스의 상태들이 레지스터와 연결되어 한 클럭에 한번씩 해당되는 이전 상태를 읽어가는 방식이다. ACS unit에서 결정된 survivor path에 해당되는 신 호들이 전달되어 저장되고 확장된다.Specifically, Register Exchange path memory will be described. Register Exchange is the simplest way to update and decode survivor paths. All trellis states are linked to registers to read the previous state once per clock. Signals corresponding to the survivor path determined by the ACS unit are delivered, stored and expanded.

모든 상태의 업데이트와 신호의 전달은 한 클럭에서 동시에 일어나게 된다. 도 7의 4-state 트렐리스와 같은 모양으로 트렐리스가 전개된다. Register Exchange 방식은 임의의 비트가 ACS에서 결정된 survivor path를 따라 Mux와 레지스터에 의해 전달되어 최종적으로 디코딩되어 출력된다. PM cell들이 직렬로 여러 개 연결되어 PM를 구성하게 된다.All state updates and signal transfers occur simultaneously on one clock. The trellis is developed in the shape of the 4-state trellis of FIG. 7. In the Register Exchange method, arbitrary bits are transferred by the mux and the register along the survivor path determined by the ACS, and finally decoded and output. PM cells are connected in series to form PM.

Trace-Back(TB) 방식은 디코딩 길이에 해당하는 시간 진행 후에 임의의 상태 혹은 최소 경로 매트릭을 갖는 상태에서 출발하여 survivor path를 시간의 역순으로 탐색하는 방법으로, 모든 생존자 경로가 하나의 경로로 병합되는 특성을 이용해 복호를 진행한다. 최소 survivor path의 업데이트와 디코딩을 뒤에서부터 앞으로 찾아가는 방식이다. Survivor path를 거꾸로 찾아가기 위해 decision sequence들을 임의로 저장할 메모리가 필요하게 된다. Trace-Back방식은 survivor path를 알려주는 decision 값들을 저장할 임의의 공간과 시간이 필요하고, 또 저장된 값들을 거꾸로 찾아갈 traceback 회로와 시간, 다시 디코딩된 비트들을 write해야 할 시간이 필요하다. Trace-Back (TB) is a method of searching survivor paths in reverse chronological order starting from an arbitrary state or having a minimum path metric after the time progress corresponding to the decoding length, and all survivor paths are merged into one path. The decoding is performed by using the characteristic. It is a way to go from back to front to update and decode the minimum survivor path. In order to navigate the survivor path backwards, we need memory to store decision sequences arbitrarily. The trace-back method requires arbitrary space and time to store decision values indicating the survivor path, traceback circuit and time to retrieve stored values backwards, and time to write decoded bits again.

Trace-Back방식에서는 read해야 하는 시간이 굉장히 길기 때문에 병렬로 연결하여 Trace-Back방식에서는 주로 Bank라 한다. 다른 쪽이 읽는 동안 디코딩하고, 또 다른 Bank는 write하는 식의 방식을 사용하여 디코딩 시간을 줄이려는 연구가 많이 진행되었다. 또한, 여러 개의 포인터를 사용하여 디코딩 시간을 줄이려는 노력들도 있다. 이렇게 하드웨어의 부담과 속도에 대한 문제점이 많은 것에도 불구하 고 TB 방식이 최근에는 더 많이 이용되고 있다. Survivor path 계산은 이론적으로 무한 시간 동안 진행되므로 제한된 메모리를 재사용하기 위한 읽기 및 쓰기 방법 구성에 의해 다양한 형태의 구현이 가능하며, 복호 지연의 크기와 읽기 및 쓰기 속도 차이, 포인터의 개수에 따라 k-pointer even, k-pointer odd, one-pointer 방식으로 나누어 필요한 메모리 크기와 메모리 개수를 계산할 수 있다. 이때 survivor path 계산의 메모리 동작은 Write(ACS unit에서 발생해서 들어오는 decision vector의 저장과정), Trace-Back(survivor path 수렴에 필요한 역추적 과정), Decode Read(수렴된 survivor path에서 디코딩된 출력을 읽는 과정)으로 나타낼 수 있다. In the Trace-Back method, since the time to read is very long, it is usually called Bank in the Trace-Back method by connecting in parallel. Much research has been done to reduce the decoding time by using a method of decoding while the other reads and another bank writes. There are also efforts to reduce decoding time by using multiple pointers. Despite the burden of hardware and speed, the TB method has been used more recently. Survivor path calculation is theoretically performed for infinite time, and various forms can be implemented by configuring read and write methods for reusing limited memory, and depending on the size of the decoding delay, the difference between the read and write speeds, and the number of pointers, k- You can calculate the required memory size and the number of memory by dividing into pointer even, k-pointer odd, and one-pointer methods. At this time, the memory operation of survivor path calculation includes Write (storing of decision vector coming from ACS unit), Trace-Back (backtracking process required for survivor path convergence), and Decode Read (reading decoded output from converged survivor path). Process).

메모리 읽기 과정은 Mux와 레지스터로 구성된 포인터 개념으로 설명할 수 있으며 포인터 개수에 따라 메모리 크기와 뱅크 수가 달라진다. k-pointer even 방식의 경우 역추적과 복호에 필요한 읽기 포인터의 개수를 k로 설정하고 읽기 및 쓰기를 분리하여 진행한다. 포인터 수를 3으로 설정하고 길이가 L/2 인 메모리 뱅크를 이용할 경우 전체 메모리 사용량은 3L 에 해당하며 추적 방식의 생존자 경로 계산기 가운데 가장 제어가 간단한 경우이다. 복호와 쓰기 과정을 한 메모리 뱅크에서 동시에 진행하는 k-pointer odd 방식의 경우 포인터를 3으로 설정하는 경우 전체 메모리 크기는 2.5L 로 감소하나 시간 진행에 따라 메모리의 읽기, 쓰기 방향이 반복적으로 변하게 되므로 장치의 설계가 k-pointer even 방식에 비해 복잡한 단점이 있다. 쓰기 및 읽기의 속도가 1 대 3으로서 다른 경우인 1-pointer 방식의 경우 전체 소모량은 2L로 기타 방식들에 비해 가장 적으나 메모리 접근(access) 속도가 다 르므로 전체 시스템의 동작 속도가 메모리 읽기 속도의 1/3으로 제한되는 단점이 있어 완전 병렬 구조에서 사용이 힘들며, 다중 프로세서 및 분산 메모리 환경에서의 소프트웨어 구현에 적합한 것으로 알려져 있다.The memory read process can be explained by the concept of a pointer consisting of mux and registers. The memory size and number of banks vary depending on the number of pointers. In the case of k-pointer even, the number of read pointers required for backtracking and decoding is set to k, and the read and write are separated. If the number of pointers is set to 3 and a memory bank of length L / 2 is used, the total memory usage is 3L, which is the simplest control of the survivor path calculator. In the case of k-pointer odd method, which decodes and writes simultaneously in one memory bank, if the pointer is set to 3, the total memory size is reduced to 2.5L, but the reading and writing directions of the memory are changed repeatedly as time progresses. The design of the device is complicated compared to the k-pointer even method. The 1-pointer method, where write and read speeds are different (1 to 3), consumes 2L less than the other methods, but the memory access speed is different. The disadvantage of being limited to one-third of the speed makes it difficult to use in fully parallel architectures and is well suited for software implementations in multiprocessor and distributed memory environments.

Hybrid Path Memory 방식은 Register Exchange Path Memory 방식 및 Trace-Back Path Memory 방식을 결합한 구조로, survivor path 병합을 위한 trace back 과정을 Register Exchange방식을 응용한 trace forward 구조로 대체함으로써 메모리 뱅크수와 포인터 개수의 증가 없이 복호기의 메모리 소요량을 감소시킬 수 있다. trace forward 경로 메모리는 Register Exchange 방식을 응용하며, 각 상태의 레지스터 크기는 L 이 아닌 K-1 비트로 고정되며 초기값으로 각 상태의 이진 표현이 할당된다. 각 레지스터는 디코딩 길이에 해당하는 L 시간 동안 새로운 비트의 추가 혹은 쉬프트 연산 없이 ACS 계산기의 결정에 따라 두 개의 입력 상태 중 하나의 값으로 갱신된다. 디코딩 길이 이후 각 레지스터는 수렴된 하나의 생존자 경로에 해당하는 상태 값을 공통적으로 가지게 되며 이는 Trace-Back Read동작과 동일한 결과를 의미한다. Trace forward PM에 의해 Track-Back Read동작은 생략되며, 디코딩 길이에 해당하는 L 시간마다 복호 시작에 필요한 생존자 경로의 상태를 Trace-Back 레지스터에 제공한다. Trace-Back 레지스터는 trace forward 메모리 읽기 과정을 통해 해당 블록의 복호 결과를 추출하게 된다The hybrid path memory method combines the register exchange path memory method and the trace-back path memory method, and replaces the trace back process for merging survivor paths with the trace forward structure applying the register exchange method. The memory requirements of the decoder can be reduced without increasing. The trace forward path memory uses the Register Exchange method. The register size of each state is fixed to K-1 bits, not L, and a binary representation of each state is assigned as an initial value. Each register is updated to the value of one of the two input states, as determined by the ACS calculator, without adding or shifting new bits for L time corresponding to the decoding length. After the decoding length, each register has a common state value corresponding to one converged survivor path, which means the same result as the trace-back read operation. Track-Back Read operation is skipped by Trace forward PM, and it provides the trace-back register with the survivor path state necessary to start decoding every L time corresponding to the decoding length. The Trace-Back register extracts the decoding result of the block through the trace forward memory read process.

Hybrid trace forward Path Memory의 메모리는 WD와 DR의 두 동작만을 수행하게 된다. 읽기 및 쓰기 뱅크를 분리한 방식인 경우 전체 소요 메모리는 3L 에 해당하며, 읽기와 쓰기를 한 뱅크에서 병행하는 형태로 전환할 경우 소요량은 2L로 줄어들 수 있다. Hybrid trace forward 경로 메모리의 경우 Trace-Back Read 동작이 생략되어 읽기 및 쓰기의 속도가 동일하므로 1-pointer 방식과 비교는 불필요하다.The memory of the hybrid trace forward path memory performs only two operations, WD and DR. In the case of separating the read and write banks, the total required memory corresponds to 3L, and the requirements can be reduced to 2L when the read and write are converted in the same bank. In the case of hybrid trace forward path memory, trace-back read operation is omitted, so the speed of read and write is the same, so it is not necessary to compare with 1-pointer method.

다음으로 다양한 경로 메모리를 설명하기로 한다. ACS unit에서 전달받은 신호들을 이용하여 트렐리스를 확장하여 어느 한 값으로 수렴하여 입력신호를 디코딩하여 출력으로 내보내는 역할을 하는 블록이 경로메모리(PM) 이다. 기본적인 Path Memory는 상술하였으며, Register Exchange방식이나 Trace-Back방식을 응용한 몇 가지 경로 메모리에 대해 설명하기로 한다. 상기 Path Memory 방식들은 본 발명에 의한 Path Memory의 일부 또는 기본이 되는 PM회로들이다.Next, various path memories will be described. The path memory (PM) is a block that expands the trellis using the signals received from the ACS unit, converges to a value, decodes the input signal, and sends it to the output. Basic path memory has been described above, and some path memories using the Register Exchange method or the Trace-Back method will be described. The path memory methods are PM circuits which are part or basic to the path memory according to the present invention.

먼저, Register Exchange Method를 설명한다. 레지스터 교환방식은 앞에서 서술한 것처럼 트렐리스와 같은 모양을 가지고, ACS에서 계산된 survivor path를 따라 모든 레지스터와 멀티플렉서들이 동작하여 입력으로 들어온 정보비트(information bit)가 출력으로 전달되는 과정에 의해 디코딩한다. 레지스터 교환방식은 traceback을 하지 않기 때문에 속도가 TB 방식에 비해 빠르다. 이 방식은 ACS 회로로부터 전달받은 survivor path에 관한 컨트롤 신호에 의해 정보비트(information bit)가 첫 번째 스테이지에서 마지막 스테이지까지 전달된다. 즉, 레지스터에 들어있는 값들이 그대로 다음 레지스터에 전달되기 때문에 Register Exchange 방식이라 한다. 도 10은 8-state의 레지스터 교환방식을 나타낸 것이다.First, the Register Exchange Method is explained. The register exchange method has a trellis-like shape as described above, and all the registers and multiplexers operate along the survivor path calculated by the ACS to decode the information bits as inputs. . The register exchange method is faster than the TB method because no traceback is performed. In this method, the information bit is transmitted from the first stage to the last stage by the control signal of the survivor path received from the ACS circuit. In other words, it is called Register Exchange because the values in register are transferred to the next register. 10 shows an 8-state register exchange scheme.

도 10에서 볼 수 있듯이 정보비트(information bit) 0 또는 1이 입력으로 레지스터에 들어가게 되고, ACS unit으로부터 전달받은 컨트롤 신호 sm신호에 의해 information bit들이 트렐리스로 전달되어 최종적으로 출력단에 전달된다. 이 방식은 0 또는 1이 레지스터에 저장되고 한 클럭에 한번씩 컨트롤 신호와 Mux에 의해 다음 레지스터로 전달되는 과정에 의해 경로메모리가 트렐리스를 전개해 나가는 방식이다. 도 10의 PM cell들이 직렬로 연결되어 경로메모리를 구성한다. As shown in FIG. 10, information bits 0 or 1 enter the register as inputs, and information bits are transmitted to the trellis by the control signal sm signal received from the ACS unit and finally transferred to the output terminal. This is a way for path memory to deploy trellis by zero or one stored in registers and transmitted to the next register by the control signal and Mux once per clock. PM cells of FIG. 10 are connected in series to form a path memory.

다음으로 Path Selection Method를 설명한다. 경로선택신호 메모리(Path Selection Signal Memory) 방식은 처음 DVD Partial Response Maximum Likelihood(PRML) read channel 시스템을 위해 개발된 것이다. 이 방식은 상술한 Register Exchange 방식을 응용한 방식으로 DVD PRML channel의 특성과, 비터비 검출기의 앞뒤에서 코딩 및 디코딩 방식, RLL(2,10) + NRZI + PR(3,4,4,3)에 의해 상태수가 6개이고, 또한 새롭게 응용된 ACS unit에 의해 경로메모리의 크기를 줄이려는 방식이다. Next, the Path Selection Method is explained. The Path Selection Signal Memory method was originally developed for the DVD Partial Response Maximum Likelihood (PRML) read channel system. This method applies the above-described Register Exchange method, and the characteristics of the DVD PRML channel, the coding and decoding method before and after the Viterbi detector, RLL (2,10) + NRZI + PR (3,4,4,3) The number of states is 6 by, and the method of reducing the size of the path memory by the newly applied ACS unit.

Survivor path의 길이를 N이라 하고, 일반적으로 6-state를 가지는 비터비 검출기의 경로메모리에 사용되는 레지스터의 개수가 6N이라 할 때, DVD read channel에서 Path Selection방식에 의해 사용되는 경로메모리의 레지스터의 개수는 2N으로 줄일 수 있다. information bit가 전달되고 저장되는 레지스터를 없애고 ACS unit으로부터 전달되어 오는 컨트롤신호를 레지스터에 저장하여 information bit를 출력으로 전달시키는 방식이다. 도 11에서 보면, 기본적인 구조는 Register Exchange 방식과 같이 information bit들이 컨트롤 신호에 의해 제어되고 전달되어 출력으로 나가는 방식은 같으나, information bit가 레지스터에 저장되어 전달되던 Register Exchange 방식과는 달리, 컨트롤 신호 sm 값들이 뒤에서부터 전달되어 information bit를 제어하고 트렐리스를 따라 전달시켜 디코딩해서 출력한다. DVD read channel에서는 6-state의 트렐리스를 조정하고 information bit들을 전개시키는 컨트롤 신호가 두 개만이 사용되기 때문에 information bit들을 전달하는데 사용하던 레지스터들을 모두 없애고 두 개의 컨트롤 신호만이 레지스터에 저장되어 사이즈를 많이 줄일 수 있지만, 일반적인 트렐리스를 가진 비터비 검출기에서는 state 수 만큼 컨트롤 신호 역시 필요하기 때문에 사이즈를 줄일 수가 없다. 그러나, 종래의 Register Exchange 방식을 응용한 비슷한 성능을 가진 새로운 Path Memory 방식을 만들 수가 있다. 도 11에서 알 수 있듯이 Register Exchange 방식과 마찬가지로 PM cell들이 직렬로 연결되어 경로메모리를 구성한다. When the length of the survivor path is N and the number of registers used for the path memory of the Viterbi detector having 6-state is 6N, the register of the path memory used by the path selection method in the DVD read channel is 6N. The number can be reduced to 2N. It removes the register where the information bit is transmitted and stored and saves the control signal from the ACS unit in the register to transfer the information bit to the output. Referring to FIG. 11, the basic structure is the same as the method in which the information bits are controlled and transmitted by the control signal and go out to the output as in the register exchange method. However, unlike the register exchange method in which the information bit is stored in the register and transmitted, the control signal sm The values are passed from behind to control the information bit, pass along the trellis, decode and output it. In the DVD read channel, only two control signals are used to adjust the 6-state trellis and expand the information bits. Therefore, the registers used to transmit the information bits are eliminated and only two control signals are stored in the register. However, in Viterbi detectors with conventional trellis, the size of the control signal is not as small as the number of states. However, it is possible to make a new path memory method with similar performance by applying the conventional register exchange method. As can be seen in Figure 11, the PM cells are connected in series as in the Register Exchange method to form a path memory.

Systolic Method를 설명한다. Systolic 방식은 Trace-Back Path Memory의 큰 사이즈와 높은 complexity, constraint length가 길수록 디코딩 시간이 길어지는 단점을 보안하고자 만든 방식이다. Trace-Back 방식을 응용하여 저장매체(storage)의 크기를 줄이고 디코딩 시간도 짧게 만들었다. 상술한 비터비 알고리즘을 설명할 때 나온 도 5의 예를 기본으로 systolic방식을 설명할 것이다. 도 5는 Register Exchange방식뿐만 아니라 Trace-Back방식으로도 설명이 가능하다. Register Exchange방식은 information비트가 ACS unit에서 전달받은 컨트롤 신호에 의해 survivor path를 따라 이동하여 출력되는 방식이고, Trace-Back방식은 도 5에 도시된 y 레지스터에 저장되어 있는 값들에 의해 디코딩되는 방식이다. Systolic 방식 역시, 상기 y 레지스터에 저장되어 있는 값들을 이용하여 신호들을 디코딩한다. 상기 y레지스터에 들어있는 값들은 survivor path가 트렐리스에서 보면 위쪽에서 왔 는지 아래쪽에서 왔는지를 가리키는 벡터이다. 도 3의 트렐리스를 보면 현재상태는 이전상태 두 군데에서 확장되어 현재상태에 이른다. 예를 들어, 상태 (00)은 이전 상태 (00), 또는 (01)에서 확장되어 온 값이다. 만약, 현재상태가 (00)이고, 이전 상태(00)에서 확장되어 왔다면, y레지스터에 저장되는 값은 0이 되고, 이전 상태(01)에서 확장되어 왔다면, y레지스터에 저장되는 값은 1이 된다. y레지스터에 저장되는 값들은 ACS unit에서 계산되어 들어오는 값이다. Trace-Back방식이 파이프라인을 사용하여 디코딩 시간을 줄이는 대신 사이즈가 커지는 단점이 있는 반면 systolic 방식은 사이즈도 줄이고 디코딩 시간도 줄이려는 방식이다. Describe the Systolic Method. The Systolic method is designed to secure the disadvantage that the larger the trace-back path memory, the higher the complexity, and the longer the constraint length, the longer the decoding time. The Trace-Back method is applied to reduce the storage size and shorten the decoding time. The systolic method will be described based on the example of FIG. 5 when the above-described Viterbi algorithm is described. 5 can be described not only in the Register Exchange method but also in the Trace-Back method. The register exchange method is a method in which the information bit is moved along the survivor path by the control signal received from the ACS unit and is outputted, and the trace-back method is decoded by the values stored in the y register shown in FIG. . Systolic scheme also decodes the signals using the values stored in the y register. The values in the y register are vectors indicating whether the survivor path is from the top or the bottom when viewed in the trellis. Referring to the trellis of FIG. 3, the current state is extended from two places to the current state. For example, state (00) is a value that has been expanded from the previous state (00), or (01). If the current state is (00) and has been expanded in the previous state (00), the value stored in the y register is 0. If it has been expanded in the previous state (01), the value stored in the y register is It becomes 1. The values stored in the y register are the values calculated by the ACS unit. While the Trace-Back method uses a pipeline to reduce the decoding time, the size is increased, while the systolic method attempts to reduce the size and the decoding time.

도 13은 상술한 예를 가지고 systolic Path Memory로 다시 예를 든 것이다. Systolic 방식은 ACS unit에서 전달받은 신호를 y레지스터와 x레지스터에 저장하고 계산하여 디코딩하는 방식이다. 도 12에서는 위쪽의 세로 4개의 레지스터가 y레지스터에 해당하고 아래쪽의 가로 2개의 레지스터가 x레지스터에 해당한다. Register Exchange방식과는 달리 이제 information bit가 전달되지 않고, 도 5의 x, y 레지스터에 들어있는 값들이 한 클럭에 한번씩 출력 쪽으로 이동한다. y레지스터에 저장되는 값들은 survivor path에 관련된 값들이고, x레지스터에 저장되는 값들은 현재 상태에서 가장 작은 확률거리 값을 가진 상태를 가리키는 값이다. 13 shows an example of the systolic path memory again with the above-described example. Systolic method is a method of storing, calculating and decoding the signal received from ACS unit in y register and x register. In FIG. 12, the upper four registers correspond to the y register and the lower two registers correspond to the x register. Unlike the Register Exchange method, the information bit is not transmitted now, and the values in the x and y registers of FIG. 5 are moved to the output once per clock. The values stored in the y register are related to the survivor path, and the values stored in the x register indicate the state with the smallest probability distance value from the current state.

Systolic Path Memory의 동작 원리는 다음과 같다. 처음 ACS unit으로부터 state metric 값들이 전달되어 yi레지스터에 저장된다.The operating principle of Systolic Path Memory is as follows. State metric values are initially passed from the ACS unit and stored in the y i register.

이와 동시에 yi에 있던 값들은 y'i으로 전달된다. 처음 Xi에 들오는 값은 ACS 유니트에서 계산된 현재 상태에서 가장 작은 확률거리를 가진 상태를 가리키는 값이 들어오게 된다. 이를 식으로 나타내면 다음과 같다.At the same time, values held in the y i are passed to y 'i. The initial value of X i is the value that indicates the state with the smallest probability distance from the current state calculated by the ACS unit. This is expressed as follows.

Figure 112005074935197-pat00007
Figure 112005074935197-pat00007

Figure 112005074935197-pat00008
Figure 112005074935197-pat00008

Figure 112005074935197-pat00009
Figure 112005074935197-pat00009

Figure 112005074935197-pat00010
Figure 112005074935197-pat00010

도 13의 초기 조건은

Figure 112005074935197-pat00011
Figure 112005074935197-pat00012
이다. Time unit 1에서 도 5의 (a)의 y레지스터에 있는 값이
Figure 112005074935197-pat00013
와 같이 레지스터 yi에 저장된다. Time unit 2가 되면 도 5의 (b)에 있는 y 레지스터 값이
Figure 112005074935197-pat00014
과 같이 저장되고, y1에 있던
Figure 112005074935197-pat00015
은 y'1에 저장된다. Time unit 3에서는
Figure 112005074935197-pat00016
가 저장되고,
Figure 112005074935197-pat00017
과 같이 한 클럭에 하나의 레지스터씩 이동하게 된다. 이후부터 time unit 9 까지 위와 같은 과정이 반복된다. The initial condition of Figure 13
Figure 112005074935197-pat00011
Wow
Figure 112005074935197-pat00012
to be. In time unit 1, the value in the y register of (a) of FIG.
Figure 112005074935197-pat00013
Is stored in register yi. When time unit 2 is reached, the y register value in FIG.
Figure 112005074935197-pat00014
Stored as, and in y1
Figure 112005074935197-pat00015
Is stored in y'1. In time unit 3
Figure 112005074935197-pat00016
Is stored,
Figure 112005074935197-pat00017
As shown, one register is shifted one clock. The above process is repeated from then until time unit 9.

Time unit 10이 되면, X레지스터에 처음으로 저장될 최소 state metric값이 전달되어 저장되고, y레지스터는 이전과 같이 이동한다. 현재 상태의 최소 state metric을 mi라고 할 때, mi라고 할 때, time unit 10 에서는 m10=(1,1)의 값이 X1에 저장된다. Time unit 11에서는 y레지스터 값과 X1의 값은 이전과 마찬가지로 저장되고, Xi+1에는 수학식 12와 같이 저장되게 된다. Time unit 11에서 X2에는 (1,0)값이 저장된다. X2의 첫 번째 비트는 이전 X1의 두 번째 비트 값인 1이고, X2의 두 번째 비트는 X1의 두 비트인 (11)이 y'1에서의 주소, 즉 state (11)에 해당하는 값인 0의 값이 저장되게 된다. 이후부터 위와 같은 과정이 계속 반복된다. Time unit 20이 되면 처음으로 디코딩된 출력 값들이 나오게 된다. 출력 값을 보게 되면, 상술한 예를 든 방법과 같은 출력 값들이 디코딩되어 나오는 것을 알 수 있다.When time unit 10 is reached, the minimum state metric value to be stored for the first time in the X register is transferred and stored, and the y register moves as before. When the minimum state metric of the current state is mi and mi, in time unit 10, the value of m10 = (1, 1) is stored in X1. In time unit 11, the y register value and the value of X1 are stored as before, and are stored in Equation 12 in Xi + 1. In time unit 11, the value (1,0) is stored in X2. The first bit of X2 is 1, the second bit value of the previous X1, and the second bit of X2 is the value of 0, where the two bits of X1 (11) correspond to the address at y'1, namely state (11). Will be saved. From then on, the above process is repeated. At time unit 20, the first decoded outputs are shown. Looking at the output value, it can be seen that output values such as the above-described method are decoded.

위와 같이 (2,1/2) convolutional code의 경우에 Path Memory의 길이를 10단으로 했을 때 systolic Path Memory는 state metric 값들을 저장할 4개의 y레지스터가 19단이 필요하고, 최소 state metric을 가리키는 값을 저장할 2개의 X레지스터가 10단이 필요하게 된다. Register Exchange에서는 레지스터가 40개가 필요한 것에 비하면 많은 레지스터가 사용되는 것을 알 수 있다. Systolic의 경우 4:1 Mux가 10개 사용되고, 최소 경로 metric의 계산을 위한 block이 추가된다. Register Exchange의 경우 2:1 Mux가 40개가 필요하다. Systolic 방식이 Register Exchange에 비해 약 2배 가량 큰 것을 알 수 있다.In the case of (2,1 / 2) convolutional code as above, when the path memory length is set to 10 steps, the systolic path memory requires 19 steps for 4 y registers to store state metric values and indicates the minimum state metric. Two X registers are needed to store 10 steps. Register Exchange shows that many registers are used compared to 40 registers. In the case of Systolic, 10 4: 1 Mux are used, and a block for calculating the minimum path metric is added. Register Exchange requires 40 2: 1 Mux. Systolic method is about twice as large as Register Exchange.

본 발명에 의한 New systolic 메모리를 설명한다. 도 14는 본 발명에 의한 새로운 시스톨릭 패스 메모리의 구성을 블록도로 도시한 것으로서, 복수의 메모리 셀(14,16,18)로 이루어진다. 상기 메모리 셀 각각은 제1결정 메모리(1400), 제2결정 메모리(1420), 상태 레지스터(1440) 및 MUX(1460)를 포함하여 이루어진다. 상기 제1결정 메모리(1400)는 상태메트릭 정보를 받아 소정의 시간동안 저장하며, 첫 번째 단의 메모리 셀일 경우에는 비터비 검출기의 ACS 유니트(1480)로부터 상태메트릭 정보를 받아 소정의 시간동안 저장하고, 두 번째 단 이상의 메모리 셀일 경우에는 앞 단의 메모리 셀로부터 상태 메트릭 정보를 받아 소정의 시간동안 저장한다. 상기 제2결정 메모리(1420)는 상기 제1결정메모리(1400)의 출력값을 소정의 시간동안 저장하고 있다.A new systolic memory according to the present invention will be described. Fig. 14 is a block diagram showing the configuration of a new systolic pass memory according to the present invention, and is composed of a plurality of memory cells 14, 16 and 18. Each of the memory cells includes a first decision memory 1400, a second decision memory 1420, a status register 1440, and a MUX 1460. The first decision memory 1400 receives the state metric information and stores it for a predetermined time. In the case of the first memory cell, the first decision memory 1400 receives the state metric information from the ACS unit 1480 of the Viterbi detector and stores it for a predetermined time. In the case of the second or more memory cells, the state metric information is received from the previous memory cell and stored for a predetermined time. The second decision memory 1420 stores the output value of the first decision memory 1400 for a predetermined time.

상기 상태메모리(1440)는 최소 확률거리 값을 가진 상태정보를 받아 저장하고 있으며, 첫 번째 단의 메모리 셀일 경우에는 비터비 검출기의 ACS유니트(1480)로부터 최소 확률거리 값을 가진 상태정보를 받아 저장하고, 두 번째 단 이상의 메모리 셀일 경우에는 앞 단의 메모리셀의 MUX(1460)로부터 최소 확률거리 값을 가진 상태정보를 받아 저장하고 있다. 상기 MUX(1460)는 다음 유니트 시간에서의 상태 레지스터 값을 선택한다. 상기 MUX(1460)의 다음 유니트 시간에서의 상태레지스터 값 선택은 현재 유니트 시간에서의 상태레지스터 값 중 한 비트 쉬프트 레프트 시킨 값을 다음 유니트 시간에서의 상태 레지스터에 저장하고, 나머지 한 비트는 현재 유니트 시간에서의 상태레지스터값에 해당하는 제2결정 메모리의 값으로 선택한다.The state memory 1440 receives and stores state information with a minimum probability distance value. In the case of the first memory cell, the state memory 1440 receives and stores state information with a minimum probability distance value from the ACS unit 1480 of the Viterbi detector. In the case of the second or more memory cells, the state information having the minimum probability distance value is received and stored from the MUX 1460 of the previous memory cell. The MUX 1460 selects the status register value at the next unit time. The state register value selection of the next unit time of the MUX 1460 stores the shifted value of one bit among the state register values of the current unit time in the state register of the next unit time, and the other bit is the current unit time. Is selected as the value of the second decision memory corresponding to the state register value.

앞 에서 든 예, (2,1/2) convolutional code를 가지고 Path Memory length를 10으로 했을 때, systolic 방식은 2배의 레지스터가 필요하게 된다. Systolic 방식 의 레지스터를 줄이기 위해 본 발명에 의한 새로운 systolic 방식을 제안한다. 상기 방식은 systolic Path Memory의 길이를 절반 가량 줄인 것과 같은 레지스터가 필요하게 된다. 본 발명에 의한 새로운 systolic방식의 기본적인 Path Memory의 동작은 systolic 방식과 거의 유사하다. Systolic에서와 마찬가지로 ACS unit으로부터 state metric 값, y 값들을 전달받고, 또한 최소 state metric 값을 가리키는 X값을 전송 받게 된다. 상술한 systolic의 경우 최소 state metric 값이 time unit 10부터 입력되어 최종적으로 time unit 20이 되어야 디코딩된 출력 값이 나오게 되는 방식이다. 그러나, 본 발명에 의한 새로운 systolic 방식은 time unit 1부터 최소 state metric 값들이 입력되고 time unit 11부터 디코딩된 출력 값이 나오게 된다. In the previous example, with a path memory length of 10 with (2,1 / 2) convolutional code, the systolic method requires twice the registers. In order to reduce the register of the systolic method, a new systolic method according to the present invention is proposed. This approach requires a register such as one half of the length of the systolic path memory. The basic path memory operation of the novel systolic method according to the present invention is almost similar to the systolic method. As in Systolic, state metric value and y value are received from ACS unit and X value indicating minimum state metric value is also received. In the above systolic, a minimum state metric value is input from time unit 10 and finally decoded output value until time unit 20 is output. However, in the new systolic scheme according to the present invention, minimum state metric values are input from time unit 1 and output values decoded from time unit 11 are output.

본 발명에 의한 새로운 systolic Path Memory의 동작 원리는 다음과 같다. 처음 ACS unit으로부터 state metric 값들이 전달되어 yi 레지스터에 저장된다. 이와 동시에 yi에 있던 state metric 값들은 y'i 으로, y'i에 있던 값들은 yi+1 으로 전달된다. 처음 Xi에 들어오는 값은 ACS unit에서 계산된 현재 상태에서 가장 작은 확률거리를 가진 상태를 가리키는 값이 들어오게 된다. 여기까지는 systolic방식과 같다. 이를 식으로 나타내면 다음과 같다. The operation principle of the new systolic path memory according to the present invention is as follows. State metric values are initially passed from the ACS unit and stored in the yi register. At the same time, state metric values are values that were in the 'a i, y' i y was in the y i are passed to y i + 1. The initial value of X i is the value that indicates the state with the smallest probability distance from the current state calculated by the ACS unit. This is the same as the systolic method. This is expressed as follows.

Figure 112005074935197-pat00018
Figure 112005074935197-pat00018

Figure 112005074935197-pat00019
Figure 112005074935197-pat00019

Figure 112005074935197-pat00020
Figure 112005074935197-pat00020

Figure 112005074935197-pat00021
Figure 112005074935197-pat00021

위의 수학식 13과 수학식 14는 상술한 systolic Path Memory의 survivor path 와 관련된 state metric을 전달받는 y레지스터와 동작이 같다. 또한 수학식 15를 보면 systolic 방식에서 X레지스터에 ACS unit으로부터 최소 state metric을 전달받는 과정도 같다. 그러나, 본 발명에 의한 새로운 systolic 방식이 기존의 systolic 방식과 다른 점은 수학식 16에 나와 있다. Systolic 방식에서는 수학식 13에서 처럼 Xi+1에

Figure 112005074935197-pat00022
가 입력된다. 특히 Xi+1의 두 번째 비트로
Figure 112005074935197-pat00023
의 값이 들어가게 되지만, 본 발명에 의한 새로운 systolic에서는 Xi+1의 두 번째 비트 값으로
Figure 112005074935197-pat00024
가 저장된다. 이것은 단순히, 어떤 레지스터의 저장된 값을 불러오느냐의 차이뿐 아니라 X레지스터의 값을 전달하는 속도 또한 달라진다. 앞 절에서 예로든 것을 다시 새로운 systolic방식에 적용시켜 그림으로 보면 명확히 알 수 있다. 도 15는 본 발명에 의한 새로운 systolic방식에 (2,1/2) convolutional code를 적용시킨 예를 나타낸 것이다.Equations 13 and 14 have the same operation as the y register that receives the state metric associated with the survivor path of the systolic path memory. Equation 15 also shows the same process of receiving the minimum state metric from the ACS unit to the X register in the systolic method. However, it is shown in Equation 16 that the new systolic method according to the present invention differs from the existing systolic method. In the Systolic method, we use Xi + 1 as in Equation 13.
Figure 112005074935197-pat00022
Is input. Especially with the second bit of Xi + 1
Figure 112005074935197-pat00023
In the new systolic of the present invention, the value of the second bit of Xi + 1
Figure 112005074935197-pat00024
Is stored. This is not just the difference in which register's stored value is loaded, but also the speed at which the X register's value is passed. It is clear from the figure that the example from the previous section is applied to the new systolic method again. Figure 15 shows an example of applying the (2,1 / 2) convolutional code to a new systolic method according to the present invention.

도 14를 보면 쉽게 알 수 있듯이 일단 레지스터의 개수 및 Path Memory의 크 기가 반으로 줄어 든 것을 알 수 있다. 앞에서 설명했듯이 수학식 13과 수학식 14에 의해 y레지스터에 저장되고 다음으로 전달되는 과정은 systolic방식과 같다. 또한, 처음의 X1에 저장되는 최소 state metric값 역시 systolic 방식과 같다. Systolic방식과 마찬가지로 도 15의 초기 조건은

Figure 112005074935197-pat00025
Figure 112005074935197-pat00026
이다 Time unit 1을 보면
Figure 112005074935197-pat00027
이 레지스터 y1에 저장된다. 본 발명에 의한 새로운 systolic방식은 처음부터 X1에 최소 state metric값인 (0,0)가 들어온 것을 알 수 있다. Time unit 2가 되면 도 15의 (b)와 같이 y레지스터 값이
Figure 112005074935197-pat00028
과 같이 저장되고 y1에 있던
Figure 112005074935197-pat00029
은 y'1에 저장된다. 또한, X1에 최소 state metric값인 (0,0)가 들어온 것을 알 수 있다. Time unit 3가 되면 도 15의 (c)와 같이
Figure 112005074935197-pat00030
가 저장되고,
Figure 112005074935197-pat00031
과 같이 한 클럭에 하나의 레지스터씩 이동하게 된다. 이제 X2에 새로운 수학식 16에 의해 새로운 값이 할당된다. X2의 첫 번째 비트는 X1의 두 번째 비트인 0과 두 번째 비트는 y2의 (0,0)에 해당하는 상태의 값인 0이 저장된다. 다음과 같은 방식으로 계속 y 레지스터와 X 레지스터에 저장되는 값들은 반복된다. Time unit 11이 되면 처음으로 디코딩된 출력 값들이 나오게 되고, 이 값들은 상술한 예를 든 방법과 같은 출력 값들이 디코딩되어 나오는 것을 알 수 있다. 새로운 systolic방식은 그림에서 알 수 있듯이 Xi의 전달 속도가 systolic의 반이다. 이 말은 Xi가 매번 계산 되긴 하지만, y 레지스터와 같은 속도로 전달된다는 것이다. Systolic의 경우 y10에서 디코딩된 출력 값들이 나오게 되지만, 본 발명에 의한 새로운 systolic의 경우 y5에서 디코딩된 출력 값들이 나오게 되는 것이다. 따라서, Path Memory의 크기를 절반으로 줄일 수 있다. 위와 같이 사이즈는 절반으로 줄일 수 있지만, 실질적으로 Path Memory의 길이를 절반으로 줄이면 그만큼 BER에 영향을 받게 된다. Path Memory의 경우 길면 길수록 더욱 좋은 BER을 나타내게 된다. As can be easily seen from Figure 14, it can be seen that the number of registers and the size of the path memory are reduced in half. As described above, the process stored in the y register by Equation 13 and Equation 14 and transferred to the next is the same as the systolic method. In addition, the minimum state metric value stored in the first X1 is also the same as the systolic method. Like the Systolic method, the initial condition of FIG.
Figure 112005074935197-pat00025
Wow
Figure 112005074935197-pat00026
If you look at Time unit 1
Figure 112005074935197-pat00027
This register is stored in y1. In the new systolic method according to the present invention, it can be seen from the beginning that the minimum state metric value (0,0) has been entered in X1. When time unit 2 is reached, the y register value is changed as shown in FIG.
Figure 112005074935197-pat00028
Stored as in y1
Figure 112005074935197-pat00029
Is stored in y ' 1 . In addition, it can be seen that (0,0), which is the minimum state metric value, is entered in X 1 . When time unit 3 is reached, as shown in FIG.
Figure 112005074935197-pat00030
Is stored,
Figure 112005074935197-pat00031
As shown, one register is shifted one clock. Now a new value is assigned to X2 by the new equation (16). The first bit of X2 is 0, the second bit of X1, and the second bit is 0, the value of the state corresponding to (0,0) of y 2 . The values stored in the y and x registers are repeated in the following manner. At time unit 11, the first decoded output values are output, and these values can be seen that the output values are decoded as in the above-described method. In the new systolic approach, the rate of delivery of Xi is half that of systolic, as shown in the figure. This means that Xi is computed each time, but at the same rate as the y register. In the case of systolic, output values decoded at y 10 are output, but in the case of a new systolic according to the present invention, output values decoded at y 5 are output. Therefore, the size of the path memory can be reduced by half. As mentioned above, the size can be reduced in half, but if the length of the path memory is cut in half, the BER is affected by that. The longer the path memory, the better the BER.

Comparison of various Path Memories를 설명한다. 상술한 바와 같이 몇 가지의 Path Memory들을 예를 들어 설명하였다. Register Exchange 방식과 이를 응용한 Path Selection방식, Trace-Back 방식을 응용한 systolic방식과 systolic방식의 Path Memory의 크기를 반으로 줄인 본 발명에 의한 새로운 systolic방식을 설명하였다. Register Exchange 방식과 Trace-Back방식은 서로 다른 컨트롤 신호들을 사용하기 때문에 ACS unit과 Path Memory의 구조가 다르기 때문에 사이즈를 비교할 때 단순 비교하기가 어렵다. 그러나, systolic방식의 경우 파이프라인 방식을 사용하지 않고 Register Exchange방식과 매우 유사하게 신호들을 전달하는 방식을 사용하기 때문에 사이즈를 비교할 수 있다. 단순히, 레지스터와 Mux의 개수를 표 1에 나타내었다. 표 1에는 Path Memory의 길이를 10으로 하였고, N은 트렐리스의 상태수, 2N을 나타내는 값이다.Describe the Comparison of various Path Memories. As described above, some path memories have been described as an example. The new systolic method according to the present invention, which reduced the size of the path memory of the register exchange method, the path selection method using the same, the systolic method using the trace-back method, and the systolic method, was described. Register Exchange and Trace-Back use different control signals, so the structure of ACS unit and path memory is different, so it is difficult to compare when comparing sizes. However, in case of systolic method, size can be compared because it uses the method of transmitting signals very similar to Register Exchange method without using pipeline method. For simplicity, the number of registers and Mux are shown in Table 1. In Table 1, the length of the path memory is 10, and N is a value representing the state of the trellis, 2 N.

Figure 112005074935197-pat00032
Figure 112005074935197-pat00032

표 1은 RE, PS, systolic과 본 발명에 의한 systolic방식의 PM 셀 회로에 필요한 멀티플렉서와 플립플롭의 개수를 비교한 것이다. 표 1에서 보면 Register Exchange방식과 Path Selection방식은 거의 같은 크기를 나타내고 있다. 또, 본 발명에 의한 새로운 systolic방식은 systolic의 절반의 크기를 가지고 있는 것으로 나타내고 있다. 4:1 Mux는 2:1 Mux의 두 배정도의 크기를 가지고 있다. Systolic 방식이 최소 state metric값을 계산해야 하는 블록을 ACS unit에 추가해야 하기 때문에 systolic 방식이 Register Exchange 방식에 비해 2배 가량 사이즈가 큰 것을 알 수 있다.Table 1 compares the number of multiplexers and flip-flops required for RE, PS, systolic and the systolic PM cell circuit according to the present invention. In Table 1, Register Exchange and Path Selection are almost the same size. In addition, the new systolic method according to the present invention is shown to have a size of half of the systolic. A 4: 1 Mux is about twice as large as a 2: 1 Mux. The systolic method is about twice as large as the Register Exchange method because the Systolic method needs to add a block to the ACS unit to calculate the minimum state metric.

한편, 상술한 본 발명에 의한 새로운 방식의 systolic Path Memory를 이용한 본 발명에 의한 새로운 방식의 Path Memory를 설명하기로 한다.Meanwhile, the path memory of the new method using the systolic path memory of the new method according to the present invention will be described.

1. Structure of Composite Path Memory1.Structure of Composite Path Memory

우선, 본 발명에 의한 새로운 방식의 composite Path Memory의 기본 구조를 보면, Register Exchange방식과 systolic방식을 둘 다 사용하여 만들어졌다. 도 16은 본 발명에 의한 composite Path Memory를 구비하는 비터비 검출기의 구성을 블록도로 도시한 것이다. First, looking at the basic structure of the new composite path memory according to the present invention, it was made using both the Register Exchange method and the systolic method. 16 is a block diagram showing the configuration of a Viterbi detector having a composite path memory according to the present invention.

상기 본 발명에 의한 비터비 검출기는 브랜치 메트릭부(1600), ACS부(1620) 및 본 발명에 의한 패스 메모리(1640)를 포함하여 이루어진다. 상기 브랜치 메트릭부(1600)는 코딩된 신호들에 대해 확률거리를 계산한다. 상기 ACS부(1620)는 현재 들어온 확률거리 값들과 이전 상태에서 들어온 누적된 확률거리 값들을 더하여 상기 더한 확률거리값들이 두 개일 경우 상기 확률거리값들을 비교하여, 확률거리값이 작은 것을 선택한다. 상기 본 발명에 의한 패스 메모리(1640)는 상기 ACS부(1620)에서 전달된 신호들을 토대로 트렐리스를 재구성하여 디코딩하며, 자세한 것을 후술하기로 한다.The Viterbi detector according to the present invention includes a branch metric unit 1600, an ACS unit 1620, and a pass memory 1640 according to the present invention. The branch metric unit 1600 calculates a probability distance with respect to the coded signals. The ACS unit 1620 adds the current probability distance values and the accumulated probability distance values from the previous state, and compares the probability distance values when the two probability distance values are two, and selects one having a smaller probability distance value. The pass memory 1640 according to the present invention reconstructs and decodes the trellis based on the signals transmitted from the ACS unit 1620 and will be described in detail later.

상기 본 발명에 의한 패스 메모리(1640)는 상술한 본 발명에 의한 시스톨릭 패스 메모리를 구비하며, 패스선택 패스 메모리(162), 상술한 본 발명에 의한 시스톨릭패스 메모리(160), 비교기(164) 및 보상부(166)를 포함하여 이루어진다. The pass memory 1640 according to the present invention includes a systolic pass memory according to the present invention described above, and includes a path selection pass memory 162, a systolic pass memory 160 according to the present invention, and a comparator 164. ) And the compensation unit 166.

상기 패스선택 패스메모리(162)는 비터비 검출기에서 사용되는 통상의 패스 선택 패스 메모리이다. 상기 시스톨릭 패스메모리(160)는 상술한 본 발명에 의한 시스톨릭 패스 메모리이다.The path selection path memory 162 is a normal path selection path memory used in a Viterbi detector. The systolic pass memory 160 is a systolic pass memory according to the present invention described above.

상기 패스선택 패스메모리(162)와, 상기 시스톨릭 패스메모리(160)는 상태메트릭를 저장하는 레지스터를 공유함이 바람직하다.The path selection path memory 162 and the systolic path memory 160 preferably share a register that stores a state metric.

상기 비교기(164)는 상기 시스톨릭 패스메모리(160)와 상기 패스선택 패스메모리(162)의 출력값을 비교하여 상기 출력값들이 동일하면 상기 출력값을 패스메모리의 출력값으로 하고, 상기 비교결과 상기 출력값들이 서로 다르면 보상부를 제어하는 제어신호를 생성한다.The comparator 164 compares the output values of the systolic pass memory 160 and the path selection pass memory 162, and if the output values are the same, sets the output value as an output value of the pass memory, and as a result of the comparison, the output values If different, generates a control signal for controlling the compensator.

상기 보상부(166)는 상기 비교기(164)로부터 제어신호가 활성화되면, 이전 유니트 시간에서의 최소 확률거리값을 가리키는 상태메트릭을 이용하여 현재 유니트 시간에서의 상태메트릭을 보정하여 코드워드를 복호화한다. 상기 보상부(166)는 상기 패스선택 패스메모리(162)와 시스톨릭 패스메모리(160)의 출력이 다르면 이전 상태의 최소 상태 메트릭 값을 체크하여 이전의 최소 상태 메트릭 값으로부터 현재 값을 보고 출력값을 만들어 출력한다.When the control signal is activated from the comparator 164, the compensator 166 decodes the codeword by correcting the state metric at the current unit time by using the state metric indicating the minimum probability distance value at the previous unit time. . If the outputs of the path selection pass memory 162 and the systolic pass memory 160 are different, the compensator 166 checks the minimum state metric value of the previous state, and displays the current value from the previous minimum state metric value. Create and print

비터비 검출기의 Branch Metric unit(1600)과 ACS unit(1620)까지는 이전과 같고 Path Memory 부분에서 기존의 방식과 많이 달라진 것을 알 수 있다. 본 발명에 의한 composite Path Memory방식은 Path Selection Path Memory와 본 발명에 의한 새로운 systolic Path Memory, comparator, compensation 회로로 이루어져 있다.The branch metric unit 1600 and the ACS unit 1620 of the Viterbi detector are the same as before, and it can be seen that the path memory part is much different from the conventional method. The composite path memory method according to the present invention consists of a path selection path memory and a new systolic path memory, comparator, and compensation circuit according to the present invention.

ACS unit에서 전달되는 컨트롤 신호들을 systolic 방식의 Path Memory에도 전달하고, Path Selection방식의 Path Memory에도 전달하여 두 가지의 서로 다른 Path Memory를 동작시켜 비교기에서 두 값을 비교한다. 비교기는 두 Path Memory의 출력 값이 같은 값이면 출력으로 곧장 내보내고 다르면 보상회로로 보내게 된다. 보상회로는 이전의 최소 상태 값을 가지고 현재 상태를 보정하여 새로운 출력을 만들어 디코딩한 출력 값을 내보내게 된다. 이렇게 두 종류의 Path Memory와 보상(compensation)회로를 사용하여 새로운 방식의 Path Memory를 구성하여 사이즈는 systolic 방식보다 작으면서 BER은 systolic 방식과 유사한 Path Memory를 제공한다.The control signals from the ACS unit are transferred to the path memory of the systolic method and to the path memory of the path selection method to operate two different path memories to compare the two values in the comparator. The comparator sends straight out to the output if the output values of the two path memories are the same and to the compensation circuit if they are different. The compensation circuit compensates for the current state with the previous minimum state value to produce a new output and outputs the decoded output value. By using two kinds of path memory and compensation circuit, new path memory is composed and the size is smaller than systolic method and BER provides path memory similar to systolic method.

2. Composite of Two Path Memories2. Composite of Two Path Memories

본 발명에 의한 비터비 검출기의 Path Memory는 두 종류의 서로 다른 Path Memory를 합성하여 만들어진다. 우선, 사용된 두 종류의 Path Memory는 상술한 Path Selection Path Memory와 발명에 의한 새로운 systolic Path Memory이다. 상기 두 종류의 Path Memory를 합성하여 두 개의 출력 값을 얻게 된다. 단순히, 두 종류의 Path Memory를 사용하게 된다면, 사이즈면에서 큰 부담을 안게 된다. 최소한 2배 이상의 사이즈의 부담을 안게 된다. 그러나, Path Selection Path Memory와 본 발명에 의한 새로운 systolic Path Memory를 사용하면 사이즈에서 두 가지를 따로 사용하여 만드는 것보다 사이즈를 줄일 수 있다. 상술한 Register Exchange 방식과 Path Selection방식은 거의 같은 성능과 크기를 가지고 있다. Register Exchange방식은 information bit가 레지스터에 저장되면서, ACS unit으로부터 전달된 컨트롤 신호 sm 값들에 의해 survivor path를 따라 확장되어 가지만, Path Selection 방식은 이와 달리 ACS unit으로부터 전달받은 컨트롤 신호, sm 신호들이 레지스터에 저장되어 information 비트를 survivor path를 따라 확장시킨다. 여기서, ACS unit으로부터 전달받은 컨트롤 신호, sm 신호는 systolic 방식에서 y레지스터에 저장되던 값과 같은 값이다. Original systolic 방식의 경우 레지스터가 Path Selection 방식에 비해 두 배 이상 필요함으로 여기서 사용되기에는 너무 크다. 그러나, Path Memory의 길이를 10으로 했을 때, ACS unit으로부터 전달 받아 트렐리스를 확장시킬 컨트롤 신호를 저장할 레지스터의 크기가 본 발명에 의한 새로운 systolic 방식은 표 1에서 알 수 있듯이 9N의 Path Memory가 필요하다. 또, Path Selection 역시 information bit를 survivor path를 따라 전달시킬 9N의 Path Memory가 필요하다. 즉, Path Memory의 길이를 10으로 했을 때, 이 두 종류의 Path Memory는 9N으로 일치한다. 그렇다면, Path Selection 방식도 컨트롤 신호, sm신호를 레지스터에 저장하고, 새로운 systolic 방식 역시 sm 신호를 레지스터에 저장하여 디코딩시 사용함으로 이 두 종류의 Path Memory 들은 컨트롤 신호, sm신호들을 공유할 수 있다. 이것을 도 17에 나타내었다. 도 17을 참조하면, 위 쪽이 새로운 systolic Path Memory이고, 아래쪽이 Path Selection 방식이다. 도 17에서 쉽게 알 수 있듯이 컨트롤 신호, sm 신호를 공유해서 사용하고 있는 것을 알 수 있다. 이렇게 컨트롤 신호를 공유해서 사용하게 되면, 공유하지 않을 때에 비해 9N개의 레지스터를 줄일 수 있다. 기존의 systolic방식에 비해 크기가 작으면서도 두 종류의 Path Memory의 출력 값을 얻을 수 있다. 이 둘의 출력 값을 비교하는 comparator는 1-bit의 출력 2개를 비교하기 때문에 매우 작고, compensation회로 역시 비교적 간단히 구현할 수 있기 때문에 original systolic 방식에 비하면 그 크기가 대략 2/3정도이다. 도 17에서 한 가지 특이한 사항은 출력 값이 반대 방향에서 나오는 것을 알 수 있다. Systolic 방식은 컨트롤 신호, sm신호와 같은 방향으로 X 레지스터의 값을 전달시키면 디코딩해 전달시키지만, Path Selection 방식은 Register Exchange 방식과는 반대로, systolic 방식과도 반대로 컨트롤 신호가 반대로 입력된다. 자세히 살펴보면 알 수 있겠지만, Path Selection 방식이나 Register Exchange 방식은 Path Memory의 길이가 10일 때 최소한 입력이 들어가고 10 unit time이 지난 후에 출력이 나오게 된다. 그런데, Register Exchange 방식은 시간의 흐름을 따라 컨트롤 신호가 information 비트를 전달시켜 나가고, Path Selection 방식은 가장 최근 신호가 가장 나중에 information 비트에 영향을 준다. 컨트롤 신호의 흐름은 반대지만, 결국 information 비트에 영향을 주어 출력으로 나오는 과정은 똑같은 흐름이다. 예를 들어, information 비트가 10번의 컨트롤 신호의 영향을 받아 출력된다면, Register Exchange 방식은 information 비트가 처음 레지스터에 저장되었다가 컨트롤 신호의 영향을 받아 다음 클럭에 다음 레지스터로 이동한다. 이와 같은 과정을 반복하여, 상기 information 비트는 총 10번의 컨트롤신호의 영향을 받아 최종적으로 출력으로 전달된다. Path Selection 방식의 경우, 컨트롤 신호가 10 unit time이 흐르고 나면 가장 먼저 들어온 컨트롤 신호가 information 비트에 영향을 주게 되고 이 신호는 같은 클럭에 나머지 9개의 컨트롤 신호의 영향을 받아 출력으로 디코딩되어 나가게 된다. 위와 같은 과정을 살펴보면, 결국 두 종류의 Path Memory는 결국 information 비트에 같은 영향을 주게 되는 것을 알 수 있다. 이렇게 두 종류의 Path Selection 방식과 새로운 systolic 방식의 두 출력값은 비교기에 전달되어 비교되어 출력으로 나가게 되거나, compensation 회로의 입력으로 들어가게 된다. The path memory of the Viterbi detector according to the present invention is made by synthesizing two different path memories. First, the two types of path memories used are the above-described path selection path memory and the new systolic path memory according to the invention. Two output values are obtained by synthesizing the two types of path memories. Simply, if you use two types of path memory, it is a big burden in terms of size. At least twice the size of the burden. However, the path selection path memory and the new systolic path memory according to the present invention can reduce the size of the path selection path memory rather than using the two types separately. The register exchange method and the path selection method described above have almost the same performance and size. The register exchange method extends along the survivor path by the control signal sm values transmitted from the ACS unit as the information bit is stored in the register. However, the path selection method differs from the control signal and sm signals received from the ACS unit in the register. Stored and expands information bits along survivor path Here, the control signal and the sm signal received from the ACS unit are the same values as those stored in the y register in the systolic method. The original systolic method is too large to be used here because the registers need more than twice as much as the Path Selection method. However, when the length of the path memory is 10, the size of the register to store the control signal received from the ACS unit to expand the trellis is a new systolic method according to the present invention. need. In addition, path selection also requires 9N path memory to transfer information bits along the survivor path. In other words, when the length of the path memory is 10, the two types of path memories correspond to 9N. Then, the path selection method stores the control signal and the sm signal in the register, and the new systolic method also stores the sm signal in the register and uses it for decoding so that these two types of path memories can share the control signal and the sm signal. This is shown in FIG. 17. Referring to FIG. 17, the upper side is a new systolic path memory and the lower side is a path selection method. As can be readily seen in Figure 17, it can be seen that the control signal, sm signal is used in common. By sharing the control signals in this way, 9N registers can be reduced compared to those without. Compared with the conventional systolic method, the output value of two types of path memory can be obtained. The comparator comparing the two output values is very small because it compares two 1-bit outputs, and the compensation circuit can be implemented relatively simply, which is about 2/3 the size of the original systolic method. One unusual thing in Figure 17 can be seen that the output value comes from the opposite direction. The Systolic method decodes and delivers the value of the X register in the same direction as the control signal and sm signal, but the path selection method receives the control signal oppositely as opposed to the Register Exchange method and the systolic method. As you can see in detail, the path selection method or the register exchange method has at least 10 inputs when the path memory length is 10 and outputs after 10 unit time. However, in the Register Exchange method, the control signal delivers the information bit over time. In the Path Selection method, the most recent signal affects the information bit later. The flow of the control signal is reversed, but the process that eventually affects the information bit and exits the output is the same flow. For example, if the information bit is output under the influence of 10 control signals, the Register Exchange method moves the information bit from the first register to the next register with the control signal. By repeating this process, the information bit is finally delivered to the output under the influence of a total of 10 control signals. In the case of the path selection method, after 10 unit time passes, the first control signal affects the information bit, and the signal is decoded to the output under the influence of the remaining 9 control signals on the same clock. Looking at the above process, it can be seen that eventually two types of path memories have the same effect on the information bits. In this way, the two output values of the two path selection methods and the new systolic method are passed to the comparator and compared and output to the comparator or input to the compensation circuit.

3. Compensation Circuit3. Compensation Circuit

두 종류의 Path Memory, Path Selection 방식과 본 발명에 의한 새로운 systolic 방식의 출력 값을 비교하여 서로 다른 값이 출력되면, compensation 회로가 동작하게 된다. Compensation 회로의 동작 원리는 간단하다. 만약, 앞에서처럼, 두 Path Memory의 출력값이 다르게 나오면, 이전 상태의 최소 state metric 값을 체크하게 된다. 이전의 최소 state metric 값으로부터 현재값을 보고 출력값을 만들어 내보내게 된다. 즉, 에러가 발생한 것은 현재 상태에 들어온 컨트롤 신호, sm값에 오류가 있기 때문이다. 따라서 이전 상태의 최소 state metric값을 보고 현재 들어와야 할 sm 값을 다시 보정하는 것이 이 회로의 역할이다. 이것을 그림으로 보면서 좀 더 상세히 살펴보겠다. 도 18은 Compensation 회로의 동작원리를 설명하기 위한 것이다. 앞에서 간단히 설명한 compensation원리를 도 18에서 예를 들어 설명하기로 한다.Comparing the output values of two types of path memory and path selection method with the new systolic method according to the present invention, if different values are output, the compensation circuit operates. The principle of operation of the compensation circuit is simple. If, as before, the output values of the two path memories are different, the minimum state metric value of the previous state is checked. It will look at the current value from the previous minimum state metric and produce an output. That is, the error occurs because there is an error in the control signal, sm value that has entered the current state. Therefore, it is the role of this circuit to see the minimum state metric of the previous state and recalibrate the sm value that should be present. Let's take a look at this in more detail. 18 illustrates an operation principle of a compensation circuit. The compensation principle described above will be described with reference to FIG. 18 as an example.

도 18의 (a)의 Yi는 현재 레지스터 Y에 들어있는 상태를 말한다. 트렐리스에서 실선은 sm 값이 0 이고, 점선은 sm 값이 1이다. 도 18의 (a)는 time unit 2 동안의 트렐리스를 나타낸다. 도 18의 (b)는 현재 Yi의 상태에 따른 모든 경우에 대해 Yi-1 값의 상태에 따른 현재 sm값이 어떤 비트를 출력해야 하는지를 보여주는 예제이다. 예를 들어, 현재 최소 state metric값이 (0,0)를 가리키고 있고, 두 Path Memory의 출력이 다르게 나와 compensation 회로가 동작하게 된다면, 상태 (0,0)과 상태 (0,1) 둘 중 어디에서 트렐리스가 확장되는지 에러가 난 경우이다. 이 경우, 도 18의 (b)에서 Yi 의 현재 상태가 만약 (0,0)인 경우이다. 도 18의 (a)의 굵은 선이 이에 해당한다. Compensation 회로가 동작하게 되면, 이전 상태 Yi-1를 확인한다. 현재 상태 Yi가 (0,0)이기 때문에 Yi-1가 확장되어 현재 상태에 확장될 수 있는 경우는 상태 (0,0)과 상태 (0,1)이다. 이전 상태 Yi-1의 최소 state metric 값이 (0,0)를 가리키고 있으면 compensation 회로는 sm 값 0을 출력으로 내보내고, 최소 state metric 값이 (0,1)를 가리키고 있으면 sm 값 1을 출력으로 내보내게 된다. (2, 1/2) 컨볼류션 코드의 경우에는 간단한 트렐리스를 가지고 있기 때문에, constraint length가 2이기 때문에 Yi-2의 경우까지 체크할 필요가 없지만, 좀 더 복잡한 경우의 트렐리스의 경우에는 더 Yi-2 내지 그 이상의 경우까지 생각해야 한다. 본 논문에서 설정하고, 시뮬레이션한 EPR4시스템의 경우에도 Yi-2의 경우까지 체크해 현재 sm값을 추측해낸다. 도 18의 (b)에 나온 다른 경우도 위에서 설명한 방식으로 sm 값을 추측, 보정해 출력으로 내보내게 된다. 위의 예를 식으로 나타내면 다음과 같다.Yi in FIG. 18A refers to a state currently contained in register Y. FIG. In the trellis, the solid line has an sm value of 0 and the dashed line has an sm value of 1. FIG. 18A illustrates a trellis for time unit 2. FIG. (B) of FIG. 18 shows an example of which bit the current sm value according to the state of the value of Y i-1 should output for all cases according to the state of the current Y i . For example, if the current minimum state metric indicates (0,0) and the outputs of the two path memories are different and the compensation circuit operates, then either state (0,0) or state (0,1) It is an error that the trellis is expanded in. In this case, the current state of Y i is (0,0) in FIG. 18B. The thick line of FIG. 18A corresponds to this. When the compensation circuit is activated, check the previous state Y i-1 . Since the current state Y i is (0,0), the cases where Y i-1 can be extended to the current state are state (0,0) and state (0,1). If the minimum state metric value of the previous state Y i-1 points to (0,0), the compensation circuit sends the sm value 0 to the output, and if the minimum state metric value points to (0,1), the sm value 1 is output to the output. Will be exported. In the case of the (2, 1/2) convolution code, since it has a simple trellis, since the constraint length is 2, there is no need to check until Y i-2 , but the trellis for more complex cases In the case of more than Y i -2 or more should be considered. In this paper, the simulated EPR4 system also checks the current sm value by checking the case of Y i-2 . In other cases shown in FIG. 18B, the sm value is estimated and corrected in the manner described above, and is output to the output. The above example is expressed as an equation.

Figure 112005074935197-pat00033
Figure 112005074935197-pat00033

Figure 112005074935197-pat00034
Figure 112005074935197-pat00034

Figure 112005074935197-pat00035
Figure 112005074935197-pat00035

위의 예에서 처럼 수학식 17의 현재 최소 state metric 값에서 에러가 발생했다면, 수학식 18의 이전 상태 최소 state metric 의 값을 체크하여 현재 sm값을 출력으로 내보내게 된다. 도 18의 (b)의 (2, 1/2) Convolution code의 경우, sm 출 력 값은 모든 경우를 살펴보면, 이전상태 최소 state metric 값의 bi-1가 되는 것을 알 수 있다. 보정된 현재 smi가 위와 같이 최적화, 간략화되어 compensation 회로 자체는 매우 간단히 구현된다. (2, 1/2) 컨볼류션 코드의 경우, compensation 회로는 단지 비교기(comparator)로부터 신호가 들어오면, 이전 상태의 값만 저장하고 있다가 출력으로 내보내기만 하면 된다. 위와 같은 과정을 이용하여 여러 가지 경우의 트렐리스에 적용시켜 출력될 값을 최적화시켜 간단히 보상회로를 구현할 수 있다. 또한, 두 종류의 Path Memory를 사용하여 출력을 보고 compensation 회로를 동작시키는 것으로 새로운 Path Memory는 BER을 향상시킬 수 있다.As in the example above, if an error occurs in the current minimum state metric value of Equation 17, the value of the previous state minimum state metric of Equation 18 is checked and the current sm value is output to the output. In the case of the (2, 1/2) Convolution code of (b) of FIG. 18, the sm output value is found to be b i-1 of the minimum state metric value of the previous state. The compensation current sm i is optimized and simplified as above, so the compensation circuit itself is very simple to implement. In the case of a (2, 1/2) convolutional code, the compensation circuit only needs to store the value of the previous state when the signal comes from the comparator and then export it to the output. Using the above process, it is possible to implement compensation circuit simply by optimizing the output value by applying to trellis of various cases. In addition, by using two types of path memory to see the output and operate the compensation circuit, the new path memory can improve the BER.

4. Size Comparison4.Size Comparison

본 발명에 의한 composite Path Memory는 Path Selection 방식과 new systolic 방식을 합성하여 ACS로부터 전달받은 컨트롤 신호들을 저장하는 레지스터들을 공통으로 사용함으로써 사이즈를 줄일 수 있다.The composite path memory according to the present invention can reduce the size by combining the path selection method and the new systolic method by using registers that store control signals received from the ACS in common.

표 2는 본 발명에 의한 Composite 방식에 사용된 멀티플렉서와 플립플롭의 개수를 다른 Path Memory방식들과 비교한 것을 나타낸 것이다. 표 2에서 N은 트렐리스의 상태수, 2N을 나타내는 값이고, Path Memory의 길이는 10으로 하였다.Table 2 shows a comparison of the number of multiplexers and flip-flops used in the composite method according to the present invention with other path memory methods. In Table 2, N is a value representing the state number of the trellis, 2 N , and the length of the path memory is 10.

Figure 112005074935197-pat00036
Figure 112005074935197-pat00036

표 2에서 Composite 방식은 RE 방식보다는 크고 systolic방식에 비해 작은 것을 알 수 있다. 사이즈는 상태수 N에 의존적이지만, systolic 방식과 RE 방식의 중간 정도의 크기를 가지고 있다.In Table 2, the composite method is larger than the RE method and smaller than the systolic method. The size depends on the number of states N, but is about the size of the systolic and RE methods.

본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. The present invention can be embodied as code that can be read by a computer (including all devices having an information processing function) in a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다. Although the present invention has been described with reference to the embodiments shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명에 의한 시스톨릭 패스 메모리 및 이를 이용한 비터비 디코더의 패스 메모리에 의하면, 기존의 레지스터 교환 방식을 응용한 Path Selection 방식과 역추적 방식을 응용하여 만든 Systolic 방식을 이용하여 만든 새로운 Systolic방식을 결합하여 새로운 Path Memory를 구성하고, 이에 더해 보상 회로를 삽입하여 만든 새로운 구조의 비터비 검출기로서, 본 발명에 의한 Path Memory는 BER이 Systolic 방식과 거의 같고, 크기와 Complexity는 30%정도로 줄어들어, 최근 지속적으로 데이터 용량이 커지고 있는 Wireless Communication, 인공위성이나 HDTV, DMB의 비터비 검출기에 응용되어 전력과 전체 칩 면적의 감소 등의 여러 가지 효과를 기대할 수 있다.According to the systolic pass memory according to the present invention and the pass memory of the Viterbi decoder using the same, a combination of a path selection method using a conventional register exchange method and a new systolic method using a systolic method made by applying a backtracking method is combined. As a Viterbi detector with a new structure made by inserting a new path memory and inserting a compensation circuit, the path memory according to the present invention has the same BER as the Systolic method, and its size and complexity are reduced to about 30%. As it is applied to wireless communication, satellite, HDTV, and DMB Viterbi detectors which are increasing in data capacity, various effects such as reduction of power and total chip area can be expected.

Claims (6)

복수의 메모리 셀로 이루어지는 시스톨릭 패스메모리에 있어서,In a systolic pass memory composed of a plurality of memory cells, 상기 메모리 셀은The memory cell is 상태메트릭 정보를 받아 소정의 시간동안 저장하는 제1결정 메모리;A first decision memory that receives the state metric information and stores the state metric information for a predetermined time; 상기 제1결정 메모리의 출력값을 소정의 시간동안 저장하고 있는 제2결정 메모리;A second decision memory that stores an output value of the first decision memory for a predetermined time; 최소 확률거리 값을 가진 상태정보를 받아 저장하고 있는 상태 레지스터; 및 A state register for receiving and storing state information having a minimum probability distance value; And 다음 유니트 시간에서의 상태 레지스터 값을 선택하는 MUX로 이루어짐을 특징으로 하고,Characterized by consisting of a MUX to select the status register value at the next unit time, 상기 MUX의 다음 유니트 시간에서의 상태레지스터 값 선택은The state register value selection at the next unit time of the MUX is 현재 유니트 시간에서의 상태레지스터 값 중 한 비트 쉬프트 레프트 시킨 값을 다음 유니트 시간에서의 상태 레지스터에 저장하고, 나머지 한 비트는 현재 유니트 시간에서의 상태레지스터값에 해당하는 제2결정 메모리의 값으로 선택하는, 시스톨릭 패스 메모리.One bit shifted out of the state register value in the current unit time is stored in the state register at the next unit time, and the other bit is selected as the value of the second decision memory corresponding to the state register value in the current unit time. Systolic pass memory. 제1항에 있어서,The method of claim 1, 상기 제1결정 메모리는The first decision memory is 첫 번째 단의 메모리 셀일 경우에는 비터비 검출기의 ACS 유니트로부터 상태 메트릭 정보를 받아 소정의 시간동안 저장하고, 두 번째 단 이상의 메모리 셀일 경우에는 앞 단의 메모리 셀로부터 상태 메트릭 정보를 받아 소정의 시간동안 저장하고,The first stage memory cell receives the state metric information from the ACS unit of the Viterbi detector and stores the state metric information for a predetermined time. The second stage or more memory cell receives the state metric information from the memory cell of the previous stage for a predetermined time. Save it, 상기 상태 레지스터는The status register is 첫 번째 단의 메모리 셀일 경우에는 비터비 검출기의 ACS유니트로부터 최소 확률거리 값을 가진 상태정보를 받아 저장하고, 두 번째 단 이상의 메모리 셀일 경우에는 앞 단의 메모리셀의 MUX로부터 최소 확률거리 값을 가진 상태정보를 받아 저장함을 특징으로 하는 시스톨릭 패스 메모리.In case of memory cell of the first stage, it receives and stores the state information with minimum probability distance value from ACS unit of Viterbi detector.In case of memory cell of more than 2nd stage, it has minimum probability distance value from MUX of memory cell of previous stage. Systolic pass memory, characterized by receiving and storing status information. 패스선택 패스메모리;Path selection path memory; 제1항의 시스톨릭 패스메모리;The systolic pass memory of claim 1; 상기 시스톨릭 패스메모리와 상기 패스선택 패스메모리의 출력값을 비교하여 상기 출력값들이 동일하면 상기 출력값을 패스메모리의 출력값으로 하고, 상기 비교결과 상기 출력값들이 서로 다르면 보상부를 제어하는 제어신호를 생성하는 비교기; 및A comparator for comparing the output values of the systolic pass memory and the path selection pass memory and using the output values as output values of the pass memory when the output values are the same, and generating a control signal for controlling the compensator if the output values are different from each other; And 상기 비교기로부터 제어신호가 활성화되면, 이전 유니트 시간에서의 최소 확률거리값을 가리키는 상태메트릭을 이용하여 현재 유니트 시간에서의 상태메트릭을 보정하여 코드워드를 복호화하는 보상부를 포함함을 특징으로 하는 비터비 검출기의 패스메모리.And a compensator for decoding a codeword by correcting the state metric at the current unit time by using the state metric indicating the minimum probability distance value at the previous unit time when the control signal is activated from the comparator. Detector pass memory. 제3항에 있어서, The method of claim 3, 상기 패스선택 패스메모리와, 상기 시스톨릭 패스메모리는 상태메트릭를 저장하는 레지스터를 공유함을 특징으로 하는 비터비 검출기의 패스메모리.And said path selection path memory and said systolic path memory share a register for storing a state metric. 제4항에 있어서, The method of claim 4, wherein 상기 보상부는 상기 패스선택 패스메모리와 시스톨릭 패스메모리의 출력이 다르면 이전 상태의 최소 상태 메트릭 값을 체크하여 이전의 최소 상태 메트릭 값으로부터 현재 값을 보고 출력값을 만들어 출력함을 특징으로 하는 비터비 검출기의 패스메모리.The compensator checks the minimum state metric value of a previous state when the outputs of the path selection pass memory and the systolic pass memory are different, and outputs a current value from the previous minimum state metric value to produce an output value. Pass memory. 코딩된 신호들에 대해 확률거리를 계산하는 브랜치 메트릭부;A branch metric unit for calculating a probability distance with respect to the coded signals; 현재 들어온 확률거리 값들과 이전 상태에서 들어온 누적된 확률거리 값들을 더하여 상기 더한 확률거리값들이 두 개일 경우 상기 확률거리값들을 비교하여, 확률거리값이 작은 것을 선택하는 ACS부; 및An ACS unit which selects a small probability distance value by comparing the probability distance values when two additional probability distance values are added by adding current probability distance values and cumulative probability distance values input from a previous state; And 상기 ACS부에서 전달된 신호들을 토대로 트렐리스를 재구성하여 디코딩하는 제2항의 패스메모리를 포함함을 특징으로 하는 비터비 검출기.And a pass memory of claim 2 configured to reconstruct and decode the trellis based on the signals transmitted from the ACS unit.
KR1020050126871A 2005-12-21 2005-12-21 Systolic path memory, path memory using it, and viterbi detector thereof KR100659777B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050126871A KR100659777B1 (en) 2005-12-21 2005-12-21 Systolic path memory, path memory using it, and viterbi detector thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050126871A KR100659777B1 (en) 2005-12-21 2005-12-21 Systolic path memory, path memory using it, and viterbi detector thereof

Publications (1)

Publication Number Publication Date
KR100659777B1 true KR100659777B1 (en) 2006-12-20

Family

ID=37815025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050126871A KR100659777B1 (en) 2005-12-21 2005-12-21 Systolic path memory, path memory using it, and viterbi detector thereof

Country Status (1)

Country Link
KR (1) KR100659777B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1111863A2 (en) 1999-12-23 2001-06-27 Lucent Technologies Inc. Method and apparatus for shortening the critical path of reduced complexity sequence estimation techniques
KR100498407B1 (en) 1997-06-23 2005-09-02 삼성전자주식회사 Pipeline Implementation of Reed-Solomon Coder
KR20060069167A (en) * 2004-12-17 2006-06-21 한국전자통신연구원 Hybrid trace back apparatus and high-speed viterbi decoding system using it

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100498407B1 (en) 1997-06-23 2005-09-02 삼성전자주식회사 Pipeline Implementation of Reed-Solomon Coder
EP1111863A2 (en) 1999-12-23 2001-06-27 Lucent Technologies Inc. Method and apparatus for shortening the critical path of reduced complexity sequence estimation techniques
KR20060069167A (en) * 2004-12-17 2006-06-21 한국전자통신연구원 Hybrid trace back apparatus and high-speed viterbi decoding system using it

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문

Similar Documents

Publication Publication Date Title
US4606027A (en) Error correction apparatus using a Viterbi decoder
KR100580160B1 (en) Two-step soft output viterbi algorithm decoder using modified trace-back
CN1808912B (en) Error correction decoder
KR100195745B1 (en) Add compare selecter of vitervi decoder
IL143337A (en) Component decoder and method thereof in mobile communication system
KR19990078237A (en) An add-compare-select circuit and method implementing a viterbi algorithm
JPH07221655A (en) Communication system and information processing method
JP2007510337A (en) Viterbi / Turbo integrated decoder for mobile communication systems
EP2339757B1 (en) Power-reduced preliminary decoded bits in viterbi decoder
JP3264855B2 (en) Survivor memory in Viterbi decoder using Torres elimination method
EP3996285A1 (en) Parallel backtracking in viterbi decoder
KR20020048975A (en) High-speed acs unit for a viterbi decoder
KR101212856B1 (en) Method and apparatus for decoding data in communication system
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
KR100659777B1 (en) Systolic path memory, path memory using it, and viterbi detector thereof
KR100237490B1 (en) An apparatus for tracebacking survivor path of trellis code data
EP1542370A1 (en) Method and system for branch label calculation in a Viterbi decoder
JP2010206570A (en) Decoding apparatus and decoding method
KR101714009B1 (en) Apparatus and method of traceback having minimized decoding delay time
JPH05335973A (en) Viterbi decoder and decoder for convolution code
KR100491016B1 (en) Trace-Back Viterbi Decoder with Consecutive Control of Backward State Transition and Method thereof
KR20000049852A (en) Viterbi decoder
US20100185925A1 (en) Differential Locally Updating Viterbi Decoder
Jung et al. A new survivor memory management method in viterbi decoders: trace-delete method and its implementation
KR100726170B1 (en) Apparatus and method for viterbi decoding

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110914

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20121004

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee