KR101147942B1 - Method and apparatus for code space search in a receiver - Google Patents

Method and apparatus for code space search in a receiver Download PDF

Info

Publication number
KR101147942B1
KR101147942B1 KR1020087024301A KR20087024301A KR101147942B1 KR 101147942 B1 KR101147942 B1 KR 101147942B1 KR 1020087024301 A KR1020087024301 A KR 1020087024301A KR 20087024301 A KR20087024301 A KR 20087024301A KR 101147942 B1 KR101147942 B1 KR 101147942B1
Authority
KR
South Korea
Prior art keywords
coherent
integration
memory
accelerator
search
Prior art date
Application number
KR1020087024301A
Other languages
Korean (ko)
Other versions
KR20080100840A (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 KR20080100840A publication Critical patent/KR20080100840A/en
Application granted granted Critical
Publication of KR101147942B1 publication Critical patent/KR101147942B1/en

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/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/30Acquisition or tracking or demodulation of signals transmitted by the system code related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W64/00Locating users or terminals or network equipment for network management purposes, e.g. mobility management
    • 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
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/7077Multi-step acquisition, e.g. multi-dwell, coarse-fine or validation
    • 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
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/7077Multi-step acquisition, e.g. multi-dwell, coarse-fine or validation
    • H04B1/70775Multi-dwell schemes, i.e. multiple accumulation times
    • 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
    • H04B1/7073Synchronisation aspects
    • H04B1/7075Synchronisation aspects with code phase acquisition
    • H04B1/708Parallel implementation
    • 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/70707Efficiency-related aspects
    • H04B2201/7071Efficiency-related aspects with dynamic control of receiver resources

Abstract

본 명세서에서는 수신된 신호의 코드 스페이스 검색을 구현하는 장치 및 방법이 설명된다. 코드 스페이스 검색은, 초기 적분 시간의 각 경계에서 동적으로 재구성 가능한 서브태스크를 수행하는 검색기 (220) 로 구현된다. 각각의 특정 서브태스크는, 초기 적분 시간 동안 수행되는 코히런트 적분 가설의 프로그래머블 구성을 말한다. 검색기는 메모리의 제 1 부분에 코히런트 적분 가설의 결과값을 저장한다. 검색 가속기 (250) 는 초기 적분 결과값에 대해 동작한다. 검색 가속기는 상이한 타이밍 가설의 각종 주파수 빈의 코히런트 적분을 수행할 수 있고, 코히런트 적분 결과값의 에너지 값을 발생시킬 수 있으며, 넌-코히런트 에너지 합계를 발생시킬 수 있다. 코히런트 적분의 에너지 값 및 넌-코히런트 에너지 합계는 메모리의 제 2 부분에 저장된다. 서브태스크를 재구성하고 가속기 동작의 성능은 검색 스페이스 면적에 있어서 유연성을 제공한다.

Figure R1020087024301

코드 스페이스 검색, 코히런트 적분 결과값, 코히런트 누산, 가설, 유연성

Described herein are apparatus and methods for implementing code space search of a received signal. Code space search is implemented with a searcher 220 that performs dynamically reconfigurable subtasks at each boundary of the initial integration time. Each particular subtask refers to a programmable construct of a coherent integration hypothesis that is performed during the initial integration time. The searcher stores the result of the coherent integration hypothesis in the first portion of the memory. Search accelerator 250 operates on the initial integration result. The search accelerator may perform coherent integration of various frequency bins of different timing hypotheses, generate energy values of the coherent integration result, and generate non-coherent energy sums. The energy value of the coherent integration and the non-coherent energy sum are stored in the second portion of the memory. Reconfiguring the subtask and the performance of the accelerator operation provide flexibility in search space area.

Figure R1020087024301

Code Space Search, Coherent Integral Result, Coherent Accumulation, Hypothesis, Flexibility

Description

수신기에서의 코드 스페이스 검색을 위한 방법 및 장치{METHOD AND APPARATUS FOR CODE SPACE SEARCH IN A RECEIVER}METHOD AND APPARATUS FOR CODE SPACE SEARCH IN A RECEIVER}

관련 출원에 대한 상호 참조Cross Reference to Related Application

본 출원은, 발명의 명칭이 "Long Coherent Integration Apparatus and Method for Signal Acquisition" 으로 2006 년 3 월 2 일자로 출원된 미국 가출원 제 60/779,172 호, 및 발명의 명칭이 "Method and Apparatus for Code Space Search in a Reciever" 로 2007 년 1 월 17 일자로 출원된 미국 가출원 제 60/885,523 호에 대해 우선권을 주장하며, 이들 모두는 본 발명의 양수인에게 양도되어 있고 여기서 참조로서 명백하게 포함된다.This application is directed to US Provisional Application No. 60 / 779,172, filed March 2, 2006, entitled "Long Coherent Integration Apparatus and Method for Signal Acquisition," and "Method and Apparatus for Code Space Search." in a Reciever ", filed Jan. 17, 2007, with priority to US Provisional Application No. 60 / 885,523, all of which are assigned to the assignee of the present invention and expressly incorporated herein by reference.

기술 배경Technical background

본 개시물은 무선 통신 디바이스의 위치 결정 (position location) 에 관한 것이다. 보다 상세하게, 본 개시물은 무선 통신 디바이스에서 코드 스페이스 검색을 위한 재구성 시스템에 관한 것이다.This disclosure relates to position location of a wireless communication device. More particularly, this disclosure relates to a reconfiguration system for code space search in a wireless communication device.

많은 무선 통신은 정보를 통신하기 위해 직접 시퀀스 확산 스펙트럼을 이용한다. 통상적으로, 신호를 확산시키는데 이용되는 코드들은 의사 랜덤 코드들이다. 통상적으로, 수신기는 국부적으로 발생된 코드와 확산 코드를 서로 관련 시킴으로써 언더라잉 (underlying) 정보를 검색한다.Many wireless communications use direct sequence spread spectrum to communicate information. Typically, the codes used to spread the signal are pseudo random codes. Typically, the receiver retrieves the underlying information by associating locally generated codes with spreading codes.

때때로, 수신기는 위치 결정을 수행하는데 이용될 수 있는 타이밍 기준을 확립하도록 코드와 연관된 타임 오프셋을 이용할 수 있다. 의사 랜덤 확산 신호로부터 확립된 타이밍에 기초하여 위치를 결정하는 것은, 다양한 위치 결정 시스템에서 수행된다. At times, the receiver may use a time offset associated with the code to establish a timing reference that can be used to perform position determination. Determining the position based on the timing established from the pseudo random spread signal is performed in various position determination systems.

예를 들어, GPS (Global Positioning System) 네비게이션 시스템은, 지구 주변의 궤도 내에 있는 위성들을 채택한다. 임의의 GPS 사용자는, 지구 어디에서든, 3 차원 위치, 속도 및 시각을 포함하는 정확한 네비게이션 정보를 얻을 수 있다. GPS 시스템은, 적도에 대하여 55°기울어지고 서로에 대하여 120°떨어진 3 개의 평면에서 26,600 킬로미터의 반경을 갖는 원형 궤도에 배치된 24 개의 위성들을 포함한다. 8 개의 위성들은 3 개의 궤도 경로들 각각 내에서 동일하게 떨어진다 . GPS 를 사용하는 위치 측정은 궤도를 그리는 위성들로부터 GPS 수신기로 GPS 신호 방송의 전파 지연 시간의 측정에 기초된다. 보통, 4 개의 위성들로부터의 신호 수신은 4 차원 (위도, 경도, 고도, 및 시간) 에서의 정확한 위치 결정을 필요로 한다. 일단, 수신기는 각각의 신호 전파 지연을 측정하고, 광속으로 각각의 지연을 증분시킴으로써 각각의 위성에 대한 범위가 계산된다. 그 다음에, 4 개의 알려지지 않은 적분 측정 범위 및 알려진 위성의 위치를 갖는 4 개의 식 세트를 풀어서 위치 및 시간을 찾는다. GPS 시스템의 정확한 성능은, 각각의 위성에 대한 탑재된 원자 클록의 수단 및 위성 클록 및 궤도 파라미터를 연속적으로 모니터링하고 보정하는 그라운드 추적국 (tracking station) 에 의해 유지 된다.For example, a GPS (Global Positioning System) navigation system employs satellites in orbit around the earth. Any GPS user can get accurate navigation information, including three-dimensional position, speed and vision, anywhere on the earth. The GPS system includes 24 satellites arranged in a circular orbit with a radius of 26,600 kilometers in three planes tilted 55 ° to the equator and 120 ° to each other. The eight satellites fall equally within each of the three orbital paths. Position measurement using GPS is based on the measurement of the propagation delay time of a GPS signal broadcast from orbiting satellites to a GPS receiver. Usually, signal reception from four satellites requires accurate positioning in four dimensions (latitude, longitude, altitude, and time). First, the receiver measures each signal propagation delay and calculates the range for each satellite by incrementing each delay with the speed of light. Then, a set of four equations with four unknown integral measurement ranges and known satellite positions are solved to find the position and time. The exact performance of the GPS system is maintained by means of onboard atomic clocks for each satellite and by a ground tracking station that continuously monitors and corrects satellite clocks and orbital parameters.

각각의 GPS 위성은 L-밴드 내에서 2 개의 직접-시퀀스-코딩된 확산 스펙트럼 신호를 송신한다. Ll 신호는 1.57542 GHz 의 캐리어 주파수에 있고, L2 신호는 1.2276 GHz 에 있다. L1 신호는, 직교 위상 (phase quadrature) 에서 변조된 2 개의 PSK (phase-shift keyed) 확산 스펙트럼 신호를 포함하는데, 이 2 개의 PSK 확산 스펙트럼 신호는 P-코드 신호 (엄밀하게는 P) 와 C/A-코드 신호 (대강/획득의 경우에는 C/A) 이다. L2 신호는 P-코드 신호만을 포함한다. P 및 C/A 코드는, 캐리어 상에서 변조되는 비트의 의사-랜덤 시퀀스 (또한, "칩" 으로 지칭됨) 를 반복한다. 시간 지연을 측정하는데 있어서 이들 코드의 클록-형 특성은 이 수신기에 의해 이용된다. 각각의 위성에 대한 코드는 유일무이하고, 그들이 모두 동일한 캐리어 주파수에 있더라도 수신기가 어느 위성이 주어진 코드를 송신하는지를 구별하는 것을 가능하게 한다. 또한, 각각의 캐리어에 대하여 변조된 것은, 네비게이션 계산에 필요한 시스템 상태 및 위성 궤도 파라미터에 대한 정보를 포함하는 50 비트/초 데이터 스트림이다. P-코드 신호는 암호화되어 일반적으로 상업용 및 개인 사용자들에게 이용가능하지 않다. C/A 신호는 모든 사용자들에게 이용 가능하다.Each GPS satellite transmits two direct-sequence-coded spread spectrum signals within the L-band. The Ll signal is at a carrier frequency of 1.57542 GHz and the L2 signal is at 1.2276 GHz. The L1 signal includes two phase-shift keyed (PSK) spread spectrum signals modulated in a phase quadrature, which is a P-code signal (strictly P) and C / A-code signal (C / A in the case of coarse / acquisition). The L2 signal includes only the P-code signal. P and C / A codes repeat a pseudo-random sequence (also referred to as a "chip") of bits that are modulated on a carrier. The clock-like nature of these codes is used by this receiver in measuring the time delay. The codes for each satellite are unique and allow the receiver to distinguish which satellite transmits a given code even if they are all on the same carrier frequency. Also modulated for each carrier is a 50 bit / second data stream containing information about system state and satellite orbital parameters required for navigation calculations. P-code signals are encrypted and generally not available to commercial and personal users. C / A signals are available to all users.

통상적으로, GPS 수신기에서 수행된 동작은 임의의 직접-시퀀스 확산 스펙트럼 수신기에서 수행된 동작들의 대부분이다. 의사-랜덤 코드 모듈레이션의 확산 효과는, 역확산으로 알려진 프로세스에서 시간-배열, 국부적으로 발생된 코드의 복사에 의해 그것을 다중화시킴으로써 각각의 신호로부터 제거되어야 한다. 적 절한 시간 배열, 또는 코드 지연이 수신기 스타트업에서 쉽게 알려지지 않기 때문에, 적절한 시간 배열, 또는 코드 지연은 GPS 수신기의 동작의 초기 "획득" 위상 동안 검색함으로써 결정되어야 한다. 일단 결정되면, 적절한 코드 시간-배열이 GPS 수신기 동작의 "추적" 위상 동안 유지된다.Typically, the operations performed at the GPS receiver are the majority of the operations performed at any direct-sequence spread spectrum receiver. The spreading effect of pseudo-random code modulation must be removed from each signal by multiplexing it by copying the time-arranged, locally generated code in a process known as despreading. Since an appropriate time arrangement, or code delay, is not easily known at receiver startup, an appropriate time arrangement, or code delay, should be determined by searching during the initial "acquisition" phase of operation of the GPS receiver. Once determined, the appropriate code time-array is maintained during the "tracking" phase of GPS receiver operation.

일단 수신된 신호가 역확산되면, 각각의 신호는 중간 캐리어 주파수에서 50 비트/초 PSK 신호를 구성한다. 이 신호의 정확한 주파수는, 위성과 단말기 유닛 사이의 상대적 이동에 의해 야기된 도플러 효과, 및 로컬 수신기 GPS 클록 기준 에러로 인해 확실치 않다. 또한, 보통 획득 이전에는 도플러 주파수가 알려지지 않기 때문에 초기 신호 획득시 이 도플러 주파수가 검색되어야 한다. 일단 도플러 주파수가 적절하게 결정되면, 캐리어 복조가 진행된다.Once the received signal is despread, each signal constitutes a 50 bit / second PSK signal at the intermediate carrier frequency. The exact frequency of this signal is uncertain due to the Doppler effect caused by the relative movement between the satellite and the terminal unit, and the local receiver GPS clock reference error. Also, since the Doppler frequency is usually unknown before acquisition, this Doppler frequency must be retrieved during initial signal acquisition. Once the Doppler frequency is properly determined, carrier demodulation proceeds.

캐리어 복조 이후에, 데이터 비트 타이밍은 비트 동기화 루프에 의해 유도되고, 마지막으로 데이터 스트림이 검출된다. 일단 4 개의 위성으로부터의 신호가 획득되고 폐쇄되고, 필요한 시간 지연 및 도플러 측정이 이루어지고, 충분한 개수 (GPS 시간 기준 및 궤도 파라미터를 결정하기에 충분한) 의 데이터 비트가 수신되면 네비게이션 계산이 착수될 수도 있다.After carrier demodulation, the data bit timing is derived by the bit synchronization loop, and finally the data stream is detected. Once the signals from the four satellites are acquired and closed, the required time delay and Doppler measurements are made, and navigation data may be undertaken once a sufficient number of data bits (sufficient to determine the GPS time reference and orbital parameters) are received. have.

위치 결정을 위한 GPS 시스템의 일 결점은 초기 신호 획득 위상을 위해 필요한 시간이 너무 길다는 것이다. 전술한 바와 같이, 4 개의 위성 신호가 추적되기 이전에, 위성 신호는 그 면적이 코드-위상 지연, 및 도플러 주파수 시프트인 2 차원 검색 "스페이스" 에서 검색되어야 한다. 통상적으로, 수신기 "cold start", 다수의 코드 지연 (약 2000) 이후의 경우에서와 같이 이전에 이 검색 스페 이스 내의 신호의 위치의 지식이 없으면, 도플러 주파수 (약 15) 가 획득되고 추적되는 각각의 위성에 대해 검색되어야 한다. 따라서, 각각의 신호에 대해 검색 스페이스에서의 최대 30,000 개의 위치가 시험되어야 한다. 통상적으로, 이러한 검색 공간 내의 신호 위치에 대한 사전 정보가 없으면, 수신기의 콜드 스타트 (cold start) 이후의 경우에서와 같이, 다수 (약 2000 개) 의 코드 지연 및 (약 15 개) 도플러 주파수가 획득 및 추적될 각 위성에 대해 검색되어야 한다. 통상적으로, 이들 위치는 5 내지 10 분이 걸릴 수 있는 프로세스에서 순차적으로 차례대로 시험된다. 수신 안테나의 시야 내에서 4 개의 위성의 아이덴티티 (즉, PN-코드) 가 알려지지 않으면, 획득 시간은 더 길어진다.One drawback of a GPS system for positioning is that the time required for the initial signal acquisition phase is too long. As mentioned above, before four satellite signals are tracked, the satellite signals must be searched in a two-dimensional search "space" whose area is code-phase delay, and Doppler frequency shift. Typically, the Doppler frequency (about 15) is obtained and tracked if there is no prior knowledge of the location of the signal within this search space as in the case of receiver "cold start", after a number of code delays (about 2000). Should be searched for satellites. Therefore, up to 30,000 positions in the search space must be tested for each signal. Typically, without prior information about the signal location in this search space, a number of (about 2000) code delays and (about 15) Doppler frequencies are obtained, as in the case after the cold start of the receiver. And for each satellite to be tracked. Typically, these locations are tested sequentially, in a process that can take 5 to 10 minutes. If the identity of the four satellites (ie, PN-code) is unknown within the field of view of the receiving antenna, the acquisition time is longer.

GPS 수신기가 이미 위성 신호를 획득한 경우 및 그 다음의 추적 모드에서는, 위치 결정 프로세스가 실질적으로 동시적이다. 그러나, 무선 단말기의 루틴 사용에 있어서, 사용자는 전력을 턴온하고 빠르게 동작을 시작한다. 긴급 통신이 의도되는 때가 이 경우일 수 있다. 이러한 상황에서, 고정 위치가 획득될 수 있기 이전에 GPS/무선 단말기 유닛에 의해 5 내지 10 분 GPS 위성 신호 획득 콜드-스타트와 연관된 시간 지연이 그 시스템의 응답 시간을 제한한다.In the case where the GPS receiver has already acquired satellite signals and in the following tracking mode, the positioning process is substantially simultaneous. However, in using the routine of the wireless terminal, the user turns on the power and starts operation quickly. This may be the case when emergency communication is intended. In this situation, the time delay associated with the GPS satellite signal acquisition cold-start by the GPS / wireless terminal unit before the fixed position can be obtained limits the response time of the system.

따라서, GPS 위성 신호를 획득하고, GPS/무선 단말기 유닛에서의 고정 위치를 제공하는데 요구되는 시간을 감소시키는 시스템 및 방법의 기술이 필요하다. Accordingly, there is a need for a system and method description that reduces the time required to acquire a GPS satellite signal and provide a fixed position in a GPS / wireless terminal unit.

개요summary

본 명세서에서는 수신된 신호의 코드 스페이스 검색을 구현하는 장치 및 방 법이 설명된다. 코드 스페이스 검색은, 초기 적분 시간의 각각의 경계에서 동적으로 재구성 가능한 서브태스크를 수행하는 검색기로서 구현된다. 각각의 특정 서브태스크는, 초기 적분 시간 동안 수행되는 코히런트 적분 가설의 프로그래머블 구성을 말한다. 검색기는, 코히런트 적분 가설의 결과값을 메모리의 제 1 부분에 저장한다. 검색 가속기는 초기 적분 결과값을 동작한다. 검색 가속기는, 상이한 타이밍 가설의 각종 주파수 빈의 코히런트 적분을 수행할 수 있고, 코히런트 적분 결과값의 에너지 값을 발생시킬 수 있으며, 넌-코히런트 에너지 합계를 발생시킬 수 있다. 코히런트 적분의 에너지 값 및 넌-코히런트 에너지 합계는 메모리의 제 2 부분에 저장된다. 서브태스크를 재구성하고 가속기를 동작하는 성능은 검색 스페이스 면적에 유연성을 제공한다.Described herein is an apparatus and method for implementing code space search of a received signal. Code space search is implemented as a searcher that performs dynamically reconfigurable subtasks at each boundary of the initial integration time. Each particular subtask refers to a programmable construct of a coherent integration hypothesis that is performed during the initial integration time. The searcher stores the result of the coherent integration hypothesis in a first portion of the memory. The search accelerator operates the initial integration result. The search accelerator can perform coherent integration of various frequency bins of different timing hypotheses, generate energy values of the coherent integration result, and generate non-coherent energy sums. The energy value of the coherent integration and the non-coherent energy sum are stored in the second portion of the memory. The ability to reconfigure subtasks and operate accelerators provides flexibility in search space area.

본 발명의 양태는, 코드 스페이스 검색을 위한 장치를 포함한다. 장치는, 메모리, 복수의 프로그래머블 태스크를 수행하고 각각의 프로그래머블 태스크에 대해 초기 적분 시간 동안 획득된 복수의 코히런트 적분 결과값을 발생시키도록 구성된 검색기, 선택 가능한 검색 모드에 의해 결정된 하나 이상의 코히런트 적분 길이 및 주파수 오프셋에 기초하여 검색기의 적분 결과값의 적어도 하나의 코히런트 누산을 결정하도록 구성된 가속기, 및 적분 결과값을 검색기로부터 메모리로 전송하도록 구성되고 적분 결과값을 메모리로부터 가속기로 전송하도록 구성된 데이터 이동기를 포함한다.Aspects of the present invention include an apparatus for code space search. The apparatus includes a memory, a searcher configured to perform a plurality of programmable tasks and generate a plurality of coherent integration results obtained during an initial integration time for each programmable task, one or more coherent integrations determined by a selectable search mode. An accelerator configured to determine at least one coherent accumulation of an integral result of the searcher based on the length and frequency offset, and data configured to transfer the integral result from the searcher to the memory and to transmit the integral result from the memory to the accelerator. Include a mover.

본 발명의 양태는 코드 스페이스 검색을 위한 장치를 포함한다. 장치는, 코드 스페이스 검색에 할당된 부분을 갖는 메모리로서, 이 부분은 활성 프로그래머 블 검색 모드에 의존하는 상기 메모리, 및 메모리에 커플링된 집적 회로를 포함한다. 집적 회로는, 복수의 프로그래머블 검색 태스크들 각각에 대한 초기 적분 주기 동안 결정된 복수의 코히런트 적분 결과값을 발생시키도록 구성된 검색기, 활성 프로그래머블 검색 모드에 의해 결정된 코히런트 적분 길이 및 주파수 가설을 통해 코히런트 적분 결과값의 코히런트 누산을 결정하도록 구성된 가속기, 및 검색기와 메모리 사이, 및 가속기와 메모리 사이에서 DMA 데이터 전송을 수행하도록 구성된 데이터 이동기를 포함한다.Aspects of the present invention include an apparatus for code space search. The apparatus is a memory having a portion allocated for code space searching, the portion including the memory relying on an active programmable search mode, and an integrated circuit coupled to the memory. The integrated circuit may be configured to generate a plurality of coherent integration results determined during an initial integration period for each of the plurality of programmable search tasks, the coherent through a coherent integration length and frequency hypothesis determined by an active programmable search mode. An accelerator configured to determine a coherent accumulation of integration result values, and a data mover configured to perform DMA data transfer between the searcher and the memory and between the accelerator and the memory.

본 발명의 양태는 코드 스페이스 검색의 방법을 포함한다. 방법은, 수신된 무선 신호의 복소 샘플을 캡쳐하는 단계, 복수의 코드 스페이스 검색 태스크를 구성하는 단계, 초기 적분 시간 동안 획득된 복수의 코히런트 적분 결과값을 발생시키도록 코드 스페이스 검색 태스크들 각각을 실행시키는 단계, 및 복수의 코히런트 적분 결과값의 코히런트 누산을 결정하는 단계로서, 프로그래머블 코드 스페이스 검색 모드에 기초하여 누산 길이 및 주파수 오프셋이 코히런트 누산에 연관되는, 상기 코히런트 누산을 결정하는 단계를 포함한다.Aspects of the present invention include a method of code space search. The method includes capturing a complex sample of a received wireless signal, configuring a plurality of code space search tasks, and generating each of the code space search tasks to generate a plurality of coherent integration result values obtained during the initial integration time. Executing and determining a coherent accumulation of a plurality of coherent integration result values, wherein the accumulation length and frequency offset are associated with the coherent accumulation based on a programmable code space search mode. Steps.

본 발명의 양태는 코드 스페이스 검색 방법을 포함한다. 방법은, 수신된 무선 신호의 복소 샘플을 캡쳐하는 단계, 복수의 코드 스페이스 가설에 대응하는 복수의 코히런트 누산 결과값을 발생시키도록 복수의 코드 스페이스 검색 태스크들 각각을 실행시키는 단계, 복수의 코히런트 적분 결과값을 메모리에 저장하는 단계; 적분 길이에 대응하는 다수의 코히런트 적분 결과값을 메모리로부터 검색하는 단계, 및 다수의 코히런트 적분 결과값의 코히런트 누산을 결정하는 단계를 포함한 다.Aspects of the present invention include a code space search method. The method includes capturing a complex sample of a received wireless signal, executing each of the plurality of code space search tasks to generate a plurality of coherent accumulation results corresponding to the plurality of code space hypotheses, the plurality of cohes Storing the runt integration result in a memory; Retrieving a plurality of coherent integration result values corresponding to the integration length from memory, and determining a coherent accumulation of the plurality of coherent integration result values.

도면의 간단한 설명Brief description of the drawings

본 발명의 특성, 본질, 및 이점은 도면과 함께 취해졌을 때 아래에 진술된 상세한 설명으로부터 더 명백하게 될 것이며, 도면에서, 동일한 참조 부호는 동일한 대상을 나타낸다.The nature, nature, and advantages of the present invention will become more apparent from the following detailed description when taken in conjunction with the drawings, in which like reference characters designate the same objects.

도 1 은 위치 결정을 지원하는 무선 통신 시스템의 실시형태의 간략화된 블록도이다.1 is a simplified block diagram of an embodiment of a wireless communication system that supports location determination.

도 2 는 코드 스페이스 검색을 구현하는 시스템을 처리하는 위치 결정 신호의 실시형태의 간략화된 기능 블록도이다.2 is a simplified functional block diagram of an embodiment of a positioning signal for processing a system implementing code space search.

도 3 은 코드 스페이스 검색을 구현하는 수신기에서 데이터 흐름의 실시형태를 설명하는 간략화된 기능 블록도이다.3 is a simplified functional block diagram illustrating an embodiment of a data flow at a receiver implementing code space search.

도 4 는 코드 스페이스 검색 방법의 실시형태의 흐름도이다.4 is a flowchart of an embodiment of a code space search method.

도 5 는 코드 스페이스 검색을 구현하는 위치 결정 신호 프로세싱 시스템의 실시형태의 간략화된 기능 블록도이다.5 is a simplified functional block diagram of an embodiment of a position determination signal processing system implementing code space search.

상세한 설명details

본 명세서에서는 무선 통신 환경에서 신호를 획득하고 추적하는 동적으로 재구성 가능한 코드 스페이스 검색 시스템 및 방법이 설명된다. 재구성 가능한 시스템은, 하나 이상의 검색 증분량을 통해 샘플을 저장하도록 구성된 샘플 메모리 를 포함한다.DETAILED DESCRIPTION Herein are described dynamically reconfigurable code space retrieval systems and methods for acquiring and tracking signals in a wireless communication environment. The reconfigurable system includes a sample memory configured to store samples via one or more search increments.

재구성 가능한 검색기는 코드 스페이스 검색 및 코히런트 적분을 위해 저장된 샘플을 엑세스한다. 재구성 가능한 검색기는 미리 결정된 다수의 채널을 중 임의의 하나를 지원하도록 동적으로 구성될 수 있는 다중 상관기를 포함한다. 검색기의 구성 및 채널에 대한 상관기의 할당은 검색기 증분마다 업데이트될 수 있다.The reconfigurable searcher accesses the stored samples for code space search and coherent integration. The reconfigurable searcher includes multiple correlators that can be dynamically configured to support any one of a predetermined number of channels. The configuration of the searcher and the assignment of correlators to channels can be updated every searcher increment.

가속기는 대응하는 채널 할당들 각각에 대해 상관 결과값을 발생시킬 수 있고, 검색기는 그 결과값을 스토리지에 기록할 수 있다. 스토리지의 크기는 원하는 코히런트 적분 시간에 기초하여 동적으로 재할당될 수 있다.The accelerator can generate a correlation result for each of the corresponding channel assignments, and the retriever can write the result to storage. The size of the storage can be dynamically reallocated based on the desired coherent integration time.

데이터 이동기는 저장 디바이스를 엑세스하고 검색기 결과값을 샘플 버퍼로 전송한다. 샘플 서버는, 제 1 샘플 버퍼부 및 제 2 샘플 버퍼부를 갖는 이중 버퍼로 구성될 수 있다. 데이터 이동기는 제 1 또는 제 2 버퍼부 중 하나에 교대로 기록하여, 기록되지 않은 버퍼부의 판독을 동시에 허용한다. 제 1 및 제 2 샘플 버퍼부의 크기는 코히런트 적분 시간일 수 있는 초기 적분 시간에 대응하도록 동적으로 구성될 수 있다.The data mover accesses the storage device and sends the retriever results to the sample buffer. The sample server may be configured as a double buffer having a first sample buffer unit and a second sample buffer unit. The data mover alternately writes to either the first or second buffer section, allowing simultaneous reading of the unrecorded buffer section. The size of the first and second sample buffer portions can be dynamically configured to correspond to an initial integration time, which can be a coherent integration time.

가속기는 샘플 버퍼로부터 상관 결과값을 엑세스하고, 샘플 버퍼로의 기록의 타이밍과 상보적인 방식으로 제 1 및 제 2 샘플 부분을 교대로 엑세스한다. 가속기는, 동적으로 조정될 수 있는 초기 적분 시간 동안 검색기 결과값의 코히런트 누산값을 결정할 수 있다. 초기 적분 시간의 길이는 데이터를 변조하는 시간 이상으로 확장될 수 있다. 예를 들어, 에지 전이 및 수신 데이터를 추적함으로 써 초기 적분 시간은 20 밀리초 데이터 변조 주기 이상으로 확장될 수 있다. 가속기는, 에지 전이의 위치 및 언더라잉 데이터의 값에 기초하여 상관 결과값을 선택적으로 변환할 수 있다.The accelerator accesses the correlation result from the sample buffer and alternately accesses the first and second sample portions in a manner complementary to the timing of writing to the sample buffer. The accelerator can determine the coherent accumulation of the searcher results for an initial integration time that can be dynamically adjusted. The length of the initial integration time may extend beyond the time of modulating the data. For example, by tracking edge transitions and received data, the initial integration time can be extended beyond 20 millisecond data modulation periods. The accelerator may selectively transform the correlation result based on the position of the edge transition and the value of the underlying data.

가속기는 코히런트 누산 결과값들 각각에 대해 에너지 또는 규모 (magnitude) 를 발생시킬 수 있다. 가속기는 에너지 결과값을 에너지 버퍼에 기록한다. 또한, 에너지 버퍼는 제 1 및 제 2 에너지 버퍼 부분을 갖는 이중 버퍼로서 구성될 수 있다. 가속기는 에너지 버퍼의 제 1 부분에 기록할 수 있고, 동시에 에너지 버퍼의 제 2 부분으로부터 판독할 수 있다.The accelerator may generate energy or magnitude for each of the coherent accumulation results. The accelerator writes the energy result to the energy buffer. In addition, the energy buffer may be configured as a double buffer having first and second energy buffer portions. The accelerator can write to the first portion of the energy buffer and simultaneously read from the second portion of the energy buffer.

또한, 데이터 이동기는 에너지 버퍼를 판독하고 에너지 버퍼에 기록하도록 구성될 수 있다. 데이터 이동기는 에너지 버퍼로부터의 에너지 결과값을 판독하고 이를 스토리지에 기록할 수 있고, 스토리지로부터 에너지 버퍼로 이전 에너지 결과값을 판독할 수 있다.The data mover may also be configured to read and write to the energy buffer. The data mover can read the energy result from the energy buffer and write it to storage, and read the previous energy result from the storage into the energy buffer.

가속기는, 다중 에너지 결과값을 합산함으로써 넌-코히런트 적분을 결정할 수 있다. 그 결과값은 에너지 버퍼에서 버퍼링되고, 데이터 이동기는 넌-코히런트 합계를 스토리지에 저장할 수 있다.The accelerator can determine the non-coherent integration by summing multiple energy results. The result is buffered in an energy buffer, and the data mover can store non-coherent sums in storage.

도 1 은 위치 결정을 지원하는 무선 통신 시스템 (100) 의 실시형태의 간략화된 블록도이다.1 is a simplified block diagram of an embodiment of a wireless communication system 100 that supports location determination.

무선 통신 시스템 (100) 은, 사용자 단말기 (110) 와의 통신에 있을 수 있는 하나 이상의 지상파 엘리먼트를 포함할 수 있다. 예를 들어, 사용자 단말기 (110) 는 하나 이상의 통신 표준에 따라 동작하도록 구성된 무선 전화기일 수 있 다. 하나 이상의 통신 표준은, 예를 들어, GSM, WCDMA, 및 CDMA2000 을 포함할 수 있다. 사용자 단말기 (110) 는 휴대용 유닛, 모바일 유닛, 또는 고정식 유닛일 수 있다. 또한, 사용자 단말기 (110) 는 모바일 유닛, 모바일 단말기, 이동국, 사용자 장비, 휴대용 기기, 전화기 등으로 지칭될 수도 있다.The wireless communication system 100 may include one or more terrestrial elements that may be in communication with the user terminal 110. For example, user terminal 110 may be a wireless telephone configured to operate in accordance with one or more communication standards. One or more communication standards may include, for example, GSM, WCDMA, and CDMA2000. The user terminal 110 can be a portable unit, a mobile unit, or a stationary unit. User terminal 110 may also be referred to as a mobile unit, mobile terminal, mobile station, user equipment, portable device, telephone, or the like.

통상적으로, 사용자 단말기 (110) 는 본 명세서에서 분할된 셀룰러 타워로 도시된 하나 이상의 기지국 (120a, 120b) 과 통신한다. 통상적으로, 사용자 단말기 (110) 는 기지국, 예를 들어, 사용자 단말기 (110) 내의 수신기에서 가장 강한 신호 세기를 제공하는 120b 과 통신한다. 도 1 에는 편리함과 명확함을 위해 2 개의 기지국들 (120a, 120b), 및 하나의 사용자 단말기 (110) 가 도시된다. 통상적으로, 시스템은 다수의 기지국을 갖고 하나 이상의 사용자 단말기를 지원할 수 있다. Typically, user terminal 110 communicates with one or more base stations 120a, 120b, shown herein as a split cellular tower. Typically, user terminal 110 communicates with 120b, which provides the strongest signal strength at a base station, for example, a receiver within user terminal 110. 1, two base stations 120a, 120b, and one user terminal 110 are shown for convenience and clarity. Typically, a system may have multiple base stations and support one or more user terminals.

사용자 단말기 (110) 는, 하나 이상의 신호 소스로부터 수신된 위치 결정 신호에 기초하여 부분적으로 그 위치를 결정할 수 있다. 신호 소스는, GPS 와 같은 위성 기반 위치 결정 시스템의 일부일 수 있는 하나 이상의 위성 (130) 을 포함할 수 있다. 또한, 신호 소스는 하나 이상의 기지국들 (120a 또는 120b) 을 포함할 수 있다.The user terminal 110 may determine its location in part based on the positioning signal received from one or more signal sources. The signal source may include one or more satellites 130, which may be part of a satellite based positioning system such as GPS. In addition, the signal source may include one or more base stations 120a or 120b.

사용자 단말기 (110) 는, 각각의 위치 결정 신호 소스에 대한 의사 범위를 결정함으로써 부분적으로 그 위치를 결정할 수 있다. 각각의 위치 결정 신호 소스는 의사 잡음 코드를 사용하여 확산되는 위치 결정 신호를 송신하고, 사용자 단말기는 수신된 의사 잡음 신호의 위상을 결정하도록 수신된 신호와 국부적으로 발생된 의사 잡음 코드를 서로 관련시킴으로써 부분적으로 의사 범위를 결정할 수 있다. 사용자 단말기 (110) 는, 부분적으로 수신된 의사 잡음 신호의 위상에 기초하여 시간 또는 거리를 서로 관련시키는 의사 범위를 결정할 수 있다.User terminal 110 may determine its location in part by determining a pseudo range for each positioning signal source. Each positioning signal source transmits a spreading positioning signal using a pseudo noise code, and the user terminal correlates the received signal with the locally generated pseudo noise code to determine the phase of the received pseudo noise signal. Partial decision can be made. User terminal 110 may determine a pseudo range that correlates time or distance to each other based on the phase of the partially received pseudo noise signal.

기지국들 (120a 및 120b) 각각은, 적합한 기지국들 (120a 및 120b) 로부터/로 통신 신호를 라우팅하는 기지국 제어국 (Base Station Controller: BSC; 150) 에 커플링될 수 있다. BSC (140) 는, 사용자 단말기 (110) 와 PSTN (Public Switched Telephone Network; 170) 사이의 인터페이스로서 동작하도록 구성될 수 있는 모바일 스위칭 센터 (Mobile Switching Center: MSC; 150) 에 커플링될 수 있다. 그러므로, 또한 MSC (150) 는 PSTN (170) 에 커플링된다. 또한, MSC (150) 는 다른 통신 시스템과 인터-시스템 핸드오프를 조정하도록 (coordinate) 구성될 수 있다.Each of the base stations 120a and 120b may be coupled to a base station controller (BSC) 150 that routes communications signals to and from the appropriate base stations 120a and 120b. The BSC 140 may be coupled to a Mobile Switching Center (MSC) 150, which may be configured to operate as an interface between the user terminal 110 and the Public Switched Telephone Network (PSTN) 170. Therefore, MSC 150 is also coupled to PSTN 170. In addition, MSC 150 may be configured to coordinate inter-system handoff with other communication systems.

또한, PLC (Position Location Center; 160) 는 BSC (140) 에 커플링될 수 있다. 예를 들어, PLC (160) 는 위치 결정 시스템 (100) 에서 기지국들 (120a 및 120b) 의 각각의 위치와 같은 위치 결정 정보를 저장하도록 구성될 수 있다. 일 실시형태에서, PLC (160) 는 사용자 단말기 (110) 에 정보를 제공하도록 구성될 수 있어서, 사용자 단말기 (110) 는 신호 소스를 다중화하는데 부분적으로 의사 범위에 기초하여 그 위치를 결정할 수 있고, 여기서 의사 범위는 상대적인 도착 시간 (time-of-arrival) 값일 수 있다. 다른 실시형태에서, PLC (160) 는 사용자 단말기 (110) 에 의해 제공된 의사 범위 정보에 기초하여 사용자 단말기 (110) 의 위치를 결정하도록 구성될 수 있다. 후자의 실시형태에서, PLC (160) 내의 네 트워크 서버 (미도시) 는 사용자 단말기 (110) 로부터 프로세싱을 오프로딩하기 위해 위치 결정 결정을 수행할 수 있다. In addition, a Position Location Center (PLC) 160 may be coupled to the BSC 140. For example, PLC 160 may be configured to store location information such as the location of each of base stations 120a and 120b in location system 100. In one embodiment, PLC 160 may be configured to provide information to user terminal 110 such that user terminal 110 may determine its location based in part on pseudo range in multiplexing signal sources, Here, the pseudo range may be a relative time-of-arrival value. In another embodiment, the PLC 160 may be configured to determine the location of the user terminal 110 based on the pseudo range information provided by the user terminal 110. In the latter embodiment, a network server (not shown) in PLC 160 may perform location determination to offload processing from user terminal 110.

PLC (160) 는 BSC (140) 를 통해서 기지국들 (120a 및 120b) 에 명령하고, 위치 결정 신호를 발생시키도록 구성될 수 있다. 다른 실시형태에서, 기지국들 (120a 및 120b) 은 위치 결정 신호를 주기적으로 발생시키도록 구성될 수 있다.PLC 160 may be configured to instruct base stations 120a and 120b via BSC 140 and generate a positioning signal. In another embodiment, the base stations 120a and 120b may be configured to periodically generate a positioning signal.

PLC (160) 함께 사용자 단말기 (110) 는 몇몇 위치 결정 기술들 중 임의의 하나를 이용하여 그 위치를 결정할 수 있다. 사용자 단말기 (110) 또는 PLC (160) 는, 의사 범위 값을 발생시키는데 이용되는 신호 소스에 부분적으로 기초하여 기술을 선택할 수 있다. 예를 들어, 사용자 단말기 (110) 는, TOA (time of arrival), TDOA (time difference of arrival), AFLT (advanced forward link trilateration) 또는 일부 다른 위치 결정 기술을 사용할 수도 있다. 사용자 단말기 (110) 또는 PLC (160) 는 GPS 에 기초되고, 하이브리드 위치 결정 시스템과 같은 지상파 기반 비콘을 갖는 GPS 신호를 증대시키고, 지상파 기반 비콘으로부터 유도된 의사 범위 값에 기초되는 위치 결정 기술을 구현함으로써 사용자 단말기 (110) 의 위치를 결정할 수 있다. User terminal 110 together with PLC 160 may determine its location using any one of several positioning techniques. The user terminal 110 or the PLC 160 can select a technique based in part on the signal source used to generate the pseudo range value. For example, user terminal 110 may use time of arrival (TOA), time difference of arrival (TDOA), advanced forward link trilateration (AFLT), or some other positioning technique. The user terminal 110 or PLC 160 is based on GPS, augments GPS signals with terrestrial based beacons such as hybrid positioning systems, and implements positioning techniques based on pseudo range values derived from terrestrial based beacons. As a result, the position of the user terminal 110 can be determined.

파워업과 같은 제 1 고정을 발생시키기 위해서, GPS 위성 신호를 처리하도록 구성된 사용자 단말기 (110) 내의 수신기는 필요한 위성 신호를 수신하기 위해서 모든 위성 PN-코드 시퀀스, 모든 PN-코드 위상 가설, 및 모든 도플러 주파수 오프셋 전체에 걸쳐 검색할 필요가 있다. 이는 24 개의 위성, 미리 결정된 범위의 도플러 주파수, 및 1023 개의 코드 가설을 통한 검색을 평균한다 (통상적으로, 이것은 2046 개의 이산 하프-칩 코드 시프트 및 계산으로 구현됨). 초기 고정 위치를 결정한 이후에, 사용자 단말기 (110) 는, 초기 고정 위치를 결정하는데 이용되는 위성 신호에 기초되는 서브셋으로 검색된 주파수 및 코드 위상의 개수를 제한할 수 있다. 사용자 단말기 (110) 는 검색된 이산 위성 PN-코드 시퀀스의 개수를 24 에서 통상적으로 8 개인 실제로 가시적인 위성들 세트로 감소시킬 수 있으나, 겨우 4 개로 감소시킬 수도 있다. In order to generate a first fixation, such as power up, a receiver in user terminal 110 configured to process a GPS satellite signal requires all satellite PN-code sequences, all PN-code phase hypotheses, and all Doppler to receive the necessary satellite signals. You need to search across the frequency offset. This averages the search through 24 satellites, a predetermined range of Doppler frequencies, and 1023 code hypotheses (typically, this is implemented with 2046 discrete half-chip code shifts and calculations). After determining the initial fixed position, user terminal 110 may limit the number of frequencies and code phases retrieved to a subset based on the satellite signal used to determine the initial fixed position. User terminal 110 may reduce the number of retrieved discrete satellite PN-code sequences from 24 to typically eight sets of visible satellites, but may only reduce to four.

그러나, GPS 위성 정보를 사용하는 것만으로 위치 고정이 가능하지 않은 경우, 사용자 단말기 (110) 는 하나 이상의 지상파 비콘에 대해 하나 이상의 PN-코드 시퀀스를 검색할 필요가 있을 수도 있다. 통상적으로, 지상파 비콘에 의해 이용된 코드 시퀀스는 GPS 위성에 의해 이용된 코드 시퀀스와 구별된다. 또한, 통상적으로 위치 결정 신호에 기초된 지상파의 시간 라인 및 프로세싱은 GPS 의 시간 라인 및 프로세싱과도 구별된다. However, if location fixation is not possible simply by using GPS satellite information, the user terminal 110 may need to retrieve one or more PN-code sequences for one or more terrestrial beacons. Typically, the code sequence used by terrestrial beacons is distinct from the code sequence used by GPS satellites. In addition, the time line and processing of terrestrial waves, which are typically based on positioning signals, are also distinguished from the time line and processing of GPS.

사용자 단말기 (110) 는 재구성 가능한 수신 신호 프로세서를 포함할 수 있다. 재구성 가능한 신호 프로세서는 다중의 독립적으로 재구성 가능한 리소스를 포함할 수 있고, 다중의 적분 시간을 지원할 수 있다. 독립적으로 재구성 가능한 리소스는, 재구성 가능한 시간 동안 선택된 코드 스페이스부의 검색을 수행하도록 구성될 수 있다. 검색 결과는 재구성 가능한 적분 시간 동안 코히런트하게 적분될 수 있고, 또한 적분 결과는 넌-코히런트하게 적분될 수 있다. The user terminal 110 can include a reconfigurable receive signal processor. The reconfigurable signal processor can include multiple independently reconfigurable resources and can support multiple integration times. The independently reconfigurable resource may be configured to perform a search of the selected code space portion for a reconfigurable time. The search results can be integrated coherently for a reconfigurable integration time, and the integration results can also be integrated non-coherently.

사용자 단말기 (110) 에서 재구성 가능한 수신 신호 프로세서의 구현은, 사용자 단말기 (110) 가 현재 프로세싱 상태에 효과적인 방식으로 리소스를 전용하는 것을 허용한다. 예를 들어, 초기 위치 고정시, 사용자 단말기 (110) 는 재구성 가능한 수신 신호 프로세서를 구성할 수 있어, 위치 결정 신호 소스의 아이덴티티를 빠르게 식별하도록 위치 결정 소스의 최대 개수를 거쳐 검색하게 된다. 예를 들어, 사용자 단말기 (110) 는 우선 미리 결정된 최대 개수의 GPS 위성 전체를 검색하여, 어느 GPS 위성이 수신된 신호를 송신했는지를 식별한다. 일단, 사용자 단말기 (110) 가 수신된 신호를 일으키는 GPS 위성의 신호를 결정하면, 사용자 단말기 (110) 는 식별된 위성 신호의 더욱 포커싱된 프로세싱을 허용하도록 수신 신호 프로세서를 재구성할 수 있다. 예를 들어, 사용자 단말기 (110) 는 수신 감도 뿐만 아니라 주파수 감도를 개선하도록 더 긴 코히런트 적분 시간을 구성할 수 있다. The implementation of the reconfigurable receive signal processor at the user terminal 110 allows the user terminal 110 to dedicate resources in a manner that is effective for the current processing state. For example, upon initial position fixation, the user terminal 110 may configure a reconfigurable receive signal processor to retrieve through the maximum number of positioning sources to quickly identify the identity of the positioning signal source. For example, the user terminal 110 first searches all of the predetermined maximum number of GPS satellites to identify which GPS satellites have transmitted the received signal. Once user terminal 110 determines the signal of the GPS satellite that is causing the received signal, user terminal 110 may reconfigure the received signal processor to allow more focused processing of the identified satellite signal. For example, user terminal 110 may configure a longer coherent integration time to improve the reception sensitivity as well as the frequency sensitivity.

도 2 는 코드 스페이스 검색을 구현하는 재구성 가능한 위치 결정 신호 프로세싱 시스템 (200) 의 실시형태의 간략화된 기능 블록도이다. 신호 프로세싱 시스템 (200) 은 검색기 (220) 와 커플링된 샘플 서버 (210) 를 포함한다. 검색기 (220) 는 메모리 (240) 에 저장되는 결과를 발생시킨다. 가속기 (250) 는 메모리 (240) 내의 검색기 결과를 엑세스하고, 추가 신호 프로세싱을 수행한다.2 is a simplified functional block diagram of an embodiment of a reconfigurable position determination signal processing system 200 that implements code space search. The signal processing system 200 includes a sample server 210 coupled with the searcher 220. Searcher 220 generates a result that is stored in memory 240. Accelerator 250 accesses searcher results in memory 240 and performs additional signal processing.

데이터 이동기 (230) 는 검색기 (220) 로부터 메모리 (240) 내의 위치로 결과를 기록한다. 또한, 데이터 이동기 (230) 는, 가속기 (250) 와 연관된 메모리 (240) 와 버퍼 (260) 사이의 판독 및 기록 동작을 제어한다. 버퍼 (260) 는 샘플 버퍼 (262) 및 에너지 버퍼 (264) 로 분할될 수 있다. 샘플 버퍼 (262) 및 에너지 버퍼 (264) 각각은 이중 버퍼로서 구성될 수 있고, 여기서 데이터는 버 퍼의 제 1 부에 기록되고, 동시에 다른 데이터는 버퍼의 제 2 부로부터 판독된다. Data mover 230 writes the results from retriever 220 to a location in memory 240. Data mover 230 also controls read and write operations between memory 240 and buffer 260 associated with accelerator 250. The buffer 260 can be divided into a sample buffer 262 and an energy buffer 264. Each of the sample buffer 262 and the energy buffer 264 can be configured as a double buffer, where data is written to the first part of the buffer and at the same time other data is read from the second part of the buffer.

제어기 (270) 는 검색기 (220) 및 가속기 (250) 를 구성하도록 동작한다. 예를 들어, 제어기 (270) 는 검색기 (220) 에 의해 수행된 서브태스크를 구성할 수 있다. 또한, 제어기 (270) 는 코히런트 적분 시간 또는 길이 뿐만 아니라 가속기 (250) 에 의해 수행된 넌-코히런트 에너지 합계의 길이를 구성할 수 있다.Controller 270 operates to configure searcher 220 and accelerator 250. For example, the controller 270 can organize the subtasks performed by the retriever 220. In addition, the controller 270 may configure the length of the coherent integration time or length as well as the non-coherent energy sum performed by the accelerator 250.

또한, 제어기 (270) 는 다양한 상관 값 및 에너지 합계를 저장하는데 필요로 되는 메모리 양을 구성할 수 있다. 상관 결과를 저장하는데 필요로되는 메모리의 양은 부분적으로 코히런트 적분의 길이 및 넌-코히런트 에너지 합계의 개수에 기초하여 결정된다. 제어기 (270) 는 구성을 지원하는데 필요로되는 메모리 리소스를 이용하고 다른 프로세스에 이용될 사용하지 않은 임의의 메모리를 허용한다. 메모리 (240) 에 판독 또는 기록하는 경우, 제어기 (270) 는 데이터 이동기 (230) 와 동적 메모리 맵을 통신하여, 데이터 이동기 (130) 가 적절한 메모리 위치를 엑세스하도록 할 수 있다.In addition, the controller 270 can configure the amount of memory needed to store various correlation values and energy sums. The amount of memory needed to store the correlation result is determined in part based on the length of the coherent integration and the number of non-coherent energy sums. The controller 270 uses the memory resources needed to support the configuration and allows any unused memory to be used for other processes. When reading or writing to the memory 240, the controller 270 can communicate the dynamic memory map with the data mover 230 so that the data mover 130 can access the appropriate memory location.

통상적으로, 샘플 서버 (210) 는, 수신된 신호의 복소 샘플을 일시적으로 저장하는 RAM 과 같은 메모리로 구현된다. 다른 실시형태에서, 샘플 서버 (210) 는, 수신된 기저대 신호를 샘플링하고 I (In-phase) 및 Q (Quadrature phase) 샘플을 발생시키도록 구성되는 복소 ADC (Analog to Digital Converter) 와 같은 신호 샘플러를 포함한다.Typically, sample server 210 is implemented with a memory, such as RAM, that temporarily stores complex samples of a received signal. In another embodiment, sample server 210 is a signal, such as a complex analog to digital converter (ADC), configured to sample the received baseband signal and generate in-phase (I) and quadrature phase (Q) samples. Contains a sampler.

예를 들어, 샘플 서버 (210) 는 2 배 (twice) 의 칩 레이트에서 취해진 복소 샘플의 최대 4 밀리초를 저장하도록 구성될 수 있다. 물론, 샘플 서버 (210) 는 2 배의 칩 레이트에서 캡쳐된 샘플에 한정되지 않고, 실제 샘플 레이트는 일부 다른 프랙션 (fraction) 또는 다중의 칩 레이트일 수도 있다. 예를 들어, 샘플 서버 (210) 는 칩 레이트, 4 번의 칩 레이트, 또는 일부 다른 간격에서 캡쳐되는 샘플을 저장하도록 구성될 수 있다. 신호 프로세싱 시스템 (200) 이 수신된 GPS 신호를 처리하도록 구성되는 곳에서, 샘플링 레이트는 대략 2MHz 일 수 있다. 샘플 서버 (210) 는 실제 시간 클록 (미도시) 로 동기화될 수 있어서, 샘플 서버 (210) 에 저장된 샘플의 밀리초 경계는 코드 주기에 대응하는 GPS 밀리초 경계와 일치한다.For example, sample server 210 may be configured to store up to 4 milliseconds of complex samples taken at twice the chip rate. Of course, the sample server 210 is not limited to samples captured at twice the chip rate, and the actual sample rate may be some other fraction or multiple chip rates. For example, sample server 210 may be configured to store samples captured at a chip rate, four chip rates, or some other interval. Where signal processing system 200 is configured to process the received GPS signal, the sampling rate may be approximately 2 MHz. The sample server 210 may be synchronized to a real time clock (not shown) so that the millisecond boundaries of the samples stored at the sample server 210 coincide with the GPS millisecond boundaries corresponding to the code period.

검색기 (220) 는 샘플 서버 (210) 에 저장된 복소 샘플에 대해 동작한다. 검색기 (220) 는 32 개의 독립적으로 구성 가능한 서브태스크를 지원하고, 각각의 서브태스크는 1 밀리초마다 재할당될 수 있다. 각각의 서브태스크는, 최대 64 개의 상이한 가설에 걸쳐 32 개의 칩 윈도우를 검색한다. 서브태스크는 GPS 위성에 대응하는 동일하거나 상이한 코드를 검색하도록 할당될 수 있다. 특정 위성의 코드 스페이스를 검색하기 위해 할당된 서브태스크의 개수를 증가시키는 것은 평균 검색 시간을 감소시킨다. 상이한 가설의 전체 개수 및 각각의 윈도우의 길이는 하드웨어 구성을 변화시킴으로써 변화될 수 있고, 서브태스크의 실제 개수 및 구성은 전술한 실시예에 한정되지 않는다.The retriever 220 operates on complex samples stored in the sample server 210. The retriever 220 supports 32 independently configurable subtasks, each of which can be reallocated every millisecond. Each subtask retrieves 32 chip windows across up to 64 different hypotheses. Subtasks may be assigned to retrieve the same or different codes corresponding to GPS satellites. Increasing the number of subtasks allocated to search the code space of a particular satellite reduces the average search time. The total number of different hypotheses and the length of each window can be changed by changing the hardware configuration, and the actual number and configuration of subtasks is not limited to the above-described embodiment.

예를 들어, GPS 코드 위상 검색에서, 서브태스크는 최대 64 개의 상이한 가설에 걸쳐 샘플의 32 개의 칩 윈도우를 검색하도록 구성될 수 있다. 검색된 가설의 개수는 제어기 (270) 에 의해 프로그래머블될 수 있고, 예를 들어, 2 의 배수 들인 2 내지 64 의 범위일 수 있다.For example, in GPS code phase search, the subtask may be configured to search the 32 chip windows of the sample over up to 64 different hypotheses. The number of hypotheses retrieved can be programmable by the controller 270 and can range from 2 to 64, for example, multiples of two.

코드 위상 검색을 수행하기에 앞서, 검색기 (220) 는 수신된 신호에서의 주파수 오프셋을 보정한다. 일 실시형태에서, 검색기 (220) 는 원하는 중심 주파수로 검색 샘플을 회전하도록 회전기를 구현할 수 있다. 회전기에 의해 보완된 주파수 오프셋의 양은, 신호 프로세싱 시스템 (200) 에 의해 수행된 주파수 검색으로 구현될 수 있는 주파수 보정 루프에 부분적으로 기초하여 결정될 수 있다.Prior to performing the code phase search, the searcher 220 corrects the frequency offset in the received signal. In one embodiment, searcher 220 may implement a rotator to rotate the search sample to a desired center frequency. The amount of frequency offset complemented by the rotator may be determined based in part on a frequency correction loop that may be implemented with a frequency search performed by the signal processing system 200.

검색기 (220) 는 오버샘플링된 수신 칩 시퀀스의 보간 (interpolation) 을 선택적으로 수행할 수 있다. 또한, 보간 프로세스는 상관 이전에 입력 신호를 재샘플링하는 것으로 지칭될 수 있다. 일 실시형태에서, 수신된 신호는 2 배의 코드 시퀀스 칩 레이트 (칩x2) 에서 샘플링된다. 샘플러는 2 개의 연속 샘플을 보정하고 가변 지연을 도입한다. 통상적으로, 가변 지연은 칩 주기의 1/2 보다 작으며, 예를 들어, 1/4 칩 주기 또는 칩 주기의 더 작은 프랙션의 배수일 수 있다. 예를 들어, 샘플러는 칩 주기의 1/8 의 배수에 가변 지연을 도입할 수 있고, 여기서, 배수는 0 내지 3 을 레인징한다.The retriever 220 may optionally perform interpolation of the oversampled receive chip sequence. The interpolation process can also be referred to as resampling the input signal prior to correlation. In one embodiment, the received signal is sampled at twice the code sequence chip rate (chip x2). The sampler corrects two consecutive samples and introduces a variable delay. Typically, the variable delay is less than one half of the chip period, and can be, for example, one quarter chip period or a multiple of the smaller fraction of the chip period. For example, the sampler may introduce a variable delay in multiples of one eighth of the chip period, where the multiples range from zero to three.

검색기 (220) 는 각각 하나의 가설을 이용하여 32 개의 칩을 역확산시키고, 여기서 가설은 국부적으로 발생된 PN 코드 시퀀스의 특정 위상에 대응한다. 각각의 가설이, 예를 들어, 1/2 경계에서 23 개의 코드 위상 오프셋의 검색을 허용하도록 배열될 수 있다. 다른 실시형태에서, 각각의 가설은 칩 경계에서 배열될 수 있고, 이에 따라 64 개의 상이한 코드 위상 오프셋의 검색을 허용한다. 검색기 (220) 는 검색기 버퍼에 각각의 복소 상관 결과값을 저장하도록 구성된다. 데이터 이동기 (230) 는 메모리 (240) 내의 위치에 버퍼링된 검색 결과값을 저장할 수 있다. 일 실시형태에서, 검색 버퍼 (224) 는 이중 버퍼로 구성된다. 검색기 (220) 는 이중 버퍼의 제 1 부를 업데이트하도록 구성될 수 있고, 이중 버퍼의 제 2 부는 데이터 이동기 (230) 에 의해 엑세스되어 메모리 (240) 로 이전 검색 결과값을 이동시킨다. 이중 버퍼 구성은, 검색기 (220) 가 데이터 전송에 제한되기 보다는 계산적으로 제한되는 것을 허용한다. 이중 버퍼를 구성함으로써, 이전에 계산된 결과값의 전송은 다음 검색기 태스크에 앞서 완성될 필요가 없고, 이전 결과값의 데이터 전송은 가장 최근의 태스크의 프로세싱과 동시에 발생할 수도 있다. 물론, 검색기 (220) 는 이중 버퍼 구성을 사용하는 것에 제한되지 않으며, 동시의 프로세싱 및 데이터 전송을 허용하는 일부 다른 메모리 구성을 이용할 수도 있다. 예를 들어, 검색기 (220) 는, 특정 메모리 위치의 다음 업데이트에 앞서 모든 데이터 전송이 발생하는 것을 허용하기에 충분한 크기를 갖는 원형 버퍼를 구현할 수도 있다.The searcher 220 despreads 32 chips each using one hypothesis, where the hypothesis corresponds to a particular phase of the locally generated PN code sequence. Each hypothesis can be arranged, for example, to allow retrieval of 23 code phase offsets at a 1/2 boundary. In other embodiments, each hypothesis can be arranged at chip boundaries, thus allowing retrieval of 64 different code phase offsets. The searcher 220 is configured to store each complex correlation result in the searcher buffer. Data mover 230 may store the buffered search result at a location in memory 240. In one embodiment, the search buffer 224 is configured as a double buffer. The retriever 220 can be configured to update the first portion of the double buffer, where the second portion of the double buffer is accessed by the data mover 230 to move the previous search result value to the memory 240. The double buffer configuration allows the searcher 220 to be computationally limited rather than limited to data transmission. By configuring a double buffer, the transmission of previously calculated results need not be completed prior to the next searcher task, and the data transmission of the previous results may occur concurrently with the processing of the most recent task. Of course, searcher 220 is not limited to using a double buffer configuration, and may use some other memory configuration that allows for simultaneous processing and data transfer. For example, retriever 220 may implement a circular buffer that is large enough to allow all data transfers to occur prior to the next update of a particular memory location.

검색기 (220) 의 구성, 및 특히 가설과 검색된 코드 스페이스의 개수의 구성은 각각의 상관 증분으로 구성될 수 있다. 전술한 실시예에서, 상관 증분은 밀리초마다 발생한다.The configuration of the searcher 220, and in particular the construction of the hypothesis and the number of code spaces retrieved, may be configured in each correlation increment. In the above embodiment, the correlation increment occurs every millisecond.

검색기 (220) 는 각각의 상관 증분이 업데이트될 수 있는 하드웨어 커맨드 레지스터를 포함한다. 제어기 (270) 는 위치 및 태스크 큐의 크기를 하드웨어 커맨드 레지스터에 기록할 수 있다. 전술한 바와 같이, 검색기 (220) 는 단일 큐에서 최대 32 개의 분리된 태스크를 수행하도록 제어될 수 있다.Retrieval 220 includes a hardware command register that each correlation increment can be updated. The controller 270 can write the location and the size of the task queue to a hardware command register. As noted above, the searcher 220 may be controlled to perform up to 32 separate tasks in a single queue.

검색기 (220) 는 하드웨어 커맨드 레지스터에 의해 지적된 큐를 엑세스하도록 구성된다. 검색기 (220) 는 태스크의 프로세싱 동안 태스크 큐를 획득할 수 있고, 유효 비교값에 기초하여 하드웨어 커맨드 레지스터에 지적된 태스크의 시작 타임을 결정할 수 있다.The retriever 220 is configured to access the queue pointed to by the hardware command register. The retriever 220 may obtain a task queue during processing of the task and determine the start time of the task indicated in the hardware command register based on the valid comparison value.

가속기 (250) 는 검색기 (220) 로부터 상관 결과를 처리하도록 구성된다. 가속기 (250) 는, 초기화될 필요가 있는 상이한 데이터 전송의 개수를 감소시키기 위해서 버퍼 (260) 에 저장된 온 데이터를 동작하도록 구성될 수 있다. 버퍼 (260) 는 샘플 버퍼 (262) 및 에너지 그리드 버퍼 (264) 를 포함할 수 있다. 샘플 버퍼 (262) 및 에너지 그리드 버퍼 (264) 각각은, 메모리 (240) 내의 위치를 판독하고 기록하는 것에 관한 임의의 가능한 메모리 경쟁 (contention) 이슈를 제거하기 위해서 이중 버퍼로 배열될 수 있다.Accelerator 250 is configured to process correlation results from searcher 220. Accelerator 250 may be configured to operate on data stored in buffer 260 to reduce the number of different data transmissions that need to be initialized. The buffer 260 can include a sample buffer 262 and an energy grid buffer 264. Each of sample buffer 262 and energy grid buffer 264 may be arranged in a double buffer to eliminate any possible memory contention issues related to reading and writing locations in memory 240.

이중 버퍼 각각은 메모리의 제 1 및 제 2 부 또는 뱅크를 포함할 수 있다. 임의의 주어진 시간에서, 버퍼의 일 뱅크는 가속기 (250) 의 적분 엔진에 커플링되고, 버퍼의 다른 뱅크는 데이터 이동기 (280) 에 커플링되거나 그렇지 않으면 엑세스가능하다. 적분 엔진이나 데이터 이동기 (280) 와 뱅크의 연관(적분)은 각각의 프로세싱 간격 이후에 스왑된다.Each of the dual buffers may comprise a first and a second portion or bank of memories. At any given time, one bank of buffers is coupled to the integrator engine of the accelerator 250, and the other bank of buffers is coupled or otherwise accessible to the data mover 280. The association (integration) of the bank with the integration engine or data mover 280 is swapped after each processing interval.

가속기 (250) 는, 구성 가능한 적분 시간 및 다중 주파수를 거쳐 코히런트 적분 합계를 발생시키도록 구성된 다수의 평행 누산기를 포함하는 적분 엔진을 포함한다. 가속기 (250) 가 임의의 코히런트 적분 길이를 실질적으로(가상으로) 지원하도록 제어될 수 있더라도, 가속기 (250) 는 적분 길이의 이산 세트를 지원하 도록 조정될 수 있다. 일 실시형태에서, 가속기 (250) 는 코히런트 적분 합계를 발생시키도록 구성될 수 있고, 또한 10, 20, 39, 80 또는 160 밀리초의 적분 시간 동안 코히런트 누산으로 지칭된다. 검색기 (220) 는 1 밀리세컨트 주기 동안 코히런트 적분 결과값을 발생시기기 때문에, 밀리초에서의 코히런트 누산 시간은 코히런트 적분 길이에 대응한다. 가속기 (250) 는, 하나 이상의 비트 에지를 지나 확장된 적분 길이를 조정하기 위해서 비트 에지 및 비트 값을 추적하도록 구성될 수 있다.Accelerator 250 includes an integration engine that includes a plurality of parallel accumulators configured to generate coherent integration sums over a configurable integration time and multiple frequencies. Although accelerator 250 may be controlled to support substantially (virtually) any coherent integration length, accelerator 250 may be adjusted to support a discrete set of integration lengths. In one embodiment, accelerator 250 may be configured to generate a coherent integration sum, also referred to as a coherent accumulation for an integration time of 10, 20, 39, 80, or 160 milliseconds. Since searcher 220 generates a coherent integration result for one millisecond period, the coherent accumulation time in milliseconds corresponds to the coherent integration length. Accelerator 250 may be configured to track bit edges and bit values to adjust the integral length extended beyond one or more bit edges.

평행한 누산 경로의 개수는 가속기 (250) 내에서 수용 가능한 복잡도의 레벨에 의존된다. 일 실시형태에서, 가속기 (250) 는 예를 들어, 6 개의 상이한 주파수를 통해 샘플들의 일 세트를 합산할 수 있는 6 개의 평행 멀티플레이어-누산기 경로를 포함할 수 있다. 평행 누산 경로의 동작은 많은 주파수 및 많은 샘플 세트를 지원하도록 반복될 수 있다. 가속기 버퍼 (262) 는 하나의 태스크의 모든 가설에 대해 20 밀리초 동안 적분하기에 충분할 수 있다. 유사하게, 에너지 버퍼 (264) 는 64 번의 오프셋들 각각 동안 20 개의 주파수를 지원하기에 충분히 클 수 있다. 20 밀리초보다 긴 적분은 단일 동작에서 전체 오프셋 횟수의 서브셋을 처리함으로써 수행될 수 있다. 20*N 밀리초 적분을 수행하는 경우, N 개의 가속기 동작이 이용된다. 각각의 동작은 63/N 개의 시간 가설을 처리한다. 각각의 에너지 메모리는 64/N 개의 시간 오프셋들 각각에 대해 20*N 의 밀리초를 유지한다. 결과로서 생기는 메모리 대역폭 및 상이한 적분 길이를 지원하는데 필요한 가속기 처리 레이트는 동일하다. 예를 들어, 가속기 (250) 는, 단일 동작에서 64 개의 상이한 시간 가설을 통해 20 밀리초 누산 시간을 동시에 지원하도록 구성될 수 있고, 또는 동일한 단일 동작에서 8 개의 상이한 시간 가설을 통해 160 밀리초 누산 시간을 지원하도록 구성될 수 있다. 가속기 (250) 는 8 개의 개별 동작을 수행하여 동일한 64 개의 주파수 가설을 검색한다. 이러한 방식으로, 가속기에 의해 이용된 데이터 대역폭은 적분 시간에 관계없이 일정하다.The number of parallel accumulation paths depends on the level of complexity acceptable within the accelerator 250. In one embodiment, accelerator 250 may include six parallel multiplayer-accumulator paths that may sum up a set of samples over six different frequencies, for example. The operation of the parallel accumulation path can be repeated to support many frequencies and many sample sets. Accelerator buffer 262 may be sufficient to integrate for 20 milliseconds for all hypotheses of one task. Similarly, energy buffer 264 may be large enough to support 20 frequencies during each of the 64 offsets. Integration longer than 20 milliseconds can be performed by processing a subset of the total offset number in a single operation. When performing 20 * N millisecond integration, N accelerator operations are used. Each operation processes 63 / N time hypotheses. Each energy memory maintains 20 * N milliseconds for each of the 64 / N time offsets. The resulting memory bandwidth and accelerator processing rates required to support different integration lengths are the same. For example, accelerator 250 may be configured to simultaneously support 20 millisecond accumulate time through 64 different time hypotheses in a single operation, or 160 millisecond accumulate through 8 different time hypotheses in the same single operation. It can be configured to support time. Accelerator 250 performs eight separate operations to retrieve the same 64 frequency hypotheses. In this way, the data bandwidth used by the accelerator is constant regardless of the integration time.

통상적으로, 가속기 (250) 에 의해 스패닝된 주파수 범위의 크기는, 공칭 주파수 아래의 대략 250 헤르츠 및 공칭 주파수 위의 250 헤르츠로 전체가 확장되어 500 헤르츠이다. 가속기 (250) 에 의해 동시에 분석된 주파수 가설의 개수는 코히런트 적분 길이에 의존하여 변화한다. 일 실시형태에서, 동시에 처리된 주파수 가설의 개수는 코히런트 적분 길이와 동일하게 설정된다. 가속기 (250) 는 주파수 스팬 전체에 걸쳐 대략 균일하게 상이한 주파수 빈을 스페이싱한다.Typically, the magnitude of the frequency range spanned by the accelerator 250 is 500 hertz, extending fully to approximately 250 hertz below the nominal frequency and 250 hertz above the nominal frequency. The number of frequency hypotheses analyzed simultaneously by the accelerator 250 varies depending on the coherent integration length. In one embodiment, the number of frequency hypotheses processed simultaneously is set equal to the coherent integration length. Accelerator 250 spacing different frequency bins approximately uniformly throughout the frequency span.

가속기 (250) 는, 원하는 주파수 오프셋에 의해 입력 샘플을 회전시키고, 코히런트 적분 길이를 거쳐 합산함으로써 특정 주파수 오프셋에서 코히런트 적분을 결정한다. 그 다음에, 가속기 (250) 는 2-차원 에너지 그리드를 위치시키기위해 코히런트 에너지 합계를 계산할 수 있다. 2-차원 에너지 그리드는, 각각의 시간 가설 및 각각의 주파수 오프셋에 대한 현재의 코히런트 적분 길이에 대한 에너지를 포함할 수 있다.Accelerator 250 determines the coherent integration at a particular frequency offset by rotating the input sample by the desired frequency offset and summing over the coherent integration length. The accelerator 250 can then calculate the coherent energy sum to locate the two-dimensional energy grid. The two-dimensional energy grid may include energy for the current coherent integration length for each time hypothesis and each frequency offset.

가속기 (250) 는, 다른 시간 가설의 코히런트 합계를 결정하기 이전에 특정 시간 가설의 주파수들 모두에 대한 코히런트 합계를 결정하도록 구성될 수 있다. 이 방식으로 코히런트 합계를 수행하는 것은 메모리가 엑세스되는 횟수를 최소 화할 수 있다. 물론, 다른 실시형태에서, 주파수 오프셋의 애플리케이션은 더 집중적인 프로세서일 수도 있고, 가설 내내 각각의 주파수 오프셋의 코히런트 합계는 다른 주파수 오프셋에 대한 코히런트 합계를 결정하기 이전에 완성될 수도 있다. 다른 실시형태는 일부 다른 순서로 합계를 결정할 수 있다.Accelerator 250 may be configured to determine a coherent sum for all frequencies of a particular time hypothesis before determining the coherent sum of other time hypotheses. Performing coherent sums in this way can minimize the number of times memory is accessed. Of course, in other embodiments, the application of frequency offset may be a more intensive processor, and the coherent sum of each frequency offset may be completed before determining the coherent sum for other frequency offsets throughout the hypothesis. Other embodiments may determine the sum in some other order.

데이터 이동기 (230) 는 DMA 엔진으로서 동작하여 검색기 (220) 와 메모리 (240), 및 메모리 (240) 와 가속기 (250) 사이의 정보를 전송한다. 데이터 이동기 (230) 는, 검색 모드 및 연관 적분 길이에 적어도 부분적으로 의존하여 위치로 메모리 전송을 수행한다. 데이터 이동기 (230) 는 제어기 (270) 로부터의 태스크 큐에 기초하여 메모리 맵을 결정할 수 있다.Data mover 230 operates as a DMA engine to transfer information between searcher 220 and memory 240 and memory 240 and accelerator 250. Data mover 230 performs a memory transfer to a location depending at least in part on the retrieval mode and the associated integration length. Data mover 230 may determine the memory map based on the task queue from controller 270.

데이터 이동기 (230) 는 스케줄링된 서브태스크의 각각에 대해 검색기 (220) 에 의해 발생된 코히런트 합계를 복사한다. 검색기 (220) 가 코히런트 합계를 이중 버퍼링하는 실시형태에서는, 데이터 이동기 (230) 가 검색기 (220) 에 의해 기록되고 있지 않는 버퍼로부터의 블록을 전송하도록 동작한다. 데이터 이동기 (230) 는 현재의 서브태스크 동작과 연관되지 않은 버퍼의 블록 내의 데이터 상에서 동작하도록 구성된다.Data mover 230 copies the coherent sum generated by searcher 220 for each of the scheduled subtasks. In an embodiment where the searcher 220 double buffers the coherent sum, the data mover 230 operates to send a block from a buffer that is not being written by the searcher 220. Data mover 230 is configured to operate on data in a block of a buffer that is not associated with a current subtask operation.

유사하게, 데이터 이동기 (230) 는 이전에 저장된 검색기 출력 및 메모리 (240) 로부터 이전에 결정된 에너지 합계를 가속기 (250) 내의 버퍼 (262), 특히, 메모리 전송과 연관되고 가속기 (250) 에 의해 기록되지 않는 버퍼 블록에 복사한다. 또한, 데이터 이동기 (230) 는 가속기 버퍼로부터 가장 최근의 에너지 합계를 메모리 (240) 에 복사한다.Similarly, data mover 230 records previously determined searcher output and energy sums previously determined from memory 240 associated with buffer 262 in accelerator 250, in particular memory transfer, and recorded by accelerator 250. To a buffer block that does not exist. Data mover 230 also copies the most recent energy sum from the accelerator buffer to memory 240.

제어기 (270) 는, 태스크 큐 및 검색기 (220) 의 하드웨어 커맨드 레지스터에 기록된 연관 제어 정보를 발생시킨다. 제어기 (270) 는, 메모리 (240) 내의 이용 가능한 스페이스에 의해 지원될 수 있는 임의의 검색 및 적분 길이를 실질적으로 구성할 수 있다. 그러나, 통상적으로 제어기 (270) 는 각각의 제어 경계에서 선택되고 프로그래밍될 수 있는 미리 결정된 개수의 검색 구성이나 모드를 갖는다. 예를 들어, 제어기 (270) 는 높은 검색 모드 스패닝 1600 Hz, 20 개의 상이한 주파수 빈, 64 개의 가설, 및 20 인 코히런트 길이, 제 1 낮은 검색 모드 스패닝 400 Hz, 80 개의 상이한 주파수 빈, 16 개의 가설, 및 80 인 코히런트 길이, 제 2 낮은 검색 모드 스패닝 200 Hz, 160 상이한 주파수 빈, 8 개의 가설, 및 160 인 코히런트 길이, 열등한 획득 검색 모드 스패닝 1600 Hz, 20 개의 상이한 주파수 빈, 64 개의 가설, 및 10 인 코히런트 길이, 및 비트 에지 검색 모드 스패닝 1600 Hz, 8 개의 상이한 주파수 빈, 8 개의 가설, 및 20 인 코히런트 길이 중 하나를 선택할 수 있다.The controller 270 generates association control information recorded in the task queue and the hardware command register of the searcher 220. Controller 270 can substantially configure any search and integration length that can be supported by the space available in memory 240. However, controller 270 typically has a predetermined number of search configurations or modes that can be selected and programmed at each control boundary. For example, controller 270 may have a high search mode spanning 1600 Hz, 20 different frequency bins, 64 hypotheses, and a coherent length of 20, a first low search mode spanning 400 Hz, 80 different frequency bins, 16 Hypothesis, and 80 in coherent length, second low search mode spanning 200 Hz, 160 different frequency bins, eight hypotheses, and 160 in coherent length, inferior acquired search mode spanning 1600 Hz, 20 different frequency bins, 64 One can choose a hypothesis, and a 10 in coherent length, and a bit edge search mode spanning 1600 Hz, eight different frequency bins, eight hypotheses, and a 20 in coherent length.

도 3 은 코드 스페이스 검색을 위한 위치 결정 신호 프로세싱 시스템 (200) 을 구현하는 수신기에서의 데이터 흐름의 실시형태를 나타내는 간략화된 기능 블록도이다. 시스템 (200) 은 GPS 스페이스 검색 프로세싱의 문맥에서 설명된다. 그러나, 유사한 코드 스페이스 검색은 AFLT 와 같은 일부 다른 PN 코드 확산 정보에 대해 처리될 수 있다.3 is a simplified functional block diagram illustrating an embodiment of a data flow at a receiver that implements a positioning signal processing system 200 for code space search. System 200 is described in the context of GPS space search processing. However, similar code space searches may be processed for some other PN code spreading information, such as AFLT.

샘플 서버 (210) 는 대략 2 배의 칩 레이트에서 복소 입력 샘플을 수신하고 RAM 과 같은 메모리에 샘플을 기록한다. 샘플 서버 (210) 는 원형 버퍼와 같은 RAM 을 배열하고 최근의 샘플을 갖는 가장 오래된 엔트리를 과기록하도록 구성될 수 있다.Sample server 210 receives complex input samples at approximately twice the chip rate and writes the samples to a memory such as RAM. Sample server 210 may be configured to arrange RAM, such as a circular buffer, and overwrite the oldest entry with the most recent sample.

검색기 (220) 는 하드웨어 커맨드 레지스터의 콘텐츠를 시험하여 태스크 큐의 위치 및 크기를 결정한다. 검색기 (220) 내의 하드웨어 커맨드 레지스터는 이전 하드웨어 커맨드 레지스터 콘텐츠에 의해 지적된 태스크 큐의 프로세싱 동안 프로그래밍될 수 있다. 검색기 (220) 는 네스트 (nest) 스케줄링된 검색 태스크에 대한 시작 시간을 결정하고, 현재 검색 태스크가 끝나자마자 새로운 검색 태스크를 시작할 수 있다.Finder 220 examines the contents of the hardware command register to determine the location and size of the task queue. The hardware command register in searcher 220 may be programmed during processing of the task queue pointed to by the previous hardware command register content. The retriever 220 may determine a start time for a nested scheduled search task and start a new search task as soon as the current search task is finished.

각각의 태스크 큐는, 1 밀리초일 수 있는 초기 검색 주기에서 처리될 수 있는 미리 결정된 최대 개수의 서브태스크를 제어할 수 있다. 검색기 (220) 는 서브태스크를 처리하고 각각의 가설에 대한 코히런트 합계를 검색기 (220) 내의 버퍼에 기록한다. 검색기 버퍼는 이중 버퍼로서 편성될 수 있다. 검색기 이중 버퍼의 2 개의 블록은 교대로 하나의 검색기 (220) 또는 데이터 이동기 (230) 와 연관될 수 있다. 검색기 (220) 와 연관된 블록은 검색기 (220) 에 의해 생성된 상관 결과값을 수신하고, 반면에 데이터 이동기 (230) 와 연관된 블록은 검색기 (220) 로부터 메모리 (240) 로의 블록 데이터 전송을 허용한다. 검색기 이중 버퍼 내의 블록의 연관은 미리 결정된 시간에서 스왑된다. 예를 들어, 블록의 연관은 검색기 (220) 가 그 연관된 블록을 채우자마자 스왑될 수 있다.Each task queue may control a predetermined maximum number of subtasks that may be processed in an initial search period, which may be one millisecond. The retriever 220 processes the subtasks and writes the coherent sums for each hypothesis to a buffer in the retriever 220. The retriever buffer can be organized as a double buffer. Two blocks of the retriever double buffer may alternately be associated with one retriever 220 or data mover 230. The block associated with the searcher 220 receives the correlation result generated by the searcher 220, while the block associated with the data mover 230 allows block data transfer from the searcher 220 to the memory 240. . Associations of blocks in the retriever double buffer are swapped at a predetermined time. For example, the association of a block can be swapped as soon as the retriever 220 fills the associated block.

데이터 이동기 (230) 는 연관된 검색기 (220) 버퍼와 메모리 (240) 사이의 데이터 전송 (310) 을 수행한다. 데이터 이동기 (230) 는, 검색기 (220) 에서 수행된 코히런트 적분 프로세싱으로 데이터 전송 (310) 을 동기화할 필요가 없다. 대신에, 데이터 이동기 (230) 는 버퍼 블록 연관이 유효한 동안 임의의 시간에서 데이터 전송 (310) 을 수행하도록 구성될 수 있다. 데이터 이동기 (230) 는 메모리 (240) 내의 위치를 결정하여, 제어기 (미도시) 에 의해 초기화된 활성 검색 모드에 적어도 부분적으로 기초하여 그 값을 기록한다. 시스템 (200) 에 할당된 메모리 (240) 의 크기는 동적일 수 있고, 예를 들어, 활성 코드 검색 모드에 기초하여 변화한다. 실시예로서, 비트 에지 검색 모드 스패닝 1600 Hz, 8 개의 상이한 주파수 빈, 8 개의 가설, 및 20 인 코히런트 길이는 낮은 검색 모드 스패닝 200 Hz, 160 개의 상이한 주파수 빈, 8 개의 가설, 및 160 인 코히런트 길이보다 적은 스토리지 스페이스 메모리 (240) 를 요구한다.Data mover 230 performs data transfer 310 between associated retriever 220 buffer and memory 240. The data mover 230 does not need to synchronize the data transfer 310 with the coherent integration processing performed at the retriever 220. Instead, data mover 230 may be configured to perform data transfer 310 at any time while the buffer block association is valid. Data mover 230 determines a location within memory 240 and records its value based at least in part on an active search mode initiated by a controller (not shown). The size of the memory 240 allocated to the system 200 can be dynamic, for example, changing based on the active code retrieval mode. As an example, the bit edge search mode spanning 1600 Hz, eight different frequency bins, eight hypotheses, and a coherent length of 20 are low search mode spanning 200 Hz, 160 different frequency bins, eight hypotheses, and 160 incohi It requires less storage space memory 240 than the runt length.

메모리 (240) 가 코드 스페이스 검색과 상이한 프로세스와 공유되면, 메모리 (240) 가 무선 통신 디바이스의 시스템 메모리인 경우와 같이, 메모리 스페이스의 동적 할당은 이용 가능한 메모리 스페이스의 양을 최대화하여 코드 검색과 구별되는 태스크를 지원한다. 시스템 (200) 은, 활성 코드 검색 모드를 지원하도록 충분한 메모리 (240) 스페이스로만 할당될 필요가 있다.If memory 240 is shared with a process that differs from code space retrieval, such as when memory 240 is a system memory of a wireless communication device, dynamic allocation of memory space maximizes the amount of available memory space to distinguish it from code retrieval. Supported tasks. System 200 only needs to be allocated with enough memory 240 space to support the active code retrieval mode.

또한, 데이터 이동기 (230) 는 메모리에 저장된 검색 결과값의 데이터 전송 (320) 을 이중 버퍼링된 샘플 버퍼 (262) 로 제어할 수 있다. 가속기 (250) 는 코히런트 적분 동안 검색 결과값을 소비하기 때문에, 메모리 (240) 로부터 샘플 버퍼 (262) 로의 데이터 전송 (320) 은 일방향성일 수 있다.In addition, the data mover 230 may control the data transfer 320 of the search result value stored in the memory to the double buffered sample buffer 262. Since accelerator 250 consumes search result values during coherent integration, data transfer 320 from memory 240 to sample buffer 262 may be unidirectional.

이중 버퍼링된 샘플 버퍼 (262) 는 데이터 이동기 (230) 와 가속기 (250) 사 이에서 제 1 및 제 2 블록의 연관을 교체할 수 있다. 가속기 (250) 는 그 연관 샘플 버퍼 (262) 블록으로부터 판독 동작 (340) 을 제어한다. 일단 가속기 (250) 가 그 연관된 샘플버퍼 (262) 블록 내의 데이터 모두를 엑세스하면, 데이터 이동기 (230) 및 가속기 (250) 는 샘플 버퍼 (262) 블록 연관을 스왑할 수 있다.The double buffered sample buffer 262 may replace the association of the first and second blocks between the data mover 230 and the accelerator 250. Accelerator 250 controls read operation 340 from its associated sample buffer 262 block. Once accelerator 250 accesses all of the data in its associated sample buffer 262 block, data mover 230 and accelerator 250 can swap the sample buffer 262 block association.

가속기 (250) 는 제어기에 의해 프로그래밍된 검색 모드에 기초하여 결정되는 코히런트 누산 길이를 통해 검색기 결과의 코히런트 합계를 결정한다. 가속기 (250) 는, 코히런트 적분 결과의 복소 컴포넌트의 제곱을 합산함으로써 각각의 코히런트 적분에 대해 에너지 값을 발생시킬 수 있다.Accelerator 250 determines the coherent sum of the searcher results via the coherent accumulation length determined based on the search mode programmed by the controller. Accelerator 250 may generate an energy value for each coherent integration by summing the squares of the complex components of the coherent integration result.

가속기 (250) 는 메모리 (240) 로의 전송을 위해 에너지 버퍼 (264) 에 에너지 값을 기록할 수 있다. 대안적으로, 가속기 (250) 는 동일한 에너지 그리드 위치에 대해 계산된 이전의 에너지 값과 현재의 에너지 값을 합산함으로써 에너지 값의 넌-코히런트 누산을 발생시키도록 구성될 수 있다.Accelerator 250 may write an energy value to energy buffer 264 for transmission to memory 240. Alternatively, accelerator 250 may be configured to generate a non-coherent accumulation of energy values by summing up previous energy values and current energy values calculated for the same energy grid location.

가속기 (250) 는 이중 버퍼링된 에너지 버퍼 (264) 의 연관된 블록으로/으로부터 에너지 값의 데이터 전송 (350) 을 제어한다. 에너지 버퍼 (264) 는, 데이터 이동기 (230) 또는 가속기 (250) 중 하나와 대안적으로 연관된 블록을 갖는 이중 버퍼로서 구성될 수 있다.Accelerator 250 controls data transfer 350 of energy values to / from the associated block of double buffered energy buffer 264. The energy buffer 264 may be configured as a double buffer with blocks alternatively associated with either the data mover 230 or the accelerator 250.

데이터 이동기 (230) 는 메모리 (240) 와 에너지 버퍼 (264) 의 연관된 블록 사이의 에너지 값의 데이터 전송 (330) 을 제어한다. 유사하게, 가속기 (250) 는 에너지 버퍼 (350) 의 그 연관된 블록 사이에서 에너지 버퍼 판독 및 기록 동작 (350) 을 제어한다. 에너지 버퍼 (264) 의 연관된 블록은 활성 검색 모드에 의 해 결정된 스케줄에 기초하여 스왑될 수 있다.Data mover 230 controls data transfer 330 of energy values between memory 240 and associated blocks of energy buffer 264. Similarly, accelerator 250 controls energy buffer read and write operations 350 between its associated blocks of energy buffer 350. Associated blocks of energy buffer 264 may be swapped based on a schedule determined by the active search mode.

데이터 이동기 (230) 는 메모리 (240) 로부터 이전에 저장된 에너지 결과값을 엑세스할 수 있고, 데이터 전송 동작 (330) 에서 에너지 버퍼 (264) 의 연관된 블록에 그 값을 복사할 수 있다. 블록 연관 스왑 이후에, 가속기 (250) 는 데이터 이동기 (230) 에 의해 이전에 전송된 에너지 값을 엑세스할 수 있고, 예를 들어, 현재 에너지 값을 이용하여 넌-코히런트 누산을 결정할 수 있다. 가속기 (250) 는 에너지 버퍼 (264) 의 그 블록으로 기록 동작 (350) 을 제어한다. 에너지 버퍼 (264) 의 블록이 다시 스왑되는 경우, 데이터 이동기 (230) 는 에너지 버퍼 (264) 로부터 메모리 (240) 로 업데이트된 에너지 값의 데이터 전송 (330) 을 수행할 수 있다. 가속기 (250) 프로세싱은, 더욱 효과적으로 데이터를 처리하기 위해서 파이프라인 방식으로 수행될 수 있다. 예를 들어, 파이프라인 프로세스는 3 개의 상이한 동작의 파이프라인일 수 있다. 파이프라인은 하나의 동작에 대해 입력 데이터 전송을, 제 2 동작에 대해 코히런트 누산 및 에너지 값을 프로세싱을, 그리고 제 3 동작에 대해 가속기 (250) 로부터 메모리 (240) 로의 이전 결과값의 데이터 전송을 지원할 수 있다. 따라서, 가속기 (250) 가 이전 데이터 전송에 대한 검색 결과값 상에서 수행하는 (동작 N)동안, 데이터 이동기 (230) 는 메모리로부터 샘플 버퍼로 검색 결과값을 전송할 수 있다 (동작 N+1). 또한, 데이터 이동기 (230) 는, 외부 메모리 (240) 로부터 이전에 저장된 값으로 에너지 버퍼를 로딩하기 (동작 N+1) 이전에, 제 3 상이한 동작에 대해 에너지 버퍼로부터 메모리 (240) 로 누산된 에너지 합계를 전송할 수 있다 (동작 N-1).Data mover 230 may access the previously stored energy result from memory 240 and copy the value to the associated block of energy buffer 264 in data transfer operation 330. After block associative swap, accelerator 250 may access the energy value previously sent by data mover 230 and, for example, determine the non-coherent accumulation using the current energy value. Accelerator 250 controls write operation 350 with that block of energy buffer 264. When a block of energy buffer 264 is swapped again, data mover 230 may perform data transfer 330 of the updated energy value from energy buffer 264 to memory 240. Accelerator 250 processing may be performed in a pipelined fashion to process data more effectively. For example, the pipeline process may be a pipeline of three different operations. The pipeline transfers input data for one operation, processes coherent accumulation and energy values for a second operation, and transfers data of previous results from accelerator 250 to memory 240 for a third operation. Can support Thus, while accelerator 250 performs on the search result value for the previous data transfer (operation N), data mover 230 may transmit the search result value from memory to the sample buffer (operation N + 1). In addition, the data mover 230 accumulates from the energy buffer into the memory 240 for a third different operation prior to loading the energy buffer from the external memory 240 to a previously stored value (operation N + 1). The energy sum can be transferred (operation N-1).

도 4 는 코드 스페이스 검색의 방법 400 의 실시형태의 흐름도이다. 방법 400 은 도 2 의 위치 결정 신호 프로세싱 시스템에 의해 구현될 수 있고, 도 1 의 사용자 단말기 내에서 구현될 수 있다. 방법 400 은 기능 블록을 거쳐 확장되는 프로세스를 나타낸다. 방법 400 에서 동작 시퀀스는 시스템 전체에 걸쳐 샘플들 세트의 프로세싱을 나타낸다. 재구성 또는 데이터 전송을 위한 레이턴시 없이 방법의 동작을 연속시키기 위해서 시스템 내에서 다수의 동작은 동시에 발생할 수도 있다.4 is a flowchart of an embodiment of a method 400 of code space search. The method 400 may be implemented by the position determination signal processing system of FIG. 2 and may be implemented within the user terminal of FIG. 1. Method 400 represents a process that extends through functional blocks. The operational sequence in method 400 represents the processing of a set of samples throughout the system. Multiple operations may occur simultaneously in the system to continue operation of the method without reconfiguration or latency for data transmission.

방법 400 은 블록 402 에서 시작하고, 여기서 시스템은 검색될 수신된 신호의 복소 샘플을 캡쳐한다. 예를 들어, 신호 샘플러는 대략 2 배의 PN 코드 레이트인 레이트에서 수신된 GPS 신호를 샘플링할 수 있다. 복소 샘플은 RAM, 또는 일부 다른 스토리지 디바이스에 저장될 수 있다. The method 400 begins at block 402, where the system captures a complex sample of the received signal to be retrieved. For example, the signal sampler may sample the received GPS signal at a rate that is approximately twice the PN code rate. The complex sample may be stored in RAM, or some other storage device.

시스템은 블록 410 으로 진행되고, 여기서 검색기는 특정 코드 검색 프로세싱 모드를 지원하도록 구성된다. 검색기는 현재 프로세싱 모드에 따라 샘플을 처리하는 동안 미래의 샘플에 대한 프로세싱 모드를 결정할 수 있다. 예를 들어, 검색기는 하드웨어 커맨드 레지스터를 읽을 수 있어, 태스크 큐의 위치 및 크기를 결정하게 된다. 검색기는 태스크 경계에서 또는 현재 태스크의 프로세싱이 완성될 때 태스크 큐의 태스크들을 수행할 수 있다. 태스크 큐는 미리 결정된 최대 개수의 태스크를 다수의 태스크를 포함할 수 있다. 예를 들어, 태스크 큐는, 1 밀리초일 수 있는 각각의 초기 적분 주기에서 수행되도록 검색기에 대해 최대 32 개의 태스크를 포함할 수 있다.The system proceeds to block 410, where the searcher is configured to support a particular code search processing mode. The searcher may determine the processing mode for future samples while processing the samples according to the current processing mode. For example, the browser can read the hardware command registers to determine the location and size of the task queue. The retriever may perform tasks in the task queue at the task boundary or when processing of the current task is complete. The task queue may include a plurality of tasks with a predetermined maximum number of tasks. For example, the task queue may include up to 32 tasks for the retriever to be performed in each initial integration period, which may be 1 millisecond.

각각의 검색 태스크는 다중 가설을 통해 미리 결정된 개수의 코드 칩을 거쳐 검색을 지원할 수 있다. 검색된 가설의 개수는 프로그래밍될 수 있고, 미리 결정된 최대 개수의 가설을 레인징할 수 있다. 예를 들어, 각각의 태스크는 32 개의 코드 칩을 포함하는 윈도우를 검색하도록 구성될 수 있고, 검색 윈도우를 통해 최대 64 개의 상이한 가설을 검색하도록 구성될 수 있고, 여기서 각각의 코드 스페이스 가설은 그 가장 가까운 가설로부터 칩 주기의 1/2 로 오프셋될 수 있다.Each search task may support search through a predetermined number of code chips through multiple hypotheses. The number of retrieved hypotheses can be programmed and can range from a predetermined maximum number of hypotheses. For example, each task may be configured to search a window containing 32 code chips, and may be configured to search up to 64 different hypotheses through the search window, where each code space hypothesis is the most It can be offset from the hypothesis by one half of the chip period.

시스템은 블록 412 로 진행되고, 샘플 메모리로부터 검색기로 검색기 구성과 관련된 샘플을 전송한다. 위에서 제공된 샘플을 이용하여, 검색기는 1 밀리초의 하나의 초기 적분 주기에서 단일 위성 운송 수단의 전체 코드 스페이스를 검색하도록 구성될 수 있다. 그러나, 통상적으로 검색기는 다중 코드의 일부를 통해 수신된 코드를 검색하도록 구성된다.The system proceeds to block 412 and sends a sample associated with the retriever configuration from the sample memory to the retriever. Using the sample provided above, the searcher may be configured to search the entire code space of a single satellite vehicle in one initial integration period of 1 millisecond. Typically, however, the searcher is configured to retrieve the received code through a portion of the multiple codes.

관련 샘플을 전송한 이후에, 시스템은 블록 414 로 진행되고 태스크 큐 에서 앞서 설정된 태스크를 실행한다. 각각의 태스크는, 태스크에 의해 적용된 가설들 각각을 거쳐 1 밀리초의 초기 적분 주기 동안 샘플의 코히런트 적분을 초래하나, 다른 실시형태는 다른 초기 적분 주기를 사용할 수도 있다.After sending the relevant sample, the system proceeds to block 414 and executes the previously set task in the task queue. Each task results in coherent integration of the sample during an initial integration period of one millisecond through each of the hypotheses applied by the task, although other embodiments may use other initial integration periods.

검색기는 블록 416 으로 진행되고, 각각의 가설로부터의 코히런트 적분 결과값을 이중 버퍼의 연관된 블록에 기록한다. 이중 버퍼는 검색기 또는 데이터 이동기 중 하나와 교대로 연관된 2 개의 블록을 포함한다. 검색기는 그 연관 버퍼 블록에 데이터 이동기가 그 연관 버퍼 블록으로부터 데이터를 전송하는 것을 허용하도록 기록한다. 검색기 출력을 이중 버퍼링함으로써, 검색기와 데이터 이동기 모두는 버퍼로부터의 데이터를 엑세스하는데 있어서 메모리 경쟁 (contention) 을 피한다. 이전에 버퍼링된 결과값은 이중 버퍼의 일 부분으로부터 판독될 수 있으며, 검색기는 샘플을 동작하여 이중 버퍼의 다른 부분에 기록한다. 이중 버퍼는 보다 유연한 데이터 전송을 허용하므로, 다음 검색기 동작을 시작하기에 앞서 이전 검색기 결과값의 전송이 완료될 필요가 없다. 또한, 데이터 이동기에 의한 DMA 메모리 전송이 검색기 결과값을 위치시키는데 이용되는 시간보다 적은 시간에 완성될 수 있는 경우, 메모리로의 결과값 전송은 보다 유연하게 스케줄링된다.The searcher proceeds to block 416 and writes the coherent integration results from each hypothesis into the associated block of the double buffer. The double buffer includes two blocks that are alternately associated with either a searcher or a data mover. The retriever writes to the associated buffer block to allow the data mover to transfer data from the associated buffer block. By double buffering the searcher output, both the searcher and the data mover avoid memory contention in accessing data from the buffer. Previously buffered results can be read from one part of the double buffer, and the retriever runs the sample and writes to another part of the double buffer. The double buffer allows for more flexible data transfer, so the transfer of previous searcher results does not have to be completed before starting the next searcher operation. Also, if the DMA memory transfer by the data mover can be completed in less than the time used to locate the retriever result, the result transfer to the memory is more flexibly scheduled.

결과값의 전송은 데이터 이동기와 연관된 검색기 버퍼의 블록으로부터 단지 발생하기 때문에, 시스템은 블록 418 로 진행되고 이중 버퍼의 블록의 연관을 스왑한다. 연관 블록을 스왑하는 것은, 가장 최근의 결과값을 메모리로 전송할 수 있게 하면서 현재 적분 결과값의 저장을 위해 버퍼의 블록을 이용가능하게 한다.Since the transfer of the result only occurs from a block of retriever buffers associated with the data mover, the system proceeds to block 418 and swaps the association of blocks of the double buffer. Swapping an associative block makes the block of buffer available for storage of the current integral result while allowing the most recent result to be transferred to memory.

검색기 이중 버퍼의 블록 연관을 스왑한 이후에, 시스템은 블록 420 으로 진행하는데, 블록 420 에서는 데이터 이동기가 초기 코히런트 적분 결과값을 검색기로부터 메모리로 전송한다. 일 실시형태에서, 메모리는 다른 프로세스들과 공유되고, 데이터 이동기는 공유된 메모리에서의 위치로 검색기 버퍼의 DMA 전송을 수행한다.After swapping the block association of the retriever double buffer, the system proceeds to block 420 where the data mover sends the initial coherent integral result from the searcher to memory. In one embodiment, the memory is shared with other processes and the data mover performs a DMA transfer of the searcher buffer to a location in the shared memory.

검색기 결과값을 메모리로 전송한 이후에, 시스템은 블록 430 으로 진행된다. 블록 430 에서, 데이터 이동기는 가속기에 의한 프로세싱을 위해 메모리로부터 샘플 버퍼의 연관 블록으로 검색기 결과값의 적어도 일부를 전송한다. 또 한, 샘플 버퍼는 이중 버퍼로 구성되며, 샘플 버퍼의 각 블록은 데이터 이동기 또는 가속기 중 하나와 연관된다. 샘플 버퍼 블록 연관은, 버퍼의 채움, 타이밍, 또는 일부 다른 이벤트일 수 있는 미리 결정된 이벤트 이후에 스왑된다.After transferring the retriever result to memory, the system proceeds to block 430. At block 430, the data mover sends at least a portion of the retriever results from the memory to an associated block of sample buffers for processing by the accelerator. In addition, the sample buffer consists of a double buffer, with each block of the sample buffer associated with either a data mover or an accelerator. The sample buffer block association is swapped after a predetermined event, which may be the filling, timing, or some other event of the buffer.

시스템은 블록 432 로 진행되고, 가속기에 의한 엑세스를 위해 메모리로부터 에너지 버퍼의 연관 블록으로 이전 에너지 누산값의 적어도 일부를 전송한다. 또한, 시스템은 메모리로부터 에너지 버퍼로 업데이트될 에너지 누산값을 전송하기 이전에 업데이트된 결과값을 에너지 버퍼로부터 메모리로 이동시킬 수도 있다. 또한, 에너지 버퍼는 이중 버퍼로 구성된다. 이중 버퍼의 일 블록은 데이터 이동기와 연관되고, 이중 버퍼의 다른 블록은 가속기와 연관된다. 에너지 버퍼 연관은, 샘플 버퍼 블록의 스왑을 초기화하는 이벤트와 구별될 수도 있는 미리 결정된 이벤트 이후에 스왑될 수 있다.The system proceeds to block 432 and sends at least a portion of the previous energy accumulation value from the memory to the associated block of the energy buffer for access by the accelerator. The system may also move the updated result from the energy buffer to the memory prior to transferring the energy accumulation value to be updated from the memory to the energy buffer. The energy buffer also consists of a double buffer. One block of the double buffer is associated with the data mover, and the other block of the double buffer is associated with the accelerator. The energy buffer association may be swapped after a predetermined event that may be distinguished from an event that initiates swap of the sample buffer block.

가속기는, 연관되는 샘플 버퍼 및 에너지 버퍼의 블록만을 엑세스한다. 따라서, 시스템은 블록 434 로 진행되고, 샘플 버퍼 및 에너지 버퍼의 연관을 스왑하여 가속기는 데이터 이동기에 의해 메모리로부터 전송된 가장 최근의 값을 엑세스할 수 있다. 또한, 데이터 이동기는 가장 최근의 에너지 결과값을 가속기로부터 엑세스할 수 있다. 가속기는 검색기 결과값을 소비하고, 검색기 버퍼에 결과값을 재기록하지 않는다. 그러므로, 검색기 버퍼 블록의 스왑은 데이터 이동기를 위한 추가의 스페이스를 샘플 버퍼로 전송할 수 있게 한다.The accelerator accesses only blocks of associated sample buffers and energy buffers. Thus, the system proceeds to block 434 where the accelerator can access the most recent value sent from memory by the data mover by swapping the association of the sample buffer and the energy buffer. The data mover can also access the most recent energy result from the accelerator. The accelerator consumes searcher results and does not rewrite the results to the searcher buffer. Hence, swapping of the searcher buffer block makes it possible to transfer additional space for the data mover to the sample buffer.

버퍼 연관을 스왑한 이후에, 시스템은 블록 450 으로 진행되고, 연관 샘플 버퍼에서 엑세스 가능한 검색 결과값에 대한 코히런트 누산값을 결정한다. 가 속기는 활성 코드 검색 모드에 기초하여 코히런트 누산값을 결정한다. 가속기는, 샘플 버퍼의 크기에 의존하여 원하는 적분 길이를 지원하기 위해서 샘플 버퍼의 다중 스왑을 위해 대기할 필요가 있을 수도 있다.After swapping the buffer associations, the system proceeds to block 450 and determines a coherent accumulation value for search results accessible in the associated sample buffer. The accelerator determines the coherent accumulation value based on the active code search mode. The accelerator may need to wait for multiple swaps of the sample buffer to support the desired integration length, depending on the size of the sample buffer.

적분 길이가 GPS 신호에 이용된 20 밀리초 데이터 경계와 같은 데이터 경계를 지나는 경우, 가속기는 비트 경계의 발생을 추적할 수 있고 누산값을 계산하는데 있어서 비트 값을 보상할 수 있다.If the integral length crosses a data boundary, such as the 20 millisecond data boundary used in the GPS signal, the accelerator can track the occurrence of the bit boundary and compensate the bit value in calculating the accumulated value.

또한, 가속기는 활성 검색 모드에 기초하여 다중 주파수 빈을 거쳐 코히런트 누산값을 결정할 수 있다. 가속기는 다중 평행 경로를 포함할 수 있고, 다중 주파수를 거친 누산값 또는 다중 검색기 결과값이 공존할 수 있다.The accelerator can also determine the coherent accumulation value via multiple frequency bins based on the active search mode. The accelerator may include multiple parallel paths, and the accumulated value across multiple frequencies or multiple searcher results may coexist.

시스템은 블록 452 로 진행되고, 각각의 코히런트 누산과 연관된 에너지를 결정한다. 가속기는, 예를 들어, 인-위상의 제곱 및 직교 값을 합산함으로써 복소 누산 값과 연관된 에너지를 결정할 수 있다. 일부 실시형태에서. 가속기는 누산된 에너지를 결정하는 것을 생략할 수도 있고, 대신에 에너지 버퍼에 복소 누산 값을 저장할 수도 있다. 가속기가 에너지 값 보다는 코히런트 누산 합계를 버퍼에 저장하는 실시형태에서는, 블록 452-454 에서의 동작이 생략될 수도 있다. 가속기는 코히런트 누산 값으로 에너지 버퍼를 직접 업데이트할 수도 있다.The system proceeds to block 452 and determines the energy associated with each coherent accumulation. The accelerator can determine the energy associated with the complex accumulated value, for example, by summing the squared and orthogonal values of the in-phase. In some embodiments. The accelerator may omit determining the accumulated energy or instead store the complex accumulated value in an energy buffer. In embodiments in which the accelerator stores the coherent accumulation sum rather than the energy value in the buffer, the operation at blocks 452-454 may be omitted. The accelerator can also update the energy buffer directly with coherent accumulation values.

시스템은 블록 454 로 진행되고, 코드 검색 모드에 의해 지정될 수도 있는 임의의 넌-코히런트 에너지 누산값을 결정한다. 넌-코히런트 누산을 결정하기 위해서, 가속기는 에너지 버퍼에 저장된 에너지 그리드의 원하는 부분으로부터 이 전 에너지 값을 판독하고, 대응하는 에너지 값을 합산한다. 일부 실시형태에서, 가속기는 가중된 합계를 결정할 수도 있고, 가장 최근의 에너지 값을 합산하기 이전에 미리 결정된 프랙션으로 이전의 누산된 에너지 합계를 스케일링 할 수도 있다.The system proceeds to block 454 to determine any non-coherent energy accumulation values that may be specified by the code search mode. To determine the non-coherent accumulation, the accelerator reads the previous energy value from the desired portion of the energy grid stored in the energy buffer and sums the corresponding energy values. In some embodiments, the accelerator may determine the weighted sum and scale the previously accumulated energy sum with a predetermined fraction before summing the most recent energy values.

시스템은 블록 456 으로 진행되는데, 블록 456 에서는 가속기가 누산된 에너지 값을 에너지 버퍼에 기록한다. 통상적으로, 시스템은 가속기와 연관된 에너지 버퍼의 블록에 직접 엑세스할 수 없다. 따라서, 시스템은 블록 458 로 진행되어 에너지 블록 연관 스왑의 다음 발생을 대기한다.The system proceeds to block 456, where the accelerator writes the accumulated energy value to the energy buffer. Typically, the system cannot directly access a block of energy buffers associated with the accelerator. Thus, the system proceeds to block 458 waiting for the next occurrence of an energy block associative swap.

블록 460 에서, 데이터 이동기는 가속기에 의해 업데이트된 가장 최근의 에너지 값에 대한 엑세스를 갖는다. 데이터 이동기는 메모리로 업데이트된 에너지 누산값의 DAM 전송을 수행한다. 또한, 데이터 이동기는 메모리로부터의 임의의 에너지 값을 에너지 버퍼에 로딩하여 다음의 넌-코히런트 누산을 지원한다.At block 460, the data mover has access to the most recent energy value updated by the accelerator. The data mover performs a DAM transfer of the updated energy accumulation value to the memory. The data mover also loads any energy value from the memory into the energy buffer to support the next non-coherent accumulation.

블록 460 이후에, 특정 수신된 샘플의 프로세싱은 샘플링으로부터 에너지 누산으로 하나의 전체 프로세싱 경로에서 완료된다. 이중 버퍼링 및 다양한 중간 값의 메모리 저장은, 전체 프로세스가 실질적으로 연속적으로 구동하는 것을 허용한다. 검색기는 초기 누산 경계마다 재구성될 수 있기 때문에, 시스템은 정지할 필요가 없거나 그렇지 않으면 검색 구성에서의 변화를 대기하고, 검색기는 이전에 스케줄링된 태스크를 동작한다. 검색기와 가속기에 대한 입력 모두에서 검색 결과값의 이중 버퍼링은 메모리를 엑세스하는데 있어서 유연성을 증가시키면서 메모리 경쟁을 제거하고, 검색기 및 가속기를 갖는 모듈 또는 집적 회로에 대한 외 부 메모리를 공유될 수 있다. After block 460, processing of the particular received sample is completed in one entire processing path from sampling to energy accumulation. Double buffering and memory storage of various intermediate values allow the entire process to run substantially continuously. Since the searcher may be reconfigured per initial accumulation boundary, the system does not need to stop or otherwise waits for a change in the search configuration, and the searcher runs a previously scheduled task. Double buffering of search results at both the input to the searcher and the accelerator eliminates memory contention while increasing flexibility in accessing the memory and can share external memory for modules or integrated circuits with the searcher and accelerator.

원하는 적분 길이에 대응하는 더 긴 코히런트 적분으로부터 초기 코히런트 적분을 분리하는 것은, 시스템의 스케줄링 및 구성에 있어서 더 많은 유연성을 허용한다. 검색기로부터의 1 밀리초 적분 결과값은 실질적으로 임의의 적분 길이를 지원하는데 이용될 수 있다.Separating the initial coherent integration from the longer coherent integration that corresponds to the desired integration length allows more flexibility in scheduling and configuration of the system. The one millisecond integration result from the searcher can be used to support substantially any integration length.

도 5 는 코드 스페이스 검색을 구현하는 위치 결정 신호 프로세싱 시스템 (500) 의 실시형태의 간략화된 기능 블록도이다. 도 5 의 시스템 (500) 은, 예를 들어, 도 1 의 사용자 단말기 내에 구현될 수 있다. 5 is a simplified functional block diagram of an embodiment of a position determination signal processing system 500 that implements code space search. The system 500 of FIG. 5 may be implemented, for example, in a user terminal of FIG. 1.

시스템 (500) 은 수신된 무선 신호의 복소 샘플을 캡쳐하는 수단 (510) 을 포함한다. 복소 샘플을 캡쳐하는 수단 (510) 은 검색 수단 (520) 에 커플링된다.System 500 includes means 510 for capturing a complex sample of a received wireless signal. The means 510 for capturing the complex sample is coupled to the retrieval means 520.

검색 수단 (520) 은, 복수의 코드 스페이스 검색 태스크를 구성하는 수단으로서 동작하는 하드웨어 레지스터 (522) 에 의해 지적된 코드 스페이스 검색 태스크들 각각에 따라 동작할 수 있다. 검색 수단 (520) 은, 1 밀리초일 수 있는 초기 적분 시간 동안 획득된 복수의 코히런트 적분 결과값을 발생시킨다. 검색 수단 (520) 은, 검색 태스크로 정의된 바와 같이 복수의 코드 스페이스 가설에 대응하는 복수의 코히런트 적분 결과값을 발생시키도록 구성될 수 있다.The retrieval means 520 can operate in accordance with each of the code space retrieval tasks indicated by the hardware register 522, which acts as a means for constructing a plurality of code space retrieval tasks. The search means 520 generates a plurality of coherent integration result values obtained during the initial integration time, which can be one millisecond. The search means 520 can be configured to generate a plurality of coherent integration result values corresponding to the plurality of code space hypotheses as defined by the search task.

제어 수단 (570) 은 하드웨어 레지스터 (522) 에 기록된 값을 제어한다. 하드웨어 레지스터 (522) 내의 값은, 예를 들어, 코드 스페이스 검색 모드에 기초하여 결정되는 메모리 내의 태스크 큐로 지적될 수 있다. 데이터 전송 수단 (530) 은 검색 수단 (520) 에 커플링되고, 복수의 코히런트 적분 결과값을 저장 수단 (540) 으로 전송하도록 동작한다. 또한, 데이터 전송 수단 (530) 은 복수의 코히런트 적분 결과값을 저장 수단 (540) 으로부터 가속 수단 (550) 내의 그렇지 않으면 가속 수단에 커플링된 버퍼링 수단 (562 및 564) 으로 전송하도록 동작한다. 특히, 데이터 전송 수단 (530) 은 적분 길이에 대응하는 다수의 코히런트 적분 결과값을 전송한다.The control means 570 controls the value recorded in the hardware register 522. The value in hardware register 522 may be pointed to a task queue in memory that is determined based on, for example, a code space search mode. The data transmission means 530 is coupled to the retrieval means 520 and is operative to transmit a plurality of coherent integration result values to the storage means 540. In addition, the data transmission means 530 operates to transmit the plurality of coherent integration result values from the storage means 540 to the buffering means 562 and 564 coupled to the acceleration means in the acceleration means 550. In particular, the data transmission means 530 transmits a plurality of coherent integration result values corresponding to the integration length.

가속 수단 (550) 은 복수의 코히런트 적분 결과값의 코히런트 누산을 결정하는 수단으로서 동작한다. 코히런트 누산과 연관된 적분 길이 및 주파수 오프셋은 프로그래머블 코드 스페이스 검색 모드에 기초된다.Acceleration means 550 acts as means for determining coherent accumulation of a plurality of coherent integration result values. The integral length and frequency offset associated with the coherent accumulation are based on the programmable code space search mode.

본 명세서에서는 코드 스페이스 검색의 시스템, 장치, 및 방법이 설명된다. 설명된 시스템, 장치, 및 방법은, GPS 신호, AFLT 신호 등, 또는 일부 다른 코드 확산 신호를 처리하도록 사용자 단말기에서 구현될 수 있다. 예를 들어, 코드 스페이스 검색 프로세스 및 장치는 수신된 확산 스펙트럼 신호의 임의의 코드 스페이스 검색에 적용 가능하다. 특정 실시형태로 GPS 신호에 대한 애플리케이션을 설명하였으나, 청구된 주제는 GPS 에 제한되지 않고 코드 스페이스 검색에 일반적이다. 검색기는 초기 적분 시간 또는 주기 동안 코히런트 적분 결과값을 결정하도록 구성된다. 검색기 결과값은 가속기에서 수행된 코히런트 적분 및 넌-코히런트 에너지 누산에 대한 중간 값으로서 이용된다.Described herein is a system, apparatus, and method of code space search. The described systems, apparatus, and methods may be implemented in a user terminal to process GPS signals, AFLT signals, or the like, or some other code spreading signal. For example, the code space search process and apparatus is applicable to any code space search of the received spread spectrum signal. Although applications have been described in particular embodiments for GPS signals, the claimed subject matter is not limited to GPS and is typical for code space searches. The searcher is configured to determine the coherent integration result for the initial integration time or period. The searcher results are used as intermediate values for coherent integration and non-coherent energy accumulation performed in the accelerator.

중간 값은 이중 버퍼에 저장되어 효과적이고 비경쟁적인 메모리로 데이터를 전송할 수 있다. 이중 버퍼링의 이용은 낮거나 레이턴시가 없는 코드 검색 모 드의 재구성을 허용한다.The intermediate value is stored in a double buffer to transfer data to the effective and uncompetitive memory. The use of double buffering allows reconfiguration of low or no latency code search mode.

또한, 초기 적분 주기를 지나 이어지는 코히런트 적분 프로세싱의 분리는, 데이터의 여분의 획득 및 분석을 필요로 하지 않고 코드 스페이스 검색 모드의 유연한 재구성을 허용한다. 실질적으로 실시간으로 코드 스페이스 검색을 재구성하는 성능은 보다 효과적인 코드 스페이스 검색을 허용하고, 빠른 코드 획득으로부터 고 감도 코드 스페이스 검색으로의 재구성을 허용한다.In addition, the separation of coherent integration processing following the initial integration period allows for flexible reconfiguration of the code space search mode without the need for extra acquisition and analysis of the data. The ability to substantially reconstruct the code space search in real time allows for more efficient code space search and allows reconstruction from fast code acquisition to high sensitivity code space search.

본 명세서에서 이용된 바와 같이, 커플링 또는 접속된이라는 용어는 간접적 커플링 뿐만 아니라 직접적 커플링 또는 접속을 의미하는데 이용된다. 2 개 이상의 블록, 모듈, 디바이스, 또는 장치가 커플링되는 경우에서는, 2 개의 커플링된 블록들 사이에 하나 이상의 중재 (intervening) 블록들이 존재한다.As used herein, the term coupled or connected is used to mean indirect coupling as well as direct coupling or connection. In cases where two or more blocks, modules, devices, or devices are coupled, one or more intervening blocks exist between the two coupled blocks.

본 명세서에 기술된 실시형태와 연관되어 설명된 다양한 예시적인 로직 블록, 모듈, 및 회로는 일반적인 목적의 프로세서, 디지털 신호 프로세서 (DSP), RISC (Reduced Instruction Set Computer) 프로세서, ASIC (application specific integrated circuit), FPGA (field programmable gate array) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트나 트랜지스터 로직, 이산 하드웨어 컴포넌트, 또는 본 명세서에 설명된 기능을 수행하도록 설계된 이들의 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 다른 방법으로, 그 프로세서는 임의의 종래 프로세서, 제어기, 마이크로 제어기, 또는 상태 기계일 수도 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예를 들어, DSP 와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들 또는 임의의 기타 다른 구성물로 구현될 수도 있다.Various illustrative logic blocks, modules, and circuits described in connection with the embodiments described herein include general purpose processors, digital signal processors (DSPs), reduced instruction set computer (RISC) processors, and application specific integrated circuits. ), A field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in other ways, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, eg, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other configuration.

여기에 개시된 실시형태들과 관련하여 설명된 방법 또는 알고리즘의 단계는 프로세서에 의해 실행되는 하드웨어, 소프트웨어 모듈, 또는 그 2 개의 결합으로 직접 구현될 수도 있다. 방법 또는 프로세스에서의 다양한 단계 또는 활동은 도시된 순서로 수행될 수도 있고, 또는 다른 순서로 수행될 수도 있다. 또한, 하나 이상의 프로세스 또는 방법 단계가 생략될 수도 있고, 또는 하나 이상의 프로세스 또는 방법 단계가 그 방법 및 프로세스에 추가될 수도 있다. 추가 단계, 블록, 또는 활동은 방법 및 프로세스의 시작, 종료, 또는 중간에 존재하는 엘리먼트에 추가될 수도 있다.The steps of a method or algorithm described in connection with the embodiments disclosed herein may be implemented directly in hardware, a software module, or a combination of the two executed by a processor. The various steps or activities in the method or process may be performed in the order shown, or may be performed in another order. In addition, one or more process or method steps may be omitted, or one or more process or method steps may be added to the methods and processes. Additional steps, blocks, or activities may be added to elements that exist at the beginning, end, or in the middle of methods and processes.

개시되어 있는 실시형태들에 대한 상기의 설명은 당업자로 하여금 본 발명을 제조 또는 이용할 수 있도록 제공된다. 당업자는 이들 실시형태에 대한 다양한 변형들을 명백히 알 수 있으며, 여기에서 정의된 일반적인 원리들은 본 발명의 사상 또는 범위를 벗어나지 않고도 다른 실시형태들에 적용될 수도 있다. 따라서, 본 발명은 여기에서 설명된 실시형태들에 제한되는 것이 아니라, 여기에서 개시된 원리 및 신규한 특징들과 부합하는 최광의 범위를 부여하려는 것이다.The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments described herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (33)

코드 스페이스 검색을 위한 장치로서,Device for code space searching, 메모리;Memory; 복수의 프로그래머블 태스크들을 수행하고 각각의 프로그래머블 태스크에 대해 초기 적분 시간 주기 동안 획득된 복수의 코히런트 적분 (coherent integration) 결과값을 발생시키도록 구성된 검색기;A searcher configured to perform a plurality of programmable tasks and generate a plurality of coherent integration result values obtained during an initial integration time period for each programmable task; 선택 가능한 검색 모드에 의해 결정된 하나 이상의 코히런트 적분 길이들 및 주파수 오프셋들에 기초하여 검색기의 적분 결과값의 적어도 하나의 코히런트 누산을 결정하도록 구성된 가속기; 및An accelerator configured to determine at least one coherent accumulation of an integral result of the searcher based on one or more coherent integration lengths and frequency offsets determined by the selectable search mode; And 상기 검색기로부터 상기 메모리로 상기 적분 결과값을 전송하도록 구성되고, 상기 메모리로부터 상기 가속기로 상기 적분 결과값을 전송하도록 구성된 데이터 이동기를 포함하는, 코드 스페이스 검색을 위한 장치.And a data mover configured to transfer the integral result value from the searcher to the memory, the data mover configured to transmit the integral result value from the memory to the accelerator. 제 1 항에 있어서,The method of claim 1, 상기 검색기는 이중 버퍼링된 검색기 결과값 버퍼를 포함하고, 상기 이중 버퍼링된 검색기 결과값 버퍼의 각 블록은 상기 검색기 또는 상기 데이터 이동기 중 하나와 연관되는, 코드 스페이스 검색을 위한 장치.The retriever comprises a double buffered retriever result buffer, wherein each block of the double buffered retriever result buffer is associated with either the retriever or the data mover. 제 1 항에 있어서,The method of claim 1, 상기 검색기는 하나의 초기 적분 주기에서 최대 32 개의 태스크들을 수행하도록 구성되는, 코드 스페이스 검색을 위한 장치.And the searcher is configured to perform up to 32 tasks in one initial integration period. 제 1 항에 있어서,The method of claim 1, 각각의 태스크는 연관된 코드의 다수의 코드 위상 가설들을 지정하고, 상기 복수의 코히런트 적분 결과값들 각각은 상기 다수의 코드 위상 가설들 중 하나에 기초되는, 코드 스페이스 검색을 위한 장치.Each task specifies a plurality of code phase hypotheses of an associated code, and wherein each of the plurality of coherent integration result values is based on one of the plurality of code phase hypotheses. 제 1 항에 있어서,The method of claim 1, 상기 초기 적분 주기는 코드 주기를 포함하는, 코드 스페이스 검색을 위한 장치.And the initial integration period comprises a code period. 제 1 항에 있어서,The method of claim 1, 상기 초기 적분 주기는 1 밀리초를 포함하는, 코드 스페이스 검색을 위한 장치.And the initial integration period comprises one millisecond. 제 1 항에 있어서,The method of claim 1, 상기 검색기는 초기 적분 주기마다 업데이트될 수 있는 태스크 큐에 기초하여 상기 복수의 프로그래머블 태스크들을 결정하도록 구성되는, 코드 스페이스 검색을 위한 장치.And the retriever is configured to determine the plurality of programmable tasks based on a task queue that can be updated every initial integration period. 제 7 항에 있어서,The method of claim 7, wherein 상기 검색기는 현재의 초기 적분 주기에 대응하는 태스크 큐에서의 태스크들의 프로세싱 동안, 미래의 초기 적분 주기에 대한 태스크 큐를 결정하도록 구성되는, 코드 스페이스 검색을 위한 장치.And the searcher is configured to determine a task queue for a future initial integration period during processing of tasks in the task queue corresponding to the current initial integration period. 제 1 항에 있어서,The method of claim 1, 상기 가속기는 상기 적어도 하나의 코히런트 누산의 각각에 대해 에너지 값을 발생시키도록 또한 구성되는, 코드 스페이스 검색을 위한 장치.And the accelerator is further configured to generate an energy value for each of the at least one coherent accumulation. 제 9 항에 있어서,The method of claim 9, 상기 가속기는 에너지 값들의 넌-코히런트 적분을 발생시키도록 또한 구성되는, 코드 스페이스 검색을 위한 장치.And the accelerator is further configured to generate a non-coherent integration of energy values. 제 1 항에 있어서,The method of claim 1, 상기 가속기는 0 헤르츠 초과 500 헤르츠 이하인 주파수 스팬 (span) 에 걸쳐 상기 적어도 하나의 코히런트 누산을 발생시키도록 구성되는, 코드 스페이스 검색을 위한 장치.And the accelerator is configured to generate the at least one coherent accumulation over a frequency span that is greater than 0 hertz and less than 500 hertz. 제 1 항에 있어서,The method of claim 1, 상기 가속기는 이중 버퍼를 포함하고, 상기 이중 버퍼의 각 블록은 상기 가속기 또는 상기 데이터 이동기 중 하나와 연관되며, 상기 가속기 및 상기 데이터 이동기에 의한 엑세스는 연관되는 상기 이중 버퍼의 상기 블록에 한정되는, 코드 스페이스 검색을 위한 장치.The accelerator including a double buffer, each block of the double buffer being associated with one of the accelerator or the data mover, wherein access by the accelerator and the data mover is defined to the block of the double buffer to which it is associated, Device for code space searching. 제 1 항에 있어서,The method of claim 1, 상기 코히런트 적분 길이에 부분적으로 기초하여 주파수 오프셋의 개수가 결정되는, 코드 스페이스 검색을 위한 장치. Wherein the number of frequency offsets is determined based in part on the coherent integration length. 코드 스페이스 검색을 위한 장치로서,Device for code space searching, 코드 스페이스 검색에 할당된 부분을 갖는 메모리로서, 상기 부분은 활성 프로그래머블 검색 모드에 의존하는, 상기 메모리; 및A memory having a portion allocated for code space search, the portion depending on an active programmable search mode; And 상기 메모리에 커플링된 집적 회로를 포함하고, An integrated circuit coupled to the memory, 상기 집적 회로는,The integrated circuit, 복수의 프로그래머블 검색 태스크들 각각에 대해 초기 적분 주기 동안 결정된 복수의 코히런트 적분 결과값을 발생시키도록 구성된 검색기;A searcher configured to generate a plurality of coherent integration result values determined during an initial integration period for each of the plurality of programmable search tasks; 상기 활성 프로그래머블 검색 모드에 의해 결정된 코히런트 적분 길이 및 주파수 가설을 통해 코히런트 적분 결과값의 코히런트 누산을 결정하도록 구성된 가속기; 및An accelerator configured to determine a coherent accumulation of coherent integration results through the coherent integration length and frequency hypothesis determined by the active programmable search mode; And 상기 검색기와 상기 메모리 사이, 및 상기 가속기와 상기 메모리 사이 에서 DMA 데이터 전송을 수행하도록 구성된 데이터 이동기를 포함하는, 상기 집적 회로를 포함하는, 코드 스페이스 검색을 위한 장치.And a data mover configured to perform DMA data transfer between the searcher and the memory and between the accelerator and the memory. 제 14 항에 있어서,The method of claim 14, 각각의 검색 태스크는 일 코드 (a code) 로부터 선택된 코드 가설 세트를 지정하는, 코드 스페이스 검색을 위한 장치.Each search task specifies a set of code hypotheses selected from a code. 제 14 항에 있어서,The method of claim 14, 상기 검색기는 하나의 초기 적분 주기에서 최대 32 개의 상이한 검색 태스크들을 지원하도록 구성되는, 코드 스페이스 검색을 위한 장치.And the searcher is configured to support up to 32 different search tasks in one initial integration period. 제 14 항에 있어서,The method of claim 14, 상기 데이터 이동기는 상기 메모리로부터 상기 가속기의 이중 버퍼링된 샘플 버퍼의 연관된 블록으로 데이터 전송을 수행하도록 구성되는, 코드 스페이스 검색을 위한 장치.And the data mover is configured to perform data transfer from the memory to an associated block of the double buffered sample buffer of the accelerator. 제 14 항에 있어서,The method of claim 14, 상기 데이터 이동기는 상기 검색기의 이중 버퍼링된 검색기 버퍼의 연관된 블록으로부터 상기 메모리로 데이터 전송을 수행하도록 구성되는, 코드 스페이스 검색을 위한 장치.And the data mover is configured to perform a data transfer from the associated block of the double buffered retriever buffer of the retriever to the memory. 코드 스페이스 검색 방법으로서,As a code space search method, 수신된 무선 신호의 복소 샘플들을 캡쳐하는 단계;Capturing complex samples of the received wireless signal; 복수의 코드 스페이스 검색 태스크들을 구성하는 단계;Configuring a plurality of code space search tasks; 초기 적분 시간 동안 획득된 복수의 코히런트 적분 결과값을 발생시키도록 상기 코드 스페이스 검색 태스크들 각각을 실행시키는 단계; 및Executing each of the code space search tasks to generate a plurality of coherent integration result values obtained during an initial integration time; And 프로그래머블 코드 스페이스 검색 모드에 기초하여 복수의 코히런트 적분 결과값의 코히런트 누산, 상기 코히런트 누산과 연관된 주파수 오프셋 및 적분 길이를 결정하는 단계를 포함하는, 코드 스페이스 검색 방법.Determining a coherent accumulation of a plurality of coherent integration results, a frequency offset associated with the coherent accumulation, and an integration length based on a programmable code space search mode. 제 19 항에 있어서,20. The method of claim 19, 상기 코히런트 누산의 에너지를 결정하는 단계를 더 포함하는, 코드 스페이스 검색 방법.Determining the energy of the coherent accumulation. 제 19 항에 있어서,20. The method of claim 19, 상기 코히런트 누산의 에너지를 결정하는 단계; 및Determining energy of the coherent accumulation; And 상기 에너지에 대응하는 에너지 그리드 위치의 넌-코히런트 적분을 결정하는 단계를 더 포함하는, 코드 스페이스 검색 방법.Determining a non-coherent integration of an energy grid location corresponding to the energy. 제 21 항에 있어서,22. The method of claim 21, 가속기와 연관된 에너지 이중 버퍼의 블록에 상기 넌-코히런트 적분을 저장하는 단계;Storing the non-coherent integral in a block of energy double buffer associated with an accelerator; 상기 에너지 이중 버퍼의 블록의 연관을 데이터 이동기로 스왑 (swap) 하는 단계; 및Swapping an association of blocks of the energy double buffer with a data mover; And 상기 에너지 이중 버퍼의 블록으로부터 메모리로 상기 넌-코히런트 적분을 전송하는 단계를 더 포함하는, 코드 스페이스 검색 방법.And transmitting the non-coherent integral from the block of energy double buffer to a memory. 제 19 항에 있어서,20. The method of claim 19, 상기 복수의 코히런트 적분 결과값을 검색기와 연관된 검색기 이중 버퍼의 블록에 저장하는 단계를 더 포함하는, 코드 스페이스 검색 방법.Storing the plurality of coherent integration result values in a block of a retriever double buffer associated with a retriever. 제 23 항에 있어서,24. The method of claim 23, 상기 검색기 이중 버퍼의 블록의 연관을 데이터 이동기로 스왑하는 단계; 및Swapping an association of blocks of the retriever double buffer with a data mover; And 상기 검색기 이중 버퍼의 블록으로부터 메모리로 코히런트 적분 결과값을 전송하는 단계를 더 포함하는, 코드 스페이스 검색 방법.And transmitting a coherent integral result from the block of the retriever double buffer to memory. 제 19 항에 있어서,20. The method of claim 19, 상기 코드 스페이스 검색 태스크들 각각을 실행시키는 단계는,Executing each of the code space search tasks, 복수의 코드 스페이스 가설을 결정하는 단계; 및Determining a plurality of code space hypotheses; And 상기 코드 스페이스 가설들 각각을 상기 복소 샘플들의 적어도 일부에 상관 시키는 단계를 포함하는, 코드 스페이스 검색 방법.Correlating each of the code space hypotheses to at least some of the complex samples. 제 19 항에 있어서,20. The method of claim 19, 상기 코히런트 누산을 결정하는 단계는,Determining the coherent accumulation, 상기 복수의 코히런트 적분 결과값을 메모리로부터 샘플 이중 버퍼의 제 1 블록으로 전송하는 단계; Transferring the plurality of coherent integration results from a memory to a first block of a sample double buffer; 상기 이중 버퍼의 제 1 블록의 연관을 가속기로 스왑하는 단계; 및Swapping an association of the first block of the double buffer with an accelerator; And 상기 제 1 블록에서 상기 복수의 코히런트 적분 결과값의 상기 코히런트 누산을 결정하는 단계를 포함하는, 코드 스페이스 검색 방법.Determining the coherent accumulation of the plurality of coherent integration result values in the first block. 코드 스페이스 검색 방법으로서,As a code space search method, 수신된 무선 신호의 복소 샘플들을 캡쳐하는 단계;Capturing complex samples of the received wireless signal; 복수의 코드 스페이스 가설에 대응하는 복수의 코히런트 적분 결과값을 발생시키도록 복수의 코드 스페이스 검색 태스크들을 실행시키는 단계;Executing a plurality of code space search tasks to generate a plurality of coherent integration result values corresponding to the plurality of code space hypotheses; 상기 복수의 코히런트 적분 결과값을 메모리에 저장하는 단계;Storing the plurality of coherent integration result values in a memory; 적분 길이에 대응하는 코히런트 적분 결과값의 개수를 메모리로부터 검색하는 단계; 및Retrieving from the memory the number of coherent integration result values corresponding to the integration length; And 상기 개수의 코히런트 적분 결과값의 코히런트 누산을 결정하는 단계를 포함하는, 코드 스페이스 검색 방법.Determining a coherent accumulation of the number of coherent integration results. 제 27 항에 있어서,28. The method of claim 27, 상기 코히런트 누산의 에너지를 결정하는 단계를 더 포함하는, 코드 스페이스 검색 방법.Determining the energy of the coherent accumulation. 제 27 항에 있어서,28. The method of claim 27, 상기 코히런트 누산의 에너지에 기초하여 넌-코히런트 에너지 적분을 결정하는 단계를 더 포함하는, 코드 스페이스 검색 방법.And determining a non-coherent energy integration based on the energy of the coherent accumulation. 제 27 항에 있어서,28. The method of claim 27, 상기 복수의 코드 스페이스 검색 태스크들 각각을 실행시키는 단계는, 상기 복소 샘플들의 적어도 일부에 대한 복수의 코드 가설의 상관을 결정하는 단계를 포함하는, 코드 스페이스 검색 방법.Executing each of the plurality of code space search tasks includes determining a correlation of a plurality of code hypotheses for at least some of the complex samples. 제 27 항에 있어서,28. The method of claim 27, 상기 복수의 코히런트 적분 결과값을 메모리에 저장하는 단계는,The storing of the plurality of coherent integration result values in a memory may include: 상기 복수의 코히런트 적분 결과값의 적어도 일부를 이중 버퍼의 블록에 저장하는 단계;Storing at least a portion of the plurality of coherent integration results in a block of double buffers; 상기 이중 버퍼의 블록의 연관을 스왑하는 단계; 및Swapping associations of blocks of the double buffer; And 상기 이중 버퍼의 블록으로부터 메모리로 상기 복수의 코히런트 적분 결과값의 상기 일부를 전송하는 단계를 포함하는, 코드 스페이스 검색 방법.Transferring said portion of said plurality of coherent integration result values from a block of said double buffer to a memory. 코드 스페이스 검색을 위한 장치로서,Device for code space searching, 수신된 무선 신호의 복소 샘플들을 캡쳐하는 수단;Means for capturing complex samples of a received wireless signal; 복수의 코드 스페이스 검색 태스크들을 구성하는 수단;Means for configuring a plurality of code space search tasks; 초기 적분 시간 동안 획득된 복수의 코히런트 적분 결과값을 발생시키도록 상기 코드 검색 태스크들 각각에 따라 검색하는 수단; 및Means for searching according to each of said code search tasks to generate a plurality of coherent integration result values obtained during an initial integration time; And 프로그래머블 코드 스페이스 검색 모드에 기초하여 복수의 코히런트 적분 결과값의 코히런트 누적, 상기 코히런트 누적과 연관된 주파수 오프셋 및 적분 길이를 결정하는 수단을 포함하는, 코드 스페이스 검색 장치.Means for determining a coherent accumulation of a plurality of coherent integration result values, a frequency offset associated with the coherent accumulation, and an integral length based on a programmable code space search mode. 코드 스페이스 검색 장치로서,Code space lookup device, 수신된 무선 신호의 복소 샘플들을 캡쳐하는 수단;Means for capturing complex samples of a received wireless signal; 복수의 코드 스페이스 가설에 대응하는 복수의 코히런트 적분 결과값을 발생시키도록 복수의 코드 스페이스 검색 태스크들 각각에 따라 상기 복소 샘플들을 검색하는 수단;Means for retrieving the complex samples according to each of the plurality of code space retrieval tasks to generate a plurality of coherent integration result values corresponding to a plurality of code space hypotheses; 상기 복수의 코히런트 적분 결과값을 저장하는 수단;Means for storing the plurality of coherent integration result values; 적분 길이에 대응하는 코히런트 적분 결과값의 개수를 전송하는 수단; 및Means for transmitting the number of coherent integration result values corresponding to the integration length; And 상기 다수의 코히런트 적분 결과값의 코히런트 누산을 결정하는 수단을 포함하는, 코드 스페이스 검색 장치.And means for determining a coherent accumulation of the plurality of coherent integration result values.
KR1020087024301A 2006-03-02 2007-03-02 Method and apparatus for code space search in a receiver KR101147942B1 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US77917206P 2006-03-02 2006-03-02
US60/779,172 2006-03-02
US88532307P 2007-01-17 2007-01-17
US60/885,323 2007-01-17
PCT/US2007/063225 WO2007120995A1 (en) 2006-03-02 2007-03-02 Method and apparatus for code space search in a receiver

Publications (2)

Publication Number Publication Date
KR20080100840A KR20080100840A (en) 2008-11-19
KR101147942B1 true KR101147942B1 (en) 2012-05-24

Family

ID=38609838

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087024301A KR101147942B1 (en) 2006-03-02 2007-03-02 Method and apparatus for code space search in a receiver

Country Status (11)

Country Link
EP (1) EP1992080A1 (en)
JP (1) JP5295788B2 (en)
KR (1) KR101147942B1 (en)
CN (1) CN101395814B (en)
AU (1) AU2007238489A1 (en)
BR (1) BRPI0708489A2 (en)
CA (1) CA2640761C (en)
IL (1) IL193093A0 (en)
MX (1) MX2008010827A (en)
TW (1) TWI370627B (en)
WO (1) WO2007120995A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI426397B (en) * 2009-06-29 2014-02-11 Lee Ming Inst Technology Can be used in a signal interval in the unequal spacing of the sample, the signal in this interval between a single and multiple numerical integration device.
EP2326022A1 (en) * 2009-11-23 2011-05-25 Nxp B.V. Device for acquiring a spread spectrum signal
JP5549471B2 (en) * 2010-08-09 2014-07-16 株式会社デンソー Receiving machine
US8792438B2 (en) * 2010-10-07 2014-07-29 Futurewei Technologies, Inc. System and method for search space reconfiguration in a communications system
KR101440692B1 (en) * 2012-05-31 2014-09-15 한국과학기술원 2-dimensional compressed correlator for fast gnss and spread spectrum signal acquisition and robust tracking and apparatus thereof
US10111248B2 (en) * 2012-06-29 2018-10-23 Blackberry Limited Method and system for cross-subframe scheduling during carrier aggregation
US9107159B2 (en) 2013-06-07 2015-08-11 Apple Inc. Enhancing jitter buffer performance through radio level feedback
DE102016109342B4 (en) 2016-05-20 2024-02-22 Infineon Technologies Ag RADAR SENSOR SYSTEM FOR GESTURE RECOGNITION AND METHOD FOR RADAR-BASED GESTURE RECOGNITION

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005022187A2 (en) * 2003-09-02 2005-03-10 Sirf Technology, Inc. Control and features for satellite positioning system receivers

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6603803B1 (en) * 1999-03-12 2003-08-05 Navcom Technology, Inc. Global positioning system receiver for monitoring the satellite transmissions and for reducing the effects of multipath error on coded signals and carrier phase measurements
FI19992653A (en) * 1999-12-09 2001-06-10 Nokia Mobile Phones Ltd A method for synchronizing a receiver and a receiver
GB0126325D0 (en) * 2001-11-02 2002-01-02 Koninl Philips Electronics Nv Method and apparatus for spread spectrum signal acquisition
GB0130804D0 (en) * 2001-12-22 2002-02-06 Koninkl Philips Electronics Nv Method and apparatus for signal receipt and acquisition
US20040062298A1 (en) * 2002-10-01 2004-04-01 Mcdonough John G. System and method for detecting direct sequence spread spectrum signals using pipelined vector processing
US7702002B2 (en) * 2004-01-28 2010-04-20 Qualcomm Incorporated Rapid acquisition methods and apparatus for GPS signals
US7471717B2 (en) * 2004-05-17 2008-12-30 Yi Ping Huang Apparatus and method for acquiring spread-spectrum signals
EP1801991A3 (en) * 2005-12-21 2008-08-20 Nemerix SA Optimal use of resources for signal processors

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005022187A2 (en) * 2003-09-02 2005-03-10 Sirf Technology, Inc. Control and features for satellite positioning system receivers

Also Published As

Publication number Publication date
CN101395814B (en) 2013-02-06
EP1992080A1 (en) 2008-11-19
BRPI0708489A2 (en) 2011-05-31
CA2640761A1 (en) 2007-10-25
TWI370627B (en) 2012-08-11
KR20080100840A (en) 2008-11-19
JP2009535605A (en) 2009-10-01
JP5295788B2 (en) 2013-09-18
TW200805908A (en) 2008-01-16
CN101395814A (en) 2009-03-25
WO2007120995A1 (en) 2007-10-25
IL193093A0 (en) 2009-02-11
MX2008010827A (en) 2008-09-05
CA2640761C (en) 2014-09-30
AU2007238489A1 (en) 2007-10-25

Similar Documents

Publication Publication Date Title
US8279910B2 (en) Method and apparatus for code space search in a receiver
KR101147942B1 (en) Method and apparatus for code space search in a receiver
US8138972B2 (en) Signal processing system for satellite positioning signals
US8593345B2 (en) Signal processing system for satellite positioning signals
RU2611069C1 (en) Device for simultaneous reception of signals from various satellite navigation systems
JP5769971B2 (en) GNSS receiver and signal tracking circuit and system
US20230288574A1 (en) Modernized global navigation satellite system (gnss) receivers and commercially viable consumer grade gnss receivers
EP2093584A1 (en) Processing received satellite radio signals
WO2002068981A2 (en) Memory reduction method for a dsp-based gps processor
KR101170334B1 (en) Multiphase code generator and gnss receiver
EP1589349A2 (en) Support of the determination of a correlation
US20170115400A1 (en) Memory Optimized GNSS Correlator
EP2748802B1 (en) Packet-based input/output interface for a correlation engine
US7936846B2 (en) Low gate count sequential multitap correlator
Schmidt et al. Exploiting acceleration features of LabVIEW platform for real-time GNSS software receiver optimization
TW202124994A (en) Modernized global navigation satellite system receivers
JP5128585B2 (en) Method of using hardware and software for acquisition, tracking and hosting in a CDMA receiver
US20100245170A1 (en) Gnss receiver
TW202219549A (en) Modernized global navigation satellite system receivers
RU161091U1 (en) DEVICE FOR SIMULTANEOUS RECEIVING OF SIGNALS OF VARIOUS SATELLITE NAVIGATION SYSTEMS

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190327

Year of fee payment: 8