KR20160026748A - 비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법 - Google Patents

비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법 Download PDF

Info

Publication number
KR20160026748A
KR20160026748A KR1020150120903A KR20150120903A KR20160026748A KR 20160026748 A KR20160026748 A KR 20160026748A KR 1020150120903 A KR1020150120903 A KR 1020150120903A KR 20150120903 A KR20150120903 A KR 20150120903A KR 20160026748 A KR20160026748 A KR 20160026748A
Authority
KR
South Korea
Prior art keywords
path metric
viterbi
path
unit
cyclic
Prior art date
Application number
KR1020150120903A
Other languages
English (en)
Other versions
KR102415394B1 (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 삼성전자주식회사
Publication of KR20160026748A publication Critical patent/KR20160026748A/ko
Application granted granted Critical
Publication of KR102415394B1 publication Critical patent/KR102415394B1/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
    • H03M13/413Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding
    • 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
    • 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/4115Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors list output Viterbi decoding
    • 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/4138Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors soft-output Viterbi algorithm based decoding, i.e. Viterbi decoding with weighted decisions

Landscapes

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

Abstract

전자 시스템은 입력 코드 스트림을 수신하는 지원 칩을 포함하고, 지원 칩에 연결된 순환 비터비 매커니즘은 입력 코드 스트림을 위한 최종 경로 매트릭을 생성하고, 반복 경로에서 중간 경로 매트릭을 저장하고, 입력 코드 스트림을 위한 반복 경로 매트릭을 생성하고, 최종 경로 매트릭, 반복 경로 매트릭, 및 중간 경로 매트릭에 근거하여 소프트 코릴레이션 매트릭을 계산한다.

Description

비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법{ELECTRONIC SYSTEM WITH VITERBI DECODER MECHANISM AND METHOD OF OPERATION THEREOF}
본 발명은 일반적으로 전자 시스템에 관련된 것으로서, 특히, 전자 시스템들에 의한 통신 프로세싱을 위한 비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법에 관한 것이다.
현대 전자 시스템은 시스템 사용자들의 통신 능력들을 개선하기 위해 빠른 신호 프로세싱에 의존한다. 집적 회로의 개발 프로세스는 전자 시스템의 신호 처리 능력을 개선하는 회로들을 제공하기 위해 비약적인 발전을 이루고 있다. 전자 시스템들은 셀룰러 전화기들, 와이파이(WIFI)에 접속된 컴퓨터 시스템들, 무선 원격 제어 기기들, 전자 테스트 장비, 무선 라우터들, 또는 무선 통신 시스템들을 포함할 수 있다.
많은 알고리즘들을 프로세싱하는 신호들을 최적화하기 위해 제안되고 있다. 순환 비터비 알고리즘(circular Viterbi algorithm: 이하 'CVA'라 칭하기로 함)은 테일 바이팅 컨볼루셔널 코드(TBCC: tail-biting convolutional code)를 디코딩하기 위한 실시예에서 전형적으로 사용되는 차선(suboptimal)의 알고리즘이다. CVA에서, 비터비 알고리즘(Viterbi algorithm)은 정보가 블록 형태로 반복되어 전송되는 응용들을 위해, 반복된 통신 블록들의 시퀀스에 적용된다. 이러한 기법은 디코딩 프로세스를 개선하기 위해 다음 반복(iteration)으로 시도하는 이전 디코딩으로부터 모든 이용가능한 소프트 정보를 전달한다.
CVA의 일부 구현들은 하드웨어로 집약될 수 있다. 그러한 구현은 로직 또는 메모리로 집약될 수 있다. 구현의 비용은 신호 프로세싱 성능으로부터 이득일 수 있는 많은 응용들을 배제시킬 수 있다.
따라서, 신호 프로세싱 능력들의 개선과 통신 신뢰성의 개선을 위한 비터비 디코더 매커니즘을 갖는 전자 시스템을 위한 수요는 여전히 남아 있다. 계속하여 증가하는 상업적인 경쟁적 압박들의 관점에서, 소비자들의 기대들의 증가와 시장에서 차별화되는 의미있는 제품들을 위한 기회들의 감소에 따라, 이러한 문제들의 해결책을 찾는 것은 갈수록 더 중요하다. 추가적으로, 비용의 감소, 효율 및 성능 개선, 및 경쟁적인 압박들의 직면을 위한 필요는 훨씬 더 긴급히 증가한다.
이러한 문제들의 해결은 오랫동안 추구되었으나, 이전 개발들은 교시되거나 제안되는 어떤 해결책들을 갖지 못함에 따라서, 해당 기술분야에서 오랫동안 이룰 수가 없는 문제점이 있었다.
본 발명의 목적은 신호 프로세싱 능력과 통신 신뢰성을 개선을 위해 비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법을 제공함에 있다.
본 발명의 전자 시스템은 입력 코드 스트림을 수신하는 지원 칩을 포함하고, 상기 지원 칩에 연결된 순환 비터비 매커니즘은 상기 입력 코드 스트림을 위한 최종 경로 매트릭을 생성하고, 반복 경로에서 중간 경로 매트릭을 저장하고, 상기 입력 코드 스트림을 위한 반복 경로 매트릭을 생성하고, 상기 최종 경로 매트릭, 상기 반복 경로 매트릭, 및 상기 중간 경로 매트릭에 근거하여 소프트 코릴레이션 매트릭을 계산한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 정규화된 오버플로우 카운트를 생성하기 위한 오버플로우 제어 및 보상 유닛을 더 포함한다.
이 실시예에 있어서, 상기 오버 플로우 제어 및 보상 유닛은 트렐리스의 종단과 상기 반복 깊이에서 오버플로우 횟수를 계산한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 래딕스(Radix)-4 단계를 포함한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 리스트-역추적 유닛과 함께 리스트 생성 유닛을 더 포함한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 상기 디코드된 코드워드들의 오드 넘버를 위한 보상을 하는 오드 길이 보상 유닛을 포함한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 덧셈-비교-선택(ACS: add-compare-select) 유닛을 통한 지원을 위한 보상을 위해 오프셋(Γ)을 더한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 생성된 리스트의 차동 경로 매트릭에 대한 보상을 위해 θ를 계산한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 상기 최종 경로 매트릭을 생성하는 고정 포인트 테일 바이팅 컨볼루셔널 코드(TBCC: tail-biting convolutional code) 디코더를 포함한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘은 하기의 수학식에 근거하여 소프트 코릴레이션 매트릭을 계산하고,
[수학식]
Figure pat00001
이다.
본 발명에 따른 전자 시스템의 동작 방법은 입력 코드 스트림을 수신하는 단계, 순환 비터비 알고리즘을 이용하여 상기 입력 코드 스트림을 위한 최종 경로 매트릭을 생성하는 단계, 상기 순환 비터비 메커니즘을 이용하여 디코딩할 때, 상기 반복 경로에서 중간 경로 매트릭들을 저장하는 단계, 상기 입력 코드 스트림을 위한 반복 경로 매트릭을 생성하는 단계, 및 상기 최종 경로 매트릭, 상기 반복 경로 매트릭, 및 상기 중간 경로 매트릭에 근거하여 소프트 코릴레이션 매트릭을 계산하는 단계를 포함한다.
이 실시예에 있어서, 상기 소프트 코릴레이션 매트릭은 오버플로우 보상을 위한 보상하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 소프트 코릴레이션 매트릭을 계산하는 단계는 두 개의 래딕스(Radix)-2 단계들의 조합에 의해 형성된 radix-4 단계를 갖는 입력 코드 스트림을 프로세싱하는 단계를 포함한다.
이 실시예에 있어서, 상기 소프트 코릴레이션 매트릭을 계산하는 단계는 디코드된 후보들의 리스트를 생성하기 위한 리스트 역추적 유닛에 연결된 순환 비터비 매커니즘을 이용하여 입력 코드 스트림을 프로세싱하는 단계를 포함한다.
이 실시예에 있어서, 상기 오버플로우 보상을 위해 보상하는 단계는 상기 트렐리스의 종단 및 상기 반복 깊이에서 오버플로우 횟수의 계산을 포함한다.
이 실시예에 있어서, 상기 입력 코드 스트림을 위한 상기 반복 경로 매트릭을 생성하는 단계는 상기 디코드된 코드워드들의 오드 넘버를 보상하는 단계를 더 포함한다.
이 실시예에 있어서, 덧셈-비교-선택(ACS: add-compare-select) 유닛을 통한 지연의 측정에 의한 오프셋(Γ)를 결정하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 리스트 디코드된 후보들의 차동 경로 매트릭의 측정에 의한 θ를 결정하는 단계를 더 포함한다.
이 실시예에 있어서, 상기 순환 비터비 매커니즘을 이용하여 상기 최종 경로 매트릭을 생성하는 단계는 고정 포인트 테일 바이팅 컨볼루셔널 코드(TBCC: tail-biting convolutional code)에 의해 프로세싱하는 단계를 포함한다.
이 실시예에 있어서, 상기 소프트 코릴레이션 매트릭을 계산하는 단계는 하기의 수학식과 같고,
[수학식]
Figure pat00002
이다.
본 발명의 컴퓨팅 시스템은 이븐 또는 오드 전송 길이를 관리할 수 있는 차동 경로들을 제공하는 컨볼루셔널 디코더를 이용함에 따라 신호 프로세싱 능력과 통신 신뢰성을 개선할 수 있다.
도 1은 본 발명의 실시예에서 비터비 디코더 매커니즘을 갖는 전자 시스템을 도시한 도면,
도 2는 본 발명의 실시예에서 비터비 디코더를 예시적으로 도시한 도면,
도 3은 본 발명의 실시예에서 홀수 길이 보상 블록을 예시적으로 도시한 도면,
도 4는 본 발명의 실시예에 따른 오버플로우 제어 및 보상 유닛을 예시적으로 도시한 도면,
도 5는 본 발명의 실시예에서 비터비 디코더에 의해 처리된 전송 시퀀스를 예시적으로 도시한 도면, 및
도 6은 본 발명의 추가적인 실시예에 따른 전자 시스템의 동작 방법을 도시한 순서도이다.
다양한 실시예들은 통신 집적 회로(integrated circuit)의 임의의 타입에서 집적될 수 있는 비터비 디코더(Viterbi decoder)를 갖는 전자 시스템을 제공한다. 실시예들은 비터비 알고리즘을 적용하기 이전의 수신된 데이터 블록들의 복제없이 순환 디코딩(circular decoding)을 위한 더 높은 성능을 제공할 수 있다. 포워드(forward) 비터비 동작 동안, 반복 단계(repetition stage)들의 브랜치 매트릭(branch matric)들은 데이터 디코딩을 위해 사용되는 경로 매트릭(PM: path matric)을 추가할 수 있다. 그 결과, 최종 PM은 반복 단계들을 따른 경로의 일부로 간주되는 전파 지연(propagation delay)에 따라 소프트 코릴레이션 매트릭(SCM: soft correlation matric)에 미리 결정된 오프셋 텀을 더한 것과 동일하다.
비터비 실시예들은 고정된 포인트(즉, PM을 나타내기 위해 이용가능한 비트들의 제한된 수를 갖는)인 순환 디코더들을 제공한다. 그 결과, 코드워드의 길이가 충분히 길면, 오버플로우가 불가피하다.
모듈로 정규화(modulo normalization)는 최대 우도(ML: maximum likelihood) 경로를 발견하기 위한 이러한 이슈들을 지정하지만, SCM 소모를 위해, 오버플로우는 상당히 더 낮은 값에서 결과일 수 있다.
다양한 실시예들은 순환 디코더의 처리율을 증가시키기 위해 래딕스(이하 ‘Radix’라 칭하기로 함)-4 트렐리스를 이용할 수 있다. 예를 들면, 두 개의 Radix-2 단계들은 하나의 radix-4 단계의 형태로 결합된다. 반면에, Radix-4 트렐리스는 최종 PM의 영향을 받지 않고, 오드(odd)(또는 홀수) 정보의 비트 사이즈들을 갖는 테일 바이팅 컨볼루셔널 코드(TBCC: tail-biting convolutional code) 비터비 디코더들에서 훈련 스테이지를 위한 역추적(traceback) 프로세스와 SCM 보상을 복잡하게 할 수 있다.
다양한 실시예들은 하나의 코드워드보다는 최종 스테이지에서 코드워드들의 리스트를 생성하기 위한 추가적인 하드웨어 복잡도를 갖는 순환 비터비 디코더를 수정할 수 있다. 리스트 비터비 디코딩(list Viterbi decoding)을 수행할 때, 순환 비터비 디코더는 K 후보들의 리스트를 생산한다. 이러한 후보들의 PM(그로 인한 SCM)은 리스트 디코더의 포워드 반복 동안 계산된 다른 PM을 통해 관련된다. 이러한 사실은 후보 코드워드들 각각의 SCM 값들의 생산을 위해 활용될 수 있다.
다음의 실시예들은 발명을 사용하고 만들기 위해 당업자에게 실행 가능하도록 충분히 상세하게 기술된다. 그것은 본 발명에 근거하여 자명한 것과 본 발명의 실시예의 범위를 벗어나지 않도록 만들어질 수 있는 시스템, 프로세스들, 또는 기계적인 변경들인 다른 실시예들로 이해될 수 있다.
다음의 기재들에서, 수많은 특정 상세들이 본 발명의 이해를 위해 제공되도록 주어질 수 있다. 그러나, 그것은 이러한 특정 상세들 없이 실행될 수 있는 발명을 나타낸다. 본 발명의 실시예의 중복을 회피하기 위해, 일부 잘 알려진 회로들, 시스템 구성들, 및 프로세스 단계들은 상세히 기술하지 않는다.
시스템의 실시예들을 보여주는 도면들은 제한적으로 도식되고, 비율로 한정되지 않고, 특히, 차원들 중 일부는 발명을 명확하게 할 수 있고, 도시된 도면들 내 과장되도록 도시될 수 있다. 마찬가지로, 비록 설명의 편의를 위한 도면들 내 시점들이 유사한 방향을 일반적으로 보여주더라도, 이 도면들 내의 묘사는 대부분의 부분에서 임의로 설정된다. 일반적으로 본 발명은 임의의 방향에서 동작될 수 있다. 실시예들은 기술의 편의를 위한 사안으로서, 제 1 실시예, 제 2 실시예 등으로 번호가 부여될 수 있고, 임의의 다른 의미를 갖거나 본 발명의 실시예를 위한 제한 사항들을 제공하지 않는다.
여기에 나타난 "모듈" 의 용어는 그 용어가 사용된 문맥에 따른 본 발명의 실시예에서 소프트웨어, 하드웨어 또는 그것들의 조합을 포함할 수 있다. 예를 들면, 소프트웨어 모듈은 기계 코드, 펌웨어, 임베디드 코드, 및/또는 응용 소프트웨어를 포함할 수 있다. 또 예를 들면, 하드웨어는 회로, 프로세서, 컴퓨터, 집적 회로(integrated circuit), 집적 회로 코어들, 압력 센서, 관성 센서, 마이크로전자기계시스템(MEMS: microelectromechanical system), 수동 기기들, 또는 그것들의 조합을 포함할 수 있다. 더욱이, 모듈은 하기에서 장치 청구항들의 영역으로 기술될 수 있고, 모듈들은 장치 청구항들의 범위와 목적을 위한 하드웨어 회로를 포함한 것으로 간주될 수 있다.
여기에 나타난 “유닛”의 용어는 하드웨어 컴포넌트들의 형성된 회로, 하드웨어 회로, 또는 특정 기능들을 위해 사용된 하드웨어 상태 머신들이다.
도 1은 본 발명의 실시예에서 비터비 디코더 매커니즘을 갖는 전자 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명의 실시예에서 컨볼루셔널 디코더 매커니즘(convolutional decoder mechanism)을 갖는 전자 시스템(100)을 보여준다. 전자 시스템(100)은 모뎀 회로(modem circuit), 통신 회로, 또는 수신기 회로와 같은 집적 회로(102)를 포함한다. 집적 회로(102)는 매우 높은 트랜지스터 카운트와 고속 로직으로 구현될 수 있다.
예시된 목적들을 위해, 전자 시스템(100)은 통신 기기와 같은 집적 회로(102)로 기술될 수 있으며, 집적 회로(102)는 다른 타입의 장치들일 수 있는 것으로 이해될 수 있다. 예를 들면, 집적 회로(102)는 이미지들을 통신하거나 멀티미디어 기능을 위한 장치일 수도 있다. 예를 들면, 집적 회로(102)는 고화질 텔레비전, 컴퓨터 태블릿, 컴퓨터 모니터, 개인 휴대 단말(PDA: personal digital assistant), 셀룰러 폰, 광 드라이버, 광 수신기, 또는 멀티 미디어 폰을 위한 회로일 수 있다. 다른 예에서, 집적 회로(102)는 텔레비전 수신기, 케이블 박스, 위성 접시 수신기(satellite dish receiver), 또는 웹 활성화 장치(web enabled device)와 같은 브로드캐스트 또는 라이브 스트림 신호들을 수신하기 위한 신호 수신기로 이용될 수 있다.
예로서, 전자 시스템(100)은 제 1 지원 회로(support circuit)(104)를 포함할 수 있다. 제 1 지원 회로(104)는 집적 회로(102)의 기능을 위한 인터페이스 장치일 수 있다. 예시적인 실시예에서, 제 1 지원 회로(104)는 무선 수신기 유닛으로 보이지만, 제 1 지원 회로(104)는 다른 무선 프로토콜들 또는 유선 인터페이스를 이용하는 인터페이스와 같은 다른 타입의 장치 또는 기능일 수 있는 것으로 이해된다.
예로서, 전자 시스템(100)은 제 2 지원 회로(106)를 포함할 수 있다. 제 2 지원 회로(106)는 집적 회로(102) 내로부터 중간 결과들을 저장하기 위한 메모리 장치일 수 있다. 제 2 지원 회로(106)는 집적 회로(102)의 중간 결과들을 유지할 수 있다. 집적 회로(102)는 실시간으로 일반 동작들을 수행할 수 있는 반면에, 제 2 지원 회로(106)는 중간 결과들 및 통신 상태들을 수집한다.
예로서, 전자 시스템(100)은 제 2 지원 회로(106)에 연결될 수 있는 프로세서, 집적 프로세서(integrated processor), 코어 프로세서(core processor), 또는 주문형 반도체(ASIC: application specific integrated circuit)와 같은 지원 프로세서(support processor)(107)를 포함할 수 있다. 지원 프로세서(107)는 제 2 지원 회로(106)에 저장된 데이터의 컨텐츠를 분석할 수 있다. 지원 프로세서(107)는 실시간 동작 동안 집적 회로(102)의 임의의 지원 기능들을 결정하기 위해 제 2 지원 회로(106)와 상호작용할 수 있다.
집적 회로(102)의 실시예는 제 1 지원 회로(104)에 연결된 아날로그 디지털 변환기(ADC: Analog-to-Digital Converter)를 포함할 수 있다. 아날로그 디지털 컨버터(108)는 집적 회로(102)의 내부 동작들을 위해 제 1 지원 회로(104)로부터 아날로그 신호를 디지털 신호로 변환할 수 있다. 집적 회로(102)의 예시적인 실시예에서, 아날로그 디지털 변환기(108)는 통신 코드워드들을 전달하는 입력 코드 스트림(111)을 분리하기 위해 수신기 필터 유닛(receiver filter unit)(110)에 연결될 수 있다.
수신기 필터 유닛(110)은 컨볼루셔널 디코더(convolutional decoder)(114)를 포함하는 내부 데이터 경로(internal data path)(112)에 연결될 수 있고, 집적 회로(102)의 기능 회로를 포함한다. 컨볼루셔널 디코더(114)는 수신된 정보 내에 이산 필드(discrete field)가 아닌 데이터인 입력 코드 스트림을 디코드(복호)하는 비시스터매틱 디코더(nonsystematic decoder)이다. 컨볼루셔널 디코더(114)의 예로서, 비터비 디코더(114)가 있다. 고정된 포인트의 리스트 테일 바이팅 컨볼루셔널 코드(TBCC) 비터비 디코더와 같은 컨볼루셔널 디코더(114)는 제 1 지원 회로(104)를 통해 수신되어 검증된 코드워드들을 제공할 수 있다.
내부 데이터 경로(112)는 디지털 아날로그 변환기(DAC: digital-to-analog converter)(118)를 통해, 집적 회로(102)를 위한 외부 인터페이스를 제공하는 송신기 유닛(116)에 연결될 수 있다. 디지털 아날로그 변환기(118)는 집적 회로(102)의 예를 위한 기능적인 출력(functional output)(120)을 제공한다.
기능적인 출력(120)은 집적 회로(102) 내에 수용된 기능의 의도된 출력을 전달하기 위한 인터페이스일 수 있다. 한 예를 들면 기능적인 출력(120)은 모뎀 출력, 비디오 드라이버, 오디오 드라이버, 제어 기능, 또는 프로세서 등일 수 있다.
컨볼루셔널 디코더(114)는 집적 회로(120)의 임의의 타입으로 집적될 수 있는 것으로 발견된다. 컨볼루셔널 디코더(114)는 컨볼루셔널 디코더의 초기 훈련으로부터 절감(save)되고 역추적 프로세스 동안 확인될 수 있는 소프트 코릴레이션 매트릭(SCM)과 경로 매트릭(PM) 사이의 관계의 활용에 의해, 이전의 구현들에 의해 필요되는 추가적인 지연을 초래하지 않고 소프트 코릴레이션 매트릭(SCM)을 제공할 수 있다.
도 2는 본 발명의 실시예에서 비터비 디코더를 예시적으로 도시한 도면이다.
도 2를 참조하면, 실시예에서 컨볼루셔널 디코더(114)의 예시적인 블록도이다. 컨볼루셔널 디코더(114)의 예시적인 블록도는 디코딩 프로세스의 이전 반복들로부터 생존 경로 오버플로우들의 리스트를 유지할 수 있는 생존 경로 메모리(202)를 도시한다. 예로서, 생존 경로 메모리(202)는 제 2 지원 회로(106)와는 다르고, 컨볼루셔널 디코더(114)의 타이밍 요구들을 수용하기 위한 레지스터 어레이(register array)와 같이 구현될 수 있다.
생존 경로 메모리(202)는 리스트 역추적 유닛(list trace-back unit)(204)과 초기 종료 상태 선택 유닛(initial end-state select unit)(206)에 연결될 수 있다. 예로서, 초기 종료 상태 선택 유닛(206)은 리스트 역추적 유닛(204) 내에 구현될 수 있으나, 설명의 편의를 위하여 그것은 개별 유닛들로 도시한다. 초기 종료 상태 선택 유닛(206)은 이전 코드워드로부터 생존 경로 메모리(202)의 출력으로 이해될 수 있다. 상태 0의 출력(208)은 리스트 역추적 유닛(204)을 위한 초기 역추적 레벨로 설정될 수 있다.
리스트 역추적 유닛(204)은 오드 길이 보상 유닛(odd length compensation unit)(212), 오버플로우 제어 및 보상 유닛(overflow control and compensation unit)(214), 및 중간 경로 매트릭 메모리 유닛(intermediate path metric memory unit)(216)과 같은 시작 상태 출력(start state output)(210)의 소스일 수 있다. 예를 들면, 중간 경로 메트릭 메모리 유닛(216)은 컨볼루셔널 디코더(114)의 성능 요구들을 만족하기 위해 레지스터 어레이로 구현될 수 있다. 경로 매트릭 버스(path metric bus)(217)는 신호 디코드의 계산을 위해 가능한 오버플로의 모니터링을 위해 중간 경로 매트릭 메모리 유닛(216)과 오버플로우 제어 및 보상 유닛(124) 사이에 연결될 수 있다.
리스트 역추적 유닛(204)은 최종 경로 매트릭을 나타내는 종료 상태 및 경로 매트릭 출력(end state & PM output)(218)과 반복 깊이(T-N)의 역추적의 시작에서 식별된 상태를 생성할 수도 있다. 경로 매트릭 출력(220)은 훈련 프로세스의 종단에서 경로 매트릭 출력인
Figure pat00003
과 트렐리스 분석의 종단에서 경로 매트릭의 출력인
Figure pat00004
를 제공할 수 있다.
예로서, 리스트 생성 유닛(list generation unit)(222)은 전달된 코드워드들의 소프트 코릴레이션 매트릭의 계산의 일부로서
Figure pat00005
Figure pat00006
사이의 차이를 계산할 수 있다. 리스트 생성 유닛(222)은 최적 경로로부터 매트릭들의 차이에 따른 계산을 위해 소프트 코릴레이션 매트릭(SCM) 계산 유닛(soft correlation metric compute unit)(226)에 의한 사용을 위해 코드워드들의 리스트일 수 있는 리스트 쎄타 출력(list theta output)(224)을 생성할 수 있다. SCM 계산 유닛(226)은 리스트 생성 유닛(222)으로부터 리스트 쎄타 출력(224)과 오버플로우 제어 및 보상 유닛(214)으로부터 보상된 시작 경로 매트릭(PM)(228)과 보상된 종료 경로 매트릭(PM)(230)을 수신할 수 있다.
SCM 보상 유닛(226)은 하기의 수학식 1에 의해 전달된 코드워드의 소프트 코릴레이션 매트릭을 계산할 수 있다.
Figure pat00007
여기서,
Figure pat00008
는 트렐리스의 종단에서 PM이고,
Figure pat00009
은 훈련 종단에서 PM 라이트(right)이다. SEnd F는 마지막 역추적에서 역추적 시작 상태이고, SHead F 는 최종 역추적 상태이다. 보상 파라미터들은 특정 고정된 포인트의 구현에 의존하고, qk(j)는 단계 k 내의 단계 j에서 생존 경로 매트릭(PM)에서 오버플로우 개수이고, 오프셋(OFFSET)은 오버플로우 제어 및 보상 유닛(214)의 고정 포인트 구현에서 사용된 비트 폭을 위한 대체 가능한 정수 중 가능한 가장 큰 것 기인하는 시간 지연에 의존하여 일정하다.
TBCC 비터비 디코더와 같은 컨볼루셔널 디코더(114)는 후보 경로들의 리스트를 생성하기 위해 수정될 수 있다. 이러한 경우, θ는 최적 경로의 누적된 경로 매트릭(PM)들과 다른 후보 경로들 사이의 차이일 수 있다. 이러한 실시예는 θ 에 대한 보상을 위한 방법을 제공할 수도 있다. Γ는 하드웨어 쉬프트(hardware shift)또는 스큐 값(skew value)과 같은 오프셋이고, 리스트 역추적 유닛(204)으로부터 LLR 값들의 특정 하드웨어 매핑에 의존한다. 이러한 수학식의 모든 파라미터들은 역추적이 완료된 이후에 쉽게 이용할 수 있고, 그것은 비터비 알고리즘(VA: Viterbi Algorithm)의 다른 구현들에 의해 필요한 바와 같은 재인코딩(re-encoding)에 기인한 임의의 추가적인 지연없이 즉시 계산될 수 있다. 훈련 사이클 동안 수학식 1에서 식별된 관계의 이용에 의해, 반복 단계들의 브랜치 매트릭(branch matric)들은 데이터의 디코딩을 위해 사용되는 경로 매트릭(PM)에 추가될 수 있다. 그 결과, 최종 경로 매트릭(PM)은 반복 단계들에 따른 경로의 일부에 따른 오프셋 용어로 더해진 SCM과 동일하다.
실시예는 컨볼루셔널 디코더(114)의 순환 디코딩을 위한 보상을 할 수 있다. 고정된 포인트 TBCC 컨볼루셔널 디코더(114)는 비터비 알고리즘의 적용 이전에 수신된 데이터 블록들의 복제(replication)를 필요로 하지 않는다. 포워드 비터비 동작 동안, 반복 단계들의 브랜치 매트릭들은 데이터의 디코딩을 위해 사용되는 경로 매트릭(PM)에 추가될 수 있다. 그 결과, 최종 PM은 반복 단계들에 기인하는 경로의 일부에 따른 고정된 오프셋 용어로 더해진 SCM와 동일하다.
많은 가능한 실시예들의 하나는 PM 오버플로우 정규화(PM overflow normalization)를 위한 보상이 있다. TBCC 컨볼루셔널 디코더(114)는 고정된 포인트이다. 다시 말해, 그것은 PM을 나타내기 위해 이용가능한 비트들의 제한된 수(number)이다. 그 결과, 코드워드의 길이가 충분히 길면, 오버플로우는 불가피하다. TBCC 컨볼루셔널 디코더(114)는 가장 유사한 경로를 발견하기 위한 이러한 이슈를 지정하기 위해 모듈로 정규화(modulo normalization)를 사용할 수 있다. 그러나, SCM 보상을 위해, 오버플로우는 PM 값을 위해 보상을 한한 이후, 그렇지 않으면, 그것은 더 작고, SCM 계산에서 사용을 위해 부정확한 값일 수 있다.
실시예는 TBCC 컨볼루셔널 디코더(114)의 처리율의 증가를 위해 Radix-4를 이용할 수 있다. Radix-4 트렐리스는 최종 PM에 영향을 주지 않으나, 그것은 오드 정보 비트 크기들을 갖는 TBCC 컨볼루셔널 디코더(114)에서 훈련 단계를 위한 SCM 보상과 역추적 프로세스를 복잡하게 만든다. 이것은 SCM 계산 유닛(226) 상에 부담을 최소화하는 오드 길이 보상 유닛(212)의 포함에 의한 구입을 언급한다.
도 1의 전자 시스템(100)의 실시예는 최종 스테이지에서 코드워드들의 리스트를 제공할 수 있다. 리스트 TBCC 디코딩을 위한 실시예의 낮은 복잡도, SCM 계산 유닛(226)에서 코드워드들의 리스트를 생성하기 위한 최소의 추가적인 하드웨어 복잡도로 바뀌는 TBCC 컨볼루셔널 디코더(144)를 허용한다. TBCC 컨볼루셔널 디코더(114)의 실시예에서 리스트 TBCC 비터비 디코딩을 위한 차동 경로 매트릭들을 위한 보상을 지원할 수 있다. TBCC 컨볼루셔널 디코더(114)는 코드워드들의 K 후보들의 리스트를 생산할 수 있다. K 후보들의 리스트의 SCM은 TBCC 컨볼루셔널 디코더(114)의 포워드 반복동안 계산된 차동 경로 매트릭을 통해 관련될 수 있다.
예로서, SCM 계산 유닛(226)은 오버플로우 제어 및 보상 유닛(214)로부터, SCM 보상 유닛(226)에 의해 식별된 코드워드들 각각을 위해 보상된 시작 경로 매트릭(228)과 보상된 종료 경로 매트릭(230)을 수신할 수 있다. SCM 계산 유닛(226)은 이후 도 1의 내부 데이터 경로(112)에 의한 프로세싱을 위해 디코드된 코드워드(232)를 계산할 수 있다.
TBCC 컨볼루셔널 디코더(114)는 차동 경로 매트릭(DBM)을 하기의 수학식 2에 의해 계산할 수 있다.
Figure pat00010
i와 t의 값은 1≤i≤S와 T-L+1≤t≤T의 범위이다. 경로 P로의 제 2 최우도 경로(most likely pate)는 P로부터 한번 발산(diverge)한 경로이고, 경로 P를 따른 최소값을 갖는 경로에서 다시 재병합(re-merge)한다. 단계 T-N을 리드하는 임의의 경로를 허용하고, 경로 P는 제로 상태에서 종료될 필요가 없다. 그것은 하기의 수학식 3에 따라 선택할 수 있는 발산 단계 i를 제한하지 않는다.
Figure pat00011
리스트 역 추적 유닛(204)의 실시예는 발산 단계 t와, 단계 i를 식별할 수 있고, 이러한 상태는 선택되고 이후, 대체 단계들에서 노멀 역추적을 계속한다. 리스트 역추적 유닛(204)은 하기의 수학식 4의 최적 경로를 따른 제 2(제 3, 제 4) 최소 DPM을 갖는 발산 단계에서 픽업에 의해 최적 경로로 최우도 경로들을 근사화할 수 있도록 부가 리스트들을 확장할 수 있다.
Figure pat00012
Figure pat00013
는 최초의 최적 경로 P로부터 수렴된 LVD 경로에서 상태의 차동 경로 매트릭이다.
Figure pat00014
의 값은 하기의 수학식 5를 제공하기 위하여 SCM의 값으로부터 감산될 수 있다.
Figure pat00015
도 1의 전자 시스템(100)은 단일 종단을 위한 고정된 포인트 리스트 TBCC 컨볼루셔널 디코더(114) 또는 이븐(even)(또는, 짝수) 또는 오드 전송 길이들을 관리할 수 있는 차동 경로들을 제공할 수 있는 것을 확인할 수 있다. Radix-4 트렐리스의 사용은 내부 데이터 경로(112)로의 높은 처리율을 제공할 수 있다.
컨볼루셔널 디코더(114)의 하드웨어의 분할은 단지 예시적인 것이고, 다른 분할들이 가능한 것으로 이해될 수 있다. 예를 들면, 오드 길이 보상 유닛(212)은 실시예의 동작 관점들에서의 변화없이 SCM 계산 유닛(226) 내에 포함될 수 있다.
도 3은 본 발명의 실시예에서 홀수 길이 보상 블록을 예시적으로 도시한 도면이다.
도 3을 참조하면, 실시예에서 오드 길이 보상 블록(301)의 블록 다이어그램을 도시한다. 오드 길이 보상 블록(301)의 예시적인 블록도는 이븐 입력(T-N)(304)과 오드 입력(T-N-1)(306)을 갖는 쓰기 인덱스 다중화기(write index multiplexer)(302)를 도시한다. 쓰기 인덱스 다중화기(302)는 이븐/오드 제어 라인(even/odd control line)(308)에 의해 스위치될 수 있다. 이븐/오드 제어 라인(308)은 입력 메시지에서 수신된 입력 정보 비트들의 길이에 의해 생성될 수 있다. 쓰기 인덱스 다중화기(302)는 PM 메모리 유닛(216)에 연결된 쓰기 인덱스 제어(write index control)(310)를 생성할 수 있다.
읽기 상태 다중화기(312)는 읽기 시작 상태(314)의 제공을 위한 PM 메모리 유닛(216)에 연결될 수 있다. 읽기 상태 다중화기(312)는 읽기 시작 상태(314)로서 이븐 시작 상태(
Figure pat00016
)(316) 또는 오드 시작 상태(
Figure pat00017
)(318)를 선택할 수 있다. 이븐 시작 상태(
Figure pat00018
)(316) 또는 오드 시작 상태(
Figure pat00019
)(318)는 리스트 역추적 유닛(204)으로부터 소스될 수 있다. 읽기 상태 다중화기(312)는 이븐/오드 제어 라인(308)에 의해 제어될 수 있다. 쓰기 인덱스 다중화기(write index multiplexer)(302)와 읽기 상태 다중화기(read state multiplexer)(312) 모두의 오드 길이 메시지 상에서 동작하면, 오드 측면의 입력을 참조할 수 있다.
리스트 역추적 유닛(204)은 훈련 상태 이후의 PM라이트(right)를 나타내는 제 1 전이 상태(SF T -N-1 -> SF Head)(320)을 생성할 수 있다. 제 1 전이 상태(SF Head -> SF T-N-1)(320)는 Radix-4 트렐리스의 최종 트렐리스 상태를 위한 PM을 계산하기 위한 브랜치 매트릭 계산 유닛(branch metric calculation unit)(322)에 의해 사용될 수 있다. 브랜치 매트릭 계산 유닛(322)의 출력은 입력 메시지 세그먼트의 오드 비트를 나타내는 스케일된 오드 비트 PM(324)이다. 오프셋 덧셈기(offset adder)(326)는 스케일된 오드 비트 PM(324)와 길이 조정 다중화기(length adjusted multiplexer)(330)의 이븐 입력을 나타내는 현재 단계 PM(328)을 수신한다. 오프셋 덧셈기(326)는 길이 조정 다중화기(330)의 오드 입력을 위한 조정된 단계 PM(322)의 소스일 수 있다. 조정된 단계 PM(322)는 하기의 수학식 6에 의해 계산될 수 있다.
Figure pat00020
길이 보상된 PM(334)는 이븐/오드 제어 라인(308)에 근거하여 길이 조정된 다중화기(330)로부터 소스될 수 있는
Figure pat00021
의해 나타낼 수 있다. 디코딩 프로세스를 완료하기 위해,
Figure pat00022
Figure pat00023
과 동일하여야만 한다.
길이 보상된 PM(334)은 오드 및 이븐 길이 메시지들 모두를 수용할 수 있는 하드웨어 구조로 구현될 수 있는
Figure pat00024
을 나타내는 것을 확인할 수 있다. 길이 보상된 PM(334)은 도 2의 코드워드들(232)의 디코딩을 위한 도 2의 SCM 계산 유닛(226)의 결과들로 계산되어 실시간으로 패스할 수 있다.
도 4는 본 발명의 실시예에 따른 오버플로우 제어 및 보상 유닛을 예시적으로 도시한 도면이다.
도 4를 참조하면, 실시예에서, 오버플로우 및 보상 유닛(214)은 예시적인 블록 다이어그램을 도시한다. 오버 플로우 제어 및 보상 유닛(214)의 예시적인 블록도는 정규화된 오버플로우 카운트(normalized overflow count)(406)를 제공할 수 있는 오버플로우 정규화 다중화기(overflow normalization multiplexer)(402)와 오버플로우 제어 덧셈기(overflow control adder)(404)를 도시한다.
예시적인 실시예는 상호 간에 maxΔPM 내일 수 있는 모든 경로 매트릭들의 특성을 가정할 수 있고, 하나의 경로 매트릭의 알려진 오버 플로우는 남은 경로 매트릭들의 오버플로우를 허용한다. 모듈로 정규화를 위한 오버플로우 제어는 일반적으로 손실 없이, 하나의 오버플로우 카운터만을 사용하여 계산될 수 있고, 생존 경로 진입 상태(surviving path entering state) 0를 위한 PM에서 오버플로우의 추적을 위한 카운터는
Figure pat00025
에 의해 나타낼 수 있다.
예로서, 경로는 Radix-4트렐리스의 다음 단계에서 또 다른 상태를 분기함에 따라 상태 0에서 저장된 경로 매트릭은 오버플로우 카운터에 의해 추적된 하나보다 다른 경로를 참조할 수 있다. 그 결과, 상태 0에서 새로운 경로 매트릭은 다음 단계t+1에서 단계 0 내의 종단일 수 있는 생존 경로의 오버플로우들의 개수를 계산할 수 있다. 단계 t에서 오버플로우들의 개수는 상태 t에서 상태 1로부터 비롯된 생존 경로 매트릭의 추정에 대한 하기의 수학식 7의 qt (0)로부터 계산될 수 있다.
Figure pat00026
생존 경로가 단계 t에서 상태 l에 있으면, 단계 t+1의 상태 0에서 새로운 경로 매트릭이 하기의 수학식 8로 주어질 수 있다.
Figure pat00027
추가적으로 순환 덧셈기를 사용한다. 최상위 비트 캐리(most significant bit carry) c는 하기의 수학식 9와 같이
Figure pat00028
를 형성하기 위해
Figure pat00029
에 더해질 수 있다.
Figure pat00030
상태 0의 경로 매트릭을 위한 오버플로우의 추적을 유지하는 것은 상태 0의 경로 매트릭을 계산하는 덧셈-비교-선택(ACS: add-compare-select) 유닛(408) 주변의 회로의 수정을 필요로 한다. 브랜치 매트릭 계산은 덧셈 비교 및 선택 유닛(ACS: accumulate compare and select unit)으로 진행하는 비터비 디코더 코어의 일부이다. 이것은 각 트렐리스 전환을 위한 가능한 출력 비트들의 결과를 갖는 입력 LLR을 기본적으로 코릴레이션하는 비터비 알고리즘의 일부이다. 버스(BM(x))(414)는 도 1의 컨볼루셔널 디코더의 일부이고, 생존 경로 메모리(202)에서 실행되는 계산들로 진행한다.
ACS 유닛(408)은 경로 선택 버스(412)로 반영된 최우도 경로(most likely path)의 결정을 위한 조합 매트릭 버스(410)를 분석할 수 있다. 조합 매트릭 버스(410)는 경로 매트릭 버스(217)와 브랜치 매트릭 버스(410)의 조합에 의해 형성될 수 있다. 조합 매트릭 버스(410)는 브랜치 매트릭 버스(414)의 적합한 비트들을 갖는 경로 매트릭 버스(217)의 비트들의 조합을 위해 사용되는 덧셈기들에 의해 형성될 수 있다.
ACS 유닛(408)은 수신된 코드워드의 디코딩을 위해 수신된 신호의 초기 상태를 계산할 수 있다. 초기 경로 매트릭 상태(nPM(0))(416)는 코드워드들(232)의 최우도 출력의 CRC 결과들의 검사에 의해 도 2의 코드워드들(232)의 성공적인 디코딩을 결정하기 위해 사용될 수 있다.
로컬 경로 매트릭 차이(418)는 MAX PM DIFF (4XX)으로 경로 매트릭 버스(217)의 값 PM(0) 비교에 의해 생성될 수 있다. "numOverFlow(0)" 용어는 수학식 1에서 q_x(0)을 나타내는 레지스터 PM(0)에서 저장된 경로 매트릭의 오버플로우의 개수이다. 모듈로 정규화를 위해, 오버플로우의 회수는 변수들 사이에서 엄격히 제한되고, 그것은 오버플로우 제어 및 보상 유닛(214)에서 오버플로우 보상을 하기 위해 단지 가변적으로 필요로 할 수 있다.
"Carry(PathSe)"의 용어는 경로 매트릭 버스(217)의 PM(x)와 브랜치 매트릭 버스(414)의 BM(x) 의 덧셈 동작의 결과이다. 예를 들면, 이러한 실시예는 그러한 캐리들을 4개 가질 수 있다. 각 캐리 비트들은 오버플로우를 생산할 수 있는 덧셈의 결과 여부에 따라 0 또는 1 중의 하나일 수 있다. ACS 유닛(408)은 PATHSEL에 의해 주어진 그러한 경로들의 하나로 선택될 수 있고, Carry(PathSE)는 선택된 경로에만 연관된 캐리이다.
"MAX PM DIFF"의 용어는 경로 매트릭 버스(217)을 나타내기 위해 사용되는 비트 폭에 근거하여 일정하게 구현된다. 경로 매트릭 버스(217)의 논의를 쉽게 하기 위한 예로서, 4 비트들을 갖는 것을 도시하지만, 다른 비트들의 수로 구현될 수 있다. 예를 들면, MAX PM DIFF
Figure pat00031
일 수 있고, M은 경로 매트릭 버스(217)의 비트폭이다.
오버플로우 경로의 SGN 블록은 PM(0) 비트와 경로 매트릭 버스(217)로부터 선택된 비트 사이의 차의 부호를 반영하고, +1 또는 -1 중 하나일 수 있다. 에스지엔(SGN) 블록으로부터의 선택 라인과 씨엠피(CMP)로부터의 비교기 결과는 초기 경로 매트릭 상태(nPM(0))(416)에 더해지는 0, +1, 또는 -1 중 하나의 일정한 오프셋으로 선택될 수 있다.
도 5는 본 발명의 실시예에서 비터비 디코더에 의해 처리된 전송 시퀀스를 예시적으로 도시한 도면이다.
도 5를 참조하면, 실시예에서 도 1의 컨볼루셔널 디코더에 의해 프로세스된 것으로서 전송 시퀀스(501)의 예시적인 기능 도면을 도시한다.
TBCC 디코딩은 동의되어야만 하는 시작 및 종료 상태를 필요로 한다. 이러한 도 2의 중간 PM 메모리 유닛(216)에서 기하급수적으로 늘어나는 최적 ML(most likely) 디코딩을 이끈다.
TBCC의 디코딩은 반복 깊이(T-N)에서 종료되는 순환 비터비 알고리즘(CVA: circular Viterbi algorithm)을 제공하고, 최종 PM(504)는 반복 단계(506)로부터 매트릭들의 집계가 포함된다. 각 반복 단계들(506)은 입력 코드 워드들 내의 소프트 코릴레이션 매트릭스의 계산을 위한 Radix-4 트렐리스와 같은 트렐리스(507)를 통해 반복된다. 그 결과, PM과 SCM의 관계는 하기의 수학식 10과 같이 주어진다.
Figure pat00032
Si는 최종 ML 상태로부터 역추적할 때, 단계 i의 상태이고,
Figure pat00033
는 역추적(508)으로부터의 결과인 코드워드에 따른다. 상태 T-N(512)에서 역추적 상태(510)는 선험적(a-priori)으로 알려져 있지 않고, 실시예는 반복 경로(단계 T-N)에서 모든 PM을 절감하기 위해 중간 PM 메모리 유닛(216)의 사용을 제공한다. CVA를 사용하기 위한 적절한 보상은 하기의 수학식 11과 같이 주어진다.
Figure pat00034
Figure pat00035
는 최종 역추적(504)에서 역추적 시작 상태(514)이고,
Figure pat00036
는 최종 역추적 상태(510)이다. 테일 바이팅 컨볼루셔널 코드(TBCC)의 성공적인 디코딩에서, 최종 역추적(504)의 최종 상태(510)와 시작 상태(514)는 동일(즉,
Figure pat00037
)할 수 있다.
도 6은 본 발명의 추가적인 실시예에 따른 전자 시스템의 동작 방법을 도시한 순서도이다.
도 6을 참조하면, 방법(600)은 602블록에서 입력 코드 스트림을 수신하고, 604블록에서, 순환 비터비 메커니즘을 갖는 입력 코드 스트림을 위한 최종 경로 매트릭을 생성하고, 606블록에서, 순환 비터비 매커니즘을 갖는 디코딩일 때, 반복 깊이에서 중간 경로 매트릭들을 저장하고, 608블록에서 입력 코드 스트림을 위한 반복 경로 매트릭을 생성하고, 610블록에서 최종 경로 매트릭, 반복 경로 매트릭, 및 중간 경로 매트릭들에 근거하여 소프트 코릴레이션 매트릭을 계산하는 것을 포함한다.
방법, 프로세스, 장치, 디바이스, 제품, 및/또는 시스템은 간단하고, 비용 효율이 높고, 효용 가치가 높고, 정확하고, 민감하고, 효율적이며, 준비, 효율, 및 경제적인 제조, 응용, 및 이용을 위해 알려진 구성성분들의 채택에 의해 구현될 수 있다. 본 발명의 다른 중요한 관점은 비용 감소, 시스템 간소화, 및 성능 증가의 역사적 트랜드의 중요한 지원과 서비스이다.
이것과, 본 발명의 실시예에 따른 다른 가치의 결과로서 기술 상태를 적어도 다음 수준으로 이끌 수 있다.
한편, 본 발명은 구체적인 최적 실시예에 따른 결합이 기술되고 있으나, 많은 대안들, 수정들, 변화들이 상술한 것에 비추어 당업자에 의해 수행될 수 있는 것으로 이해될 것이다. 따라서, 본 발명의 특허청구범위에 포함된 범위 내에서 모든 대안들, 수정들, 및 변화들이 수용될 수 있다. 여기에 기술된 모든 구성요소와 수반하는 도면들에서 도시된 것들은 보여지거나 한정되지 않는 것으로 해석될 수 있다.
100: 전자 시스템 102: 집적 회로(모뎀)
104: 제 1 지원 회로(RF 수신기 유닛)
106: 제 2 지원 회로(메모리) 107: 지원 프로세서
108: 아날로그 디지털 변환기(ADC) 110: 수신기 필터 유닛
112: 내부 데이터 경로 114: 컨볼루셔널 디코더
116: 송신기 유닛 120: 디지털 아날로그 변환기(DAC)
202: 생존 경로 메모리 204: 리스트 역추적 유닛
206: 초기 종료 상태 선택 유닛 208: 오드 길이 비교기
214: 오버플로우 제어 및 보상 유닛 216: 중간 경로 매트릭 메모리 유닛
222: 리스트 생성 유닛
226: 소프트 코릴레이션 매트릭 계산 유닛
302: 쓰기 인덱스 다중화기 312: 읽기 상태 다중화기
322: 브랜치 매트릭 계산 유닛 326: 오프셋 덧셈기
330: 길이 조정 다중화기 402: 오버플로우 정규화 다중화기
404: 오버플로우 제어 덧셈기 408: 덧셈 비교 선택(ACS) 유닛

Claims (10)

  1. 입력 코드 스트림을 수신하는 지원 칩을 포함하고,
    상기 지원 칩에 연결된 순환 비터비 매커니즘은
    상기 입력 코드 스트림을 위한 최종 경로 매트릭을 생성하고, 반복 경로에서 중간 경로 매트릭을 저장하고,
    상기 입력 코드 스트림을 위한 반복 경로 매트릭을 생성하고,
    상기 최종 경로 매트릭, 상기 반복 경로 매트릭, 및 상기 중간 경로 매트릭에 근거하여 소프트 코릴레이션 매트릭을 계산하는 전자 시스템.
  2. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 정규화된 오버플로우 카운트를 생성하기 위한 오버플로우 제어 및 보상 유닛을 더 포함하고,
    상기 오버 플로우 제어 및 보상 유닛은 트렐리스의 종단과 상기 반복 깊이에서 오버플로우 횟수를 계산하는 전자 시스템.
  3. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 래딕스(Radix)-4 단계를 포함하는 전자 시스템.
  4. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 리스트-역추적 유닛과 함께 리스트 생성 유닛을 더 포함하는 전자 시스템.
  5. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 상기 디코드된 코드워드들의 오드 넘버를 위한 보상을 하는 오드 길이 보상 유닛을 포함하는 전자 시스템.
  6. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 덧셈-비교-선택(ACS: add-compare-select) 유닛을 통한 지원을 위한 보상을 위해 오프셋(Γ)을 더하는 전자 시스템.
  7. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 생성된 리스트의 차동 경로 매트릭에 대한 보상을 위해 θ를 계산하는 전자 시스템.
  8. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 상기 최종 경로 매트릭을 생성하는 고정 포인트 테일 바이팅 컨볼루셔널 코드(TBCC: tail-biting convolutional code) 디코더를 포함하는 전자 시스템.
  9. 제 1 항에 있어서,
    상기 순환 비터비 매커니즘은 하기의 수학식에 근거하여 소프트 코릴레이션 매트릭을 계산하고,
    [수학식]
    Figure pat00038

    인 전자 시스템.
  10. 전자 시스템의 동작 방법에 있어서,
    입력 코드 스트림을 수신하는 단계;
    순환 비터비 알고리즘을 이용하여 상기 입력 코드 스트림을 위한 최종 경로 매트릭을 생성하는 단계;
    상기 순환 비터비 메커니즘을 이용하여 디코딩할 때, 상기 반복 경로에서 중간 경로 매트릭들을 저장하는 단계;
    상기 입력 코드 스트림을 위한 반복 경로 매트릭을 생성하는 단계; 및
    상기 최종 경로 매트릭, 상기 반복 경로 매트릭, 및 상기 중간 경로 매트릭에 근거하여 소프트 코릴레이션 매트릭을 계산하는 단계를 포함하는 동작 방법.
KR1020150120903A 2014-08-29 2015-08-27 비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법 KR102415394B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462043483P 2014-08-29 2014-08-29
US62/043,483 2014-08-29
US14/706,388 US10075195B2 (en) 2014-08-29 2015-05-07 Electronic system with Viterbi decoder mechanism and method of operation thereof
US14/706,388 2015-05-07

Publications (2)

Publication Number Publication Date
KR20160026748A true KR20160026748A (ko) 2016-03-09
KR102415394B1 KR102415394B1 (ko) 2022-06-30

Family

ID=55403770

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150120903A KR102415394B1 (ko) 2014-08-29 2015-08-27 비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법

Country Status (2)

Country Link
US (1) US10075195B2 (ko)
KR (1) KR102415394B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170359146A1 (en) * 2016-06-13 2017-12-14 Qualcomm Incorporated Enhanced lva decoding using iterative comparison trellis construction
CN114430279A (zh) * 2022-01-20 2022-05-03 Oppo广东移动通信有限公司 一种列表维特比译码方法、装置、译码器和存储介质
CN114531161B (zh) * 2022-02-23 2023-04-28 电子科技大学 一种多模列表维特比实现方法及译码器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323868A1 (en) * 2006-06-22 2009-12-31 Mstar Semiconductor, Inc. Selection of a Received Sequence By Means of Metrics
US8762822B2 (en) * 2011-11-16 2014-06-24 Mstar Semiconductor, Inc. Tail-biting convolutional decoder and decoding method

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5905742A (en) * 1995-12-27 1999-05-18 Ericsson Inc. Method and apparauts for symbol decoding
US6877132B1 (en) * 1999-06-11 2005-04-05 Nortel Network Limited Method and apparatus for channel decoding of tail-biting convolutional codes
US7073118B2 (en) * 2001-09-17 2006-07-04 Digeo, Inc. Apparatus and method for saturating decoder values
US7174432B2 (en) * 2003-08-19 2007-02-06 Nvidia Corporation Asynchronous, independent and multiple process shared memory system in an adaptive computing architecture
US8230313B2 (en) 2008-08-11 2012-07-24 Texas Instruments Incorporated Low-power predecoding based viterbi decoding
US20110182385A1 (en) 2009-07-30 2011-07-28 Qualcomm Incorporated Method and apparatus for reliability-aided pruning of blind decoding results
US8433004B2 (en) * 2010-02-26 2013-04-30 Research In Motion Limited Low-latency viterbi survivor memory architecture and method using register exchange, trace-back, and trace-forward
US8548102B2 (en) 2010-05-12 2013-10-01 Qualcomm Incorporated Tail-biting convolutional decoding
US8904266B2 (en) * 2010-08-10 2014-12-02 Nxp, B.V. Multi-standard viterbi processor
US8438463B2 (en) * 2010-12-08 2013-05-07 Research In Motion Limited Decoding tail-biting convolutional codes
TW201233070A (en) 2011-01-26 2012-08-01 Ind Tech Res Inst Pre-decoded tail-biting convolutional decoder and decoding method thereof
CN102624404B (zh) 2011-01-31 2014-04-30 中兴通讯股份有限公司 一种咬尾卷积码译码校验方法及装置
US8938035B1 (en) * 2012-02-29 2015-01-20 Marvell International Ltd. System and method for transferring data over a two-pair communication system
ES2548428T3 (es) 2012-05-07 2015-10-16 Mstar Semiconductor, Inc. Aparato de recepción y desmodulación de símbolos de OFDM y método de desmodulación

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090323868A1 (en) * 2006-06-22 2009-12-31 Mstar Semiconductor, Inc. Selection of a Received Sequence By Means of Metrics
US8762822B2 (en) * 2011-11-16 2014-06-24 Mstar Semiconductor, Inc. Tail-biting convolutional decoder and decoding method

Also Published As

Publication number Publication date
KR102415394B1 (ko) 2022-06-30
US10075195B2 (en) 2018-09-11
US20160065245A1 (en) 2016-03-03

Similar Documents

Publication Publication Date Title
US7765459B2 (en) Viterbi decoder and viterbi decoding method
US5802116A (en) Soft decision Viterbi decoding with large constraint lengths
KR101018982B1 (ko) 고차 기수의 log map 프로세서
JP2009535939A (ja) ビタビ復号装置および技術
US20050157823A1 (en) Technique for improving viterbi decoder performance
KR102415394B1 (ko) 비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법
JP2018019401A (ja) リード・ソロモン復号器及び復号方法
US20070113161A1 (en) Cascaded radix architecture for high-speed viterbi decoder
US8009773B1 (en) Low complexity implementation of a Viterbi decoder with near optimal performance
US7925964B2 (en) High-throughput memory-efficient BI-SOVA decoder architecture
US11165446B1 (en) Parallel backtracking in Viterbi decoder
KR101212856B1 (ko) 통신 시스템에서 데이터를 복호하는 방법 및 장치
KR20030036845A (ko) 트렐리스에 기초한 채널 부호화를 위한 복호기
CN105356893A (zh) 一种尾码可配置的Viterbi解码方法及解码器
Monfared et al. A high-throughput parallel Viterbi algorithm via bitslicing
KR101476560B1 (ko) 채널 복호화 방법과 테일 바이팅 길쌈부호 복호기
Li et al. A high-throughput reconfigurable Viterbi decoder
US8140949B2 (en) ACS unit of a Viterbi decoder and method for calculating a bit error rate before a Viterbi decoder
US8413031B2 (en) Methods, apparatus, and systems for updating loglikelihood ratio information in an nT implementation of a Viterbi decoder
CN110710113B (zh) 序列检测器中的路径度量单元及路径度量的方法
Mandwale et al. Implementation of High Speed Viterbi Decoder using FPGA
Adiono et al. Reversed-trellis tail-biting convolutional code (RT-TBCC) decoder architecture design for LTE
Bhowal Transformation of ACS module to CSA module of low-power Viterbi decoder for digital wireless communication applications
Espinosa et al. Viterbi decoders generation for FPGA platforms
US20140129908A1 (en) Viterbi butterfly operations

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant