[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR20070012308A - 위성 위치 신호를 위한 신호 처리 시스템 - Google Patents

위성 위치 신호를 위한 신호 처리 시스템 Download PDF

Info

Publication number
KR20070012308A
KR20070012308A KR1020067004396A KR20067004396A KR20070012308A KR 20070012308 A KR20070012308 A KR 20070012308A KR 1020067004396 A KR1020067004396 A KR 1020067004396A KR 20067004396 A KR20067004396 A KR 20067004396A KR 20070012308 A KR20070012308 A KR 20070012308A
Authority
KR
South Korea
Prior art keywords
memory
subsystem
data
signal processing
mode
Prior art date
Application number
KR1020067004396A
Other languages
English (en)
Inventor
폴 언더브링크
헨리 폴크
스티븐 그로네메이어
키따란잔 다산나카리아
찰스 노르만
로버트 트쏘
니콜라스 반타론
보야 프로틱
Original Assignee
서프 테크놀러지, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서프 테크놀러지, 인코포레이티드 filed Critical 서프 테크놀러지, 인코포레이티드
Publication of KR20070012308A publication Critical patent/KR20070012308A/ko

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/35Constructional details or hardware or software details of the signal processing chain
    • G01S19/36Constructional details or hardware or software details of the signal processing chain relating to the receiver frond end
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/35Constructional details or hardware or software details of the signal processing chain
    • G01S19/37Hardware or software details of the signal processing chain
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/34Power consumption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B1/00Details of transmission systems, not covered by a single one of groups H04B3/00 - H04B13/00; Details of transmission systems not characterised by the medium used for transmission
    • H04B1/69Spread spectrum techniques
    • H04B1/707Spread spectrum techniques using direct sequence modulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B2201/00Indexing scheme relating to details of transmission systems not covered by a single group of H04B3/00 - H04B13/00
    • H04B2201/69Orthogonal indexing scheme relating to spread spectrum techniques in general
    • H04B2201/707Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation
    • H04B2201/70715Orthogonal indexing scheme relating to spread spectrum techniques in general relating to direct sequence modulation with application-specific features

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

위성 포지셔닝 신호를 처리하는 신호 처리 시스템이 기술되어 있다. 이 시스템은 적어도 하나의 프로세서와 다수의 동작 모드 하에서 동작하는 신호 프로세서를 포함한다. 신호 프로세서는, 각각 동작 모드에 응답하여 동적 및 독립적으로 구성가능한 신호 처리 서브시스템, 고속 푸리에 변환(FFT) 서브시스템, 및 메모리 서브시스템 중 적어도 하나를 포함한다. 또한, 상기 시스템은 메모리 서브시스템을 경유하여 신호 처리 서브시스템 및 FFT 서브시스템 간 데이터 전송을 제어하도록 접속하는 컨트롤러를 포함한다. 메모리 서브시스템의 구성가능성은 동작 모드에 따라 메모리 서브시스템을 영역들로 구성하는 것을 포함하고, 상기 각각의 영역은 동작 모드에 따라 다수의 방식 중 하나의 방식으로 액세스가능하다.
위성 포지셔닝, FFT, 데이터 전송 제어

Description

위성 위치 신호를 위한 신호 처리 시스템{SIGNAL PROCESSING SYSTEM FOR SATELLITE POSITIONING SIGNALS}
<관련 출원>
본 출원은 현재 진행중인 이하의 미국특허출원들에 관련되어 있으며, 이들을 우선권 주장한다: 2000년 2월 7일 출원된 09/498,893호; 2000년 6월 27일 출원된 09/604,595호; 2003년 2월 20일 출원된 10/369,853호; 2003년 7월 30일 출원된 10/632,051호; 2002년 7월 12일 출원된 10/194,627호; 2003년 3월 10일 출원된 10/385,198호; 2002년 5월 22일 출원된 10/155,614호; 2001년 7월 20일 출원된 09/910,092호; 2001년 7월 20일 출원된 09/910,404호; 2001년 7월 20일 출원된 09/909,716호; 2002년 9월 16일 출원된 10/244,293호; 2003년 11월 12일 출원된 10/712,789호; 2003년 9월 18일 출원된 10/666,551호; 2000년 4월 18일 출원된 09/551,047호; 2000년 4월 18일 출원된 09/551,276호; 2000년 4월 18일 출원된 09/551,802호; 2000년 4월 18일 출원된 09/552,469호; 2000년 4월 18일 출원된 09/552,759호; 2000년 12월 7일 출원된 09/732,956호; 2000년 12월 11일 출원된 09/735,249호; 2001년 6월 20일 출원된 09/886,427호; 2002년 3월 13일 출원된 10/099,497호; 2002년 3월 18일 출원된 10/101,138호; 2002년 9월 18일 출원된 10/246,584호; 2002년 10월 2일 출원된 10/263,333호; 2002년 12월 4일 출원된 10/309,647호; 2002년 12월 16일 출원된 10/320,932호; 2003년 4월 11일 출원된 10/412,146호; 2003년 4월 25일 출원된 10/423,137호; 2003년 6월 20일 출원된 10/600,174호; 2003년 6월 20일 출원된 10/600,190호; 2003년 8월 19일 출원된 10/644,311호; 2003년 9월 2일 출원된 60/499,961호; 2003년 9월 9일 출원된 10/658,185호; 2003년 10월 28일 출원된 10/696,522호; 2003년 11월 12일 출원된 10/706,167호; 2003년 11월 18일 출원된 10/715,656호; 2003년 11월 24일 출원된 10/722,694호; 2004년 1월 22일 출원된 10/762,852호; 2004년 2월 23일 출원된 60/546,816호; 2004년 2월 23일 출원된 60/547,384호; 2004년 6월 22일 출원된 10/874,637호; 및 미국출원들 60/499,961호 및 60/546,816호를 우선권 주장하여 2004년 9월 2일 출원한 발명의 명칭이 "위성 위치 시스템 수신기의 제어 및 특징"인 출원번호 호인 PCT 국제출원.
<기술 분야>
본 발명의 실시예들은 위성 항법 시스템(global positioning system; "GPS")를 처리하고, 처리된 GPS 신호들 및 관련 기능들을 사용하여 지리학적 위치를 결정하기 위한 시스템 및 방법의 분야에 대한 것이다.
양방향 무선장치, 페이저, 휴대용 텔레비젼, 개인용 컴퓨터(PC), 개인용 통신 시스템(PCS), 개인용 휴대 정보 단말기(PDA), 셀룰러 전화기 또는 이동 전화기, 블루투스® 디바이스, 위성 무선 수신기, NAVSTAR라고도 알려진 GPS(Global Positioning System)와 같은 SPS(Satellite Positioning System), 및 자동차 텔레 마틱 시스템(automotive telematic system)과 같은 무선 디바이스들의 세계적인 이용이 급속한 속도로 증가하고 있다. 그 결과, 요즈음의 경향은 이들 무선 디바이스들에 가능한 한 많은 특징들을 포함시키는 것을 요구하고 있다. 일 예로서, 요즈음에는 넓은 범위의 이들 전자 디바이스들 및 시스템들에 SPS 서비스를 포함시키는 요구가 있다.
GPS 신호들을 처리하기 위한 시스템을 포함하는 SPS 시스템은 GPS 수신기를 가능한 가장 높은 정확도로 가능한 한 빨리 지리학적으로 위치시키는 임무를 달성하도록 일반적으로 설계된 다양한 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. GPS 시스템들은 바로 그 최초의 GPS 유닛이 이용가능하게 된 이후에 매우 유능하게 되어왔다. 반도체 기술과 마이크로프로세서 기술에서의 발전은 이러한 개선된 기능들이 가능하게 되는 것을 도와왔다. 또한, 작고, 빠른 GPS-가능 디바이스들(예를 들어, E911-컴플라이언트(compliant) 셀 폰들)에 대한 소비자 및 정부의 요구는 드라이브 GPS 시스템 설계의 발전을 도와왔다.
본 명세서에서 사용되는 GPS 기능은 GPS 신호들을 수신하고 처리하며, 또한 이 처리된 GPS 신호들을 사용하여 정확한 위치 정보를 생성하는 기능이다. 더욱 더 많은 디바이스들이 GPS 기능을 포함한다. 따라서, 다양한 종류의 제품들의 제조업자들은 GPS 하드웨어 및 소프트웨어를 그들의 제품 설계에 삽입하는 기능을 원하고 필요로 한다. 물론, GPS 하드웨어로는 가능한 한 작은 반도체 다이 공간을 사용하는 것이 바람직하고, GPS 하드웨어 및 소프트웨어 시스템은 메모리 및 전력에 대한 요구가 가능한 한 경제적인 것이 바람직하다.
이러한 제한들 내에서 GPS 시스템을 설계하는 것은 종종 속도, 크기, 이용 전력 등 중에서 일련의 선택을 하게 한다. 따라서 대부분의 기존의 GPS 시스템은 취사선택을 구현한다. 대부분의 기존의 GPS 시스템은 일단 설계되면 유연성이 적거나 없다. 예를 들어, 이들은 임의의 소정의 시간에 가장 효과적으로 수행하기 위해 데이터를 상이한 조건들 하에서 상이하게 처리하거나 저장하기 위해 용이하게 재구성가능하지 않다. 통상적으로, GPS 시스템(독립형 GPS 시스템에서 또는 셀폰과 같은 다른 시스템에서)에 이용가능하게 만들어진 메모리의 양은 수행되는 신호 처리의 유형과 같은 요소들 및 이용가능한 메모리의 절대적 한계에 매우 의존한다.
많은 기존의 GPS 시스템들의 다른 단점은 이들이 대부분의 시간을 용인가능한 시간 한계 내에서 위치를 제공하기 위해 데이터를 돕기 위한 그외의 시스템들에 의존한다는 점이다. 예를 들면, 셀 폰 내의 GPS 시스템은 효과적으로 수행하기 위해 셀룰러 네트워크로부터 시간 지원, 및 가능하게는 그외의 지원을 계속적으로 요구할 수 있다. 기존의 GPS 시스템은 도움 없이 요구된 시간 내에 GPS 신호를 획득할 수 없었을 수도 있다. 이것은 시간 정보가 항상 이용가능하고, 시간 정보의 제공이 그외의 시스템 성능 측면에서 영향을 미치지 않는다면 용인 가능하다. 그러나, 성능 요건들을 만족시키기 위해 보조하는 것에 의존하도록 설계된 시스템은 도움 없이는 만족스럽게 수행하지 못하며, 또한 지원 있거나 지원 없는 상황들 모두에서 잘 수행할 만큼 충분히 유연적이지 못하다.
본 발명의 실시예들은 도면들을 참조하여 설명되어지며, 이 도면들은 한정하 는 것을 의도하는 것은 아니다. 도면들에서, 유사한 참조 번호들은 유사한 구성요소들 또는 작용들을 나타낸다.
도 1은 GPS 시스템의 실시예의 블록도.
도 1A는 베이스밴드(baseband) 칩 시스템의 실시예의 블록도.
도 2는 베이스밴드 칩의 일 실시예의 중요한 서브시스템을 나타내는 블록도.
도 3은 일 실시예에 있어서의 GPS 시스템의 일반적인 데이터 흐름의 개관을 도시하는 블록도.
도 4는 GPS 시스템의 일반적인 데이터 흐름을 더욱 상세하게 도시하는 블록도.
도 5는 일 실시예에서의 서브시스템(1)의 기능 블록들을 도시하는 블록도.
도 6은 일 실시예에서의 서브시스템(1) 분할을 더욱 상세하게 도시하는 블록도.
도 7은 서브시스템(1) 입력 샘플 흐름의 실시예를 도시하는 블록도.
도 8은 일 실시예에서의 서브시스템(2)의 기능 블록들을 도시하는 블록도.
도 9는 서브시스템(2)의 흐름의 다른 실시예를 도시하는 블록도.
도 10은 서브시스템(2) 데이터 흐름 제어의 실시예를 도시하는 블록도.
도 11은 서브시스템(2) 데이터 흐름 제어의 다른 실시예를 도시하는 블록도.
도 12는 서브시스템(2)의 제어 흐름의 실시예를 도시하는 블록도.
도 13은 서브시스템(2) 제어 모듈 인터페이스의 실시예를 도시하는 블록도.
도 14는 일 실시예에서의 서브시스템(2) 마스터 제어기 흐름의 블록도.
도 15는 일 실시예에서의 서브시스템(3) 모듈의 블록도.
도 16은 일 실시예에서의 서브시스템(3) 기능 흐름의 블록도.
도 17은 일 실시예에서의 서브시스템(3) 기능 흐름의 다른 블록도.
도 18은 일 실시예에서의 서브시스템(3) 제어 흐름의 블록도.
도 19는 일 실시예에서의 서브시스템(3) FFT 제어기 흐름의 블록도.
도 20은 일 실시예에서의 서브시스템(3) FFT 흐름의 블록도.
도 21은 일 실시예에서의 서브시스템(3) FFT 제어기 흐름의 블록도.
도 22는 일 실시예에서의 서브시스템(3) 마스터 제어기 흐름의 블록도.
도 23은 일 실시예에서의 서브시스템(2)-FIFO(2)-서브시스템(3) 흐름의 블록도.
도 24는 일 실시예에서의 서브시스템(2)-FIFO(2)-서브시스템(3)-서브시스템(5) 구성의 블록도.
도 25는 일 실시예에서의 다양한 서브시스템(4) 모듈들을 도시하는 블록도.
도 26은 일 실시예에서의 서브시스템(4) 시퀀서 모듈 인터페이스의 양상들을 도시하는 블록도.
도 27은 일 실시예에 따른 서브시스템(4) 시퀀서 흐름을 도시하는 블록도.
도 28은 일 실시예에 따른 서브시스템(4) 시퀀서 상태 머신 흐름을 도시하는 블록도.
도 29는 일 실시예에서의 다양한 서브시스템(5) 모듈들을 도시하는 블록도.
도 30은 일 실시예에서의 FIFO(1) 구조의 양상들을 도시하는 블록도.
도 31은 일 실시예에 따른 서브시스템(5) 메모리 데이터 경로 흐름을 도시하는 블록도.
도 32는 일 실시예에 따른 서브시스템(5) 중재 우선순위 계획을 도시하는 블록도.
도 33은 일 실시예에 따른 추적 모드(모드 3) 프로세스 흐름의 양상들을 도시하는 블록도.
도 34는 일 실시예에 따른 콜드 스타트(cold start) 모드(모드 1) 프로세스 흐름의 양상들을 도시하는 블록도.
도 35는 일 실시예에 따른 상관기 데이터 경로를 도시하는 블록도.
도 36은 일 실시예에 따른 코히런트(coherent) RAM 데이터 스토리지의 양상들을 도시하는 블록도.
도 37은 일 실시예에 따른 코히런트 RAM의 FFT 액세스의 양상들을 도시하는 블록도.
도 38은 일 실시예에 따른 FFT가 필요로 하는 데이터의 순서를 도시하는 블록도.
도 39는 일 실시예에 따른 코히런트 RAM 입력 튀들(twiddle) 선택 알고리즘을 도시하는 블록도.
도 40은 일 실시예에 따른 튀들 생성의 블록도.
도 41은 일 실시예에 따른 튀들 멀티플렉서 구현을 도시하는 블록도.
도 42는 일 실시예에 따른 FIFO 출력 어드레스 생성을 도시하는 블록도.
도 43은 일 실시예에 따른 FFT 어드레스 튀들링(twiddling)의 양상들을 도시하는 블록도.
도 44는 메시지 시리얼 인터페이스 및 데이터 시리얼 인터페이스를 포함하는 인터페이스에 의해 베이스밴드 처리부에 연결된 RF 처리부를 포함하는 위성 측위 시스템을 도시한 도면.
도 45는 각각, 데이터 시리얼 인터페이스를 형성하는 데이터 클럭 신호 라인 및 데이터 비트 신호 라인 상에 운반되는 데이터 클럭과 데이터 신호 사이의 관계를 도시하는 타이밍도.
도 46은 각각, 메시지 시리얼 인터페이스의 일부를 형성하는 메시지 클럭 신호 라인 및 메시지 데이터 비트 신호 라인 상에 운반되는 메시지 클럭과 메시지 데이터 비트들 사이의 관계를 도시하는 타이밍도.
도 47은 RF 처리부와 베이스밴드 처리부를 인터페이싱하는 방법을 도시하는 도면.
도 48은 일 실시예 하에서 다중 프로세서들을 포함하는 컴포넌트들 사이에서 코어 메모리 분할 및 공유를 지원하는 전자 시스템의 블록도.
도 49는 일 실시예 하에서 중앙 프로세서 및 디지탈 신호 프로세서(digital signal processor; DSP)의 각각에 전용인 메모리 영역들을 갖는 전자 시스템 구성의 블록도.
도 50은 일 실시예 하에서 호스트 전자 시스템의 스타트/부트업(start/boot-up)을 따르는 코어 메모리 구성의 블록도.
도 51은 일 실시예 하에서 중앙 프로세서와 DSP 사이에서 공유하기 위해 분할된 메모리를 포함하는 전자 시스템의 블록도.
도 52A는 일 실시예 하에서 매핑 재할당을 사용하여 DSP 메모리의 제1 블록을 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로 재할당하는 메모리 구성의 블록도.
도 52B는 일 실시예 하에서 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로의 DSP 메모리의 8-kbyte 블록의 재할당을 따르는 메모리 구성(메모리 맵)을 도시하는 도면.
도 53A는 일 실시예 하에서 매핑 재할당을 사용하여 DSP 메모리의 n개의 메모리 블록들을 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로 재할당하는 메모리 구성의 블록도.
도 53B는 일 실시예 하에서 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로의 DSP 메모리의 64-kbyte 블록의 재할당을 따르는 메모리 구성(메모리 맵)을 도시하는 도면.
도 54는 일 실시예 하에서 관련된 메모리 로딩 순서들을 따른 분할 및 재할당을 따르는 메모리 영역의 블록도.
도 55는 일 실시예 하에서 스위칭 재할당을 통해 프로세서에 의해 사용하기 위한 DSP와 연관된 메모리의 일부를 재할당하는 전자 시스템 구성의 블록도.
도 56A는 일 실시예 하에서 메모리 인터페이스를 통해 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로 DSP 메모리의 블록을 재할당하는 메모리 구성 의 블록도.
도 56B는 일 실시예 하에서 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로의 DSP 메모리의 32-kbyte 블록의 재할당을 따르는 메모리 구성(메모리 맵)을 도시하는 도면.
도 57은 일 실시예 하에서 스위칭 재할당을 사용하여 메모리 어드레스들의 그룹 또는 블록을 재할당하고 매핑 재할당을 사용하여 메모리 어드레스들의 다른 그룹을 재할당하는 예시적인 시스템 구성의 블록도.
도 58A는 일 실시예 하에서 스위칭 및 매핑 재할당 모두를 사용하여 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로 DSP 메모리의 블록을 재할당하는 메모리 구성의 블록도.
도 58B는 일 실시예 하에서 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로의 DSP 메모리의 제1 및 제2 블록들의 재할당을 따르는 메모리 구성(메모리 맵)을 도시하는 도면.
도 59는 일 실시예 하에서 관련된 메모리 로딩 순서들을 따른 분할 및 재할당을 따르는 메모리 영역의 블록도.
도 61은 다른 실시예 하에서, 스위칭 재할당을 사용하여 메모리 어드레스들의 그룹을 재할당하고 매핑 재할당을 사용하여 메모리 어드레스들의 다른 그룹을 재할당하는 시스템 구성의 블록도.
도 62는 일 실시예 하에서 재할당된 메모리와 멀티플렉서를 포함하는 전자 시스템의 블록도.
도 63은 일 실시예 하에서 메모리 공유를 지원하는 제어 레지스터의 블록도.
도 64는 일 실시예 하에서 메모리 공유를 지원하는 상태 레지스터의 블록도.
도 65는 일 실시예 하에서 메모리 공유를 지원하는 판독/기입 위반(violation) 어드레스레지스터의 블록도.
도 66A 및 도 66B는 일 실시예 하에서 메모리 공유를 지원하는 어드레스 맵을 도시하는 도면.
도 67은 신호 처리 시스템을 포함하는 시스템의 실시예의 블록도.
도 68은 신호 처리 컴포넌트의 일 실시예의 서브시스템을 도시하는 블록도.
도 69는 중재 유닛을 포함하는, 신호 처리 컴포넌트의 실시예의 블록도.
도 70은 중재 유닛을 도시하며 RAM을 액세스하기 위해 상이한 엔티티들에 할당되는 것으로서 우선순위화하는 실시예를 예시하는 블록도.
도 71은 입력 샘플 RAM을 액세스하는 것을 제어할 때 발생하는 신호화의 일부를 도시하는 제어 구조(FIFO1)의 블록도.
도 72는 콜드 스타트 모드의 경우에 메모리 할당을 포함하는, 신호 처리 컴포넌트의 구성을 도시하는 블록도.
도 73은 개략적 획득(coarse acquisition) 모드의 경우에 메모리 할당을 포함하는, 신호 처리 컴포넌트의 구성을 도시하는 블록도.
도 74는 핫 스타트 모드의 경우에 메모리 할당을 포함하는, 신호 처리 컴포넌트의 구성을 도시하는 블록도.
도 75는 추적 모드의 경우에 메모리 할당을 포함하는, 신호 처리 컴포넌트의 구성을 도시하는 블록도.
도 76은 데이터가 입력 샘플 RAM에 저장되는 방법의 일부 양상들을 도시하는 블록도.
도 77은 코히런트 RAM에 대한 오버플로우 및 언더플로우 조건들을 도시하는 도면.
도 78은 추적 모드와 같은 2단계(two-pass) 고해상도 모드에서 코히런트 RAM(1205)에 대한 오버플로우 및 언더플로우 조건들을 도시하는 도면.
도 79는 다중 채널들 사이에서 공유되고 있는 단일 코히런트 RAM의 예를 도시하는 블록도.
도 80은 할당된 코히런트 데이터 메모리 영역 또는 코히런트 RAM에 데이터를 저장하는 다양한 모드들을 도시하는 블록도.
도 81은 할당된 NCS 데이터 메모리 영역 또는 백엔드(backend) 스토리지 RAM에 데이터를 저장하는 다양한 모드들을 도시하는 블록도.
도 82는 상이한 동작 모드들에서 RAM 스토리지의 다양한 모드들의 개념을 도시하는 도면.
도 83은 일 실시예에서 통신하는 채널 RAM과 구성요소들을 도시하는 블록도.
도 84는 신호 처리 서브시스템 시퀀서의 실시예의 블록도.
도 85는 일 실시예에서 신호 처리 서브시스템 시퀀서의 기능을 설명하는 흐름도.
도 86은 일 실시예의 세마포어(semaphore) 단어 구조도.
도 87은 일 실시예에서의 세마포어 단어들의 구성을 도시하는 도면.
도 88은 일 실시예에서 HW 제어된 세마포어, SW 제어된 세마포어 및 "포즈" 세마포어를 포함하는 SS2, SS3, 및 FIFO1의 리스트를 도시하는 도면.
도 89는 일 실시예에 따른 SS2 및 SS3에 대한 종료 조건의 리스트를 도시하는 도면.
도 90은 시퀀서의 일 실시예의 블록도.
도 91은 일 실시예에 따른 RAM 어드레스를 생성하는 구성 요소들의 블록도.
도 92는 시퀀서의 동작을 설명하는 흐름도.
도 93은 SS3용 시퀀서의 동작을 설명하는 흐름도.
도 94는 트랙킹 루프의 블록도.
도 95는 동기화 기술을 나타내는 도면.
도 96은 동기화 기술을 나타내는 도면.
도 97은 상호 상관(cross correlation)을 이용한 약한 확산 스펙트럼 신호 내의 강한 신호 소거를 표현한 흐름도.
도 98은 소거된 신호가 CW 재밍 신호일 수 있는 CW 재밍 신호들을 식별 및 제거하는 신호 처리도.
도 99는 전기 컴포넌트들의 블록도.
도 100은 CW 재밍 신호들을 식별 및 제거하는 흐름도.
도 101은 강한 및 중간 신호 동작에 대한 트랙킹 시스템의 예시적인 하이 레벨 실행을 나타내는 도면.
도 102는 하드웨어 갱신의 블록도.
도 103은 GPS 수신기의 일 실시예의 블록도.
도 104는 GPS 수신기의 일 실시예의 또 다른 블록도.
도 105는 GPS 수신기의 일 실시예의 또 다른 블록도.
도 106은 절전 검출 회로의 일 실시예의 블록도.
도 107은 일 실시예의 절전 검출 처리를 설명하는 흐름도.
도 108A, 108B, 및 108C는 GPS 클록 신호를 갱신하기 위해 RTC 클록 신호를 사용하고, 추정된 GPS 시간이 GPS 수신기의 위치를 취득하에 충분히 정확한지 여부를 결정하는 단계를 포함하는 처리의 일 실시예를 예시하는 흐름도.
도 109는 일 실시예 하에서 EARC(Edge-Aligned Ratio Counter)의 블록도.
도 110은 일 실시예 하에서, 샘플링 및 에지 검출을 나타내는 도면.
도 111은 일 실시예 하에서, 통신 디바이스의 블록도
도 112는 일 실시예 하에서, 통신 디바이스의 블록도.
도 113은 다양한 클록 신호들 및 제어 신호 출력 사이의 관계를 나타내는 타이밍도.
도 114는 일 실시예 하에서, 통신 디바이스의 블록도.
도 115는 일 실시예 하에서, 둘 이상의 클록들의 주파수들 사이의 관계를 결정하는 방법에 대한 흐름도.
도 116은 통상적인 CDMA 신호 흐름을 도시하는 도면.
도 117은 일 실시예 하에서의 자동 및 상호 상관 체크를 나타내는 도면.
도 118A 및 118B는 일 실시예 하에서의 시스템 블록도.
도 119는 일 실시예 하에서의 시스템의 또 다른 블록도.
도 120은 일 실시예 하에서, 약한 신호 시스템 내의 자동 및 상호 상관의 감소/제거에 대한 흐름도.
하드웨어 아키텍처, 제어 로직, 신호 처리 로직, 및 메모리 관리 로직의 적어도 하나의 실시예들을 포함하는 GPS 시스템 및 방법이 기술된다. GPS 시스템 및 방법의 실시예들은 동적으로 재구성할 수 있다. 예를 들어, 메모리는 다른 조건 하에서 다른 방식으로 다양한 서브시스템들에 의해 액세스되도록 동적으로 재구성될 수 있다. GPS 시스템 및 방법에서 이용가능한 전체 메모리 사이즈의 예들이 예시적으로 기술된다 하더라도, 기술된 동일한 원리를 이용한 다른 사이즈가 가능하다. 또한, 도시된 메모리 외에 외장 메모리에 대한 액세스도 기술된 하드웨어 및 소프트웨어를 사용하여 가능할 수 있다.
기술된 GPS 시스템은 매우 높은 속도로 GPS 데이터를 처리하며, 이것은, 우수한 위성 가시성(visibility)과 같은 이상적인 조건들이 없더라도, GPS 시스템이 도움(aiding)없이 우수한 성능을 갖게 하는 양상이다. GPS 시스템의 일 양상에서, 고속 푸리에 변환("FFTs":fast Fourier transforms)과 협력하여 매우 강력한 시간 도메인 매칭된 필터링은 단위 시간당 많은 양의 데이터 처리를 용이하게 한다. FFT 동작은 사용된 신호 샘플들의 수에 15 또는 20 만큼 높은 인수(factor)를 곱하는데 사용된다. 일례로서, 이 시스템은 200,000만큼 많은 유효 실시간 상관 관계 를 생성한다. 종래의 GPS 시스템은 통상적으로 많은 물리적 상관 관계들을 통해 직접적으로 GPS 신호들을 처리하고, 이들 물리적 상관 관계들 각각은 실질적으로 하나의 상관 관계를 만들기 위한 로직이다. 종래의 GPS 시스템은 대략 40,000 유효 상관 관계들로 제한된다.
이러한 성능 개선은 대략 400Mbytes/sec의 메모리 대역폭 소비를 갖는 GPS 시스템에 의해 완성된다. 그러므로, GPS 시스템은 64kbytes 만큼 적은 메모리를 가지고 이들 상관 관계들을 생성할 수 있다. 종래 시스템의 전력과 비교하여, GPS 시스템은 전력 소비, 주기 카운트, 및 메모리 사용 면에서 더욱 효율적이다. 이하 더욱 충분히 기술되는 바와 같이, 이것은 다수의 서브 시스템들의 최적화 및 구성 가능성에 의해 어느 정도는 이뤄질 수 있다.
기술된 GPS 시스템은, 상황에 가장 적합하게, GPS 신호 취득 및 처리의 다양한 모드로 동작할 수 있다. GPS 시스템은 호스트 프로세서에 의해 지시되는 모드들 사이에서 자동으로 스위칭한다. 다양한 서브시스템들은 다른 동작 모드들에서 다르게 구성될 수 있다. 동작 모드는 이하 더욱 상세히 기술될 것이며, 모드 1, "콜드 스타트(cold start)"; 모드 2, "거친-보조(coarse-aided) 취득" 모드; 및 모드 3, "고해상도", 또는 "트랙킹" 모드를 포함할 것이다.
도 1은 무선 주파수("RF") 컴포넌트들과 기저 대역 컴포넌트들을 포함하는 GPS 시스템의 일 실시예의 블록도이다. 일 실시예에서, RF 컴포넌트들 및 기저 대역 컴포넌트들은 OEM(original equipment manufacturer), 또는 OEM 버스를 통한 OEM 메모리 및 "호스트" 프로세서에 인터페이스한다. 이하 기술되는 바와 같이, 기저 대역 컴포넌트들은 메모리 컴포넌트들을 포함한다. 선택적으로, OEM 메모리는 기저 대역 컴포넌트들에 의해 액세스되도록 요구되지 않는다. 다른 가능한 설치는 GPS 기능을 수행하기 위해서 요구되는 메모리 및 처리 전력 모두를 구비하고 RF 컴포넌트들 및 기저 대역 컴포넌트들 모두를 하나의 칩에 포함한다. GPS 시스템은 정보를 조성하지 않고 효율적으로 동작할 수 있으며, 대안으로, 갖가지 소스들로부터 정보를 조성하여 동작할 수도 있다.
도 1A는 DSP(digital signal processor), ARM 프로세서, 클록 컴포넌트들, 다양한 메모리 컴포넌트들, 외부 및 내부 통신을 위한 다양한 인터페이스 컴포넌트들 등을 포함하는 기저 대역 칩의 일 실시예의 블록도이다.
도 2는 입력 샘플 서브시스템, 신호 프로세서 서브시스템, FFT 서브시스템, 메모리 서브시스템, 시퀀서 서브시스템, 및 또다른 "갖가지" 서브 시스템을 포함하는 기저 대역 칩의 일 실시예의 중요한 서브시스템의 블록도이다. 본 명세서에서는 편의상 서브시스템들을 다음과 같이 나타낼 것이다:
서브시스템 1 = 입력 서브시스템;
서브시스템 2 = 신호 처리 서브시스템;
서브시스템 3 = FFT 서브시스템;
서브시스템 4 = 시퀀서/제어 서브시스템; 및
서브시스템 5 = 메모리/중재 서브시스템.
서브시스템들 사이에서 업무 또는 기능성의 분할은 설계 선택이다. 본 발명의 다른 실시예들에 있어서, 다른 서브시스템들은 다른 방식으로 기능성들을 공유 할 수 있거나, 더 많거나 더 적은 서브시스템들이 있을 수 있다. 예를 들어, 본 명세서에 도시된 몇몇 실시예들에서, 시퀀서/제어 서브시스템은 분리된 서브시스템이 아니다. 오히려 시퀀서 기능성의 일부는 서브시스템 2에 존재하고, 나머지 기능성은 서브시스템 3에 존재한다.
도 3은 일 실시예의 GPS 시스템의 일반적인 데이터 흐름의 개요를 설명하고, 또한, 다양한 서브시스템들의 개념적 배치를 설명하는 블록도이다. 도시한 바와 같이, 서브시스템 1, 2 및 3은 RAM에 대한 액세스를 중재한다. 이하 기술되는 바와 같이, RAM은 4개의 섹션들로 논리적으로 분할되지만, 다양한 실시예들에서 이것은 GPS 시스템의 내부 또는 GPS 시스템의 외부에 있는 물리적 메모리 디바이스들의 임의의 수일 수 있다.
하나의 시스템 실시예에 대한 신호 흐름은 도 4에 도시된다. RF 신호는 입력 샘플 처리 블록 또는 서브시스템 내에서 수신된다. 서브시스템 1은 입력 샘플링에 대한 시간 및 주파수 참조를 제공하는 입력 샘플링 클록 및 다른 클록들로부터의 분할-다운(divide-down)인 카운터 체인을 포함한다.
도 5는 서브시스템 1 내의 기본 기능 모듈들을 나타낸다.
도 6은 서브시스템 1 내의 기본 기능 모듈들의 추가 항목을 나타낸다. AGC(automatic gain control)는 입력 샘플 클록으로 들어오는 RF 샘플들을 조사한다. AGC에는 다운-카운터가 존재한다. 입력 샘플들은 1 또는 제로의 크기를 갖는다. 1의 값은 강한 신호에 대응한다. 샘플이 1의 값을 갖는 경우에, AGC는 카운트 다운한다. 너무 많이 카운트 다운한 경우에는, 신호가 커져 AGC는 이득(gain) 을 감소시키도록 하는 RF에 제어 신호를 전송한다.
도 7은 기본 서브시스템 1 데이터 흐름의 추가 항목을 나타낸다.
도 8은 서브시스템 2, 신호 프로세서 서브시스템에서 다른 블록들을 나타낸다.
도 9는 상호 상관 구성 요소들을 가지지 않는 서브시스템 3의 대체 블록도이다.
도 10은 서브시스템 2의 일 실시예에 대한 데이터 흐름을 나타낸다. 이 도는 흐름 제어를 위한 파이프라인 스테이지들 및 레지스터들을 예시한다. "메모리 인터페이스", "신호 프로세서" 등과 같이 각 타이틀된 섹션은 제어 메커니즘을 가지고, 각각은 그 자신의 상태 머신으로서 행동한다. 데이터가 왼쪽에서 오른쪽으로 흐름에 따라 이들 섹션 사이에는 핸드 오프(hand-off)가 존재한다.
도 11은 타이밍 분석에서 고려되어야할 중요(critical) 경로들을 나타내는 서브시스템 2의 일 실시예에서 데이터 흐름의 또 다른 도이다.
도 12는 일 실시예에서 서브시스템 2 제어 흐름을 나타내는 도이다. 마스터 제어는 도의 왼편에 있다. 매칭된 필터 컨트롤러는 수 밀리세컨드 동안 처리하도록 프로그램되고, 코드 및 캐리어 NCO는 시작 위치로 프로그램된다. 매칭된 필터 컨트롤러는 FIFO1으로부터 코드 및 캐리어 NCO로, 이후에는 신호 프로세서로 데이터를 가져오고, 신호 프로세서로부터 매칭된 필터로, 이후에는 코히런트 어큐뮬레이터 및 일관되게 축적된 코히런트 RAM으로 데이터를 가져온다.
일 실시예에서는 매칭된 필터를 구현하기 위한 다른 방법들이 존재하여 특정 한 수 밀리세컨드 동안 데이터를 처리한다. 매칭된 필터는 데이터 요구를 중단할 때까지 신호 프로세서로부터 데이터를 가져온다. 이후에, 신호 프로세서는 데이터 생성을 중단한다. 코히런트 어큐뮬레이터는 매칭된 필터가 이를 출력하고 일관되게 축적할 때마다 수행한다. 매칭된 필터는 다른 채널로부터 데이터를 처리하거나 다른 위성 비행체(vehicle)로부터 데이터를 처리하기 위해서 채널들을 변화시킬 때를 결정한다. 매칭된 필터는 시간 주기 동안 처리된 경우 "처리 중단"이라고 효과적으로 말한다.
도 13은 다른 모듈들(예를 들면, 신호 프로세서, 매칭된 필터, 코더, 등)을 갖는 통신에 대해 더욱 상세히 나타내는 도 12의 왼편에 있는 컨트롤러의 일 실시예의 블록도이다. 컨트롤러는 처리를 초기화한다. 서브시스템 2 제어 모듈에 의해 RAM 액세스의 채널 RAM 영역이 존재한다. 이것은 시퀀서 기능성이 서브시스템 2와 서브시스템 3으로 분할된 일 실시예의 일부이다. 서브시스템 2에서 예시된 시퀀서의 일부가 여기에 도시된다. 채널이 초기화될 때, 제어 모듈은 채널 RAM을 액세스하고 특정 채널을 처리하기 위해서 서브시스템 2에 요구된 채널 파라미터들을 가져온다. 이후에, 이 채널을 처리하기 위해서 요구된 이들 파라미터들을 이용하여 신호 프로세서, 코더, 매칭된 필터, 및 코히런트 어큐뮬레이터를 프로그램한다. 예를 들어, 파라미터들은 매칭된 필터가 특정 수 밀리세컨드 동안 동작한다고 말한 후, 이를 행할 때, 매칭된 필터는 서브시스템 2 제어 모듈이 종료되었다는 것을 알고 있다고 말하며, 컨트롤러는 다음 채널로 이동할 수 있다. 다음 채널 등에 대한 채널 RAM의 위치를 저장하는 채널 RAM 내에는 링크된 리스트가 있다.
일 실시예에서, 다른 채널들은 상기 열거된 바와 같이, 다른 모드들(콜드 스타트, 거친-보조 취득, 및 트랙킹 모드들)로 동작하도록 프로그램된다. 채널 RAM 내에 저장된 파라미터들은 특정 모드 내의 특정 채널에 대해서 서브시스템이 적절하게 프로그램되도록 한다. 채널들은 시간 멀티플렉스된 방식으로 서브시스템들을 액세스한다.
도 14는 서브시스템 2의 일 실시예에 대한 마스터 컨트롤러 흐름을 나타낸다.
도 13은 FFT 서브시스템 3의 일 시스템의 모듈 구획(partitioning) 및 다양한 모듈들을 나타낸다.
도 16은 서브시스템 3의 일 실시예의 더욱 상세한 설명을 나타낸다. 서브시스템 3 제어 모듈은 도면의 하단에 도시되고, 서브시스템 2 제어 모듈과 기능적으로 유사하다. 파선은 서브시스템으로부터 메모리로의 인터페이스를 나타낸다. Peak RAM, NCS RAM 등은 메모리 내의 영역이다. 코히런트 RAM도 또한 메모리 내의 영역이다. 그러나 FIFO2는 서브시스템 2 및 서브시스템 3 사이에서 메모리에 대한 액세스를 제어하는 FIFO2 제어 구조이다. 예를 들어, FIFO2는 코히런트 RAM 내에서 동작하는 데이터가 존재하는 경우를 서브시스템 3가 알게 한다. FIFO2는 또한 서브시스템 3가 아직 사용하지 않은 데이터를 덮어쓰려고 하는 경우를 서브시스템 2가 알게 한다. 입력 샘플 RAM에 대한 액세스를 제어하는 서브시스템 1과 서브시스템 2 사이의 대응하는 FIFO1이 있다.
도 17은 FIFO2를 포함하는, 서브시스템 3 데이터 흐름을 나타낸다. 서브시 스템 2로부터 서브시스템 3으로 가는 데이터는 FIFO2 구조로부터 제어된다. 실제 데이터는 FIFO2 바로 위의 코히런트 RAM 내에 있다. FFT는 코히런트 RAM으로부터 특정 수의 샘플 입력들을 취하고, 이들에 FFT를 행한다. FFT는 특정 처리 모드에 의해 지시된 바와 같이 다수의 주파수들을 생성한다. 8 샘플, 16 포인트 FFT로서 및 예로서, FFT는 16 주파수들을 생성한다. 16 주파수들 모두가 중요한 것은 아니다. 예를 들면, 외부 주파수들은 유용하지 않을 수 있다. 집적(gather) 모듈은 프로그램된 수의 주파수들만을 수용한다. 주파수들의 수는 프로그램 가능하다.
집적 모듈은 소정의 주파수를 선택하고, 더욱 콤팩트한 형태로 이들을 패킹하여 비-코히런트 어큐뮬레이터인 NCS로 보낸다. 여기에 도시하지는 않았지만, 집적 모듈의 출력은 트랙 히스토리 RAM("TH")로 간다. 집적 모듈의 출력은 코히런트 데이터이다(여전히 별개의 I 및 Q 컴포넌트들을 가짐). 비-코히런트 데이터는 NCS에 저장된다. 선택된 코히런트 데이터는 TH에 의해 이후의 조사(examination) 및 소프트웨어에 의한 처리동안 저장된다. 도의 상부에는, 분류기(sorter) 임계 모듈로 가는 라인이 있다. 여기에는 NCS 모듈에 의해 생성된 많은 양의 정보가 있다. 예를 들어, 초기 취득 모드 내에 이것을 저장하는 것은 바람직하지 않을 것이다. 특정 위성 비행체에 대해서, 홀수 및 짝수 반-칩 및 복수의 주파수들을 처리하는 것은 바람직할 수 있으며, 이들 각각은 상대적으로 큰 데이터 어레이를 생성할 것이다. 데이터가 생성되기 위해서, 데이터가 처리되고 피크가 분류된다. 어떤 탭 넘버, 어떤 주파수, 및 홀수 또는 짝수 반-칩에 있었는지 여부와 같은, 이들이 발생된 장소에 대한 정보와 함께, 8개의 최대치가 저장된다. 이들은 콘텍스트의 단 부에서 피크 분류기 내에 모두 저장된다.
콘텍스트는 여기서, 서브시스템을 위한 일 채널 처리의 완료를 나타내는 용어로 사용된다. 채널이 서브시스템 3에 입력되는 경우 또는, 처리가 거의 이뤄진 경우에 콘텍스트의 단부에서는 피크가 저장되어, 소프트웨어는 피크를 조사하고 그 결정을 내린다.
도 18은 서브시스템 3 제어 흐름에 대한 타이밍 신호들을 나타낸다. 여기서는, 2개의 타이밍 분할 용어들이 사용되고, 예를 들면, T1 및 PDI(pre-detect integration)가 이제 정의될 것이다. T1는 매칭된 필터의 출력으로부터 공급된 코히런트 어큐뮬레이터 내에 일관되게 축적되는데 기본적으로 얼마나 오래 걸리는지를 나타낸다.
매칭된 필터가 완전히 매칭된 필터 모드로 동작한다고 가정한다. 매칭된 필터의 출력은 코히런트 축적의 최대 밀리세컨드 가치가 있다. 코히런트 축적은 코히런트 축적을 위해 할당된 최대 수 밀리세컨드를 소요한다. 각각의 시간 처리는 특정한 탭 위치를 포함하고, 생성된 코히런트 축적의 또 다른 최대 밀리세컨드가 존재할 것이다. 코히런트 어큐뮬레이터는 코히런트 축적의 2 밀리세컨드를 얻기 위해서 코히런트 축적의 제1 및 제2 밀리세컨드 가치를 더한다. 코히런트 축적의 2 밀리세컨드보다 많게 혹은 적게 프로그램될 수 있다. 탭에 대한 코히런트 축적의 프로그램된 수 밀리세컨드의 완료는 코히런트 축적의 T1 가치를 구성한다. 밀리세컨드의 T1의 길이에서와 같이, 다른 모드를 갖는 변동이 존재한다. 몇몇 모드에서는, 더욱 약한 신호를 찾기 위해서 더욱 길게 축적하는 것이 바람직하다. 코 히런트 축적이 종료될 때, 비-코히런트 축적이 시작한다.
1/8 매칭된 필터(저-해상도 모드)에 대해서, 1/8 작은 블록들 각각은 하나의 샷(shot)에서 1/8ms를 축적한다. 따라서 매칭된 필터는 코히런트 축적의 1ms 가치를 생성하기 위해서 코히런트 어큐뮬레이터로 8번 구동된다. 이것은 코히런트 축적의 선정된 수 ms를 얻기 위해서 요구되는 만큼 반복된다.
각각의 T1은 FFT로의 하나의 입력 샘플을 나타낸다. 예를 들어, 8 샘플, 16 포인트 FFT에서, FFT로의 공급을 위해서는 8 T1가 요구된다. 이것은 PDI를 호출하고; 일 샷 내의 8 T1은 PDI를 구성한다.
각각의 T1은 FFT에 대한 입력 샘플을 나타낸다. 그러나, 많은 T1은 한번 FFT로 공급되어 PDI를 구성한다.
도 18은 T1 경계 및 PDI 경계의 트랙을 유지할 필요를 예시한다. 이것은 "행해진" 신호들에 의해 조장된다. 도 18은 집적 모듈에 대한 FFT로부터 NCS로 시작하는 파이프라인 흐름을 도시한다. 서브시스템 3 백엔드(backend) 컨트롤러는 서브시스템을 개시한다. pdiNext신호는 FFT 처리 데이터를 시작한다. 이후에 NCS는 백엔드 컨트롤러가 "나는 이 PDI 처리를 완료하였다, 다음은?"을 알게 할 필요가 있다.
도 19는 시간 및 어드레스 카운터들을 포함하는 FFT 컨트롤러의 상세 설명을 나타낸다. FFT 컨트롤러는 FFT를 공급하는데 필요한 코히런트 RAM 내의 데이터 위치의 트랙을 유지한다. 컨트롤러는 FFT가 어떤 사이클에 있으며, FFT가 어떤 정보를 필요로 하는지 안다. 컨트롤러는 어드레스와 FFT 처리 상태의 위치를 생성한 다.
FFT 코어는 4개의 포인트 FFT를 포함한다. 16 포인트 FFT를 구성하기 위해서, 4 포인트 FFT는 16 포인트 FFT를 생성하기 위한 특정 패턴을 반복적으로 구동한다. 이 코어는 4 포인트 FFT이기 때문에, 4 T1 입력 샘플들이 동시에 필요하다. 그러나, 서브시스템 2는 선형 방식의 T1을 생성한다. FFT는 비트 반전된 순서로 T1을 요구할 수 있다. 예를 들어, FFT는 제1 샷에서, 8로부터, 2, 7, 3, 및 1의 4개 T1을 필요로 하고, 다음 샷에서는 다른 패턴을 필요로 한다고 말한다. 트위들(twiddle) 알고리즘은 서브시스템 2의 출력을 최적 패턴의 4개의 다른 물리적 RAM에 저장하여 서브시스템 3에 의해 요구된 데이터는 데이터 충돌없이 동시에 4개 T1을 액세스할 수 있다. 트위들 알고리즘 없이, RAM을 4개 영역으로 분할하지 않고, 더 많은 메모리 판독을 실행할 필요가 있다. 알고리즘은 FT가 한번에 필요할 4 T1들을 알고, 그들이 다른 RAM들(또는 RAM 영역들)에 저장되어 있는 것을 보증한다. 도 35-43은 일 실시예에서 FFT 어드레스 트위들링(twiddling)의 하드웨어 및 로직 특징들을 예시한다.
도 20은 일 실시예에서 기초적인 서브시스템(3)을 도시한다. 도시된 스케일링 모듈은 디스케일링(descaling)을 수행한다. 디스케일링은 데이터가 다음과 같이 스케일링되기 때문에 필수적이다. 코히어런트 어큐뮬레이터에서는, 데이터가 통과하기 위한 비교적 좁은 파이프라인이 있고, 다이내믹 레인지가 매우 크다. 예를 들어, 코히어런트 RAM에 여유가 있는 I 데이터의 단지 8비트와 Q 데이터의 단지 8비트가 주어진다고 하자. I와 Q의 8비트들은 따라서 익스포넌트(exponent) 또는 스케일과 연관된다. 어큐뮬레이터가 8비트에 대해 오버플로우에 가까울 때 익스포넌트를 1로 범프하고 8비트를 1로 다시 스케일링하는 자동 기능이 있다. 스케일링은 서브시스템(2)이 데이터를 코히어런트 RAM에 공급할 때 서브시스템(2)에 의해 수행된다. 각각의 T1은 관련 스케일 값을 갖는다. 예를 들어 4 T1들이 FFT에 한꺼번에 공급될 때는 다른 스케일 값들은 FFT에 공급될 수 없다. 그래서 스케일 모듈은 모든 데이터를 같은 스케일로 노말라이즈한다. FFT의 출력은 NCS로 전달되고, NCS는 그 자체의 스케일링 기능을 갖는다. 따라서, 코히어런트와 논-코히어런트 스케일링이 일어날 수 있다.
도 21은 서브시스템(3) 콘트롤러의 제어 하에 FFT의 사이클들이 어떻게 진행되는지를 도시한다. FFT는 특정 칩 위치에 대해 처리하고, FFT를 완료하고, 그 다음 칩 위치로 진행하라고 지시될 필요가 있다. 이것은 FFT 콘트롤러 상태 머신의 상세한 내용이다.
도 22는 서브시스템(3) 마스터 콘트롤러에 대한 플로우 차트를 도시한다. 세마포어 워드(semaphore word)는 부팅 시에 서브시스템들 사이에서 빠르게 분산되어야 하는 다양한 데이터를 지시한다. 데이터는 서브시스템(2), 서브시스템(3), 소프트웨어를 포함하는 세가지 준-비동기식 처리들 사이에서 교환될 필요가 있다. 각 처리는 그 자체적으로 실행되고, 다른 처리들로부터 정보를 얻는다. 세마포어 워드 내의 정보는 100㎳ 레포트 생성, 서브시스템(3)에서 수행될 위상 조정, 한 서브시스템으로부터 다른 것으로의 다양한 상태 플래그들, 등을 포함할 수 있다. 서브시스템, 하드웨어, 및 소프트웨어는 세마포어 워드를 읽고 결정한다.
콘트롤러는 서브시스템(3)과 FIFO2(상부 중앙 근처를 참조)를 초기화하는데, 기본적으로 채널 RAM으로 가라고 말하고, 채널에 대한 채널 파라미터들을 프로그램 서브시스템(3)을 추출한다. "FIFO2 데이터 가용"은 서브시스템(3)이 코히런트 RAM으로부터의 데이터가 필요함을 말하고, 그래서 그 데이터가 가용인지를 알 필요가 있다. 가용이지 않다고, 데이터가 가용으로 되기를 기다린다. 이것은 서브시스템(2)과 서브시스템(3) 사이의 많은 시퀀싱을 제어하는 래핑(lapping) 룰들과 관련된다. 서브시스템(2)과 서브시스템(3)은 채널들의 링크된 리스트를 처리한다. 서브시스템(2)은 채널을 처리하고 진행하고, 그런 다음 서브시스템(3)이 채널로 가서 데이터를 가져와서 그것을 처리한다. 서브시스템(2)은 서브시스템(3)보다 앞서 가서는 안된다. 서브시스템(2)은 서브시스템(3)을 따라가야 하지만, 그 바로 뒤에서 따라가야 한다.
"FIFO2 데이터 가용?" 판정 블럭과 "서브시스템(2) 내의 채널?" 판정 블럭은 래필 룰의 일부이다. 데이터가 가용이지 않다면, 서브시스템(3)은 아직 채널을 떠나지 않도록 지시되는데, 왜냐하면 서브시스템(2)이 서브시스템(3)을 위해 데이터를 생성하고 있을 수 있기 때문이다. 서브시스템(2)이 떠날 때, 서브시스템(3)은 채널을 떠날 수 있다.
교차-연관 기능이 또한 도시된다. 일 실시예에서, 서브시스템(2)은 기본적인 교차-연관 데이터를 생성하고, 서브시스템(3)은 실질적으로 교차-연관 데이터를 제거한다.
"FFTT1 완료?" 판정 블럭을 참조하면, 처리 중에 비트 동기 모드가 PDI 내의 다중 T1 오프셋들에 대해 수행된다. 비트 동기 모드가 아니라면, 항상, 예를 들어, 8 샘플, 16 포인트 FFT(이것은 비트 동기 모드가 아닐 것임)라면, 8T1들이 FFT로 처리된 후에, 그 다음 전체 8T1들, 또는 그 다음 PDI가 FFT로 공급된다. 반면에, 비트 동기 모드에서는, 20 T1들이 있는데, 왜냐하면 각각이 1㎳이기 때문이다. 따라서, 20개의 가설 비트 위치들을 알아낼 필요가 있다. 비트 위치들 내에서 20㎳의 모호성이 있다. GPS 데이터 비트에는 20㎳가 있고, CA 코드는 각 ㎳를 반복한다. 정렬은 CA 코드 내에서 수행될 수 있다. 비트 동기를 이용하여, 20㎳ 내의 1㎳의 모호성이 제거된다. 다른 T1 오프셋들은 다른 가설들에 대해 시도된다.
PDI가 완료될 때, 플로우는 도면의 하부 우측으로 진행한다. 다른 홀수 혹은 짝수, 또는 다른 주파수가 필요한지의 여부가 판정된다. 서브시스템(2)은 서브시스템(3)이 처리할 필요가 있는 짝수 및 홀수배 주파수들을 생성한다. HW 추적 루프가 반복되고, 특정 스케일되고 바이어스 파라미터들이 우측의 상향 플로우에 도시된 바와 같이 갱신된다. 최좌측 플로우에서는, 콘텍스트가 끝나려고 할 때 채널을 클린업하는 것이다. 세마포어 워드는 채널에 대한 마지만 콘텍스트 동안 발생했던 것들을 반영하기 위해 갱신된다. HW 추적 및 레포트 생성(100㎳ 레포트 또는 적당한 콘텍스트 레포트)이 또한 발생한다. 그런 다음, 채널이 비활성화되고, 세마포어 워드 내의 활성화 비트가 제로로 설정된다. 채널 RAM 내의 링크된 리스트는 어느 채널이 그 다음에 하드웨어 액세스를 가질 것인지를 결정하기 위해 상담된다.
도 23은 FIFO2를 통한 서브시스템(2)과 서브시스템(3) 사이의 상호 작용을 나타낸다. 서브시스템(5)은 메모리 중재기이다. 논의된 바와 같이, RAM은 도시된 4개의 메모리 블럭들로 나누어진다. 한번에 서브시스템들 중의 단지 하나의 서브시스템 혹은 서브시스템 내의 하나의 기능만이 RAM을 액세스할 수 있다. 이것은 코히런트 데이터를 생성하고 이것을 처리용으로 데이터를 요청하는 RAM 및 서브시스템(3)에 기록하려고 하는 서브시스템(2)를 도시한다. 서브시스템(5)은 누가 액세스를 얻을 것인지를 결정한다. FIFO2는 모든 서브시스템이 RAM을 액세스하기 위한 그들 각각의 요청들에 대한 상태를 알게 해준다.
도 24는 서브시스템(5) 기능의 상세한 사항들을 나타내는 다른 도면이다.
도 25는 일 실시예에서 서브시스템(3) 내에서 구현되는 시퀀서 서브시스템의 구성 요소들을 나타낸다.
도 26은 도 22 플로우차트의 일 실시예인 시퀀싱 모듈의 블럭도이다. 시퀀서 모듈은 콘트롤 요소를 포함하고, 또한 등록, 데이터 스토리지, 메모리와의 인터페이스 들을 포함한다. 그러나, 도시된 시퀀서 모듈 인터페이스는 기본적으로 플로우 제어이다. 대수 및 논리 유닛("ALU") 모듈은 HW 추적 기능을 위한 특수한 대수 기능을 제공한다. 후위 콘트롤러는 NCS 모듈이 어디 있는지를 를 알고, FFT 콘트롤러가 FFT를 제어하는 것과 유사한 방식으로 NCS 모듈을 제어한다.
또한, PDI 레이트로 일어나는 기능과 콘텍스트 레이트로 일어나는 기능을 갖는(즉, 채널의 처리가 완료되기 전에) HW 추적기가 있다. 시퀀서는 그의 수치 처리기로서 ALU를 이용하여 HW 추적 루프 기능을 제어한다.
도 27은 시퀀서 기능이 싱글 모듈 내에 포함되는 실시예의 블럭도이다. 이 것은 앞서 논의하였던 시퀀서 기능이 서브시스템(2)과 서브시스템(3) 사이에서 공유되는 예의 대안적인 실시예이다.
도 28은 시퀀서가 실시하는 기능의 일부를 나타내는 블럭도이다. 기능에는 데이터 경로 제어, 하드웨어 추적 루프, 및 레포트 제어를 포함한다. 레포트 제어는 1000㎳ 레포트, 콘텍스트 레포트, 피크 레포트, 등과 같은 소프트웨어에 이용되기 위한 다양한 레포트들의 생성을 제어한다.
도 29는 다양한 RAM 기능들을 도시한다. 일 실시예에서, 모든 RAM 기능들은 하나의 물리적 RAM 내에 포함된다. 다른 실시예에서, RAM 기능들은 다른 물리적 RAM들 사이에 분배된다. 메모리 서브시스템은 이 RAM 기능들에 대한 액세스의 요청에 대한 중재를 처리한다.
도 30은 FIFO1의 실시예의 상세한 사항들을 도시한다. 좌측의 라인, 블럭 및 랩(wrap) 신호들은 서브시스템(2)이 RAM에 데이터를 기입하려고 시도할 때 서브시스템(2)에 의해 이용된다. 우측의 라인, 블럭 및 랩 신호들은 서브시스템(3)이 RAM에서 데이터를 판독하려고 시도할 때 서브시스템(3)에 의해 이용된다.
도 31은 다른 타입의 RAM, 및 다른 서브시스템들이 그것을 액세스하기 위해 어떻게 요청을 하는지를 나타내는 메모리 데이터 경로 플로우의 블럭도이다. 서브시스템(1)은 입력 샘플 RAM(좌측 상의)에 데이터를 기입하고 있고, 서브시스템(2)은 FIFO1의 제어 하에 데이터를 판독하고 있다. 마찬가지로, FIFO2는 서브시스템(2)에 의한 코히런트 RAM의 액세스를 제어하고 서브시스템(3)은 서브시스템(3)이다. TH RAM은 앞서 논의된 바와 같이, 추적 히스토리를 코히런트 데이터의 형태로 저장한다. 비트 동기 RAM은, 일 실시예에서, 다중 T1 오프셋들이 있는 특정 채널에 대한 TH RAM 타입이다. 소프트웨어는 데이터 비트 에지가 어디에 있는지를 결정하기 위해 다중 T1 오프셋들을 이용한다. 시스템 동작 동안, 데이터 서브시스템들은 이 다른 RAM들을 액세스하려고 시도한다. 시퀀서는 채널 RAM을 우선적으로 액세스하려고 하지만, 예를 들어 포인터들을 액세스하기 위해 코히런트 RAM을 액세스하려고 하기도 한다. 소프트웨어로부터 패널 RAM에의 화살표를 주시한다. 소프트웨어는 NCS RAM, TH RAM, 및 피크 RAM을 검사한다. 모든 RAM 액세스는 서브시스템(5) 중재에 의해 처리된다.
도 32는 서브시스템(5)과 중재 우선순위들의 예를 나타내는 블럭도이다. 우성순위들의 한가지 가능한 할당은 좌측 하부에 리스트된다. 전형적으로, 서브시스템(1)은 매우 높은 우선순위를 갖는데, 왜냐하면 제어할 수 없는 레이트로 위성 차량들로부터 데이터를 수신하기 때문이다. 중앙 처리 장치("CPU")는 전형적으로 높은 우선순위를 또한 갖는다.
도 33은 시스템 동작 동안, 특히 모드 3 혹은 추적 모드에서 일어나는 처리들의 일부를 도시한다. 예를 들어, 도면의 좌측에는, 타이밍 체인이 있고, 그런 다음 입력 RAM에 들어가는 입력 스토리지가 있다. 데이터는 RAM 내의 특정 위치들에 기입되어야 한다. 일 실시예에서, 서브시스템(1)의 타이머 모듈 내의 자유-실행, 32비트 카운터가 있다. 카운터는 사용자 시간과 연관된다. 사용자 시간은 RF로부터 오는 샘플들이 스트로브되는(strobed) 레이트를 지시한다. 사용자 시간은 데이터가 입력 샘플 RAM에 저장되는 곳과 연관된다. 서브시스템(3)은 입력 샘플 RAM 내의 데이터의 위치가 시간과 연관된다는 것을 이해한다. 서브시스템(3)은 데이터를 매칭되는 필터에 추출한다. 매칭되는 필터의 전단의 신호 처리기(도시되지 않음)는 매칭되는 필터에 대해 신호의 간축 및 회전을 수행한다.
상부 좌측에는 왼쪽으로 사용자 시간을 오른쪽으로 처리 시간을 나타내는 는 점선이 있다. 개념적으로 좌측으로의 처리들은 RF 클럭과 강하게 관련된다. 이벤트들은 사용자 클럭 주기들로 일어나야 한다. 오른쪽으로 임의의 물리적인 주파수를 가질 수 있는 신호 처리기 클럭이 있다. 신호 처리기의 주파수가 높을수록, 단위 시간당 더 많은 데이터가 처리된다.
도 34는 시스템 동작 동안, 특히 모드 1 혹은 콜드 시작 모드에서 일어나는 처리들의 일부를 도시한다. 모드 1에서, 코히런트 RAM은 서브시스템(2)과 서브시스템(3) 사이의 경로에 도시되지 않는다. 모드 1에서 데이터는 매칭된 필터로부터 FFT로 직접 간다. 매칭된 필터는 "잠김" 모드로 되는데, 왜냐하면 매칭된 필터와 FFT가 함께 잠기기 때문이다. 이 모드에서, 매칭된 필터는 단편적인 모드에 있고 4개의 섹션들로 나누어진다.
모드 1에서, 단편적 매칭된 필터는 다른 모드들에서와는 달리 이용된다. 예를 들어, 매칭된 필터는 4개의 섹션들로 나뉘어지는데, 그 각각은 4 샘플, 8 포인트 FFT에의 별도의 입력이다. 그리하여 FFT는 매칭된 필터로부터 4개의 입력들을 직접 얻는다. 포인트들 혹은 샘플들 각각은 코히런트 적분의 1/4초 가치이다. FFT에서, 각 샘플에 대한 짧은 코히런트 적분 시간은 더 넓은 주파수 혹은 빈(bin) 폭을 초래한다. 코히런트 어큐뮬레이션이 긴 주기 동안 일어난다면(더 긴 T1 주기 들이 있음을 의미함), 주파수 빈들은 더 좁아진다. 좁은 주파수 빈들은 추적을 위해서는 바람직하지만, 광범위한 검색을 위해서는 바람직하지 않다.
<일반 시스템 동작>
서브시스템(1)에서, 타이밍 모듈, RF로부터의 신호를 메시징하는 간축 모듈(decimation module), 인입 RF 신호를 제어하는 자동 게인 제어("AGC") 모듈이 있다.
간축된 신호는 그 다음 FIFO 타입 제어를 거쳐 RAM의 섹션에 저장된다. 세가지 타입의 RAM이 있는데, 이들은 입력 RAM, 코히런트 RAM, 및 논-코히런트 RAM이다. 이 세가지 타입의 RAM들은 동적으로 영역들이 할당되는 한 RAM 내에 물리적으로 구현된다. 일 실시예에서 RAM은 FFT와 FFT에 대한 데이터의 공급 목적들을 위해 4개의 블럭들로 나뉜다. 트위들 알고리즘은 4개의 데이터가 한번에 RAM으로부터 나오는 방식으로 데이터가 저장되도록 해준다. 4-블럭 RAM은 데이터 충돌을 회피하는 것을 돕고 RAM들에 대한 액세스의 스루풋을 용이하게 한다.
세개의 데이터 서브시스템들(1, 2, 3) 모두는 4개의 RAM들과, 입력 샘플, 코히런트 어큐뮬레이션, 및 비-코히런트 어큐뮬레이션을 저장하는 RAM들의 다른 영역들에 대한 액세스를 요청한다.
서브시스템(1)이 시작될 때, 이것은 간축된 데이터를 입력 샘플 RAM에 저장한다. 일 실시예에서, 두개의 스토리지 모드들이 있다. 한 모드는 원-샷으로 채워진 어드레스 공간의 영역이 있는 원-샷 모드이다. 서브시스템들의 나머지는 그런 다음 데이터에 대한 동작한다. 다른 모드는 특정 영역을 또한 채우는 사이클릭 버퍼 모드이다. 영역이 채워질 때, 기입 동작 영역의 시작으로 사이크 백하고 저장된 데이터를 재기입하기 시작한다. 사이클릭 버퍼 모드에서, 비특정된 개수의 채널들은 서브시스템(2)과 서브시스템(3)을 시간 다중화하고 이들은 각각 사이클을 통해 데이터를 처리할 제각기의 기회를 얻는다.
시스템의 동작은 하기에서 더 상세히 설명되는 바와 같이 세개의 동작 모드들에서 근본적으로 다르다. 그러나, 소정의 기본적인 공통점들이 세개의 동작 모드들 모두에 적용된다. 일반적으로, 예를 들면, 입력 샘플들은 저장되고, 연관이 수행되고, 스프레드 스펙트럼이 이동되고, 매칭된 필터("매칭된 필터")에 대란 디스프레딩, 및 캐리어 위상이 신호 처리기에 이동된다.
일 실시예에서, 매칭된 필터의 길이는 1024인데, 이것은 통상적인 매칭된 필터보다 긴데, 통상적인 매칭된 필터는 길이 11을 가질 수 있다. FFT는 32 포인트 변환까지 수행하고 임의의 시간에 다양한 여러 어레이 사이즈와 모양들에 대해 이용될 수 있다.
엄청난 불확정성(예를 들면, 모든 위성들이 시야에 있진 않는, 등의)이 있는 경우에, 스프레드 스펙트럼 프로세싱은 시간 도메인에서 1024 칩 오프셋들의 검색을 요구할 수 있다. 리플리카(replica) 코드는 매칭되고 최대인 출력을 얻기 위해 수신 신호와 함께 정렬된다. 이것이 잘못 정렬되면, 출력이 감축된다. 연관이 정확하게 정렬될 때 신호 전력 피크가 있을 것이다. 매칭된 필터가 특수한 리플리카 코드의 카피를 레지스터에 유지하고 그 이전의 신호를 슬라이드하고(slide), 1㎳당 약 한번씩 피크가 나온다. 옥외 환경에서, 신호 펄스는 강한 신호가 있을 때 거의 항상 검출될 수 있지만, 보통은 다수의 것들이 함께 평균된다. 이들중 많은 것들이 합산되고, 각 오프셋에 대해 가산, 1㎳ 앞으로 스킵, 또 하나의 가산이 있다. 1024의 가산들이 각각의 코드 오프셋에 대해 저장될 수 있다.
일 실시예에서, 코드의 전체 1㎳에 대한 적분이 이루어질 때 연관에 대한 유용한 윈도우는 약 + 또는 -500㎐(소정의 손실을 가짐)이다. 보통, 적분들은 약 구번 가깝게 배치된다. 매우 정확하지는 않은 오실레이터, 예를 들면 ㎑의 몇십분의 일의 오차를 갖는 오실레이터를 고려하면, 주파수가 조정되고 연관이 아마도 200회 정도 반복된다. 오실레이터가 캘리브레이트되지 않은 때 한 코드를 검색하는 것은 개개의 검색 빈들에 대해 200K 혹은 400K가 걸릴 것인데, 그 이유는 코드가 칩당 두개의 샘플들로 이격되어 있을 수 있기 때문이다. 따라서, 200 주파수들을 2000 연관으로 곱하면, 400K 개별 셀들이 검색되어야 한다. 이 셀들은 함께 여러번 평균되어야 한다. 이 경우는 매칭된 필터 기능의 한 예의 시나리오이지만, 강한 신호가 기대될 수 있는 옥외 환경에 대해 보통 예약된다.
<일반 메모리 및 중재 특징들>
FIFO1은 어드레스 생성기이다. 도면들에서, FIFO1은 다수의 개념적 입력들을 갖는 것으로 도시되었으나, 일 실시예에서 FIFO1을 포함하는 RAM은 1 포트를 갖는다. RAM으로의 모든 입력들은 중재기를 통해 들어간다. FIFO1은 원형 패턴에서 오른쪽으로 어드레스를 카운트한다. FIFO1은 일 어드레스에서 시작하여 특정 길이의 버퍼를 만든다. 카운터는 시작 어드레스에서부터 끝까지 카운트하고 다시 시작 어드레스로 되돌아가서 데이터의 재기입을 시작한다. 판독 측에서는, 생성되는 각 신호 혹은 논리적 채널에 대해 리로드되는 유사한 어드레스 카운터가 있다. FIFO가 리로드되고, 소정의 샘플들이 재생되고, FIFO가 다시 리로드되고 더 많은 샘플들이 재생된다. 기본적으로, 500㎒ 클럭으로, 모두 이용되어 재기입되기 전까지 실시간으로 약 25회 샘플을 재생하는 것이 가능하다. 플로우를 따라가기 위해, 약 24 채널들이 할당될 수 있다.
FIFO1은 어드레스를 카운트한다. 기입은 비교적 느린 레이트로 진행되는데, 아마도 128 클럭 사이클들 정도 마다일 수 있고, 다른 샘플이 덤프된다. FIFO1은 63비트 라인들에서 액세스된다. 약 8㎳마다 다른 라인의 샘플들이 수집되고, FIFO1은 메모리 사이클을 요구한다. FIFO1은 중재기를 거치고, 이것은 높은 우선순위를 갖기 때문에 이것은 보통은 요청된 메모리의 사이클을 얻는다. 단지 하나 더 높은 우선순위가 있는데, 이것은 마이크로콘트롤러이다. FIFO1은 라인을 기입하고 다른 32 샘플들을 수집하기 위해 진행한다.
서브시스템(2)은 동일한 것을 많이 한다. 시퀀서는 그것이 원하는 샘플의 어드레스를 FIFO에 기입한다. 기본적으로, 검색되는 각 위성의 지연은 첫번째 샘플이 수집되었던 시간을 지시한다. 인입하는 샘플들을 카운트하는 카운터와 시스템이 시작하기를 원하는 위상 사이의 연관이 있다. FIFO 내의 로직은 샘플 카운트를 메모리 어드레스로 바꾼다. FIFO는 판독을 위한 사이클을 요구하고 32 샘플들의 라인을 얻는다. 이것은 반복되고 FIFO는 데이터를 매칭된 필터에 공급한다.
도 4를 참조하면, 데이터는 비교적 느린 레이트로 입력 서브시스템(1)에 들어오고, 카운터는 어드레스를 카운트하고, 서브시스템(2) 내의 유사한 카운터는 루 프 내의 어드레스를 카운트한다. 입력 샘플 버퍼는 25회 리로드된 일 버퍼일 수 있고, 처리는 처리될 필요가 있는 샘플들이 시간적으로 최선으로 이루어지도록 타이밍된다. 처리 후, 소정의 샘플들은 임 버퍼로부터 사라졌고, 소정의 새로운 것들이 저장된다. 처리는 첫번째 패스를 수행하기 위해 걸린 시간과 거의 같은 시간이 들도록 타이밍된다(예를 들면, 800㎳). 샘플들은 모두 시간적으로 분산되고 버퍼가 일정하게 리로드된다. 합산 처리는 RAM으로부터 이전 데이터를 판독하고 새로운 데이터를 이것에 가산하고 이것을 다시 RAM에 넣는다. 이것은 코히런트 어큐뮬레이터 블럭이다. 생성된 각 샘플에 대해, 이것은 메모리에 부가되고, 일단 전체 PDI가 생성되고, FFT 블럭이 이들 각각에 대한 첫번째 칩 오프셋을 받아 이를 처리하고 크기를 취하여(양의 실수) 이를 그 오프셋에 대한 빈에 가산한다. PDI는 7㎳일 수 있고, 이것은 7샘플들/각 코드 오프셋일 수 있는데, 따라서 메모리는 첫번째 ㎳ 동안 1024로서 정렬될 것이고 두번째 ㎳ 동안 1024로 정렬될 것이며 그 이후 ㎳에도 마찬가지로 될 것이다.
시퀀서 포트들은 또한 메모리를 판독한다. 그래서, 일정한 데이터 패턴이 있으며 다양한 서브시스템들은 메모리 사이클에 대한 요구를 실행한다. 아비터(arbiter)는 서브시스템으로부터 요구를 취득하고, 가장 우선순위가 높은 것을 결정하고 메모리 사이클을 허용한다. 일 실시예에서, 우선순위는 도 32에 나타난 바와 같이, 내장되어 있다. 데이터 경로는 적당한 데이터 포트가 메모리를 억세스할 수 있도록 스위치되고 메모리버스가 스위치된다. 다음으로, 아비터는 다음으로 우선순위가 높은 것으로 이동한다. 일 실시예에서, 6-8 포트들은 우선순위에 따라 스위치된다.
일반적인 시퀀스 특성
일 실시예에서, 시퀀서는 채널들 각각의 상태를 저장하기 위해 할당된 메모리의 일부에 데이터를 로딩할 수도 있다. 시퀀서의 작업은, 간단히 언급하면, 메모리내의 데이터를 취득하고, 실행되도록 되어 있는 한 데이터를 하드웨어에서 실행시키는 것이다. 시퀀서가 알아야 할 필요가 있는 모든 것은 대략 256 바이트의 메모리에 있다. 시퀀서는 리스트를 트래버스(traverse)하고 다양한 서브시스템들에서 동작들이 작동하는 상태를 로딩하고 재저장한다. 시퀀서는 그 서브시스템에서 어떤 데이터가 처리중에 있는지에 대한 트랙을 보유해야 한다. 통상적으로, RAM은 상태에 대해 저장된 일부 어드레스를 갖는다. 그러나, 일반적으로, 데이터가 오버랩될 수 없는 것을 제외하고, 데이터를 저장할 장소 또는 얼마나 많은 데이터를 저장할 것인지에 대한 제한이 없다.
채널의 상태는 채널의 정확한 상태의 복구를 실행할 수 있는 리포트로서 주기적으로 저장된다. 리포트는 채널이 있었던 장소에 관한 정확한 정보를 포함한다. 리포트는 코딩된 캐리어 위상을 추출하는 것이 나노초 또는 동일한 피코초(캐리어인 경우에)내에서 통상적으로 정확하다. 이는 샘플들 각각에 대한 지연 및 각을 갖는 크고, 높은 해상도의 넘버이다. 리포트는 하드웨어가 실제적으로 작동하는 동안 추적할 수 있도록 하는, 예를 들면, 20ms마다 주기적으로 덤프(dump)된다. 개념적으로, DMA(direct memory access) 엔진과 유사하지만, 예를 들면, 호스트 프로세서로부터 외부 방향하의 부가적인 기능을 수행하는 로직을 포함한다.
프로세서는 시스템이 최종 시간을 남겨 둔 곳으로부터 모든 모드들, 캐리어 코드 NCO 위상을 포함하는, 시스템의 상태를 로드하고 데이터의 샘플을 처리하도록 지시한다. 프로세서는 다음으로 다음 채널로 이동하도록 지시한다. 에러 조건 및 상태 정보와 같은 다양한 데이터가 시퀀서에 의해 생성되어 극소량을 식별할 수도 있다. 채널이 온 상태에 있는지를 체크하고, 임의의 상태가 잘못되었는지(예를 들면, 프로세싱으로부터 시스템을 보호하는 것과 같은)를 체크하고, 위상을 로딩 시도하며, 위상을 입력 FIFO의 상태와 비교하는 것과 같은 액션의 전체 시퀀스가 있다. 만일 시퀀서가 원하는 샘플이 버퍼내에 없다면, 실행 시도를 하지 않는다. 한 샘플에서 다른 샘플로의 마진을 보고, 그 마진이 최소치 이상인지를 판정한다. 만일 마진이 최소치 이상이 아니라면, 실행하지 않는다. 시퀀서는 모든 것을 행하고나서 다음 채널 또는 프로세스로 이동한다. 때때로, 버퍼는 이미 오버플로우되어 복구의 기회가 없고, 이 경우 시퀀서는 부질없이 상실되는 추가 에너지의 낭비없이 채널을 차단할 것이다. 시퀀서는 호스트 프로세서에 전송하고 인터럽트하여 문제가 사용자 통지전에 고쳐질 수 있도록 한다.
시퀀스는 데이터 활용도에 따라 차례로 기초하는, 특정 서브시스템에 의해 얼마나 많은 ms가 처리되는지에 따라 좌우된다. 시퀀서에 의해 로딩되는 정보의 일부는 채널을 실행하기 위해 버퍼에 충분한 샘플들이 있는지에 따라 좌우된다. 때때로, 시퀀서는 공유 버퍼에서 포인팅되고, 종종 전용 버퍼에서도 포인팅된다. 시퀀서는 얼마나 많은 샘플들이 특정 종류의 FET를 생성할 필요가 있는지, 대 얼마나 많은 샘플들이 버퍼에 있는지를 살핀다. 시퀀서는 시퀀서가 버퍼내에 충분한 샘플들이 존재할 때까지 대기하도록 요구하였는지를 살핀다. 예를 들면, 프로세서는 버퍼를 채울 수도 있기에, 시스템은 버퍼에 채우거나 또는 빼내기 위해 대기할 필요가 있다. 만일 시퀀서가 대기하고, 되돌아 오고, 여전히 샘플들이 충분치 않은 경우, 스킵한다. 이러한 종류의 로직은 시퀀서내에서 진행된다: 데이터를 분류하고(어떤 데이터가 어떤 채널과 대응하는지), 버퍼의 모든 어드레스를 재로딩하고; 버퍼의 상태를 체크하고; 시스템이 작동될 수 있을 때 작동하고, 시스템이 작동될 수 없을 때 스킵하고; 나머지 서브시스템들과 동기하여 잠시 중단한다. 하나의 서브시스템이 채널 어헤드(ahead)를 작동하고 있고 다른 서브시스템이 그 시점에 일부 포인트에서 과부하가 걸려 있기 때문에 실제적으로 지연된 데이터를 처리하고 있는 시나리오가 있다. 이후 다른 서브시스템은 작업 로드가 없을 수도 있으며 이를 캐치(catch) 것이다. 한 서브시스템의 프로세싱이 보다 비지 상태에 있는 반면, 다른 서브시스템의 프로세싱은 보다 평범한 상태에 있기 때문에, 래깅(lagging) 서브시스템은 통상적으로 캐치할 수 있다. 다른 시나리오에서, 버퍼는 풀(full) 상태에 있고 버퍼내의 더 많은 데이터를 채우려고 하는 서브시스템은 정지해야만 한다. 서브시스템은 필요한 다음 데이터는 이미 상실한 긴 주기동안 정지할 수도 있다. 이는, 또한 응답해야 하는 에러 조건을 생성한다.
시퀀서와 프로세서간에는 메시지가 있다. 일반적으로, 프로세서는 덤프되고 있는 상태와 나오게 될 데이터에 의해 연속적으로 진행중에 있는 것을 찾는다.
GPS 시스템은 또한 히스토리 수행에 기초하여 시스템을 제어할 시 이점을 제공하는 트랙 히스토리 구성요소를 더 포함한다. 트랙 히스토리 구성요소("TH")는 예를 들면, 도 4, 16, 17에 나타나 있다. TH 데이터는 캐리어 위상 에러를 연산하고 보정을 전송하는 것과 같은 다양한 방식으로 분석되고 이용될 수 있다. 이는 위성이 움직이거나 발진기가 움직임에 따라, 예를 들면 주파수에 대한 조정이 이루어져야 하기 때문에 유용하다.
일 실시예에서, TH는 코히어런트 통합 샘플들의 버퍼이다. 코히어런트 통합 샘플들은 비교적 길다. 그러나, 통합 샘플들의 길이는 제한된다. 긴 통합의 경우, 캐리어는 가상적으로 불가능한, 긴 주기의 시간동안 완벽해야만 한다. 통합의 길이는 변조에 대해 데이터 비트들 중 하나의 크기인, 약 20ms만큼 많을 수 있다.
TH의 이용들 중 하나는 관찰용으로 약 4개의 칩(4개의 샘플/칩, 또는 매 20ms마다 16개의 샘플이 있다)의 작은 윈도우를 유지하는 것이다. TH는 200ms마다 오버라이트하기 시작할 수도 있다. 윈도우에서의 히스토리는 캐리어 위상에 발생한 것과 데이터에 발생한 것을 밝힌다. TH 데이터는 최근 및 과거에 시스템 성능에 관한 유용한 정보를 제공하는 실시간 데이터 이외의 복잡한 방식으로 "사후 처리(post processed)"될 수 있다.
다양한 동작 모드
상술한 바와 같이, 다양한 서브시스템들은 서로 다른 동작 모드로 상이하게 구성될 수도 있다. 반복하기 위해, 동작 모드들은 모드 1, "콜드 스타트(cold start)" 또는 "락 모드(locked mode); 모드 2, "거친-보조 취득(coarse-aided acquisition)" 모드; 및 모드 3, "고 해상도" 또는 "트랙킹" 모드를 포함한다.
"콜드 스타트" 모드 1
모드 1은 통상적으로 GPS 시스템이 복잡하게 "상실(lost)"될 때 통상적으로 사용된다. 예를 들면, GPS 시스템은 위성이 있는 곳을 예측하는데 사용될 수 있는 시간 관련 정보가 없는 경우, 또는 위성이 있는 아이디어를 가지기에 충분한 물리적 위치를 알지 못하는 경우에 상실될 것이다. 모드 1은 따라서 블라인드 검색이다. 이는 하나의 위성이 한번에 400K 오프셋을 처리하는 위성들의 전체 리스트를 다운하는 것을 포함한다. 32개의 위성 코드가 있다. 때때로, GPS 시스템은 24개가 가능하다는 것을 알 것이며(볼 수 있는 하늘의 부분에 기초함), 때로는 그렇지 않을 것이다. 블라인드 서치는 수백만개의 개별 상관관계에 수백개를 곱한 것을 포함한다. 모드 1에서, 시간을 초과한 모든 개별 빈(bin)을 저장할 수 없다. 그러나, 작은 조각의 데이터는 처리될 수 있다. 모드 1에서, 아마도 100ms 이상의 신호를 포함하는 신호의 원샷 캡쳐는 입력 RAM에 저장된다. 압축 모드(x4 압축) I가 사용되기 때문에, 신호의 데이터 n 100ms의 100k 바이트가 있다. 출력측에는 하나의 8K 버퍼가 있고 그 버퍼에서는 100ms 신호가 재생된다. 효과적으로 1K는 8배의 주파수에 상관된다(FET는 1K 칩 오프셋 각각에 대해 8 주파수를 생성하여 이를 램에 저장한다). 버퍼내의 데이터가 처리되고 단지 강한 신호 피크만이 저장된다. 다음으로, 프로세스는 하프 칩 오프셋으로 반복된다. 모드 1에서, 수많은 빈들의 출력이 있고, 긴 샘플은 취득할 필요가 있는 가장 약한 신호를 찾는 것을 돕는다. 일 실시예에서, 모드 1은 약 30DbHz로 제한되고, 이는 옥외 환경에 대한 표준 임계치이다. 검색은 신호가 발견될 때까지 계속될 수도 있다. 결국 발견된 신호는 시간을 설정하는데 사용되며 후속 검색에 대한 불확실성을 개선시킬 것이다. 초기 검색 프로세스에서, 약 25K이 8번 실행되거나 약 200K 상관이 수행된다. 즉, 효과적으로, 초 당 약 200K 한번의 ms 상관이 수행된다. 200K 유효 상관에 대해 참조할 것이다.
도 3을 잠시 참조하면, 모드 1에서, FIFO 1은 비교적 크게 되도록 구성된다. 모드 1에서, 샘플들은 서브시스템(2)와 서브시스템(3)간의 점선으로 나타난 바와 같이, FEF로 직접 공급된다. FET는 필수적으로 크기를 출력 RAM내에서 합산하여 FIFO 2를 통하지 않고 8 주파수를 생성한다.
"거친-보조 취득(Coarse-Aided Acquisition)" 모드 2
다음 모드, 거친-보조 취득 모드, 또는 모드 2는 보다 감각적인 경우이며 광범위하게 다양한 시나리오에 사용될 수 있다. 예를 들면, 만일 사용자가 GPS 시스템을 지니고 있고 지하실 또는 지하 차고에 진입하는 경우, GPS 유닛은 이전에 공지된 또는 최종적으로 공지된 데이터를 이용한다.
모드 2는 10ms 이하와 같은 적당한 사이즈의 입력 샘플을 이용한다. 입력 버퍼는 연속적으로 채워지고(스냅샷 버퍼로서 사용됨), 15-20K 바이트 정도의 단일 공유 코히어런트 버퍼로서 셋업되거나 하나의 FET로 수행하기에 충분하다. 예를 들면, 시스템은 버퍼(2 바이트 마다)에서 1024개의 상관의 7개의 ms을 저장하기를 원할 것이기에 버퍼는 약 14K가 될 것이다. 14KB의 샘플들은 개별 코드 위상으로서 취해지고 FET로 패스된다. FET로 진행할 시점에 7개의 시간-지연 샘플들이 있다. 16-포인트 변형이 생성되고 수개의 출력들, 아마도 7개 또는 9개는 센터 주파수 빈에 보유된다. 모드 2에서, RAM의 대부분을 채우는 출력 버퍼의 다수의 카피 본이 있다. 나머지 RAM은 전용 비코히어런트 합산 버퍼에 사용된다. 예를 들면, RAM의 소정의 128K, 100K 개별 빈들은 큰 어레이에서 가능하며, 빈들 각각은 주파수 또는 코드 오프셋이다. 모드 2에서, 128K의 메모리의 예에 주어진 1회의 100K 상관기, 또는 64K 메모리에 의해 제한된 40K 상관기만을 검색할 수 있다. 이는 40K 또는 100K 상관기, 유효 실시간, 연속 처리를 의미한다. 그 결과, 버퍼에서 7개의 ms 샘플들의 스트림이 된다. 이 스트림은 짝수 또는 홀수개의 하프-칩 오프셋으로 처리된다. 상관기내에 원-칩 스페이스가 있고 상관기는 하프 칩 오프셋을 얻기 위해 2번 재생(풀 매칭 필터 모드에서)될 수 있다. 주파수의 수는 프로그램가능하다. 예를 들면, 아마도 7개 또는 9개의 주파수가 생성된다. 이는 1K 칩에 의한 9개의 주파수의 비교적 큰 어레이 및 하프 칩 시프트를 갖는 다른 어레이에 의한 것이다. 새로운 주파수 또는 새로운 위성으로 이동하는 경우, 프로세스는 메모리가 풀(full)로 될 때까지 반복된다.
모드 2에서, 위치는 적어도 연속적인 정확도로 알려져 있고 시간은 적어도 손목시계의 정확도로 알려져 있다. 대개 일부 보조 정보는 요구되며, 이는 신호 세기가 위상의 데이터 시퀀스 오프를 복구하기에는 너무 약하기 때문이다. 보조 정보는 서로에 대해 위성 리스트 또는 위성의 위치를 포함할 수도 있다. 만일 사용된 발진기가 고품질의 발진기라면, 보조를 위한 요구사항은 내려간다. 물론, 하나 또는 그 이상의 정보가 소정의 정확도로 활용가능할 때 불활실성은 내려간다.
모드 2에서, GPS 시스템은 비교적 작은 입력을 갖도록 구성되고, 코히어런트 버퍼는 가능한한 많은 메모리가 출력용으로 보존되는 것으로 제공되고, 프로세싱은 연속적으로 일어난다. GPS 신호들간의 스위칭의 경우, 버퍼들 중 하나가 채워지고, 전체 리스트가 처리되며, 시퀀서가 버퍼로 되돌아 올 시점까지 새로운 샘플들의 7개의 ms가 버퍼에 있게 된다. 새로운 7개의 ms는 과거의 7개의 ms의 상부에 추가되고, 이는 연속적으로 약한 신호가 검출될 수 있는 한 계속된다.
"고 해상도" 또는 "트랙킹" 모드 3
제3 모드, "고해상도" 모드, 또는 "트랙킹" 모드가 지금부터 기술될 것이다. 모드 3은 매우 정확한 보조가 활용될 때 취득용으로 적합한다. 모드 3은 또한 취득후 트랙킹용으로 사용될 수도 있다. 모드 3은 또한 GPS 시스템이 매우 짧은 주기의 시간동안 블럭(block)될 때 사용되고 단지 재취득할 때에만 필요하다. 통상적으로, 적합한 모드 3의 경우, 시간은 100ms 또는 그 이상의 이내에 알려져야만 하며 위치는 또한 30Km 이내에 알려져 있어야만 한다. 신호 처리 관점으로부터, 모드 3의 이점은 매우 작은 공간이 검색될 수 있다는 것이다. 따라서, 검색은 매우 고해상도일 수 있다.
모드 3에서, GPS 시스템은 코히어런트 RAM 버퍼 및 넌-코히어런트간섭 RAM 버퍼 둘다 채널마다 전용될 수 있도록 구성된다. 비교적 짧은 입력 RAM이 사용된다. 이 경우, 입력 RAM의 길이는 PDI의 길이보다 훨씬 더 짧게 될 수 있다. 예를 들면, 만일 PDI가 20ms인 경우, 10번의 반복으로 채워질 수 있는 단지 2ms의 전용 버퍼가 요구된다. 그러나, 일반적으로, 적은 코드 오프셋은 다른 모드에 대해 모드 3에서 검색된다.
나머지 모드에서, 4-1 데이터 압축이 통상적으로 사용된다. 모드 3에서, 데 이터 압축은 필요치 않으며 4-비트 프로세싱이 사용될 수도 있다. 다른 모드에 비해 상실(loss)이 감소된다. 예를 들면, 감도의 1Db는 고해상도 처리, 비교적 적은 코드 오프셋 처리 및 전용 코히어런트 및 넌-코히어런트 버퍼에 의해 저장된다. 코히어런트 버퍼는 풀 PDI를 통해 저장된다. 다음으로, PDI는 FET에서 처리되고 부가되며, 동일한 사이클은 순환 방식으로 상이한 채널들을 통해 반복된다.
GPS 시스템은 모드 3을 사용하도록 결정할 때 검색을 시작하는 매우 양호한 아이디어를 갖기 때문에, 최적의 신호, 가장 낮은 상실 프로세싱이 수행될 수 있다. 이는 시스템이 제공할 수 있는 가장 긴 코히어런트 통합 시간을 이용하는 것을 포함한다. 통상적으로, 모드 3의 경우, 위치의 갱신은 일정하게 발생하고 불확실성은 가상적으로 제로이어야 한다. 그럼에도 불구하고, GPS 시스템은 잘못된 트랙킹의 원인이 될 수도 있는, 다중경로, 자동상관, 상호상관 또는 잘못된 피크가 존재하는지의 여부를 판정하기 위해 검색한다. 일반 GPS 시스템이 트랙킹을 수행하면, 모드 3에 이미 있지 않은 경우에, 통상적으로 모드 3으로 진행한다. GPS 시스템은 피크를 조사하고, 피크에 대한 7개의 포인트를 설정하고. 결과가 양호한 신호처럼 보이는지를 결정한다. 일례로서, GPS 시스템은 2개의 신호 복사본을 취득할 수도 있으며, 하나는 직접 그리고 하나는 빌딩으로 바운드시킬 수도 있다. 이 신호들 중 하나는 사라질 수 있으며 GPS 시스템은 잘못된 신호를 추적할 수도 있다.
본 GPS 시스템 실행의 이점은 출력 주위의 대략 10개의 칩의 적은 윈도우를 설정하고 근처 환경을 관찰하여 다중 경로 또는 상호 상관이 있는지의 여부를 판정 할 수 있는 능력이 있다. 이 경우, 실제 신호는 상실되고, GPS 시스템은 혼동되지 않으며, 가능한 재취득 프로세스가 방지된다. GPS 시스템은 상시 처리중에 있는 상이한 오프셋으로부터 만들어진 2개의 유효한 채널을 갖는 하나의 신호의 2개의 상이한 경로를 효과적으로 추적한다. 이에 비해, 종래의 수신기는 피크 주위의 원도우를 오픈시키고, 피크를 가로지르는 3개의 샘플들을 관찰한다. 종래의 시스템은 통상적으로 하나의 상관기를 하나의 스페어로서 가지고 있으며 외부신호를 찾기 위해 상관기가 주위를 맴돌도록 주기적으로 움직일 수 있다. 그러나, 종래의 시스템은 일정한 시야를 가지고 있지 않다. 한편, 공개된 GPS 시스템은 원도우를 잘못된 추적으로부터 항상 오픈시키고 검출하고 즉시 복구할 수 있는 능력을 갖는다.
모드 3은 통상적으로 거의 모든 취득의 최종 단계로서 사용된다. 일부 경우, 몇몇 강한 위성들이 발견되지만, 위성 모두가 발견되는 것은 아니다. 강한 위성을 이용하여, 위치가 만들어지지만, 최적의 위치가 아닐 수도 있다. 이론적으로, 활용가능한 위성은 시차에 의해 생성된 에러의 마진을 최소화하기 위해 전개된다. 따라서, 시스템은 몇몇 위성들을 찾음으로써 시작되고, 다음으로 불확실성을 최소화시킨다. 모드 3은 가능한 최상의 측정치를 만들고, 최적의 위치를 만들며, 다음으로, 다른 모드에서 발견하기에 너무 약했던 추가의 위성들을 발견하기 위해 진행된다.
만일 천문력이 모든 위성들에서 활용가능하다면, 더 약해진 위성들도 측정용으로 사용될 수도 있다. 모드 3에서, 크기 및 합산이 취해지기 이전에 처리된 샘플들을 저장하는 능력이 있다(도면에는 도시되지 않음).
모드의 선택
일 실시예에서, 프로세서는 어떻게 GPS 시스템이 동작하게 될 것인지에 대해 높은 레벨로 모든 결정을 행한다. 프로세서의 작업은 RAM 구조에 데이터를 로딩함으로써 취득을 시작한다. 시퀀서의 작업은 GPS 시스템을 통해 데이터의 흐름을 관리하고 리스트를 통해 사이클링하며, 항상 상태를 갱신하는 것이다. 상태를 갱신함에 따라, 프로세서는 이를 살피고 다음에 무엇을 할 것인지를 결정한다. 프로세서는 네비게이션에 대한 복잡한 계산은 물론 빈도있는 단어의 값을 산출한다.
GPS 시스템은 최종적으로 알았던 것을 이용하려 할 것이다. 천문력은 단지 약 한 시간 동안의 최적의 품질이다. 이는 약 4시간 동안 사용될 수 있지만, 최종 시점쪽으로 가면 저하된다. 책력 데이터는 위성이 있게 되는 긴-달 프로젝션이다. 만일 GPS 시스템이 가끔씩 턴온되는 경우, 책력 데이터는 년 단위로 이용가능하지만, 위성은 시간이 지남에 따라 움직인다. 네비게이션은 통상적으로 책력만을 이용하여 수행될 수 없다.
GPS 시스템은, 프로세서의 방향하에서, 알고 있는 것에 따라 구동에 대한 초기 액션, 예를 들면, 한 시간 전에 턴온되었는지, 위성들에 대한 천문력이 있는지, 시스템이 위치에 관한 메시지를 전송하였는지에 대한 초기 액션에 기초한다. 이 모든 정보는 시퀀스 및 기록으로 프로그램되는 한 세트의 초기 검색으로 집중된다.
GPS 시스템의 이점은 자동 환경의 경우, 시스템(128K의 활용가능한 RAM의 예에서)이 이전 시스템들이 동작하기 위해 1 분이 요구되는 것에 비해 1초내에 작업을 수행할 수 있다는 것이다. 예를 들면, 만일 책력 데이터만이 초기에 활용가능 하다면, GPS 시스템은 1초 내에 추적할 수 있다. 만일 천문력 데이터가 할용가능하다면, GPS 시스템은 위치에 관한 이전의 지식없이도 1초 내에 네비게이션할 수 있다.
공지된 모든 것에 기초한 프로세서는 강한 신호에 대한 빠른 체크 "모든 위치"를 통상적으로 수행함으로써 시퀀스를 시작한다. 강한 신호의 존재는 더 약한 것들이 잼(jam)될 수 있기 때문에 유의하여야 한다. 다음으로, 임의의 추가적인 공지의 정보는 다른 신호들을 찾기 위한 추가적인 감각적인 검색을 수행하는데 사용된다. 일부 실시예에서, 완벽한 자치에 대해 제한이 있으며, 예를 들면, 데이터 시퀀스를 복구할 수 있는 27DbHz로 제한될 수 있다. 데이터 시퀀스는 매 30초마다 반복되어, 네비게이션을 수행하는데 필요한 데이터의 블럭을 로딩하는데 18초 걸리지만, 매 30초 마다 오게 된다. 책력은 나머지 12초에 반복한다. 이는 전체 책력을 다운로딩하는데 약 12초 및 1/2 분 걸린다. 바람직하기로는, 책력에 대한 상이한 소스가 있으며, 이는 시스템이 전원 소비에 대한 네가티브적인 결과를 가져오는, 수집하는데 더 많은 긴 시간이 필요하기 때문이다. 바람직하기로는, 유사한 이유에 대한 천문력에 대한 상이한 소스가 있다. 그러나, GPS 시스템의 이점은 신호 처리가 모든 위성들이 거의 어느 것도 취득할 수 없는 종래의 환경에서보다 더욱 강력하다는 것이다. 다음으로 다른 30초는 정확한 위치를 구하는데 필요할 수도 있다. 바람직하기로는, 책력 및 천문력은 다시 수집되기 전에 가능한 한 길게 보유된다. 예를 들면, 1시간 동안 보유되고나서 필요하다면 재수집된다. 만일 책력 또는 천문력 데이터가 여전히 저장되어 있다면, 더 적은 시간내에 위치를 결정 하는데 재사용될 수 있지만, 결국 데이터는 재수집된다.
GPS 시스템을 구동하는 방법에 대한 결정은 이전 단계의 결과에 기초한다. 예를 들면, 수많은 위성들은 취득된 데이터가 다른 위성 등을 발견하는데 사용될 수 있는지를 찾는다. GPS 시스템은 상이한 타입의 검색을 수행할 수도 있다. 통상적으로, 전체 시퀀스는 완료될 수도 있다: 우선 강한 신호가 존재하는지를 찾는 콜드 스타트; 몇몇 신호들을 찾고 최소 위치를 취득한 것에 기초한 거친-보조 검색; 트랙킹이 수행되는 모드 3. 모드 3이 최상의 감각이 있고 최저 상실을 갖기 때문에, 데이터 임계치 히아의 신호들을 생성한다고 할지라도, 이는 최적의, 가장 효과적인 트랙킹 모드이기 때문에 트랙킹용으로 사용된다.
시스템이 움직임에 다라, 신호는 강한 것과 약한 것을 취득할 것이다. 만일 신호가 충분히 길고 강한 것을 취득한다면, 천문력은 수집될 수 있고, 이것이 약해질 때, 천문력은 트랙킹을 유지하는데 사용된다.
대안적인 실시예
도면들에 도시되고 본 명세서에 기술된 특정 하드웨어 및 소프트웨어 설계에 대한 많은 대안이 가능하다. 예를 들면, RAM은, 일부 시스템에서, 2초 스냅샷이지만, 통상적으로 오프-칩인 2-MEG에서는 상당히 크다. 대안적인 실시예에서, 메모리 인터페이스는 8비트 메모리를 통해 오프-칩 DRAM을 억세스하기 위한 GPS 시스템에 포함된다. 이것은 신호 프로세서용으로 충분한 대역폭을 유지한다. 또다른 실시예에서, 비동기 합을 GPS 시스템 외부에 저장할 수 있다. 또다른 실시예에서, 8비트 메모리 외에 다른 종류의 메모리를 이용해도 된다.
다른 실시예에서, 제어 구조의 요소들은 디지털 신호 프로세서(DSP) 및 그 처리의 일부로 대체된다. 예를 들어, FFT 코어 또는 FFT 가속을 갖는 DSP는 제어 로직을 실행할 수 있다. 콜드 시작 모드가 매우 높은 데이터율을 요구하는 모드 1의 예외가 있을 수 있지만, DSP는 제어 기능을 다룰 수 있다. 또한, DSP는 상관기라기 보다는 FFT의 출력을 취할 수 있다. 다시 말하면, DSP는 FFT를 제어하지만, FFT는 메모리 페치를 스스로 행할 수 있거나 직접 경로를 스스로 취할 수 있다. 또한, DSP에 의해 시퀀싱을 행할 수 있다. 매칭된 필터는 자신의 작업중 상당량에 대하여 자신의 내부 레지스터를 이용할 수 있다. 도시되어 있는 매칭된 필터 설계에 기초하여 매칭된 필터의 리소스들을 분리할 수 있다. 예를 들어, 완전히 매칭된 필터 모드에서, 모든 1024개의 상관기는 단일 칩 위치용으로 사용된다. 다른 매칭된 필터 모드에서, 매칭된 필터 리소스들은 2개, 4개, 또는 8개로 분리되며, 그 결과 매칭된 필터 세그먼트들의 각각에서 상이한 분수 칩 위치(예를 들어, 절반 칩 오프셋, 1/4 칩 오프셋, 또는 1/8 칩 오프셋)가 상관된다.
또한, 매칭된 필터 리소스들은 고 해상도 상관을 생성하도록 구성될 수 있다. 예를 들어, 매칭된 필터가 2개로 분리되면, 상위 절반을 이용하여 2개의 MSB를 상관할 수 있는 한편 하위 절반을 이용하여 2개의 LSB를 상관할 수 있다. 이후, 이 2개의 결과를 더하여 고 해상도 결과를 발생한다. 또다른 예에서는, 매칭된 필터를 4개로 분리한다. 하위 2개를 이용하여 고 해상도 절반 칩 스페이싱의 MSB 및 LSB를 상관하고, 상위 2개를 이용하여 나머지 고 해상도 절반 칩 스페이싱의 MSB 및 LSB를 상관한다. 매칭된 필터 리소스들을 부분으로 분리하고 상이한 부 분들을 이용하는 것은 충분히 유연성을 갖는다.
매칭된 필터의 구성은 고 해상도 모드가 필요한지 여부 및 특정한 분수 코드 스페이싱이 필요한지 여부에 기초하여 초기에 결정된다. 매칭된 필터는 각 채널에 대하여 특정 모드에서 동작하도록 구성된다. 채널들은 시퀀서의 제어 하에 시간 멀티플렉싱 단위로 특정 모드에서 매칭된 필터에 액세스한다.
일실시예에서의 GPS 시스템은, RF 처리부와 기저대역 처리부 간의 인터페이스를 통해, RF 전력 제어 메시징을 제공하는 관련된 방법 뿐만 아니라 RF 전력 제어 메시징을 제공한다. 이 인터페이스는 부적절하고도 불필요하게 되지 않고서 그 2개 처리부 간의 SPS 신호 샘플들의 송신을 추가로 지원한다.
일 구현예에서, 인터페이스는 메시지 직렬 인터페이스 및 데이터 직렬 인터페이스를 포함한다. 데이터 직렬 인터페이스는 SPS 신호 샘플 데이터를 RF부로부터 기저대역부로 통신한다. 메시지 직렬 인터페이스는 전력 제어 메시지들을 포함하여 메시지들을 RF부와 기저대역부 간에 통신한다.
상술한 바와 같이, 메시지 직렬 인터페이스는 그 처리부들 간에 전력 제어 메시지들을 통신한다. 메시지 직렬 인터페이스는 메시지-인 신호 라인, 메시지-아웃 신호 라인, 및 메시지 클록 신호 라인을 포함할 수 있다. 일부 구현예에서, 메시지 직렬 인터페이스는 슬레이브-선택 신호 라인을 포함할 수도 있다. 전력 제어 메시지는, 예를 들어, 멀티플 전력 제어 비트들을 포함할 수 있다. 각 전력 제어 비트는 RF부내의 소정의 회로부에 대한 전력 상태(예를 들어, 파워-업 또는 파워-다운)를 특정할 수 있다.
예를 들어, 단일 데이터 비트 신호 라인을 이용하여 신호 샘플들을 RF부로부터 기저대역부로 직렬 전달함으로써 데이터 직렬 인터페이스의 복잡성을 줄일 수 있다. 데이터 직렬 인터페이스는 신호 샘플링을 위한 타이밍을 제공하는 데이터 클록 신호 라인을 포함할 수도 있다. 특히, 예를 들어, 데이터 클록 신호 라인은 16 fo(여기서, fo=1.23MHz)에서 공칭 실행되는 (상승 에지 및 하강 에지를 포함하는) 데이터 클록을 전달할 수 있는 한편 데이터 비트 신호 라인은 직렬 송신되는 데이터 비트들을 포함하는 데이터 신호를 전달할 수 있다. 일 구현예에서, 제1 타입의 데이터 비트는 데이터 클록의 상승 에지에서 유효하고 제2 타입의 데이터 비트는 그 데이터 클록의 하강 에지에서 유효하다. 예를 들어, 제1 타입의 데이터 비트는 부호 비트일 수 있는 한편 제2 타입의 데이터 비트는 크기 비트일 수 있다.
도 44는 위성 위치이동 시스템의 수신기(44-200)를 도시한다. 수신기(44-200)는 RF 대 기저대역 인터페이스(44-206)를 이용하는 기저대역 처리부(44-204)에 결합된 RF부(44-202)를 포함한다. RF 처리부(44-202)는 SPS 신호, 예를 들어, 1575.42 MHz GPS 신호를 RF 입력(44-207)에서 수신한다.
수신기(44-200)는 일반적으로 RF 프론트 엔드(44-224) 및 기저대역 백 엔드(44-226)를 포함하는 것으로 간주된다. RF 프론트 엔드(44-224)는 RF 처리부(44-202) 및 RF 대 기저대역 인터페이스(44-206)를 포함한다. RF 프론트 엔트(44-224)는, 하향변환, 자동 이득 제어, 및 아날로그 대 디지털 변환의 시퀀스를 통해 RF 입력(44-207)에서 수신한 SPS 신호들을 처리한다. 기저대역 백 엔드(44-226)는 기저대역 처리부(44-204) 및 RF 대 기저대역 인터페이스(44-206)를 포함한다. 기저 대역 백 엔드(44-226)는 RF 프론트 엔드(44-224)에 의해 제공된 샘플링된 데이터를 (마이크로콘트롤러 코어, CPU, 또는 다른 제어 로직을 이용하여) 처리한다. 기저대역 백 엔드(44-226)는, 처리된 데이터를, 디지털 통신 인터페이스(44-222)를 포함하여 하나 이상의 어드레스, 데이터, 제어, 및 클록 신호들을 이용하여 디지털 장치(예를 들어, 디지털 신호 프로세서, 범용 마이크로콘트롤러 또는 CPU, 또는 호스트 PC)와 통신한다.
RF 프론트 엔드(44-224) 및 기저대역 백 엔드(44-226)중 하나 또는 모두는 예를 들어 개별적인 단일 집적 회로로서 구현될 수 있다. 따라서, RF 프론트 엔드(44-224)는, RF 입력(44-207)(예를 들어, 패키지 상의 특정 입력 핀), RF 처리부(44-202), 및 인터페이스(44-206)(예를 들어, 상세히 후술하는 바와 같은 인터페이스 핀들의 세트)를 포함하는 단일 패키지일 수 있다. 유사하게, 기저대역 백 엔드(44-226)는 기저대역 처리부(44-204), 인터페이스(46-206), 및 디지털 인터페이스(44-222)를 포함하는 단일 패키지일 수 있다. RF 처리부(44-202) 및 기저대역 처리부(44-204)에 의해 수행되는 처리는 SiRFStar® I, II, 또는 III 칩셋 데이터 시트에 상세히 기재되어 있는 처리일 수 있으며, 이하 인터페이스(44-206)를 상세히 설명한다. SiRFStar® 칩셋은 미국 캘리포니아주 산호세에 소재하는 SiRF Technology, Inc.에 의해 이용가능하다.
도 44에 도시한 바와 같이, RF 프론트 엔드(44-224) 및 기저대역 백 엔드(44-226) 간의 기능적 분리는 2개의 개별적 집적 회로로 이루어지는 것이지만, 다른 많은 구현예도 가능하다. 예를 들어, 많은 이산 로직 및 신호 처리 회로 블록 들은 RF, 기저대역, 및 인터페이스(44-206) 기능성을 구현할 수 있다. 또다른 예로, RF 프론트 엔드(44-224) 및 기저대역 백 엔드(44-226)의 기능성을 갖춘 임의의 회로부를, 단일 패키지 또는 집적 회로, 멀티플 패키지 혹은 집적 회로 내로 통합할 수 있거나 하나 이상의 회로 보드에 걸쳐 분산될 수 있다. 이러한 구현예에서, 개별적 배선, 회로 보드 트레이스, 또는 VLSI 메탈 혹은 폴리실리콘층들은 RF 처리 회로부 및 기저대역 처리 회로부 간에 인터페이스(44-206) 신호를 전달한다.
게다가, RF 프론트 엔드(44-224) 및 기저대역 백 엔드(44-226)의 기능성을 갖춘 임의의 회로부는, 추가 기능성과 함께, 단일 패키지 또는 집적 회로, 멀티플 패키지들 혹은 집적 회로들 내로 통합되거나 하나 이상의 회로 보드에 걸쳐 분산될 수 있다. 예를 들어, RF 및 기저대역 회로부는, 셀룰러 전화 통신용, PDA 동작, 또는 엔진, 악기, 또는 자동차의 전자 콘트롤러용 디지털 또는 아날로그 처리 회로부와 함께 다이 상에 집적될 수 있다. 따라서, 도 44 및 상술한 예들은 제한적이지 않으며, 당업자는 특정 구현예, 기능성 분리, 및 RF 처리, 기저대역 처리, 및 인터페이스(44-206)를 구현하는 회로부의 패키징이 항상 사용할 수 있는 애플리케이션, 엔지니어링 고려사항, 비용 고려사항 등에 따라 크게 가변될 수 있음을 이해할 수 있다.
인터페이스(44-206)는 메시지 직렬 인터페이스(44-208) 및 데이터 직렬 인터페이스(44-210)를 포함한다. 메시지 직렬 인터페이스(44-208)는 RF부(44-202) 및 기저대역부(44-204) 간에 양방향으로 범용 메시지의 직렬 통신을 제공한다. 대조적으로, RF부(44-202)는 데이터 직렬 인터페이스(44-210)를 이용하여 SPS 신호 샘 플들을 기저대역부(44-204)에 송신한다.
먼저, 일반적으로 도 46에 도시한 인터페이스(44-206) 신호들은 CMOS 호환성을 갖는다는 점에 주목하길 바란다. 특히, 로직 1에 대한 입력은 0.7*Vcc V 초과이며, 로직 0에 대한 입력은 0.3*Vcc V 미만이다. 로직 1에 대한 출력은 Vcc-0.4 V 초과이며 로직 0에 대한 출력은 0.4 V 미만이다. 입력/출력 핀들은 필요로 하는 구현예에 따라 일반적으로 2.5 V 또는 3.3 V 범위에서 동작한다. 실시간 클록(RTC) 입력/출력 핀들은 1.5 V에서 동작할 수 있지만, 필요하다면 3.3 V 레벨을 견디도록 설계될 수 있다. 그러나, 필요로 하는 구현예에 따라 임의의 신호들을 상이한 전압 등급 또는 명세에 조절할 수 있다.
메시지 직렬 인터페이스(44-208)는, 도 46에 도시한 바와 같이, 메시지-인 신호 라인(MSG_DO/MI로 표시됨), 메시지-아웃 신호 라인(MSG_DI/MO로 표시됨), 메시지 클록 신호 라인(MSG_CLK/MK로 표시됨), 및 슬레이브-선택 신호 라인(MSG_CEB/SS N[0]으로 표시됨)을 포함한다. 메시지 신호 라인 상의 라벨들은 RF 부(44-202)/기저대역부(44-204)의 시점에서 볼 때 데이터 흐름 방향을 가리킨다. 예를 들어, 메시지-아웃 신호 라인(MSG_DI/MO)은, RF부(44-202)에 입력되어 기저대역부(44-204)에 의해 출력된 메시지 비트들을 전달한다.
데이터 직렬 인터페이스(44-210)는 데이터 클록 신호 라인(ACQCLK로 표시됨) 및 데이터 비트 신호 라인(SGNMAG로 표시됨)을 포함한다. 데이터 직렬 인터페이스(44-210)는, 일반적으로 단일 데이터 비트 신호 라인만을 이용하여 데이터 비트들을 기저대역부(44-204)로 직렬 통신한다 (이것은 도 47을 참조하여 상세히 후술한 다). 따라서, 데이터 직렬 인터페이스(44-210)는 일반적으로 2개의 신호 라인만큼 적은 라인, 즉, 데이터 클록용 하나의 라인과 데이터 비트들을 위한 나머지 하나의 라인을 포함한다. 따라서, 데이터 직렬 인터페이스(44-210)는 RF부(44-202) 및 기저대역부(44-204) 간의 SPS 신호 샘플 인터페이스를 위한 저 복잡성 해결책이다.
도 46에 도시한 바와 같이, RF 처리측의 수신부(44-200)는, 실시간 클록(RTC) 발진기(OSC) 및 모니터부(44-212)도 포함한다. 32 KHz 수정(또는 다른 클록 소스)은 RTC OSC부(44-212)에 입력 클록(44-214)을 제공한다. RTC OSC부(44-212)는, 기저대역부(44-204)가 예를 들어 GPS 시간 또는 UTC 시간을 유지하는데 사용되는 RTCLK/RIN 신호 라인 상에 클록 출력을 생성한다. 클록 출력은, 예를 들어, 32,768 Hz 1.5 V CMOS 출력이다. RTC OSC부(44-212)는 전력 다운 모드동안 계속해서 실행되어 기저대역부(44-204)가 시간을 정밀하게 유지하는데 기여한다.
그러나, RTC OSC부(44-212)에서의 모니터부(예를 들어, 클록 입력에 결합되며 비교기가 뒤따르는 정류기)는 입력 클록(44-214)이 일관적으로 실행된 때(예를 들어, 10 내지 30 클록 사이클 이하 동안 정지한 때)를 결정한다. 클록이 매우 오랫동안 정지하였다면, RF부(44-202)는 비트를 설정하여(예를 들어, 플립/플롭 출력을 설정하거나 멀티 비트 상태 레지스터를 설정한다) 클록 출력이 일관적이지 않았음을 가리킨다(그리고 일부 경우에서는, 기저대역부(44-204)가 수신된 SPS 신호의 전체 범위를 탐색하여 정확한 시간을 결정해야 함을 가리킨다).
또한, RF부(44-202)는 수정 발진기(44-216) 또는 외부 클록 소스(44-218)로부터의 클록킹 입력(예를 들어, 무선 장치에서 제공되는 주파수 기준)을 허용한다. 클록킹 입력(44-216, 44-218)은, RF부(44-202)에서의 PLL 디바이더 체인이 ACQCLK 신호를 생성하는데 이용하는 클록 소스를 제공한다. 클록킹 입력(44-216, 44-218)은 이하 OSCCLK라 통칭하는 한편, PLL 디바이더 체인 클록은 PLLCLK라 칭한다. PLLCLK는 전형적으로 OSCCLK (또는 내부 기준)으로부터 도출된 데이터 클록(ACQCLK) 상에서 16 Fo(여기서, Fo=1.023MHz)의 공칭 주파수를 생성하도록 설정된다.
파워 업 시에, (일반적으로 5 내지 27 MHz의 범위에 있는) OSCCLK는 ACQCLK 출력 상에 존재한다. (후술하는) 메시지는 RF부(44-202)에 지시하여 ACQCLK를 OSCCLK로부터 PLLCLK로 그리고 PLLCLK로부터 OSCCLK로 스위칭시킨다. ACQCLK 신호는 (ACQCLK이 확장된 저 사이클을 가질 수 있는 스위칭 클록 소스일 때를 제외하고) 45%와 55% 사이의 듀티 사이클을 갖는 2.5 / 3.3 V CMOS 출력일 수 있다.
전력 제어 신호(PWRUP / RFPWRUP라 표시함)는 선택 사항으로서 제공되어 RF부(44-202)의 소정의 부분을 파워 업하는지 여부를 제어한다. 전력 제어 신호는, 예를 들어, RF부(44-202)의 전압 레귤레이터 인에이블 핀에 접속되어 RF부(44-202)의 회로 대부분에 걸쳐 대략적인 파워 업/파워 다운 제어를 제공할 수 있다. 반면에, RTC OSC부(44-212)는 개별적으로 전력을 공급받아 계속해서 클록을 기저대역부(44-204)에 제공할 수 있다. 전력 제어 신호는 2.5 / 3.3 V CMOS 신호일 수 있다. 기저대역 처리측은 RTC 로직부(44-220)를 포함한다. RTC 로직부(44-220)는 RTC OSC 및 모니터부(44-212)에 의해 생성되는 입력 클록을 SPS 위치 해결책 뿐만 아니라 현재 시간을 결정하는데 있어서의 보조로서 허용한다.
또한, RTC 로직부(44-220)은 (로우로 표명되는) 리셋 신호(GRFRST_N / RESET_N)를 출력한다. 리셋 신호를 이용하여 파워 온 시에 RTC OSC부(44-212) 및 RF부(44-202)에서의 제어 레지스터의 상태를 리셋할 수 있다. 예를 들어, GRFRST_N이 표명되면, RF 처리측 상의 디지털 제어 레지스터들은 자신들의 디폴트 상태로 리셋된다. 제어 레지스터들의 디폴트 상태에 의해 (PWRUP이 표명되어 있을 때) OSCCLK 회로가 동작할 수 있으며 ACQCLK 출력이 OCSCLK에 의해 구동될 수 있다. GRFRST_N이 표명되어 있지 않으면, RF부(44-202)는 내부 로직 상태에 따라 동작한다.
일 구현예에서, 메시지 직렬 인터페이스 신호들은 2.5 V/3.3 V CMOS I/O 신호들이다. MSG_CLK/MK, MSG_DI/MO, 및 MSG_CEB/SS_N[0] 신호들은 RF부(44-202)로 입력된다. MSG_DO/MI 신호는 삼상 제어에 의해 RF부(44-202)로부터 출력된다. MSG_CEB/SS_N[0]은 로직 하이이며, MSG_DO/MI 출력은 고 임피던스이며 메시지 직렬 인터페이스(44-208)에도 접속된 다른 장치들에 의해 구동될 수 있다. 따라서, 기저대역부(44-204)로부터의 MSG_CEB/SS_N[0] 출력은, RF부(44-202)가 MSG_DO/MI 신호 라인 상의 데이터를 구동할 수 있게 하는 슬레이브 선택 신호로서 동작한다. 추가 장치들을 메시지 직렬 인터페이스(44-208)에 부착하면, 기저대역부(44-204)는 추가 슬레이브 선택 신호 라인들을 제공하여 어느 장치가 MSG_DO/MI 신호 라인 상의 데이터를 구동할 수 있도록 허용되는지를 결정할 수 있다.
또한, RF 섹션(44-202)은 하나 이상의 외부 아날로그 센서(도시 생략)를 포함할 수 있다. 따라서, RF 섹션(44-202)의 멀티채널 아날로그-투-디지털(A/D) 컨 버터는 아날로그 입력 신호의 측정치들을 구하고, 베이스밴드 섹션(44-204)에 그 결과들을 통지한다. 이 아날로그 입력에는 온도 입력, 자이로 회전율 입력, 휠 조작 입력, 또는 배터리 전압 입력이 포함될 수 있지만, 이에 한정되지 않는다.
표 1은 리시버 섹션(44-220)의 동작 모드들을 개괄하고 있다:
표 1
모드 GRFRST_N PWRUP 동작
sleep 0 0 RF 섹션 전압 레귤레이터 디스에이블됨; RTC OSC 섹션은 RF 섹션으로부터 단락됨.
Start-up 0 1 RF 섹션 전압 레귤레이터 인에이블됨; RTC OSC 섹션은 단락됨; 레지스터들은 리세트됨; OSCCLK는 인에이블됨; ACQCLK는 OSCCLK를 출력함.
NA 1 0 금지
Normal 1 1 RF 섹션 전압 레귤레이터 인에이블됨; RTC OSC 섹션은 RF 섹션과 통신함; 메시지들에 의해 RF 섹션의 동작이 제어됨.
다음으로 도 45를 참조하면, 이 도면은 데이터 클럭(45-302)과 데이터 신호(45-304) 간의 관계를 나타내는 타이밍도(45-300)를 도시한다. 데이터 신호(45-304)는 베이스밴드 섹션(44-204)에 SPS 신호 샘플들을 제공한다. 이 SPS 신호 샘플들은, RF 섹션(44-202)에 연결된 안테나에서 수신한 SPS 입력 신호로부터 얻어진 것이다. ACQCLK 신호 라인은 데이터 클럭(45-302)을 전송하는 한편, SGNMAG 신호 라인은 데이터 신호(45-304)를 전송한다. 데이터 신호(45-304)는 예컨대 2.5/3.3V CMOS 출력일 수 있고, 이 데이터 신호는 부호 비트 데이터(45-306) 및 크기 비트 데이터(45-308) 둘 다를 SGNMAG 신호 라인 상으로 전달한다. 일 구현예에서는, 이 데이터 신호(45-304)는 RF 섹션(44-202)의 A/D 컨버터에서 구해진 부호 및 크기 비트 정보를 제공한다.
다른 구현예에서는, 베이스밴드 섹션(44-204)이 상기 전달된 데이터를 식별할 수 있도록 하기 위해 데이터 비트들에 적용되는 주지의 프로토콜 또는 인코딩 기법(예컨대, 의사 랜덤(pseudorandom) 노이즈 코드)과 관련하여, 추가의 비트들로 이루어진 정보 또는 양자화가 제공될 수 있다. 또한, 데이터 신호(45-304)는, RF 섹션(44-202)에 의해 처리되는 각종 무선 체인(radio chain)용의 신호 샘플들을 전달할 수 있다. 예를 들면, RF 섹션(44-202)이 SPS 데이터를 처리하는 경우에는, 데이터 신호(45-304)는 앞서 설명한 샘플 당 2 비트의 (부호 및 크기의) 데이터 페어(data fair)를 전달할 수 있다. 한편, RF 섹션(44-202)이 별도의 RF 신호(예컨대, 블루투스(Bluetooth) 신호)를 처리하는 경우에는, 데이터 신호(45-304)는 그 RF 신호를 처리하기 위해 수립된 가이드라인에 따라서 샘플 당 다수의 비트(예컨대, 4 또는 6 비트)를 대신에 전달할 수 있다. 마찬가지로, 데이터 클럭(45-302)은, RF 섹션(45-202)이 현재 처리 중인 RF 신호에 대한 처리 가이드라인을 만족시킬 수 있도록, 주파수 및 듀티 사이클면에서 변경될 수 있다.
도 45에 도시하는 바와 같이, RF 섹션(44-202)은 데이터 클럭(45-302)이 하이(high)일 때에는 부호 비트(45-306)를 출력하고, 데이터 클럭(45-302)이 로우(low)일 때에는 크기 비트(45-308)를 출력한다. 도 47에 도시하는 바와 같이, 부호 비트(45-306)는 데이터 클럭(45-302)의 하강 엣지(falling edge)(45-310) 이전에 TSETUP -F동안 유효(valid)하다. 마찬가지로, 크기 비트(45-308)는 데이터 클럭(45-302)의 상승 엣지(rising edge)(45-312) 이전에 TSETUP -R동안 유효하다.
부호 비트(45-306)는 데이터 클럭(45-302)의 하강 엣지(45-310) 이후에 THOLD -F동안 유효하게 유지된다. 크기 비트(45-308)는 데이터 클럭(45-302)의 상승 엣지(45-312) 이후에 THOLD -R동안 유효하게 유지된다. 셋업 타임과 홀드 타임은 구현예마다 다르게 할 수 있다. 일례로는, 셋업 타임과 홀드 타임은 약 5∼10㎱일 수 있다.
메시지 시리얼 인터페이스(44-208)는 매우 다양한 방식으로 구현될 수 있다. 일 구현예로는, 메시지 시리얼 인터페이스(44-208)는 후술하는 바와 같은 특성들을 갖는데, 다른 구현예들도 물론 가능하다.
RF 섹션(44-202)의 메시지 시리얼 인터페이스는 베이스밴드 섹션(44-204)에 대해 슬레이브 디바이스(slave device)(또는 후술하는 바와 같은 특성들을 갖는 마스터 디바이스(master device))로서 동작한다. RF 섹션(44-202)에 대한 (MSG_DI 라인 상에서의) 입력 비트들은 MSG_CLK의 제어 하에서 RF 섹션(44-202)의 32 비트 시프트 레지스터로 이동된다. 일 구현예에서, 32 비트까지가 하나의 메시지 블럭으로 보내어지고, 그 처음의 최상의 비트를 사용하여 데이터가 송수신된다. 동시에, RF 섹션(44-202)으로부터의 출력이 필요하지 않으면, MSG_DO 출력은 접속될 필요가 없다. 일 구현예에서는, MSG_CLK는 20㎒까지에서 동작하고, 메시지 시리얼 인터페이스의 신호들은 논리 1에 대해서는 약 0.8*VCC 이상이고, 논리 0에 대해서는 약 0.2*VCC V 이하이다.
슬레이브 선택 신호 라인(MSG_CEB)은 시리얼 데이터 전송 시에 로우로 활성(active)된다. 그러므로, MSG_CEB가 미리 선정된 기간(예컨대, 5㎱)동안 하이인 동안에 한해서는, MSG_DI 및 MSG_CLK는 무시될 수 있다. MSG_CLK의 상승 엣지 시에 데이터가 샘플링된다. 일 구현예에서는, MSG_CLK의 상승 엣지 이후의 적어도 5㎱에서 MSG_DI 또는 MSG_DO의 천이가 발생해서, MSG_CLK의 다음 상승 엣지 이전의 적어도 5㎱까지 고정된다. MSG_CLK의 하강 엣지 시에 데이터가 이동된다. 상기 예를 이용하여 이어서 설명하면, MSG_CEB 신호는 MSG_CLK의 최초의 상승 엣지 이전의 적어도 10㎱에서 활성(논리 0)으로 될 수 있고, MSG_CLK의 최후의 하강 엣지 이후의 적어도 10㎱까지는 활성(논리 0)이 유지될 수 있다. 상기 두 케이스의 시간 간격은, 예를 들면, 1 클럭 사이클의 절반일 수 있다. 그러면, MSG_CEB는 RF 섹션(44-202)이 데이터를 래치하기 위한 시간을 제공할 수 있도록 적어도 30㎱ 동안은 비활성(inactive)(논리 1)을 유지할 수 있다.
메시지 블럭의 모든 데이터가 전송되기 전에 MSG_CEB 신호가 하이로 천이되면, 해당 데이터는 폐기되어 RF 섹션(44-202)의 레지스터들에 인가되지 않는다. 메시지 블럭의 미사용 비트들은 0으로 세트된다. 그러나, 축약된 1 바이트 메시지가 허용되는 고속 기입 모드(fast write mode)가 제공된다. 이 고속 기입 모드는 8 비트 이상의 비트가 수신될 때까지 취해진다. 8 비트 이상의 비트가 수신되면, RF 섹션(44-202)은 하나의 유효한 메시지로서 완전한 32 비트(full 32 bits)를 수신하였다고 간주한다.
RF 섹션(44-202)은, 데이터를 요청하는 베이스밴드 섹션(44-204)으로부터 수신된 메시지에 응답하여, 베이스밴드 섹션(44-204)에 데이터를 (MSG_DO 상으로) 출력한다. 그러면, 베이스밴드 섹션(44-204)은 RF 섹션(44-202)의 시프트 레지스터의 상기 요청된 데이터를 그 시프트 레지스터로부터 이동시키도록 하는 후속 메시지를 보낸다. 이 후속 메시지는 독립된 동작 메시지일 수 있고, 혹은, 상기 요청된 데이터를 이동시킬 목적으로만 송신되는 더미(dummy) 메시지일 수 있다.
도 46은 슬레이브 선택 신호(MSG_CEB)(46-402), 메시지 클럭 신호(MSG_CLK)(46-404), 및 메시지 데이터 비트 신호(MSG_DO 및 MSG_DI)(45-306) 간의 관계를 나타내는 타이밍도(46-400)를 도시한다. 슬레이브 선택 신호(46-202)가 하강하면, 데이터 전송이 개시된다. 전송된 데이터는 슬레이브 선택 신호(46-202)가 상승하면 래치된다.
도 46에 도시하는 바와 같이, 메시지 아웃(message-out) 신호 라인(MSG_DI/MO) 및 메시지 인(message-in) 신호 라인(MSG_DO/MI)은 각각 시리얼 비트 스트림을 운반한다. 이 메시지 아웃 신호 라인 상의 시리얼 비트 스트림은, 베이스밴드 섹션(44-204)로부터 RF 섹션(44-202)으로 전송되는, 미리 정해진 RF 섹션의 메시지들의 그룹에서 선택된 메시지를 나타낸다. 마찬가지로, 상기 메시지 인 신호 라인 상의 시리얼 비트 스트림은 RF 섹션(44-202)으로부터 베이스밴드 섹션(44-204)으로 전송되는, 미리 정해진 베이스밴드 섹션의 메시지들의 그룹에서 선택된 메시지를 나타낸다.
상기 메시지들은 특정 용도 또는 포맷에 한정되지 않는다. 보다 상세히 후술하겠지만, 이 메시지들은 RF 섹션 전력 제어 메시지, RF 섹션 테스트 메시지, 클럭 스테이터스(status) 메시지, 아날로그 측정치 메시지, 채널 변환 카운트 메시지 등을 포함할 수 있지만, 이에 한정되지 않는다.
일 구현예에서는, 4 가지 타입의 메시지 블럭들이 정의된다. (32 비트 또는 8 비트 시퀀스로 된) Data[1:0]은, 아래의 표 2에 나타낸 바와 같이, 4 가지의 메시지를 규정하는 어드레스 비트이다. 각 메시지 타입은 고속 기입 모드와 완전 기입 모드(full write mode) 둘 다를 지원할 수 있고, 이 두 가지 모드에는 예비 용량(spare capacity)이 정의되어 있다.
표 2 - 메시지 블럭
Data[1:0] 메시지 타입 메시지 명칭
00 0 AGC(Fast Write) and Synthesizer(AGC(고속 기입) 및 신시사이저)
01 1 Power Control(Fast Write) and Synthesizer(전력 제어(고속 기입) 및 신시사이저)
10 2 Output Message Types(출력 메시지 타입)
11 3 Input Message Type Expansion(입력 메시지 타입 확장)
각 메시지의 내용의 예시가 표 3∼표 8에 상세히 나타나 있다. 표 3은 AGC 및 신시사이저 제어 메시지를 나타내고, 표 4는 전력 제어 및 신시사이저 제어 메시지를 나타내며, 표 5는 선택된 메시지 타입용의 출력 요청 타입을 나타낸다. 표 6은 출력 메시지 타입을 나타내고, 표 7 및 표 8은 입력 메시지 타입을 나타낸다. 그 열(column)들은 다음과 같은 내용을 규정한다. 비트라고 명명된 제1 열은 메시지 데이터 비트를 명시하는데, 비트 0은 송신된 최후의 비트를 가리킨다. 필드명이라고 명명된 제2 열은 해당 메시지의 필드의 명칭을 밝힌다. 길이라고 명명된 제3 열은 해당 필드의 길이를 나타낸다. 디폴트(default)라고 명명된 제4 열은 전력이 처음 인가되었을 때 RF 섹션(44-202)의 디폴트 파라미터의 내용들을 밝히는 것이다. 내용이라고 명명된 제5 열은 해당 필드의 허용된 내용들을 기술한다. 기능이라고 명명된 제6 열은 해당 필드가 무엇을 달성하는 것인지를 밝힌다. _Pwr이라고 명명된 제7 열은, 필요에 따라서, 해당 필드들의 출력들을 RF 섹션(44-202)에의 인터페이스에 대해 0으로 유도하는 데 사용되는, 표 4에 나타낸 전력 도메인 제어 비트가 어느 것인지를 나타낸다.
메시지 타입 2는, 32 타입까지의 출력 요청을 지정하는 필드를 사용하여, 출력 요청을 구현하는 데 제공된다. 메시지 타입 3은 입력 메시지 타입(또는 어드레스)를 4 가지로부터 36 가지로 확장하는 데 제공된다. "신시사이저"의 후술하는 기준치는 RF 섹션(44-202)의 PLL 신시사이저 클럭 발생 회로에 대한 기준치이다. 예컨대, PLL 신시사이저는, 복수의 다른 입력 기준 주파수로부터 PLLCLK를 생성하기 위해 클럭 분할기의 값들을 설정하도록 구성될 수 있다.
표 3 - 메시지 타입 0 : AGC 및 신시사이저 제어 (Address[1:0]=0)
비트 필드명 길이 디폴트 내용 기능 _Pwr
31:28 Spare0[3:0] 4 0 0 예비
27:8 NUM[19:0] 20 TBD 0x0000∼0xFFFFF RF 섹션(44-202)의 PLL 클럭 발생 섹션에서의 루프 분할기의 분수부의 분자를 지정함. Synth
7:2 AGC[5:0] 6 0 0x00∼0x3F RF 섹션(44-202)의 제어 AGC 이득 Rx
1:0 Address[1:0] 2 0 0 메시지 타입을 정의함.
표 4 - 메시지 타입 1 : 전력 제어 및 신시사이저 제어 (Address[1:0]=1)
비트 필드명 길이 디폴트 내용 기능 _Pwr
31:28 Spare1[3:0] 4 0 0 예비
27 InvertFePwr 1 0 0:Fe_Pwr=Rx_Pwr 1:Fe_Pwr=~Rx_Pwr 테스트를 위해 RF 섹션(44-202)의 수신 체인을 분할함.
26 WideBwFilter 1 1 0=Narrow BW (협 BW) 1=Wide BW (광 BS) RF 섹션(44-202)에 사용되는 필터를 선택함. Rx
25:18 ND[7:0] 8 - 0x00∼0xFF PLL 클럭 발생 섹션의 신시사이저 루프 분할기의 파라미터 중 정수부를 지정함. Synth
17:15 RDIV[2:0] 3 - 0x0∼0x7 PLL 클럭 발생 섹션의 신시사이저 기준 분할기의 값을 지정함. Synth
14:11 CP[3:0] 4 - - 신시사이저의 차지 펌프 출력 및 테스트 모드를 지정함. PLL
10 PD_POL 1 - 1=포지티브(positive) 0=네거티브(negative) 위상 검출기의 극성을 지정함. PLL
9 DvSel 1 1 0=Fractional(분수) 1=Integer(정수) PLL의 피드백을 위한 분할기를 지정함. PLL
8 SDO 1 1 0=제3 차수 SD 1=제1 차수 SD 시그마 델타 차수를 선택함. Synth
7 Rx_Pwr 1 0 1=on 0=off A/D 컨버터를 통해서 제2 로우 노이즈 증폭기의 프론트 엔드 전력을 제어함.
6 AcqClk_Sel 1 0 1=PLL 0=Osc ACQCLK용으로 OSCCLK 또는 PLLCLK를 선택하는, 글리치(glitch) 없는 스위치를 제어함.
5 Synth_Pwr 1 0 1=on 0=off N분의 1 신시사이저(fractional N synthesizer)에의 전력을 제어함.
4 PLL_Pwr 1 0 1=on 0=off PLL 및 분할기 체인용의 전력을 제어함.
3 LNA1_Pwr 1 0 1=on 0=off 제1 (선택적) LNA에의 전력을 제어함.
2 Osc_Pwr 1 1 1=on 0=off 발진기, ACQCLK 선택 멀티플렉서 및 ACQCLK 드라이버용의 전력을 제어함.
1:0 Address[1:0] 2 1 1 메시지 타입을 정의함.
표 5 - 메시지 타입 2 : 출력 요청 타입 0∼출력 요청 타입 31 (Address[1:0]=2)
비트 필드명 길이 디폴트 내용 기능
31:8 Spare2[28:5] 24 0 0 예비
7:3 Spare2[4:0] 또는 Out_Dat[4:0] 5 0 0∼31 Out_Req=0이면, 예비(고속 기입) Out_Req=1이면, 출력 데이터 타입
2 Our_Req 1 0 0=data (데이터) 1=output (출력) 0일 때, 데이터가 나옴 1일 때, 로딩할 출력 데이터가 나옴
1:0 Address[1:0] 2 2 2 메시지 타입을 정의함
표 6에는 출력 메시지 타입이 나타나 있다. 예비 메시지는 RF 섹션(44-202)의 테스트 시의 사용 또는 확장을 위해 정의되었다. 이 데이터는 RF 섹션(44-202)으로부터 메시지 인터페이스로 입력되므로, 그 필드들은 spareInA와 같이 입력을 표시하는 명칭이 주어진다. 데이터를 시프트하는 경우에는, 소정의 인덱스 값들을 이용하여 출력 데이터 스트림 내에서 위치 조정한다. 예를 들면, spareInA[23:0]은 32 비트 출력 필드 내에서 시프트된 최후의 24 비트에 배치된다. 즉, 최초의 최상위 비트를 시프트하는 방식에 따르면, 0으로 된 8 비트 다음에 spareInA[23]∼spareInA[0]가 이어진다.
Out_Dat[4:0]=4∼8은 RF 섹션(44-202)의 듀얼 슬로프(dual slope) A/D 컨버터에 의해 구해진 20 비트로 된 측정치를 나타낸다. 상술한 바와 같이, 이 A/D 컨버터는 하나 이상의 아날로그 측정 디바이스들에 접속된 복수개의 채널을 구비할 수 있다. 후술하는 바와 같이, Out_Dat[4:0]=9는 RTC OSC 섹션(44-212)에서 보유하는, 앞서 설명한 유효 클럭 비트를 지정한 것이다.
표 6 - 메시지 타입 2를 이용하여 정의된 출력 메시지 (Address [1:0]=2 및 Out_Req=1)
Out_Dat[4:0] 메시지 비트 내용
0 31:24 23:0 0 spareInA[23:0]
1 31:24 23:0 0 spareInB[23:0]
2 31:24 23:0 0 SpareInC[23:0]
3 31:24 23:0 0 SpareInD[23:0]
4 31:30 29:20 19:0 DS_ADC_CH_0 LAST_CH[1:0] Spare[9:0] DATA0[19:0]
5 31:30 29:20 19:0 DS_ADC_CH_1 LAST_CH[1:0] Spare[9:0] DATA1[19:0]
6 31:30 29:20 19:0 DS_ADC_CH_2 LAST_CH[1:0] Spare[9:0] DATA2[19:0]
7 31:30 29:20 19:0 DS_ADC_CH_3 LAST_CH[1:0] Spare[9:0] DATA3[19:0]
8 31:30 29:20 19:0 DS_ADC_CNT LAST_CH[1:0] Spare[9:0] COUNT[19:0]
9 31:1 0 RTC_STA Spare[30:0] 0=RTC 무효(디폴트) 1=RTC 유효
29 31:26 25:0 0 전력 제어 메시지 레지스터[24:0]
30 31:0 메시지 입력 시프트 레지스터
31 31:16 15:0 0 칩 버젼[15:0]
표 7 - 메시지 타입 3: 확장 입력 메시지 타입 (Address[1:0]=3)
비트 필드명 길이 디폴트 내용 기능
31:8 Spare3[28:5] 24 0 0 스페어
7:3 Spare3[4:0] 또는Address[6:2] 5 0 0-31 Addr_Exp=0인 경우 스페어(고속 기입) Addr_Exp=1인 경우 어드레스 확장
2 Addr_Exp 1 0 0=데이터 1=어드레스 0일 때, 데이터가 따르고, 1일 때, 어드레스가 따른다.
1:0 Address[1:0] 2 3 3 메시지 타입 정의
표 8에 스페어 메시지(테스트 또는 확장 목적에 유용)가 도시되어 있다. 이들 데이터는 메시지 인터페이스에 의해 RF 섹션(44-202)으로 출력된 제어 비트를 나타내므로, 데이터 필드는 출력, 예를 들어 SpareOutA를 표시하도록 명명되어 있다.
SGNMAG 출력 신호 라인에 대한 테스트 메시지도 정의되어 있다. TestSignMag[8]=1일 때, 테스트 모드에 들어간다. 이 비트가 0일 때, 테스트 모드는 턴오프된다. 테스트 모드에서, ACQCLK가 하이이면서, TestSignMag[7]에서 시작하여 ACQCLK가 실행되고 있는 한, TestSignMag[7:0]에 지정된 패턴이 출력된다.
표 8 - 메시지 타입 3을 이용한 메시지 (Address[1:0]=3 및 Addr_Exp=1)
Address[6:2] 메시지 비트 GRFRST_N 내용
0 31:8 0 SpareOutA[23:0]
1 31:8 0 SpareOutB[23:0]
2 31:8 0 SpareOutC[23:0]
3 31:8 0 SpareOutD[23:0]
4 16:8 0 TestSignMag[8:0]
5 31:12 11 10 9:8 0 0 0 0 DS_ADC_PER PERIOD[19:0] CLK_SEL CLK_ENB Spare[1:0]
6 31:12 11:8 0 0 DS_ADC_SH SHIFT[19:0] Spare[3:0]
7 31:12 11:8 0 0 DS_ADC_PH PH_ONE[19:0] Spare[3:0]
8 31:12 11:8 0 0 DS_ADC_SEQ CH_SEQ[23:0] Spare[3:0]
9 31:10 9 8 0 0 0 RTC_CTL Spare[21:0] 1: RTC 상태 설정 0: 비동작(디폴트) 1: RTC 상태 판독 0: 비동작(디폴트)
10 31:1 0 0 0 SGNMAG_SIG Spare[30:0] 0: SGNMAG(디폴트) 1: OSCCLK
Address[6:2]=5-8은 RF 섹션(44-202) 내의 듀얼 슬로프 A/D 변환기의 파라미터를 지정한다. DS_ADC_PER 메시지는 20 비트 변환 주기, 즉 전체 A/D 변환 사이클의 지속 기간을 설정하고(PERIOD), A/D 변환기로 제공된 입력 클럭들 중 하나(예를 들어, OSCCLK 또는 PLLCLK)를 선택하며(CLK_SEL), 클럭을 인에이블 또는 디스에이블시킨다(CLK_ENB). DS_ADC_SH 메시지는 임의의 주어진 시간축에 대해 A/D 변환 사이클의 위상을 변경하기 위해 변환을 개시하기 전에 A/D 변환기 제어 회로가 카운트 다운 값으로 사용하는 20 비트 시프트 주기를 제공한다(SHIFT). DS_ADC_PH는 듀얼 슬로프 A/D 변환기에 대한 20 비트 위상 1 변환 주기(예를 들어, 적분 주기의 지속 기간)을 지정한다.
DS_ADC_SEQ 메시지는 A/D 변환기가 4개의 입력 채널 각각에 대한 변환을 수행하는 순서를 제어하는 24 비트를 지정한다. 구체적으로, 24 비트는 12개의 비트 쌍으로 분할되는데, 각 쌍은 A/D 변환기 전에 아날로그 멀티플렉서로의 다음 입력 채널을 지정한다. 따라서, 비트 쌍들은 다음에 어떤 채널이 A/D 변환기에 의해 디지탈화되는지를 제어하며, 따라서 4개의 입력 채널이 상이한 속도로 샘플링될 수 있다.
표 8을 계속 참조하면, Address[6:2]=9는 RTCOSC 섹션(44-212) 내의 클럭 상태 비트가 양호한 클럭을 지시하도록 설정될 것임을 지정하거나, (비트 8이 1인 경우) 기저 대역 섹션(44-204)이 RF 섹션(44-202)에 의해 출력될 클럭 상태 비트의 값을 요청하고 있음을 지정한다. Address[6:2]=10은 (예를 들어, 멀티플렉서를 통해) RF 섹션(44-202)이 SGNMAG 신호 라인 상에 제공하는 신호를 제어한다. 디폴트는 신호 비트 및 크기 비트 정보이며, 그 대안은 OSCCLK 신호이다.
표 4에 도시된 메시지 포맷 내의 비트들(2-7)은 전력 제어 비트들이다. 이들 비트는 RF 섹션(44-202) 내의 특정 하드웨어 요소들이 파워 업 또는 파워 다운되는지를 제어한다. 비트들은 RF 섹션(44-202) 내의 시프트 레지스터로부터 전송되어, 특정 하드웨어 요소들로부터 전력을 인가하거나 제거하는 전력 제어 회로에 인가될 수 있다. 예를 들어, 비트 5, 즉 PLL_Pwr 비트는 RF 섹션(44-202) 내의 위상 동기 루프(PLL) 회로 및 분주기에 대한 전력을 제어한다. RF 섹션(44-202)이 비트 5가 소거된 메시지를 수신할 때, RF 섹션(44-202)은 전력의 흐름 통로인 스위치를 열어 전력 조정기 제어 핀을 구동함으로써 또는 다른 메카니즘을 통해 PLL 및 분주기 회로로부터 전력을 제거할 수 있다. 유사하게, RF 섹션(44-202)이 비트 5가 설정된 메시지를 수신할 때, RF 섹션(44-202)은 스위치를 닫아 전력 조정기를 인에이블시키는 등등에 의해 PLL 및 분주기 회로에 전력을 인가할 수 있다.
메시지 포맷이 (2, 3, 4, 5 및 7)의 5개의 전력 제어 비트를 제공하지만, 실시예에 따라서는 보다 많거나 적은 전력 제어 비트가 제공될 수 있다. 각각의 비트는 RF 섹션(44-202) 내의 사전 선택된 회로의 하나 이상의 섹션에 대한 전력 제어 상태(예를 들어, 파워 업 또는 파워 다운)를 지정한다. 더욱이, 다른 실시예에서는 다수의 전력 제어 레벨을 포함하는 전력 상태를 지정하기 위해 다수의 비트가 사용될 수 있다. 따라서, 예를 들어, RF 섹션(44-202) 내의 특정 회로 세트에 대한 4개의 다른 전력 상태 중 하나를 지정하기 위해 2개의 비트가 사용될 수 있다.
표들(2-8)이 메시지 포맷들의 일례를 제공하지만, 많은 다른 실시예도 가능하다. 아래 표들(9-11)에는 2 비트 메시지 블록 정의를 이용하지 않고 54 비트 메시지를 이용하는 다른 예시적인 포맷이 도시되어 있다.
표 9 - 메시지 구조
비트 번호 <0:55> 필드명 길이 (비트) 내용 기능 디폴트
55 Tst_Ref_Div 1 0=정상동작 1=출력 핀을 테스트하기 위한 기준 분할기 출력 접속(예를 들어, 스캔 데이터 출력) 기준 분할기 스캔 테스트 0
54 ID_Read 1 0=정상 동작 1=출력 핀을 테스트하기 위한 교정 번호 출력(예를 들어, 스캔 데이터 출력) 칩 ID 판독 기능 0
53 IF_TestMux 1 0=AGC 테스트 포인트 1=믹서 테스트 포인트 모드가 11로 설정되는 경우(IF 테스트 포인트 인에이블) TP_IF 핀에 대한 AGC 테스트 포인트 또는 믹서 테스트 포인트를 선택 0
52-29 NUM[23:0] 24 x000000 내지 xFFFFFF 루프 제수의 분수 부분의 분자 x898232
28-21 ND[7:0] 8 x00 내지 xFF 루프 분할기의 합성기 정수 부분 x5A
20-18 SPARE 3 (디폴트) 미사용 x0
17-14 CP[3:0] 4 표 11 참조 합성기 전하 펌프 출력 전류 및 테스트 모드 1011
13 PD_POL 1 1=양 0=음 위상 검출기 극성 1
12-11 ACC[1:0] 2 00=3 분수 누산기 01=2 분수 누산기 10=정수 분할기, 0 누산기 11=정수 분할기, 0 누산기 00
10 SPARE 1 0을 가진 패드 미사용 1
9 CMOS_PECLB 1 1=CMOS 출력 버퍼 선택 0=PECL 출력 버퍼 선택 CMOS 또는 PECL 출력 버퍼 선택 0
8 DIV32_EN 1 1=인에이블 0=디스에이블 32 인에이블로 분할 1
표 10 - 고속 모드 비트 - 전력 제어
비트 번호 <0:55> 필드명 길이 (비트) 내용 기능 디폴트
7 Ref_Osc_EN 1 1=인에이블 0=디스에이블 RF 섹션(44-202) 내의 클럭 발진기 및 버퍼 섹션에 대한 전력 제어 1
6 RX_Chain_EN 1 1=인에이블 0=디스에이블 RF 섹션(202) 내의 무선 주파수 증폭기(RFA), 믹서, AGC 증폭기 및 ADC에 대한 전력 제어 1
5 LNA_EN 1 1=인에이블 0=디스에이블 RF 섹션(202) 내의 LNA 증폭기 회로에 대한 전력 제어 1
4 CLKGPS_EN 1 1=인에이블 0=디스에이블 CLKGPS에 대한 전력 제어, 및 PECL이 선택되는 경우의 PECL 기준 1
3 Synth_EN 1 1=인에이블 0=디스에이블 RF 섹션(44-202) 내의 전하 펌프, 위상 검출기, 프리스케일러 및 로직에 대한 전력 제어 1
2 VCO_EN 1 1=인에이블 0=디스에이블 RF 섹션(44-202) 내의 VCO 회로에 대한 전력 제어 1
1-0 Mode[1:0] 2 00=GPS 클럭 전용 모드 01=정상 동작 모드 10=스탠바이 모드(슬립) 11=IF 테스트 포인트 인에이블 RF 섹션(44-202)의 동작 모드 설정 00
표 11 - 전하 펌프 프로그래밍 필드
cp<3> cp<2> cp<1> cp<0>
1 0 0 0 50μA, 전하 펌프의 정상 동작
1 0 0 1 100μA, 전하 펌프의 정상 동작
1 0 1 0 300μA, 전하 펌프의 정상 동작
1 0 1 1 500μA, 전하 펌프의 정상 동작
1 1 0 0 700μA, 전하 펌프의 정상 동작
0 1 0 1 900μA, 전하 펌프의 정상 동작
0 0 1 1 테스트 모드: 모든 전하 펌프가 소스 전류 출력
0 0 0 1 테스트 모드: 모든 전하 펌프가 싱크 전류 출력
0 1 1 1 테스트 모드: 모든 전하 펌프가 소스 및 싱크 전류를 동시 출력
표들(9-11)은 메시지의 최종 8 비트가 전력 제어 비트인 실시예를 나타낸다. 따라서, 전력 제어는 전술한 바와 같이 고속 메시지를 통해 전송될 수 있다. 전술한 바와 같이, 전력 제어 비트는 RF 섹션(44-202) 내의 특정 하드웨어 요소들이 파워 업 또는 파워 다운되는지를 결정한다. 전력 제어 비트는 표 10(또는 표 4)에서 설명된 하드웨어 블록들의 제어로 한정되는 것은 아니다. 대신에, 실시예에 따라서는 전력 제어 비트는 RF 섹션(44-202) 내에 포함될 수 있는 임의의 원하는 하드웨어 회로에 대한 전력을 제어하도록 메시지 내에 설정될 수 있다.
이에 따라 기저 대역 섹션(44-204)은 RF 섹션(44-202)에 의해 소모되는 전력에 대한 상세 제어를 설정할 수 있다. 즉, 기저 대역 섹션(44-204)은 임의의 주어진 시간에 RF 섹션(44-202)에서 동작하는 하드웨어 블록들, 및 파워 다운되는 하드웨어 블록들을 결정할 수 있다. 결과적으로, RF 섹션(44-202)은 모든 하드웨어 블록이 계속 동작하는 RF 섹션보다 적은 평균 전력을 소비하게 된다. 이러한 전력 제어는 배터리로 동작되는 장치에서, 또는 제한된 전원을 가진 임의의 다른 SPS 인에이블 장치에서 매우 유용하다.
도 47은 RF 섹션(44-202)과 기저 대역 섹션(44-204)을 인터페이스하기 위한 방법의 흐름도(47-500)이다. 구체적으로, SPS 신호 샘플의 기저 대역 섹션(44-204)으로의 직렬 전송과 관련하여, RF 섹션(44-202)은 SGNMAG 신호 라인 상에 사인 비트를 배치하고(단계 47-502), 이어서 ACQCLK 라인 상에 하강 에지(45-310)를 제공한다(단계 47-504). 이어서, RF 섹션(44-202)은 SGNMAG 라인 상에 크기 비트(45-308)를 배치하고(단계 47-506), 이어서 ACQCLK 라인 상에 상승 에지(45-312)를 제공한다(47-508). 이러한 시퀀스는 기저 대역 섹션(44-204)에 전송된 각각의 사인 비트 및 크기 비트 샘플 쌍에 대해 반복된다. 따라서, SPS 신호 데이터는 기저 대역 섹션(44-204)으로 직렬 전송된다.
RF 섹션(44-202)과 기저대역 섹션(44-204) 사이의 메시지 송신에 관하여, 마스터 장치(통상적으로 기저대역 섹션(44-204))는 메시지 직렬 인터페이스(44-208)를 거쳐 데이터를 송신하거나 수신할 필요가 있는지의 여부를 판정한다(단계 47-510). 만약 그렇다면, 기저대역 섹션(44-204)은 메시지가 빠른 기록 메시지인지를 판정한다(단계 47-512). 메시지가 빠른 기록 메시지이면, 기저대역 섹션(44-204)(이것이 송신 데이터인 경우) 또는 RF 섹션(44-202)(이것이 송신 데이터인 경우)이 적절한 직렬 메시지 데이터 라인에 8 데이터 비트를 일렬로 위치시킨다. 각각의 데이터 비트가 각각의 데이터 비트 동안 메시지 클럭(46-404) 전이에 의해 시프트된다(단계 47-514). 그렇지 않으면, 기저대역 섹션(44-204) 또는 RF 섹션(44-202)이 메시지 클럭(404) 전이에 의해 수반되는 각각의 데이터 비트를 갖는 적절한 직렬 메시지 라인에 모든 데이터 비트(예를 들어 32 또는 56 데이터 비트)를 일렬로 위치시킨다.
종속 선택 신호 라인은 기저대역 섹션(44-204)과 RF 섹션(44-202) 사이의 타이밍을 전달하는데 사용될 수 있다. 특히, COUNT[19:0] 출력(표 6, Out_Dat=8 참조)은 듀얼 슬롭 A/D 변환기의 샘플링 위상을 나타내는 RF 섹션(44-202)에서 카운터 존재의 값을 나타낸다. 종속 선택 신호 라인은 DSP 타이밍을 래치하는 RF 섹션(44-202)에서 회로에 연결된다. 따라서, COUNT 값은, 종속 선택 신호가 전이 동안 COUNT 출력을 요구하는 메시지가 COUNT 값을 시프트 레지스터 내로 래치하도록 하는 시간에 카운터에서의 값이다. 기저대역 섹션(44-204)에서, 종속 선택 신호는, 종속 선택된 신호가 어써트 해제되는 때(또한 RF 섹션(44-202)이 COUNT를 래치하는 때)의 카운터(또는 또다른 시간의 표현)를 래치한다.
A/D 샘플 타이밍은 그러므로 기저대역 섹션(44-204) 타이밍에 관련될 수 있다. SHIFT[19:0] 입력(표 8의 Address=6 참조)은 A/D 타이밍을 기저대역 섹션(44-204) 타이밍으로부터의 원하는 오프셋으로 시프트하는데 사용된다. 그 결과, 기저대역 섹션(44-204)은 추가의 인터페이스 라인없이 RF 섹션(44-202) 회로의 타이밍을 변경할 수 있다.
따라서, 본 발명에 따른 시스템 및 방법은 RF 처리 섹션(44-202)과 기저대역 처리 섹션(44-204) 사이의 전력 제어 메시징(및 인터페이스 작동 또는 제공 방법)을 제공한다. 메시징은 많은 상이한 목적으로 이용될 수 있고, 평균 전력 소비를 감소시키고 전력 공급 수명을 연장하기 위한 SPS 장치에서 일반 전력 제어의 부분으로서 특히 유용하다.
통상적으로, SPS 신호 샘플을 취하는 경우를 제외하고는 가능한 한 많은 RF 션(44-202)의 파워다운은 평균 전력 소비를 감소시키는데 도움이 된다. 샘플을 취하는 것은 몇몇 경우에 강한 신호 환경 옥외에서 10-20 ms, 또는 덜 바람직한 조건 옥외에서 48-100 ms와 같이 짧은 기간을 차지할 수 있다. 옥내에서, RF 섹션(44-202)은 SPS 신호 샘플을 얻기 위하여 특히 신호가 약한 경우에 수초의 기간 동안 동작할 수 있다. 기저대역 섹션(44-204)이 자체 파워다운 모드로 들어가는 경우에 RF 발진기(44-212)의 파워다운은 또한 전력 소비를 감소시킬 수 있다는 것이 주목된다.
보다 구체적으로, 전력 제어를 포함하는 예시의 동작 시퀀스는 이하의 표 12에 나타낸 바와 같이 진행될 수 있다.
동작 단계 설명
초기 파워업 RF 섹션(44-202) 또는 기저대역 섹션(44-204)에 연결되거나 통합되는 알람, 타이머, 또는 웨이크업 회로는 RF 섹션(44-202) 및 기저대역 섹션(44-204)에 연결되는 전원을 턴온한다.
기저대역 시작 RF 발진기(44-212)는 파워업하고 클럭 신호를 기저대역 섹션(44-204)에 제공한다. 기저대역 섹션(44-204)은 클럭 신호를 사용하여 부트업한다.
기저대역 초기화 기저대역 섹션(44-204)은 하우스키핑 태스크, 입력/출력 초기화. 또는 RF 섹션(44-202) 기동을 위한 준비에서 다른 처리를 실행한다.
RF 신시사이저 기동 기저대역 섹션(44-204)은 RF 섹션(44-202)에서 RF 클럭 신시사이저를 파워업하고 RF 클럭 신시사이저를 안정화하기 위한 소정의 시간을 대기한다.
RF 회로 기동 기저대역 섹션(44-204)은 LNA, AGC, A/D 및 RF 섹션(44-202)에서 다른 선택된 회로에 전력을 턴온하고 이들 섹션을 안정화하기 위하여 소정 시간을 대기한다.
샘플링 기저대역 섹션(44-204)은 RF 섹션(44-202)으로부터 데이터 샘플을 취하기 시작한다.
저장 동작의 몇몇 모드에서, 기저대역 섹션(44-204)은 RF 섹션(44-202)으로부터 얻어지는 데이터 샘플의 블록의 저장을 지시한다.
RF 회로 셧다운 기저대역 섹션(440204)은 LNA, AGC, A/D 및 RF 섹션(46-202)에서 RF 클럭 신시사이저 회로를 턴오프한다.
GPS 측정 기저대역 섹션944-204)은 데이터 샘플로부터 GPS 측정을 추출하기 위하여 저장된 데이터 샘플의 처리를 지시한다.
위치 갱신 기저대역 섹션(44-204)은 위치 갱신을 판단하고 입력/출력 인터페이스를 거쳐 갱신을 수신자에 전달한다.
웨이크업 프로그래밍 기저대역 섹션(44-204)은 타이머, 알람, 또는 다음 웨이크업 알람을 위한 웨이크업 회로를 프로그램하고 셧다운을 시작한다.
셧다운 기저대역 섹션(46-204)은 셧다운을 초기화하고 클럭을 게이트오프하고, RF 섹션(44-202) 및 기저대역 섹션(44-204)을 파워다운한다(웨이크업 알람 회로 제외)
예를 들어, GPS 시스템과 같은 전자 시스템의 컴포넌트가 시스템의 컴포넌트 중에서 공유를 위한 하나 이상의 메모리를 동적으로 재할당하는 투과 메모리 공유(transparent memory sharing)가 여기에 제공된다. 메모리 영역의 사전 특정된 메모리 블럭은 컴포넌트의 변경 메모리 요구조건에 대하여 하나 이상의 재할당 방법을 이용하여 시스템의 컴포넌트 중에서 동적으로 재할당된다. 메모리 재할당/공유는 호스트 시스템의 소프트웨어에 투과성이다. 예로서, 메모리 블럭으로도 불리는 메모리 위치 또는 어드레스의 그룹은 제1 프로세서 및 제2 프로세서에 의해 공유될 수 있다. 제1 프로세서는 예를 들어 중앙 처리 장치 또는 제1 메모리 영역을 액세스하도록 구성되는 마이크로프로세서를 포함하고, 제2 프로세서는 제2 메모리 영역을 액세스하도록 구성되는 디지털 신호 처리기(DPS)를 포함할 수 있다. 메모리 공a유는 프로세서 지시 액세스, 간접 액세스, 및 이하에서 나타내는 바와 같이 제2메모리 영역에의 직접/간접 액세스 결합을 제공한다.
도 48은 실시예에서 전자 시스템(48-100)의 컴포넌트 중에서 공유하는 코어 메모리 재할당을 나타내는 블럭도이다. 일반적으로, 전자 시스템(48-100)은 예를 들어 제1 프로세서(48-112) 및 제1 버스(48-102)에 연결되는 제1 메모리 영역(48-114)을 포함한다. 동작에서, 제1 프로세서(48-112)는 프로세서 데이터를 제1 메모리 영역(48-114)에 기록하고 제1 메모리 영역(48-114)으로부터 판독하기 위하여 제1 버스(48-102)를 통하여 제1 메모리 영역(48-114)을 액세스한다.
제2 프로세서(48-122)는 제2 버스(48-104) 및 브릿지 유닛(48-132)의 결합을 통하여 제1 버스(48-102)에 연결된다. 제2 프로세서는 또한 제2 메모리 영역(48-124)에 연결된다. 동작에서 제2 프로세서(48-122)는 제2 프로세서의 데이터를 제2 메모리 영역(48-124)에 기록하고 제2 메모리 영역(48-124)으로부터 판독하기 위하여 제2 메모리 영역(48-124)을 직접 액세스한다.
여기서 설명하는 코어 메모리 공유는 제1 프로세서(48-112)가 임의의 많은 메모리 재할당 방법을 이용하여 제1 프로세서(48-112)의 데이터를 저장하는데 사용되는 제2 메모리 영역(48-124)의 몇몇 블럭을 제1 프로세서(48-112)가 동적으로 재할당하도록 한다. 여기서 재할당을 매핑하는 것으로 불리는 메모리 재할당의 한 방법은 제2 버스(48-104) 및 제2 프로세서(48-132)를 거쳐 제1 프로세서에 의한 액세스를 위하여 브릿지 유닛(48-132)를 거쳐 제2 메모리 영역(48-124)의 사전 지정된 메모리 위치(48-124a)를 매핑한다. 여기서 재할당을 스위치하는 것으로 불리는 메모리 재할당의 또다른 방법은 제1 버스(48-102)를 거쳐 제2 메모리 영역(48-124)의 사전 지정된 메모리 위치(48-124a)의 직접 액세스를 제1 프로세서에 제공한다. 메모리 재할당의 부가의 방법은 제2 메모리 영역(48-124)의 메모리 위치의 재할당을 매핑하고 스위칭하는 것을 동시에 지원한다. 이들 메모리 재할당 방법 및 그들의 대응하는 시스템 구성은 이하에 설명한다.
프로세서(48-112 및 48-122)는 본 기술분야에서 공지된 바와 같이 함께 동작하는 컴퓨팅 컴포넌트와 장치의 임의의 집합을 포함한다. 프로세서(48-112 및 48-122)는 또한 더 큰 컴퓨터 시스템 또는 네트워크 내의 컴포넌트 또는 서브시스템일 수 있다. 프로세서(48-112 및 48-122)는 또한 예를 들어 다른 버스들, 컨트롤러들, 메모리 장치들, 및 데이터 입력/출력(I/O) 장치들과 같이 본 기술분야에서 공지된 임의의 수의 컴포넌트(도시안됨) 중에서 임의의 수의 조합으로 연결될 수 있다.
마찬가지로, 제1(48-114) 및 제2(48-124) 메모리 영역은 본 기술 분야에서 공지된 바와 같이, 함께 위치하고 및/또는 분포되는 방식으로 함께 동작하는 메모리 장치들의 임의의 조합 또는 메모리 장치의 부분들을 포함한다. 메모리 영역(48-114 및 48-124)은 또한 더 큰 컴퓨터 시스템 또는 네트워크 메모리 내의 컴포넌트 또는 서브시스템일 수 있다. 메모리 영역(48-114 및 48-124)은 또한 예를 들어 다른 버스들, 컨트롤러들, 메모리 장치들, 및 데이터 입력/출력(I/O) 장치들과 같은 본 기술분야에서 공지된 임의의 수의 컴포넌트들(도시안됨) 중에서 임의의 수의 조합으로 연결될 수 있다.
버스(48-102 및 48-104)는 처리 시스템 또는 처리 시스템의 컴포넌트 사이에서 파일이 통신되거나 전달되는 임의의 매체를 포함할 수 있다. 그러므로, 버스(48-102 및 48-104)에 의해 나타내어지는 경로는 무선 접속, 유선 및/또는 트레이스 접속, 및 하이브리드 무선/유선 접속을 포함한다. 경로는 또한 협역 통신망(LAN), 대도시 영역 통신망(MAN), 광역 통신망(WAN), 사유 통신망, 및 사무실간(interoffice) 또는 후미(backend) 통신망을 포함하는 네트워크뿐만 아니라 다른 시스템에의 연결 또는 접속을 포함한다.
전자 시스템(48-100)에 부가하여 제1 프로세서(48-112)는 여기서 ARM 또는 x마이크로프로세서와 같이 대안적으로 불리는 예를 들어 ARM 마이크로프로세서와 같은 프로세서 또는 중앙 처리 장치(CPU)를 포함한다. 또한, 제2 프로세서(48-122)는 디지털 신호 처리기(DSP)를 포함하지만 이에 한정되지 않는다. 본 예의 제1(48-114) 및 제2(48-124) 메모리 영역은 랜덤 액세스 메모리(RAM)의 영역 또는 메모리 위치를 포함하지만, 본 기술분야에서 공지된 많은 다른 타입의 메모리/메모리 장치의 영역을 포함할 수 있다. 제1 및 제2 메모리 영역은 여기서 2개의 분리 영역 또는 2개의 분리 장치로서 나타내고 있지만, 여기서 설명하는 메모리 공유의 대안적인 실시예는 메모리 장치의 임의의 수/조합 중에서 분포되는 임의의 수의 메모리 위치를 포함할 수 있다. 본 시스템 구성의 DSP 및 프로세서 사이에서 코어 메모리 공유를 이하에서 설명한다.
도 49는 프로세서(49-212) 및 DSP(49-222) 각각에 전용인 메모리 영역(49-214 및 49-224)을 갖는 전자 시스템(49-200)의 블록도이다. 실시예의 프로세서는 ARM 프로세서(49-212)이지만, 실시예는 임의의 타입의 프로세서(49-212)가 시스템(49-200)에 사용될 수 있는 것에 한정되지 않는다. 제1 데이터 버스(49-202)는 프로세서(49-212)를 메모리 컨트롤러 OnRAM(49-250)을 거쳐 메모리 영역(49-214)에 연결한다. 메모리 영역(49-214)은 여기서 프로세서 메모리(49-214) 또는 ARM 랜덤 액세스 메모리(RAM)(49-214)로서 불린다. 제1 데이터 버스(49-202)는 또한 여기서 프로세서 버스(49-202)로서 불려지고, 단일 클럭 사이클에서 프로세서 버스(49-202)에 연결되는 장치 중에서 정보 또는 데이터의 전달을 지원하지만, 이에 한정되지 않는다.
프로세서 버스(49-202)는 또한 프로세서(49-212)를 브릿지 유닛 SBU2MOD(49-232) 및제2 데이터 버스(49-204)를 거쳐 DSP(49-222)에 연결한다. 브릿지 유닛 SBU2MOD(49-232)는 여기서 DSP 브릿지(49-232)로서 불려진다. 제2 데이터 버스(49-204)는 또한 여기서 DSP 버스(49-204)로서 불려진다. DSP(49-222)는 여기서 DSP 메모리(49-224)로서 불리는 메모리 영역(49-224)에 연결된다. 본 실시예의 프로세서 메모리(49-214) 및 DSP 메모리(49-224)는 RAM 장치이지만, 이에 한정되지 않는다. 대안적인 실시예는 임의의 타입의 메모리 장치 및/또는 메모리 장치/타입의 임의의 조합을 포함할 수 있다.
DSP(49-222) 및 DSP 메모리(49-224)는 프로세서 버스(49-202)에 연결되는 프로세서 클럭 도메인에서) 장치 및 프로세서(49-212)와는 상이한 속도(DSP 클럭 도메인에서)로 클럭된다. 실시예에서, DSP(49-222)와 DSP 메모리(49-224)의 클럭 속도/도메인은 프로세서(49-212)에 비하여 더 느리지만, 이에 한정되지 않는다. 다라서, DSP 브릿지(49-232)로부터 DSP 버스(49-204)를 거치는 데이터 전달은 프로세서 버스(49-202)를 거치는 데이터 전달에 비하여 더 느리다. 또한, 실시예의 DSP 브릿지(49-232)는 프로세서 버스(49-202)에 연결되는 컴포넌트 및 DSP 버스(49-204)에 연결되는 컴포넌트 사이에서 클럭 속도에서의 차이 때문에 비동기 브릿지이지만, 이에 한정되지 않는다.
각종 대안적인 실시예가 클럭 속도의 임의의 수/결합을 이용하여 시스템(49-200)의 컴포넌트를 클럭할 수 있다; 예를 들어 일 실시예는 대략 동일한 속도로 프로세서(49-212), DSP(49-222), 및 DSP 메모리(49-224)를 클럭할 수 있지만, 또다른 실시예는 프로세서(49-212)를 DSP(49-222) 및/또는 DSP 메모리(49-224) 보다 느린 속도로 클럭할 수 있다.
시스템(49-200)은 프로세서 버스(49-202)에 연결되는 적어도 하나의 메모리 구성 레지스터 RAM 공유(49-252)를 더 포함한다. 여기서 구성 레지스터(49-252)로서도 불리는 메모리 구성 레지스터(49-252)는 제2 브릿지 유닛 SBUMOD(49-234)을 거쳐 프로세서 버스(49-202)에 연결되고 이하에서 설명하는 바와 같이 DSP 메모리(224)의 구성을 제어하거나 관리하는 적어도 하나의 프로세서(49-212), 디코더(49-242) 및 DSP 브릿지(49-232)에 의해 사용되는 정보를 저장한다.
디코더(49-242)는 프로세서 버스(49-202), DSP 브릿지(49-232), 및 메모리 컨트롤러(490250) 사이에 연결되지만, 이에 한정되지 않는다. 디코더(49-242)는 프로세서 버스(49-202) 상의 데이터와 연관되는 어드레스를 수신하고, 응답하여 메모리 구성 레지스터(49-252)의 정보에 따라서 적절한 메모리 영역으로부터 데이터의 기록 및 판독을 제어 또는 관리한다. 디코더(49-242)는 디코더(49-242)와 메모리 컨트롤로(49-250) 사이에 연결되는 제어 라인(49-243)을 거쳐 프로세서 메모리(49-214)에의 데이터 판독/기록을 제어한다. 디코더(49-242)는 DSP 메모리(49-224)의 구성에 적절하도록 디코더(49-242)와 DSP 브릿지(49-232) 사이에 연결되는 제어 라인(49-244) 및 제어 라인(49-245)을 통하여 DSP 메모리(49-244)에의 데이터 판독/기록을 제어한다.
이 시스템(49-200)의 DSP 메모리 공유는 일반적으로 프로세서(49-212)가 프로세서 버스(49-202) 상의 DSP 메모리(49-224)를 직접 액세스하고(프로세서 클럭 도메인에서) 및/또는 DSP 버스(49-204) 상의 DSP 메모리(49-224)를 간접적으로 액d세스하도록(DSP 클럭 도메인에서) 한다. 직접 액세스는 DSP 메모리(49-224)의 상부 32kbytes를 프로세서 DSP 클럭 도메인에서 클럭 도메인으로 스위치하여 수행된다. 간접 액세스는 DSP 브릿지(49-232)를 통하여 DSP 메모리49-223)의 상부 부분으로부터 블럭을 매핑하여 수행된다.
DSP 브릿지(49-232)는 프로세서 소프트 매핑 액세스와 DSP 메모리로의 DSP 코어 액세스 사이에 속한다. 또한, DSP 브릿지(49-232)는 어드레스 0xC000_0000(프로세서 어드레스의 소프트 매핑 없음)에서 프로세서에 의해 DSP 메모리로의 간접 액세스를 지원한다. DSP 브릿지(49-232)는 또한 소프트 매핑을 통해 어드레스 범위 0x6001_0000 내지 0x6001_FFFF에서 DSP 메모리의 상부 64kbytes의 프로세서에 의해 간접 액세스를 지원한다. 또한, DSP 브릿지(49-232)는 DSP 메모리가 DSP 메모리 공유 제어 비트에 기초하는 액세스 위반을 판독하거나 기록하고, 위반 상태 비트를 적절하게 생성하고, 액세스 위반 판독 또는 기록 동안 그렇게 하는 것이 가능하다면 프로세서 중단 사이클을 생성하는 것을 검출한다.
메모리 구성 레지스터(40-252)의 구성 정보는 사전 지정된 메모리 공유 구성 의 정보를 포함하지만, 이에 한정되지는 않는다. 소프트웨어 제어하에서 실행하는프로세서(49-212)는 시스템(49-200)의 상태에 적합한 메모리 구성을 선택하고 선택된 메모리 구성에 따라서 메모리 구성 레지스터(49-252) 중에서 적어도 하나의 비트를 설정한다. 일 실시예에서, 구성 정보는 호스트 전자 시스템의 상태 정보에 대응하여 상이한 동작 상태가 상이한 메모리 요구조건을 갖는 경우에 메모리가 호스트 시스템의 상이한 동작 상태에 따라서 재할당되고 공유될 수 있다. 그러므로, 호스트 시스템의 컴포넌트 중에서 메모리 영역의 재할당은 호스트 컴퓨터의 동작 상태에서의 변화에 응답하여 발생한다.
상술한 메모리 공유를 이용하는 장치 및/또는 시스템의 예로서 호스트 시스템은 효율적인 메모리 관리를 필요로 하는 하나 이상의 프로세서를 포함하는 시스템일 수 있다. 이러한 장치/시스템의 예는 휴대형 통신 장치, 휴대형 위치 추적 장치, 셀룰러 전화, 위치 추적 장치에 연결되고 및/또는 통합되는 셀룰러 전화, 이 동 전자 장치, 이동 통신 장치, 개인 정보 단말기, 및 다른 프로세서 기반 장치를 포함하지만 이에 한정되지 않는다.
글로벌 위치추적 시스템(GPS)과 같은 위치추적 시스템을 포함하는 셀룰러 전화와 같은 이동 통신 장치를 특정 예로서 고려한다. 이러한 타입의 시스템에서, 성술한 프로세서(49-212)는 통신 장치의 중앙 처리 장치(CPU)에 대응하지만 DSP(49-222)는 GPS 신호 및 수신기 정보를 처리하는 전용 신호 프로세서에 대응한다. GSP 수신기는 모두 매우 상이한 메모리 요구조건을 가질 수 있는 동작의 다중 모드(예를 들어 콜드 스타트, 웜 스타트, 핫 스타트 등)를 갖는다. 실시예의 메모리 재할당 및 공유는 장치 메모리의 적어도 하나의 영역이 호스트 장치의 동작 상태에 적절하도록 CPU와 DSP 사이에 재할당되도록 하여 이러한 휴대용 장치의 제한되는 메모리를 효율적으로 사용하도록 한다. 메모리 재할당은 호스트 장치의 동작 시스템 소프트웨어에 투과성이므로 동작 시스템 소프트웨어는 호스트 장치의 상태에 응답하여 메모리 구성 레지스터(49-252)에 의해 구성되는 바와 같이 CPU 메모리맵 및 DSP 메모리 맵을 검색한다.
도 50은 전자 시스템(49-200)의 시작/부트업을 따르는 메모리 구성의 블럭도(50-300)이다. 시스템 시작(또한 부트업이라고도 지칭됨)시, 프로세서 메모리(49-214)는 (프로세서 메모리 맵으로 구성되는) 64 킬로바이트의 메모리를 포함하고, DSP 메모리(49-224)는 (DSP 메모리 맵으로 구성되는) 128 킬로바이트의 메모리를 포함한다. 프로세서(49-212)는 0x6000_0000의 기본 어드레스에서 프로세서 메모리(49-214)를 보지만, 대안의 실시예들은 메모리 유형에 적합하게 프로세서 메모리(49-214)에 임의의 기본 어드레스를 할당한다. 마찬가지로, DSP(49-222)는 0xC020_0000의 기본 어드레스에서 DSP 메모리(49-224)를 보지만, 대안의 실시예들은 메모리 유형에 적합하게 DSP 메모리(49-224)에 임의의 기본 어드레스를 할당할 수 있다.
여기에 설명하는 바와 같이, 실시예의 메모리 공유는 프로세서(49-212)가 DSP 메모리(49-224)로 판독하고 그것으로부터 기록하는 것을 지원한다. 결과적으로, 프로세서(49-212)는 시스템 부트업시 DSP 브리지(49-232)를 통해 DSP 메모리(49-224)를 볼 수 있다. 프로세서는 예를 들어, 0xC020_0000의 기본 어드레스에서 DSP 메모리(49-224)를 볼 수 있지만, 대안의 실시예들은 DSP 메모리(49-224)에 대해 임의의 기본 어드레스를 사용할 수 있다.
실시예의 메모리는 프로세서(49-212) 및/또는 DSP(49-222)가 특정 메모리 구성에 대응하는 어드레스 경계들을 넘는 그들 각각의 메모리들의 메모리 위치들에 액세스하고자 시도하는 경우에 호스트 시스템에 경고하는 메모리 보호 특징들을 포함한다. 메모리 보호 특징들은, 인터럽트 어드레스 경계 Int(50-360)를 사용하는 인터럽트 생성 및 중지 어드레스 경계 A(50-362)를 사용하는 중지 생성을 포함하나 이에 한정되지 않는다. 메모리 보호 특징들은 메모리 재할당 예들을 참조하여 이하에 설명한다.
동작시, 프로세서(49-212)가 프로세서 데이터의 저장을 위한 부가적인 메모리를 요구하는 경우, 프로세서(49-212)는 프로세서 데이터의 저장시 사용하기 위한 DSP 메모리(49-224)의 메모리 위치들의 적어도 하나의 영역 또는 세트를 재할당할 수 있다. 일반적으로, DSP 메모리(49-224)를 재할당하는 2가지 방법들이 이용가능하다. 제1 재할당 방법은 적어도 하나의 메모리 맵을 사용하여, 미리 지정된 어드레스들을, DSP 브리지(49-232)를 통해 DSP 메모리 어드레스 공간에서 프로세서 메모리 어드레스 공간으로 매핑한다. 이러한 제1 재할당 방법은 본원에서 매핑 재할당 방법이라 지칭된다. DSP 브리지(49-232)를 통한 메모리의 매핑은 메모리의 8 블럭 만큼의 증분 재할당을 지원하며, 여기서 각 블럭은 대략 8 킬로바이트까지를 포함하나, 실시예는 그에 한정되지 않는다. DSP 브리지(49-232), DSP 버스(49-204), 및 DSP(49-222)의 컴포넌트들(도시하지 않음)을 통해 프로세서(49-212)에 의한 재할당된 메모리로의 액세스가 이루어진다.
제2 재할당 방법은 미리 지정된 메모리 어드레스들을 DSP 버스(49-204)의 DSP 메모리 어드레스 공간에서 프로세서 버스(49-202)로 전환한다. 이러한 제2 재할당 방법은 본원에서 스위칭 재할당 방법이라 지칭된다. 스위칭 재할당 방법은 또한 메모리 매핑을 이용하여 재할당된 메모리를 인접한 프로세서 메모리 어드레스 공간에 배치한다. 그러나, 후술하는 바와 같이, 이러한 매핑은 프로세서 버스(49-202)에 직접 연결된 메모리 인터페이스(도 55 및 57을 참조하여 후술됨)를 통해 수행되며, 이로써 매핑 재할당 방법보다 재할당된 메모리에 대한 액세스를 비교적 고속으로 수행하도록 지원한다. 스위칭 재할당 방법은 메모리 블럭의 재할당을 지원하며, 여기서 블럭은 대략 32 킬로바이트까지 포함하나, 실시예는 이에 제한되지 않는다.
추가적인 재할당 방법들 및 구성들은 본원에 제공된 설명들을 사용하여 매칭 및 스위칭 재할당 방법들의 결합들로부터 실현될 수 있다. 매핑 및 스위칭 재할당 방법들 모두를 사용하는 시스템 구성의 예가 후술되나, 대안의 실시예들은 이러한 구성에 한정되지 않는다.
상술한 바와 같이, 실시예의 코어 메모리 공유는 프로세서(49-212)로 하여금 매핑 재할당을 사용하여 프로세서(49-212)의 데이터를 저장할 때 사용하기 위한 DSP 메모리(49-224)의 몇몇 부분을 동적으로 재할당 또는 재구성하게 한다. 매핑 재할당은 DSP 메모리(49-224)의 미리 지정된 메모리 위치들이 DSP 버스(49-204) 및 DSP(49-222)를 경유하여 프로세서(49-212)가 액세스하기 위한 DSP 브리지(49-232)를 통해 매핑되는 시스템 구성을 포함한다. 도 51은 도 51의 실시예 하에서, DSP 브리지(49-232) 및 DSP 버스(49-204)를 경유하여 프로세서(49-212)에 의해 사용하기 위한 DSP 메모리(51-424b)의 몇몇 부분을 재할당하는 전자 시스템 구성(51-400)의 블럭도이다.
일반적으로, 시스템(51-400)은 적어도 하나의 메모리 맵을 사용하여 DSP 브리지(49-232)를 통해 DSP 메모리 어드레스 공간(51-424)에서 프로세서 메모리 어드레스 공간(51-414)으로 미리 지정된 어드레스들 또는 블럭들(51-424b)을 매핑한다. DSP 메모리(51-424b)의 재할당은 후술하는 바와 같이, 구성 레지스터(49-252)의 정보에 응답하여 수행된다. 실시예의 재할당은 메모리의 8 블럭 만큼의 증분 재할당을 지원하며, 여기서 각 블럭은 메모리의 대략 8 킬로바이트까지를 포함하나, 실시예는 이에 한정되지 않는다. 도 52A는 도 51의 실시예 하에서, 브리지 유닛을 통해 DSP 어드레스 공간(51-424)에서 프로세서 어드레스 공간(51-414)으로 DSP 메모리(51-424b)의 블럭이 재할당되는 메모리 재할당의 블럭도(52-500)이다. 도 53A는 도 51의 실시예 하에서, 브리지 유닛을 통해 DSP 어드레스 공간(51-424)에서 프로세서 어드레스 공간(51-414)으로 n개(본 예에서는 n은 8이다)의 메모리 블럭들을 포함하는 DSP 메모리(51-424b)의 블럭이 재할당되는 메모리 재할당의 블럭도(53-600)이다.
도 52A를 참조하면, 이러한 매핑 예는 DSP 메모리(51-424)에서 프로세서 메모리(51-414)로의 8 킬로바이트 메모리 블럭(51-424b)의 재할당을 도시한다. 도 50을 참조하면, 이러한 예의 시작 메모리 구성은 128 킬로바이트의 DSP 메모리(51-424) 및 64 킬로바이트의 프로세서 메모리(51-414)를 포함하나, 임의 구성의 메모리는 본원에 설명된 바와 같이 재할당될 수 있다. 재할당시, 메모리 블럭(51-424b)(8 킬로바이트)은 DSP 메모리(51-424)의 상부로부터 제거되어, DSP는 이제 크기가 대략 120 킬로바이트(128 킬로바이트 - 8킬로바이트 = 120 킬로바이트)인 메모리(51-424a)의 인접 블럭을 본다. 재할당된 메모리 블럭(51-424b)은 코어 프로세서 메모리(51-414)에 부가되고, 프로세서는 이제 크기가 대략 72 킬로바이트(64 킬로바이트 + 8 킬로바이트 = 72 킬로바이트)인 메모리(52-514)의 인접 블럭을 본다. 도 52B는 도 54A의 실시예 하에서, DSP 어드레스 공간(51-424)으로부터 프로세서 어드레스 공간(51-414)으로 8 킬로바이트 블럭의 DSP 메모리의 재할당을 따르는 메모리 구성(메모리 맵)을 도시한다. 상술된 실시예는 8 킬로바이트 메모리 블럭들을 재할당하나, 대안의 실시예들은 크기가 다른 메모리 블럭들 또는 크기가 다른 메모리 블럭들의 조합을 재할당할 수 있다.
실시예의 메모리는 프로세서 및/또는 DSP가 특정 메모리 구성에 대응하는 어드레스 경계들을 넘는 그들 각각의 메모리들의 메모리 위치들을 액세스하고자 하는 경우에 호스트 시스템에게 경고하는 메모리 보호 특징들을 포함한다. 메모리 보호 특징들은 중지들 및 인터럽트 플래그들을 포함하나, 이에 제한되지 않는다. 결과적으로, 메모리 보호 특징들에 대한 어드레스 경계들은 메모리 재할당 동안 조정된다.
예를 들어, 실시예의 시스템은 DSP가 현재 메모리 구성에 대응하는 미리 지정된 인터럽트 어드레스 경계 또는 한계를 넘는 메모리 위치들에 액세스하면 인터럽트 플래그를 생성한다. 따라서, 시스템은 메모리 재할당 동안 적절하게 인터럽트 어드레스 경계를 조절한다. 도 52를 참조하여 상술한 예로 돌아가서, 인터럽트 어드레스 경계 Int(52-560)는 DSP 메모리(51-424)에서 메모리 블럭(51-424b)을 제거하는 것을 반영하기 위해 DSP 메모리(51-424)의 점차적으로 낮은 어드레스로 조정된다. 대안의 실시예들은 인터럽트 어드레스 경계를 DSP 메모리(51-424)의 점차적으로 높은 어드레스로, 아니면 메모리 어드레싱 방식에 적합하게 조정할 수 있다.
또다른 예로서, 실시예의 시스템은 프로세서가 현재 메모리 구성에 대응하는 미리 지정된 중지 어드레스 경계를 넘는 메모리 위치들을 액세스하면 중지를 생성한다. 따라서, 시스템은 메모리 재할당 동안 적절히 중지 어드레스 경계를 조정한다. 도 52를 참조하여 상술된 예로 돌아가면, 중지 어드레스 경계 A(52-562)는 코어 프로세서 메모리(51-414)에 메모리 블럭(51-424b)를 부가하는 것을 반영하기 위해 프로세서 메모리(52-514)에서의 점차적으로 높은 어드레스로 조정된다. 대안의 실시예들은 중지 어드레스 경계를 메모리에서의 점차적으로 낮은 어드레스로, 아니면 메모리 어드레싱 방식에 적합하게 조정할 수 있다.
메모리 재할당 예들을 계속하고, 도 53A를 참조하면, 메모리 재할당의 대안의 실시예는 8개의 8킬로바이트 메모리 블럭들(53-601 내지 53-608)(64 킬로바이트)을 포함하는 메모리 블럭(51-424b)를 재할당한다. 상기 예의 시작 메모리 구성은, 도 50을 참조하면, 128 킬로바이트의 DSP 메모리(51-424) 및 64 킬로바이트의 프로세서 메모리(51-414)를 포함하나, 임의 구성의 메모리는 본원에 설명된 것과 같이 재할당될 수 있다. 메모리 블럭(51-424b)은 DSP 메모리(51-424)의 상부로부터 제거되고 코어 프로세서 메모리(51-414)에 재할당되어, DSP는 지금 크기가 대략 64 킬로바이트(128 킬로바이트 - 64 킬로바이트 = 64 킬로바이트)인 메모리(51-424a)의 인접 블럭을 본다. 재할당된 메모리 블럭(51-424b)은 코어 프로세서 메모리(51-414)에 부가되고, 프로세서는 이제 크기가 대략 128 킬로바이트(64 킬로바이트 + 64 킬로바이트 = 128 킬로바이트)인 메모리(53-614)의 인접 블럭을 본다. 인터럽트 및 중지 어드레스 경계들은 상술한 바와 같은 메모리 어드레싱 방식에 적합하게 조정된다. 도 53B는 도 53A의 실시예 하에서, DSP 어드레스 공간(51-424)에서 프로세서 어드레스 공간(51-414)으로 DSP 메모리의 63 킬로바이트 블럭을 재할당하는 것을 따르는 메모리 구성(메모리 맵)을 도시한다. 상술된 실시예는 총 8개의 8 킬로바이트 블럭들을 재할당하나, 대안의 실시예들은 상이한 개수의 메모리 블럭들을 재할당할 수 있고, 여기서 메모리 블럭들은 동일하거나 다른 크기를 가진다.
실시예의 메모리 블럭들은, DSP 메모리(51-424)의 상부로부터 제거된 메모리가 코어 프로세서 메모리(51-414)의 상부에 부가되도록 순서대로 매핑된다. 따라서, DSP 메모리 어드레스 공간은 상부에서 하부로 감소하고, 프로세서 메모리의 어드레스 공간은 하부에서 상부로 증가한다. 그러나, 대안의 실시예들은 당업계에 공지된 바와 같은 대안의 매핑 방식들을 사용할 수 있다.
메모리 재할당은 DSP 브리지(49-232), DSP 버스(49-204), 및 DSP(49-222)를경유하여 프로세서(49-212)에 의해 DSP 메모리(51-424b)의 재할당된 부분들에 액세스하는 것을 지원한다. 프로세서(49-212)의 정보는 디코더(49-242)의 제어 하에서 재할당된 DSP 메모리(51-424b)로 라우팅된다. 도 51을 다시 참조하면, 디코더(49-242)는 프로세서 버스(49-202)를 통해 프로세서로부터의 정보를 수신한다. 수신된 정보는 관련 메모리 어드레스들과 함께 예를 들어 명령들 및/또는 데이터를 포함한다. 디코더는 프로세서 버스(49-202) 상의 관련 정보가 GPS 데이터 또는 프로세서 데이터인지를 결정하기 위해 어드레스의 처음 4개의 비트를 사용한다.
디코더(49-242)가 버스(49-202) 상의 정보(데이터)가 GPS데이터라고 결정하면, 디코더(49-242)는 DSP 브리지(49-232)를 선택하여(제어선(49-244)을 사용) GPS데이터를 판독/수신한다. 제어선(49-244)을 통해 디코더(49-242)에 의해 선택되면, DSP 브리지(49-232) 및 DSP(49-222)의 컴포넌트들(도시하지 않음)의 일부 결합은 프로세서 버스(49-202)로부터 DSP 메모리의 적절한 메모리 위치들로 GPS데이터를 라우팅한다. 도 54는 도 51의 실시예 하에서 관련 메모리 로딩 명령(54-702 및 54-704)에 따라 메모리 재할당을 따르는 DSP 메모리의 블럭도이다. 실시예의 GPS 데이터는 GPS데이터 로딩 명령(54-702)에 따라 DSP 메모리(51-424a)에 기록된다.
이하의 어드레스 디코딩 방식에 의하면, 디코더(49-242)가 수신된 정보(데이터)가 프로세서 데이터라고 결정하면, 디코더(49-242)는 메모리 제어기(49-250) 또는 DSP 브리지(49-232) 중 어느 하나를 선택하여 제어선(49-243) 또는 제어선(49-245)를 통해 프로세서 데이터를 각각 판독/수신한다. 어드레스가 6000_0000 및 6001_0000 사이에 해당하면, 디코더(49-242)는 프로세서 메모리(51-414)를 선택하여(제어선(49-243)을 사용) 프로세서 버스(49-202) 및 메모리 제어기(49-250)를 통해 관련 정보를 수신한다. 어드레스가 6001_0000 및 6002_0000 사이에 해당하면, 디코더(49-242)는 DSP 메모리의 재할당된 블럭(51-424b)을 선택하여(제어선(49-245)을 사용), DSP 버스(49-204) 및 DSP 브리지(49-232)와 DSP(49-222)의 컴포넌트들(도시하지 않음)의 몇몇 조합을 통해 관련 정보를 수신한다. 각종 대안의 실시예들은 임의 개수의 시그널링 라인들/기술들을 사용하여 제어선(49-244 및 49-245) 대신에 DSP 브리지(49-232) 및/또는 메모리 제어기(49-250)를 선택할 수 있다.
디코더(49-242)가 프로세서 버스(49-202) 상의 관련 정보(프로세서 데이터)를 수신하기 위해 DSP 메모리의 재할당된 블럭(51-424b)을 선택하면, 디코더(49-242)는 프로세서 데이터를 판독/수신하기 위해 제어선(49-245)를 사용하여 DSP 브리지(49-232)를 선택한다. 디코더(49-242)에 의해 선택되면, DSP 브리지(49-232)는 프로세서 버스(49-202)로부터의 프로세서 데이터를 처리하여 재할당된 DSP 메모리(51-424b)의 적절한 메모리 위치들로 라우팅한다. DSP 브리지(49-232)에 의한 데이터 처리는, 예를 들어, 데이터의 어드레스를 반전시키는 것을 포함하나, 실시예는 이에 한정되지 않는다. 도 54를 다시 참조하면, 실시예의 프로세서 데이터는 SW 액세스 로딩 명령(54-704)에 따라 재할당된 GPS 메모리(51-424b)에 기록된다.
상술한 바와 같이, 실시예의 코어 메모리 공유는 또한 스위칭 재할당을 포함한다. 스위칭 재할당은 미리 지정된 메모리 어드레스들을 DSP 버스(49-204)의 DSP 메모리 어드레스 공간에서 프로세서 버스(49-202)로 전환한다. 이러한 재할당 방법은 또한 메모리 매핑을 사용하여 재할당된 메모리를 인접하는 프로세서 메모리 어드레스 공간에 위치시킨다. 그러나, 이러한 매핑은 상술된 DSP 브리지(49-232)를 통한 매핑과 비교하여, 재할당된 메모리에 대한 고속의 액세스를 제공하는 메모리 인터페이스를 통해 행해진다.
도 55는 도 51의 실시예 하에서, 메모리 인터페이스(55-802) 및 프로세서 버스(49-202)를 통한 스위칭 재할당을 사용하여 프로세서(49-212)가 사용하기 위한 DSP 메모리(55-824)의 몇몇 부분을 재할당하는 전자 시스템 구성(55-800)의 블럭도이다. 시스템 구성(55-800)은 프로세서 버스(49-202)에 연결된 메모리 인터페이스(55-802)를 포함한다. 메모리 인터페이스(55-802)는 적어도 하나의 메모리 맵(도시하지 않음)을 호스팅하지만, 이에 한정되지 않는다. 메모리 인터페이스(55-802)의 컴포넌트들은 미리 지정된 어드레스들 또는 블럭들(55-824b)를 메모리 맵을 사용하여 DSP 메모리 어드레스 공간(55-824)에서 프로세서 메모리 어드레스 공간(55-814)로 전환한다. DSP 메모리(55-824b)의 재할당은 후술하는 바와 같이, 구성 레지스터(49-252)의 정보에 응답하여 수행된다. 재할당된 메모리(55-824b)는, DSP 버스(49-204) 및 DSP(49-222)를 경유한 액세스에 비해 비교적 적은 수의 클럭 사이클들로 프로세서 버스(49-202) 및 메모리 인터페이스(55-802)를 통해 프로세서에 의해 직접 액세스된다.
실시예의 재할당은 DSP 메모리(55-824b)의 블럭의 재할당을 지원하며, 여기서 DSP 메모리 블럭(55-824b)은 메모리의 대략 32 킬로바이트까지 포함하나, 실시예는 이에 한정되지 않는다. 대안의 실시예들은 임의 수/조합의 메모리 위치들을 갖는 임의 수의 블럭들을 재할당할 수 있다. 도 56A는 도 55의 실시예 하에서, 메모리 인터페이스를 통해 DSP 어드레스 공간(55-824)에서 프로세서 어드레스 공간(55-814)으로 DSP 메모리(55-824b)의 블럭을 재할당하는 메모리 구성의 블럭도(56-900)이다.
도 56A를 참조하면, 이하의 매핑 예는 32 킬로바이트 메모리 블럭(55-824b)의 재할당을 증명한다. 이러한 예의 시직 메모리 구성은, 도 50을 참조하면, 128 킬로바이트의 DSP 메모리(55-824) 및 64 킬로바이트의 프로세서 메모리(55-814)를 포함하나, 본원에 상술된 바와 같이 임의 구성의 메모리가 재할당될 수 있다. 재할당시, 메모리 블럭(55-824b)은 DSP 메모리(55-824)의 상부로부터 제거되어, DSP는 이제 크기가 대략 96 킬로바이트(128 킬로바이트 - 32 킬로바이트 = 96 킬로바이트)인 메모리(55-824a)의 인접 블럭을 본다. 재할당된 메모리 블럭(55-824b)는 코어 프로세서 메모리(55-814)에 부가되며, 프로세서는 이제 크기가 대략 96 킬로바이트(64 킬로바이트 + 32 킬로바이트= 96 킬로바이트)인 메모리(56-914)의 인접 블럭을 본다. 도 5B는 도 56A의 실시예 하에서, 32 킬로바이트 블럭의 DSP 메모리를 DSP 어드레스 공간(55-824)에서 프로세서 어드레스 공간(55-814)로 재할당하는 것을 따르는 메모리 구성(메모리 맵)을 도시한다. 상술된 실시예는 32 킬로바이트 메모리 블럭을 재할당하지만, 대안의 실시예들은 상이한 크기의 하나 이상의 메모리 블럭 및/또는 크기가 상이한 메모리 블럭들의 조합을 재할당할 수 있다.
실시예의 메모리는 프로세서 및/또는 DSP가 특정 메모리 구성에 대응하는 어드레스 경계들을 넘는 그들 각각의 메모리들의 메모리 위치들에 액세스하고자 하는 경우에 호스트 시스템에게 경고하는 메모리 보호 특징들을 포함한다. 메모리 보호 특징들은 경고들 및 인터럽트 플래그들을 포함하나 이에 한정되지 않는다. 결과적으로, 메모리 보호 특징들에 대한 어드레스 경계들은 메모리 재할당 동안 조정된다. 도 52 및 53을 참조하여 상술한 바와 같이, 인터럽트 어드레스 경계 Int(56-960)는 DSP 메모리(55-824)로부터 메모리 블럭(55-824b)을 제거하는 것을 반영하기 위해 DSP 메모리(55-824)에서의 점차적으로 낮은 어드레스로 조정된다. 대안의 실시예들은 인터럽트 어드레스 경계(56-960)를 메모리에서의 점차적으로 높은 어드레스로 또는 아니면 메모리 어드레싱 방식에 적합하게 조정할 수 있다. 마찬가지로, 중지 어드레스 경계 A(56-962)는 코어 프로세서 메모리(55-814)에 메모리 블럭(55-824b)를 부가하는 것을 반영하기 위해 프로세서 메모리(56-914)에서의 점차적으로 높은 어드레스로 조정된다. 대안의 실시예들은 중지 어드레스 경계(56-962)를 메모리에서의 점차적으로 낮은 어드레스로 또는 아니면 메모리 어드레싱 방식에 적합하게 조정할 수 있다.
전술한 스위칭 및/또는 매핑 재할당 방법들의 조합들로부터, 다수의 추가적인 재할당 방법들 및 구성들이 실현될 수 있다. 예를 들어, 시스템 구성들은 스위칭 재할당과 매핑 재할당 둘다의 조합을 이용하여 메모리를 재할당할 수 있다. 도 57은, 도 49, 도 51 및 도 55의 실시예들하에서, 스위칭 재할당을 이용하여 DSP 메모리 어드레스들(57-1024c)의 그룹을 재할당하고, 매핑 재할당을 이용하여 DSP 메모리 어드레스들(57-1024b)의 다른 그룹을 재할당하는, 예시적인 시스템 구성(57-1000)의 블록도이다. 시스템(57-1000)의 컴포넌트들은, 메모리 인터페이스(57-1002)와 프로세서 버스(49-212)를 통하여 프로세서(49-212)에 의해 사용하기 위한 DSP 메모리의 제1 부분(57-1024c)을 재할당하고, DSP 브리지(49-232)와 DSP 버스(49-204)를 통하여 프로세서(49-212)에 의해 사용하기 위한 DSP 메모리의 제2 부분(57-1024b)을 재할당하며, 이것으로 한정되지 않는다.
먼저, DSP 메모리의 제1 블록(57-1024c)의 스위칭 재할당을 참조하면, 시스템 구성(57-1000)은 프로세서 버스(49-202)에 연결되는 메모리 인터페이스(57-1002)를 포함한다. 메모리 인터페이스(57-1002)는 적어도 하나의 메모리 맵(도시되지 않음)을 호스팅하며, 이것으로 한정되지 않는다. 메모리 인터페이스(57-1002)의 컴포넌트들은, 사전에 특정된(prespecified) 어드레스들 또는 블록들(57-1024c)을, 메모리 맵의 이용을 통하여 DSP 메모리(57-1024)로부터 코어 프로세서 메모리(57-1014)로 스위칭한다. DSP 메모리의 제1 블록(57-1024c)의 재할당은 4개의 메모리 블록의 재할당을 지원하며, 각각의 블록은 메모리의 약 8kbytes까지 포함하고, 이 실시예는 이것으로 한정되지 않는다. DSP 메모리(57-1024c)의 스위칭 재할당은, 아래에 설명된 바와 같이, 구성 레지스터(49-252)의 정보에 응답하여 수행된다. 재할당된 메모리(57-1024c)는 프로세서 버스(49-202)와 메모리 인터페이스(57-1002)를 통하여 프로세서(49-212)에 의해 직접 액세스된다.
다음으로, DSP 메모리의 제2 블록(57-1024b)의 매핑 재할당을 살펴보면, 시스템 구성(57-1000)은 적어도 하나의 메모리 맵을 이용하여, 사전에 특정된 어드레스들 또는 블록들(57-1024b)을, DSP 브리지(49-232)를 통하여 DSP 메모리(57-1024)로부터 코어 프로세서 메모리(57-1014)로 매핑한다. DSP 메모리(57-1024b)의 재할당은, 아래에 설명된 바와 같이, 구성 레지스터(49-252)의 정보에 응답하여 수행된다. DSP 메모리의 제2 블록(57-1024b)의 재할당은, 제1 블록(57-1024c)의 스위칭 재할당과 조합하여 행해질 때, 4개의 메모리 블록의 증분적인(incremental) 재할당을 지원하며, 각각의 블록은 메모리의 약 8kbytes까지 포함하고, 이 실시예는 이것으로 한정되지 않는다.
도 58a는, 도 59의 실시예하에서, 메모리 인터페이스(57-1002)와 DSP 브리지(49-232)를 통하여 각각 DSP 어드레스 공간(57-1024)으로부터 코어 프로세서 어드레스 공간(57-1014)으로 재할당되는, 메모리 구성의 블록도(58-1100)이다. 도 50을 참조한, 이 예의 개시(starting) 메모리 구성은 128kbytes의 DSP 메모리(57-1024) 및 64kbytes의 프로세서 메모리(57-1014)를 포함하지만, 임의의 구성의 메모리가 본원에 설명된 바와 같이 재할당될 수 있다.
메모리 인터페이스(57-1002)와 프로세서 버스(49-202)를 통하여 프로세서(49-212)에 의해 사용하기 위한 DSP 메모리의 제1 부분(57-1024c)의 재할당은, 32-kbyte 메모리 블록(57-1024c)을 재할당하는 것을 포함한다. 재할당시, 메모리 블록(57-1024c)은, 전술한 바와 같이, 메모리 인터페이스의 컴포넌트들을 통해 메모리 매핑을 이용하여 DSP 메모리(57-1024)의 상부로부터 제거된다.
마찬가지로, DSP 브리지(49-232)를 통하여 프로세서(49-212)에 의해 사용하기 위한 DSP 메모리의 제2 블록(57-1024b)의 재할당은, 4개의 8-kbyte 메모리 블록(58-1101 내지 58-1104)(총체적으로 57-1024b)을 재할당하는 것을 포함한다. 재할당시, 메모리 블록(57-1024b)은, 전술한 바와 같이, DSP 브리지(49-232)와 DSP(49-222)의 컴포넌트들을 통해 메모리 매핑을 이용하여 DSP 메모리(57-1024)로부터 제거된다.
DSP 메모리의 제1 블록(57-1024c) 및 제2 블록(57-1024b)의 재할당시, 메모리 블록(57-1024c)(32kbytes)이 먼저 코어 DSP 메모리(57-1024)의 상부로부터 제거되고 코어 프로세서 메모리(57-1014)의 상부에 추가된다. 메모리 블록(57-1024b)(8kbytes×4블록=32kbytes)이 다음으로 잔존하는 코어 DSP 메모리(57-1024)의 상부로부터 제거되고 메모리 블록(57-1024c)의 상부에 추가된다. 이들 2가지 재할당 동작들 다음에, DSP(49-222)는 이제 사이즈가 약 64kbytes인 연속하는 메모리 블록(57-1024a)을 살펴본다. 프로세서는 이제 재할당된 메모리 블록들(57-1024c 및 57-1024b)의 코어 프로세서 메모리(57-1014)에의 추가의 결과로서 사이즈가 약 128kbytes(64kbytes+32kbytes+32kbytes=128kbytes)인 연속하는 메모리 블록(58-1114)을 살펴본다. 도 58b는, 도 58a의 실시예하에서, DSP 어드레스 공간(57-1024)으로부터 프로세서 어드레스 공간(57-1014)으로의 DSP 메모리의 제1 및 제2 블록의 재할당을 뒤따르는 메모리 구성(메모리 맵)을 도시한다. 대안적인 실시예들은 서로 다른 사이즈의 메모리 블록들 또는 서로 다른 사이즈를 가지는 메모리 블록들의 조합들을 재할당할 수 있다.
DSP 메모리를 재할당할 때, DSP 메모리의 제1 부분(57-1024c)의 스위칭은, DSP 메모리의 제2 부분(57-1024b)의 매핑에 대하여 우선권을 가지며, 이 실시예는 이것으로 한정되지 않는다는 것을 주목할 필요가 있다. 따라서, 스위칭 및 매핑 방법의 조합을 이용할 때, 2가지 상황, 즉, 프로세서(49-212)가 메모리 블록들(58-1101 내지 58-1104) 중의 하나 이상을 매핑하고, 후속하여 메모리 블록들(58-1101 내지 58-1104) 중의 하나 이상을 스위칭하는 상황과, 프로세서(49-212)가 메모리 블록들(58-1101 내지 58-1104) 중의 하나 이상을 스위칭하고, 후속하여 메모리 블록들(58-1101 내지 58-1104) 중의 하나 이상을 매핑하는 상황이 발생할 수 있다. 이 2가지 상황이 발생하는 것에 관계없이, 매핑 재할당 방법과 스위칭 재할당 방법 사이를 지나갈 때 기존의 데이터 오더링(ordering)은 유지된다. 또한, 프로세서가 이전에 DSP 브리지(49-232)를 통하여 코어 프로세서 메모리(57-1014)에 DSP 메모리의 제1 부분(57-1024c)의 블록들(58-1101 내지 58-1104) 중의 하나 이상을 매핑하였다면, 이 블록들(58-1101 내지 58-1104)에 기억된 임의의 데이터는, 그 블록이 메모리 인터페이스를 통해 코어 프로세서 메모리(57-1014)에 추후 매핑될 때 동일 어드레스들에서 그대로 유지된다.
도 52, 도 53 및 도 56을 참조하여 전술한 바와 같이, 인터럽트 어드레스 경계 Int 58-1160은, DSP 메모리(57-1024)로부터의 메모리 블록들(57-1024c 및 57-1024b)의 제거를 반영하기 위해 DSP 메모리(57-1024)에서의 하위 어드레스로 증분적으로 조정된다. 대안적인 실시예들은 인터럽트 어드레스 경계(58-1160)를 메모리에서의 상위 어드레스로 또는 적절한 경우 메모리 어드레싱 방식으로 증분적으로 조정할 수 있다. 마찬가지로, 중지(abort) 어드레스 경계 A 58-1162는, 코어 프로세서 메모리(57-1014)에의 메모리 블록들(57-1024c 및 57-1024b)의 추가를 반영하기 위해 메모리에서의 상위 어드레스로 증분적으로 조정된다. 대안적인 실시예들은 중지 어드레스 경계(58-1162)를 메모리에서의 하위 어드레스로 또는 적절한 경우 메모리 어드레싱 방식으로 증분적으로 조정할 수 있다.
메모리 스위칭 및 메모리 매핑 재할당을 조합하는 시스템 구성(57-1000)은, 프로세서 버스(49-202) 및 메모리 인터페이스(57-1002)를 통하여 프로세서(49-212)에 의해 DSP 메모리의 스위칭된 부분들(57-1024c)에의 액세스를 지원하고, DSP 브리지(49-232), DSP 버스(49-204) 및 DSP(49-222)를 통해 DSP 메모리의 매핑된 부분들(57-1024b)에의 액세스를 지원한다. 프로세서(49-212)의 정보(데이터)는 디코더(49-242)의 제어하에서 적절한 메모리 위치들로 라우팅된다. 도 57을 다시 참조하면, 디코더(49-242)는 프로세서 버스(49-202)를 통하여 프로세서(49-212)로부터 정보(데이터)를 수신한다. 수신한 정보는 예를 들어 연관된 메모리 어드레스들과 함께 데이터 및/또는 명령들을 포함한다. 디코더(49-242)는 어드레스의 처음 4비트를 사용하여, 연관된 정보가 GPS 데이터인지 혹은 프로세서 데이터인지를 판정한다.
정보(데이터)가 GPS 데이터라고 디코더(49-242)가 판정한 경우, 디코더(49-242)는 GPS 데이터를 판독/수신하기 위해 (제어선(49-244)을 사용하여) DSP 브리지(49-232)를 선택한다. 디코더(49-242)에 의해 제어선(49-244)을 통하여 선택되면, DSP 브리지(49-232) 및 DSP(49-222)의 컴포넌트들(도시되지 않음)의 일부 조합이 GPS 데이터를 프로세서 버스(49-202)로부터 DSP 메모리의 적절한 메모리 위치들(57-1024a)로 라우팅한다. 도 59는, 도 57의 실시예하에서, 연관된 메모리 로딩 순서(59-1202 및 59-1204)와 함께 메모리 재할당을 따르는 DSP 메모리의 블록도이다. 실시예의 GPS 데이터는 GPS 데이터 로딩 순서(59-1202)에 따라 GPS 메모리(57-1024a)에 기입된다.
수신한 정보(데이터)가 프로세서 데이터라고 디코더(49-242)가 판정한 경우, 디코더(49-242)는 다음과 같은 어드레스 디코딩에 따라, 제어선(49-243), 제어선(49-245) 또는 제어선(49-246)을 통하여 프로세서 데이터를 판독/수신하기 위해 메모리 컨트롤러(49-250), DSP 브리지(49-232) 또는 메모리 인터페이스(57-1002) 중 하나를 선택한다. 어드레스가 6000_0000과 6001_8000 사이에 있고 메모리 구성이 스위칭된 메모리(57-1024c)를 포함하는 경우, 디코더는 프로세서 버스(49-202) 및 메모리 인터페이스(57-1002)를 통하여 연관된 정보를 수신하기 위해 (제어선(49-246)을 이용하여) 스위칭된 메모리(57-1024c)를 선택한다. 어드레스가 6001_8000과 6002_0000 사이에 있고 메모리 구성이 스위칭된 메모리(57-1024c)를 포함하는 경우, 디코더는 DSP 버스(49-204)와, DSP 브리지(49-232) 및 DSP(49-222)의 컴포넌트들(도시되지 않음)의 일부 조합을 통하여 연관된 정보를 수신하기 위해 (제어선(49-245)을 이용하여) DSP 메모리(57-1024)의 매핑된 블록(57-1024b)을 선택한다. 다양한 대안적인 실시예들은 제어선들(49-243 내지 49-246) 대신에 프로세서 데이터를 판독/수신하기 위해 장치를 선택하는데에 신호 방식들의 임의의 수/유형/조합을 사용할 수 있다.
디코더(49-242)가 프로세서 버스(49-202)에서 연관된 정보를 수신하기 위해 DSP 메모리의 매핑된 블록(57-1024b)을 선택하는 경우, 디코더(49-242)는 프로세서 데이터를 판독/수신하기 위해 제어선(49-245)을 이용하여 DSP 브리지(49-232)를 선택한다. 디코더(49-242)에 의해 선택되면, DSP 브리지(49-232)는 프로세서 버스(49-202)로부터의 프로세서 데이터를 처리하고, 재할당된 DSP 메모리(58-1124b)의 적절한 메모리 위치들로 라우팅한다. DSP 브리지(49-232)에 의한 데이터의 처리는, 예를 들어, 데이터의 어드레스를 인버팅(inverting)하는 것을 포함하며, 이 실시예는 이것으로 한정되지 않는다. 도 59를 다시 참조하면, 실시예의 프로세서 버스는 재할당된 GPS 메모리(57-1024b)에 SW 액세스 로딩 순서(59-1204)에 따라 기입된다.
전술한 바와 같이, 실시예의 메모리는, 프로세서(49-212) 및/또는 DSP(49-222)가 특정 메모리 구성에 대응하는 어드레스 경계들을 넘는 그들 각각의 메모리들의 메모리 위치들을 액세스하는 것을 시도하는 경우 호스트 시스템에 경보를 발하기 위해 메모리 보호 특징들을 포함한다. 이들 메모리 보호 특징들은 예를 들어, 중지 및 인터럽트 플래그를 포함한다. 도 60은, 도 57의 대안적인 실시예하에서, 스위칭 재할당을 이용하여 메모리 어드레스군을 재할당하고, 매핑 재할당을 이용하여 다른 메모리 어드레스군을 재할당하는 시스템 구성(60-1300)의 블록도이다. 이 시스템(60-1300)은 DSP 브리지(49-232)에 연결된 SW 모니터(60-1302)를 더 포함하며, 이것으로 한정되지 않는다. SW 모니터(60-1302)는, 전술한 바와 같이, 프로세서(49-212)가 메모리 구성과 연관된 사전에 특정된 중지 어드레스 경계를 넘는 메모리 위치들을 액세스하는 경우에 중지(60-1304)를 생성한다. 시스템(60-1300)은 적어도 하나의 중지 어드레스 경계를 적절한 경우 메모리 구성으로 조정한다.
시스템(60-1300)은 또한 DSP(49-222)와 DSP 메모리(57-1024) 중 적어도 하나에 연결되는 DSP 모니터(60-1304)를 포함한다. 실시예의 DSP 모니터(60-1304)는, 전술한 바와 같이, DSP(49-222)가 메모리 구성과 연관된 사전에 특정된 인터럽트 어드레스 경계 또는 한계를 넘는 메모리 위치들을 액세스하는 경우에 인터럽트(60-1314)를 생성한다. 시스템(60-1300)은 적어도 하나의 인터럽트 어드레스 경계를 적절한 경우에 메모리 구성으로 조정한다.
도 49, 도 51, 도 55 및 도 57을 참조하여 전술한 시스템 구성들은 또한 DSP 메모리를 액세스하는데 사용하기 위한 멀티플렉서를 포함할 수 있다. 예로서, 도 61은, 도 51, 도 53, 도 57 및 도 59의 실시예들 중 임의의 실시예하에서, 재할당된 메모리 X24 및 멀티플렉서(61-1402)를 포함하는 전자 시스템(61-1400)의 블록도이다. 멀티플렉서(61-1402)는 메모리 X24(여기서, "X"는 대응하는 도면/시스템의 번호를 나타냄. 즉, 도 49는 "메모리(49-224)", 도 51은 "메모리(51-424)", 도 55는 "메모리(55-824)", 도 57은 "메모리(57-1024)") 및 DSP(49-222)에 연결되며, 이것으로 한정되지 않는다. 메모리 X24는 DSP 메모리 X24a 및 재할당된 메모리 블록 X24b를 포함한다. 재할당된 메모리 블록 X24b는 전술한 바와 같이 프로세서(49-212)(도 51, 도 53, 도 57 및 도 59)에 의한 사용을 위해 재할당된다.
메모리 X24에의 기입 동작들 동안, DSP(49-222)는 어드레스 및 메모리 칩 선택 정보(0, 1, 2 또는 3)를 포함하는 멀티플렉서(61-1402)에 정보를 전달한다. 대안적인 실시예들은 멀티플렉서(61-1402)에 추가 정보를 제공할 수 있다. 어드레스 및 칩 선택 정보를 이용하여, 멀티플렉서(61-1402)는 기입 동작을 위해 메모리 블록 X24a 또는 X24b 중 하나의 메모리 위치들을 선택한다.
메모리 판독 동작들 동안, DSP(49-222)는, 어드레스 정보(이것으로 한정되지 않음)를 포함하는 멀티플렉서(61-1402)에 정보를 제공한다. 응답하여, 멀티플렉서(61-1402)는 어드레스 정보에 대응하는 메모리 블록들 X24a 및 X24b의 각각의 메모리 위치들로부터 데이터를 수신한다. 멀티플렉서는 어드레스 정보를 이용하여, 메모리 블록 X24a으로부터 판독된 정보 또는 메모리 블록 X24b로부터 판독된 정보를 선택하고, 선택한 정보를 DSP(49-222)에 제공한다.
전술한 모든 프로세서 메모리 및 DSP 메모리에의 액세스는, 바이트 선 기입 제어들을 이용하여 바이트, 반-워드(half-word), 및 워드 액세스를 허용한다. 이 속성은 브리지 유닛을 통해 매핑된 메모리와 스위칭된 메모리 둘다에 대하여 유지한다. DSP 메모리에 대한 바이트 오더링(byte ordering)은, DSP 기준-어드레스, 또는 프로세서 기준-어드레스를 이용하는 매핑 또는 스위칭된 블록들에 대하여 동일하다.
전술한 메모리 공유/재할당은, 호스트 전자 시스템의 다수의 컴포넌트 또는 모듈을 수반할 수 있다. 도 47 내지 도 62를 참조하여 전술한 시스템들은 프로세서 버스(49-202)에 연결되는 적어도 하나의 메모리 구성 레지스터(49-252)를 포함한다. 메모리 구성 레지스터(49-252)는 브리지 유닛(49-234)을 통해 프로세서 버스(49-202)에 연결하고, 메모리 구성을 제어 또는 관리함에 있어서, 프로세서(49-212), 디코더(49-242), 메모리 인터페이스(도 57의 55-802, 도 59의 57-1002), DSP 브리지(49-232), 및 멀티플렉서(도 64의 61-1402) 중 적어도 하나에 의한 사용을 위해 정보를 기억하는 레지스터들을 포함한다. 메모리 구성 레지스터(49-252)는, 단독으로 및/또는 호스트 전자 시스템의 다른 컴포넌트들과 조합하여, 일반적으로 아래에 설명된 하나 이상의 레지스터들/레지스터 필드들을 포함한다.
실시예의 구성 레지스터(49-252)는 전술한 바와 같이, 매핑 재할당을 지원하기 위해 제1 레지스터 필드 집합을 포함한다. 이 레지스터 필드 집합은 메모리 블록들을 DSP 어드레스 공간으로부터 프로세서 어드레스 공간으로 매핑한다. 메모리 블록들은 최대 8개의 8-kbyte 블록들을 포함하지만, 대안적인 실시예들은 임의의 사이즈 조합을 가지는 임의의 수의 블록들을 포함할 수 있다. 블록들은 DSP 메모리의 상부로부터 순서대로 매핑된다. 실시예의 제1 레지스터 필드 집합은 하나 이상의 레지스터 필드를 포함한다.
실시예의 구성 레지스터(49-252)는 전술한 바와 같이, 스위칭 재할당을 지원하기 위해 제2 레지스터 필드 집합을 포함한다. 이 제2 레지스터 필드 집합은 DSP 메모리의 상부 32kbytes를 DSP 버스로부터 프로세서 버스로 스위칭하는 것을 지원하고, 32-kbyte 블록은 4개의 8-kbyte 블록을 포함한다. 메모리의 대응하는 4개의 8-kbyte 블록 중 하나 이상이 사전에 또는 후속하여 매핑 재할당에 의해 재할당되었다면, 스위치 제어가 우선한다. 처음 4개의 매핑된 8-kbyte 블록들과 단일 스위칭된 32-kbyte 블록의 데이터 내용들은 동일 오프셋들에 있고, 어느 하나의 재할당 방법을 이용하는 바이트 오더링이다. 실시예의 제2 레지스터 필드 집합은 하나 이상의 레지스터 필드를 포함한다.
실시예의 구성 레지스터(49-252)는, DSP 메모리 판독 및/또는 기입 액세스 위반에 대한 중지 생성의 이네이블 또는 디스에이블을 지원하기 위해 제3 레지스터 필드 집합을 포함한다. 이 중지들의 생성은 또한 판독 및 기입 액세스에 대해 독립적으로 이네이블 또는 디스에이블될 수 있다. 인터럽트들에 대하여, 실시예의 시스템은 초기 DSP 메모리 위반 및 후속 인터럽트를 일으키는 어드레스의 세이빙(saving)을 지원하기 위해 제4 레지스터 필드 집합을 포함한다. 실시예의 제3 및 제4 레지스터 필드 집합의 각각은 하나 이상의 레지스터 필드를 포함한다.
도 63은 실시예하에서, 메모리 공유를 위한 제어 레지스터(63-1500)의 블록도이다. 구성 레지스터(49-252)는 제어 레지스터(63-1500)를 포함하지만, 대안적인 실시예들은 다른 컴포넌트들 및/또는 호스트 시스템의 컴포넌트들의 조합들에 제어 레지스터(63-1500)를 포함할 수 있다. 이 레지스터의 비트들 0-15의 기능에 대한 설명은 다음과 같다.
비트(들) 기능
15:7 예비
6 DSP32K_SWI_ENB: 논리 1 = 프로세서 버스를 통한 DSP 메모리의 상위 32kbytes의 프로세서 직접 액세스를 이네이블함.
5:3 MAP_BLK[2:0]: DSP64K_MAP_ENB=1일 때, 000-111은 프로세서 소프트 매핑(soft mapping) 액세스를 위한 DSP 메모리의 상위 64kbytes 중 1개에서 8개의 8-kbyte 블록을 선택한다. 이들 비트들은 프로세서 소프트 MAP 어드레스 경계를 다음과 같이 설정한다:
000: ≥0x6001_0000<0x6001_2000 또는 ≥0xC021_E000<0xC022_0000
001: ≥0x6001_0000<0x6001_4000 또는 ≥0xC021_C000<0xC022_0000
010: ≥0x6001_0000<0x6001_6000 또는 ≥0xC021_A000<0xC022_0000
011: ≥0x6001_0000<0x6001_8000 또는 ≥0xC021_8000<0xC022_0000
100: ≥0x6001_0000<0x6001_A000 또는 ≥0xC021_6000<0xC022_0000
101: ≥0x6001_0000<0x6001_C000 또는 ≥0xC021_4000<0xC022_0000
110: ≥0x6001_0000<0x6001_E000 또는 ≥0xC021_2000<0xC022_0000
111: ≥0x6001_0000<0x6002_0000 또는 ≥0xC021_0000<0xC022_0000
2 DSP64K_MAP_ENB: Logic 1=DSP 버스 브리지를 통하여 0x6001_0000 이상이고 0x6002_0000 미만인 어드레스의 DSP 메모리의 상위 64kbytes 중 1개에서 8개의 8-kbyte 블록으로부터의 프로세서 소프트 매핑을 가능하게 함.
1 EN_CPU_WAB: Logic 1=프로세서 기입 위반의 중단을 가능하게 함.
0 EN_CPU_RAB: Logic 1=프로세서 판독 위반의 중단을 가능하게 함.
제어 레지스터(63-1500)의 제어 비트들의 보다 상세한 설명이 뒤에 온다. 어드레스가 프로세서의 사용을 위해 매핑되거나, 액세스 되는 버스 상에 물리적으로 존재하지 않기 때문에 허락되지 않은 어드레스 범위의 DSP 메모리로부터 판독하려고 하면, EN_CPU_RAB 비트는 프로세서(49-212)가 액세스를 중단할 수 있게 한다. 예를 들면, 만약 SWI_ENB=0이고 MAP_ENB=1이며, 프로세서(49-212)가 0x6001_C000에서 0x6001_FFFF의 어드레스 범위로부터 판독하려고 하면, 중단이 발생한다. 마찬가지로, 만약 SWI_ENB=1이고, 프로세서(49-212)가 0xC021_E000에서 0xC021_FFFF 범위로부터 판독하려고 하면, 중단이 발생한다. 그러나 주목할 것은, 만약 SWI_ENB=0이고 MAP_ENB=1이며, MAP_BLK가 000보다 크면/같으면, 프로세서(49-212)는 0x6001_0000에서 0x6001_1FFF 및 0xC021_E000에서 0xC021_FFFF의 어드레스 범위 둘 다에서 DSP 브리지(49-232)를 통해 블록 0으로부터 판독할 수 있다.
특정한 어드레스 범위는 프로세서의 사용을 위해 매핑되거나 액세스 되는 버스 상에 물리적으로 존재하지 않기 때문에, 만약 프로세서(49-212)가 허락되지 않은 어드레스 범위의 DSP 메모리에 기입하려고 하면, EN_CPU_WAB 비트는 프로세서(49-212)가 액세스를 중단할 수 있게 한다. 예를 들면, 만약 SWI_ENB=0이고 MAP_ENB=1이고, 프로세서(49-212)가 0x6001_C000에서 0x6001_FFFF의 어드레스 범위에 기입하려고 하면, 중단이 발생한다. 마찬가지로, 만약 SWI_ENB=1이고 프로세서(49-212)가 0xC021_E000에서 0xC021_FFFF의 범위의 어드레스에 기입하려고 하면, 그 블록은 DSP 버스 상에 존재하지 않기 때문에, 중단이 발생한다. 그러나 주의할 것은, 만약 SWI_ENB=0 및 MAP_ENB=1 및 MAP_BLK가 000보다 크면/같으면, 프로세서(49-212)는 0x6001_0000에서 0x6001_1FFF 및 0xC021_E000에서 0xC021_FFFF의 어드레스 범위 둘 다에서 DSP 브리지(49-232)를 통해 블록 0에 기입할 수 있다.
DSP64K_MAP_ENB 비트는 MAP_BLK[2:0]이 DSP 어드레스 범위에서 온 칩 프로세서 메모리(on-chip processor memory) 바로 위의 어드레스 범위까지 8개의 8-kbyte 블록의 어드레스 매핑을 제어하는 것을 가능하게 한다. 이 비트가 디스에이블될 때(로직 "0"으로 설정됨), 매핑 비트들 MAP_BLK [2:0]는 효과가 없다.
MAP_BLK [2:0] 비트는 DSP 어드레스 범위에서 온 칩 프로세서 메모리 바로 위의 어드레스 범위까지 8개의 8-kbyte 블록의 매핑을 제어한다. 그 바이트들은 블록 0으로 시작해서 MAP_BLK [2:0]에 의해 특정되는 블록까지 매핑되지만, 그렇게만 한정되지는 않는다. 블록 0은 DSP 어드레스 범위의 하이 엔드(high end)에 있고 프로세서 메모리 위의 매핑된 범위의 로우 엔드(low end)로 매핑된다. 상위 블록들이 제거되었을 때 남아있는 DSP 메모리가 인접한 어드레스 범위가 되도록 역 적층(reverse stacking)이 행해지고, 부가된 프로세서 메모리는 인접한 어드레스 범위처럼 보이도록 각 블록이 부가되어 증가한다.
DSP32K_SWI_ENB 비트는 메모리 블록들을 0에서 3으로 DSP 버스에서 프로세서 버스로 전환한다. 네 개의 블록이 온 칩 프로세서 메모리의 꼭대기 바로 위에 매핑된 블록 0으로 시작하여 프로세서 어드레스 범위에 역순으로 쌓인다. MAP_BLK [2:0]이 DSP브리지(49-232)를 경유하여 블록들을 매핑할 때 이러한 동일한 매핑이 사용된다.
도 64는 일 실시예 하의 메모리 공유에 대한 상태 레지스터(64-1600)의 블록도이다. 구성 레지스터(49-252)는 상태 레지스터(64-1600)를 포함하지만, 대안적인 실시예들은 호스트 시스템의 다른 요소들 및/또는 요소들의 조합들 내에 상태 레지스터(64-1600)를 포함할 수 있다. 이러한 레지스터의 비트들(0-15)의 기능의 설명은 다음과 같다:
비트(들) 기능
15:2 보존됨
1 CPUW_VIO: 판독 동작 중에는 logic 1=프로세서 기입 위반; 기입 동작 중에는 logic 1을 기입하는 것은 그 비트를 소거함.
0 CPUR_VIO: 판독 동작 중에는 logic 1=프로세서 판독 위반; 기입 동작 중에는 logic 1을 기입하는 것은 그 비트를 소거함.
상태 레지스터(64-1600)의 각 제어 비트의 보다 상세한 설명이 뒤에 온다. 프로세서 판독 위반이 일어날 때 CPUR_VIO 비트가 설정된다. 이러한 비트는 EN_CPU_RAB의 상태에 관계없이 설정된다. CPUR_VIO 비트는 프로세서가 로직 "1"을 다시 기입할 때 소거된다.
프로세서 기입 위반들이 일어날 때 CPUW_VIO 비트가 설정된다. 이러한 비트는 EN_CPU_WAB의 상태에 관계없이 설정된다. CPUW_VIO 비트는 프로세서가 로직 "1"을 다시 기입할 때 소거된다.
도 65는 일 실시예 하의, 메모리 공유를 위한 판독/기입 위반 어드레스 레지스터(65-1700)의 블록도이다. 구성 레지스터(49-252)는 위반 어드레스 레지스터(65-1700)를 포함하지만, 대안적인 실시예들은 호스트 시스템의 다른 요소들 및/또는 요소들의 조합들 내에 위반 어드레스 레지스터(65-1700)를 포함할 수 있다. 이러한 레지스터의 비트들(0-15)의 기능의 설명은 다음과 같다.
비트(들) 기능
15:0 처음으로 DSPW_INT 또는 DSPR_INT 펄스를 일으키는 DSP 어드레스
도 66A 및 66B는 일 실시예 하의, 메모리 공유를 위한 어드레스 맵(66-1800)을 형성한다. 구성 레지스터(49-252)는 어드레스 맵(66-1800)을 포함하지만, 대안적인 실시예들은 호스트 시스템의 다른 요소들 및/또는 요소들의 조합들 내에 어드레스 맵(66-1800)을 포함할 수 있다. 소정의 예들은 메모리 공유를 위한 어드레스 매핑의 아래에 제시되지만, 실시예는 이러한 예들에 한정되지 않는다.
제1 예에서, Block=7, DSP32K_SWI_ENB=X, DSP64K_MAP_ENB=0, MAP_BLK[2:0]=XXX이다. DSP(49-222)는 0x0001_0000에서 0x0001_FFFF까지의 자신의 DSP 어드레스 범위의 블록에 액세스한다. 프로세서(49-212)는 0xC021_0000에서 0xC021_1FFF까지의 DSP 브리지 어드레스에서 블록에 액세스한다. 프로세서(49-212)는 프로세서 버스(49-202) 상의 이 블록에 액세스할 수 없다.
제2 예에서, Block=7, DSP32K_SWI_ENB=X, DSP64K_MAP_ENB=1, MAP_BLK[2:0]=110이다. DSP(49-222)는 0x0001_0000에서 0x0001_FFFF까지의 자신의 DSP 어드레스 범위의 블록에 액세스한다. 프로세서(49-212)는 0xC021_0000에서 0xC021_FFFF까지의 자신의 DSP 브리지 어드레스 또는 0x6001_0000에서 0x6001_5FFF까지의 소프트 맵 어드레스에서 블록에 액세스한다. 프로세서(49-212)는 프로세서 버스(49-202) 상의 이 블록에 액세스할 수 없다.
세번째 예에서, 블록=7, DSP32K_SWI_ENB=X, DSP64K_MAP_ENB=1, MAP_BLK[2:0]=111이다. DSP(49-222)은 일반적인 DSP 어드레스 범위 0x0001_0000 내지 0x0001_FFFF의 블록을 액세스하도록 프로그램되지 않는다. 프로세서(49-212)는, 0x6001_0000 내지 0x6001_7FFF의 자신의 매핑된 DSP 브릿지 어드레스의 블록에 액세스한다. 프로세서(49-212)는 프로세서 버스(49-202) 상에서 이러한 블록에 액세스하지 않는다. DSP(49-222)가 자신의 일반적인 DSP 버스 어드레스 범위의 이러한 블록을 액세스하려고 하면, DSP 판독 또는 기입 인터럽트들이 적절하게 생성된다.
일 실시예의 GPS 시스템은 동적 메모리 할당 및 공유를 위한 적어도 하나의 시스템 및 방법을 포함하나, 이에 한정되지 않는다. 실시예들은 RAM(random access memory)를, 다양한 크기를 갖고 특정 서브시스템들에 의해 액세스되며 특정 유형의 데이터를 저장하는 다양한 영역들로 할당하는 것을 포함한다. RAM 할당은 신호 처리 시스템과 같은 데이터 처리 시스템의 동작 모드들에 따라 변한다. 가용 메모리가 할당되면, 서로 다른 모드들로 동시에 동작할 수 있는 서로 다른 서브시스템들에 의해 서로 다른 영역들이 공유된다.
다양한 실시예들이 신호 처리 시스템, 특히 GPS에 도시된다. 실시예들은 그러한 시스템으로 한정되지 않고 메모리가 할당되어야 하고 진행하는 것에 기초하여 다수의 서브시스템들에 재할당되어야 하는 한정된 자원인 임의의 전자 시스템에 유용하다. 실시예들의 예시적인 예들은 개별 채널들을 통해 SVs(satellite vehicles)로부터 수신된 RF(radio frequency) 신호들을 처리하는 신호 처리 코어를 포함한다. 신호 처리 코어는, GPS 시스템이 가시적인 위성들에 대해 초기에 얼마나 많은 정보를 가지는지와 같은 다수의 인자들에 따라 몇몇 서로 다른 모드들로 동작한다. 가용 메모리는 특정 동작 모드에서 가장 효율적인 사용을 위해 유리하게 할당된다. 또한, 가용 메모리는 채널 별로 유리하게 할당된다. 채널이라는 용어는 하드웨어 자원들의 특정 사용을 나타내도록 사용된다. 채널은 하나 이상의 특정 위성으로부터 수신된 하나 이상의 신호들에 대응할 수 있다. 서로 다른 채널들이 서로 다른 모드들에서 동시에 사용되기 위한 가용 메모리에 할당된다. 본원에서 사용된 채널이라는 단어는 임의의 이산 신호, 또는 신호 처리 시스템에 의해 처리될 이산 신호를 제공하는 데이터 스트림을 나타낼 수도 있다.
설명된 실시예들은, 다수 채널들을 연속적으로 수신하는 단계, 신호 처리 컴포넌트에서 다수의 채널들을 시간-멀티플렉스 방식으로 처리하는 단계, 및 다수의 동작 모드들중 하나에 대해 신호 처리 컴포넌트를 구성하는 단계를 포함하고, 메모리를 데이터의 유형들의 저장을 위한 영역들로 할당하는 단계를 포함하는, 다수 채널 신호 처리를 위한 방법들을 포함한다. 소정의 영역들은 소정의 신호 처리 서브시스템들에 의해 소정의 방식들로 액세스되고, 신호 처리 컴포넌트는 서로 다른 채널들에 대해 서로 다른 모드들로 동시에 동작하도록 구성된다. 신호 처리 컴포넌트는 신호 처리 컴포넌트의 출력의 평가에 기초하여 연속적으로 재구성된다. 메모리는 소프트웨어에 의해 데이터 워드들이 저장되는 채널 영역을 포함하도록 더 할당된다. 프로세서 또는 제어기가 소프트웨어를 실행한다. 제어 프로세서 및 소프트웨어는 임의의 위치에 상주할 수 있다. 데이터 워드들은, 메모리를 포함하는, 신호 처리 서브시스템을 구성하는데 필요한 모든 정보를 포함한다. 데이터 워드들은 다양한 서브시스템들에 의해 판독되고 또한 다양한 서브시스템들에 의해, 예를 들어 특정 서브시스템이 메모리 영역을 액세스했는지를 나타내는 어드레스 포인터들을 저장하고, 상태 정보를 저장함으로써, 업데이트될 수 있다.
따라서, 메모리 교환(memory swapping) 및 메모리 공유가 발생할 수 있다. 메모리 교환은 코어 프로세싱이 메모리의 모놀리식 블록들을 사용하고 서로 다른 버퍼 크기들에 대해 블록들을 분할할 수 있게 한다. 서로 다른 블록들은 동작 모드에 기초하여 메모리 내에 재배치될 수 있다. 코어 프로세싱 이외에, 규칙들이 셋업되어 메모리 액세스가 발생하는 방법을 제어한다. 프로세서 또는 제어기는 메모리를 액세스하고 구성하는데 높은 우선순위를 가질 수 있다. 메모리 블록들은 단절되고 메모리 관리 프로세스들이 다른 블록을 제한할 수 있다.
도 67은, 신호 처리 시스템(67-102)을 포함하는, 시스템(67-100)의 일 실시예의 블록도이다. 신호 처리 시스템(67-102)은 RF(radio frequency) 컴포넌트들 및 디지털 신호 처리 컴포넌트들을 포함한다. RF 컴포넌트(67-103)는 일 실시예에서 GPS 위성들로부터의 RF 신호들 또는 SVs로부터의 RF 신호들을 수신한다. RF 신호들은 디지털화되고 디지털 신호 처리 컴포넌트(67-101)로 전송된다. 일 실시예에서, RF 컴포넌트(67-103) 및 디지털 신호 처리 컴포넌트(67-101)는 SPI(serial peripheral interface)를 통해 통신한다. 디지털 신호 처리 컴포넌트(67-101)는, 아래에서 추가로 설명되는 바와 같이, RF 신호들을 처리하고, 처리된 데이터를 OEM 버스(67-104)를 통해 OEM 프로세서(67-105)로 전송한다. 디지털 신호 처리 컴포넌트(67-101)는 또한 OEM 메모리(67-107)와 통신한다. 아래에서 추가로 설명되는 바와 같이, 디지털 신호 처리 컴포넌트(67-101)는 신호 처리 기능들을 위한 메모리를 포함한다. 본 발명의 실시예들은, 디지털 신호 처리 컴포넌트(67-101) 상의 메모리 및 OEM 메모리(67-107)를 포함하는, 한정된 양의 메모리를 갖는 시스템들에 특히 이점이 있다. 통상적으로, 메모리는 시스템들 내에 한정되나, 이는 핸드헬드 또는 이동 디바이스들 형태의 시스템들에 특히 해당된다.
선택적으로, OEM 메모리(67-107)는 디지털 신호 처리 컴포넌트(67-101)에 의해 액세스될 필요가 없다. 다른 가능한 구성들은, 신호 처리 기능들을 수행하기 위한 프로세싱 전력 및 필요한 메모리 모두를 포함하는, 하나의 컴포넌트 또는 칩에 위치한 디지털 신호 처리 컴포넌트(67-101) 기능 및 RF 컴포넌트(67-103) 기능 모두를 포함한다. 시스템(67-100)은 GPS 지원 정보(aiding information)없이 효과적으로 동작할 수 있거나 또는 대안적으로 다양한 소스들로부터의 GPS 지원 정보를 사용하여 동작할 수 있다.
도 68은, 입력 샘플 서브시스템(SS1)(68-211), 신호 처리 서브시스템(SS2)(68-213), 및 FFT(fast fourier transform) 서브시스템(SS3)(68-215)을 포함하는, 디지털 신호 처리 컴포넌트(67-101)의 일 실시예의 서브시스템들을 나타내는 블록도이다. 디지털 신호 처리 컴포넌트(67-101)는, 일 실시예에서 아래에서 추가로 설명되는 다양한 서브시스템들 사이에서 동적으로 할당되고 공유되는 RAM을 포함하는 메모리 서브시스템(68-201)를 더 포함한다. 메모리 서브시스템(68-201)은 단일 메모리 컴포넌트 또는 디바이스, 또는 다수의 메모리 컴포넌트들일 수 있다. 메모리 서브시스템(68-201)은 입력 샘플 RAM(68-203), 코히런트(coherent) 데이터 RAM(68-205), 백엔드 저장 RAM(68-209) 및 채널 RAM(68-207)을 포함한다. 메모리 서브시스템(68-201)은, 입력 샘플 RAM(68-203), 코히런트 RAM(68-205), 채널 RAM(68-207) 및 백엔드 저장 RAM(68-209) 각각이 다양한 동작 모드들에서 변화하는 크기를 가지도록 동적으로 할당된다. 또한, 입력 샘플 RAM(68-203), 코히런트 RAM(68-205) 및 백엔드 저장 RAM(68-209)은 각각 서로 다른 모드들에서 서로 다른 채널들에 의해 액세스되고, 서로 다른 서브시스템들 간에 동시에 공유된다.
입력 샘플 RAM(68-203)은 FIFO1 제어 구조로 불리우는 제어 구조(68-221), 또는 FIFO1(68-221)에 의해 제어된다. 코히런트 RAM(68-205)은 FIFO2 제어 구조로 불리우는 제어 구조(68-223), 또는 FIFO2(68-223)에 의해 유사하게 제어된다. 아래에서 추가로 설명되는 바와 같이, FIFO1(68-221)은 입력 샘플 RAM(68-203)에 대한 액세스를 제어하고 FIFO2(68-223)은 코히런트 RAM(68-205)에 대한 액세스를 제어한다. 본원에 사용된 FIFO라는 용어는 일 실시예에서 입력 샘플 RAM(68-203) 및 코히런트 RAM(68-205)에 대한 액세스의 선입선출 특성을 암시한다. 다른 실시예들에서, 제어 구조 및 입력 샘플 RAM에 대한 액세스는, 예를 들어 후입선출을 포함하는, 임의의 다른 특성을 가질 수 있다. 도 70에서, FIFO1(68-221)은 입력 샘플 RAM(68-203)과 함께 배치되는 것으로 도시되어 있고, FIFO2(68-223)은 코히런트 RAM(68-205)와 함께 배치되는 것으로 도시되어 있다. 통상적으로, FIFO1(68-221) 및 FIFO2(68-223)은 그들 각각의 RAM 영역들과 함께 배치되지 않으나, 도 70의 예시에서는 그와 같이 도시되어 있다.
디지털 신호 처리 컴포넌트(67-101)는, 디지털 신호 처리 컴포넌트(67-101)에서 신호 처리 동작들의 시퀀싱을 제어하는 시퀀서(68-217)를 더 포함한다. 시퀀서(68-217)는 개별적인 컴포넌트로 도시되나, 다른 컴포넌트들과 함께 배치될 수 있다. 예를 들어, 아래에 설명된 실시예들에서, 시퀀서(68-217) 기능은 신호 처리 서브시스템(68-213)에 부분적으로 상주하고 FFT 서브시스템(68-215)에 부분적으로 상주한다. 아래에서 SW(68-219)로 나타내어지는 소프트웨어 컴포넌트(68-219)는 시퀀서(68-217)를 제어하고 따라서 채널 RAM(68-207)에 워드들을 저장함으로써, 디지털 신호 처리 컴포넌트(67-101)에서의 신호 처리 동작들을 제어한다. 일 실시예에서, SW(68-219)는 OEM 프로세서(67-105) 및/또는 OEM 메모리(67-107)에 상주하나, 이것이 필요요건은 아니다.
디지털 신호 처리 컴포넌트(67-101)는 RF 컴포넌트(67-103)로부터 디지털화된 RF 데이터 샘플들을 수신한다. 데이터 샘플들은 SVs로부터의 데이터 스트림들의 샘플들이며, 이들 각각은 고유 PRN(pseudorandom noise) 코드를 알려진 방식으로 송신한다. 넓게 말하면, 디지털 신호 처리 컴포넌트(67-101)는 데이터 샘플들을 처리하여 어느 위성이 그들을 송신했는지를 결정하고, 또한 샘플들로부터 천체력 및 달력 정보와 같은 정보를 추출한다. 본 기술분야에서 알려진 바와 같이, 4개의 SVs의 절대 위치 및 수신기로부터의 그들의 상대적 거리들을 수신기가 알고 있으면, 수신기의 위치를 알 수 있다. 디지털 신호 처리 컴포넌트(67-101)는 얼마나 많은 현재 위치 정보가 알려져 있는지에 따라 4개의 모드들중 하나로 데이터 샘플들을 처리한다.
입력 샘플 서브시스템(68-211)은 센더(sender)에 의해 결정되어진 비율로 입력 RF 데이터 샘플을 수신한다. FIFO1의 제어하에서는, 입력 샘플 서브시스템(68-211)은 디지털 신호처리 컴포넌트(digital signal processing component;67-101)의 동작 모드에 좌우되는 방식으로 입력 샘플 RAM(68-203)에 데이터 샘플들을 저장하게 된다. 입력 샘플 RAM(68-203)의 사이즈는 디지털 신호처리 컴포넌트(67-101)의 동작 모드에 의해서도 결정된다. FIFO1의 제어하에서는 신호처리 서브시스템(68-213)은 RAM(68-203)으로부터의 RF 신호들을 온시키는 역할을 담당한다. RF 신호 샘플들에 대해 수행되는 동작들은 신호처리모드에 따라 변동될 수 있다. 예를 들어, 신호처리 서브시스템(68-213)은 신호 샘플들에 대한 데시메이션(decimation)을 수행할 수도 있고, 수행하지 않을 수도 있다. 신호처리 서브시스템(68-213)은 일 실시예에서의 매칭된 필터를 이용하여, 코히어런트 RAM(68-205)에 데이터 샘플들을 일관성있게 축적한다. 코히어런트 축적(coherent accumulation)에 의해 특정 주기 동안 I(위상)와 Q(직각위상;quadrature) 데이터가 효율적으로 축적된다. 일관성있게 축적된 데이터 샘플들은 FFT 서브시스템(68-215)에 의해 코히어런트 RAM(68-205)으로부터 추출되어 FFT 처리된다. 코히어런트 RAM(68-205)의 사이즈는 디지털 신호처리 컴포넌트(67-101)의 동작 모드에 의해서도 결정된다.
어느 상태에서는 수신기의 위치에 대한 정보가 거의 혹은 전혀 알려지지 않을 수 있다. 이러한 경우에는 어느 SV들이 수신기에 대해 가시적이 되는지에 대한 정보가 거의 없거나 전혀 없게 되므로, 이용가능한 시간 정보가 정확하지 않게 된다. 이러한 상태에서는 디지털 신호처리 컴포넌트(67-101)는 "콜드 스타트(cold start)" 모드에서 데이터 샘플들을 처리하게 된다. 콜드 스타트 모드에서는, 저감도(low degree of sensitivity) 혹은 해상도로 가능한 한 신속히 데이터가 처리된다. 이는 SV 신호에 대한 서치 스페이스가 매우 크기 때문이며, 초기 취득 위상(initial acquisition phase)을 집중시킬 수 있는 현재의 데이터는 전혀 없다. 콜드 스타트 모드에서는, 코히어런트 축적이 전혀 발생하지 않으며, 데이터 샘플들은 선호 처리 서브시스템(68-213)으로부터 경로(68-222)를 통해 FFT 서브시스템(68-215)에 바로 전송된다.
콜드 스타트 모드 이외의 다른 모드에서는, FFT 서브시스템(68-215)은 코히어런트 RAM으로부터의 특정 개수의 데이터 샘플들을 취득하여 이들 샘플들에 대한 FFT 조작(operation)을 수행한다. 콜드 스타트 모드에서는, FFT 서브시스템(68-215)은 SS2(68-213)로부터 바로 코히어런트 데이터 샘플들을 처리한다. SS3 (68-215)는 특정 처리 모드에 의해 지시(dictate)되고 있는 다수의 주파수를 생성한다. 일례로서, 8 샘플, 16 포인트 FFT의 경우, FFT는 16개의 주파수를 생성하게 된다. 16개의 주파수 전부다가 중요한 것은 아닐 수도 있다. 예를 들어, 외측의 주파수(outer frequencies)는 이용가능하지 않을 수도 있다. 주파수의 수는 프로그램 가능하다. 원하는 주파수가 선택되어 보다 밀한 형태(compact form)로 팩킹(pack)된 후, 백엔드 스토리지 RAM(backend storage RAM; 68-209)의 넌코히어런트 합산 영역(noncoherent summation(NCS) 영역에 저장되어 넌코히어런트 데이터 즉, I와 Q데이터로부터 유도된 크기가 축적된다. 아래에 보다 구체적으로 설명하고 있는 바와 같이, 백엔드 스토리지 RAM(68-209)은 피크값 혹은 피크들(peaks)의 저장에도 이용된다. 일 실시예에서, 가장 큰 8개의 값이 저장되며, 그 데이터들이 데이터 스트름의 어디에서 발생한 것인지, 예를 들어, 코드 오프셋이 무엇인지 그리고 주파수 오프셋이 무엇인지에 대한 정보 또한 저장된다. 트랙 이력(TH) 정보는 SW(68-219)에 의한 검사동안 저장되는 선택된 코히어런트 데이터이다. 일 실시예에서, TH 정보는 개더 모듈(gather module)의 출력이다. 개더 모듈은 FFT 서브시스템(68-215)의 주파수 출력들 중에서 선택되며, 원하지 않는 주파수들은 폐기된다. 개더 모듈은 코히어런트 형태의 데이터를 유지하고 잇다. SW (68-219)는 TH 정보의 검사를 통해 신호처리 컴포넌트(67-101)의 구성에 관한 정보를 결정할 수 있다. 백엔드 스토리지 RAM(68-209)의 사이즈는 신호처리 컴포넌트(67-101)의 동작 모드에 의해서도 결정된다.
T1, PDI, 컨텍스트를 포함하여 처리에 관한 사안(epochs)들의 설명을 위해 본 명세서에서는 다양한 용어들이 사용되고 있다. T1은 밀리초 단위의 주기(time period)이고, 채널의 코히어런트 축적기(coherent accumulator)의 코히어런트 축적을 특정하고 있다. 하나의 T1의 길이는 프로그램 가능하며 동작 모드에 따라 변경된다. 예를 들어, 일부 모드에서는 보다 약한 신호(weaker signal)를 예상하여 보다 긴 주기 동안 축적하는 것이 바람직할 수도 있다. 따라서, 신호처리 서브시스템(68-213)은 하나의 T1 베이스에 대한 축적을 행한다.
PDI는 T1들의 프로그램 가능한 수이다. FFT 서브시스템(68-215)에 한번에 공급되는 T1의 수는 PDI를 구성하게 된다. PDI내의 T1의 수는 FFT 서브시스템(68-215)이 특정 모드에서 데이터를 어떻게 처리하도록 구성되었는지에 따라 결정된다. 전술한 바와 같이, 신호처리 서브시스템(68-213)은 T1 베이스에 대해 간섭적으로 축적을 행한다. 그러나, FFT 서브시스템(68-215)은 PDI 베이스의 데이터에 대한 조작을 수행한다. 따라서, FFT 서브시스템(68-215)은 완전한 PDI가 이용가능한 경우 코히어런트 RAM(68-205)으로부터 데이터를 가져올 뿐이다. 예를들어, FFT 서브시스템(68-215)이 5-샘플, 16포인트, 제로-패드화 FFT(zero-padded FFT)으로 구성된다면, FFT 서브시스템(68-215)은 코히어런트 RAM(68-205)으로부터 데이터를 가져오기에 앞서 5샘플 혹은 T1들이 완료되어 코히어런트 RAM(68-205)에 저장되기를 대기한다.
다양한 서브시스템을 이용하여 상이한 채널간의 시간 다중화가 행해진다. 본 명세서에서 사용되고 있는 컨텍스트(context)는 특정 채널의 처리를 위해 서브시스템을 이용함을 나타내기 위한 것이다. 예를 들어, 어느 특정 채널의 경우, 컨텍스트는 채널이 신호처리 서브시스템(68-213)에 진입(enter)할 경우에 개시되며, 그 채널이 신호처리 서브시스템(68-213)을 나갔을 경우에 종료된다. 이러한 점들은 신호처리 서브시스템(68-213)은, 입력 샘플 RAM(68-203)으로부터의 데이터를 소모하면서, 프로그램된 수초 동안 수행된 후, 중지할 것이며, 컨텍스트가 종료할 것임을 의미하고 있다.
전술한 바와 같이, SW(68-219)는 신호처리 컴포넌트(67-101)의 조작을 제어하는 채널 RAM(68-207)의 워드(words)들을 저장한다. 저장된 워드들은 채널 레코드를 구성한다. 일 실시예에서, 채널 레코드들은, 다양한 형태의 데이터이지만, 기본적으로는 신호처리 컴포넌트가 사용될 채널 특정 데이터 모두를 담고 있는 각각 128개의 라인들이다. 채널 레코드는 SW68-219로부터의 프로그래밍 정보, 로드 타입 정보, 사이즈 파라미터들, 입력 샘플 RAM(68-203), 코히어런트 RAM(68-205), 백엔드 스토리지 RAM(68-209) 및 그리고 그 특정 채널에 대한 RAM(68-201)의 다른 영역들에 대한 사이즈 할당값을 포함하고 있다. 또한, 코드 위상(code phase), 반송파 위상(carrier phase), 반송파 주파수(carrier frequency), 가속(acceleration), 그리고 단일 채널에 대한 기타 처리 파라미터 전부를 포함하고 있다. 채널 RAM(68-207)은 채널의 "스크래치패드(scratchpad)" 정보를 저장하는 스크래치 영역도 포함하고 있다. 스크래치패드 데이터는 스크래치패드 영역의 어느 이용가능한 부분에 하나의 채널씩 기록되며, 또 다른 채널(동일 채널일 수도 있음)이 그 스크래치패드 내에 기록되는 경우에는 나중 것이 덮어쓰기 되어 버린다. 스크래치패드 정보는 하나의 컨텍스트로부터 다음 컨텍스트로의 채널의 카운터를 포함하고 있다. 신호처리 서브시스템(68-213)과 FFT 서브시스템(68-215)을 사용함으로써 서로 다른 채널들 사이에서 시간 다중화가 행해지면, 각각의 채널은 자신들의 상태(state)를 유지해두어야 한다.
채널 RAM(68-207)은 SW(68-219)에 의해 초기화되지만, 그 후, 신호처리 서브시스템(68-213), FFT 서브시스템(68-215) 그리고, 가끔은 SW(68-219)에 의해 갱신된다. 예를 들어, 단일 신호처리 서브시스템(68-213), FFT 서브시스템(68-215) 및 SW(68-219)간의 통신에 사용되는 채널 RAM(68-207)내의 시임포어 워드(seamphore word)가 그러한 경우이다. 시임포어 워드는 신호처리 서브시스템(68-213), FFT 서브시스템(68-215) 및 SW(68-219)간의 통신을 동기화하기 위한 메카니즘이며, 반-비동시적 방식(semi-asynchronous)으로 작용한다.
채널 레코드들은 입력 샘플 RAM(68-203), 코히어런트 RAM(68-205), 백엔드 스토리지 RAM(68-209)를 포함한 다양한 RAM들 내의 위치에 포인터를 포함하고 있는 리스트들에 기본적으로 링크된다. 따라서, 채널 레코드들은 컨텍스트에 대해 동적으로 할당된 RAM(68-201)의 구성을 저장하고 있다. 제1 채널 레코드 엔트리(entry)는 다음 채널 레코드의 포인터이다. 컨텍스트가 개시되는 경우, 채널 RAM이 액세스되어 동작 모드와 그 컨텍스트에 대한 RAM 할당을 결정한다. 컨텍스트가 대략 완료되면, 갱신된 채널 정보가 채널 레코드에 기억되고, 처리는 현재 채널 레코드의 엔트리에 의해 지시되는 다음 채널 레코드의 컨텍스트에 의해 지속된다. 채널 레코드는 현재의 카운트값과 상태들, 코드 위상 정보(code phase information), 그리고 입력 데이터 샘플들에 관련된 시간 할당값(time alignments)도 포함하고 있다.
채널이 개시되면(initiate), 신호처리 서브시스템(68-213)의 시퀀서(313a)(도 71에 도시되어 아래에 설명됨)는 채널 RAM(68-207)을 액세스하며, 그 특정 채널의 처리를 위해 신호처리 서브시스템(68-213)에 요구되는 채널 파라미터들을 가져오게 된다. 시퀀서(313a)는 매칭된 필터, 코히어런트 축적기 등과 같은 신호처리 서브시스템(68-213)의 다양한 신호처리요소(도시생략)들을 그 채널의 처리에 요구되는 파라미터를 이용하여 프로그램하게 된다. 예를 들어, 파라미터들은 매칭된 필터들이 처리를 수행하기 위한 수 밀리초를 결정한다. 매칭된 필터들이 최종 처리인 경우, 매칭된 필터들은 종결처리되는 시퀀서(313a)에 신호하게 되며, 그 시퀀서(313a)는 다음 채널로 진행하게 된다.
채널 RAM(68-207)은 다음 채널의 채널 RAM 등의 위치를 저장하고 있는 링크된 리스트(linked list)를 포함하고 있다.
FFT 서브시스템(68-215)은 데이터를 어떻게 처리할 것인지를 결정하기 위해 채널 RAM을 액세스하는 시퀀서(313a)(도 71에 도시되어 있으며 후술됨)도 포함하고 있다. FIFO2(68-223)는 FFT 서브시스템(68-215)과 신호처리 서브시스템(68-213) 모두에 대해 코히어런트 RAM(68-205)으로의 액세스를 제어한다. 예를 들어, FIFO2(68-223)은 코히어런트 RAM(68-205)에 온(ON) 동작을 위한 데이터가 있는 경우에는 FFT 서브시스템(68-215)에 통지하게 된다. FIFO2(68-223)는 FFT 서브시스템(68-215)이 아직 사용되지 않았다고 하는 데이터의 중복이 거의 발생하게 될 경우를 신호처리 서브시스템(68-213)이 알 수 있도록 해준다.
도 69는 조정부(arbitration unit;69-237)를 포함하며, 부가 요소(additional elements)를 나타내는 신호처리 컴포넌트(67-101)의 실시에 대한 블록도이다. 입력 샘플 서브시스템(69-311)과 신호처리시스템(69-313)은 메모리 서브시스템 혹은 RAM(69-301)을 FIFO1(69-321)의 제어하에 액세스하게 된다. 일 실시예에서, 신호처리 서브시스템(69-313)에 대한 시퀀서의 기능성(functionality)은 SS2 시퀀서(69-313a)의 신호처리 서브시스템(69-313)에 따라 배치된다(collocate). 시퀀서(69-313a)의 기능중 하나는 RAM(69-301)의 채널 RAM 영역에 액세스하여 채널 파라미터를 읽어내고, RAM(69-301)의 채널 RAM 영역에 다시 갱신된 채널 파라미터를 기록하는 것이다.
신호처리 서브시스템(69-313)과 FFT 서브시스템(69-315)은 FIFO2(69-323)의 제어하에 RAM(69-301)을 액세스한다. 일 실시예에서, FFT 서브시스템(69-315)에 대한 시퀀서의 기능성은 SS3 시퀀서(69-315a)의 FFT 서브시스템(69-315)에 따라 배치된다. FIFO1(69-321), SS2 시퀀서(69-313a), FIFO2(69-323), 및 SS3 시퀀서(69-315a)는 RAM(69-301)로의 액세스를 위해 조정부(69-327)와 통신한다.
조정부(69-327)는 SW(69-319)에 의한 RAM(69-301)으로의 액세스를 위해 CPU 브리지(69-325)를 통해 SW 컴포넌트(69-319)와 추가로 통신한다.
입력 샘플 서브시스템(69-311)은 액세스 요구를 FIFO1(69-321)을 통해 RAM(69-301)에 전송하며 조정부(69-327)로부터 승인 신호(grant signal)를 수신한다. 승인 신호가 입력 샘플 서브시스템(69-311)에 의해 수신된 후, 입력 샘플 데이터의 저장을 나타내는 FIFO1(69-321)에 어드레스를 보내게 되며, 입력 샘플 서브시스템은 RAM(69-301)에 입력 샘플 데이터를 저장하게 된다.
신호처리 서브시스템(69-313)이 입력 데이터 샘플들의 처리를 모색하는 경우에는, 그 서브시스템은 액세스 요구를 RAM(69-301)의 입력 샘플 영역에 전송하며 조정부(69-327)로부터 승인 신호를 수신한다. 신호처리 서브시스템(69-313)에 의해 승인 신호가 수신된 후, 그 서브시스템은 RAM(69-301)으로부터 데이터 샘플들을 수신한다. 신호처리 서브시스템(69-313)이 RAM(69-301)의 코히어런트 RAM 영역의 처리된 코히어런트 데이터 저장을 모색하는 경우, 그 서브시스템은 요구 신호를 FIFO2(69-323)를 통해 조정부(69-327)에 전송한다. 채널 레코드로부터, 시퀀서(69-313a)는 코히어런트 데이터를 저장하게 될 적절한 어드레스를 결정한다. 신호처리 서브시스템(69-313)은 조정부(69-327)로부터 승인 신호를 수신하고, 저장 어드레스들은 저장될 코히어런트 데이터로서, 신호처리시스템에 의해 RAM(69-301)에 전송된다.
FFT 서브시스템(69-315)이 코히어런트 데이터 처리를 모색하는 경우, 그 서브시스템은 RAM(69-301)의 코히어런트 데이터 영역으로의 액세스 요구를 FIFO2(69-323)를 통해 조정부(69-327)에 전송한다. 요구가 승인되면, 채널 레코드로부터 다시 알려진 어드레스가 RAM(69-301)의 코히어런트 데이터 영역에 전송되며, 코히어런트 데이터가 FFT 서브시스템(69-315)에 판독된다.
SW(69-319)는 신호처리 컴포넌트(67-101)의 조작을 지시하고 있는 채널 RAM 영역의 레코드들을 기록하기 위해 조정부(69-327)를 통해 RAM(69-301)으로의 액세스를 요구한다. SW(69-319)는 TH 데이터, 보고 데이터, 서브시스템의 상태를 나타내는 에러 데이터 등의 데이터를 읽어서 채널 RAM의 채널 레코드를 통한 신호처리 컴포넌트(67-101)의 진행 중인 프로그래밍을 위한 토대(basis)를 제공하기 위해 조정부(69-327)를 통해 RAM(69-301)으로의 액세스를 추가로 요구한다.
도 70은 조정부(70-427)를 나타내는 블록도이며, 일 실시예에서의 RAM(70-401)을 액세스하기 위한 서로 상이한 엔터티들의 우선순위 할당(priority assignments)을 나타내고 있다. CPU 브리지(70-425)를 통해 RAM(70-401)에 액세스하는 OEM 프로세서(70-405)는 최고의 우선순의 혹은 0순위(priority 0)를 갖고 있다. 우선순위들은 보다 낮은 숫자가 보다 높은 우선순위를 나타내는 것으로 임의로 기재하고 있지만 다른 어떠한 지정도 가능하다. 입력 샘플 서브시스템(704-411)은 그다음 최고 순위인 1을 갖는다. 입력 샘플 서브시스템(70-411)은 그 제어하에 있지 않은 비율로 RF 데이터 스트림을 수신하기 때문에, 입력 샘플 서브시스템(70-411)은 다른 서브시스템들 보다는 그 자신의 처리 속도를 제어할 수 있는 능력이 떨어진다. 따라서, RAM(70-401)로의 액세스를 위한 높은 순위가 할당된다.
신호처리 서브시스템(70-413)에는 그 시퀀스로부터 액세스 요구에 대한 우선순위 2, RAM(70-401)의 입력 샘플 영역으로부터의 입력 데이터 샘플들을 판독하기 위한 FIFO1(70-421)을 통한 액세스 요구에 대한 우선순위 5, 그리고, 코히어런트 데이터를 RAM(70-401)의 코히어런트 데이터 영역에 기록하기 위한 FIFO2(70-423)를 통한 액세스 요구에 대한 우선순위 6이 할당된다.
FFT 서브시스템(70-415)에는 그 자신의 시퀀스로부터의 액세스 요구에 대한 우선순위 3, RAM(70-401)의 코히어런트 데이터 영역으로부터 코히어런트 데이터를 판독하기 위한 FIFO2(70-423)를 통한 액세스 요구에 대한 우선순위 4, NCS를 기록하기 위한 우선순위 7, 그리고 RAM(70-401)의 NCS 영역으로의 보고 데이터가 할당된다.
도 71은 FIFO1(71-521)의 블록도로서, 입력 샘플 RAM(68-203)으로의 액세스 제어시에 발생하는 일부 신호 처리(signalling)를 나타내고 있다. 도 71의 좌측 그리고, 도 70을 참조하면, 입력 샘플 서브시스템(68-211)은 입력 데이터 샘플들의 저장을 위해 RAM(68-201)의 입력 샘플 RAM 영역(68-203)으로의 액세스를 요구하고 있다. 신호처리 서브시스템(68-213)은 출력 데이터 샘플들이 판독을 위해 RAM(68-201)의 입력 샘플 영역(68-203)으로의 액세스를 요구하고 있다.
입력 샘플 서브시스템(68-211)은 SS1 Req Insamp 신호를 FIFO1(71-521)에 전송하여 입력 데이터 샘플들의 기록을 요구하고 있다. FIFO1(71-521)은 Req Ack 신호를 통해 수신을 확인한다. 입력 샘플 서브시스템(68-211)은 랩 카운트(wrap count;71-501)와 스타트 블록수(71-503)을 FIFO1(71-521)에 전송한다. 콜드 스타트 모드를 제외하고는, 신호처리 컴포넌트의 조작 모드에 적용가능한 환형 버퍼 모드(circular buffer mode)에서는, 입력 샘플 RAM(68-203)이 채워질 때까지 기록되고 그 후, 중복 기록된다. 일 실시예에서, 입력 샘플 RAM(68-203)은 아래에서 위로 채워진다. 입력 샘플 RAM(68-203)이 채워지면, 아래에서 오버라이팅(overwriting)이 개시된다. 랩 카운트(71-501)는 입력 샘플 RAM(68-203)이 채워지고 오버라이팅이 시작될 때 마다 증가한다. 스타트 블록 번호(71-503)는 입력 데이터 샘플들의 블록의 시작을 나타내고 있다. 스타트 블록 번호(71-503)는 입력 샘플 서브시스템(68-211)으로부터 로드 신호, SS1 로드에 의해 수정된다. 로드 신호를 통해 기록 동작이 개시된다. 블록에 기록이 완료되면, FIFO1은 Incr 신호를 통해 블록 카운트(71-503)을 증가시킨다. 입력 샘플 서브시스템(68-211)으로부터의, 기록 라인은 블록내의 7-비트 라인이며, FIFO1으로의 기록 동안 FIFO1에 기록된다.
도 73의 우측과, 도 70을 참조하면, 신호처리 서브시스템(68-213)은 SS2 Req Sig Proc 신호를 통해 입력 샘플 RAM(68-203)의 데이터 샘플들의 액세스를 요구한다. FIFO1(71-521)은 Req Ack 신호를 통해 그 요구를 승인한다. 신호처리 서브시스템(68-213)은 랩 카운트(71-505), 스타트 블록 카운트(71-506), 및 라인 번호(71-507)를 FIFO1(71-521)에 전송한다.
콜드 스타트 모드를 제외하고는, 신호처리 컴포넌트의 조작 모드에 적용 가능한 서큘러 버퍼 모드(circular buffer mode)에서는, 입력 샘플 RAM(68-203)이 채워질 때까지 기록되고 그 후, 중복 기록된다. 랩 카운트(71-505)는 입력 샘플 RAM(68-203)이 채워지고 오버라이팅이 시작될 때 마다 증가한다. 스타트 블록 번호(71-506)는 입력 데이터 샘플들의 블록의 시작을 나타내고 있다. 스타트 블록 번호(71-506)는 신호처리 서브시스템(68-213)으로부터 로드 신호, SS2 로드에 의해 수정된다. SS2 로드 신호를 통해 판독 동작이 개시된다.
FIFO1(71-521)은 오버플로와 언더플로 신호를 시퀀서(68-217)에도 전송한다. 신호처리 서브시스템(68-213)이 아직 기록이 완료되지 않은 위치로부터의 데이터 판독을 시도하고 있는 경우에는 언더플로가 발생한다. 언더플로가 발생하면, 신호처리 서브시스템(68-213)은 대기 혹은 일시 중지해야 한다. 순환 기록 모드의 경우, 입력 샘플 RAM(68-203)의 위에 도달하여 기록 포인터가 다시 아래로 향해 중복 기록이 시작되고, 신호처리 서브시스템(68-213)이 중복 기록될 것인지 혹은 이미 오버라이팅이 된 것인지에 대한 데이터의 판독을 아직 완료하지 못한 경우에는 오버플루우가 발생한다. 입력 샘플 서브시스템(68-211)에 의해 수신된 데이터의 스트리밍 성질 때문에, 오버플로 상태가 탐지될 수는 있지만 방지는 할 수 없다. 일 실시예에서, 채널의 처리 도중에 오버플로가 발생하면, "양호(good)" 데이터가 다시 입수될 때까지 "garbage" 혹은 무효(invalid)가 처리된다. 채널이 초기화되고 있고, 오버플로가 발생할 경우, 에러 신호가 SW(68-219)로 보내지고, 채널이 셧다운되며, SW(68-219)는 어떻게 처리할 것인지를 결정하게 된다.
FIFO1(71-521)의 위를 참조하면, FIFO1은 요구 신호(71-540), 어드레스 신호(71-542) 및 승인신호(acknowledge signal;71-544)를 이용하여 RAM(68-201)과 통신하게 된다.
도 71, 도 72, 도 73 및 도 74는 신호처리 컴포넌트(67-101)의 구성을 예시하는 도면이며, 그 구성은 1 실시예의 다양한 조작 모드들에 대한 메모리 할당을 포함하고 있다. 예시되고 있는 조작 모드들은 콜드 스타트 모드, 코어스 획득 모드(coarse acquisition mode), 핫 스타트 모드, 트랙킹 모드를 포함하고 있다.
콜드 스타트 모드는 그 자신의 위치에 관하여 신호처리 컴포넌트(67-101)에 이용가능한 정보가 적거나 전혀 없는 경우에 적용할 수 있다. 예를 들어, 신호처리 컴포넌트(67-101)가 최종 획득 GPS 위성들의 어느 위치로부터 멀리 떨어져 이동된 휴대용기기에 인스톨된 경우라면, 어느 위성들이 육안으로 볼 수 있는 것인지 알 수가 없다. 따라서, 매우 광범위하면서도 저감도로 위성에 대한 서치가 수행되며, 다량의 데이터 처리가 필요하다.
코어스 취득 모드는 신호처리 컴포넌트(67-101)의 위치에 관한 정보를 어느 정도 알고 있는 경우에 적합하다. 전형적으로, 적어도 일부의 가시 위성의 ID는 알려져 있다.
핫 스타트 모드는 신호처리 컴포넌트(67-101)가 자신의 위치에 관해 매우 양호한 정보를 갖고 있는 경우에 적합하다. 예를 들어, 신호처리 컴포넌트는 지난 하루 동안 내비케이트하여 대략 100 mi 반경 내에 자신의 위치를 확립하였을 수도 있다. 또는, 외부의 소스로부터 추산위치 데이터(ephemeris data)와 위성 시각을 제공받을 수도 있다.
트랙 모드는 신호처리 컴포넌트(67-101)가 자신의 위치에 관하여 우수한 정보를 보유하고 있고 자신이 이미 확보한 위성들에 대한 트랙킹을 하고 있는 경우에 적합하다. 트랙 모드에서는 더욱 많은 신호처리 컴포넌트(67-101)의 기능을 턴오프할 수 있으므로 전력을 덜 소비하게 된다.
도 73에서는 콜드 스타트 모드에서의 메모리 할당을 포함하여 신호처리 컴포넌트(67-101)의 구성을 예시하고 있다. 콜드 스타트 모드에서는 코히어런트 RAM 영역이 존재하지 않는다. 가용 RAM 영역은 스냅샷으로서 사용되는 비교적 큰 입력 샘플 버퍼(72-603) 또는 원샷(one-shot) 입력 샘플 RAM을 포함한다. 일 실시예에서, 입력 샘플 RAM(72-603)의 사이즈는 대략 100Kbyte이다. 앞서 설명한 바와 같이, 입력 샘플 RAM(72-603)은 원샷 방식으로 사용된다. 입력 샘플 RAM(72-603)이 충만되면, RF 입력은 더이상 수신되지 않으며, 후술하는 바와 같이 각종의 서브시스템이 복수회에 걸쳐 이 입력 샘플 RAM(72-603) 내의 데이터에 대해 조작을 수행한다. 이로 인해, 입력 샘플 RAM(72-603)이 충만된 후 RF 수신기를 턴오프시키는 것이 가능하게 되므로 전력 소모를 줄일 수 있게 된다.
입력 샘플 서브시스템(72-611)은 FIFO1(72-621)의 제어하에 입력 샘플 RAM(72-603)에 입력 데이터 샘플들을 기록한다. 신호처리 서브시스템(72-613)은 FIFO1(72-621)의 제어하에 입력 샘플 RAM(72-603)으로부터 입력 데이터 샘플들을 판독한다. 신호처리 서브시스템(72-613)은 입력 데이터 샘플들을 처리한 후 이들을 코히어런트 데이터로서 FFT 서브시스템(72-615)에 다이렉트로 전송한다.
특별히 가능한 위성의 경우(이것을 SV1이라고 한다)에는 입력 샘플 RAM(72-603)에 저장된 데이터를 가능한 전체 발진기 범위와 도플러 범위뿐만 아니라 SV1이 가질 수 있는 매 주파수마다 재처리하거나 리플레이한다. 입력 샘플 RAM(72-603) 내의 입력 샘플 데이터는 각 위성당 20회만큼 리플레이될 수 있다. 그 후, 이 데이터는 넌코히어런트 가산 데이터를 저장하는 백엔드 스토리지 RAM(72-609)에 전달된다. 백엔드 스토리지 RAM(72-609)는 NCS 데이터 "스크래치" 영역과 피크 영역을 포함한다. 이 스크래치 영역에는 주기적인 방식으로 넌코히어런트 데이터가 저장되며 이 영역은 콜드 스타트 모드 이외의 다른 모드에서 동작하는 채널들과 공유될 수 있다. 각 위성에서 8개의 최대 피크는 피크 영역에 저장된다. 일 실시예에서 백엔드 스토리지 RAM(72-609)는 스크래치 NCS 영역에 대략 8Kbyte를 포함하며 대략 50개의 피크를 저장하는 피크 영역에 대략 2.4Kbyte를 포함한다. 하나의 채널이 완료되면, SW(68-219)는 피크 리스트를 검토하여 어떤 피크가 신호를 표현하는 것인지를 판단하여 그것들만을 검증용으로 선택한다. 거부된 피크들이 제거된 피크 공간에는 새로운 피크들이 채워진다.
일례로서, 콜드 스타트 모드에서의 신호처리 컴포넌트(67-101)의 구성은 근사값의 파라미터로서, 1밀리초의 PDI, 4KHz의 처리시간당 주파수 커버리지, 및 28dbHz의 감도 또는 분해능을 포함할 수 있다.
도 73은 코어스 취득 모드에서 메모리 할당을 포함하여 신호처리 컴포넌트(67-101)의 구성을 도시한 블록도이다. 코어스 취득 모드에서 메모리의 가장 큰 부분이 백엔드 스토리지 RAM(73-709)에 할당되며 입력 샘플 RAM(73-703)은 상대적으로 작다. 예를 들어, 일 실시예에서 입력 샘플 RAM(73-703)은 대략 0Kbyte의 사이즈를 갖는다. 즉, 입력 샘플 RAM(73-703)은 쑈트 서큘러 버퍼로서 사용된다. 코히어런트 데이터 샘플들을 저장하는 코히어런트 샘플 RAM(73-705)은 스크래치 버퍼로서 사용된다.
입력 샘플 서브시스템(73-711)은 입력 데이터 샘플을 수신하여 이들을 입력 샘플 RAM(73-703)에 저장한다. 코어스 취득 모드에서는 전형적으로 하나 또는 2개의 가시 위성이 알려져 있다. 따라서, 이들 알려진 위성들은 동시에 서치 가능하다. 신호처리 서브시스템(73-713)은 입력 샘플 데이터를 처리하며 하나의 주파수/위성 조합을 나타내는 7밀리초의 데이터로 코히어런트 샘플 RAM(73-705)을 채워넣는다. FFT 서브시스템(73-715)은 코히어런트 샘플 RAM(73-705)에 저장되어 있는 코히어런트 데이터를 조작하여 그 결과의 NCS 데이터를 백엔드 스토리지 RAM(73-709)에 저장한다. NCS 데이터에 관련된 피크들도 백엔드 스토리지 RAM(73-709)에 저장된다. 이 모드에서, 백엔드 스토리지 RAM(73-709)은 채널들 사이에서 공유되지만, 채널마다 서로 다른 영역이 NCS 데이터에 지정된다는 점에서 백엔드 스토리지 RAM(73-709)은 "전용 NCS" 스토리지이다. NCS1 데이터는 채널1에 의해 전용되며, NCS2 데이터는 채널2에 전용된다.
코어스 취득 모드에서는 가능한 한 많은 메모리가 백엔드 스토리지 RAM(73-709)에 할당되는데, 이것은 OEM 프로세서가 보다 많은 NCS 데이터에 대한 조작을 수행하기 때문이다. 일례로서, 콜드 스타트 모드에서의 신호처리 컴포넌트(67-101)의 구성은 근사값의 파라미터로서, 7밀리초의 PDI, 750Hz의 처리시간당 주파수 커버리지, 및 20dbHz의 감도를 포함할 수 있다. 코어스 취득 모드에서, 입력 샘플 RAM(73-703)은 PDI보다 크며, 코히어런트 RAM(73-705)은 PDI보다 크다. 본 명세서에서 PDI보다 크다 또는 작다라는 의미는, 할당되는 메모리 공간이 PDI 기간에서 처리될 수 있는 데이터량보다 많은 또는 적은 양의 데이터를 저장한다는 것이다.
도 74는 핫 스타트 모드에서 메모리 할당을 포함하여 신호처리 컴포넌트(67-101)의 구성을 도시한 블록도이다. 핫 스타트 모드에서, 풀 코드 페이즈 서치는 필요하지 않다. 이 모드에서는, 콜드 스타트 모드나 코어스 취득 모드의 경우보다 훨씬 위치가 잘 알려져 있다. 예를 들어, 시간 불확실성은 대략 1밀리초이다. 위치 불활실성은 셀룰러 네트워크에서의 셀 사이트 반경이다. 초기 위치 불활실성을 좁이기 위해 추가의 정보를 이용할 수도 있다.
핫 스타트 모드에서, 입력 샘플 RAM(74-803)은 비교적 쇼트 서큘러 버퍼이다. 예를 들어, 입력 샘플 RAM(74-803)은 5Kbyte 내지 20Kbyte의 메모리이다. 핫 스타트 모드에서, 입력 샘플 서브시스템(74-811)은 입력 데이터 샘플을 수신하여 이들을 서큘러 버퍼 방식으로 입력 샘플 RAM에 저장한다. 신호처리 서브시스템(74-813)은 입력 샘플 데이터를 처리한 후 이것을 코히어런트 RAM(74-805)에 저장한다. 이 모드에서, 코히어런트 RAM(74-805)은 각 위성에 대해 할당된 다수의 소영역을 구비하고 있다. 또한, 코히어런트 RAM(74-805)은 스크래치패드 또는 스크래치 영역을 포함하는데, 이 영역은 핫 스타트 모드 이외의 다른 모드에서도 각종 채널들에 의해 동시에 이용될 수 있다. 전술한 바와 같이, 스크래치패드 데이터는 스크래치패드 영역의 임의의 가용 영역에서 하나의 채널 단위로 기록되며, 다른 채널(또는 동일 채널일 수도 있음)이 이 스크래치패드 영역에 나중에 기록하는 경우에 재기록된다. 이와 대조적으로, 전용 영역은 하나의 SV에 관련된 데이터만 기록 또는 재기록될 수 있다.
코히어런트 RAM(74-805)의 영역들을 개별 위성들마다 전용화함으로써 입력 샘플 버퍼(74-803)를 소형화할 수 있고 여전히 상대적으로 큰 PDI를 동작시킬 수 있다. 이 모드에서, 입력 샘플 RAM(74-803)은 PDI보다 작을 수 있다. FFT 서브시스템(74-815)은 코히어런트 RAM(74-805)으로부터의 코히어런트 데이터를 처리하며 백엔드 스토리지 RAM(74-809)에 전용화 방식으로 저장되는 NCS 데이터를 출력한다. 즉, 백엔드 스토리지 RAM(74-809)은 개별 위성들에 대해 전용 영역 NCS1, NCS2 등으로 분할된다. 백엔드 스토리지 RAM(74-809)은 전용화되지 않고 다른 모드에서도 동시에 다른 채널들에 의해 사용될 수 있는 스크래치 영역을 포함한다. 백엔드 스토리지 RAM(74-809)은 또한 각 SV 마다의 피크를 저장하기 위한 전용 피크 영역을 포함한다. 일례로서, 콜드 스타트 모드에서의 신호처리 컴포넌트(67-101)의 구성은 근사값의 파라미터로서, 10밀리초 또는 20밀리초의 PDI, 750Hz의 처리시간당 주파수 커버리지, 및 15dbHz 내지 12dbHz의 감도를 포함할 수 있다.
도 75는 트랙 모드에서의 메모리 할당을 포함하여 신호처리 컴포넌트(67-101)의 구성을 도시한 블록도이다. 트랙 모드에서는 신호처리 컴포넌트(67-101)가 자신의 위치에 관하여 우수한 정보를 보유하고 있으며 자신이 이미 확보한 위성들에 대한 트랙킹을 하고 있다. 트랙 모드에서는 더욱 많은 신호처리 컴포넌트(67-101)의 기능을 턴오프할 수 있으므로 전력을 덜 소비하게 된다.
트랙 모드에서, 입력 샘플 RAM(75-903)은 상대적으로 작다. 예를 들어, 일 실시예에서 입력 샘플 RAM(75-903)은 대략 20Kbyte의 메모리이다. 입력 샘플 RAM(75-903)은 예를 들어 대략 5밀리초의 PDI보다 작다. 입력 샘플 서브시스템(75-911)은 입력 샘플 RAM(75-903)에 입력 데이터 샘플들을 서큘러 버퍼 방식으로 저장한다. 신호처리 서브시스템(75-913)은 입력 샘플 RAM(75-903)으로부터의 입력 데이터 샘플을 처리한 후 이들을 PDI보다 큰 코히어런트 RAM(75-905)에 저장한다. 코히어런트 RAM(75-905)은 서로 다른 모드의 채널들 사이에서 동시에 공유될 수 있는 스크래치 영역과 각 위성 단위로 코히어런트 데이터를 저장하기 위한 전용 영역을 포함한다. FFT 서브시스템(75-915)은 코히어런트 RAM(75-905)으로부터의 코히어런트 데이터를 처리한 후 NCS 데이터를 백엔드 스토리지 RAM(75-909)에 저장한다. FFT 서브시스템(75-915)은 또한 신호처리 서브시스템(75-913)에 해당 신호의 데이터 바운더리 등의 데이터를 패드백하여 이것이 트랙킹 조정을 위한 기초로서 평가 및 사용될 수 있도록 한다.
백엔드 스토리지 RAM(75-909)은 서로 다른 모드에 있는 채널들 사이에서 동시에 공유될 수 있는 스크래치 영역과 전용 피크 영역, 및 후술하는 각종의 데이터를 저장하고 있는 트랙 히스토리(TH) 영역을 포함한다. 전용 NCS 영역은 각 위성의 NCS 데이터를 전용화된 방식으로 저장하며, 전용 피크 영역은 각 위성의 피크를 전용화된 방식으로 저장한다.
트랙 모드에서는 다른 모드에서는 저장되지 않는 추가의 TH 출력 데이터를 저장한다. 이 TH 데이터는 여러가지 방식으로 이용된다. 예를 들어, 이 TH 데이터는 하드웨어 트랙커(도시 생략)에 의해 이용되는 코히어런트 데이터를 포함한다. 하드웨어 트랙커는 코히어런트 데이터를 조사하여 올바른 신호가 트랙킹되고 있는지를 확인한다. 여기서, 필요에 따라 SW(68-219) 및 채널 RAM을 통한 조정이 수행될 수도 있다. 트랙 모드에서도, 추가의 데이터를 백엔드 스토리지 RAM(75-909)에 선택적으로 저장함으로써 작은 검색창이 오픈 상태로 유지된다. 이 검색창은 신호처리 서브시스템이 잘못된 신호를 트랙킹하게 만들 수 있는 큰 스퓨리어스 신호를 검색하는데 사용된다. 또한, 이 검색창은 가시 위성들이 변화하는 것에 따라 새로운 가시 위성을 찾아내는데도 사용된다.
일례로서, 트랙 모드에서의 신호처리 컴포넌트(67-101)의 구성은 근사값의 파라미터로서, 4밀리초, 5밀리초, 10밀리초 또는 20밀리초의 PDI, 100Hz 내지 750Hz의 처리시간당 주파수 커버리지, 및 12dbHz 내지 50dbHz의 감도를 포함할 수 있다.
도 76은 입력 샘플 RAM(76-1003)에 데이터를 저장하는 방법의 일례를 도시한 블록도이다. 여기서는 동적 설정 및 할당이 가능한 RAM(68-201)의 각 영역들이 입력 샘플 RAM(68-203)에 할당되는 방법을 도시하고 있다. 입력 샘플 RAM(76-1003)의 좌측은 기록 포인터(76-1020)이며, 그 우측은 판독 포인터(76-1022)이다. 빗금 표시하지 않은 영역으로 표현된 입력 샘플 RAM(76-1003)의 블록들은 입력 샘플 RAM(68-203)에서 이용되는 실제 어드레스 공간이다. 76-1005로 표시된 영역은 잠재적인 유효 데이터를 포함하며, 하위영역(76-1007)은 빗금으로 표시된 무효 데이터를 포함하고 있다. 동시에 유효한 데이터를 포함하는 영역은 76-1005의 블록 영역뿐이다. 도 76에서, 현재 유효한 데이터인 영역은 76-1050의 영역이다. 76-1050의 영역은 또한 도시된 바와 같이 기록 포인터(76-1020)와 판독 포인터(76-1022)이 동시에 지시하는 영역이다. 오버플로 및 언더플로 상태는 판독 포인터(76-1022)의 값과 기록 포인터(76-1020)의 값을 비교함으로써 검지된다.
블록 영역(76-1005)은 각각 무효 블록(76-1001)을 갖는 전체 어드레스 공간을 표현한다. 각 블록 영역(76-1005)은 동일한 어드레스를 포함한다. 예를 들어, 해당 어드레스의 상위에 랩(wrap) 포인터가 연결되어 있다면, 그 진행에 따라 어드레스는 증가된다. 만약, 물리적으로 하부 블록 영역(76-1005)으로부터 그 바로 위의 블록 영역(76-1005)으로 진행하면, 그 어드레스 공간의 하부로 진행하는 것이다. 즉, 동일 어드레스 공간이 그 위에 쌓이게 된다. 빗금 표시된 무효 블록 영역(76-1007)은 이진 어드레싱으로 인해 사용되지 않는 범위인 포화 이진 범위(full binary range) 의 한 부분이다. 무효 블록 영역(76-1007)은 스킵된다.
입력 샘플 RAM(76-1003)의 우측에는 유효 데이터 영역인 76-1050과, 주어진 기록 포인터(76-1020)에서 언더플로 및 오버플로 상태가 발생하는 영역들이 있다.
도 77은 코히어런트 RAM(77-1105)에서의 오버플로 및 언더플로 상태를 예시한 도면이다. 도 70을 참조하면, FFT 서브시스템(68-215)은 코히어런트 RAM(68-205) 내의 전체 어드레스 범위를 일시에 액세스한다. 그 어드레스 범위가 이용가능하지 않다면, FFT 서브시스템(68-215)은 언더플로 상태로 중지되게 된다. 도 77은 그 어드레스 범위를 액세스하고자 하는 경우의 코히어런트 RAM(77-1105)에서의 언더플로 및 오버플로 상태를 도시한 것이다. 도 77의 좌측은 오버플로 상태를 예시한 것이다. 77-1107의 사각형은 wrap=n으로 표기된 영역 내에서, 현재 사용되고 있는 FFT 서브시스템(68-215)의 어드레스 범위를 규정한 것이다. 도 76 및 입력 샘플 RAM(76-1103)을 참조하여 전술한 바와 같이, 코히어런트 RAM(77-1105)에 대한 총 어드레스 범위는 스택되어 있으며 반복된다. 이것을 도 77에서는 wrap number로 표현하였다. 오버플로는, FFT 서브시스템(68-215)(SS3)이 데이터 판독을 시도하고 있는 영역에 대하여, 좌측에 도시된 SS2topT1 포인터가 기록을 시도하는 영역까지 계속될 것이다. FFT 서브시스템(68-215)은 FFT 서브시스템(68-215)(SS3)이 판독을 시도하고 있는 영역에 SS2topT1 포인터가 도달하면 중지질 것이다. 오버플로는 (SS2 top address)= (SS3 bottom address)인 경우에 발생된다. 코히어런트 RAM에의 액세스는 FIFO2(68-223)을 통해 제어할 수 있으므로 FFT 서브시스템(68-215)을 중지시키는 것이 가능하다. 라이브(live) RF 입력을 제어하는 것이 불가능하기 때문에 입력 샘플 RAM(68-203)을 덜 제어하는 것이 가능하다.
도 77의 우측은 언더플로 상태를 도시한 것이다. 77-1109의 사각형은 wrap=n으로 표기된 영역 내에서, 현재 사용되고 있는 FFT 서브시스템(68-215)의 어드레스 범위를 규정한 것이다. ss2_bottom은 FFT 서브시스템(SS3)(68-215)이 필요로 하는 어드레스 범위의 상부에 도달하지 않았다. 필요한 범위는 아직 "full"이 아니다. (ss2 bottom address) < (ss3 top address)인 경우에 언더플로가 발생된다.
도 78은 트랙 모드와 같이 2패스 고분해능 모드에서 코히어런트 RAM(77-1205)의 오버플로 및 언더플로 상태를 예시한 도면이다. 2패스 모드에서 데이터는 ss2_bottom으로부터 ss2_top까지 기록된다. 그 전체 범위 내의 데이터는 하부로 리턴되어 그 범위의 하부로부터 상부까지 재처리됨으로써 재이용된다. FFT 서브시스템(68-215)은 데이터 블록들을 이용하기 때문에 데이터를 판독하여 처리하기에 앞서 전체 블록이 사용가능할 때까지 대기해야 한다고 설명한 바 있다. 2패스 모드에서는 이것은 신호처리 서브시스템(68-213)에서도 마찬가지다. 2패스 모드에서 신호처리 서브시스템(68-213)은 전체 블록 또는 전체 어드레스 범위를 일시에 액세스할 필요가 있는 것으로 취급된다. 따라서, 이 모드에서는 신호처리 서브시스템(68-213)이 액세스를 시도하는 영역의 상부가 FFT 서브시스템(68-215)이 데이터 판독을 시도하는 영역의 하부에 도달하는 경우에 오버플로가 발생된다. 신호처리 서브시스템(68-213)은 전체 사각형 영역(77-1211)에 기록한다. 이러한 기록 동작은 제1 패스에서는 해당 범위의 하부로부터 상부까지 LSB가 기록되고 제2 패스에서는 해당 범위의 하부로부터 상부까지 MSB가 추가되는, 실제적으로 누산(accumulation)이다.
도 78의 우측은 2패스 고분해능 모드에서 언더플로 상태를 도시한 도면이다. 사각형 77-1209는 wrap=n으로 표기된 영역 내에서 현재 사용되고 있는 FFT 서브시스템(68-215)의 어드레스를 규정한 것이다. 사각형 77-1213은 wrap=n으로 표기된 영역 내에서 현재 사용되고 있는 신호처리 서브시스템(68-213)의 어드레스를 규정한 것이다. 언더플로는 SS3_topTl이 SS2_bottomTl을 넘는 경우에 발생된다. 즉, 신호처리 서브시스템(68-213)이 기록하는 위치의 위쪽에 FFT 서브시스템(68-215)이 판독을 시도하는 경우에 언더플로가 발생된다.
언더플로 또는 오버플로의 판단은 신호처리 서브시스템(68-213) 및 FFT 서브시스템(68-215)의 어드레스 포인터를 비교하는 것을 포함한다. 신호처리 서브시스템(68-213) 및 FFT 서브시스템(68-215)에의 액세스는 서로 다른 채널들 사이에서 시간 다중화된다. 어드레스 포인터를 비교하는 경우, 신호처리 서브시스템(68-213) 및 FFT 서브시스템(68-215)에서 하나의 채널이 동작중인지의 여부를 알 필요가 있다. 신호처리 서브시스템(68-213) 및 FFT 서브시스템(68-215)의 양방이 동시에 동일 채널에서 동작중이라면, "live" 어드레스 포인터가 비교된다. 신호처리 서브시스템(68-213) 및 FFT 서브시스템(68-215)의 양방이 동시에 동일 채널에서 동작하고 있지 않다면, (채널 RAM(68-207)로부터) 저장된 포인터를 비교한다. 예를 들어, 도 79를 참조하면, 신호처리 서브시스템(68-213) 및 FFT 서브시스템(68-215)의 양방이 동일 코히어런트 버퍼 영역에서 액티브라면, 저장된 어드레스 포인트에 대신하여 라이브 어드레스 포인터를 이용한다.
몇몇 경우에 있어서, 코히어런트 RAM(68-205) 및/또는 백엔드 스토리지 RAM(67-109)은 다수의 채널들 사이에서 공유된다. 이것은 다수의 코히어런트 RAM들과 다수의 백엔드 스토리지 RAM들을 효과적으로 소유하는 것 처럼 보일 수 있다. 이는 다수의 채널들이 동일한 메모리 영역에 연속적으로 코히어런트하게 축적되도록 한다. 즉, 예컨대, 하나의 모드에서 컨텍스트의 기간 동안 채널에 코히어런트 RAM이 전용되는 반면, 또 다른 모드에서 상이한 채널들 사이에서 코히어런트 RAM이 공유되도록 공유 메모리의 상이한 모드들이 존재한다(여기서, 채널은 컨텍스트 기간 동안 특정의 서브시스템을 사용하고 있음). 그러나, 신호처리 서브시스템(68-213) 및 FFT 서브시스템(68-215)이 동일한 공유 코히어런트 RAM에 액세스하고자 한다면, 라이브 어드레스 포인터가 사용된다. 신호처리 서브시스템(68-213)은 코히어런트 RAM에 대한 베이스 어드레스 포인터를 관측함으로써 동일한 코히어런트 RAM 영역이 사용되고 있는지 여부를 파악한다.
도 79는 단일의 코히어런트 RAM이 다수의 채널들 사이에서 공유되고 있는 예를 나타낸 블록도이다. 이는 코히어런트 RAM에 대하여 비교적 큰 메모리 영역이 할당되어 있지만, 신호처리시스템이 특히 메모리 제한되는 경우에 메모리 사용의 바람직한 모드이다. 도 79의 예는 동그라미 번호 1 내지 3으로 레이블 된, 상이한 세 개의 위치들에서의 코히어런트 RAM(79-1305)을 나타낸다. 시간 위치 1을 먼저 참조하면, 코히어런트 RAM(79-1305a)은 바닥에서 상부로 기입된다. 채널 1의 영역 및 채널 2의 부분적인 영역이 도시되어 있다. 화살표 "ss2 fills"로 나타낸 바와 같이, 신호처리 서브시스템(68-213)은 채널 1 영역에 채널 1 데이터를 기입한다. 신호처리 서브시스템(68-213)이 데이터를 채널 1 영역에 기입한 후에, FFT 서브시스템(68-215)(SS3)이 채널 1 영역으로부터 데이터를 판독한다. 신호처리 서브시스템(68-213)이 채널 1 데이터의 기입을 종료하는 경우, 채널 2 영역으로 이동하여 채널 2 데이터 기입을 시작한다. 79-1305a 로 지정된 물리적인 코히어런트 RAM 영역이 채워지는 경우, 신호처리 서브시스템은 코히어런트 RAM 영역의 바닥으로 이동하여, 오버라이팅을 시작한다. 이는 화살표 79-1300으로 나타내어져 있으며, 시간 위치 2에서 코히어런트 RAM(79-1305b)의 바닥에 채널 2 데이터를 계속 기입하는 때의, 신호처리 서브시스템(68-213)의 경로를 나타낸다.
시간 위치 2에서는, 채널 2 데이터가 기입되게 되고, 신호처리 서브시스템은 "채널 3"으로 레이블된 영역에 채널 3 데이터를 기입하기 시작하게 된다. 채널 3 데이터는 나머지 코히어런트 RAM 영역에 들어가지 않으므로, 시간 위치 3에서 신호처리 서브시스템(68-213)은 화살표 79-1301에 도시된 바와 같이 코히어런트 RAM 영역의 바닥으로 이동하여 이전의 채널 2 데이터를 오버라이팅하기 시작한다. 전술한 바와 같이, FFT 서브시스템(68-215)이 신호처리 서브시스템(68-213)이 아직 기입하지 않은 데이터를 판독하려고 함으로 인해 신호처리 서브시스템(68-213)을 따라 잡게 된다면, FFT 서브시스템(68-215)이 동작 중지(stalling)되거나, 언더플로 에러(underflow error) 상태가 발생한다.
일 실시예에 있어서, 도 81에 도시된 바와 같이 공유 코히어런트 RAM 모드를 사용하기 위해서는 몇몇 조건이 맞아야 한다. 예컨대, 코히어런트 RAM을 공유하는 채널들은 상이한 사이즈의 PDI를 가진다고 할지라도, 동일한 사이즈의 T1을 가져야 한다. 신호처리 서브시스템(68-213)은 하나의 컨텍스트를 떠나기 전에 컨텍스트의 PDI를 완전하게 기입하여야 한다. 공유 코히어런트 RAM를 사용하는 각각의 서브시스템은 자신의 저장된 포인터로 시작해야 한다. 일 실시예에 있어서, 코히어런트 RAM 자체의 지정된 영역에 포인터들이 저장된다. 공유 코히어런트 RAM이 종료(exit)될 때, 각각의 채널은 자신의 저장된 포인터를 갱신한다.
다른 실시예에 있어서, 코히어런트 RAM 영역은 지정된 물리적 메모리 영역을 콜드 스타트 모드(cold start mode)의 백엔드 스토리지 RAM과 공유할 수도 있다. 이는, 콜드 스타트 모드에서 백엔드 스토리지 RAM은, 그것이 채워지고, 데이터로부터 피크가 판정된 후, 데이터가 다시 필요로 되지 않는, 일회성("throw-away") RAM이기 때문에 가능하다. 이러한 경우, 지정된 메모리 영역은 코히어런트 데이터가 사용 또는 처리된 후에 NCS 데이터용으로 사용되어야 한다. 이 경우에는 코히어런트 RAM 영역에 NCS 데이터가 기입되지만, NCS 사용에 의해 코히어런트 데이터 포인터가 갱신되지는 않는다. 코히어런트 데이터 및 NCS 데이터에 대하여 지정된 공유 영역은, FFT 서브시스템이 자신의 메모리 영역 외부에서 데이터를 처리할 가능성을 회피하기 위하여 2 개의 데이터에 상응하는 PDI 보다 이하이어야 한다.
도 80은 할당된 코히어런트 데이터 메모리 영역 또는 코히어런트 RAM에 데이터를 저장하는 다양한 모드들을 나타내는 블록도이다. 도 80의 좌측에는, 제1 코히어런트 RAM 저장 모드 0에 있어서, 바닥에서 상부로 신호처리 서브시스템(68-213)에 의해 코히어런트 RAM(80-1405a)이 한번에 하나의 PDI씩 기입된다. 컨텍스트는 임의의 지점에서 완료될 수 있다.
코히어런트 저장 모드 1에 있어서, 신호처리 서브시스템(68-213)은 코히어런트 RAM(80-1405b)에 짝수 하프 칩의 PDI를 기입한 후, 홀수 하프 칩의 PDI를 기입한다. 그 후, 컨텍스트가 종료되고, 또 다른 컨텍스트로부터의 데이터의 저장이 짝수 하프칩 후에 홀수 하프 칩의 순서로 계속된다. 코히어런트 RAM(80-1405b)의 기입은 바닥에서 시작하여 상부까지 계속된다.
코히어런트 저장 모드 2에 있어서, 신호처리 서브시스템(68-213)은 코히어런트 RAM(80-1405c)에 하나의 컨텍스트에 대하여 홀수 하프 칩의 다수의 PDI들과 교호하는 짝수 하프 칩의 다수의 PDI들을 저장한다. 그 후, 신호처리 서브시스템은 또 다른 컨텍스트에서 "context" 라인으로부터의 데이터를 계속 저장한다. 컨텍스트 라인들은 특정 채널이 신호처리 서브시스템(68-213)을 소유하는 컨텍스트 기간중 신호처리 서브시스템(68-213)에 의해 데이터가 어디에 저장되는지를 나타낸다.
코히어런트 저장 모드 3에 있어서, 신호처리 서브시스템(68-213)은 코히어런트 RAM(80-1405b)에 제1 주파수(freq 0)에 대하여 짝수 하프 칩의 다수의 PDI들을 저장한 후에, 주파수 0에 대하여 홀수 하프 칩의 다수의 PDI들을 저장한다. 그 후, 신호처리 서브시스템(68-213)은 다음 주파수(freq 1)에 대하여 짝수 하프 칩의 다수의 PDI들을 저장하고, 주파수 1에 대하여 홀 수 하프 칩의 다수의 PDI들을 저장하는 식으로 계속된다.
코히어런트 저장 모드 4에 있어서, 신호처리 서브시스템(68-213)은 코히어런트 RAM(80-1405e)에 T1 0에 대한 모든 코히어런트 데이터를 저장한 후에, T1 1에 대한 모든 코히어런트 데이터를 저장한다. 최종 T1에 대한 데이터가 저장될 때까지 이러한 방식으로 저장이 계속된다. 저장 대상의 T1의 갯수는 소프트웨어에 의하여 미리 정해진다. 코히어런트 저장 모드 4는, 위성 데이터 스트림의 데이터 비트 엣지를 찾는 것을 용이하게 하기 위하여 상이한 코드 오프셋들이 저장되는 비트 싱크 모드에서 유용하다. 컨텍스트에 대한 저장은 임의의 곳에서 종료될 수 있다.
도 81은 백엔드 스토리지 RAM의 할당 영역에 데이터를 저장하는 다양한 모드들을 나타낸 블록도이다. NCS 모드 0에 있어서, 도시된 바와 같이, FFT 서브시스템(68-215)(SS3)은 NCS 영역에 넌코히어런트 데이터를 저장하고, 피크 영역에 특정 채널에 대한 피크 데이터를 저장한다. PDI의 마지막에는, 피크 데이터 저장이 새로운 피크 영역으로 도시된 바와 같이 이동한다. 일 실시예에 있어서, 백엔드 스토리지 RAM(81-1505a)은 두 개의 피크 위치를 피크 영역 내에 갖지만, 다른 실시예에서 두 개 이상을 가질 수도 있다.
NCS 모드 1에 있어서, 도시된 바와 같이, FFT 서브시스템(68-215)(SS3)은 넌코히어런트 데이터를 백엔드 스토리지 RAM(81-1505b)의 NCS 영역에 저장하며, 관련 피크 데이터를 백엔드 스토리지 RAM(81-1505b)의 피크 영역에 저장한다. NCS 데이터가 갱신되는 경우, 피크들도 갱신된다.
NCS 모드 2에 있어서, 백엔드 스토리지 RAM(81-1505c)은 스크래치 버퍼 영역으로서 사용된다. 도시된 바와 같이, FFT 서브시스템(68-215)(SS3)은 백엔드 스토리지 RAM(81-1505c)의 NCS 영역에 넌코히어런트 데이터를 저장하며, 백엔드 스토리지 RAM(81-1505c)의 피크 영역에 피크 데이터를 저장한다. 매 PDI 종료시마다 피크 데이터가 갱신되지만, 기입 포인터는 NCS 데이터의 끝에서 진행된다. NCS 저장 모드 2는 스크래치 모드이므로, NCS 데이터는 예컨대 하프 칩 기반으로, 주파수 기반으로, 기타 등등에 의해 오버라이팅된다.
NCS 모드 3에 있어서, 도시된 바와 같이, FFT 서브시스템(68-215)(SS3)은 백엔드 스토리지 RAM(81-1505d)의 NCS 영역에 T1 기반으로 넌코히어런트 데이터를 저장하며, 백엔드 스토리지 RAM(81-1505d)의 피크 영역에 피크 데이터를 저장한다. 피크 데이터는 매 PDI 종료시 마다 피크 어드레스 위치를 포함하여 갱신된다. 화살표는 영역의 상부에 도달한 경우 기입 포인터가 이동하는 방향을 나타낸다. NCS 모드 3은, 위성 데이터 스트림의 데이터 비트 엣지를 찾는 것을 용이하게 하기 위하여 상이한 코드 오프셋들이 저장되는 비트 싱크 모드에서 유용하다.
NCS 모드 4에 있어서, 도시된 바와 같이, FFT 서브시스템(68-215)(SS3)은 백엔드 스토리지 RAM(81-1505e)의 NCS 영역에 넌코히어런트 데이터의 짝수 및 홀수 하프 칩들을 저장하며, 백엔드 스토리지 RAM(81-1505e)의 피크 영역에 피크 데이터를 저장한다. 컨텍스트 마다 하나의 홀수 PDI 및 하나의 짝수 PDI가 저장된다. 짝수 및 홀수 PDI 데이터가 저장된 후에 피크 값들은 갱신된다. 매 PDI의 끝마다 피크 어드레스 위치가 갱신된다. 화살표는 영역의 상부에 도달한 경우 기입 포인터가 이동하는 방향을 나타낸다.
예컨대, 도 68에 도시된 바와 같이, 백엔드 스토리지 RAM(68-209)의 TH 영역에 트랙 이력(TH) 데이터가 저장된다. 도 81의 RAM(81-1505f)은 트랙 이력 저장의 하나의 모드를 나타낸다. 도시된 바와 같이, 트랙 이력(TH)은 TH 영역에 저장되며, 리포트 정보(INFO)는 INFO 영역에 저장된다. TH 데이터는 실제의 코히어런트 데이터이다. INFO 데이터는 리포트 정보를 포함한다. 리포트 정보는 코히어런트 트랙 이력 데이터를 식별하는 TH 리포트와 같은 다양한 리포트들을 포함하며, 처리되는 PDI의 수, 타임태그, 등을 나타낸다. 바이어스 합은 전체 PDI에 대한 바이어스의 연속 합이다. 잡음 합(noise sum)은 전체 PDI에 대한 잡음 크기의 연속 합이다. 또 다른 리포트로서는, 컨텍스트 스위칭 시에 저장되는 컨텍스트 리포트가 있다. 컨텍스트 리포트는 타임태그, 처리되는 PDI의 수, 바이어스 합, 잡음 합, 등을 포함한다.
도 81의 RAM(81-1505g)은 트랙 이력 저장의 또 다른 모드를 나타낸다. 도시된 바와 같이, 트랙 이력(TH)은 TH 영역에 저장되며, 리포트 정보(INFO)는 T1 기반으로 INFO 영역에 저장된다. TH 데이터는 별개의 T1들에 대한 실제의 코히어런트 데이터이다. INFO 데이터는 리포트 정보를 포함한다. 리포트 정보는 코히어런트 트랙 이력 데이터를 (예컨대, 위상 오프셋 및 코드 오프셋에 의해) 식별하는 TH 리포트를 포함하는 다양한 리포트들을 포함하며, 처리되는 PDI의 수, 타임태그, 등을 나타낸다. 바이어스 합은 전체 PDI에 대한 바이어스의 연속 합이다. 잡음 합은 전체 PDI에 대한 잡음 크기의 연속 합이다. 또 다른 리포트로는 컨텍스트 스위칭 시 저장되는 컨텍스트 리포트가 있다. 컨텍스트 리포트는 타임태그, 처리되는 PDI의 수, 바이어스 합, 잡읍 합, 등을 포함한다. 백엔드 스토리지 RAM(81-1505g)의 트랙 이력 저장 모드는, 위성 데이터 스트림의 데이터 비트 엣지를 찾는 것을 용이하게 하기 위하여 상이한 코드 오프셋이 저장되는 비트 싱크 모드에서 유용하다.
도 79 및 도 80의 저장 모드는 채널 파라미터에 의해 지정되며, 채널 파라미터는 시퀀서(68-217)에 의해 채널 RAM(68-207)에 저장된다..
도 82는 상이한 동작 모드에서의 다양한 RAM 저장 모드들을 나타낸 도면이다. 도면의 좌측에는, 입력 샘플 RAM(82-1603)이 입력 샘플 서브시스템(SS1)에 의해 입력 데이터 샘플들로 채워진다. 입력 샘플 RAM은 전술한 바와 같이, 순환성 모드(cyclic mode)로 또는 일회성(one-shot) 모드로 채워질 수 있다. 신호처리 서브시스템(SS2)(82-1613)은 입력 샘플 RAM(82-1603)으로부터 데이터를 판독하여 이 데이터를 처리한다. 신호처리 서브시스템(82-1613)은 신호처리시스템의 구성 및 작동 모드에 따라서, 몇몇 가능한 데이터 경로들(82-1604, 82-1608, 및 82-1610) 중 하나 상으로 코히어런트 데이터를 출력한다.
신호처리 서브시스템(82-1613)의 출력 경로를 다시 참조하면, 출력 경로 82-1604는 코히어런트 RAM(82-1605)의 공유된 스크래치 영역(82-1603)으로의 경로를 나타낸다. 스크래치 영역(82-1630)은 SV 별로 한 번 채워진다. 채널들은 자신만의 코히어런트 RAM을 유지하지는 않는데, 이는 채널이 스크래치 영역에 기입을 행하며(이전 채널의 데이터를 오버라이팅함), 자신의 이전 위치에 대하여 고려하지 않고 매번 종료한다(exit)는 것을 의미한다. 스크래치 영역(82-1603)에 대하여 지정된 RAM의 물리적 영역은 또한 백엔드 스토리지 RAM(콜드 스타트 모드)과 코히어런트 스크래치 RAM(기타의 모든 모드들) 사이에서 교호될 수도 있다.
출력 경로 82-1608은 코히어런트 RAM 82-1605의 SV 전용 코히어런트 데이터 영역에 대한 경로를 나타낸다. 각 SV 별로 코히어런트 데이터가 바닥의 82-1603a 영역의 SV1 데이터에서부터 시작하여 82-1630n 영역의 SVn 에서 끝날 때까지 순환적 방식으로 저장된다. 이는, 예컨대, 각 채널이 자신의 코히어런트 RAM을 유지하고 있는 경우에, 앞서서 종료하였던 곳과 동일한 곳에서 코히어런트 RAM을 진입시키는데 적용될 수 있다. 또한, SV 전용의 영역(82-1603)은 또한 경우에 따라 스크래치 영역으로서 사용될 수도 있다.
출력 경로 82-1610는 코히어런트 RAM(82-1605)을 우회하여, FFT 서브시스템(82-1615)(SS3)으로 직행하는 경로를 나타낸다. 이는 콜드 스타트 모드에 적용가능하다. 콜드 스타트 모드에 있어서, FFT 서브시스템(82-1615)은 코히어런트 데이터를 처리하여, 경로 82-1612를 통해 백엔드 스토리지 RAM(82-1609)에 NCS 데이터를 보낸다.
이하, FFT 서브시스템(82-1615)의 우측의 영역을 참조하면, 백엔드 스토리지 RAM(82-1619)의 상이한 구성들이 나타내어져 있다. 도면에서 보다 먼 우측상의 동그라미 번호들은 NCS 저장의 다양한 타입들 또는 모드들을 나타낸다. 도면의 아래의 저장모드 1은 자신만의 전용의 TH 및 넌코히어런트 데이터 저장의 영역을 갖는 각 채널을 포함한다. FFT 서브시스템(82-1615)은 경로(82-1616a 내지 1616n)를 통해 백엔드 스토리지 RAM(82-1609)의 개별 채널 영역에 데이터를 보낸다. 채널 전용의 백엔드 스토리지 RAM 영역(82-1618a 내지 1618n)은 피크, 피크 정보, 비트 싱크 데이터를 포함하는 NCS 데이터, 및 트랙 이력 데이터를 포함한다.
저장 모드 2를 참조하면, 각각의 NCS 영역(82-1620a 내지 1620n)은 자신만의 해당 피크 영역을 갖는다. FFT 서브시스템(82-1615)은 공유된 스크래치 코히어런트 RAM(82-1630)으로부터 경로(82-1614a)를 통해 NCS 영역(82-1620)으로 데이터를 보낸다. 또한, 경로 82-1614에 적합한 다른 NCS 저장 모드로서는, 저장 모드 3이 있다. 저장 모드 3에서는, 채널들 사이에서 공유되는 단일의 스크래치 영역(82-1622), 및 경로 82-1614b를 통한 몇몇의 전용의 피크 영역들(82-1624a 내지 1624n)이 있다.
각기 자신의 해당 피크 영역을 갖는, 다수의 NCS 영역(82-1626a 내지 1626n)을 포함한다는 점에서 저장 모드 4는 저장 모드 2와 유사하다. FFT 서브시스템(82-1615)은 경로 82-1612a를 통해 백엔드 스토리지 RAM 영역(82-1626)에 비트 싱크 데이터를 포함하는 NCS 데이터, 피크, 및 피크 정보를 저장하였다. 또한 경로 82-1612에도 적합한 또 다른 NCS 저장 모드로서는 저장 모드 5가 있다. 저장 모드 5에서는, 채널들 사이에서 공유되는 단일의 스크래치 영역(82-1628)과, 경로 82-1612b를 통한 몇몇의 전용의 피크 영역들(82-1630a 내지 1630n)이 있다.
이하, 디지털 신호처리 성분(67-101)의 장치 및 제어 방법에 대하여 상세한 설명이 제공된다. 디지털 신호처리 성분의 신호처리 동작들의 순서를 제어하는 시퀀서는 도 70의 시퀀서(68-217) 및 디지털 신호처리 성분(67-101)을 참조하여 설명하였다. 또 다른 실시예에 있어서, 신호처리 서브시스템 용의 시퀀서는 신호처리 서브시스템과 연결되며, FFT 서브시스템에 대한 시퀀서의 기능은 FFT 서브시스템과 연결된다. 이러한 실시예는 도 71에 도시되어 있다. 도 83 내지 도 93 및 관련 설명들은 이러한 형태의 실시예들 또는 도시 생략된 대체 실시예들에 적용될 수 있다. 전술한 바와 같이, 시퀀서는 소프트웨어에 의해 프로그램된 채널 RAM으로부터 데이터를 판독한다. 채널 RAM은 디지털 신호처리 성분 67-101과 같은 디지털 신호처리 성분의 현재 상태에 관한 정보를 저장한다. 채널 RAM은 또한 상이한 하드웨어 요소들의 구성이 무엇인지를 포함하여, 다음에 어떠한 신호 처리의 양상들이 발생하는지에 관한 정보를 저장한다.
도 83은 일 실시예에서 통신하게 되는 채널 RAM과 구성요소들을 나타낸 블록도이다. 도면 좌우측의 점선은 채널 RAM과 시퀀서 간의 통신 및 채널 RAM과 디지털 신호처리 성분 67-101(도면 우측)과 같은 디지털 신호처리 성분의 다양한 기타의 구성요소들간의 통신을 개념적으로 나타낸다. 도면에서 구성요소들의 상대적 위치와 점선은 그다지 중요하지 않다. 예컨대, 시퀀서는 실제로 도시된 서브시스템들 어디에도 위치될 수 있으며, 또는 하나의 서브시스템 2(SS2)에 부분적으로 위치되고 서브시스템 3(SS3)에 부분적으로 위치될 수 있다. 다른 구성요소들의 기타의 다른 상대적 배치 또한 가능하다. 전술한 바와 같이, SS2는 신호처리 서브시스템을 지칭하며, SS3는 FFT 서브시스템을 지칭한다.
채널 RAM은 데이터를 시퀀서, 신호처리 서브시스템, FFT 서브시스템, 코히어런트 데이터에 할당된 RAM의 일부, NCS 데이터에 할당된 RAM의, 일부, 및 트랙 이력(TH), 피크, 등과 같은 데이터에 대하여 할당된 RAM의 다른 일부들에 대하여 데이터를 보내고 받는다.
채널 RAM은 레코드 0 내지 레코드 N으로 레이블된 다수의 채널 레코드들을 저장한다. 각각의 채널 레코드들은 word 0 내지 word n으로 레이블된 다수의 데이터 워드들을 포함한다. 각 채널 레코드의 word 0는, 다음 채널 레코드에 판독 또는 기입되어야 하는 포인터를 포함한다. 하나의 채널 레코드에서 또 다른 채널 레코드로 이동하기 위하여 포인터가 사용된다. 채널 레코드는 또한 모든 가능한 동작 모드들, 다양한 타입의 처리중인 신호 처리들, 현재의 카운트 및 상태, 및 코드 위상 및 입력 샘플에 대한 시간 정렬을 포함한다. 이러한 정보는 제어 처리 또는 신호 에러 조건에 대하여 나타낸 다양한 구성요소들로의 신호로서 보내진다.
시퀀서는 채널 레코드의 word 0에서 시작하여 컨텐츠를 실행시킨다. 채널 레코드(word 0 내지 word N)의 컨텐츠는 해당 메모리 영역 전체에 어드레스들로의 포인터를 포함하여, 어디서 데이터를 취득하고, 어디에 데이터를 기입할지를 나타낸다. 시퀀서는 신호처리 서브시스템 및 FFT 서브시스템 중 어느 것이 채널 RAM에 액세스하는지를 나타낸다. 신호처리 서브시스템 및 FFT 서브시스템은 별도의 실행 쓰레드(thread)로서 동작하지만, 완전히 독립적인 것은 아니다. 예컨대, 신호처리 서브시스템은 FFT 서브시스템에 사용하기 위한 데이터를 생성한다. 후술하는 바와 같이, 서브시스템들 중 하나는 다른 것의 아주 멀리 앞 또는 뒤에서 동작하여서는 않된다.
채널 레코드의 최종 워드(word N)의 판독은 컨텍스트의 완료에 해당한다. 컨텍스트가 완료되는 경우, 완료된 컨텍스트로부터의 갱신된 정보가 현재의 채널 레코드에 저장되며, 시퀀서는 현재 채널 레코드의 word 0에 지시된 레코드로 이동한다.
코히어런트 데이터에 할당된 RAM 영역은 코히어런트 데이터 이외에, 상태 정보와 같은 파라미터를 포함하는 버퍼 헤더와 또한 다른 포인터들을 저장한다. 신호처리 서브시스템 및 FFT 서브시스템은 그들의 채널 지정 상태를 헤더로부터 판독한다. 예컨대, 서브시스템은 신호 처리에 있어서 마지막으로 어디서 나와야할지 도는 얼마나 많은 샘플들이 처리되어야할지를 판정하여야 한다. 이러한 파라미터들은, 하나의 채널에서 다음 채널로 파라미터들이 전달되므로, 코히어런트 RAM 영역 헤더에 저장하는 것이 편리하다. 예컨대, 신호처리 서브시스템이 다음 채널에 대한 다수의 데이터 블록들을 위치시키고 나오면, FFT 서브시스템은 다수의 블록들을 어디서 판독하여야할지를 알아야만 한다. 일 실시예에 있어서, 알려진 갯수의 블록들(예컨대, 일곱개)이 항상 채널에 대하여 저장된다. 데이터 블록들이 의도되어 있는 서브시스템들이 들어오는 경우, 서브시스템은 7 개의 데이터 블록들을 취하며, 서브시스템이 떠나는 경우, 코히어런트 RAM 영역 헤더에 7개의 데이터 블록이 더 준비되어 있다는 것을 기입한다.
도 84의 시퀀서에 의한 컴포넌트(67~101)와 같은 신호처리 컴포넌트의 제어는, 세마포어 워드 및 인터럽트 신호를 이용한 컴포넌트 요소와 소프트웨어 간의 통신을 포함한다. 신호처리 컴포넌트 제어의 일양상은, 신호처리 서브시스템(SS2), FFT 서브시스템(SS3) 및 메모리 또는 RAM을 포함한 하드웨어 리소스를 이용해야 하는 다른 채널의 시퀀싱이다. 도 84는 일실시예에서 채널 시퀀싱 제어의 개념적인 표현이다. 도 84는 두 서브시스템 간의 "제어 영역"으로서, 좌측을 처리하는 SS2 및 우측을 처리하는 SS3를 도시하고 있다. "시간" 내지 "1"이라고 라벨링된 원은 각 서브시스템에 대한 처리 에포크의 단들을 나타낸다. 처리 에포크동안, 채널은 서브시스템의 소유권을 갖는다. 처리 에포크의 종료시와 다음 처리 에포크의 시작 전에는, 시퀀서는 특히, 어느 채널이 처리를 위한 서브시스템의 소유권을 갖는지, 어느 서브시스템(들)이 여러 할당된 RAM 영역들에 억세스하는지, 및 RAM 억세스를 위한 어드레스 위치를 포함한다.
도 84의 제어 영역 내에는 SS2 및 SS3을 위한 채널 RAM 포인터들이 도시되어 있다. 채널 RAM 포인터들은 SS2 및 SS3 각각에 대한 버퍼 베이스 포인터 및 채널 포인터를 포함한다. 버퍼 베이스 포인터들은 간섭성 RAM 내의 실제 위치들을 나타낸다. 채널 포인터들은 채널 RAM에 저장된 포인터들이다. 도 86에 도시된 바와 같이, SS2 베이스 포인터는 SS3 베이스 포인터와 비교되며, SS2 채널 포인터는 SS3 채널 포인터와 비교된다. 예를 들어, SS2 내의 "채널 1"의 채널 포인터를 SS2에 "채널 2"가 있다면 "채널 2"의 채널 포인터와 비교한다. 이것은 하나의 서브시스템 랩핑을 다른 서브시스템 랩핑으로부터 방지하기 위한 것이며, 이하에 랩핑 규칙을 참조하여 이를 설명한다.
또한, 제어 영역에 도시되어 있는 것은 SS2 및 SS3 각각에 대한 하드웨어 레지스터, 즉, 각 서브시스템에 대한 "활성" 레지스터 및 "중지" 레지스터이다. 이 레지스터들은 서브시스템이 활성인지, 서브시스템이 처리를 중지해야 하는지를 각각 나타내는 신호 비트를 저장한다.
시퀀서는 랩핑 규칙을 실행하며, 이 랩핑 규칙은 신호처리 서브시스템이 FFT 서브시스템을 랩핑하는 것을 방지하며, 그 역도 동일하다. 시퀀서는 또한 언더플로 및 오버플로 에러 조건을 방지 및/또는 검출한다. 언더플로, 오버플로 및 랩핑 규칙들은 앞서 언급된 시퀀싱 및 제어의 양상들이며, 이후 보다 상세하게 기술한다.
FFT 서브시스템(SS3)은 다음과 같이 다른 조건들하에서 언더플로 검출을 수행한다. SS3이 들어오는 경우, 신호처리 서브시스템(SS2)이 메모리 영역 내에 있다면, SS3은 라이브 SS2 포인터를 이용한다. SS2가 여전히 메모리 영역 내에 있는 한, SS2 T1 메모리 공간의 하부(SS2BottomT1REG) 위치에 라이브 포인터를 지속적으로 로딩한다. SS2가 메모리 영역을 떠날 경우, SS3은 위치 SS2BottomT1Reg 내의 마지막 저장된 포인터를 이용하여 스위칭한다.
SS2는 SS3이 떠날 때까지 채널에 다시 들어올 수 없다.
SS3이 들어오는 경우 버퍼에 SS2가 없다면, SS3가 저장되어 있는 SS2 포인터를 판독하여 그것을 SS2BottomT1Reg에 로딩한다. 이어서 SS3는 저장되어 있는 SS2BottomReg까지 처리하고, 나간다.
신호처리 서브시스템(SS2)은 다음과 같이 다른 조건들 하에서 언더플로 검출을 수행한다. SS2가 들어오는 경우에 SS3이 메모리 영역에 존재하지 않는다면, SS2는 저장되어 있는 SS3 버퍼 포인터를 판독하여 SS3BottomT1Reg에 로딩한다. SS2가 명령된 만큼 T1을 처리하고, 메모리 공간이 바닥나면, 오버플로 때문에 처리를 중지한다. SS3이 메모리 영역에 들어가면, 라이브 SS3 포인터들을 사용한다. SS3이 메모리 영역을 떠나면, SS3이 다른 채널을 갖는 동일한 메모리 영역으로 돌아갈 때까지 마지막 저장된 SS3BottomT1Reg 포인터를 사용한다.
SS2가 들어오는 경우에 SS3이 버퍼 내에 있으면, SS2는 SS3이 떠난 포인트까지 라이브 SS3 포인터들을 이용하고, 이어서 마지막 저장된 SS3BottomT1Reg 포인터로 스위칭한다. SS2가 명령된 만큼 T1을 처리하고, 메모리 공간이 바닥나면, 오버플로 때문에 처리를 중지한다. SS3이 메모리 영역에 들어오면, 라이브 SS3 포인터를 이용한다. SS3이 메모리 영역을 떠나면, SS3이 다른 채널을 갖는 동일한 메모리 영역으로 돌아갈 때까지 마지막 저장된 SS3BottomT1Reg 포인터를 이용한다.
도 85는 SS2 및 SS3의 상호작용으로 랩핑 규칙을 설명하는 도면이다. 도면 상부에 있는 원의 번호들은 시간의 시퀀스를 나타낸다. 각 수평 점선 세트들 사이는 특정 시간의 채널이다.
시간 1을 참조하면, SS2가 그 채널에 들어가고, 이는 신호처리 서브시스템이 그 채널을 소유하고 있으며, 그 채널에 대한 처리 데이터에 이용되고 있음을 의미한다. SS2는 오버플로 조건이 있는지의 여부를 판정하기 위해 간섭성 RAM 영역에 저장된 SS3 포인터를 이용한다.
랩핑 규칙에 따르면, SS3이 최초로 그 채널에 존재했다면, SS3이 그 채널을 나갈 때까지 SS2가 들어갈 수 없다. SS3이 그 채널에 있고, SS2가 그 채널에 없을 때, SS3은 그 채널에 대한 간섭성 RAM 내의 (SS2가 그 채널의 데이터를 처리했던 마지막 시간으로부터 SS2에 의해 저장된) 모든 데이터를 처리하고, 그 채널의 모든 데이터가 처리되면 나간다.
시간 2에 도시된 바와 같이, SS2가 그 채널에 있을 때, SS3(FFT 서브시스템)이 그 채널을 동작시키기 위한 간섭성 데이터를 갖고 있으면, 그 채널에 들어갈 수 있다. 랩핑 규칙에 따라서, SS2가 채널을 떠날 때까지, SS3은 그 채널을 떠날 수 없다. SS2와 SS3 모두 그 채널에 있으면, SS2가 라이브 SS3 포인터를 사용하여 오버플로 조건이 있는지의 여부를 판정한다.
전술한 바와 같이, SS2 채널 RAM 베이스 포인터들은 시퀀서에 의해 판독되고, 레지스터에 로딩되며, 랩핑을 방지하기 위해 대응하는 SS3 포인터와 비교된다. SS2가 채널에 있에 있으면서 SS3가 동일 채널에 있다면, SS3측의 시퀀서는 (동일 채널에 SS2가 있기 때문에) SS3이 떠날 수 없음을 알고 있다. 한편, 간섭성 RAM 베이스 포인터는 선입선출 성질의 데이터 처리를 실시한다. SS3은, SS3이 그 채널에 들어가거나 떠날 수 있는지의 여부 보다는 SS3이 소모할 만큼의 충분한 데이터를 SS2가 생성했는지의 여부와 더 관련이 있다. SS2는, SS2가 소모되지 않은 데이터를 겹쳐쓰지 않도록 SS3가 충분한 데이터를 소모했는지의 여부(오버프로우 및 언더플로 조건의 방지 및/또는 검출)와 관련이 있다.
다시 도 85를 참조하면, 시간 3에서, SS2는 그 채널에 데이터 처리를 종료하고 그 채널을 나간다. SS3은 SS2가 그 채널을 나가는 포인트까지 그 채널에 대한 데이터를 처리한다. 시간4에서, SS2는 다시 그 채널에 들어가려고 하지만 SS3가 나갈 때까지는 들어갈 수 없다.
시간 5에서, SS3은 나가고, SS2가 다시 그 채널에 들어온다. 시간 6에서, SS2는 처리를 완료하고 그 채널을 떠난다. SS3이 그 채널에서 처리할 더 이상의 데이터가 없으면, 그 채널에 들어갈 필요가 없다. 따라서, 도 85는 하나 이상의 특정 채널로부터의 데이터가 상호조화 방식 또는 시간 다중화 방식으로 서브시스템에 의해 어떻게 처리되는지를 설명한다.
시퀀서에 의해 실시된 랩핑 규칙은 신호처리 컴포넌트의 전체 제어 중 일부분을 제공한다. 제어의 다른 부분은 (예를 들어, 도 69에 도시된 바와 같은) FIFO2에 의해 제공된다. 일실시예에서, FIFO2는 SS2가 SS3에 의해 판독된 데이터를 저장하는 원형 버퍼이다. SS2는 T1-by-T2 기준으로 FIFO2를 채운다. SS3은 데이터 독출 및 처리를 시작하기 전에 이용할 수 있도록 하기 위해 (프로그램된 T1 수의) 완전한 PDI를 요구한다. PDI 내의 T1의 수는 FFT 서브시스템의 FFT 컴포넌트(도시되지 않음)가 요구하는 것이 무엇인지에 따라서 판정된다. FFT는 다른 수의 T1를 동작시키도록 구성할 수 있다. 예로서, FFT가 5-샘플로 구성되면, 16 포인트의 FFT는 데이터 독출을 시작할 수 있게 되기 전에 5 샘플 또는 완전한 5 T1을 필요로 한다. FIFO2과 랩핑 규칙을 조합하면, 신호처리 서브시스템 및 FFT 서브시스템 간의 흐름을 제어할 수 있다.
신호처리 서브시스템(SS2)은 얼마나 많은 데이터가 생성되었는지에 따라 생성된 데이터량을 구동한다. SS2는 채널이 SS2에 들어왔음을 암시하는 각 컨텍스트에 대한 임의의 데이터량을 생성하도록 프로그래밍되어, 그 컨텍스트가 SS2를 떠나면 종료할 것이다. 그래서, 특정 컨텍스트에서, SS2는 수 밀리초동안 실행하도록 프로그램되어, 그것이 프로그램되었던 수 밀리초의 처리를 끝날 때까지 FIFO1로부터 데이터를 판독할 것이다.
랩핑 규칙
도 87에 도시된 바와 같은 시퀀서 랩핑 규칙은 다음과 같이 진술될 수 있다.
1. 채널들을 처리한 SS2는 서로 랩핑할 수 없다.
2. SS3이 그 채널에서 현재 활성이면, SS2는 채널에 들어갈(활성이 될) 수 없다(그렇지 않으면, SS2는 SS3 조건으로 "랩핑"된다).
3. SS2가 그 채널에서 현재 활성이면, SS3는 채널을 나갈 수 없다(예를 들어, SS3 처리는 SS2 조건을 따르도록 강요될 수 있으며; SS3는 SS2가 활성일 경우에 이용할 수 있는 데이터를 처리할 것이다).
4. SS2는 (SW 수정부를 보함하는) 처리를 위해 프로그램된 수 밀리초간 처리할 것이며, SS2 처리가 완료될 때까지 채널 내에 보유하고 있을 것이다.
5. SS3는 그 버퍼 내(간섭성 RAM 영역)에서 이용가능한 만큼의 T1을 처리할 것이다. SS3는, SS2가 활성이 아니면 저장된 SS2 버퍼 포인터들까지, SS2가 활성이면 SS2가 완료한 포인트까지 처리할 것이다.
6. SS2 및 SS3는 대기 세마포어 또는 대기 플래그에 의해 연속 처리가 방지될 수 있다. 예를 들어, SS2는 "SS3 컨텍스트 완료"에 의해, 또는 "SS3 PDI 완료"에 의해 중지될 수 있으며, SS3은 SS3 PDI 완료에 의해 중지될 수 있다.
랩핑 규칙 적용시, 채널 RAM 포인터들은 채널들이 동일한지의 여부를 판정하는데 사용된다. 간섭성 RAM 포인터들 및 "활성" 플래그들은 SS2 및 SS3가 동일한 간섭성 RAM 영역에 있는지의 여부를 판정하는데 이용된다. 공유된 간섭성 RAM 영역을 이용한다는 것은 두개의 다른 채널이 동일한 간섭성 RAM 영역에서 활성임을 의미하며, 공유된 간섭성 RAM 영역들은 단지 하나의 채널이 억세스를 시도하고 있는 경우와 같이 처리된다.
이하에, 세마포어 단어 및 인터럽트 및 신호처리 컴포넌트의 동작을 제어하는 역할을 보다 상세하게 논의할 것이다. 도 86은 일실시예의 세마포어 워드 구조의 도면이다. 세마포어 워드 구조는 신호처리 서브시스템(SS2)에 의해 제어된 16비트와 FFT 서브시스템(SS3)에 의해 제어된 16비트를 포함한다. 세마포어 워드 구조는 도 71의 SW 69-319와 같은 소프트웨어(SW)에 의해 제어된 32비트를 더 포함한다. SW에 의해 제어된 32비트는 이하에 설명되는 바와 같이 SS2와 SS3에 의해 제어된 비트로 정렬된다. 그 세마포어 워드 구조는 SW에 의해 제어된 32비트와 SS2 및 SS3에 의해 제어된 비트 둘 모두로 정렬된 32 마스크 비트를 더 포함한다. 세마포어 워드 구조는 다른 워드 내의 비트와는 정렬되지 않는 인에이블/포즈(enable/pause) 비트를 더 포함한다.
전술된 바와 같이, 세마포어 워드는 SS2, SS3, SW 간의 통신을 용이하게 하며, 플래그를 앞과 뒤로 건네줌으로써 서로에 대해 동기하지는 않는다. 시퀀서(예를 들어, SS2 시퀀서)가 초기화될 경우, 임의의 SS3 또는 SW 플래그에 대한 세마포어 워드를 판독한다. 세마포어 워드는 시퀀서에 의해 어떤 동작이 취해져야 하는지 또는 취해져서는 안되는지를 판정하는 정보를 제공한다. 도 87은 일실시예에서의 세마포어 워드의 구성을 도시한다. 개별 비트들의 중요성은 비트 라벨로 표시된다. "세마포어 전반부" 및 "세마포어 후반부"라고 라벨링된 32비트는 도 86의 SS2 비트, SS3 비트 및 SW 비트로 구성된 64비트에 대응한다. 32 인터럽트 인에이블 비트는 도 88의 "MASK" 비트에 대응한다. 도 89에 도시된 바와 같이 각 채널에 대해 세마포어 워드가 존재한다.
도시된 바와 같이, 대부분 세마포어 비트는 중첩한다. 즉, 특히 중요한 SS2 비트는 대응부 SS3 및 대응부 SW 비트를 갖는다. SS2, SS3, SW 간에 메시징하는 것은 대응하는 중요성을 갖는 하드웨어(HW) 비트 및 SW 비트의 XOR 및/또는 AND를 수행하는 것을 포함한다. HW는 신호처리 서브시스템(SS2) 및 FFT 서브시스템(SS3)을 포함한다. 메시징은 두 방향으로 실행되며: 한 방향은 HW 이벤트가 발생했음을 SW가 알도록 하는 것이다. 나머지 한 방향은 동작을 수행하라는 SW 명령을 HW에 명령하는 것이다. 비트는 세마포어 "플래그"로서 기능한다. 상태 세마포어를 일례로서 사용하면, HW가 SW에 이벤트를 통지하기를 원할 때, HW는 현존하는 상태를 적절한 비트로 변경한다. 두 대응 비트의 초기 시작 상태는 둘 중 하나가 0 또는 1로서 동일하다. 비트 상태가 HW에 의해 변경될 경우, 두 비트의 XOR은 1이다. 이어서 SW가 세마포어 워드를 볼 경우, HW는 XOR 결과가 1이기 때문에 플래그를 설정한다는 것을 알 수 있다. SW는 제어 하에서 대응하는 비트의 상태를 변경함으로써 응답한다. 물론, 이는 두 비트의 상태를 다시 동일하게 하므로, 두 비트에 대한 XOR 결과를 0으로 할 것이고, 플래그를 클리어한다. HW 플래그 정보에 대한 SW 응답은 플래그의 중요성에 따라서, 확인, 명령, 리셋 또는 초기화로서 해석될 수 있다.
다른 방향에서, SW는 특정 중요성의 일부 비트쌍을 위해 XOR 결과를 0으로 함으로써 명령을 생성한다. 일례는 100MUT 리포트를 생성하기 위한 명령이다. HW가 명령을 수신한 경우, XOR 결과를 다시 1로 하기 위해 제어하에서 비트를 변경시킴으로써 확인할 수 있다.
도 88을 참조하여 명령 및 확인의 일례로서 한 세트의 비트를 이용하기 위해, 세마포어 전반부 워드는 소프트웨어 제어된 ss2AdjEndMsSW 비트(원)를 포함한다. 세마포어 후반부 워드는 HW 제어된 대응부 ss2AdjEndMsHW(역시 원)를 포함한다. ss2AdjEndMsSW 비트는 "통상의 수 밀리초를 처리하는 대신에, 추가의 밀리초를 처리하라"로 HW에 알린다. 이 특정의 경우에는, SW가 제어 하에서 비트 상태를 변경하여, 두가지 대응 비트의 XOR를 0으로 함으로써 HW에 대한 명령을 생성한다. HW가 명령을 완료한 후, XOR을 다시 1로 하기 위해 ss2AdjEndMsHW 비트 상태를 변경함으로써 전송 및 확인한다.
상태 플래그의 일례로서, 세마포어 전반부 워드는 fifo1OvrflwSW(원)을 포함한다. 세마포어 후반부 워드는 HW 제어된 대응부인 fifo1OvrflwHW(역시 원)을 포함한다. FIFO1 오버플로 조건이 발생할 경우, SS2가 그것을 독출할 기회를 갖기 전에 SS1이 데이터 일부를 겹쳐쓰는 것은, HW 제어하에서 비트 상태를 변경하여, 적용가능하다면, 대응하는 인터럽트를 생성함으로써 세마포어 워드와 통신하는 것을 의미한다.
도 87에서 비트의 제3 행은 특정 채널에 대한 인터럽트에 대한 인터럽트 인에이블 마스크 비트를 포함한다. 인터럽트는 세마포어 워드에 관련된다. HW가 상태 세마포어 비트를 설정하기를 원하는 이벤트를 갖는 경우, 역시 인터럽트를 생성할 수 있다. SW는 인터럽트가 단지 SS2로부터 오는 것이기 때문에, 어느 채널이 인터럽트를 생성했는지를 판정한다. 라인들은 인터럽트가 생성되었을 때 어느 채널이 서브시스템에 있었는지를 나타내지는 않는다. SW는 설정된 비트를 찾기 위해 모든 채널의 세마포어 워드를 판독함으로써 이를 수행한다. 이하에 인터럽트를 보다 상세하게 설명한다.
기술된 XOR 메시징에 따라 연산하지 않는 일부 특정 비트가 존재한다. 대신에, 이 비트들은 3비트의 AND로서 연산한다. SS2에 대한 3비트 및 SS3에 대한 3비트가 존재한다. 그 비트들은 "ON" 비트로서 언급되며, 그 채널이 처리되었는지의 여부를 나타낸다. 예를 들어, SS3은 3개의 "ON" 비트, 즉 SS2에 의해 제어된 1비트, SS3에 의해 제어된 1비트 및 SW에 의해 제어된 1비트를 갖는다. 이 소스들 중 임의의 하나는 "ON" 비트가 "OFF" 내포(connotation)하도록 할 수 있으며, 또는 그 제어하에서 비트 상태를 변경함으로써 ""ON" 비트를 턴오프"할 수도 있다. 최초의 서브시스템에서는 우선 그것이 중지해야 하는지의 여부를 세마포어 워드로부터 판정한다. 이어서 서브시스템은 처리를 시작할 수 있는지의 여부를 "ON" 비트로부터 판정한다. "ON" 비트가 턴오프되면, 서브시스템은 나가서 다음 채널에 대해 포인터를 로딩한다.
"ON" 비트를 턴 오프하는 조건의 하나는 종료 조건이다. 예를 들어, SS3가 처리될 PDI의 수를 처리하였으면, SS3는 자신의 "ON" 비트 및 자신이 제어권을 갖고 있는 SS2의 "ON" 비트를 턴 오프한다. 그리고, SS2가 자신의 "ON" 비트를 턴 오프한 후, SS2는 "스킵(skip)"할 채널로 간다.
도 88은 HW 제어된 세마포어, SW 제어된 세마포어 및 "정지(pause)" 세마포어[이는 도 86의 "인에이블 정지(enable pause)" 블럭에 대응함]를 포함하는 SS2, SS3 및 FIFO1 세마포어의 리스트이다.
정지 세마포어는 에러들을 포함하는 다수의 주변환경들에 의해 인에이블될 수 있다. 채널을 완료하는 SS2 또는 SS3에 의한 채널의 완료에 의해 또는 PDI의 완료에 의해 정지 세마포어가 인에이블되는 경우, SS2는 정지 및 스톨(stall)까지 진행할 것이다.
정지 세마포어에 응답하여, SW는 필요한 임의의 처리를 수행하고 적절한 파라미터들을 업데이트한다. SW는 채널 세마포어 워드의 SW 부분을 업데이트하여 돈(done) 세마포어를 클리어한다. SS2의 정지가 인에이블되면, SW는 HW 정지 레지스터를 클리어한다. SW는 정지를 촉진함에 있어서 채널 베이스 포인터를 판독한다. SW는 또한 정지 레지스터를 클리어한다.
세마포어 워드가 업데이트되어 채널 버퍼에 다시 저장될 때 인터럽트가 발생된다. 일 실시예에서, 인터럽트는 조정 유닛에 의한 세마포어 기입의 수신확인이 있으면 인에이블된다. 채널 돈 세마포어 및 PDI 세마포어는 각각 채널이 완료되거나 또는 PDI가 완료될 때마다 토글된다. 채널 돈 세마포어는 세마포어 워드에서의 채널 액티브 비트가 클리어될 때 다시 기입된다.
도시된 바와 같이, 다양한 인터럽트들이 서로 다른 엘리먼트들의 제어하에 있다. 타이머 인터럽트는 SS1에 의해 제어된다. 이들은 시퀀싱 보다는 타이밍에 더욱 관련이 있다. 구체적으로, 타이머 인터럽트는 FIFO1에 입력 데이터가 기입되는 타이밍에 관련된다.
전술된 바와 같이, 오버플로우 조건은 다른 서브시스템이 아직 처리할 기회가 없었던 데이터를 오버라이트하기 시작하는 하나의 서브시스템을 포함한다. 오버플로우는 인터럽트를 초래하는 에러 조건이다. SS2의 제어하에 있는 인터럽트들 중 하나로는 "FIFO1 오버플로우"가 있을 것이다. FIFO1 오버플로우가 SS2의 초기화시에 발생하면, 인터럽트는 채널을 셧 다운시키는 효과가 있을 것이다. 채널은 세마포어 워드를 업데이트하며, 빠져나갈 때 인터럽트 플래그(인에이블된 경우)를 설정한다.
SS2 처리 동안 FIFO1 오버플로우가 발생하면, 채널은 로컬 오버플로우 플래그를 설정하고 처리를 계속하며, 궁극적인 데이터는 "불용 데이터(garbage data)"로서 인식된다. 채널이 처리를 종료될 때는, 세마포어 워드를 업데이트하며, 빠져나갈 때 인터럽트 플래그(인에이블된 경우)를 설정한다. 채널은 로컬 오버플로우 플래그를 클리어한다.
또한, 서브시스템이 채널에 대한 데이터 처리를 종료할 때 인터럽트들이 발생된다. 예를 들어, SS2가 채널에 대한 데이터 처리를 종료할 때, 채널은 세마포어 워드를 업데이트하며, 빠져나갈 때 SS3 채널 돈 인터럽트를 설정한다. SS3가 채널에 대한 데이터 처리를 종료할 때, 채널은 세마포어 워드를 업데이트하며, 빠져나갈 때 SS3 채널 돈 인터럽트를 설정한다.
SS3가 데이터의 PDI-가치 처리를 종료하고, 채널 또한 완료되었을 때, 채널을 빠져나갈 시 S33은 SS3 채널 돈 및 PDI 돈 인터럽트(인에이블된 경우) 양자 모두를 설정한다. SS3가 PDI 처리를 종료하였지만 채널이 완료되지 않은 경우는, PDI 돈 인터럽트만이 설정되고, 세마포어 워드가 채널 버퍼에 다시 기입되며, SS3는 스톨한다(인에이블 된 경우).
시퀀서 기능의 다른 부분은 종료 조건들을 결정하는 것이다. 예를 들어, 시퀀서는 SS2 및 SS3 조합이 필요한 양의 처리를 완료하였는지 여부를 판정한다. 도 88은 SS2 및 SS3에 대한 종료 조건들의 리스트이다. SS2 관점에서의 종료 조건은 FIFO1 오버플로우이다. 이는 SS1이 SS2에 의해 아직 처리되지 않은 데이터를 오버라이트할 때 발생한다. 이러한 경우, SS2는 자신의 "ON" 비트 및 자신이 제어하는 SS3의 "ON" 비트를 셧 오프하고, 인터럽트를 보내어 SW로 하여금 무슨 일이 발생하였는지를 알게 해 준다. 그 때부터, 시퀀싱은 오버플로우가 발생한 채널에 도달할 때마다, 스킵할 것이다. 이는 SW 타임이 "ON" 비트를 리프로그램하기 전에 채널 RAM으로 진행하여 이를 리프로그램하게 한다.
SS3 관점에서, 종료 조건은 SS3가 PDI 카운트에 도달할 때, 처리 경로에 오버플로우가 존재할 때, 또는 "조기 종료 이벤트(early termination event)"가 발생할 때 발생한다. SS3가 PDI 카운트에 도달하면, 이는 사용가능한 데이터의 처리를 종료한 것이다. PDI 기반으로 사용가능한 데이터를 SS3가 처리하도록 리콜한다. SS3는 특정 수의 PDI에 대해 동작하도록 프로그램될 수 있다. 적용가능한 수의 PDI에서의 데이터가 SS3에 의해 처리되어 논-코히어런트하게(non-coherently) 축적되면, SS3는 세마포어 워드에 종료 조건을 나타내는 비트를 설정한다.
조기 종료는 특정 파라미터들이 초과되는 것에 의해 초래될 수 있다. 예를 들어, 코히어런트 RAM 및 논-코히어런트 축적(논-코히어런트 합산과 관련된 지수)과 관련된 오토스케일 값들이 존재한다. 그 값이 범위를 초과하거나, 또는 매우 급속하게 증가하면(큰 지수값에 도달하는데 얼마나 많은 합산이 걸리는가 하는 것이 이러한 것을 결정하는 방법임 - 비교적 큰 지수 값에 도달하는데 비교적 적은 합산이 걸린다면, 신호가 매우 강하다고 말할 수 있음), 강한 신호를 가진 것이므로 100 PDI 모두를 카운트할 필요는 없다. 셧 다운시켜 SW가 들어오게 할 수 있다.
SW는 또한 채널을 명백하게 셧 다운시키기 위해 종료 명령을 할 수 있다. 종료 조건을 생성하는 것은 채널들간 RAM의 공유를 고려하는 것이기 때문에 SW가 채널을 부분적으로 셧 다운하는 명백한 방식이다. 채널이 FIFO2로부터 데이터를 풀 아웃하기 이전에 채널을 셧 다운하는 것은 바람직하지 못할 것이다. FIFO2로부터의 데이터를 처리하는 것은 실제로는 중요하지 않으며; 다음 채널이 이러한 공유 포인터를 주목할 것이기 때문에 자신의 포인트를 영역 넘어로 전개시키는 것이 중요한 것이다. 이는 SW로 하여금 SS3에게 셧 다운하라라는 말을 할 수 있게 하며, 처리하도록 지원되는 곳을 넘어서 포인터를 전개한 이후에만 가능하다. 처리가 지원되는 곳은 기본적으로 SS2가 SS3에 대해 버퍼에 집어넣은 데이터이고, 이러한 데이터는 컨텍스트를 벗어나기 이전에 SS3에 의해 풀 아웃되어야 한다.
종료 및 조기 종료는 짝수 및 홀수인 1/2 주파수들을 고려한다. 예를 들어, 10 밀리초 동안의 SS2 처리는 홀수 1/2 칩들의 10 밀리초, 짝수 1/2 칩들의 10 밀리초 및 다중 주파수 스텝들에 대한 10 밀리초를 의미할 것이다. 그러므로, SS3는 SS2가 풋 인한 것은 무엇이든지 풀 아웃하여야 한다. SS3는 데이터가 홀수인지 또는 짝수인지 여부 및 얼마나 많은 데이터가 존재하는지를 안다. 따라서, SS3는 기대되는 데이터 모두를 풀 아웃하고 나서 종료한다. 이에 따라, 종료 조건들의 구체적인 특징들은 당시 발생하는 처리의 타입에 다소 의존된다.
지금까지 신호 처리 컴포넌트(67-101) 등 신호 처리 컴포넌트에서의 동작들의 시퀀싱, 및 컴포넌트 엘리먼트 인터럽트와 종료 조건들 사이에서 메시지를 알려주는 세마포어 워드의 설명을 개시하였다. 이하, 시퀀서 엘리먼트들 및 그 기능들의 실시예에 대해 설명한다.
도 90은, 도 69의 시퀀서(69-313a) 등과 같이, 신호 처리 서브시스템에 대한 시퀀서('SS2 시퀀서'라 명명됨)의 실시예에 대한 블럭도이다. 신호 처리 서브시스템 시퀀서는 입력 레지스터, 즉 입력 포트를 포함하는데, 이를 통해 채널 RAM으로부터 데이터를 판독한다. 신호 처리 서브시스템 시퀀서는 또한 출력 레지스터, 즉 출력 포트를 통해 채널 RAM에 데이터를 다시 기입한다. 일 실시예에서의 마스터 컨트롤 엘리먼트는 신호 처리 서브시스템 시퀀서를 제어하는 스테이트 머신이다. 이는 특정 어드레스 베이스에 대해 데이터를 어드레스한다. 예를 들어, 채널 RAM에 대해 채널 베이스 어드레스가 존재하며, 기타 다양하게 할당된 RAM 영역들(코히어런트 RAM, NCS RAM 등등)DP 대한 베이스 어드레스가 존재한다. 베이스 어드레스는 처리중인 채널 레코드를 나타내며, 채널 레코드로의 액세스는 베이스 어드레스에 대한 것이다. 마스터 컨트롤러는 신호 처리 서브시스템 시퀀서의 동작을 제어한다. 입력 포트는 분류된 파라미터들을 풀인하고 이들을 마스터 컨트롤러에서 필요한 것으로서 저장한다. 처리의 끝에서 시퀀서는 업데이트된 파라미터들을 출력 포트를 통해 채널 RAM에 다시 기입한다.
도면의 상부에는 신호 처리 서브시스템을 제어하는데 사용되는 데이터가 도시된다. 도 83을 참조하여 언급된 바와 같이, 채널 RAM은 특정 모드에서 동작하도록 서브시스템을 구성하는데 필요한 파라미터들을 포함한다. 세마포어 워드 또한 신호 처리 서브시스템을 제어하는데 사용된다. 세마포어 워드는 커맨드 및 상태 정보를 포함한다. 세마포어 워드는 신호 처리 서브시스템, FFT 서브시스템 및 소프트웨어간 통신을 위해 사용되며, 이를 액세스할 필요가 있는 모든 엘리먼트들이 액세스할 수 있는 임의의 메모리 영역에 저장될 수 있다. 일 실시예에서, 세마포어 워드는 채널 RAM에 저장된다.
일 실시예에 따른 RAM 어드레스의 생성이 도 91에 도시되는데, 이는 버퍼, 즉 RAM 영역, 베이스 어드레스, 즉 오프셋 어드레스와 조합되어 신호 처리 서브시스템 액세스에 대한 실제 RAM 어드레스를 산출하는 채널 베이스 어드레스(ss2CntrlRAMAddr)를 도시한다. 버퍼 베이스 어드레스 또는 채널 베이스 어드레스의 선택은 마스터 컨트롤러로부터 멀티플렉서로의 선택 신호로 이루어진다.
도 92는 도 90의 시퀀서의 동작을 나타내는 흐름도이다. "초기 시작(initial start)"이라 명명된 지점에서, SS2가 리셋된다. 세마포어 워드는 SW에 의해 판독된다. 판정 블럭(90-2802)에 도시된 바와 같이, 채널이 정지되면, 정지 플래그가 클리어된다. 채널이 오프가 아니고 정지되지 않으면, 채널이 활성화된다. 그러면, SW는 90-2804에서 턴 온 시간을 주목하여 입력 FIFO(FIFO1)에 채널이 처리하기에 충분한 데이터가 있는지 여부를 판정한다. '아니오'인 경우, SW는 다음 채널로 이동하고; '예'인 경우, SS2가 초기화되는데, 이는 채널 RAM 및 기타 메모리 영역들로부터 데이터를 풀링하는 것을 포함한다. FIFO1 및 FIFO2 또한 채널에 대해 초기화된다. SS2는 조절가능한 수의 밀리초 동안 동작된다. 90-2808에 도시된 바와 같이 교차-상관 처리가 발생하도록 프로그램되는 경우, 짝수 1/2 칩들의 최초 동작 이후 수행된다. 90-2810에 도시된 바와 같이, ㅊ차-상관 처리가 발생되도록 프로그램되지 않으면, 처리할 더 이상의 주파수가 존재하는지 판정된다. '예'인 경우, 도시된 바와 같이, SS2의 "위치(position)"가 인입 데이터에 대해 조절되고, SS2, FIFO1 및 FIFO2가 채널에 대해 다시 초기화된다.
더 이상 처리할 주파수가 없으면, 즉, 원하는 다수의 짝수 및 홀수 1/2 칩들 및 주파수 상태들이 처리되었으면, 셧 다운 상태가 저장되고, 시퀀서는 메모리로 진행하여 세마포어 워드를 업데이트하고 인에이블된 인터럽트들을 설정한다. 채널은 비활성화되고, 채널 활성화에 대해 설정되었던 플래그가 리셋된다. 채널 RAM 베이스 포인터가 업데이트되고, 92-2812DPTJ 도 90의 마스터 컨트롤러가 여전히 온인지- 즉, SS2가 리셋되기 이전에 더 이상 수행되어야 할 처리가 있는지가 판정된다. 마스터 컨트롤러가 온이 아니면, SS2가 리셋된다.
마스터 컨트롤러가 온인 경우, 92-2814DPTJ 채널이 래핑으로 인해 스톨되는지 판정된다. 그렇다면, 시퀀서는 래핑 조건이 더 이상 존재하지 않을 때까지 래핑 조건을 체크하면서 그 상태를 유지한다. 래핑 조건이 클리어되면, 시퀀싱은 세마포어 워드를 다시 판독하는 것으로 복귀한다.
판정 블럭 92-2802로 되돌아가서, 채널이 오프이면, 본질적으로 SS2는 채널 RAM 포인터를 업데이트하고 진행하는 것에 의해 다음 채널로 이동한다.
판정 플럭 92-2804FH 되돌아가서, 충분한 데이터가 존재하지 않는다는 것을 턴 온 시간 체크가 나타내면, 92-2806에서 오버플로우 조건이 존재하는지 판정된다. '아니오'이면, 채널이 비활성화된다. 오버플로우조건이 존재하는 경우, 이러한 것을 나타내도록 세마포어 워드가 업데이트되고, 채널이 비활성화된다.
판정 블럭 92-2808로 되돌아가서, 교차-상관이 수행될 것이면, 교차-상관을 위해 SS2 및 FIFO2가 초기화된다. 교차-상관기가 동작되고, 교차-상관 SVs가 더 존재하는지 판정된다. 존재한다면, SS2 및 FIFO2는 교차-상관을 위해 다시 초기화된다. 존재하지 않는다면, 세마포어 워드가 업데이트되고, 처리는 판정 블럭 92-2810으로 돌아간다.
SS2 "동작(run)"의 시작시에 여러 파라미터들이 초기화된다. 이는 이하의 파라미터들을 포함할 수 있다:
처리해야할 밀리초의 수;
캐리어 가속도;
캐리어 주파수;
캐리어 위상;
코드 위상;
T1 내에서의 밀리초 카운트;
어드레스 스페이스 및 랩 내에서의 T1 카운트;
현재 T1의 베이스의 어드레스;
현재 코히어런트 버퍼의 베이스의 어드레스;
오토스케일 및 포화 플래그; 및
FIFO1의 라인 블럭 및 랩.
도 93은 도 71의 시퀀서(67-315a) 등 SS3에 대한 시퀀서의 통작을 도시하는 흐름도이다. 일반적으로 말해서, PDI 기반의 데이터 처리는 점선 우측에 "동작/기능(operations/functions)"로 표현된다. "초기 시작(initial start)"이라 명명된 지점에서, SS3가 리셋된다.
세마포어 워드는 SW에 의해 판독된다. 판정 블럭 93-2902에 도시된 바와 같이, 채널이 정지되는 경우, 정지 플래그가 클리어된다. 채널이 오프되지 않고 정지되지 않은 경우, 채널은 활성화된다. SS3 및 FIFO2는 채널에 대해 초기화된다. 판정 블럭 93-2902에서는, 사용가능한 FIFO2 데이터가 존재하는지 판정된다. 이러한 판정은 이미 논의된 바와 같은 랩핑 규칙 구현의 일부이다. 사용가능한 FIFO2 데이터가 존재하지 않으면, 판정 블럭 92-2906에서는 교차-상관이 수행되어야 할 지 판정된다. '아니오'이면, 하나의 T1 또는 PDI에 대해 FFT가 인에이블된다. FFT 처리는 93-2908에 도시된 바와 같이 T1이 종료될 때까지 계속된다. T1에 대한 FFT 처리가 종료될 때, 93-2912에 도시된 바와 같이, PDI에 대한 FFT 처리가 종료되었는지 판정된다. PDI에 대한 FFT 처리가 종료될 때, PDI의 수, 홀수 및 짝수 1/2 칩들의 수, 및 주파수 카운터가 업데이트된다. 하드웨어 트래킹 루프는 다중 파라미터들을 표시된 바와 같이 업데이트한다. 그리고, 93-2914에서, PDI 정지가 인에이블되는지 판정된다. '아니오'이면, 93-2916에서 종료 조건이 존재하는지 판정된다. 종료 조건이 존재하면, SS2 및 SS3에 대한 턴 오프 플래그가 설정된다. 종료 조건이 존재하지 않으면, 처리는 93-2904로 돌아간다.
PDI 정지가 인에이블되거나, 또는 정지 플래그가 설정되면, 93-2916에서, 정지 플래그는 클리어되고, 종료가 검출된다.
93-2926으로 돌아가서, 교차-상관이 수행되어야 한다면, 93-2908에서 교차-상관 데이터가 사용가능한지 판정된다. '아니오'이면, 결과는 교차-상관이 수행되지 않아도 되는 경우, 즉 처리를 위해 FFT가 인에이블되는 경우와 동일하다. 사용가능한 데이터가 존재하면, 교차-상관기 및 FFT가 인에이블되고, 다음 교차-상관 포인터가 판독된다. 그리고, 처리는 93-2908로 돌아간다.
93-2902으로 돌아가서, PDI가 수행되지 않으면, 93-2910에서 종료 조건이 체크된다. 종료 조건이 존재하면, 처리는 93-2904로 돌아간다. 종료 조건이 존재하지 않으면, SS2 및 SS3에 대한 턴 오프 플래그가 설정되고, 처리는 93-2904로 돌아간다.
93-2904에서의 FIFO2 데이터 가용성에 대한 판정으로 돌아가서, 사용가능한 충분한 데이터가 존재하지 않으면, 93-2906에서 SS2에 채널이 존재하는지 및 이것이 스톨되는지 판정된다. 이는 랩핑 규칭의 또 다른 구현이다. SS2에 채널이 존재하고 채널이 스톨되지 않으면, 처리는 93-2904로 돌아간다. SS2에 채널이 존재하지 않거나 또는 채널이 스톨되지 않으면, 컨택스트 보고, 및 인에이블C되면, 100MUT(100 밀리초) 보고를 포함하는 일련의 보고가 생성된다. 도면의 우측에 작은 점선 내에 도시되고 명명된 바와 같은 하드웨어 트래킹 루프(HWTL)가 반복된다. 셧 다운 상태가 저장된다. 세마포어 워드가 업데이트되고, 인에이블된 인터럽트가 설정된다. 채널이 비활성화되고, 채널 RAM 베이스 포인터가 업데이트된다.
93-2922에 도시된 바와 같이, SS3 시퀀서의 마스터 컨트롤러가 온이면, 93-2902에서 세마포어 워드가 판독되고 처리가 계속된다. 마스터 컨트롤러가 온이 아니면, SS3가 리셋된다.
93-2902FH 돌아가서, 채널이 온이 아니면, 93-2924에서 SS3에 채널이 존재하는지 채널이 스톨되지 않는지 판정된다. 채널이 SS3에 존재하지 않거나 스톨되지 않으면, 채널이 SS3에 존재하거나 스톨될 때까지 처리가 93-2924에 남게 된다. 그리고, 채널 RAM 베이스 포인터를 업데이트하는 것에 의해, SS3는 본질적으로 다음 채널로 이동한다.
정지가 인에이블되면, SW는 SW가 프로그래밍에 진입하여 이를 변화시키거나 데이터를 수집할 수 있도록 서브시스템이 특정 접속점에서 정지하기를 원한다는 것을 나타낸다. 이는, 예를 들어 PDI 기반으로 또는 서브시스템으로의 채널 진입에 의한 것일 수 있다.
실시예의 GPS 시스템은 SPS 위성의 취득 및 트래킹에 사용되는 제어 모듈을 포함한다. 이러한 모듈의 일 예가 이하 논의된다. 이하의 약어들이 본 명세서에 사용된다: Rx-수신기(receiver), NVM-비휘발성 메모리(non-volatile memory), TTFF-최초 고정까지의 시간(time to first fix), 및 ATX-취득 트랙 교차 상관(acqusition track cross-correlation).
이하의 논의는 강한 신호 동작 및 중간 신호 동작용 아키텍쳐를 위한 트래킹 시스템의 상세를 나타낸다. 다음과 같은 약어들이 이하에 사용될 수 있다: 알파, 베타: 서로 다른 경우 서로 다른 값들을 취하는 일반적 필터 계수들; FFT: 고속 푸리에 변환(Fast Fourier Transform); SPS: 위성 위치확인 시스템(Satelite Positioning System); HWTL: 하드웨어 트래킹 루프(Hardware Tracking Loop); NCO: 수치 제어 발진기(Numerically Controlled Oscillator); PDI: 전치 검출 집적(Pre Detection Integration); RAM : 랜덤 액세스 메모리)(Random Access Memory); S_Gain: 트래킹 루프를 표준화하기 위해 채택된 필터링된 신호 진폭 추정(Filtered Signal amplitude estimate employed to normalize the tracking loops); SWTL: 소프트웨어 트래킹 루프(Software Tracking Loop); T1: 서브시스템(2)에 대한 기본 시간 에포크(Basic Time epoch for Subsystem 2); 임계치, 임계치1, 임계치2: 서로 다른 시간에 서로 다른 값들을 취하는 임계치 값들(Generic Threshold value that may take different values at different times).
도 94는 지연 회로(94-2002 및 94-2004), 알파 승산기 회로(94-2006 및 94-2008) 및 베타 승산기 회로(94-2010 및 94-2012)를 포함하는 트래킹 루프(94-2000)를 도시한다. 또한, 고정 승산기(94-2014), 비교 회로(94-2016) 및 합산기(94-2018 및 94-2020)가 도시된다.
트래킹 루프(94-200)는 코드 상태에 대한 변화들을 (초기에-늦게) 표준화 트리커링하기 위한 근사를 나타낸다. N은 코드 상태에서 변화될 최하위 비트(LSBs)의 수이다.
AAGC 표준화/오토스케일은 다음과 같이 주어질 수 있다:
S_GAIN(t+1) = Alpha*S_Gain + Beta*(∥Ip∥ + ∥Qp∥)
여기서, S_Gain은 루프 계수들을 표준화하기 위해 채택된 것이며, "t"는 시간 표시이다. S_Gain은 또한 초기 마이너스 레이트 출력을 표준화하여 하드웨어에서의 코드 상태를 결정하도록 채택될 수 있다.
소프트웨어 트래킹 루프: SWTL은 성공적인 취득 프로세스의 끝에서 소프트웨어 컨트롤에 의한 HWTL과 동일한 시간에 활성화될 것이다. SWTL은 예를 들어 100ms 레이트로 동작된다. 일 실시예에서, SWTL은 PDI 레이트로 버퍼링된 보고 및 NCO 상태에 대한 보고를 포함한다. 소프트웨어는 네비게이션 프로세스로부터의 지원 정보를 사용하여 또는 선택적으로는 외부 소스를 사용하여 보다 정확한 에러 추정을 계산하여, HWTL을 조정하기 위해 대략 매 100ms 마다 정정을 구성할 것이다. 특정 경우에 있어서, HWTL은 디스에이블되고 SWTL이 자율적으로 동작하여, 100ms와는 다른 레이트로 하드웨어 NCO에 대한 정정을 생성한다. 그리고, 하드웨어는 보다 높은 레이트로 인터럽트를 제공하고, SWTL은 이러한 경우 100ms보다 빠른 레이트로 동작할 것이다. HWTL은 각 채널에 대해 독립적으로 제어 비트를 사용해서 디스에이블될 것이다.
하드웨어 입력들. 하드웨어는 NCS 버퍼 및 트랙 히스토리(TH) 버퍼에 예를 들어 100ms 레이트로 입력을 제공한다. 입력은 다양한 오프셋에 대한 각 PDI에서의 I 및 Q 상관 출력들, PDI에 대한 노이즈 합산, 오토스케일 값, PDI마다 샘플링된 NCO 상태, 측정 보고의 시간을 나타내는 시간 표시 등을 포함할 것이다.
상태 초기화. 취득 상태로부터의 정보를 사용하여 이하의 상태들이 초기화될 것이다: a) 코드 상태, b) 캐리어 주파수, c) 캐리어 위상, d) S_Gain(예를 들어, 진폭 추정치가 사용가능한 경우).
코드 구별자는 다음과 같은 식에 의해 주어질 것이다:
D = │E│ - │L│
│E│ = Alpha * │Ee│ + Beta * │Ee+│
│L│ = Alpha * │Le│ + Beta * │Le+│
여기서, Ee 및 Le는 프롬프트로부터 하나의 탭 오프(tap off)에 대한 이전 및 나중 I 및 Q 값이고, Ee+ 및 Le+는 프롬프트로부터 두개의 탭 오프에 대한 이전 및 나중 I 및 Q 값이며,
Filtered Code Error = Alpha * Filtered Code Error + Beta * D
캐리어 위상 판별기는
Φ = arctan(Qp, Ip)로 주어지고,
여기서, Φ는 각 PDI에 대해 계산되고, dΦ는 소프트웨어내에서 유지된다.
캐리어 주파수 판별기는
δf = Alpha*(f+ - f_) + Beta*(Ip(t+1)*Qp(t) - Ip(t)*Qp(t+1)로 주어지고,
여기서 t는 시간 인덱스이다.
아키텍쳐는 예컨대, PDI레이트에서 예컨대, 100ms에서 하드웨어로 복귀하는 보정화 함께, 미리 선택된 레이트에서 트랙킹 수식을 반복한다.
위상 트랙킹 루프 수식은,
Carrier Phase+=Carrier Frequency + K1*dΦ + Aid 1
Carrier Frequency+= Carrier Frequency Rate + K3*dΦ + + Aid 2
Carrier Frequency Rate +=K5*Φ + Aid 3 로 주어진다.
주파수 트랙킹 루프 수식은
Carrier Frequency += Carrier Frequency Rate + K4*δf + Aid 2
Carrier Frequency Rate += K6 * δf + Aid 3 으로 주어진다.
코드 루프 수식은,
Code Phase += Scale*(Carrier Phase(t)-Carrier Phase(t-1))K7*D + Aid4 로 주어진다.
K7은 Kmax(고 대역폭 값)로 초기화되고, 다음과 같이 업데이트된다.
K7(t+1) = Alpha *K7 + Beta* Code Error Estimate
If K7 > KmaxK7 = Kmax
If K7 < Kmin K7 = Kmin
트랙킹 루프 모드 변이는 이득 K1 내지 K7을 설정함으로써 제어됨을 유의한다. AGC 정규화에 있어서, 다음이 적용된다.
S_Gain(t+1) = S_Gain_Rate*Gamma + Alpha * S_Gain + Beta*(│Ip│ + │Qp│ )
S_Gain_Rate(t+1) = Alpha*S_Gain_Rate + Beta*[(│Ip(t)│+│Qp(t)│- (│Ip(t-1)│ + │Qp(t-1)│ )]
여기서, S_Gain 및 S_Gain Rate는 신호의 최대 추정치 및 신호에 대한 최대 변화의 레이트를 나타낸다. S_Gain 파라미터는 트랙킹 루프 수식 이득을 정규화하는데 이용될 수 있다.
하나의 구현례에서, 아키텍쳐는 또한 록 디텍터(Lock Detector)의 손실을 이용한다. 예컨대, 코드 록에 대하여, 아키텍쳐는 다음과 같은 레이트에 따른 신호 대 잡음 비를 결정할 수 있다.
Noise Power = Sum(In*In + Qn*Qn)
여기서, sum은 예컨대, 100ms 시간 주기에서 캐리 오버되고, In 및 Qn은 PDI 레이트에서 하드웨어 리포트내의 noise sum으로부터의 I 및 Q 출력이다.
Signal Power = Sum(Ip*Ip + Qp*Qp)
여기서, sum은 예컨대 100ms시간 주기에서 캐리 오버되고,
Signal to Noise Ratio = Signal Power/Noise Power
Filtered SNR = Alpha*Filtered SNR + Beta*Signal to Noise Ratio + Gamma*SNR_Rate
SNR_Rate = Alpha * SNR_Rate + Beta*[Signal to Noise Ratio(t) - Signal to Noise Ratio(t-1)]
다음에, 필터링된 SNR이 임계값 보다 작을 때, 록의 손실이 발생한다.
캐리어 위상 록에 있어서, 아키텍쳐는 모든 PDI에 대해 계산된 2개의 quadrant arctan 함수를 이용하여 필터링된 위상 에러를 추정할 수 있는데, 이것은 예컨대 다음과 같다.
Φ = arctan (Qp, Ip)
Filtered Φ = Alpha* Filtered Φ + Beta *Φ
다음에, Filtered Φ가 임계값보다 크면, 록의 손실을 표명한다.
캐리어 주파수 록에 있어서, 아키텍쳐는 필터링된 주파수 에러를 추정할 수 있다.
δf = Alpha*(f+ - f_) + Beta*(Ip(t+1)*Qp(t) - Ip(t)*Qp(t+1))
여기서, δf는 PDI레이트에서 계산되고,
Filtered δf = Alpha*Filtered δf + Beta*δf
다음에, 필터링된 δf<임계값이면, 록의 손실을 표명한다.
하드웨어에 대한 업데이트는, 예컨대, 소프트웨어로부터 입력으로서 100ms마다, HWTL 수식에 대한 Aid의 형태로 존재한다. 아키텍쳐는 다음에 따라 Aid를 결정한다.
하드웨어 Aid에 대한 소프트웨어 = 소프트웨어 추정치 - 하드웨어 추정치
HWTL이 디스에이블될 때, 위상 및 주파수 및 레이트에 대해 하드웨어 추정치는 0이다. 하드웨어는 예컨대 소프트웨어가 미리 선택된 하드웨어 레지스터에 기입할 때, aid를 구현한다.
하나의 구현례에서, 비트 동기화는 예컨대, 20-100ms레이트에서 동작하고, 소프트웨어에서 구현된다.
비트 동기화 프로세스에 대한 입력은 하드웨어로부터, 20 오프셋(프로그램가능)에 대한 20ms 축적 (PDI)을 포함한다. 입력 어레이 히스토그램(20)은 다음에 20ms PDI 전력 축적을 포함한다.
히스토그램은 각 위성(SV)에 대해 다음 수식을 이용하여 축적된다.
AccumHistogram[20]+= Histogram[20]
오프셋 정보가 이용가능할 때, 다음 수식을 이용하여 복수의 위성으로부터 Histogram 을 축적한다.
Accum HistogramMultiple SV[20]+= AccumHistogram[20+SV Offeset]
다음에, 아키텍쳐는 동기화를 위해 비트 로케이션을 출력하도록 도 95에 도시된 바와 같이 다음의 동기화 기법 95-2100을 이용할 수 있다. 우선, 히스토그램 피크 및 제2 피크가 검출된다(단계 95-2102). 다음에, ((Histogram Peak > 임계값)&&(Histogram Peak - Histogram Second Peak)> 임계값)(단계 95-2104)이면, 다음에 비트 동기화가 완료되고, 비트 로케이션이 출력된다(단계 95-2106). 그렇지 않으면, 축적은 계속된다(단계 95-2108).
대안적인 접근법은 동기화를 위한 비트 로케이션을 출력하도록 도 96에 도시된 바와 같이 동기화 기법(96-2200)을 이용할 수 있다. 우선, 아키텍쳐는, 예컨대, 축적된 히스토그램에 대해 20ms 폭으로 삼각형을 보간하여 코스트 함수를 결정한다(단계 96-2202). 다음에, Cost Function(offset) = Sum(triangle(ms)*Accum Histogram(ms-offset))은 20개의 값에 대해 캐리된 합과 함께, 결정된다(단계 96-2204). 코스트 함수(offset)에 대한 최대값은 다음에 비트 동기화 오프셋을 제공한다. 다음에, [max(cost function(offset)>Threshold)&&{max(cost function(offset)) - second max(cost function(offset))}>Threshold)]이면(단계 96-2206), 다음에 비트 동기화 성공을 표명한다(단계 96-2208).
데이터 복조는 예컨대, 소프트웨어로 구현하여, 20-100ms 레이트에서, 동작할 수 있다. 복조는 입력으로서, 비트 동기화 성공 이후에, 비트 경계에 대해 정렬된 20ms에 대해 Ip 및 Qp를 수용할 수 있다. 이러한 구현례는 다음에 따라 처리되는데, 즉, 캐리어 위상 록이면, 다음에 데이터 비트 = sign(Ip);else Data Bit = sign[(Ip + j*Qp)*exp(j*Carrier Phase Error Estimate)], 여기서 j는 복소수 계수이다. 이러한 접근법은 캐리어 위상 추정치 에러가 이전 비트로부터 생성될 때 차분 디코딩의 더 일반적인 경우이다.
프레임 동기화는 예컨대, 소프트웨어 구현으로 20-100ms레이트에서 동작할 수 있다. 프레임 동기화는 SV당 2진값의 어레이로서 제공된 데이터 복조후에 비트 스트림상에서 동작할 수 있다.
프레임 동기화는 Cold Start - Preamble 동기화에 따라 처리될 수 있다. 아이덴티티 프리앰블은 비트 패턴내에 있게 된다. 미리 결정된 Hand-Over-Word(HOW)를 디코딩한다. 6초후에 제2 프리앰블을 식별하고 1 만큼 오프하여 제2 HOW를 식별한다. 대략적인 시간이 이용가능할 때, 프레임 동기화는 1) 프리앰블을 식별함에 따라 처리된다. HOW를 디코딩한다. HOW가 시간 불확실성내에 있으면, 다음에 프레임 동기화 완료를 선언하고, 2) 프레임 동기화를 확인하고, 식별 프로세스를 반복하고, 6 초 오프셋으로 HOW의 1만큼의 변화를 승인한다.
Aiding 정보가 이용가능하고, 1 SV가 프레임 동기화를 완료할 때, 다음에, 제1 SV 프레임 동기화로부터의 시간을 이용하여 프레임 동기화에 필요한 SV에 대한 프리 포지셔닝을 결정하고, 로컬 시간에 관련된 관심의 대상인 SV에 대해 프레임 시작을 결정하고, 프레임 동기화 정보를 설정한다. Aiding 비트가 이용가능할 때, 이용가능한 aiding 비트를 이용하여 코스트 함수를 결정하고, Cost Function(offset)=Sum(Aiding Bits(bit number)* Bit Stream (bit number + offset)), 여기서 캐리 오버된 Sum으로, 예컨대 모든 이용가능한 aiding 비트를 결정한다. 다음에, SV 오프셋 정보가 이용가능하면, 다음 수식을 이용하여 복수의 SVDP 대한 코스트 함수를 결합한다.
Combined Cost Function (offset)+= Cost Function(offset + SV offset)
If [max((Combined Cost Function(offset) > Threshold)&& (max(Combined Cost Function(offet)) - second max(Combined Cost Function(offset)) > Threshold)], 다음에 프레임 동기화 종료를 선언한다.
다수의 통신 시스템은 하나 이상의 무선 주파수(RF) 신호를 수신하는 것에 의존한다. 이용가능한 주파수 대역이 더 압축됨에 따라, 상이한 통신 시스템에 의해 이용되는 다수의 무선 주파수는 서로간에 간섭을 하기 시작한다. 상이한 통신 시스템에서 발생하게 되는 하나의 유형의 간섭은 반송파 간섭(CW) 간섭 또는 더 통상적으로 CW 재밍이라 불리어진다.
CW 재밍은 CDMA 셀룰러 전화 시스템 및 위성 포지셔닝 시스템과 같은 확산 스펙트럼 시스템에서의 간섭의 소스이다. 확산 스펙트럼 통신 시스템은 주파수 스펙트럼을 지나 확산하는 더 낮은 전력 신호를 이용하고, 다른 통신 시스템에서 이용되는 반송파로부터 간섭에 영향을 받는다. CW 재밍의 문제는 더 복잡한데, 그 이유는 확산 스펙트렘에 의해 커버되는 지리적 영역이 예컨대 미국의 글로벌 포지셔닝 시스템과 같은 전 지구를 포함하기 때문이다.
CW 재밍 신호를 제거하기 위한 시도는 주파수 이용을 조절하고, 무선 수신기에 전용 회로를 부가하여 발생할 수 있다. 무선 수신기에 포함된 부가된 회로는 부가적인 전력 소비 및 비용을 발생시킨다.
따라서, 전술한 그리고, 이전에 경험된 여러 단점을 극복하는 CW 재밍 신호를 식별 및 제거하기 위한 방법 및 시스템이 필요하게 된다.
본 발명에 따르는 시스템은 미약한 신호와 함께 CW 재밍 신호를 포함하는 확산 스펙트럼 신호를 수신할 수 있는 수신기를 제공한다. 신호는 CW 재밍 신호가 식별되고, 트랙킹되고, 재생될 수 있도록 하는 교차 상관기와 함께 처리된다. 복사된 CW 재밍 신호는 복조후에 수신된 신호로부터 차감되고, 따라서 미약한 신호가 처리될 수 있다.
본 발명의 다른 시스템, 방법, 특징 및 장점은 다음의 도면 및 상세한 설명의 예를 통해 당업자는 더 잘 알 수 있다. 이러한 모든 부가적인 시스템, 방법, 특징 및 장점은 이러한 설명에 포함되고, 본 발명의 범주내에 포함되며, 부가된 특허청구범위에 의해 보호되도록 의도된다.
도 97로 돌아가면, 교차 상관기를 이용하여 미약한 확산 스펙트럼 신호에서 강한 신호를 삭제하는 것을 기술하는 순서도(97-4600)가 도시된다. 확산 스펙트럼에 의해 제공되는 강한/미약한 또는 인접/멀리 떨어진 신호 분리 및 CDMA 확산 스펙트럼 시스템에서 이용되는 것과 같은 의사 랜덤 수(PRN) 코드 족은 족의 다양한 코드 멤버간의 교차 상관기에 의존하게 된다. GPS와 같은, 위성 포지셔닝 시스템의 경우에, 동일 주파수에서 2개의 신호의 분리(또는 1KHz의 경우에, 복수의 코드 반복 레이트)는 대략 21 내지 23 dB이다. 2개의 신호의 상대적 강도가 이러한 한계 이상에 의해 달라지면, 더 약한 신호는 확산 코드만을 이용하여 식별될 수 없다. 더 강한 신호의 효과를 제거하는 방법은 더 약한 신호가 트랙킹되면 적용된다.
교차 상관기 효과는, 상대적으로 강한 신호와 약한 신호간의 상대적 도플러 주파수 오프셋이 GPS 신호에서 복잡한 획득 코드(C/A)의 경우에서 1KHz의 정수배일 때 그 최대가 된다. 더 강한 확산 스펙트럼 신호의 존재에 따라 더 약한 확산 스펙트럼 신호를 트랙킹하는 문제에 대한 일반적인 해결책은, 더 약한 신호로부터 더 강한 신호를 제거하기 위해 측정되거나 계산될 수 있는 더 강한 신호간의 간섭의 모든 측면에 대한 전제에 기초한다. 이러한 해결책은 원하는 확산 코드를 선택하고 코드 위상 포지션을 설정할 뿐만 아니라 채널의 주파수 및 위상을 제어하는 능력을 갖는 임의의 복수 채널 수신기로 구현될 수 있다. 수신기는 전형적으로 2개의 채널을 이용하는데, 하나는 약한 신호를 트랙킹하는 것이고, 다른 하나는 강한 신호를 간섭하는 것이다. 그러나, 강한 신호를 트랙킹하는데 이용되는 채널은, 전력, 코드 위상 및 강한 신호의 주파수와 같은 특성이 대안적인 수단에 의해 얻어지거나 정확하게 추정되면 필요하지 않게 된다.
도 97에 일반적으로 도시된 바와 같이, 프로시져는 수신기의 제1 채널내의 강한 신호를 추적하는 것과 같이, 97-4604에서 획득된 강한 신호와 함께 97-4602에서 시작한다. 채널은 캐리어 신호의 위상 및 확산 코드와 함께 강한 신호의 신호 강도의 측정을 제공한다. 부가적인 채널은 부가적인 강한 신호(도 97에는 도시되지 않음)를 트랙킹하는데 이용될 수 있다.
그 수신된 주파수 및 신호 위상과 함께, 더 약한 신호의 확산 코드의 코드 위상은 공지된 방법에 의해 50Hz 네비게이션 데이터 코드 데이터(D)에 기초하여 예측된다(97-4606). 수신기의 제2 채널은 합성 캐리어 신호를 수신하고 예측된 약한 신호 성분을 트랙킹(97-4608)하는데 전용된다.
제2 수신기 채널은 예측된 주파수 및 신호 위상에서 제2 코드에 따라 유입 신호를 상관한다. 결과적인 인 페이즈 및 쿼드러쳐(I, Q) 측정값은 각각이 고유한 코드에 의해 확산되는 약한 신호 및 강한 신호 모두를 포함한다. 유입 신호에 따라 제2 신호, Code2R에 대한 복제 코드의 복수화에 의한 상관은 다음을 산출한다.
Code2R*(weak2*Code2+StrongX*CodeX+...)
여기서 weak2는 약한 신호2의 전력이고, Code2는 약한 신호 2를 방송하는 위성(2)에 대한 실제 코드이고, 강한 X(X = 1, 3, 4, ...)는 강한 신호 X의 전력이고, Code X는 신호에 포함된 위성 X에 대한 실제 코드이다.
프로덕트 Code2R*Code2는 수신된 코드 2 및 복제 코드 2의 자동 상관이다. 자동 상관 함수는 복제 코드가 수신된 코드와 정렬되면 1의 값을 갖는다. 이러한 코드 X와 복제 코드2의 교차 상관(Code2R*CodeX)은 다음에 97-4610에서 계산되어 합성 신호로부터 제거된다.
Code1 및 Code2는 모두 PRN 코드 족의 멤버이고, 그 자동 상관 및 교차 상과 속성은 공지되어 있다. 따라서, 그 교차 상관값을 얻기위해 Code1의 각각의 비트를 대응하는 Code2의 비트(시간내)로 승산함으로써 그 각각의 위상에서 2개의 코드의 교차 상관을 계산하는 것이 가능하게 된다. 2개의 코드간에 상대적인 도플러 주파수 오프셋이 존재하기 때문에, 코드의 위상은 시간동안 과거의 것을 처리하게 되고, 새로운 교차 상관 함수를 생성한다. GPS 시스템에 있어서 전형적으로 나타나게 되는 가장 큰 델타 코드 도플러는 초당 6개의 코드 칩과 동등한 9KHz 플러스 또는 마이너스(코드 칩당 1540 캐리어 사이클)이고, 따라서, 교차 상관값의 최대 재 계산 레이트는 대략 초당 6배이다.
최대 교차 상관은 1000Hz의 간격에서 발생하는 피크와 함께 제로의 주파수 오프셋에서 발생한다. 주파수 오프셋이 제로로부터 멀어짐에 따라 교차 상관의 감쇄가 존재하게 된다. 이러한 감쇄는 공지의 sin(x)/x 곡선을 따른다. 10ms 측정값이 트랙킹 또는 획득을 위해 이용되면, 감쇄 팩터는 sin(△freq*π/100Hz)/(△freq*π/100Hz)이다. 이것은 약 75Hz 델타 주파수에서 -10dB의 감쇄를 산출한다. sin(x)/x 곡선(즉, 국부적으로 최소 감쇄)에서의 다른 로컬 피크는 각각 -13.5 dB 및 -18dB의 감쇄로 150Hz 및 250Hz에서 발생한다. 이것은 10dB로 원하는 강한 신호 억압에 대하여, sin(x)/x 함수의 제1 로브만이 고려되어야 하지만, 부가적인 억압도 바람직하고, 전제 곡선이 고려되어야 함을 암시한다.
다음 단계는 계산(97-4612)을 수반하고, 이것은 각각의 강한 신호에 대해, 강한 신호 진폭과 계산된 주파수와 시간 영역(코드 위상) 교차 상관의 프로덕트이다. 약한 신호는 최종적으로 97-4614를 감산하여 추출되고, 합성 신호로부터의 프로덕트 및 프로세싱은 97-4616을 완료한다. 따라서 추출된 약한 신호는 다음에 공지의 수신기 회로에서 처리된다.
각각의 강한 신호에 대한 인-페이즈(I) 및 쿼드러쳐 진폭(Q)은 각각의 강한신호 자체의 개별적인 수신기내의 측정값에 의해 또는 독립적인 수단을 통한 추정에 의해 얻어진다. 강한 신호는 실제로 수신기의 위상 록 루프에 의해 트랙킹되므로, 강한 신호의 페이즈는 거의 제로 라디안으로 가정되고, 따라서 거의 모든 신호 전력은 인 페이즈 부분에 있게 된다.
제2 코드 코드 2와 함께 변조된 약한 신호 w2와 합산된 제1 코드 코드 1과 변조된 강한 신호 S1을 포함하는 신호는 (S1* code1 + w2*Code2)를 생성한다. 2개의 신호의 합은 제2 코드 Code2R의 복제와 상관되어 Σ{Code2R*(S1*Code1 + w2*Code2)}를 산출하고, 여기서 sum Σ은 약한 신호 w2를 변조하기 위해 이용되는 PRN코드의 모든 칩을 포함한다. 그 자체와 함께 코드의 자동 상관은 1 이며 따라서 이전 수식은 Σ{S1*Code1*Code2 + w2}가 된다. w2 를 얻기 위해 S1*Code1*Code2는 제거되어야 함을 알 수 있다. Code1 및 Code2를 알기 때문에, 그 교차 상관을 용이하게 계산할 수 있다. 이것은 별개의 채널에서 강한 신호를 독립적으로 트랙킹하거나, 임의의 다른 편리한 수단에 의해 수행될 수 있는 S1의 값을 추정할 수 있도록 한다. 이러한 계산된 값 S1*Code1*Code2는, 강한 신호 S1 및 약한 신호 w2가 동일한 주파수에 있으면 충분하다. 이전에 열거된 도플러 효과 및 다른 팩터에 의해 2개의 신호는 상이한 주파수에서 수신된다.
sin(x)/x 관계에서 이러한 주파수간에 상이함에 따라 교차 상관의 강도는 변한다는 것을 알 수 있다. 따라서, 강한 그리고 약한 신호간의 주파수에서의 차이에 기초하여 감쇄 팩터를 계산할 수 있고, 이것을 계산된 교차 상관에 적용할 수 있다. 또한, 하나 이상의 강한 신호가 존재하면, 감쇄 팩터는 각각의 강한 신홍 대해 계산된다.
교차 상관 팩터의 코드 의존부는, 단위 전력의 강한 신호와 제로 주파수 오프셋 및 약한 신호간에 교차 상관을 예측하기 위한 PRN 코드 생성기의 공지된 상대적 상태로부터 계산된다. 이 팩터는 대응하는 강한 신호의 진폭에 의해 승산되고, 복합 신호로부터 감산되기 전에 주파수 감쇄에 대해 조절된다.
PRN 신호를 변조하는데 이용되는 다양한 Gold 코드는 2개의 코드 시퀀스 G1 및 G2로부터 도출되고, 여기서 2개의 코드 시퀀스의 비트는, G2가 선택된 Gold 코드에 기초하는 G1에 비례하는 몇몇 비트 수를 오프셋한 후에 XOR 연산에 의해 결합된다.
이진수를 이용하는 XOR 연산은 ±1의 곱셈과 수학적으로 동일함을 알 것이다. 이로 인해, 이하의 등식을 ±1의 곱으로 표현하는 것이 가능하게 되며, 실제로는 XOR로 이진수로 구현될 수도 있다.
두 개의 C/A 코드 간의 상관은 일반적으로 이하와 같이 표현될 수 있다.
∑Sat1G1(I)*Sat1G2(I)*Sat2G1(I-offset)*Sat2G2(I-offset)*e-j△θI
여기서, I=0부터 1022가지의 합 인덱스 범위이다.
Sat1G1(I)=상태 I에 있는 위성 1의 G1 코더 칩의 값이다. 가능한 값은 ±1이다.
Sat1G2(I)=상태 I에 있는 위성 1의 G2 코더 칩 값이다. 가능한 값은 ±1이다.
Sat2G1(I)=상태 I에 있는 위성 2의 G1 코더 칩 값이다. 가능한 값은 ±1이다.
Sat2G2(I)=상태 I에 있는 위성 2의 G2 코더 칩 값이다. 가능한 값은 ±1이다.
offset=칩들의 단위의 위성 1과 2 사이의 시간 차이며, △θ*는 라디안으로 위성 1과 2 사이의 칩 당 위상 변화이다.
차이 I-오프셋이 0 미만이면, 1023이 그 차이에 추가되어 0부터 1022까지의 범위 내의 값을 유지한다. 즉, 코더 칩 상태를 되돌리는 함수의 도메인은 0부터 1022까지의 범위로 제한된다.
1023 비트 바이 비트 상관을 계산하는 데 요구되는 계산 시간은, 단일 제어기 인스트럭션으로 8, 16 또는 32 비트 와이즈의 XOR을 수행하는 표준 제어기 인스트럭션을 이용함으로써 가속화될 수 있다. 이하에는, 8개의 칩들을 병렬적으로 연산하는 방법을 증명할 것이다. 당업자라면, 제어기 XOR 연산당 몇몇 그 밖의 편리한 비트 수를 수용하도록 스킴이 용이하게 변경될 수 있음을 알 것이다.
G1 및 G2의 1023 상태는 영구적인 메모리에 선형적으로 저장될 수 있다. 이에 따라, 원하는 칩의 어드레스 및 이를 정렬하는데 요구되는 시프트를 연산함으로써 단일 제어기 로드 인스트럭션으로 8, 16, 32 또는 그 밖의 몇몇 편리한 비트 수를 신속하게 모을 수 있다. 32비트가 특히 편리한 수인데, 그 이유는 31이 1023을 공평하게 분할하기 때문이다. 이에 따라 현재의 구현법에서는, 한번에 32비트를 읽으며 C/A 코드의 1023 칩을 확장하는 33 인터벌 각각에 대해 한번에 이들의 31을 이용한다. 31 비트 합은 8, 8, 8 및 7 비트의 4개의 부분으로 분할되며, 7 또는 8 비트 합 각각은 e-j△θI와 곱해지며, 여기서, I는 각 파트에 대해 7.75 칩들에 의해 변경된다. 합의 공식은 이하와 같다.
∑(ej △θI *31*∑(Sat1G1(I*31+J)*Sat1G2(I*31+J)*Sat2G1(I*31+Joffset)*Sat2G2(I*31+J-offset)+e-j△θ(I*31+7.75)*∑(Sat1G1(I*31+J+8)*Sat1G2(I*31+J+8)*Sat2G1(I*31+J+8-offset)*Sat2G2(I*31+J+8-offset)+e-j△θ(I*31+15.5)*∑(Sat1G1(I*31+J+8)*Sat1G2(I*31+J+8)*Sat2G1(I*31+J+8-offset)*Sat2G2(I*31+J+8-offset)+e-j△θ(I*31+15.5)*∑(Sat1G1(I*31+J+16)*Sat1G2(I*31+J+16)*Sat2G1(I*31+J+16-offset)*Sat2G2(I*31+J+16-offset)+e-j△θ(I*31+23.25)*∑(Sat1G1(I*31+J+24)*Sat1G2(I*31+J+24)*Sat2G1(I*31+J+24-offset)*Sat2G2(I*31+J+24-offset)))
여기서, I=0부터 32까지의 범위의 외부 인덱스
J=첫 번째 세 개의 합에 대한 0부터 7까지와, 마지막 합에 대한 0부터 6까지의 범위의 내부 인덱스
내부 합은, 모든 31 비트를 포함하는 32비트 워드를 이용하고 곱셈을 수행하기 위한 비트와이즈 XOR을 이용하고 1비트 곱을 합에 시프트하고 추가함으로써 병렬적으로 연산된다.
전술한 방정식의 G1 및 G2의 곱셈 모두는 비트 와이즈 XOR 인스트럭션에 의해 구현된다. 전술한 알고리즘은 추출 연산으로부터 최대한 -17dB에 의해 에러 상태이며 약 6000 제어기 연산이 완료될 것을 필요로 한다.
주기적으로 필요하면, 코드 의존성 상호 상관 팩터는, 작은 주파수 차이를 갖는 모든 강하고 약한 신호 쌍들에 대해 연산되는데, 상기 주파수 차이는 강약 상호 상관 간섭을 유발할 수도 있다. 현재의 구현 방법에서, 강한 신호는 C/N0>40dB을 가지며, 약한 신호는 C/N0>30dB을 갖는다. I 및 Q 측정치의 10ms 적분은 코드 및 위상 추적 루프에 의해 사용되기 때문에, 최대 "중요" 주파수 차이(모듈로 1000Hz)는 90Hz이다. 바람직한 실시예에서, 간섭 가능한 신호 쌍각각에 대한 코드 의존 상호 상관 팩터는 추적 및 신호 처리 알고리즘에 의해 잠재적으로 사용될 수도 있는 측정치 각각에 대해 연산된다. 예를 들면, 이르고, 시간에 맞고, 늦은 측정치가 추적 루프에 의해 사용되는 경우, 이들 코드 정렬 각각에 대한 상관 팩터들이 연산되어 테이블 내에 저장된다.
이들 테이블은 오직 10Hz 레이트로 갱신되는 것을 필요로 하는데, 그 이유는 최대 도플러 차이는 9KHz 미만 또는 초당 6 칩 미만이기 때문이다. 상호 상관 테이블을 유지하는 것 외에도, 주파수 차이로 인한 상호 상관의 주파수 감쇄가 10KHz 레이트에서 연산된다. 감쇄는 이하와 같이 표현될 수 있다.
주파수 감쇄 =sin(△F mod 1000*π/100/(△F mod 1000*π/100)
여기서, ΔF= Hz로 나타낸 강한 신호와 약한 신호 간의 주파수 차이이며, Mod=-500Hz 내지 +500Hz 범위를 주기 위한 모듈러 오프셋이다.
감쇄는, 주파수 차이가 5Hz 이상에 의해 변경되는 경우 재연산되기만 하면 된다.
강한 신호의 위상 및 진폭의 측정치는 상호 상관을 제거하는 데에 필요하다. 본 바람직한 실시예에서 사용되는 방법은, 자기 자신의 전용의 채널에 대한 강한 신호를 추적하고 약한 신호 I, Q 샘플이 취해지는 정확하게 동일한 인터벌 동안 출력되는 I, Q 측정치를 모으는 것이다. 강한 신호를 추적하는 데에 사용되는 공지된 복제 신호의 위상 및 주파수는 강한 신호의 실제 위상 및 주파수의 우수한 근사치이다. 또한, 강한 신호는 위상 록 상태에 있기 때문에, I 측정치의 크기는 강한 신호의 진폭의 양호한 근사치를 제공한다. 최종적으로, 강한 신호 데이터 비트 D의 이중 위상 변조는, 강한 신호의 위상이, 데이터 비트가 1로부터 0으로, 혹은 0으로부터 1로 천이될 때마다 180도 회전하도록 할 수도 있다. 현재의 구현 방법에서, 강한 신호의 위상은, 강한 신호에 대한 I 측정치의 부호가 음일때마다, 180도를 복제 신호의 위상에 가함으로써 정정된다.
10ms마다 새로운 I, Q 상관 데이터 세트가 약한 신호를 추적하는 데에 할당된 채널로부터 이용가능하다. 상호 상관 팩터의 테이블이 체크되어 임의의 간섭성의 강한 신호의 존재를 예측한다. 강한 신호가 예측되는 경우, 이하의 감산이 수행되어 강한 신호 상호 상관을 제거하게 된다.
FirstCodeOffset=WeakCodeState-StrongCodeState-
StrongDoppler*△T-TableEntry0CodeAtate;
DeltaPhase=WeakCarrierPhase-StrongCarrierPhase-
StrongDoppler*△T+DeltaKHz*StrongCodeState;
FirstPhase=FirstCorrelationPhase+DeltaPhase;
SecondPhase=SecondCorrelationPhase+DeltaPhase;
FirstMag=FirstCorrelationMag+FirstCodeOffsetFraction*StrongI
*FrequencyAttenuation;
SecondMag=SecondCorrelationMag*(1-FirstCodeOffsetFraction)
*StrongI*FrequencyAttenuation; and
CorrectedWeakIQ=WeakIQ-FirstMag*e- jFirstPhase-SecondMag*e- jSecondPhase
여기서,
WeakCodeState=약한 신호 채널에 출력되는 마지막 코드 상태;
StrongCodeState=강한 신호 채널에 출력되는마지막 코드 상태;
StrongDoppler=강한 신호 채널에 출력되는 마지막 도플러;
△T=약한 채널 및 강한 채널로의 출력들간의 시간적 차이;
TableEntry0CodeAtate=상호 상관 테이블의 제1 엘리먼트의 코드 상태 차이;
WeakCarrierPhase=약한 신호 채널에 출력되는 마지막 캐리어 위상 각도;
StrongCarrierPhase=강한 신호 채널에 출력되는 마지막 캐리어 위상 각도;
DeltaKHz=KHz 단위로 약한 채널 도플러와 강한 채널 도플러 간의 차이의 1KHz의 가장 가까운 정수배;
FirstCorrelationPhase=FirstCodeOffset에 의해 표시되는 칩에 대한 상호 상관 테이블 내의 위상 엔트리;
SecondCorrelationPhase=FirstCodeOffset+1칩에 의해 표시되는 칩에 대한 상호 상관 테이블 내의 위상 엔트리;
FirstCodeOffsetFraction=FirstCodeOffset 내의 칩의 프랙션;
StrongI=강한 채널로부터의 I 상관의 절대값;
FrequencyAttenuation=주파수 오프셋으로 인한 감쇄;
WeakIQ=약한 신호의 채널로부터의 IQ 상관; 및
CorrectedWeakIQ=강한 신호로부터의 상관에 대해 정정된 IQ 상관.
CorrectedWeakIQ는 FirstCodeOffset을 예를 들어 각각 칩의 반만큼 적절하게 시프트시킴으로써 빠르고, 정확하고, 늦은 상관기에 대해 연산된다. 이들 변경된 상관은 그 후 약한 신호에 대한 코드 추적 소프트웨어 및 캐리어에서 통상적으로 이용된다. 이 알고리즘은, 약한 신호를 감쇄시키지 않고 적어도 10dB만큼 상호상관을 감쇄시키며 약한 신호와 간섭될 수도 있는 강한 신호 각각에 대해 반복된다.
도 97이 서로 다른 PRN을 갖는 약한 신호로부터 PRN을 갖는 강한 신호를 삭제하도록 상호 상관을 기술하였지만, 그 절차는 CW 재밍 신호를 소거하고 PRN을 갖는 약한 신호를 강화시키도록 변경될 수 있다. 도 98에서, CW 재밍 신호를 식별하고 제거하기 위한 신호 처리 도면이 도시되며, 여기서 도 97의 소거된 신호는 CW 재밍 신호일 수 있다. 수신기(98-4700)는 안테나(98-4702)에서 스프레드 스펙트럼 신호를 수신한다.
상호 상관기(98-4704)는 모드 내에 놓여져 CW 재밍 신호를 식별한다. 그 모드에서, 상호 상관기는 PRN 코드에 대한 모든 것들을 사용한다. 상호 상관기(98-4704)는 신호 처리기(98-4706)와, 스프레드 스펙트럼 신호를 디스프레드하는 정합 필터(98-4708)를 구비할 수 있다. 이에 따라 생성된 신호는 CW 재밍 신호(강한 신호)이며, 추적기(98-4710)에서 추적된다. 현재의 구현 방법에서의 추적기(98-4710)의 예로서 위상 록 루프 회로를 들 수 있다.
그 후, 식별된 CW 재밍 신호는 복제 CW 재밍 신호(98-4712)를 생성하는 데에 이용된다. 복제 CW 재밍 신호는 신호 처리기(98-4714) 및 정합 필터(98-4716)를 이용하여 생성될 수 있다. 다른 구현 방법에서는, 원하는 신호를 생성하는 다른 방법이 이용될 수 있다. 다른 방법의 예에서는 전압 제어 발진기, 디지털 신호 처리, 아날로그 신호 처리를 포함할 수 있지만, 이에 한정되는 것은 아니다.
수신기(98-4700)에 의해 수신된 스프레드 확산 신호는 그 후 상호 상관기(98-4714)에 의해 처리되어 모든 것보다는 코드를 디스프레드한다. 스프레드 스펙트럼 신호 내의 수신된 약한 신호는 상호 상관기(98-4718)는 상호 상관기(98-4718) 내의 신호 처리기에 의해 복조된다. 생성된 CW 재밍 신호는 소거기(98-4720)에 의해 약한 신호로부터 소거된다. 이에 따라 생성된 신호는 그 후 추적기(98-4722)에 의해 추적된다. 추적기(98-4310)에 의해 추적되는 CW 재밍 신호에는 또다른 처리가 행하여져 신호 결합기(98-4724)에 의해 추적된 CW 재밍 신호로부터 원하는 약한 신호를 제거하게 된다.
CW 재밍 신호의 식별은 세 개의 상호 상관기(98-4704, 98-4718, 98-4712)로 발생하는 것으로 기술되었다. 그러나, 실제로, 단지 하나의 상호 상관기가 사용되어 상호 상관기가 PRN 코드들을 식별하고 CW 재밍 신호를 식별하고 제거할 수도 있다. 이에 따라, 원치 않는 신호(CW 재밍 신호)의 복제의 생성은 원하는 신호의 복조 동안 발생한다.
도 99로 돌아가면, 도 98의 전기적 구성요소의 블럭도가 도시되어 있다. 약한 신호 및 CW 재밍 신호를 포함하는 스프레드 스펙트럼 신호는 안테나(98-4702)를 통해 수신기(98-4700)에서 수신된다. 스프레드 스펙트럼 신호는 복조되고 CW 재머 신호는 재머 필터(99-4802)에 의해 필터링된다. 이에 의해 생성된 CW 재밍 신호는 재머 추적기(99-4804)에 의해 추적된다. 추적된 재밍 신호는 그 후 재머 복제 웨이브 발생기(99-4806)에 의해 복제된 CW 재밍 신호로서 복제된다. CW 신호는 일정한 위상의 특성을 가지며, 이에 따라 복제된 CW 재밍 신호는 복조된 약한 신호로부터 감산될 적절한 위상으로 스케일링되고 회전된다(99-4808). 약한 신호는 복조기(99-4810)에 의해 복조된다. 위상 및 크기 복제된 CW 재밍 신호는 그 후 신호 소거기(99-4812)에 의해 복조기(99-4802)로부터 약한 신호로부터 감산된다. 이에 의해 생성된 약한 신호는 그 후 추적 제어 회로(99-4814)에 의해 추적된다. 추적 제어 회로(99-4814)는 약한 신호를 복조기(99-4810) 및 두 개의 신호 결합기(99-4816, 99-4818)에 출력한다. 약한 신호는 신호 결합기(99-4816)에 의해 CW 재머 신호로부터 감산되며, 이에 의해 생성된 신호는 복제된 CW 재밍 신호를 스케일링하고 회전시키는데 이용된다. 마찬가지로, 약한 신호는, 재머 복제 웨이브 발생기(99-4806)에 의해 복제될 보다 정확한 CW 재밍 신호를 제공하기 위해 신호 결합기(99-4818)에 의해 CW 재밍 신호로부터 감산된다.
현재의 구현 방법이 일반적으로 CW 재밍 신호로 기술되었지만, 당업자라면, IS-95 파일롯 신호, 갈릴레오 신호와 같은 특정 공지된 신호, 또는 그 밖의 공지된 캐리어들이 복조된 원하는 신호로부터 식별되고 추적되며 제거될 수 있음을 알 것이다. 신호 처리 전에 혹은 수신기의 프론트 엔드에서 CW 재밍 신호를 식별하고 제거하는 그 밖의 다른 공지된 방법들과는 달리, 현재의 방안은 백 엔드에서 CW 재밍 신호를 식별하고 제거한다. 이는, CDMA 또는 위성 포지셔닝 시스템과 같은 낮은 신호 강도로 원하는 신호가 수신될 때 바람직하다. 신호 강도는, 원하는 약한 신호를 유지하면서 신호의 사전 처리를 지원하기에 충분하지 않다.
도 100으로 돌아가면, CW 재밍 신호의 식별 및 제거에 대한 흐름도(100-4900)가 도시되어 있다. 처리는 100-4902에서 시작되며 100-4904에서 수신기는 스프레드 스펙트럼 신호를 수신한다. 이 신호는 필터링될 수 있으며, CW 재밍 신호는 상호 상관기를 이용하여 식별된다(100-4906). CW 재밍 신호가 식별되면(100-4906), 이는 추적된다(100-4908). 추적된 CW 재밍 신호는 그 후 재머 복제 웨이브 발생기에 의해 복제된다(100-4910). 복제된 CW 재머 신호는 그 후 수신된 신호(100-4912)로부터 감산된다. CW 재밍 신호는 수신된 신호로부터 제거되었으며, 처리는 완료한다(100-4914).
도 101에서, 강한 매체 신호 연산의 추적 시스템의 예시적인 높은 레벨 구현이 도시된다. 하드웨어 추적 루프("HWTL")는 PDI(Pre Detection Integration) 레이트로 동작한다. 이 구현 방법은 서브시스템 3에서 완료된다. 구현의 상세 사항은 HWTL ASIC 디자인 스펙에서 이용가능하다. 하드웨어("HW")는 취득 모드로부터 추적 모드로의 자기 자신의 천이가 없을 수 있으며 HWTL를 자동적으로 활성화시킨다. HWTL을 활성화시키기 위한 모드 천이는 취득 프로세스의 경우 성공적인 완료시에 소프트웨어("SW") 제어 하에서 행해질 것이다. 전형적으로 하드웨어로부터의 입력은 다음과 같이 될 것이다:
빠르고 늦은 탭에 대한 Ie, Qe 및 I1, Q1, f+e, f-e, f+1 및 f-1;
Ie=빠른 탭에 대한 인 페이즈 상관;
Qe= 빠른 탭에 대한 쿼드 페이즈 상관;
I1= 늦은 탭에 대한 인 페이즈 상관;
Q1= 늦은 탭에 대한 쿼드 페이즈 상관
f+e= 빠른 탭에 대한 +1 주파수 bin 오프셋에 대한 상관 크기;
f-e= 빠른 탭에 대한 -1 주파수 bin 오프셋에 대한 상관 크기;
f+1=늦은 탭에 대한 +1 주파수 bin 오프셋에 대한 상관 크기;
f-1=늦은 탭에 대한 -1 주파수 bin 오프셋에 대한 상관 크기; 및
정규화에 대한 HW로부터의 오토스케일 값들에 대한 목적.
예로서, 이하의 상태는 취득으로부터의 정보를 이용하여 초기화될 수 있다: 1. 코드 페이즈; 2. 캐리어 주파수; 3. 캐리어 페이즈; 및 4. 추적 루프("S_Gain")(진폭 추정치가 이용가능한 경우)를 정규화하는데에 이용되는 필터링된 신호 진폭. 이 예에서, 코드 분별기는,
D=|e|-|l|,
|e|=sqrt(Ie*Ie+Qe*Qe), 및
|l|=sqrt(Il*Il+Ql*Ql),
캐리어 페이즈 분별기는,
φ=sign(Ip)*Qp,
Ip=Ie+I1, 및
Qp=Qe+Ql,
캐리어 주파수 분별기는,
δf=f+-f-,
f+=f+e+f+1, 및
f-=f-e+f-1
여기서, 모든 연산이 크기 또는 크기 근사를 이용하여 행해진다.
서브시스템 2 처리는 이하에 의해 기술될 수 있다.
캐리어 페이즈+=캐리어 주파수,
캐리어 주파수+=캐리어 주파수 레이트, 및
코드 페이즈+=델타 캐리어 페이즈.
예로서, 추적 루프 등식은 이하에 의해 기술될 수 있다.
캐리어 페이즈+=K1*φ+K2*δf+Aid 1,
캐리어 주파수+=K3*φ+K4*δf+Aid 2,
캐리어 주파수 레이트+=K5*φ+K6*δf+Aid 3, 및
코드 페이즈+= K7*D+Aid4.
게인 K1 내지 K7은 100ms 레이트로 SW로부터 입력될 수 있다. HWTL 모드 천이는 이들 게인의 값을 통해 제어될 수 있다.
일반적인 예로서, 추적 모드 및 모드 천이는 이하에 의해 설명될 수 있다.
게인 K1-K7의 설정을 통해 100ms 레이트에서 SW에 의해 제어됨.
Init 모드에서, 추적 루프는 광대역(바람직하게는 반복 레이트 PDI의 약 1/10) 주파수 루프로 초기화될 수 있다. 코드 루프는, 필터링된 주파수 에러 추정치<임계치1일 경우, 협대역 주파수 루프로의 광대역(바람직하게는 5Hz *Acq 에러 추정치)으로 초기화된다. 필터링된 주파수 에러 추정치<임계치2인 경우 넓은 캐리어 페이즈 루프로의 천이. 추천되는 PDI는 4ms이다. 바람직하게는 FFT 모드는 8포인트이다.
좁은 주파수 루프에서, Init 모드로부터의 엔트리후이다. 추적 루프는 좁은 대역 주파수 루프(바람직하게는 PDI 레이트의 약 1/20)로 설정될 수 있다. 필터링된 주파수 에러 추정치<임계치1일 경우 캐리어 페이즈 루프로의 추정된 코드 에러<0.1 칩 천이일 경우 좁은 코드 루프(바람직하게는 약 대역 13/Hz). 필터링된 주파수 에러 추정치>임계치2인 경우 Init 모드로의 천이. 바람직하게는 PDI는 4ms이며 FFT 모드는 8포인트이다.
넓은 캐리어 페이즈 루프에서, Init 모드 도는 좁은 주파수 루프로부터의 엔트리후이다. 추적 루프는 K1-K7을 이용하여 넓은 캐리어(바람직하게는 PDI 레이트의 대역 약 1/4) 및 좁은 주파수로 설정될 수 있다. (손실된 캐리어 페이즈 록 및 필터링된 주파수 에러 추정치<임계치1)의 경우 좁은 주파수 루프로의 추정된 코드 에러<0.1 칩 천이일 경우 좁은 코드 루프(바람직하게는 약 대역 1/3 Hz). (손실된 캐리어 페이즈 록 및 필터링된 주파수 에러 추정치<임계치2)의 경우 Init 모드로의 천이. 필터링된 캐리어 위상 에러<임계치인 경우 좁은 캐리어 루프로의 천이. 바람직하게는, 비트 동기화의 부재시에 약 PDI 4ms이고 비트 동기화의 존재시에는 20ms이며 20포인트의 FFT 모드이다.
좁은 캐리어 위상 루프에서, 넓은 캐리어 위상 루프로부터의 엔트리후이다. 좁은 캐리어로 설정된 추적 루프(바람직하게는 약 대역폭 1/10의 PDI 레이트) 및 K1-K7을 이용한 좁은 주파수 결합된 루프이다. (손실된 캐리어 위상 록 및 필터링된 주파수 에러 추정치<임계치1)인 경우 좁은 주파수 루프로의 추정된 코드 에러 <0.1 칩 천이인 경우 좁은 코드 루프(바람직하게는 약 대역 1/3Hz). (손실된 캐리어 페이즈 록 및 필터링된 주파수 에러 추정치<임계치2)의 경우 Init 모드로의 천이. 바람직하게는 비트 동기화의 부재시에 약 PDI 4ms이며 비트 동기화의 존재시에 20ms이며 FFT 모드는 20포인트이다.
이하의 모드 천이 테이블에서는, 칼럼이 소스 모드이며 로우가 목적 모드이다. 테이블 내의 엔트리는 천이 상태를 기술한다.
<모드 천이 테이블 46>
Init 좁은 주파수 넓은 캐리어 좁은 캐리어
Init X 필터링된 주파수 에러 추정치<임계치 1 필터링된 주파수 에러 추정치<임계치2 X
좁은 주파수 필터링된 주파수 에러 추정치>임계치2 X 필터링된 주파수 에러 추정치<임계치1 X
넓은 캐리어 (손실된 캐리어 페이즈 록 및 필터링된 주파수 에러 추정치>임계치2)인 경우 모드 (손실된 캐리어 페이즈 록 및 필터링된 주파수 에러 추정치>임계치1) X X
좁음 (캐리어)인 경우 (캐리어)인 경우 X X
캐리어 위상 동기 손실 및 필터링된 주파수 에러 평가>임계값2 위상 동기 손실 및 필터링된 주파수 에러 평가>임계값1
<Code Loop Transition Table 47>
Init(고대역폭) 저대역폭
Init(고대역폭) X 평가된 코드 에러 <0.1 칩
저대역폭 평가된 코드 에러> 0.1 칩 X
모든 모드들은, 코드 및 주파수 동기(code and frequency lock)가 손실되는 경우 트랙킹 시스템(tacking system) 외부로 천이할 수 있고, 취득(acquisition)이 개시할 수 있다.
도 102는 하드웨어 업데이트를 나타낸다. 서브시스템 3에 대한 처리의 말미에서, 캐리어 위상(Carrier Phase), 캐리어 주파수(Carrier Frequency), 캐리어 주파수 레이트(Carrier Frequency Rate) 및 캐리어 위상(Code Phase)은 서브시스템 2 상태 내에서 업데이트된다.
코드 상태는 거친 레졸루션(resolution)을 가질 수 있고, 코드 위상 식들은 작은 코드 위상 업데이트들을 축적할 수 있으며, 코드 LSB가 도달될 경우 서브시스템2 내의 코드 상태가 업데이트될 것이다. 이는 후속하는 메카니제이션(mechanization)을 이용하여 달성될 수 있다. 이 메카니제이션은 코드 상태에 대한 변화들을 정규화된 얼리-레이트 트리거링(normalized early-late triggering)을 위한 근사화를 기술한다. N은 변화되는 코드 상태 내의 LSB의 수이다.
AGG 정규화/Auto Scale
S_Gain(t+1)=Alpha * S_Gain + Beta * (│Ip│+│Qp│)
S_Gain은 루프 계수들을 정규화하기 위해 사용된다. "t"는 시간 인덱스(time index)이다. 또한, S_Gain은 HW 내의 코드 상태에 대한 업데이트를 결정하기 위해 얼리 마이너스 레이트 출력을 정규화는데 사용된다.
SWTL은 성공적 취득 프로세스의 말미에 SW 제어에 의해 HWTL과 동일한 시간에 활성화될 것이다. SWTL은 100ms 레이트에서 동작한다. 입력은 PDI 레이트에서 버퍼링된 레포트와 NCO 상태에 관한 레포트로 이루어진다. SW는 NAV 및/또는 외부 소스로부터의 도움을 이용하여, 보다 정확한 에러 평가를 연산하고, HWTL을 조정하기 위해 매 100ms 마다 단일 보정을 구성할 것으로 예상된다. 또한, 특별한 경우에는, HWTL이 디스에이블될 수 있고, SWTL이 100ms와는 다른 레이트에서 HW NCO에 대한 보정을 생성하도록 자율적으로 동작할 수 있다. HW는 보다 높은 레이트에서 인터럽트를 제공하고, SWTL은, 그러한 경우에, 100ms보다 빠른 레이트로 동작할 것이다. HWTL은 단일 제어 비트를 이용하여 각 채널에 대해 독립적으로 디스에이블될 수 있다.
HW로부터의 입력(Inputs From HW):
100ms에서의 NCS 버퍼 및 트랙 히스토리 버퍼. 컨텐츠: I 및 Q 상관은 다양한 오프셋에 대한 각 PDI에서 노이즈 합, 오토스케일 값, 모든 PDI에 대해 샘플링된 NCO 상태, 측정 레포트의 시간을 나타내는 타임 마크를 출력한다.
상태 초기설정(State Initialization):
다음 상태는 취득으로부터의 정보를 이용하여 초기설정될 것이다.
1. 코드 위상(Code Phase);
2. 캐리어 주파수(Carrier Frequency);
3. 캐리어 위상(Carrier Phase); 및
4. S_Gain(진폭 평가가 이용가능한 경우)
코드 식별기(Cdoe Discriminator):
코드 식별은 후속하는 등식에 의해 제공된다.
D=│E│-│L│
│E│=Alpha*│Ee│+Beta*│Ee+│
│L│=Alpha*│Le│+Beta*│Le+│
단, Ee 및 Le는 프롬프트로부터 분리된 하나의 탭에 대한 얼리 및 레이트 I 및 Q 값이고, Ee+ 및 Le+는 프롬프트로부터 분리된 두 개의 탭에 대한 얼리 및 레이트 I 및 Q 값이다.
필터링된 코드 에러 = Alpha*필터링된 코드 에러+Beta*D
캐리어 위상 식별기(Carrier Phase Discriminator):
Φ=arctan(Qp, Ip)
Φ는 각각의 PDI에 대해 연산되고, dΦ는 소프트웨어 내에서 유지된다.
캐리어 주파수 식별기(Carrier Frequency Discriminator):
δf=Alpha*(£+-£-)+Beta*(Ip(t+1)*Qp(t)-Ip(t)*Qp(t+1)),
단, t는 타임 인덱스.
트랙킹 식(Tracking Equations):
트랙킹 식은 PDI 레이트에서 반복될 것이다. HW로의 보정은 100ms에서 생성될 것이다.
위상 트랙킹 루프(Phase Tracking Loop):
Carrier Phase+ = Carrier Frequency + K1 * dΦ + Aid1
Carrier Frequency+ = Carrier Frequency Rate + K3 * dΦ+ + Aid2
Carrier Frequency Rate+ = K5 * Φ + Aid3
Frequency Tracking Loop:
Carrier Frequency+ = Carrier Frequency Rate + K4 * δf + Aid2
Carrier Frequency Rate+ = K6 * δf +Aid3
코드 루프(Code Loop):
Code Phase+ = Scale * (Carrier Phase(t) - Carrier Phase(t-1)) K7 * D + Aid4
K7은 아래와 같이 Kmax(높은 대역폭값)로 초기설정되고 업데이트됨:
K7(t+1)=Alpha * K7 + Beta * Code Error Estimate
K7 > Kmax인 경우, K7 = Kmax,
K7 < Kmin인 경우, K7 = Kmin
트랙킹 루프 모드 천이는 이득 K1 내지 K7을 통해 제어된다.
AGC 정규화(AGC Nomalization):
Figure 112006015336266-PCT00001
S_Gain 및 S-Gain Rate는 신호 크기의 평가 및 신호에 대한 크기 변화의 레이트를 나타낸다. S_Gain은 트랙킹 루프 식 이득을 정규화하는데 사용된다.
동기 검출기의 손실(Loss Of Lock Detectors):
코드 동기(Code Lock)
신호 대 잡음비(Signal to Noise Ratio)를 100ms 레이트로 연산. 연산은 아래와 같이 수행된다:
노이즈 전력 = Sum(In*Ip+Qp*Qp),
단, 합은 100ms 시간 주기를 초과하여 수행된다.
Figure 112006015336266-PCT00002
캐리어 위상 동기(Carrier Phase Lock):
Figure 112006015336266-PCT00003
캐리어 주파수 동기(Carrier Frequency Lock):
Figure 112006015336266-PCT00004
HW에 대한 업데이트는 HW 트랙킹 루프 식에 대한 Aid의 형태일 수 있다. 이는 매 100ms마다 소프트웨어로부터의 입력으로서 실행될 수 있다. Aid는 후속하는 일반적 식을 이용하여 연산될 수 있다.
Figure 112006015336266-PCT00005
위상, 주파수 및 레이트에 대해, HW는 SW가 적절한 레지스터에 기록하는 경우에만 원조를 한번 실행할 것이다.
측정 레포트 처리(Measurement Report Processing):
의사범위 및 레이트 측정은 HW 및 SW 인터페이스 내의 기술에 따라서 구성될 수 있다.
비트 동기(Bit Synch)는 20-100ms 레이트에서 동작할 수 있고, SW 내에서 구현될 수 있다.
입력(Inputs):
HW는 20 오프셋에 대해 20ms 축적(PDI)를 제공할 수 있다(프로그램가능). 히스토그램은 후속하는 식을 사용하여 각 SV에 대해 축적될 수 있다.
Figure 112006015336266-PCT00006
만일 오프셋 정보를 쓸 수 있다면, 다중 SV들로부터의 accum Histogram 들은 이하의 등식으로 이용하여 누적된다:
Figure 112006015336266-PCT00007
제1 예시적 접근법:
Figure 112006015336266-PCT00008
제2 예시적 접근법:
Figure 112006015336266-PCT00009
그 합은 ms의 20개의 값들에 대해 수행된다. 비용 함수(오프셋)의 max는 비트 싱크 오프셋(bit synch offset)을 제공할 것이다.
Figure 112006015336266-PCT00010
데이터 복조:
데이터 복조는 20-10 ms 레이트로 동작할 것이다. 구현은 SW로 된다.
Figure 112006015336266-PCT00011
여기서, j 는 복소수 계수이다. 이 알고리즘은 반송파 위상 추정 에러가 이전 비트로부터 생성될 때의 디퍼렌셜 디코딩(differential decoding)의 더 일반적인 경우에 해당한다.
프레임 싱크:
프레임 싱크는 20-10 ms 레이트로 동작할 수 있고, SW 로 구현된다.
데이터 복조 후의 비트 스트림은 SV 당 이진 값들의 어레이로 제공된다.
예시적 접근법:
Figure 112006015336266-PCT00012
이하의 단계들이 실행될 수 있다:
Figure 112006015336266-PCT00013
실시예의 GPS 시스템은 클록 제어를 위한, 시스템 또는 장치와 관련 방법들을 포함한다. 저전력 실시간 클록(RTC)은 GPS(Global Positioning System) 수신기 유닛에서 연속적으로 동작된다. GPS 수신기 유닛이 GPS 수신기 유닛의 로케이션을 계산하는 데에 사용되는 위성 정보를 활동적으로 획득하지 못하고 있는 시간 구간 동안에 선택된 소자들을 셧 다운함으로써 전력이 GPS 수신기 유닛에서 보존된다. 저전력 시간 유지 회로에 소재하는 K32(전형적으로는 공칭 32,768Hz) 발진기는 선택된 소자들이 셧 오프될 때의 GPS 시각을 정확하게 보존한다. K32 발진기는 RTC 또는 저전력 클록을 발생한다. 저전력 클록과 RTC 라는 용어들은 여기서 호환적으로 사용된다.
RTC가 스타트 업 시에 사용될 만큼 정확한지를 판정하는 방법 및 장치가 개시된다. 일 실시예에서, 브라운아웃 에피소드(brownout episode) 동안과 같은 RTC 클록 주기들의 실제 손실이 검출된다. 일 실시예에서, RTC 클록 발진기의 출력이 반파 정류되고, 계산된 RC 시상수를 갖는 저항-캐패시터(RC) 회로로의 입력상에 놓여진다. RC 회로의 출력은 전압 비교기의 하나의 입력상에 놓여진다. 기준 전압이 전압 비교기의 그 외의 입력상에 놓여진다. 만일 RTC 발진기가 소정 개수의 주기를 놓치면, 전압 비교기 상의 RC 회로의 출력 전압은 감쇠하고 비교기는 클록 주기들의 손실을 검출하는데, 이는 전압 비교기 출력 상에 반영된다.
도103은 일 실시예에 따른 GPS 수신기 유닛(103-100)의 블록도이다. GPS 수신기(103-100)는 여기서 RF 칩(103-103)에 소재하는 것으로 보여진 RF 기능성을 포함한다. GPS 수신기 유닛(103-100)은 여기서 베이스밴드 칩(103-105) 상에 소재하는 것으로 보여진 베이스밴드 기능성을 더 포함한다. 여러 기능들을 실행하는 여러 소자들이 특정 배치를 갖는 것으로 여기서 설명될 것이지만, 개시된 본 발명은 대안적 배치들도 염두에 두고 있다. 예를 들어, 베이스밴드 칩(103-105)은 도시된 대로, 내비게이션 프로세서(104-210) 및 메모리 디바이스(104-220)를 포함할 수 있다. 그 외의 실시예들에서, 내비게이션 프로세서 및 메모리 디바이스는 베이스밴드 칩(103-105) 상에 소재하지 않을 수도 있으나, 예를 들어 주변 인터페이스를 통해서 베이스밴드 칩(103-105)과 통신할 수 있다. 그외의 실시예들에서, 도시된 소자들과 설명된 기능성의 모든 것이 하나의 칩 상에 소재할 수 있다.
RF 칩(103-103)은 GPS 시간을 유지하는 데에 쓰이는 고정밀 발진기인 GPS발진기(104-204)를 포함한다. 이하에서 일 실시예에 따른 GPS 수신기 유닛(103-100)의 일반적 동작에 대한 개관적 설명이 주어진다. 이하의 개관에서 명명된 소자들이 보여지고 설명될 것이다. GPS 수신기 유닛이 GPS 수신기 유닛의 로케이션을 계산하는 데에 사용되는 위성 정보를 활동적으로 획득하지 못하고 있는 시간 구간 동안에, GPS 발진기(104-204)를 포함하여 선택된 소자들을 셧 다운함으로써 전력이 GPS 수신기 유닛(103-100)에서 보존된다. 저전력 시간 유지 회로에 소재하는 K32(전형적으로는 공칭 32,768Hz) 발진기는 선택된 소자들이 셧 오프될 때의 GPS 시간을 정확하게 보존한다.
GPS 발진기(104-204)는, M11 클록 신호라고 언급되고, 복수의 위성으로부터 검출된 신호들에 기초하여 GPS 시간을 정확하게 결정하는 데에 사용되는 클록 신호를 발생한다. 에지 정렬된 비율 카운터(ratio counter)는 자유 주행 카운터들로 K32 및 M11 클록 신호들을 계속적으로 모니터링하고, K32 클록 신호의 에지가 소정의 작은 허용 오차 내에서 M11 클록 신호의 에지와 정렬될 때 K32 및 M11 카운터 값들이 래치된다. T20 시대(epoch)들을 생산하는 GPS 시간 발생기가 M11 클록에 의해 구동되므로, 자유 주행 M11 카운터는 T20 시대에서 래치되어 카운터와 T20 시대 간의 관계를 확립할 수 있다. 따라서, GPS 수신기 유닛(103-100)은 K32 클록 신호와 GPS M11 클록 신호의 타이밍 및 레이트들을 T20 타이밍 시대와 상관(correlate)시킬 수 있다. T20 시대에서의 충분히 정확한 GPS 시간 추정치가 계산되어 획득된 위성 PN 코드 신호들의 신호 구조들에서의 PN 코드 주기들의 결정을 허용해 주도록, K32 클록 신호, GPS M11 클록 신호와 T20 시대의 상관된 타이밍 및 레이트들이 내비게이션 프로세서(104-210)에 제공된다.
GPS 수신기 유닛의 동작 동안에, 로컬 GPS 발진기와 K32 발진기의 주파수들은, 온도/주파수가 둘 모두의 발진기에 대해 정의되는 식으로 여러 작동 온도들에서 검출된다. 온도/주파수 테이블들 모두에 대한 데이터가 메모리에 저장된다.
GPS 발진기를 포함하여 GPS 수신기 유닛에 소재하는 선택된 소자들이 전력을 보존하기 위해서 이후 셧 다운된다(비활성화된다). 저전력 시간 유지 회로가 온(on)으로 남아 있는다. 주기적으로, 소정 시간 구간 후에, 본 시스템은 경보 유닛에 의해 발생되는 웨이크 업 명령에 응답하여 켜진다. 저전력 시간 유지 회로로부터의 K32 클록 신호는 K32 발진기의 실제 작동 온도 및 K32 클록 온도/주파수 테이블로부터의 데이터에 기초하여 재조정(recalibrate)된다. 따라서, K32 클록 레이트는 주기적으로 갱신되어 GPS 시간을 더 정확하게 추적하게 된다.
특정 시점에서, 특정 시스템 애플리케이션의 요건에 따라서 내비게이션 업데이트가 수행된다. 주기적으로 재조정된 K32 클록 신호 및 GPS 클록 온도/주파수 테이블로부터의 데이터가 M11 클록 신호 및 GPS 시간을 설정하기 위해 사용된다. 그 후 GPS 위성들의 위치가 추정되고, 그에 따라 수신된 위성 신호들로부터 실제 GPS 시간이 신속히 결정될 수 있다. 검출된 위성 신호들로부터 일단 정확한 GPS 시간이 결정되면, M11 및 K32 신호들이 함께 래치되고, 상술한 바와 같이, T20 에포크(epoch)에서 실제 GPS 시간과 상관되어, 그들의 온도 조정 테이블을 더욱 개선하고 업데이트하게 된다. 그 후 선택된 컴포넌트들이 다시 셧 오프(shut off)되어 전력을 보존하게 된다.
상술한 프로세스는 저전력 시간 유지 회로에 의해 정확한 GPS 시간이 유지되도록 필요에 따라 반복된다. GPS 수신기 유닛의 사용자가 위치 정보를 요구할 경우, GPS 수신기 유닛은 GPS 위성들로부터 보다 신속히 위치를 결정한다. 왜냐하면 GPS 위성 위치들 및 범위들은 보다 정확한 시간 유지에 기초하여 보다 높은 정확도로 추정되기 때문이다. 즉, 종래의 프로세스를 이용하여 GPS 위성들에 대한 범위를 추정할 정도로 정확히 GPS 시간을 설정하기 위해 서브프레임 데이터를 검출하고 서브프레임 타이밍을 결정하는 전력 소모적이고 시간 소모적인 프로세스가 회피된다.
다시 도 103을 참조하면, RF 칩(103-103) 및 베이스밴드 칩(103-105)은 시스템 인터페이스(103-109)를 통하여 통신한다. 일 실시예에서, 시스템 인터페이스(103-109)는 직렬 주변(SPI) 인터페이스이지만, 다른 실시예들에서, 시스템 인터페이스는 임의의 적당한 메시징 스킴(messaging scheme)일 수 있다. RF 칩(103-103)은 안테나(103-107)를 통하여 보이는 위성들로부터 신호들을 수신한다. 위성 신호들은 샘플링되고 SIGN/MAG 라인 상에서 직렬 스트림으로서 내비게이션 프로세서에 보내진다. 베이스밴드 칩(103-105) 및 그것의 컴포넌트들은, GPS 발진기 수정(oscillator crystal)으로부터 발생되고, 전형적으로 F0의 배수인 주파수를 갖는 ACQCLK 신호로 동작한다. 도시된 바와 같이 시스템 인터페이스를 통하여 여러 다른 신호들이 교환된다. 파워 업(PWRUP) 신호가 RF 칩(103-103)에 보내져서 획득(acquisition) 및 내비게이션 전에 RF 칩(103-103)의 파워 다운된 컴포넌트들을 파워 업시킨다. 동기화를 위하여 베이스밴드 칩(103-105)으로부터 RF 칩(103-103)으로 SPI_CLK 신호가 보내진다. 데이터 라인들 SPI_DI 및 SPI_DO는 데이터를 앞뒤로 전달한다. 칩 인에이블 신호(RFRST)가 RFRST 라인 상에서 RF 칩(103-103)으로 보내지고 리셋 신호(SRESET_N)가 RFRST 라인 상에서 베이스밴드 칩(103-105)으로 보내진다. 다른 실시예들에서는, RF 칩(103-03)과 베이스밴드 칩(103-105) 간에 정보를 교환하기 위해 여러 다른 프로토콜이 이용된다.
도 104는 저전력 시간 유지 회로(104-200)를 포함하는, GPS 수신기 유닛(103-100)의 선택된 컴포넌트들을 예시하는 블록도이다. GPS 수신기 유닛(103-100)은 적어도 라디오(104-202), 로컬 GPS 발진기(104-204), 온도 센서(104-206), 복수의 GPS 신호 프로세서 채널(104-208)(1 내지 N), 내비게이션 프로세서(104-210), 정합 필터(104-212), A/D 컨버터(104-214), 로컬 GPS 클록 발생기(104-216), 에지 정렬 비율 카운터(edge aligned ratio counter)(104-218), 메모리(104-220) 및 저전력 시간 유지 회로(104-200)를 포함한다. 메모리(104-220)는 웨이크업 경보 로직(wake-up alarm logic)(104-222) 및 GPS 클록 저전력 시간 유지(LPTK) 회로 에러 온도/주파수 에러 테이블(104-224)용의 할당 부분을 더 포함한다. 도 148은 일반적으로 본 발명의 동작 및 기능에 관련된 컴포넌트들을 예시하는 것에 제한된다. 도시되지 않은 다른 컴포넌트들은 GPS 수신기 유닛(103-100)에 포함된다. 이들 컴포넌트들을 생략하는 이유는 그 동작 및 기능에 대한 논의가 본 명세서에 필요치 않기 때문이다.
라디오(104-202)는 복수의 위성으로부터의 복수의 GPS 신호를 검출한다. 일 실시예에서 라디오(104-202)는 GPS L1 대역(1575.42 MHz)을 선택한다. 그러나 다른 실시예들은 다른 적당한 신호를 선택할 수 있다. 라디오(104-202)는 또한 커넥션(104-226)을 통하여 로컬 GPS 발진기(104-204)로부터 타이밍 신호를 수신한다. 타이밍 신호는, 일 실시예에서, 실질적으로 10.949 메가헤르츠(MHz)로 발진하는 로컬 GPS 발진기(104-204) 내에 있는 수정(미도시)에 의해 발생되고, M11 클록 신호로 지칭된다. 다른 실시예들은 본 발명의 동작 및 기능을 실질적으로 벗어나지 않고 다른 주파수 클록 신호에서 동작하는 로컬 GPS 발진기를 채택할 수 있다.
수신된 GPS 신호 및 M11 타이밍 신호는 복수의 GPS 신호 프로세서(104-208) 및 정합 필터(104-212)에 제공된다. 복수의 GPS 신호 프로세서(104-208)의 각각은 특정 신호 채널에 대응한다. 도 104는 N개의 GPS 신호 프로세서가 있는 것을 나타낸다. 이를테면, GPS 수신기 유닛(103-100)의 예시적인 실시예는 12개의 신호 채널을 병렬 처리하도록 구성되는 12개의 GPS 신호 프로세서(N=12)를 채택할 수 있다.
신호 프로세서들(104-208) 및 정합 필터(104-212)는 커넥션(104-230)을 통하여 내비게이션 프로세서(104-210)로부터 각 신호 프로세서가 찾고자 하는 특정 GPS PN 코드들을 나타내는, 일련의 프리포지셔닝 명령(pre-positioning commands)을 수신한다. 내비게이션 프로세서(104-210)에 의해 제공되는 정보는 또한 도플러 정정 값, GPS 발진기 에러 정정 값, PN 코드 위성 정보 및/또는 수신되는 위성 신호들에 관한 관련 정보를 포함할 수 있다.
일 실시예에서, 정합 필터(104-212)는 검출된 신호의 현재의 PN 코드 위상을 결정하고 신호 프로세서들(104-208)에게 그 정보를 제공하여 신호 프로세서 채널이 보다 신속히 그 신호를 획득할 수 있도록 한다. 신호 프로세서들(104-208) 중 하나가 채널 상에서 PN 코드, 코드 위상 및 주파수 정정이 수신되는 GPS 신호들 중 하나의 그것과 일치하는 신호를 검출할 경우, 그 GPS 신호 프로세서는 수신되는 위성 신호에 동기하여 그 신호를 추적한다. 다른 실시예는 위치를 결정하기 위해 정합 필터(104-212)만을 채택한다(정합 필터(104-212)는 어느 한 시점에서 신호의 현재 코드 위성을 결정하고 계속적으로 그것을 추적하지는 않기 때문에 정확도가 떨어지기는 하지만). 정합 필터의 현재 실시예들은 또한 모든 획득된 위성 신호들의 계속적이고 정확한 추적을 허용하지 않는 정합 필터의 고속 멀티플렉싱을 허용한다.
정합 필터(104-212) 및/또는 GPS 신호 프로세서들(104-208)은 획득된 신호들에 관한 코드 위상 정보를 각각 커넥션들(104-234 및/또는 104-232)을 통하여 내비게이션 프로세서(104-210)에 제공한다. 그 후 내비게이션 프로세서(104-210)는 정합 필터(104-212) 및/또는 GPS 신호 프로세서들(104-208)에 의해 적어도 4개의 GPS 위성 신호들로부터의 충분한 정보가 제공된 후에 GPS 수신기 유닛(103-100)의 위치를 계산한다. 그 후 위치 정보는 인터페이스 시스템(미도시)에 출력되어 사용자가 GPS 수신기 유닛(103-100)의 위치를 알 수 있게 된다.
로컬 GPS 발진기(104-204)는 소정의 발진 주파수를 가진 신호를 제공한다. 예를 들면, 이에 한정되는 것은 아니지만, 로컬 GPS 발진기(104-204)의 일 실시예에 있는 수정(미도시)의 발진 주파수는 10.949296.875 메가헤르츠(MHz)이도록 구성된다. 여기서, 발진 주파수의 정확한 공칭 값은 137 F0/128이다. F0는 10.23 MHz인 GPS 시스템의 기본 파라미터이다. 수신된 GPS 신호들의 GPS L1 주파수는 154 F0이다. 상업용 시스템에서 사용되는 클리어/획득(Clear/Acquisition) GPS PN 코드들의 칩 레이트는 F0/10이다. GPS 발진기(104-204)의 일 실시예는 M11 클로킹 신호를 출력하는 것으로 불리고, 여기서 "M11"이라는 용어는 10.949296.875 MHz의 137 F0/128 주파수에 대응한다. 군용 수신기들에 의해 사용되는 주파수 및 코드들을 포함하는, GPS 시스템의 다른 신호들도 F0와 관련된다.
로컬 GPS 발진기(104-204)는 M11 클로킹 신호를 커넥션(104-234)을 통하여 로컬 GPS 클록 발생기(104-216)에 제공한다. 로컬 GPS 클록 발생기(104-216)는 M11 클로킹 신호로부터 복수의 클록 신호를 도출한다. 이들 클록은 로컬 GPS 시간 베이스에 대응한다. 특히 중요한 점은, 복수의 클록들 중 하나가 로컬 타이밍 에포크(local timing epoch), 즉 T20 클록으로 알려져 있다는 것이다. T20 클록은 클록이 똑딱거리는 사이가 20 ms라는 사실에서 그 이름이 유래한다. GPS 신호 프로세서들(104-208) 및 정합 필터(104-212)에서 측정된 코드 위상들 중 다수는 공통 T2 에포크로 참조된다. 로컬 GPS 클록 발생기(104-216)에 의해 발생된 선택된 클로킹 신호들은 커넥션(104-236)을 통하여 GPS 신호 프로세서들(104-208) 및 정합 필터(104-212)에 제공된다.
아래에서 상세히 설명되는 저전력 시간 유지 회로(104-200)는 커넥션(104-252)을 통하여 에지 정렬 비율 카운터(104-218)에 클로킹 신호를 제공한다. 클로킹 신호 레이트는, 일 실시예에서, 실질적으로 32.768 킬로헤르츠(kHz)로 발진하는 수정에 의해 제공되고, K32 클록 신호로 지칭된다. 또한, 저전력 시간 유지 회로(104-200)는 내비게이션 프로세서(104-210)(접속이 미도시됨)에 정보를 제공한다. 전형적으로, 저전력 시간 유지 회로(104-200)에 의해 내비게이션 프로세서(104-210)에 제공되는 정보는 T2 에포크에서의 GPS 시간의 추정치이다. 다른 실시예들은 본 발명의 동작 및 기능을 실질적으로 벗어나지 않고 상이한 주파수 클록 신호를 채택할 수 있다.
도 105 및 106을 참조하여 아래에서 더 상세히 도시되고 설명되는 브라운아웃 검출 회로(brownout detection circuit)(104-235)는 RTC 클록 사이클들의 손실을 검출한다. 브라운아웃 검출 회로(104-235)는 RTC 클록 사이클들의 손실로 인해 RTC가 스타트업 시에 사용하기에 너무 부정확하게 된 상황을 검출하고 그에 따라서 내비게이션 프로세서에 통지하는데, 이에 대해서는 아래에서 더 상세히 설명된다.
에지 정렬 비율 카운터(104-218)는 (커넥션(104-244)을 통하여) 로컬 GPS 클록 발생기(104-216)에, (커넥션(104-246)을 통하여) 정합 필터(104-212)에, (커넥션(104-248)을 통하여) 저전력 시간 유지 회로(104-200)에 입력을 제공한다. 예시의 편의를 위하여, 커넥션들(104-244, 104-246 및 104-248)은 별개의 커넥션들로 예시되어 있다. 그러나, 이들 커넥션들 중 하나 이상이 단일의 커넥션으로 구현될 수도 있다. 에지 정렬 비율 카운터(104-218)는 또한 커넥션(104-250)을 통하여 내비게이션 프로세서(104-210)에 정보를 제공한다. 에지 정렬 비율 카운터(104-218)는 K32 및 M11 클록 신호들을 계속적으로 카운트하고 모니터하고, K32 클록 신호의 에지가 소정의 작은 허용 오차 내에서 M11 신호의 에지와 정렬할 경우, K32 및 M11 카운터 값들이 래치된다. 래치 시에, 에지 정렬 비율 카운터(104-218)는 로컬 GPS 클록 발생기(104-216)에 신호를 제공하여, K32 및 M11 카운트들을 T20 에포크에 관련시키기 위하여 현재의 T20 클로킹 신호가 래치되도록 한다. 동일한 방식으로, 에지 정렬 비율 카운터(104-218)는 커넥션(104-248)을 통하여 저전력 시간 유지 회로(104-200)에 신호를 제공하고, 이는 현재의 저전력 시간 유지 회로(104-200) GPS 시간 추정치가 래치되도록 한다. 따라서, GPS 수신기 유닛(103-100)은 K32 클록 신호 및 GPS M11 클록 신호의 타이밍 및 레이트를 T20 에포크 및 현재의 저전력 시간 유지 회로(104-200) GPS 시간과 상관시킬 수 있다. K32 클록 신호, GPS M11 클록 신호, 저전력 시간 유지 회로(104-200) GPS 시간 및 T20 에포크 카운트의 상관된 타이밍 및 레이트가 내비게이션 프로세서(104-210)에 제공될 경우, T20 에포크에서의 저전력 시간 유지 회로(104-200) GPS 시간 추정치가 계산될 수 있고 에지 정렬 비율 카운터(104-218) 내의 2개의 클록의 카운터 비율로부터 이들 2개의 클록의 상대 레이트가 추정될 수 있다. 상대 클록 주파수를 추정하기 위하여, 연속하는 에지 정렬 이벤트들로부터의 2개의 카운터 값 세트의 차가 구해지고 그 차의 비율이 취해진다.
모든 클록의 레이트 및 타이밍 위상이 정확히 관련될 수 있다는 점에 주의한다. EARC 자유 주행 M11 카운터 및 T20 에포크 발생기는 양자 모두 M11 클록에 의해 구동된다. 따라서, T20 에포크에서 M11 카운터를 래치하는 것은 카운터 값들과 T20 에포크 시간들을 관련시킨다. RTC 시간 및 EARC 자유 주행 K32 카운터는 양자 모두 K32 클록에 의해 구동된다. 따라서, RTC 경보 이벤트에서 K32 카운터를 래치하는 것은 카운터 값들과 RCT 시간들을 관련시킨다. RTC는 원하는 RCT 시간에 래칭 신호로서 유용한 펄스를 생성하는 경보 회로를 갖는다. EARC를 이용하여 자유 주행 K32 및 M11 카운터들을 에지 정렬 이벤트에서 래치하는 것은 K32 및 M11 카운터 값들을 관련시킨다. 2개의 정렬 이벤트들로부터 각각의 K32 및 M11 카운터 값들의 차를 구하는 것은 K32 및 M11 클록 레이트들의 비율이 관련될 수 있게 한다. 마지막으로, GPS 신호들이 추적될 때, GPS 솔루션(solution)의 계산은 T20 에포크에서의 정확한 GPS 시간 및 GPS 시간에 대한 T20 에포크들의 레이트를 제공한다. 따라서, K32 및 M11 클록 레이트들이 GPS 클록 레이트에 관련될 수 있고 RTC 및 T20 에포크 시간들이 GPS 시간에 관련될 수 있다.
이 기술 분야의 숙련자라면 GPS 수신기 유닛(103-100)에 대한 위에서 설명된 동작이 GPS 수신기 유닛의 일 실시예에 의해 사용되는 하나의 시스템에 대한 일반적인 설명으로서 의도된 것임을 알 것이다. 모든 GPS 수신기 유닛 컴포넌트들이 설명되거나 예시되어 있지는 않은데, 그러한 컴포넌트들이 반드시 본 발명에 관련되지는 않기 때문이다. 따라서, GPS 수신기 유닛(103-100) 내에 있는 위에서 설명된 컴포넌트들에 대한 설명은 일반적으로 본 발명의 이해를 위하여 필요한 정도까지 그들 컴포넌트의 동작 및 기능을 설명하는 것으로 제한된다. 더욱이, 본 발명을 채택한 GPS 수신기 유닛 및 다른 프로세서 시스템들은 도 104에 도시된 것과는 다른 순서와 방식으로 접속된 도 104에 도시된 컴포넌트들을 가질 수 있고, 또는 도 104에 도시된 컴포넌트들 모두를 포함하지 않을 수 있고, 또는 도 104에 도시된 컴포넌트들과 어떤 방식으로 접속된 부가적인 컴포넌트들을 포함할 수 있다. 본 발명을 이용하는 GPS 수신기 유닛 또는 프로세서 시스템에서의 임의의 그러한 변형은 이 명세서의 범위 내에 있고 부속된 청구항들에 의해 보호되는 것으로 의도된다.
온도 센서(104-206)는 커넥션(104-238)을 통하여 로컬 GPS 발진기(104-204)의 동작 온도를 검출한다. 감지된 온도 정보는 커넥션(104-240)을 통하여 A/D 컨버터(104-214)에 제공된다. A/D 컨버터(104-214)는 감지된 동작 온도 정보를 적당한 포맷으로 변환하여 그 정보를 커넥션(104-242)을 통하여 내비게이션 프로세서(104-210)에 제공한다. 온도 센서(104-206) 및 A/D 컨버터(104-214)는 온도 검출 기술 분야에서 채택되는 잘 알려진 컴포넌트들 및 기술들을 이용하여 구현될 수 있다. 온도 센서(104-206) 및/또는 A/D 컨버터(104-214)에 의해 수행되는 온도 감지 기능들은 온도 감지 기술 분야에서 통상적으로 채택되는 임의의 타입의 전자, 고체(solid state) 및/또는 펌웨어 타입 온도 센서 또는 수단으로 구현될 수 있다. 본 발명에서 채택되는 그러한 온도 센서는 온도 감지 기술 분야에서 통상적으로 채택되는 컴포넌트들 및 기술들을 이용한 소프트웨어 및 펌웨어의 조합으로 구현된다. 개개의 컴포넌트들을 포함한 온도 센서(104-206) 및 A/D 컨버터(104-214)의 상세한 동작에 대해서는 본 발명의 동작 및 기능을 이해하기 위하여 필요한 정도까지 외에는 상세히 설명되지 않는다. 이 기술 분야의 숙련자라면 온도 센서(104-206) 및 A/D 컨버터(104-214)는 본 발명의 기능 및 동작을 실질적으로 벗어나지 않고 각종의 잘 알려진 디바이스들을 이용하여 구현될 수 있다는 것을 인지할 것이다.
내비게이션 프로세서(104-210)는 수신된 온도 정보를 처리하여, 로컬 GPS 발진기(104-204)의 동작 온도에 기인하는 GPS 발진기에서의 주파수 에러가 결정되도록 한다. 이 주파수 에러를 결정하기 위한 예시적인 프로세스는 소정의 동작 온도 범위에 대한 온도 및 주파수 에러를 갖는 테이블을 채택한다. 일 실시예에서, GPS 클록 온도/주파수 에러 테이블(104-224)은 비휘발성 메모리(104-220)에 존재한다. 처음에는, 전형적인 발진기 수정의 온도의 함수로서 주파수 에러의 다항식 표현과 같은 주파수/온도 에러 알고리즘이 온도 관련 주파수 에러를 근사하기 위해 채택된다. GPS 수신기 유닛(103-100)이 시간에 걸쳐서 동작할 때, GPS 클록 데이터에 대한 온도/주파수 에러 테이블(104-224)의 부분은 여러 동작 온도에서의 GPS 위성 범위 및 범위 레이트 측정에 기초한 주파수 에러의 측정에 기초하여 로컬 GPS 발진기(104-204)에 대한 특정 동작 온도에서의 주파수 에러의 보다 정확한 정보로 채워진다. GPS 내비게이션 방정식의 솔루션은 수신기 공간 속도 및 로컬 발진기 주파수 에러(GPS 시간 에러의 변화율)는 물론, 공간 위치 및 GPS 시간 에러의 결정을 가능케 한다. 그렇게 결정된 발진기 주파수 에러는 온도/주파수 에러 테이블(104-224)에서의 새로운 업데이트 포인트로서 현재의 발진기 온도와 쌍을 이룬다.
또한, 사용자는, 위치 질의(positional query)에 대응하는 수동으로 개시된 웨이크-업 명령을 수신할 때 컴포넌트를 시동하도록 GPS 수신기 유닛(103-100)에게 지시한다. 예를 들어, GPS 수신기 유닛(103-100)의 사용자가 GPS 수신기 유닛(103-100)의 현재 위치를 전달받기를 원할 때, 사용은 수동 웨이크-업 명령을 개시한다. GPS 수신기 유닛(103-100)에게 질의하기에 적당한 수단이 사용자에게 제공된다. 웨이크-업 명령을 수동으로 개시하는 수단은 디바이스들을 활성화하는 기술에서 사용되는 공지된 컴포넌트 및 기술을 이용하여 구현될 수 있다. 웨이크-업 명령을 수동으로 개시하는 수단의 상세한 동작은 본원의 동작 및 기능을 이해하기 위해 필요한 범위 외의 것이므로 상세히 설명되지 않는다. 당업자는, 웨이크-업 명령을 수동으로 개시하는 수단이 본원의 기능성 및 동작으로부터 실질적으로 벗어나지 않는 여러 가지 공지된 디바이스들을 사용하여 구현될 수 있다는 것을 자각할 것이다. 본원의 일부로서 사용되는, 웨이크-업 명령을 수동으로 개시하는 수단에 대한 그러한 임의의 실시예들은 이 명세서의 범주 내에 있고 첨부된 청구 범위에 의해 보호되도록 의도된다.
웨이크-업 명령이 스타트업을 개시할 때, 로컬 GPS 클록 발생기(104-216)에 의해 제공된 클로킹 신호(예컨대, T20 에폭(epochs))는, GPS 위성 범위 교정을 위한 공통 로컬 GPS 시간 프레임을 재구축하기 위해, 위성 신호를 먼저 재획득하고 날짜의 6-초 서브-프레임을 수집하는 일없이, GPS 수신기 유닛(103-100)이 위치 업데이트를 수행할 수 있게 하기 위해 요구된 정밀도 내에 있지 않을 것이다. 그러나, PN 코드가 저 전력 시간 유지 회로(104-200)에 의해 유지된 시간에 기초하여, 파워 다운 기간(power down period)이 끝난 이후에 내비게이션 프로세서(104-210)에 의해 추정되고, 착신 PN 코드가 착신 GPS 위성 신호의 실제 PN 코드 시간의 ±0.5 ms 이하로 유지될 수 있다면, GPS 위성 신호는 신속하게 재획득되고, 공통 로컬 GPS 시간 프레임에 관한 교정이 취득되어 GPS 위성 신호를 획득하고 공통 시간 프레임을 구축하는 종래의 프로세스를 수행하지 않고 내비게이션에서 이용될 수 있다.
파워 다운 이전에, K32, M11 및 GPS 클록 신호들 간의 시간 및 속도 관계가 알려져 있다. K32 클록 신호 정밀도를 유지함으로써, K32 클록 신호는 가장자리로 정렬된 비율 카운터(104-218)에 의해 사용되어 K32 클록 신호 및 M11 신호를 래치하고, 이로써, M11 신호 및 그로부터 도출된 T20 에폭을 재교정(recalibrating)한다. 따라서, GPS 발진기(104-204)는 재교정된다. 내비게이션 프로세서(104-210)는 그 다음 정합 필터 혹은 신호 프로세서 채널을 설정하여 눈에 보이도록 산출된 위성의 PN 코드 위상을 획득한다. 정합 필터 혹은 신호 프로세서 채널 설정은 이전에 저장된 온도 데이터에 대한 GPS 발진기를 이용하여 GPS 발진기에서의 주파수 에러를 보상한다. 코드 위상 교정이 얻어지면, 이러한 값들은 PN 코드 기간 내의 어떤 칩이 현재 수신되고 있는지에 대한 인식으로부터 전체 GPS 신호 구조 내의 어떤 칩이 수신되고 있는지에 대한 인식으로 변환된다. 이러한 변환은 가정된 현재 GPS 시간 및 수신기 위치를 사용하여 이루어져서 전체 신호 구조 중 어떤 PN 칩이 수신기에 도착할 것인지를 산출하고, 실제로 도착하는 칩을 가정하는 것은 도착하는 칩에 가장 가까이에 있는 PN 코드 기간 내에 있는 칩의 예이다. 결합한 로컬 GPS 시간 추정 및 시간-등가 수신기 위치 에러가 정확하다면, 전체 GPS 신호 구조로의 전환(translation)은 정확할 것이고 일관된 GPS 범위 교정 세트가 결정될 것이다. 다시 말해, PN 코드의 에러가 파워 다운 기간이 끝난 후(슬립 모드를 지난 이후)에 내비게이션 프로세서(104-210)에 의해 추정되고, 착신 PN 코드가 착신 GPS 위성 신호의 실제 PN 코드 시간의 ±0.5ms 이하라면, 위치 정보는 정확하게 업데이트된다. 컴퓨팅된 위치 및 시간은 이전의 추정과 비교되어 사실 에러가 ±0.5ms보다 작다는 것을 검증다. 이 검증을 실패하면, 교정을 위한 공통 시간 프레임을 구축하기 위해 6-초 서브-프레임이 수집되어야 한다.
그 다음, GPS 수신기 유닛(103-100)에 의해 획득된 위치 및 시간 에러 정보가 이용되어 M11 및 K32 클록 에러를 업데이트한다. GPS 발진기(104-204) 및 K32 발진기(105-302)는 주파수 에러에 대해 업데이트된다. K32 저 전력 클록(105-306)은 정확한 GPS 시간에 대해 업데이트된다. 그 다음, GPS 수신기 유닛(103-100)은 다시 슬립 모드로 옮겨져서 전력을 보존한다. 그 다음, 다음 웨이크-업 명령이 수신될 때 상술한 프로세스가 반복된다. 따라서, 이러한 주기적 업데이트는, 클록 신호의 정밀도를 유지함과 동시에 전력을 보존하므로, GPS 유닛이 종래의 프로세스를 사용하여 위성 위치를 재획득할 필요가 없게 된다.
웨이크-업 명령이 수신될 때마다, K32 클록 신호가 사용되어 M11 클로킹 신호를 업데이트한다. 그러나, K32 발진기(105-302)로부터 유도된 K32 클록 신호는, K32 발진기(105-302) 주파수가 온도에 대해 의존적이라는 점에서 소정의 에러가 있을 수 있다. 즉, K32 발진기(105-302) 주파수는 상이한 동작 온도에 대해 서로 다르다. 일 실시예에서, 온도 센서(105-308)는 K32 발진기(105-302)의 동작 온도를 감지한다. 내비게이션 프로세서(104-210)는 검출된 K32 발진기(105-302)의 동작 온도를 LP 클록 온도/주파수 에러 테이블(105-322)에 있는 정보와 비교한다. 주기적 웨이크-업 명령과 K32 발진기(105-302)의 감지된 동작 온도 사이의 시간에 기초하여, 에러 보정 팩터가 결정되어, K32 발진기(105-302)의 동작 온도를 설명하기 위해 K32 시간 및 속도가 보정된다. 즉, K32 클록 신호의 시간은, K32 발진기(105-302)의 실제 동작 온도를 설명하기 위해 에러 팩터에 의해 보정된다. 상술한 바와 같이, 일 실시예에서, LP 클록 온도/주파수 에러 테이블(105-322) 내의 데이터는 실제 동작동안 수집된 이력 데이터에 기초하는 것이고, 따라서 상당히 정확하다.
K32 클록 신호가 재교정될 때, M11 신호와 관련된 시간이 재교정된다. 일 실시예에서, 온도 센서(104-206)는 GPS 발진기(104-206)의 온도를 감지한다. 내비게이션 프로세서(104-210)는 검출된 GPS 발진기(104-206)의 동작 온도를 GPS 클록 온도/주파수 에러 테이블(104-224)에 있는 정도와 비교한다. 그때, 소프트웨어는 이 속도 보정을 시간 경과로서 이용하여, 각 에폭에서 정확한 GPS 시간 추정을 유지하기 위해 M11 클록에 기초한 T20 에폭들 간의 간격을 스케일링한다. 또한, 웨이크-업 직후의 T20에서 GPS 시간의 초기 값은 이전에 설명된 바와 같은 가장자리에 정렬된 비율 카운터(104-216)를 사용하여 K32 저 전력 클록(105-306)으로부터 M11-기반 T20 에폭으로 GPS 시간을 이동시킴으로써 결정된다. M11 발진기는 슬립 기간동안 오프이므로, 그것의 경과 시간은 K32 저전력 클록(105-304)과 동일한 경과 시간으로 스케일링될 수 없다. 상술한 바와 같이, 일 실시예에서, 온도/주파수 에러 테이블(104-224) 내의 데이터는 실제 동작동안 수집된 이력 데이터에 기초한 것이므로 상당히 정확하다. 그 다음, K32 클록 신호(지금 보정된 온도)가 사용되어 M11 클록 신호(또 보정된 온도)를 업데이트할 때, 파워 다운 기간 후에 내비게이션 프로세서(104-210)에 의해 추정된 PN 코드는 착신 GPS 위성 신호의 실제 PN 코드 시간의 ±0.5ms 이하이다.
대안적인 실시예에서, 웨이크-업 이벤트는 내비게이션 업데이터를 위해 요구되는 것보다 자주 발생하도록 프로그램될 수 있다. 그러한 웨이크-업 이벤트는 단지 K32 발진기의 현재 온도를 샘플링할 목적으로 제공된다. 현재 및 이전 웨이크-업 이벤트의 온도들의 평균에 기초하여, 2개의 웨이크-업 이벤트 간의 경과 시간이 스케일링되어 온도에 있어서의 변화에 대해 정정한다. 그 결과로서 얻은 정정은 저전력 클록(105-306)에 인가될 수도 있고 혹은 추후 산출이 정정의 사용을 요구할 때까지 비-휘발성 메모리에 단순히 저장되어 있을 수도 있다. 또한, 이러한 대안은 동적 웨이크-업 기간동안 제공되도록 업그레이드될 수도 있다. 즉, 웨이크-업 명령들 간의 시간은 직면한(encountered) 특정 동작 조건에 의존하여 달리질 수도 있다. 파워 다운 기간 동안 K32 발진기(105-302)에서 총 온도 변화가 선정된 임계값을 초과한다면, 웨이크-업 명령들 간의 시간 기간은 적절한 시간 양까지 감소된다. 반면에, 총 온도 변화가 선정된 온도 임계값보다 작다면, 웨이크-업 명령들 간의 시간 간격은 소정의 적절한 시간 양까지 증가한다. 따라서, 정확한 온도를 유지하기 위해 소모된 전력은 온도 역학의 현재 환경의 요구 조건들과 관련하여 최소화된다.
앞선 대안에 대한 강화로서, 내비게이션 프로세서(104-210)는, 최종 주기적 웨이크-업 명령 및 현재 주기적 웨이크-업 명령 이래로 K32 발진기의 동작 온도에 있어서의 총 변화를 고려할 수 있다. 온도 변화가 선정된 임계값을 초과한다면, 내비게이션 프로세서(104-210)는 내비게이션 업데이트 프로세스를 즉시 개시하여 저전력 클록(105-306)의 무결성(integrity)이 수락가능한 한계 내에서 유지되도록 보장하기 위해 GPS 위성 신호를 재획득한다.
도 106은 일 실시예에 따른 전압 저하 검출 회로(brownout detection circiut; 104-235)의 일 실시예에 대한 블록도이다. 전압 저하 검출 회로(104-235)는 검출 회로(104-237) 및 상태 회로(104-239)를 포함한다. RTC 클록 신호는 라인(310) 상의 검출 회로(104-237)에 입력된다. RTC 클록 신호는 도시된 다이오드에 의해 반파장 정류된다. 반파장 정류된 RTC 클록 신호는 컴포넌트 R1, R2 및 도시된 캐패시터를 포함하는 RC(resistor-capacitor) 회로에 입력된다. 여기서 감쇠 전압(decay voltage)으로 불리는, 라인(104-241) 상의 RC 회로의 출력은 전압 비교기(104-281)에 입력된다.
RTC 발진기가 동작하고 있는 한, 검출기(104-237)는 비교기 입력에서 소정의 평균 DC 전압을 유지한다. 전압 비교기(104-281)로의 다른 입력은 기준 전압(104-243)이고, 이는 VDD 및 저항 R3에 의해 형성된 전압 분할기의 출력이다. 전압 기준은 수명의 끝에 가까운 배터리 전압의 하위 범위(lower range)에 맞추어 만들어진다. 이는, 또한, 상당한 수의 사이클동안 클록이 오프인 경우 이외에는 필터링되고 정류된 클록 전압이 이 임계값 위로 올라갈 것이다. 이를 달성하기 위해, RC 시상수는 상대적으로 길게 된다. 이는 검출기 회로(104-237)가 정확한 배터리 전압에 둔감하게 만든다. 긴 시상수 또한 회로(104-237)의 전력 소모를 줄이는데, 이는 발진기로부터 검출기 회로(104-237)로 상대적으로 적은 에너지가 필요하기 때문이다.
상태 회로(104-239)는 플립-플롭(104-283)을 포함한다. 플립-플롭(104-283)은 그것의 출력(104-259)에서 낮은 혹은 높은 논리 값을 나타낸다. 직전에 설명한 바와 같이, 검출 회로의 출력은 RTC가 양호하지 않을 때 플립-플롭(104-283)을 클리어한다. 플립-플롭(104-283)은 설정 입력(104-257)의 산호에 의해 RTC가 GOOD임을 나타내도록 설정된다.
전력이 우선 공급될 때, 검출기 회로(104-237) 및 플립-플롭(104-238)은 발진기를 시동하는데 걸린 시간보다 적은 시간에 응답할 것이고, 따라서 비교기(104-281)의 입력에서 검출된 전압이 입계값을 초과할 것이다. 따라서, 상태 회로는 NOT GOOD으로 재설정될 것이고, 배터리는 분리되어 교체된다.
RTC 발진기 클록이 충분히 긴 시간 멈춘다면, 비교기 입력 전압은 입계값 아래로 떨어질 것이고 플립-플롭을 클리어하여 RTC 클록이 NOT GOOD임을 나타낼 것이다.
상태 플립-플롭(104-238)은, 내비게이션 프로세서, 혹은 초기에 GPS 위성을 획득할 책임 및 RTC 시간을 사용하지 않고 시간 및 위치 솔루션을 생성할 책임을 갖는 다른 프로세서에 의해 RTC 클록이 GOOD를 나타내도록 설정된다. 프로세서가 시간 및 위치 솔루션을 생성하면, 프로세서는 RTC를 설정하고, RTC가 정확하게 전파하는 시간임을 검증하며, 최종적으로 플립-플롭(104-238)을 설정하여 RTC 클록이 GOOD임을 나타낸다. RTC 발진기가 계속해서 동작하여 RTC 클록을 생성하는 한, 전압은 임계값 위로 유지될 것이고 RTC 상태는 GOOD로 남아있을 것이다.
RTC 발진기가 소정의 기간동안 실패한다면, 비교기 입력에서 전압은 점차 감소할 것이다. 충분한 수의 미스 클록(missed clocks) 이후에, 플립-플롭(104-238)은 RTC 클록이 NOT GOOD임을 나타내도록 설정된다. 플립-플롭(104-238)은 프로세서가 다시 시간을 재구축할 때까지 이러한 상태로 남아있는다. 검출 회로(104-235)의 주요 목표 중 하나는 배터리 수명의 끝 및/또는 온도 변동에 기인하는 발진기 중지에 방어하는 것이다. 이슈가 수명의 끝(end of life)이라면, 백업 배터리는 발진을 위해 필요한 임계값보다 낮게 유지될 것이다. 이슈가 온도라면, 온도와 관련된 시상수는 상대적으로 느리다. 또한, 발진기가 저온을 겪는 배터리로 인해 멈출 때, 발진기는 그것이 중지될 때 공급되는 전압보다 높은 전압을 재시동을 위해 요구할 것이다. 따라서, 수천 사이클을 필요로 하는 시상수가 수락가능하다.
검출 회로(104-235)는 상이한 실시예에서 여러 방법으로 기입 및 판독될 수 있다. 예를 들어, 일부 실시예에서, 검출 회로(104-235)는 RF 칩(103-103)에 위치하고, 또 다른 실시예에서, 기저대역 칩(103-105)에 위치한다. 상태 회로(104-239)의 출력(104-259)은 버스 혹은 인터페이스 프로토콜에 따른 명령을 사용하여 판독될 수 있고, 또는 직접 모니터될 수 있다. 유사하게, 상태 회로(104-239)의 설정된 입력(104-257)은 실시예의 특정 아키텍처에 따른 임의의 소프트웨어나 하드웨어 메커니즘에 의해 토글될 수 있다.
예를 들어, 마이크로프로세서 버스 인터페이스는 플립-플롭(104-283)을 판독 및 기입할 수 있다. 이 상황에서, 플립-플롭(104-283)을 판독하는 것은, 주변 버스 스트로브가 활성화되기를 요구하고, 기입 선은 불활성이기를 요구하며, 적절한 선택 신호를 활성화하기 위한 주변 선택 디코드 및 "RTC_GOOD" 신호를 어서트하기 위한 로컬 RTC 블록 디코드를 필요로 할 수 있다. 버스 프로토콜에 따른 플립-플롭(104-283)의 판독 및 기입은, 예를 들면, 전압 저하 검출 회로가 기저대역 칩에 위치할 때 고찰된다.
또 다른 실시예에서, RTC 발진기 및 전압 저하 검출기 회로(104-235)는 RF 칩에 위치한다. 이는 발진기에 대해 보다 안정적인 환경을 허용하여, RTC 발진기를 정확하게 교정하는 능력 및 교정을 목적으로 이 발진기를 온도 센서에 더 가깝게 위치시키는 능력을 강화한다. 이러한 경우에, 플립-플롭(104-283)에 대한 인터페이스는 서로 다르다. 예를 들어, 직렬 IO 포트로부터의 메시지 디코드는 판독을 위해 플립-플롭(104-283)을 선택하고 이 비트를 메시지로 래치하고, 그 후에 포트를 거쳐 기저대역 칩 상의 프로세서로 클록 아웃(clocked out)된다.
많은 회로 변동은 개시된 전압 저하 검출 회로의 범주 내에 있다. 도시된 특정한 회로 컴포넌트들은 바람직한 기능을 수행하기 위한 단지 하나의 실시예일 뿐이다. 그 외의 많은 회로들 역시 특정한 환경에 대해 실용적이고 가능하다. 예를 들어, 검출기 회로 내의 캐패시터는 혼합 신호 통합에 대해서는 매우 작다. 따라서, 단순한 RC 시상수는 일부 추가 전자 기기들로 대치되어 효율적인 캐패시턴스를 증폭할 수 있다. 간단히, 플립-플롭(104-283)에 대한 비동기 설정 인터페이스는 사실상 프로세서 버스로부터의 동기 설정 인터페이스일 수도 있다. 이들은 회로 크기 혹은 전력 소모를 줄임으로써 개념을 강화하는 공지된 회로 기술들이다.
도 107은 실시예에 따른 전압 저하 검출 회로(104-235)의 동작을 도시하는 흐름도이다. GPS 수신기(103-100)의 스타트-업은, 107-602에 도시된 바와 같이, 602에서 내비게이션 프로세서(210)가 RTC를 판독한다. 이 RTC 시간은 107-604에서 EARC로 전송된다. 608에서, RTC의 상태는 검출기(104-235)의 출력(104-259)를 판독함으로써 체크된다. RTC가 GOOD이라면, 내비게이션 프로세서는 107-610에서 획득을 시작하기 위해 전송된 RTC 시간을 사용한다. RTC가 NOT GOOD이면, 하나의 액션 코스는 내비게이션 프로세서(104-210)에 대한 것으로 107-612에서 콜드 스타크를 진행한다. 107-614에서, 내비게이션 프로세서(104-210)는 시간 및 위치 솔루션을 생성한다. 시간 솔루션으로, 내비게이션 프로세서(104-210)은 107-616에서 RTC를 설정한다. 107-618에서, 내비게이션 프로세서(104-210)는 RTC 클록이 실행 중임을 검증한다. RTC 클록이 검증된다면, 내비게이션 프로세서(104-210)는 상태 회로(104-239)로 신호를 보냄으로써, 107-620에서 RTC 상태를 GOOD으로 설정한다. RTC 클록이 검증되지 않는다면, 내비게이션 프로세서(104-210)는, 107-618에서, 다시 RTC 클록이 실행중임을 검증하려고 시도한다.
내비게이션 모드로 들어가기 전에, 수신기는 온도/주파수 에러 테이블(104-224)을 이용하여 위성 획득 프로세스를 지원한다. 현재 동작 온도를 수신하면, 내비게이션 프로세서(104-210)는 온도/주파수 에러 테이블(104-224)에 있는 GPS 클록을 위한 테이블 정보를 참조한다. 로컬 GPS 발진기(104-204)의 실제 동작 온도를 온도/주파수 에러 테이블(104-224)의 데이터와 상관시켜, 로컬 GPS 발진기(104-204)에 의해 생성된 신호 내의 주파수 에러를 추정한다. 이 GPS 클록 주파수 에러 정보는, 접속(104-230)을 통해, GPS 신호 프로세서(104-208) 및 정합 필터(104-212)에 제공된다. 대안적으로는, 온도/주파수 에러 테이블(104-224)이 부분적으로만 채워져 있고, 정확한 현재 동작 온도에 대한 충분한 데이터를 포함하고 있지 않은 경우에는, 주파수/온도 에러 외삽 또는 보간 알고리즘을 이용하여 로컬 GPS 발진기(104-204)의 동작 온도로 인한 GPS 발진기 신호 내의 에러를 추정할 수 있다. 이 알고리즘은, 공칭 온도의 모양 대 사용중인 GPS 클록 발진기 크리스탈의 타입의 주파수 곡선과 함께 현재 동작 온도에 대하여 가장 근접한 온도에서의 테이블 내의 포인트를 이용하는 것이다.
도 105는 GPS 수신기 유닛(103-100)의 추가적인 상세사항을 도시하는 블록도이다. 저전력 시간 유지 회로(104-200)는 또한 적어도 K32 발진기(105-302), 신호 래치(105-304), 온도 센서(105-308) 및 저전력 클록 또는 RTC(real time clock)(105-306)를 포함한다.
K32 발진기(105-302)는 실질적으로 32.768kHz의 주파수를 갖는 K32 클록 신호로도 불리는 RTC 클록 신호를 접속(105-310)을 통해 출력한다. K32 발진기(105-302)는 약 30마이크로초의 32768Hz의 시간 분해능을 갖는 K32 클록 신호를 제공하기 때문에, K32 발진기(105-302)는 싱글 PN 코드 기간의 ±0.5ms 분해능 내의 주파수를 갖는 클록 신호를 제공한다.
RTC 클록 신호는 접속(105-310) 상의 절전(brownout) 검출 회로(104-235)에 송출된다. 절전 검출 회로(104-235)는 이하에서 상세히 설명한다.
K32 발진기(105-302)는 그 출력 K32 클록 신호를 저전력 클록(105-306)의 카운터 및 에지 정렬 비 카운터(104-216)에 제공한다. 에지 정렬 비 카운터(104-216)가, K32 클록 신호의 에지가 소정의 작은 허용 오차 내에서, M11 신호의 에지와 정렬된다고 판정한 경우, 래치 신호가, 접속(104-248)을 통해 신호 래치(105-304)에 제공된다. 접속(104-248)을 통해, 에지 정렬 신호가 수신되면, 저전력 클록 카운터(105-306)의 현재 값이 신호 래치(105-304)에 래치된다. 신호 래치(105-304)의 래치된 값은 접속(105-316)을 통해 내비게이션 프로세서(104-254)에 제공된다. 이에 따라서, 접속(105-316) 상의 신호는 저전력 클록 신호 또는 RTC 클록 신호이다. 에지 정렬 비 카운터(104-216)는 정렬 이벤트 에폭(epoch)에서의 에지 정렬 비 카운터의 M11 및 K32 카운터의 래치된 값들을 내비게이션 프로세서(104-210)에 제공한다. T20 에폭이 GPS 발진기 M11 클록(미도시)과 직접적으로 관련될 수 있기 때문에, 에지 정렬 비 카운터(104-216)의 M11 카운터 값이 소정수의 정수 M11 클록 틱의 오프셋으로서 저전력 클록(105-306) 내의 K32 카운터 값과 관련될 수 있다. 클록 틱의 수는, K32 및 M11 클록 에지가 (무시할 수 있는 정도의) 작은 에러 윈도우 내에 정렬될 경우, 카운터 값들이 모두 획득되기 때문에 정수(조각 클록 틱 컴포넌트가 없음)이다. 저전력 클록(105-306)이 시간 및 GPS 시스템 시간의 속도에 근접하게 교정되기 때문에, 로컬 GPS 시간 선의 특정한 T20 에폭에 대한 저전력 클록(105-306)의 값 및 오프셋을 알면, 저전력 시간 유지 회로(104-200)의 GPS 시간이 T20 에폭에 정확하게 전달될 수 있다. 모든 GPS 측정 신호 처리가 T20 에폭에 관련되기 때문에, 정확한 로컬 GPS 시간 추정에 대하여 측정이 이루어질 수 있다.
K32 발진기(105-302) 및 저전력 클록(105-306)은, 후술하는 방식으로 전력 공급이 저감되는 GPS 수신기 유닛(103-100) 내에 있는 선택된 컴포넌트와 비교할 때, 상대적으로 매우 낮은 전력 소비 장치이다. 또한, K32 발진기(105-302) 및 저전력 클록(105-306)은 상용화되고 비용도 비용도 비교적 비싸지 않다. 대안적이고 양호하게는, K32 발진기(105-302) 및 저전력 클록(105-306)은 GPS 장치(104-100)에 통합되어, 비용이 더 작고, 사이즈가 더 작으며, 보다 정확한 시간 전달 성능을 제공할 수 있다.
도 105에 도시된 바와 같이, 온도 센서(105-308)는 접속(105-318)을 통해, K32 발진기(105-302)의 동작 온도를 검출한다. 그러면, 감지된 온도 정보가 접속(105-320)을 통해 A/D 컨버터(104-214)에 제공된다. A/D 컨버터(104-214)는 감지된 온도 정보를 적당한 포맷으로 변환하고, K32 동작 온도 정보를 접속(104-242)을 통해 내비게이션 프로세서(104-210)에 제공한다. 온도 센서(105-308)는 온도 검출에 관하여 당업계에서 채용하는 공지된 컴포넌트나 기술을 이용하여 구현될 수 있다. 온도 센서(105-308)에 의해 수행되는 온도 감지 기능은, 온도 감지 기술에서 공통적으로 채용되는 임의의 타입의 전자, 고체 또는 펌웨어 타입 온도 센서 또는 수단에 의해 구현될 수 있다. 본 발명에서 채용되는 이러한 온도 센서(105-308)는 온도 감지 기술에서 공통적으로 채용되는 컴포넌트 및 기술을 이용하여 소프트웨어와 펌웨어의 조합에 의해 구현된다. 온도 센서(105-308)의 상세한 동작은, 본 발명의 동작과 기능을 이해하는데 필요한 정도까지만으로 하고, 그 외는 상세하게 설명하지 않는다. 당업자는, 온도 센서(105-308)가 본 발명의 기능과 동작에서 실질적으로 벗어나지 않는 한도 내에서 다양한 공지된 장치를 이용하여 구현될 수 있다. 본 발명의 일부로서 채용되는 임의의 이러한 온도 센서(105-308)에 관한 실시예는, 본 명세서의 범주 내에 있고, 첨부된 특허 청구범위에 의해 보호되는 것으로 의도된다.
메모리(104-200) 내에 포함되는 온도/주파수 에러 테이블(104-224)의 일부를 이용하여 K32 발진기(105-302)에 대한 온도/주파수 데이터를 저장한다. 내비게이션 프로세서(104-210)는 전술한 GPS 발진기(104-204) 주파수 에러와 마찬가지로, K32 발진기(105-302)의 현재 동작 온도에 기초하여 K32 발진기(105-302)로부터의 신호와 관련된 주파수 에러를 계산한다. GPS 수신기 유닛(103-100)이 시간을 넘어서 동작함에 따라, 온도/주파수 에러 테이블(104-224)은, 각종 동작 온도에서의 주파수 에러 측정에 기초하여 K32 발진기(105-302)에 대한 특정한 동작 온도에서의 주파수 에러의 보다 정확한 정보로 채워진다. M11 GPS 발진의 경우와는 다르게, 내비게이션 프로세서(104-210)는 K32 발진기의 에러를 측정하기 위한 직접적인 수단은 구비하고 있지 않다. 그러나, 내비게이션하는 동안에, 내비게이션 프로세서(104-210)는 GPS 발진기(105-302)로부터 M11 신호의 에러를 정확하게 추정하고, 에지 정렬 비 카운터(104-216)를 이용하여, T20 에폭으로부터의 GPS 시간을, T20 에폭으로부터 M11 틱의 근접한 정수의 공지된 오프셋을 갖는 K32 틱에서의 저전력 클록 값으로 전달할 수 있다. GPS 범위 측정이 T20 에폭에 대하여 이루어지기 때문에, T20 에폭은, 내비게이션 솔루션이 GPS 측정으로부터 이용 가능한 경우에 정확하게 알려진 GPS 시간 에러를 갖는다. 내비게이션 중에 T20 에폭 GPS 시간의 정확도를 저전력 클록(105-306)에 전달하는 것은, 현재 K32 발진기(105-302) 온도에서의 K32 클록 신호를 교정하는 것이다.
대안적으로는, 온도/주파수 에러 테이블(104-224) 내의 K32 발진기(105-302)에 대한 데이터가 부분적으로만 채워지면, 본 발명의 실시예는 유효 테이블 값을 갖는 가장 근접한 온도값 또는 온도값들로부터 외삽 또는 보간에 기초하여 K32 클록 신호의 온도 관련 주파수 에러를 근사하기 위해, 전형적인 K32 발진기 크리스탈(105-302)의 온도의 함수로서 주파수 에러의 다항식 표시 등의 주파수/온도 에러 알고리즘을 채용한다. 이러한 알고리즘은, 주파수 에러와 동작 온도를 수학적으로 상호 관련시킨다.
전력을 보존하기 위해, 많은 GPS 수신기 유닛(103-100) 컴포넌트, 및 다른 GPS 장치의 컴포넌트가 차단된다. 슬리핑 기간 또는 슬립 모드라고 불리는 컴포넌트가 전력을 보존하기 위해 차단된 시간 기간 동안에, 본 발명은 후술하는 바와 같이 GPS 시간의 트랙을 정확하게 유지한다. GPS 수신기 유닛(103-100)이 "웨이크-업 이벤트"에 응답하거나 포지션이 결정되었다는 것을 표시하는 또 다른 신호에 응답하는 것과 같이, 슬립 모드를 빠져 나오는 경우, GPS 시간은 정확히 유지되어, GPS 수신기 유닛(103-100)의 위치를 결정하기 위해 GPS 위성을 추적하는데, 최소의 시간이 요구된다.
예를 들면, 이에 제한되는 바는 아니지만, 로컬 GPS 발진기(104-204), 라디오(104-202), 로컬 GPS 클록 발생기(104-216) 및/또는 GPS 신호 프로세서(104-208)가 전력을 보존하기 위해 내비게이션 프로세서(104-210)에 의해 전력 공급이 낮춰진다. 선택된 컴포넌트의 전력 공급을 낮추는 것은, 컴포넌트가 입력되는 GPS 위성 신호를 정확하게 처리할 필요가 없는 경우에, GPS 수신기 유닛(103-100)에 의해 전체 전력 소모를 저감시켜, 휴대용 GPS 수신기 유닛(103-100)의 제한된 전력원 수명을 연장시킨다. 전형적으로는, 동작 중에 비교적 많은 양의 전력을 소비하는 컴포넌트는 전력 공급을 줄이도록 선택된다. GPS 수신기 유닛(103-100)의 설계자는 전력 공급 저감 프로세스 동안에 차단될 컴포넌트를 선택한다는 것을 이해해야 한다. 전력 공급이 감소될 GPS 수신기 유닛(103-100) 내에 있는 많은 수의 컴포넌트가 있기 때문에, 많은 부분들이 설명되지 않고, 당업자는, 전력 공급이 저감될 컴포넌트들의 상세한 설명 및 명세서가 상세하게 열거하여 설명하기에는 너무 많다는 것을 이해할 것이다. 본 발명에 따른 전력 공급이 저감되는 컴포넌트들의 조합은 보 명세서의 범주 내에 있고, 첨부된 특허 청구범위에 의해 보호되는 것이다.
종래의 GPS 수신기의 선택된 컴포넌트의 전력 공급 저감으로 인해, GPS 위성 신호 트랙킹의 손실이 초래된다. 이러한 종래의 GPS 수신기가 GPS 위성 신호의 손실 이후에 전력 공급이 높아지는 경우, GPS 위성 신호의 재획득 및/또는 이러한 신호들을 이용하여 내비게이션하기 위한 충분한 정확도의 GPS 시간의 확립에 수초가 요구된다. 종래의 GPS 수신기의 위성 신호 및 시간 재획득에 필요한 시간으로 인해 대응하는 만큼의 전력 사용을 초래한다. 따라서, 슬리핑 기간 중에 GPS 시간을 정확하게 유지하는 저전력 시간 유지 회로(104-200)는, GPS 수신기 유닛(103-100)으로 하여금 GPS 위성 신호의 보다 신속한 재획득을 가능하게 하여, 전력 자원을 절감할 수 있게 된다.
웨이크-업 명령은 주기적으로 GPS 수신기 유닛(103-100)에 제공된다. 주기적인 웨이크-업 명령들 간의 시간은 저전력 시간 유지 회로(104-200)가 구현되었던 GPS 수시기 유닛(103-100)의 특정한 아키텍처 또는 어플리케이션에 기초하여 결정된다. 웨이크-업 명령들 간의 시간은, 전력 공급 저감 기간 이후에 내비게이션 프로세서(104-210)에 의해 추정된 로컬 리플리카 PN 코드 상(phase)과 입력되고 있는 PN 코드 간의 누적된 시간 에러가 입력되고 있는 GPS 위성 신호의 실제 PN 코드 상의 ±0.5ms 이하가 되도록 선택된다. 내비게이션 프로세서(104-210)에 의해 추정된 PN 코드가 ±0.5ms 범주를 초과하는 경우에는, 내비게이션 프로세서(104-210)는 종래의 프로세스를 개시하여 GPS 위성 정보를 획득한다. 전형적으로는, 수신기(103-100)는 가능성 있는 에러 누적을 추정하여, 이에 따른 정확한 알고리즘을 선택해야 한다. 선택된 알고리즘은 (종래의 획득보다는 고속의 획득을 이용하여) 너무 낙관적이므로, 내비게이션 프로세서(104-210)는, 결과적인 포지션 및 시간 에러 솔루션과 이전에 상정한 값을 비교함으로써 시간 정확도 가정을 검증해야만 한다. 사실상 조합된 시간과 시간 등가 포지션 에러가 ±0.5ms를 초과하면, 결과적인 솔루션은 통상은 인지 가능할 정도로 큰 에러만큼 이전의 값과는 다를 것이다. 에러가 ±0.5ms보다 크지 않으면, GPS 시간은 저전력 시간 유지 회로(104-200)에 의해 충분한 정확도로 유지된다.
알람 유닛(105-324)은 주기적인 내비게이션 업데이트라고도 불리는 주기적인 웨이크-업 명령을 구현하는 기능을 수행한다. 알람 유닛(105-149-324)은 적어도 하나의 알람 레지스터(105-326) 및 비교기(104-238)를 포함한다. 일 실시예에서는, 차단하기 전에, 내비게이션 프로세서(104-210)가 웨이크-업 알람 로직(104-222)을 실행하여, 알람 유닛(105-324)이 GPS 수신기 유닛(103-100)을 깨우는 주기적인 시간을 정의한다. 일 실시예에서는, 시간 주기가 사전에 정의된다.
웨이크-업 명령이 발행될 때를 정의하는 시간 기간이 알람 레지스터(105-326)에 접속(105-330)을 통해 제공된다. 일 실시예에서는, 시간 기간은 GPS 시간 유닛에서 정의된다 (TOW 및 위크 넘버). 또 다른 실시예에서는, 리얼 타임 등의 또 다른 적당한 시간 기간을 이용하여 시간 기간을 정의한다.
GPS 수신기 유닛(103-100)이 일단 슬립 모드에 배치되면, 알람 유닛(105-324)이 (슬립 모드 중에 차단되지 않은) 저전력 클록(105-306)으로부터 제공되는 K32 클록 신호를 모니터하여, 현재 슬립 모드 시간을 결정한다. 비교기(105-328)는 현재 슬립 모드 시간과 알람 유닛(105-324)이 GPS 수신기 유닛(103-100)을 깨우는 주기적인 시간을 비교한다. 현재 슬립 모드와 주기적인 시간이 서로 일치하면, 알람 유닛(105-324)은 주기적인 웨이크-업 명령을 생성한다. 이 주기적인 웨이크-업 명령은 슬리핑 기간 동안에 전력 공급이 저감되었던 컴포넌트의 전력 공급의 증가를 개시한다.
일 실시예에서는, 주기적인 웨이크-업 명령이 특수한 목적의 전용 하드웨어를 이용하여 전력 상승을 개시한다. 예를 들면, 웨이크-업 명령은, 슬립핑 기간 동안에 전력 공급이 저감되었던 컴포넌트에 전력이 공급되도록 하나 이상의 전력 스위치를 기동시킨다. 또 다른 실시예에서는, 웨이크-업 명령이 내비게이션 프로세서(104-210)에 제공되어, 웨이크-업 알람 로직이 슬립핑 기간 동안에 전원 공급이 저감되었던 컴포넌트들을 깨우도록 실행된다.
알람 유닛(105-324) 및 그 관련 컴포넌트들이 웨이크-업 명령을 생성하는 당 기술에 채용되는 공지된 컴포넌트 및 기술을 이용하여 구현될 수 있다. 알람 유닛(105-324) 및 그 관련 컴포넌트의 상세한 동작은 본 발명의 동작 및 기능을 이해하는데 필요한 정도까지만 제외하고는, 상세히 설명하지 않는다. 당업자는 알람 유닛(105-324) 및 그 관련 컴포넌트가 본 발명의 기능과 동작으로부터 실질적으로 벗어나지 않는 범위 내에서 각종의 공지된 장치를 이용하여 구현될 수 있다는 것을 알 것이다. 본 발명의 일부로서 채용되는, 임의의 이러한 알람 유닛(105-324) 및 그 관련 컴포넌트의 실시예들은, 본 명세서의 범주 내에 있고, 첨부된 특허 청구범위에 의해 보호되는 것이다.
대안적인 실시예는 전력 공급 저감 및 전력 공급 증대 기능을 수행하는 다른 적당한 프로세서(미도시)를 채용할 수 있다. 이러한 프로세서 및 그 관련 컴포넌트들은 슬리핑 기간 동안에는 전력 공급이 저감되지 않는다. 이러한 대안적인 프로세서는 주기적인 웨이크-업 명령을 생성하도록 구성된다. 프로세서는 GPS 수신기 유닛(103-100) 내의 또 다른 시스템의 컴포넌트(도 103 및 104에서는 미도시) 또는 GPS 수신기 유닛(103-100) 내의 단독의 전용 프로세서일 수 있다. 주기적인 웨이크-업 명령을 발생하는 기능을 수행하는 GPS 수신기 유닛(103-100)에서 구현되는 임의의 이러한 대안적인 실시예는 본 명세서의 범주 내에 있고, 첨부된 특허 청구범위에 의해 보호되는 것이다.
도 107에 도시된 브라운아웃(brownout) 검출 프로세스는 여기에 기술된 다른 프로세스들과 함께 수행되는 프로세스의 일 실시예이다. 예를 들면, 도 108a, 107b 및 107c는 도 107의 프로세스와 함께 수행되도록 고려되는 프로세스의 일 실시예를 도시한다. 이제 도 108a, 107b 및 107c를 참조하면, 흐름도 108-400은 K32 클록 신호를 이용하여 M11 클록 신호를 업데이트하는 것을 포함하는 프로세스의 일 예를 도시한다. 흐름도 108-400의 프로세스는 추정된 GPS 시간이 GPS 수신기 유닛(103-100)의 위치를 획득하기 위하여 충분히 정확한지 여부를 결정하는 것을 더 포함한다. 파워다운 주기동안 내비게이션 프로세서(104-210)에 의하여 추정된 PN 코드와 인커밍 PN 코드들 사이의 시간 에러가 인커밍 GPS 위성 신호들의 액츄얼 PN 코드 시간의 ±0.5 ms보다 작거나 동일하다면, K32 클록 신호 및 M11 클록 신호는 업데이트된다. 흐름도(108-400)의 프로세스는 GPS 발진기(104-204)와 연관된 M11 클록 신호 및 검출된 GPS 위성 정보를 갖는 K32 발진기(105-302)와 연관된 K32 클록 신호를 업데이트하는 것을 더 포함한다. 업데이트 이후에, GPS 수신기 유닛(103-100)는 그 후 슬리프(sleep), 또는 파워다운(powered down), 모드로 복귀한다.
흐름도(108-400)는 웨이크업 경보 로직(104-222)의 일 실시예를 더 도시한다. 일부 대안의 실시예들에서, 기술된 기능들은 흐름도(108-400)에 언급된 순서와 다르게(out of the order) 발생할 수 있거나, 기술된 기능들은 동시에 발생할 수 있거나, 기술된 기능들중 일부는 제거될 수 있거나, 또는 추가적인 기능들이 포함될 수 있다.
웨이크업(wake-up) 명령이 경보 유닛(105-324)에 의하여 생성되는 경우 블록(108-402)에서 프로세스가 개시한다. 대안적으로, 프로세스는 또한 위치 정보를 제공하는 GPS 수신기 유닛(103-100)에 사용자가 질의하는 경우("내비게이션 업데이트") 개시할 수 있다.
블록(108-404)에서, 파워업에 대한 이유가 웨이크업 명령이었는지 또는 사용자로부터의 위치 질의이었는지 여부에 대한 결정이 이루어진다. 파워업의 이유가 경보 유닛(105-324)에 의한 웨이크업 명령의 생성이어서 GPS 수신기 유닛(103-100)가 저전력 시간 유지 회로(104-200)에 의하여 유지된 K32 기초 시간을 업데이트할 것이라면, 프로세스는 블록(108-406)으로 진행한다. 그러나, 파워업에 대한 이유가 사용자로부터의 위치 질의에 응하여 위치 정보를 제공하는 것이라면, GPS 수신기 유닛(103-100)는 블록(108-422)으로 진행함으로써 내비게이션 업데이트를 개시한다.
블록(108-406)에서, 후술된 바와 같이 K32 클록킹 신호들의 재조정(recalibration)시 채용되는 선택된 컴포넌트들은 파워업된다. GPS 수신기 유닛(103-100)의 다른 컴포넌트들은 블록(108-406)에서 파워업되지 않아서 파워를 보존한다. 예를 들면, GPS 수신기 유닛(103-100)는 적어도 결정된 위치 정보를 사용자에게 알려주는 디스플레이(도시하지 않음)를 포함할 수 있다. GPS 수신기 유닛(103-100)가 주기적 내비게이션 업데이트를 수행하고 있다면, 사용자는 장치가 내비게이션 업데이트를 수행중인 것을 알거나 위치 정보를 아는 것에 관심이 없을 수 있다. 따라서, 디스플레이(도시하지 않음)는 블록(108-406)에서 파워업되지 않아서, 파워를 보존한다.
블록(108-408)에서, 온도 센서(105-308)는 K32 발진기(105-302)의 온도를 측정한다. 블록(108-410)에서, GPS 수신기 유닛(103-100)가 슬리프 모드에 있는 시간 동안 K32 발진기(105-302)에 대하여 평균 온도가 결정된다. 블록(108-412)에서, 저전력 시간 유지 회로(104-200)에 의하여 유지된 K32 기초 시간이 액세스된다. 블록(108-414)에서의 시간 에러에 기초하여, 온도/주파수 에러 테이블(104-224)에서의 정보에 기초하여, 전술된 바와 같은 정정 인자(correction factor)는 결정된 K32 기초 시간에 적용된다. 정정 인자는 그 후 블록(108-416)에서 저전력 시간 유지 회로(104-200)에 의하여 유지된 K32 기초 시간을 정정하는데 이용된다.
일 실시예에서, 다음 웨이크업 명령에 대한 시간은 블록(108-418)에서 결정된다. 따라서, 웨이크업 시간은 경보 레지스터(105-326)에서 업데이트된다. 대안적으로, 다른 실시예들은 주기적 웨이크업 명령들 사이의 소정의 시간 간격을 채용하고 및/또는 다른 컴포넌트들로부터 주기적 웨이크업 명령들을 제공한다.
블록(108-420)에서, 상기 선택된 파워업 컴포넌트들(블록(108-406에서)은 파워다운된다. 저전력 시간 유지 회로(104-200)에 의하여 유지된 K32 기초 시간이 업데이트되었으므로, 이 선택된 컴포넌트들은 파워다운되어 파워 리소스들을 보존한다. 프로세스는 블록(108-402)으로 복귀하여 다음 웨이크업 명령 또는 사용자로부터의 위치 질의를 대기한다.
위치 질의가 블록(108-404)에서 수신되면, GPS 수신기 유닛(103-100)는 GPS 수신기 유닛(103-100)의 위치를 정확히 결정하고 사용자에게 위치를 알리는 것을 이해하고, 프로세스는 블록(108-422)으로 진행한다. 즉, 사용자는 내비게이션 업데이트를 희망한다.
따라서, 후술되는 GPS 수신기 유닛(103-100)의 컴포넌트들은 블록(108-422)에서 파워업된다. M11 기초 시간의 업데이트와 연관된 컴포넌트들은 블록(108-422)에서 파워업된다. 예를 들면, 라디오(104-202), GPS 발진기(104-204), 온도 센서(104-206), 내비게이션 프로세서(104-210), 매치 필터(104-212), A/D 컨버터(104-214), 로컬 GPS 클록 생성기(104-216), 에지 정렬된 비율 카운터(edge aligned ratio counter, 104-218) 및/또는 메모리(104-220)가 리파워(repowered)된다.
더욱이, GPS 수신기 유닛(103-100)는 블록(108-422)에서 파워업되는, M11 기초 시간(M11 based time)의 업데이팅과 연관되지 않은 추가적인 컴포넌트들을 포함할 수 있다. 예를 들면, 디스플레이(도시하지 않음) 및 연관된 회로가 이용되어 상기 결정된 위치 정보를 사용자에게 알릴 수 있다. 따라서, 디스플레이는 반드시 파워업되어야 한다. 대조적으로, 디스플레이는 블록(108-406)에서 파워업될 필요가 없었으며, 그 이유는 전술된 바와 같이 K32 기초 시간의 업데이트 동안 위치 정보가 디스플레이되지 않았기 때문이다(블록 406-416). 일 실시예에서, 이 추가적인 컴포넌트들은 블록(108-416)에서 전술된 컴포넌트들과 동시에 파워업된다.
다른 실시예에서, 이 추가적인 컴포넌트들의 파워업은 내비게이션 업데이트가 완료될 때까지 지연된다. 따라서, 블록(108-422)은 두개의 분리된 블록들로 도시될 것이며, 추가적인 컴포넌트들의 파워업은 흐름도(108-400) 내의 나중의 지점에 삽입된 새로운 블록과 함께 도시된다. GPS 수신기 유닛(103-100)가 업데이트된 위치를 결정한 후, 이 추가적인 선택된 컴포넌트들은 파워업되어 업데이트된 위치는 사용자에게 알려진다. 예를 들면, GPS 수신기 유닛(103-100)는 적어도 결정된 위치 정보를 사용자에게 알리는 디스플레이(도시하지 않음) 및 연관된 회로를 포함할 수 있다. 위치 업데이트가 요청되는 때에만 이 추가적인 선택된 컴포넌트들의 리파워링을 지연시키는 대안의 실시예는 특히 파워를 보존하는데 유리한다. 즉, 클록들 및 연관된 내비게이션 업데이트의 재조정을 위하여 선택된 추가적인 컴포넌트들이 요구되지 않는다면, 웨이크업 명령이 수신될 때 상기 선택된 컴포넌트들을 슬리프 모드로 유지하는 것은 파워를 더 보존한다.
블록(108-424)에서, 온도 센서(105-308)는 K32 발진기(105-302)의 온도를 측정하고 블록(108-408 내지 108-416)에서 전술된 프로세스를 이용하여 온도/주파수 에러 테이블(104-224)로부터 결정된 정정 인자를 이용하여 시간을 정정함으로써 저전력 시간 유지 회로(104-200)에 의하여 유지된 K32 기초 시간을 정정한다. 즉, K32 기초 시간은 슬리핑 주기 동안 발생하는 온도/주파수 편차들에 대하여 정정된다.
블록(108-426)에서, 업데이트된 K32 기초 시간은 에지 라인비 카운터(104-216)에 의하여 M11 기초 시간으로 트랜스퍼된다. 따라서, GPS 수신기 유닛(103-100)는 그 컴포넌트들을 파워업시켰고 저전력 시간 유지 회로(104-200)로부터의 정정된 K32 기초 시간을 이용하여 GPS 발진기(104-204)에 의하여 제공된 M11 클록킹 신호로부터의 GPS 시간을 정확히 업데이트시켰다. 그러나, 일 실시예에서, GPS 발진기(104-204)의 온도 변화로 인하여 M11 클록킹 신호에서의 에러가 발생할 수 있다. 따라서, 블록(108-428)에서, 온도 센서(104-206)는 GPS 발진기(104-204)의 온도를 측정한다. 블록(108-430)에서, 현재 GPS 발진기(104-204) 온도가 결정된다. 블록(108-432)에서, 온도/주파수 테이블로부터 M11 주파수 에러가 결정된다.
블록(108-436)에서, 업데이트된 T20 에포크(epoch)가 이용되어 가시 GPS 위성(103-102, 103-104, 103-106 및/또는 103-108)의 도플러들 및 위치를 추정한다. 가시 위성들(103-102, 103-104, 103-106 및/또는 103-108)의 추정된 위치에 기초하여, 블록(108-438)에서 GPS 수신기 유닛(103-100)는 매치된 필터(104-212) 또는 GPS 신호 프로세서(104-108)를 이용하여 가시 위성들(103-102, 103-104, 103-106 및/또는 103-108)에 대한 PN 코드 위상(모듈로 1ms)를 측정한다. 그 후, 블록(108-440)에서, 추정된 T20 에포크가 이용되어 위성들(103-102, 103-104, 103-106 및/또는 103-108)의 각각에 대하여, TOW(time of week)로서, 예측된 현재 풀 PN 코드 위상(expected current full PN code phase)을 계산한다. 즉, GPS 수신기 유닛(103-100)는 GPS 발진기(104-204)로부터의 업데이트된 M11 클록킹 신호를 이용하여 모듈로 1 ms PN 코드 위상을 정확히 추정하여 TOW로서 예측된 완전한 PN 코드 위상을 계산한다.
블록(108-443)에서 풀 코드 위상이 정정되어 상기 측정된 PN 코드 위상(모듈로 1 ms)과 매치한다. 블록(108-444)에서, 상기 추정된 정정된 풀 PN 코드 위상에 기초하여 내비게이션 솔루션이 계산된다. 다음, 블록(108-446)에서, 상기 계산된 내비게이션 솔루션은 시간 유닛들의 이전의 내비게이션 솔루션과 비교된다.
블록(108-448)에서, GPS 수신기 유닛(103-100)의 계산된 위치가 이전의 내비게이션 솔루션 시간으로부터 ±0.5 ms보다 작게(1 PN 코드보다 작게) 변화되었는지 여부에 대한 결정이 이루어진다. 결정된 변화가 ±0.5 ms보다 크다면(NO 조건) 프로세스는 블록(108-450)으로 진행하여 GPS 수신기 유닛(103-100)는 GPS 위성들(103-102, 103-104, 103-106 및/또는 103-108)의 각각으로부터 전체 6 초 서브 프레임을 수집하여 GPS 시간을 설정한다. 블록(108-452)에서, GPS 수신기 유닛(103-100)는 종래의 방법을 이용하여 내비게이션 솔루션을 업데이트하므로, GPS 수신기 유닛(103-100)의 위치를 정확히 결정한다.
그러나, 블록(108-448)에서 위치의 변화가 ±0.5 ms보다 작거나 같은 것으로 결정되면(YES 조건), GPS 수신기 유닛(103-100)는 저전력 시간 유지 회로(low power timekeeping circuit, 104-200)로 정확히 유지된 GPS 시간을 갖는다. 따라서, 프로세스는 블록(108-454)으로 진행하여, 전술된 방식으로 에지 정렬된 비율 카운터(104-218)를 이용하여 로우 파어 시간 유지 회로(104-200) M11 시간을 업데이트하기 위하여 정정된 T20 시간이 이용된다. 따라서, K32 클록킹 신호는 다음의 파워다운 주기에 대비하여 정확히 결정된 GPS T20 시간과 상관(correlated)된다.
일 실시예에서, 온도/주파수 에러 테이블(104-224)에 존재하는 데이터는 상기 수집된 온도 및 주파수 정보로 업데이트된다. 즉, 이 실시예는 획득된 온도 및 주파수 데이터를 이용하여 온도/주파수 에러 테이블(104-224) 데이터를 지속적으로 업데이트하여, 온도/주파수 에러 테이블(104-224)로부터 결정된 후속하는 정정 인자들의 정확도를 개선한다.
블록(108-458)에서, GPS 수신기 유닛(103-100)가 스테이온(stay on)하는지 여부에 대한 결정이 이루어진다. GPS 수신기 유닛(103-100)가 스테이온하는 것이라면(YES 조건), 프로세스는 블록(108-460)으로 진행하여 GPS 수신기 유닛(103-100)는 다른 기능들을 수행한다. 그러한 다른 기능들은 파워다운 주기들 동안 시간을 정확히 유지하는 것에 반드시 관련되어야 하는 것은 아닐 수 있으므로 여기에서 상세히 설명되지 않는다. 이 다른 기능들이 수행된 후, 프로세스는 다시 블록(108-418)으로 진행하여 웨이크업 명령의 다음 시간이 전술된 바와 같이 결정된다.
블록(108-458)에서 GPS 수신기 유닛(103-100)가 스테이온할 이유가 없는 것으로 결정이 이루어지면(NO 조건), 프로세스는 직접 블록(108-418)으로 진행한다. 즉, 프로세스는 블록(108-418)으로 진행하여 GPS 수신기 유닛(103-100)는 파워다운되어 에너지를 보존하는 한편 저전력 시간 유지 회로(104-200)는 정확히 GPS 시간을 유지한다.
GPS 수신기 유닛(103-100)의 전술된 실시예들은 일반적으로는 K32 발진기(105-302)로부터 도출된 K32 클록 신호 및 GPS 발진기(104-204)로부터 도출된 M11 클록킹 신호를 업데이트하여 GPS 발진기(104-204)가 파워다운되는 경우 주기들 동안 정확한 GPS 시간이 유지되는 것으로 기술되어 있다. 다른 실시예들은 GPS 위성들로부터의 위치 결정과 연관된 다양한 다른 클록킹 신호들을 업데이트한다. 더욱이, GPS 발진기(104-204)는 11 MHz와 실질적으로 동일한 발진 주파수를 갖는 신호를 제공하는 것으로 기술되었다. 유사하게, K32 발진기(105-302)는 32 kHz와 실질적으로 동일한 발진 주파수를 갖는 신호를 제공하는 것으로 기술되었다. GPS 수신기 유닛들의 다른 실시예들은 GPS 발진기 및/또는 GPS 발진기(104-204) 및 K32 발진기(105-302)의 발진 주파수들과는 상이한 발진 주파수들을 갖는 저전력 시간 유지 회로에 존재하는 발진기로 구현될 수 있다. 더욱이, 저전력 시간 유지 회로는 컴포넌트들이 파워오프된 시간의 주기들 동안 GPS 시간 정확성을 유지하는데 이용된 실질적으로 32 kHz의 클록킹 신호를 제공하는 것으로 기술되었다. 다른 실시예들에서, 저전력 시간 유지 회로(104-200)로부터 제공된 클록킹 신호들이 이용되어 GPS 수신기 유닛에 존재하는 다른 컴포넌트들에 클록킹 신호를 제공한다. 그러나, 그러한 컴포넌트들은 본 발명의 동작 및 기능을 이해하는데 필요한 정도를 제외하고는 상세하게 기술되지 않는다.
대안의 실시예에서, 온도 센서들(104-206 및 105-308)은 적절하게 위치된 단일의 온도 센서에 의하여 대체(또는 그 내부에 통합됨)되어 GPS 발진기(104-204) 및 K32 발진기(105-302)의 동작 온도가 검출된다. 그러한 온도 센서는 신호를 직접 내비게이션 프로세서(104-210)에 제공하도록 더 구성될 수 있다. 이 실시예는 컴포넌트들의 수를 감소시키며, 그에 따른 비용, 사이즈 및 전력 소모를 감소시킬 수 있다.
도 103 및 104에서 예시의 편의 및 본 발명의 동작 및 기능 설명의 편이를 위하여, K32 발진기(105-302), 및 GPS 발진기(104-204)로부터의 신호에서의 전체 주파수 에러 계산 및 감지된 온도 프로세싱은 내비게이션 프로세서(104-210)에 의한 로직(예를 들면, 웨이크업 경보 로직(104-222)의 일부로서 존재하는 로직)의 실행에 의하여 구현되는 것으로 기술 및 도시되었다. 대안적으로, 상이한 프로세서에 의하여 프로세싱이 실시될 수 있다. 더욱이, K32 발진기(105-302)로부터의 신호의 전체 주파수 에러 계산을 위한 로직 및 감지된 온도들을 프로세싱하기 위한 로직은 메모리(104-220), 또는 다른 적절한 메모리에 존재하는 전용 로직 모듈들(도시하지 않음)에 존재할 수 있을 것이다. 또한, LP 클록 온도/주파수 에러 테이블(105-322) 및/또는 GPS 클록 온도/주파수 에러 테이블(104-224)은 편의를 위하여 메모리(104-220)에 존재하는 것으로 도시되었다. 감지된 온도 테이블들은 대안의 위치들 및/또는 적절한 대안의 기억 매체들에 존재할 수 있다. 임의의 그러한 대안의 실시들은 본 명세서의 범위 내에 있고 첨부된 청구범위들에 의하여 보호되는 것이 의도된다.
상기 설명 이외에, 일 실시예의 GPS 시스템은 후술되는 바와 같이, EARC(Edge-Aligned Ratio Counter)를 포함한다. 여기에 이용된 일부 용어들에 대한 정의들이 후속한다. 이 정의들은 대표적인 예들로서 제공되는 것이며 이하의 실현된 실시예들을 제한하려는 것이 아니다. "샘플링 에지"는 "샘플링 포인트"로서 지정된, "기준 클록"의 에지이며, 상승 또는 하강할 수 있다. "샘플링 포인트"는 "샘플된 클록"의 값을 샘플링하는데 이용된 "기준 클록"의 에지이다. "샘플된 값"은 "샘플링 포인트"에서 취해진 "샘플된 클록"의 로직값(0 또는 1)이다. "타겟 에지"는 "샘플링 포인트"가 정렬을 시도하는 "샘플된 클록"의 에지이며, 상승 또는 하강일 수 있다. "어드밴스(advance)"는 이전의 "샘플링 포인트"보다 나중에 "상기 "샘플된 클록"의 사이클에서 발생하는 "샘플링 포인트"이다.
계속해서 정의하면, "슬루(Slew)"는 "기준 클록 샘플링 에지"와 "샘플링된 클록 타깃 에지" 간의 오프셋에서의 변화이다. 슬립(slip)은 "슬루"에 대한 대안 용어이다. "개략적인 슬루(Coarse Slew)"는 R0 및 R1에 의해 야기된 2개 "슬루" 값 중 더 작은 "슬루"이다. "정밀한 슬루(Fine Slew)"는 R0 및 R1에 의해 야기된 2개 "슬루" 값 중 더 큰 "슬루"이다. "리타드(Retard)"는, "샘플링 포인트"가 "샘플링된 클록"의 사이클에서 종래의 "샘플링 포인트"보다 더 빨리 발생한 후의 슬루이다.
또한, "로드 펄스(Load Pulse)"는, "타깃 에지"가 "정밀한 슬루" 동안에 검출될 때, "기준 클록" 카운터 값 및 "샘플링된 클록" 카운터 값을 그 각각의 레지스터에 전달한다. "매직 게이트(Magic Gate)"는 "로드 펄스"에 대한 대안 명칭이다.
도 109는 실시예에서의 EARC(Edge-Aligned Ratio Counter)109-100의 블록도이다. 일반적으로, 비율 카운터(ratio counter)의 목적은 제2 클록에 관한 제1 클록의 주파수를 측정하는 데 있다. 이는, 제2 클록 사이클 C2의 특정 수에 대한 제1 클록 사이클 C1을 카운팅함으로써 수행할 수 있다. 그러면, 클록 주파수 F2에 대한 클록 주파수 F1의 비율은 R=R1/F2=C2/C1이 된다. 이 공식에서의 접근법은, 2개 클록이 동기화하지 않는 경우, 카운트된 클록 C1의 2개 사이클에 이르는 모호성(ambiguity)이 사이클 C2의 특정 수 동안에 항상 존재한다는 사실로부터 유래한다. C1의 최종 부분 사이클이 어떻게 만료되는지에 대해 정확하게 알려져 있지 않기 때문에, 부등식(inequality) C2/(C1+2)≤R≤C2/C1은 측정 불확실성을 표현한다. 측정의 정확성을 향상시키기 위하여, 측정 간격은 증가할 수 있다. 이는, 회로에서의 측정 시간 및 전력 소모를 개선한다.
실시예의 EARC는, 2개 클록의 에지가 정렬되는 시간에서의 포인트를 측정함으로써 측정의 정확성을 향상시키고, 측정 시간을 상당히 줄인다. 그렇게 함으로써, 클록 사이클의 비율은 정수 값의 비율이고, 모호한 사이클은 제거된다. 후술하는 바와 같이, 에지는 이 방법에 의해 완전하게 정렬될 수는 없지만, 통상적으로 서브-나노초(㎱)의 정확성으로 정렬될 수 있으며, 본 실시예는 이에 한정하지는 않는다. 얻을 수 있는 정확한 정렬 정확성은, 예를 들어 지터(jitter)와, 주파수에서의 변동 범위와 같은 클록 주파수의 근사화 비율과, 클록 특성의 함수이다.
도 109의 EARC 109-100을 참조하면, 측정되는 2개 클록 신호는 기준 클록 109-102 및 샘플링된 클록 109-104이다. 기준 클록 109-102는 기준 클록 카운터 109-106로서 간주하는 제1 프리 작동 연속 카운터를 구동한다. 샘플링된 클록 109-104는 샘플링된 클록 카운터 109-108로서 간주하는 제2 프리 작동 연속 카운터를 구동한다. 기준 클록 카운터 109-106은 관련된 기준 카운트 레지스터 109-116에 연결하고, 샘플링된 클록 카운터 109-108은 관련된 샘플링된 카운트 레지스터 109-118에 연결한다. 측정을 위하여, 기준 카운트 레지스터 109-116 및 샘플링된 클록 레지스터 109-118은, 2개 클록 109-102 및 109-104의 클록 에지가 근접하게 정렬되는 순간의 카운터 값으로 로드된다.
기준 카운트 레지스터 109-116 및 샘플링된 카운트 레지스터 109-118의 로딩에 후속하여, 마이크로프로세서(도시하지 않음)는 기준 카운트 레지스터 109-116 및 샘플링된 카운트 레지스터 109-118에서의 값을 판독한다. 주파수 비율을 계산하기 위하여, 카운터 값의 2개 세트가 판독되는데, 카운터 값의 각 세트는 에지 정렬의 포인트에서 얻는다. 다음으로, 판독된 2개 카운터 값에서의 차는 다음 공식을 이용해 주파수 비율을 계산하는 데 이용한다.
R=(C2 Ref-C1 Ref)/(C2 Smp-C1 Smp)
C1 Ref=Reference Clock Count value at alignment time 1
C2 Ref=Reference Clock Count value at alignment time 2
C1 Smp=Sample Clock Count value at alignment time 1
C2 Smp=Sample Clock Count value at alignment time 2
카운터 값 C2 Ref, C1 Ref, C2 Smp, C1 Smp는 2개 클록 에지가 근접하게 정렬되는 포인트에서 캡처하기 때문에, 사이클 카운트 차는 정수 값이고, 그 결과는 높은 정확성을 갖는다.
에지가 정렬될 때 카운터 값 C2 Ref, C1 Ref, C2 Smp, C1 Smp를 캡처하기 위하여, 다운 카운터는 기준 클록 109-102를 이용해 어떤 인터벌을 측정하는 데 이용하지만, 본 실시예는 이에 한정하지는 않는다. 이 다운 카운터는, 본 명세서에서 샘플링 카운터 109-120으로서 간주한다. 샘플링 카운터 109-120은, 적어도 하나의 멀티플렉서 109-144를 통해 R0 레지스터 109-130 및 R1 레지스터 109-132의 콘텐츠를 수신하기 위해 연결한다. 샘플링 카운터 109-120은 기준 클록 109-102로부터의 신호로 시간을 잰다.
작동 시, 샘플링 카운터 109-120은 R0 레지스터 109-130 또는 R1 레지스터 109-132로부터의 2개 카운트 값 R0 또는 R1 중 하나를 이용해 로드된다. 샘플링 카운터 109-120의 카운터 값이 0(zero)이 되는 시간마다, 샘플링 카운터 109-120은 샘플러(Sampler) 및 에지 검출기 109-122에 인에이블 신호 Enb를 제공하고, 이에 의해 기준 클록 109-102는 샘플링된 클록 109-104의 값을 샘플링할 수 있다. 샘플은, 후술하는 바와 같이 샘플링된 클록 109-104의 에지를 검출하는 데 이용한다.
도 10은 도 109의 실시예에서의 EARC를 이용하는 샘플링 및 에지 검출 110-200을 도시한다. 탑 라인 110-202는, 다운 카운터가 0 값에 도달할 때 발생하는 샘플링 이벤트를 도시한다. 샘플링 에지 110-204에서, 샘플링된 클록 109-104 값은 기준 클록 109-102 값에 의해 캡처한다. 이 샘플링 프로세스의 제1 인스턴스(instance)는 샘플 1 이벤트에서 도시한다. 기준 클록 109-102의 샘플링 에지 110-204는, 캡처하는 샘플링된 클록 109-104 값을 나타내는 것으로 도시한다. 샘플 1 이벤트에서, 캡처한 값은 1이다.
다운 카운트가 0에 도달할 때, 샘플링 카운터 109-120은, 샘플러 및 에지 검출기 109-122의 제어하에 R0 레지스터 109-130 또는 R1 레지스터 109-132로부터의 값으로 리로드된다. 이것이 제1 샘플이기 때문에, 검출되는 에지는 없다. 이 예에 대하여, 제1 다운 카운트는 본 명세서에서 R0 값으로 간주한 R0 레지스터 109-130으로부터의 값을 이용한다고 가정한다. 검출되는 에지가 없기 때문에, R0 값은 다시 로드될 것이다. 기준 클록 109-102의 수많은 사이클이 R0 사이클과 동일해진 후, 샘플링 카운터 값은 다시 0이 되고, 샘플링된 클록 109-104는 샘플 2 이벤트에서 도시한 바와 같이 다시 샘플링된 110-204가 된다. 샘플 값은 여전히 1이지만, 기준 클록 109-102의 샘플링 포인트는 샘플링된 클록 109-104에 관하여 약간 "전진한다"는 점을 알아야 한다. 샘플 1 및 샘플 2 둘 다 동일한 값 1을 갖기 때문에, 검출되는 에지는 없고, R0 값은 샘플링 카운터 109-120에 다시 로드된다. 샘플 3 및 샘플 4 이벤트에서, 1의 값은 다시 샘플링된 110-204가 되고, R0 값은 샘플링 카운터 109-120에 다시 로드된다.
계속해서 샘플 5 이벤트에서, 샘플링된 값은 0이다. 하강 에지가 검출되는 타깃 에지인 경우, 그리고 샘플 위상이 전진하는 경우, 1에서 0으로의 샘플 값 천이는 하강 에지 110-210이 검출된다는 점을 의미한다. 하강 에지 110-210이 검출될 때, 샘플링 카운터 109-120에 로드된 값은 전환된다. R0 값이 이용되었기 때문에, 타깃 에지가 검출될 때, 그 값은 R1로서 간주한 R1 레지스터 109-132로부터의 값으로 전환된다.
상술한 바와 같이, R1 값은 샘플링 카운터 109-120로 로딩하기 위해 선택되어, 샘플링된 클록 109-104에 관한 반대 방향, 즉 본 명세서에서 "리타드" 방향 110-220으로서 간주한 방향에서의 슬루에 대해 기준 클록 109-102의 샘플링 위상을 야기한다. 그래서 샘플 6 이벤트에서, 샘플링 위상은 더 빨라진다(즉, 지연됨). 검출되는 에지가 없기 때문에(이 에지는 전술한 에지와 동일한 값 0이다), R1 값은 샘플링 카운터 109-120에 다시 로드된다. 그러면 샘플 7 이벤트에서, 샘플링된 값은 1로 천이한다. 샘플링된 값은 0에서 1로의 천이는, "리타드" 슬루 값(R1 값)이 이용된다는 사실과 관련되고, "하강" 에지가 검출된다는 점을 의미한다. 그 결과, R0 값은 카운트 다운 값으로서 이용하기 위해 샘플링 카운터 109-120에 로드된다.
상술한 예는, 샘플링 인스턴트는 샘플링된 클록 109-104의 원하는 에지 앞뒤에서 슬루할 수 있고, R0 및 R1 값의 정확한 선택을 나타낼 수 있다는 점을 보여준다. 그러므로 이 예는, 샘플링 인스턴트를 전진 및 지연시키는 개념을, 샘플링 카운터 109-120으로 로드되는 값의 함수로서 보여준다. 또한, R0 및 R1 값의 각 슬루의 증분(increment)은 상이할 수도 있다는 개념을 증명한다. 예시한 예에서, R0 값은 개략적인 슬루이고, R1 값은 정밀한 슬루이며, 개략적인 슬루는 정밀한 슬루보다 샘플링된 클록 주기에 따라 샘플링 포인트를 더 멀리 이동시키지만, 본 실시예는 이에 한정하지는 않는다.
본 실시예의 EARC 109-100에서, 기준 클록 카운터 109-106 및 샘플링된 클록 카운터 109-108은 원하는 에지가 검출될 때 기록된다. 실제로, 파일 슬루를 이용하는 동안에 발생하는 에지 검출은 이러한 값을 래치하는 데 이용하지만, 본 실시예는 이에 한정하지는 않는다. 이 선택은, 정밀한 슬루가 에지 정렬에서 더 적은 에러가 되고, 샘플링된 클록 측정 주기에서 더 적은 에러에 대응하기 때문에 이루어진다.
EARC의 예로서, 도 11은 본 발명에 따른 비율 카운터 부분을 구비한 개인용 통신 디바이스 111-100의 블록도이다. 클록 할당량 카운터 111-110은 레지스터 111-10 및 레지스터 111-11을 포함한다. 레지스터 111-10 및 레지스터 111-11로부터의 입력 값뿐만 아니라, 조사중인 클록으보부터의 클록 신호 CLK 1의 신호를 선택적으로 선택 및 수신하는 컨트롤 신호 생성기 111-15를 또한 포함한다. 이는, 예를 들어 텔레커뮤니케이션 수신기의 클록 신호 소스(클록)로부터의 클록 신호일 수도 있다. 제2 클록 신호 CLK 2는 평가중인 제2 클록 소스로부터 수신한다. CLK 2는, 예를 들어 GPS(global positioning system) 수신기의 클록 소스로부터의 클록 신호일 수도 있다. 레지스터 111-10 및 111-11에 저장된 값은 미리 선택된다. 이러한 값의 선택에 대해서는 이하에서 상세하게 설명한다. 컨트롤 신호 생성기 111-15는 이러한 입력에 응답하여, 카운트 캡처부 111-16에 제공되는 컨트롤 신호 S2를 생성한다.
도 112는 본 발명에 따른 할당량 카운터 112-110의 실시예에 대한 상세한 설명을 나타낸다. 컨트롤 신호 생성기 111-15는, 멀티플렉서 112-26, 디크리멘팅 카운터 112-17, 플립-플롭 112-19 및 펄스 생성기 112-20을 포함한다는 점을 알 수 있다. 멀티플렉서 112-26은, 플립-플롭 112-19로부터의 에지 천이 신호 S1에 따라 레지스터 111-10 또는 레지스터 111-11로부터의 신호를 선택하는 데 이용한다. 멀티플렉서 112-26에 의해 어떤 레지스터, 즉 111-110 또는 111-11이 선택되는지에 따라, 선택된 레지스터, 즉 111-10 또는 111-11의 콘텐츠는 디크리멘팅 카운터 112-17에 입력된다. 다음으로, 디크리멘팅 카운터 112-17에 로드된 값은 클록 신호 CLK 1의 각 펄스에 대해 1만큼씩 감소한다. 디크리멘팅 카운터 112-17의 콘텐츠가 0 값에 도달하는 경우, 디크리멘팅 카운터 112-17은 플립-플롭 112-19에 인에이블 신호 112-22를 전달한다. 그러면 플립-플롭 112-19는 클록 신호 CLK 1 및 CLK 2의 입력에 따라 에지 천이 신호 S1을 출력한다. 플립-플롭 112-19로부터의 에지 천이 신호 S1은 펄스 생성기 112-20에 또한 공급된다. 에지 천이 출력 S1에 응답하여, 펄스 생성기 112-20은 컨트롤 신호 S2를 생성한다. 다음으로, 컨트롤 신호 S2는, 인크리멘팅 카운터 112-7 및 112-5 각각의 콘텐츠를 수신하기 위하여, 분자 래치 112-1 및 분모 래치 112-4를 작동시키는 데 이용한다. 분자 래치 112-1 및 분모 래치 112-4의 콘텐츠는, 클록 신호 CLK 1의 주파수와 클록 신호 CLK 2의 주파수 간의 할당량을 지정하기 위해 판독 및 이용할 수 있다.
도 113은 클록 신호 CLK 1 및 클록 신호 CLK 2와 에지 천이 신호 S1간의 관계를 나타낸다. CLK 1 및 CLK 2 둘 다는 앞쪽 에지(leading edge) 113-70 및 뒤쪽 에지(trailing edge) 113-71을 갖는다. 설명을 위하여, 앞쪽 에지 113-70 및 뒤쪽 에지 113-71은 천이 에지(transitioning edge)라는 점을 이해하게 될 것이다. 도 113으로부터, 클록 신호 CLK 1 및 클록 신호 CLK 2가 서로 일치하고 동기화되는 순간이, 비록 일정하지는 않지만 다시 발생하는 시나리오임을 알 수 있다. 도 113은, 포인트 A에서 클록 신호 CLK 1의 앞쪽 에지 113-70이, 클록 신호 CLK의 앞쪽 에지 113-70이 로(low)에서 하이(high)로 천이하기 시작하는 동일한 시간에 로에서 하이로 천이하기 시작한다는 점을 도시한다. 이에 응답하여, 플립-플롭 112-19로부터의 에지 천이 신호 S1은 로에서 하이로 변하고, 컨트로 신호 S2가 생성된다. 유사하게, 포인트 B에서 클록 신호 CLK 1의 뒤쪽 에지 113-71이, 클록 신호 CLK 2의 뒤쪽 에지 113-71이 하이에서 로로 천이하기 시작하는 동일한 시간에 하이에서 로로 천이하기 시작한다. 이에 응답하여, 플립-플롭 112-19로부터의 에지 천이 신호 S1은 하이에서 로로 변하고, 컨트롤 신호 S2가 다시 생성된다.
도 114를 참조하면, 휴대용 통신 디바이스 100의 다른 실시예를 나타낸다. 도 114에서, 본 발명의 비율 카운터 111-110은 휴대용 통신 디바이스 111-100의 기저대역 섹션 114-150의 부분으로서 포함한다는 점을 알 수 있다. 기저대역 섹션 114-150의 비율 카운터 111-110에 클록 신호 CLK 1을 제공하는 CDMA(code division multiple access) 무선 주파수(RF) 섹션 114-125를 포함한다. 또한, 기저대역 섹션 114-150의 비율 카운터 111-110에 제2 클록 신호 CLK 2를 제공하는 GPS 무선 주파수 섹션 114-130을 포함한다. 휴대용 통신 디바이스 111-100의 회로부는 비율 카운터 출력을 이용하여 회로 동작을 최적화하고, 전력 소모를 줄인다.
개인용 통신 디바이스 111-100에서, 2개 클록 신호 CLK 1 및 CLK 2의 주파수 간의 비율을 나타내는 정보가 생성되어, 디바이스 회로부에 이용하기 위해 출력된다. 레지스터 111-10 또는 레지스터 111-11 중 하나는 기준 클록 주파수를 나타내는 값을 저장하는 데 이용하고, 레지스터 111-10 또는 레지스터 111-11 중 다른 하나는 제2 클록 주파수의 근사값을 나타내는 값을 저장하는 데 이용한다. 다음으로, 캡처, 그리고 원하는 경우에는 판독되는 디크리멘팅 카운터 112-5 및 112-7의 카운트 값을 발생시키기 위한 컨트롤 신호 S2를 생성하는 데 이러한 값을 선택적으로 이용한다. 통상적으로, 도 114의 휴대용 통신 디바이스 111-100에서, CDMA RF 섹션 158-125를 구동하는 클록 신호 CLK 1은 비교적 안정적이고, 공지된 주파수이다.
CPS RF 섹션(114-130)을 구동하는 GPS 클럭 신호 CLK2가 종종 수정 발진기(crystal oscillator)에 의해 발생되며, 이에 따라 덜 안정적임과 동시에, 임의의 주어진 시간에서의 CLK2의 주파수는 변하는 경향이 있다. 이는, 수정 발진기의 주파수가 온도 변화에 따라서 변동하는 사실 때문이다. 이것을 가정하면, 레지스터 111-11에는, 제2 값으로서 레지스터 111-11로 로딩되는 GPS 클럭 신호 CLK2의 주파수에 대해 근사한 값인 근사치가 로딩된다.
본 발명의 양호한 실시예에서, 레지스터 111-10 및 레지스터 111-11로 로딩되는 값들은 연속된 소수들의 수렴 원리에 기초한 계산에 따라서 선택된다. 보다 구체적으로, 연속된 소수들의 수렴은 실제 레이션(ration)에 근접하는 연속 유리 근사값들을 생성하는데 사용된다. 그 다음, 이 레이션들은 레지스터 111-10 및 레지스터 111-11로의 입력값으로서 각각 사용된다.
실수 x의 연속된 소수 확장은 다음과 같은 식으로 표현된다.
Figure 112006015336266-PCT00014
여기에서, 정수 a1, a2, a3...는 부분몫(partial quotient)들이다. 유리수들은 한정된 수의 부분몫들을 갖지만, 유리수들은 무한한 연속된 소수 확장을 갖는다. 수 x가 부분몫들 a0, a1, ...을 갖는다면, 제1 n개의 부분몫들 a0, a1, ...an을 고려하여 형성된 유리수 pn/qn은 x의 n번째 수렴으로 불린다. 이 수의 수렴은 주어진 실수에 작은 분모를 갖는 유리 근사값을 제공한다. 연속적 수렴은, 포지티브 및 네거티브로 진동하고, 예를 들어, 클럭 신호 CLK1 및 클럭 신호 CLK2의 주파수 사이의 정확한 비율(ratio)로 연속해서 수렴하는 오류를 가질 것이다. 이러한 관점에서, 연속된 소수 확장들은, EARC 111-100의 레지스터 111-10 및 레지스터 111-11로 로딩되어야 하는 값들(제수들)을 선택하는데 유용하다.
도 115는 본 발명의 2개의 클럭 주파수들 사이의 비율을 결정하는 방법을 도시하는 순서도이다. 제1 클럭 신호의 연속적인 클럭 펄스들은 선정된 기간의 시간동안 115-300번 계수되고, 제2 클럭 신호의 연속적인 클럭 펄스들은 선정된 기간의 시간동안 115-302번 계수된다. 그 다음, 제1 클럭 신호의 전이 에지가 제2 클럭 신호 115-305의 전이 에지와 동시에 발생하고, 동기되는 지 여부가 결정된다. 만약 동기된다면, 시간 지속 기간의 경과를 시그널링하는 제어 신호가 발생된다. 시간 지속 기간이 경과되면, 제1 클럭 신호 115-310 및 제2 클럭 신호 115-312의 클럭 펄스들의 카운트를 판독한다.
본 발명의 비율 카운터(111-110)는 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 조합으로 구현될 수 있다. 양호한 실시예에서, 발명 111-100은, 메모리에 저장되고, 적절한 명령 실행 시스템에 의해 실행되는 소프트웨어 또는 펌웨어로 구현된다. 다른 실시예에서 하드웨어로 구현되면, 발명 111-100은, 본 기술 분야에서 잘 공지된 다음 기술들, 데이터 신호들에 따라 로직 함수들을 구현하는 로직 게이트를 갖는 개별 로직 회로(들), 적절한 로직 게이트들을 갖는 애플리케이션 특정 집적 회로, 프로그램가능한 게이트 어레이(들)(PGA), 완전히 프로그램가능한 게이트 어레이(FPGA), 등 중 임의의 하나 또는 이들의 조합으로 구현될 수 있다.
도 115의 순서도는 본 발명의 비율 계산 방법을 소프트웨어로 구현한 가능예의 구조, 기능, 및 동작을 도시한다. 이에 대해서, 각 블록은 모듈, 세그먼트, 또는 코드의 일부를 나타내고, 이는, 특정 로직 기능(들)을 구현하기 위한 하나 이상의 실행가능 명령들을 포함한다. 또한, 일부 실시예들에서, 블록들에 기재된 함수들은 도 115에 기재된 차수를 벗어나 발생할 수 있다는 것을 주지해야 한다. 예를 들어, 도 115에서 연속적으로 도시된 2개의 블록들은 실제로, 실질적으로 동시에 실행될 수 있거나, 아래의 설명으로부터 더욱 명백해 지는 바와 같이, 이 블록들은 때때로 관련된 기능성에 따라서 역순으로 실행될 수 있다.
CDMA 신호 환경에서, 정정될 필요가 있는 교차 문제점 및/또는 자동-상관 문제점들이 발생할 수 있다. 일 실시예의 GPS 시스템은, 검출된 신호가 수신기에 의해 예측되는 것보다 더 약한 신호 강도를 가지면, 로킹(locking)을 위한 신호 강도의 확인을 수행하는 시스템을 포함한다. 예측되어 결정된(로킹) 신호가 강하거나, 또는 적어도 약하지 않으면, 확인이 요구되지 않는다. 그러나, 신호-대-잡음비 측정, 또는 다른 방법들에 의해, 결정된 신호가 선정된 신호 강도보다 아래인 것으로 확인되면, 수신기는 부적절한 로킹 신호를 수신할 것이고, 이에 따라, 자동 또는 교차-상관 고스트 신호들이, 수신기가 로킹되는 신호가 될 것이다. 본 발명은 이러한 자동 및/또는 교차 상관 문제점들을 어떻게 줄이거나 제거할 지에 대해 논의한다.
도 116은 코드 분할 다중 접속(CDMA) 신호 흐름을 도시한다. 예를 들어, GPS 수신기 시스템, 셀룰러 전화 시스템, 등의 다수의 시스템들(116-100)에서, CDMA 입력 신호들(116-102)는, 기저대역 신호로의 변환을 위해서 RF 다운컨버터(116-104)로 입력된다. 그 다음, 이들 기저대역 신호들은 샘플러(106)에서 샘플링되어, CDMA 입력 신호들(116-102)의 디지털 샘플들을 획득한다. 일반적으로, GPS 시스템(116-102)에서 특히, 이 샘플들은 상관기 엔진(116-108)으로 송신된 다음, 중앙 처리 장치(CPU)(116-110)로 송신된다.
본 발명은, 신호들(116-112)에 대한 개별 경로가 CPU(110)에 도달할 수 있도록 한다. 상관기 엔진(116-108)에서 사용되는 동일 샘플들인 신호들(116-112)은 CPU(116-112)로 직접 송신되거나, 또는, 선택적으로 버퍼(116-114)를 통해 송신된다. 신호들(116-112)이 처리를 위해, 일반적으로 ARM7인 동일 CPU(116-112)에 직접 송신될 수 있지만, 신호들(116-112)은 개별 디지털 신호 프로세서(DSP)로 송신되거나, 선택적으로, 단일 집적 회로(IC) 칩에서 DSP 및 ARM7을 결합시키는 CPU(116-112)에 송신될 수 있다. 또한, 상관기 엔진(116-108), CPU(116-110), 및 선택적 버퍼(116-114)는 단일 IC 칩에서 집적되어, 시스템(116-100)의 더 낮은 전력 소비와 더 작은 패키징을 허용할 수 있다. RF 다운컨버터(116-104)는 또한 상관기 엔진(116-108), CPU(116-110), 샘플러(116-106), 및 선택적 버퍼(116-114)와 함께 집적되어, 원한다면 단일 IC 칩 시스템(116-100)을 제공할 수 있다. 또한, 집적의 용이성을 위해서, CPU(116-110)는 서로 다른 포트들에서 신호들(116-116 및 116-118)을 수용할 수 있거나, 또는 신호들(116-116 및 116-118)은 개별 CPU들(116-110)로 송신될 수 있고, 예를 들어, 신호들(116-116)은 DSP로 송신될 수 있으며, 신호들(116-118)은 ARM7에 송신될 수 있다. 단일 또는 다수의 CPU들(116-110)이 본 발명에서 실현될 수 있는 다른 구성들이 존재한다. 도 116은, 본 발명의 범위내에서 가능한 신호 흐름들을 나타내는 것이지만, 이것만으로 한정되는 것은 아니다.
일반적으로, 통신 시스템에서, GPS 수신기 시스템(116-100)는, 셀룰러 전화 시스템(116-120)과 같은 전송을 가능하게 하는 다른 시스템과 함께 배치된다. 셀룰러 전화 송수신기(116-122)는 일반적으로 셀룰러 핸드셋내에 배치되고, 신호들(116-124)을 무선 또는 유선 링크로 전송 및 수신할 수 있다. 이러한 시스템(116-120)은 셀룰러 전화 네트워크, 개인 휴대 통신(PCS;Personal Communications System) 네트워크에서 구현되거나, 개인 휴대 정보 단말기(PDA), 랩톱 컴퓨터, 또는, 무선 또는 유선 통신 링크들을 통해 데이터를 전송 및/또는 수신할 수 있는 임의의 장치로서 구현될 수 있다.
이러한 통신 시스템(116-120)은, GPS 수신기 시스템(116-100)과 함께 배치될 때, GPS 수신기 시스템(116-100)을 사용하여 위치를 결정하고, 결정된 위치를 다양한 목적, 예를 들어, 위치 서비스, 무선 송수신기(116-122)의 위치를 결정 또는 계산, 선정된 또는 희망하는 위치에 대한 방향 결정, 긴급 상황 및/또는 적은 실시 인원에 대한 무선 송수신기(116-122)의 위치 지정, 등을 위해 사용한다.
이와 같이, 본 발명은 위치 서비스 시스템에서 유용하고, 여기에서, 셀룰러 전화내에 배치될 수 있는 자신의 이동 GPS 수신기 시스템(116-100)을 사용하는 사용자는, 관심있는 지점 근처를 찾기 위한 방향, 원조, 레스토랑, 또는 어떤 종류의 매핑 도움없이 위치를 정하기 어려울 수 있는 다른 물리적 위치들을 얻을 수 있다. 셀룰러 전화 또는 다른 이동 장치는, 사용자의 위치, 맵상의 사용자의 위치, 사용자의 위치와 원하는 목적지 사이의 루트 또는 루트의 일부, 또는 위치 서비스를 위해 사용될 수 있는 임의의 수의 것들을 시각적으로 또는 다른 방식으로 디스플레이할 수 있다.
또한, 본 발명은 추측 항법(dead reckoning) 시스템에서 또한 유용하고, 여기에서는, 자이로스코프, 주행거리계, 또는 다른 센서와 같은 적어도 하나의 센서가 GPS 시스템(116-100)에 입력을 제공하여, GPS 수신기 시스템(116-100)의 위치를 계산하는 것을 선택적으로 돕는다. 이러한 시스템들은 일반적으로, GPS 신호로 수령되는 터널 또는 자연 및 인공 구조 방해물이 있는 장소로 이동하는 자동차들에서 사용되지만, 셀룰러 전화기, 무선 송수신기, 또는 다른 장치에서 또는 이들과 결합되어 사용될 수 있다.
또한, 무선 송수신기(116-122) 및 GPS 수신기 시스템(116-100) 둘 다가 일반적으로 집적된 회로이기 때문에, 패키징의 용이성, 저 전력 소비, 또는 다른 이유들을 위해서, GPS 수신기 시스템(116-100) 및 무선 송수신기(116-122)는 단일 집적 회로에 배치될 수 있거나, 무선 송수신기와 GPS 수신기 시스템(116-100) 간의 회로를 공유할 수 있다. 예를 들어, GPS 수신기 시스템(116-100)은, 무선 송수신기(116-122)의 중앙 처리 장치(CPU)(116-126)를 사용하여, CPU(116-110) 대신에 또는 CPU(116-110)와 함께, 무선 송수신기(116-122)의 위치를 결정하는데 필요한 수학적 계산들을 수행할 수 있다. 또한, 무선 송수신기(116-122)는 로컬 발진기와 같은 회로의 다른 부분들을 공유하여, 참조 주파수(116-128)를 GPS 수신기 시스템(116-100)에 제공할 수 있고, 참조 주파수(116-128)은 무선 송수신기(116-122)에 의해 사용되는 참조 주파수와 동일하거나 다를 수 있다.
무선 송수신기(116-122)는, GPS 수신기 시스템(116-100)으로 데이터(116-130)를 제공할 뿐만 아니라, GPS 수신기 시스템(116-100)으로부터 데이터(116-130)를 수용할 수 있다. 무선 송수신기에 의해 수용된 데이터(116-130)는 원(raw) GPS 데이터, 유사범위, 또는 결정된 위치를 포함한다. 무선 송수신기에 의해 제공된 데이터(116-130)는 달력 정보, 시간 정보, 및 대강의 위치 정보를 포함한다.
도 117은 본 발명에 따른 자동 또는 교차 상관 검사를 도시한다.
시스템(117-200)은 시스템(117-200)으로 들어가는 RF 신호(117-202)를 도시하고, 여기에서 이 신호는 블록(117-204)에서 데시메이트(decimate)된다. 데시메이트 블록(117-204)의 결과는, 블록(117-206)에 도시된 바와 같이, RF 신호(117-202)로부터 대역폭 샘플들이 감소된다는 것이다. 이들 샘플들(117-208)은, 도 160에 도시된 바와 같이, 일반적으로 상관기 엔진(116-108)으로 전달된다. 그 다음, 로컬 코드(117-212)는, 블록(117-210)에서의 진입 샘플들(117-208)에 대해 상관된 후, 트래커(tracker)(117-214)로 전달되어, 시스템(117-200)이 RF 입력 신호(117-202)를 트랙할 수 있게 된다.
관련된 기술의 설계에서는, 트래커(117-214)가 원하는 신호의 캐리어를 추적하는 지 여부, 또는 트래커(117-214)가 가짜 신호를 추적하는 지 여부를 결정하지 않고, 이 가짜 신호는 교차-상관 스퓨리어스(spurious) 또는 자동-상관 스퓨리어스일 수 있다. 본 발명은, 신호가 네비게이션을 위해 사용되기 위해 유효화되기 전에, 트래커(117-214)가 정확한 또는 바람직한 신호를 추적하는 지 여부를 확인하기 위한 방법 및 장치를 제공한다.
추적될 신호의 신호 강도는 블록(117-216)에서 검사된다. 신호 강도가 선정된 강도, 예를 들어, 35dB-Hz보다 높다면, 시스템(117-200)은, 신호가 가짜 신호가 아니라는 것을 알 정도로 충분히 강하다는 것을 알고, 이 신호는 블록(117-218)에서 유효화되어, 블록(117-220)내의 네비게이션 시스템으로 전달된다. 그러나, 신호가 충분히 강하지 않다면, 자동-상관 검사 블록(117-222)에 들어간다. 블록(117-222)은 교차-상관 검사를 위한 블록과 동일할 수 있거나, 또는 컴퓨터 코드, 하드웨어 회로, 또는 하드웨어, 소프트웨어, 펌웨어, 다른 장치들, 및 본 명세서에서 기술된 것과 유사한 기능들을 수행하는데 사용되는 방법들의 집적의 다른 블록일 수 있다. 또한, 블록(117-222)은 임계 신호-대-잡음비(SNR)를 확인할 수 있거나, 또는, 자동/교차 상관 조건들이 존재하는 지 여부를 결정하기 위한 다른 확인들을 수행할 수 있다. 이러한 검사 블록은 검사된 신호의 일 특성을 가질 수 있고, 검사할 다수의 특성들을 가질 수 있거나, 설계 또는 사용자의 요구에 따라서, 자동적으로 또는 수동적으로 선택된 검사될 하나 이상의 특성들로부터 하나를 선택할 수 있다.
샘플들(117-206)은 경로(117-224) 및 블록(117-226)에 의해 도시된 바와 같이 메모리에 저장된다. 샘플들이 충분한 데이터를 포함하지 않으면, 예를 들어, 선정된 양의 데이터보다 적은 데이터를 갖는다면, 블록(117-228)은 시스템에 데이터가 충분하게 될 때까지 주변을 루핑할 것이다. 도 161에 도시된 바와 같이, 시스템(117-200)은, 처리할 데이터가 충분할 때까지 샘플 데이터를 계속 저장한다. 예를 들어, GPS 시스템에서는, 신호가 적절한 신호인지 여부에 대한 결정의 처리를 수행하기 위해서 2 msec의 데이터가 요구된다.
블록(117-230)은, 블록(117-214)에서 추적된 신호가 신호 윈도우내에서 적절한 신호인 지의 여부를 결정하기 위한 저장된 데이터의 처리를 도시한다. 교차-상관 상황에서, 적절한 신호는, 원하는 (또는 현재) 위성 코드에 대한 상관보다 더 강한 상이한 위성 코드에 대한 상관에 의해서 결정될 수 있다. 자동-상관 상황에서, 적절한 신호는, 지역적으로 생성된 코드 지연에 대한 상관보다 더 강한 동일 위성 코드의 상이한 지연에 대한 상관에 의해 결정될 수 있다. 판단 블록(117-232)은, 시스템(117-200)이 SNR 확인 또는 다른 방법들을 통해 신호가 적절한 신호인지의 여부를 다시 확인하는 것을 도시한다.
진입 신호에 대한 제2 경로에 있는 확인 신호에서 사용되는 상관 방법들은, 샘플 데이터와 동일 prn 코드 간의 상관, 및 추적된 신호(로킹된 신호)의 로컬 기준 주파수를 계산하는 단계, 샘플 데이터와 상이한 prn 코드 간의 상관, 및 추적된 신호로서 동일 로컬 기준 주파수를 계산하는 단계, 샘플 데이터와 동일 prn 코드 간의 상관, 및 추적된 신호의 다수의 prn 반복 주파수인 로컬 기준 주파수를 계산하는 단계, 샘플 데이터와 상이한 prn 코드 간의 상관, 및 로킹된 신호의 다수의 prn 반복 주파수인 상이한 로컬 기준 주파수를 계산하는 단계, 및 다른 상관들 및 방법들을 포함한다. 신호가 적절한 신호이면, 신호는 경로(117-231)를 통해 확인되어 유효화된다. 신호가 적절한 신호가 아니라면, 트래커(117-214)는 방향을 고치거나, 그렇지 않으면, 블록(117-230)에서 결정된 적절한 신호로 제어된다.
도 118a 및 도 118b는 본 발명의 일 실시예를 도시하고 있다.
시스템(118-300)은 프로세싱하기 위해 CDMA 신호를 기저대역으로 다운컨버팅하는 다운컨버터(116-104)에 입력되는 GPS C/A(Clear/Acquisition)(또한 Coarse/Acquisition으로 알려진)(CDMA 포맷의 RF 신호) 데이터(116-102)를 보여주고 있다. 다운 컨버터는 샘플 블록(116-106)의 일부인 데시메터(117-204)에 신호를 제공한다. 이러한 신호들은 직렬 시프트 레지스터(118-302), 각각이 두 개의 추가 레지스터에 병렬로 배치된 병렬 레지스터(118-304), 및 시프트 레지스터(118-306)에 제공된다. 시프트 레지스터(118-306)는 로드된 후 레지스터(118-306) 외부로 시프트되는 반면에, 병렬 레지스터(118-304)는 CPU(116-110)에 의해 직접 로드 및 판독된다. 병렬 레지스터(118-304)는 CPU(마이크로프로세서)(116-116)에 직접 전달되는 신호(116-116)를 제공하는 반면에, 시프트 레지스터(118-306)는 신호를 상관기 엔진(116-108)에 제공한다. 도플러 회전기(118-308)는 상관기(116-108)에 입력되는 신호를 적절히 주파수 정렬하는데 이용된다.
코더(117-212)로부터 출력되는 국부 코드는 샘플러(116-106)로부터의 샘플링된 신호내에 잠그는데 적합한 신호를 판정할 때, 착신 샘플을 상관시키는데 이용된다. 이러한 신호들은 누산기(118-310)에 누적되고, 피크 검출기(118-312)는 트랙커에 제공되는 신호를 판정하는데, 이 신호는 도 160에 도시되어 있는 신호(116-118)이다. 코더(117-212)는 제시간에 시프트 및/또는 동조되어 상관을 보조한다. 이 시프트는 일반적으로 개별 회로에 의해 수행되며, 본 발명에서는, 착신 신호가 자동 상관 혹은 교차 상관된 신호인지 판정될 때에 실행 데이터 경로에 의해 행해질 수 있다.
도 119는 본 발명의 샘플 블록을 세부적으로 도시하고 있다.
시스템(119-400)은 직렬 시프트 레지스터(118 - 302)에 접속된 데시메터(117-204)를 도시하고 있는데, 이 데시메터 각각은 직렬 시프트 레지스터(118-304 및 118-306)에서 그들 데이터를 동시에 저장한다. 명확히 하기 위해, 병렬 레지스터(118-304) 및 시프트 레지스터(118-306)는 병렬 레지스터(118-304I 및 118-304Q)와, 시프트 레지스터(118-306I 및 118-306Q)로 도시되어 레지스터들이 제각기 I 데이터 혹은 Q 데이터를 포함하는지를 표시하고 있다. 시프트 레지스터(118-306)는 그들의 데이터를 도플러 회전기(118-308)에 제공하는 반면에, 병렬 레지스터(118-304)는 그들의 병렬 데이터, 즉 신호(116-116)를 CPU(116-110)에 직접 제공한다. 다시 말하지만, CPU(116-110)는 도플러 회전 상관 신호를 프로세싱하는 동일한 CPU이거나 또는 개별 CPU일 수 있다. 또한, CPU들이 분리되어있더라도, 이들은 원한다면 단일 IC 칩상에 함께 배치될 수 있다.
추가적인 제어 라인이 CPU(116-110)를 캡쳐 클록(샘플러)(106)에 접속시킨다. 라인들(119-402I 및 119-402Q)은 CPU(116-110)가 제각기 연관 시프트 레지스터(118-306I 및 118-306Q)로부터 데이터를 판독할 때를 표시한다. 또한, 데이터 가용 상태 라인(119-404I 및 119-404Q)은 높거나 혹은 낮은 어느 하나의 소정 값으로 설정되어 병렬 레지스터(118-304I 및/또는 118-304Q)가 판독에 이용될 수 있다는 것을 CPU(116-110)에 통지한다. 병렬 레지스터(118-304I 및/또는 118-304Q)가 판독된다면, 데이터 가용 상태 레지스터(119-404I 및/또는 119-404Q)는 제거될 수 있다.
도 120은 본 발명을 실시하는데 이용되는 단계들을 도시하는 순서도이다.
블록(120-150)은 스캐닝된 신호 윈도우내에 배치된 착신 CDMA 신호를 제 1 데이터 경로상의 국부 생성 신호와 상관시키는 것을 보여주고 있다.
블록(120-502)은 스캐닝된 신호 윈도우내에 배치된 제 2 데이터 경로상의 착신 CDMA 신호를 제 1 데이터 경로의 잠금 신호에 대해 검증하는 것을 보여주고 있다.
블록(120-504)은 제 2 데이터 경로를 이용하여, 착신 CDMA 신호가 잠금 신호 혹은 국부 생성 신호를 자동 상관 혹은 교차 상관 신호와 구별짓는 적어도 하나의 특성을 가졌는지에 대해 판정하는 것을 보여주고 있다.
블록(120-506)은 잠금 신호가 적어도 하나의 특성을 갖지 못하는 경우에 제 2 착신 CDMA 신호에 대해 스캐닝된 신호 윈도우를 계속 검색하는 것을 보여주고 있다.
요약하면, 본 발명에 따른 추측 항법 시스템은 GPS 수신기 및 적어도 하나의 센서를 포함한다. 이 GPS 수신기는 제 1 데이터 경로 및 제 2 데이터 경로를 포함한다. 제 1 데이터 경로는 스캐닝된 신호 윈도우내에 배치된 착신 GPS 신호를 국부 생성 신호와 상관시킨다. 제 2 데이터 경로는 스캐닝된 신호 윈도우내에 배치된 착신 GPS 신호를 잠금 신호에 대해 검증하고, 착신 GPS 신호를 자동 상관 신호와 구별짓는 적어도 하나의 특성을 그 착신 GPS 신호가 가졌는지에 대해 판정한다. GPS 수신기는 착신 GPS 신호가 적어도 하나의 특성을 가지지 않았다면 제 2 착신 GPS 신호에 대해 스캐닝된 신호 윈도우를 계속 검색하기 위해 국부 생성 신호를 변경할 수 있다. 센서는 GPS 수신기의 위치 계산시 이용하기 위해 추측 항법 입력을 GPS 수신기에 선택적으로 제공한다.
GPS 시스템의 컴포넌트들을 (상술한 바와 같이, 이동전화, 호출기, 쌍방향 호출기, 개인용 데이터 보조장치, 블루투스 및 PCS 시스템을 포함하는) 무선 통신 시스템과 통합할 때, GPS 시스템은 전형적인 무선 통신 시스템 사용자가 직면할 조건들하에서 GPS 위성을 포착하고 추적하는 능력을 가져야만 한다. 이러한 몇몇 조건들, 예컨대, 지상 기반 무선 통신 시스템을 관리할 수 있을지라도 위성의 시계를 차단하는 고층 빌등들의 시내 지역에서와 같이 제한된 시계를 갖는 실내 또는 밀집 도시 지역에서의 이용은 GPS 시스템이 해결하기에는 어려운 상황들이다. 예를 들어, GPS 수신기가 GPS 위성으로부터 신호를 제공받고, 이 위성을 추적하고, 원한다면, 이 GPS 시스템에 전송되는 임의의 외부 정보 없이도 항행하는 종래의 독립 모드 GPS는 긴 TTFF(Time To First Fix) 시간을 갖는 문제점이 있으며, 또한 실내 혹은 제한된 시계 조건하에서 GPS 위성 신호를 포착하는데 한정된 능력을 갖는다. 몇 가지 추가 정보가 주어지더라도, TTFF 시간은 천체 데이터가 GPS 시스템 자체로부터 획득되어야 하고, 또한 이러한 정보를 신뢰성 있게 획득하기 위해서는 강한 신호를 필요로 하기 때문에 30초를 넘어설 수 있다. 이러한 GPS 시스템의 요건은 소형 무선 통신 시스템 장치에서의 전력 소모뿐만 아니라 가용 위치의 신뢰도에 영향을 준다.
이러한 문제점들을 극복하기 위해, 본 발명은 다양한 요인에 따라 여러 동작 모드를 가능하게 한다. 본 발명의 GPS 시스템은 예를 들어 GPS 수신기가 강한 신호를 수신할 때에, 최신 천체 혹은 책력 데이터를 갖는 독립 모드 혹은 정확한 위치가 필요치 않는 독립 모드에서 이용될 수 있다. 하지만, 본 발명의 GPS 시스템이 예를 들어, 소형 무선 통신 장치가 실내에서 이용중인 것과 같이 충분히 강한 GPS 신호를 수신하지 못하고 있다면, 본 발명의 GPS 시스템은 다른 동작 모드, 예컨대, 무선 통신 시스템이 GPS 시스템을 돕거나 혹은 "보조"하여 GPS 수신기에 의해 수신된 GPS 신호와, 무선 통신 시스템에 의해 제공된 추가 정보를 이용하여 포착, 추적 및/또는 항행하게 하는 동작 모드로 전환할 수 있다. 이 동작 모드는 "네트워크 보조" 모드로 지칭된다. 또한, 더욱 거친 신호 수신 환경하에서 이용되는 경우라도, 본 발명의 GPS 시스템은 무선 통신 시스템에 완전히 의존하여 위치 정보를 GPS 수신기 혹은 이동 전화에 제공할 수 있으며, 그 경우 본 발명의 GPS 시스템은 무선 통신 네트워크의 제공된 동작 모드 혹은 "네트워크 기반" 동작 모드에서 동작할 것이다. 본 발명의 GPS 시스템은 사용자 선택 기호 혹은 요구뿐만 아니라 여러 변수에 따라 이러한 동작 모드 간에 전환할 수 있으며, 국부 혹은 원격 제어 중 어느 하나를 통하거나, 혹은 GPS 시스템에 주어진 자동 혹은 수동 명령에 따라 전환할 수 있다.
GPS 시스템의 일 실시예의 측면들은 필드 프로그램가능 게이트 어레이(FPGA)와 같은 프로그램가능 논리 장치(PLD), 프로그램가능 어레이 논리(PAL) 장치, 전기적 프로그램가능 논리 및 메모리 장치, 표준 셀 기반 장치 및 주문형 반도체(ASIC)를 포함하는 여러 회로 장치 중 임의의 장치로 프로그램된 기능으로 구현될 수 있다. GPS 시스템의 일 실시예의 측면들을 구현하기 위한 몇몇 다른 가능성은 (EEPROM과 같은) 메모리를 구비한 마이크로프로세서, 장착 마이크로프로세서, 펌웨어, 소프트웨어 등을 포함한다. 더욱이, GPS 시스템의 일 실시예의 측면들은 소프트웨어 기반 회로 에뮬레이션, (순차 및 조합형의) 이산 논리, 주문 장치, 퍼지(신경) 논리, 양자 장치 및 전술한 유형들의 임의의 혼성 장치를 구비한 마이크로프로세서에서 구현될 수 있다. 물론, 장치들의 근본 기술은 다양한 컴포넌트 유형, 예컨대, CMOS와 같은 MOSFET 기술, ECL(emitter-coupled logic)과 같은 바이폴라 기술, 폴리머 기술(예컨대, 실리콘-접합 폴리머 및 금속-접합 폴리머-금속 구조), 아날로그와 디지털 혼합 기술 등에 제공될 수 있다.
본 명세서와 청구범위에서 그 문맥상 명확히 달리 표현되고 있지 않다면, "포함하고", "포함하는" 등의 용어는 배타적 혹은 모두 망라되었다는 의미라기보다는 포함적인 의미, 즉 "포함하지만, 이에 국한되지는 않는다"는 의미로 해석되어야 한다. 또한, 단수 혹은 복수를 사용한 표현은 제각기 그러한 단수 혹은 복수를 포함한다는 의미이다. 이에 추가하여, "본 명세서", "다음에서", "상술한", "아래의" 및 이와 유사한 의미의 용어들은 본 명세서에서 사용되어 질 때에, 본 특허를 전반적으로 언급하는 것으로, 본 특허의 임의의 특정 부분을 나타내는 것은 아니다. 한편, "또는"이라는 용어가 2개 이상의 아이템 리스트에 관해 사용될 때에, 이 용어는 그 리스트내의 임의 아이템, 모든 아이템 및 그 아이템들의 임의 조합을 포괄하는 것으로 해석되어야 한다.
GPS 시스템의 개시된 실시예에 대한 상술한 설명은 본 발명을 개시되어 있는 바로 그 유형에 국한시키는 것으로 의도되지는 않는다. GPS 시스템의 특정 실시예와 예들이 본 명세서에서 예시를 위해 설명되고 있지만, 본 기술 분야의 당업자들이라면 본 GPS 시스템의 범주 내에서 이들을 다양하게 수정할 수 있다는 점을 알 것이다. 본 명세서에 개시된 GPS 시스템의 사상은 상술한 전자 시스템 이외의 다른 전자 시스템에도 또한 적용될 수 있다.
또한, 상술한 여러 실시예들의 구성요소 및 동작들이 결합되어 추가 실시예들을 제공할 수 있다. 이러한 변경들은 GPS 시스템의 일 실시예에 대해 상술한 설명에 비추어 이루어질 수 있다.
상술한 참조 문헌과, 미국 특허들 및 출원들 모두는 본 명세서에 참조 결합되어 있다. 필요하다면, 본 명세서에서 설명된 실시예들의 여러 측면들에 대해 전술한 여러 특허들 및 출원들의 시스템, 기능 및 개념들을 이용하여 수정하고, 이를 통해 GPS 시스템의 추가 실시예를 제공할 수도 있다.
일반적으로, 다음의 청구범위에서 사용된 용어들은 본 GPS 시스템을 명세서와 청구범위에 개시된 특정 실시예에 국한시키는 것으로 해석되어서는 안 되며, 본 청구범위의 범주내인 모든 전자 시스템을 포함하는 것으로 해석되어야 한다. 따라서, 본 GPS 시스템은 본 개시 내용에 국한되지 않으며, 그 대신에 본 청구범위에 의해 본 GPS 시스템의 범주가 전반적으로 결정될 것이다.
GPS 시스템의 일정한 측면들이 어느 특정 청구범위 형태로 제시되고 있지만, 본 발명자들은 본 청구범위의 어느 항에서든 GPS 시스템의 여러 측면들을 고려하고 있다는 점에 유의하기 바란다. 따라서, 본 발명자들은 출원 이후에 GPS 시스템의 다른 측면들에 대한 청구항을 추가할 권리를 보유하고 있다.

Claims (51)

  1. 전자 시스템으로서,
    적어도 하나의 프로세서; 및
    상기 프로세서에 접속되고 상기 시스템의 동작 모드에 따라 동작하는 신호 처리 시스템을 포함하고,
    상기 신호 처리 시스템은,
    적어도 하나의 채널을 통하여 데이터를 수신하는 상기 프로세서에 접속되고, 입력 데이터 샘플을 생성하는 입력 샘플 서브시스템;
    상기 프로세서에 접속되고, 상기 동작 모드에 따라 자동으로 구성된 적어도 하나의 구성가능 파라미터를 구비한 적어도 하나의 정합 필터를 포함하는 신호 처리 서브시스템;
    상기 프로세서에 접속되고, 다수의 입력 중 적어도 하나의 입력과 상기 동작 모드에 따라 자동으로 구성되는 변환 크기를 구비하는 고속 푸리에 변환(FFT) 서브시스템; 및
    상기 동작 모드에 따라 복수의 구성으로 자동으로 구성가능한 메모리 서브시스템
    을 포함하는 전자 시스템.
  2. 제1항에 있어서,
    상기 입력 샘플 서브시스템은 상기 수신된 데이터의 레벨에 응답하여 이득을 자동으로 스케일링하는 전자 시스템.
  3. 제1항에 있어서,
    상기 입력 샘플 서브시스템은 상기 동작 모드에 따라 수신된 데이터의 보간(decimation)을 자동으로 제어하는 전자 시스템.
  4. 제3항에 있어서,
    상기 보간 제어는, 소모된 메모리의 양에 따라 선택된 적어도 하나의 제1 보간 모드 및 상기 수신된 데이터의 양에 따라 선택된 적어도 하나의 제2 보간 모드를 포함하는 전자 시스템.
  5. 제1항에 있어서,
    상기 정합 필터의 적어도 하나의 구성가능 파라미터는 다수의 탭, 다수의 누산(accumulations), 및 탭 오프셋을 포함하는 전자 시스템.
  6. 제1항에 있어서,
    상기 신호 처리 서브시스템은 코히런트(coherent) 데이터를 생성하는 전자 시스템.
  7. 제1항에 있어서,
    상기 정합 필터의 출력을 수신하도록 접속된 코히런트 누산기를 더 포함하는 전자 시스템.
  8. 제1항에 있어서,
    상기 메모리 서브시스템은 영역들로 구성가능하고, 상기 각 영역은 데이터의 타입을 저장하며, 각 영역은 복수의 방식 중 하나의 방식으로 액세스되고, 각 영역은 특정 서브시스템에 의해 액세스되며, 상기 영역 중 적어도 하나의 영역은 메모리 서브시스템의 구성을 결정하는 프로세서로부터 서로 다른 영역의 크기 및 특정 영역을 액세스하는데 사용될 액세스 방법을 포함하는 데이터 워드를 저장하는 전자 시스템.
  9. 제1항에 있어서,
    상기 입력 샘플 서브시스템, 신호 처리 서브시스템, 및 FFT 서브시스템 중 적어도 하나의 시간 멀티플렉싱 사용을 채널들 중에서 자동으로 제어하는 프로세서에 접속되는 적어도 하나의 시퀀서(sequencer)를 더 포함하는 전자 시스템.
  10. 제9항에 있어서,
    상기 시퀀서는, 적어도 하나의 규칙에 따라 입력 샘플 서브시스템, 신호 처리 서브시스템, 및 FFT 서브시스템 중 적어도 하나로의 채널 액세스를 제어함으로 써 상기 채널로부터의 데이터의 처리를 제어하는 전자 시스템.
  11. 제9항에 있어서,
    상기 시퀀서는 상기 메모리 서브시스템으로부터의 정보를 사용하여 신호 처리 서브시스템 및 FFT 서브시스템 중 적어도 하나를 자동으로 구성하는 전자 시스템.
  12. 제1항에 있어서,
    최적 패턴을 사용하여 상기 신호 처리 서브시스템으로부터의 데이터의 저장을 제어하는 적어도 하나의 제1 컨트롤러를 더 포함하고, 상기 최적 패턴은 FFT 서브시스템에 의해 데이터로의 동시 액세스를 가능하게 하면서 상기 액세스된 데이터 간 상충을 회피할 수 있도록 상기 신호 처리 서브시스템으로부터의 데이터를 저장하는 전자 시스템.
  13. 제1항에 있어서,
    상기 입력 샘플 서브시스템과 상기 신호 처리 서브시스템 사이에 접속되어 상기 메모리 서브시스템으로의 액세스를 제어하는 적어도 하나의 제2 컨트롤러를 더 포함하는 전자 시스템.
  14. 제1항에 있어서,
    상기 신호 처리 서브시스템, 상기 FFT 서브시스템, 및 상기 메모리 서브시스템 중에 접속된 적어도 하나의 제3 컨트롤러를 더 포함하는 전자 시스템.
  15. 제14항에 있어서,
    상기 제3 컨트롤러는, 상기 신호 처리 서브시스템과 상기 FFT 서브시스템 사이에서의 데이터 전송을 제어하는 전자 시스템.
  16. 제1항에 있어서,
    상기 FFT 서브시스템으로부터의 데이터를 수신하도록 접속된 적어도 하나의 논-코히런트(non-coherent) 누산기를 더 포함하는 전자 시스템.
  17. 제1항에 있어서,
    상기 메모리 서브시스템은 제1 버스를 통하여 제1 프로세서에 의한 액세스를 위해 접속된 제1 메모리 영역, 제2 버스를 통하여 제2 프로세서에 의한 액세스를 위해 접속된 제2 메모리를 포함하고, 상기 복수의 구성은 제1 프로세서에 의한 제2 메모리 영역의 공유 액세스, 제1 프로세서에 의한 제1 버스를 통한 제2 메모리 영역의 메모리 위치의 제1 세트로의 액세스, 및 제1 프로세서에 의한 제2 버스를 통한 제2 메모리 영역의 메모리 위치의 제2 세트로의 액세스를 제공하는 구성을 포함하는 전자 시스템.
  18. 제1항에 있어서,
    제1 클록 신호를 생성하는 제1 클록을 포함하는 제1 수신기, 제2 클록 신호를 생성하는 제2 클록을 포함하는 제2 수신기, 제1 및 제2 클록 신호를 나타내는 값을 저장하는 메모리 서브시스템의 적어도 하나의 영역, 및 상기 값 중 하나에 따라 제어 신호를 생성하고, 제1 클록 신호 및 제2 클록 신호의 펄스를 카운트하며 상기 제어 신호에 응답하여 각 클록 신호의 카운트를 캡쳐하고, 상기 카운트를 사용하여 제1 및 제2 클록 신호의 주파수간 비율을 결정하는 비율 카운터를 더 포함하는 전자 시스템.
  19. 제1항에 있어서,
    상기 신호 처리 시스템은 위성 기반 포지셔닝(positioning) 시스템에서 위성 신호 데이터를 처리하도록 구성가능한 전자 시스템.
  20. 제1항에 있어서,
    상기 신호 처리는 지상 전송기로부터의 적어도 하나의 다른 신호를 처리하도록 구성가능한 전자 시스템.
  21. 제1항에 있어서,
    상기 데이터는 GPS(global positioning system) 위성 신호를 포함하고, 상기 동작 모드는 GPS 위성에 대하여 광대역, 저해상도 검색이 수행되는 모드, GPS 위성 에 대하여 협대역, 고해상도 검색이 수행되는 모드, 및 이전에 획득된 GPS 위성이 트래킹되는 모드 중 적어도 하나의 모드를 포함하는 전자 시스템.
  22. 제1항에 있어서,
    상기 동작 모드는 콜드(cold) 시작 모드, 성긴(coarse) 획득 모드, 핫(hot) 시작 모드, 및 트랙 모드를 포함하는 전자 시스템.
  23. 제1항에 있어서,
    상기 메모리 서브시스템은 입력 데이터 샘플을 저장하는 입력 샘플 메모리, 코히런트 데이터를 저장하는 코히런트 메모리, 및 논코히런트 데이터를 저장하는 NCS(noncoherent summation) 메모리를 포함하는 영역으로 구성가능한 전자 시스템.
  24. 제1항에 있어서,
    상기 복수의 구성은 제1 동작 모드에 대응하는 콜드 시작 구성을 포함하고, 상기 메모리 서브시스템은 입력 샘플 메모리 및 NCS 메모리를 포함하는 영역으로 구성가능하며, 상기 입력 샘플 메모리는 NCS 메모리보다 매우 더 크고, 상기 입력 샘플 메모리는, 데이터가 덮어쓰여지기 전에 채워진 입력 샘플 메모리에 있는 데이터를 적어도 한 번 상기 신호 처리 서브시스템이 처리하도록 하는 원샷(one-shot) 방식으로 입력 데이터 샘플이 채워지는 전자 시스템.
  25. 제24항에 있어서,
    상기 제1 동작 모드에서, 상기 신호 처리 시스템은 코히런트 데이터를 생성하고 코히런트 데이터를 FFT 서브시스템으로 전송하며, 상기 FFT 서브시스템은 논코히런트 데이터를 생성하고 그 논코히런트 데이터를 NCS 메모리에 저장하는 전자 시스템.
  26. 제1항에 있어서,
    상기 복수의 구성은 제2 동작 모드에 대응하는 성긴 획득 구성을 포함하고, 상기 메모리 서브시스템은 입력 샘플 메모리, 코히런트 메모리, 및 NCS 메모리를 포함하는 영역으로 구성가능하며, 상기 NCS 메모리는 입력 샘플 메모리 및 코히런트 메모리 중 어느 하나보다 매우 더 크고, 상기 신호 처리 서브시스템이 입력 샘플 메모리의 하나의 영역으로부터 처리될 데이터를 판독하지만 상기 입력 샘플 서브시스템은 데이터를 입력 샘플 메모리로 기록하도록 하는 순환 방식으로 상기 입력 샘플 메모리가 입력 데이터 샘플로 채워지는 전자 시스템.
  27. 제26항에 있어서,
    제2 동작 모드에서, 상기 신호 처리 서브시스템은 코히런트 데이터를 생성하고 그 코히런트 데이터를 코히런트 메모리에 저장하지만 FFT 서브시스템은 코히런트 메모리로부터 코히런트 데이터를 판독하는 전자 시스템.
  28. 제1항에 있어서,
    상기 복수의 구성은 제3 동작 모드에 대응하는 핫 시작 구성을 포함하고, 상기 메모리 서브시스템은 입력 샘플 메모리, 코히런트 메모리, 및 NCS 메모리를 포함하는 영역으로 구성가능하며, 상기 NCS 메모리는 입력 샘플 메모리 및 코히런트 메모리의 어느 하나보다 매우 더 크고, 상기 신호 처리 서브시스템이 입력 샘플 메모리의 하나의 영역으로부터 처리될 데이터를 판독하지만 상기 입력 샘플 서브시스템은 데이터를 입력 샘플 메모리로 기록하도록 하는 순환 방식으로 상기 입력 샘플 메모리가 입력 데이터 샘플로 채워지며, 상기 신호 처리 서브시스템은 코히런트 데이터를 생성하고 그 코히런트 데이터를 코히런트 메모리에 저장하며, 상기 코히런트 메모리는 각각 위성으로부터의 코히런트 데이터의 저장을 위한 스크래치(scratch) 영역 및 복수의 코히런트 영역을 포함하도록 구성되는 전자 시스템.
  29. 제28항에 있어서,
    제3 동작 모드에서, 상기 신호 처리 서브시스템은 코히런트 데이터를 코히런트 메모리에 기록하지만 FFT 서브시스템은 코히런트 메모리에서 코히런트 데이터를 판독하는 전자 시스템.
  30. 제1항에 있어서,
    상기 복수의 구성은 제4 동작 모드에 대응하는 트래킹 구성을 포함하고, 상기 메모리 서브시스템은 입력 샘플 메모리, 코히런트 메모리, 및 NCS 메모리를 포 함하는 영역으로 구성가능하며, 상기 NCS 메모리는 입력 샘플 메모리 및 코히런트 메모리의 어느 하나보다 매우 더 크고, 상기 신호 처리 서브시스템이 입력 샘플 메모리의 하나의 영역으로부터 처리될 데이터를 판독하지만 상기 입력 샘플 서브시스템은 데이터를 입력 샘플 메모리로 기록하도록 하는 순환 방식으로 상기 입력 샘플 메모리가 입력 데이터 샘플로 채워지며, 상기 신호 처리 서브시스템은 코히런트 데이터를 생성하고 그 코히런트 데이터를 코히런트 메모리에 저장하며, 상기 FFT 서브시스템은 코히런트 메모리에서 코히런트 데이터를 판독하고 논코히런트 데이터를 생성하며 그 논코히런트 데이터를 NCS 메모리에 저장하고, NCS 메모리는 NCS 영역 및 피크 영역 및 트랙 영역을 포함하도록 구성되는 전자 시스템.
  31. 제1항에 있어서,
    상기 전자 시스템은 셀룰라 전화, 휴대용 전화, 휴대용 통신 장치, 개인용 컴퓨터, 휴대용 컴퓨팅 장치, 및 개인 휴대 정보 단말기 중 적어도 하나를 포함하는 전자 시스템.
  32. 전자 시스템으로서,
    적어도 하나의 프로세서 및 복수의 동작 모드 하에서 동작하도록 접속된 신호 처리 시스템을 포함하고,
    상기 신호 처리 시스템은 상기 동적 모드에 응답하여 자동 및 동적으로 구성가능한 신호 처리 서브시스템 및 고속 푸리에 변환(FFT) 서브시스템을 포함하고, 상기 신호 처리 서브시스템은 동작 모드에 따라 자동으로 구성된 적어도 하나의 구성가능 파라미터를 구비한 적어도 하나의 정합 필터를 포함하고, 상기 고속 푸리에 변환(FFT) 서브시스템은 다수의 입력 중 적어도 하나와 상기 동작 모드에 따라 자동으로 구성된 변환 크기를 포함하는
    전자 시스템.
  33. 제32항에 있어서,
    적어도 하나의 채널을 통하여 데이터를 수신하는 상기 프로세서에 접속되고 입력 데이터 샘플을 생성하는 입력 샘플 서브시스템을 더 포함하는 전자 시스템.
  34. 제32항에 있어서,
    상기 동작 모드에 따라 복수의 구성으로 자동 및 동적으로 구성가능한 메모리 서브시스템을 더 포함하고, 상기 메모리 서브시스템은 영역들로 구성가능하며, 각각의 영역은 데이터의 타입을 저장하고, 각각의 영역은 복수의 방식 중 하나의 방식으로 액세스되며, 각각의 영역은 특정 서브시스템에 의해 액세스되고, 상기 영역들 중 적어도 한 영역은 메모리 서브시스템의 구성을 결정하는 프로세서로부터 서로 다른 영역의 크기 및 특정 영역을 액세스하기 위해 사용되는 액세스 방법을 포함하는 데이터 워드를 저장하는 전자 시스템.
  35. 제32항에 있어서,
    상기 정합 필터의 적어도 하나의 구성가능 파라미터는 다수의 탭, 다수의 누산, 및 탭 오프셋을 포함하는 전자 시스템.
  36. 제32항에 있어서,
    상기 프로세서에 접속되고, 적어도 하나의 규칙에 따라 상기 신호 처리 서브시스템 및 상기 FFT 서브시스템 중 적어도 하나로의 채널 액세스를 제어함으로써 채널들 간에 상기 신호 처리 서브시스템과 상기 FFT 서브시스템 중 적어도 하나의 시간 멀티플렉싱 사용을 자동 및 동적으로 제어하는 적어도 하나의 시퀀서를 더 포함하고, 상기 시퀀서는 적어도 하나의 메모리 영역으로부터의 정보를 사용하여 신호 처리 서브시스템과 FFT 서브시스템 중 적어도 하나를 자동으로 구성하는 전자 시스템.
  37. 제32항에 있어서,
    최적 패턴을 사용하여 상기 신호 처리 서브시스템으로부터의 데이터의 저장을 제어하는 적어도 하나의 제1 컨트롤러를 더 포함하고, 상기 최적 패턴은 FFT 서브시스템에 의한 데이터로의 동시 액세스를 가능하게 하면서 상기 액세스된 데이터 간 상충을 회피할 수 있도록 상기 신호 처리 서브시스템으로부터의 데이터를 저장하는 전자 시스템.
  38. 제32항에 있어서,
    상기 신호 처리 서브시스템, 상기 FFT 서브시스템, 및 구성가능한 메모리 서브시스템 중에 접속되어 신호 처리 서브시스템 및 FFT 서브시스템 중의 데이터 전송을 제어하는 적어도 하나의 제2 컨트롤러를 더 포함하는 전자 시스템.
  39. 제32항에 있어서,
    상기 신호 처리 시스템은 위성 기반 포지셔닝 시스템에서 위성 신호 데이터를 처리하도록 구성가능한 전자 시스템.
  40. 제39항에 있어서,
    상기 데이터는 GPS 위성 신호를 포함하고, 상기 동작 모드는 GPS 위성에 대하여 광대역, 저해상도 검색이 수행되는 모드, GPS 위성에 대하여 협대역, 고해상도 검색이 수행되는 모드, 및 이전에 획득된 GPS 위성이 트래킹되는 모드 중 적어도 하나의 모드를 포함하는 전자 시스템.
  41. 제32항에 있어서,
    상기 동작 모드는 콜드 시작 모드, 성긴 획득 모드, 핫 시작 모드, 및 트랙 모드를 포함하는 전자 시스템.
  42. 제32항에 있어서,
    상기 전자 시스템은 셀룰라 전화, 휴대용 전화, 휴대용 통신 장치, 개인용 컴퓨터, 휴대용 컴퓨팅 장치, 및 개인 휴대 정보 단말기 중 적어도 하나를 포함하는 전자 시스템.
  43. 전자 시스템으로서,
    적어도 하나의 프로세서 및 복수의 동작 모드에 따라 동작하는 신호 처리 시스템을 포함하고,
    상기 신호 프로세서는 상기 동적 모드에 응답하여 자동 및 동적으로 구성가능한 신호 처리 서브시스템, 고속 푸리에 변환(FFT) 서브시스템 및 메모리 서브시스템을 포함하고, 제1 컨트롤러는 상기 메모리 서브시스템을 통하여 상기 신호 처리 서브시스템과 상기 FFT 서브시스템 간 데이터 전송을 제어하도록 접속하며, 상기 메모리 서브시스템의 구성가능성은 동작 모드에 따라 상기 메모리 서브시스템을 영역들로 구성하는 것을 포함하고, 상기 영역은 동작 모드에 따라 복수의 방식 중 하나의 방식으로 각각 액세스가능한
    전자 시스템.
  44. 제43항에 있어서,
    상기 신호 처리 서브시스템은 동작 모드에 따라 자동으로 구성된 적어도 하나의 구성가능 파라미터를 구비한 적어도 하나의 정합 필터를 포함하고, 상기 고속 푸리에 변환(FFT) 서브시스템은 다수의 입력 중 적어도 하나와 상기 동작 모드에 따라 자동으로 구성된 변환 크기를 포함하는 전자 시스템.
  45. 제43항에 있어서,
    적어도 하나의 채널을 통하여 데이터를 수신하도록 접속되고 입력 데이터 샘플을 생성하는 입력 샘플 서브시스템을 더 포함하고, 상기 데이터는 GPS 위성 신호를 포함하고, 상기 동작 모드는 GPS 위성에 대하여 광대역, 저해상도 검색이 수행되는 모드, GPS 위성에 대하여 협대역, 고해상도 검색이 수행되는 모드, 및 이전에 획득된 GPS 위성이 트래킹되는 모드 중 적어도 하나의 모드를 포함하는 전자 시스템.
  46. 제43항에 있어서,
    상기 영역들 중 적어도 한 영역은 메모리 서브시스템의 구성을 결정하는 프로세서로부터 서로 다른 영역의 크기 및 특정 영역을 액세스하기 위해 사용되는 액세스 방법을 포함하는 데이터 워드를 저장하는 전자 시스템.
  47. 제43항에 있어서,
    상기 FFT 서브시스템에 의한 데이터로의 동시 액세스를 가능하게 하면서 상기 액세스된 데이터 간 상충을 회피할 수 있도록 상기 신호 처리 서브시스템으로부터의 데이터를 저장하는 최적 패턴을 사용하여 상기 신호 처리 서브시스템으로부터의 데이터의 저장을 제어하는 적어도 하나의 제2 컨트롤러를 더 포함하는 전자 시스템.
  48. 제43항에 있어서,
    상기 전자 시스템은 셀룰라 전화, 휴대용 통신 장치, 및 휴대용 컴퓨팅 장치 중 적어도 하나를 포함하는 전자 시스템.
  49. 제1항에 있어서,
    상기 신호 처리 시스템과 상기 입력 샘플 서브시스템 사이에 시리얼 인터페이스를 더 포함하는 전자 시스템.
  50. 제1항에 있어서,
    상기 고속 푸리에 서브시스템에 의해 액세스되는 패턴의 출력을 메모리에 저장하는 신호 처리 시스템으로부터의 출력 데이터를 수신하는 트위들(twiddle) 알고리즘을 더 포함하는 전자 시스템.
  51. 전자 시스템으로서,
    처리를 제어하는 수단; 및
    처리를 제어하는 상기 수단에 접속되고 상기 시스템의 동작 모드에 따라 동작하는 신호 처리 수단을 포함하고,
    상기 신호 처리 수단은,
    데이터를 수신하고 입력 데이터 샘플을 생성하는 수단;
    상기 입력 데이터 샘플을 사용하여 코히런트 데이터를 생성하는 수단 - 상기 코히런트 데이터 생성 수단은 동작 모드에 따라 자동으로 구성된 적어도 하나의 구성가능 파라미터를 구비한 적어도 하나의 정합 필터를 포함함 -;
    다수의 입력 중 적어도 한 입력과 상기 동작 모드에 따라 자동으로 구성된 변환 크기를 구비한 고속 푸리에 변환(FFT)을 생성하는 수단;
    상기 동작 모드에 따라 복수의 구성으로 자동으로 구성가능한 데이터를 저장하는 수단
    을 포함하는 전자 시스템.
KR1020067004396A 2003-09-02 2004-09-02 위성 위치 신호를 위한 신호 처리 시스템 KR20070012308A (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US49996103P 2003-09-02 2003-09-02
US60/499,961 2003-09-02
US54738504P 2004-02-23 2004-02-23
US54681604P 2004-02-23 2004-02-23
US60/547,385 2004-02-23
US60/546,816 2004-02-23

Publications (1)

Publication Number Publication Date
KR20070012308A true KR20070012308A (ko) 2007-01-25

Family

ID=34279819

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020067004396A KR20070012308A (ko) 2003-09-02 2004-09-02 위성 위치 신호를 위한 신호 처리 시스템
KR1020067004394A KR20070019940A (ko) 2003-09-02 2004-09-02 위성 위치결정 시스템 수신기에 대한 제어 및 특징들

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020067004394A KR20070019940A (ko) 2003-09-02 2004-09-02 위성 위치결정 시스템 수신기에 대한 제어 및 특징들

Country Status (5)

Country Link
US (4) US8013787B2 (ko)
EP (2) EP1664824B1 (ko)
JP (3) JP4658050B2 (ko)
KR (2) KR20070012308A (ko)
WO (2) WO2005022187A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335248B2 (en) 2007-03-21 2012-12-18 Qualcomm Incorporated Fast square root algorithm for MIMO equalization
US8411732B2 (en) 2007-03-21 2013-04-02 Qualcomm Incorporated Fast square root algorithm for MIMO equalization

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008024123A2 (en) * 2005-10-28 2008-02-28 Sirf Technology, Inc. Global positioning system receiver timeline management
KR20070012308A (ko) 2003-09-02 2007-01-25 서프 테크놀러지, 인코포레이티드 위성 위치 신호를 위한 신호 처리 시스템
EP1688755A1 (en) * 2005-02-04 2006-08-09 Nemerix SA FFT inter frequency loss mitigation and GPS receiver including it
CN101238383B (zh) 2005-06-08 2011-10-05 Nxp股份有限公司 Gps处理装置
US7729457B2 (en) * 2005-07-25 2010-06-01 Mstar Semiconductor, Inc. Method of weak signal acquisition and associated apparatus
TWI370627B (en) * 2006-03-02 2012-08-11 Qualcomm Inc Method and apparatus for code space search in a receiver
US8279910B2 (en) * 2006-03-02 2012-10-02 Qualcomm Incorporated Method and apparatus for code space search in a receiver
US8964812B2 (en) 2006-05-24 2015-02-24 Nokia Corporation Method in a CDMA receiver using hardware and software in acquisition, tracking and hosting
US7990315B2 (en) * 2006-09-15 2011-08-02 Mediatek Inc. Shared memory device applied to functional stages configured in a receiver system for processing signals from different transmitter systems and method thereof
JP4859790B2 (ja) * 2007-08-24 2012-01-25 日本無線株式会社 Gps受信機
WO2009079380A2 (en) * 2007-12-14 2009-06-25 Magellan Systems Japan, Inc. Process for sub-microsecond time transfer using weak gps/gnss signals
EP2288930B1 (en) 2008-02-28 2013-12-11 Magellan Systems Japan, Inc. Method and apparatus for acquisition, tracking, and sub-microsecond time transfer using weak gps/gnss signals
JP2008261870A (ja) * 2008-05-19 2008-10-30 Seiko Epson Corp 測位装置、測位装置の制御方法、その制御プログラム及び記録媒体
JP2008233103A (ja) * 2008-05-19 2008-10-02 Seiko Epson Corp 測位装置、測位装置の制御方法、その制御プログラム及び記録媒体
JP2008233102A (ja) * 2008-05-19 2008-10-02 Seiko Epson Corp 測位装置、測位装置の制御方法、その制御プログラム及び記録媒体
US8620306B2 (en) * 2008-06-24 2013-12-31 Qualcomm Incorporated Location specific search for regional satellite vehicles
US8184676B2 (en) * 2008-06-27 2012-05-22 Csr Technology Inc. Method and apparatus for mitigating the effects of CW interference via post correlation processing in a GPS receiver
JP5123118B2 (ja) * 2008-09-10 2013-01-16 日本無線株式会社 加速度計測装置
JP5117352B2 (ja) * 2008-11-07 2013-01-16 株式会社東芝 無線通信装置及び無線通信方法
GB0823329D0 (en) 2008-12-22 2009-01-28 Geotate Bv Position signal sampling method and apparatus
US8170491B2 (en) * 2009-05-04 2012-05-01 Qualcomm Incorporated System and method for real-time performance and load statistics of a communications system
US20110148700A1 (en) * 2009-12-18 2011-06-23 Lasagabaster Javier De Salas Method and system for mobile device based gnss position computation without ephemeris data
US8410979B2 (en) * 2010-01-25 2013-04-02 Qualcomm Incorporated Digital front end in system simultaneously receiving GPS and GLONASS signals
US8018379B1 (en) 2010-01-25 2011-09-13 Qualcomm Atheros, Inc. Automatic gain control in system simultaneously receiving GPS and GLONASS signals
US20110241937A1 (en) * 2010-04-02 2011-10-06 Electronics And Telecommunications Research Institute Apparatus and method for signal acquisition in global navigation satellite system receiver
US8731110B1 (en) * 2010-06-11 2014-05-20 Qualcomm Incorporated Continuity of function of a GPS receiver during power cycling
US8654008B2 (en) 2010-09-29 2014-02-18 Qualcomm Incorporated Multi-stage GLONASS/GPS automatic frequency control
US8842717B2 (en) * 2011-03-31 2014-09-23 General Dynamics Advanced Information Systems, Inc. Method and apparatus for rapid acquisitions of GPS signals in space applications
DE102011111070B4 (de) * 2011-08-18 2014-10-16 Audi Ag Verfahren zum Betreiben einer Sensoreinrichtung in einem Fahrzeug und Fahrzeug
US8948781B2 (en) * 2011-10-21 2015-02-03 Alohar Mobile Inc. Controlling operational states of a location sensing system of a mobile device
US9405010B2 (en) 2012-05-02 2016-08-02 Raven Industries, Inc. Geospatial positioning using correction information provided over cellular control channels
US8847637B1 (en) * 2012-05-24 2014-09-30 Massachusetts Institute Of Technology Time-interleaved multi-modulus frequency divider
US20140278838A1 (en) * 2013-03-14 2014-09-18 Uber Technologies, Inc. Determining an amount for a toll based on location data points provided by a computing device
US9476988B2 (en) * 2013-05-09 2016-10-25 Samsung Electronics Co., Ltd. Method, apparatus and system for reducing power consumption in GNSS receivers
US9191209B2 (en) 2013-06-25 2015-11-17 Google Inc. Efficient communication for devices of a home network
US9531704B2 (en) 2013-06-25 2016-12-27 Google Inc. Efficient network layer for IPv6 protocol
CN104280751A (zh) * 2013-07-08 2015-01-14 成都国腾电子技术股份有限公司 基于相位差分匹配滤波的gnss系统比特同步方法
US9160651B2 (en) 2013-07-24 2015-10-13 Telefonaktiebolaget L M Ericsson (Publ) Metric biasing for bandwidth aware tie breaking
US9166887B2 (en) 2013-12-26 2015-10-20 Telefonaktiebolaget L M Ericsson (Publ) Multicast convergence
US20150261623A1 (en) * 2014-03-15 2015-09-17 Macronix International Co., Ltd. Method and device for recovering data
EP2928100B1 (en) * 2014-04-04 2018-09-05 Eutelsat S.A. Device and method for neutralizing the impact of a jamming signal on a satellite
US20170212246A1 (en) * 2014-08-20 2017-07-27 Sony Semiconductor Solutions Corporation Receiving apparatus, receiving method, and program for global navigation satellite system
JP2016082402A (ja) 2014-10-16 2016-05-16 富士通株式会社 ベースバンド処理装置、無線装置、及び無線通信システム
US10557944B2 (en) * 2014-10-27 2020-02-11 Qualcomm Incorporated Timing circuit calibration
US9804271B2 (en) * 2015-01-02 2017-10-31 Samsung Electronics Co., Ltd Adaptive GNSS power saving control
US20160291129A1 (en) * 2015-02-09 2016-10-06 The Regents Of The University Of Michigan Current-Mode Matched Filter Architecture For Signal Acquisition
ES2879277T3 (es) * 2015-03-06 2021-11-22 Gatekeeper Systems Inc Ubicación de bajo consumo de energía de objetos móviles
US9491758B2 (en) * 2015-04-07 2016-11-08 Freescale Semiconductor, Inc. System for alignment of RF signals
US9804919B2 (en) * 2015-07-20 2017-10-31 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for correlation based data alignment
CN106470175B (zh) * 2015-08-20 2019-10-18 深圳市中兴微电子技术有限公司 一种基带芯片及信号处理方法
US10001541B2 (en) 2015-09-04 2018-06-19 Gatekeeper Systems, Inc. Magnetometer and accelerometer calibration for cart navigation system
CA2996604A1 (en) 2015-09-04 2017-03-09 Gatekeeper Systems, Inc. Estimating motion of wheeled carts
TWI569279B (zh) * 2015-10-15 2017-02-01 財團法人工業技術研究院 記憶體保護裝置與方法
CN106980125B (zh) * 2016-01-18 2022-02-01 北京信息科技大学 一种卫星导航中xfast捕获的降计算量去模糊处理方法
CN105929410B (zh) * 2016-04-14 2019-03-22 上海交通大学 一种gnss接收机状态调度方法和gnss接收机
US10162990B2 (en) * 2016-04-29 2018-12-25 Samsung Electronics Co., Ltd. Analog heterogeneous connectivity tags and methods and systems to configure the tags
US10028100B2 (en) * 2016-06-27 2018-07-17 International Business Machines Corporation Methods and systems for improving accuracy of indoor positioning
CN106019335B (zh) * 2016-07-01 2018-04-06 广东工业大学 一种卫星导航信号的斜率位同步法
CN106873005A (zh) * 2017-01-19 2017-06-20 沈阳理工大学 基于碎片式匹配机制的gnss多模兼容同步系统及其应用方法
CN110612559B (zh) 2017-03-08 2021-10-15 看门人系统公司 用于轮式车的导航系统
US10740526B2 (en) * 2017-08-11 2020-08-11 Movellus Circuits, Inc. Integrated circuit design system with automatic timing margin reduction
US10942279B2 (en) * 2017-10-25 2021-03-09 Samsung Electronics Co., Ltd System and method for improved GNSS sensitivity via combining acquisition and track correlation hypotheses
DE102017126723B4 (de) 2017-11-14 2024-10-10 Infineon Technologies Ag Vorrichtung und Verfahren zum Verarbeiten von Radarsignalen
CN109067676B (zh) * 2018-08-14 2021-11-16 西安空间无线电技术研究所 一种卫星导航信号高精度时域性能评估方法
US11038727B2 (en) * 2018-11-08 2021-06-15 Qualcomm Incorporated User equipment receiver processing for multi-transmit-receive-point communication
GB2580302B (en) * 2018-11-20 2022-10-26 Imagination Tech Ltd GNSS Receiver
GB2580304B (en) * 2018-11-20 2022-09-21 Imagination Tech Ltd GNSS receiver
US10790920B2 (en) * 2018-12-21 2020-09-29 Kratos Integral Holdings, Llc System and method for processing signals using feed forward carrier and timing recovery
US10764071B1 (en) * 2019-04-17 2020-09-01 Ciholas, Inc. System and method for chaining power and communications to multiple nodes
CN110289857B (zh) * 2019-05-20 2022-11-29 昇显微电子(苏州)有限公司 一种时钟生成电路
CN115039179A (zh) * 2019-12-06 2022-09-09 特克特朗尼克公司 用于输入信号的持续记录和可控回放的系统
CN111190198B (zh) * 2020-01-14 2021-12-14 中国民用航空总局第二研究所 Gbas测试设备的卫星接收机及其伪距生成方法与系统
CN111262618B (zh) * 2020-01-17 2020-09-29 北京理工大学 基于相同伪码的多目标测控信号并行接入的解决方法
IL272439B2 (en) * 2020-02-03 2023-05-01 Elta Systems Ltd Detection of weak signals with unknown parameters
US11481273B2 (en) 2020-08-17 2022-10-25 Micron Technology, Inc. Partitioned memory having error detection capability
CN112114339B (zh) * 2020-11-20 2021-02-19 四川中科川信科技有限公司 一种gnss数据微分迭代滤波解算方法
IL308837A (en) 2021-05-24 2024-01-01 Kratos Integral Holdings Llc Systems and methods after identifying a combination of a plurality of DOWNLINK signals representing a communication signal
KR102458817B1 (ko) * 2022-03-18 2022-10-26 주식회사 네브시스 고성능 내장형 다중 gnss 수신기

Family Cites Families (231)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3939474A (en) 1965-09-20 1976-02-17 Rockwell International Corporation Fully-coherent multiple frequency radar system
US4426712A (en) * 1981-05-22 1984-01-17 Massachusetts Institute Of Technology Correlation system for global position receiver
US4445118A (en) * 1981-05-22 1984-04-24 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Navigation system and method
US4463357A (en) * 1981-11-17 1984-07-31 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Method and apparatus for calibrating the ionosphere and application to surveillance of geophysical events
JPS58105632A (ja) 1981-12-17 1983-06-23 Mitsubishi Electric Corp 受信機
JPS58105632U (ja) 1982-01-11 1983-07-18 猪越金銭登録株式会社 多項目入力キ−ボ−ドのキ−表示更新機構
US4449248A (en) 1982-02-01 1984-05-15 General Electric Company Battery saving radio circuit and system
US4667203A (en) * 1982-03-01 1987-05-19 Aero Service Div, Western Geophysical Method and system for determining position using signals from satellites
US4870422A (en) * 1982-03-01 1989-09-26 Western Atlas International, Inc. Method and system for determining position from signals from satellites
US4894662A (en) * 1982-03-01 1990-01-16 Western Atlas International, Inc. Method and system for determining position on a moving platform, such as a ship, using signals from GPS satellites
US4809005A (en) * 1982-03-01 1989-02-28 Western Atlas International, Inc. Multi-antenna gas receiver for seismic survey vessels
US4578678A (en) * 1983-11-14 1986-03-25 The United States Of America As Represented By The United States National Aeronautics And Space Administration High dynamic global positioning system receiver
US4754465A (en) * 1984-05-07 1988-06-28 Trimble Navigation, Inc. Global positioning system course acquisition code receiver
US4701934A (en) * 1985-09-03 1987-10-20 Motorola, Inc. Method of doppler searching in a digital GPS receiver
US4785463A (en) * 1985-09-03 1988-11-15 Motorola, Inc. Digital global positioning system receiver
JPS6318448A (ja) 1986-07-10 1988-01-26 Matsushita Electric Ind Co Ltd バス制御装置
US4890233A (en) 1986-10-27 1989-12-26 Pioneer Electronic Corporation Vehicle bearing detection and data processing methods applicable to vehicle navigation system
US4821294A (en) * 1987-07-08 1989-04-11 California Institute Of Technology Digital signal processor and processing method for GPS receivers
US4947477A (en) 1988-03-04 1990-08-07 Dallas Semiconductor Corporation Partitionable embedded program and data memory for a central processing unit
KR950000050B1 (ko) 1989-03-20 1995-01-07 모토로라 인코포레이티드 저전력 소모성 dsp형 라디오
US5108334A (en) * 1989-06-01 1992-04-28 Trimble Navigation, Ltd. Dual down conversion GPS receiver with single local oscillator
JP2754795B2 (ja) * 1989-11-02 1998-05-20 富士通株式会社 ロジック制御線1本による3状態設定回路
CA2026768C (en) 1989-11-13 1996-07-23 Russell S. Padgett Extended addressing using sub-addressed segment registers
JPH073463B2 (ja) * 1989-11-22 1995-01-18 パイオニア株式会社 Gps受信機の衛星電波捕捉方法
US4998111A (en) * 1989-11-27 1991-03-05 Motorola, Inc. CPS transform correlation receiver and method
JPH03214250A (ja) 1990-01-19 1991-09-19 Nec Corp メモリ制御回路
US5043736B1 (en) * 1990-07-27 1994-09-06 Cae Link Corp Cellular position location system
KR940009235B1 (ko) * 1990-09-12 1994-10-01 미쯔비시 덴끼 가부시끼가이샤 차량 탑재형 위치 검출 장치
US5434970A (en) * 1991-02-14 1995-07-18 Cray Research, Inc. System for distributed multiprocessor communication
US5347284A (en) * 1991-02-28 1994-09-13 Texas Instruments Incorporated System and method for a digital navigation satellite receiver
US5245628A (en) 1991-03-29 1993-09-14 Texas Instruments Incorporated Enhanced l1/l2 code channel for global positioning system receivers
US5134407A (en) * 1991-04-10 1992-07-28 Ashtech Telesis, Inc. Global positioning system receiver digital processing technique
JPH04326079A (ja) 1991-04-26 1992-11-16 Nippondenso Co Ltd Gps受信機
US5225842A (en) * 1991-05-09 1993-07-06 Navsys Corporation Vehicle tracking system employing global positioning system (gps) satellites
US5202829A (en) * 1991-06-10 1993-04-13 Trimble Navigation Limited Exploration system and method for high-accuracy and high-confidence level relative position and velocity determinations
US5311195A (en) * 1991-08-30 1994-05-10 Etak, Inc. Combined relative and absolute positioning method and apparatus
US5379224A (en) * 1991-11-29 1995-01-03 Navsys Corporation GPS tracking system
JPH05197617A (ja) 1992-01-21 1993-08-06 Yaskawa Electric Corp マルチプロセッサシステム
US5323164A (en) * 1992-03-16 1994-06-21 Pioneer Electronic Corporation Satellite radio wave capturing method for a global positioning system (GPS) receiver
US5343209A (en) * 1992-05-07 1994-08-30 Sennott James W Navigation receiver with coupled signal-tracking channels
US5889474A (en) * 1992-05-18 1999-03-30 Aeris Communications, Inc. Method and apparatus for transmitting subject status information over a wireless communications network
JP3283913B2 (ja) * 1992-08-20 2002-05-20 日本無線株式会社 Gps受信装置
US5365450A (en) 1992-12-17 1994-11-15 Stanford Telecommunications, Inc. Hybrid GPS/data line unit for rapid, precise, and robust position determination
US5345244A (en) * 1993-01-12 1994-09-06 Trimble Navigation Limited Cordless SPS smart antenna device
US5347536A (en) * 1993-03-17 1994-09-13 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Multipath noise reduction for spread spectrum signals
US5420593A (en) * 1993-04-09 1995-05-30 Trimble Navigation Limited Method and apparatus for accelerating code correlation searches in initial acquisition and doppler and code phase in re-acquisition of GPS satellite signals
US5917444A (en) * 1995-05-22 1999-06-29 Trimble Navigation Ltd. Reduction of time to first fix in an SATPS receiver
US5440313A (en) * 1993-05-27 1995-08-08 Stellar Gps Corporation GPS synchronized frequency/time source
US5416712A (en) * 1993-05-28 1995-05-16 Trimble Navigation Limited Position and velocity estimation system for adaptive weighting of GPS and dead-reckoning information
US5402347A (en) * 1993-07-22 1995-03-28 Trimble Navigation Limited Satellite search methods for improving time to first fix in a GPS receiver
JPH0736035A (ja) 1993-07-22 1995-02-07 Ohtsu Tire & Rubber Co Ltd :The 面状発光体
US5424949A (en) 1993-07-30 1995-06-13 Honeywell Inc. Multi-channel data receiver system
JPH07146595A (ja) * 1993-11-13 1995-06-06 Asahi Optical Co Ltd 連続紙を用いるプリンタ
US5504684A (en) * 1993-12-10 1996-04-02 Trimble Navigation Limited Single-chip GPS receiver digital signal processing and microcomputer
US5907809A (en) 1994-01-11 1999-05-25 Ericsson Inc. Position determination using multiple base station signals
US5936572A (en) * 1994-02-04 1999-08-10 Trimble Navigation Limited Portable hybrid location determination system
US5483549A (en) * 1994-03-04 1996-01-09 Stanford Telecommunications, Inc. Receiver having for charge-coupled-device based receiver signal processing
US5625668A (en) * 1994-04-12 1997-04-29 Trimble Navigation Limited Position reporting cellular telephone
US5450344A (en) * 1994-04-22 1995-09-12 Trimble Navigation Limited GPS receivers with data ports for the uploading and downloading of absolute position information
US5535278A (en) * 1994-05-02 1996-07-09 Magnavox Electronic Systems Company Global positioning system (GPS) receiver for recovery and tracking of signals modulated with P-code
US5592173A (en) * 1994-07-18 1997-01-07 Trimble Navigation, Ltd GPS receiver having a low power standby mode
US5650785A (en) 1994-11-01 1997-07-22 Trimble Navigation Limited Low power GPS receiver
US5786789A (en) * 1994-11-14 1998-07-28 Trimble Navigation Limited GPS and cellphone unit having add-on modules
US5748651A (en) 1995-05-05 1998-05-05 Trumble Navigation Limited Optimum utilization of pseudorange and range rate corrections by SATPS receiver
US6131067A (en) * 1995-10-09 2000-10-10 Snaptrack, Inc. Client-server based remote locator device
US5825327A (en) * 1996-03-08 1998-10-20 Snaptrack, Inc. GPS receivers and garments containing GPS receivers and methods for using these GPS receivers
US6208290B1 (en) 1996-03-08 2001-03-27 Snaptrack, Inc. GPS receiver utilizing a communication link
US6002363A (en) * 1996-03-08 1999-12-14 Snaptrack, Inc. Combined GPS positioning system and communications system utilizing shared circuitry
US6633255B2 (en) * 1995-10-09 2003-10-14 Qualcomm Inc. Method for open loop tracking GPS signals
US5884214A (en) 1996-09-06 1999-03-16 Snaptrack, Inc. GPS receiver and method for processing GPS signals
US5831574A (en) * 1996-03-08 1998-11-03 Snaptrack, Inc. Method and apparatus for determining the location of an object which may have an obstructed view of the sky
US6133871A (en) * 1995-10-09 2000-10-17 Snaptrack, Inc. GPS receiver having power management
US5841396A (en) * 1996-03-08 1998-11-24 Snaptrack, Inc. GPS receiver utilizing a communication link
AU7396596A (en) * 1995-10-09 1997-04-30 Precision Tracking, Inc. Method and apparatus for determining the location of an object which may have an obstructed view of the sky
WO1997014053A1 (en) 1995-10-09 1997-04-17 Snaptrack, Inc. Improved gps receivers and garments containing gps receivers and methods for using these gps receivers
WO1997014057A1 (en) * 1995-10-09 1997-04-17 Snaptrack, Inc. A gps receiver and method for processing gps signals
GB2339099B (en) * 1995-10-24 2000-05-31 Inmarsat Ltd Satellite radiodetermination
US5754807A (en) 1995-11-20 1998-05-19 Advanced Micro Devices, Inc. Computer system including a multimedia bus which utilizes a separate local expansion bus for addressing and control cycles
US5682484A (en) 1995-11-20 1997-10-28 Advanced Micro Devices, Inc. System and method for transferring data streams simultaneously on multiple buses in a computer system
US5845203A (en) 1996-01-25 1998-12-01 Aertis Cormmunications Remote access application messaging wireless method
US6133874A (en) * 1996-03-08 2000-10-17 Snaptrack, Inc. Method and apparatus for acquiring satellite positioning system signals
US5945944A (en) 1996-03-08 1999-08-31 Snaptrack, Inc. Method and apparatus for determining time for GPS receivers
US6047017A (en) * 1996-04-25 2000-04-04 Cahn; Charles R. Spread spectrum receiver with multi-path cancellation
DE69723483T2 (de) 1996-05-14 2004-06-03 Honeywell International Inc. Autonomes Landeführungssystem
US5907578A (en) * 1996-05-20 1999-05-25 Trimble Navigation Weighted carrier phase multipath reduction
US5663735A (en) * 1996-05-20 1997-09-02 Trimble Navigation Limited GPS receiver using a radio signal for improving time to first fix
US5963601A (en) 1996-05-20 1999-10-05 Trimble Navigation Limited Variable suppression of multipath signal effects
US5963582A (en) * 1996-05-24 1999-10-05 Leica Geosystems Inc. Mitigation of multipath effects in global positioning system receivers
US5828694A (en) * 1996-07-01 1998-10-27 Trimble Navigation Limited Determination of multipath tracking error
US5983332A (en) 1996-07-01 1999-11-09 Sun Microsystems, Inc. Asynchronous transfer mode (ATM) segmentation and reassembly unit virtual address translation unit architecture
US5854605A (en) 1996-07-05 1998-12-29 Trimble Navigation Limited GPS receiver using data bit timing to achieve a fast time to first fix
US6118808A (en) * 1996-07-12 2000-09-12 General Electric Company GPS receiver with efficient signal acquisition
US5943363A (en) * 1996-07-17 1999-08-24 Stanford Telecommunications, Inc. Digital spread spectrum GPS navigation receiver
US5966403A (en) * 1996-07-19 1999-10-12 Trimble Navigation Limited Code multipath error estimation using weighted correlations
GB2315647B (en) * 1996-07-23 2001-02-21 Roke Manor Research Randomised code acquisition
US6185427B1 (en) 1996-09-06 2001-02-06 Snaptrack, Inc. Distributed satellite position system processing and application network
JP3256472B2 (ja) * 1996-09-11 2002-02-12 セイコーインスツルメンツ株式会社 Gps受信装置
US6041379A (en) 1996-10-04 2000-03-21 Northrop Grumman Corporation Processor interface for a distributed memory addressing system
US5911149A (en) 1996-11-01 1999-06-08 Nec Electronics Inc. Apparatus and method for implementing a programmable shared memory with dual bus architecture
JPH10154026A (ja) 1996-11-22 1998-06-09 Alps Electric Co Ltd 電池内蔵式電子機器
US6006309A (en) 1996-12-16 1999-12-21 Bull Hn Information Systems Inc. Information block transfer management in a multiprocessor computer system employing private caches for individual center processor units and a shared cache
US5955987A (en) 1997-01-28 1999-09-21 Northrop Grumman Corporation Hybrid radio frequency system with distributed anti-jam capabilities for navigation use
US6377209B1 (en) 1997-02-03 2002-04-23 Snaptrack, Inc. Method and apparatus for satellite positioning system (SPS) time measurement
US6215442B1 (en) 1997-02-03 2001-04-10 Snaptrack, Inc. Method and apparatus for determining time in a satellite positioning system
US5812087A (en) 1997-02-03 1998-09-22 Snaptrack, Inc. Method and apparatus for satellite positioning system based time measurement
US6289041B1 (en) 1997-02-11 2001-09-11 Snaptrack, Inc. Fast Acquisition, high sensitivity GPS receiver
US5883594A (en) * 1997-02-20 1999-03-16 Trimble Navigation Limited GPS receiver using a message system for reducing power consumption
US5877725A (en) * 1997-03-06 1999-03-02 Trimble Navigation Limited Wide augmentation system retrofit receiver
US5877724A (en) * 1997-03-25 1999-03-02 Trimble Navigation Limited Combined position locating and cellular telephone system with a single shared microprocessor
US6249542B1 (en) * 1997-03-28 2001-06-19 Sirf Technology, Inc. Multipath processing for GPS receivers
US5917866A (en) * 1997-04-04 1999-06-29 Trimble Navigation Limited Code multipath estimation for weighted or modified tracking using weighted or modified correlations
US6411254B1 (en) 1997-04-15 2002-06-25 Snaptrack, Inc. Satellite positioning reference system and method
US6215441B1 (en) 1997-04-15 2001-04-10 Snaptrack, Inc. Satellite positioning reference system and method
US6081733A (en) * 1997-04-16 2000-06-27 Motorola, Inc. Communication control apparatus and method
US5920283A (en) * 1997-05-09 1999-07-06 Conexant Systems, Inc. Receiver engine for global positioning system
US6344749B1 (en) 1997-05-29 2002-02-05 Thomas H. Williams Test system for measuring frequency response and dynamic range on cable plant
IT1292116B1 (it) 1997-06-10 1999-01-25 Alsthom Cge Alcatel Metodo ed apparecchio terminale di utente attestato alla rete di commutazione pubblica per fornire automaticamente annunci telefonici
US6044452A (en) 1997-06-20 2000-03-28 Micron Electronics, Inc. Method for symmetrically processing
US5903654A (en) 1997-08-06 1999-05-11 Rockwell Science Center, Inc. Method and apparatus for eliminating ionospheric delay error in global positioning system signals
US6041222A (en) * 1997-09-08 2000-03-21 Ericsson Inc. Systems and methods for sharing reference frequency signals within a wireless mobile terminal between a wireless transceiver and a global positioning system receiver
DE69707872T2 (de) * 1997-09-22 2002-04-25 Alcatel, Paris Verfahren und Vorrichtung zur Bestimmung eines Taktfehlers in einem Mehrträgerübertragungssystem
US5987016A (en) * 1997-11-04 1999-11-16 Motorola, Inc. Method and apparatus for tracking a communication signal in a wireless communication system
US6044074A (en) 1997-11-10 2000-03-28 Qualcomm Incorporated Rapid signal acquisition and synchronization for access transmissions
US6965974B1 (en) 1997-11-14 2005-11-15 Agere Systems Inc. Dynamic partitioning of memory banks among multiple agents
US6266751B1 (en) 1997-11-14 2001-07-24 Agere Systems Guardin Corp. Continuously sliding window method and apparatus for sharing single-ported memory banks between two agents
US6107960A (en) * 1998-01-20 2000-08-22 Snaptrack, Inc. Reducing cross-interference in a combined GPS receiver and communication system
WO1999039258A1 (fr) * 1998-02-02 1999-08-05 Seiko Epson Corporation Dispositif portable de traitement de donnees
US5977909A (en) * 1998-03-13 1999-11-02 General Electric Company Method and apparatus for locating an object using reduced number of GPS satellite signals or with improved accuracy
US6252542B1 (en) * 1998-03-16 2001-06-26 Thomas V. Sikina Phased array antenna calibration system and method using array clusters
GB2335554B (en) 1998-03-18 2002-01-16 Roke Manor Research Radio synchronisation system
US6263034B1 (en) 1998-03-25 2001-07-17 Vitesse Semiconductor Corporation Circuit and technique for digital reduction of jitter transfer
US6002362A (en) 1998-04-20 1999-12-14 Caterpillar Inc. Apparatus and method for receiving position and control signals by a mobile machine
US5999124A (en) 1998-04-22 1999-12-07 Snaptrack, Inc, Satellite positioning system augmentation with wireless communication signals
US6104338A (en) * 1998-05-04 2000-08-15 Snaptrack, Inc. Method and apparatus for operating a satellite positioning system receiver
US6061018A (en) 1998-05-05 2000-05-09 Snaptrack, Inc. Method and system for using altitude information in a satellite positioning system
US6247088B1 (en) 1998-05-08 2001-06-12 Lexmark International, Inc. Bridgeless embedded PCI computer system using syncronous dynamic ram architecture
US5982324A (en) * 1998-05-14 1999-11-09 Nortel Networks Corporation Combining GPS with TOA/TDOA of cellular signals to locate terminal
US6178195B1 (en) * 1998-05-14 2001-01-23 Motorola, Inc. Method and apparatus for detecting spread spectrum signals using a signal from a secondary source
US6208291B1 (en) 1998-05-29 2001-03-27 Snaptrack, Inc. Highly parallel GPS correlator system and method
US6133873A (en) * 1998-06-03 2000-10-17 Krasner; Norman F. Method and apparatus for adaptively processing GPS signals in a GPS receiver
US6314308B1 (en) 1998-07-02 2001-11-06 Snaptrack, Inc. Method and apparatus for providing reserve power in a cellular telephone
US6313786B1 (en) 1998-07-02 2001-11-06 Snaptrack, Inc. Method and apparatus for measurement processing of satellite positioning system (SPS) signals
US6236354B1 (en) * 1998-07-02 2001-05-22 Snaptrack, Inc. Reducing satellite signal interference in a global positioning system receiver
JP2000047994A (ja) 1998-07-27 2000-02-18 Fujitsu Ltd 情報処理装置
US6184822B1 (en) 1998-08-24 2001-02-06 Novatel, Inc. Split C/A code receiver
US6327473B1 (en) 1998-09-08 2001-12-04 Qualcomm Incorporated Method and apparatus for increasing the sensitivity of a global positioning satellite receiver
JP3347086B2 (ja) * 1999-02-01 2002-11-20 シャープ株式会社 衛星放送受信ユニット
US6606349B1 (en) 1999-02-04 2003-08-12 Sirf Technology, Inc. Spread spectrum receiver performance improvement
US6448925B1 (en) 1999-02-04 2002-09-10 Conexant Systems, Inc. Jamming detection and blanking for GPS receivers
US6121923A (en) 1999-02-19 2000-09-19 Motorola, Inc. Fixed site and satellite data-aided GPS signal acquisition method and system
JP3895071B2 (ja) 1999-03-12 2007-03-22 インターナショナル・ビジネス・マシーンズ・コーポレーション バス・ブリッジ回路、情報処理システム、及びカードバス・コントローラ
US6480558B1 (en) 1999-03-17 2002-11-12 Ericsson Inc. Synchronization and cell search methods and apparatus for wireless communications
US6577271B1 (en) 1999-03-30 2003-06-10 Sirf Technology, Inc Signal detector employing coherent integration
US6765931B1 (en) 1999-04-13 2004-07-20 Broadcom Corporation Gateway with voice
US6608589B1 (en) * 1999-04-21 2003-08-19 The Johns Hopkins University Autonomous satellite navigation system
US6704348B2 (en) * 2001-05-18 2004-03-09 Global Locate, Inc. Method and apparatus for computing signal correlation at multiple resolutions
US6411892B1 (en) 2000-07-13 2002-06-25 Global Locate, Inc. Method and apparatus for locating mobile receivers using a wide area reference network for propagating ephemeris
US6829534B2 (en) * 1999-04-23 2004-12-07 Global Locate, Inc. Method and apparatus for performing timing synchronization
US6453237B1 (en) 1999-04-23 2002-09-17 Global Locate, Inc. Method and apparatus for locating and providing services to mobile devices
JP2000315186A (ja) 1999-05-06 2000-11-14 Hitachi Ltd 半導体装置
US6621855B1 (en) 1999-05-26 2003-09-16 Lockhead Martin Corporation Scalable spread-spectrum signal detection and acquisition processor
JP4342642B2 (ja) * 1999-07-13 2009-10-14 株式会社東芝 無線ユニット
US6763416B1 (en) 1999-07-29 2004-07-13 Micron Technology, Inc. Capturing read data
JP4326079B2 (ja) 1999-08-10 2009-09-02 本田技研工業株式会社 筒型電気二重層コンデンサ
US6421696B1 (en) 1999-08-17 2002-07-16 Advanced Micro Devices, Inc. System and method for high speed execution of Fast Fourier Transforms utilizing SIMD instructions on a general purpose processor
US6516021B1 (en) 1999-09-14 2003-02-04 The Aerospace Corporation Global positioning systems and inertial measuring unit ultratight coupling method
US6807241B1 (en) * 1999-09-15 2004-10-19 Lucent Technologies Inc. Method and apparatus for partial and course frequency offset estimation in a digital audio broadcasting (DAB) system
US6282231B1 (en) 1999-12-14 2001-08-28 Sirf Technology, Inc. Strong signal cancellation to enhance processing of weak spread spectrum signal
US6526322B1 (en) 1999-12-16 2003-02-25 Sirf Technology, Inc. Shared memory architecture in GPS signal processing
US6557065B1 (en) 1999-12-20 2003-04-29 Intel Corporation CPU expandability bus
US6480529B1 (en) 1999-12-21 2002-11-12 Qualcomm, Incorporated Programmable matched filter searcher for multiple pilot searching
EP1124179B1 (en) 2000-02-09 2007-10-17 Texas Instruments Incorporated An apparatus for signal synchronization between two clock domains
US6650694B1 (en) 2000-02-18 2003-11-18 Texas Instruments Incorporated Correlator co-processor for CDMA RAKE receiver operations
US6512803B2 (en) 2000-04-05 2003-01-28 Symmetricom, Inc. Global positioning system receiver capable of functioning in the presence of interference
US6788655B1 (en) 2000-04-18 2004-09-07 Sirf Technology, Inc. Personal communications device with ratio counter
US7885314B1 (en) 2000-05-02 2011-02-08 Kenneth Scott Walley Cancellation system and method for a wireless positioning system
US6684158B1 (en) * 2001-02-28 2004-01-27 Sirf Technology, Inc. Method for aiding a global positioning system
US6778136B2 (en) 2001-12-13 2004-08-17 Sirf Technology, Inc. Fast acquisition of GPS signal
US6389291B1 (en) * 2000-08-14 2002-05-14 Sirf Technology Multi-mode global positioning system for use with wireless networks
US6738713B2 (en) * 2000-05-26 2004-05-18 Parthus (Uk) Limited Positioning apparatus and method
WO2001097407A1 (en) * 2000-06-14 2001-12-20 Stephen Heppe Enhanced gnss receiver
US6636939B1 (en) 2000-06-29 2003-10-21 Intel Corporation Method and apparatus for processor bypass path to system memory
WO2002004975A1 (en) 2000-07-06 2002-01-17 Sirf Technology Inc Local area beacon system for position determination
WO2002013476A1 (en) * 2000-08-09 2002-02-14 Skybitz, Inc. System and method for fast code phase and carrier frequency acquisition in gps receiver
US7197305B2 (en) * 2000-08-24 2007-03-27 Sirf Technology, Inc. Apparatus for reducing auto-correlation or cross-correlation in weak CDMA signals
FR2814555B1 (fr) 2000-09-25 2003-02-28 Thomson Multimedia Sa Systeme et procede de gestion memoire de coherence de donnees et reseau multiprocesseur associe
ATE393496T1 (de) * 2000-10-10 2008-05-15 Nemerix Sa Elektronische schaltung und rf-empfänger mit energiesparsteuerung
US6417801B1 (en) 2000-11-17 2002-07-09 Global Locate, Inc. Method and apparatus for time-free processing of GPS signals
US6429814B1 (en) 2000-11-17 2002-08-06 Global Locate, Inc. Method and apparatus for enhancing a global positioning system with terrain model
ATE262238T1 (de) * 2000-12-07 2004-04-15 Motorola Inc Mehrzweigiger kommunikationsempfänger
JP3625187B2 (ja) * 2000-12-18 2005-03-02 シャープ株式会社 カード型無線通信装置及びそれを用いた無線通信システム
JP4622101B2 (ja) 2000-12-27 2011-02-02 ソニー株式会社 情報処理装置、情報処理装置の情報処理方法および情報処理システム
US6801778B2 (en) 2001-01-31 2004-10-05 Ericsson Inc. Efficient location of mobile radiotelephones using cellular and GPS information
US6583758B2 (en) 2001-02-22 2003-06-24 Motorola, Inc. Memory reduction method for a DSP-based GPS processor
US20020142783A1 (en) * 2001-03-28 2002-10-03 Yoldi Cesar Sanchez Reduced acquisition time for GPS cold and warm starts
JP3906913B2 (ja) * 2001-06-25 2007-04-18 ソニー株式会社 スペクトラム拡散信号復調方法および装置
US7111050B2 (en) 2001-08-02 2006-09-19 International Business Machines Corporation Private memory access in multi-node system
JP2003050272A (ja) * 2001-08-06 2003-02-21 Mitsubishi Heavy Ind Ltd 移動体の位置計測システムおよび位置計測用制御局
US6532251B1 (en) 2001-08-16 2003-03-11 Motorola, Inc. Data message bit synchronization and local time correction methods and architectures
US20030046492A1 (en) 2001-08-28 2003-03-06 International Business Machines Corporation, Armonk, New York Configurable memory array
US6662107B2 (en) 2001-10-30 2003-12-09 Sirf Technology, Inc. Calibrated real time clock for acquisition of GPS signals during low power operation
US6985811B2 (en) 2001-10-30 2006-01-10 Sirf Technology, Inc. Method and apparatus for real time clock (RTC) brownout detection
US20030104818A1 (en) * 2001-11-30 2003-06-05 Kotzin Michael D. Communications handset altitude determination in multi-level environments and methods therefor
US6806830B2 (en) 2001-12-31 2004-10-19 Texas Instruments Incorporated Electronic device precision location via local broadcast signals
US7054350B2 (en) 2001-12-06 2006-05-30 L3 Communications Corporation Method and system for acquiring pseudo-noise (PN) decade-code phase
WO2003060543A2 (en) 2002-01-15 2003-07-24 Accord Software & Systems Pvt.Ltd. Global positioning system receiver
US7398094B2 (en) 2002-01-16 2008-07-08 Kyocera Wireless Corp. Systems and methods for transmitting global positioning system information from a wireless communication system base station
US6745308B2 (en) 2002-02-19 2004-06-01 Ati Technologies, Inc. Method and system for bypassing memory controller components
AU2003219841A1 (en) * 2002-02-22 2003-09-09 Global Locate, Inc. Method and apparatus for compensating an oscillator in a location-enabled wireless device
US20040022094A1 (en) 2002-02-25 2004-02-05 Sivakumar Radhakrishnan Cache usage for concurrent multiple streams
JP4603267B2 (ja) 2002-04-12 2010-12-22 アルカテル−ルーセント 衛星測位システムの補強のためのシステムおよび方法
JP2006506832A (ja) 2002-05-17 2006-02-23 モトローラ・インコーポレイテッド 通信測位装置における周波数管理
TW581951B (en) 2002-06-07 2004-04-01 Mediatek Inc Method and architecture of digital signal processor using CPU to assist in querying parameter tables
US7076609B2 (en) 2002-09-20 2006-07-11 Intel Corporation Cache sharing for a chip multiprocessor or multiprocessing system
US6778135B2 (en) 2002-11-18 2004-08-17 Rf Micro Devices, Inc. GPS Receiver
US6816111B2 (en) * 2002-12-13 2004-11-09 Qualcomm Incorporated Calibration and correction system for satellite position location systems
US6710739B1 (en) 2003-01-03 2004-03-23 Northrop Grumman Corporation Dual redundant GPS anti-jam air vehicle navigation system architecture and method
US6784831B1 (en) 2003-05-05 2004-08-31 Tia Mobile, Inc. Method and apparatus for GPS signal receiving that employs a frequency-division-multiplexed phased array communication mechanism
US7239681B2 (en) 2003-05-09 2007-07-03 Hewlett-Packard Development Company, L.P. System and method for maintaining a stable synchronization state in a programmable clock synchronizer
US20050018795A1 (en) 2003-05-30 2005-01-27 Cmc Electronics Inc. Low cost, high integrity digital signal processing
KR20070012308A (ko) 2003-09-02 2007-01-25 서프 테크놀러지, 인코포레이티드 위성 위치 신호를 위한 신호 처리 시스템
US7546423B2 (en) 2003-09-02 2009-06-09 Sirf Technology, Inc. Signal processing system control method and apparatus
US8138972B2 (en) 2003-09-02 2012-03-20 Csr Technology Inc. Signal processing system for satellite positioning signals
WO2008024123A2 (en) 2005-10-28 2008-02-28 Sirf Technology, Inc. Global positioning system receiver timeline management
US7792650B2 (en) 2003-09-02 2010-09-07 Sirf Technology Inc. Edge-aligned ratio counter
US7822105B2 (en) 2003-09-02 2010-10-26 Sirf Technology, Inc. Cross-correlation removal of carrier wave jamming signals
FR2863714B1 (fr) 2003-12-16 2006-04-21 Cit Alcatel Dispositif de determination de position par filtrage de donnees d'integrite d'un systeme d'augmentation, pour un terminal mobile
US7623594B2 (en) 2005-02-28 2009-11-24 Delphi Technologies, Inc. Satellite receiver system
US20070046532A1 (en) 2005-08-31 2007-03-01 Motorola, Inc. Satellite positioning system aiding using a secondary satellite receiver
US7609203B2 (en) 2005-12-14 2009-10-27 Delphi Technologies, Inc. Method for ephemeris assisted global positioning
US20120198181A1 (en) * 2011-01-31 2012-08-02 Srinjoy Das System and Method for Managing a Memory as a Circular Buffer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8335248B2 (en) 2007-03-21 2012-12-18 Qualcomm Incorporated Fast square root algorithm for MIMO equalization
US8411732B2 (en) 2007-03-21 2013-04-02 Qualcomm Incorporated Fast square root algorithm for MIMO equalization

Also Published As

Publication number Publication date
US20150097728A1 (en) 2015-04-09
US9869770B2 (en) 2018-01-16
JP2007504771A (ja) 2007-03-01
US8947300B2 (en) 2015-02-03
US8593345B2 (en) 2013-11-26
US20110316741A1 (en) 2011-12-29
EP1664824B1 (en) 2015-01-14
WO2005022187A2 (en) 2005-03-10
JP2008058320A (ja) 2008-03-13
US20120313817A1 (en) 2012-12-13
WO2005047923A8 (en) 2005-07-28
KR20070019940A (ko) 2007-02-16
EP1680686A1 (en) 2006-07-19
EP1664824A2 (en) 2006-06-07
WO2005047923A2 (en) 2005-05-26
US8013787B2 (en) 2011-09-06
JP2007505292A (ja) 2007-03-08
US20090040103A1 (en) 2009-02-12
JP4658050B2 (ja) 2011-03-23
WO2005022187A3 (en) 2005-07-21
JP5011041B2 (ja) 2012-08-29

Similar Documents

Publication Publication Date Title
JP4658050B2 (ja) 衛星測位信号用の信号処理システム
US8138972B2 (en) Signal processing system for satellite positioning signals
JP5868878B2 (ja) Gnss受信機及び信号追跡回路及びシステム
JP3738271B2 (ja) Gps受信機とgps信号を処理する方法
US20230288574A1 (en) Modernized global navigation satellite system (gnss) receivers and commercially viable consumer grade gnss receivers
US6532251B1 (en) Data message bit synchronization and local time correction methods and architectures
JP2011504229A5 (ko)
US7471717B2 (en) Apparatus and method for acquiring spread-spectrum signals
KR19990064130A (ko) Gps신호를 처리하는 방법 및 gps수신기
KR101262426B1 (ko) Gps 수신기의 타임라인 관리
US7474261B2 (en) Radiolocalization receiver and signal processor
JP2003101422A (ja) マルチパス信号の作用を訂正するための手段を備える無線周波数信号受信器、および受信器を作動させる方法
JP2006038792A (ja) 衛星信号受信処理装置および衛星信号受信処理方法
KR100835483B1 (ko) 무선주파수의 수신 역학을 개선하는 장치를 갖는무선주파수 수신기
US6369753B1 (en) Host-independent monolithic integrated circuit for RF downconversion and digital signal processing of GPS signals
MX2008010827A (es) Metodo y aparto para busqueda de espacio de codigo en un receptor.
US7936846B2 (en) Low gate count sequential multitap correlator
JP5455542B2 (ja) Gps受信機とgps信号を処理する方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid