(57)【要約】移動局において位置信号を検出する回路が、少なくとも１つの信号検出アルゴリズムの実行のための命令を生成し、さらに、この信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行する汎用プロセッサと、汎用プロセッサの命令に応答して、この少なくとも１つの信号検出アルゴリズムを実行する特殊用途のハードウェアブロックとを含み、汎用プロセッサと特殊用途のハードウェアブロックの少なくとも１つは、この少なくとも１つの信号検出アルゴリズムのパフォーマンスを最適化する少なくとも１つの効率プロセスを実行するように構成される。また、方法、およびこれらの方法のステップを実施するマシン可読媒体も開示される。
2009542107.tif 000002
【特許請求の範囲】
【請求項１】
移動局において位置信号を検出する回路であって、
少なくとも１つの信号検出アルゴリズムを実行するための命令を生成し、さらに、前記信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行する汎用プロセッサと、
前記汎用プロセッサの前記命令に応答して、前記少なくとも１つの信号検出アルゴリズムを実行する特殊用途のハードウェアブロックとを備え、前記汎用プロセッサと前記特殊用途のハードウェアブロックの少なくとも１つは、前記少なくとも１つの信号検出アルゴリズムのパフォーマンスを最適化する少なくとも１つの効率プロセスを実行するように構成される回路。
【請求項２】
前記少なくとも１つの効率プロセスは、探索継続時間プロセス、命令依存関係低減プロセス、データ交換低減プロセス、コード編成プロセス、およびメモリキャッシングプロセスの少なくとも１つを備える請求項１に記載の回路。
【請求項３】
前記探索継続時間プロセスは、厳しい時間制約が存在する場合、より短い探索を実行すること、および前記汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを備える請求項２に記載の回路。
【請求項４】
前記依存関係低減プロセスは、アルゴリズムを並行に実行することをさらに備える請求項２に記載の回路。
【請求項５】
前記依存関係低減プロセスは、浮動小数点演算装置を使用して多層アルゴリズムを実行することを備える請求項４に記載の回路。
【請求項６】
前記データ交換低減プロセスは、前記汎用プロセッサと前記特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータを特定することを備える請求項２に記載の回路。
【請求項７】
前記データ交換低減プロセスは、前記汎用プロセッサに前記クリティカルなデータだけを通信することを備える請求項６に記載の回路。
【請求項８】
前記コード編成プロセスは、ルックアヘッド命令処理とパイプライン化の少なくとも１つを備える請求項２に記載の回路。
【請求項９】
前記メモリキャッシングは、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項２に記載の回路。
【請求項１０】
前記メモリキャッシングプロセスステップは、前記汎用プロセッサが利用できない間、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項２に記載の回路。
【請求項１１】
移動局において位置信号を検出する方法であって、
少なくとも１つの信号検出アルゴリズムの実行のための命令を、汎用プロセッサにおいて生成するとともに、前記信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行するステップと、
前記汎用プロセッサからの前記命令に応答して、前記少なくとも１つの信号検出アルゴリズムを特殊用途のハードウェアブロックにおいて実行するステップと、
前記アルゴリズムのパフォーマンスを最適化する少なくとも１つの効率プロセスを実行するステップとを備える方法。
【請求項１２】
少なくとも１つの効率プロセスを実行する前記ステップは、
探索継続時間プロセスを実施するステップと、
命令依存関係低減プロセスを実施するステップと、
データ交換低減プロセスを実施するステップと、
コード編成プロセスを実施するステップと、
メモリキャッシングプロセスを実施するステップの少なくとも１つを備える請求項１１に記載の方法。
【請求項１３】
探索継続時間プロセスを実施する前記ステップは、厳しい時間制約が存在する場合、より短い探索を実行すること、および前記汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを備える請求項１２に記載の方法。
【請求項１４】
依存関係低減プロセスを実施する前記ステップは、アルゴリズムを並行に実行することをさらに備える請求項１２に記載の方法。
【請求項１５】
依存関係低減プロセスを実施する前記ステップは、浮動小数点演算装置を使用して多層アルゴリズムを実行することを備える請求項１２に記載の方法。
【請求項１６】
データ交換低減プロセスを実施する前記ステップは、前記汎用プロセッサと前記特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータを特定することを備える請求項１２に記載の方法。
【請求項１７】
データ交換低減プロセスを実施する前記ステップは、前記汎用プロセッサに前記クリティカルなデータだけを通信することを備える請求項１６に記載の方法。
【請求項１８】
コード編成プロセスを実施する前記ステップは、ルックアヘッド命令処理とパイプライン化の少なくとも１つを備える請求項１２に記載の方法。
【請求項１９】
メモリキャッシングプロセスを実施する前記ステップは、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項１２に記載の方法。
【請求項２０】
メモリキャッシングプロセスを実施する前記ステップは、前記汎用プロセッサが利用できない間、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項１２に記載の方法。
【請求項２１】
汎用プロセッサと特殊用途のハードウェアブロックの少なくとも１つによって実行されると、位置信号を、前記特殊用途のハードウェアブロックに検出させる命令を備えるマシン可読媒体であって、
前記命令は、
少なくとも１つの信号検出アルゴリズムの実行のための命令を汎用プロセッサにおいて生成する命令と、
前記汎用プロセッサにおいて前記信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行する命令と、
前記汎用プロセッサからの前記命令に応答する、前記特殊用途のハードウェアブロックにおける前記少なくとも１つの信号検出アルゴリズムの実行のための命令と、
前記汎用プロセッサと前記特殊用途のハードウェアブロックの少なくとも１つにおいて少なくとも１つの効率プロセスを実行して、前記アルゴリズムのパフォーマンスを最適化するための命令とを備えるマシン可読媒体。
【請求項２２】
少なくとも１つの効率プロセスの実行のための前記命令は、
探索継続時間プロセスの実行のための命令と、
命令依存関係低減プロセスの実行のための命令と、
データ交換低減プロセスの実行のための命令と、
コード編成プロセスの実行のための命令と、
メモリキャッシングプロセスの実行のための命令の少なくとも１つを備える請求項２１に記載のマシン可読媒体。
【請求項２３】
探索継続時間プロセスの実行のための前記命令は、厳しい時間制約が存在する場合、より短い探索を実行すること、および前記汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを備える請求項２２に記載のマシン可読媒体。
【請求項２４】
依存関係低減プロセスの実行のための前記命令は、アルゴリズムを並行に実行するための命令をさらに備える請求項２３に記載のマシン可読媒体。
【請求項２５】
依存関係低減プロセスの実行のための前記命令は、浮動小数点演算装置を使用した多層アルゴリズムの実行のための命令を備える請求項２２に記載のマシン可読媒体。
【請求項２６】
データ交換低減プロセスの実行のための前記命令は、前記汎用プロセッサと前記特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータの特定のための命令を備える請求項２２に記載のマシン可読媒体。
【請求項２７】
データ交換低減プロセスの実行のための前記命令は、前記クリティカルなデータだけを通信することを備える請求項２６に記載のマシン可読媒体。
【請求項２８】
コード編成プロセスの実行のための前記命令は、ルックアヘッド命令処理とパイプライン化の少なくとも１つを備える請求項２２に記載のマシン可読媒体。
【請求項２９】
前記メモリキャッシング命令の実行のための前記命令は、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項２２に記載のマシン可読媒体。
【請求項３０】
キャッシングプロセスの実行のための前記命令は、前記汎用プロセッサが利用できない間、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項２２に記載のマシン可読媒体。
【請求項３１】
移動局において位置信号を検出する回路であって、
少なくとも１つの信号検出アルゴリズムの実行のための命令を、汎用プロセッサにおいて生成するとともに、前記信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行するための手段と、
前記汎用プロセッサからの前記命令に応答して、前記少なくとも１つの信号検出アルゴリズムを特殊用途のハードウェアブロックにおいて実行するための手段と、
前記少なくとも１つの信号検出アルゴリズムのパフォーマンスを最適化する少なくとも１つの効率プロセスを、前記汎用プロセッサと前記特殊用途のハードウェアブロックの少なくとも１つにおいて実行するための手段とを備える回路。
【請求項３２】
前記少なくとも１つの効率プロセスは、探索継続時間プロセス、命令依存関係低減プロセス、データ交換低減プロセス、コード編成プロセス、およびメモリキャッシングプロセスの少なくとも１つを備える請求項３１に記載の回路。
【請求項３３】
探索継続時間プロセスは、厳しい時間制約が存在する場合、より短い探索を実行すること、および前記汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを備える請求項３２に記載の回路。
【請求項３４】
前記依存関係低減プロセスは、アルゴリズムを並行に実行することをさらに備える請求項３２に記載の回路。
【請求項３５】
前記依存関係低減プロセスは、浮動小数点演算装置を使用して多層アルゴリズムを実行することを備える請求項３４に記載の回路。
【請求項３６】
前記データ交換低減プロセスは、前記汎用プロセッサと前記特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータを特定することを備える請求項３２に記載の回路。
【請求項３７】
前記データ交換低減プロセスは、前記汎用プロセッサに前記クリティカルなデータだけを通信することを備える請求項３６に記載の回路。
【請求項３８】
前記コード編成プロセスは、ルックアヘッド命令処理とパイプライン化の少なくとも１つを備える請求項３２に記載の回路。
【請求項３９】
前記メモリキャッシングプロセスは、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項３２に記載の回路。
【請求項４０】
前記メモリキャッシングプロセスは、前記汎用プロセッサが利用できない間、前記特殊用途のハードウェアブロックの出力をキャッシュすることを備える請求項３２に記載の回路。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、「Methods for Coping with Inefficiency from General Purpose Processors in Implementing Signal Detection Algorithms」という名称の、本出願の譲受人に譲渡され、開示の全体が、参照により明確に本明細書に組み込まれている、２００６年６月２１日に出願した米国特許仮出願第６０／８１５，６７５号の優先権を米国法典第３５編１１９条（ｅ）の下で主張する。
【０００２】
本明細書で説明される方法およびデバイスは、信号処理アルゴリズムおよび類似したアルゴリズムを実装する際、より詳細には、測位アプリケーションのための信号検出アルゴリズムを実装する際に直面するような、汎用プロセッサにおける非効率に対処し、そのような非効率を補償することを一般に対象とする。
【背景技術】
【０００３】
移動局などの多くのデバイスは、無線信号などの検出のためのアルゴリズムなどの、アルゴリズムを実装するための回路を含む。信号検出アルゴリズムなどのアルゴリズムを実装する際、低潜時、高い割込み能力、および高帯域幅を有する処理の必要性が、存在する。したがって、これらのアルゴリズムは、汎用プロセッサではなく、カスタムマイクロコントローラによって制御される特殊用途の専用ハードウェアブロックを使用して従来実装されてきた。
【０００４】
そのような従来のデバイスの一例が、カスタムマイクロコントローラ、Ｐｍｉｃｒｏ１００４によって制御される特殊用途のハードウェアブロックＳ１００６を有する、移動局などにおいて使用するための典型的な従来の回路１０００を示す、図１０に示される。そのようなカスタムマイクロコントローラは、ＤＳＰ（ディジタル信号プロセッサ）、モデム、モデムＤＳＰ、プロセッサ、探索エンジンなどと一般に呼ばれる。回路１０００は、バス／メモリインターフェース１０１４を介してＰｍｉｃｒｏ１００４に制御信号を与える、またはＰｍｉｃｒｏ１００４の制御をもたらすＰｍａｃｒｏ１００２などの汎用プロセッサを通常、含む。制御信号は、通常、高レベルの命令である。Ｐｍｉｃｒｏ１００４による特殊用途のハードウェアブロックＳ１００６の制御は、インターフェース１０１８を介する。
【０００５】
従来のデバイスのカスタムマイクロコントローラＰｍｉｃｒｏ１００４は、Ｐｍｉｃｒｏ１００４のアプリケーションのために特別に設計される（専用である）。カスタムマイクロコントローラＰｍｉｃｒｏ１００４は、特殊用途のハードウェアブロックＳ１００６を制御するために、特化された命令を使用するように構成される。Ｐｍｉｃｒｏ１００４は、高い割込みレートを維持するように通常、構成され、低潜時および高帯域幅で特殊用途のハードウェアブロックＳ１００６と通信することができる。このことは、一つには、Ｐｍｉｃｒｏ１００６が、高度に統合された設計を有することによる。この構成は、信号検出などのディジタル信号処理において特に有用である。
【０００６】
しかし、これらのタイプのアプリケーションにおいて、Ｐｍｉｃｒｏ１００４などのカスタムマイクロコントローラを使用することからもたらされる、いくつかの問題および欠点が存在する。例えば、そのようなカスタムデバイスは、ダイサイズの点で実装するのが高価であり、より高い製造費用、より高い複雑度などをもたらす。また、Ｐｍｉｃｒｏ１００４などのカスタムマイクロコントローラが使用するコードの保守および開発も、費用を増大させる。特に、そのようなコード保守およびコード開発は、特化された技能を要求する。これらの技能は、例えば、カスタムマイクロコントローラのためのカスタムアセンブリプログラミング、およびカスタムマイクロコントローラのインフラストラクチャを含め、カスタムマイクロコントローラが使用される実際の特殊用途と関係することが可能である。
【０００７】
実装の費用は、カスタムマイクロコントローラを無くすことによって低減されることが可能である。カスタムマイクロコントローラがない場合、回路１０００は、汎用プロセッサから直接に特殊用途のハードウェアブロックＳ１００６を制御しなければならない。しかし、汎用プロセッサによる制御は、高潜時、低い維持可能な割込みレート、および低通信帯域幅を含む重大な問題および欠点を有し、したがって、当業者は、そのようなアプローチを実用可能とは考えない。特に、これらの要因は、カスタムマイクロコントローラを含む設計と比べて、数桁大きい悪影響を受けるため、当業者は、このアプローチを却下する。
【０００８】
したがって、従来のカスタムマイクロコントローラ実装が提供するのと比べて、より効率的で、費用対効果の大きい仕方で、同時に、カスタムマイクロコントローラ設計で実現可能な低潜時、高い維持可能な割込みレート、および大きい帯域幅を提供しながら、測位アプリケーションのための複雑な信号処理アルゴリズム、特に、信号検出アルゴリズムを実行する必要性が、存在する。
【発明の概要】
【０００９】
本明細書で説明される方法およびデバイスは、以上の必要性を満たすとともに、汎用プロセッサが、より効率的に動作することを可能にする、１つまたは複数の対処技術の使用を介して、カスタムマイクロコントローラではなく、汎用プロセッサを使用して信号処理アルゴリズムを実行することによって、従来技術の欠点および欠陥を回避する。この斬新な対処方法は、大幅な実装費用の節約、ならびに本明細書の説明から明らかな他の利点をもたらす。
【００１０】
本明細書で説明されるものは、ＳＰＳ（衛星測位システム）の移動局において使用される信号検出アルゴリズムに関して特に有利であるが、これらの方法およびデバイスは、カスタムマイクロコントローラなしで動作することが望ましい、長い信号積分が使用されることが可能な、任意の信号検出アプリケーションおよび信号復調アプリケーションを含め、他のアプリケーションにも適用可能であることが、当業者には理解されよう。このため、これらの方法およびデバイスは、専用の一般的なプロセッサ、ならびにディジタル信号処理が関与しないが、本明細書で説明される問題と類似した問題を有するアルゴリズムを実行するプロセッサにも適用可能であり得る。
【００１１】
一態様によれば、移動局において位置信号を検出する回路は、少なくとも１つの信号検出アルゴリズムの実行のための命令を生成するとともに、この信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行する汎用プロセッサと、汎用プロセッサの命令に応答して、少なくとも１つの信号検出アルゴリズムを実行する特殊用途のハードウェアブロックとを含み、汎用プロセッサと特殊用途のハードウェアブロックの少なくとも１つは、少なくとも１つの信号検出アルゴリズムのパフォーマンスを最適化する少なくとも１つの効率プロセスを実行するように構成される。
【００１２】
この少なくとも１つの効率プロセスは、探索継続時間プロセス、命令依存関係低減プロセス、データ交換低減プロセス、コード編成プロセス、およびメモリキャッシングプロセスの少なくとも１つを含むことが可能である。探索継続時間プロセスは、厳しい時間制約が存在する場合、より短い探索を実行すること、および汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを含むことが可能である。依存関係低減プロセスは、複数のアルゴリズムを並行に実行すること、および／または浮動小数点演算装置を使用して多層アルゴリズムを実行することをさらに含むことが可能である。データ交換低減プロセスは、汎用プロセッサと特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータを特定すること、およびそのクリティカルなデータだけを汎用プロセッサに通信することを含むことが可能である。コード編成プロセスは、ルックアヘッド命令処理とパイプライン化の少なくとも１つを含むことが可能である。メモリキャッシングは、特殊用途のハードウェアブロックの出力をキャッシュすることを含むことが可能である。メモリキャッシングプロセスは、例えば、汎用プロセッサが利用できない間、特殊用途のハードウェアブロックの出力をキャッシュすることを含むことが可能である。
【００１３】
別の態様によれば、移動局において位置信号を検出する方法は、少なくとも１つの信号検出アルゴリズムの実行のための命令を、汎用プロセッサにおいて生成するとともに、信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行するステップと、汎用プロセッサからの命令に応答して、この少なくとも１つの信号検出アルゴリズムを特殊用途のハードウェアブロックにおいて実行するステップと、アルゴリズムのパフォーマンスを最適化する少なくとも１つの効率プロセスを実行するステップとを含む。
【００１４】
少なくとも１つの効率プロセスを実行するステップは、探索継続時間プロセスを実施するステップと、命令依存関係低減プロセスを実施するステップと、データ交換低減プロセスを実施するステップと、コード編成プロセスを実施するステップと、メモリキャッシングプロセスを実施するステップの少なくとも１つのステップを含むことが可能である。探索持続時間プロセスを実施するステップは、厳しい時間制約が存在する場合、より短い探索を実行すること、および汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを含むことが可能である。依存関係低減プロセスを実施するステップは、複数のアルゴリズムを並行に実行すること、および／または浮動小数点演算装置を使用して多層アルゴリズムを実行することをさらに含むことが可能である。データ交換低減プロセスを実施するステップは、汎用プロセッサと特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータを特定すること、およびそのクリティカルなデータだけを汎用プロセッサに通信することを含むことが可能である。コード編成プロセスを実施するステップは、ルックアヘッド命令処理とパイプライン化の少なくとも１つを含むことが可能である。メモリキャッシングプロセスを実施するステップは、例えば、汎用プロセッサが利用できない間、特殊用途のハードウェアブロックの出力をキャッシュすることを含むことが可能である。
【００１５】
さらに別の態様では、マシン可読媒体が、汎用プロセッサと特殊用途のハードウェアブロックの少なくとも１つによって実行されると、位置信号を、この特殊用途のハードウェアブロックに検出させる命令を含み、この命令は、少なくとも１つの信号検出アルゴリズムの実行のための命令を汎用プロセッサにおいて生成する命令と、この汎用プロセッサにおいて信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行する命令と、汎用プロセッサからの命令に応答する、特殊用途のハードウェアブロックにおける少なくとも１つの信号検出アルゴリズムの実行のための命令と、汎用プロセッサと特殊用途のハードウェアブロックの少なくとも１つにおいて少なくとも１つの効率プロセスを実行して、アルゴリズムのパフォーマンスを最適化するための命令とを含む。
【００１６】
少なくとも１つの効率プロセスの実行のための命令は、探索継続時間プロセスの実行のための命令、命令依存関係低減プロセスの実行のための命令、データ交換低減プロセスの実行のための命令、コード編成プロセスの実行のための命令、およびメモリキャッシングプロセスの実行のための命令の少なくとも１つを含むことが可能である。探索継続時間プロセスの実行のための命令は、厳しい時間制約が存在する場合、より短い探索を実行すること、および汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを含むことが可能である。依存関係低減プロセスの実行のための命令は、複数のアルゴリズムを並行に実行するための命令、および／または浮動小数点演算装置を使用して多層アルゴリズムを実行するための命令をさらに含むことが可能である。データ交換低減プロセスの実行のための命令は、汎用プロセッサと特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータを特定し、そのクリティカルなデータだけを通信するための命令を含むことが可能である。コード編成プロセスの実行のための命令は、ルックアヘッド命令処理とパイプライン化の少なくとも１つを含むことが可能である。メモリキャッシングの実行のための命令は、例えば、汎用プロセッサが利用できない間、特殊用途のハードウェアブロックの出力をキャッシュすることを含むことが可能である。
【００１７】
さらに別の態様では、移動局において位置信号を検出する回路が、少なくとも１つの信号検出アルゴリズムの実行のための命令を汎用プロセッサにおいて生成するため、および信号検出アルゴリズムに関連しない他の少なくとも１つの機能を実行するための手段と、汎用プロセッサの命令に応答して、特殊用途のハードウェアブロックにおいて少なくとも１つの信号検出アルゴリズムを実行するための手段と、汎用プロセッサと特殊用途のハードウェアブロックの少なくとも１つにおいて少なくとも１つの効率プロセスを実行して、少なくとも１つの信号検出アルゴリズムのパフォーマンスを最適化するための手段とを含む。
【００１８】
少なくとも１つの効率プロセスは、探索継続時間プロセス、命令依存関係低減プロセス、データ交換低減プロセス、コード編成プロセス、およびメモリキャッシングプロセスの少なくとも１つを含むことが可能である。探索継続時間プロセスは、厳しい時間制約が存在する場合、より短い探索を実行すること、および汎用プロセッサに対する要求がより少ない場合、より長い探索を実行することを含むことが可能である。依存関係低減プロセスは、複数のアルゴリズムを並行に実行すること、および／または浮動小数点演算装置を使用して多層アルゴリズムを実行することを含むことが可能である。データ交換低減プロセスは、汎用プロセッサと特殊用途のハードウェアブロックとの間で交換されるべきクリティカルなデータを特定すること、およびそのクリティカルなデータだけを汎用プロセッサに通信することを含むことが可能である。コード編成プロセスは、ルックアヘッド命令処理とパイプライン化の少なくとも１つを含むことが可能である。メモリキャッシングプロセスは、例えば、汎用プロセッサが利用できない間、特殊用途のハードウェアブロックの出力をキャッシュすることを含むことが可能である。
【００１９】
本明細書で説明される方法およびデバイスのさらなる特徴、利点、および実施形態は、以下の詳細な説明、図面、および特許請求の範囲を考慮することから説明される、または明白となることが可能である。さらに、以上の概要、および以下の詳細な説明はともに、例示的であり、主張される方法およびデバイスの範囲を限定することなしに、さらなる説明を与えることを意図していることを理解されたい。
【００２０】
本明細書で説明される方法およびデバイスのさらなる理解をもたらすように含められる添付の図面は、本明細書に組み込まれ、本明細書の一部分を成し、これらの方法およびデバイスの態様を例示するとともに、詳細な説明と一緒に、これらの方法およびデバイスの原理を説明する役割をする。これらの方法およびデバイスならびにそれらが実施される様々な方法の基本的な理解に必要である可能性がある以上に詳細に、これらの方法およびデバイスの構造上の詳細を示そうとする試みは、全く行われない。
【図面の簡単な説明】
【００２１】
【図１】移動局において、アルゴリズムを実装する際の汎用プロセッサからの非効率に対処するための、本明細書で説明される原理に従って構築されたデバイスを示す概略図。
【図２】カスタムマイクロコントローラではなく、汎用プロセッサを使用してアルゴリズムを実行するのに使用されることが可能である様々な対処方法を示す流れ図。
【図３】探索継続時間対処方法を示す流れ図。
【図４】命令間依存関係低減対処方法を示す流れ図。
【図５】データ交換低減対処方法を示す流れ図。
【図６】コード編成対処方法を示す流れ図。
【図７】メモリキャッシング対処方法を示す流れ図。
【図８】本明細書で説明される原理に従って構築された衛星システムおよび／またはセルラーシステムにおける異なる２つの移動局の実装を一緒に示す概略図。
【図９】移動局以外の他のアプリケーションにおいて使用されることが可能な、本明細書で説明される原理に従って構築された別の回路を示す概略図。
【図１０】ディジタル信号検出アルゴリズムを実行する特殊用途のハードウェアブロックを制御するカスタムマイクロコントローラを有する従来の回路を示す図。
【発明を実施するための形態】
【００２２】
本明細書で説明される方法およびデバイスの様々な態様、ならびにこれらの方法およびデバイスの利点の詳細が、添付の図面で説明され、さらに／または例示され、以下の説明において詳述される限定的でない実施形態および例を参照して、より完全に説明される。図面に例示される特徴は、必ずしも一律の縮尺に従って描かれておらず、１つの実施形態の特徴は、本明細書で明言されない場合でも、当業者には認識されるとおり、他の実施形態で使用されることも可能であることに留意されたい。よく知られた構成要素および処理技術の説明は、これらの実施形態を不必要に不明瞭にしないように、省略される可能性がある。本明細書で使用される例は、単に、本明細書で説明される方法およびデバイスの原理が実施されることが可能な仕方の理解を促進するとともに、当業者が本発明を実施することをさらに可能にすることを意図している。したがって、本明細書の例および実施形態は、添付の特許請求の範囲、および該当する法律だけによって規定される、本発明の範囲を限定するものと解釈されるべきではない。さらに、同様の符号は、図面のいくつかの図のすべてにおいて同様の部分を表すことに留意されたい。
【００２３】
図１は、移動局における、本発明の原理に従って構築された例示的なデバイスを示す概略図である。より具体的には、図１は、ＳＰＳ（衛星測位システム）（図示せず）から無線信号を受信する際に使用するための移動局１００の例示的な仕組みおよび構成を示す。移動局１００は、ＳＰＳからの信号検出または信号獲得のためのディジタル信号処理アルゴリズムなどの、アルゴリズムを実装することができる回路１０２を含む。
【００２４】
移動局１００は、無線環境において動作するように構成されることが可能である。より具体的には、移動局１００は、無線信号を受信するアンテナ１２０を含むことが可能である。無線信号は、後段で説明されるＲＡＴ（無線アクセス技術）のいずれかであることが可能である。無線信号は、当技術分野でよく知られた仕方で無線周波数ユニット１２２の中に受信されることが可能である。図１に示されるインターフェース１２４が、無線周波数ユニット１２２に応答することが可能である。インターフェース１２４は、この無線信号を処理して、後段で説明され、当技術分野でよく知られるとおりに処理するために、回路１０２の中に向かわせる、リンク１２６、１２６を含む１つまたは複数の構成要素を含むことが可能である。
【００２５】
特殊用途のハードウェアブロック１０６が、信号検出アルゴリズムまたは信号獲得アルゴリズムなどの信号処理アルゴリズムを実行するために、回路内に配置される。特殊用途のハードウェアブロック１０６は、バス１１０に対するインターフェース１１４を介して、データ信号および／または制御信号と対話することができる。汎用プロセッサ１０４が、特殊用途のハードウェアブロック１０６に制御を与える。ハードウェアブロック１０６を制御するカスタムマイクロコントローラは、全く存在しない。特殊用途のハードウェアブロック１０６の制御は、バス１１０に対するインターフェース１１６、１１６を介して、バス／メモリインターフェース１１２を介することが可能である。そのようなインターフェースは、オプションであり、汎用プロセッサ１０４は、任意の知られている仕方で特殊用途のハードウェアブロック１０６と通信することができる。
【００２６】
さらに、回路１０２は、インターフェース１１８を介してバス１１０とインターフェースをとるメモリ１０８を含むことが可能である。さらに、汎用プロセッサ１０４は、当技術分野でよく知られているとおり、ハードウェアアクセラレータを含むことが可能である。図１に示される様々な構成要素の構成は、単に例示的であることに留意されたい。その点で、回路１０２は、より多い、またはより少ない構成要素、より多い、またはより少ない構成要素の異なる構成などを含むことが可能である。図１の構成は、例示的であり、他の構成も、回路１０２が、特殊用途のハードウェアブロック１０６を制御するためのカスタムマイクロコントローラを含まない限り、本発明の趣旨および範囲に含まれる。カスタムマイクロコントローラの欠如により、回路１０２の実装の費用が大幅に低減される。より具体的には、回路１０２は、一つには、より小さい製造ダイサイズ、およびより低い複雑度のため、より低い費用で製造されることが可能である。さらに、回路１０２は、コード、カスタムコントローラをコーディングすること、およびコード保守に関して、実装費用がより低い。しかし、回路１０２は、本発明の後段で説明される対処構成および／または対処方法なしには、カスタムマイクロコントローラ（図１０に示されるような）を使用していた従来の回路と比べた場合、高潜時、低い維持可能な割込みレート、低帯域幅などを含め、多数の重大な（桁違いの）欠点に悩まされる。
【００２７】
これらの欠点を緩和し、カスタムマイクロコントローラなしにアルゴリズムを実装する際の汎用プロセッサにおける非効率に対処する、本発明の様々な方法は、後段で別に説明される。しかし、図２は、本発明の方法の１つまたは複数が一緒に使用可能であり得ることを図示する。このため、本発明の対処方法は、一緒に使用されることも、１つまたは複数が、別々に実施されることも可能である。さらに、当技術分野で知られている他の対処方法も企図され、このため、本発明の範囲および趣旨に含まれる。
【００２８】
図３は、本発明の探索継続時間対処方法を示す流れ図である。特に、図３の方法は、探索を使用する信号検出アルゴリズムに関して特殊用途のハードウェアブロック１０６に与えられる各命令に関連する探索継続時間を変更するための探索継続時間３００方法を対象とする。各命令に関連する、いくつかのシナリオの間の探索継続時間を長くすることにより、制御フローが、最小限に抑えられることが可能である。さらに、探索継続時間を選択的に長くすることにより、必要に応じて、より短い探索を実施することによる、全体的なアルゴリズムパフォーマンスに対するあらゆる種類の悪影響が回避されることが可能である。
【００２９】
特に、時間制約および探索条件が、探索継続時間を変更するための基礎であることが可能である。ステップ３０２で、アプリケーションが、厳しい時間制約、または比例して高まるフェージングレートを示す探索条件を有する場合、探索継続時間方法が、より短い個々の探索を実施し、したがって、より高い探索レートを実施することが可能である。
【００３０】
また、探索継続時間を変更することは、他の基準に基づくことも可能である。一態様では、図３に示される探索継続時間３００方法の技術は、特殊用途のハードウェアブロック１０６に与えられる個々の探索命令の長さの限度が、高レベルのアプリケーションパラメータから導き出されることが可能であるという事実を活用することが可能である。これらの高レベルのアプリケーションパラメータには、ユーザ対話性要因、低レベルの通信路パラメータなど、例えば、ミリ秒またはマイクロ秒より高いユーザ対話性要因が含まれることが可能である。ユーザ対話性要因には、移動体ユーザのロケーションが、例えば、毎秒１という、何らかの公称レートで探索エンジンによってもたらされる結果から計算されることを要求することが可能な位置アプリケーションが、さらに含まれることが可能である。ユーザ位置は、高いレートで変化するものとは予期されないので、新たな位置、およびそれによる新たな探索は、そのような公称レートより高いレートで行われる必然性はない可能性がある。別の例は、１つのセルから別のセルに移動するユーザに関するハンドオーバサポートである。信号環境の定期的サンプリング（信号検出および／または復調）により、新たな基地局からの信号の検出が可能になり、そのため、ハンドオーバプロセスの開始が可能になり得る。しかし、変化のレートは、やはり、低い、例えば、毎マイクロ秒１以下であると考えられることが可能である。低レベルの通信路パラメータには、フェージングレート、クロックドリフトなどが含まれることが可能である。
【００３１】
ステップ３０４に示されるとおり、ユーザ対話性、通信路フェージング、クロックドリフトなどに関するレートが、汎用プロセッサ１０４の処理速度と比べて小さいと判定される場合、探索は、所望される探索レート制約を満たしながら、より長い継続時間で実行されることが可能である。もちろん、探索継続時間は、汎用プロセッサ１０４をより効率的にするために、任意のタイプの基準に基づいて変更されることが可能である。
【００３２】
したがって、特殊用途のハードウェアブロック１０６に与えられる各命令に関連する探索継続時間を選択的に変更することにより、呼制御が、最小限に抑えられ、全体的なアルゴリズムパフォーマンスが受ける影響が最小になる。
【００３３】
図４は、本発明の命令間依存関係低減対処方法を示す流れ図である。特に、本発明のこの態様は、ステップ４００によって示されるとおり、特殊用途のハードウェアブロック１０６に与えられる命令間の依存関係を低減する。ステップ４０２で、命令間の依存関係の低減はまず、多くの探索命令が、互いに独立していると見なされることが可能であり、特殊用途のハードウェアブロック１０６において並行に実行されることが可能であるという事実を利用する。より具体的には、ステップ４０２に示されるとおり、異なる時間仮説、周波数仮説、符号仮説などの様々なパラメータを探索することが、並行に行われることが可能である。この並行の探索により、加速されたレートで探索結果を得ることができることが可能になる。
【００３４】
次に、従来のアプローチは、時間符号仮説および／または周波数符号仮説の所与の組み合わせに関して、多層探索が順次に行われることを通常、要求していた。このことは、一つには、探索のダイナミックレンジの限度に起因していた。例えば、探索は、所望されるダイナミックレンジの各１／Ｎセグメントをカバーするように実行されなければならない。通常、これらＮ回の探索は、順次に、さらに、該当しない不必要な信号探索および信号レンジの必要性を抑えるような依存した仕方で実行されなければならない。この順次の動作は、Ｎ回の探索を実施するために要求される時間を増大させていた。
【００３５】
ステップ４０４に示されるとおり、本発明の探索は、浮動小数点演算装置アプローチを使用して実施されることが可能である。浮動小数点演算装置の使用により、ダイナミックレンジ全体が、単一回の探索動作でカバーされることが可能になる。探索動作の回数を減らすことによって、順次の探索および／または探索動作、命令依存関係の必要性が、回避される。このため、探索プロセス時間が、大幅に短縮される。さらに、他のタイプのアルゴリズムが、この並行方法および浮動小数点演算装置方法を使用することも可能である。したがって、図３の方法の様々な態様は、命令間の依存関係を低減し、そのため、探索を実行するのにかかる時間を短縮する。
【００３６】
図５は、本発明のデータ交換低減対処方法を示す流れ図である。本発明の方法のこの態様は、具体的には、汎用プロセッサ１０４と特殊用途のハードウェアブロック１０６の間のデータ交換を低減することに向けられる。特に、本発明のこの態様は、アルゴリズムが、一般に、大量の信号検出データをもたらし、このデータの一部分だけしか必要とされないという事実を利用する。検査に値するデータ（「クリティカルなデータブロック」）を特定して、汎用プロセッサ１０４内の特殊用途のハードウェアブロック１０６の間でこのデータだけしか伝送しないことにより、全体的なデータ交換が低減されることが可能である。例えば、信号検出アルゴリズムは、最も強い信号ピーク、またはより強い信号ピークのいくつかに関連するデータだけが、信号検出プロセスのために検査されることを要求する。
【００３７】
ステップ５０２で、特殊用途のハードウェアブロック１０６が、いずれが、汎用プロセッサ１０４による検査に値するクリティカルなデータであるかを決定することができる。例えば、信号処理において、このことは、特殊用途のハードウェアブロック１０６内に実装されるピークソータとして実施されることが可能である。その場合、このピークソータは、最も強いピーク、またはより強いピークの指標および値を決定することができる。ステップ５０４で、最も強いピークデータ、および／またはより強いピークデータだけが、汎用プロセッサ１０４に通信される。それほど「クリティカル」でないデータは、汎用プロセッサ１０４に送信されず、このため、データ交換は低減され、汎用プロセッサ１０４は、より効率的に動作することができる。
【００３８】
図６は、本発明のコード編成対処方法を示す流れ図である。本発明のこの態様は、図５に示されるステップのいくつかを使用することが可能であり、様々なコード編成アプローチをさらに使用することが可能である。より具体的には、本発明のこの態様は、アルゴリズムをより効率的に実行するために、汎用プロセッサ１０４において様々な形態のコード編成を使用することができる。
【００３９】
本発明のこの態様において使用されることが可能である様々なタイプのコード編成６００のいくつかには、汎用プロセッサ１０４および／または特殊用途のハードウェアブロック１０６において使用するためのルックアヘッド命令および／またはパイプライン化された命令の使用が含まれる。ルックアヘッドアプローチは、或る分岐変数を選択して、その変数の値の１つを評価することの効果を予測する傾向がある下位手順として考えられることが可能である。ルックアヘッドアプローチの２つの主な目的は、次に評価すべき変数、およびその変数に割り当てるべき値の順序を選択することである。パイプライン化アプローチは、直列に接続されたデータ処理要素のセットを利用して、１つの要素の出力が、次の要素への入力であるようにすることである。パイプライン化により、プロセッサのサイクル時間が短縮され、命令スループット、および単位時間内に実行されることが可能な命令の数が増加する。パイプライン命令は、順次の命令が同時に実行されて、分岐遅延、およびその他の問題を防止することができる。
【００４０】
したがって、ルックアヘッド命令および／またはパイプライン命令を図５のデータ交換低減技術と一緒に使用することにより、アルゴリズムを実行する際の汎用プロセッサのより効率的な動作がもたらされる。さらに、当技術分野で知られている他のコード編成アプローチも企図され、本発明の範囲に含まれる。
【００４１】
図７は、本発明のメモリキャッシング対処方法を示す流れ図である。特に、メモリバッファの使用により、汎用プロセッサ１０４の潜時が隠され、または短縮され、さらに特殊用途のハードウェアブロック１０６が、より効率的に実行されることが可能になる。より具体的には、本発明のこの態様は、より効率的なアルゴリズム実装をもたらすためにメモリキャッシング技術７００を使用することができる。例えば、特殊用途のハードウェアブロック１０６からの出力データは、汎用プロセッサ１０４が利用できない時間にわたって、ステップ７０２に示されるとおり、バッファリングされることが可能である。これに関して、汎用プロセッサ１０４は、様々な潜時関連のパフォーマンス問題に悩まされる可能性がある。さらに、本発明の図３の技術および図５の技術において使用される様々なメモリ割当て制約の存在が、特殊用途のハードウェアブロック１０６からの出力データレートを最小限に抑え、データが、汎用プロセッサ１０４に通信されないようにする。この制限を克服するのに、汎用プロセッサ１０４によって必要とされているデータが、メモリバッファの中に格納されることが可能である。したがって、メモリバッファの使用により、汎用プロセッサ１０４の潜時が短縮され、または隠され、さらに特殊用途のハードウェアブロック１０６が、より効率的に実行されることが可能になる。
【００４２】
本明細書で説明される、信号処理および信号獲得を含む位置特定技術は、ＷＷＡＮ（無線ワイドエリアネットワーク）、ＷＬＡＮ（無線ローカルエリアネットワーク）、ＷＰＡＮ（無線パーソナルエリアネットワーク）などの、様々な移動局１００で使用するための、図８に示されるアンテナ９０４に関連する無線通信網などの様々な無線通信網９０６に関して使用されることが可能である。本明細書で使用されるＭＳ（移動局）とは、セルラー電話機、無線通信デバイス、ユーザ機器、他のＰＣＳ（パーソナル通信システム）デバイス、位置特定技術を使用する位置特定デバイスなどを指す。「ネットワーク」と「システム」という用語は、しばしば、互いに区別なく使用される。ＷＷＡＮは、ＣＤＭＡ（符号分割多元接続）網、ＴＤＭＡ（時間分割多元接続）網、ＦＤＭＡ（周波数分割多元接続）網、ＯＦＤＭＡ（直交周波数分割多元接続）網、ＳＣ−ＦＤＭＡ（シングルキャリア周波数分割多元接続）網などであることが可能である。ＣＤＭＡ網は、ｃｄｍａ２０００、Ｗ−ＣＤＭＡ（広帯域ＣＤＭＡ）などの１つまたは複数のＲＡＴ（無線アクセス技術）を実施することが可能である。ｃｄｍａ２０００は、ＩＳ−９５標準、ＩＳ−２０００標準、およびＩＳ−８５６標準を含む。ＴＤＭＡ網は、ＧＳＭ（Global System for Mobile Communications）、Ｄ−ＡＭＰＳ（Digital Advanced Mobile Phone System）、または他の何らかのＲＡＴを実施することが可能である。ＧＳＭおよびＷ−ＣＤＭＡは、３ＧＰＰ（「3rd Generation Partnership Project」）と名付けられたコンソーシアムからの文書において説明されている。ｃｄｍａ２０００は、３ＧＰＰ２（「3rd Generation Partnership Project 2」）と名付けられたコンソーシアムからの文書において説明されている。３ＧＰＰ文書および３ＧＰＰ２文書は、公開されている。ＷＬＡＮは、ＩＥＥＥ８０２．１１ｘ網であることが可能であり、ＷＰＡＮは、Ｂｌｕｅｔｏｏｔｈ（登録商標）網、ＩＥＥＥ８０２．１５ｘ網、または他の何らかのタイプのネットワークであることが可能である。また、これらの技術は、ＷＷＡＮ、ＷＬＡＮ、および／またはＷＰＡＮの任意の組み合わせに関して使用されることも可能である。
【００４３】
図８にさらに示されるとおり、移動局１００、１００が、本明細書で一般的にＳＰＳ（衛星測位システム）とそれぞれが呼ばれる、ＧＰＳ（Global Positioning System）、Ｇａｌｉｌｅｏ、ＧＬＯＮＡＳＳ、ＮＡＶＳＴＡＲ、ＧＮＳＳ、これらのシステムの組み合わせからの衛星を使用するシステム、または将来に開発される任意のＳＰＳからであることが可能な、衛星９０２からの信号を受信することが可能である。また、本明細書で使用されるＳＰＳは、擬似衛星システムも含むものと理解される。
【００４４】
本明細書で説明される方法および装置は、米国のＧＰＳ（Global Positioning System）、露国のＧｌｏｎａｓｓシステム、欧州のＧａｌｉｌｅｏシステム、衛星システムの組み合わせからの衛星を使用する任意のシステム、または将来に開発される任意の衛星システムなどの、様々なＳＰＳ（衛星測位システム）で使用されることが可能である。さらに、開示される方法および装置は、擬似衛星、または衛星と擬似衛星の組み合わせを利用する位置特定システムで使用されることが可能である。擬似衛星は、ＧＰＳ時間と同期されることが可能な、Ｌ帯域（または他の周波数）のキャリア信号上で変調されたＰＮ符号、または他のレンジング符号（ＧＰＳ信号またはＣＤＭＡセルラー信号に類似する）をブロードキャストする地上ベースの送信機である。それぞれのそのような送信機には、遠隔の受信機による識別を許すように、一意のＰＮ符号が割り当てられることが可能である。擬似衛星は、軌道周回衛星からのＧＰＳ信号が、トンネル内、鉱山内、建物内、ビルの谷間、または他の閉じられた区域内などで、利用できない可能性がある状況において、有用である。擬似衛星の別の実装は、無線ビーコンとして知られている。本明細書で使用される「衛星」という用語は、擬似衛星、擬似衛星の均等物、さらに、場合により、その他を含むことが意図される。本明細書で使用される「ＳＰＳ信号」という用語は、擬似衛星、または擬似衛星の均等物からのＳＰＳ様の信号を含むことが意図される。
【００４５】
前述した本発明の対処技術は、ＳＰＳから無線信号を受信する移動局において使用するのに特に有利であるが、これらの対処技術の１つまたは複数は、ＳＰＳ信号検出および／またはＳＰＳ信号獲得の環境外の他のディジタル信号処理環境において使用されてもよい。さらに、前述の様々な技術は、同様の制約に悩まされている非ディジタル信号処理環境にも同様に適用可能であり得ることが、当業者には理解されよう。図９は、移動局環境外で図１の回路と実質的に同様に構成要素が構成され、動作させられるが、本発明より以前に、効率的に動作するためにカスタムマイクロコントローラをやはり要求していた回路実装を示す。しかし、デバイス８００は、本発明の原理に従って動作するように変更されている。このため、前述した本発明の様々な対処方法は、デバイス８００における図９に示されるアプリケーションのような非ディジタル信号処理アプリケーションにおいて実施されてもよい。さらに、図９に示されるデバイス８００は、専用の一般的なプロセッサを使用することができる。図９に示される、そのような構成は、ユーザ対話性要件が、１ミリ秒または１マイクロ秒より比較的低い、デバイス８００において動作させられる場合、最も有利である。同様に、デバイス８００は、より長い積分、または長いコヒーレント積分期間を有するデバイスにおいて実装されると、最も有利である可能性がある。
【００４６】
本明細書で説明される方法は、アプリケーションに依存して様々な手段によって実施されることが可能である。例えば、これらの方法は、ハードウェア、ファームウェア、ソフトウェア、または以上の組み合わせにおいて実施されることが可能である。ハードウェア実装の場合、処理装置は、本明細書で説明される機能を実行するように設計された１つまたは複数のＡＳＩＣ（特定用途向け集積回路）、ＤＳＰ（ディジタル信号プロセッサ）、ＤＳＰＤ（ディジタル信号処理デバイス）、ＰＬＤ（プログラマブル論理デバイス）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、プロセッサ、コントローラ、マイクロコントローラ、マイクロプロセッサ、電子デバイス、または他の電子装置、または以上の組み合わせの内部に実装されることが可能である。
【００４７】
ファームウェア実装および／またはソフトウェア実装の場合、これらの方法は、本明細書で説明される機能を実行するモジュール（例えば、手続き、機能など）で実施されることが可能である。命令を具体的に実体化する任意のマシン可読媒体が、本明細書で説明される方法を実施する際に使用されることが可能である。例えば、ソフトウェアコードが、メモリ、例えば、移動局１００のメモリ１０８の中に格納されて、プロセッサ、例えば、汎用プロセッサ１０４によって実行されることが可能である。メモリは、プロセッサ内部に実装されても、プロセッサの外部に実装されてもよい。本明細書で使用される「メモリ」とは、任意のタイプの長期メモリ、短期メモリ、揮発性メモリ、不揮発性メモリ、またはその他のメモリを指し、特定のタイプのメモリ、または特定の数のメモリ、あるいはメモリが格納される媒体のタイプには全く限定されない。
【００４８】
本発明は、例示的な実施形態に関して説明されてきたが、本発明は、添付の特許請求の範囲の趣旨および範囲の中で変更を加えて実施されることが可能であることが、当業者には認識されよう。以上に与えられる、これらの例は、単に例示的であり、本発明の可能なすべての設計、実施形態、応用例、または変形の網羅的なリストであることは意図されていない。
【図１】
2009542107.tif 000003
【図２】
2009542107.tif 000004
【図３】
2009542107.tif 000005
【図４】
2009542107.tif 000006
【図５】
2009542107.tif 000007
【図６】
2009542107.tif 000008
【図７】
2009542107.tif 000009
【図８】
2009542107.tif 000010
【図９】
2009542107.tif 000011
【図１０】
2009542107.tif 000012
【国際調査報告】
2009542107.tif 000013
2009542107.tif 000014
2009542107.tif 000015
2009542107.tif 000016
2009542107.tif 000017