KR20080098391A - 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더 - Google Patents

양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더 Download PDF

Info

Publication number
KR20080098391A
KR20080098391A KR1020087021060A KR20087021060A KR20080098391A KR 20080098391 A KR20080098391 A KR 20080098391A KR 1020087021060 A KR1020087021060 A KR 1020087021060A KR 20087021060 A KR20087021060 A KR 20087021060A KR 20080098391 A KR20080098391 A KR 20080098391A
Authority
KR
South Korea
Prior art keywords
sub
block
state metrics
decoder
blocks
Prior art date
Application number
KR1020087021060A
Other languages
English (en)
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 KR20080098391A publication Critical patent/KR20080098391A/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/45Soft decoding, i.e. using symbol reliability information
    • 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/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP 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/3723Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 using means or methods for the initialisation of the decoder
    • 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/3972Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using sliding window techniques or parallel windows
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B14/00Transmission systems not characterised by the medium used for transmission
    • H04B14/02Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation
    • H04B14/04Transmission systems not characterised by the medium used for transmission characterised by the use of pulse modulation using pulse code modulation

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)

Abstract

MAP 디코더, 또는 구성 MAP 디코더를 갖는 터보 디코더가 양방향 슬라이딩 윈도우로 구성된다. 슬라이딩 윈도우 아키텍처는, N 개의 시간 단계를 갖는 트렐리스를 가지는 인코딩된 데이터 블록의 순방향 상태 메트릭 (FSM) 계산에 적용된다. 데이터 블록은 작은 서브-블록으로 분할되며, 이 서브-블록 중 2개 이상의 순방향 반복이 병렬로 수행된다. 이것은 서브-블록의 시간 단계 k+t 에서 FSM 의 양호한 근사치를 제공한다. 제 1 서브-블록 이외의 각각의 서브-블록의 제 1 의 k 시간 단계와 관련된 FSM 은 폐기된다. 또한, 각각의 서브-블록의 역방향 반복은 서브-블록에 대한 역방향 상태 메트릭 (RSM) 을 획득하기 위해 수행된다. 그 후, FSM 및 RSM 에 기초하여 가능도비가 계산된다.
Figure P1020087021060
순방향 상태 메트릭, 역방향 상태 메트릭, 서브-블록

Description

양방향 슬라이딩 윈도우 아키텍처를 갖는 MAP 디코더{MAP DECODER WITH BIDIRECTIONAL SLIDING WINDOW ARCHITECTURE}
35 U.S.C. §119 하의 우선권 주장
본 특허 출원은 2006년 1월 27일 출원된, 명칭이 "MAP Decoder with Bi-Directional Sliding Window Architecture" 이고, 본 발명의 양수인에게 양도되었으며, 참조로 여기에 명백히 포함되는 가출원 제 60/762,764 호에 대한 우선권을 주장한다.
배경
분야
본 발명의 다양한 실시형태들은 통신 시스템에 관한 것이며, 더욱 구체적으로는, 디지털 통신 시스템에서 데이터를 디코딩하는 디바이스 및/또는 방법에 관한 것이다.
배경
통신 시스템들은, 송신 에러를 최소화시키면서 전송 정보의 양을 증가시키기 위해 다수의 기술을 사용한다. 이들 통신 시스템에서, 이 정보는 통상적으로, 프레임이라 불리는 비트의 블록 또는 2진 비트의 시퀀스로서 표현된다. 2진 정보는 신호 파형으로 변조되며, 통신 채널을 통해 송신된다. 통신 채널들은 송신 신호를 손상시키는 잡음 및 간섭을 도입하는 경향이 있다. 수신기에서, 수 신 정보가 손상될 수도 있으며, 이 수신 정보는 송신된 2진 정보의 추정치이다. 비트 에러 또는 프레임 에러의 수는, 통신 채널에서의 잡음 및 간섭의 양에 의존한다.
송신 채널 손상의 영향을 없애기 위해, 잡음 및 간섭으로부터 디지털 정보를 보호하여 비트/프레임 에러의 수를 감소시키기 위해 에러 정정 코딩이 디지털 통신 시스템에서 종종 사용된다. 통상적으로, 채널 코딩은 송신 정보 스트림으로 리던던트 비트를 선택적으로 도입함으로써 달성된다. 이들 추가 비트는, 수신 데이터 스트림에서 비트 에러의 검출 및 정정을 허용함으로써, 더욱 신뢰할 수 있는 송신을 제공한다.
터보 코드로서 공지된 에러 정정 코드의 하나의 타입은 근접 샤논 한계 (near-Shannon-limit) 에러 정정 성능을 갖는다. 터보 코딩의 기본은, 채널을 통해 송신될 데이터에 리던던시를 도입하는 것이다. 리던던트 데이터는 수신 데이터로부터 원래 데이터의 복구를 돕는다. 터보 코드는 샤논 채널 용량의 대략 1 dB 내까지의 송신 성능을 달성할 수 있다.
충분하게 큰 블록 길이 (n) 의 랜덤하게 선택된 코드가 샤논 채널 용량 한계에 접근할 수 있다는 것이 통신 이론에서 널리 공지되어 있는 원리이다. 그러나, 이러한 코드의 디코딩은, 디코딩이 물리적으로 실현불가능하게 되는 포인트까지 n 에 따라 증가한다.
터보 코드용 디코더의 하나의 타입이 APP (A Posteriori Probability) 알고리즘이라 또한 공지되어 있는 MAP (Maximum A Posteriori) 알고리즘이다. MAP 알고리즘은, 트렐리스에서의 각각의 상태에 대한 상태 메트릭의 쌍을 획득하기 위해 블록의 2진 트렐리스 트리의 순방향 반복을 수행한 후, 역방향 반복을 수행함으로써 블록을 디코딩한다. 트렐리스 트리의 순방향 반복은 정보 시퀀스의 제 1 추정치 (순방향 상태 메트릭) 를 획득하기 위해 순방향에서 블록을 디코딩한다. 트렐리스 트리의 (백워드 반복으로 또한 공지된) 역방향 반복은 정보 시퀀스의 제 2 추정치 (역방향 상태 메트릭) 를 획득하기 위해 역방향에서 블록을 디코딩한다. 종래의 MAP 알고리즘 구현에서, 순방향 상태 메트릭 및 역방향 상태 메트릭의 저장이 적절한 구속 길이 (constraint length) 및 코드 블록 길이에 대해서도 현저한 양의 메모리를 차지한다는 것이 하나의 문제점이다.
종래의 MAP 알고리즘이 갖는 다른 어려움은, 순차적 프로세싱 (즉, 순방향 반복 및 역방향 반복) 이 디코딩 시간에 대한 제약을 충족시키지 못할 수도 있다는 것이다. 구체적으로는, 블록의 2진 트렐리스의 순방향 반복을 수행한 후 역방향 반복을 수행하는 것이 레이트에 민감한 애플리케이션에 의해 허용된 것 보다 긴 시간이 걸릴 수도 있다. 데이터 블록의 디코딩은 레이트에 민감한 애플리케이션에 의해 예상된 것 보다 긴 시간이 걸릴 수도 있다.
요약
일 양태에서, 디코더는, 슬라이딩 윈도우 아키텍처를 사용하여 데이터 블록을 복수의 서브-블록으로 분할하는 블록 분할기; 블록 분할기에 커플링되어, 복수의 서브-블록을 수신하고 복수의 서브-블록 중 적어도 2개에 대한 상태 메트릭들의 제 1 세트를 병렬로 결정하는 복수의 병렬 디코더를 포함하는 제 1 디코더; 및 제 1 디코더에 커플링되어, 제 1 디코더로부터 복수의 서브-블록을 수신하고 복수의 서브-블록에 대한 상태 메트릭들의 제 2 세트를 계산하는 제 2 디코더를 포함한다. 제 1 및 제 2 디코더는 데이터 블록에서의 에러를 정정하기 위해 최대 사후 확률 (MAP) 알고리즘을 구현할 수도 있다. 제 1 디코더 및/또는 제 2 디코더는 데이터 블록의 트렐리스에 대한 순방향 상태 메트릭을 결정할 수도 있다. 제 2 디코더는, 제 1 디코더로부터 수신된 각각의 서브-블록을 복수의 더 작은 세그먼트로 더 분할하고, 그 복수의 더 작은 세그먼트에 대해 슬라이딩 윈도우 아키텍처를 사용하여 상태 메트릭의 제 2 세트를 계산할 수도 있다. 제 2 디코더는, 복수의 병렬 디코더를 포함할 수도 있으며, 여기서, 제 2 디코더에서의 각각의 병렬 디코더는 제 1 디코더에서의 복수의 병렬 디코더 중 하나에 대응한다. 각각의 서브-블록은 복수의 세그먼트를 포함할 수도 있으며, 여기서, 제 2 디코더는, 제 1 디코더가 일 세그먼트에 대한 상태 메트릭의 제 1 세트를 계산하면 그 세그먼트에 대한 상태 메트릭의 제 2 세트를 계산하도록 구성될 수도 있다.
다른 양태에서, 인코딩된 블록에서 정보를 반복적으로 디코딩하는 방법은, 인코딩된 데이터 블록을 복수의 더 작은 서브-블록으로 분할하는 단계로서, 각각의 서브-블록은 복수의 더 작은 세그먼트를 포함하는, 분할하는 단계; 서브-블록 중 2개 이상에 대한 순방향 상태 메트릭을 병렬로 획득하는 단계; 및 순방향 상태 메트릭이 일 세그먼트에 대해 획득되었으면 그 세그먼트에 대한 역방향 상태 메트릭을 획득하는 단계를 포함한다. 이 방법은, N 개의 시간 단계 (time step) 를 갖는 트렐리스를 가지는 정보의 인코딩된 블록을 수신하는 단계; 그 인코딩된 블록을 N/L 개의 서브-블록으로 분할하는 단계로서, L 은 0 보다 큰 정수인, 분할하는 단계; 및 N/L 개의 서브-블록에 대한 순방향 상태 메트릭을 병렬로 계산하는 단계를 더 포함할 수도 있다. 또 다른 방법으로는, 이 방법은, 각각의 서브-블록의 제 1 세그먼트에 대한 메트릭의 제 1 세트를 저장하는 단계; 제 1 세그먼트에 대한 제 1 및 제 2 상태 메트릭에 기초하여 제 1 세그먼트에 대한 가능도비를 획득하는 단계; 및 제 1 세그먼트에 대한 가능도비가 획득되었으면 각각의 서브-블록의 제 1 세그먼트에 대한 메트릭의 제 1 세트를 폐기하는 단계를 더 포함할 수도 있다.
상기 디코더 및 방법에서, 각각의 서브-블록은 트렐리스의 k 개 시간 단계 만큼 이전의 서브-블록과 오버랩할 수도 있고, k 는 0 보다 큰 정수값이다. 제 1 서브-블록 이후의 각각의 서브-블록에 대한 제 1 의 k 개 시간 단계와 관련된 메트릭은 상태 메트릭의 제 1 세트로부터 폐기될 수도 있다. 서브-블록의 길이는 디코딩 시간 제약에 의해 결정될 수도 있다. 데이터 블록은 터보 코드로 인코딩될 수도 있다. 세그먼트에 대한 메트릭의 제 1 세트는, 그 세그먼트에 대한 가능도비가 계산되면 저장 디바이스로부터 폐기될 수도 있다. 상태 메트릭의 제 1 세트 및 상태 메트릭의 제 2 세트는 데이터 블록에서 데이터에 대한 가능도비를 계산하는데 사용될 수도 있다.
설명된 바와 같은 디코더 및/또는 방법이 그 디코더 및/또는 방법의 하나 이상의 기능을 수행하도록 구성된 프로세서에 의해 구현될 수도 있다. 유사하게, 설명된 바와 같은 디코더 및/또는 방법은 명령들을 포함하는 머신 판독가능 매체에 의해 구현될 수도 있으며, 여기서, 그 명령들은 그 디코더 및/또는 방법의 하나 이 상의 기능을 수행하도록 구성된다.
도면의 간단한 설명
도 1 은, 본 발명의 하나 이상의 특징이 구현될 수도 있는 예시적인 통신 시스템의 블록도를 도시한다.
도 2 는, 데이터 디코딩을 수행하도록 구성된 예시적인 수신 디바이스를 도시하는 블록도이다.
도 3 은, 본 발명의 일 특징에 따른 순방향 디코더상에서 슬라이딩 윈도우 아키텍처를 갖고 병렬 디코딩하는 예시적인 디코더를 도시하는 블록도이다.
도 4 는, 정보의 블록이 순방향 디코더에 대한 슬라이딩 윈도우 아키텍처에서 더 작은 서브-블록으로 어떻게 분할되는지의 예를 도시한다.
도 5 는, 다중의 병렬 디코더를 갖는 예시적인 디코더 구조의 블록도를 도시한다.
도 6 은, 순방향 및 역방향 디코더에 의한 데이터 블록의 분할 및 프로세싱을 도시하는 예시적인 테이블이다.
도 7 은, 순방향 및 역방향 디코딩 경로상에서 슬라이딩 윈도우로 반복적 디코딩을 구현하는 예시적인 방법을 도시하는 흐름도이다.
도 8 은, 2-스테이지 디코더에서 수신 데이터 블록을 분할하는 예시적인 방법을 도시하는 흐름도이다.
도 9 는, 디코딩하기 위한 다른 예시적인 장치를 도시한다.
상세한 설명
아래의 설명에서, 실시형태들의 완전한 이해를 제공하기 위해 특정한 상세가 제공된다. 그러나, 이 실시형태들이 이들 특정한 상세없이도 실시될 수도 있다는 것을 당업자는 이해할 것이다. 예를 들어, 불필요한 상세로 이 실시형태들을 불명료하게 하지 않기 위해 회로들이 블록도로 도시될 수도 있다.
또한, 이 실시형태들은 플로우차트, 흐름도, 구조도, 또는 블록도로서 도시되는 프로세스로서 설명될 수도 있다. 흐름도가 연속적 프로세스로서 동작을 설명할 수도 있지만, 다수의 동작은 병렬로 또는 동시에 수행될 수 있다. 또한, 동작의 순서는 재배열될 수도 있다. 프로세스는, 그것의 동작이 완료될 때 종료된다. 프로세스는 방법, 함수, 절차, 서브루틴, 서브프로그램 등에 대응할 수도 있다. 프로세스가 함수에 대응할 때, 그것의 종료는 호출 (calling) 함수 또는 메인 함수로의 그 함수의 복귀에 대응한다.
또한, 저장 매체가, 판독 전용 메모리 (ROM), 랜덤 액세스 메모리 (RAM), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스, 및/또는 정보를 저장하는 다른 머신 판독가능 매체를 포함하는, 데이터를 저장하는 하나 이상의 디바이스를 나타낼 수도 있다. 용어 "머신 판독가능 매체" 는, 휴대 또는 고정 저장 디바이스, 광학 저장 디바이스, 무선 채널, 및 명령(들) 및/또는 데이터를 저장, 포함, 또는 전달할 수 있는 다양한 다른 매체를 포함하지만, 이에 제한되지 않는다.
또한, 실시형태들이 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 또는 이들의 조합으로 구현될 수도 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드에서 구현될 때, 필요한 작업을 수행하기 위한 프로그램 코드 또는 코드 세그먼트는 저장 매체 또는 다른 저장 수단과 같은 머신 판독가능 매체에 저장될 수도 있다. 프로세서가 필요한 작업을 수행할 수도 있다. 코드 세그먼트는, 절차, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 스테이트먼트들의 의 조합을 나타낼 수도 있다. 코드 세그먼트는, 정보, 데이터, 독립변수, 파라미터, 또는 메모리 컨텐츠를 패싱 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수도 있다. 정보, 독립변수, 파라미터, 데이터 등은, 그 중에서, 메모리 공유, 메시지 패싱, 토큰 패싱, 및 네트워크 송신을 포함하는 적합한 수단을 통해 패싱, 포워딩, 또는 송신될 수도 있다.
일반적으로, 양방향 슬라이딩 윈도우를 갖는 MAP 디코더 또는 구성 MAP 디코더 (예를 들어, 반복 순방향 및 역방향 디코더) 를 갖는 터보 디코더가 개시되어 있다. 순방향 디코더로의 데이터 블록은 서브-블록으로 서브분할되며, 서브-블록의 순방향 반복이 병렬로 수행된다. 이러한 접근방식은, 순방향 상태 메트릭을 계산하는 순방향 반복이 트렐리스의 제 1 시간 단계로부터 시작하지 않아야 한다는 것을 인식한다. 대신에, 슬라이딩 윈도우 아키텍처가 순방향 상태 메트릭 계산에 적용된다. 이것은, (종래의 알고리즘에 비해) 순방향 상태 메트릭에 대해 사용된 저장 공간을 감소시킬 수도 있고, 또한, 순방향 상태 메트릭이 병렬로 계산되기 때문에 디코딩 시간을 감소시킬 수도 있다.
또한, 역방향 디코더상에서, 순방향 디코더로부터의 서브-블록은 더욱 더 서 브분할될 수 있다. 또한, 역방향 상태 메트릭 계산을 위한 슬라이딩 윈도우 아키텍처가 서브-블록 (또는 순방향 슬라이딩 윈도우) 각각에 적용될 수 있어서, 순방향 상태 메트릭에 대해 사용된 저장부를 감소시킨다.
도 1 은, 본 발명의 하나 이상의 특징이 구현될 수도 있는 예시적인 통신 시스템의 블록도를 도시한다. 이 통신 시스템은, 정보를 디코딩하는 제 2 디바이스 (106) 로의 통신 채널 (104) 을 통한 송신을 위해 정보를 인코딩하는 제 1 디바이스 (102) 를 포함한다. 제 1 디바이스 (102) 는 데이터를 수신하고 에러 정정 코드로 인코딩하는 인코더 (108) 를 포함한다. 그 후, 인코딩된 데이터는 송신기 (112) 에 의해 송신되는 캐리어 신호상에서 정보를 변조하는 변조기 (110) 로 전송된다. 통신 채널 (104) 은, 인코딩된 정보를 수신 제 2 디바이스 (106) 로 전달하는 유선, 무선, 라디오, 위성, 또는 이들의 조합을 포함하는 임의의 매체일 수도 있다. 제 2 디바이스 (106) 는 수신된 신호를 복조하고, 패킷, 프레임, 또는 데이터의 블록을 디코더 (118) 에 제공하는 복조기 (116) 및 수신기 (114) 를 포함한다. 디코더 (118) 는 정보를 디코딩하여 데이터 출력을 제공한다. 디코더 (118) 는, 사후 확률 (APP) 알고리즘으로서 또한 공지되어 있는 MAP 알고리즘을 구현하도록 구현될 수도 있다.
도 2 는, 데이터를 디코딩하도록 구성된 예시적인 수신 디바이스 (202) 를 도시하는 블록도이다. 수신 디바이스 (202) 는 통신 채널로부터 정보 베어링 신호를 수신하는 통신 인터페이스를 포함한다. 그 후, 통신 인터페이스 (204) 는, 수신 신호에서의 정보를 디코딩하도록 구성되는 프로세싱 시스템 (206) 으로 수신 정보 베어링 신호를 전송한다.
프로세싱 시스템 (206) 은, MAP 디코더 또는 구성 MAP 디코더 (예를 들어, 반복 순방향 및 역방향 디코더) 를 갖는 터보 디코더로서 기능하며, 이 디코더의 순방향 및 역방향 반복 경로 모두상에서 슬라이딩 윈도우를 구현하도록 구성된다. 통신 인터페이스 (204) 로부터 수신된 정보는 작은 블록 (즉, 서브-블록) 으로 서브분할되며, 순방향 반복 기능이 2개 이상의 서브-블록상에서 병렬로 수행된다. 이러한 목적을 위해, 프로세싱 시스템 (206) 은 하나 이상의 프로세서, 응용 주문형 집적 회로 (ASIC), 및/또는 병렬로 동작하도록 구성된 디코딩 디바이스를 포함할 수도 있다. 순방향 디코더는 서브-블록의 시작으로부터 그 종단까지의 상태 메트릭을 계산하며, 역방향 디코더는 서브-블록의 종단으로부터 그 시작까지의 메트릭을 계산한다. 메모리 디바이스 (208) 가 디코딩 프로세스 동안 생성된 순방향 및/또는 역방향 상태 메트릭을 저장하기 위해 프로세싱 시스템 (206) 에 커플링될 수도 있다.
프로세싱 시스템 (206) 이 서브분할된 더 작은 블록 각각의 역방향 상태 메트릭 계산을 위한 슬라이딩 윈도우 아키텍처를 갖는 역방향 디코더를 구현하도록 또한 구성된다는 것을 추가 특징이 제공한다. 역방향 디코더를 구현할 때, 순방향 디코더로부터의 서브분할된 더 작은 블록이 더욱 더 서브분할될 수 있고, 슬라이딩 윈도우 아키텍처가 순방향 상태 메트릭 계산기의 서브-블록 각각에 병렬로 적용된다. 따라서, 개시된 특징은, 순방향 및/또는 역방향 상태 메트릭에 대해 사용된 저장부를 감소시키고, 순방향 및/또는 역방향 디코더상의 병렬 디코딩으로 인해 디코딩 시간을 더 감소시킨다.
일부 구현에서, 역방향 상태 메트릭 계산을 위한 슬라이딩 윈도우 아키텍처는, 순방향 상태 계산이 서브-블록에 대해 완료되기 전에도 순방향 상태 메트릭 계산기의 서브-블록에 적용된다. 즉, 역방향 상태 메트릭 계산을 위한 슬라이딩 윈도우 아키텍처는, 세그먼트에 대한 순방향 상태 메트릭 계산이 완료될 때 역방향 상태 메트릭 계산이 서브-블록의 그 세그먼트에 대해 수행된다는 것을 의미한다. 따라서, 서브-블록의 세그먼트의 역방향 상태 메트릭 계산은, 서브-블록의 다른 세그먼트에 대한 순방향 상태 메트릭 계산이 여전히 발생하고 있는 동안 발생할 수도 있다. 이것은, 서브-블록에 대한 모든 순방향 상태 계산이 완료될 때까지 대기할 필요가 없기 때문에 전체 계산을 촉진시킨다. 일부 구현에서, 세그먼트에 대한 순방향 메트릭이 먼저 계산된 후, 동일한 세그먼트에 대한 역방향 상태 메트릭의 계산이 행해진다. 다른 구현에서, 세그먼트 또는 서브-블록에 대한 역방향 상태 메트릭이 먼저 계산된 후, 그 서브-블록 또는 세그먼트에 대한 순방향 상태 메트릭의 계산이 행해진다. 또 다른 구현에서, 세그먼트에 대한 순방향 및 역방향 메트릭이 거의 동시에 계산된다. 일부 예들이 이들 시퀀스중 다른 것이 아닌 하나를 도시할 수도 있지만, 본 발명은 본 발명을 벗어나지 않고도 임의의 이들 구성에 적용될 수도 있다.
그 후, 순방향 및 역방향 상태 메트릭이 서브-블록에 대한 가능도비 (예를 들어, 로그-가능도비) 를 계산하기 위해 사용된다. 일 구현에서, 순방향 상태 메트릭의 현재 세트 및 계산된 로그-가능도비가 메모리 (208) 에 저장된다. 로 그-가능도비가 역방향 상태 메트릭과 함께 계산되기 때문에, 역방향 상태 메트릭을 저장할 필요가 없다.
도 3 은, 순방향 디코더상에서 슬라이딩 윈도우 아키텍처를 갖고 병렬 디코딩하는 예시적인 디코더 (300) 를 도시하는 블록도이다. 디코더 (300) 는 MAP 알고리즘을 구현하는 디코더로서 수행할 수도 있다. 디코더 (300) 는 통신 채널로부터 2진 정보를 수신하는 프레임 버퍼 (302) 를 포함한다. 수신된 2진 정보는 데이터 블록으로서 순방향 디코더 (304) 에 전송된다. 이 데이터 블록 (예를 들어, 윈도우) 은 순방향 디코더 (304) 에 의해 병렬로 프로세싱되는 더 작은 데이터 블록 (예를 들어, 서브-블록 또는 슬라이딩 윈도우) 으로 서브분할된다. 즉, 순방향 디코더 (304) 는 서브-블록의 2진 트렐리스의 순방향 반복을 수행한다. 트렐리스를 통하는 각각의 경로는, 시간에서의 상태의 고유한 2진 시퀀스를 나타내고, 여기서, 시간에서의 각각의 상태에는 확률이 할당된다. 상기 확률은, 시간에서의 특정한 2진 상태가 1 또는 0 인지의 가능도를 특정한다. 이들 확률은 순방향 상태 메트릭으로서 저장된다. 그 후, 역방향 디코더 (306) 가 역방향에서 트렐리스를 횡단하며, 역방향 상태 메트릭으로서 확률의 다른 세트를 생성한다. 그 후, 가능도비 계산기 (308) 가, 순방향 상태 메트릭 및 역방향 상태 메트릭에 기초하여 로그-가능도비 또는 사후 확률 (APP) 을 계산한다.
순방향 상태 메트릭 계산은, 이전의 시간 단계로부터의 순방향 상태 메트릭에 기초하는 반복 함수이다. 시간 단계 t 에서 모든 가능한 상태에 대해 균일하게 가능성있는 확률을 갖는 미지의 상태로부터 시작하면, k개 시간 단계를 통한 순방향 상태 메트릭 계산 (여기서, k 는 코드의 구속 길이에 의존한다) 은 시간 단계 t+k 에서 순방향 상태 메트릭의 양호한 근사치를 생성한다. 그 후, 시간 t+k 에서의 근사치로부터 시작하는 다음의 순방향 상태 메트릭이 계산될 수 있다. 트렐리스에서의 임의의 포인트로부터 시작하는 순방향 상태 메트릭에 대한 양호한 근사치를 형성할 수 있기 때문에, 슬라이딩 윈도우 아키텍처가 순방향 상태 메트릭 계산에 적용될 수 있으며, 순방향 상태 메트릭 계산을 위한 모든 슬라이딩 윈도우를 병렬로 프로세스할 수 있다.
도 4 는, 인코딩된 정보 블록 (402, 404, 및 406) 이 순방향 디코더에 대한 슬라이딩 윈도우에서 더 작은 서브-블록 (408, 410, 및 412) 으로 어떻게 분할되는지의 예를 도시한다. 순방향 디코더의 슬라이딩 윈도우에 대한 길이 (L) 는 디코딩 시간 제약에 기초하여 선택된다. 디코딩 시간 제약은 애플리케이션 데이터 레이트에 기초한다. 애플리케이션 데이터 레이트가 더 높으면 디코딩 요건이 더 고속이며, 이것은 슬라이딩 윈도우가 더 작은 길이 (L) 를 갖는다는 것을 의미한다.
트렐리스에서 N 개의 시간 단계를 갖는 블록 404 가 N/L 개의 서브-블록 (408, 410, 및 412) 으로 분할된다. N/L 개의 서브-블록 (408, 410, 및 412) 의 순방향 상태 메트릭은 병렬로 계산된다. 제 1 서브-블록 (408) 은 길이 L 이다. 이것은 (블록 B (404) 의) 제 1 시간 단계로부터 및 모두 제로 상태 (기지의 상태) 로부터 시작한다. 다른 서브-블록 (410 및 412) 은 길이 L+k 이며, 각각의 서브-블록은 트렐리스의 k개 시간 단계 만큼 이전의 서브-블록과 오버래핑 한다. 예를 들어, 서브-블록-1 (408) 에 후속하는 서브-블록-2 (410) 는 서브-블록-1 (408) 로부터 최종 k개 시간 단계를 포함한다. n번째 서브-블록 (여기서 n > 1) 은 균일하게 가능성 있는 상태를 갖는 ((n-1)L+1-k) 번째 시간 단계로부터 시작한다. n번째 서브-블록을 k개 시간 단계에서 "이르게 (early)" 시작함으로써, 서브-블록의 시간 단계 k+t 에서 순방향 상태 메트릭의 양호한 근사치가 획득될 수 있다 (여기서, t 는 0 이상의 정수이다). 그 후, 제 1 윈도우 이외의, 모든 슬라이딩 윈도우에서의 제 1 의 k개 시간 단계에 대한 순방향 상태 메트릭이 폐기된다.
역방향 상태 메트릭 계산을 수행하기 위해, 서브-블록은 더 작은 서브-블록 또는 세그먼트 (414, 416, 및 418) 로 더욱 더 서브분할될 수도 있다. 그 후, 역방향 상태 메트릭 계산이 세그먼트 (414, 416, 및 418) 에 대해 수행된다. 트렐리스의 로그-가능도비의 전체 계산을 촉진시키기 위해, 세그먼트의 역방향 상태 메트릭 계산은, 대응하는 전체 서브-블록에 대한 순방향 상태 메트릭 계산이 완료되기 전에도 시작될 수도 있다. 따라서, 세그먼트에 대응하는 서브-블록의 일부에 대해 순방향 상태 메트릭 계산이 완료되면, 역방향 상태 메트릭 계산이 그 세그먼트에 대해 시작될 수 있다. 다른 구현에서, 역방향 상태 메트릭 계산은, 본 발명을 벗어나지 않고 순방향 상태 메트릭 계산 이전 또는 순방향 상태 메트릭 계산과 거의 동시에 수행될 수도 있다.
도 5 는, 다중의 병렬 디코더를 갖는 예시적인 디코더 구조의 블록도를 도시한다. 프레임 버퍼 (502) 는 통신 채널로부터 2진 데이터 또는 심볼을 수신한 다. 블록 분할기 (504) 는 블록 데이터를 복수의 작은 데이터 서브-블록으로 분할한다. 일 구현에서, 데이터 블록을 복수의 순방향 상태 메트릭 (FSM) 서브-블록으로 분할하는데 있어서 슬라이딩 윈도우 아키텍처가 이용되며, 각각의 FSM 서브-블록은 이전의 FSM 서브-블록과 k개 시간 단계 만큼 오버래핑한다. 그 후, 복수의 FSM 서브-블록은 복수의 병렬 디코더 (예를 들어, 프로세서, ASIC, 등) (510, 512, 및 514) 를 갖는 순방향 디코더 (506) 로 향한다. 순방향 상태 메트릭을 병렬로 생성함으로써, 순방향 디코더 (506) 는 적은 시간에 메트릭을 생성한다.
순방향 디코더 (506) 로부터의 FSM 서브-블록은 더 작은 서브-블록 또는 세그먼트 (예를 들어, 도 4 에서의 세그먼트 (414, 416, 및 418)) 로 더 서브분할될 수도 있다. 역방향 상태 메트릭 계산이 이들 더 작은 세그먼트에 대해 수행된다. 역방향 디코더 (508) 는 대응하는 FSM 서브-블록 디코더 (510, 512, 및 514) 로부터 서브-블록의 세그먼트에 대한 역방향 상태 메트릭을 생성하는 복수의 역방향 상태 메트릭 (RSM) 세그먼트 디코더 (516, 518, 및 520) 를 포함한다. 그러나, 역방향 상태 메트릭의 계산이 순방향 상태 메트릭에 독립적이다는 것에 유의하는 것이 중요하다. 순방향 디코더는 서브-블록의 시작으로부터 그 종단까지의 메트릭을 계산하지만, 역방향 디코더는 서브-블록의 종단으로부터 그 시작까지의 메트릭을 계산한다. 순방향 및 역방향 디코더 (506 및 508) 는 서로 독립적으로 각각의 계산을 수행하며, 이들 디코더 모두는 수신 데이터 및 공통 트렐리스 구조를 사용한다. 가능도비의 전체 계산을 촉진시키기 위해, RSM 세그먼트 디코더 (516, 518, 및/또는 520) 에 의한 역방향 상태 메트릭 계산은, FSM 서브-블록 디코더 (510, 512 및/또는 514) 에 의한 대응하는 서브-블록의 순방향 상태 메트릭 계산이 완료되기 이전에도 시작될 수도 있다. 따라서, 순방향 상태 메트릭 계산이 세그먼트에 대응하는 서브-블록의 일부에 대해 완료되면, 역방향 상태 메트릭 계산이 그 세그먼트에 대해 시작될 수 있다.
저장 디바이스 (522) 가 순방향 상태 메트릭을 저장하며 그 메트릭을 가능도비 계산기 (524) 로 패스하기 위해 순방향 디코더 (506) 에 커플링될 수도 있다. 가능도비 계산기 (524) 는 저장된 순방향 상태 메트릭 및 역방향 디코더 (508) 로부터 수신된 역방향 상태 메트릭에 기초하여 가능비를 계산한다. 일 구현에서, 계산된 가능도와 순방향 상태 메트릭의 현재 세트가 메모리 (208) (도 2) 에 저장된다. 가능도비가 역방향 상태 메트릭과 함께 계산되기 때문에 역방향 상태 메트릭을 저장할 필요가 없다.
일부 구현에서, 순방향 디코더 (506) 및 역방향 디코더 (508) 는 서브-블록을 동시에 (또는 거의 동시에) 디코딩할 수도 있다. 즉, 역방향 디코더 (508) 는, 코드의 세그먼트가 순방향 디코더 (506) 에 의해 디코딩될 때 까지 대기하지 않는다. 이러한 구현에서, 순방향 및 역방향 메트릭 모두가 가능도비를 계산하기 위해 메모리에 저장될 수도 있다. 예를 들어, 서브-블록의 제 1 하프에 대한 순방향 메트릭은 서브-블록의 다른 하프에 대한 역방향 메트릭과 함께 저장될 수도 있다. 그 후, 가능도비는, 서브-블록에 대한 순방향 및 역방향 상태 메트릭이 완료될 때 계산될 수도 있다.
도 6 은, 순방향 및 역방향 디코더에 의한 데이터 블록의 분할 및 프로세싱을 나타내는 예시적인 테이블이다. 일반적으로, 데이터 블록은 순방향 상태 메트릭 계산을 위해 병렬로 프로세싱되는 FSM 서브-블록으로 분할되며, 각각의 서브-블록은 역방향 상태 메트릭 계산을 위해 더 작은 RSM 서브-블록 또는 세그먼트로 더 분할될 수도 있다. 이러한 예에서, FSM 서브-블록은 길이 6×W 를 갖고, RSM 세그먼트는 길이 W 를 갖는다. 순방향 상태 메트릭 계산기 (FSMC) 는 시간 T0 에서 시작한다. 제 1 W 순방향 상태 메트릭이 계산되면, FSMC 는 시간 T1 에서 세그먼트 2×W (W 로부터 2W-1까지) 에 대한 순방향 상태 메트릭을 계산한다. 대략 시간 T1 에서, 역방향 상태 메트릭 계산기 (RSMC) 는 (W-1 로부터 0까지 역방향 순서로 계산하는) 제 1 세그먼트 W 로부터 역방향 메트릭을 계산한다. 다음의 시간 주기 T2 에서, FSMC 는 다음의 세그먼트 3×W (2W로부터 3W-1까지) 로 이동하며, RSMC 는 (2W-1로부터 W까지 역방향 순서로 계산하는) 세그먼트 2×W 로 이동한다. 이러한 프로세스는, 순방향 및 역방향 상태 메트릭이 FSM 서브-블록에 대해 완료될 때 까지 계속된다.
RSMC 가 각 세그먼트에 대한 역방향 상태 메트릭을 계산할 때, 동일한 세그먼트에 대한 로그-가능도비 (LLR) (또는 다른 가능도비) 가 또한 계산되어 메모리에 저장된다. 일부 실시형태에 따르면, 더 작은 수의 순방향 상태 메트릭을 저장함으로써, 순방향 상태 메트릭을 저장하기 위해 활용된 메모리 저장부의 양이 감소된다. 예를 들어, 현재의 세그먼트 (예를 들어, 2×W) 및 이전의 세그먼트 (예를 들어, W) 순방향 상태 메트릭 (예를 들어, A0,2W-1) 이 저장된다. 이전의 세그먼트 (예를 들어, W) 순방향 상태 메트릭 (예를 들어, A0,W-1) 이 시간 T1 에서 시작하는 LLR 을 계산하기 위해 사용된다. 이러한 프로세스는, LLR 이 전체 서브-블록에 대해 계산될 때 까지 계속된다. 세그먼트에 대한 LLR 이 계산될 때, 이전의 세그먼트에 대한 순방향 상태 메트릭이 폐기될 수 있다. 서브-블록에 대한 순방향 상태 메트릭이 완료되기 이전에 세그먼트들에 대한 역방향 상태 메트릭을 프로세싱함으로써, 더 작은 수의 순방향 상태 메트릭 (예를 들어, 2개의 세그먼트에 대한 메트릭) 이 한번에 저장된다.
도 7 은, 순방향 및 역방향 디코딩 경로상에서 슬라이딩 윈도우로 반복 디코딩을 구현하는 예시적인 방법을 도시하는 흐름도이다. 다양한 구현에서, 이 방법은, 2개 이상의 순차적 또는 병렬 디코딩 스테이지 (예를 들어, 내부 및 외부 디코더 등) 를 갖는 디코딩 알고리즘을 포함하는, MAP 또는 로그-MAP 디코더를 사용하는 상이한 디코딩 알고리즘에 적용될 수도 있다. 데이터 블록 (예를 들어, 비트, 심볼 등의 시퀀스) 가 통신 채널로부터 수신된다 (702). 이 데이터 블록은 더 작은 서브-블록으로 분할된다 (706). 일부 구현에서, 제 1 서브-블록 이후에, 각각의 후속하는 서브 블록은 트렐리스의 k개 시간 단계 만큼 이전의 서브-블록과 오버랩한다. 각각의 서브-블록에 대한 순방향 상태 메트릭을 획득하기 위해, 순방향 디코딩이 2개 이상의 서브-블록에 대해 병렬로 수행된다 (708). 결합될 때, 각각의 서브-블록에 대한 순방향 상태 메트릭은 데이터 블록의 트렐리 스에 대한 순방향 상태 메트릭을 구성한다. 다양한 구현에서, 순방향 디코딩은 데이터 블록의 모든 서브-블록에서 수행된다. 순방향 상태 메트릭 (예를 들어, 트렐리스의 각각의 시간 단계에 대한 확률) 은 각각의 서브-블록에 대해 선택적으로 저장될 수도 있다 (710).
일부 구현에서, 서브-블록은 후속하는 디코딩 스테이지에 의한 프로세싱을 위해 더 작은 세그먼트로 더 분할될 수도 있다 (712). 역방향 디코딩 (예를 들어, 트렐리스에 따른 역방향 경로) 이 각각의 세그먼트에 대한 역방향 상태 메트릭을 획득하기 위해 2개 이상의 세그먼트에 대해 병렬로 수행된다 (714). 일부 구현은, 순방향 디코딩과 병렬로 역방향 디코딩 (712 및 714) 을 수행함으로써 디코딩 시간을 감소시키고/시키거나 저장 공간을 세이브할 수도 있다. 특히, 서브-블록의 세그먼트에 대한 순방향 상태 메트릭이 획득될 때, 서브-블록의 이들 세그먼트의 역방향 디코딩이 시작될 수도 있다. 따라서, 역방향 디코딩이 시작되기 이전에 전체 서브-블록에 대한 순방향 상태 메트릭이 완료될 때 까지 대기할 필요가 없다. 다른 구현에서, 순방향 및 역방향 디코딩이 순차적으로 수행될 수도 있다.
가능도비가 순방향 및 역방향 상태 메트릭에 기초하여 계산된다 (716). 가능도비는 원래 전송된 데이터의 추정치로서 출력될 수도 있다 (718).
다양한 구현에서, 순방향 상태 메트릭 및 역방향 상태 메트릭은, 서브-블록에 대해 또는 그 서브-블록의 세그먼트에 대해 거의 동시에 또는 순차적으로 계산될 수도 있다 (예를 들어, 순방향 상태 메트릭이 역방향 상태 메트릭에 후속하거나 그 반대도 가능하다).
예들의 일부가 이들 시퀀스중 다른 시퀀스가 아닌 하나의 시퀀스를 예시하고 있지만, 본 발명으로부터 벗어나지 않고 본 발명이 임의의 이들 구성에 적용될 수도 있다는 것을 이해해야 한다.
도 8 은, 2-스테이지 디코더에서 수신 데이터 블록을 분할하는 예시적인 방법을 도시하는 흐름도이다. 서브-블록 (예를 들어, 슬라이딩 윈도우) 에 대한 길이 L 이 디코딩 시간 제약에 기초하여 선택된다 (802). 이 디코딩 시간 제약은 애플리케이션 데이터 레이트에 기초한다. 애플리케이션 데이터 레이트가 더 높으면 디코딩 요건이 더 고속이고, 이것은, 슬라이딩 윈도우가 더 작은 길이 (L) 를 갖는다는 것을 의미한다. 길이 (L) 는 다양한 구현에서 비트, 심볼, 또는 트렐리스 시간 단계에서 측정될 수도 있다. 다양한 구현에서, 길이 (L) 및/또는 시간 제약은, 사용자에 의해 구성가능한 동작 동안, 또는 통신 디바이스/시스템의 하드웨어 및/또는 소프트웨어의 설계 동안 동적으로 결정될 수도 있다.
데이터 블록이 길이 L 의 2개 이상의 더 작은 서브-블록으로 분할된다 (804). 이 블록은 그것의 트렐리스에서 N 개 시간 단계를 가질 수도 있으며, N/L 개의 서브-블록으로 분할된다. 그 후, 그 서브-블록이 제 1 서브-블록인지가 결정된다 (806). 통상적으로, 제 1 서브-블록은 제로 상태 (기지의 상태) 로부터 시작한다. 제 1 서브-블록이 아닌 경우에, 서브-블록으로부터 최종 k개 시간 단계가 다음의 서브-블록에 추가된다 (808). 따라서, 제 1 서브-블록을 제외하고, 모든 후속하는 서브-블록은 길이 L+k 이며, 각각의 서브-블록은 이전의 서브-블록과 트렐리스의 k개 시간 단계 만큼 오버래핑한다. 그 후, 2 개 이상의 서브-블록 (예를 들어, 2 개 또는 모든 서브-블록 또는 슬라이딩 윈도우) 의 순방향 상태 메트릭이 병렬로 결정된다 (계산된다) (810). 그 후, 제 1 서브-블록 이후에, 각각의 서브-블록에서의 제 1 의 k개 시간 단계의 순방향 상태 메트릭은 폐기된다 (812). 그 후, 선택적인 단계에서, 서브-블록은 2 개 이상의 더 작은 세그먼트로 분할될 수도 있다 (814). 그 후, 2 개 이상의 세그먼트의 역방향 상태 메트릭이 결정된다 (계산된다) (816). 가능도비가 순방향 및 역방향 상태 메트릭에 기초하여 계산된다 (818).
일부 구현에 따르면, 세그먼트에 대한 역방향 상태 메트릭은, 대응하는 서브-블록의 다른 부분에 대한 순방향 상태 메트릭이 결정되는 동안 계산된다. 예를 들어, 순방향 및 역방향 상태 메트릭은 도 6 에서 예시한 바와 유사한 시퀀스로 계산될 수도 있다.
이러한 알고리즘의 메모리 사용은, 역방향 상태 메트릭 계산에만 슬라이딩 윈도우 아키텍처를 적용하는 것의 N/L 배이다. 또한, 서브-블록으로 데이터 블록을 분할하고 순방향 디코딩 경로상에서 병렬 프로세싱하기 때문에, 디코딩 시간이 N/L 배 만큼 감소된다.
따라서, MAP 디코더, 또는 구성 MAP 디코더를 갖는 터보 디코더가 양방향 슬라이딩 윈도우로 구성될 수도 있다. 슬라이딩 윈도우 아키텍처가, N 개의 시간 단계를 갖는 트렐리스를 가지는 인코딩된 데이터 블록의 순방향 상태 메트릭 (FSM) 계산에 적용될 수 있다. 데이터 블록은 더 작은 서브-블록으로 분할되며, 2개 이상의 서브-블록의 순방향 반복이 FSM 을 획득하기 위해 병렬로 수행된다. 각각의 서브-블록은 이전의 서브-블록과 k개 시간 단계 만큼 오버랩하고, 여기서, k 는 0 보다 큰 정수값이다. 이것은, 서브-블록의 시간 단계 k+t 에서 FSM 의 양호한 근사치를 제공한다. 제 1 서브-블록 이외의, 각각의 서브-블록의 제 1 의 k개 시간 단계와 관련된 FSM 은 폐기된다. 또한, 각각의 서브-블록의 역방향 반복이 그 서브-블록에 대한 역방향 상태 메트릭 (RSM) 을 획득하기 위해 수행된다. 그 후, 가능도비가 FSM 및 RSM 에 기초하여 계산된다.
여기에서 설명한 장치들, 방법들, 및 알고리즘들은 터보 또는 콘볼루션 코드를 사용하는 고속 데이터 레이트 시스템에 특히 매우 적합하다. 또한, 디코더 속도가 너무 느린 시스템에 대한 양호한 해결방안이어서, 원하는 데이터 레이트를 달성한다. 더 많은 병렬 디코더를 추가함으로써, 유효 데이터 레이트가 증가된다.
다양한 구현에 따르면, 도 1, 도 2, 도 3, 도 4, 도 5 및/또는 도 6 의 장치는 도 7 및/또는 도 8 에 개시된 방법들 중 하나 이상과 함께 구현될 수도 있다.
도 1, 도 2, 도 3, 도 4, 도 5, 도 6, 도 7 및/또는 도 8 에 예시한 컴포넌트들, 단계들, 및/또는 기능들 중 하나 이상은, 본 발명으로부터 벗어나지 않고 단일 컴포넌트, 단계, 또는 기능으로 재배열 및/또는 결합될 수도 있거나 여러 컴포넌트들, 단계들, 또는 기능들에 포함될 수도 있다. 또한, 추가의 엘리먼트들, 컴포넌트들, 단계들, 및/또는 기능들이 본 발명으로부터 벗어나지 않고 추가될 수도 있다. 도 1, 도 2, 도 3, 도 4, 도 5 및/또는 도 6 에 예시한 장치들, 디바 이스들, 및/또는 컴포넌트들은, 여기에 설명한 방법들, 특징들, 또는 단계들 중 하나 이상을 수행하도록 구성될 수도 있다.
상술한 실시형태들은 단지 예들이며, 본 발명을 제한하는 것으로서 해석되지 않는다. 예를 들어, 디코더가, 인코딩된 데이터 블록을 복수의 서브-블록으로 분할하는 수단으로서, 이러한 인코딩된 데이터 블록은 N 개의 시간 단계를 갖는 트렐리스를 갖고, 여기서 N 은 0 보다 큰 정수인, 분할하는 수단; 2개 이상의 서브-블록에 대한 순방향 상태 메트릭을 병렬로 반복적으로 획득하는 수단; 및 2개 이상의 서브-블록에 대한 역방향 상태 메트릭을 병렬로 반복적으로 획득하는 수단을 포함할 수도 있다. 여기서, 분할하는 수단은 도 9 의 장치 (900) 에 도시된 바와 같은 분할기 모듈 (910) 로 구성될 수도 있다. 장치 (900) 에 도시되어 있는 바와 같이, 순방향 상태 메트릭을 반복적으로 획득하는 수단은, 순방향 상태 메트릭 모듈 (920) 로 구성될 수도 있으며, 역방향 상태 메트릭을 획득하는 수단은 역방향 상태 메트릭 모듈 (930) 로 구성될 수도 있다.
다른 방법으로는, 장치 (900) 의 하나 이상의 엘리먼트는, 그 하나 이상의 엘리먼트의 기능을 제어 및/또는 수행하도록 구성된 프로세서에 의해 구현될 수도 있다. 유사하게는, 장치 (900) 의 하나 이상의 엘리먼트는, 그 하나 이상의 엘리먼트의 기능을 수행하도록 구성된 명령들을 포함하는 머신 판독가능 매체에 의해 구현될 수도 있다.
따라서, 실시형태들의 설명은 예시적인 것이며, 청구항들의 범위를 제한하지 않는다. 이와 같이, 본 발명의 교시는 다른 형태의 장치에 쉽게 적용될 수 있 으며, 다수의 변경물, 변형물, 및 변동물이 당업자에게는 명백할 것이다.

Claims (34)

  1. 슬라이딩 윈도우 아키텍처를 사용하여 일 데이터 블록을 복수의 서브-블록으로 분할하는 블록 분할기;
    상기 블록 분할기에 커플링되어, 상기 복수의 서브-블록을 수신하며, 상기 복수의 서브-블록 중 적어도 2개에 대한 상태 메트릭들의 제 1 세트를 병렬로 결정하는 복수의 병렬 디코더를 포함하는 제 1 디코더; 및
    상기 제 1 디코더에 커플링되어, 상기 제 1 디코더로부터 상기 복수의 서브-블록을 수신하고, 상기 복수의 서브-블록에 대한 상태 메트릭들의 제 2 세트를 계산하는 제 2 디코더를 포함하는, 디코더.
  2. 제 1 항에 있어서,
    상기 제 1 디코더 및 상기 제 2 디코더는, 상기 데이터 블록에서 에러들을 정정하기 위해 최대 사후 확률 (MAP) 알고리즘을 구현하는, 디코더.
  3. 제 1 항에 있어서,
    상기 제 1 디코더는, 상기 데이터 블록의 트렐리스에 대한 순방향 상태 메트릭들을 결정하는, 디코더.
  4. 제 3 항에 있어서,
    각각의 서브-블록은, 이전의 서브-블록과 상기 트렐리스의 k개 시간 단계 (time step) 만큼 오버랩하며, 상기 k 는 0 보다 큰 정수값인, 디코더.
  5. 제 4 항에 있어서,
    제 1 서브-블록 이후의 각각의 서브-블록에 대한 제 1 의 k개 시간 단계와 관련된 상기 순방향 상태 메트릭들은 상기 상태 메트릭들의 제 1 세트로부터 폐기되는, 디코더.
  6. 제 3 항에 있어서,
    상기 제 2 디코더는, 상기 데이터 블록의 상기 트렐리스에 대한 역방향 상태 메트릭들을 결정하는, 디코더.
  7. 제 1 항에 있어서,
    상기 서브-블록의 길이는 디코딩 시간 제약에 의해 결정되는, 디코더.
  8. 제 1 항에 있어서,
    상기 서브-블록의 수는, 상기 제 1 디코더에서의 병렬 디코더의 수를 결정하는, 디코더.
  9. 제 1 항에 있어서,
    상기 데이터 블록은 터보 코드로 인코딩되는, 디코더.
  10. 제 1 항에 있어서,
    상기 제 1 디코더에서의 상기 복수의 병렬 디코더는, 각각의 서브-블록에 대한 순방향 상태 메트릭들을 계산하는 반복적 디코더인, 디코더.
  11. 제 1 항에 있어서,
    상기 제 2 디코더는, 상기 제 1 디코더로부터 수신된 각각의 서브-블록을 복수의 더 작은 세그먼트로 더 분할하며, 상기 복수의 더 작은 세그먼트에 대해 슬라이딩 윈도우 아키텍처를 사용하여 상기 상태 메트릭들의 제 2 세트를 계산하는, 디코더.
  12. 제 1 항에 있어서,
    상기 상태 메트릭들의 제 1 세트를 저장하기 위한 저장 디바이스를 더 포함하는, 디코더.
  13. 제 12 항에 있어서,
    각각의 서브-블록은 복수의 세그먼트를 포함하며,
    현재의 세그먼트 및 이전의 세그먼트에 대한 상기 상태 메트릭들의 제 1 세트는 동시에 상기 저장 디바이스에 저장되는, 디코더.
  14. 제 13 항에 있어서,
    일 세그먼트에 대한 상기 상태 메트릭들의 제 1 세트는, 상기 세그먼트에 대한 가능도비 (likelihood ratio) 가 계산되었으면 상기 저장 디바이스로부터 폐기되는, 디코더.
  15. 제 1 항에 있어서,
    상기 상태 메트릭들의 제 1 세트 및 상기 상태 메트릭들의 제 2 세트는, 상기 데이터 블록에서 데이터에 대한 가능도비를 계산하는데 사용되는, 디코더.
  16. 제 1 항에 있어서,
    상기 제 2 디코더는, 복수의 병렬 디코더를 포함하며,
    상기 제 2 디코더에서의 각각의 병렬 디코더는 상기 제 1 디코더에서의 상기 복수의 병렬 디코더 중 하나의 디코더에 대응하는, 디코더.
  17. 제 1 항에 있어서,
    각각의 서브-블록은 복수의 세그먼트를 포함하며,
    상기 제 2 디코더는, 상기 제 1 디코더가 일 세그먼트에 대한 상기 상태 메트릭들의 제 1 세트를 계산하면 상기 세그먼트에 대한 상기 상태 메트릭들의 제 2 세트를 계산하도록 구성되는, 디코더.
  18. 인코딩된 데이터 블록에서 정보를 반복적으로 디코딩하는 방법으로서,
    상기 인코딩된 데이터 블록을 복수의 더 작은 서브-블록으로 분할하는 단계로서, 각각의 서브-블록은 복수의 더 작은 세그먼트를 포함하는, 상기 분할하는 단계;
    상기 서브-블록 중 2 개 이상에 대한 순방향 상태 메트릭들을 병렬로 획득하는 단계; 및
    상기 순방향 상태 메트릭들이 일 세그먼트에 대해 획득되었으면, 상기 세그먼트에 대한 역방향 상태 메트릭들을 획득하는 단계를 포함하는, 디코딩 방법.
  19. 제 18 항에 있어서,
    일 서브-블록이, 기지의 2진 상태를 갖는 제 1 시간 단계로 시작하는, 디코딩 방법.
  20. 제 18 항에 있어서,
    각각의 서브-블록이 상기 인코딩된 데이터 블록의 트렐리스의 k개 시간 단계 만큼 이전의 서브-블록과 오버랩하도록, 상기 인코딩된 데이터 블록을 분할하는데 있어서 슬라이딩 윈도우 아키텍처가 이용되며, 상기 k 는 0 보다 큰 정수값인, 디코딩 방법.
  21. 제 20 항에 있어서,
    제 1 서브-블록 이후의 각각의 서브-블록의 제 1 의 k개 시간 단계와 관련된 상기 순방향 상태 메트릭들을 폐기하는 단계를 더 포함하는, 디코딩 방법.
  22. 제 18 항에 있어서,
    N개의 시간 단계를 갖는 트렐리스를 가지는 정보의 상기 인코딩된 데이터 블록을 수신하는 단계;
    상기 인코딩된 데이터 블록을 N/L 개의 서브-블록으로 분할하는 단계로서, 상기 L 은 0 보다 큰 정수인, 상기 분할하는 단계; 및
    상기 N/L 개의 서브-블록에 대한 순방향 상태 메트릭들을 병렬로 계산하는 단계를 더 포함하는, 디코딩 방법.
  23. 제 18 항에 있어서,
    상태 메트릭들의 제 1 세트 및 상태 메트릭들의 제 2 세트에 기초하여 상기 인코딩된 데이터 블록에서의 데이터에 대한 가능도비를 획득하는 단계를 더 포함하는, 디코딩 방법.
  24. 제 18 항에 있어서,
    일 서브-블록의 상기 순방향 상태 메트릭들을 획득하는 것은, 균일하게 가능성 있는 상태 메트릭들을 갖는 미지의 상태에서 시작하는, 디코딩 방법.
  25. 제 18 항에 있어서,
    각각의 서브-블록의 제 1 세그먼트에 대한 상태 메트릭들의 제 1 세트를 저장하는 단계;
    상기 제 1 세그먼트에 대한 상기 상태 메트릭들의 제 1 세트 및 상태 메트릭들의 제 2 세트에 기초하여 상기 제 1 세그먼트에 대한 가능도비를 획득하는 단계; 및
    상기 제 1 세그먼트에 대한 상기 가능도비가 획득되면, 각각의 서브-블록의 상기 제 1 세그먼트에 대한 상기 상태 메트릭들의 제 1 세트를 폐기하는 단계를 더 포함하는, 디코딩 방법.
  26. 인코딩된 데이터 블록을 복수의 서브-블록으로 분할하는 수단으로서, 상기 인코딩된 데이터 블록은 N개의 시간 단계를 갖는 트렐리스를 가지고, 상기 N 은 0 보다 큰 정수인, 상기 분할 수단;
    상기 서브-블록 중 2개 이상에 대한 순방향 상태 메트릭들을 병렬로 반복적으로 획득하는 수단; 및
    상기 서브-블록 중 2개 이상에 대한 역방향 상태 메트릭들을 병렬로 반복적으로 획득하는 수단을 포함하는, 디코더.
  27. 제 26 항에 있어서,
    각각의 서브-블록은 상기 인코딩된 데이터 블록의 트렐리스의 k개 시간 단계 만큼 이전의 서브-블록과 오버랩하고, 상기 k 는 0 보다 큰 정수값이며,
    제 1 서브-블록 이후에, 각각의 서브-블록의 제 1 의 k개 시간 단계와 관련된 상기 순방향 상태 메트릭들은 폐기되는, 디코더.
  28. 제 26 항에 있어서,
    각각의 서브-블록은 복수의 세그먼트를 포함하며,
    상기 역방향 상태 메트릭들은, 일 세그먼트에 대한 상기 순방향 상태 메트릭들이 획득되었으면 상기 세그먼트에 대해 획득되는, 디코더.
  29. 제 26 항에 있어서,
    상기 순방향 상태 메트릭들 및 상기 역방향 상태 메트릭들에 기초하여 일 세그먼트에 대한 가능도비를 획득하는 수단을 더 포함하는, 디코더.
  30. 2 보다 큰 양의 정수인 N 개의 시간 단계를 갖는 트렐리스를 가지는 인코딩된 데이터 블록을 수신하며; 그리고
    상기 인코딩된 데이터 블록을 복수의 서브-블록으로 분할하고, 상기 서브-블록 중 2개 이상에 대한 순방향 상태 메트릭들을 병렬로 획득함으로써 상기 인코딩된 데이터 블록을 반복적으로 디코딩하는 것을 제어하도록 구성된, 프로세싱 디바이스.
  31. 제 30 항에 있어서,
    상기 반복적으로 디코딩하는 것은, 상기 서브-블록 중 2개 이상에 대한 역방향 상태 메트릭들을 획득하는 것을 더 포함하는, 프로세싱 디바이스.
  32. 제 31 항에 있어서,
    각각의 서브-블록은 복수의 세그먼트를 포함하며,
    역방향 상태 메트릭들은, 일 세그먼트에 대한 상기 순방향 상태 메트릭들이 획득되었으면 상기 세그먼트에 대해 획득되는, 프로세싱 디바이스.
  33. 제 30 항에 있어서,
    제 1 서브-블록 이후에, 각각의 서브-블록은 상기 트렐리스의 k개 시간 단계 만큼 이전의 서브-블록과 오버랩하고, 상기 k 는 0 보다 큰 정수값이며,
    상기 프로세싱 디바이스는, 제 1 서브-블록 이후의 각각의 서브-블록의 제 1 의 k개 시간 단계와 관련된 상기 순방향 상태 메트릭들을 폐기하도록 또한 구성되며, 상기 k 는 0 보다 큰 정수인, 프로세싱 디바이스.
  34. 인코딩된 데이터 블록에서 정보를 반복적으로 디코딩하는 명령들을 포함하는 머신 판독가능 매체로서,
    상기 명령들은,
    각각이 복수의 더 작은 세그먼트를 포함하는 복수의 더 작은 서브-블록으로 상기 인코딩된 데이터 블록을 분할하고;
    상기 서브-블록 중 2개 이상에 대한 순방향 상태 메트릭들을 병렬로 획득하며;
    상기 순방향 상태 메트릭들이 일 세그먼트에 대해 획득되었으면, 상기 세그먼트에 대한 역방향 상태 메트릭들을 획득하도록 구성되는, 머신 판독가능 매체.
KR1020087021060A 2006-01-27 2007-01-29 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더 KR20080098391A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US76276406P 2006-01-27 2006-01-27
US60/762,764 2006-01-27
US11/441,653 US7929646B2 (en) 2006-01-27 2006-05-25 Map decoder with bidirectional sliding window architecture
US11/441,653 2006-05-25

Publications (1)

Publication Number Publication Date
KR20080098391A true KR20080098391A (ko) 2008-11-07

Family

ID=37903512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087021060A KR20080098391A (ko) 2006-01-27 2007-01-29 양방향 슬라이딩 윈도우 아키텍처를 갖는 map 디코더

Country Status (6)

Country Link
US (1) US7929646B2 (ko)
EP (1) EP1977525A1 (ko)
JP (1) JP2009525009A (ko)
KR (1) KR20080098391A (ko)
TW (1) TW200737743A (ko)
WO (1) WO2007087645A1 (ko)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009060455A (ja) * 2007-08-31 2009-03-19 Nec Corp スライディングウィンドウターボ復号処理装置とその方法
US8358713B2 (en) * 2007-09-10 2013-01-22 Sarath Babu Govindarajulu High throughput and low latency map decoder
WO2009063328A2 (en) * 2007-10-17 2009-05-22 Marvell World Trade Ltd. State metrics memory reduction in a turbo decoder implementation
CN101442321B (zh) * 2007-12-27 2011-12-21 美商威睿电通公司 涡轮码的并行译码以及数据处理方法和装置
GB0804206D0 (en) * 2008-03-06 2008-04-16 Altera Corp Resource sharing in decoder architectures
US8171384B2 (en) * 2008-06-27 2012-05-01 Freescale Semiconductor, Inc. Device having turbo decoding capabilities and a method for turbo decoding
KR20110067131A (ko) * 2008-09-17 2011-06-21 엔터트레이너 오와이 스포츠 대상물체의 속도를 결정하는 방법 및 시스템
US8578255B1 (en) * 2008-12-19 2013-11-05 Altera Corporation Priming of metrics used by convolutional decoders
JP5406369B2 (ja) * 2009-06-17 2014-02-05 コーヒレント・ロジックス・インコーポレーテッド トレリスベースの方法およびそのシステム
KR101225016B1 (ko) * 2009-06-18 2013-01-22 지티이 코포레이션 Lte에서 병렬 터보 디코딩의 방법 및 장치
US8924632B2 (en) * 2011-09-16 2014-12-30 Apple Inc. Faster tree flattening for a system having non-volatile memory
CN102710366B (zh) * 2012-03-21 2016-06-22 华为技术有限公司 数据译码的方法及装置
CN105306076A (zh) * 2014-06-30 2016-02-03 深圳市中兴微电子技术有限公司 一种基于MAP算法的Turbo译码方法及装置
JP6144846B2 (ja) * 2014-09-29 2017-06-07 株式会社日立国際電気 無線通信装置及び無線通信システム
TWI650954B (zh) * 2016-10-28 2019-02-11 晨星半導體股份有限公司 用於通訊系統中迴旋碼解碼裝置的解碼方法及相關的判斷模組
CN108111250A (zh) * 2016-11-25 2018-06-01 晨星半导体股份有限公司 用于通信系统中回旋码解码装置的解码方法及相关的判断模块
CN111224673A (zh) * 2018-11-26 2020-06-02 中兴通讯股份有限公司 译码方法、装置及译码器
WO2022020336A1 (en) * 2020-07-20 2022-01-27 Intel Corporation Methods and apparatus for performance scaling with parallel processing of sliding window management on multi-core architecture
CN114323037B (zh) * 2021-12-29 2024-04-12 高德软件有限公司 路段位置匹配、导航方法、装置以及存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6754290B1 (en) 1999-03-31 2004-06-22 Qualcomm Incorporated Highly parallel map decoder
US7096412B2 (en) * 2000-06-19 2006-08-22 Trellisware Technologies, Inc. Method for iterative and non-iterative data detection using reduced-state soft-input/soft-output algorithms for complexity reduction
US6813742B2 (en) * 2001-01-02 2004-11-02 Icomm Technologies, Inc. High speed turbo codes decoder for 3G using pipelined SISO log-map decoders architecture
FR2822316B1 (fr) * 2001-03-19 2003-05-02 Mitsubishi Electric Inf Tech Procede d'optimisation, sous contrainte de ressoureces, de la taille de blocs de donnees codees
US7200799B2 (en) * 2001-04-30 2007-04-03 Regents Of The University Of Minnesota Area efficient parallel turbo decoding
US7587004B2 (en) * 2002-09-18 2009-09-08 St-Ericsson Sa Method for decoding data using windows of data
US7055102B2 (en) * 2002-12-06 2006-05-30 Sandbridge Technologies, Inc. Turbo decoder using parallel processing
JP4227481B2 (ja) * 2003-07-11 2009-02-18 パナソニック株式会社 復号装置および復号方法
JP2005109771A (ja) 2003-09-30 2005-04-21 Fujitsu Ltd 最大事後確率復号方法及び装置

Also Published As

Publication number Publication date
US7929646B2 (en) 2011-04-19
WO2007087645A1 (en) 2007-08-02
TW200737743A (en) 2007-10-01
US20070177696A1 (en) 2007-08-02
JP2009525009A (ja) 2009-07-02
EP1977525A1 (en) 2008-10-08

Similar Documents

Publication Publication Date Title
US7929646B2 (en) Map decoder with bidirectional sliding window architecture
US7191377B2 (en) Combined turbo-code/convolutional code decoder, in particular for mobile radio systems
KR101323444B1 (ko) 반복적 디코더 및 반복적 디코딩 방법
JP4778441B2 (ja) サブブロック処理及びサブブロックをベースとする停止基準を伴うsiso復号器
JP4227481B2 (ja) 復号装置および復号方法
JP2006121686A (ja) 低密度パリティ検査コードを効率的に復号する方法及び装置
US8035537B2 (en) Methods and apparatus for programmable decoding of a plurality of code types
US7020214B2 (en) Method and apparatus for path metric processing in telecommunications systems
EP1471677A1 (en) Method of blindly detecting a transport format of an incident convolutional encoded signal, and corresponding convolutional code decoder
US20130007568A1 (en) Error correcting code decoding device, error correcting code decoding method and error correcting code decoding program
KR101051933B1 (ko) 트렐리스의 버터플라이 구조를 이용한 맵 디코딩을 위한메트릭 계산
KR100390416B1 (ko) 터보 디코딩 방법
US7925964B2 (en) High-throughput memory-efficient BI-SOVA decoder architecture
US7979781B2 (en) Method and system for performing Viterbi decoding using a reduced trellis memory
KR19990081470A (ko) 터보복호기의 반복복호 종료 방법 및 그 복호기
JP2004349901A (ja) ターボ復号器及びそれに用いるダイナミック復号方法
US7178090B2 (en) Error correction code decoding device
CN101411071A (zh) 具有双向滑动窗口体系结构的map译码器
US7096410B2 (en) Turbo-code decoding using variably set learning interval and sliding window
KR101066287B1 (ko) 이동통신시스템에서 맵 방식을 이용하여 디코딩을 수행하는 장치 및 방법
Madhukumar et al. Application of Fixed Point Turbo Decoding Algorithm for Throughput Enhancement of SISO Parallel Advanced LTE Turbo Decoders.
KR100850744B1 (ko) Llr 계산 장치 및 계산 방법
KR100388780B1 (ko) 이동통신 기지국의 디코더에서 메모리 용량 축소 방법
KR20020066556A (ko) 터보 코드 복호화 장치 및 방법
JP2007006541A (ja) 誤り訂正符号復号装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
NORF Unpaid initial registration fee