KR20110000747A - 복수의 디코더들, 제어기 및 태스크 명령들을 이용하는 효율적인 병렬 서브-패킷 디코딩 - Google Patents

복수의 디코더들, 제어기 및 태스크 명령들을 이용하는 효율적인 병렬 서브-패킷 디코딩 Download PDF

Info

Publication number
KR20110000747A
KR20110000747A KR1020107024595A KR20107024595A KR20110000747A KR 20110000747 A KR20110000747 A KR 20110000747A KR 1020107024595 A KR1020107024595 A KR 1020107024595A KR 20107024595 A KR20107024595 A KR 20107024595A KR 20110000747 A KR20110000747 A KR 20110000747A
Authority
KR
South Korea
Prior art keywords
packet
sub
packets
decoder
decoders
Prior art date
Application number
KR1020107024595A
Other languages
English (en)
Other versions
KR101141818B1 (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 KR20110000747A publication Critical patent/KR20110000747A/ko
Application granted granted Critical
Publication of KR101141818B1 publication Critical patent/KR101141818B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • 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/29Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and 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
    • 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
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0052Realisations of complexity reduction techniques, e.g. pipelining or use of look-up tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

수신기 내에(예컨대, 무선 통신 디바이스 내에) 구성가능한 디코더가 다수의 디코더들을 포함한다. 일 모드에서, 복수의 디코더들은 패킷의 상이한 서브-패킷들을 디코딩할 수 없다. 하나의 디코더가 패킷 중 자신에 할당된 마지막 서브-패킷의 디코딩을 완료한 경우, 그 디코더는 패킷 완료(done) 표시를 생성한다. 제어 회로는 패킷 완료 표시들을 수신하고, 모든 디코더들이 패킷 완료 표시들을 생성한 경우, 제어 회로는 동작을 개시한다. 일 예에서, 동작은 프로세서의 인터럽팅(interrupt)이다. 프로세서는 제어 회로로부터 상태 정보를 판독함으로써 응답하고, 그에 의해 인터럽트를 리셋한다. 패킷-종료 마커들은 패킷 완료 표시들을 생성하고 EOP 인터럽트들을 생성할 수 없다. 유사하게, 그룹 종료 마커들은 그룹 완료 표시들을 생성하고 EOG 인터럽트들을 생성할 수 없다. 디코더 블록은 하나 또는 복수의 디코더들을 이용하여 패킷의 서브-패킷을 프로세싱하도록 구성가능하다.

Description

복수의 디코더들, 제어기 및 태스크 명령들을 이용하는 효율적인 병렬 서브-패킷 디코딩{EFFICIENT PARALLEL SUB-PACKET DECODING USING MULTIPLE DECODERS, CONTROLLER AND TASK INSTRUCTIONS}
본 출원은 통신 시스템들에서의 디코딩에 관한 것이다.
본 출원은 출원일은 2008년 5월 1일인 35 U.S.C §119의 미국 특허 가출원 제61/041,558호에 우선권의 이익을 주장하며, 상기 출원은 참조로써 여기서 통합된다.
도 1(종래 기술)은 패킷들을 통신하는 일 유형의 종래의 무선 통신 시스템의 다이어그램이다. 데이터의 패킷들(1)은 제 1 무선 통신 디바이스(2)로부터 제 2 무선 통신 디바이스(3)로 통신될 수 있다. 통신 디바이스(3)는 안테나(4), RF 트랜시버 집적 회로(50) 및 디지털 기저대역 집적 회로(6)를 포함한다. 디지털 기저대역 집적 회로(6)는 아날로그-대-디지털 컨버터(ADC)(7), 수신 경로(8), 디지털-대-아날로그 컨버터(DAC)(9), 송신 경로(10), 인터럽트 제어기 메커니즘(11) 및 프로세서(12)를 포함하는 다수의 부분들을 포함한다. 인입하는 패킷들(1)은 안테나(4)에서 수신되고, RF 트랜시버(5), ADC(70)를 통해 수신 경로(8)로 패스한다. 수신 경로(8) 내에서, 패킷들은 고속 푸리에 변환(FFT) 프로세싱 블록(13), 복조기 블록(14), 및 디코더 블록(15)을 포함하는 다수의 프로세싱 블록들을 통해 패스한다. 패킷들은 종종 완전한 패킷들로서 통신되지 않고, 패킷들의 페이로드는 부분들로 분리된다. 각각의 부분은 "서브-패킷"로 지칭될 수 있다. 각각의 서브-패킷은 서브-패킷의 데이터 페이로드가 옳게 수신되었는지 여부를 결정할 수 없는 자신의 사이클릭 리던던시 체크(CRC) 값을 가질 수 있다. 모든 서브-패킷들의 데이터 페이로드들은 차례로 어셈블될 수 있고, 어셈블된 페이로드는 다른 CRC 값을 사용하여 체크될 수 있다. 도 1의 예에서, CRC 값들의 체크는 디코더 블록(15)에서 발생한다.
도 2(종래 기술)는 도 1의 디코더 블록(15)에서 이러한 서브-패킷들(SP1-SP5)의 세트의 프로세싱의 타임라인을 도시한다. 각각의 서브-패킷은 도시된 것처럼 자신의 CRC 값을 가진다. 만약 모든 서브-패킷들이 CRC 값들을 사용하여 디코더 블록(15)에서 결정되는 것으로 적절히 수신되고, 만약 전체 패킷 데이터 페이로드가 디코더 블록(15)에 의해 적절히 수신되었다고 결정되면, 디코더 블록(15)은 프로세서(12)를 인터럽트한다. 이러한 인터럽트는 예컨대 차례로 종래의 방식으로 프로세서(12)를 인터럽트하는 제어기(11)를 인터럽트하기 위해 신호 컨덕터(16)를 통해 통신될 수 있다. 인터럽트되면, 프로세서(12)는 적절하게 데이터의 수신된 패킷을 다룬다. 프로세서를 인터럽트하는 것은 다른 태스크들을 수행하는 것을 느리게 하기 때문에, 프로세서를 자주 인터럽트하는 것은 일반적으로 바람직하지 않다. 따라서, 도 2는 서브 패킷들의 시퀀스(SP1-SP5)가 수신되었더라도 오직 하나의 인터럽트가 발생한 것만을 도시한다. 인터럽트는 수직 화살표(17)에 의해 표현된다. 시간에 걸쳐, 더 높은 데이터 스루풋 레이트들이 무선 통신 시스템들에서 요구되어 왔다. 이러한 더 높은 데이터 스루풋 레이트들을 지원하는 것은 디바이스들(2 및 3)과 같은 무선 통신 디바이스들의 회로들의 다양한 부분들의 프로세싱 성능들에 부담을 줬다. 해결책이 요구된다.
수신기 내의(예컨대, 무선 통신 디바이스의 수신기 내의) 구성가능한 디코더 블록은 복수의 디코더들을 포함한다. 디코더들은 예컨대 터보 인코더들을 포함할 수 있다. 일 구성가능한 모드에서, 디코더들은 제 1 패킷의 상이한 서브-패킷들을 디코딩하기 위해 사용된다. 디코더들 중 하나가 제 1 패킷 중 자신에게 할당된 마지막 서브-패킷의 디코딩을 완료하면, 그 디코더는 패킷 완료 표시(packet done indication)를 생성하지만, 중단 (halt)없이 후속 패킷의 다른 서브-패킷들의 디코딩을 계속한다. 복수의 디코더들은 이러한 방식으로 임의의 디코더들이 중단하지 않고 제 1 패킷의 상이한 서브-패킷들의 디코딩을 협동한다. 제어 회로는 제 1 패킷 상에서 작동하는 다양한 디코더들로부터 패킷 완료 표시들을 수신하고, 오직 모든 디코더들이 패킷 완료 표시들을 생성한 이후에, 제어 회로는 동작을 개시한다. 일 예에서, 동작은 프로세서에 공급된 인터럽트 신호의 어서팅(assert)이다. 프로세서는 제어 회로로부터 상태 정보(예컨대, 제 1 패킷의 각각의 서브-패킷에 대한 사이클릭 리던던시 체크(CRC) 패스/패일(pass/fail) 정보)를 판독함으로써 반응한다. 판독은 언어서티된 상태로 인터럽트 신호를 리셋하여, 제어 회로가 프로세서에게 다른 조건을 경고하기 위해 다른 인터럽트 신호를 생성할 수 있도록 한다.
디코더 블록 내에서, 개별적인 디코더는 태스크 명령의 다양한 필드들에서 소스 정보를 사용하여 LLR 버퍼에서 특정 소스 위치들에 저장된 정보의 서브-패킷을 디코딩하도록 할 수 있다. 태스크 명령은 또한 디코드 동작의 결과들이 재 기록되도록하는, 디코드 출력 버퍼에서 목적지 위치들을 지정한다. 태스크 명령은 또한 연관된 서브-패킷이 패킷의 마지막 서브-패킷(지정된 디코더에 의해 디코딩될 패킷들의 그룹 중 마지막 서브-패킷들)인지 아닌지 여부를 표시하는 패킷-종료(EOP; end-of-packet) 마커를 포함할 수 있다. 태스크 명령은 또한 연관된 서브-패킷이 그룹의 마지막 서브-패킷(지정된 디코더에 의해 디코딩될 패킷들의 그룹의 마지막 서브-패킷들)인지 아닌지 여부를 표시하는 그룹 종료(EOG; end-of-group)를 포함할 수 있다. 일반적으로 디코더는 이러한 태스크 명령들의 시퀀스를 실행하여, 서브-패킷들의 대응하는 시퀀스가 태스크 명령들에 의해 지정되는 것처럼 디코더에 의해 디코딩되도록 할 것이다. 디코더들은 제어 회로로 패킷 완료 표시들 및/또는 그룹 완료 표시들을 제공하기 위해 EOP 및/또는 EOG(end-of-group) 마커들을 사용한다. 제어 회로는, 디코더 블록의 구성 모드에 의해 결정되는 것처럼 인터럽트 신호들을 생성하고 다른 동작들을 취하기 위해, 차례로 EOP 및/또는 EOG 표시들을 사용한다. 디코더 블록은 태스크 명령들의 사용을 통해 프로세서에 의해 구성가능하여, 디코더 블록이 싱글 디코더를 사용하거나 복수의 디코더들을 사용하여 패킷의 서브-패킷들을 프로세싱하도록 한다. 일 예에서, 디코더는 각각의 서브-패킷의 디코딩의 종료에서 인터럽트 신호를 생성하고 그리고/또는 특정 패킷의 디코딩의 종료에서 인터럽트 신호를 생성하고 그리고/또는 패킷들의 전체 그룹의 디코딩의 종료에서 인터럽트 신호를 생성하도록 구성가능하다.
앞선 설명은 일 요약이며, 따라서 필요에 의해 상세한 설명의 간략화들 일반화들 그리고 생략들을 포함하고; 따라서 당해 기술 분야에 속한 통상의 지식을 가진 자는 이러한 요약이 단지 예시적인 것이고, 임의의 방식으로 발명을 제한하고자 할 목적은 아님을 인식할 것이다. 청구범위에 의해서만 정의되는, 여기서 설명된 디바이스들 및/또는 프로세스들의 다른 양상들, 독창적인 특징들 및 장점들은 여기서 설명되는 비-제한적인 상세한 설명에서 명백해질 것이다.
도 1(종래 기술)은 무선 통신 디바이스의 수신기에서 수행되는 디코딩 동작을 설명하는 단순한 블록도이다.
도 2(종래 기술)는 도 1의 수신기에 의해 디코딩되는 서브-패킷들의 시퀀스를 설명하는 다이어그램이다.
도 3은 하나의 새로운 태양에 따른 이동 통신 디바이스의 매우 단순한 하이 레벨 블록도이다.
도 4는 도 3의 이동 통신 디바이스의 RF 트랜스시버 집적 회로(102)의 더 상세한 블록도이다.
도 5는 도 3의 이동 통신 디바이스의 디지털 기저대역 집적 회로(103)의 더 상세한 다이어그램이다.
도 6은 도 5의 DDE(demap/de-interleave/decode) WCSMSC(Wireless Communication System Modem Sub-Circuit)(125)의 더 상세한 다이어그램이다.
도 7은 도 6의 DDE WCSMSC(125)의 디코더 블록(202)의 더 상세한 다이어그램이다.
도 8은 DDE 실행 태스크 명령의 다이어그램이다.
도 9는 도 8의 DDE 실행 태스크 명령의 필드들이 도 6의 LLR 버퍼(129)에서 서브-패킷의 위치를 식별하는 방법을 나타내는 다이어그램이다.
도 10은 한 그룹의 패킷들을 설명하는 다이어그램이다. 이 그룹의 각각의 패킷은 복수의 서브-패킷들을 포함한다.
도 11은 제 1 디코더 DECODER#1가 그룹의 할당된 서브-패킷들을 디코딩하는 것을 완료하기 전에 제 2 디코더 DECODER#2가 도 10의 그룹의 할당된 서브-패킷들을 디코딩하는 것을 완료하는 제 1 시나리오를 설명하는 다이어그램이다.
도 12는 제 2 디코더 DECODER#2가 그룹의 할당된 서브-패킷들을 디코딩하는 것을 완료하기 전에 제 1 디코더 DECODER#1가 도 10의 그룹의 할당된 서브-패킷들을 디코딩하는 것을 완료하는 제 2 시나리오를 설명하는 다이어그램이다.
도 13은 2개의 협력 디코더들의 중단 없이, 제 1 패킷의 끝에서 2 개의 EOP(end-of-packet) 인터럽트를 발생시키지 않고, 그리고 그룹의 끝에서 2 개의 EOG(end-of-group) 인터럽트를 발생시키지 않고, 새로운 EOP 및 EOG 마커가 도 5의 프로세싱 회로(115)로 EOP 인터럽트 신호를 발생시키기 위해 태스크 명령에서 어떻게 사용되는 지를 설명하는 다이어그램이다. EOG에서, 단일 EOG 인터럽트가 발생되지만, 그러나 그룹의 할당된 서브-패킷들을 처리하는 것을 완료하기 위해 제 1 디코더를 중단한다.
도 14는 새로운 EOP 및 EOG 마커 및 태스크 명령들이 제 1 디코더 DECODER#1가 처음으로 완료하는 제 2 시나리오에서 원하는 EOP 및 EOG 인터럽트를 발생시키는데 어떻게 사용되는 지를 설명하는 다이어그램이다.
도 15는 하나의 새로운 태양에 따른 방법의 간단한 흐름도이다.
도 3은 무선 통신 디바이스(100)의 일 예에 관한 간단한 하이 레벨 블록도이다. 무선 통신 디바이스(100)는, 설명되지 않은 다른 부분들보다, 안테나(101), RF(Radio Frequency) 집적 회로(102), 및 디지털 기저대역 집적 회로(103)를 포함한다.
도 4는 도 3의 안테나(101) 및 RF 트랜스시버 집적 회로(102)에 관한 더 상세한 블록도이다. RF 트랜스시버 집적 회로(102)는 수신 체인(104) 및 송신 체인(105)을 포함한다. 인입하는 송신(106)은 안테나(101) 상에서 수신되며, 듀플렉서(107) 및 매칭 네트워크(108)를 통해 수신 체인(104)으로 이동한다. 수신 체인(104)에서 주파수에서의 다운컨버팅(downconverted) 이후, 수신된 신호는 또다른 프로세싱을 위해 디지털 기저대역 집적 회로(103)에서 ADC(Analog-to-Digital Converter)(109)로 이동한다. 무선 통신 디바이스(100)가 하나의 송신을 형성한다면, 이때 디지털 정보는 디지털 기저대역 집적 회로(103)에서 DAC(Digital-to-Analog Converter)(110)에 의해 아날로그 형태로 변환된다. 결과로 생긴 아날로그 신호는 RF 트랜스시버 집적 회로(102)의 송신 체인(105)에 의해 주파수에서 있어 변환되지 않으며, 결과로 생긴 RF 신호는 전력 증폭기(PA)(111)에 의해 증폭된다. 증폭된 신호는 인출하는 송신(112)으로서 송신을 위해 듀플렉서(107)를 관통하여 안테나(101)로 이동한다.
도 5는 도 3의 디지털 기저대역 집적 회로(103)의 더 상세한 블록도이다. 디지털 기저대역 집적 회로(103)는, 설명되지 않은 다른 부분들 보다도, ADC(109), 수신 채널(113), 송신 채널(114), DAC(110), 프로세싱 회로(115), 다수의 메모리(116), 다수의 고속 메모리(117), 데이터 이동 엔진(data mover engine)(118), 제 1 버스(119), 제 2 버스(120), 및 월 클록 타이머(wall clock timer)(121)을 포함한다. 차례로 수신 체인(113)은 여기서 WCSMSCs(Wireless Communication System Modem Sub-circuits)로 언급되어 있는, 프로세싱 블록들(122-125)의 한 세트를 포함한다. WCSMSCs는 인입하는 데이터의 스트림을 처리하기 위해 체인으로 구성되어 있다. 이들 WCSMSCs는 전단 WCSMSC(122), FFT(Fast Fourier Transform) WCSMSC(123), 변조 WCSMSC(124), 및 DDE WCSMSC(125)를 포함한다. DDE WCSMSC(125)는 차례로 더 상세히 이하 설명되는 바와 같이, 디맵퍼(demapper)부, LLR 버퍼(129), 및 디코더 블록을 포함한다. 수신 채널(113)의 다양한 WCSMSC를 관통하는 데이터 흐름은 버퍼(126-130)에 의해 버퍼링된다. 수신 채널 데이터의 일반적 경로는 회로들(109, 122, 126, 123, 127, 124, 128, 125, 130)을 통해 제 2 버스(120)로 도 5에서 좌측에서 우측을 향한다. 마찬가지로, 송신 채널(114)은 대응하는 세트의 WCSMSC(131-134) 및 버퍼(135-138)를 포함한다. 송신 채널 데이터의 일반적 경로는 제 2 버스(120)로부터, 135, 131, 136, 132, 137, 133, 138, 134, 및 110으로 도 5에서 우측에서 좌측을 향한다.
프로세싱 회로(115)는 복수의 프로세서를 포함할 수 있다. 프로세싱 회로(115)는 메모리(116)에 저장된 프로세서-실행가능 명령의 프로그램(139)을 실행한다. 고속 메모리(117), 제 1 버스(119) 및 프로세싱 회로(115)는 함께 TCM(Tightly Coupled Memory) 시스템을 형성한다. 프로세싱 회로(115)는 제 1 버스(119)를 가로질러 고속 메모리(117)로부터 판독되고 기록될 수 있다.
이 예에서, 프로세싱 회로(115)는 "태스크 리스트(task list)"라 불리는 것을 사용하여 수신 및 송신 채널의 다양한 서브-회로들(122-125 및 131-134)를 제어한다. 태스크 리스트는 하나 이상의 태스크 명령을 포함한다. 설명에서, 메모리(117)에 저장되어 있는 4 개의 태스크 리스트(TL1, TL2, TL3, 및 TL4)가 도시되어 있다. 태스크 리스트(TL1)는 송신 채널(114)용 태스크 명령들을 포함한다. 태스크 리스트(TL2)는 FFT WCSMSC(123)용 태스크 명령들을 포함한다. 태스크 리스트(TL3)는 DEMOD WCSMSC(125)용 태스크 명령들을 포함한다. 태스크 리스트(TL4)는 DDE WCSMSC(125)용 태스크 명령들을 포함한다. 각각의 태스크 리스트는 연관된 서브-회로에 의해 실행을 위한 태스크 명령들의 시퀀스를 포함한다. 서브-회로는 회로의 데이터 프로세싱 동작을 수행하기 위한 다수의 전용 기능 회로소자뿐만 아니라 제 2 버스(120)에 결합되어 있는 태스크 매니저 회로를 포함한다. 태스크 매니저는 연관된 태스크 리스트로부터 태스크 명령을 판독하며, 연산코드(opcode) 및 태스크 명령이 다양한 필드들을 인터럽트하며, 이후 태스크 명령에 의해 표시된 바와 같이 동작을 수행하기 위해 전용 기능 회로소자의 연관된 하드웨어를 제어한다. 특정 서브-회로에 대한 태스크 리스트로 적당한 태스크 명령들을 위치함으로써, 프로세싱 회로(115)는 프로세싱 회로에 의해 구체화된 특정 동작을 수행하기 위해 특정 서브-회로의 전용 기능 회로소자를 유발할 수 있다. 프로세싱 회로(115)는 이들 태스크 리스트로 태스크 명령들을 기록하고, 이들 태스크 리스트를 수정하며, 태스크 리스트들을 삭제하고, 다른 방법으로 제 1 버스(119)를 경유하여 원하는 바와 같이 태스크 리스트를 유지할 수 있다. 각각의 태스크 리스트는 순환 버퍼에서 메모리(117)에 유지된다. 도 5의 DDE WCSMSC(125)용 태스크 매니저는 참조 번호 140으로 식별된다. 태스크 매니저(140)에 의해 제어된 연관된 전용 기능 회로소자는 디맵퍼 블록 및 디코더 블록을 포함한다.
도 6은 도 4의 DDE WCSMSC(125)의 더 상세한 블록도이다. DDE WCSMSC(125)의 디맵퍼 블록은 실제로 2 개의 디맵 회로(200, 201)를 포함한다. DDE WCSMSC(125)의 디코더 블록(202)은 2 개의 비터비(Viterbi) 디코더(203, 204), 2 개의 터보 디코더(205, 206), 구성가능한 흐름 제어 회로(207), 및 메모리 인터페이스 회로소자(208)를 포함한다. 디맵 및 디코더 블록들 외에, DDE WCSMSC(125)는 푸쉬 엔진(push engine)(209), 제 2 버스(120)로 인터페이스하기 위한 버스 인터페이스(210), 한 세트의 구성, 상태 및 포인터 레지스터들(211), 및 메모리 인터페이스(212)를 포함한다. 도 5의 태스크 매니저(140)는 태스크 매니저 블록들(213, 214) 및 레지스터(211)로 분배된다. 전체 태스크 매니저 기능은 태스크 명령을 수신한다. 이 태스크 명령들 중 몇 개의 명령은 디맵 회로(200)를 제어하기 위한 필드들을 포함하고 이 필드들은 태스크 매니저부(213)에 의해 인터럽트되고 사용되는 반면, 다른 필드들은 디맵 회로(201)를 제어하기 위한 것이며 이들 필드들은 태스크 매니저부(214)에 의해 인터럽트되고 사용된다. 도 5의 프로세싱 회로(115)는 DDE WCSMSC(125)용 태스크 리스트(TL4) 상으로 태스크 명령을 일반적으로 기록하며, 블록(211)에 저장된 WR_PTR 포인터 값을 업데이트하기 위해 레지스터 블록(211)으로 제 2 버스(120) 및 AHB 버스 인터페이스(210)를 가로질러 단일 기록을 수행한다. 태스크 매니저부(213, 214)는 실행된 마지막 태스크 명령 이후 블록(211)에서의 레지스터의 WR_PTR 포인터 값이 메모리(117)에서의 TL4 순환 버퍼에서의 위치를 가리키는 지를 검출한다(도 5 참고). 그러므로 태스크 매니저부는 제 2 버스(120)를 가로질러 TL4의 다음 태스크 명령을 판독하며, 이후 태스크 명령을 인터럽트하고 실행한다. DDE WCSMSC(125)의 태스크 매니저부들은 레지스터 블록(211)에서 또다른 레지스터의 EXEC_PTR 포인터를 유지한다. EXEC_PTR 포인터의 값은 실행되어 있는 태스크 리스트(TL4)에서 마지막 태스크 명령을 표시한다.
도 6의 디맵부(200)는 제어 패킷들을 위해 사용된 상대적으로 저-처리량 디맵 회로인 반면, 디맵부(201)는 데이터 패킷들을 위해 사용된 상대적으로 고-처리량 디맵 회로이다. 디맵부(200)는 기능 블록들, 즉 언페인트(unpaint) 블록(215), LLR(Log-Likelihood Ratio) 발생기 블록(216), 디스크램버(descramber) 블록(217), 및 디-인터피버(de-interleaver) 블록(218)을 포함한다. 디맵부(200)는 LLR 버퍼로 그리고 밖으로 2 개의 병렬 판독/기록 채널들을 제공하는 컨덕터(219)를 통해 LLR 버퍼(129)로 인터페이싱한다. 더 높은 처리량 디맵부(201)는 기능 블록들, 즉 언페인트 블록(220), LLR 발생기 블록(221), 디스크램버 블록(222), 및 디인터리버 블록(223)을 포함한다. 디맵부(201)는 LLR 버퍼(129)로 그리고 밖으로 6 개의 병렬 판독/기록 채널을 제공하는 컨덕터(244)를 통해 LLR 버퍼(129)로 인터페이싱한다. LLR 버퍼(129)는 디맵(200)으로부터 2 개의 LLR 값 및 디맵(201)로부터 6 개의 LLR 값을 동시에 수신할 수 있는 다중-뱅킹된(multiple-bancked) 메모리이다. 디코더 블록(202)은 컨덕터(233)를 통해 디인터리빙된 순서로 LLR 버퍼(129)의 밖에서 LLR 값들을 판독하며, 태스크 명령들에 의해 구체화된 바와 같이 디코딩을 수행하고, 컨덕터(234)를 통해 디코드 출력 버퍼(130)로 결과로 생긴 디코딩된 데이터를 기록한다.
DDE 동작이 초기화된다면, 프로세싱은 항상 언페인트 단계로부터 각각의 연속적인 단계를 통해, 디스크램블링, 디인터리빙, 디코딩으로 진행한다. 그러므로 이들 단계들 각각에 대한 개별 태스크 명령은 프로세싱의 디맵, 디-인터리브 및 디코드 태양을 반드시 제어할 필요는 없다. 차라리, 단일 태스크 명령은 이들 단계들을 통한 프로세싱의 전체 시퀀스를 제어하는데 사용된다. 디맵 블록(200 또는 201)이 서브-패킷 상에서 프로세싱의 부분을 완료한다면, 서브-패킷은 서브-패킷과 연관된 상태 정보를 따라 디코더 블록으로 디맵 블록에 의해 전달된다. 디코더 블록(202)은 되도록 빨리 수신된 서브-패킷을 프로세싱한다. 디맵 블록들(200, 201) 중 하나는 LLR 버퍼(129)의 일부로 LLR 값들의 서브-패킷을 먼저 기록하고, LLR 버퍼(129)로 서브-패킷의 위치의 컨덕터(225 또는 226)를 통해 디코더 블록(202)에 통지하는 것에 의해 디코더 블록(202)으로 서브-패킷을 전달하며 디코더 블록(202)은 디코드 출력 버퍼(130)로 디코딩의 결과를 기록해야 한다. 전달은 또한 컨덕터(225 또는 226)를 통해 디코더 블록(202)으로 직접적으로 서브-패킷과 연관된 상태 정보를 전달하는 디맵 블록을 포함한다.
도 7은 도 6의 디코더 블록(202)의 일부에 관한 더 상세한 블록도이다. 도 6의 비터비 디코더(203 및 204)는 도 7에 도시되어 있지 않다. 도 6의 메모리 인터페이스 회로소자(208)의 기능은 메모리 인터페이스 회로(208A, 208B, 208C)에서 도 7에 더 상세히 나타나 있다. 데이터 트래픽 서브-패킷들의 프로세싱의 디코딩 처리율(throughput rate)을 증가시키기 위해, 2 개의 터보 디코더(205 및 206)가 제공되어 있으며 이들 2 개의 디코더는 동시에 서브-패킷들을 동작하기 위해 제어된다. 패킷을 구성하는 하나 이상의 서브-패킷들의 스트림이 존재한다. 예를 들어, 브로드캐스트 패킷(broadcast packet)은 단일 서브-패킷을 포함한다. 예를 들어, DCH 패킷은 많은 서브-패킷들을 포함할 수 있다. 또한 패킷들의 하나의 그룹을 구성하는 하나 이상의 패킷들의 스트림이 존재한다. 한 그룹은 하나의 브로드캐스트 패킷 및 데이터 패킷들을 모두를 포함하는 패킷들을 포함할 수 있다. 때때로 "프레임"이란 용어는 "그룹"이란 용어보다는 차라리 복수의 패킷들을 언급하는 데 사용되지만, 그러나 본 명세서에서 "그룹"이란 용어가 사용된다. 때때로 "서브-패킷"으로서 본 발명에 언급되는 것은 "패킷"이란 용어를 사용하여 어디에서나 언급된다.
DDE 실행 태스크 명령의 발행을 통해 프로세싱 회로(115)의 제어 하에서, 서브패킷들의 개별적인 서브-패킷은 디코더(205 및 206)의 선택된 디코더에 의해 처리된다. 따라서, 그룹 및 패킷의 서브-패킷들의 전체 스트림이 디코딩되도록 하는 DDE 실행 태스크 명령들의 시퀀스가 존재한다. 패킷의 몇 개의 서브-패킷들은 하나의 디코더에 의해 처리될 수 있는 반면, 패킷의 다른 서브-패킷들은 다른 디코더에 의해 처리될 수 있다. 대안으로는, 한 패킷의 모든 서브-패키들은 하나의 디코더에 의해 디코딩될 수 있다. 패킷을 디코딩하기 위한 2 개의 디코더의 사용 또는 하나의 패킷을 디코딩하기 위한 하나의 디코더의 사용은 패킷들의 그룹 내에서 패킷에 따라 변경될 수 있다.
구성가능한 흐름 제어 논리(207)는 DDE WCSMSC(125)에 의해 디코딩되는 패킷들의 한 그룹의 각각의 서브-패킷을 위한 CRC(cyclic redundancy check) 통과/실패(pass/fail) 정보를 저장하는 하나의 순차적 데이터 저장 비트를 포함한다. 도 7에 설명된 예에서, 하나의 그룹은 최대로 2 개의 패킷을 포함할 수 있으며, 하나의 패킷은 최대로 32개의 서브-패킷들을 포함할 수 있다. 따라서, 64개의 CRC 저장 비트들(227)이 존재한다. 서브-패킷을 디코딩하는 디코더(205 및 206)들 중 하나의 디코더가 CRC가 실패가 있었다고 결정한다면, 비트들(227) 중 대응하는 비트가 논리 상태 "0"을 가지도록 재설정되며, 반면에 결정이 CRC 통과였다면, 대응하는 비트는 논리 상태 "1"를 가지도록 설정된다.
또한, 구성가능한 흐름 제어 논리(207)는 구성 정보를 저장하기 위한 4 개의 비트(228), 즉 DEC_INT_ENAVLE1 비트, DEC_INT_ENAVLE 2 비트, DEC_RESOURCE_USE1 비트, 및 DEC_RESOURCE_USE2 비트를 포함한다. DEC_RESOURCE_USE1/2 비트가 2-비트 값 "00"을 가지도록 설정된다면, 디코더 블록(202)은 단일 디코더 모드로 동작하도록 설정된다. 2 개의 디코더들 중 하나 만이 한 패킷의 서브-패킷들을 프로세싱한다. DEC_RESOURCE_USE1/2 비트가 2-비트 값 "01"을 가지도록 설정된다면, 디코더 블록(202)은 처리되고 있는 서브-패킷들의 그룹의 서브-패킷들이 2 개의 디코더(205 및 206)의 조합에 의해 처리되는 듀얼 디코더 그룹 모드에서 동작하도록 설정된다. DEC_RESOURCE_USE1/2 비트가 2-비트 값 "10"를 가지도록 설정된다면, 디코더 블록(202)은 처리되고 있는 패킷의 서브-패킷들이 2 개의 디코더(205 및 206)의 조합에 의해 처리되는 듀얼 디코더 패킷 모드로 동작하도록 설정된다. 이들 비트들이 어떻게 설정되고 사용되는 지는 이하 더 상세히 설명되어 있다. DEC_INT_ENAVLE1/2 비트들이 2-비트 값 "00"을 가지도록 설정된다면, 인터럽트 발생기(229)는 컨덕터(231) 상으로 인터럽트 신호를 어서트(assert)하지 않도록 제 1 인터럽트 발생 모드에서 구성된다. 신호 컨덕터(231)는 (도시되지 않은) 인터럽트 제어기로 확장하며, 이는 도 5의 프로세싱 회로(115)로 인터럽트 신호를 어서트한다. DEC_INT_ENAVLE1/2 비트들이 2-비트 값 "01"을 가진다고 설정된다면, 인터럽트 발생기(229)는 인터럽트가 현재 서브-패킷의 디코딩에 따라 즉시 어서트되는 IMMEDIATE 인터럽트 발생 모드로 구성된다. DEC_INT_ENAVLE1/2 비트들이 2-비트 값 "10"을 가지도록 설정된다면, 인터럽트 발생기(229)는 인터럽트가 처리되고 있는 현재 패킷의 디코딩의 완료에 따라 어서트되는 PACKET 인터럽트 발생 모드로 구성된다. DEC_INT_ENAVLE1/2 비트들이 2-비트 값 "11"을 가지도록 설정되면, 인터럽트 발생기(229)는 인터럽트가 처리되고 있는 현재 그룹의 디코딩의 완료에 따라 어서트되는 GROUP 인터럽트 발생 모드로 구성된다.
또한, 구성가능한 흐름 제어 논리(207)는 정보의 6 개의 "완료(done)" 비트들(230), 즉 DECODER#1이 PACKET#1의 모든 할당된 서브-패킷들을 디코딩하는 것을 완료하였다는 표시를 저장하는 비트, DECODER#2가 PACKET#1의 모든 할당된 서브-패킷들을 디코딩하는 것을 완료하였다는 표시를 저장하는 비트, DECODER#1이 PACKET#2의 모든 할당된 서브-패킷들을 디코딩하는 것을 완료하였다는 표시를 저장하는 비트, DECODER#2가 PACKET#2의 모든 할당된 서브-패킷들을 디코딩하는 것을 완료하였다는 표시를 저장하는 비트, DECODER#1이 한 그룹의 모든 할당된 서브-패킷들을 디코딩하는 것을 완료하였다는 표시를 저장하는 비트, 및 DECODER#2이 한 그룹의 모든 할당된 서브-패킷들을 디코딩하는 것을 완료하였다는 표시를 저장하는 비트들을 포함한다. 이들 비트들이 어떻게 설정되고 사용되는 지는 이하 더 상세히 설명되어 있다.
도 8은 DDE WCSMSC(125)가 개별 서브-패킷을 처리하도록 하는 DDE 실행 태스크 명령의 간단한 다이어그램이다. 태스크 명령의 첫 번째 64 비트들은 연산코드 OP를 포함하는 공통 헤더(common header)이다. 태스크 명령을 판독하는 태스크 매니저는 태스크 명령이 어떠한 종류의 태스크 명령인지를 결정하기 위해 연산코드를 인터럽트한다. 공통 헤더는 또한 태스크 명령에서 워드(word)의 개수를 표시하는 길이 필드를 포함한다. 메모리(117)로부터 태스크 명령을 판독하는 태스크 매니저는 얼마나 많은 워드가 판독되는 지를 결정하기 위해 이 길이 필드를 사용한다. DDE 실행 태스크 명령의 다른 필드들 중 몇 개의 필드는 디코더 블록(202)에 특히 존재한다. 이들 필드들은 LLR 버퍼의 8 개의 세그먼트들 중 하나의 세그먼트가 디코딩되는 LLR 값들을 보유하고 있음을 표시하는 3-비트 DEC_LLR_SEG 필드를 포한한다. 도 9는 LLR 버퍼의 8 개의 세그먼트를 설명한다. 디코더 블록에 존재하는 DDE 실행 태스크 명령의 필드들은 또한 서브-패킷 데이터가 시작하는 위치로 표시된 세그먼트의 시작 사이의 오프셋에서 표시하는 11-비트 DEC_LLR_SEG_OFFSET 필드를 포함한다. 도 9는 이 오프셋을 설명한다. DDE 실행 태스크 명령은 또한 LLR 버퍼에서 저장된 바와 같이 서브-패킷의 길이를 표시하는 16-비트 DEC_SUBPKT_SIZE 필드를 포함한다. 도 9는 이 사이즈를 설명한다. 함께, DEC_LLR_SEG, DEC_LLR_SEF_OFFSET 및 DEC_SUBPKT_SIZE 필드는 디코더 블록(202)에 의해 처리되는 소스(source) 서브-패킷 데이터를 식별한다. DDE 실행 태스크 명령은 또한 디코드 동작의 결과들을 저장하는 정보를 포함한다. 16-비트 DEC_OB_DEST_ADDR 필드는 디코드 출력이 기록되려는 디코드 출력 버퍼(130)에서의 시작 어드레스를 표시한다. 또한, DDE 실행 태스크 명령은 스트림의 다른 서브-패킷들로부터 처리되는 서브-패킷을 식별하는 변호(서브-패킷 인덱스)를 표시하는 6-비트 DEC_SUBPKT_INDEX 필드를 포함한다. 전술한 바와 같이, 처리되는 패킷들의 그룹에서 2 개의 패킷이 존재할 수 있어, DDE 실행 태스크 명령은 서브 패킷이 속해 있는 패킷이 그룹의 제 1 또는 제 2 패킷인지 여부를 식별하는 1-비트 DEC_PKT_NUMBER 필드를 포함한다. DDE 실행 태스크 명령은 또한 식별된 서브-패킷을 처리하는데 있어 디코더 블록이 가져야 하는 구성을 특정하는 전술한 바와 같은 비트들의 다른 필드들(DEC_RESOURCE_USE 및 DEC_INT_ENABLE)을 포함한다. 특정 디코더에 의해 처리되려는 서브-패킷이 현재 패킷을 위한 디코더에 할당되려는 마지막 서브-패킷이라면, 1-비트 EOP 필드(end-of-packet)는 연관된 서브-패킷을 마킹하도록 설정된다. 특정 디코더에 의해 처리되는 서브-패킷이 현재 그룹에 대한 디코더로 할당되려는 마지막 서브-패킷이라면, 1-비트 EOG 필드(end-of-group)는 연관된 서브-패킷을 마킹하도록 설정된다. 3-비트 DEC_SEL 필드에서의 값은 2 개의 디코더 중 어느 디코더가 서브-패킷을 처리해야하는지를, 또는 2 개의 디코더 중 어떠한 디코더도 서브-패킷을 처리하지 않아야하는 지를 결정한다. 프로세싱 회로(115)는 디코더들 중 어느 것이 서브-패킷 상에서 디코딩을 수행해야 하는지를, 또는 테스트 모드에서 디코더들 중 어떠한 디코더도 사용되지 않아야 하는 지를 특정하기 위해 이 필드의 값을 설정할 수 있다.
DEC_GEN_TX_ACK 필드는 DDE WCSMSC(125)가 채널(114)(도 5 참조)을 전송하기 위해 일-대-일 컨덕터(237)에 대해 하드웨어 이벤트 트리거 신호를 어서트해야 하는지여부를 표시한다. 프로세싱 회로(115)는, 송신 채널에 제공된 태스크 명령을 통해, 송신 채널(114)에서 전송을 셋업할 수 있고, 그 전송은 디코더 블록(202)에 의해 프로세싱의 결과에 의존하여 확인 응답(ACK) 전송일 것 또는 부정 확인 응답(NACK) 전송일 것이다. 프로세싱 회로(115)는 또한 플로우 제어 로직(207)으로 하여금 컨덕터(237)에 대해 하드웨어 이벤트 트리거 신호를 어서트하도록 하여, 이 트리거 신호가 디코딩 동작의 결과에 따라 송신 채널(114)(도 5 참조)로 제공하도록 하며, 그에 의해 그 전송이 ACK 또는 NACK인지 여부를 결정한다. 이러한 방식의 하드웨어 이벤트 트리거 신호의 사용은 송신 디바이스로 ACK/NACK를 리턴하는데 레이턴시(latency)를 감소시킨다.
도 10은 아래서 설명되는 동작 예에서 DDE WCSMSC(125)에 의해 프로세싱될 서브-패킷들의 그룹(300)의 다이어그램이다. 그룹(300)은 2개의 패킷들: PACKET #1 및 PACKET #2를 포함한다. 다이어그램에서 개별적인 서브-패킷들은 제 1 수, 후속하는 콜론(colon), 후속하는 제 2 수의 형태의 표시에 의해 식별된다. 제 2 수는 패킷 번호를 표시한다. 제 1 수는 패킷 내의 서브-패킷의 수를 표시한다. 각각의 서브-패킷은 도시된 것처럼 CRC 값을 포함한다.
도 11은 디코더들(205 및 206)에 의해 도 10의 서브-패킷들의 디코딩의 제 1 시나리오를 도시하는 다이어그램이다. 각각의 서브-패킷은 연관된 태스크 명령에 의해 2개의 디코더들 중 선택된 하나에 의해 디코딩되기 위해 할당된다. 제 1 패킷의 서브-패킷들(1:1 및 2:1)은 DECODER #1(디코더 205)에 의해 디코딩되고, 서브-패킷들(3:1, 4:1 및 5:1)은 DECODER #2에 의해 디코딩된다. DECODER #1이 제 1 패킷에 대해 자신에게 할당된 모든 서브-패킷들을 디코딩하고 난 이후에, 그것은 제 2 패킷의 서브-패킷들(6:2, 7:2 및 8:2)을 디코딩할 것이다. DECODER #2가 제 1 패킷에 대해 자신에게 할당된 모든 서브-패킷들을 디코딩하고 난 이후에, 그것은 제 2 패킷의 서브 패킷들(9:2 및 10:2)을 디코딩할 것이다. 도 11의 다이어그램에서, 시간은 왼쪽에서 오른쪽으로 진행된다. 도 11의 다이어그램의 각각의 서브-패킷의 프로세싱의 지속기간은 서브-패킷을 나타내는 블록의 길이에 의해 표시된다. 다양한 서브-패킷들의 디코딩에 소비되는 시간의 양으로 인해, DECODER #1이 제 2 패킷의 서브-패킷들의 디코딩을 마치기 전에, 화살표(301)에 의해 표시되는 시간에서, DECODER #2는 제 2 패킷의 서브-패킷들의 디코딩을 마친다.
도 12는 디코더들(205 및 206)에 의해 도 10의 서브-패킷들의 디코딩의 제 2 시나리오를 도시하는 다이어그램이다. 도 12의 시나리오에서, 다양한 서브-패킷들의 디코딩에 소비되는 시간의 양으로 인해, DECODER #2가 제 2 패킷의 서브-패킷들의 디코딩을 마치기 전에 화살표(302)에 의해 표시되는 시간에서, DECODER #1은 제 2 패킷의 서브-패킷들의 디코딩을 마친다. 어떤 시나리오가 발생하던지 관계없이, 프로세싱이 프로세싱 회로(115)로 전송되어 완료되는지를 표시하는 오직 하나의 인터럽트가 바람직하다. 어떻게 DDE WCSMSC(125)가 프로세싱 회로(115)에 의해 구성되는지에 의존하여, 제 1 패킷의 모든 서브-패킷들이 프로세싱된 이후에 프로세싱 회로(115)로 전송되는 추가적인 인터럽트가 바람직할 수 있다. 신규한 DDE WCSMSC(125)는 아래서 설명되는 것처럼 이러한 기능들을 수행하도록 구성가능하다.
도 13은 어떻게 신규한 DDE WCSMSC(125)가 제 1 패킷의 마지막 서브-패킷의 디코딩이 완료하면 오직 하나의 인터럽트를 생성하도록 동작하는지를 도시하고, 어떻게 DDE WCSMSC(125)가 또한 그룹의 마지막 서브-패킷의 디코딩이 완료하면 오직 하나의 인터럽트를 생성하도록 동작하는지를 도시하는 다이어그램이다. 일 신규한 양상에서, 프로세싱 회로(115)는 디코더로 디코딩에 대해 할당된 패킷의 마지막 서브-패킷을 마크한다. 예컨대, DECODER #1로 디코딩을 위해 할당될 제 1 패킷의 마지막 서브-패킷은 서브-패킷(2:1)이다. 이 서브-패킷(2:1)은 따라서 서브-패킷(2:1)에 대해 DDE 실행 태스크 명령에서 EOP 비트를 설정함으로써 제 1 패킷의 마지막 서브-패킷으로 마크된다. 이 마킹은 음영된 마크(303)에 의해 도 13에서 도식적으로 표시된다. 유사하게, DECODER #2로 디코딩을 위해 할당될 제 1 패킷의 마지막 서브-패킷은 서브-패킷(5:1)이다. 이 서브-패킷은 따라서 서브-패킷(5:1)에 대한 DDE 실행 태스크 명령에서 EOP 비트를 설정함으로써 제 1 패킷의 마지막 서브-패킷으로 마크된다. 이 마크는 음영된 마크(304)에 의해 도 13에서 도식적으로 표시된다.
디코더들 중 하나가 설정된 EOP 마커를 이용하여 마킹된 서브-패킷의 디코딩을 완료한 경우, 디코더는 PACKET#1 DONE 및 PACKET#2 DONE 비트들 중 하나가 이제 막 디코딩된 서브-패킷의 DEC_PKT_NUMBER에 의해 결정되는 것처럼 적절한지를 설정함으로써, 그 디코더는 패킷 완료 표시를 생성한다. PACKET#1 DONE 및 PACKET#2 DONE 비트들이 플로우 제어 로직(207)에 배치된다. 플로우 제어 로직(207)에서 PACKET# 1 DONE 및 PACKET#2 DONE 비트들 둘 모두가 설정되도록 검출되는 경우, 인터럽트 생성기(229)는 인터럽트 컨덕터(231) 상에 인터럽트 신호를 어서트한다. 이는 화살표(305)에 의해 도 13에서 표시된다. 디코더가 각각의 서브-패킷의 디코딩을 완료하기 때문에, 디코더는 CRC 패스/패일 비트들(227)에서 대응하는 비트로 하여금 CRC 체크가 패스되거나 패일되는 서브-패킷 상에서 수행되는지 여부에 의존하여 설정 또는 리셋되도록 한다. 패스/패일 비트의 패킷 수가 디코딩될 서브-패킷의 DEC_PKT_NUMBER 값에 의해 주어진다. 패스/패일 비트의 서브-패킷 수가 디코딩될 서브-패킷의 DEC_SUBPKT_INDEX 값에 의해 주어진다. 이러한 DEC_PKT_NUMBER(PKT#) 및 DEC_SUBPKT_INDEX(SUBPKT#) 값들이 디코딩을 수행하는 디코더로부터 도 7의 플로우 제어 로직(207)으로 컨덕터(232)에 의해 제공된다.
컨덕터(231) 상의 인터럽트 신호가 어서트되면, 인터럽트 신호는 인터럽트 제어기(미도시)의 입력 리드(lead)에 제공된다. 인터럽트 제어기는 차례로 프로세싱 회로(115)에 제공된 인터럽트 신호를 어서트한다. 이 인터럽트는 제 1 패킷의 모든 서브-패킷들이 디코딩되었는지를 표시한다. 인터럽트 신호의 어서팅의 결과로서, 프로세싱 회로(115)는 인터럽트되고, 인터럽트 서비스 루틴으로 점프한다. 인터럽트 서비스 루틴을 실행하는데, 프로세싱 회로(115)는 인터럽트를 유발한 것을 결정하기 위해 다양한 판독들을 수행한다. 프로세싱 회로(115)는 AHB 버스 인터페이스(210) 및 제 2 버스(120)를 통해 플로우 제어 로직(207)에 의해 수집되는 CRC 비트들(227) 및 다른 상태 정보를 판독한다. 상태 정보는 어떤 조건이 인터럽트 생성기(229)로 하여금 인터럽트 신호를 어서트하도록 유발했는지를 표시한다. 프로세싱 회로(115)에 의한 CRC 값 및 상태 정보의 판독은 인터럽트 생성기(229)로 하여금 컨덕터(231) 상의 인터럽트 신호가 더 이상 어서트되지 않게 리셋되도록 한다. 인터럽트의 소거(clearing)는 CLEAR로 라벨링된 시그널에 의해 도 7에서 표시된다. CRC 비트 값들 및 상태 정보의 재 판독은 STATUS로 라벨링된 신호들에 의해 도 7에서 표시된다. 컨덕터(231) 상의 인터럽트 신호가 자신의 어서팅되지 않은 상태로 리턴하면, 인터럽트 신호는 다른 조건을 표시하도록 다시 어서팅될 수 있다.
도 13으로 리턴하면, DDE WCSMSC(125)는 그룹의 디코딩의 끝에서 인터럽트를 어서팅하도록 구성된다. 오직 하나의 인터럽트가 이 시점(306)에서 생성되도록 한다. 하나의 신규한 양상에서, 프로세싱 회로(115)는 각각의 디코더로 디코딩을 위해 할당된 그룹의 마지막 서브-패킷을 마크한다. 예컨대, DECODER#1로 디코딩을 위해 할당될 그룹의 마지막 서브-패킷은 서브-패킷(8:2)이다. 서브-패킷(8:2)은 따라서 서브-패킷(8:2)에 대한 DDE 실행 태스크 명령에서 EOG 비트를 설정함으로써 그룹의 마지막 서브-패킷으로서 마크된다. 이 마킹은 솔리드(solid) 블랙 마크(307)에 의해 도 13에서 표시된다. DECODER#2로 디코딩을 위해 할당될 그룹의 마지막 서브-패킷은 서브-패킷(10:2)이다. 서브-패킷(10:2)은 따라서 서브-패킷(10:2)에 대한 DDE 실행 태스크 명령에서 EOG 비트를 설정함으로써 그룹의 마지막 서브-패킷으로서 마크된다. 이 마킹은 솔리드 블랙 마크(308)에 의해 도 13에서 표시된다. 디코더들 중 하나가 설정될 EOG 비트를 이용하여 마킹된 서브-패킷의 디코딩을 완료하는 경우, 그 디코더는 자신의 GROUP DONE 비트를 설정함으로써 그룹 완료 표시를 생성한다. GROUP DONE 비트들 모두가 설정되는 경우, 인터럽트 생성기(229)는 인터럽트 컨덕터(231) 상에서 인터럽트 신호를 어서트한다. 이는 화살표(306)에 의해 도 13에서 표시된다. 시간(305)에서, EOP 조건에 의해 생성된 인터럽트의 경우로서, 프로세싱 회로(115)는 인터럽트된다. 프로세싱 회로(115)는 인터럽트 서비스 루틴을 실행함으로써 응답하고, 그 실행은 프로세싱 회로(115)로 하여금 CRC 값들 및 플로우 제어 로직(207)으로부터 다른 상태 정보를 판독하도록 한다. 상태 정보 판독은 인터럽트 신호가 그룹의 종료(EOG) 조건으로 인해 어서트되었는지를 표시한다. CRC 값들 및 상태 정보의 판독은 인터럽트 신호가 자신의 어서트되지 않은 상태로 리턴하도록 하여, 그것이 다른 조건의 발생을 시그널링하도록 다시 어서팅될 수 있도록 한다. 도 13의 예에서, 복수의 디코더들이 제 1 패킷의 서브-패킷들을 프로세싱하는데 사용되더라도, EOP 인터럽트 신호 어서팅은 단지 한번 발생함을 주목하라. 또한 도 13의 예에서, 복수의 디코더들이 그룹의 마지막 패킷을 디코딩하는데 사용되더라도, EOG 인터럽트 신호 어서팅은 오직 한번 발생함을 주목해라. 제 1 패킷에 대해 서브-패킷들의 디코딩을 완료한 후에 복수의 디코더들은 중단되지 않고, 그렇기 보다는 모든 디코더들이 태스크 명령들에 의해 지시되는 것처럼 서브-패킷들의 디코딩을 계속한다. 도 7의 실시예에서, 디코더가 EOG 마크에 의해 표시되는 것처럼 그룹에 대해 자신에게 할당된 마지막 서브-패킷의 디코딩을 완료하는 경우, 플로우 제어 로직(207)은 그 디코더의 중단 동작으로 디코더로 다시 전송되는 중단 신호를 어서트한다. 도 7에서, 이러한 중단 신호들은 컨덕터들(235 및 236)을 통해 전송된다. 따라서, 도 13의 시나리오에서, 먼저 프로세싱을 완료한 제 2 DECODER#2는 시간(309)에서 중단된다. 중단 조건은 프로세싱 회로(115)에 의해 인터럽트가 소거되면 제거된다.
도 14는 DECODER#1이 DECODER#2 이전에 그룹의 서브-패킷들의 디코딩을 마치는 제 2 시나리오에서 어떻게 신규한 DDE WCSMSC(125)가 동작하는지를 도시하는 다이어그램이다. DECODER#1가 서브-패킷(2:1)의 디코딩을 완료하는 경우, 그것은 DECODER#1에 대한 PACKET#1 DONE 비트로 하여금 플로우 제어 로직(207)에서 설정되도록 한다. 이는 적절한 상태 신호들을 컨덕터들(232)을 통해 전송함으로써 수행된다. 적절한 상태 신호들은 DONE 신호, 패킷 인덱스 PKT#, 및 패킷 종료(EOP) 신호를 포함한다. DECODER#1이 제 1 패킷에 대해 자신에게 할당된 모든 서브-패킷들의 디코딩을 완료했더라도, 제 1 패킷의 더 많은 서브-패킷들이 다른 디코더 DECODER#2에 의해 디코딩되도록 남아있더라도, 그럼에도 불구하고 DECODER#1은 지연없이 서브-패킷들의 디코딩을 계속한다. DECODER#1은 서브-패킷(6:2)의 디코딩을 즉시 시작한다. DECODER#2가 여전히 제 1 패킷의 서브-패킷들을 디코딩하고 있기 때문에, DECODER#2에 대한 PACKET#2 DONE 비트는 이 지점에서 설정되지 않는다. DECODER#2가 제 1 패킷에 대해 자신에게 할당된 마지막 서브-패킷(서브-패킷 5:1)의 디코딩을 완료하는 경우, DECODER#2는 플로우 제어 로직(207)에서 DECODER#2에 대해 PACKET#1 DONE 비트를 설정함으로써 패킷 완료 표시를 생성한다. 패킷 DONE 비트들 모두가 설정되기 때문에, 인터럽트 제어기(229)는 시간(310)에서 컨덕터(231) 상에서 인터럽트 신호를 어서트한다. 유사하게, 그룹에 대해 자신들의 모든 할당된 서브-패킷들을 완료한 두 개의 디코더들에 응답하여, 인터럽트 신호는 시간(311)에서 오직 한번 어서팅된다. 제 1 디코더 DECODER#1은 시간(312)에서 그룹의 자신에게 마지막으로 할당된 서브-패킷들의 디코딩을 완료했다. 플로우 제어 로직(207)은 플로우 제어 로직(207)에게 그룹 완료 표시를 제공하는 제 1 디코더로 인해 이 조건을 알고 있다. 플로우 제어 로직(207)은 컨덕터(235) 상에 DECODER#1로 다시 공급하는 중단 신호를 어서팅함으로써 응답하고, 그에 의해 DECODER#1을 중단한다. 프로세싱 회로(115)가 EOG 인터럽트에 응답하여 CRC 정보 및 다른 상태 정보를 판독했다면, 중단 조건이 제거된다.
도 15는 패킷의 다양한 서브-패킷들을 디코딩하기 위해 복수의 디코더들이 함께 동작하는(단계 401) 방법(400)의 플로우차트이다. 특정 디코더들에 의해 디코딩되는 서브-패킷들 중 몇몇은 복수의 패킷들의 특정 패킷("PKT"로서 여기서 지정되는)으로부터 비롯된다. 특정 패킷 PKT는 패킷들의 그룹에 있는 임의의 패킷일 수 있다. 예컨대, 도 13에서 도시된 것처럼, 제 1 패킷("PKT" 패킷)의 서브 패킷들(1:1 및 2:1)은 제 1 디코더에 의해 디코딩되고, 제 1 패킷의 서브-패킷들(3:1, 4:1 및 5:1)은 제 2 디코더에 의해 디코딩된다. 디코더가 디코딩하도록 할당된 패킷 PKT의 마지막 서브-패킷을 디코더가 디코딩한 경우, 패킷 완료 표시가 디코더로부터 수신된다(단계 402). 예컨대, 도 13에서 도시된 것처럼, 제 1 디코더는 제 1 패킷("PKT" 패킷)의 서브-패킷들(1:1 및 2:1)을 디코딩하도록 할당되었고, 제 1 디코더는 서브-패킷(2:1)(제 1 디코더가 디코딩할 제 1 패킷의 마지막 서브-패킷임)의 디코딩을 완료한 경우, 제 1 디코더는 제 1 패킷 완료 표시를 생성한다. 제 1 패킷 완료 표시가 도 7의 플로우 제어 로직(207)에 의해 수신되며, 설정된 제 1 디코더에 대한 PACKET#1 DONE 비트를 발생한다. 유사하게, 제 2 디코더는 제 1 패킷의 서브-패킷들(3:1, 4:1 및 5:1)을 디코딩하도록 할당된다. 제 2 디코더가 서브-패킷(5:1)(이는, 제 2 디코더가 디코딩할 제 1 패킷의 마지막 서브-패킷임)의 디코딩을 완료한 경우, 제 2 디코더는 제 2 패킷 완료 표시를 생성한다. 제 2 패킷 완료 표시는 도 7의 플로우 제어 로직에 의해 수신되고, 설정되는 제 2 디코더에 대한 PACKET#1 DONE 비트를 발생한다. 만약 패킷 완료 표시가 특정 패킷 PKT의 서브-패킷들을 디코딩하고 있는 모든 디코더들로부터 수신되었다면(단계 403), 동작이 개시된다(단계 404). 일 예에서, 개시된 동작은 플로우 제어 로직(207)에 의한 컨덕터(231)에 대한 인터럽트 신호의 어서트이다. 프로세싱 회로(115)는 그리고나서 플로우 제어 로직(207)으로부터 정보를 판독함으로써 응답할 수 있고, 그에 의해 인터럽트 신호를 리셋한다.
여기서 설명된 기술들은 다양한 수단에 의해 구현될 수 있다. 하나 이상의 예시적인 구현에서, 여기서 제시된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합을 통해 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터 판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나, 또는 이들을 통해 전송될 수 있다. 컴퓨터 판독가능한 매체는 컴퓨터 저장 매체 및 일 장소에서 다른 장소로 컴퓨터 프로그램의 이전을 용이하게 하기 위한 임의의 매체를 포함하는 통신 매체를 포함한다. 저장 매체는 범용 컴퓨터 또는 특별한 컴퓨터에 의해 액세스될 수 있는 임의의 가용한 매체일 수 있다. 예를 들어, 이러한 컴퓨터 판독가능한 매체는 RAM,ROM,EEPROM,CD-ROM 또는 다른 광학 디스크 저장 매체, 자기 디스크 저장 매체 또는 다른 자기 저장 장치들, 또는 명령 또는 데이터 구조의 형태로 요구되는 프로그램 코드 수단을 저장하는데 사용될 수 있고, 범용 컴퓨터, 특별한 컴퓨터, 범용 프로세서, 또는 특별한 프로세서에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이들로 제한되는 것은 아니다. 또한, 임의의 연결 수단이 컴퓨터 판독가능한 매체로 간주될 수 있다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 소스로부터 동축 케이블, 광섬유 케이블, 연선, 디지털 가입자 라인(DSL), 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들을 통해 전송되는 경우, 이러한 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선 라디오, 및 마이크로웨이브와 같은 무선 기술들이 이러한 매체의 정의 내에 포함될 수 있다. 여기서 사용되는 disk 및 disc은 컴팩트 disc(CD), 레이저 disc , 광 disc, DVD, 플로피 disk, 및 블루-레이 disc를 포함하며, 여기서 disk는 데이터를 자기적으로 재생하지만, disc은 레이저를 통해 광학적으로 데이터를 재생한다. 상기 조합들 역시 컴퓨터 판독가능한 매체의 범위 내에 포함될 수 있다.
특정 실시예들이 명령적 목적들을 위해 위에서 설명되더라도, 이 특허 문서의 설명들은 일반적으로 적용가능성을 가지며, 위에서 설명된 특정 실시예들에 제한되지 않는다. 따라서, 다양한 변형들, 적응들, 및 설명된 특정 실시예들의 다양한 특징들의 조합들이 여기서 설명된 청구항들의 범위를 벗어나지 않고 실시될 수 있다.

Claims (33)

  1. 복수의 디코더들 ― 각각의 디코더는 패킷들의 그룹의 하나 이상의 서브-패킷들의 시퀀스를 디코딩하는 태스크들을 할당받을 수 있으며, 각각의 디코더는 만약 상기 디코더가 패킷의 모든 서브-패킷들을 디코딩하는 할당된 모든 태스크들을 완료했다면, 패킷 완료 표시(packet done indication)를 생성함 ―; 및
    상기 복수의 디코더들 각각으로부터 상기 패킷 완료 표시를 수신하고, 상기 패킷 완료 표시들에 적어도 부분적으로 기반하여 인터럽트(interrupt) 신호를 어서트(assert)하는 제어 회로를 포함하고, 상기 인터럽트 신호는 임의의 디코더가 상기 패킷의 서브-패킷을 디코딩하는 시간 동안 어서트되지 않고, 패킷 완료 표시가 상기 패킷의 임의의 서브-패킷을 디코딩한 각 디코더로부터 수신된 이후에만 어서트되는, 회로.
  2. 제1항에 있어서, 상기 패킷 완료 표시는 완료(done) 신호 및 패킷 종료(end-of-packet) 신호를 포함하고, 상기 완료 신호는 디코더로부터 연장(extend)되는 제 1 컨덕터 상에서 상기 제어 회로로 제공되며, 상기 패킷 종료 신호는 상기 디코더로부터 연장되는 제 2 컨덕터 상에서 상기 제어 회로로 제공되는, 회로.
  3. 제1항에 있어서, 상기 각각의 디코더는, 만약 상기 디코더가 패킷들의 그룹의 모든 서브-패킷들의 디코딩하는 모든 할당된 태스크들을 완료하면 그룹 완료 표시(group done indication)를 제공하며, 상기 제어 회로는 상기 복수의 디코더들 각각으로부터 그룹 완료 표시를 수신하는, 회로.
  4. 제1항에 있어서, 상기 제어 회로는 복수의 중단(halt) 신호들을 생성하고, 상기 복수의 중단 신호들 중 하나는 상기 복수의 디코더들 중 대응하는 각각의 디코더로 제공되는, 회로.
  5. 제4항에 있어서, 상기 디코더들이 상기 그룹의 서브-패킷들을 디코딩하는 그들에게 할당된 모든 태스크들의 디코딩을 완료하면, 상기 제어 회로는 상기 디코더들의 개별적인 디코더들을 중단하기 위해 상기 중단 신호들을 사용하는, 회로.
  6. 제1항에 있어서, 상기 제어 회로는 상기 패킷의 서브-패킷을 디코딩한 모든 디코더로부터 수신된 패킷 완료 표시들에 응답하여 상기 인터럽트 신호를 어서트하도록 구성가능하며, 상기 제어 회로는 또한 상기 제어 회로가 패킷 완료 표시를 수신하는 것에 응답하여 상기 인터럽트 신호를 어서트하지 않도록 구성가능한, 회로.
  7. 제1항에 있어서, 상기 인터럽트 신호는 패킷 종료(EOP) 인터럽트 신호이며, 상기 제어 회로는 또한 상기 제어 회로가 상기 EOP 인터럽트 신호를 어서트하지 않도록 구성가능한, 회로.
  8. 제1항에 있어서, 상기 회로는 상기 디코더들 중 하나의 디코더가 제 1 패킷의 서브-패킷들의 시퀀스를 디코딩하고, 상기 제어 회로로 패킷 완료 표시를 제공하며, 그리고나서 중단없이 제 2 패킷의 서브-패킷들의 시퀀스의 디코딩을 시작하도록 동작가능하고, 상기 제 1 및 제 2 패킷들은 상기 그룹의 패킷들이며, 상기 제어 회로는 상기 제어 회로가 상기 하나의 디코더로부터 상기 패킷 완료 표시를 수신하는 시점에서 상기 인터럽트 신호를 어서트하지 않고, 패킷 완료 표시들이 상기 패킷의 임의의 서브-패킷을 디코딩한 각 디코더로부터 수신되고 나면 상기 인터럽트 신호를 어서트하는, 회로.
  9. 제1항에 있어서, 디코더에 의해 제공되는 상기 패킷 완료 표시는 서브-패킷 인덱스와 함께 상기 제어 회로에 의해 수신되며, 상기 서브-패킷 인덱스는 상기 디코더가 디코딩한 상기 패킷의 마지막 서브-패킷을 식별하는, 회로.
  10. 제1항에 있어서, 디코더에 의해 제공되는 상기 패킷 완료 표시는 패킷 인덱스와 함께 상기 제어 회로에 의해 수신되며, 상기 패킷 인덱스는 상기 패킷 완료 표시가 속한 상기 패킷을 식별하는, 회로.
  11. 제1항에 있어서,
    태스크 명령을 생성함으로써 서브 패킷을 디코딩하는 태스크를 상기 복수의 디코더들 중 하나에 할당할 수 있는 프로세서를 더 포함하고, 상기 태스크 명령은 상기 서브-패킷이 버퍼에서 어디에 위치하는지를 표시하는 정보를 포함하는, 회로.
  12. 제1항에 있어서,
    태스크 명령을 생성함으로써 서브-패킷을 디코딩하는 태스크를 상기 복수의 디코더들 중 하나로 할당할 수 있는 프로세서를 더 포함하고, 상기 태스크 명령은 상기 서브-패킷이 패킷의 서브-패킷들의 시퀀스의 마지막 서브-패킷인지 여부의 표시를 포함하고, 상기 서브-패킷들의 시퀀스는 상기 하나의 디코더에 의해 디코딩될 것인, 회로.
  13. 제1항에 있어서,
    태스크 명령을 생성함으로써 서브-패킷을 디코딩하는 태스크를 상기 복수의 디코더들 중 하나로 할당할 수 있는 프로세서를 더 포함하고, 상기 태스크 명령은 상기 서브-패킷이 패킷들의 그룹의 서브-패킷들의 시퀀스의 마지막 서브-패킷인지 여부의 표시를 포함하고, 상기 서브-패킷들의 시퀀스는 상기 하나의 디코더에 의해 디코딩될 것인, 회로.
  14. 제1항에 있어서, 상기 디코더들 중 하나의 디코더는 태스크 명령에 응답하여 서브-패킷을 디코딩하고, 상기 태스크 명령은 상기 서브-패킷을 식별하고 패킷 종료 비트(end-of-packet)를 포함하는 필드를 포함하고, 상기 디코더는 상기 패킷 종료 비트가 미리 결정된 이진(binary) 값을 가지는 경우 상기 서브-패킷의 디코딩을 종료하면 자신의 패킷 완료 표시를 어서트하는, 회로.
  15. 제 1 서브-패킷들 중 마지막 서브-패킷이 디코딩될 때까지 중단없이 상기 제 1 서브-패킷들의 시퀀스를 디코딩하도록 적응되는 제 1 터보 디코더 ― 상기 제 1 서브-패킷들 중 몇몇은 제 1 패킷에 관한 것이고 그리고 상기 제 1 서브-패킷들 중 다른 것들은 제 2 패킷에 관한 것임 ―;
    상기 제 2 서브-패킷들 중 마지막 서브-패킷이 디코딩될 때까지 중단없이 상기 제 2 서브-패킷들의 시퀀스를 디코딩하도록 적응되는 제 2 터보 디코더 ― 상기 제 2 서브-패킷들 중 몇몇은 제 1 패킷에 관한 것이고 그리고 상기 제 2 서브-패킷들 중 다른 것들은 제 2 패킷에 관한 것임 ―;
    프로세싱 회로; 및
    상기 제 1 패킷의 모든 서브-패킷들이 디코딩된 경우 상기 프로세싱 회로에 통지(alert)하도록 구성가능한 제어 회로를 포함하는, 회로.
  16. 제15항에 있어서, 상기 제 1 서브-패킷들은 패킷들의 그룹의 서브-패킷들이고, 상기 제 2 서브-패킷들은 패킷들의 동일한 그룹의 서브-패킷들이며, 상기 제 1 터보 인코더는 만약 자신이 상기 제 2 터보 디코더가 상기 그룹의 상기 제 2 서브-패킷들 모두의 디코딩을 완료하기 전에 상기 그룹의 상기 제 1 서브-패킷들 모두의 디코딩을 완료하면, 서브-패킷들의 디코딩을 중단하며, 상기 제 2 터보 인코더는 만약 자신이 상기 제 1 터보 디코더가 상기 그룹의 상기 제 1 서브-패킷들 모두의 디코딩을 완료하기 전에, 상기 그룹의 상기 제 2 서브-패킷들 모두의 디코딩을 완료하면 서브-패킷들의 디코딩을 중단하는, 회로.
  17. 패킷들의 그룹의 복수의 서브-패킷들을 디코딩하기 위해 복수의 디코더들을 사용하는 단계 ― 상기 서브-패킷들 중 몇몇은 제 1 패킷에 관한 것이고, 상기 서브-패킷들의 다른 것들은 제 2 패킷에 관한 것이며, 상기 패킷들의 그룹은 상기 제 1 및 제 2 패킷들을 포함함 ―;
    상기 제 1 패킷의 서브-패킷들이 상기 복수의 디코더들에 의해 디코딩되고 있는 시간에 걸쳐 어서팅되지 않은 상태에서 인터럽트 신호를 유지하는 단계; 및
    상기 제 1 패킷의 모든 서브-패킷들이 디코딩된 경우 상기 인터럽트 신호를 어서팅하는 단계를 포함하는, 방법.
  18. 제17항에 있어서, 상기 복수의 디코더들 중 제 1 디코더는 상기 제 1 패킷의 서브-패킷들을 디코딩하고 그리고나서 중단없이 상기 제 2 패킷의 서브-패킷들을 디코딩하며, 상기 복수의 디코더들 중 제 2 디코더는 상기 제 1 패킷의 서브-패킷들을 디코딩하고 그리고나서 중단없이 상기 제 2 패킷의 서브-패킷들을 디코딩하는, 방법.
  19. 제17항에 있어서, 상기 제 1 패킷의 서브-패킷들 중 몇몇은 상기 복수의 디코더들 중 제 1 디코더에 의해 디코딩되고, 상기 제 1 패킷의 서브-패킷들 중 다른 것들은 상기 복수의 디코더들의 제 2 디코더에 의해 디코딩되는, 방법.
  20. 제17항에 있어서,
    상기 복수의 디코더들 각각으로부터 패킷 완료 표시를 수신하는 단계 및 언제 상기 인터럽트 신호를 어서트할지를 결정하기 위해 상기 복수의 디코더들로부터 수신된 상기 패킷 완료 표시들을 사용하는 단계를 더 포함하는, 방법.
  21. 제17항에 있어서,
    상기 복수의 디코더들 중 다른 디코더가 상기 그룹의 서브-패킷들의 디코딩을 완료하기 전에 상기 그룹의 서브-패킷들의 디코딩을 완료하는 상기 복수의 디코더들 중 임의의 디코더를 중단하는 단계를 더 포함하는, 방법.
  22. 제 1 태스크 명령을 수신하는 단계 ― 상기 제 1 태스크 명령은 제 1 서브-패킷을 식별하는 식별 정보를 포함하고, 상기 제 1 태스크 명령은 마커를 추가적으로 포함함 ―;
    상기 제 1 태스크 명령의 상기 식별 정보에 의해 표시되는 상기 제 1 서브-패킷을 디코딩하고, 상기 디코딩이 완료되면 만약 상기 제 1 태스크 명령의 마커가 설정되었던 경우 제어 회로에서 제 1 비트를 설정하는 단계;
    제 2 태스크 명령을 수신하는 단계 ― 상기 제 2 태스크 명령은 제 2 서브-패킷을 식별하는 식별 정보를 포함하고, 상기 제 2 태스크 명령은 마커를 더 포함하고, 상기 제 1 및 제 2 서브-패킷들은 하나의 패킷의 서브-패킷들임 ―;
    상기 제 2 태스크 명령의 상기 식별 정보에 의해 표시되는 상기 제 2 서브-패킷을 디코딩하고, 상기 디코딩이 완료되면 만약 상기 제 2 태스크 명령의 마커가 설정되었던 경우 상기 제어 회로에서 제 2 비트를 설정하는 단계; 및
    동작을 개시하기 위해 상기 제어 회로에서 상기 제 1 및 제 2 마커들을 사용하는 단계를 포함하는, 방법.
  23. 제22항에 있어서, 상기 개시되는 동작은 상기 제어 회로로부터 출력되는 인터럽트 신호의 어서트인, 방법.
  24. 제22항에 있어서, 상기 개시되는 동작은 확인 응답(ACK) 전송의 송신인, 방법.
  25. 제22항에 있어서, 상기 제 1 태스크 명령의 마커는 패킷 종료(EOP) 마커 비트인, 방법.
  26. 제22항에 있어서, 상기 제 1 태스크 명령의 마커는 그룹 종료(EOG; end-of-group) 마커 비트이며, 상기 패킷은 그룹의 복수의 패킷들 중 하나의 패킷인, 방법.
  27. 제 1 서브-패킷들의 시퀀스를 디코딩하도록 적응되는 제 1 터보 디코더 ― 제 1 서브-패킷들 중 몇몇은 제 1 패킷에 관한 것이고 상기 제 1 서브-패킷들 중 다른 것들은 제 2 패킷에 관한 것임 ―;
    제 2 서브-패킷들의 시퀀스를 디코딩하도록 적응되는 제 2 터보 디코더 ― 상기 제 2 서브-패킷들 중 몇몇은 상기 제 1 패킷에 관한 것이고, 상기 제 2 서브-패킷들 중 다른 것들은 상기 제 2 패킷에 관한 것임 ―; 및
    상기 제 1 터보 인코더로부터 패킷 완료 표시를 수신하고 상기 제 2 터보 인코더로부터 패킷 완료 표시를 수신하기 위한 수단을 포함하고, 상기 수단들은 또한 상기 제 1 패킷의 서브-패킷들이 상기 제 1 및 제 2 터보 디코더들에 의해 디코딩되는 시간에 걸쳐 어서팅되지 않은 상태에서 패킷 완료 인터럽트 신호를 유지하고, 상기 제 1 패킷의 모든 서브-패킷들이 디코딩된 경우 상기 패킷 완료 인터럽트 신호를 어서팅하기 위한 것인, 장치.
  28. 제27항에 있어서, 상기 장치는 복수의 모드들 중 선택가능한 하나의 모드로 구성가능하며, 상기 하나의 모드에서 상기 수단은 패킷 완료 인터럽트 신호를 어서트하지 않도록 구성되는, 장치.
  29. 제27항에 있어서, 상기 장치는 복수의 모드들 중 선택가능한 하나의 모드로 구성가능하며, 상기 하나의 모드에서 상기 수단은 그룹 완료 인터럽트 신호를 어서트하지 않고, 다른 모드에서 상기 수단은 상기 그룹 완료 인터럽트 신호를 어서트하는, 장치.
  30. 제27항에 있어서, 제 3 패킷의 모든 서브-패킷들은 상기 제 1 터보 디코더에 의해 디코딩되어 상기 제 2 터보 디코더에 의해 디코딩되는 상기 제 3 패킷의 서브-패킷들이 없도록 하는, 장치.
  31. 제27항에 있어서, 상기 수단들은 또한 상기 제 1 패킷의 각각의 서브-패킷에 대한 그리고 상기 제 2 패킷의 각각의 서브-패킷에 대한 사이클릭 리던던시 체크(CRC) 통과/실패(pass/fail) 비트를 저장하기 위한 것인, 장치.
  32. 컴퓨터로 하여금 제 1 디코더를 제어하여 제 1 디코더가 제 1 서브-패킷들의 시퀀스를 디코딩하도록 하고, ― 제 1 서브-패킷들 중 몇몇은 제 1 패킷에 관한 것이고 그리고 제 1 서브-패킷들 중 다른 것들은 제 2 패킷에 관한 것임 ―, 상기 제 1 디코더를 제어하여 상기 제 1 디코더가 상기 제 1 패킷의 모든 제 1 서브-패킷들의 디코딩을 완료하면, 상기 제 1 디코더가 제 1 패킷 완료 표시를 생성하도록 하기 위한 코드;
    상기 컴퓨터로 하여금 제 2 디코더를 제어하여 상기 제 2 디코더가 제 2 서브-패킷들의 시퀀스를 디코딩하도록 하고, ― 제 2 서브-패킷들 중 몇몇은 제 1 패킷에 관한 것이고 상기 제 2 서브-패킷들 중 다른 것들은 제 2 패킷에 관한 것임 ―, 상기 제 2 디코더를 제어하여 상기 제 2 디코더가 상기 제 1 패킷의 모든 제 2 서브-패킷들의 디코딩을 완료하면, 상기 제 2 디코더가 제 2 패킷 완료 표시를 생성하도록 하기 위한 코드; 및
    상기 컴퓨터로 하여금 제어 회로를 제어하여 상기 제어 회로가 패킷 완료 표시를 생성하기 위해 상기 제 1 및 제 2 패킷 완료 표시들을 사용하도록 하기 위한 코드를 포함하고,
    상기 패킷 완료 표시는, 상기 제 1 또는 제 2 디코더 중 하나가 상기 패킷의 서브-패킷을 디코딩하는 시간 동안 생성되지 않으나, 상기 제 1 패킷 완료 표시가 상기 제 1 디코더로부터 수신되고 상기 제 2 패킷 완료 표시가 상기 제 2 디코더로부터 수신된 이후에만 생성되는, 컴퓨터-판독가능 매체를 포함하는, 컴퓨터 프로그램 물건.
  33. 제32항에 있어서, 상기 제 1 디코더는 중단 없이 상기 제 1 패킷의 상기 제 1 서브-패킷들 및 상기 제 2 패킷의 상기 제 1 서브-패킷들을 디코딩하고, 상기 제 2 디코더는 중단 없이 상기 제 1 패킷의 상기 제 2 서브-패킷들 및 상기 제 2 패킷의 상기 제 2 서브-패킷들을 디코딩하는, 컴퓨터 프로그램 물건.
KR1020107024595A 2008-04-01 2009-03-10 복수의 디코더들, 제어기 및 태스크 명령들을 이용하는 효율적인 병렬 서브-패킷 디코딩 KR101141818B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US4155808P 2008-04-01 2008-04-01
US61/041,558 2008-04-01
US12/400,124 US8665996B2 (en) 2008-04-01 2009-03-09 Efficient parallel sub-packet decoding using multiple decoders
US12/400,124 2009-03-09
PCT/US2009/036709 WO2009123838A2 (en) 2008-04-01 2009-03-10 Efficient parallel sub-packet decoding using multiple decoders

Publications (2)

Publication Number Publication Date
KR20110000747A true KR20110000747A (ko) 2011-01-05
KR101141818B1 KR101141818B1 (ko) 2012-05-07

Family

ID=41117186

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107024595A KR101141818B1 (ko) 2008-04-01 2009-03-10 복수의 디코더들, 제어기 및 태스크 명령들을 이용하는 효율적인 병렬 서브-패킷 디코딩

Country Status (7)

Country Link
US (1) US8665996B2 (ko)
EP (2) EP2281358B1 (ko)
JP (1) JP5474928B2 (ko)
KR (1) KR101141818B1 (ko)
CN (1) CN101981852B (ko)
TW (1) TW200947932A (ko)
WO (1) WO2009123838A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9678754B2 (en) * 2010-03-03 2017-06-13 Qualcomm Incorporated System and method of processing hierarchical very long instruction packets
US20110280133A1 (en) * 2010-05-11 2011-11-17 Qualcomm Incorporated Scalable scheduler architecture for channel decoding
US20110299442A1 (en) * 2010-06-04 2011-12-08 Sairamesh Nammi Methods and apparatus for controlling location for starting decoding of sub-packets of a communication packet
US9329872B2 (en) * 2012-04-27 2016-05-03 Esencia Technologies Inc. Method and apparatus for the definition and generation of configurable, high performance low-power embedded microprocessor cores
CN104427530B (zh) * 2013-08-29 2019-05-31 锐迪科(重庆)微电子科技有限公司 一种控制信道检测方法及装置
US9455758B1 (en) 2015-05-18 2016-09-27 The Regents Of The University Of Michigan Ultra-low power long range transceiver
US11502715B2 (en) * 2020-04-29 2022-11-15 Eagle Technology, Llc Radio frequency (RF) system including programmable processing circuit performing block coding computations and related methods
US11411593B2 (en) 2020-04-29 2022-08-09 Eagle Technology, Llc Radio frequency (RF) system including programmable processing circuit performing butterfly computations and related methods

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481743A (en) 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
KR100262453B1 (ko) 1996-08-19 2000-08-01 윤종용 비디오데이터처리방법및장치
US6263023B1 (en) * 1998-10-15 2001-07-17 International Business Machines Corporation High definition television decoder
US7227589B1 (en) * 1999-12-22 2007-06-05 Intel Corporation Method and apparatus for video decoding on a multiprocessor system
JP3910777B2 (ja) 2000-01-14 2007-04-25 株式会社エヌ・ティ・ティ・ドコモ 復号装置
US7292772B2 (en) 2000-05-29 2007-11-06 Sony Corporation Method and apparatus for decoding and recording medium for a coded video stream
WO2002067435A1 (en) 2001-02-23 2002-08-29 Koninklijke Philips Electronics N.V. Turbo decoder system comprising parallel decoders
US6996767B2 (en) * 2001-08-03 2006-02-07 Combasis Technology, Inc. Memory configuration scheme enabling parallel decoding of turbo codes
US7571369B2 (en) 2005-02-17 2009-08-04 Samsung Electronics Co., Ltd. Turbo decoder architecture for use in software-defined radio systems
US7720017B2 (en) 2005-03-11 2010-05-18 Qualcomm Incorporated Parallel turbo decoders with multiplexed output
JP2007006382A (ja) 2005-06-27 2007-01-11 Matsushita Electric Ind Co Ltd 受信装置および反復復号方法
WO2007101041A1 (en) 2006-02-22 2007-09-07 Qualcomm Incorporated Method and apparatus for sending signaling information via channel ids
JP2007288766A (ja) * 2006-03-24 2007-11-01 Sanyo Electric Co Ltd 復号方法ならびにそれを利用した復号装置および受信装置
JP4992900B2 (ja) 2006-08-02 2012-08-08 富士通株式会社 受信装置及びその復号方法

Also Published As

Publication number Publication date
WO2009123838A2 (en) 2009-10-08
EP2512056B1 (en) 2014-08-20
CN101981852A (zh) 2011-02-23
US20090245430A1 (en) 2009-10-01
JP5474928B2 (ja) 2014-04-16
CN101981852B (zh) 2013-10-23
TW200947932A (en) 2009-11-16
US8665996B2 (en) 2014-03-04
EP2281358B1 (en) 2012-08-29
JP2011517210A (ja) 2011-05-26
KR101141818B1 (ko) 2012-05-07
WO2009123838A3 (en) 2009-12-10
EP2281358A2 (en) 2011-02-09
EP2512056A1 (en) 2012-10-17

Similar Documents

Publication Publication Date Title
KR101141818B1 (ko) 복수의 디코더들, 제어기 및 태스크 명령들을 이용하는 효율적인 병렬 서브-패킷 디코딩
KR101257320B1 (ko) 다수의 무선 인터페이스 표준들을 구현하기 위한 재구성가능한 무선 모뎀 서브-회로들
KR20120091406A (ko) 오프-라인 태스크 리스트 아키텍처
US8214719B1 (en) Long latency protocol for hard disk controller interface
JP5216766B2 (ja) シンボルレートハードウェアアクセラレータ
JP2009506682A (ja) ギガビット/10ギガビット・イーサネット(登録商標)・システムにおける明示的フロー制御
EP2672483B1 (en) Data processing system with retained sector reprocessing
AU2004221088A2 (en) Pre-empting low-priority traffic with high-priority traffic
US20150295860A1 (en) Method and system for remotely configuring an ethernet switch using ethernet packets
US6275498B1 (en) Extended PHY addressing
US20220029927A1 (en) Electronic device and frame transmission method of electronic device
KR102220178B1 (ko) 업링크 송신을 위한 자원 승인
US20200241588A1 (en) Hard disk monitoring system and monitoring method using complex programmable logic device
US8582685B2 (en) Apparatus and method for encoding a signal
US20080316978A1 (en) Transmit and receive transition accelerator
KR20070080989A (ko) 통신 시스템에서 반복 복호 장치 및 방법
EP2448126A1 (en) Decoding apparatus, method, and program
US20060029167A1 (en) Apparatus and method for sharing viterbi decoder in mobile communication system
EP3761540A1 (en) Mitigating viterbi decoder processing latency in wireless systems
US9135008B2 (en) Device and method for performing conditional bitwise set/clear/toggle manipulations in a general purpose register
KR101678723B1 (ko) 그룹 프레임 전송 방법, 상기 방법을 수행하는 통신 장치 및 그룹 프레임 수신 방법, 상기 그룹 프레임을 수신하는 사용자 단말
EP1972126A1 (en) A method for high speed framing and a device having framing capabilities
US20040223552A1 (en) System and method for information decoding using batched processing of independent parameters
CN1703879A (zh) 低等待时间的无线电/基带接口协议
US20140112348A1 (en) Traffic flow management within a distributed system

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

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee