KR101175826B1 - 소프트웨어 정의 무선 시스템에서 비터비 복호 장치 및 방법 - Google Patents

소프트웨어 정의 무선 시스템에서 비터비 복호 장치 및 방법 Download PDF

Info

Publication number
KR101175826B1
KR101175826B1 KR1020077029641A KR20077029641A KR101175826B1 KR 101175826 B1 KR101175826 B1 KR 101175826B1 KR 1020077029641 A KR1020077029641 A KR 1020077029641A KR 20077029641 A KR20077029641 A KR 20077029641A KR 101175826 B1 KR101175826 B1 KR 101175826B1
Authority
KR
South Korea
Prior art keywords
reconfigurable
calculation block
viterbi decoder
path
grating
Prior art date
Application number
KR1020077029641A
Other languages
English (en)
Other versions
KR20080047317A (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 KR20080047317A publication Critical patent/KR20080047317A/ko
Application granted granted Critical
Publication of KR101175826B1 publication Critical patent/KR101175826B1/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/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6519Support of multiple transmission or communication standards
    • 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/6561Parallelized implementations
    • 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/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

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

Abstract

재구성 가능 비터비 복호기는 재구성 가능 데이터 경로와 상기 재구성 가능 데이터 경로를 제어하는 프로그램 가능 유한 상태 기계(finite state machine)를 포함한다. 상기 재구성 가능 데이터 경로는 재구성 가능 분기 거리(branch metric) 계산 블록과 재구성 가능 가산-비교-선택 및 경로 거리(path metric) 계산 블록을 포함하는 복수의 재구성 가능 기능 블록들로 구성된다. 상기 프로그램 가능 유한 상태 기계는 상기 재구성 가능 비터비 복호기와 연관된 복수의 상황정보 관련 명령어들(context-related instructions)을 실행한다.
Figure R1020077029641
비터비 복호기, 재구성 가능, 아키텍처, CRISP, 분기 거리, 경로 거리, 소프트웨어 정의, 격자, 처리율, 병렬 관계, 상황 정보

Description

소프트웨어 정의 무선 시스템에서 비터비 복호 장치 및 방법{APPARATUS AND METHOD FOR VITERBI DECODING IN SOFTWARE-DEFINED RADIO SYSTEMS}
본 발명은 소프트웨어 정의 무선 시스템에서의 사용을 위한 비터비 복호 장치 및 방법에 관한 것이다.
처리율(throughput)을 향상시키기 위하여 많은 통신 시스템들은 일정 유형의 순방향 오류 정정(Forward Error Correction; FEC) 기술을 구현한다. 이것은 셀룰러 네트워크들과 같은 무선 통신 시스템들에 대하여 특히 그러하다. 가장 보편적인 순방향 오류 정정 기술은 비터비 복호화 동반 콘벌루션 부호화(convolutional coding with Viterbi decoding)로 알려져 있다. 비터비 복호화 동반 콘벌루션 부호화는 부가 백색 가우스 잡음이 송신된 신호를 왜곡시키는 채널들을 대하여 특히 유용하다.
비터비 복호기는 콘벌루션 부호를 위한 최대 우도 시퀀스(maximum likelihood sequence) 복호기이다. 비터비 복호기들은 광대역 부호 분할 다중 접속(Wideband Code Division Multiple Access; WCDMA), CDMA2000, IEEE-802.16e(즉, 와이브로) 등을 포함하는 복수의 무선 표준들의 물리층들에서의 사용을 위하여 채택되었다. 이 표준들은 상이한 데이터 전송률로 동작하며, 단지 하나 혹은 두 개의 특정 표준들에 대하여 최적화되는 송신기들 내의 콘벌루션 부호기들과 수신기들 내의 비터비 복호기들을 구현한다. 또한, 대부분의 통상적인 콘벌루션 부호기들과 비터비 복화기들은 비교적 낮은 데이터 전송률로 동작한다.
소프트웨어 정의 무선(Software-Defined Radio; SDR) 장치는 상이한 무선 표준들 하에서 동작하도록 전파를 통하여 프로그램될 수 있는 재구성 가능 하드웨어를 이용한다. 예를 들면, 무선 랩톱 컴퓨터 혹은 개인 휴대 정보 단말기(Personal Digital Assistant; PDA) 내의 소프트웨어 정의 무선 송수신기는 IEEE-802.11x 무선 네트워크, CDMA2000 무선 네트워크, 직교 주파수 분할 다중화/직교 주파수 분할 다중 접속(Orthogonal Frequency Division Multiplexing/Orthogonal Frequency Division Multiple Access: OFDM/OFDMA) 무선 네트워크, 이동 통신을 위한 전지구적 시스템(Global System for Mobile communication; GSM) 무선 네트워크, 혹은 또 하나의 다른 유형의 네트워크에서 동작하도록 상이한 소프트웨어에 의하여 구성될 수 있다. 이 무선 표준들 중 다수는 비터비 복호기들의 사용을 요한다.
그러나, 통상적인 비터비 복호기들은 소프트웨어 정의 무선 응용들에 관하여 상당한 단점들을 가진다. 상기한 바와 같이, 통상적인 비터비 복호기들은 단지 하나의 혹은 두 개의 특정 (및 유사한) 표준들 하에서의 복호화를 위하여 최적화된다. 만일 소프트웨어 정의 무선 장치가 다수의 무선 표준들을 지원한다면, 하나 이상의 비터비 복호기가 소프트웨어 정의 무선 장치에서 구현되어야 한다. 이것은 비효율적으로 칩 공간을 사용하며 과도한 양의 전력을 소모하는 복잡한 송수신기 설계로 귀착한다.
또한, 다수의 새로운 무선 표준들은 비교적 높은 데이터 전송률(예를 들면, 와이브로, 하향 고속화 패킷 접속(High-Speed Downlink Packet Access: HSDPA) 등)로 동작한다. 낮은 데이터 전송률 표준에 대하여 속도와 전력 소비의 측면에서 최적화되는 비터비 복호기는 높은 데이터 전송률에 대하여 속도와 전력 소비의 측면에서 최적화될 듯 싶으며, 그 반대의 경우도 가능하다. 따라서, 통상적인 비터비 복호기들은 소프트웨어 정의 무선 응용들에 적합하지 않다.
이에 따라, 소프트웨어 정의 무선 시스템에서의 이용을 위한 향상된 재구성 가능 비터비 복호 장치 및 방법이 필요하다.
재구성 가능 비터비 복호기가 여기에 개시된다. 재구성 가능 비터비 복호기는 재구성 가능 분기 거리(branch metric) 계산 블록과 재구성 가능 가산-비교-선택 및 경로 거리(path metric) 계산 블록을 포함하는 복수의 재구성 가능 기능 블록들을 포함하는 재구성 가능 데이터 경로로 이루어져 있다. 상기 재구성 가능 비터비 복호 장치는 상기 재구성 가능 데이터 경로를 제어할 수 있는 프로그램 가능 유한 상태 기계(finite state machine)를 더 포함하며, 상기 프로그램 가능 유한 상태 기계는 상기 재구성 가능 비터비 복호기와 연관된 복수의 상황정보 관련 명령어들(context-related instructions)을 실행할 수 있다.
재구성 가능 비터비 복호기를 구현하는 소프트웨어 정의 무선 시스템이 역시 개시된다. 상기 소프트웨어 정의 무선 시스템은 복수의 무선 통신 표준들 하에서 동작하도록 재구성될 수 있는 무선 주파수(Radio Frequency; RF) 송수신기부와 상기 무선 주파수 송수신기부와 연관된 재구성 가능 기저대역 처리부로 이루어져 있으며, 상기 재구성 가능 기저대역 처리부는 재구성 가능 비터비 복호기를 포함한다.
재구성 가능 비터비 복호 방법이 여기에 개시된다. 재구성 가능한 비터비 복호 방법은, 재구성 가능 분기 거리(branch metric) 계산 블록과 재구성 가능 가산-비교-선택(ACS) 및 경로 거리(path metric) 계산 블록을 구비하는 복수의 재구성 가능 기능 블록들을 프로그램 가능 유한 상태 기계(programmable finite state machine)로 제어하는 과정; 및 상기 프로그램 가능 유한 상태 기계를 이용하여 재구성 가능 비터비 복호기(Viterbi decoder)와 연관된 복수의 상황정보 관련 명령어들(context-related instructions)을 실행하는 과정을 포함한다.
이어지는 발명의 상세한 설명을 시작하기 전에 본 특허 서류를 통해서 내내 사용되는 어떤 단어들과 구들의 정의를 설명하는 것이 유익할 수 있다. "포함하다(include)"와 "이루어지다(comprise)"라는 용어들 뿐만 아니라 이 용어들의 파생어들은 한정이 없는 포함을 의미한다. "또는(or)"이라는 용어는 및/또는(and/or)을 의미하면서 모든 것을 포함한다. "연관된(associated with)"과 "그것과 연관된(associated therewith)"이라는 구들 뿐만 아니라 이 구들의 파생어들은 ~내에 포함되다(be included within), ~과 서로 연결되다(interconnect with), 포함하다(contain), ~내에 포함되다(be contained within), ~과 연결되다(connect to or with), ~과 연결되다(couple to or with), ~과 통신 가능하다(be communicable with), ~과 협력하다(cooperate with), ~에 끼워 넣다(interleave), 병치(竝置)하다(juxtapose), ~에 근사하다(be proximate to), ~하지 않을 수 없다(be bound to or with), 갖다(have), ~의 특성을 갖다(have a property of), 또는 등등을 포함하도록 의도된다. "제어기(controller)"라는 용어는 어떤 장치(any device), 시스템(system), 또는 최소한 한 동작을 제어하는 그것의 부분(part thereof)을 의미하며, 그러한 장치는 하드웨어, 펌웨어 또는 소프트웨어, 또는 이들의 최소한 두 개의 어떤 조합에서 구현될 수 있다. 어떤 특정 제어기와 연관된 기능성은 집중화되거나 국부적으로든 멀리 떨어져 있든 분산될 수 있음에 주목해야 한다. 어떤 단어들 및 구들에 대한 정의들은 본 특허 서류를 통하여 내내 제공되며, 당업자는 대부분의 사례는 아니더라고 다수의 사례에 있어서 그러한 정의들이 그렇게 정의된 단어들과 구들의 미래 이용뿐만 아니라 종래의 이용에도 적용됨을 이해하여야 한다.
본 개시와 그 장점들의 더 완전한 이해를 위하여 첨부 도면들과 함께 전개되는 다음의 설명들을 참조하며, 첨부 도면들에서 동일한 참조 부호들은 동일한 부분들을 나타낸다.
도 1은 재구성 가능 비터비 복호기를 구현하는데 이용될 수 있는 상황 정보 기반 동작 재구성 가능 명령어 집합 프로세서(Context-based operation Reconfigurable Instruction Set Processor; CRISP) 장치의 고급 레벨의 블록 구성도
도 2는 재구성 가능 처리 시스템의 고급 레벨의 블록 구성도,
도 3은 최소한 하나의 CRISP 장치를 이용하여 재구성 가능 비터비 복호기를 구현하는 다중 표준(multi-standard) 소프트웨어 정의 무선 시스템의 고급 레벨의 블록 구성도
도 4는 본 개시의 원칙들에 따른 하나의 CRISP에서 구현된 재구성 가능 비터비 복호기의 블록 구성도,
도 5는 콘벌루션 부호기에서 선택된 파이프라인 단들(pipeline stages)의 타이밍도,
도 6은 분기 거리 계산 블록에서 선택된 파이프라인 단들의 타이밍도,
도 7은 경로 거리 계산 블록에서 선택된 파이프라인 단들의 타이밍도,
도 8은 격자 및 역추적(trellis and traceback) 계산 블록에서 선택된 파이프라인 단들의 타이밍도.
아래에서 논의되는 도 1에서 도 8을 통하여 그리고 이 특허 서류에서의 본 개시의 원칙들을 설명하는데 이용되는 다양한 실시예들은 단지 실례로서 제시된 것이며, 본 개시의 범위를 한정하는 어떤 방법으로 해석되지 말아야 한다. 당업자는 본 개시의 원칙들이 어떤 적절하게 배치된 처리 시스템에서 구현될 수 있음을 이해할 것이다.
본 발명에 개시된 재구성 가능 비터비 복호기는 높은 데이터 전송률 표준들을 지원하는 고도의 병렬 관계(parallelism)를 제공한다. 와이브로의 목표 하향 속도(target downlink rate)는 12 Mbps이며, 하향 고속화 패킷 접속(HSDPA)은 14.4 Mbps까지 피크 데이터 전송률(peak data rate)을 달성한다. 개시된 비터비 복호기 아키텍처는 높은 데이터 전송률로 필요한 처리율을 달성하는데 병렬 관계를 이용한다. 이는 높은 데이터 전송률을 달성하도록 파이프라이닝 기법들뿐만 아니라 병렬 실행 유닛들(parallel execution units)의 이용을 통하여 달성된다.
재구성 가능 비터비 복호기는 여럿 가운데서 광대역 부호 분할 다중 접속(WCDMA), 하향 고속화 패킷 접속(HSDPA), CDMA2000, IEEE-802.16e(즉, 와이브로), 그리고 이동 통신을 위한 전지구적 시스템/향상된 데이터 GSM 환경(Global System for Mobile communication/Enhanced Data GSM Environment; GSM/EDGE)을 포 함하는 상이한 통신 표준들에서의 복호화를 위한 다중 모드 동작을 지원한다. 개시된 비터비 복호기는 또한 상이한 데이터 전송률을 지원하는 적응성(adaptability)을 제공한다. 와이브로와 WCDMA/HSDPA는 다수의 상이한 데이터 전송률로 동작한다. 개시된 비터비 복호기 아키텍처는 최대 데이터 전송률에 대해서뿐만 아니라 상이한 범위의 데이터 전송률에 대해서도 역시 최적화된다.
상기 재구성 가능 비터비 복호기는 또한 핸드헬드 장치들(handheld devices) 내에서 구현될 수 있으므로 상이한 표준들과 데이터 전송률들에 대하여 전력 소비를 최소화한다. 결국, 본 개시의 원칙들에 따른 재구성 가능 비터비 복호기는 최종 사용자에게 융통성을 제공한다. 비록 설계는 비터비 복호화을 목표로 삼을지라도 그 아키텍처는 엄격한 매개변수 제한들을 요구하지 않는다. 따라서, 그 설계는 최종 사용자 필요 조건들에 의거하여 최종 사용자가 매개변수들과 알고리즘들을 선택할 수 있게 해주는 일반적인 비터비 복호기 플랫폼을 제공한다.
본 발명에 개시된 재구성 가능 비터비 복호기는 상황 정보 기반 동작 재구성 가능 명령어 집합 프로세서(Context-based operation Reconfigurable Instruction Set Processor; CRISP) 장치를 이용하여 구현된다. CRISP 장치들은 위에서의 관계에 의하여 통합되는 미합중국 특허출원 제11/123,313호에서 상세히 개시된다.
도 1은 재구성 가능 비터비 복호기를 구현하는데 이용될 수 있는 상황 정보 기반 동작 재구성 가능 명령어 집합 프로세서(Context-based operation Reconfigurable Instruction Set Processor; CRISP)(100)의 고급 블록선도이다. 상기 CRISP(100)는 메모리(110), 프로그램 가능 데이터 경로 회로(120), 프로그램 가 능 유한 상태 기계(130), 그리고 선택적(optional) 프로그램 메모리(140)를 포함한다. 상황 정보(context)는 비터비 복호화 명령어들과 같은 특정한 기능 혹은 응용과 관련된 데이터 프로세서의 일군의 명령어들이다. 미합중국 특허 출원 제11/123,313호에 개시된 바와 같이, CRISP(100)는 최적화된 방식으로 상황 정보 관련 명령어들의 부분 집합(subset)만을 실행한다.
CRISP(100)는 보통 더 높은 수준의 하드웨어 프로세서 블록들로 이루어진 포괄적인 하드웨어 블록을 정의한다. CRISP(100)에 대한 주요한 장점은 CRISP(100)가 필요한 응용을 두 개의 주요한 영역인, 제어 영역과 데이터 경로 영역으로 분류하며, 각 영역을 별개로 최적화한다는 것이다. CRISP(100)에서 비터비 복호화를 실행함으로써 상기 개시된 비터비 복호기는 통상적인 비터비 복호기들에 영향을 주는 융통성과 전력 소비와 관련된 문제들을 줄여준다.
상기 제어 영역은 디지털 신호 처리기(Digital Signal Processor; DSP), 제어기 혹은 또 하나의 통상적인 처리 장치를 포함하는 프로그램 가능 유한 상태 기계(130)에 의하여 충족된다. 프로그램 가능 유한 상태 기계(Finite State Machine)(130)는 외부의 제어기(미도시)로부터 수신되는 재구성 비트들에 의하여 구성된다. 프로그램 가능 유한 상태 기계(130)는 연관된 선택적 프로그램 메모리(140)에 저장된 프로그램을 실행할 수 있다. 상기 프로그램은 외부 제어기(미도시)로부터 DATA 라인을 통하여 프로그램 메모리(140)에 저장될 수 있다. 메모리(110)는 데이터 경로 회로(120)에 의하여 이용되는 응용 데이터를 저장하는데 사용된다.
프로그램 가능 데이터 경로 회로(Program data path circuitry)(120)는 특정한 기능들(예를 들면, 레지스터들, 멀티플렉서들, 곱셈기들 등등)을 수행하는 구성 요소들(building blocks)의 집합들로 구분된다. 각 구성 요소는 최대 융통성을 허락하도록 재구성 가능하며 프로그램 가능하다. 프로그램 가능 데이터 경로 회로(120)를 기능 블록들(functional blocks)로 나누는 것은 특정한 응용에 대하여 요구되는 재구성 가능성(reconfigurability)과 프로그램 가능성(programmability)의 수준에 따른다. 하나의 비터비 복호기의 전후 관계(context)에 있어서, 이 기능 블록들은 아래에서 더 상세히 설명하는 바와 같이 분기 거리 계산부, 가산-비교-선택 블록, 경로 거리 계산 블록, 격자 및 역추적 블록, 버퍼들, 랜덤 액세스 메모리(Random Access Memory; RAM), 그리고 기타 블록들을 포함할 수 있다.
상이한 전후 관계들이 다른 CRISP 장치들과 독립적으로 작동하는 별개의 CRISP 장치들에 의하여 구현될 수 있으므로, 하나 이상의 CRISP 장치들에 이용하여 비터비 복호기를 구현하는 것은 CRISP 장치가 요구되지 않을 경우 CRISP 장치를 종료할 수 있는 효율적인 전력 관리 방식을 제공한다. 이로써 소정의 시간에 필요로 되는 CRISP 장치만이 작동하며, 그 사이에 기타의 작동 중이 아닌(idle) CRISP 장치들은 상당한 전력을 소비하지 않도록 보장되는 것이다.
도 2는 본 개시의 일 실시예에 따른 재구성 가능 처리 시스템(200)의 고급 블록도이다. 재구성 가능 처리 시스템 (200)은 임의로 CRISP 1, CRISP 2, 그리고 CRISP N이라고 그 명칭이 부여된 예시적인 상황 정보 기반 동작 재구성 가능 명령어 집합 프로세서들(CRISPs)(100a, 100b, 및 100c)을 포함하여 N개의 CRISP들로 이 루어져 있다. 재구성 가능 처리 시스템(200)은 실시간 순서기(Real-Time sequencer; RT sequencer)(210), 순서 프로그램 메모리(220), 프로그램 가능 상호 연결 파이버 채널(fiber channel) 스위치(programmable interconnect fabric)(230), 그리고 버퍼들(240 및 245)을 더 포함한다.
재구성 비트들은 실시간 순서기(210)와 버퍼(240)를 통하여 제어 라인으로부터 CRISPs(100a, 100b, 및 100c)로 로드될 수 있다. 제어 프로그램 역시 버퍼(240)를 통하여 제어 라인으로부터 순서 프로그램 메모리(220)로 로드될 수 있다. 실시간 순서기(210)는 프로그램 메모리(220)로부터 프로그램 명령어들을 되찾아오고 재구성 비트들을 CRISP들(100a, 100b, 및 100c)로 보냄으로써 CRISP들(100a, 100b, 및 100c) 중 각자에 의하여 실행될 상황 정보들을 차례로 나열한다. 예시적인 실시예에서, 실시간 순서기(210)는 그 낮은 대기 시간(latency)과 단순함으로 인하여 실시간 순서기로 동작하기에 적합한 스택 처리기(stack processor)를 포함할 수 있다.
재구성 가능 상호 연결 파이버 채널 스위치(230)는 CRISP들(100a, 100b, 및 100c) 중 각자와 양방향 버퍼(245)를 통한 외부 데이터 버스 간의 연결 용이성(connectivity)을 제공한다. 본 발명의 예시적인 실시예에서, CRISP들(100a, 100b, 및 100c) 중 각자는 재구성 가능 상호 연결 파이버 채널 스위치(230)의 마스터(master)로서 동작할 수 있으며, 주소 접근을 시작할 수 있다. 재구성 가능 상호 연결 파이버 채널 스위치(230)를 위한 버스 조정자(arbiter)는 실시간 순서기(210)일 수 있다.
예시적인 실시예에서, 재구성 가능 처리 시스템(200)은 예를 들면, 셀 방식의 휴대 전화(cell phone) 또는 유사한 무선 장치, 혹은 랩톱 컴퓨터에서의 사용을 위한 데이터 처리기가 될 수 있다. 소프트웨어 정의 무선 아키텍처에 의거한 무선 장치 실시예에서, CRISP들(100a, 100b, 및 100c) 중 각자는 특정 재구성 가능 기능과 연관된 상황 정보 관련 명령어들의 부집합을 실행하는데 책임이 있다. 예를 들면, CRISP(100a)는 코드 분할 다중 접속(CDMA) 기저대역 신호들 또는 직교 주파수 분할 다중 접속(OFDMA) 기저대역 신호들을 처리하는 상황 정보 관련 명령어들을 실행하도록 구성될 수 있다. CRISP(100b)는 메모리 제어기로서 동작하는 상황 정보 관련 명령어들을 실행하도록 구성될 수 있다. CRISP(100c)는 터보(turbo) 복호화 또는 비터비 복호화를 수행하는 상황 정보 관련 명령어들을 실행하도록 구성될 수 있다.
CRISP 장치들은 대개 독립적이며 동시에 동작할 수 있으므로, 하나 이상의 CRISP 장치들을 이용하여 구현되는 비터비 복호기는 병렬 동작들을 영위하는 것과 관련된 전전력 불이익(full power penalty)을 유발하지 않은 채 병렬 관계(parallelism)의 성능 장점을 지닌다. CRISP 장치들의 느슨한 결합과 독립성은 CRISP 장치들이 별개로 종료될 수 있는 상이한 시스템들과 기능들을 위하여 구성되게 한다.
도 3은 최소한 하나의 CRISP 장치를 이용하여 재구성 가능 비터비 복호기를 구현하는 다중 표준(multi-standard) 소프트웨어 정의 무선 시스템(300)의 고급 블록도이다. 소프트웨어 정의 무선 시스템(300)은 예를 들면, 이동 통신을 위한 전지 구적 시스템(GSM) 혹은 코드 분할 다중 접속(CDMA) 셀 방식의 휴대 전화, 광대역 부호 분할 다중 접속(WCDMA), IEEE-802.11x, 하향 고속화 패킷 접속(HSDPA), 직교 주파수 분할 다중화/직교 주파수 분할 다중 접속(OFDM/OFDMA) 성능들(capabilities)을 갖는 개인 휴대 정보 단말기(PDA) 등과 같은, 무선 네트워크에 접근하는 무선 단말(혹은 이동국(mobile station), 단말(subscriber station) 등)을 포함한다.
다중 표준 소프트웨어 정의 무선 시스템(300)은 기저대역 부시스템(301), 응용 부시스템(302), 메모리 인터페이스 및 주변 장치 부시스템(365), 주제어 장치(Main Control Unit: MCU)(370), 메모리(375), 그리고 상호 연결(380)을 포함한다. 주제어 장치(MCU)(370)는 예를 들면, 통상적인 마이크로제어기 혹은 마이크로프로세서(예를 들면, x86, ARM, 축소 명령어 집합 컴퓨터(Reduced Instruction Set Computer: RISC), 디지털 신호 처리기(Digital Signal Processor: DSP) 등)를 포함한다. 메모리 인터페이스 및 주변 장치 부시스템(365)은 소프트웨어 정의 무선 시스템(300)을 외부 메모리(미도시)와 외부 주변 장치들(미도시)에 연결시킬 수 있다. 메모리(375)는 소프트웨어 정의 무선 시스템(300) 내의 다른 구성 요소들과 외부 장치들(미도시)로부터의 데이터를 저장한다. 예를 들면, 메모리(375)는 소프트웨어 정의 시스템(300)과 연관된 무선 주파수 송수신기(398)와 안테나(399)에 의해 생성된 주파수 하향 변환된 신호와 관련된 입력(incoming) 데이터 샘플들의 스트림을 저장한다. 상호 연결(380)은 부시스템들(301 및 302), 메모리 인터페이스 및 주변 장치 부시스템(365), 주제어 장치(MCU)(370), 그리고 메모리(375) 간의 데이터 전송(transfer)을 제공하는 시스템 버스로서 동작한다.
기저대역 부시스템(301)은 실시간 순서기(305), 메모리(310), 기저대역 디지털 신호 처리 부시스템(315), 상호 연결(325), 그리고 복수의 특수 목적(special purpose) 상황 정보 기반 동작 재구성 가능 명령어 집합 프로세서들(Context-based operation Reconfigurable Instruction Set Processors: CRISPs)로 이루어져 있으며, 상기 복수의 특수 목적 CRISP들은 변환 CRISP(100d), 칩 속도 CRISP(100e), 심벌 속도 CRISP(100f), 그리고 비트 조작 유닛(Bit Manipulation Unit; BMU) CRISP(100g)을 포함한다. 예로서, 변환 CRISP(100d)는 고속 푸리에 변환(Fast Fourier Transform; FFT) 기능을 실행할 수 있고, 칩 속도 CRISP(100e)는 코드 분할 다중 접속(CDMA) 신호를 위한 상관관계 기능을 실행할 수 있고, 심벌 속도 CRISP(100f)는 터보 복호기 기능 또는 비터비 복호기 기능을 실행할 수 있다.
그러한 예시적인 실시예에서, 변환 CRISP(100d)는 메모리(375)에 저장된 중간 주파수(Intermediate Frequency: IF) 신호의 샘플들을 수신하여 기저대역 속도로 일련의 칩 샘플들을 생성하는 고속 푸리에 변환을 수행할 수 있다. 그 다음, 칩 속도 CRISP(100e)는 변환 CRISP(100d)로부터 칩 샘플들을 수신하여 일련의 데이터 심벌들을 생성하는 상관관계 기능을 수행한다. 그 다음, 심벌 속도 CRISP(100f)는 칩 속도 CRISP(100e)로부터 심벌 데이터를 수신하여 기저대역 사용자 데이터를 복구해주는 터보 복호화 또는 비터비 복호화를 수행한다. 상기 기저대역 사용자 데이터는 그 다음에 응용 부시스템(302)에 의하여 이용된다.
본 발명의 예시적인 실시예에서, 심벌 속도 CRISP(100f)는 병렬로 동작하는 두 개 이상의 CRISP들로 이루어질 수 있다. 또한, 예로서 비트 조작 유닛(BMU) CRISP(100g)는 가변 길이 부호화(variable length coding), 주기적 덧붙임 검사(Cyclic Redundancy Check: CRC), 콘벌루션 부호화(convolutional encoding) 등과 같은 기능들을 실행할 수 있다. 상호 연결(325)은 실시간 순서기(305), 메모리(310), 기저대역 디지털 신호 처리(DSP) 부시스템(315), 그리고 CRISP들(100d, 100e, 100f, 및 100g) 간의 데이터 전송을 제공하는 시스템 버스로서 동작한다.
응용 부시스템(302)은 실시간 순서기(330), 메모리(335), 멀티미디어 디지털 신호 처리 부시스템(340), 상호 연결(345), 그리고 멀티미디어 매크로 CRISP(350)로 이루어져 있다. 멀티미디어 매크로 CRISP(350)는 MPEG-4/H.264 상황 정보 기반 동작 재구성 가능 명령어 집합 프로세서(Context-based operation Reconfigurable Instruction Set Processors; CRISP)(550h), 변환 CRISP(550i), 그리고 비트 조작 유닛(BMU) CRISP(100j)를 포함하는 복수의 특수 목적(special purpose) CRISP들로 이루어져 있다. 본 개시의 예시적인 실시예에서, MPEG-4/H.264 CRISP(550h)는 움직임 추정(motion estimation) 기능들을 수행하고, 변환 CRISP(100h)는 이산 코사인 변환(Discrete Cosine Transform; DCT) 기능을 수행한다. 상호 연결(380)은 실시간 순서기(330), 메모리(335), 멀티미디어 디지털 신호 처리 부시스템(340), 그리고 멀티미디어 매크로 CRISP(350) 간의 데이터 전송을 제공한다.
도 3에서의 실시예에서, CRISP 장치들의 사용은 다중 표준 소프트웨어 정의 무선 시스템(300)의 응용 부시스템(302)이 복수의 프로파일들과 크기들을 갖는 복수의 비디오 표준들을 지원하도록 재구성될 수 있게 한다. 이 밖에, CRISP 장치들 의 이용은 다중 표준 소프트웨어 정의 무선 시스템(300)의 기저대역 부시스템(301)이 복수의 무선 인터페이스(air interface) 표준들을 지원하도록 재구성될 수 있게 한다. 따라서, 다중 표준 소프트웨어 정의 무선 시스템(300)은 상이한 유형의 무선 네트워크들(예를 들면, 부호 분할 다중 접속(CDMA), 이동 통신을 위한 전지구적 시스템(GSM), 802.11x 등)에서 동작할 수 있으며, 상이한 유형의 비디오와 오디오 포맷들을 실행할 수 있다. 그러나 본 개시의 원칙들에 따른 CRISP들의 사용은 소프트웨어 정의 무선 시스템(300)이 그에 필적하는 성능을 갖는 통상적인 무선 장치들보다 훨씬 더 적게 전력을 소비하는 이 기능들을 수행할 수 있게 한다.
도 4는 본 개시의 원칙들에 따른 CRISP(100f)에서 구현된 재구성 가능 비터비 복호기의 블록선도이다. 상기 재구성 가능 비터비 복호기는 분기 거리 계산 블록(405), 가산-비교-선택(Add-Compare-Select; ACS) 및 경로 거리(path metric) 계산 블록(410), 격자 및 역추적 계산 블록(415), 현재 순간(current stage) 메모리 버퍼(420), 다음 순간(next stage) 메모리 버퍼(425), 제어 논리 및 레지스터 블록(430), 그리고 주소 생성 유닛(Address Generation Unit: AGU)(435)으로 이루어져 있다. 상기 재구성 가능 비터비 복호기는 도 4에 도시된 바와 같이 CRISP(100f)와 별개의 장치이거나 CRISP(100f)의 구성 요소로서의 부분일 수 있는 메모리(350)과 연관된다. 메모리(360)는 논리적으로 공유 입력 심벌 버퍼(360)와 공유 경로 역사 버퍼(shared trails history buffer)(370)로 구분된다. 예시적인 실시예에서, 메모리(350)는 32 킬로바이트 랜덤 액세스 메모리(Random Access Memory: RAM)로 구성될 수 있다.
제어 논리 및 레지스터 블록(430)은 프로그램 가능 유한 상태 기계와 CRISP(100f)의 전체 동작을 제어하는 연관된 제어 레지스터들로 이루어지며, 예를 들면, 분기 거리 계산 블록(405), 가산-비교-선택(ACS) 및 경로 거리 계산 블록(410), 격자 및 역추적 계산 블록(415), 현재 순간 메모리 버퍼(420), 다음 순간 메모리 버퍼(425)를 포함하여, 데이터 경로의 기능 블록들을 재구성한다.
주소 생성 유닛(435)은 분기 거리 계산 블록(405)과 격자 및 역추적 계산 블록(415)에 의하여 내려진 메모리(350)에 대한 읽기와 쓰기 동작들을 제어한다. 칩 속도 CRISP(100e) 또는 기저대역 부시스템(301) 내의 또 하나의 구성 요소는 공유 입력 심벌 버퍼(360)에 심벌 데이터 샘플들을 기록한다. 분기 거리 계산 블록(405)는 그 다음에 공유 입력 심벌 버퍼(360)로부터 상기 심벌 데이터 샘플들을 읽는다. 격자 및 역추적 계산 블록(415)은 공유 격자 역사 버퍼(shared trellis history buffer)(370)에 하드 복호화된(hard decoded) 격자 데이터를 기록하며, 더 늦은 주기에 상기 저장된 하드 복호화된 격자를 다시 읽는다.
잘 알려진 바와 같이, 비터비 알고리즘은 종종 격자 도표(trellis diagram)로 표현된다. 상기 격자는 상태도의 시간 인덱스 판(time-indexed version)이다. 격자에서의 각 순간(time instant)은 2개의 상태, 4개의 상태, 8개의 상태 또는 그 이상의 상태들을 포함할 수 있다. 심벌 간 간섭을 갖는 디지털 스트림의 최대 우도(maximum likelihood) 검출은 상태 천이들(분기들(branches))의 격자를 통하여 가장 유망한(probable) 경로를 찾는 것이라 할 수 있다. 각 상태는 최근에 수신된 데이터 비트들의 가능한 패턴에 해당하며, 격자의 각 분기는 다음 (잡음) 입력의 수신에 해당한다. 분기 거리들은 특정 분기들을 따라 가로지르는(traverse) 비용을 나타낸다. 상기 경로(혹은 상태) 거리들은 특정 상태에 도달하는 최소 비용을 축적한다. 경로 거리들(path metrics)은 가산-비교-선택 회귀(add-compare-select recursion)를 이용하여 갱신된다. 각 순간에, 분기 거리들은 이전 순간의 경로(상태) 거리들에 가산된다. 최단의 경로 거리는 각 상태의 새로운 경로 거리로 선택된다. 결국, 모든 입력 심벌 샘플들이 처리된 후, 최소 경로 값은 서바이버 시퀀스(survivor sequence)를 나타낸다. 격자를 통하여 역추적하는 것은 송신된 데이터의 가망있는(likely) 시퀀스를 부여한다.
분기 거리 계산 블록(405)은 제어 논리 및 레지스터 블록(430)에 기록된 제어 매개변수들과 데이터에 의하여 재구성 가능한 장치이다. 분기 거리 계산 블록(405)은 주지의 원칙들에 따라 목표값들로부터 입력 심벌 샘플들의 거리들(distances)을 계산함으로써 4개의 가능한 분기 거리 값들을 계산한다. 예로서, 분기 거리 계산 블록(405)은 공유 입력 심벌 버퍼(360)로부터 8비트 "소프트(soft)" 심벌 샘플들(예를 들면, 256 수준 2의 보수)을 읽어 들일 수 있으며, 그 각각이 16 비트들을 포함하는 4개의 분기 거리 값들을 출력할 수 있다. 분기 거리 값들은 전형적으로 이전 순간에서의 상태들과 현재 순간 상태들 간의 경로들에 대하여 각 순간에 계산되는 해밍 거리들(Hamming distances)(혹은 기타 거리 값들)이다.
가산-비교-선택(ACS) 및 경로 거리 계산 블록(410)은 또한 제어 논리 및 레지스터 블록(430)에 기록된 제어 매개변수들과 데이터에 의하여 재구성 가능한 장 치이다. 가산-비교-선택(ACS) 및 경로 거리 계산 블록(410)은 격자의 각 기간(순간)에서의 경로 (혹은 상태)의 새로운 값들을 계산한다. 최소 경로 거리는 그 다음에 (극히 짧은) 기간 결정(Stage Decision)으로서 격자 및 역추적 계산 블록(415)으로 출력된다. 가산-비교-선택(ACS) 및 경로 거리 계산 블록(410)은 현재 순간 메모리 버퍼(420)로부터 현재의 경로 거리들(예를 들면, 4개의 경로 거리들)을 읽어서 현재의 경로 거리들을 분기 거리 계산 블록(405)으로부터의 분기 거리들에 가산하며, 새로운 경로 거리들을 다음 순간 메모리 버퍼(425)에 저장한다. 다음 순간 메모리 버퍼(425)와 현재 순간 메모리 버퍼(420)는 그 다음에 그 신분들(identities)을 전환하여 다음 순간 메모리 버퍼(425)는 현재 순간 메모리 버퍼(420)가 되며, 현재 순간 메모리 버퍼(420)는 다음 순간 메모리 버퍼(425)가 된다.
격자 및 역추적 계산 블록(415)는 가산-비교-선택(ACS) 및 경로 거리 계산 블록(410)으로부터 기간 결정 값들을 수신하며, 공유 경로 역사 버퍼에 하드 복호화된 값들을 저장한다. 심벌 샘플들의 전 블록이 처리되고 상기 격자가 공유 경로 역사 버퍼에서 완성될 때, 격자 및 역추적 계산 블록(415)은 그 다음 입력 시퀀스를 복호화하기 위하여 격자에서의 최단 경로를 통하여 역추적한다(trace back).
유익한 실시예에서, CRISP(100f) 내의 재구성 가능 비터비 복호기는 다음의 사항들을 지원하는 완전히 프로그램 가능한 피드 순방향(feed-forward) 채널 복호화와 역추적 세션들을 제공한다. i) 예를 들면, K=5, K=6, K=7, 및 K=9인 구속장(constraint length)들을 갖는 채널 복호화, ii) 펑크처(puncture) 코드들, 그리고 iii) 4개의 완전히 프로그램 가능한 다항식들에 의한 속도=1/2, 1/3, 1/4, 및 1/6. 공유 격자 역사 버퍼(370)는 K=9에 대하여 512 (극히 짧은) 기간들(stages)까지 또는 K=5에 대하여 8192 기간들까지 지원할 수 있다. CRISP(100f) 내의 재구성 가능 비터비 복호기는 완전히 프로그램 가능한 메모리(350)에서의 일 블록 길이의 심벌 데이터를 더 지원하며, 또한 프로그램 가능 역추적 방법들을 지원한다.
기저대역 디지털 신호 처리 부시스템(315) 또는 주제어 장치(MCU)(370)와 같은 외부 제어기는 CRISP(100f)가 웨이크업 모드(Wake-Up mode)에 있는 동안 재구성 가능 비터비 복호기를 프로그램한다. CRISP(100f) 내의 상기 재구성 가능 비터비 복호기는 그 다음에 독립적으로 프로그램된 레지스터들에 의거한 메모리(350) 내의 데이터의 전 블록을 토대로 블록(430) 내의 전용 명령어들(dedicated instructions)을 실행한다. 데이터는 상호연결(325) 내의 버스를 통하여 CRISP(100f) 내의 메모리(350)에 기록되며 상기 메모리(350)로부터 읽혀진다.
도 5, 6, 7, 그리고 8은 송신 장치에서의 CRISP(100f) 내의 선택된 구성 요소들과 콘벌루션 부호기의 파이프라인 아키텍처들을 도시한다. 도 5는 비터비 복호기가 복호화하는 데이터를 부호화하는 콘벌루션 부호기에서 선택된 파이프라인 단들(pipeline stages)의 타이밍도이다. 상기 콘벌루션 부호기는 부호기 부하단, 부호기 시프트단, 그리고 부호기 저장단으로 이루어져 있다. 순차적 시간 기간들인 T0, T1, 그리고 T2가 도시된다. 상기 콘벌루션 부호기는 다음 순서로(좌에서 우로) 5개의 순차적 데이터 블록들을 수신한다. 즉, [..., N-2, N-1, N, N+1, N+2]. T0 동안, 부호기 부하단은 데이터 N 블록을 처리하며, 부호기 시프트단은 데이터 N-1 블록을 처리하며, 부호기 저장단은 데이터 N-2 블록을 처리한다. T1 동안, 부호기 부하단은 데이터 N+1 블록을 처리하며, 부호기 시프트단은 데이터 N 블록을 처리하며, 부호기 저장단은 데이터 N-1 블록을 처리한다. T3 동안, 부호기 부하단은 데이터 N+2 블록을 처리하며, 부호기 시프트단은 데이터 N+1 블록을 처리하며, 부호기 저장단은 데이터 N 블록을 처리한다.
도 6은 분기 거리 계산 블록(405)에서 선택된 파이프라인 단들의 타이밍도이다. 분기 거리 계산 블록(405)은 분기 거리 부하단, 분기 거리 계산단, 그리고 분기 거리 저장단으로 이루어져 있다. 분기 거리 계산 블록(405)은 다음 순서로(좌에서 우로) 5개의 순차적 데이터 블록들을 수신한다. 즉, [..., N-2, N-1, N, N+1, N+2]. T0 동안, 분기 거리 부하단은 데이터 N블록을 처리하며, 분기 거리 계산단은 데이터 N+1 블록을 처리하며, 분기 거리 저장단은 데이터 N+2 블록을 처리한다. T1 동안, 분기 부하단은 데이터 N+1 블록을 처리하며, 분기 거리 계산단은 데이터 N 블록을 처리하며, 분기 거리 저장단은 데이터 N+1 블록을 처리한다. T3 동안, 분기 거리 부하단은 데이터 N+2 블록을 처리하며, 분기 거리 계산단은 데이터 N+1 블록을 처리하며, 분기 저장단은 데이터 N 블록을 처리한다.
도 7은 경로 거리 계산 블록에서 선택된 파이프라인 단들의 타이밍도이다. 상기 경로 거리 계산 블록은 경로 거리 전부하단(path metric pre-load stage), 경로 거리 부하단, 경로 거리 계산 가산-비교-선택(ACS)단, 그리고 경로 거리 저장단으로 이루어져 있다. 상기 경로 거리 계산 블록은 다음 순서로(좌에서 우로) 6개의 순차적 데이터 블록들을 수신한다. 즉, [..., N-2, N-1, N, N+1, N+2, N+3]. T0 동 안, 경로 거리 전부하단은 데이터 N+1 블록을 처리하며, 경로 거리 부하단은 데이터 N 블록을 처리하며, 경로 거리 계산 가산-비교-선택단은 데이터 N-1 블록을 처리하며, 경로 저장단은 데이터 N-2 블록을 처리한다. T1 동안, 경로 거리 전부하단은 데이터 N+2 블록을 처리하며, 경로 거리 부하단은 데이터 N+1 블록을 처리하며, 경로 거리 계산 가산-비교-선택단은 데이터 N 블록을 처리하며, 경로 거리 저장단은 데이터 N-1 블록을 처리한다. T2 동안, 경로 거리 전부하단은 데이터 N+3 블록을 처리하며, 경로 거리 부하단은 데이터 N+2 블록을 처리하며, 경로 거리 계산 가산-비교-선택단은 데이터 N+1 블록을 처리하며, 경로 거리 저장단은 데이터 N 블록을 처리한다.
도 8은 격자 및 역추적(trellis and traceback) 계산 블록(415)에서 선택된 파이프라인 단들의 타이밍도이다. 격자 및 역추적(trellis and traceback) 계산 블록(415)은 격자 저장단, 역추적 부하단, 그리고 역추적 시프트단으로 이루어져 있다. 격자 및 역추적(trellis and traceback) 계산 블록(415)은 다음 순서로(좌에서 우로) 5개의 순차적인 데이터 블록들을 수신한다. 즉, [..., N-2, N-1, N, N+1, N+2]. T0 동안, 격자 저장단은 데이터 N 블록을 처리하며, 역추적 부하단은 데이터 N-1 블록을 처리하며, 역추적 시프트단은 데이터 N-2 블록을 처리한다. T1 동안, 격자 저장단은 데이터 N+1 블록을 처리하며, 역추적 부하단은 데이터 N 블록을 처리하며, 역추적 시프트단은 N-1 블록을 처리한다. T2 동안, 격자 저장단은 데이터 N+2 블록을 처리하며, 역추적 부하단은 데이터 N+1 블록을 처리하며, 역추적 시프트단은 데이터 N 블록을 처리한다.
비록 본 개시가 예시적인 실시예와 함께 설명되었을지도, 다양한 변화들과 변경들이 당업자에게 제안될 수 있다. 본 개시는 그러한 변화들과 변경들이 첨부된 청구범위의 범위 내에 있음에 따라 그러한 변화들과 변경들을 포함하도록 의도된다.

Claims (30)

  1. 재구성 가능한 비터비 복호기에 있어서,
    재구성 가능 분기 거리(branch metric) 계산 블록과 재구성 가능 가산-비교-선택(ACS) 및 경로 거리(path metric) 계산 블록을 구비하는 복수의 재구성 가능 기능 블록들을 포함하는 재구성 가능 데이터 경로; 및
    상기 재구성 가능 데이터 경로를 제어할 수 있으며, 재구성 가능 비터비 복호기(Viterbi decoder)와 연관된 복수의 상황정보 관련 명령어들(context-related instructions)을 실행할 수 있는 프로그램 가능 유한 상태 기계(programmable finite state machine)를 포함하는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  2. 제1항에 있어서, 상기 재구성 가능 데이터 경로는 외부 장치로부터 수신된 재구성 비트들에 의하여 구성되는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  3. 제2항에 있어서, 상기 프로그램 가능 유한 상태 기계는 상기 외부 장치로부터 수신된 재구성 비트들에 의하여 구성되는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  4. 제2항에 있어서, 상기 재구성 가능 비터비 복호기는 입력 데이터를 복호화하는데 요구되지 않은 타임 구간 동안 외부 제어기에 의하여 저전력 모드로 놓여짐을 특징으로 하는 재구성 가능 비터비 복호기.
  5. 제1항에 있어서, 상기 재구성 가능 분기 거리 계산 블록은 입력 심벌 샘플들로부터 분기 거리 값들을 계산할 수 있는 복수의 파이프라인 단들(pipelined stages)을 포함하는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  6. 제5항에 있어서, 상기 재구성 가능 가산-비교-선택 및 경로 거리 계산 블록은 상기 재구성 가능 분기 거리 계산 블록으로부터 수신된 분기 거리 값들로부터 경로 거리 값들을 계산할 수 있는 복수의 파이프라인 단들을 포함하는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  7. 제6항에 있어서, 상기 복수의 재구성 가능 기능 블록들은 재구성 가능 격자 및 역추적 계산 블록을 더 포함하는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  8. 제7항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 상기 재구성 가능 가산-비교-선택 및 경로 거리 계산 블록으로부터 수신된 경로 거리 값들로부터 상태 정보의 격자를 생성할 수 있는 복수의 파이프라인 단들을 포함하는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  9. 제8항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 외부 장치로부터 수신된 재구성 가능 비트들에 의하여 구성되는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  10. 제9항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 격자의 각 기간(each stage) 동안 외부 버스로 하나의 하드 복호화(hard decoded)된 비트를 출력하는 것을 특징으로 하는 재구성 가능 비터비 복호기.
  11. 소프트웨어 정의 무선(Software-Defined Radio; SDR) 시스템에 있어서,
    복수의 무선 통신 표준들 하에서 동작하도록 재구성될 수 있는 무선 주파수 송수신기부; 및
    재구성 가능 분기 거리(branch metric) 계산 블록과 재구성 가능 가산-비교-선택 및 경로 거리(path metric) 계산 블록을 구비하는 복수의 재구성 가능 기능 블록들을 포함하는 재구성 가능 데이터 경로; 및 상기 재구성 가능 데이터 경로를 제어할 수 있으며, 재구성 가능 비터비 복호기(Viterbi decoder)와 연관된 복수의 상황정보 관련 명령어들(context-related instructions)을 실행할 수 있는 프로그램 가능 유한 상태 기계(programmable finite state machine)로 구성되는 재구성 가능 비터비 복호기를 포함하는, 무선 주파수 송수신기부와 연관된 재구성 가능 기저대역 처리부를 포함하는 것을 특징으로 하는 소프트웨어 정의 무선(Software-Defined Radio; SDR) 시스템.
  12. 제11항에 있어서, 상기 재구성 가능 데이터 경로는 외부 장치로부터 수신된 재구성 비트들에 의하여 구성되는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  13. 제12항에 있어서, 상기 프로그램 가능 유한 상태 기계는 상기 외부 장치로부터 수신된 재구성 비트들에 의하여 구성되는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  14. 제12항에 있어서, 상기 재구성 가능 비터비 복호기는 입력 데이터를 복호화하는데 요구되지 않은 타임 구간 동안 외부 제어기에 의하여 저전력 모드로 놓여짐을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  15. 제11항에 있어서, 상기 재구성 가능 분기 거리 계산 블록은 입력 심벌 샘플들로부터 분기 거리 값들을 계산할 수 있는 복수의 파이프라인 단들(pipelined stages)을 포함하는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  16. 제15항에 있어서, 상기 재구성 가능 가산-비교-선택(ACS) 및 경로 거리 계산 블록은 상기 재구성 가능 분기 거리 계산 블록으로부터 수신된 분기 거리 값들로부터 경로 거리 값들을 계산할 수 있는 복수의 파이프라인 단들을 포함하는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  17. 제16항에 있어서, 상기 복수의 재구성 가능 기능 블록들은 재구성 가능 격자 및 역추적 계산 블록을 더 포함하는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  18. 제17항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 상기 재구성 가능 가산-비교-선택 및 경로 거리 계산 블록으로부터 수신된 경로 거리 값들로부터 상태 정보의 격자를 생성할 수 있는 복수의 파이프라인 단들을 포함하는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  19. 제18항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 외부 장치로부터 수신된 재구성 가능 비트들에 의하여 구성되는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  20. 제19항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 격자의 각 기간(each stage) 동안 외부 버스로 하나의 하드 복호화(hard decoded)된 비트를 출력하는 것을 특징으로 하는 소프트웨어 정의 무선(SDR) 시스템.
  21. 재구성 가능한 비터비 복호 방법에 있어서,
    재구성 가능 분기 거리(branch metric) 계산 블록과 재구성 가능 가산-비교-선택(ACS) 및 경로 거리(path metric) 계산 블록을 구비하는 복수의 재구성 가능 기능 블록들을 프로그램 가능 유한 상태 기계(programmable finite state machine)로 제어하는 과정; 및
    상기 프로그램 가능 유한 상태 기계를 이용하여 재구성 가능 비터비 복호기(Viterbi decoder)와 연관된 복수의 상황정보 관련 명령어들(context-related instructions)을 실행하는 과정을 포함함을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  22. 제21항에 있어서, 상기 재구성 가능 데이터 경로는 외부 장치로부터 수신된 재구성 비트들에 의하여 구성되는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  23. 제22항에 있어서, 상기 프로그램 가능 유한 상태 기계는 상기 외부 장치로부터 수신된 재구성 비트들에 의하여 구성되는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  24. 제22항에 있어서, 상기 재구성 가능 비터비 복호기는 입력 데이터를 복호화하는데 요구되지 않은 타임 구간 동안 외부 제어기에 의하여 저전력 모드로 놓여짐을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  25. 제21항에 있어서, 상기 재구성 가능 분기 거리 계산 블록은 입력 심벌 샘플들로부터 분기 거리 값들을 계산할 수 있는 복수의 파이프라인 단들(pipelined stages)을 포함하는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  26. 제25항에 있어서, 상기 재구성 가능 가산-비교-선택 및 경로 거리 계산 블록은 상기 재구성 가능 분기 거리 계산 블록으로부터 수신된 분기 거리 값들로부터 경로 거리 값들을 계산할 수 있는 복수의 파이프라인 단들을 포함하는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  27. 제26항에 있어서, 상기 복수의 재구성 가능 기능 블록들은 재구성 가능 격자 및 역추적 계산 블록을 더 포함하는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  28. 제27항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 상기 재구성 가능 가산-비교-선택 및 경로 거리 계산 블록으로부터 수신된 경로 거리 값들로부터 상태 정보의 격자를 생성할 수 있는 파이프라인 단들을 포함하는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  29. 제28항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 외부 장치로부터 수신된 재구성 가능 비트들에 의하여 구성되는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
  30. 제29항에 있어서, 상기 재구성 가능 격자 및 역추적 계산 블록은 격자의 각 기간(each stage) 동안 외부 버스로 하나의 하드 복호화(hard decoded)된 비트를 출력하는 것을 특징으로 하는 재구성 가능한 비터비 복호 방법.
KR1020077029641A 2005-05-18 2006-05-18 소프트웨어 정의 무선 시스템에서 비터비 복호 장치 및 방법 KR101175826B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US68233905P 2005-05-18 2005-05-18
US60/682,339 2005-05-18
US11/314,460 US7603613B2 (en) 2005-02-17 2005-12-21 Viterbi decoder architecture for use in software-defined radio systems
US11/314,460 2005-12-21
PCT/KR2006/001864 WO2006123906A1 (en) 2005-05-18 2006-05-18 Viterbi decoder architecture for use in software-defined radio systems

Publications (2)

Publication Number Publication Date
KR20080047317A KR20080047317A (ko) 2008-05-28
KR101175826B1 true KR101175826B1 (ko) 2012-08-24

Family

ID=37431452

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077029641A KR101175826B1 (ko) 2005-05-18 2006-05-18 소프트웨어 정의 무선 시스템에서 비터비 복호 장치 및 방법

Country Status (5)

Country Link
US (1) US7603613B2 (ko)
KR (1) KR101175826B1 (ko)
CN (1) CN101176264B (ko)
RU (1) RU2363098C1 (ko)
WO (1) WO2006123906A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8095173B2 (en) * 2005-08-22 2012-01-10 Intel Corporation Wireless communication device with physical-layer reconfigurable processing engines
US7685405B1 (en) * 2005-10-14 2010-03-23 Marvell International Ltd. Programmable architecture for digital communication systems that support vector processing and the associated methodology
US7849386B2 (en) * 2006-01-11 2010-12-07 Amicos Wireless Technology Ltd. Decoder and method for decoding a tail-biting convolutional encoded signal using Viterbi decoding scheme
US7668188B2 (en) * 2006-02-14 2010-02-23 Broadcom Corporation Method and system for HSDPA bit level processor engine
US8606259B2 (en) * 2006-06-28 2013-12-10 Samsung Electronics Co., Ltd. Method and system for testing a software-defined radio device
US7676736B2 (en) 2006-09-13 2010-03-09 Harris Corporation Programmable continuous phase modulation (CPM) decoder and associated methods
US8111767B2 (en) * 2007-05-31 2012-02-07 Renesas Electronics Corporation Adaptive sliding block Viterbi decoder
US8255780B2 (en) * 2009-02-18 2012-08-28 Saankhya Labs Pvt Ltd. Scalable VLIW processor for high-speed viterbi and trellis coded modulation decoding
FR2946480B1 (fr) * 2009-06-09 2011-06-17 Thales Sa Recepteur equipe d'un decodeur de viterbi a treillis
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
US8402342B2 (en) 2010-02-26 2013-03-19 Research In Motion Limited Method and system for cyclic redundancy check
RU2421900C1 (ru) * 2010-02-27 2011-06-20 Тимур Георгиевич Келин Многоканальный последовательный декодер витерби
US9705531B2 (en) * 2015-02-18 2017-07-11 eTopus Technology Inc. Multi mode viterbi decoder
RU2608872C1 (ru) * 2015-09-24 2017-01-25 Валерий Владимирович Золотарев Способ кодирования и декодирования блокового кода с использованием алгоритма Витерби
CN107919877B (zh) * 2016-10-08 2020-06-19 电信科学技术研究院 基于软输出维特比译码算法sova的译码方法和装置
RU2692429C1 (ru) * 2018-05-28 2019-06-24 Федеральное государственное бюджетное образовательное учреждение высшего образования "Владимирский Государственный Университет имени Александра Григорьевича и Николая Григорьевича Столетовых" (ВлГУ) Способ борьбы с межсимвольными искажениями цифровых сигналов
CN111314227B (zh) * 2020-03-16 2022-10-28 深圳云创天地信息技术有限公司 业务路径可编程方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324226B1 (en) 1999-11-22 2001-11-27 Matsushita Electric Industrial Co., Ltd. Viterbi decoder
US7032163B2 (en) 2001-07-06 2006-04-18 Hitachi, Ltd. Error correction decoder for turbo code

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530707A (en) 1994-03-09 1996-06-25 At&T Corp. Area-efficient decoders for rate-k/n convolutional codes and other high rate trellis codes
JP3171772B2 (ja) 1995-08-23 2001-06-04 沖電気工業株式会社 ビタビ復号方法及びビタビ復号装置
CN1099165C (zh) 1996-03-18 2003-01-15 三星电子株式会社 维特比译码器
US5721746A (en) 1996-04-19 1998-02-24 General Electric Company Optimal soft-output decoder for tail-biting trellis codes
JP3196835B2 (ja) 1998-07-17 2001-08-06 日本電気株式会社 ビタビ復号法及びビタビ復号器
US6252917B1 (en) 1998-07-17 2001-06-26 Nortel Networks Limited Statistically multiplexed turbo code decoder
US6311200B1 (en) * 1999-09-23 2001-10-30 Chameleon Systems, Inc. Reconfigurable program sum of products generator
WO2001026257A1 (en) * 1999-10-05 2001-04-12 Samsung Electronics Co., Ltd. Component decoder and method thereof in mobile communication system
WO2002021699A2 (en) * 2000-09-08 2002-03-14 Avaz Networks Programmable and multiplierless viterbi accelerator
US7159109B2 (en) * 2001-11-07 2007-01-02 Intel Corporation Method and apparatus to manage address translation for secure connections
AU2003277347A1 (en) * 2002-10-11 2004-05-04 Quicksilver Technology, Inc. Reconfigurable bit-manipulation node
US20040255230A1 (en) * 2003-06-10 2004-12-16 Inching Chen Configurable decoder
US7117426B2 (en) * 2003-12-01 2006-10-03 Mediatek Inc. Branch metric computation and add-compare-select operation in viterbi decoders

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6324226B1 (en) 1999-11-22 2001-11-27 Matsushita Electric Industrial Co., Ltd. Viterbi decoder
US7032163B2 (en) 2001-07-06 2006-04-18 Hitachi, Ltd. Error correction decoder for turbo code

Also Published As

Publication number Publication date
CN101176264B (zh) 2012-05-23
CN101176264A (zh) 2008-05-07
US20060195773A1 (en) 2006-08-31
KR20080047317A (ko) 2008-05-28
WO2006123906A1 (en) 2006-11-23
RU2363098C1 (ru) 2009-07-27
RU2007142365A (ru) 2009-05-27
US7603613B2 (en) 2009-10-13

Similar Documents

Publication Publication Date Title
KR101175826B1 (ko) 소프트웨어 정의 무선 시스템에서 비터비 복호 장치 및 방법
US7571369B2 (en) Turbo decoder architecture for use in software-defined radio systems
US7895497B2 (en) Apparatus and method using reduced memory for channel decoding in a software-defined radio system
US7984368B2 (en) Method and system for increasing decoder throughput
US20040255230A1 (en) Configurable decoder
JP4907802B2 (ja) 通信の復号化の際に用いられるバタフライプロセッサ装置
US8069401B2 (en) Equalization techniques using viterbi algorithms in software-defined radio systems
US7669105B2 (en) Generic maximum aposteriori probability decoder for use in software-defined radio systems
US7802170B2 (en) Unified stopping criteria for binary and duobinary turbo decoding in a software-defined radio system
US7979781B2 (en) Method and system for performing Viterbi decoding using a reduced trellis memory
US7234100B1 (en) Decoder for trellis-based channel encoding
US8032811B2 (en) Efficient almost regular permutation (ARP) interleaver and method
Vogt et al. A reconfigurable applcation specific instruction set processor for viterbi and log-map decoding
US7752530B2 (en) Apparatus and method for a collision-free parallel turbo decoder in a software-defined radio system
Vaithiyanathan et al. High performance ACS for Viterbi decoder using pipeline T-Algorithm
Huang et al. A high speed turbo decoder implementation for CPU-based SDR system
US7496827B2 (en) System and method for multi-mode multi-state path metric addressing
Azim et al. Implementation of Viterbi decoder for WCDMA system
Niktash et al. A reconfigurable processor for forward error correction
Gupta et al. Reconfigurable Efficient Design of Viterbi Decoder for Wireless Communication Systems
Nicol et al. DSP Architectures for Next-Generation Wireless Communications
Kunchamwar Design of application specific instruction accelerators for multi-standard channel decoding
CN101527573A (zh) 维特比解码器

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: 20150730

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee