KR101257320B1 - 다수의 무선 인터페이스 표준들을 구현하기 위한 재구성가능한 무선 모뎀 서브-회로들 - Google Patents

다수의 무선 인터페이스 표준들을 구현하기 위한 재구성가능한 무선 모뎀 서브-회로들 Download PDF

Info

Publication number
KR101257320B1
KR101257320B1 KR1020107023931A KR20107023931A KR101257320B1 KR 101257320 B1 KR101257320 B1 KR 101257320B1 KR 1020107023931 A KR1020107023931 A KR 1020107023931A KR 20107023931 A KR20107023931 A KR 20107023931A KR 101257320 B1 KR101257320 B1 KR 101257320B1
Authority
KR
South Korea
Prior art keywords
task
memory
wcsmsc
processor
instructions
Prior art date
Application number
KR1020107023931A
Other languages
English (en)
Other versions
KR20100122527A (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 KR20100122527A publication Critical patent/KR20100122527A/ko
Application granted granted Critical
Publication of KR101257320B1 publication Critical patent/KR101257320B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • G06F15/7842Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

플렉시블하고 재구성가능한 디지털 시스템(예를 들어, 무선 모뎀)은 서브회로들의 세트를 포함한다. 각각의 서브회로는 태스크 매니저 및 데이터 스트림에 대해 한 타입의 동작을 수행하기 위한 소정량의 구성가능한 하드웨어 회로를 포함한다. 서브회로의 태스크 매니저는 서브회로의 구성가능한 하드웨어를 구성 및 제어할 수 있다. 중앙 프로세서는 강결합 메모리 내에 태스크 리스트들의 세트를 유지함으로써 서브회로들의 동작을 구성 및 조작한다. 각각의 태스크 리스트는 대응하는 서브회로에 대한 태스크 명령들을 포함한다. 서브회로의 태스크 매니저는 그것의 태스크 리스트로부터 태스크 명령들을 판독하고, 상기 명령들에 의해 지시되는 바와 같은 그것의 연관된 하드웨어 회로를 제어한다. 타임스탬프 태스크 명령 및 푸시 태스크 명령 및 태스크 리스트 아키텍처는 모뎀 서브회로들로 하여금 제 1 무선 인터페이스 표준 또는 제 2 무선 인터페이스 표준에 따라 동작하도록 용이하게 재구성되게 한다.

Description

다수의 무선 인터페이스 표준들을 구현하기 위한 재구성가능한 무선 모뎀 서브-회로들{RECONFIGURABLE WIRELESS MODEM SUB-CIRCUITS TO IMPLEMENT MULTIPLE AIR INTERFACE STANDARDS}
본 발명은 데이터 스트림을 프로세싱하기 위해 함께 동작하는 다수의 서브회로들을 포함하는 디지털 시스템의 제어에 관한 것이고, 더 구체적으로 본 발명은 오프-라인 태스크 리스트들을 사용하여 무선 모뎀 서브회로들의 제어에 관한 것이다.
본 출원은 35 U.S.C.§119 하에서 출원번호가 61/039,774이고 출원일이 2008년 3월 26일인 가출원 및 출원번호가 61/040,654이고 출원일이 2008년 3월 29일인 가출원의 우선권을 주장하며, 상기 가출원들은 여기에 참조로 통합된다.
디지털 데이터 프로세싱 시스템은 때때로 몇몇의 더 작은 서브-동작들로 나누어질(break down) 수 있는 다수의 동작들을 수반한다. 한 가지 기법, 예를 들어, 무선 통신 시스템 변조기/복조기(MODEM) 집적 회로들에서 공통적으로 사용되는 기법에서, 별개의 전용 하드웨어 회로가 다양한 서브-동작들 각각을 수행하도록 설계된다. 상기 별개의 전용 하드웨어 회로들은 중앙 프로세서에 의해 제어된다. 종종 다양한 별개의 전용 하드웨어 회로들을 통과하는 메인 데이터 경로들이 존재한다. 프로세서 상에서 실행되는 소프트웨어는 실시간 클록(RTC)과 관련하여 동작한다. 상기 실시간 클록에 의해 결정되는 바와 같은 특정 시간 구간들에서, 상기 소프트웨어는 프로세서로 하여금 하드웨어 회로들이 원하는 방식으로 데이터 스트림 내의 데이터를 프로세싱하도록 하드웨어 회로들 중 다양한 것들을 구성 또는 제어하게 한다. 상기 프로세서는 인터럽트들을 사용하여 특정 조건들을 통지(alert)받을 수 있다. 예를 들어, 프로세서는 특정 하드웨어 회로가 데이터의 프로세싱을 완료했음을 인터럽트를 통해 알 수 있고, 이 인터럽트에 응답하여, 상기 프로세스는 데이터를 프로세싱하는 후속적인 하드웨어 회로를 개시할 수 있다. 상기 프로세서는 예외적인 핸들링을 수행할 때 호출될 수 있다.
도 1(종래 기술)은 무선 MODEM 집적 회로(1)의 수신 채널의 일부분의 간략화된 블록 다이어그램이다. 이 집적 회로에서, 프로세서(2)는 메모리(3)의 외부에서 코드를 실행하고, 다양한 하드웨어 회로들(3-8)을 구성한다. 집적 회로를 구성하기 위해, 프로세서(2)는 구성될 하드웨어 회로 내의 구성 레지스터들로 버스(9)를 통해 구성 정보를 기록한다. 참조 번호 10은 하드웨어 회로(4) 내의 구성/제어 레지스터들의 세트를 식별한다. 프로세서(2)는 또한 통상적으로 다양한 하드웨어 회로들을 제어한다. 프로세서(2)는, 예를 들어, 하드웨어 회로의 동작을 개시할 수 있거나 또는 제어 정보를 하드웨어 회로의 제어 레지스터들로 기록함으로써 자신의 동작을 변경할 수 있다. 상기 프로세서는 또한 버스(9)를 통해 하드웨어 회로에 의해 출력되는 선택된 데이터를 판독할 수 있고, 상기 데이터에 기초하여 결정할 수 있고, 이후 버스(9)를 통해 선택된 구성/제어 레지스터들로 구성/제어 정보를 판독함으로써 하드웨어 회로들 중 하나 이상이 데이터에 기초하여 동작하는 방식을 변경할 수 있다. 개별 하드웨어 회로들(4-8) 역시 통상적으로 라인들(11)을 통해 전달된 인터럽트들을 통해 특정 조건들을 프로세서(2)에 통지한다. 일 예에서, 특정 하드웨어 회로는 특정 시간에서 특정 동작을 수행하기 시작할 것이다. 소프트웨어 실행은 실시간 클록(16)으로부터 수신된 인터럽트 신호에 응답하여 메인 루틴(12)의 실행으로부터 인터럽트 서브루틴들(13-15) 중 적절한 하나로 점프한다. 서브루틴의 실행시 인터럽트 시간에 바로 후속하여 요구되는 바와 같이, 특정 하드웨어 회로를 구성 또는 제어한다. 따라서 다양한 하드웨어 회로들(4-8)은 프로세서(2)에 의해 지시되는 바와 같이 특정 시간들에서 또는 특정 이벤트들에 응답하여 원하는 기능들을 수행하도록 제어될 수 있다.
도 1의 아키텍처가 많은 애플리케이션들을 잘 동작시키고 이점들을 가지지만, 특정 단점들 역시 가진다. 예를 들어, 프로세서(2)는 스루풋이 제한될 수 있으며, 버스, 예를 들어 버스(9)를 통한 기록은 바람직하지 않게 느릴 수 있다. 이 문제는 프로세서(2)가 많은 구성/제어 레지스터들로 기록하기 위한 상당한 구성/제어 정보를 가질 수 있다는 점으로 인해 커질 수 있다. 제 2의 잠재적인 문제는 프로세서(2)가 동시에 또는 거의 동시에 둘 이상의 하드웨어 회로의 동작을 개시하려 할때 호출될 수 있다는 점이다. 그러나, 프로세서(2)는 순차적으로 명령들을 실행한다. 이 문제에 대한 한 가지 해법에 있어서, 개별 하드웨어 블록들은 구성/제어 레지스터들의 다수의 세트들을 가진다. 프로세서(2)는 미리 하드웨어 회로들에서 구성/제어 레지스터들의 미사용된 세트들로 기록하고, 이후 다수의 하드웨어 세트들이 개시될 시간에 상기 프로세서는 여분의 구성/제어 레지스터들 내에 미리 공급된 구성/제어 정보를 사용하여 동작을 개시하기 위해 더 작은 횟수들만큼 기록할 수 있다. 그러나, 요구되는 증가된 수의 구성/제어 레지스터들을 제공하는 것은 바람직하지 않다.
제 1 양상에서, 디지털 시스템은 제 1 버스에 의해 메모리에 강결합되는(tightly coupled) 프로세서를 포함한다. 상기 디지털 시스템은 서브회로들의 세트를 더 포함한다. 각각의 서브회로는 한 타입의 데이터 프로세싱을 수행하기 위한 소정량의 구성가능한 전용 하드웨어 회로 및 태스크(task) 매니저를 포함한다. 서브회로의 태스크 매니저는 서브회로의 구성가능한 하드웨어를 구성 및 제어할 수 있다. 동작시, 시스템의 프로세서는 서브회로들의 동작을 구성하고, 메모리 내에 태스크 리스트들의 세트를 유지함으로써 그들의 동작 및 타이밍을 조작(orchestrate)한다. 각각의 태스크 리스트는 각각이 서브회로들 중 하나에 대응하는 태스크 명령들을 포함한다. 각각의 서브회로의 태스트 매니저는 제 2 버스를 통해 메모리 내의 그것의 대응하는 태스크 리스트 중에서 태스크 명령들을 판독한다. 제 2 버스를 통한 태스크 매니저의 메모리 액세스들은 일반적으로 제 1 버스에 의한 프로세서의 메모리 액세스들이 가지는 것보다 더 높은 메모리 액세스 지연들을 가진다. 서브회로들의 태스크 매니저들이 더 느린 제 2의 버스 오프로드들을 통해 메모리에서 태스크 명령들을 판독하면, 상대적으로 느리게 많은 것을 수행해야 하는 프로세서는 제 2 버스를 통해 전송한다. 소프트웨어 실행 지연들은 프로세서가 상대적으로 느린 제 2의 버스를 통해 판독들을 수행해야 함으로 인해 회피된다. 태스크 매니저가 제 2 버스를 통해 태스크 명령을 판독한 이후, 상기 태스크 매니저는 상기 태스크 명령을 해석하고 서브회로의 연관된 구성가능한 하드웨어로 하여금 상기 태스크 명령에 의해 표시되는 바와 같은 동작을 수행하게 한다.
일 예에서, 태스크 리스트들은 "타임스탬프" 타입의 태스크 명령을 포함할 수 있다. 서브회로의 태스크 매니저가 이러한 타임스탬프 태스크 명령을 판독하는 경우, 타임스탬프 태스크 명령에 의해 표시되는 동작은 즉시 수행되는 것이 아니라 타임스탬프에 의해 표시된 시간에서 개시된다. 중앙 월 클록 타이머(central wall clock timer)는 상기 타임스탬프에 의해 표시되는 바와 같은 시간에 언제 도달했는지를 결정하기 위해 사용되는 현재 시간의 표시를 제공한다. 서브회로들의 모든 태스크 매니저들은 하나의 중앙 월 클록 타이머에 의해 공급되는 1회 카운트 표준을 참조한다. 타임스탬프 태스크 명령들을 다양한 서브회로들의 태스크 리스트들로 기록함으로써, 프로세서는 다수의 서브회로들이 특정 동작들을 수행할 시간들을 미리 셋업할 수 있다. 또다른 예에서, 태스크 리스트들은 푸시(push) 태스크 명령들을 포함한다. 서브회로에 의한 푸시 태스크 명령의 실행은 상기 푸시 태스크 명령에 의해 지정된 특정 정보가 태스크 매니저에 의해 제 2 버스를 통해 메모리에 기록되도록 한다. 푸시된 정보가 메모리에 있다면, 프로세서는 이후 상기 정보에 액세스하여 결정을 위해 상기 정보를 사용할 수 있다. 예를 들어, 상기 프로세서는 서브회로들이 추가적인 프로세싱을 수행하는 방식을 변경하기 위해 상기 정보를 사용할 수 있다. 설명된 오프라인 태스크 리스트 아키텍처는 다수의 서브회로들을 포함하는 큰 디지털 시스템들의 설계시의 일반적인 적용가능성을 보여준다. 특히, 오프-라인 태스크 리스트 아키텍처는 개별 하드웨어 프로세싱 서브회로들을 포함하는 디지털 시스템들, 서브회로들의 기능이 데이터의 스트림을 함께 프로세싱하도록 서로에 대해 플렉시블하게 제어되고 타이밍되는 동작들의 설계 시의 특정한 적용가능성을 보여준다.
제 2 양상에서, 모바일 통신 디바이스의 무선 통신 시스템 모뎀은 제 1 버스에 의해 메모리에 강결합되는 프로세서를 포함한다. 또한 모뎀은 복수의 무선 통신 시스템 모뎀 서브회로(WCSMSC)들을 포함한다. 각각의 WCSMSC은 한 타입의 데이터 프로세싱을 수행하기 위한 소정량의 구성가능한 전용 하드웨어 회로 및 태스크 매니저를 포함한다. WCSMSC의 태스크 매니저는 제 2 버스를 통해 메모리로부터 태스크 명령들을 판독할 수 있고, 이후 판독된 태스크 명령들에 의해 표시되는 바와 같은 그것의 연관된 WCSMSC의 제어가능한 하드웨어를 구성 및/또는 제어할 수 있다. WCSMSC들은 함께 재구성가능한 무선 모뎀 수신 채널을 형성한다. 용어 수신 채널은 여기서 베이스밴드 하드웨어 수신기 프로세싱 체인을 지칭한다. WCSMSC들이 메모리에 저장된 태스크 명령들에 의해 표시되는 바와 같은 제 1 방식으로 구성되는 경우 채널은 제 1 무선 인터페이스 표준(예를 들어, LTE)에 따라 통신하도록 구성되는 반면, WCSMSC들이 메모리에 저장된 태스크 명령들에 의해 표시되는 바와 같은 제 2 방식으로 구성되는 경우, 수신 채널은 제 2 무선 인터페이스 표준(예를 들어, UMB 또는 WiMAX)에 따라 통신하도록 구성된다. 타임스탬프 태스크 명령들, 푸시 태스크 명령들, 하드웨어 이벤트 개시형 태스크 명령들, 및 아래 상세한 설명에서 설명되는 다른 타입들의 태스크 명령들은, 예를 들어, 동일한 모뎀 하드웨어를 하나의 무선 인터페이스 표준의 수신 통신들로부터 또다른 무선 인터페이스 표준의 수신 통신들로 스위칭하거나 또는 모뎀 하드웨어의 제조 이후 이루어진 통신 표준 변경들을 수용하기 위해, 하드웨어 설계 변경들 없이 수신 채널(베이스밴드 수신기 프로세싱 체인 하드웨어)의 재구성을 용이하게 하기 위해 태스크 리스트들에서 사용가능하다.
전술내용은 요약이며 따라서 필수적으로 상세내용의 간략화, 일반화 및 생략들을 포함하며, 결과적으로 당업자는 상기 요약이 오직 예시적이며 어떠한 방식으로든 제한되지 않음을 이해할 것이다. 청구항들에 의해서 유일하게 정의된 바와 같은 여기서 설명되는 디바이스들 및 프로세스들의 다른 양상들, 발명상의 특징들 및 이점들은 여기서 설명되는 비-제한적인 상세한 설명에서 명백해질 것이다.
도 1(종래 기술)은 종래의 무선 모뎀 아키텍처를 사용하는 무선 모뎀 집적 회로의 다이어그램이다.
도 2는 한 가지 신규 양상에 따른 모바일 통신 디바이스의 간략화된 다이어그램이다.
도 3은 도 2의 모바일 통신 디바이스의 RF 트랜시버 집적 회로(103)의 더 상세한 다이어그램이다.
도 4는 도 2의 모바일 통신 디바이스의 디지털 베이스밴드 집적 회로(104)의 더 상세한 다이어그램이다.
도 5는 태스크 매니저 기능을 포함하는 예시적인 모뎀 서브회로의 다이어그램이다.
도 6은 태스크 리스트 내의 모든 태스크 명령들이 완료된 태스크 리스트의 다이어그램이다.
도 7은 미실행된 태스크 명령을 포함하는 태스크 리스트의 다이어그램이다.
도 8은 태스크 리스트를 준비하고 유지하기 위해 프로세서에 의해 취해지는 단계들을 예시하는 간략화된 플로우차트이다.
도 9는 태스크 명령의 동작의 실행을 판독하고 개시하기 위해 태스크 매니저에 의해 취해지는 단계들을 예시하는 간략화된 플로우차트이다.
도 10은 도 4의 디지털 베이스밴드 집적 회로(104)의 월 클록(wall clock) 타이머(129)의 간략화된 블록 다이어그램이다.
도 11은 타임스탬프 태스크 명령의 실행을 판독하여 개시할 시에 태스크 매니저에 의해 취해지는 단계들을 예시하는 간략화된 플로우차트이다.
도 12A는 모든 태스크 명령들에 존재하는 공통 헤더의 다이어그램이다.
도 12B는 FFT 태스크 명령의 다이어그램이다.
도 12C는 샘플 버퍼 푸시 태스크 명령의 다이어그램이다.
도 12D는 FFT 및 샘플 버퍼 푸시 태스크 명령의 다이어그램이다.
도 12E는 심볼 버퍼 푸시 태스크 명령의 다이어그램이다.
도 12F는 복조 구성 태스크 명령의 다이어그램이다.
도 12G는 복조 MMSE 태스크 명령의 다이어그램이다.
도 12H는 복조 MRC 태스크 명령의 다이어그램이다.
도 12I는 DDE 구성 태스크 명령의 다이어그램이다.
도 12J는 DDE 클리어 LLR 태스크 명령의 다이어그램이다.
도 12K는 DDE 푸시 태스크 명령의 다이어그램이다.
도 13은 인입 LTE 프레임의 프로세싱동안 다양한 타입들의 프로세싱이 발생하는 시점을 도시하는 타임라인 다이어그램이다.
도 14는 인입 UMB 프레임의 프로세싱동안 다양한 타입들의 프로세싱이 발생하는 시점을 도시하는 타임라인 다이어그램이다.
도 15는 LTE 프레임의 프로세싱동안 FFT WCSMSC의 동작을 예시하는 다이어그램이다.
도 16은 도 15에 예시된 동작들을 수행하기 위해 태스크 리스트가 어떻게 생성될 수 있는지를 예시하는 다이어그램이다.
도 17은 도 4의 디지털 베이스밴드 집적 회로(104)의 DEMOD WCSMSC(141)의 블록 다이어그램이다.
도 18은 도 4의 디지털 베이스밴드 집적 회로(104)의 DDE WCSMSC(142)의 블록 다이어그램이다.
도 2는 일 양상에 따른 하나의 특정 타입의 모바일 통신 디바이스(100)의 매우 간략화된 하이 레벨 블록 다이어그램이다. 이 특정 예에서, 모바일 통신 디바이스(100)는 셀룰러 전화이다. 모바일 통신 디바이스(100)는 (미도시된 몇몇 다른 부분들 중에서) 2개의 안테나들(101 및 102) 및 2개의 집적 회로들(103 및 104)을 포함한다. 집적 회로(103)는 RF 트랜시버 집적 회로이다. RF 트랜시버 집적 회로(103)는 그것이 송신기 및 수신기를 포함하므로 "트랜시버"라 지칭된다. RF 트랜시버 집적 회로(103)는 원칙적으로 아날로그 회로를 포함하는 아날로그 집적 회로이다. 반면, 집적 회로(104)는 원칙적으로 디지털 회로를 포함하는 디지털 집적 회로이다. 집적 회로(104)는 종종 "디지털 베이스밴드 집적 회로" 또는 "베이스밴드 프로세서 집적 회로"라 지칭된다. 모바일 통신 디바이스의 전자회로를 분할하는 다른 방법들이 존재하지만, 이것은 하나의 예시적인 방법이다.
도 3은 RF 트랜시버 집적 회로(103)의 더 상세한 블록 다이어그램이다. 이 특정한 트랜시버는 2개의 트랜시버들을 포함한다. 제 1 트랜시버는 수신 체인(105A) 및 송신 체인(105B)을 포함한다. 제 2 트랜시버는 수신 체인(106A) 및 송신 체인(106B)을 포함한다. 셀룰러 전화(100)가 수신하고 있을 때, 고주파수 RF 신호가 안테나들 중 하나 또는 둘 모두로 수신된다. 안테나(101)에 수신되는 RF 신호에 대해, 상기 신호는 듀플렉서(108), 매칭 네트워크(109), 및 수신 체인(105A)을 통과한다. 상기 신호는 저잡음 증폭기(LNA)(110)에 의해 증폭되고 믹서(111)에 의해 주파수 상에서 하향 변환된다. 결과적인 하향 변환된 신호는 베이스밴드 필터(112)에 의해 필터링되고, 적절하게 제어되는 멀티플렉서(113)를 통해 디지털 베이스밴드 집적 회로(104)로 전달된다. 디지털 베이스밴드 집적 회로(104) 내의 아날로그-대-디지털 변환기(ADC)(114)는 상기 신호를 디지털 샘플들의 스트림으로 변환시킨다. 이후 샘플들의 스트림은 디지털 베이스밴드 집적 회로(104) 내의 수신 채널(115)(도 4 참조)에 의해 프로세싱된다.
셀룰러 전화(100)가 안테나(101)로부터 송신할 예정이라면, 전달될 정보는 디지털 베이스밴드 집적 회로(104)의 송신 채널(116)(도 4 참조)에 의해 프로세싱되고 디지털-대-아날로그 변환기(DAC)(117)에 의해 아날로그 형태로 변환된다. 결과적인 아날로그 신호는 적절하게 제어된 듀플렉서(118)를 통해 RF 트랜시버 집적 회로(103)의 "송신 체인"(105B)으로 공급된다. 베이스밴드 필터(119)는 디지털-대-아날로그 변환 프로세스에 의해 유입된 잡음을 필터링한다. 이후 믹서 블록(120)은 상기 신호를 고주파수 신호로 상향변환한다. 드라이버 증폭기(121) 및 외부 전력 증폭기(122)는 고주파수 RF 신호가 안테나(101)로부터 송신되도록 안테나(101)를 구동하기 위해 고주파수 신호를 증폭시킨다. 모바일 통신 디바이스(100)에서, 안테나들 중 하나 또는 둘 모두가 동작 모드에 따라 사용될 수 있다.
도 4는 도 2의 디지털 베이스밴드 집적 회로(104)의 더 상세한 블록 다이어그램이다. ADC(114), 수신 채널(115), 송신 채널(116) 및 DAC(117)에 추가하여, 디지털 베이스밴드 집적 회로(104)는 프로세서(123), 제 1 버스(124), 및 소정량의 고속 멀티-뱅킹 듀얼 포트 메모리(125)를 포함한다. 프로세서(123)는 제 1 버스(124)를 통해 메모리(125)로부터 판독하고 메모리(125)에 기록할 수 있다. 프로세서(123)는 멀티-코어 프로세서 또는 멀티-스레드형 프로세서이며, 실제로 다수의 프로세서들을 포함할 수 있다. 제 1 버스(124)는 하나의 마스터인 프로세서(123) 및 하나의 슬레이브인 메모리(125)를 포함하는 고속의 포인트-대-포인트 버스이다. 프로세서(123), 제 1 버스(124) 및 메모리(125)는 함께 TCM(Tightly Coupled Memory) 시스템(126)이라 지칭되는 것을 형성한다. 메모리(125)는 프로그램 메모리가 아니라 변수들 및 데이터 및 제어 정보의 저장을 위해 사용되는, 고속의 레벨-2 캐시의, 멀티-포트형이고 멀티-뱅킹된 메모리이다.
추가적으로, 디지털 베이스밴드 집적 회로(104)는 제 2 버스(127), 소정량의 프로그램 메모리(128), 월 클록 타이머(129), 데이터 이동기 블록(130), 코덱 블록(131), 비디오 프로세서 블록(132), 2-대-1 디멀티플렉서들의 세트(133), 및 1-대-2 멀티플렉서들의 세트(134)를 포함한다. 프로그램 메모리(128)는 프로세서(123)에 의해 실행되는 명령들의 프로그램(135)을 저장한다. 월 클록 타이머(129)는 카운터를 증분시키기 위해 외부 크리스탈(136)에 의해 공급되는 레퍼런스 클록 신호를 사용한다. 카운터는 실시간 표시인 카운트 값들의 계속적으로 증분하는 시퀀스를 출력한다. 프로세서(123) 및 제2 버스(127) 상의 다른 회로들은 아래에 더 상세하게 설명되는 바와 같이 제 2 버스(127)를 통해 월 클록 타이머(129)로부터 기록하고 월 클록 타이머(129)로 기록할 수 있다. 메모리(125)가 제 2 버스(127)를 통해 액세스할 수 있는 것보다 더 작은 메모리 액세스 레이턴시를 가지고 메모리(125)는 제 1 버스(124)를 통해 프로세서(123)에 액세스할 수 있다. 도 4의 디지털 베이스밴드 집적 회로(104) 역시 제 2 버스(127)를 통해 외부 플래시 비휘발성 메모리 디바이스(137)로 그리고 외부 동기식 동적 랜덤 액세스 메모리(SDRAM)(138)로 커플링된다. 데이터 이동기 블록(130) 및 프로세서(123)는 아래에 더 상세히 설명되는 바와 같이 제 2 버스(127)를 통해 외부 디바이스(137 및 138)로부터 판독하고 외부 디바이스(137 및 138)에 기록할 수 있다.
수신 채널(115)(베이스밴드 수신 하드웨어)은 여기서 무선 통신 시스템 모뎀 서브회로(WCSMSC)들이라 지칭되는 복수의 기능 블록들(139-142)을 포함한다. WCSMSC들(139-142)은 프론트 엔드 서브회로(139), 고속 푸리에 변환(FFT) 서브회로(140), 복조(DEMOD) 서브회로(141), 및 디매핑/디인터리빙/디코딩(DDE) 서브회로(142)를 포함한다. 여기서 "샘플 버퍼"(143)라 지칭되는 소정량의 메모리는 프론트 엔드 WCSMSC(139)로부터 FFT WCSMSC(140)로의 데이터 전달을 버퍼링시킨다. 여기서 "심볼 버퍼"(144)라 지칭되는 유사한 소정량의 메모리는 FFT WCSMSC(140)로부터 DEMOD WCSMSC(142)로의 데이터 전달을 버퍼링시킨다. 여기서 "타일 버퍼"(145)라 지칭되는 소정량의 메모리는 DEMOD WCSMSC(141)로부터 DDE WCSMSC(142)로의 데이터 전달을 버퍼링시킨다. "디코딩 출력 버퍼"(146)는 DDE WCSMSC(142)로부터 제 2 버스(127)로의 데이터 전달을 버퍼링시킨다. 수신 채널 데이터의 일반적인 경로는 도 4의 좌측에서부터 우측으로 회로들(114, 134, 139, 143, 140, 144, 141, 145, 142, 및 146)을 통해 제 2 버스(127)까지이다.
송신 채널(116)은 또다른 복수의 무선 통신 시스템 모뎀 서브회로(WCSMSC)들(147-150)을 포함한다. WCSMSC들(147-150)은 인코딩/인터리빙/매핑 서브회로(147), 변조 서브회로(148), 역 고속 푸리에 변환(IFFT) 서브회로(149), 및 윈도우 및 추가 서브회로(150)를 포함한다. 송신 채널의 다양한 서브회로들은 예시된 바와 같이 버퍼들(151-154)의 세트에 의해 버퍼링된다. 송신 채널 데이터의 일반적인 경로는 우측에서 좌측으로, 회로들(151, 147, 152, 148, 153, 149, 154, 150, 133, 및 1117)을 통해 RF 트랜시버 집적 회로(103)까지이다.
한 가지 신규한 양상에 있어서, 강결합 메모리 시스템(126)은 예시된 바와 같은 복수의 태스크 리스트들을 저장한다. 각각의 태스크 리스트는 디지털 베이스밴드 집적 회로(104)의 연관된 서브회로에 의한 실행을 위한 태스크 명령들의 시퀀스를 포함한다. 예시된 예에서, 태스크 리스트(TL1)은 FFT WCSMSC(140)에 대한 태스크 명령들을 포함한다. 태스크 리스트(TL2)는 DEMOD WCSMSC(141)에 대한 태스크 명령들을 포함한다. 태스크 리스트(TL3)는 DDE WCSMSC(142)에 대한 태스크 명령들을 포함한다. 태스크 리스트(TL4)는 데이터 이동기 블록(130)에 대한 태스크 명령들을 포함한다. 도 4에 예시되지 않았지만, 메모리(125) 역시 전체로서 송신 채널 회로(116)에 대한, 코덱 블록(131)에 대한, 그리고 비디오 프로세서 블록(132)에 대한 태스크 리스트를 포함한다. 프로세서(123)는 태스크 명령들을 이들 태스크 리스트들에 기록하고, 이들 태스크 리스트를 수정하고, 태스크 리스트들을 삭제하고, 그렇지 않으면 제 1 버스(124)를 통해 원하는 경우 상기 태스크 리스트를 유지할 수 있다. 각각의 태스크 리스트는 순환 버퍼 내의 메모리(125) 내에 유지된다. 각각의 태스크 리스트는, 적절한 서브회로에 의해 실행될 때, 서브회로를 구성 및 제어하는 태스크 명령들을 포함한다. 연관된 서브회로들 각각은 데이터 프로세싱 동작을 수행하기 위한 소정량의 전용 기능 회로 및 제 2 회로에 커플링되는 태스크 매니저 회로를 포함한다. 도 4의 참조 번호 155는 FFT WCSMSC(140)의 태스크 매니저 회로(155)를 식별한다.
도 5는 하나의 대표적인 WCSMSC의 더 상세한 다이어그램이다. 도시된 WCMSC는 FFT WCSMSC(140)이다. 태스크 매니저 회로(155)는 포괄적 (generic) 태스크 매니저부(156), FFT 제어 상태 머신부(177), 포인터 레지스터들의 세트(157-160) 및 DMA (Direct Memory Access) 엔진(161)을 포함한다. FFT WCSMSC(140)는 WCSMSC의 메인 데이터 프로세싱 동작들을 수행하기 위한 소정량의 전용 하드웨어 회로(162)를 포함한다. 전용 하드웨어 회로(162)는 제 1 인터페이스 회로(163)를 통해 버퍼(143)로부터 데이터를 수신할 수 있다. 전용 하드웨어 회로(162)는 제 2 인터페이스 회로(164)를 통해 버퍼(144)로 데이터를 공급할 수 있다. 아래에 더 상세하게 설명되는 바와 같이, 포괄적 태스크 매니저부(156)는 제 2 버스(127)를 통해 메모리(125) 내의 대응하는 태스크 리스트(TL1)로부터, 하나씩, 태스크 명령들을 판독하도록 적응된다. 프로세서(123)는 제 2 버스(127)를 통해 태스크 매니저(155)의 레지스터(159)에 기록 포인터 WR_PTR를 기록할 수 있다. DMA 엔진(161)은 FFT 하드웨어 블록(165)으로부터 정보를 판독하고, 상기 정보를 제 2 버스(127)를 통해 제 2 버스(127) 상의 회로, 예를 들어 메모리(125)에 기록할 수 있다. FFT 제어 회로(177)는 포괄적 태스크 매니저부(156)에 의해 판독되는 태스크 명령들을 분석하고, 이후 FFT 하드웨어 블록(165)을 제어하고 구성하기 위해 신호 컨덕터들(166)을 사용한다. 이러한 방식으로, 태스크 매니저(155)는 샘플 버퍼(143)(도 4 참조)의 특정 부분으로부터의 데이터가 프로세싱을 위한 FFT 전용 하드웨어 회로(162)로 판독되고 전달되도록 인터페이스(163)를 제어할 수 있다. 유사하게, 태스크 매니저(155)는 FFT 전용 하드웨어 회로(162)에 의해 출력되는 데이터가 심볼 버퍼(144)(도 4 참조)의 특정 부분에 기록되도록 인터페이스(164)를 제어할 수 있다. 제 2 버스(127)가 도 5에 그리고 도 4에 예시 및 설명의 용이함을 위해 단일 라인으로서 도시되지만, 제 2 버스(127)는 다양한 WCSMSC들의 태스크 매니저들 각각 내의 포인터 레지스터들로 프로세서(123)를 커플링하는 제 1 서브-버스를 포함할 수 있고, 메모리(125)로 다양한 WCSMSC들의 태스크 매니저들을 커플링시키는 제 2 서브-버스를 더 포함할 수 있다. 포괄적 태스크 매니저(156)는 그것의 하드웨어가 WCSMSC들 각각의 태스크 매니저에서 복제되므로 "포괄적"이라고 지칭된다. 반면, 도 5에서 구형으로 도시된 제어 회로는 제어될 특정 WCSMSC의 태스크 명령들에 대해 특정한 상태 머신 회로이다. 태스크 매니저의 회로는 Verilog 또는 VHDL와 같은 하드웨어 설명 랭귀지로 그것의 다양한 컴포넌트 부분들의 기능을 설명하고, 이후 설명된 기능들을 수행하는 하드웨어 회로 설계를 생성하기 위한 상업적으로 사용가능한 합성 툴을 사용함으로써 구현된다.
도 6은 태스크 리스트를 예시하는 다이어그램이다. 예시된 특정 예에서, 태스크 리스트는 FFT WCSMSC(140)에 대한 태스크 리스트(TL1)이다. 태스크 리스트(TL1)는 메모리(125) 내의 순환 버퍼 내에 저장된다. 순환 버퍼는 레지스터(157) 내의 포인터 START_ADDR에 의해 식별되는 메모리(125) 내의 위치에서 시작한다. 상기 순환 버퍼는 레지스터(158) 내의 포인터 END_ADDR에 의해 식별되는 메모리(125)에서 종료한다. FFT WCSMSC(140)의 태스크 매니저(155)는 태스크 리스트(TL1)를 저장하는 순환 버퍼가 태스크 매니저(155) 내의 레지스터들(157 및 158) 내에 저장되는 START_ADDR 및 END_ADDR에 의해 메모리(125) 내의 어디에서 시작하고 종료하는지를 알고 있다. 이들 레지스터들은 포괄적 태스크 매니저(156)에 액세스 가능하다. 도 6 내의 각각의 사각형은 메모리(125) 내의 워드를 나타낸다. 도 6의 예에서, 태스크 리스트(TL1) 내의 몇몇 태스크 명령들(TASK#1, TASK#2, TASK#3, TASK#4, TASK#5)이 존재한다. 몇몇 태스크 명령들은 다른 것들보다 더 많은 워드들을 포함한다는 점을 유의한다. 포인터 EXEC_PTR는 WCSMSC에 의해 실행되었던 마지막 태스크 명령의 엔드 이후의 다음 위치(다음 워드)를 식별한다. 포인터 WR_PTR는 실행될 마지막 태스크 명령의 마지막 워드의 엔드를 식별한다. 도 6의 예에서, FFT WCSMSC는 태스크 리스트(TL1) 내의 모든 태스크 명령들을 실행한다. 따라서, EXEC_PTR 및 WR_PTR 포인터들은 동일한 위치를 지시한다. 포인터들이 이러한 조건에 있는 경우, 태스크 매니저(155)는 태스크 리스트(TL1)로부터 더 이상의 태스크 명령들을 판독하려 하지 않는다.
도 7은 프로세서(123)가 태스크 리스트(TL1)로 새로운 태스크 명령(TASK#6)을 기록한 이후의 TL1 태스크 리스트를 예시하는 다이어그램이다. 프로세서(123)는 메모리(125) 내의 TL1 태스크 리스트에 태스크 명령(TASK#6)를 추가하고, 이후 새로운 WR_PTR 포인터 값을 제 2 버스(127)를 통해 레지스터(159) 내에 기록함으로써 태스크 매니저(155)의 레지스터(159) 내의 WR_PTR 포인터를 3씩 증분시킨다. 태스크 매니저(155)는 WR_PTR가 업데이트되었던 조건을 검출하고, 제 2 버스(127)를 통해 메모리(125)로부터 다음 태스크 명령(TASK#6)을 판독함으로써 응답한다. 태스크 명령을 판독한 이후, 태스크 매니저(155)는 판독되었던 마지막 태스크 명령 다음에 태스크 리스트 내의 다음 위치를 지시하기 위해 EXEC_PTR를 업데이트한다. 이러한 메커니즘에 의해, 프로세서(123)는 특정 WCSMSC로 하여금 고속 제 1 버스(124)를 통해 WCSMSC에 대한 태스크 리스트로 적절한 태스크 명령들을 기록함으로써 특정 태스크들을 수행하게 한다. 메모리(125) 내의 태스크 리스트가 업데이트 되면, 이후 프로세서(123)는 적절한 WCSMSC의 태스크 매니저가 응답하고, 다음 태스크 명령을 판독하고, 그것을 분석하고, 그것이 지정했던 동작들이 수행되게 하도록 WCSMSC의 WR_PTR를 업데이트하기 위해 제 2 버스(127)를 통해 오직 한번 기록할 필요가 있다.
도 8은 프로세서(123)가 원하는 WCSMSC로 하여금 원하는 동작을 수행할 수 있게 하는 방법을 예시하는 간략화된 플로우차트이다. 제 1 단계(단계 200)에서, 프로세서(123)는 원하는 동작을 수행하도록 WCSMSC에게 명령하는 태스크 명령을 포함하는 메모리(125)에 WCSMSC에 대한 태스크 리스트를 준비한다. 프로세서(123)는, 예를 들어, 전술된 바와 같은 고속 제 1 버스(124)를 통해 메모리(125) 내의 타겟 WCSMSC에 대한 태스크 리스트의 엔드에 태스크 명령을 기록할 수 있다. 제 2 단계(단계 201)에서, 프로세서(123)는 태스크 매니저의 WR_PTR가 새로 추가된 태스크 명령의 엔딩 위치 다음의 태스크 리스트 위치를 지정하도록 더 느린 버스(127)를 통해 타겟 WCSMSC의 타겟 매니저 내의 WR_PTR의 값을 업데이트한다. 태스크 리스트 내의 태스크 명령들의 실행을 개시하기 위해 느린 버스(127)를 통한 오직 한번의 기록이 요구된다.
도 9는 타겟 WCSMSC의 태스크 매니저가 도 8의 프로세서 동작에 응답하는 방법을 예시하는 간략화된 플로우차트이다. 제 1 단계(단계 202)에서, 태스크 매니저는 그것의 WR_PTR가 업데이트되었음을 인지하고, 그 응답으로 메모리(125) 내의 그것의 태스크 리스트에서 다음 태스크 명령을 판독한다. 태스크 매니저는 제 2 버스(127)를 통해 이러한 판독을 수행한다. 이후, 태스크 매니저는 태스크 명령을 분석하고 WCSMSC의 하드웨어 블록부에 공급되는 (예를 들어, 도 5의 컨덕터들(166)을 통해) 제어 및/또는 구성 신호들을 생성한다 (단계 203). 제어 및/또는 구성 신호들은 하드웨어 블록부로 하여금 태스크 명령에 의해 특정되는 동작을 수행하게 한다. 이 동작의 수행은 태스크의 "실행" 또는 태스크 명령의 실행이라 지칭된다. 다음으로, EXEC_PRT이 WR_PTR와 동일하지 않는 경우(단계 204), 판독되고 실행될 태스크 리스트 상의 더 많은 태스크 명령들이 존재한다. 프로세싱은 단계(202)로 리턴한다. 그러나, EXEC_PTR가 WR_PTR와 동일한 경우(단계 204), 수행될 태스크 리스트 상의 더 이상의 태스크 명령들이 존재하지 않는다. 프로세서(123)가 실행될 더 많은 태스크 명령들이 존재한다고 표시하는 WR_PTR를 다시 기록하는 경우에만, 태스크 매니저는 메모리(125)로부터 태스크 명령을 판독하기 위해 단계(202)로 리턴한다. 태스크 매니저는 순환 버퍼로서 메모리(125) 내의 START_PTR 및 END_PTR 사이의 위치들을 다룬다. 따라서, 마지막으로 실행된 태스크 명령이 순환 버퍼의 엔드에 있는 경우, 태스크 매니저는 순환 버퍼의 시작에서 새로 추가된 태스크 명령을 탐색한다. 버퍼 오버플로우 및 언더플로우 에러 체크들이 통합될 수 있다.
일부 태스크 명령들은 여기서 "타임스탬프 태스크 명령들" 또는 "타이밍된(timed) 태스크 명령들"이라 지칭되는 한 가지 타입의 태스크 명령이다. 타임스탬프 태스크 명령은 타임스탬프를 포함하는 필드를 포함한다. 이러한 타임스탬프는 도 4의 클록 타이머 블록(129) 내의 월 클록 카운터에 의해 출력되는 타이머 카운트값에 대응한다. 이러한 타임스탬프 태스크 명령을 판독하는 태스크 매니저는 태스크 명령을 분석하지만 타겟 WCSMSC의 연관된 하드웨어로 하여금 태스크 명령의 타임스탬프 필드 내에 표시된 시간에 도달할 때까지 특정된 동작의 수행을 시작하게 하지 않는다. 따라서, 프로세서(123)는 타임스탬프 태스크 명령들을 다수의 상이한 태스크 리스트들에 기록할 수 있고, 대응하는 태스크 매니저들이 타임스탬프 태스크 명령들을 판독하도록 대응하는 태스크 매니저들의 WR_PTR들을 업데이트할 수 있다. 이들 타임스탬프 태스크 명령들의 모든 타임스탬프들이 동일한 추후 시간에서 세팅되는 경우, 태스크 매니저들은 그들의 개별 하드웨어 블록들이 특정된 동작의 실행을 시작하게 하지 않을 것이다. 도 4의 월 클록 카운터(129)에 의해 유지되는 타임 카운트 값이 타임스탬프 값에 도달하면, 이후, 모든 태스크 매니저들은 프로세서에 의해 이전에 셋업된 바와 같이 그들의 개별 동작들의 실행시 개별 하드웨어 블록들을 동시에 개시할 것이다. 이러한 방식으로, 프로세서(123)가 명령들을 순차적으로 실행한다는 사실에도 불구하고, 프로세서(123)는 동작들을 동시에 수행하도록 다수의 WCSMSC들을 제어할 수 있다.
도 10은 도 4의 월 클록 타이머(129)의 블록 다이어그램이다. 월 클록 타이머(129)는 그것의 카운트가 월 클록 타이머(129)가 그 일부분인 모뎀의 전체 동작 수명(예를 들어, 10년)에 걸쳐 연장(roll over)하지 않는 매우 많은 비트들을 포함하는 32-비트 월 클록 카운터(167)를 포함한다. 따라서, 타이머 카운트 값(168)은 실시간에 대응하고 실시간을 표시한다. 이러한 실시간 표시는 (타임스탬프 태스크 명령들의 사용을 통해) 모뎀의 다양한 서브회로들 모두에 의해 사용가능하며, 따라서, "월 클록 시간"이라 지칭된다. 이 예에서, 월 클록 카운터(167)는 도 4의 수신채널로 전달하는 각각의 샘플에 대해 한번 증분시킨다. 월 클록 카운터(167)를 클로킹(clock)하는 클록 신호는 도 4의 ADC(114)로 라인(170)을 통해 공급되는 동일한 신호 ADC_CLK이다. 월 클록 타이머(129)는 제 2 버스(127)를 통해 기록될 수 있는 제어 레지스터(171)를 포함한다. 월 클록 타이머(129)는 2개의 상이한 무선 인터페이스 표준들에 대한 정확한 샘플링 주파수의 클록 신호들을 생성하는 2개의 위상-고정 루프(PLL)들(172 및 173)을 포함한다. 예시된 예에서, PLL(172)은 LTE(Long Term Evolution) 무선 인터페이스 표준에 대해 요구되는 정확한 15.36 MHz의 클록 신호를 출력하는 반면, PLL(173)은 UMB(Ultra Mobile Broadband) 무선 인터페이스 표준에 대해 요구되는 정확한 9.83 MHz의 클록 신호를 출력한다. 프로세서(123)는 적절한 제어 비트를 제어 레지스터(171)의 비트(174)에 기록함으로써 모뎀에 의해 프로세싱될 통신들에 대한 정확한 샘플링 주파수를 세팅한다. LTE는 당해 기술분야에 알려져 있는 기술이며, "제 3 세대 파트너쉽 프로젝트"(3GPP)라는 명칭의 기구로부터 사용가능한 문서들에 기재된다. UMB는 당해 기술분야에 알려져 있는 기술이며, "제 3 세대 파트너쉽 프로젝트2"(3GPP2)라는 명칭의 기구로부터 사용가능한 문서들에 기재된다.
월 클록 타이머(129) 역시 복수의 프로그램가능 타이머 블록들(175A, 175B 내지 175N)을 포함한다. 이들 프로그램가능 타이머 블록들 각각은 월 클록 카운터(167)에 의한 출력으로서 INIT_VALUE값을 타이머 카운트 값(168)에 비교하도록 제어될 수 있는 비교기를 포함한다. 위에서 설명된 바와 같이, 다양한 WCSMSC들의 태스크 매니저들은 제 2 버스(127)에 커플링된다. 상기 프로그램가능 타이머 블록들(175A, 175B 내지 175N)로의 제 2 버스(127)의 인터페이스로 인해, WCSMSC의 태스크 매니저는 제 2 버스(127)를 통해 적절한 어드레스에 기록함으로써 INIT_V ALUE 및 CONTROL 값을 프로그램가능 타이머에 기록할 수 있다. 프로그램가능 타이머가 이들 INIT_VALUE 및 CONTROL 값들에 의해 정확하게 구성되는 경우, 월 클록 카운터(167)에 의해 출력되는 타이머 카운트 값(168)은 프로그램가능 타이머 블록이 트리거 신호를 어써트(assert)할 INIT_VALUE 에 도달한다. 예를 들어, 도 7의 라인(176)은 제 1 프로그램가능 타이머 블록(175A)에 의해 생성되는 1-비트 디지털 트리거 신호를 전달하는 신호 컨덕터를 식별한다. 이 트리거 신호는 상기 트리거신호가 어써트되는 경우 전용 하드웨어 회로가 그것에 대해 구성되는 동작의 수행을 시작하도록 특정 WCSMSC 내의 전용 하드웨어 회로의 적절한 입력으로의 적절한 하드와이어 접속에 의해 커플링된다. 타임스탬프 태스크 명령을 사용하는 일 특정 예에서, 트리거 신호 컨덕터(176)는 특정 시간에서 시작될 전용 하드웨어 회로에 하드와이어링된다. WCSMSC에 대한 태스크 매니저는 그것의 태스크 리스트를 판독하고 타임스탬프 태스크 명령을 획득한다. 타임스탬프 태스크 명령의 분석의 결과로서, 태스크 매니저는 제 2 버스(127)을 통해 월 클록 타이머 블록(129)에 기록하고 그것의 트리거 신호 출력 리드가 전용 하드웨어 회로 개시 입력 리드에 접속되는 프로그램가능 타이머를 셋업한다. 태스크 매니저는 프로그램가능 타이머의 INIT_VALUE 레지스터로 타임스탬프 태스크 명령으로부터 획득되는 타임스탬프 값을 기록한다. WCSMSC 내의 전용 하드웨어 회로는 이 시점에 태스크 명령들에 의해 특정되는 동작의 수행을 시작하지 않는데, 왜냐하면 트리거 신호가 아직 어써트되지 않았기 때문이다. 지정된 시간에 도달하면, 프로그램가능 타이머 내의 비교기는 월 클록 카운터(167)에 의해 출력되는 것으로서의 타이머 카운트 값(168)이 INIT_VALUE에 매치함을 검출한다. 이 검출의 결과, 비교기는 트리거 신호를 어써트하고, 이에 의해 WCSMSC 내의 하드웨어 회로를 개시한다.
도 11은 타임스탬프 태스크 명령의 사용을 예시하는 간략화된 플로우차트이다. 제 1 단계(단계 206)에서, 태스크 매니저는 제 2 버스(127)을 통해 메모리(125)로부터 다음 태스크 명령을 판독한다. 이후, 태스크 매니저는 타임스탬프 태스크 명령을 분석한다(단계 207). 태스크 명령의 분석의 결과, 태스크 매니저의 제어 회로부는 WCSMSC의 전용 하드웨어 회로부에 공급되는 트리거 신호를 어써트하도록 월 클록 타이머 블록(129)을 셋업한다. 위에서 설명된 바와 같이, 일 예에서, 태스크 매니저는 값들을 제 2 버스(127)를 통해 월 클록 타이머(129)에 기록하고 따라서 적절한 프로그램가능 타이머를 셋업한다. 이후, 타임스탬프에 의해 표시되는 추후 시점에, 월 클록 타이머들은 트리거 신호를 어써트한다(단계(208)). 트리거 신호의 어써트는 특정된 동작을 수행할 시에 WCSMSC의 전용 하드웨어 회로를 개시한다. 예를 들어, 상기 수행되는 동작(들)은 타임스탬프 태스크 명령들의 다른 필드들 내의 값(들)에 의해 결정될 수 있다.
타임스탬프 태스크 명령들을 실행하기 위한 회로를 구현하는 많은 방법들이 존재한다. 타겟 WCSMSC의 태스크 매니저가 트리거 신호를 생성하기 위해 월 클록 내의 프로그램가능 타이머를 셋업하는 위에서 설명된 예는 단지 하나의 가능한 방식일 뿐이다. 또다른 예에서, 타임스탬프 값을 월 클록 시간에 비교하는 비교기는 태스크 매니저 내에 위치되고, 타이머 카운트 값(168)(월 클록 시간)은 상기 비교기에 공급된다.
타임스탬프에 의해 표시되는 시간에서의 태스크 명령의 실행의 개시에 추가하여, 태스크 명령의 실행이 시작될 수 있는 3가지 다른 방식들이 존재한다. 태스크 명령이 실행되어야 하는 방법을 지정하는 4가지 다른 방식들은 "개시 모드들"이라 지칭된다. 전술된 타임스탬프 개시 모드에 추가하여, 즉각적인 개시 모드가 존재한다. 즉각적인 개시 모드에서, 태스크 명령과 연관된 동작은 태스크 매니저가 태스크 명령을 분석하자마자 개시된다. 이후 태스크 명령에 의해 특정된 동작은 임의의 자격 없이도 개시된다. 또한 "HW 이벤트 구동" 개시 모드라 지칭되는 개시 모드가 존재한다. 이 모드에서, 수행될 동작은 특정 하드웨어 이벤트가 발생하는 시간에서 시작된다. 하드웨어 이벤트 구동 태스크 명령의 실행을 개시하기 위해 만들어질 수 있는 하드웨어 이벤트의 예는 하드웨어 태스크 또는 자원 이용가능성의 표시의 완료이다. 또한 "SW 이벤트 구동" 개시 모드라 지칭되는 제 4의 개시 모드가 존재한다. 이 모드에서, 수행될 동작은 소프트웨어가 식별된 레지스터에 기록할 때 개시한다. 어느 특정 개시 모드가 사용되고 있는지는 태스크 명령의 제 1 워드 내의 2비트 필드에 의해 지정된다. 프로세서(123)는 태스크 명령 내의 이들 2비트를 적절한 값으로 세팅함으로써 태스크가 어떻게 실행될지를 특정할 수 있다.
도 12A는 태스크 명령의 제 1의 64-비트의 다이어그램이다. 이들 비트들은 또한 "공통 헤더"라 지칭된다. 제 1의 4비트 "OP"는 op코드이다. 태스크 매니저의 포괄적 태스크 매니저부는 태스크 명령의 타입 및 상기 태스크 명령의 다양한 필드들을 핸들링하는 방법을 결정하기 위해 이 op코드를 디코딩한다. 다음 8개의 "LN"비트들은 수를 홀딩하는 길이 필드이다. 이 수는 태스크 명령 내의 워드의 개수를 표시한다. 태스크 매니저의 포괄적 태스크 매니저부는 많은 워드들을 메모리(125)로부터 판독하는 방법을 결정하기 위해 이 길이 필드를 사용한다. "AT2" 필드는 4개의 개시 모드들 중 어느 것이 사용될지를 표시하는 코드를 포함한다. "RTC_COUNT" 필드는 타임스탬프이다.
도 12B는 "FFT 태스크"라 지칭되는 태스크 명령의 다이어그램이다. FFT 태스크의 공통 헤더는 도 12A에 도시된 바와 같다. 다음 64비트들은 소스 어드레스 필드, 목적지 어드레스 필드, 및 4비트 FFT 사이즈 필드를 포함하는 다양한 필드들을 포함한다. 4비트 FFT 사이즈 필드는 버퍼 내의 다수의 위치들을 포함한다. FFT WCSMSC로 판독되는 각각의 버퍼 값에 대해, FFT WCSMSC는 하나의 값을 출력한다. 소스 어드레스 필드는 FFT WCSMSC가 프로세싱할 데이터를 판독하는 샘플 버퍼(143) 내의 제 1 위치의 어드레스를 포함한다. 목적지 필드는 FFT WCSMSC가 프로세싱된 데이터를 위치시키는 심볼 버퍼(144) 내의 제 1 위치의 어드레스를 포함한다. 샘플 버퍼(143)로부터 판독될 연속적인 버퍼 위치들의 수, 및 심볼 버퍼(144)에 기록될 대응하는 연속적인 버퍼 위치들의 수는 FFT 사이즈 필드에서 설명된다.
도 12C는 "샘플 버퍼 푸시 태스크"라 지칭되는 태스크 명령의 다이어그램이다. 소스 어드레스 필드는 데이터를 푸시해야 하는 샘플 버퍼(143) 내의 개시 어드레스를 표시한다. 목적지 어드레스 필드는 푸시된 데이터가 기록되어야 하는 메모리(125) 내의 개시 어드레스를 표시한다. 샘플 버퍼 푸시 길이 필드는 푸시할 연속적인 버퍼 위치들의 수를 표시하는 수를 포함한다.
도 12D는 "FFT 샘플 버퍼 푸시 태스크"라 지칭되는 태스크 명령의 다이어그램이다. 이 태스크 명령의 실행은 FFT WCSMSC로 하여금 태스크 명령의 제 2의 64비트에 의해 특정되는 바와 같은 FFT 동작을 수행하게 하며, 추가적으로, 이 태스크 명령의 실행은 데이터가 샘플 버퍼(143)로부터 메모리(125)로 푸시되게 한다.
도 12E는 "심볼 버퍼 푸시 태스크"라 지칭되는 또다른 푸시 태스크 명령의 다이어그램이다. 이 태스크 명령의 실행은 다수의 개별적으로 특정된 버퍼 위치들로 하여금 FFT WCSMSC(140)에 의해 심볼 버퍼(144)로부터 메모리(125)로 푸시되게 한다. 이 태스크 명령의 공통 헤더는 도 12A에 설명되는 바와 같다. 푸시되는 값들은 목적지 어드레스 필드에 의해 표시되는 어드레스에서 시작하는 연속적인 위치들에서 메모리(125)에 기록될 것이다. 푸시될 개별 값들의 위치들은 소스 어드레스 필드들의 시퀀스에 의해 표시된다. 태스크 명령의 워드들의 수, 및 따라서 푸시될 값들의 수는 "Num_Symbols" 필드에서 설명된다.
도 12F는 "복조 구성 태스크"라는 명칭의 태스크 명령의 다이어그램이다. 도 12G는 "복조 MMSE 태스크"라는 명칭의 태스크 명령의 다이어그램이다. 도 12H는 "복조 MRC 태스크"라는 명칭의 태스크 명령의 다이어그램이다. 일반적으로, 복조 구성 태스크는 일반적으로 더 자주 변경되는 복조 MMSE 및 복조 MRC 태스크 명령들에서 설명되는 파라미터들에 비해, 상대적으로 정적인 DEMOD WCSMSC 디코딩부(141)에 대한 구성 파라미터들을 포함한다. 사용에 있어서, 단일의 복조 구성 태스크는 DEMOD WCSMSC(141)를 구성하도록 사용되고, 및 이후 복조 MMSE 태스크 명령들 또는 복조 MRC 태스크 명령들의 시퀀스가 후속하여 DEMOD WCSMSC가 개별 복조 동작들을 수행하게 한다. 수행될 수 있는 두 가지 일반적인 타입들의 복조 동작들인 최소 평균 제곱 에러(MMSE) 타입 복조 또는 최대 비 조합(MRC) 타입 복조가 존재한다. 복조 MMSE 태스크 명령들은 MMSE 타입 복조를 수행하기 위해 사용되는 반면, 복조 MRC 태스크 명령들은 MRC 타입의 복조를 수행하기 위해 사용된다.
도 12I는 "DDE 구성 태스크"라 지칭되는 태스크 명령의 다이어그램이다. 위에서 설명되는 복조 구성 태스크의 경우에서와 같이, DDE 구성 태스크는 상대적으로 정적인 DDE WCSMSC(142)에 대한 구성 파라미터들을 포함한다. 중요한 하나의 필드는 1비트의 "SCE" 소프트 결합 인에이블 필드이다. 만약 이 비트가 세팅된다면, DDE WCSMSC(142)의 디코더부는 이전 전송으로부터의 데이터의 HARQ 프로토콜에 따른 현재 전송으로부터의 데이터와의 소프트 결합을 수행하도록 구성된다.
도 12J는 "DDE 클리어 LLR 태스크"라 지칭되는 태스크 명령의 다이어그램이다. 이 태스크의 실행은 DDE WCSMSC(142)의 소프트 결합 버퍼(도 18의 LLR 버퍼 참조) 내의 데이터가 클리어되게 한다.
도 12K는 "DDE 푸시 태스크"라 지칭되는 태스크 명령의 다이어그램이다. 이 태스크의 실행은 정보가 메모리(125)에 푸시되게 한다. DDE WCSMSC(142)의 디매핑부에 의해 출력되는 정보는 "디매핑 푸시 TCM 목적지 어드레스" 필드에 의해 지정되는 바와 같은 메모리(125) 내의 위치들로 푸시된다. DDE WCSMSC(142)의 디코딩부에 의해 출력되는 정보는 "디코딩 푸시 TCM 목적지 어드레스"에 의해 지정되는 바와 같은 메모리(125) 내의 위치들로 푸시된다. DDE WCSMSC 디코딩부(142)에 의해 수행되는 많은 동작들 중 하나는 수신된 데이터가 성공적으로 디코딩되었는지의 여부를 결정하기 위해 순환 중복 검사(CRC)를 수행하는 것이다. CRC 검사 통과 또는 실패의 여부는 상태 정보이다. 적절한 값을 가지는 2-비트 PSH 필드의 세팅은 상기 상태 정보가 "디코딩 푸시 TCM 목적지 어드레스" 값 내의 어드레스에 대한 알려진 오프셋을 가지는 메모리(125)로 푸시되게 한다.
도 12A-12K에 설명된 태스크 명령들은 도 4의 디지털 베이스밴드 집적 회로(104)에 사용되는 태스크 명령들 중 일부의 예들일 뿐이다. 여기서 설명되는 신규한 오프라인 태스크 리스트 방법을 사용하는 통상적인 설계에 있어서, 도 4의 디지털 베이스밴드 집적 회로(104)의 경우에서와 같이, 태스크 매니저를 가지는 WCSMSC들 각각에 의해 실행되도록 정의되는 많은 태스크 명령들이 존재한다. 다른 태스크 명령들은 DPICH XFER 태스크, CPICH XFER 태스크, 데이터 이동기 태스크, 분산 수집 태스크, 음성 출력 푸시 태스크, VDEC 출력 푸시 태스크, TDEC 출력 푸시 태스크, ACK/NACK 검출 푸시 데이터 태스크, TX 프레임 상태 푸시 데이터 태스크를 포함한다.
도 13은 수신 채널이 인입 LTE 프레임을 프로세싱하는 예 동안 언제 다양한 타입들의 프로세싱이 발생하는지를 예시하는 타임라인 다이어그램이다. 도 14는 인입 UMB 프레임의 수신 채널 프로세싱의 예 동안 언제 다양한 타입들의 프로세싱이 발생하는지를 예시하는 타임라인 다이어그램이다. LTE 예에서, 7개의 OFDM 심볼 FFT 동작들의 결과들은 상기 결과들이 복조 동작에서 프로세싱되기 전에 수집된다는 점을 유의한다. 도 13에서, T0'-T6'라고 표시된 화살표들은 7개의 FFT 프로세싱 태스크들의 결과들의 시점을 지정한다. 도 13의 화살표들 T0-T6은 이들 7개의 FFT 프로세싱 태스크가 시작되는 시점을 지정한다. 제어 채널 복조는 FFT 프로세싱 결과들 T6'이 생성된 직후의 시점에서 시작하여 수행된다. 제어 채널 정보의 복조 및 디코딩 이후, 7개의 심볼들의 트래픽 채널 데이터는 도 13에 예시된 바와 같은 시간들에서 시작 및 종료하여 복조 및 디코딩된다. 반면, 도 14의 UMB에 있어서, 심볼 레이트 호핑 모드에서, 복조 태스크들 및 디코딩 태스크들은 각각의 OFDM 심볼에 대해 수행된다. 순환 프리픽스 당 샘플들의 수는 도 13의 LTE 예에서와는 상이하다. LTE 송신을 수신하기 위해 요구되는 프로세싱의 타입들과 UMB 송신을 수신하기 위해 요구되는 프로세싱의 타입들 간에 많은 상이한 포맷 및 타이밍 차이들이 존재한다. 그럼에도 불구하고, 상기 동작들의 타입들은 많은 유사성들을 가진다. 송신들의 두가지 타입들 모두의 수신 프로세싱에 있어서, 다음 동작들이 수행된다: FFT 프로세싱, 복조 및 디매핑/디인터리빙/디코딩. 따라서, 하나의 신규한 양상에 있어서, 무선 모뎀의 수신 채널의 WCSMSC들은 동일한 하드웨어가 2개의 무선 인터페이스 표준들(LTE 또는 UMB) 중 어느 하나에서 송신들을 전달하기 위해 사용가능하도록 오프라인 태스크 리스트들에 의해 구성 및 제어된다. 일 예에서, 프로세서(123)(도 4 참조)에 의해 실행되는 프로그램(135)은 초기에, 집적 회로(104)의 파워 업 이전에, 외부 플래시 메모리(137)에 저장된다. 파워 업시에, 프로그램은 제 2 버스(127)를 통해 집적 회로(104)로 판독되고 프로그램 메모리(128)로 로딩된다. 프로세서(123)는 프로그램 메모리로부터 프로그램(135)을 실행한다. 프로그램(135)은 프로세서(123)가 메모리(125) 내에서 태스크 리스트들을 생성(fashion) 및 제어하는 방법을 지시하고 따라서 집적 회로(104)의 다양한 서브회로들이 구성되는 방법 및 그들의 동작들이 개시되는 방법 및 이들 서브회로들이 무선 통신들을 수신 및 송신하기 위해 함께 동작하는 방법을 결정한다. 하나의 모드에서, 프로그램(135)의 지시 하에서 프로세서(123)는 집적 회로(104)의 다양한 서브회로들이 제 1 무선 인터페이스 표준(예를 들어, LTE)에 따라 통신하기 위해 함께 동작하도록 태스크 리스트들을 생성 및 제어하고, 제 2 모드에서, 프로그램(135)의 지시 하에서 프로세서(123)는 집적 회로(104)의 다양한 서브회로들이 제 2 무선 인터페이스 표준(예를 들어, UMB)에 따라 통신하기 위해 함게 동작하도록 태스크 리스트들을 생성 및 제어한다. 한 모드로부터 또다른 모드로의 변경은 WCSMSC 서브회로들의 적절한 재구성가능성으로 인한 어떠한 하드웨어의 재설계도 수반하지 않는다. 표준들의 변경을 수용하기 위한 디지털 베이스밴드 집적 회로(104)의 프로그래밍은 플렉시블하고 이해하기 쉬운 태스크 명령들 및 사용되는 오프라인 태스크 리스트 아키텍처에 의해 용이해진다.
태스크 리스트 아키텍처의 일 양상에 있어서, 모뎀의 특정 WCSMSC에서 하드웨어 형태로 구현되는 프로세싱이 표준에서의 변경들로 인해 통신 표준과 호환가능하지 않게 되는 경우, 그리고 WCSMSC 하드웨어가 변경된 표준이 새로운 요건들을 수용하도록 설계되지 않은 경우라 할지라도, 동일한 디지털 베이스밴드 집적 회로(104)는 일반적으로 상기 변경된 표준에 따라 동작하도록 상대적으로 용이하게 수정될 수 있다. WCSMSC가 요건들이 변경된 동작을 수행한다기 보다는, 푸시 태스크 명령은 WCSMSC가 상기 동작을 수행하는데 사용되는 데이터를 푸시하기 위해 사용된다. 프로세서(123)는 메모리(125)로부터 푸시된 데이터에 액세스하고, 소프트웨어에서 변경된 표준에 의해 요구되는 새로운 타입의 프로세싱을 수행하고, 이후 소프트웨어 프로세싱의 결과들에 기초하여 데이터 경로 내의 후속하는 WCSMSC들을 제어한다. 프로세서(123)는 적절한 경우 개별 WCSMSC들의 태스크 리스트들을 수정함으로써 후속적인 WCSMSC들을 제어한다. 따라서, 선택된 전용 하드웨어 서브회로는 수신 및 송신 채널로부터 효과적으로 제거될 수 있고, 이후 상기 효과적으로 제거된 서브회로는 원하는 경우 종종 소프트웨어 구현으로 대체될 수 있다.
도 15는 인입 LTE 프레임의 한 슬롯이 프로세싱되는 예에서 FFT WCSMSC(140)의 동작을 예시한다. 프로세서(123)는 ADC_CLK 신호가 관련된 LTE 표준에 대해 정확한 샘플링 주파수(이 경우, 15.36 MHz)가 되도록 월 클록 타이머(129)를 초기에 구성한다. ADC 샘플들의 인입 스트림은 샘플들이 연속적인 버퍼 위치들에 기록되도록 샘플 버퍼(143)에 기록된다. 도 13에 표시되는 바와 같이, LTE 예에서, OFDM 심볼은 1024개의 샘플들을 포함한다. 상기 심볼들에 선행하는 프리픽스들은, 80개 샘플들의 길이를 가지는 마지막 프리픽스에 대한 것을 제외하고는, 72개 샘플들의 길이가 된다. 샘플 버퍼(143)에 나타날 때의 인입 샘플들의 스트림은 "샘플 버퍼"라고 라벨링된 열로 도 15에 도시된다. 다양한 심볼들 및 프리픽스들에 대응하는 샘플 버퍼(143)의 어드레스들은 우측의 다음 열에서 설명된다. FFT WCSMSC(140)에 의해 수행될 FFT 동작의 결과는 샘플 버퍼(143)로부터 판독되는 각각의 샘플 값에 대해 심볼 버퍼(144)로 출력값을 위치시키는 것을 포함한다. 따라서, "심볼 버퍼"라고 라벨링된 도 15의 열은 심볼들의 시퀀스를 도시한다. 샘플 버퍼로부터의 프리픽스 샘플 값들은 사용되지 않으며 FFT 동작에서 무시된다. 프리픽스 값들은 FFT WCSMSC(140)을 지나 수신 채널 아래쪽을 통해 전달되지 않을 것이다. 따라서, 도 15의 "심볼 버퍼"열의 1024개 위치 심볼들은 임의의 중재 프리픽스들 없이 서로 인접한 것으로 도시된다.
도 16은 FFT WCSMSC(140)에 대한 태스크 리스트가 도 13 및 15에 요약된 LTE FFT 프로세싱을 수행하기 위해 생성될 수 있는 방법을 예시한다. 태스크 리스트 내의 제 1 태스크(TASK#1)는 도 15에 예시된 바와 같이 어드레스(X+72)에서 시작하는 샘플 버퍼(143)로부터 샘플들을 판독하는 것이다. 그것은 도 15에 예시된 바와 같이 어드레스(Y)에서 시작하는 심볼 버퍼(144)로 결과들을 기록하는 것이다. 판독된 샘플들 및 기록된 심볼값들의 수는 1024이다. FFT 동작은 모든 샘플들이 FFT WCSMSC(140)으로 판독된 이후에만 개시될 수 있다. 따라서 FFT 동작 자체가 시작되어야 하는 시간은 타이머 카운트 값(168)이 값 X+1024+72에 도달하는 시간이다. 도 16의 가장 오른쪽 열의 상위 4개의 엔트리들은 "FFT 태스크" 내의 연관된 필드들에 설명되어야 하는 값들을 표시한다. 위의 도 12B는 FFT 태스크의 포맷을 설명한다. FFT 태스크 리스트에 추가되는 다음 6개의 태스크들이 유사한 방식으로 생성된다. 샘플 버퍼(143) 내의 시작 어드레스들은 샘플 버퍼로부터의 샘플들의 판독시 프리픽스 샘플 값들을 스킵하도록 특정된다. 7개의 FFT 동작들이 수행된 이후, 모든 심볼에 대해 하나씩, 복조 동작들은 도 13에 예시된 시간 T7'에서 시작할 수 있다.
그러나, 예시된 예에서, 특정 타입의 채널 추정 동작이 먼저 프로세서(123)에 의해 이루어져야 한다. 채널 추정 동작은 그 자신이 전용 하드웨어 내에서 수행되도록 하는 것이 아니라 오히려 프로세서(123)에 의해 더 플렉시블한 소프트웨어 내에서 더 유리하게 수행되는 동작의 일 예로서 여기서 설명된다. 특정 파일럿 신호 샘플들은 LTE 표준에 의해 특정되는 패턴으로 심볼 버퍼 내의 위치들 주위에 확산된다. 따라서, 도 16의 TASK#8은 도 12E에서 설명되는 심볼 버퍼 푸시 태스크이다. "심볼 버퍼 푸시 태스크" 명령 내의 소스 어드레스 필드들은 이들 파일럿들이 발견되는 심볼 버퍼(144) 내의 위치들이다. 개시 모드는 즉시 모드인 것으로 특정된다. FFT WCSMSC(140)에 의한 푸시 태스크 명령의 실행 이후, 프로세서(123)는 소프트웨어에서 특정 채널 추정 동작을 수행하기 위해 메모리(125) 내의 파일럿 정보를 사용한다. DEMOD WCSMSC(141)에 의해 수행되는 복조에서 사용되는 복조 파라미터들(예를 들어, 채널 추정 파라미터들 및 간섭 추정 파라미터들)은 채널 추정의 결과에 의존한다. 제시된 예에서, 프로세서(123)는 DEMOD WCSMSC(141)에 대한 태스크 리스트에 기록되는 복조 태스크 명령들의 다양한 REAL 및 IMAG 파라미터 필드들에 이들 파라미터들을 제공함으로써 이들 복조 파라미터들을 변경한다. 예를 들어, 만약 MMSE-타입 복조가 사용될 예정이면, 상기 파라미터들은 도 13에서 바로 직후의 시간 T7'에서 시작하는 것으로 예시되는 복조 동작을 개시하는 복조 MMSE 태스크 명령(도 12G 참조)에 제공된다.
소프트웨어로 프로세서(123)에 의해 수행되고 이후 그 결과들이 후속적인 프로세싱을 제어하기 위해 태스크 명령에서 사용되는 동작의 또다른 예는 ACK/NACK 프로세싱의 예이다. DDE 푸시 태스크(도 12K 참조)는 DDE WCSMSC(142)에 대한 푸시 리스트에 위치된다. 이 태스크 명령 내의 2-비트 PSH 필드는 DDE WCSMSC(142)의 태스크 매니저로 하여금 CRC 검사의 결과들을 메모리(125)로 푸시하도록 세팅된다. 이 예에서, 프로세서(123)는 푸시된 CRC 검사 정보를 리트리브하고, 상기 정보를 사용하여 디코딩이 성공하였는지 또는 디코딩이 실패하였는지의 여부를 결정한다. 디코딩이 성공한 경우, 수신된 트래픽 데이터는 HARQ 소프트 결합에 사용되지 않을 것이다. 따라서, 프로세서(123)는 DDE WCSMSC(142)의 디코딩 부분 내의 소프트 결합 버퍼가 클리어되도록 DDE WCSMSC(142)에 대한 태스크 리스트로 DDE 클리어 LLR 태스크(도 12J 참조)를 기록할 수 있다. 0으로 세팅된 그것의 소프트 결합 인에이블(SCE) 비트를 포함하는 DDE 구성 태스크 명령(도 12I 참조) 역시 DDE WCSMSC(142)에 의해 소프트 결합을 디스에이블시키기 위해 태스크 리스트에 기록될 수 있다. 또한 프로세서(123)는 송신 채널(116)에 대한 태스크 리스트로 적절한 태스크 명령을 기록함으로써 ACK 메시지가 송신되게 할 수 있다. 반면, 프로세서(123)가 디코딩이 실패했다고 결정하는 경우, 프로세서(123)는 DDE 소프트 버퍼를 클리어하지 않을 것이며, 후속적인 송신으로부터의 정보가 마지막으로 실패했던 전송으로부터의 버퍼링된 정보와 소프트 결합되도록 소프트 결합을 디스에이블시키지 않을 것이다. 또한, 프로세서(123)는 송신 채널(116)에 대한 태스크 리스트로 적절한 태스크 명령을 기록함으로써 NACK 메시지가 송신되게 할 수 있다.
도 17은 도 4의 DEMOD WCSMSC(141)의 블록 다이어그램이다. DEMOD WCSMSC(141)은 태스크 매니저 회로(300), IQ 패처(fetcher)(301), 채널 추정 회로(302), MMSE/MRC 복조기 엔진(303), 및 기록 매니저(304)를 포함한다. 태스크 매니저 회로(300)는 포괄적 태스크 매니저부(305), 포인터 레지스터들을 포함하는 레지스터들의 세트(306), AHB 버스 인터페이스(307), 복조기 제어 상태 머신 부(308), 및 프리-태스크 레지스터들의 세트(309)를 포함한다. 포괄적 태스크 매니저부(305)는 마스터로서 제 2 버스(127)의 AXI 버스부와 인터페이싱한다. AHB 버스 인터페이스(307)는 슬레이브로서 제 2 버스(127)의 AHB 버스부와 인터페이싱한다. 데이터의 일반적 흐름은 심볼 버퍼(144)로부터의 파이프라인화된 데이터 경로를 통해, DEMOD WCSMSC(141)를 통해, 타일 버퍼(145)까지이다. 태스크 매니저(300)는 강결합 메모리(tightly coupled memory)(125)로부터 태스크 명령들을 판독하기 위해 AXI 버스 인터페이스를 사용한다. 프로세서(123)는 AHB 버스에 대해서는 마스터로서 동작하고, DEMOD WCSMSC의 내부 레지스터들을 판독하고 상기 레지스터들의 WR_PTR 레지스터(306)를 기록하고 DEMOD WCSMSC(141)를 통해 타일 버퍼(145)를 판독하기 위해 슬레이브 AHB 인터페이스(307)를 사용한다. DEMOD WCSMSC(141)는 3가지 일반적인 타입들의 태스크 명령들, 즉, 실행될 때 수행될 추가적인 복조 동작에 대한 WCSMSC 하드웨어 엔진들에 대한 구성 파라미터들을 로딩하는 구성 태스크 명령, 실행될 때 MMSE 동작에 대한 99개의 파라미터들을 수신하고 복조를 실행하는 MMSE 태스크 명령, 및 실행될 때 MRC 동작에 대한 파라미터들을 수신하고 복조를 실행하는 MRC 태스크 명령을 수행할 수 있다.
동작시, 프로세서(123)는 DEMOD WCSMSC(141)의 레지스터들(306) 내의 WR_PTR를 업데이트하고, 이에 의해 실행할 DEMOD WCSMSC(141)에 대한 적어도 하나의 추가적인 태스크 명령이 존재함을 표시한다. 포괄적 태스크 매니저(305)는 DEMOD WCSMSC(141)에 의한 실행을 위해 강결합 메모리(125) 내에 새로운 태스크 명령이 존재하는지의 여부를 결정한다. 포괄적 태스크 매니저(305)가 또다른 태스크 명령이 존재한다고 결정하는 경우, 포괄적 태스크 매니저(305)는 복조 제어 로직(308)에 통지하여 프리-태스크 레지스터들 부(309)의 레지스터로 제 2 버스(127)를 통해 태스크 명령을 판독하기 위해 복조 제어 로직(308)과 함께 동작한다. 포괄적 태스크 매니저(305)는 태스크 명령의 헤더를 분석하는 반면, 복조 제어 로직(308)은 태스크 명령의 나머지를 분석한다. 복조 제어 로직(308)은, 태스크 명령의 분석의 결과들에 따라, DEMOD WCSMSC(141)의 다른 부분들에 구성 파라미터들을 제공한다. 복조 제어 로직(308)은 이후 상기 다른 부분들로 하여금 태스크 명령 내에 그리고 태스크 명령에 의해 특정되는 전체 동작이 수행되도록 다양한 시간들에서 다양한 동작들을 수행하게 한다. 복조 제어 로직(308)은 각각의 태스크 명령에 대한 상이한 상태 머신을 구현한다. 상태 머신들의 기존 상태들에 진입할 시에, 복조 제어 로직(308)은 제어 신호들을 어써트한다. 일 예로 DEMOD WCSMSC의 설계시, 상태 머신들은 하드웨어 설명 랭귀지로 정의되었고, 상기 설명은 상업적으로 이용가능한 합성 툴들을 사용하여 하드웨어에 대해 합성되었다. 태스크 매니저(300)의 제어 하에, IQ 패처(301)는 태스크 명령에 의해 지정된 위치들로부터 IQ 샘플들을 가져오기 위해 심볼 버퍼(144)로부터 판독한다. 인입 I 샘플 값(실수 값) 및 그것의 대응하는 인입 Q 샘플 값(허수 값)은 함께 IQ 샘플을 포함한다. 채널 추정 회로(302)는 채널 추정, 채널 보간 값들의 생성을 개시하고, 생성된 보간 결과들을 대응하는 IQ 샘플들로 정렬하여 IQ 샘플들 및 연관된 보간 결과들은 동시에 MMSE/MRC 엔진(303)에 공급된다. 안테나들(101 및 102) 각각에 대해 하나씩, 2개의 이러한 IQ 패처들이 존재한다. MMSE/MRC 엔진(303)은 (각각의 안테나에 대해 하나씩) IQ 샘플들의 2개의 세트들 및 연관된 채널 추정 값들을 사용하고, 태스크 명령에 의해 결정되는 타입의 변조를 수행하고, 변조 출력 값(I), 변조 출력 값(Q), 및 SNR 값을 출력한다. 활성인 수신 채널들의 수 및 계층들의 수에 따라 MMSE 복조 또는 MRC 복조 어느 것이든 사용된다. 엔진(303)으로 들어가는 값들의 한 세트 및 나오는 한 세트, 들어가는 두 세트들 및 나오는 두 세트들, 또는 들어가는 두 세트들 및 나오는 한 세트가 존재할 수 있다. 기록 매니저(304)는 태스크 매니저(300)에 의해 지시받으며, 여기서 타일 버퍼(145)는 복조 출력 값(I), 복조값(Q), 및 SNR 값의 각각의 세트를 기록하기 위한 것이다. 이러한 방식으로, 복조 제어 로직(308)은 DEMOD WCSMSC(141)로 하여금 한번에 한 톤씩 나가게 하고, 심볼 버퍼(141)로부터 톤을 판독하고 복조를 수행하며, 그 결과를 타일 버퍼에 기록한다. 태스크 명령에 의해 특정되는 모든 이러한 복조가 종료되면, 복조 제어 로직(308)은 상태 레지스터들(306) 내에 태스크-종료(end-of-task) 플래그를 세팅한다. 태스크 명령이 DDE WCSMSC(142)에서 동작을 개시하기 위해 DEMOD WCSMSC(141)로부터 하드웨어 스트로브(strobe) 신호가 출력되어야 한다고 표시하는 경우, 스트로브 신호는 컨덕터(310)로 어써트될 것이다. 컨덕터(310)는 DEMOD WCSMSC(141)로부터 DDE WCSMSC(142)로 확장한다.
도 18은 DDE(디매핑/디인터리빙/디코딩 엔진) WCSMSC(142)의 다이어그램이다. DDE WCSMSC(142)은 2개의 디매핑 엔진들 DEMAP1(400 및 401), 디코더 블록(402)(제 1 비터비 디코더(403), 제 2 비터비 디코더(404), 제 1 터보 디코더(405) 및 제 2 터보 디코더(406)를 포함함), 푸시 엔진(407), AHB 버스 인터페이스(408), 구성 레지스터들 및 상태 레지스터들 및 포인터 레지스터들을 포함하는 레지스터들(409) 및 메모리 인터페이스(410)를 포함한다. 디매핑 엔진들(400 및 401) 각각은 태스크 매니저 기능을 가지지만, 이 기능 중 일부는 공유된다. 예를 들어, AHB 버스 인터페이스(408), 포인터 레지스터들(409) 및 푸시 엔진(407)은 공유되며 도 18의 디매핑 엔진들 외부에 도시된다. 디매핑 엔진(400)은 태스크 매니저 회로(411), 및 언페인트(unpaint) 회로(412), LLR(로그 우도비) 생성기(413), 디스크램블러(414) 및 디 인터리버(415)를 포함하는 데이터 스트림 프로세싱 회로들을 포함한다. 마찬가지로, 디매핑 엔진(401)은 태스크 매니저 회로(416), 언페인트 회로(417), LLR 생성기(418), 디스크램블러(419) 및 디인터리버(420)를 포함한다. 데이터의 일반적인 흐름은 타일 버퍼(415)로부터 디매퍼들(400 및 401)을 통과하여 버스들(422 및 423)을 통해 LLR 버퍼(421)로, 이후 LLR 버퍼(421)로부터 버스(424)를 통해 다시 디코더 블록(402)으로, 디코딩을 통하고, 버스(425)를 통해 디코더 출력 버퍼(146)까지이다. 디매핑 엔진(400)은 디매핑 엔진(402)보다 더 낮은 스루풋 용량을 가지지만, 디매핑 엔진(400)은 또한 더 낮은 전력 소모를 가지며 제어 패킷들의 프로세싱에 제한된다. 디매핑 엔진(400)은 LLR 버퍼(421)에 대한 2개의 판독/기록 채널들을 가지며 따라서, 2개의 상이한 PBRI(Pruned Bit Reversal Interleaver) 어드레스들에서 LLR 버퍼(421)로 한번에 2개의 LLR 값들을 출력할 수 있다. 반면, 디매핑 엔진(401)은 데이터 패킷들의 프로세싱을 위해 사용되며, LLR 버퍼(421)에 대해 6개의 판독/기록 채널들을 가진다. 디매핑 엔진(401)은 6개의 LLR 값들을 동시에 출력하여 6개의 상이한 PBRI 어드레스들에 기록할 수 있다. 디매핑 엔진들(400 및 401)이 병렬로 동작할 것이므로, 각각은 자신만의 태스크 매니저를 가진다. DDE 태스크 명령은 정보가 강결합 메모리(125)로 다시 푸시될 것을 요구할 수 있다. 따라서 DDE WCSMSC(142)는 ABH 슬레이브 인터페이스를 통해 제 2 버스(127)로 커플링되는 푸시 엔진(407)을 포함한다.
동작시, 프로세서(123)는 태스크 명령을 DDE 태스크 리스트 내의 메모리(125)로 위치시키고, 레지스터들(409) 내의 WR_PTR를 업데이트시킨다. 태스크 매니저(416)의 포괄적 태스크 매니저부(426)는 태스크 명령이 DDE WCSMSC(142)에 의한 실행을 위해 존재한다고 결정한다. 포괄적 태스크 매니저(426)는 메모리(125)로부터 태스크 명령을 판독한다. DDE 태스크 명령의 제 1 부분은 디매핑을 제어하기 위한 것인 반면, DDE 태스크 명령의 제 2 부분은 디코딩을 제어하는 것이다. 제어 로직(427)은 블록들(417-420)에 의해 수행되는 디매핑 동작을 구성 및 제어하기 위해 상기 제 1 부분을 사용한다. 제어 로직(427)은 그것이 언제 태스크 명령에 의해 정의되는 바와 같은 특정 동작들을 개시할지를 결정하기 위해 신호 컨덕터(310)를 통해 DEMOD WCSMSC(141)로부터 수신되는 하드웨어 트리거 신호를 사용할 수 있다. 제어 로직(427)은 제어 컨덕터들(미도시)에 의해 블록들(417-420)로 제어 신호들을 전송한다. 디매핑/디인터리빙 동작은 LLR 버퍼(421)로부터의 정보의 판독, 일부 프로세싱, 이후 HARQ(하이브리드 자동 반복 요청) 소프트 결합 동작 시에 LLR 버퍼(421)로의 정보의 후속적인 기록을 포함할 수 있거나, 또는 디매핑/디인터리빙 동작은 임의의 소프트 결합 없이 단지 LLR 버퍼(421)에 기록할 수도 있다. DDE 태스크 명령이 디매핑 동작의 결과들이 메모리(125)로 푸시되어야 함을 표시한다면, 제어 로직(427)은 푸시 엔진(407)으로 하여금 상기 표시된 정보를 제 2 버스(127)를 통해 메모리(125)로 푸시하게 한다. 디매핑/디인터리빙 동작이 수행되었고 그 결과가 LLR 버퍼(421)에 있는 경우, 제어 로직(427) 및 디코더 태스크 기록기(428)는 디코딩 동작을 수행하는 디코더 블록 하드웨어를 구성 및 제어하기 위해 태스크 명령의 제 2 부분을 사용한다. 디코더 태스크 기록기(428)는 디코더 블록(402)의 동작을 트리거링하고, 이 때 디코딩시에 사용할 적절한 구성 및 파라미터들을 디코더 블록(402)에 공급한다. 디코더 블록(402)은 LLR 버퍼(421)로부터 프로세싱할 정보를 판독하고, 태스크 명령의 제 2 부분에 따라 그리고 제어 로직(427)에 의해 구성 및 제어되는 바와 같이 디코딩을 수행하고, 그 결과를 디코딩 출력 버퍼(146)에 기록한다. 태스크 명령이 디코딩 동작이 메모리(125)로 푸시되어야 함을 표시하는 경우, 제어 로직(427)은 푸시 엔진(407)으로 하여금 상기 표시된 정보를 제 2 버스(127)를 통해 메모리(125)로 푸시하게 한다. 이러한 방식으로 푸시될 수 있는 정보의 예는 디코더 블록(402)에 의해 생성되는 CRC 통과/실패 정보이다.
하나 이상의 예시적인 실시예들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우, 상기 기능들은 컴퓨터-판독가능한 매체 상에 하나 이상의 명령들 또는 코드로서 저장되거나 이를 통해 송신될 수 있다. 컴퓨터-판독가능한 매체는 한 장소로부터 또다른 장소로 컴퓨터 프로그램의 이전을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체 모두를 포함한다. 저장 매체는 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 임의의 사용가능한 매체일 수 있다. 제한이 아닌 예시로서, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디크스 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드 수단을 전달 또는 저장하는데 사용할 수 있으며 범용 또는 전용 컴퓨터, 또는 범용 또는 전용 프로세서에 의해 액세스가능한 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속은 적절하게 컴퓨터-판독가능한 매체라 지칭된다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회서(DSL) 또는 자외선, 라디오 및 마이크로파와 같은 무선 기술들을 사용하는 다른 원격 소스로부터 송신되는 경우, 상기 동축 케이블, 광섬유 케이블, 트위스티드 페어, 디지털 가입자 회서(DSL) 또는 자외선, 라디오 및 마이크로파와 같은 무선 기술들은 매체의 정의 내에 포함된다. disk 및 disc는, 여기서 사용되는 바와 같이, 컴팩트 disc(CD), 레이저 disc, 광학 disc, 디지털 다목적 disc(DVD), 플로피 disk 및 블루-레이 disc를 포함하며, 여기서, disk들은 일발적으로 데이터를 자기적으로 재생하는 반면, disc들은 레이저들을 사용하여 데이터를 광학적으로 재생한다. 상기 항목들의 조합들 역시 컴퓨터-판독가능한 매체의 범위 내에 포함되어야 한다.
특정 실시예들이 설명의 목적으로 전술되었지만, 이 발명의 교지들은 일반적인 적용가능성을 가지며, 전술된 특정 실시예들에 제한되지 않는다. 오프라인 태스크 리스트 아키텍처는 LTE, UMB, 또는 WiMAX와 같은 임의의 특정한 무선 인터페이스 표준에 따라 통신하는 모뎀들을 구현하는데 사용되도록 한정되는 것이 아니라, 오히려 오프라인 태스크 리스트 아키텍처는 다른 무선 인터페이스 표준들에 대해 일반적인 적용가능성을 가지고 데이터 스트림에 대해 상이한 동작들을 구현하기 위해 다수의 서브회로들을 가지는 큰 디지털 시스템들에 대해 더 넓은 적용가능성을 가진다. 비록 제 1 프로세서가 제 1 버스를 통해 강결합 메모리로 명령들을 기록하고 태스크 매니저들이 제 2 버스를 통해 강결합 메모리로부터 태스크 명령들을 판독하는 예가 전술되었지만, 이는 단지 하나의 예이다. 다른 예들에서, 프로세서 및 태스크 매니저들은 동일한 버스를 통해 태스크 명령들을 저장하는 메모리에 액세스한다. 따라서, 설명된 특정 실시예들의 다양한 양상들의 다양한 수정예, 적응들 및 조합들은 아래에서 설명되는 청구항들의 범위로부터 벗어남이 없이 구현될 수 있다.

Claims (38)

  1. 집적 회로로서,
    제 1 태스크 리스트 및 제 2 태스크 리스트를 저장하는 메모리;
    제 1 버퍼;
    제 2 버퍼;
    제 3 버퍼;
    상기 메모리에 커플링되는 버스;
    상기 버스를 통해 상기 메모리로부터 상기 제 1 태스크 리스트의 태스크 명령들을 판독하도록 적응되는 제 1 무선 통신 시스템 모뎀 서브-회로(Wireless Communication System Modem Sub-Circuit; WCSMSC) ― 상기 제 1 태스크 리스트의 제 1 태스크 명령은 소스 어드레스 필드 및 목적지 어드레스 필드를 포함하고, 상기 소스 어드레스 필드는 상기 제 1 버퍼 내의 어디에 상기 제 1 WCSMSC에 의해 수행될 제 1 동작에 대한 입력 데이터가 저장되는지를 식별하는 소스 어드레스 값을 포함하고, 상기 목적지 어드레스 필드는 상기 제 2 버퍼 내의 어디에 상기 제 1 WCSMSC가 상기 제 1 동작의 데이터 결과들을 기록할지를 식별하는 목적지 어드레스 값을 포함하고, 상기 제 1 태스크 리스트의 제 2 태스크 명령은 상기 제 1 WCSMSC로 하여금 식별된 데이터를 상기 메모리로 기록하게 하는 푸시 태스크 명령임 ― ;
    상기 버스를 통해 상기 메모리로부터 상기 제 2 태스크 리스트의 태스크 명령들을 판독하도록 적응되는 제 2 WCSMSC ― 상기 제 2 태스크 리스트의 제 1 태스크 명령은 제 2 동작을 수행하도록 상기 제 2 WCSMSC를 구성하고, 상기 제 2 태스크 리스트의 제 2 태스크 명령은 소스 어드레스 필드 및 목적지 어드레스 필드를 포함하고, 상기 소스 어드레스 필드는 상기 제 2 버퍼 내의 어디에 상기 제 2 WCSMSC에 의해 수행될 상기 제 2 동작에 대한 입력 데이터가 저장되는지를 식별하는 소스 어드레스 값을 포함하고, 상기 목적지 어드레스 필드는 상기 제 3 버퍼 내의 어디에 상기 제 2 WCSMSC가 상기 제 2 동작의 데이터 결과들을 기록할지를 식별하는 목적지 어드레스 값을 포함함 ― ; 및
    상기 제 1 및 제 2 태스크 리스트들을 유지하도록 적응되는 프로세서 ― 상기 프로세서는 결정을 하기 위하여 상기 푸시 태스크 명령의 결과로서 상기 메모리에 기록된 상기 데이터를 사용함 ―
    를 포함하는,
    집적 회로.
  2. 제1항에 있어서,
    상기 결정은 채널 추정 결정인,
    집적 회로.
  3. 제1항에 있어서,
    상기 결정은 확인응답(ACK) 메시지가 생성되어야 하는지 또는 부정확인응답(NACK) 메시지가 생성되어야 하는지에 대한 결정인,
    집적 회로.
  4. 제1항에 있어서,
    상기 결정은 소프트 결합 동작이 발생해야 하는지 또는 발생하지 않아야 하는지의 여부에 대한 결정인,
    집적 회로.
  5. 제1항에 있어서,
    상기 결정은 복조 파라미터의 결정인,
    집적 회로.
  6. 제1항에 있어서,
    상기 프로세서는 상기 결정에 적어도 부분적으로 기초하여 상기 메모리에 태스크 명령을 기록하는,
    집적 회로.
  7. 제1항에 있어서,
    상기 제 2 WCSMSC는 구성가능한 복조 회로이고,
    상기 결정은 복조 파라미터의 결정이고,
    상기 프로세서는 상기 제 2 태스크 리스트의 상기 제 1 태스크 명령이 상기 결정된 복조 파라미터를 포함하도록 상기 제 2 태스크 리스트로 상기 제 2 태스크 리스트의 제 1 태스크 명령을 기록하도록 추가적으로 적응되는,
    집적 회로.
  8. 제1항에 있어서,
    상기 메모리에 기록된 상기 식별되는 데이터는 순환 중복 검사(CRC)가 성공했는지 또는 실패했는지의 여부에 대한 표시를 포함하는,
    집적 회로.
  9. 제1항에 있어서,
    상기 제 1 WCSMSC는 고속 푸리에 변환 동작을 수행하는 구성가능한 회로이고,
    상기 제 2 WCSMSC는 복조 동작을 수행하는 구성가능한 회로이고,
    상기 제 1 및 제 2 WCSMSC들은 무선 통신 모뎀의 수신 채널의 일부분들인,
    집적 회로.
  10. 제1항에 있어서,
    상기 제 1 WCSMSC는 복조 서브-회로이고,
    상기 제 2 WCSMSC는 디코딩을 수행하는 서브-회로이고,
    상기 제 1 및 제 2 WCSMSC들은 무선 통신 모뎀의 수신 채널의 일부분들인,
    집적 회로.
  11. 제1항에 있어서,
    상기 제 1 및 제 2 WCSMSC들은 상기 제 1 및 제 2 WCSMSC들이 일부분들인 무선 통신 모뎀이 제 1 무선 인터페이스 표준에 따라 통신할 수 있도록 특정 태스크 명령들의 실행에 의해 제 1 방식으로 구성가능하고,
    상기 제 1 및 제 2 WCSMSC들은 상기 제 1 및 제 2 WCSMSC들이 일부분들인 상기 무선 통신 모뎀이 제 2 무선 인터페이스 표준에 따라 통신할 수 있도록 다른 태스크 명령들의 실행에 의해 제 2 방식으로 구성가능한,
    집적 회로.
  12. 삭제
  13. 삭제
  14. 장치로서,
    메모리;
    상기 메모리에 복수의 태스크 명령들을 저장하는 프로세서; 및
    복수의 무선 통신 시스템 모뎀 서브-회로(WCSMSC)들을 포함하는 재구성가능한 무선 모뎀 수신 채널
    을 포함하고,
    상기 재구성가능한 무선 모뎀 수신 채널은 상기 복수의 WCSMSC들이 제 1 방식으로 구성되는 경우 제 1 무선 인터페이스 표준에 따라 통신하도록 구성되고,
    상기 재구성가능한 무선 모뎀 수신 채널은 상기 복수의 WCSMSC들이 제 1 방식으로 구성되는 경우 제 2 무선 인터페이스 표준에 따라 통신하도록 구성되고,
    각각의 WCSMSC는 상기 메모리로부터 상기 태스크 명령들 중 하나 이상의 판독의 결과로서 자신을 구성하며,
    상기 프로세서, 제 1 버스 및 상기 메모리는 함께 강결합 메모리 시스템을 형성하고,
    상기 복수의 WCSMSC들은 제 2 버스를 통해 상기 메모리로부터 태스크 명령들을 판독하며,
    상기 메모리 내에 저장된 상기 태스크 명령들 중 하나는 푸시 태스크 명령이고,
    상기 WCSMSC들 중 하나는 상기 푸시 태스크 명령을 판독하고, 상기 푸시 태스크 명령을 실행하여 상기 푸시 태스크 명령에 의해 지정되는 정보를 상기 메모리에 기록하고,
    상기 프로세서는 상기 메모리로부터 상기 정보를 판독하고 상기 정보에 적어도 부분적으로 기초하여 결정하는,
    장치.
  15. 제14항에 있어서,
    상기 결정은 채널 추정 결정인,
    장치.
  16. 제14항에 있어서,
    상기 결정은 복조 파라미터의 결정인,
    장치.
  17. 제14항에 있어서,
    상기 결정은 확인응답(ACK) 메시지가 생성되어야 하는지 또는 부정확인응답(NACK) 메시지가 생성되어야 하는지에 대한 결정인,
    장치.
  18. 제14항에 있어서,
    상기 프로세서는 상기 결정의 결과로서 상기 메모리에 태스크 명령을 기록하는,
    장치.
  19. 방법으로서,
    복수의 무선 통신 시스템 모뎀 서브-회로(WCSMSC)를 제어하기 위해 메모리에 저장된 복수의 태스크 명령들을 사용하는 단계 ― 각각의 WCSMSC는 상기 메모리로부터 태스크 명령을 판독하고 상기 복수의 WCSMSC가 무선 모뎀의 수신 채널의 일부로서 함께 기능하도록 상기 태스크 명령에 의해 특정되는 동작을 수행함 ―; 및
    상기 메모리에 각각의 WCSMSC에 대한 상기 태스크 명령을 기록하기 위해 프로세서를 사용하는 단계 ― 상기 프로세서, 상기 메모리 및 상기 복수의 WCSMSC들은 집적 회로의 일부분들이고, 상기 WCSMSC들 중 하나에 의해 판독되는 태스크 명령은 푸시 태스크 명령이고, 상기 WCSMSC에 의한 상기 푸시 태스크 명령의 실행은 상기 WCSMSC로 하여금 상기 메모리에 상기 푸시 태스크 명령에 의해 지정되는 정보를 기록하게 함 ―
    를 포함하는,
    방법.
  20. 삭제
  21. 제19항에 있어서,
    상기 프로세서는 태스크 명령들의 제 1 세트를 상기 메모리에 기록할 수 있고 이에 의해 상기 수신 채널이 제 1 무선 인터페이스 표준에 따라 통신들을 수신할 수 있도록 제 1 방식으로 상기 복수의 WCSMSC들을 구성하고,
    상기 프로세서는 태스크 명령들의 제 2 세트를 상기 메모리에 기록할 수 있고 이에 의해 상기 수신 채널이 제 2 무선 인터페이스 표준에 따라 통신들을 수신할 수 있도록 제 2 방식으로 상기 복수의 WCSMSC들을 구성하는,
    방법.
  22. 삭제
  23. 제19항에 있어서,
    상기 WCSMSC들 중 하나에 의해 판독되는 태스크 명령은 구성 태스크 명령이고,
    상기 WCSMSC에 의한 상기 구성 태스크 명령의 실행은 상기 WCSMSC가 상기 구성 태스크 명령에 의해 결정되는 특정한 방식으로 구성되게 하는,
    방법.
  24. 제19항에 있어서,
    상기 WCSMSC들 중 하나에 의해 판독되는 태스크 명령은 타임스탬프 태스크 명령이고,
    상기 WCSMSC에 의한 상기 타임스탬프 태스크 명령의 실행은 상기 WCSMSC로 하여금 상기 타임스탬프 태스크 명령에 의해 표시되는 시간에서 동작을 수행하게 하는,
    방법.
  25. 제24항에 있어서,
    상기 방법은 현재 시간의 표시를 출력하는 월 클록 타이머를 유지하는 단계를 더 포함하고,
    상기 현재 시간의 표시는 상기 타임스탬프 태스크 명령에 의해 표시되는 시간에 도달하는 시점을 결정하기 위해 상기 타임스탬프 태스크 명령의 실행 시에 사용되는,
    방법.
  26. 장치로서,
    복수의 태스크 명령들을 저장하도록 적응되는 메모리;
    프로세서, 상기 메모리 및 제 1 버스가 강결합 메모리 시스템을 형성하도록 상기 제 1 버스를 통해 상기 메모리에 커플링되는 상기 프로세서;
    제 2 버스;
    상기 제 2 버스를 통해 상기 메모리로부터 태스크 명령들을 판독하고 데이터의 스트림에 대해 제 1 타입의 동작을 수행하기 위한 제 1 수단; 및
    상기 제 2 버스를 통해 상기 메모리로부터 태스크 명령들을 판독하고 상기 데이터의 스트림에 대해 제 2 타입의 동작을 수행하기 위한 제 2 수단
    을 포함하고,
    상기 데이터의 스트림은 상기 제 1 수단을 통과하고 이후 상기 제 2 수단을 통과하며,
    상기 제 1 및 제 2 수단들은 무선 통신 모뎀의 수신 채널의 일부분들이고,
    상기 수신 채널은 상기 수신 채널이 제 1 무선 인터페이스 표준에 따라 통신들을 수신할 수 있도록 제 1 방식으로 구성가능하고,
    상기 수신 채널은 상기 수신 채널이 제 2 무선 인터페이스 표준에 따라 통신들을 수신할 수 있도록 제 2 방식으로 구성가능하며,
    상기 태스크 명령들 중 하나는 정보가 상기 제 1 수단에 의해 상기 메모리에 기록되게 하는 푸시 태스크 명령이고,
    상기 프로세서는 상기 메모리로부터 상기 정보를 판독하고 상기 프로세서가 이후 상기 메모리에 기록하는 태스크 명령을 결정하기 위해 상기 정보를 사용하는,
    장치.
  27. 제26항에 있어서,
    상기 제 1 타입의 동작은 고속 푸리에 변환(FFT) 동작이고,
    상기 메모리로부터 상기 제 1 수단에 의해 판독되는 상기 태스크 명령들 중 일부는 FFT 동작을 수행하기 위한 명령들이고,
    상기 제 2 타입의 동작은 복조 동작이고,
    상기 메모리로부터 상기 제 2 수단에 의해 판독되는 상기 태스크 명령들 중 일부는 복조 동작을 수행하기 위한 명령들인,
    장치.
  28. 삭제
  29. 제26항에 있어서,
    상기 태스크 명령들 중 하나는 상기 제 2 수단에 의해 상기 메모리로부터 판독되는 하드웨어 신호 이벤트 태스크 명령이고,
    상기 제 2 수단은 상기 제 1 수단으로부터 신호 컨덕터를 통해 수신되는 신호의 수신 시 동작을 개시함으로써 상기 하드웨어 신호 이벤트 태스크 명령을 실행하는,
    장치.
  30. 프로세서-판독가능 매체로서,
    메모리에 저장될 복수의 태스크 명령들 ― 상기 복수의 태스크 명령들은 복수의 무선 통신 시스템 모뎀 서브-회로(WCSMSC)들을 제어하기 위한 것이고, 상기 WCSMSC들 각각은 제 2 버스를 통해 상기 메모리로부터 태스크 명령들을 판독하고 상기 복수의 WCSMSC들이 무선 모뎀의 수신 채널의 일부로서 함께 기능하도록 상기 태스크 명령들에 의해 특정되는 동작들을 수행하도록 적응되고, 상기 태스크 명령들 중 하나는 정보가 상기 WCSMSC들 중 하나에 의해 상기 메모리에 기록되게 하는 푸시 태스크 명령임 ― ; 및
    프로세서로 하여금 제 1 버스를 통해 상기 메모리에 상기 태스크 명령들 중 적어도 일부를 기록하게 하고, 상기 프로세서로 하여금 상기 메모리로부터 상기 정보를 판독하여 상기 프로세서가 이후 상기 메모리에 기록하는 태스크 명령을 결정하기 위해 상기 정보를 사용하게 하기 위한 프로그램 코드
    를 저장하는,
    프로세서-판독가능 매체.
  31. 프로세서-판독가능 매체로서,
    복수의 무선 통신 시스템 모뎀 서브-회로(WCSMSC)들이 제 1 무선 인터페이스 표준에 따라 인입하는 무선 통신을 프로세싱할 수 있도록 제 1 방식으로 상기 복수의 WCSMSC들을 구성하기 위한 제 1의 복수의 태스크 명령들 ― 상기 WCSMSC들 각각은 제 2 버스를 통해 메모리로부터 상기 제 1의 복수의 태스크 명령들 중 하나 이상의 판독의 결과로서 상기 제 1 방식으로 구성됨 ― ;
    상기 복수의 WCSMSC들이 제 2 무선 인터페이스 표준에 따라 인입하는 무선 통신을 프로세싱할 수 있도록 제 2 방식으로 상기 복수의 WCSMSC들을 구성하기 위한 제 2의 복수의 태스크 명령들 ― 상기 WCSMSC들 각각은 상기 제 2 버스를 통해 상기 메모리로부터 상기 제 2의 복수의 태스크 명령들 중 하나 이상의 판독의 결과로서 상기 제 2 방식으로 구성됨 ― ; 및
    프로세서로 하여금 제 1 버스를 통해 상기 메모리에 상기 제 1 및 제 2의 복수의 태스크 명령들의 태스크 명령들 중 적어도 일부를 기록하게 하기 위한 프로그램 코드 ― 상기 제 1의 복수의 태스크 명령들 중 하나는 상기 프로세서가 이후에 제 1 정보를 판독하여 제 1 결정을 하게 하도록 상기 제 1 정보가 상기 WCSMSC들 중 하나에 의해 상기 메모리에 기록되게 하는 제 1 푸시 태스크 명령이고, 상기 제 2의 복수의 태스크 명령들 중 하나는 상기 프로세서가 이후에 제 2 정보를 판독하여 제 2 결정을 하게 하도록 상기 제 2 정보가 상기 WCSMSC들 중 하나에 의해 상기 메모리에 기록되게 하는 제 2 푸시 태스크 명령임 ―
    를 저장하는,
    프로세서-판독가능 매체.
  32. 제31항에 있어서,
    상기 프로세서-판독가능 매체는 상기 메모리를 포함하고, 또한 프로그램 메모리를 포함하며,
    상기 프로그램 메모리는 상기 프로그램 코드를 저장하는,
    프로세서-판독가능 매체.
  33. 집적 회로로서,
    메모리에 태스크 명령들을 저장하도록 적응되는 프로세싱 디바이스; 및
    재구성가능한 무선 모뎀 데이터 경로
    를 포함하고,
    상기 재구성가능한 무선 모뎀 데이터 경로는,
    상기 메모리로부터 태스크 명령들을 판독하고, 제 1 무선 통신 시스템 모뎀 서브-회로(WCSMSC)에 의해 판독되는 상기 태스크 명령들 중 하나 이상에 의해 특정되는 것으로서 자신을 구성하도록 적응되는 상기 제 1 WCSMSC; 및
    상기 메모리로부터 태스크 명령들을 판독하고, 제 2 WCSMSC에 의해 판독되는 상기 태스크 명령들 중 하나 이상에 의해 특정되는 것으로서 자신을 구성하도록 적응되는 상기 제 2 WCSMSC
    를 포함하고,
    상기 제 1 및 제 2 WCSMSC들은 상기 재구성가능한 무선 모뎀 데이터 경로가 제 1 무선 인터페이스 표준에 따라 데이터를 프로세싱하게 구성되도록 상기 메모리로부터의 제 1 태스크 명령들의 판독 결과로서 제 1 방식으로 구성가능하고, 상기 제 1 태스크 명령들 중 적어도 하나는 푸시 태스크 명령이며,
    상기 제 1 및 제 2 WCSMSC들은 상기 재구성가능한 무선 모뎀 데이터 경로가 제 2 무선 인터페이스 표준에 따라 데이터를 프로세싱하게 구성되도록 상기 메모리로부터의 제 2 태스크 명령들의 판독 결과로서 제 2 방식으로 구성가능하고, 상기 제 2 태스크 명령들 중 적어도 하나는 푸시 태스크 명령인,
    집적 회로.
  34. 제33항에 있어서,
    상기 프로세싱 디바이스는 상기 메모리에 대한 전용 메모리 인터페이스를 통해 상기 메모리에 태스크 명령들을 기록하고,
    상기 제 1 및 제 2 WCSMSC들은 상기 전용 메모리 인터페이스를 통과하지는 않고 버스를 통해 상기 메모리로부터 태스크 명령들을 판독하는,
    집적 회로.
  35. 제33항에 있어서,
    상기 재구성가능한 무선 모뎀 데이터 경로는 재구성가능한 수신 채널 데이터 경로 및 재구성가능한 송신 채널 데이터 경로로 이루어지는 그룹으로부터 취해지는,
    집적 회로.
  36. 제1항에 있어서,
    상기 집적 회로는 현재 시간의 표시를 출력하도록 적응된 월 클록 타이머를 더 포함하고,
    상기 현재 시간의 표시는 타임스탬프 태스크 명령에 의해 표시되는 시간에 도달하는 시점을 결정하기 위해 상기 타임스탬프 태스크 명령의 실행 시에 사용되는,
    집적 회로.
  37. 제36항에 있어서,
    상기 타임스탬프 태스크 명령은 상기 집적 회로의 WCSMSC에 의해 실행되고, 상기 WCSMSC에 의한 상기 타임스탬프 태스크 명령의 실행은 상기 WCSMSC로 하여금 상기 타임스탬프 태스크 명령에 의해 표시되는 월 클록 시간에서 동작을 수행하게 하는,
    집적 회로.
  38. 제1항에 있어서,
    상기 집적 회로는 월 클록 시간을 유지하고 상기 월 클록 시간의 표시를 출력하기 위한 수단을 더 포함하고, 상기 월 클록 시간의 표시는 타임스탬프 태스크 명령에 의해 표시되는 시간에 도달하는 시점을 결정하기 위해 상기 타임스탬프 태스크 명령의 실행 시에 상기 집적 회로의 WCSMSC에 의해 사용되는,
    집적 회로.
KR1020107023931A 2008-03-26 2009-03-07 다수의 무선 인터페이스 표준들을 구현하기 위한 재구성가능한 무선 모뎀 서브-회로들 KR101257320B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US3977408P 2008-03-26 2008-03-26
US61/039,774 2008-03-26
US4065408P 2008-03-29 2008-03-29
US61/040,654 2008-03-29
US12/396,270 US8520571B2 (en) 2008-03-26 2009-03-02 Reconfigurable wireless modem sub-circuits to implement multiple air interface standards
US12/396,270 2009-03-02
PCT/US2009/036438 WO2009120480A1 (en) 2008-03-26 2009-03-07 Reconfigurable wireless modem sub-circuits to implement multiple air interface standards

Publications (2)

Publication Number Publication Date
KR20100122527A KR20100122527A (ko) 2010-11-22
KR101257320B1 true KR101257320B1 (ko) 2013-04-23

Family

ID=40785459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107023931A KR101257320B1 (ko) 2008-03-26 2009-03-07 다수의 무선 인터페이스 표준들을 구현하기 위한 재구성가능한 무선 모뎀 서브-회로들

Country Status (7)

Country Link
US (1) US8520571B2 (ko)
EP (1) EP2266053A1 (ko)
JP (1) JP5518831B2 (ko)
KR (1) KR101257320B1 (ko)
CN (1) CN102099801B (ko)
TW (1) TW201001182A (ko)
WO (1) WO2009120480A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458380B2 (en) * 2008-03-26 2013-06-04 Qualcomm Incorporated Off-line task list architecture utilizing tightly coupled memory system
US8787433B2 (en) * 2008-03-28 2014-07-22 Qualcomm Incorporated Wall clock timer and system for generic modem
US8699529B2 (en) * 2008-03-28 2014-04-15 Qualcomm Incorporated Broadband pilot channel estimation using a reduced order FFT and a hardware interpolator
CN101820459A (zh) * 2010-02-10 2010-09-01 青岛海信移动通信技术股份有限公司 一种通信设备的接口电路及一种智能移动通信终端
KR101233214B1 (ko) * 2011-06-02 2013-02-15 엘지전자 주식회사 이동통신 단말기 및 그 동작방법
US9223376B2 (en) 2012-03-23 2015-12-29 Qualcomm Incorporated Managing electrical current in a portable computing device when two or more communications overlap in drawing power during a transmission
US9672519B2 (en) * 2012-06-08 2017-06-06 Fmr Llc Mobile device software radio for securely passing financial information between a customer and a financial services firm
CN104573347A (zh) * 2014-12-26 2015-04-29 北京空间机电研究所 一种确定蜂窝缓冲器在着陆缓冲过程中冲击力的方法
US10320407B1 (en) * 2018-02-06 2019-06-11 Analog Devices Global Unlimited Company Low power synchronization of multiple analog to digital converters
CN108415859B (zh) * 2018-04-28 2023-10-27 珠海一微半导体股份有限公司 一种激光陀螺仪数据的硬件加速电路
TWI692746B (zh) * 2018-11-27 2020-05-01 瑞鼎科技股份有限公司 應用於行動裝置之顯示驅動器的資料快取方法
EP3891594B1 (en) * 2019-05-05 2024-05-15 Yangtze Memory Technologies Co., Ltd. Memory control system with a sequence processing unit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223382A1 (en) * 2004-03-31 2005-10-06 Lippett Mark D Resource management in a multicore architecture

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2311882B (en) 1996-04-04 2000-08-09 Videologic Ltd A data processing management system
US5790817A (en) 1996-09-25 1998-08-04 Advanced Micro Devices, Inc. Configurable digital wireless and wired communications system architecture for implementing baseband functionality
US6128307A (en) 1997-12-01 2000-10-03 Advanced Micro Devices, Inc. Programmable data flow processor for performing data transfers
US6125404A (en) 1998-04-17 2000-09-26 Motorola, Inc. Data processing system having a protocol timer for autonomously providing time based interrupts
US6795442B1 (en) 1998-04-23 2004-09-21 Emulex Design & Manufacturing Corporation System and method for scheduling message transmission and processing in a digital data network
TW381213B (en) 1998-07-31 2000-02-01 Via Tech Inc Surge detector for power supply
FR2785405B1 (fr) 1998-11-04 2001-01-19 Matra Nortel Communications Sequenceur d'actions synchrones dans un systeme a processeur, et circuit integre comportant un tel sequenceur
US6292887B1 (en) 1999-03-31 2001-09-18 International Business Machines Corp. System and method for synchronizing instruction execution with external events
US6577678B2 (en) * 2001-05-08 2003-06-10 Quicksilver Technology Method and system for reconfigurable channel coding
US7028118B2 (en) 2001-12-12 2006-04-11 Texas Instruments Incorporated Multi-channel buffered serial port debugging
US7142551B2 (en) 2002-07-15 2006-11-28 Zarlink Semiconductor V.N. Inc. Hardware implementation of Voice-over-IP playback with support for comfort noise insertion
US7240231B2 (en) 2002-09-30 2007-07-03 National Instruments Corporation System and method for synchronizing multiple instrumentation devices
US7937591B1 (en) * 2002-10-25 2011-05-03 Qst Holdings, Llc Method and system for providing a device which can be adapted on an ongoing basis
US7421694B2 (en) 2003-02-18 2008-09-02 Microsoft Corporation Systems and methods for enhancing performance of a coprocessor
WO2005010798A2 (en) 2003-07-29 2005-02-03 Dan Raphaeli Method and corresponding system for hand-held rf tag locator
US7623894B2 (en) 2003-10-09 2009-11-24 Freescale Semiconductor, Inc. Cellular modem processing
TWI234714B (en) * 2003-12-03 2005-06-21 Ind Tech Res Inst Reconfigurable radio processor architecture
WO2006027855A1 (ja) 2004-09-10 2006-03-16 Hitachi, Ltd. 表示装置及び撮像装置
JP4559192B2 (ja) 2004-11-08 2010-10-06 株式会社日立国際電気 ソフトウェア無線機
ATE429736T1 (de) 2004-11-12 2009-05-15 Analog Devices Inc Zeitsystem und verfahren für ein drahtloses sendeempfangssystem
US20060179436A1 (en) 2005-02-07 2006-08-10 Sony Computer Entertainment Inc. Methods and apparatus for providing a task change application programming interface
JP2006270910A (ja) 2005-02-22 2006-10-05 Mitsubishi Electric Corp ソフトウェア無線携帯電話通信システム及びソフトウェア無線携帯電話端末
GB0519981D0 (en) 2005-09-30 2005-11-09 Ignios Ltd Scheduling in a multicore architecture
US7954114B2 (en) 2006-01-26 2011-05-31 Exegy Incorporated Firmware socket module for FPGA-based pipeline processing
JP4751735B2 (ja) 2006-02-15 2011-08-17 富士通株式会社 通信リンク確立方法および通信リンク確立プログラム
US7693544B2 (en) 2006-06-29 2010-04-06 Intel Corporation System, method and device of receiving signals of a plurality of communication services
US8326906B2 (en) 2007-01-25 2012-12-04 Positron Access Solutions, Inc. Efficient multiple input multiple output signal processing method and apparatus
US8458380B2 (en) 2008-03-26 2013-06-04 Qualcomm Incorporated Off-line task list architecture utilizing tightly coupled memory system
US8787433B2 (en) 2008-03-28 2014-07-22 Qualcomm Incorporated Wall clock timer and system for generic modem

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050223382A1 (en) * 2004-03-31 2005-10-06 Lippett Mark D Resource management in a multicore architecture

Also Published As

Publication number Publication date
JP5518831B2 (ja) 2014-06-11
TW201001182A (en) 2010-01-01
US8520571B2 (en) 2013-08-27
JP2011519445A (ja) 2011-07-07
KR20100122527A (ko) 2010-11-22
CN102099801A (zh) 2011-06-15
US20090245192A1 (en) 2009-10-01
CN102099801B (zh) 2015-01-14
WO2009120480A1 (en) 2009-10-01
EP2266053A1 (en) 2010-12-29

Similar Documents

Publication Publication Date Title
KR101169875B1 (ko) 오프-라인 태스크 리스트 아키텍처
KR101257320B1 (ko) 다수의 무선 인터페이스 표준들을 구현하기 위한 재구성가능한 무선 모뎀 서브-회로들
TWI392298B (zh) 用於使用解調-位元映像來增進數據機解碼器之效能的清零對數概度比(llrs)之方法、裝置及電腦程式產品
EP2512056B1 (en) Efficient parallel sub-packet decoding using multiple decoders, controller and task instructions
US8787433B2 (en) Wall clock timer and system for generic modem
US20080112514A1 (en) Method and system for performing Viterbi decoding using a reduced trellis memory
US20120281790A1 (en) Parallel decoder for multiple wireless standards
US7752530B2 (en) Apparatus and method for a collision-free parallel turbo decoder in a software-defined radio system
US9058108B2 (en) Vector-based matching circuit for data streams
CN107608928B (zh) 一种可配置的解析sdio数据流的装置

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

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee