KR100725931B1 - 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호시스템 - Google Patents

하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호시스템 Download PDF

Info

Publication number
KR100725931B1
KR100725931B1 KR1020040108282A KR20040108282A KR100725931B1 KR 100725931 B1 KR100725931 B1 KR 100725931B1 KR 1020040108282 A KR1020040108282 A KR 1020040108282A KR 20040108282 A KR20040108282 A KR 20040108282A KR 100725931 B1 KR100725931 B1 KR 100725931B1
Authority
KR
South Korea
Prior art keywords
block
backtracking
traceback
hybrid
value
Prior art date
Application number
KR1020040108282A
Other languages
English (en)
Other versions
KR20060069167A (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 KR1020040108282A priority Critical patent/KR100725931B1/ko
Priority to US11/263,443 priority patent/US7530010B2/en
Publication of KR20060069167A publication Critical patent/KR20060069167A/ko
Application granted granted Critical
Publication of KR100725931B1 publication Critical patent/KR100725931B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/395Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using a collapsed trellis, e.g. M-step algorithm, radix-n architectures with n>2
    • 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/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/4192Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using combined traceback and register-exchange

Abstract

1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은 초고속 통신을 수행하기 위하여 완전 병렬 ACS의 구조를 사용하고, 임계 경로의 최적화를 위하여 radix2 대신에 radix4를 사용한 구조에 있어서, 레지스터 교환 방식과 역추적 방식을 결합한 하이브리드 방식을 적용하여 하드웨어의 크기를 개선하고 성능과 전력소모에 있어서 최적화된 구조를 제공할 수 있는 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 경로 메트릭 계산기로부터 경로 메트릭의 가지(생존경로)를 입력받아, 블록 역추적을 하기 위한 비트 길이만큼 레지스터 교환을 통하여 블록 생존값을 얻기 위한 레지스터 교환수단; 상기 레지스터 교환이 원활하게 이루어지도록 블록 생존값을 저장 및 출력하고, 상기 레지스터 교환을 통해 얻은 블록 생존값을 블록 역추적 메모리에 쓸 때까지 저장하기 위한 저장수단; 및 상기 저장수단의 값을 상기 블록 역추적 메모리에 쓰면서 블록 역추적을 수행하여 복호된 데이터를 출력하기 위한 블록 역추적 수단을 포함하되, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 것을 특징으로 한다.
4. 발명의 중요한 용도
본 발명은 고속 무선통신 시스템 등에 이용됨.
하이브리드 역추적, 레지스터 교환, 블록 역추적, 비터비 복호기, Radix4

Description

하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템{Hybrid trace back apparatus and high-speed viterbi decoding system using it}
도 1 은 일반적인 하이브리드 역추적 구조를 나타낸 설명도,
도 2 는 일반적인 부분 병렬 ACS 구조를 갖는 하이브리드 역추적 구조를 나타낸 설명도,
도 3 은 본 발명에 따른 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템의 제1 실시예 구성도,
도 4 는 본 발명에 따른 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템의 제2 실시예 구성도,
도 5 는 상기 도 3 및 도 4의 블록 역추적부(BTB)의 일실시예 상세 구성도,
도 6 은 본 발명에 따른 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템의 제3 실시예 구성도,
도 7 은 본 발명의 제1 및 제2 실시예에 따른 하이브리드 역추적 장치에서 이중 버퍼를 사용하는 경우 레지스터 교환용 버퍼의 동작을 나타낸 일실시예 설명도,
도 8 은 본 발명의 제1 및 제2 실시예에 따른 하이브리드 역추적 장치에서 이중 버퍼를 사용하는 경우 블록 역추적용 버퍼의 동작을 나타낸 일실시예 설명도,
도 9 는 본 발명의 제3 실시예에 따른 하이브리드 역추적 장치에서 단일 버퍼를 사용하는 경우 고속 역추적용 버퍼의 동작을 나타낸 일실시예 설명도,
도 10 은 본 발명에 따라 이중 버퍼를 단일 버퍼로 구성하기 위한 개념을 나타낸 일실시예 설명도,
도 11 및 도 12 는 본 발명의 제3 실시예에 따른 하이브리드 역추적 장치에서 단일 버퍼를 사용하는 경우 하이브리드 역추적 구조를 나타낸 일실시예 설명도이다.
* 도면의 주요 부분에 대한 부호 설명
10 : 복조기(DeMod) 20 : 고속 비터비 복호기
21 : 가지 메트릭 계산기(PMC) 22 : 경로 메트릭 계산기(PMC)
23 : 하이브리드 역추적부(HTB) 231 : 레지스터 교환부(RE)
232 : 레지스터 교환용 버퍼 233 : 블록 역추적용 버퍼
234 : 블록 역추적부(BTB) 235,236 : 다중화기
27 : 고속 역추적용 버퍼 238 : 예비 역추적부
본 발명은 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템에 관한 것으로, 더욱 상세하게는 초고속 통신을 수행하기 위하여 완전 병렬 ACS(Add Compare Select)의 구조를 사용하고, 임계 경로의 최적화를 위하여 radix2 대신에 radix4를 사용한 구조에 있어서, 레지스터 교환 방식과 역추적 방식을 결합한 하이브리드 방식을 적용하여 하드웨어의 크기를 개선하고 성능과 전력소모에 있어서 최적화된 구조를 제공할 수 있는 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템에 관한 것이다.
동영상을 포함하는 멀티미디어를 지원하기 위한 무선통신 시스템은 고속의 전송이 필수적인 요소이다. 3세대 이후의 통신에서는 이것을 실현하기 위한 방안이 다각도로 연구되고 있으며, 오류정정 분야도 예외는 될 수 없다. 오류정정 분야에서 길쌈부호나 터보 부호는 표준에서 채택되고 있고, LDPC(Low Density Parity Check) 부호는 이론적으로 많이 연구되고 있으며, 구현에 관한 것도 종종 발표되고 있다. 그 동안은 전송이 낮은 통신시스템에서는 저속으로 동작하는 직렬 비터비 복호기가 주로 사용되었는데, 향후 고속통신의 시스템에서는 터보 복호기의 구현의 복잡도 때문에 병렬 비터비 복호기 사용될 것이다.
그럼, 본 발명의 적용분야 및 유사 선행기술들을 살펴보기로 한다.
WLAN 표준, 802.11a와 802.11b가 결합된 802.11g의 경우 54Mbps의 전송율을 지원하고 있으며, 차세대 무선랜의 표준이 802.11n의 경우 MAC 계층에서 155Mbps를 지원할 것으로 예측되고 있다. 이러한 무선랜 시스템은 이동성을 고려하지 않기 때문에 오류정정 기능을 길쌈부호와 비터비 복호기를 사용하여 수행한다.
이동통신 시스템에서는 구속장 K가 9인 길쌈부호를 사용하지만, 무선랜의 경우 구속장 K가 7인 길쌈부호를 사용한다. 일반적으로, 구속장의 증가에 따라서 비터비 복호기의 복잡도는 2의 지수승으로 증가하는 것으로 알려져 있다.
저속의 전송율을 갖는 통신시스템에서 비터비 복호기는 하나의 ACS 쌍을 사용하여 직렬로 구성하였으나, 전송율이 증가함에 따라서 여러 개의 ACS 쌍을 사용하는 다양한 병렬 구조가 사용되었다. 최근에 들어 초고속 통신을 수행하는 무선랜의 경우 길쌈 부호의 상태 수 만큼의 ACS 쌍을 완전히 병렬로 사용하고 그것도 전송율에 한계가 있어서 Radix2 대신에 Radix4를 채택하고 있다.
한편, 경로 추적 방법에는 '레지스터 교환 방식'과 '역추적 방식'이 있다.
레지스터 교환(RE : Register Exchange) 방식은 일반적으로 하드웨어를 많이 상용하기 때문에 잘 사용되지 않고 수정된 레지스터 교환 방식이 사용되고 있다.
그리고, 역추적(TB : Trace Back) 방식은 비트 역추적 방식과 블록 역추적(BTB : Block Trace Back) 방식이 있다.
여기서, 비트 역추적 방식은 비트 단위의 역추적을 수행하여 매번 역추적 깊이 만큼의 메모리를 읽는 과정이 필요하며, 이것을 처리하는 방법도 한 개의 포인터를 사용하는 방식과 다중 포인터를 사용하여 역추적 속도를 향상하는 방식이 있다. 반면, 블록 역추적 방식은 여러 비트로 이루어진 블록 단위로 역추적을 수행하여 비트 역추적보다는 메모리를 읽는 횟수가 적은 것으로 알려져 있다.
상기 레지스터 교환 방식과 역추적 방식이 혼합된 것을 '하이브리드 역추적 방식'이라고 부른다.
이러한 하이브리 역추적 방식은 "High speed low power architecture for memory management in a Viterbi decoder(IEEE International Symposium on Circuits and systems, pp284-287, Vol4. 12-15, May, 1996.)(이하, '제1 선행기술'이라 함)"에 개시된 바 있다.
상기 제1 선행기술에서는 ACS의 출력을 레지스터 교환 방식을 사용해 변경하여 블록 역추적이 가능하게 하고, 구속장이 3인 경우에 대하여 하이브리드 역추적 방식을 제안한 바 있는데, 레지스터 교환 방식에 관한 사항은 자세히 언급되어 있지 않을 뿐만 아니라, 역추적 방식은 단일 포인터를 사용하는 블록 역추적 방식을 채택하였다. 이에 대한 예시도로서, 4비트 블록 역추적을 도 1과 같이 개시한 바 있다.
도 1은 구속장이 3인 경우의 하이브리드 역추적 구조를 나타낸 것으로, 구속장이 큰 경우(예를 들면, 구속장이 7이나 9) 역추적을 레지스터로 구현할 경우 그 실효성이 적다.
한편, 본 발명과 관련된 선행기술의 다른 예로, "An Efficient In-Place VLSI Architecture for Viterbi Algorithm(Journal of VLSI Porcessing 33, pp317-324, 2003.)(이하, '제2 선행기술'이라 함)"이 존재하는데, 상기 제2 선행기술은 구속장이 6인 경우에 대하여 경로 메트릭(PM : Path Metric)과 레지스터 교환 방식이 분리되어 있는 것을 경로 메트릭의 계산에 밀접하게 연결하여 구현한 특징을 제공한다. 이렇게 함으로써, 상기 제1 선행기술에서 제안된 하이브리드 역추적 방식내의 레지스터 교환 방식보다 면적을 줄일 수 있는 장점을 지니게 된다. 또한, 부 분 병렬의 ACS를 구성하고, 특정 스테이지 경과 후에는 격자내의 상태가 원상태로 회귀하는 특성을 사용하여 부분 직렬 ACS 구조도 병합하였다. 그 구조는 도 2에 도시된 바와 같다.
도 2는 부분적인 병렬 ACS를 가지며, 레지스터 교환이 ACS와 밀접하게 결합되어 동작하는 것이다. 이는 완전 병렬 ACS 구조를 다루고 있지 않으며(즉, 완전 병렬인 구조를 채택하였을 경우에 대하여 고려하지 않음), 메모리를 사용한 역추적에 대하여 명확한 구조를 제시하지 못하고 있고, Radix2만을 다루고 있다.
비록, Radix-4를 갖는 고속 비터비 복호기에 관한 "Structure and methods for depuncturing puncutured codes for radix-4 branch metric calculation inhigh-speed Viterbi decoder(미국특허등록번호 US6732326, 2004. 5. 4 등록)(이하, 제3 선행기술이라 함)"가 존재하지만, 상기 제3 선행기술에서는 천공을 처리하기 위한 블록과 가지 메트릭을 계산하기 위한 블록을 제안하고 있으며, 역추적 방법에 관한 언급은 전혀 개시된 바 없다.
또한, 고속 비터비 복호기에 관한 "Viterbi decoder with high speed processing unit(미국특허등록번호 US 6792570, 2004. 9. 14 등록)(이하, '제4 선행기술'이라 함)"가 존재하지만, 상기 제4 선행기술에서는 Radix2를 사용하고 있으며, 역추적에 있어서 다중 포인터를 사용한 구조를 채택하고 있고, 역추적 방법에 관한 언급은 전혀 개시된 바 없다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 초고속 통신을 수행하기 위하여 완전 병렬 ACS의 구조를 사용하고, 임계 경로의 최적화를 위하여 radix2 대신에 radix4를 사용한 구조에 있어서, 레지스터 교환 방식과 역추적 방식을 결합한 하이브리드 방식을 적용하여 하드웨어의 크기를 개선하고 성능과 전력소모에 있어서 최적화된 구조를 제공할 수 있는 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명은, 하이브리드 역추적 장치에 있어서, 경로 메트릭 계산기로부터 경로 메트릭의 가지(생존경로)를 입력받아, 블록 역추적을 하기 위한 비트 길이만큼 레지스터 교환을 통하여 블록 생존값을 얻기 위한 레지스터 교환수단; 상기 레지스터 교환을 위한 제1 저장수단; 상기 레지스터 교환을 통해 얻은 블록 생존값을 블록 역추적 메모리에 쓸 때까지 저장하기 위한 제2 저장수단; 상기 제2 저장수단의 값을 상기 블록 역추적 메모리에 쓰면서 블록 역추적을 수행하여 복호된 데이터를 출력하기 위한 블록 역추적 수단; 상기 경로 메트릭 계산기에서 제공하는 역추적 포인터(TBP)를 받아서, 상기 제1 저장수단에 있는 블록 생존값을 사용하여 역추적 포인터(TBP1)를 계산하여 출력하기 위한 제1 예비 역추적 수단; 및 상기 제1 예비 역추적 수단으로부터 출력되는 역추적 포인터(TBP1)를 받아서, 상기 제2 저장수단에 있는 블록 생존값을 사용하여 역추적 포인터(TBP2)를 계산하여 상기 블록 역추적 수단으로 제공하기 위한 제2 예비 역추적 수단을 포함하되, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 것을 특징으로 한다.
삭제
한편, 본 발명은 하이브리드 역추적 장치에 있어서, 경로 메트릭 계산기로부터 경로 메트릭의 가지(생존경로)를 입력받아, 블록 역추적을 하기 위한 비트 길이만큼 레지스터 교환을 통하여 블록 생존값을 얻기 위한 레지스터 교환수단; 상기 레지스터 교환이 원활하게 이루어지도록 블록 생존값을 저장 및 출력하고, 상기 레지스터 교환을 통해 얻은 블록 생존값을 블록 역추적 메모리에 쓸 때까지 저장하기 위한 저장수단; 및 상기 저장수단의 값을 상기 블록 역추적 메모리에 쓰면서 블록 역추적을 수행하여 복호된 데이터를 출력하기 위한 블록 역추적 수단을 포함하되, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 것을 특징으로 한다.
또한, 본 발명은 상기 경로 메트릭 계산기에서 제공하는 역추적 포인터(TBP)를 받아서 상기 저장수단에 있는 블록 생존값을 사용하여 역추적 포인터(TBP1)를 계산하여 상기 블록 역추적 수단으로 제공하기 위한 예비 역추적 수단을 더 포함하 여 이루어진 것을 특징으로 한다.
다른 한편, 상기 하이브리드 역추적 장치를 통해 역추적을 수행하는 고속 비터비 복호 시스템에 있어서, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 경로메트릭을 갖는 구조하에서 레지스터 교환과 블록 역추적을 결합한 하이브리드 역추적을 통해 구속장이 7이나 9인 길쌈부호의 복호를 수행하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
무선통신 시스템의 고속화되어 감에 따라 무선통신 시스템의 물리 계층을 구성하는 오류정정 블럭도 고속화되어 갈 수 밖에 없다.
따라서, 본 발명에서는 실제 고속 통신시스템에서 사용되고 있는 구속장이 7이나 9인 길쌈부호의 복호를 위한 Radix4 기반의 고속 비터비 복호기(비터비 복호 시스템)를 구현하였다.
도 3 은 본 발명에 따른 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템의 제1 실시예 구성도로서, 특히 완전 병렬 ACS 구조를 갖는 하이브 리드 역추적 구조를 나타낸다.
본 발명에 따른 비터비 복호 시스템은 고속 처리를 위하여 Radix4를 기반으로 하며, 일반적인 비터비 복호기와 마찬가지로 가지 메트릭 계산기(BMC : Branch Metric Calculator)(21), 경로 메트릭 계산기(PMC : Path Metric Calculator)(22) 및 역추적 블록(본 발명에서는 하이브리드 역추적부(23))으로 구성된다.
가지 메트릭 계산기(BMC)(21)는 일반적으로 알려진 것처럼 수신된 연성판정(SD : Soft Decision) 심볼에서 각 격자도상에 각 가지에 대한 가지 메트릭(BM : Branch Metric)을 계산하는데, Radix4 연산의 경우 격자도에 나타난 두 개의 단계(stage)에 대하여 한번에 계산을 수행한다.
경로 메트릭 계산기(PMC)(22)는 Radix4 연산을 수행하므로 4개의 이전 경로 메트릭(PM : Path Metric) 값과 4개의 가지 메트릭(BM) 값을 받아서 합을 구하고, 그 중 가장 작은 값을 찾아 새로운 경로 메트릭(PM)으로 정한다. 이 때의 가지를 생존값(생존경로값)(SV : Survivor Value)으로 지정하며, 한 단계(stage)에서 가장 작은 경로 메트릭(PM)을 갖는 상태(state)를 역추적 포인터(TBP : Trace Back Pointer)의 초기값으로 사용한다. 그러므로, 경로 메트릭 계산기(22)는 일련의 계산 과정을 통하여 생존값(SV)과 역추적 포인터(TBP)를 역추적 블록(하이브리드 역추적부(23))에 제공한다.
통상, 역추적 블록은 단일 포인터 방식, 다중 포인터 방식, 레지스터 교환(RE : Register Exchange) 방식, 그리고 하이브리드 역추적(HTB : Hybrid Trace Back) 방식 등이 존재한다.
하이브리드 역추적 방식은 상기 제2 선행기술에서와 같이 부분적인 병렬 ACS를 갖는 경우에 대하여 개시된 바 있다. 그러나, 전술한 바와 같이 상기 제2 선행기술에서는 Radix4를 갖는 경우에 대해서 개시되어 있지 않다. 특히, 구속장이 7이나 9인 경우 레지스터로 동작하는 것은 실현성이 떨어져 메모리를 사용하는 것이 필수적이라 할 수 있음에도 불구하고, 상기 제2 선행기술에서는 메모리를 사용한 역추적에 대한 언급이 없다.
그러므로, 기존 방식과 본 발명에서 하이브리드 역추적라는 측면에서는 다소 유사하지만, 본 발명은 Radix4를 사용한 완전 병렬 ACS를 갖는 경로 메트릭을 갖는 구조하에서의 하이브리드 역추적이라는 관점에서 기존 방식과는 상이하다. 또한, 이러한 조건에서 레지스터 교환(RE) 방식과 블록 역추적(BTB : Block Trace Back) 방식을 더욱 강하게 결합한 하이브리드 역추적(HTB) 방식이라는 점에서 차이가 있다.
이러한 점을 감안할 때, 도 3은 구속장인 큰 경우에 모든 상태에 대하여 ACS를 갖는 완전 병렬 ACS 구조를 갖는 고속 비터비 복호 시스템이다.
이를 위해, 도 3에 도시된 바와 같이, 하이브리드 역추적부(HTB)(23)에서는 레지스터 교환부(231)와 레지스터 교환(RE)을 수행하는데 필요한 레지스터 교환용 버퍼(BUF for RE)(232)를 사용하여 특정 비트 길이, 즉 블록 역추적(BTB)을 하기 위한 비트 길이만큼 레지스터 교환(RE)을 통하여 블록 생존값(BSV : Block Survivor Value)을 얻는다. 이때, 레지스터 교환(RE)을 위한 레지스터 교환용 버퍼(BUF for RE)(232)는 레지스터 교환(RE)이 항상 발생하므로 반드시 필요하다. 또 한, 이 값을 블록 역추적(BTB) 메모리(블록 역추적부(234) 내부 메모리임)에 쓰기 위해서는 한번에 쓸 수 없어 여러 번에 나누어서 써야 하므로, 블록 역추적부(234)가 레지스터 교환용 버퍼(232)의 값을 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)에 쓸 때까지 저장해야 하는 블록 역추적용 버퍼(BUF for BTB)(233)가 필요하다.
블록 역추적부(BTB)(234)에서는 블록 역추적용 버퍼(BUF for BTB)(233)의 값을 해당 메모리(블록 역추적부(234) 내부 메모리)에 쓰면서 일반적으로 알려진 블록 역추적(BTB)을 수행하여 복호된 출력(DD : Decoded Data)을 얻는다. 이때, 쓰기 동작과 블록 역추적 동작이 동시에 가능한 것은, 일반적으로 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)를 블록 단위 나누어서 쓰는 동작을 수행하는 메모리와 읽는 동작을 수행하는 메모리가 분리되어 있기 때문이다.
정리해보면, 본 발명의 제1 실시예에 따른 하이브리드 역추적 장치는, 경로 메트릭 계산기(22)로부터 경로 메트릭의 가지(생존경로값)를 입력받아, 블록 역추적을 하기 위한 비트 길이만큼 레지스터 교환(RE)을 통하여 블록 생존값(BSV)을 얻기 위한 레지스터 교환부(RE)(231)와, 레지스터 교환(RE)을 위한 레지스터 교환용 버퍼(BUF for RE)(232)와, 레지스터 교환(RE)을 통해 얻은 블록 생존값(BSV)을 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)에 쓸 때까지 저장하기 위한 블록 역추적용 버퍼(BUF for BTB)(233)와, 블록 역추적용 버퍼(BUF for BTB)(233)의 값을 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)에 쓰면서 블록 역추적을 수행하여 복호된 데이터(DD)를 출력하기 위한 블록 역추적부(BTB)(234)를 포함 하여, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 경로 메트릭을 갖는 구조하에서 레지스터 교환(RE) 방식과 블록 역추적(BTB) 방식을 더욱 강하게 결합한 하이브리드 역추적 방식을 수행한다.
도 4 는 본 발명에 따른 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템의 제2 실시예 구성도로서, 상기 도 3의 하이브리드 역추적 장치를 한 단계 발전시킨 구조를 나타낸다.
그 특징은 버퍼 내에서 역추적을 두번 수행하여 복호 지연시간을 줄였고, 같은 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)를 사용하였을 때 효과적으로 역추적 깊이가 늘어나므로 성능향상을 가져온다. 이는 도 4에 도시된 바와 같이, 다중화기(235,236)가 경로 메트릭 계산기(22)에서 제공하는 역추적 포인터(TBP)를 받아서 레지스터 교환(RE)을 위한 레지스터 교환용 버퍼(BUF for RE)(232)와 블럭 역추적의 메모리(블록 역추적부(234) 내부 메모리)에 쓰기 위한 블록 역추적용 버퍼(BUF for BTB)(233)에 있는 블록 생존값(BSV)을 사용하여 각각 역추적 포인터(TBP1과 TBP2)를 계산하여, 블록 역추적부(234)에 들어서기 전에 이미 두번의 블록 역추적을 수행하는 장점을 갖는다.
따라서, 본 발명의 제2 실시예에 따른 하이브리드 역추적 장치는, 경로 메트릭 계산기(22)로부터 경로 메트릭의 가지(생존경로값)를 입력받아, 블록 역추적을 하기 위한 비트 길이만큼 레지스터 교환(RE)을 통하여 블록 생존값(BSV)을 얻기 위한 레지스터 교환부(RE)(231)와, 레지스터 교환(RE)을 위한 레지스터 교환용 버퍼(BUF for RE)(232)와, 레지스터 교환(RE)을 통해 얻은 블록 생존값(BSV)을 블록 역 추적 메모리(블록 역추적부(234) 내부 메모리)에 쓸 때까지 저장하기 위한 블록 역추적용 버퍼(BUF for BTB)(233)와, 경로 메트릭 계산기(22)에서 제공하는 역추적 포인터(TBP)를 받아서, 레지스터 교환용 버퍼(BUF for RE)(232)에 있는 블록 생존값(BSV)을 사용하여 역추적 포인터(TBP1)를 계산하여 출력하기 위한 다중화기(제1 예비 역추적)(235)와, 다중화기(제1 예비 역추적)(235)로부터 출력되는 역추적 포인터(TBP1)를 받아서, 블록 역추적용 버퍼(BUF for BTB)(233)에 있는 블록 생존값(BSV)을 사용하여 역추적 포인터(TBP2)를 계산하여 블록 역추적부(BTB)(234)로 제공하기 위한 다중화기(제2 예비 역추적)(236)와, 블록 역추적용 버퍼(BUF for BTB)(233)의 값을 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)에 쓰면서 블록 역추적을 수행하여 복호된 데이터(DD)를 출력하기 위한 블록 역추적부(BTB)(234)를 포함하여, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 경로 메트릭을 갖는 구조하에서 레지스터 교환(RE) 방식과 블록 역추적(BTB) 방식을 더욱 강하게 결합한 하이브리드 역추적 방식을 수행한다. 이때, 전술한 바와 같이 버퍼 내에서 역추적을 두번 수행하여 복호 지연시간을 줄일 수 있고, 같은 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)를 사용하였을 때 효과적으로 역추적 깊이가 늘어나므로 성능향상을 가져온다.
도 5 는 상기 도 3 및 도 4의 블록 역추적부(BTB)의 일실시예 상세 구성도이다.
설명의 편의를 위하여, 도 5에서는 구속장을 7로 하고 Radix4 연산을 가정하며, 블록 역추적(BTB)의 단위를 8비트로 하고 역추적 깊이는 8비트의 배수로 간주 하였다. 그러므로, 격자도상의 상태수는 64개가 되며, 그에 따른 버퍼의 크기는 "8비트 x 64" 상태인 512비트의 값을 갖는다. 또한, Radix4 기반의 경로 메트릭 계산기(22)에서 제공하는 생존값(생존경로값)은 한번에 2비트이고 블록 역추적의 단위를 8비트라 하였으므로 4번의 경로 메트릭 계산을 수행하게 된다. 그리고, 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)의 깊이는 56으로 하였다. 또한, 완전병렬 ACS 구조를 갖는 경로 메트릭 계산기(22)의 임계 경로와 블록 역추적부(234)의 임계 경로는 차이가 존재하는데, 여기서는 블록 역추적부(234)의 동작 주파수가 경로 메트릭 계산기(22)의 동작 주파수보다 2배 빠른 것으로 가정하였다.
블록 역추적부(BTB)(234)의 메모리(블록 역추적부(234) 내부 메모리)는 7개의 모듈로 나누어져 있고, 하나의 모듈은 8개의 주소를 가지며 64비트의 데이터 넓이를 갖는다. 그러므로, 하나의 데이터 버스에는 8상태의 값을 갖게 된다.
우선, 블록 역추적부(BTB)(234)의 쓰기 동작을 살펴보면 다음과 같다.
a. 외부에서 블록 생존값(블록 생존경로값)(BSV)을 단계 디멀티플렉서(stg DEMUX 1x7)(501)를 통하여 8번에 나누어서 단계 0의 메모리(블록 역추적부(234) 내부 메모리)에 기록한다.
b. 위의 "a"의 과정을 단계를 증가시켜가면서 계속하여 반복한다.
한편, 블록 역추적부(BTB)(234)의 읽기 동작을 살펴보면 다음과 같다.
a. 메모리(블록 역추적부(234) 내부 메모리)가 단계 5까지 채워지면 역추적 포인터(TBP)를 사용하여 7개로 나누어진 메모리(블록 역추적부(234) 내부 메모리) 블럭 중의 하나의 모듈(처음에는 단계 5의 모듈)을 단계 멀티플렉서(stg MUX 7x1)(502)로 선택하여 64비트를 출력한다.
b. 출력되는 64비트는 8개의 상태 값을 가지고 있는데, 이중 해당 상태(state)의 값을 상태 멀티플렉서(stt MUX 8x1)(503)로 선택하여 비트의 출력을 제공한다.
c. 이중 하위 6비트가 다음 단의 역추적 포인터(TBP)가 된다.
d. 단계(stage)를 하나 줄인다.
e. 위의 "a"에서 "d"의 과정을 단계가 0이 될 때까지 반복한다.
f. 최종 단계에서 얻어진 8비트가 복호된 데이터(DD)이다.
이상에서는 레지스터 교환에 사용되는 레지스터 교환용 버퍼(BUF For RE)(232)와, 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)에 블록 생존값(BSV)을 저장하기 위해 버퍼링하는데 필요한 블록 역추적용 버퍼(BUF For BTB)(233)를 사용하여 하이브리드 역추적 장치를 구현하였다. 이는 나름대로의 장점을 가지고 있지만, 버퍼(232,233)를 위한 레지스터 모듈를 두 개 사용하는 것이 단점이다. 이하에서는 이를 하나로 만들기 위한 방식을 제안한다.
레지스터 모듈이 하나로 이루어지면, 도 6과 같은 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호 시스템을 설계할 수 있다.
도 6 은 본 발명에 따른 하이브리드 역추적 장치 및 그를 이용한 고속 비터 비 복호 시스템의 제3 실시예 구성도이다.
레지스터 교환부(RE)(231)는 하이브리드 역추적용 버퍼(BUF for HTB)(237)를 사용하여 레지스터 교환을 수행한다. 이때, 하이브리드 역추적용 버퍼(BUF for HTB)(237)는 레지스터 교환(RE)이 원활하게 이루어지도록 블록 생존값(블록 생존경로값)(BSV)을 저장하고 출력한다. 또한, 블록 역추적부(BTB)(234)는 하이브리드 역추적용 버퍼(BUF for HTB)(237)의 값을 순차적을 읽어서 메모리(블록 역추적부(234) 내부 메모리)에 차례로 저장한다. 또한, 이때도 하이브리드 역추적용 버퍼(BUF for HTB)(237)는 블록 역추적부(BTB)(234)가 원만히 동작하도록 블록 생존값(블록 생존경로값)(BSV)을 제공해야 한다. 그러므로, 하이브리드 역추적용 버퍼(BUF for HTB)(237)는 레지스터 교환부(231)와 블록 역추적부(234)가 동시에 동작하는데 문제가 없도록 해당 값을 제공해야 한다.
따라서, 본 발명의 제3 실시예에 따른 하이브리드 역추적 장치는, 경로 메트릭 계산기(FP PMC : Fully Parallel Path Metric Calculator)(22)로부터 경로 메트릭(PM)의 가지(생존경로)를 입력받아, 블록 역추적(BTB)을 하기 위한 비트 길이만큼 레지스터 교환(RE)을 통하여 블록 생존값(BSV)을 얻기 위한 레지스터 교환부(RE)(231)와, 레지스터 교환(RE)이 원활하게 이루어지도록 블록 생존값(BSV)을 저장 및 출력하고, 레지스터 교환(RE)을 통해 얻은 블록 생존값(BSV)을 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)에 쓸 때까지 저장하기 위한 하이브리드 역추적용 버퍼(BUF for HTB)(237)와, 하이브리드 역추적용 버퍼(BUF for HTB)(237)의 값을 블록 역추적 메모리(블록 역추적부(234) 내부 메모리)에 쓰면서 블록 역추 적(BTB)을 수행하여 복호된 데이터(DD)를 출력하기 위한 블록 역추적부(BTB)(234)를 포함하여, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 경로 메트릭을 갖는 구조하에서 레지스터 교환(RE) 방식과 블록 역추적(BTB) 방식을 더욱 강하게 결합한 하이브리드 역추적 방식을 수행한다. 또한, 경로 메트릭 계산기(FP PMC)(22)에서 제공하는 역추적 포인터(TBP)를 받아서 하이브리드 역추적용 버퍼(BUF for HTB)(237)에 있는 블록 생존값(BSV)을 사용하여 역추적 포인터(TBP1)를 계산하여 블록 역추적부(BTB)(234)로 제공하기 위한 예비 역추적부(Pre TB)(238)를 더 포함한다.
그럼, 도 7을 참조하여 본 발명의 제1 및 제2 실시예에 따른 하이브리드 역추적 장치에서 이중 버퍼를 사용하는 경우 레지스터 교환용 버퍼(BUF For RE)(232)의 동작을 살펴보고, 도 8을 참조하여 본 발명의 제1 및 제2 실시예에 따른 하이브리드 역추적 장치에서 이중 버퍼를 사용하는 경우 블록 역추적용 버퍼(BUF For BTB)(233)의 동작을 살펴보기로 한다.
설명의 편의를 위하여, 상기에서 언급했던 가정은 유효하다. 즉, 구속장이 7이므로 상태 수는 64개로 구성되고, Radix4이므로 한번에 생성되는 생존값(SV)은 각 상태당 2비트가 되며, 8비트 블록 역추적을 선택하였으므로 레지스터 교환용 버퍼(BUF For RE)(232)의 레지스터는 각 상태당 8비트가 된다. 그러므로, 한번의 블록 동안 전체 저장해야 할 비트 수는 512비트가 된다.
레지스터 교환용 버퍼(BUF For RE)(232)와 블록 역추적용 버퍼(BUF For BTB)(233)가 서로 다른 것을 사용하는 경우, 각각의 버퍼는 서로 독립적으로 동작 된다.
먼저, 레지스터 교환용 버퍼(BUF For RE)(232)에 입력되는 값을 살펴보면, Radix4 동작이므로 한 개의 상태(state)당 2비트의 블록 생존값(블록 생존경로값)(BSV)이 출력되며, 완전 병렬 ACS 구조를 가지기 때문에 64개의 상태의 값이 한번에 출력되므로 64x2 비트의 블록 생존값(블록 생존경로값)(BSV)이 출력된다.
레지스터 교환용 버퍼(BUF For RE)(232)의 동작은 도 7에 도시된 바와 같이 하기의 순서로 동작한다.
우선, 레지스터 교환용 버퍼(BUF For RE)(232)의 쓰기 동작을 살펴보면 다음과 같다.
a. 64x2비트의 값을 도 7의 (a)와 같이 저장한다.
b. 이전의 블록 생존값(블록 생존경로값)(BSV)과 새로 ACS에서 제공되는 블록 생존값(블록 생존경로값)(BSV)을 선택하여 64x4 비트의 값을 도 7의 (b)와 같이 저장한다.
c. 이전의 블록 생존값(블록 생존경로값)(BSV)과 새로 ACS에서 제공되는 블록 생존값(블록 생존경로값)(BSV)을 선택하여 64x6 비트의 값을 도 7의 (c)와 같이 저장한다.
d. 이전의 블록 생존값(블록 생존경로값)(BSV)과 새로 ACS에서 제공되는 블록 생존값(블록 생존경로값)(BSV)을 선택하여 64x8 비트의 값을 도 7의 (d)와 같이 저장한다.
e. 위의 "a"에서 "d"의 과정을 계속하여 반복한다.
한편, 레지스터 교환용 버퍼(BUF For RE)(232)의 읽기 동작을 살펴보면 다음과 같다.
모든 값이 레지스터 교환부(RE)(231)에 연결되어 있으므로 특별한 읽는 동작은 필요하지 않다. 다만, 위의 쓰기 동작의 "d" 과정이 완료되면 그 값을 도 8의 블록 역추적용 버퍼(BUF For BTB)(233)에 한번에 제공한다.
블록 역추적용 버퍼(BUF For BTB)(233)의 동작은 도 8에 도시된 바와 같이 하기의 순서로 동작한다.
우선, 블록 역추적용 버퍼(BUF For BTB)(233)의 쓰기 동작을 살펴보면 다음과 같다.
a. 레지스터 교환용 버퍼(BUF For RE)(232) 동작에서 4번이 완료되면 그 값을 한번에 블록 역추적용 버퍼(BUF For BTB)(233)에 저장한다.
b. 위의 "a" 과정을 반복 수행한다.
한편, 블록 역추적용 버퍼(BUF For BTB)(233)의 읽기 동작을 살펴보면 다음과 같다.
a. 블록 역추적부(234)의 메모리(블록 역추적부(234) 내부 메모리)에 값을 저장하는 방식은 블록 역추적을 수행하기 위하여 8비트로 이루어진 한 상태의 모든 블록 생존값(블록 생존경로값)(BSV)을 하나의 번지수에서 저장되도록 하여야 한다. 그러므로, 도 8의 (a)와 같이 상태 0번지부터 상태 15번지 까지의 값 16x8개를 읽어서 블록 역추적부(234)에 제공한다.
b. 도 8의 (b)와 같이 상태 16번지부터 상태 31번지 까지의 값 16x8개를 읽어서 블록 역추적부(234)에 제공한다.
c. 도 8의 (c)와 같이 상태 32번지부터 상태 47번지 까지의 값 16x8개를 읽어서 블록 역추적부(234)에 제공한다.
d. 도 8의 (d)와 같이 상태 48번지부터 상태 63번지 까지의 값 16x8개를 읽어서 블록 역추적부(234)에 제공한다.
e. 위의 "a"에서 "d"의 과정을 반복 수행한다.
이상의 동작에서 보는 바와 같이 레지스터 교환용 버퍼(BUF For RE)(232)와 블록 역추적용 버퍼(BUF For BTB)(233)를 단순히 하나로 합하면 정상동작이 불가능하다. 그러나, 본 발명에서는 버퍼(하이브리드 역추적용 버퍼(BUF for HTB)(237))를 구성하는 쓰고 읽는 구조와 순서를 아래와 같이 변경하여 이를 수행하도록 하였다.
상기 버퍼(하이브리드 역추적용 버퍼(BUF for HTB)(237))의 512 비트를 상태당 2비트 블록 생존값(블록 생존경로값)(BSV)과 16 상태를 기본으로 하는 32비트의 레지스터 단위 모듈을 구성하면 16개의 모듈들을 만들 수 있으며, 이는 도 9와 같 이 4x4 행렬로 표기할 수 있다. 이 4x4 행렬은 하드웨어의 구성에 따라서 더 커지거나 작아질 수 있으나, 여기에서는 정방행렬을 가정한다.
도 9는 상기 2개의 버퍼(레지스터 교환용 버퍼(BUF For RE)(232)와 블록 역추적용 버퍼(BUF For BTB)(233))로 구성되었던 것을 하나의 버퍼(하이브리드 역추적용 버퍼(BUF for HTB)(237))를 사용하여 동작하는 과정을 보여준다.
이를 구체적으로 살펴보면, 먼저 레지스터 교환부(RE)(231)의 쓰기 동작은 열 단위로 진행하여 모든 버퍼(237)를 채운다. 이때, 레지스터 교환 동작을 수행하기 위한 읽기 동작도 열 단위로 수행된다.
버퍼(237)가 모두 채워지면, 블록 역추적부(BTB)(234)의 내부 메모리에 값을 쓰는 것은 한 상태의 생존 경로의 값의 단위로 취급해야 하므로 반드시 행 단위로 진행되어야 한다. 이 과정이 진행됨에 따라서 행 단위로 버퍼(237)가 비워지게 된다.
그러므로, 레지스터 교환부(231)의 동작 결과는 행 단위로 쓸 수 밖에 없다. 이때, 레지스터 교환부(231)의 동작을 위한 읽기 동작도 행 단위로 수행된다. 이렇게 버퍼(237)가 행 단위로 채워지는 경우 블록 역추적부(234)의 메모리에 값을 쓰는 것은 반드시 열단위로 진행되어야 한다. 이 과정이 진행됨에 따라서 이번에는 열 단위로 버퍼(237)가 비워지게 되며, 버퍼(237)의 상태는 처음 동작과 동일한 상태에 있게 된다.
위의 과정을 반복하여 두 개의 버퍼(레지스터 교환용 버퍼(BUF For RE)(232)와 블록 역추적용 버퍼(BUF For BTB)(233))를 하나의 버퍼(하이브리드 역추적용 버 퍼(BUF for HTB)(237))로 처리하는 것이 가능하다.
도 10은 상기 도 9의 과정을 하나의 블록으로 정리한 것이다.
도 10에 도시된 바와 같이, 레지스터 교환부(RE)(231)에서 (iI,tI)의 블록 생존값(블록 생존경로값)(BSV)을 제공한다고 가정한다. 여기서, iI는 32비트로 이루어져 있고, iI의 값의 의미는 64개의 상태를 16등분하여 갖는 값으로 0에서 3까지의 값을 가지며, tI는 입력되는 순서에 대한 값으로 버퍼(237)의 행렬이 4x4로 이루어져 있으므로 4로 나눈 값이 0에서 3까지의 값을 갖는다. 또한, 버퍼(237)는 4x4 행렬로 이루어져 있으며 이들은 (iR,jR)로 표기할 수 있으며, 그 범위는 0에서 3의 값을 갖는다.
이렇게 표기하였을 때 상기 동작을 수학식으로 나타내면, 먼저 행 단위로 입력되는 경우에 버퍼(237)의 입력과 버퍼(237)의 행렬식은 하기의 [수학식 1]과 같은 관계를 갖는다.
iR = iI, jR =tI mod 4
반면, 열 단위로 입력되는 경우에 버퍼(237)의 입력과 버퍼(237)의 행렬식은 하기의 [수학식 2]와 같은 관계를 갖는다.
iR = tI mod 4, jR = iI
한편, 행 단위 쓰기 동작이 완료된 후, 버퍼(237)에서 외부로 (iM,tM)의 값을 제공한다고 가정하면, 버퍼(237)와 이들 사이의 관계는 첫 번째 열 단위로 제공되는 경우 하기의 [수학식 3]으로 표기할 수 있다.
iM = jR , (tM mod 4) = iR
반면, 행 단위로 제공되는 경우 하기의 [수학식 4]로 표기할 수 있다.
iM = iR , (tM mod 4) = jR
이상의 과정을 수행하는 버퍼(237)의 동작 과정은 도 11과 같다.
도 11에 도시된 바와 같이, 열 단위 동작에서는 레지스터 교환부(231)에서 제공되는 값을 스위치하지 않고 바로 버퍼(237)의 레지스터에 쓰며, 행 단위의 동작에서는 상기 수학식에 의하여 나타난 값을 도면에 도시된 형태로 스위칭하여 저 장한다.
버퍼(237)의 메모리를 읽는 과정은 두 가지가 있는데, 레지스터 교환을 위한 읽기와 블록 역추적부(234)에 제공하기 위한 읽기가 있다.
여기서, 레지스터 교환(RE)을 위한 읽기에서는 레지스터 교환의 쓰기 동작과 동일하게 동작한다. 반면, 블록 역추적부(234)에 제공하기 위한 읽기 동작은 행 단위의 동작을 먼저 수행하고 열 단위의 동작을 나중에 수행하기 때문에, 이들 간에 동기를 맞추면 하나의 버퍼(237)로 동작이 가능하다. 좀더 자세한 동작을 단계별로 나타내면 하기의 [표 1]과 같이 나타난다.
Figure 112004059782515-pat00001
이상의 동작에 대한 구조는 도 12에 나타나 있다.
도 12에 도시된 바와 같이, 레지스터 교환부(231)는 경로 메트릭 계산기 (PMC)(22)에서 생존값(SV)을 받아 2비트 단위의 레지스터 교환(RE)을 수행한다. 이를 버퍼(237)에 제공하면, 버퍼(237)에서는 해당 동작 모드에 따라서 레지스터(Register 64x8)의 입출력에 연결되어 있는 멀티플렉서가 상기한 바와 같이 블록 역추적부(234)의 내부 메모리에 저장 및 제공을 수행한다.
이렇게 수행된 값에서 멀티플렉서(MUX 4x1)에서 블록 역추적부(234)에 순차적으로 값을 제공하는 동시에, 멀티플렉서(MUX 64x1)를 사용하여 다음 역추적 포인터를 추출한다.
이상과 같이 하나의 버퍼(237)를 사용하여 구성된 하이브리드 역추적 방식을 갖는 비터비 복호 시스템의 구조는 도 6과 같고, 두 개의 버퍼(232,233)를 사용하여 구성된 하이브리드 역추적 방식을 갖는 비터비 복호 시스템의 구조는 도 3 및 도 4와 같다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 고속 통신 시스템에서 사용되고 있는 구속장이 7이나 9인 길쌈부호의 복호를 위한 Radix4에 기반의 고속 비터비 복호기를 구현할 수 있는 효과가 있다.
일반적인 하이브리드 방식이 레지스터 교환을 수행하기 위한 레지스터와 역추적을 수행하는 메모리에 값을 쓰는데 소요되는 시간동안 버퍼링해야 할 레지스터가 필요하고, 일반적인 레지스터 교환 방식에서는 역추적을 수행하지 않고 역추적은 역추적 블록에서 수행하지만, 본 발명에서는 경로 메트릭에서 역추적 포인터 값을 사용하여 레지스터 교환 버퍼에서 역추적을 한번 수행하고 역추적 메모리에 저장하기 위해 필요한 버퍼에서 다시 한번 역추적을 수행하여 새로운 역추적 값을 블록 역추적부에 제공하기 때문에, 역추적의 깊이를 증가시킬 수 있는 효과가 있다.
특히, 본 발명은 이중 버퍼를 사용하지 않고도, 레지스터 교환과 블록 역추적 메모리에 저장하기 위한 버퍼를 하나로 사용하여, 해당 버퍼에서 미리 역추적을 수행하여 다음 단의 블록 역추적 포인터를 계산하기 때문에, 역추적의 깊이를 증가시킬 수 있는 효과가 있다.
또한, 본 발명은 블록 역추적의 특성상 기존의 고속 비터비 복호기에서 채택하고 있는 다중 역추적 포인터를 사용한 구조보다 역추적 메모리의 사용을 줄일 수 있는 장점을 가지고 있으며, 메모리를 읽는 횟수도 적기 때문에 소모전력도 작은 장점을 갖는다.

Claims (9)

  1. 삭제
  2. 하이브리드 역추적 장치에 있어서,
    경로 메트릭 계산기로부터 경로 메트릭의 가지(생존경로)를 입력받아, 블록 역추적을 하기 위한 비트 길이만큼 레지스터 교환을 통하여 블록 생존값을 얻기 위한 레지스터 교환수단;
    상기 레지스터 교환을 위한 제1 저장수단;
    상기 레지스터 교환을 통해 얻은 블록 생존값을 블록 역추적 메모리에 쓸 때까지 저장하기 위한 제2 저장수단;
    상기 제2 저장수단의 값을 상기 블록 역추적 메모리에 쓰면서 블록 역추적을 수행하여 복호된 데이터를 출력하기 위한 블록 역추적 수단;
    상기 경로 메트릭 계산기에서 제공하는 역추적 포인터(TBP)를 받아서, 상기 제1 저장수단에 있는 블록 생존값을 사용하여 역추적 포인터(TBP1)를 계산하여 출력하기 위한 제1 예비 역추적 수단; 및
    상기 제1 예비 역추적 수단으로부터 출력되는 역추적 포인터(TBP1)를 받아서, 상기 제2 저장수단에 있는 블록 생존값을 사용하여 역추적 포인터(TBP2)를 계산하여 상기 블록 역추적 수단으로 제공하기 위한 제2 예비 역추적 수단
    을 포함하되, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 것을 특징으로 하는 하이브리드 역추적 장치.
  3. 하이브리드 역추적 장치에 있어서,
    경로 메트릭 계산기로부터 경로 메트릭의 가지(생존경로)를 입력받아, 블록 역추적을 하기 위한 비트 길이만큼 레지스터 교환을 통하여 블록 생존값을 얻기 위한 레지스터 교환수단;
    상기 레지스터 교환이 원활하게 이루어지도록 블록 생존값을 저장 및 출력하고, 상기 레지스터 교환을 통해 얻은 블록 생존값을 블록 역추적 메모리에 쓸 때까지 저장하기 위한 저장수단; 및
    상기 저장수단의 값을 상기 블록 역추적 메모리에 쓰면서 블록 역추적을 수행하여 복호된 데이터를 출력하기 위한 블록 역추적 수단
    을 포함하되, Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 구조를 갖는 것을 특징으로 하는 하이브리드 역추적 장치.
  4. 제 3 항에 있어서,
    상기 경로 메트릭 계산기에서 제공하는 역추적 포인터(TBP)를 받아서 상기 저장수단에 있는 블록 생존값을 사용하여 역추적 포인터(TBP1)를 계산하여 상기 블록 역추적 수단으로 제공하기 위한 예비 역추적 수단
    을 더 포함하는 하이브리드 역추적 장치.
  5. 제 2 항 내지 제 4 항 중 어느 한 항에 있어서,
    Radix 4 기반의 상기 경로 메트릭 계산기의 임계경로와 상기 블록 역추적 수단의 임계경로의 차를 인식하여 상기 블록 역추적 수단의 동작 주파수를 Radix4 기반의 상기 경로 메트릭 계산기의 동작주파수를 2배로 하는 것을 특징으로 하는 하이브리드 역추적 장치.
  6. 제 3 항 또는 제 4 항에 있어서,
    상기 저장수단은,
    상기 레지스터 교환(RE)을 위한 읽기에서는 레지스터 교환의 쓰기 동작과 동일하게 동작하고, 반면 상기 블록 역추적 수단에 제공하기 위한 읽기 동작은 행 단위의 동작을 먼저 수행하고 열 단위의 동작을 나중에 수행한 후, 이들 간에 동기를 맞추어 하나의 버퍼로 동작 가능한 것을 특징으로 하는 하이브리드 역추적 장치.
  7. 제 6 항에 있어서,
    상기 레지스터 교환수단의 쓰기 동작은 열 단위로 진행하여 상기 저장수단의 모든 버퍼를 채우고, 레지스터 교환 동작을 수행하기 위한 읽기 동작도 열 단위로 수행되며,
    상기 버퍼가 모두 채워지면, 상기 블록 역추적 수단의 내부 메모리에 값을 쓰는 것은 한 상태의 생존 경로의 값의 단위로 취급해야 하므로 반드시 행 단위로 진행되어야 하므로, 이 과정이 진행됨에 따라서 행 단위로 상기 버퍼가 비워지게 되며,
    상기 레지스터 교환수단의 동작 결과는 행 단위로 쓸 수 밖에 없어, 이때 상기 레지스터 교환수단의 동작을 위한 읽기 동작도 행 단위로 수행되고, 이렇게 상기 버퍼가 행 단위로 채워지는 경우 상기 블록 역추적 수단의 메모리에 값을 쓰는 것은 반드시 열단위로 진행되어야 하므로, 이 과정이 진행됨에 따라서 이번에는 열 단위로 상기 버퍼가 비워지게 되며, 상기 버퍼의 상태는 처음 동작과 동일한 상태에 있게 되어, 레지스터 교환에 사용되는 버퍼와 블록 역추적에 사용되는 버퍼를 하나로 통합하는 것을 특징으로 하는 하이브리드 역추적 장치.
  8. 제 2 항 내지 제 4 항 중 어느 한 항의 하이브리드 역추적 장치를 통해 역추적을 수행하는 고속 비터비 복호 시스템에 있어서,
    Radix4를 사용한 완전 병렬 ACS(Add Compare Select) 경로메트릭을 갖는 구조하에서 레지스터 교환과 블록 역추적을 결합한 하이브리드 역추적을 통해 구속장이 7이나 9인 길쌈부호의 복호를 수행하는 것을 특징으로 하는 Radix4 기반의 고속 비터비 복호 시스템.
  9. 제 8 항에 있어서,
    상기 경로메트릭은,
    4개의 이전 경로 메트릭(PM) 값과 4개의 가지 메트릭 값을 받아서 합을 구하고, 그 중 가장 작은 값을 찾아 새로운 경로 메트릭으로 정하며, 이 때의 가지를 생존값(생존경로값)으로 지정하고, 한 단계에서 가장 작은 경로 메트릭을 갖는 상태를 역추적 포인터의 초기값으로 사용하는 것을 특징으로 하는 Radix4 기반의 고속 비터비 복호 시스템.
KR1020040108282A 2004-12-17 2004-12-17 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호시스템 KR100725931B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020040108282A KR100725931B1 (ko) 2004-12-17 2004-12-17 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호시스템
US11/263,443 US7530010B2 (en) 2004-12-17 2005-10-31 Hybrid trace back apparatus and high-speed viterbi decoding system using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040108282A KR100725931B1 (ko) 2004-12-17 2004-12-17 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호시스템

Publications (2)

Publication Number Publication Date
KR20060069167A KR20060069167A (ko) 2006-06-21
KR100725931B1 true KR100725931B1 (ko) 2007-06-11

Family

ID=36597624

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040108282A KR100725931B1 (ko) 2004-12-17 2004-12-17 하이브리드 역추적 장치 및 그를 이용한 고속 비터비 복호시스템

Country Status (2)

Country Link
US (1) US7530010B2 (ko)
KR (1) KR100725931B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991056B2 (en) 2004-02-13 2011-08-02 Broadcom Corporation Method and system for encoding a signal for wireless communications
KR100659777B1 (ko) * 2005-12-21 2006-12-20 고려대학교 산학협력단 시스톨릭 패스 메모리, 이를 이용한 비터비 디코더의 패스메모리 및 비터비 디코더
US20070266303A1 (en) * 2006-04-27 2007-11-15 Qualcomm Incorporated Viterbi decoding apparatus and techniques
US20110119567A1 (en) * 2009-11-16 2011-05-19 Ralink Technology Corporation Signal processing method and communication system using the same
KR20120134549A (ko) 2011-06-02 2012-12-12 삼성전자주식회사 Simd 프로세서를 이용한 병렬 연산 처리 장치 및 방법
TWI729755B (zh) * 2020-04-01 2021-06-01 智原科技股份有限公司 接收器與應用在接收器中的交織碼調變解碼器及相關的解碼方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000049852A (ko) * 2000-05-03 2000-08-05 정지원 비터비복호기
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
KR20010106608A (ko) * 2000-05-22 2001-12-07 최시연 다수준 격자부호변조방식의 복호화방법 및 장치
US20030123579A1 (en) 2001-11-16 2003-07-03 Saeid Safavi Viterbi convolutional coding method and apparatus
US20040122883A1 (en) 2002-12-18 2004-06-24 Lee Seok-Jun High speed add-compare-select circuit for radix-4 Viterbi decoder

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3501725B2 (ja) 2000-05-12 2004-03-02 日本電気株式会社 ビタビ復号器
KR100375823B1 (ko) 2000-12-27 2003-03-15 한국전자통신연구원 고속 비터비 복호기에서 라딕스-4 가지 메트릭 연산을위한 디펑처 구조 및 방법
US8140947B2 (en) * 2005-09-30 2012-03-20 Agere Systems Inc. Method and apparatus for storing survivor paths in a Viterbi detector using systematic pointer exchange

Patent Citations (6)

* 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
JP2001230682A (ja) * 1999-12-23 2001-08-24 Lucent Technol Inc 複雑性を低減した系列推定技術のクリティカルパスを短縮する方法および装置
KR20000049852A (ko) * 2000-05-03 2000-08-05 정지원 비터비복호기
KR20010106608A (ko) * 2000-05-22 2001-12-07 최시연 다수준 격자부호변조방식의 복호화방법 및 장치
US20030123579A1 (en) 2001-11-16 2003-07-03 Saeid Safavi Viterbi convolutional coding method and apparatus
US20040122883A1 (en) 2002-12-18 2004-06-24 Lee Seok-Jun High speed add-compare-select circuit for radix-4 Viterbi decoder

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
일본 특허공개 평13-230682

Also Published As

Publication number Publication date
US20060136802A1 (en) 2006-06-22
KR20060069167A (ko) 2006-06-21
US7530010B2 (en) 2009-05-05

Similar Documents

Publication Publication Date Title
US7549113B2 (en) Turbo decoder, turbo decoding method, and operating program of same
US20030123579A1 (en) Viterbi convolutional coding method and apparatus
CN100517984C (zh) 用于移动通信系统的维特比/涡轮联合译码器
JP2002171173A (ja) 複数の復号化スキームのうちの1つに従って送信されたデータ通信信号を復号化する再構成可能なアーキテクチャと、畳み込み符号とターボ符号の一方を復号化する通信復号化デバイスのパスメトリックを取り扱う方法。
JP2003511895A (ja) 移動通信システムにおける構成復号装置及び方法
JP6022085B2 (ja) マルチモードデコーダの実現方法及び装置
JP2002176366A (ja) 通信の復号化の際に用いられるバタフライプロセッサ装置
JP3954071B2 (ja) ターボ復号化装置及び方法
JP2002152057A (ja) トレリス処理装置の適切なパスメトリックアドレスを計算する装置と方法。
US7530010B2 (en) Hybrid trace back apparatus and high-speed viterbi decoding system using the same
Sun et al. FPGA Design and Implementation of a Convolutional Encoder and a Viterbi Decoder Based on 802.11 a for OFDM
US7590928B2 (en) Apparatus and method for Viterbi decoding
Ranpara On a Viterbi decoder design for low power dissipation
JP2007532076A (ja) ビタビ復号装置
JP2009246474A (ja) ターボデコーダ
US8775914B2 (en) Radix-4 viterbi forward error correction decoding
Anders et al. A 64-state 2GHz 500Mbps 40mW Viterbi accelerator in 90nm CMOS
JPH0951278A (ja) ビタビ復号器
CN1787386A (zh) 一种维特比译码器路径度量存储的方法
JP2010206570A (ja) 復号装置、復号方法
JP2002534902A (ja) 復号装置におけるエム・エル状態選択装置及び方法
US20070230606A1 (en) Viterbi traceback
CN114629507B (zh) 一种Turbo和LDPC码速率匹配和交织器共享存储设计方法
Tadse et al. A low power asynchronous Viterbi decoder using minimum transition hybrid register exchange method
CN102723959A (zh) 维特比译码器、多路并行译码器和加比选处理方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
J201 Request for trial against refusal decision
AMND Amendment
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130424

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140430

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee