(57)【要約】  衛星測位信号を処理する信号処理システムが述べられる。この信号処理システムは、少なくとも１つのプロセッサと、いくつかの動作モードのもとに動作する信号処理装置とを含む。この信号処理装置は、これらの動作モードに応じて、それぞれ動的に、かつ独立して構成できる信号処理サブシステム、高速フーリエ変換（ＦＦＴ）サブシステム、メモリ・サブシステムのうちの少なくとも１つを含む。さらに、この信号処理装置は、メモリ・サブシステムを介して、信号処理サブシステムとＦＦＴサブシステムの間でデータを転送する動作を制御するために結合しているコントローラも含む。メモリ・サブシステムを構成できることは、これらの動作モードに従って、上記メモリ・サブシステムを構成して、いくつかの領域を形成し、それぞれの領域に、それらの動作モードにより、いくつかのやり方の１つでアクセスできるようにすることを含む。【選択図】  図３【特許請求の範囲】
【請求項１】
電子システムであって、
少なくとも１つのプロセッサと、
プロセッサと結合されており、電子システムの動作モードに従って動作する信号処理システムとを備えており、その信号処理システムは、
プロセッサと結合された入力サンプル・サブシステムと、
プロセッサと結合された信号処理サブシステムと、
プロセッサと結合された高速フーリエ変換（ＦＦＴ）サブシステムと、
前記動作モードに従って複数の構成に自動的に構成可能なメモリ・サブシステムを含んでおり、
前記入力サンプル・サブシステムが、少なくとも１つのチャネルを通じてデータを受信して、入力データ・サンプルを生成し、
前記信号処理サブシステムが、前記動作モードに従って自動的に設定される少なくとも１つの設定可能なパラメータを有する少なくとも１つの整合フィルタを含んでおり、
前記ＦＦＴサブシステムが、前記動作モードに従って自動的に設定される入力数および変換サイズの少なくとも１つを有している、電子システム。
【請求項２】
前記入力サンプル・サブシステムが受信されたデータのレベルに応じてゲインを自動的にスケール変更する、請求項１のシステム。
【請求項３】
前記入力サンプル・サブシステムが動作モードに従って受信されたデータのデシメーションを自動的に制御する、請求項１のシステム。
【請求項４】
前記デシメーションの制御が、消費されるメモリの量に従って選定される少なくとも１つの第１のデシメーション・モードと、受信されたデータの量に従って選定される少なくとも１つの第２のデシメーション・モードを含む、請求項３のシステム。
【請求項５】
前記整合フィルタの少なくとも１つの設定可能なパラメータは、タップの数、累算の数およびタップ・オフセットを含む、請求項１のシステム。
【請求項６】
前記信号処理サブシステムがコヒーレント・データを生成する、請求項１のシステム。
【請求項７】
前記整合フィルタの出力を受信するように結合されたコヒーレント累算器をさらに備える、請求項１のシステム。
【請求項８】
前記メモリ・サブシステムが複数の領域に構成可能であり、
各領域は１つのタイプのデータを保存し、
各領域は複数の方式のうちの１つでアクセスされ、
各領域は特定のサブシステムによってアクセスされ、
それらの領域のうちの少なくとも１つは、様々な領域のサイズと、特定の領域にアクセスするために使用されるアクセスの方式を含む、メモリ・サブシステムの構成を特定するプロセッサからのデータ・ワードを保存する、請求項１のシステム。
【請求項９】
プロセッサと結合され、チャネル間での入力サンプル・サブシステム、信号処理サブシステムおよびＦＦＴサブシステムのうちの少なくとも１つの時分割された使用を自動的に制御する少なくとも１つのシーケンサをさらに備える、請求項１のシステム。
【請求項１０】
前記シーケンサが、少なくとも１つの規則に従って、入力サンプル・サブシステム、信号処理サブシステムおよびＦＦＴサブシステムのうちの少なくとも１つのチャネル・アクセスを制御することによって、チャネルからのデータの処理を制御する、請求項９のシステム。
【請求項１１】
前記シーケンサが、メモリ・サブシステムからの情報を用いて信号処理サブシステムおよびＦＦＴサブシステムのうちの少なくとも１つを自動的に設定する、請求項９のシステム。
【請求項１２】
最適なパターンを用いて信号処理サブシステムからのデータの保存を制御する少なくとも１つの第１のコントローラをさらに備えており、
その最適なパターンは、アクセスされたデータ間での衝突を回避しつつ、ＦＦＴサブシステムによるデータへの同時アクセスを可能にするように、信号処理サブシステムからのデータを保存させる、請求項１のシステム。
【請求項１３】
前記メモリ・サブシステムへのアクセスを制御する、入力サンプル・サブシステムと信号処理サブシステムとの間で結合された少なくとも１つの第２のコントローラをさらに備える、請求項１のシステム。
【請求項１４】
前記信号処理サブシステム、ＦＦＴサブシステムおよびメモリ・サブシステムの間で結合された少なくとも１つの第３のコントローラをさらに備える、請求項１のシステム。
【請求項１５】
前記第３のコントローラが信号処理サブシステムとＦＦＴサブシステムとの間でのデータの転送を制御する、請求項１４のシステム。
【請求項１６】
ＦＦＴサブシステムからのデータを受信するように結合された少なくとも１つの非コヒーレント累算器をさらに備える、請求項１のシステム。
【請求項１７】
前記メモリ・サブシステムが、第１のバスを通じた第１のプロセッサによるアクセスのために結合された第１のメモリ領域と、第２のバスを通じた第２のプロセッサによるアクセスのために結合された第２のメモリ領域を備えており、
前記複数の構成が、第１のプロセッサによる第２のメモリ領域の共有されたアクセスを可能にする構成と、第１のバスを通じた第２のメモリ領域のメモリ位置の第１のセットへの第１のプロセッサによるアクセスを可能にする構成と、第２のバスを通じた第２のメモリ領域のメモリ位置の第２のセットへの第１のプロセッサによるアクセスを可能にする構成を含む、請求項１のシステム。
【請求項１８】
第１のクロック信号を生成する第１のクロックを含む第１の受信機と、
第２のクロック信号を生成する第２のクロックを含む第２の受信機と、
第１および第２のクロック信号を表す値を保存するメモリ・サブシステムの少なくとも１つの領域と、
それらの値のうちの１つに従って制御信号を生成し、第１のクロック信号および第２のクロック信号のパルスをカウントし、制御信号に応答して各クロック信号のカウントを獲得し、そのカウントを用いて第１および第２のクロック信号の周波数間の比率を特定する比率カウンタをさらに備える、請求項１のシステム。
【請求項１９】
前記信号処理システムが、衛星に基づく測位システムにおける衛星信号データを処理するように設定可能である、請求項１のシステム。
【請求項２０】
前記信号処理システムが、地上波送信機からの少なくとも１つの他の信号を処理するように設定可能である、請求項１のシステム。
【請求項２１】
前記データが全地球測位システム（ＧＰＳ）衛星信号を含み、
前記動作モードが、ＧＰＳ衛星の広く低分解能な探索が実行されるモード、ＧＰＳ衛星の狭く高分解能な探索が実行されるモード、および以前に捕捉されたＧＰＳ衛星がトラッキングされるモードのうちの少なくとも１つを含む、請求項１のシステム。
【請求項２２】
前記動作モードが、コールド・スタート・モード、粗捕捉モード、ホット・スタート・モードおよびトラッキング・モードを含む、請求項１のシステム。
【請求項２３】
前記メモリ・サブシステムが、入力データ・サンプルを保存する入力サンプル・メモリ、コヒーレント・データを保存するコヒーレント・メモリおよび非コヒーレント・データを保存する非コヒーレント合計（ＮＣＳ）メモリを含む複数の領域に構成可能である、請求項１のシステム。
【請求項２４】
前記複数の構成が、第１の動作モードに対応するコールド・スタート構成を含み、
そのコールド・スタート構成においては、
メモリ・サブシステムが、入力サンプル・メモリと、ＮＣＳメモリを含む複数の領域に構成可能であり、
入力サンプル・メモリが、ＮＣＳメモリよりも著しく大きなサイズであり、
入力サンプル・メモリが、入力データ・サンプルをワン・ショット方式で書き込まれて、入力サンプル・メモリに書き込まれたデータが上書きされる前に信号処理サブシステムがそのデータを少なくとも１回は処理する、請求項１のシステム。
【請求項２５】
前記第１の動作モードにおいて、
信号処理サブシステムがコヒーレント・データを生成して、そのコヒーレント・データをＦＦＴサブシステムに送信し、
ＦＦＴサブシステムが非コヒーレント・データを生成して、その非コヒーレント・データをＮＣＳメモリに保存する、請求項２４のシステム。
【請求項２６】
前記複数の構成が、第２の動作モードに対応する粗捕捉構成を含み、
その粗捕捉構成においては、
メモリ・サブシステムが、入力サンプル・メモリと、コヒーレント・メモリと、ＮＣＳメモリを含む複数の領域に構成可能であり、
ＮＣＳメモリが、入力サンプル・メモリおよびコヒーレント・メモリの何れよりも著しく大きなサイズであり、
入力サンプル・メモリが、入力データ・サンプルを循環方式で書き込まれて、入力サンプル・サブシステムがデータを入力サンプル・メモリに書き込んでいる間に、信号処理サブシステムが処理すべきデータを入力サンプル・メモリの１つの領域から読出す、請求項１のシステム。
【請求項２７】
前記第２の動作モードにおいて、
ＦＦＴサブシステムがコヒーレント・メモリからコヒーレント・データを読出している間に、信号処理サブシステムがコヒーレント・データを生成して、そのコヒーレント・データをコヒーレント・メモリに保存する、請求項２６のシステム。
【請求項２８】
前記複数の構成が、第３の動作モードに対応するホット・スタート構成を含み、
そのホット・スタート構成においては、
メモリ・サブシステムが、入力サンプル・メモリと、コヒーレント・メモリと、ＮＣＳメモリを含む複数の領域に構成可能であり、
ＮＣＳメモリが、入力サンプル・メモリおよびコヒーレント・メモリの何れよりも著しく大きなサイズであり、
入力サンプル・メモリが、入力データ・サンプルを循環方式で書き込まれて、入力サンプル・サブシステムがデータを入力サンプル・メモリに書き込んでいる間に、信号処理サブシステムが処理すべきデータを入力サンプル・メモリの１つの領域から読出し、
信号処理サブシステムが、コヒーレント・データを生成し、そのコヒーレント・データをコヒーレント・メモリに保存し、
コヒーレント・メモリが、スクラッチ領域と、それぞれがある衛星からのコヒーレント・データを保存する複数のコヒーレント領域を含むように構成されている、請求項１のシステム。
【請求項２９】
前記第３の動作モードにおいて、
ＦＦＴサブシステムがコヒーレント・メモリからコヒーレント・データを読出しているす間に、信号処理サブシステムがコヒーレント・メモリにコヒーレント・データを書き込む、請求項２８のシステム。
【請求項３０】
前記複数の構成が、第４の動作モードに対応するトラッキング構成を含み、
そのトラッキング構成においては、
メモリ・サブシステムが、入力サンプル・メモリと、コヒーレント・メモリと、ＮＣＳメモリを含む複数の領域に構成可能であり、
ＮＣＳメモリが、入力サンプル・メモリおよびコヒーレント・メモリの何れよりも著しく大きなサイズであり、
入力サンプル・メモリが、入力データ・サンプルを循環方式で書き込まれて、入力サンプル・サブシステムがデータを入力サンプル・メモリに書き込んでいる間に、信号処理サブシステムが処理すべきデータを入力サンプル・メモリの１つの領域から読出し、
信号処理サブシステムが、コヒーレント・データを生成し、そのコヒーレント・データをコヒーレント・メモリに保存し、
ＦＦＴサブシステムが、コヒーレント・メモリからコヒーレント・データを読出し、非コヒーレント・データを生成し、その非コヒーレント・データをＮＣＳメモリに保存し、
ＮＣＳメモリが、ＮＣＳ領域、ピーク領域およびトラック領域を含むように構成されている、請求項１のシステム。
【請求項３１】
前記電子システムが、セルラー電話、携帯電話、携帯型の通信装置、パーソナル・コンピュータ、携帯型のコンピュータおよび携帯情報端末のうちの少なくとも１つを含む、請求項１のシステム。
【請求項３２】
複数の動作モードのもとで動作するように結合された少なくとも１つのプロセッサおよび信号処理システムを備える電子システムであって、
信号処理システムが、動作モードに応じて自動的かつ動的に設定可能である信号処理サブシステムおよび高速フーリエ変換（ＦＦＴ）サブシステムを含み、
信号処理サブシステムが、動作モードに従って自動的に設定される少なくとも１つの設定可能なパラメータを有する少なくとも１つの整合フィルタを含み、
高速フーリエ変換（ＦＦＴ）サブシステムが、動作モードに従って自動的に設定される入力数および変換サイズの少なくとも１つを含む、電子システム。
【請求項３３】
前記プロセッサと結合され、少なくとも１つのチャネルを通じてデータを受信して、入力データ・サンプルを生成する入力サンプル・サブシステムをさらに備える、請求項３２のシステム。
【請求項３４】
前記動作モードに従って複数の構成に自動的かつ動的に構成可能なメモリ・サブシステムをさらに備えており、
メモリ・サブシステムが複数の領域に構成可能であり、
各領域は１つのタイプのデータを保存し、
各領域は複数の方式のうちの１つでアクセスされ、
各領域は特定のサブシステムによってアクセスされ、
それらの領域のうちの少なくとも１つは、様々な領域のサイズと、特定の領域にアクセスするために使用されるアクセスの方式を含む、メモリ・サブシステムの構成を特定する、プロセッサからのデータ・ワードを保存する、請求項３２のシステム。
【請求項３５】
前記整合フィルタの少なくとも１つの設定可能なパラメータは、タップの数、累算の数およびタップ・オフセットを含む、請求項３２のシステム。
【請求項３６】
前記プロセッサと結合され、少なくとも１つの規則に従って、信号処理サブシステムおよびＦＦＴサブシステムのうちの少なくとも１つのチャネル・アクセスを制御することによって、チャネル間での信号処理サブシステムおよびＦＦＴサブシステムのうちの少なくとも１つの時分割された使用を自動的かつ動的に制御する少なくとも１つのシーケンサをさらに備えており、
そのシーケンサが、少なくとも１つのメモリ領域からの情報を用いて、信号処理サブシステムおよびＦＦＴサブシステムの少なくとも１つを自動的に設定する、請求項３２のシステム。
【請求項３７】
最適なパターンを用いて信号処理サブシステムからのデータの保存を制御する少なくとも１つの第１のコントローラをさらに備えており、
その最適なパターンは、アクセスされたデータ間での衝突を回避しつつ、ＦＦＴサブシステムによるデータへの同時アクセスを可能にするように、信号処理サブシステムからのデータを保存させる、請求項３２のシステム。
【請求項３８】
前記信号処理サブシステムとＦＦＴサブシステムの間でのデータの転送を制御する、信号処理サブシステム、ＦＦＴサブシステムおよび構成可能なメモリ・サブシステムの間に結合された少なくとも１つの第２のコントローラをさらに備える、請求項３２のシステム。
【請求項３９】
前記信号処理システムが、衛星に基づく測位システムにおける衛星信号データを処理するように設定可能である、請求項３２のシステム。
【請求項４０】
前記データが全地球測位システム（ＧＰＳ）衛星信号を含み、
前記動作モードが、ＧＰＳ衛星の広く低分解能な探索が実行されるモード、ＧＰＳ衛星の狭く高分解能な探索が実行されるモード、および以前に捕捉されたＧＰＳ衛星がトラッキングされるモードのうちの少なくとも１つを含む、請求項３９のシステム。
【請求項４１】
前記動作モードが、コールド・スタート・モード、粗捕捉モード、ホット・スタート・モードおよびトラッキング・モードを含む、請求項３２のシステム。
【請求項４２】
前記電子システムが、セルラー電話、携帯電話、携帯型の通信装置、パーソナル・コンピュータ、携帯型のコンピュータおよび携帯情報端末のうちの少なくとも１つを含む、請求項３２のシステム。
【請求項４３】
複数の動作モードに従って動作する少なくとも１つのプロセッサおよび信号プロセッサを備える電子システムであって、
信号プロセッサが、動作モードに応じて、それぞれ動的かつ独立して設定可能である信号処理サブシステム、高速フーリエ変換（ＦＦＴ）サブシステムおよびメモリ・サブシステムを含み、
第１のコントローラがメモリ・サブシステムを通じた信号処理サブシステムおよびＦＦＴサブシステムの間でのデータの転送を制御するために結合しており、
メモリ・サブシステムの構成可能性が、動作モードに従ってメモリ・サブシステムを複数の領域に構成することを含み、
それらの領域はそれぞれ動作モードに従って複数の方式のうちの１つでアクセス可能である、電子システム。
【請求項４４】
前記信号処理サブシステムが、動作モードに従って自動的に設定される少なくとも１つの設定可能なパラメータを有する少なくとも１つの整合フィルタを含み、
前記高速フーリエ変換（ＦＦＴ）サブシステムが、動作モードに従って自動的に設定される入力数および変換サイズの少なくとも１つを含む、請求項４３のシステム。
【請求項４５】
少なくとも１つのチャネルを通じてデータを受信して、入力データ・サンプルを生成するように結合された入力サンプル・サブシステムをさらに備えており、
前記データが全地球測位システム（ＧＰＳ）衛星信号を含み、
前記動作モードが、ＧＰＳ衛星の広く低分解能な探索が実行されるモード、ＧＰＳ衛星の狭く高分解能な探索が実行されるモード、および以前に捕捉されたＧＰＳ衛星がトラッキングされるモードのうちの少なくとも１つを含む、請求項４３のシステム。
【請求項４６】
前記複数の領域のうちの少なくとも１つは、様々な領域のサイズと、特定の領域にアクセスするために使用されるアクセスの方式を含む、メモリ・サブシステムの構成を特定するプロセッサからのデータ・ワードを保存する、請求項４３のシステム。
【請求項４７】
アクセスされたデータの間での衝突を回避しつつ、ＦＦＴサブシステムによるメモリ・サブシステムの複数の位置のデータへの同時アクセスを可能にするために、信号処理サブシステムからのデータを記憶させる最適なパターンを用いて、信号処理サブシステムからのデータの保存を制御する少なくとも１つの第２のコントローラをさらに備える、請求項４３のシステム。
【請求項４８】
前記電子システムが、セルラー電話、携帯型の通信装置および携帯型のコンピュータのうちの少なくとも１つを含む、請求項４３のシステム。
【請求項４９】
前記信号処理システムと入力サンプル・サブシステムとの間にシリアル・インタフェースをさらに含む、請求項１のシステム。
【請求項５０】
前記信号処理システムからの出力データの受信に際して、ＦＦＴサブシステムによってアクセスされるパターンで出力をメモリに保存する回転（twiddle）アルゴリズムをさらに含む、請求項１のシステム。
【請求項５１】
電子システムであって、
処理を制御する手段と、
処理を制御する手段と結合され、電子システムの動作モードに従って動作する、信号を処理する手段を備えており、その信号を処理する手段は、
データを受信して、入力データ・サンプルを生成する手段と、
動作モードに従って自動的に構成される少なくとも１つの設定可能なパラメータを有する少なくとも１つの整合フィルタ手段を含む、入力データ・サンプルを用いてコヒーレント・データを生成する手段と、
動作モードに従って自動的に設定される入力数および変換サイズの少なくとも１つを有する、高速フーリエ変換（ＦＦＴ）を生成する手段と、
動作モードに従って複数の構成に自動的に構成可能であるデータを記憶する手段を含む、電子システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、全地球測位システム（「ＧＰＳ」）信号を処理して、これらの処理されたＧＰＳ信号、および関連する機能（装置）を用いて、地理的位置を決定するシステムおよび方法の分野に属する。
【０００２】
（関連出願）
本出願は、下記の米国特許出願：
２０００年２月７日出願の米国特許出願第０９／４９８，８９３号；
２０００年６月２７日出願の米国特許出願第０９／６０４，５９５号；
２００３年２月２０日出願の米国特許出願第１０／３６９，８５３号；
２００３年７月３０日出願の米国特許出願第１０／６３２，０５１号；
２００２年７月１２日出願の米国特許出願第１０／１９４，６２７号；
２００３年３月１０日出願の米国特許出願第１０／３８５，１９８号；
２００２年５月２２日出願の米国特許出願第１０／１５５，６１４号；
２００１年７月２０日出願の米国特許出願第０９／９１０，０９２号；
２００１年７月２０日出願の米国特許出願第０９／９１０，４０４号；
２００１年７月２０日出願の米国特許出願第０９／９０９，７１６号；
２００２年９月１６日出願の米国特許出願第１０／２４４，２９３号；
２００３年１１月１２日出願の米国特許出願第１０／７１２，７８９号；
２００３年９月１８日出願の米国特許出願第１０／６６６，５５１号；
２０００年４月１８日出願の米国特許出願第０９／５５１，０４７号；
２０００年４月１８日出願の米国特許出願第０９／５５１，２７６号；
２０００年４月１８日出願の米国特許出願第０９／５５１，８０２号；
２０００年４月１８日出願の米国特許出願第０９／５５２，４６９号；
２０００年４月１８日出願の米国特許出願第０９／５５２，７５９号；
２０００年１２月７日出願の米国特許出願第０９／７３２，９５６号；
２０００年１２月１１日出願の米国特許出願第０９／７３５，２４９号；
２００１年６月２０日出願の米国特許出願第０９／８８６，４２７号；
２００２年３月１３日出願の米国特許出願第１０／０９９，４９７号；
２００２年３月１８日出願の米国特許出願第１０／１０１，１３８号；
２００２年９月１８日出願の米国特許出願第１０／２４６，５８４号；
２００２年１０月２日出願の米国特許出願第１０／２６３，３３３号；
２００２年１２月４日出願の米国特許出願第１０／３０９，６４７号；
２００２年１２月１６日出願の米国特許出願第１０／３２０，９３２号；
２００３年４月１１日出願の米国特許出願第１０／４１２，１４６号；
２００３年４月２５日出願の米国特許出願第１０／４２３，１３７号；
２００３年６月２０日出願の米国特許出願第１０／６００，１７４号；
２００３年６月２０日出願の米国特許出願第１０／６００，１９０号；
２００３年８月１９日出願の米国特許出願第１０／６４４，３１１号；
２００３年９月２日出願の米国特許出願第６０／４９９，９６１号；
２００３年９月９日出願の米国特許出願第１０／６５８，１８５号；
２００３年１０月２８日出願の米国特許出願第１０／６９６，５２２号；
２００３年１１月１２日出願の米国特許出願第１０／７０６，１６７号；
２００３年１１月１８日出願の米国特許出願第１０／７１５，６５６号；
２００３年１１月２４日出願の米国特許出願第１０／７２２，６９４号；
２００４年１月２２日出願の米国特許出願第１０／７６２，８５２号；
２００４年２月２３日出願の米国特許出願第６０／５４６，８１６号；
２００４年２月２３日出願の米国特許出願第６０／５４７，３８４号；
２００４年６月２２日出願の米国特許出願第１０／８７４，６３７号；
と、米国特許出願第６０／４９９，９６１号および第６０／５４６，８１６号に基づく優先権を主張している、２００４年９月２日に出願された「衛星測位システム受信機用の制御と特徴」と称するＰＣＴ特許出願第ＰＣＴ／ＵＳ２００４／０２８５４２号に関連しており、かつこれらの出願に基づく優先権を主張する。現在、これらの米国特許出願はすべて係属中である。
【背景技術】
【０００３】
双方向無線、ページャ（ポケベル）、ポータブル・テレビ、パソコン（ＰＣ）、パーソナル通信システム（ＰＣＳ）、携帯情報端末（ＰＤＡ）、セルラー電話または携帯電話、Ｂｌｕｅｔｏｏｔｈ（Ｒ）装置、衛星ラジオ受信機、ＮＡＶＳＴＡＲとしても知られている全地球測位システム（ＧＰＳ）などの衛星測位システム（ＳＰＳ）、および、自動車テレマティック・システムのような無線装置の世界的利用が、急速に伸びている。その結果、現在の傾向は、できる限り多くの特徴的機能を、これらの無線装置に組み込むことを求めている。一例として、現在、ＳＰＳサービスを、広範囲の上記電子装置およびシステムに取り入れる要望がある。
【０００４】
ＧＰＳ信号を処理するシステムを含むＳＰＳシステムは、全体として、できる限り高い精度で、できる限り速く、ＧＰＳ受信機を地理的に位置決めする作業を達成するように設計されている様々なハードウェア・コンポーネントやソフトウェア・コンポーネントを含む。ＧＰＳシステムは、まさに最初のＧＰＳユニットが利用できるようになってから、注目すべきほどの能力を備えるようになってきた。半導体技術やマイクロプロセッサ技術の進歩は、このように向上した機能を実現可能にすることに役立った。さらに、小型で、高速のＧＰＳ対応の装置（例えば、Ｅ９１１適合のセルラー電話）に対する消費者および政府当局の要望も、ＧＰＳシステム設計の向上を推進するのに役立った。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本明細書に用いられるＧＰＳ機能とは、ＧＰＳ信号を受信して、処理し、さらに、これらの処理されたＧＰＳ信号を使用して、正確な位置情報を生成する機能である。ＧＰＳ機能を組み込んだ装置がますます増えている。それゆえ、広範な製品の製造者は、ＧＰＳのハードウェアやソフトウェアを、それらの製品設計に組み込めることを要望するか、または求めている。もちろん、ＧＰＳハードウェアは、できる限り小さな半導体ダイ・スペースを使用し、また、ＧＰＳのハードウェアおよびソフトウェア・システムは、メモリと電力の需要において、できる限り経済的であることが望ましい。
【０００６】
上記の制約条件の範囲内でＧＰＳシステムを設計することにより、普通の場合、速度、サイズ、電力使用などの間で、一連の選択が強いられる。したがって、ほとんどの現行ＧＰＳシステム設計は、一組のトレードオフ（妥協点）を織り込んでいる。ほとんどの現行ＧＰＳシステムは、一度設計されると、柔軟性をほとんど、またはまったくもたらさない。例えば、これらのＧＰＳシステムは、いつでも、もっとも効率的に働くように、異なる条件のもとに、異なるやり方でデータを処理または保存するために、すぐには再構成できない。一般に、ＧＰＳシステム（スタンドアロンＧＰＳシステムにおいて、あるいは、セルラー電話などの他のシステムにおいて）が利用できるようになるメモリ容量は、実行される信号処理のタイプなどの要因や、利用できるメモリの絶対的な限度に大きく左右される。
【０００７】
多くの現行ＧＰＳシステムの他の欠点は、これらの現行ＧＰＳシステムが、許容タイムリミット内で位置を提供するために、支援データに関して、時間の大部分を他のシステムに頼ることである。例えば、セルラー電話におけるＧＰＳシステムは、効率的に働くように、セルラー・ネットワークから、時間支援と、可能であれば他の支援を絶えず必要とすることがある。現行ＧＰＳシステムは、支援なしでは、所要の時間内にＧＰＳ信号を捕捉できないことがある。これは、その時間情報がいつも利用できる場合、また、その時間情報を提供しても他のシステムの性能面に影響を及ぼさない場合には、受け入れられることがある。しかしながら、性能要件を満たすために支援に頼るように設計されているシステムは、支援なしでは、満足のゆくように働くことができない。さらに、このようなシステムは、支援された場合でも、支援されない場合でも、充分な働きをするほど柔軟性はない。
【課題を解決するための手段】
【０００８】
少なくとも、ハードウェア・アーキテクチャ、制御ロジック、信号処理ロジック、メモリ管理ロジックの実施形態を含むＧＰＳシステムおよび方法が述べられている。このＧＰＳシステムおよび方法の実施形態は、動的に再構成可能である。例えば、メモリは、異なる条件のもとに、異なるやり方で、様々なサブシステムでアクセスされるように動的に再構成されることがある。ＧＰＳシステムおよび方法に利用できる総合的なメモリ・サイズの例が例示として述べられているが、述べられた同一原理を用いて、他のサイズも可能である。さらに、図示されたメモリのほかに、外部メモリへのアクセスも、述べられるハードウェアおよびソフトウェアを用いて可能である。
【実施例１】
【０００９】
述べられるＧＰＳシステムは、非常に速い速度で、ＧＰＳデータを処理する。これは、優れた衛星視認性（visibility）などの理想的な条件が欠けていても、支援なしに、このＧＰＳシステムに優れた性能を持たせる一面である。このＧＰＳシステムの一面では、極めて強力な時間領域整合フィルタリングを、高速フーリエ変換（「ＦＦＴ」）と組み合わせれば、単位時間当たり、大量のデータが容易に処理できる。ＦＦＴ演算を使用して、使用される信号サンプルの数に、１５ないし２０の係数を乗算する。一例として、このシステムは、２００，０００もの有効なリアルタイム相関器を生成する。従来のＧＰＳシステムは、一般に、いくつかの物理的な相関器を通じて、直接にＧＰＳ信号を処理する。これらの物理的な相関器はそれぞれ、実際に、ロジックとして、１つの相関を行うのを専用としている。これにより、従来のＧＰＳシステムは約４０，０００の有効な相関器に制限されている。
【００１０】
メモリ帯域幅の消費が約４００メガバイト／秒であるＧＰＳシステムを用いれば、このように性能が向上する。それゆえ、このＧＰＳシステムは、わずか６４キロバイトのメモリを用いて、これらの相関をもたらすことができる。従来のシステムのパワーと比較すると、このＧＰＳシステムは、電力使用、サイクル・カウント、メモリ利用の点から、さらに効率的である。以下でさらに詳しく述べられるように、これは、複数のサブシステムを最適化し、かつ構成できることにより、部分的に可能となる。
【００１１】
述べられるＧＰＳシステムは、状況にもっともふさわしいものとして、ＧＰＳ信号の捕捉および処理の様々なモードで動作することができる。このＧＰＳシステムは、ホスト・プロセッサで指示される通りに、自動的にモードを切換える。様々なサブシステムは、異なる動作モードで、異なるように構成されることがある。これらの動作モードは、後でさらに詳しく説明される。これらの動作モードは、「コールド・スタート」であるモード１、「粗支援捕捉（coarse-aided acquisition）」モードであるモード２、「高分解能」モードまたは「トラッキング（追跡）」モードであるモード３を含む。
【００１２】
図１は、無線周波数（「ＲＦ」）構成要素とベースバンド構成要素を含むＧＰＳシステムの一実施形態のブロック図である。一実施形態では、ＲＦ構成要素とベースバンド構成要素は、ＯＥＭ（相手先商標製造会社）バスを通じて、ＯＥＭプロセッサまたは「ホスト」プロセッサと、ＯＥＭメモリに接続する。以下に述べられるように、このベースバンド構成要素は、メモリ構成要素を含む。任意選択で、このＯＥＭメモリには、ベースバンド構成要素がアクセスする必要はない。他の可能な配置構成は、ＧＰＳ機能を実行するのに必要なメモリおよび処理パワーをすべて持っているＲＦ構成要素とベースバンド構成要素のすべてを１チップ上に含む。このＧＰＳシステムは、支援情報がなくとも、効果的に動作できる。あるいは、このＧＰＳシステムは、様々な情報源からの支援情報を用いて動作することがある。
【００１３】
図１Ａは、デジタル信号処理装置（「ＤＳＰ」）、ＡＲＭプロセッサ、クロック構成要素、様々なメモリ構成要素、外部通信や内部通信用の様々なインターフェース構成要素などを含むベースバンド・チップの一実施形態のブロック図である。
【００１４】
図２は、入力サンプル・サブシステム、信号処理サブシステム、ＦＦＴサブシステム、メモリ・サブシステム、シーケンサ・サブシステム、および、他の「種々の」サブシステムを含むベースバンド・チップの一実施形態の有意なサブシステムを示すブロック図である。便宜上、本明細書では、これらのサブシステムは、次のように呼ばれる。
【００１５】
サブシステム１＝入力サブシステム。
【００１６】
サブシステム２＝信号処理サブシステム。
【００１７】
サブシステム３＝ＦＦＴサブシステム。
【００１８】
サブシステム４＝シーケンサ／制御サブシステム
【００１９】
サブシステム５＝メモリ／アービトレーション・サブシステム
【００２０】
これらのサブシステム間でタスクまたは機能を分けることは、設計の選択である。本発明の異なる実施形態では、異なるサブシステムは、機能を異なるやり方で共用することがある。あるいは、サブシステムがさらに多いか、あるいはさらに少ないこともある。例えば、本明細書に図示されるいくつかの実施形態では、シーケンサ／制御サブシステムは、別個のサブシステムではない。もっと適切に言えば、シーケンサの機能の一部は、サブシステム２にあり、また、残りの機能は、サブシステム３にある。
【００２１】
図３は、一実施形態において、ＧＰＳシステムの全体データフローの概略を示し、さらに、様々なサブシステムの概念的配置構成も示すブロック図である。図示されるように、サブシステム１、サブシステム２、サブシステム３は、ランダム・アクセス・メモリ（「ＲＡＭ」）へのアクセスのために、アービトレーション（調停）を行う。さらに以下で述べられるように、ＲＡＭは、論理的に４つの部分に分けられるが、ただし、様々な実施形態では、ＧＰＳシステム内か、ＧＰＳシステム外のいずれかに、物理メモリ素子がいくつあってもよい。
【００２２】
図４には、或るシステム実施形態用の信号フローが示されている。入力サンプル処理ブロック、すなわちサブシステム１でＲＦ信号が受け取られる。サブシステム１は、入力サンプリングに対して時刻および周波数の基準を与える入力サンプリング・クロックおよび他のクロックから細かく分割したもの（ディバイド・ダウン、divide-down）であるカウンタ・チェーン（counter chain）を含む。
【００２３】
図５は、サブシステム１中の基本機能モジュールを示している。
【００２４】
図６は、サブシステム１中の基本機能モジュールの追加詳細図を示している。自動利得制御（「ＡＧＣ」）は、入力サンプル・ブロックに入るＲＦサンプルを調べる。ＡＧＣには、ダウン・カウンタ（down-counter）がある。入力サンプルは１またはゼロの振幅を持っている。１の値は、強力信号に相当する。サンプルが１の値を持つときには、ＡＧＣがカウトダウンする。ＡＧＣが過大にカウトダウンする場合には、その信号は大きすぎるため、ＡＧＣは制御信号をＲＦに送って、ＲＦにその利得を下げるように指示する。逆も同様である。
【００２５】
図７は、基本的なサブシステム１のデータフローの追加詳細図を示している。
【００２６】
図８は、サブシステム２である信号処理サブシステム中の様々なブロックを示している。
【００２７】
図９は、相互相関要素なしのサブシステム２の代替ブロック図である。
【００２８】
図１０は、サブシステム２の一実施形態用のデータフローを示している。図１０は、フロー制御用のパイプライン段階およびレジスタを示している。「メモリ・インターフェース」、「信号処理装置」などのようなタイトルの付けられた部分はそれぞれ、制御機構を持っており、それぞれ、それ自身が状態機械（state machine）として動作する。データが左から右に流れると、これらの部分間に受渡しがある。
【００２９】
図１１は、タイミング分析で考慮に入れられるクリティカルパスを示すサブシステム２の一実施形態における他のデータフローの図である。
【００３０】
図１２は、一実施形態におけるサブシステム２の制御フローを示す図である。マスタ・コントロールは、図１２の左側にある。整合フィルタ・コントローラは、数ミリ秒の間、処理するようにプログラムされており、また、符号および搬送波ＮＣＯは、始動位置がプログラムされている。この整合フィルタ・コントローラは、データを、ＦＩＦＯ１から符号および搬送波ＮＣＯへ引き込み、次に、そのデータを信号処理装置に入れ、また、この信号処理装置から整合フィルタに送り、次にコヒーレント累算器（coherent accumulator）に送り、次に、コヒーレントＲＡＭに送って、そこでコヒーレント累算を行う。
【００３１】
一実施形態では、異なるやり方で整合フィルタを構築して、その整合フィルタが数ミリ秒の間、データを処理するようにしている。この整合フィルタは、データの要求をストップするまで、信号処理装置からデータを引き出す。次に、この信号処理装置は、データを生成するのを止める。コヒーレント累算器は、整合フィルタが出力するものは何でも受け取って、その出力のコヒーレント累算を行う。この整合フィルタは、いつチャネルを変えて、異なるチャネルからのデータ、あるいは異なるサテライト・ビークルからのデータを処理するのか決定する。この整合フィルタは、その期間の処理を実行したときに、「処理のストップ」を有効に伝える。
【００３２】
図１３は、図１２の左側にあるコントローラの一実施形態のブロック図であって、異なるモジュール（例えば、信号処理装置、整合フィルタ、符号器など）とのやり取りに関して、さらに詳しく示している。このコントローラは、処理の初期設定を行う。サブシステム２制御モジュールによるＲＡＭアクセスのチャネルＲＡＭ領域が存在する。これは、シーケンサの機能がサブシステム２とサブシステム３との間で分けられる一実施形態の一部である。このシーケンサのうち、サブシステム２において例示される部分が、ここで示されている。チャネルを初期設定するときには、この制御モジュールは、チャネルＲＡＭにアクセスし、かつ、サブシステム２に必要となるチャネル・パラメータを引き入れて、その特定のチャネルを処理する。次に、この制御モジュールは、そのチャネルを処理するのに必要となるパラメータを用いて、信号処理装置、符号器、整合フィルタ、コヒーレント累算器をプログラムする。これらのパラメータが、例えば、整合フィルタに数ミリ秒の間処理を実行するように指示し、次に、その整合フィルタはその処理を実行すると、処理が終了したことをサブシステム２の制御モジュールに知らせて、そして、そのコントローラは次のチャネルに進むことができる。次のチャネルに用いるチャネルＲＡＭの場所などを保存しているリンクされたリストが、そのチャネルＲＡＭ中にある。
【００３３】
一実施形態では、上に列挙された様々なモード（コールド・スタート・モード、粗支援捕捉モード、トラッキング・モード）で動作するように、様々なチャネルがプログラムされている。チャネルＲＡＭに格納されているパラメータにより、これらのサブシステムは、特定のモードにおいて、特定のチャネルに対して適切にプログラムされる。これらのチャネルは、時間を多重化するやり方で、これらのサブシステムにアクセスする。
【００３４】
図１４は、サブシステム２の一実施形態用のマスタ・コントローラの流れを示している。
【００３５】
図１５は、高速フーリエ変換（「ＦＦＴ」）サブシステム３の一実施形態の様々なモジュールとモジュール分割を示している。
【００３６】
図１６は、サブシステム３の一実施形態をさらに詳しく示している。サブシステム３の制御モジュールは、図１６の下側に示されており、機能的にサブシステム２の制御モジュールに類似している。破線はこのサブシステムとメモリとの境界線を表わしている。ピークＲＡＭ、ＮＣＳ ＲＡＭなどはメモリ中の領域である。コヒーレントＲＡＭもメモリ中の領域である。しかしながら、ＦＩＦＯ２は、サブシステム２とサブシステム３間で、メモリにアクセスする動作を制御するＦＩＦＯ２制御構造である。例えば、ＦＩＦＯ２は、コヒーレントＲＡＭ中に処理すべきデータがあるときに、サブシステム３に知らせる。ＦＩＦＯ２はまた、サブシステム３がまだ使用してないデータをサブシステム２が上書きしようとするときに、サブシステム２に知らせる。これに対応するＦＩＦＯ１がサブシステム１とサブシステム２の間にあり、入力サンプルＲＡＭへのアクセスを制御する。
【００３７】
図１７は、ＦＩＦＯ２を含むサブシステム３のデータフローを示している。サブシステム２からサブシステム３に進むデータは、ＦＩＦＯ２構造により制御される。実データは、ＦＩＦＯ２の真上のコヒーレントＲＡＭ中にある。ＦＦＴは、コヒーレントＲＡＭからいくつかのサンプル入力を受け取って、これらのサンプル入力にＦＦＴを実行する。ＦＦＴは、個々の処理モードに応じて決定されるいくつかの周波数を発生させる。一例として、８サンプル、１６ポイントのＦＦＴでは、このＦＦＴは１６の周波数を発生させる。１６の周波数がすべて、重要であるとは限らない。例えば、外側周波数は有用でないこともある。集合モジュール（gather module）はプログラムされた数の周波数しか受け入れない。これらの周波数の数はプログラム可能である。
【００３８】
この集合モジュールは、所望の周波数を選択し、それらの周波数をさらに圧縮した形式で詰め込んで、それらの周波数を非コヒーレント累算器であるＮＣＳに渡す。ここには図示されてないが、集合モジュールの出力は、トラック履歴ＲＡＭ（「ＴＨ」）に進む。この集合モジュールの出力は、コヒーレント・データ（明確なＩ成分とＱ成分をまだ持っている）である。非コヒーレント・データは、ＮＣＳに保存される。選択されたコヒーレント・データは、後にソフトウェアによって検査して処理するために、そのＴＨに保存される。この図の上側には、ソータしきい値モジュール（sorter しきい値 module）に進む線がある。大量の情報がＮＣＳモジュールによって生成される。例えば初期捕捉モードにおいて、この情報を保存することが望ましくないことがある。特定のサテライト・ビークルに対して、奇数と偶数の１／２チップおよび複数の周波数（それぞれ、比較的に大きなデータ・アレイを生成する）を処理することが望ましいこともある。したがって、データが生成されると、そのデータは処理されて、ピークでソートされる。８つの最大値、並びに、それらの値がどこに現れたかに関する情報、例えば、どのタップ番号、どの周波数、さらに、該当周波数が奇数の１／２チップであったか、偶数の１／２チップであったかどうかが保存される。コンテキストの終了時には、すべてがピーク・ソータ（peak sorter）に保存される。
【００３９】
コンテキストは、ここでは、サブシステムに対して１チャネルを処理し終えたことを示すために使用される用語である。チャネルがサブシステム３に入ろうとするときに、あるいは、処理がほぼ終ったときに、このコンテキストの終了時点でピークが保存されて、ソフトウェアがそれらのピークを検査し、その決定を下せるようにしている。
【００４０】
図１８は、サブシステム３の制御フロー用のタイミング信号を示している。ここでは、２つのタイミング分割の用語が使用されており、例えば、Ｔ１とＰＤＩ（すなわち、事前検出積算（pre-detect integration））が規定されている。Ｔ１は、基本的には、コヒーレント累算器でコヒーレント累算を行うのにかかる時間であって、整合フィルタの出力から送られる。
【００４１】
整合フィルタが、完全整合フィルタ・モードで動作しているとする。この整合フィルタの出力は、１ミリ秒全体に相当するコヒーレント累算である。このようなコヒーレント累算は、コヒーレント累算に割当てられた１ミリ秒全体を要する。処理が特定のタップ位置を含むたびに、もう１秒分のコヒーレント累算がもたらされることになる。このコヒーレント累算器は、第１の１ミリ秒分と第２の１ミリ秒分のコヒーレント累算を加算して、２ミリ秒分のコヒーレント累算を得る。２ミリ秒よりも長いか、または２ミリ秒よりも短いコヒーレント累算もプログラム可能である。タップに対してプログラムされた数ミリ秒のコヒーレント累算の完了は、Ｔ１に相当するコヒーレント累算を構成する。様々なモードに応じて、例えばＴ１のミリ秒単位の長さには変動がある。いくつかのモードでは、さらに微弱な信号を探すために、さらに長い累算を行うことが望ましい。コヒーレント累算が終ると、非コヒーレント累算がスタートする。
【００４２】
１／８整合フィルタ（低分解能モード）では、１／８に分割されたブロックのそれぞれがワン・ショット（単発）で１／８ｍｓの累算を行う。整合フィルタはこうして、信号を８回コヒーレント累算器に送り込み、１ｍｓ分のコヒーレント累算をもたらす。これは、所定数のｍｓのコヒーレント累算を得るために、必要なだけ繰り返される。
【００４３】
それぞれのＴ１は、ＦＦＴに入力される１サンプルを表わしている。例えば、８サンプル、１６ポイントのＦＦＴでは、ＦＦＴに送り込むのに８Ｔ１が必要となる。これは、ＰＤＩと呼ばれ、ワン・ショットでの８Ｔ１がＰＤＩを構成している。
【００４４】
それぞれのＴ１は、ＦＦＴに入力されるサンプルを表わしている。しかしながら、多くのＴ１が同時にＦＦＴに送り込まれ、それらがＰＤＩを構成する。
【００４５】
図１８は、Ｔ１境界とＰＤＩ境界を把握する必要性を示している。これは、「終了」信号により容易となる。図１８は、ＦＦＴから始まって、集合モジュールを経て、ＮＣＳに至るパイプラインのフローを示している。サブシステム３のバックエンド・コントローラは、このサブシステムを起動する。ｐｄｉＮｅｘｔ信号は、ＦＦＴ処理データを始動させる。そして、ＮＣＳは、「ＰＤＩの処理を完了した、次は何をするのか？」をバックエンド・コントローラに知らせる必要がある。
【００４６】
図１９は、時間とアドレスのカウンタを含むＦＦＴコントローラの詳細を示している。このＦＦＴコントローラは、ＦＦＴに送るのに必要となるコヒーレントＲＡＭ中のデータの場所を把握する。ＦＦＴコントローラは、ＦＦＴがどのサイクルにあるか、またＦＦＴがどんな情報を必要としているのかを認識する。ＦＦＴコントローラは、ＦＦＴ処理の状態の指標とアドレスを生成する。
【００４７】
ＦＦＴコアは、４ポイントのＦＦＴを含む。１６ポイントのＦＦＴを構成するために、４ポイントのＦＦＴを特定のパターンで繰り返して動作させて、１６ポイントＦＦＴを生成する。このコアは４ポイントのＦＦＴであるから、一度に４つのＴ１の入力サンプルを必要とする。しかしながら、サブシステム２は線形的にＴ１を生成する。ＦＦＴはＴ１をビット逆順で必要とすることがある。例えばＦＦＴは、最初のショットでは２、７、３、１のパターンとして、また次のショットでは他の何らかのパターンとして、８つのうちから一度に４つのＴ１を必要とすると仮定する。回転（twiddle）アルゴリズムは、サブシステム２の出力を４つの物理的に異なるＲＡＭに最適なパターンで格納して、サブシステム３で必要とされるデータが、データの衝突なく、一度に４つのＴ１でアクセスできるようにしている。回転アルゴリズムを用いないで、ＲＡＭを４つの領域に分けると、さらに多くのメモリ読出しを行う必要があろう。この回転アルゴリズムは、ＦＦＴがどの４つのＴ１を同時に必要とするのかを認識して、それらの４つのＴ１を異なるＲＡＭ（またはＲＡＭ領域）に確実に格納できるようにする。図３７〜図４４は、一実施形態におけるＦＦＴアドレス回転（FFT address twiddling）のハードウェア面とロジック面を示している。
【００４８】
図２０は、一実施形態における基本的なサブシステム３のフローを示している。図示されるスケーリング・モジュールは、デスケーリング（descaling）を行う。データが以下のようにスケーリングされるために、このようなデスケーリングが必要である。コヒーレント累算器では、データを通すパイプラインは比較的に狭く、またダイナミックレンジは非常に広い。例えば、コヒーレントＲＡＭ中にメモリ空間があるＩデータの８ビットとＱデータの８ビットだけを考えると、このＩとＱの８ビットは指数すなわちスケールと関連づけられる。コヒーレント累算器がこの８ビットに対してオーバーフローに近づくと、この指数を１つだけ上げ、かつ、この８ビットを１つだけ縮小するような自動機能が存在する。サブシステム２がデータをコヒーレントＲＡＭに送り込むと、サブシステム２によりスケーリングが行われる。それぞれのＴ１は、関連付けられたスケール値を持っている。一度に４つのＴ１をＦＦＴに送り込むような、異なるスケール値をＦＦＴに送り込むことはできない。したがって、このスケール・モジュールは、すべてのデータを、同一スケールに正規化する。そのＦＦＴの出力は、それ自体のスケーリング機能を持っているＮＣＳに渡される。こうして、コヒーレントと非コヒーレントのスケーリングが行われる。
【００４９】
図２１は、サブシステム３のコントローラの制御のもとに、ＦＦＴがどのようにサイクル動作を続けるか示している。ＦＦＴが特定のチップ位置について処理を行い、そのＦＦＴを完了させると、次のチップ位置に進むように指示される必要がある。これは、ＦＦＴコントローラの状態機械の詳細である。
【００５０】
図２２は、サブシステム３のマスタ・コントローラ用のフローを示している。セマフォ・ワード（semaphore word）は、始動時に、これらのサブシステム間ですばやく配布されなければならない様々なデータを示している。このデータは、サブシステム２、サブシステム３、ソフトウェアという３つの準非同期な処理の間で交換される必要がある。それらの処理はそれぞれが独自に動作して、他から情報を得ることがある。このセマフォ・ワード中の情報は、１００ｍｓレポート作成、実行されるべきサブシステム３における位相調整、あるサブシステムから他のサブシステムへの様々な状態フラグなどを含むことがある。これらのサブシステム、ハードウェア、ソフトウェアは、セマフォ・ワードを読み取って、決定を下す。
【００５１】
このコントローラは、サブシステム３とＦＩＦＯ２を初期化（図中上側中央付近を参照のこと）して、基本的には、チャネルＲＡＭにアクセスさせて、チャネル・パラメータを引き出し、そのチャネル用にサブシステム３をプログラムする。「ＦＩＦＯ２データが利用可能」とは、サブシステム３がコヒーレントＲＡＭからのデータを必要とすることを意味しており、したがって、そのデータが利用可能かどうかを知る必要がある。そのデータが利用できなければ、そのデータが利用可能となるまで待機する。これは、サブシステム２とサブシステム３との間で、多くの順序付けを制御するラッピング・ルール（lapping rule）をともなう。サブシステム２とサブシステム３は、チャネルのリンクされたリストを処理する。サブシステム２はチャネルを処理して進み、次いで、サブシステム３はそのチャネルに入って、データを取り出して、そのデータを処理する。サブシステム２は、サブシステム３より先に進んではならない。サブシステム２は、サブシステム３に追いつくことができるが、サブシステム３のすぐ後でなければならない。
【００５２】
「ＦＩＦＯ２データが利用可能か？」の判断ブロックと、「サブシステム２中のチャネルか？」の判断ブロックは、上記ラッピング・ルールの一部である。データが利用できなければ、このチャネルをまだ離れないようにサブシステム３に指示する。なぜなら、サブシステム２がサブシステム３のためにデータを生成しているかもしれないからである。サブシステム２が離れれば、サブシステム３はそのチャネルから離れてもよい。
【００５３】
図には相互相関機能も示されている。一実施形態では、サブシステム２が基本的な相互相関データを生成し、そしてサブシステム３が実際にその相互相関データを除去する。
【００５４】
「ＦＦＴのＴ１が終ったか？」の判断ブロックを参照すると、ＰＤＩ中の複数のＴ１オフセットに対して実行される処理におけるビット同期モードが存在する。ビット同期モードで処理を行わない場合には、毎回、例えば、８サンプル、１６ポイントのＦＦＴ（これは、ビット同期モードではないであろう）であれば、８つのＴ１を処理してＦＦＴに送り込んだ後で、次の完全な８つのＴ１、または次のＰＤＩをＦＦＴに送り込む。その一方、ビット同期モードでは２０のＴ１がある。なぜなら、それぞれが１ｍｓであるからである。したがって、２０の仮定ビット位置を算出する必要がある。これらのビット位置には、２０ｍｓの曖昧さ（ambiguity）がある。ＧＰＳデータ・ビットは２０ｍｓであり、またＣＡ符号は１ｍｓごとに繰り返す。そのＣＡ符号においては、位置合わせを実行できる。ビット同期を用いれば、２０ｍｓ中の１ｍｓの曖昧さは除去される。異なる仮定に対して、異なるＴ１オフセットが試みられる。
【００５５】
ＰＤＩを完了すると、フローは図の右下側に進む。別の奇数または偶数、もしくは別の周波数が望まれるかどうかが決定される。サブシステム２はサブシステム３が処理する必要のある偶数または奇数の複数の周波数を発生させる。図の右側で真上に進むフローで示されるように、ＨＷトラッキング・ループが繰り返され、いくらかスケーリングされ、バイアス・パラメータが更新される。図の左端のフローは、コンテキストが終ろうとするときの、チャネルに対するクリーンアップである。セマフォ・ワードが更新されて、そのチャネルに対して最終コンテキストの間に起ったものがすべて反映される。ＨＷトラッキングとレポート（適宜、１００ｍｓレポートまたはコンテキスト・レポート）の作成も行われる。そして、そのチャネルが停止され、セマフォ・ワード中のアクティブ（活動）ビットがゼロにセットされる。チャネルＲＡＭ中のリンクされたリストが探索されて、どのチャネルが次にハードウェアにアクセスするかが決定される。
【００５６】
図２３は、ＦＩＦＯ２を介したサブシステム２とサブシステム３との間のやりとり（インタラクション）を示している。サブシステム５はメモリ・アービタ（memory arbiter）である。上述したように、図示されるＲＡＭは４つのメモリ・ブロックに分けられる。一度にこれらのサブシステムのうちの１つだけ、あるいはサブシステム中の１つの機能だけが、ＲＡＭにアクセスする。これは、サブシステム２がコヒーレント・データを生成して、そのデータをＲＡＭに書き込もうとすることと、サブシステム３が処理のためにデータを要求することを示している。サブシステム５は、どれがアクセスするのかを決定する。ＦＩＦＯ２は、ＲＡＭにアクセスしようとするそれぞれの要求の状態を、それぞれのサブシステムに知らせる。
【００５７】
図２４は、サブシステム５の機能の詳細を示す他の図である。
【００５８】
図２５は、一実施形態において、サブシステム３に実装されるシーケンサ・サブシステムの要素を示している。
【００５９】
図２６、図２７は、図２２のフローチャートの一実施形態であるシーケンサ（順序付け）モジュールのブロック図である。このシーケンサ・モジュールは、制御要素を含み、さらに、レジスタ、データ・ストレージ、メモリとのインターフェースなども含む。しかしながら、図示されるシーケンサ・モジュールのインターフェースは、基本的にフロー制御である。算術論理演算装置（「ＡＬＵ」）モジュールは、ＨＷトラッキング機能用の専用算術能力を提供する。バックエンド・コントローラは、ＮＣＳモジュールがどこにあるか認識しており、ＦＦＴコントローラがＦＦＴを制御するのと同じやり方で、ＮＣＳモジュールを制御する。
【００６０】
さらに、ＰＤＩレートで行われる機能と、コンテキスト・レートで（すなわち、チャネルの処理が完了する前に）行われる機能とを有するＨＷトラッカ（tracker）が存在する。このシーケンサは、ＡＬＵをそのナンバー・クランチャー（number cruncher）として使用し、ＨＷトラッキング・ループの機能を制御する。
【００６１】
図２８は、単一のモジュールにシーケンサの機能が入っている一実施形態のブロック図である。これは、サブシステム２とサブシステム３との間でシーケンサの機能を共用する先に述べられた実施形態に代るものである。
【００６２】
図２９は、このシーケンサが果たす機能の一部を示すブロック図である。この機能には、データ・パス制御、ハードウェア・トラッキング・ループ、レポート制御がある。レポート制御は、ソフトウェアで使用する、１００ｍｓレポート、コンテキスト・レポート、ピーク・レポートなどのような様々なレポートの作成を制御する。
【００６３】
図３０は、様々なＲＡＭの機能を示している。一実施形態では、これらのＲＡＭの機能のすべてが、物理的に１つのＲＡＭに組み込まれている。他の実施形態では、これらのＲＡＭの機能は、物理的に異なるＲＡＭの間で共用される。メモリ・サブシステムは、これらのＲＡＭの機能にアクセスする要求のアービトレーションを扱っている。
【００６４】
図３１は、ＦＩＦＯ１の一実施例の詳細を示している。図の左側にあるライン（line）信号、ブロック（Block）信号およびラップ（wrap）信号は、サブシステム１がデータをＲＡＭに書き込もうとするときに使用するものである。図の右側の、ライン信号、ブロック信号およびラップ信号は、サブシステム２がデータをＲＡＭから読み出そうとするときに使用するものである。
【００６５】
図３２は、様々なタイプのＲＡＭと、様々なサブシステムがそのＲＡＭにどのようにアクセスするかを示すメモリ・データパス・フローのブロック図である。（図の左側において）サブシステム１はデータを入力サンプルＲＡＭに書き込んでおり、また、サブシステム２はＦＩＦＯ１の制御のもとにデータを読み出している。同様に、ＦＩＦＯ２はサブシステム２およびサブシステム３によるコヒーレントＲＡＭへのアクセスを制御する。ＴＨ ＲＡＭは、先に述べられたように、トラック履歴をコヒーレント・データの形式で保存している。一実施形態において、ビット同期ＲＡＭはＴ１オフセットが複数存在する特定のチャネルに対するＴＨ ＲＡＭの１タイプである。ソフトウェアは、複数のＴ１オフセットを使用して、データ・ビットのエッジがどこにあるか決定する。システムが動作している間、データ・サブシステムがこれらの様々なＲＡＭにアクセスしようとする。このシーケンサは、おもにチャネルＲＡＭにアクセスしようとするだけでなく、コヒーレントＲＡＭにもアクセスしようとする（例えば、ポインタにアクセスしようとする）。ソフトウェアも、ＲＡＭにアクセスしようとする。ソフトウェアからチャネルＲＡＭへ向かう矢印に注意されたい。ソフトウェアは、ＮＣＳ ＲＡＭ、ＴＨ ＲＡＭ、ピークＲＡＭを検査する。ＲＡＭアクセスのすべてが、サブシステム５のアービトレーションで扱われる。
【００６６】
図３３は、サブシステム５とアービトレーション優先順位の一例を示すブロック図である。優先順位の可能な割当ての１つが、左下に列挙されている。通常は、サブシステム１は、制御できない速度でサテライト・ビークルからデータを受け取っているために、非常に高い優先順位を持っている。通常は中央演算処理装置（「ＣＰＵ」）も、同様に優先順位が高い。
【００６７】
図３４は、システム動作の間、特にモード３すなわちトラッキング・モードで行われる処理の一部を示している。例えば、この図の左側にはタイミング・チェーン（timing chain）があり、そして、入力ＲＡＭに入り込む入力ストレージがある。データはＲＡＭの特定の位置に書き込まなければならない。一実施形態では、サブシステム１のタイマ・モジュール中にフリーラン（free-running）３２ビット・カウンタがある。このカウンタは、ユーザ・タイムに関連づけられる。ユーザ・タイムは、ＲＦから得られるサンプルをストローブする（strobe）レートを示している。ユーザ・タイムは、データを入力サンプルＲＡＭ中のどこに格納するかに関連している。サブシステム３は、入力サンプルＲＡＭ中のデータの場所が時間に関連づけられていることを認識している。サブシステム３はそのデータを引き出して整合フィルタに入れる。整合フィルタの前方にある信号処理装置（図示されてない）は、この整合フィルタに対して、信号のデシメーション（decimation）と循環を行う。
【００６８】
左上には、ユーザ・タイムを左側に、また処理タイムを右側に示している破線がある。概念上、左側の処理は、ＲＦクロックと緊密な関係にある。イベントは、ユーザ・クロックの周期で起こらなければならない。右側には、どのような現実の周波数も有することができる信号処理装置のクロックがある。信号処理装置のクロック周波数が高くなればなるほど、それだけ多くのデータが単位時間当たりに処理される。
【００６９】
図３５、図３６は、システム動作の間、特にモード１、すなわちコールド・スタート・モードで行われる処理の一部を示している。モード１では、コヒーレントＲＡＭはサブシステム２とサブシステム３との間のパス中には示されていない。モード１では、データは整合フィルタから直接ＦＦＴへ移動する。整合フィルタとＦＦＴが互いにロックされているために、この整合フィルタは「ロック」モードにあると言える。このモードでは、整合フィルタは、フラクショナル（分数）モードにあって、４つの部分に分けられる。
【００７０】
モード１では、フラクショナル整合フィルタは、他のモードとは異なる態様で使用される。例えば、この整合フィルタは４つの部分に分けられて、それらの部分はそれぞれ、４サンプル、８ポイントのＦＦＴへの別々の入力である。したがって、ＦＦＴは整合フィルタから直接に４つの入力を得る。これらのポイントまたはサンプルはそれぞれ、１／４秒分のコヒーレント積算値（coherent integration）である。ＦＦＴでは、それぞれのサンプルに対して、コヒーレント積算時間が短ければ、周波数またはビン（bin）の幅が広がる。コヒーレント累算がより長い周期に対して行われる（より長いＴ１周期があることを意味する）場合には、周波数ビンは狭くなる。狭い周波数ビンは、トラッキングには好ましいが、広範な探索においては望ましくない。
【００７１】
全体のシステム動作
【００７２】
サブシステム１では、タイミング・モジュール、ＲＦから信号をメッセージとして送るデシメーション・モジュール、および、到来するＲＦ信号を制御する自動利得制御（「ＡＧＣ」）モジュールがある。
【００７３】
そして、デシメートされた信号は、ＦＩＦＯタイプの制御を通って、ＲＡＭの或る部分に格納される。入力ＲＡＭ、コヒーレントＲＡＭ、非コヒーレントＲＡＭという３つのタイプのＲＡＭが存在する。これら３つのタイプのＲＡＭは、動的に複数の領域が割当てられた１つのＲＡＭに物理的に構築されている。一実施形態では、このＲＡＭは、ＦＦＴのために、またデータをＦＦＴに送るために、４つのブロックに分けられる。回転アルゴリズムは、４つのデータが同時にこのＲＡＭから得られるように、データを格納させる。４ブロックのＲＡＭは、データの衝突（コンフリクト）を避けるのに役立ち、かつ、ＲＡＭへのアクセスのスループットを向上する。
【００７４】
３つのデータ・サブシステム（１、２、３）はすべて、４つのＲＡＭと、これらのＲＡＭのうち、入力サンプル、コヒーレント累算、および、非コヒーレント累算を格納する様々な領域へのアクセスを要求する。
【００７５】
サブシステム１を起動すると、サブシステム１はデシメートされたデータをサンプルＲＡＭに格納する。一実施形態では２つの格納モードがある。一方のモードはアドレス空間の１領域がワン・ショットで満たされるワン・ショット・モードである。そして、残りのサブシステムがそのデータを処理する。他方のモードは特定領域も満たす巡回（cyclic）バッファ・モードである。その領域が満たされると、この書込み動作はサイクル動作して、その領域の始まりに戻って、格納されたデータを上書きし始める。巡回バッファ・モードでは、不特定数のチャネルがサブシステム２とサブシステム３の使用を時間的に多重化して、それぞれがサイクル動作を行って、それぞれがデータを処理する機会を得る。
【００７６】
このシステムの動作は、以下でさらに詳しく説明されるように、３つの動作モードの点で基本的に異なっている。しかしながら、いくつかの基本的な共通点が３つの動作モードのすべてに当てはまる。通常は、例えば、入力サンプルが保持され、相関が行われ、そして、スペクトラム拡散が移されて、整合フィルタ（「matched filter」）に対して逆拡散して、さらに、搬送波の位相が信号処理装置に移される。
【００７７】
一実施形態では、この整合フィルタの長さは１０２４であり、これは、長さが１１である従来の整合フィルタよりも著しく長い。このＦＦＴは３２ポイントの変換を行う。また、このＦＦＴは様々な異なるアレイ・サイズや形状に対していつでも使用できる。
【００７８】
不確実さが大きい場合（例えば、すべての衛星が見える訳ではない場合など）には、スペクトラム拡散処理はこの時間領域内で１０２４のチップ・オフセットの探索を必要とすることがある。複製（レプリカ）符号をこの受信信号に揃えると、整合と、最大出力を得ることができる。この符号が不揃いとなるときには、出力が低下する。この相関が正確に揃えられると、信号パワーのピークとなる。この整合フィルタは、特別な複製符号のコピーをレジスタに入れておいて、その信号をそのコピー越しにスライドさせる。ほぼ１ｍｓごとに１回、ピークが現れる。屋外環境では、強力な信号があるときには単一パルスをほぼ検出できるが、通常は多数のものを平均化しなければならない。その多くは合計され、また、オフセットごとに加算や、１ｍｓのスキップや、それとは異なる加算がある。符号オフセットごとに、１０２４の加算が保持されることもある。
【００７９】
一実施形態において、１ｍｓ全体の符号に対して積算を行う際の相関において有効な窓（window）は、約±５００Ｈｚ（いくらか損失があるが）である。通常は、積算はそのクロース（close）の約２倍の回数行われる。たいして正確でない発振器（例えば、数十キロヘルツの誤差を持つかもしれないもの）を考えると、その周波数はその周波数領域内で調整されて、おそらく２００回もの相関を繰り返す。したがって、この発振器が校正されてないときに、まさに或る符号を探索するためには、２００Ｋの個々の探索ビンまたは４００Ｋが扱われることがある。なぜなら、その符号は２サンプル／チップの間隔で配置されているからである。したがって、２００の周波数に２０００の相関を乗算することにより、４００Ｋの個々のセルが探索されることになる。これらのセルは、複数回にわたって平均化されなければならない。このケースは、整合フィルタの機能を例証する一シナリオであるが、通常は、強力な信号を予想できる屋外環境に対して確保されている。
【００８０】
全体的なメモリとアービトレーションの側面
【００８１】
ＦＩＦＯ１は、アドレス生成器である。図面では、ＦＩＦＯ１は複数の概念的な入力とともに示されているが、一実施形態では、ＦＩＦＯ１を含むＲＡＭは１つのポートを有している。ＲＡＭへのすべての入力がアービタを通る。ＦＩＦＯ１は、右側のサーキュラ・パターンでアドレスをカウントする。ＦＩＦＯ１は或るアドレスから開始して、バッファを或る一定の長さにするように指示されている。このカウンタは、開始アドレスから終了アドレスまでカウントし、その開始アドレスに戻ってデータの上書きを開始する。読出し側には、信号または論理チャネルが生成されるたびに再読込みする同様なアドレス・カウンタがある。したがって、ＦＩＦＯが再読込みされ、いくつかのサンプルが扱われ、もう一度ＦＩＦＯが再読込みされ、さらに多くのサンプルが扱われる。基本的には、５０ＭＨｚのクロックを用いると、そのサンプルを使い切るか、あるいは上書きする前に、リアルタイムで約２５回そのサンプルを再生することができる。このフローに付いていくために、約２４チャネルが割当てられることもある。
【００８２】
ＦＩＦＯ１は、アドレスをカウントし、比較的に遅い速度で、おそらく１２８クロック・サイクルくらいごとに書き込み、かつ、別のサンプルをダンプする。ＦＩＦＯ１は６３ビット・ラインにおいてアクセスされる。約８マイクロ秒ごとに、別のラインのサンプルが収集され、ＦＩＦＯ１が１メモリ・サイクルを要求する。ＦＩＦＯ１はアービタを通る。ＦＩＦＯ１は、優先順位が高いために、通常は、要求されたメモリ・サイクルを得る。それよりも高い優先順位はただ１つ−マイクロコントローラである。ＦＩＦＯ１は、このラインに書き込んで、続けて、他の３２のサンプルの収集を開始する。
【００８３】
サブシステム２は、ほぼ同じことをする。シーケンサは、求めるサンプルのアドレスをＦＩＦＯに入れる。基本的に、探索中のそれぞれの衛星の遅延は、最初のサンプルが収集された時刻に影響する。入力されるサンプルをカウントするカウンタと、このシステムが開始したい位相との間で相関がある。ＦＩＦＯ中のロジックは、このサンプル・カウントをメモリ・アドレスに変える。ＦＩＦＯは、１サイクルの読出しを要求して、３２のサンプルの１ラインを得る。これを繰り返して、ＦＩＦＯはそのデータを整合フィルタに送り込む。
【００８４】
図４を参照すると、データは比較的遅いレートで入力サブシステム１に入って、カウンタがアドレスをカウントし、またサブシステム２中の類似するカウンタが、ループにおいてアドレスをカウントしている。入力サンプル・バッファは、２５回再読込みする、１つのバッファであることもある。また、その処理は、処理を必要とするサンプルが時間的にもっとも早くなるように、タイミングを合わせられている。処理の後、いくつかのサンプルがバッファからすでになくなっており、新たないくつかのサンプルが格納されている。その処理は、最初のパスをなすのにかかる時間（例えば、８００マイクロ秒）とほぼ同じ時間をかけて実行されるように、タイミングを合わせられている。これらのサンプルはすべて時間的に広げられ、バッファには絶えず再読込みがなされる。合計処理は、ＲＡＭから前回のデータを読み取り、それに新たなデータを追加し、そのデータをＲＡＭに戻す。これは、コヒーレント累算ブロックである。サンプルを生成するごとに、そのサンプルはメモリに追加される。またＰＤＩ全体が生成されると、このＦＦＴブロックはそれぞれのサンプルに対して最初のチップ・オフセットを取得し、それを処理し、その振幅（正の実数）を取得して、それをそのオフセットに対するビンに追加する。ＰＤＩは７ｍｓであるかもしれず、７サンプル／各符号オフセットであるかもしれず、したがって、メモリは最初の１ｍｓに対して１０２４、２回目の１ｍｓに対して１０２４というように配置されるであろう。
【００８５】
これらのシーケンサ・ポートはメモリも読み取る。したがって、一定のデータ・パターンがあり、様々なサブシステムがメモリ・サイクルに対して要求を出している。このアービタは、サブシステムからの要求を受け取って、どれが最高の優先順位を持つのか決定し、メモリ・サイクルを許可する。一実施形態では、この優先順位は、図３３に示されるように、配線で実現されている。データ・パスを切換えて適切なデータ・ポートをメモリにアクセスさせ、メモリ・バスを切換える。そして、このアービタは、次に高い優先順位に移行する。一実施形態では、それらの優先順位に従って、６〜８のポートが切換えられる。
【００８６】
全体的な順序付けの側面
【００８７】
このシーケンサは、一実施形態において、これらのチャネルのそれぞれの状態を保存するために割当てられたメモリの一部にデータを入れることがある。このシーケンサの仕事は、簡単に述べると、メモリ中のデータを受け取り、ハードウェアが実行することになっている限り、そのデータをそのハードウェアで実行することである。シーケンサが知る必要のある全てのことは、約２５６バイトのメモリに収まる。このシーケンサは、様々なサブシステムにおいて動作が行われると、リストを詳しく調べて、状態を読み込み、それを復元する。このシーケンサは、どのサブシステムにおいて、どんなデータが処理されているのかを把握していなければならない。通常は、ＲＡＭは状態用に確保されたいくつかのアドレスを持っている。しかしながら、一般に、どこにデータを保存すべきか、あるいは、どれだけの量のデータを保存すべきかについては、データが重複できないことを除けば、限定はない。
【００８８】
チャネルの状態は、そのチャネルの状態を正確に復元可能とするレポートとして、定期的に保存されている。これらのレポートは、そのチャネルがあった場所に関して正確な情報を記載している。これらのレポートは、通常、符号化された搬送波位相を取り出すために、ナノ秒もしくはピコ秒（搬送波の場合）の範囲内で正確である。これは、それぞれのサンプルについての角度と遅延に対して、大きく、高い分解能を示す数値である。このレポートは定期的に（例えば、２０ｍｓごとに）ダンプされており、このレポートによってハードウェアが実際に行っている処理内容を辿ることができる。概念的には、これはＤＭＡ（direct memory access）エンジンに似ているが、例えばホスト・プロセッサからの外部指示のもとに追加機能を実行するロジックを含む。
【００８９】
このプロセッサはこのシーケンサに対して、あらゆるモードを含むこのシステムの状態、このシステムが前回終了したところからの搬送波符号ＮＣＯの位相を読み込んで、データのサンプルを処理するように指示する。そして、そのシーケンサは、次のチャネルに進むように指示される。わずかではあるが、識別すべきエラー状態や状態情報など、様々なデータがシーケンサによって生成される。チャネルがオンであるかどうか確認したり、いずれかの状態に（例えば、このシステムの処理を妨げるような）不具合があるかどうかを確認したり、位相を読み込んで、その位相と入力ＦＩＦＯの状態の比較を試みたりといった、全体的な一連の動作が存在する。シーケンサが求めるサンプルがバッファ中にない場合には、シーケンサは動作しようとはしない。シーケンサは、サンプルとサンプルの間のマージン（margin）を調べて、マージンが最小値を超えるかどうか判定する。このマージンが最小値を超えない場合には、シーケンサは動作しない。このシーケンサは、それをすべて行った後で、次のチャネルまたは処理に移行する。ときには、そのバッファがすでにオーバーフローしており、復元の見込みがないことがある。その場合、シーケンサは、そのチャネルが完全に失われたことを理解して、さらなるエネルギーを浪費することなく、そのチャネルを停止することになる。ユーザが気づく前にその問題が解決されるように、シーケンサはホスト・プロセッサに割込みを送信する。
【００９０】
この順序付けはどれくらいのｍｓが特定のサブシステムにより処理されるのかによって決まる。さらに、これは、データの利用可能性に基づいている。この情報でシーケンサが読み込む部分は、チャネルを動作させるのに十分なサンプルがバッファ中にあるかどうかである。あるときにはシーケンサは共有されたバッファを指向し、あるときには専用のバッファを指向する。シーケンサは、特定の種類のＦＦＴを行うのにどれだけのサンプルを必要とするのかと、バッファ中にどれだけのサンプルがあるのかとを、対比して調べる。シーケンサは、バッファ中に十分なサンプルが存在するようになるまで待機するように要請されたかどうか調べる。例えば、プロセッサがなおバッファに書き込んでいる場合、システムはバッファが書き込まれるのを待つか、すぐに手を引くかしなければならない。シーケンサが待機して、戻ってきて、なおかつ十分なサンプルがない場合には、シーケンサはすぐにスキップする。この種のロジックは、シーケンサ中で進行している。すなわち、（どのデータがどのチャネルで扱われるか）データをソートし；バッファのすべてのアドレスを再読込みし；バッファの状態をチェックし；システムが処理を実行できる場合に処理を実行し、システムが処理を実行できない場合にスキップし；他のサブシステムとの同期を維持する。一方のサブシステムがチャネルを先に処理しており、他方のサブシステムがいくつかの時点で過酷な作業負荷を有しているために、現実に遅延したデータを処理するようなシナリオが存在する。その後、その他方のサブシステムの作業負荷がなくなると、遅れを取り戻すことになる。一方のサブシステムの処理がより集中的（bursty）であり、他方のサブシステムの処理がより均一（regular）であるため、その遅れたサブシステムは、通常、その遅れを取り戻すことができる。他のシナリオでは、バッファがいっぱいになっており、さらに多くのデータをバッファに入れようとするサブシステムは停止しなければならない。このサブシステムは、それが必要とする次のデータがすでに失われてしまうほど長い期間、停止しなければならないことがある。これは、対処しなければならないエラー条件も発生させる。
【００９１】
シーケンサとプロセッサとの間には、メッセージのやり取りがある。一般に、このプロセッサは、ダンプされていく状態と、出て行くデータによって、何が起こっているのかを絶えず看視している。
【００９２】
このＧＰＳシステムはさらに、過去の実績に基づいて、そのシステムを制御する上で利益をもたらすトラック履歴要素も含む。トラック履歴要素（「ＴＨ」）は、例えば図４、図１６、図１７に示されている。ＴＨデータは、例えば搬送波位相誤差を計算して、補正値を送るなど、様々な手法で分析され、使用される。これは、衛星が移動するか、あるいは発振器が移動するのに伴って、例えば周波数についての調整が行われるであろうから、有用である。
【００９３】
一実施形態では、ＴＨは、コヒーレント積算サンプルのバッファである。このコヒーレント積算サンプルは、比較的に長い。しかしながら、このコヒーレント積算サンプルの長さは、限られている。長い総和演算に対して、搬送波は長期間に亘って完全でなければならなず、これは事実上不可能である。その積分の長さは、変調時の１つのデータ・ビットのサイズである、約２０ｍｓほどになることもある。
【００９４】
ＴＨの用途の１つは、観測のために、約４チップ（４サンプル／チップ、すなわち２０ｍｓごとに１６サンプルが存在する場合）の小さい窓を保つことである。ＴＨはおそらく２００ｍｓごとに上書きを開始するであろう。この窓における履歴は、搬送波位相に何が起ったか、またそのデータに何が起ったか明らかにする。ＴＨデータは、リアルタイム・データよりも高度に「後処理」されて、近い過去におけるシステム性能についての有用な情報を提供することができる。
【００９５】
様々な動作モード
【００９６】
先に述べられたように、種々のサブシステムは、様々な動作モードにおいて様々に構成されることがある。改めて言うと、その動作モードは：「コールド・スタート」または「ロック」モードであるモード１；「粗支援捕捉（coarse-aided acquisition）」モードであるモード２；および「高分解能」または「トラッキング」モードであるモード３を含む。
【００９７】
「コールド・スタート」のモード１
【００９８】
モード１は、一般に、このＧＰＳシステムが複合的に「迷子に」なるときに使用される。例えば、このＧＰＳシステムは、衛星がどこにあるのか予測するのに用いられる時刻に関する情報がない場合、あるいは、衛星がどこにあるのかわかるほど充分には、その物理的位置が分からない場合には、迷子になるであろう。したがって、モード１は、ブラインド・サーチ（盲目的探索）である。この場合、一度に１つの衛星について４００Ｋのオフセットを処理しながら、衛星のリスト全体について扱うことになる。３２の衛星符号が存在する。このＧＰＳシステムは、（上空の可視である部分に基づいて）どの２４の衛星符号が利用可能であるか分かる場合もあるし、分からない場合もある。このブラインド・サーチには、何億もの個々の相関をともなう。モード１では、個々のビンをすべて、長期にわたって保存することはできない。しかしながら、このデータのわずかな一部分については、処理することができる。モード１では、おそらく１００ｍｓもの信号を含む上記信号のワン・ショットでの取込みが、入力ＲＡＭに保存される。圧縮モード（×４の圧縮）Ｉが使用されると、１００ｍｓの信号において１００Ｋバイトのデータが存在する。出力部には８Ｋバッファが１つあり、そのバッファにおいてこの１００ｍｓ信号が再生される。事実上、１Ｋの相関×８周波数（ＦＦＴは、１Ｋチップ・オフセットのそれぞれに対して８つの周波数を作り、それをＲＡＭに保存する）が実行される。このバッファ中のデータが処理されて、また、強力な信号のピークだけが保存される。そしてこの処理を１／２チップ・オフセットを用いて繰り返す。モード１においては、多くの出力ビンが存在しており、長いサンプルは捕捉に必要とされるもっとも微弱な信号を見つけ出すのに役立つ。一実施形態では、モード１は約３０ＤｂＨｚに制限されている。これは、屋外環境には標準的なしきい値である。最終的に見つけられた信号が、時刻を設定して、後に続く探索に対する不確実さを改善しようとするために用いられる。最初の探索処理では、約２５Ｋの相関×８、すなわち約２００Ｋの相関が行われる。すなわち、実効的に、１秒当たり約２００Ｋの１ｍｓ相関が行われている。これを２００Ｋの実効相関器と呼ぶ。
【００９９】
一時的に図３を参照すると、モード１では、ＦＩＦＯ１は比較的広く構成されている。モード１では、サブシステム２とサブシステム３との間の破線で示すように、サンプルはＦＦＴに直接的に送り込まれる。このＦＦＴは原則として、ＦＩＦＯ２を通さずに、振幅（magnitude）を合計して出力ＲＡＭに入れて、８つの周波数を生成する。
【０１００】
「粗支援捕捉」モード２
【０１０１】
次のモードである粗支援捕捉モード、すなわちモード２は、もっと感度の良いケースであり、広範なシナリオにおいて使用できる。例えば、ユーザがＧＰＳシステムを持ち歩いて、地階または地下駐車場に入る場合には、ＧＰＳユニットは前回知られたデータ、すなわち最後に知られたデータを使用する。
【０１０２】
モード２は、１０ｍｓ以下などの控えめなサイズの入力サンプルを使用する。この入力バッファは、絶えず満たされて（もっと適切に言えば、スナップショット・バッファとして使用されて）、１５〜２０Ｋバイト程度、若しくは１つのＦＦＴを実行するのに十分な程度の単一の共有されたコヒーレント・バッファとしてセットアップされる。例えば、そのシステムは、そのバッファが約１４Ｋとなるように、そのバッファに（それぞれが２バイトの）１０２４の相関の７ミリ秒を保存することを望むかもしれない。１４ＫＢのサンプルは、個々の符号位相と見なされて、ＦＦＴに送られる。７つの時間的に遅延したサンプルが、一度にＦＦＴに入る。１６ポイントの変換が生成されて、これらの出力のいくつか、おそらく７つまたは９つの出力が、中心周波数ビンに保持される。モード２では、ＲＡＭの大部分を満たす出力バッファの複数のコピーが存在する。残りのＲＡＭは、専用の非コヒーレント累算バッファに使用される。例えば、１２８ＫのＲＡＭが与えられると、大きなアレイにおいて１００Ｋの個々のビンが可能であり、それらのビンはそれぞれ、周波数または符号オフセットである。モード２では、１２８Ｋのメモリを例にすると、１００Ｋの相関器のみが一度に探索可能であり、６４Ｋのメモリの制限がある場合には、約４０Ｋの相関器のみが探索可能である。この事は、４０Ｋまたは１００Ｋの相関器の、実効的にリアルタイムな、連続処理を意味する。その結果、バッファには７ミリ秒のサンプルのストリームが存在することになる。このストリームは、偶数と奇数のハーフチップ・オフセットに対して処理される。その相関器には１チップのスペースが存在し、その相関器はハーフチップ・オフセットを得るのに（完全整合フィルタ・モードで）２回再生されることもある。周波数の数はプログラム可能である。例えば、おそらく７つまたは９つの周波数が生成される。この結果、１Ｋチップによって９つの周波数の比較的大きなアレイが得られ、ハーフチップのシフトを用いて別のアレイが得られる。新たな周波数、すなわち新たな衛星に移行すると、その処理はそのメモリがいっぱいになるまで繰り返される。
【０１０３】
モード２では、位置は少なくとも大陸規模の精度で知られており、時刻は少なくとも腕時計程度の精度で知られている。衛星なしにデータ・シーケンスを復元するには信号強度が弱すぎるため、通常は何らかの支援情報が必要とされる。支援情報は、衛星リスト、あるいは、相対的な衛星の位置を含むことがある。使用される発振器が高品質の発振器であれば、支援に対する要求は下がる。もちろん、１つまたは複数の情報が或る一定の精度で利用できるときには、その不確実さは低減する。
【０１０４】
モード２では、このＧＰＳシステムは、比較的小さな入力を有するように構成され、コヒーレント・バッファが存在し、出力用にできるだけ多くのメモリが確保され、さらに、処理が連続的に行われる。ＧＰＳ信号間での切換えが行われ、これらのバッファの１つが満たされ、リスト全体が処理されて、シーケンサがそのバッファに戻ってくるまで７ミリ秒の新たなサンプルはそのバッファ内にある。その新たな７ミリ秒は、以前の７ミリ秒の上方に加えられる。これは微弱信号を検出可能な限り継続する。
【０１０５】
「高分解能」または「トラッキング」モード３
【０１０６】
次に、第３のモード、すなわち「高分解能」または「トラッキング」モード３が述べられる。非常に精密な支援が利用可能な場合、モード３は捕捉に適している。モード３は、捕捉後のトラッキングにも利用されることがある。モード３はまた、ＧＰＳシステムが非常に短い期間について遮断され、再捕捉することのみを必要とする場合にも利用される。一般に、モード３が適切であるためには、その時刻は１００ミリ秒の範囲内あるいはそれ以上の精度で知られているべきであり、位置も３０Ｋｍの範囲内で知られているべきである。信号処理の観点からは、モード３の利点は、非常に小さなスペースを探索可能なことである。したがって、その探索は非常に高い分解能とすることができる。
【０１０７】
モード３において、このＧＰＳシステムは、コヒーレントＲＡＭバッファと非コヒーレントＲＡＭバッファが両方とも、チャネルごとに専用となるように、構成されている。比較的に短い入力ＲＡＭが使用される。この場合、入力ＲＡＭの長さは、ＰＤＩの長さよりもさらに短いこともある。例えば、ＰＤＩが２０ｍｓである場合には、１０回の反復において満たされる２ｍｓの専用バッファのみが必要とされる。しかしながら、通常、モード３では、他のモードに比べて、より少ない符号オフセットが探索される。
【０１０８】
他のモードでは、通常は４―１のデータ圧縮が使用される。モード３では、データ圧縮は不要であり、４ビット処理が使用される。他のモードと比較して、損失は低減する。例えば、１Ｄｂの感度は、高分解能の処理を行い、比較的に少ない符号オフセットを処理し、さらに、コヒーレント・バッファと非コヒーレント・バッファを専用とすることで、保存される。コヒーレント・バッファは、全ＰＤＩにわたって保存される。そして、そのＰＤＩはＦＦＴへ処理されて、加算される。様々なチャネルを通じて、同様のサイクルが循環的に繰り返される。
【０１０９】
このＧＰＳシステムは、モード３を使用することを決めた場合に、どこから探索を始めるべきかについて非常によいアイディアを持っているために、最低の損失で最良の信号処理を実現することができる。これは、そのシステムが提供可能な最長のコヒーレント積算時間を使用することを含む。一般に、モード３では、発振器は０．１ＰＰＭないし０．２ＰＰＭまで知られている。モード３においては、位置は絶えず更新されており、不確実さは事実上ゼロとなるべきである。それでもなお、このＧＰＳシステムは探索して、誤ったトラッキングを引き起こす可能性があるマルチパス、自己相関、相互相関、あるいは誤ったピークがあるかどうかを判断する。このＧＰＳシステムは、一度トラッキングを行うと、まだモード３ではない場合、通常はモード３に入る。このＧＰＳシステムはピークを検査して、そのピーク上にいくつかの点を置き、その結果が良好な信号のようにみえるかどうか判定する。一例として、このＧＰＳシステムは、２つの信号のコピー、すなわち直接的な信号のコピーと、建物から跳ね返った信号のコピーを得ることがある。これらの信号の一方が見えなくなって、このＧＰＳシステムはその誤った信号をトラッキングすることがある。
【０１１０】
このＧＰＳシステムの実施例の利点は、約１０チップの小さな窓を出力の周囲に配置して、付近の環境を観測し、マルチパスあるいは付近での相互相関が存在するかどうかを判定できるところにある。現実の信号を見失った場合においても、このＧＰＳシステムは混乱せず、起こりうる再捕捉の処理が回避される。このＧＰＳシステムは、絶えず処理されている異なるオフセットから構築された２つの実効的なチャネルを用いて、１つの信号の異なる２つの実効的な経路をトラッキングする。これと対照的に、従来の受信機はこのピークの周囲に窓を開いて、このピークを跨いで３つのサンプルを観測する。従来のシステムは、一般に、予備として１つの相関器を持っており、外部からの信号を探すために、定期的にこの相関器を動き回らせることもある。しかしながら、従来のシステムは継続的な可視特性を備えることはない。その一方で、本明細書で開示されるＧＰＳシステムは、その窓をつねに開いた状態に維持して、誤ったトラッキングを速やかに検知し、そこから復帰することができる。
【０１１１】
モード３は、一般に、ほぼすべての捕捉の最終段階として使用される。ときには、いくつかの強力な衛星が見出されることがあるが、ただし、そのような衛星がすべて見出されるとは限らない。これらの強力な衛星を用いて位置が生成されるが、それは最良な位置ではないかも知れない。理想的には、これらの利用可能な衛星は散らばって配置されており、視差により作られる誤差のマージンが最小限に抑えられる。それゆえ、このシステムは、まずいくつかの衛星を見出して、その後にその不確実さを最小限に抑えることから始める。モード３に入って、可能な限り最良な測定を行って、最良な位置を生成し、おそらくはその後に、弱すぎて他のモードにおいて見つけられなかったさらに多くの衛星を見出す。
【０１１２】
衛星のすべてに対してエフェメリスが利用できる場合には、より微弱な衛星についても測定に使用することがある。モード３では、処理されたサンプルの振幅と総和を取得する前に、それらのサンプルを保存することもできる（これらの図面には示されていない）。これらのサンプルは、従来のトラッキングに使用される。
【０１１３】
モードの選択
【０１１４】
一実施形態では、プロセッサは、ＧＰＳシステムがどのように動作するかについて、高いレベルで、あらゆる決定を下す。このプロセッサの仕事は、データをＲＡＭ構造にロードすることによって、捕捉を開始することである。シーケンサの仕事は、ＧＰＳシステムを通るデータの流れを管理して、リスト全体をサイクルして、その間ずっと、状態を更新することである。状態が更新されると、このプロセッサは、その状態を調べて、次に何をなすべきか決定を下す。このプロセッサは、周波数ワードについての値を計算するだけでなく、ナビゲーションについての複雑な計算も行う。
【０１１５】
このＧＰＳシステムは、最後に知ったものを利用しようとする。エフェメリスは、約１時間の間だけ、最高の品質である。このエフェメリスは、約４時間の間は使用できるが、その時間の終り近くで劣化する。アルマナック・データは、衛星が存在しているであろう位置についての１ヶ月にわたる予測である。ＧＰＳシステムが時々起動する場合には、アルマナック・データは何年も使用できるかもしれないが、時が経過するにつれて衛星は移動する。普通は、そのアルマナックのみを用いてナビゲーションを行うことはできない。
【０１１６】
このＧＰＳシステムは、プロセッサの指示のもとに、そのセットアップ時の初期動作を、このＧＰＳシステムが知っているもの、例えば、１時間前にそのＧＰＳシステムが起動されたか、これらの衛星の何れかについてエフェメリスを有しているか、そのシステムにその位置についてのメッセージが送信されたか、といったことに基づかせる。これらの情報はすべて、シーケンスおよびレコード内にプログラムされた初期調査のセットに盛り込まれている。
【０１１７】
このＧＰＳシステムの利点は、自律環境に対して（１２８Ｋの利用可能なＲＡＭの例を挙げると）、旧来のシステムでは１分を要した作業を、このＧＰＳシステムでは１秒以内に実行できることである。例えば、最初にアルマナック・データのみが利用可能な場合、このＧＰＳシステムは１秒でトラッキングすることができる。エフェメリス・データが利用可能な場合、このＧＰＳシステムは、その位置について予め何の知識もなくても、１秒でナビゲーションすることができる。
【０１１８】
プロセッサは、それが知っているすべてのことに基づいて、通常は、強力な信号に対するクイック・チェックを「場所を問わず」行うことによって、そのシーケンスを開始する。強力信号はより微弱な信号を妨害（jam）することもあるから、強力信号の存在に注目する。そして、任意の付加的な知っている情報を用いて、他の信号を見出すために、より感度の高い探索を実行する。いくつかの実施形態では、このデータ・シーケンスを復元することが可能な、完全な自律性についての限度（例えば、２７ＤｂＨｚ）が存在する。このデータ・シーケンスは３０秒ごとに繰り返し、ナビゲーションを実行するのに必要なデータ・ブロックを読み込むのに１８秒かかるが、それは３０秒ごとに現れる。アルマナックは、残りの１２秒で繰り返す。このアルマナック全体をダウンロードするのに、約１２分３０秒かかる。このアルマナックに対しては、別の供給源が存在することが好ましい。なぜなら、このシステムは（アルマナックを）長めの時間をかけて収集しなければならず、このことは電力消費について負の影響をもたらすからである。同様な理由から、エフェメリスに対しても、別の供給源が存在することが好ましい。しかしながら、このＧＰＳシステムの利点は、この信号処理が、従来の環境において、ほぼゼロからすべての衛星を捕捉できるくらい力強いことである。その後に、正確な位置を生成するために、もう３０秒を必要とすることがある。アルマナックとエフェメリスのデータは、それらが再び収集されるまでの可能な間、保持されていることが好ましい。例えば、そのデータは１時間保持されて、その後に必要に応じて再収集される。アルマナックまたはエフェメリスのデータの何れかがまだ保存されている場合には、そのデータを再使用して、短時間で位置決定を行うが、最終的にはそのデータは再収集される。
【０１１９】
ＧＰＳシステムをどのように動作させるかについての決定はすべて、以前のステップの結果に基づいている。例えば、いくつの衛星が見出されたか、捕捉されたデータは他の衛星を見出す上で利用できるかどうか、といったことである。このＧＰＳシステムは、様々なタイプの探索を行うことがある。通常は、次のような全体シーケンスが完了するであろう。すなわち、まず最初に、強力信号があるかどうかを認識するためのコールド・スタート、それらの信号のいくつかを見出して、最低限の位置を取得することに基づく粗支援探索、および、トラッキングのみを行うモード３である。モード３がもっとも感度が高く、かつもっとも損失が小さく、したがって、信号がデータしきい値を下回ることがあっても、モード３がトラッキングに利用される。なぜなら、モード３は最良の、最も効果的なトラッキング・モードだからである。
【０１２０】
このシステムが移動すると、信号は強くなったり、弱くなったりする。信号が十分に長く期間十分に強くなった場合、エフェメリスを収集することが可能であり、信号が弱くなると、そのエフェメリスを使用して、トラッキングが維持される。
【０１２１】
代替実施形態
【０１２２】
図面に示され、かつ本明細書に述べられる具体的なハードウェアおよびソフトウェア設計の多くの代替形態が可能である。例えば、ＲＡＭは、いくつかのシステムでは、２秒のスナップショットであるが、通常はオフチップである２ＭＥＧでは大きい。代替実施形態では、ＧＰＳシステムにメモリ・インターフェースが組み込まれており、８ビット・メモリを通じて、オフチップＤＲＡＭにアクセスする。これは、信号処理装置に対して十分な帯域幅を維持する。他の代替実施形態では、ＧＰＳシステムの外部に、非コヒーレント累算値を保存することもある。さらに他の実施例では、８ビット・メモリのほかに、他のタイプのメモリを使用することがある。
【０１２３】
代替実施形態では、制御構造の要素を、デジタル信号処理装置（「ＤＳＰ」）に置き換えて、その処理の一部とする。例えば、ＦＦＴコアまたはＦＦＴアクセラレーションを有するＤＳＰは、この制御ロジックを実行することもある。モード１の例外の可能性として、コールド・スタートが非常に高いデータ・レートを必要とするかもしれないが、ＤＳＰは制御機能を扱うこともできる。ＤＳＰはまた、相関器ではなくて、ＦＦＴの出力を扱うこともできる。言い替えれば、ＤＳＰはＦＦＴを制御することになるが、ＦＦＴは自力でメモリ取出しを行ったり、自力で直接的な経路を取得することができる。さらに、この順序付けはＤＳＰにより行われることもある。整合フィルタは、その作業の大部分に対して、その内部レジスタを使用することもある。図示された整合フィルタ設計に基づいて、整合フィルタのリソースを分けることができる。例えば、全整合フィルタ・モードでは、１０２４の相関器がすべて、単一のチップ位置に使用される。別の整合フィルタ・モードでは、整合フィルタ・リソースは、２分の１、４分の１、または８分の１に分けられ、その結果得られた整合フィルタ・セグメントのそれぞれにおいて、異なる分数チップ位置（例えば、１／２チップ（ハーフチップ）・オフセット、１／４チップ・オフセット、または、１／８チップ・オフセット）を相関させる。
【０１２４】
さらに、これらの整合フィルタ・リソースは、高分解能の相関を生み出すように構成されることもある。例えば、整合フィルタを半分ずつに分ける場合には、２つのＭＳＢを相関させるために上半分が使用され、２つのＬＳＢを相関させるために下半分が使用される。そして、これらの２つの結果を加算して、より高い分解能の結果が得られる。別の例では、整合フィルタを４分の１ずつに分ける。下側の２つの１／４を使用して、１つの高分解能のハーフチップ間隔のＭＳＢとＬＳＢを相関させる。また、上側の２つの１／４を使用して、他の高分解能の１／２チップ間隔のＭＳＢとＬＳＢを相関させる。整合フィルタ・リソースを部分に分けて、それらの異なる部分を使用することが、まったく柔軟に行われる。
【０１２５】
整合フィルタの構成は、最初に（チャネル毎を基準として、セットアップの際に）、高分解能モードが望まれているかどうか、また、特定の分数の符号間隔が望まれているかどうかに基づいて、決定される。整合フィルタは、それぞれのチャネルに対して、特定のモードで動作するように構成されている。これらのチャネルは、シーケンサの制御のもとに、時間多重化ベースで、特定のモードの整合フィルタにアクセスする。
【実施例２】
【０１２６】
一実施形態のＧＰＳシステムは、ＲＦ処理部とベースバンド処理部との間のインターフェースを介した、ＲＦ電力制御メッセージの送信と、ＲＦ電力制御メッセージを送る方法を提供する。このインターフェースは、ＲＦ処理部とベースバンド処理部との間の汎用双方向メッセージ伝送をサポートしている。このインターフェースはさらに、このインターフェースに過度の複雑さを加えることなく、これら２つの処理部間のＳＰＳ信号サンプルの伝送もサポートしている。
【０１２７】
一実施例では、このインターフェースは、メッセージ・シリアル・インターフェースとデータ・シリアル・インターフェースを含む。このデータ・シリアル・インターフェースは、ＳＰＳ信号サンプル・データを、ＲＦ処理部からベースバンド処理部へ伝える。このメッセージ・シリアル・インターフェースは、ＲＦ処理部とベースバンド処理部との間で、電力制御メッセージを含むメッセージをやり取りする。
【０１２８】
上記の通り、メッセージ・シリアル・インターフェースは、これらの処理部間で、電力制御メッセージをやり取りする。このメッセージ・シリアル・インターフェースは、メッセージ入力信号線、メッセージ出力信号線、メッセージ・クロック信号線を含むことがある。いくつかの実施例では、このメッセージ・シリアル・インターフェースはまた、スレーブ選択信号線も含むことがある。電力制御メッセージは、例えば、複数の電力制御ビットを含むことがある。それぞれの電力制御ビットは、ＲＦ処理部中の所定の回路に対して、電力状態（例えば、始動または停止）を指定する。
【０１２９】
このデータ・シリアル・インターフェースの複雑さは、例えば、単一のデータ・ビット信号線を用いて、信号サンプルをＲＦ処理部からベースバンド処理部にシリアルに運ぶことにより、減らされることがある。このデータ・シリアル・インターフェースはまた、信号サンプルにタイミングを与えるデータ・クロック信号線も含むことがある。特に、一例として、このデータ・クロック信号線は、公称１６ｆ０（ここで、ｆ０＝１．０２３ＭＨｚ）で動作するデータ・クロック（立上りエッジと立下りエッジを含む）を運ぶが、一方、このデータ・ビット信号線は、シリアルに伝送されるデータ・ビットから成るデータ信号を運ぶ。一実施例では、第１のタイプのデータ・ビットは、このデータ・クロックの立上りエッジで有効であり、また、第２のタイプのデータ・ビットは、このデータ・クロックの立下りエッジで有効である。一例として、第１のタイプのデータ・ビットは符号ビットであることがあるが、一方、第２のタイプのデータ・ビットは振幅ビットであることがある。
【０１３０】
図４５は、衛星測位システムの受信部４５−２００を示している。受信部４５−２００は、ＲＦ―ベースバンド間インターフェース４５−２０６を用いて、ベースバンド処理部４５−２０４に結合されたＲＦ処理部４５−２０２を含む。ＲＦ処理部４５−２０２は、ＲＦ入力部４５−２０７で、ＳＰＳ信号、例えば１５７５．４２ＭＨｚのＧＰＳ信号を受信する。
【０１３１】
受信部４５−２００は、一般に、ＲＦフロントエンド４５−２２４とベースバンド・バックエンド４５−２２６を含むものと見なされることがある。ＲＦフロントエンド４５−２２４は、ＲＦ処理部４５−２０２と、ＲＦ−ベースバンド間インターフェース４５−２０６を含む。ＲＦフロントエンド４５−２２４は、一連のダウン・コンバージョン、自動利得制御、アナログ・デジタル変換を通じて、ＲＦ入力部４５−２０７で受け取られたＳＰＳ信号を処理する。ベースバンド・バックエンド４５−２２６は、ベースバンド処理部４５−２０４とＲＦ−ベースバンド間インターフェース４５−２０６を含む。ベースバンド・バックエンド４５−２２６は、（マイクロコントローラのコア、ＣＰＵ、または他の制御ロジックを用いて）ＲＦフロントエンド４５−２２４で与えられたサンプリングされたデータを処理する。ベースバンド・バックエンド４５−２２６は、この処理されたデータを、デジタル通信インターフェース４５−２２２を含む１つまたは複数のアドレス信号、データ信号、制御信号、クロック信号を用いて、デジタル装置（例えば、デジタル信号処理装置、汎用マイクロコントローラまたはＣＰＵ、あるいは、ホストＰＣ）に伝える。
【０１３２】
ＲＦフロントエンド４５−２２４とベースバンド・バックエンド４５−２２６の一方または両方は、例えば、個別の単一集積回路として構築されることがある。したがって、ＲＦフロントエンド４５−２２４は、ＲＦ入力部４５−２０７（例えば、パッケージ上の特定の入力ピン）、ＲＦ処理部４５−２０２、インターフェース４５−２０６（例えば、以下でさらに詳しく述べられる一組のインターフェース・ピン）を含む単一パッケージである。同様に、ベースバンド・バックエンド４５−２２６は、ベースバンド処理部４５−２０４、インターフェース４５−２０６、デジタル・インターフェース４５−２２２を含む単一パッケージである。ＲＦ処理部４５−２０４とベースバンド処理部４５−２０４で行われる処理は、ＳｉＲＦＳｔａｒ（Ｒ）、Ｉ、ＩＩ、またはＩＩＩのチップ・データシートにさらに詳しく記述されているであろう。一方、インターフェース４５−２０６は、以下でさらに詳しく述べられる。ＳｉＲＦＳｔａｒ（Ｒ）のチップセットは、Ｓａｎ  Ｊｏｓｅ  ＣａｌｉｆｏｒｎｉａのＳｉＲＦ  Ｔｅｃｈｎｏｌｏｇｙ，Ｉｎｃ．から入手できる。
【０１３３】
図４５に示されるように、ＲＦフロントエンド４５−２２４とベースバンド・バックエンド４５−２２６との間の機能分割は、２つの別々の集積回路に分けられやすいが、他の多くの実施例も可能である。一例として、多数の個別論理素子と信号処理回路ブロックが、ＲＦ、ベースバンド、インターフェース４５−２０６の機能を果たすことがある。追加的な例として、ＲＦフロントエンド４５−２２４とベースバンド・バックエンド４５−２２６の機能の基礎になる回路はどれも、単一のパッケージ（例えば、複数の集積回路のダイを収容するもの）または集積回路、複数のパッケージまたは集積回路に組み込まれるか、あるいは、１つまたは複数の回路基板の全体に分散されることがある。これらの実施例では、個々の線、回路基板配線、あるいは、ＶＬＳＩの金属層またはポリシリコン層は、ＲＦ処理回路とベースバンド処理回路との間で、インターフェース４５−２０６の信号を運ぶ。
【０１３４】
さらに、ＲＦフロントエンド４５−２２４とベースバンド・バックエンド４５−２２６の機能の基礎になる回路はどれも、追加機能とともに、単一のパッケージまたは集積回路、複数のパッケージまたは集積回路に組み込まれるか、あるいは、１つまたは複数の回路基板の全体に分散されることがある。例として、ＲＦ回路とベースバンド回路は、セルラー電話、ＰＤＡ操作、あるいは、自動車向けのエンジン、計器、または電子コントローラに用いる、デジタルまたはアナログ処理回路を持つダイ上に集積される。したがって、図４５と、上に挙げられた例は、限定的なものではない。もっと適切に言えば、通常の当業者であれば、ＲＦ処理、ベースバンド処理、インターフェース４５−２０６を実施する回路の具体的な実装形態、機能の分割、パッケージングは、そのときのアプリケーション、設計上考慮すべき事項、費用の問題などにより、多種多様であるものと理解されよう。
【０１３５】
インターフェース４５−２０６は、メッセージ・シリアル・インターフェース４５−２０８と、データ・シリアル・インターフェース４５−２１０を含む。メッセージ・シリアル・インターフェース４５−２０８は、ＲＦ処理部４５−２０２とベースバンド処理部４５−２０４との間で、双方向に汎用メッセージをシリアルでやり取りできるようにする。これと対照的に、ＲＦ処理部４５−２０２は、データ・シリアル・インターフェース４５−２１０を使用して、ＳＰＳ信号サンプルをベースバンド処理部４５−２０４に送る。
【０１３６】
当初の問題として、一般に、図４５に示されるインターフェース４５−２０６の信号は、ＣＭＯＳ対応のものであることに留意する。特に、入力は、ロジック１では０．７＊ＶｃｃＶよりも高く、また、ロジック０では０．３＊ＶｃｃＶよりも低い。出力は、ロジック１ではＶｃｃ−０．４Ｖよりも高く、また、ロジック０では０．４Ｖよりも低い。これらの入出力ピンは、一般に、所望の実装形態に応じて、２．５Ｖか、３．３Ｖのいずれかの電圧レンジで動作する。リアルタイム・クロック（ＲＴＣ）入出力ピンは、１．５Ｖで動作するが、ただし、これらの入出力ピンは、要望があれば、３．３Ｖのレベルを許容するように設計されることがある。しかしながら、これらの信号はどれも、所望の実装形態に応じて、異なる定格電圧または仕様に合わせられる。
【０１３７】
図４５に示されるメッセージ・シリアル・インターフェース４５−２０８は、メッセージ入力信号線（ＭＳＧ＿ＤＯ／ＭＩと表記）、メッセージ出力信号線（ＭＳＧ＿ＤＩ／ＭＯと表記）、メッセージ・クロック信号線（ＭＳＧ＿ＣＬＫ／ＭＫと表記）、スレーブ選択信号線（ＭＳＧ＿ＣＥＢ／ＳＳ＿Ｎ［０］と表記）を含む。これらのメッセージ信号線上のラベルは、ＲＦ処理部４５−２０２／ベースバンド処理部４５−２０４の視点から、データフローの方向を示している。例えば、メッセージ出力信号線（ＭＳＧ＿ＤＩ／ＭＯ）は、ＲＦ処理部４５−２０２に入力され、かつ、ベースバンド処理部４５−２０４により出力されるメッセージ・ビットを運ぶ。
【０１３８】
データ・シリアル・インターフェース４５−２１０は、データ・クロック信号線（ＡＣＱＣＬＫと表記）とデータ・ビット信号線（ＳＧＮＭＡＧと表記）を含む。データ・シリアル・インターフェース４５−２１０は、一般に、単一のデータ・ビット信号線だけを使用して、データ・ビットをベースバンド処理部４５−２０４にシリアルに伝える（図４６に関して、以下でさらに詳しく説明される）。したがって、データ・シリアル・インターフェース４５−２１０は、一般に、わずか２本の信号線、すなわち、データ・クロックに１本、またデータ・ビットに１本を含む。従って、データ・シリアル・インターフェース４５−２１０は、ＲＦ処理部４５−２０２とベースバンド処理部４５−２０４との間のＳＰＳ信号サンプル・インターフェースについてのそれほど複雑でない解決策と言える。
【０１３９】
図４５に示される通り、受信部４５−２００は、ＲＦ処理側に、リアルタイム・クロック（ＲＴＣ）発振器（ＯＳＣ）およびモニタ部４５−２１２も含む。３２ＫＨｚの水晶発振器（または、他のクロック発生源）は、ＲＴＣ  ＯＳＣ部４５−２１２に対して、入力クロック４５−２１４を与える。ＲＴＣ  ＯＳＣ部４５−２１２は、ＲＴＣＬＫ／ＲＩＮ信号線上にクロック出力を生成し、そのクロック出力をベースバンド処理部４５−２０４が使用して、例えば、ＧＰＳ時刻またはＵＴＣ時刻を保持する。このクロック出力は、例えば、３２，７６８Ｈｚ  １．５Ｖ  ＣＭＯＳ出力である。ＲＴＣ  ＯＳＣ部４５−２１２は、ベースバンド処理部４５−２０４が正確な時刻基準を維持するのに役立つように、電力停止モードの間も、動作し続ける。
【０１４０】
しかしながら、ＲＴＣ  ＯＳＣ部４５−２１２中のモニタ回路（例えば、クロック入力に接続され、かつ比較器が後続する整流器）は、入力クロック４５−２１４が確実な動作をしている（例えば、停止している期間が１０〜３０クロック・サイクルを超えない）場合を特定する。このクロックの停止が長すぎる場合には、ＲＦ処理部４５−２０２は、１ビットをセットして（例えば、フリップ／フロップ出力をセットするか、あるいは、マルチビット・ステータス・レジスタ中の１ビットをセットして）、そのクロック出力が確実なものではなかったこと（および、場合によっては、ベースバンド処理部４５−２０４が、受信されたＳＰＳ信号の全領域にわたって探索して、正確な時刻を決定すべきであること）を知らせる。
【０１４１】
ＲＦ処理部４５−２０２はまた、水晶発振器４５−２１６、あるいは外部クロック発生源４５−２１８（例えば、無線装置において提供される周波数基準）のいずれかから、クロック入力を受け取る。それらのクロック入力４５−２１６および４５−２１８は、ＲＦ処理部４５−２０２中のＰＬＬ分周器チェーンがＡＣＱＣＬＫ信号を作り出すために利用するクロック発生源を提供する。クロック入力４５−２１６および４５−２１８は、以下ではまとめてＯＳＣＣＬＫと称され、ＰＬＬ分周器チェーンのクロックは、ＰＬＬＣＬＫと称される。ＰＬＬＣＬＫは通常、データ・クロック信号線であるＡＣＱＣＬＫに、ＯＳＣＣＬＫ（あるいは内部の周波数基準）から生成される１６Ｆ０の公称周波数（ここで、Ｆ０＝１．０２３ＭＨｚである）を作り出すようにセットされる。
【０１４２】
始動時、ＡＣＱＣＬＫの出力にはＯＳＣＣＬＫ（一般に５〜２７ＭＨｚの範囲内にある）が現れている。メッセージ（後述する）がＲＦ処理部４５−２０２に指示し、ＡＣＱＣＬＫをＯＳＣＣＬＫからＰＬＬＣＬＫへ、およびＰＬＬＣＬＫからＯＳＣＣＬＫへ切換える。ＡＣＱＣＬＫ信号は、（ＡＣＱＣＬＫが長期にわたる低サイクルを備え得る、クロック発声源の切換え時を除き）４５％〜５５％のデューティ・サイクルを備える、２．５／３．３ＶのＣＭＯＳ出力であってもよい。
【０１４３】
電力制御信号（ＰＷＲＵＰ／ＲＦＰＷＲＵＰと表記）を状況に応じて供給して、ＲＦ処理部４５−２０２のどの部分を始動するかを制御することがある。例えば、電力制御信号はＲＦ処理部４５−２０２の電圧調整器有効化ピンに接続されて、ＲＦ処理部４５−２０２中の回路の大部分についての粗い（coarse）始動／停止制御を可能にする。その一方、ＲＴＣ  ＯＳＣ部４５−２１２は、ベースバンド処理部４５−２０４にクロックを供給し続けることができるように、独立して電力の供給を受ける。電力制御信号は、２．５／３．３ＶのＣＭＯＳ信号であってもよい。ベースバンド処理側には、ＲＴＣロジック部４５−２２０が含まれている。ＲＴＣロジック部４５−２２０は、現在の時刻とＳＰＳ位置解を特定する上での支援として、ＲＴＣ  ＯＳＣおよびモニタ部４５−２１２によって生成された入力クロックを受け入れる。
【０１４４】
ＲＴＣロジック部４５−２２０は更に、（ローでアサートされる）リセット信号ＧＲＦＲＳＴ＿Ｎ／ＲＥＳＥＴ＿Ｎを出力する。
リセット信号は、電源投入時に、ＲＴＣ  ＯＳＣ部４５−２１２とＲＦ処理部４５−２０２の制御レジスタの状態をリセットするために使用される。
例えば、ＧＲＦＲＳＴ＿Ｎがアサートされると、ＲＦ処理側のデジタル制御レジスタは、デフォルト状態にリセットされる。制御レジスタのデフォルト状態は、ＯＳＣＣＬＫの回路が動作することを可能とし、（ＰＷＲＵＰがアサートされた場合）ＯＳＣＣＬＫによってＡＣＱＣＬＫの出力を生成することを可能にする。ＧＲＦＲＳＴ＿Ｎがアサートされていない場合、ＲＦ処理部４５−２０２は内部ロジックの状態に従って動作する。
【０１４５】
一実施例では、メッセージ・シリアル・インターフェース信号は２．５／３．３ＶのＣＭＯＳ入出力信号である。ＭＳＧ＿ＣＬＫ／ＭＫ、ＭＳＧ＿ＤＩ／ＭＯ、およびＭＳＧ＿ＣＥＢ／ＳＳ＿Ｎ［０］の信号は、ＲＦ処理部４５−２０２への入力である。ＭＳＧ＿ＤＯ／ＭＩ信号は、三状態制御を用いたＲＦ処理部４５−２０２からの出力である。ＭＳＧ＿ＣＥＢ／ＳＳ＿Ｎ［０］がロジック・ハイの場合、ＭＳＧ＿ＤＯ／ＭＩ出力は高インピーダンスであって、同じようにメッセージ・シリアル・インターフェース４５−２０８に接続されている他の装置によって生起されることもある。従って、ベースバンド処理部４５−２０４からのＭＳＧ＿ＣＥＢ／ＳＳ＿Ｎ［０］出力はスレーブ選択信号として機能し、ＲＦ処理部４５−２０２がＭＳＧ＿ＤＯ／ＭＩ信号線上にデータを生成することを可能にする。更なる装置がメッセージ・シリアル・インターフェース４５−２０８に取付けられる場合、ベースバンド処理部４５−２０４は、どの装置をＭＳＧ＿ＤＯ／ＭＩ信号線にデータを生成可能とするかを決定する、更なるスレーブ選択信号線を提供してもよい。
【０１４６】
ＲＦ処理部４５−２０２は更に、一つまたはそれ以上の外部アナログ・センサ（図示せず）の入力を含んでもよい。従って、ＲＦ処理部４５−２０２にある複数チャネルのアナログ／デジタル（Ａ／Ｄ）変換器は、アナログ入力信号を測定して、その結果をベースバンド処理部４５−２０４に通信してもよい。アナログ入力は、温度入力、ジャイロ回頭角速度（turn rate）入力、ホイール・ティック（wheel tick）入力、あるいはバッテリ電圧入力などを含んでも良い。ただし、これらに限定されるものではない。
【０１４７】
表１に、受信部４５−２００の動作モードをまとめる。
【０１４８】
次いで図４６には、データ・クロック４６−３０２とデータ信号４６−３０４の関係を表すタイミング図が示されている。データ信号４６−３０４はベースバンド処理部４５−２０４にＳＰＳ信号サンプルを提供する。ＳＰＳ信号サンプルは、ＲＦ処理部４５−２０２に接続されたアンテナによって受信されるＳＰＳ入力信号から得られる。ＡＣＱＣＬＫ信号線はデータ・クロック４６−３０２を伝送し、ＳＧＮＭＡＧ信号線はデータ信号４６−３０４を伝送する。データ信号４６−３０４は、例えば２．５／３．３ＶのＣＭＯＳ出力であってもよいが、符号ビット・データ４６−３０６と振幅ビット・データ４６−３０８を、ＳＧＮＭＡＧ信号線で送信する。一実施例では、データ信号４６−３０４は、ＲＦ処理部４５−２０２にあるＡ／Ｄ変換器によって特定された符号ビットと振幅ビットの情報を提供する。
【０１４９】
他の実施例では、ベースバンド処理部４５−２０４が送信されたデータを認識できるようにするために、データ・ビットに適用される（例えば擬似ランダム・ノイズ符号といった）所定のプロトコルまたは符号化技術に合わせて、追加の情報ビットまたは量子化ビットが提供されてもよい。更に、データ信号４６−３０４は、ＲＦ処理部４５−２０２が扱う様々なラジオ・チェーンに対する信号サンプルを送信する事ができる。例えば、ＲＦ処理部４５−２０２がＳＰＳデータを処理する場合、データ信号４６−３０４はサンプル毎に二つのビット（上述した符号と振幅）のデータ対を運ぶことができる。その一方で、ＲＦ処理部４５−２０２が別のＲＦ信号（例えばブルートゥース信号）を処理する場合、データ信号４６−３０４はそのＲＦ信号を処理するために定められたガイドラインに従って、サンプル毎により多くの、またはより少ないビット（例えば、４つまたは６つのビット）を代わりに送信する。同様に、データ・クロック４６−３０２も、ＲＦ処理部４５−２０２がその時点で処理しているＲＦ信号の処理に関するガイドラインに適合するように、周波数とデューティ・サイクルを変更することができる。
【０１５０】
図４６に示されるように、ＲＦ処理部４５−２０２は、データ・クロック４６−３０２がロジック・ハイの場合には、符号ビット４６−３０６を出力し、データ・クロック４６−３０２がロジック・ローの場合には、振幅ビット４６−３０８を出力する。図４６に示されるように、符号ビット４６−３０６は、短くともデータ・クロック４６−３０２の立下りエッジ４６−３１０以前のＴＳＥＴＵＰ−Ｆの期間は有効である。同様に、振幅ビット４６−３０８は、短くともデータ・クロック４６−３０２の立上りエッジ４６−３１２以前のＴＳＥＴＵＰ−Ｒの期間は有効である。
【０１５１】
符号ビット４６−３０６は、短くともデータ・クロック４６−３０２の立下りエッジ４６−３１０以降のＴＨＯＬＤ−Ｆの期間は有効であり続ける。振幅ビット４６−３０８は、短くともデータ・クロック４６−３０２の立上りエッジ４６−３１２以降のＴＨＯＬＤ−Ｒの期間は有効であり続ける。上記のセットアップ時間とホールド時間は、実施例ごとに異なっていてもよい。一例として、セットアップ時間とホールド時間は約５〜１０ｎｓであってよい。
【０１５２】
メッセージ・シリアル・インターフェース４５−２０８は、さまざまな態様で実装することができる。一実施例では、メッセージ・シリアル・インターフェース４５−２０８は下記の特徴を備えるが、他の実施例とすることも可能である。
【０１５３】
ＲＦ処理部４５−２０２のメッセージ・シリアル・インターフェースは、ベースバンド処理部４５−２０４（あるいは下記の特徴にあてはまる他のマスタ・デバイス）のスレーブ・デバイスとして動作する。ＲＦ処理部４５−２０２への（ＭＳＧ＿ＤＩ線上の）入力ビットは、ＭＳＧ＿ＣＬＫの支配下にあるＲＦ処理部４５−２０２の３２ビット・シフト・レジスタにシフト・インされる。一実施例では、一つのメッセージ・ブロックにおいて最大３２ビットが送信され、データはその最上位のビットから送受信される。同時に、ＭＳＧ＿ＤＯの出力ビットは、その同じシフト・レジスタの反対側からシフト・アウトされる。ＲＦ処理部４５−２０２からの出力が不要な場合、ＭＳＧ＿ＤＯの出力は接続されなくても良い。一実施例では、ＭＳＧ＿ＣＬＫは最大２０ＭＨｚで動作する。メッセージ・シリアル・インターフェース信号は、ロジック１では約０．８＊ＶＣＣ  Ｖより高く、ロジック０では約０．２＊ＶＣＣ  Ｖよりも低い。
【０１５４】
スレーブ選択信号線（ＭＳＧ＿ＣＥＢ）は、シリアル・データ送信ではローで有効化される。従って、ＭＳＧ＿ＤＩとＭＳＧ＿ＣＬＫは、予め選択された期間（例えば５ｎｓ）だけＭＳＧ＿ＣＥＢがロジック・ハイである間は、無視されてもよい。データはＭＳＧ＿ＣＬＫの立上りエッジでサンプリングされる。一実施形態では、ＭＳＧ＿ＤＩもしくはＭＳＧ＿ＤＯの遷移は、ＭＳＧ＿ＣＬＫの立上りエッジから少なくとも５ｎｓ後には生起し、ＭＳＧ＿ＣＬＫの次の立上りエッジから少なくとも５［ｎｓ］前には安定する。そのデータは、ＭＳＧ＿ＣＬＫの立下りエッジでシフトされる。そして、ＭＳＧ＿ＣＥＢ信号は、最初のＭＳＧ＿ＣＬＫの立上りエッジから少なくとも１０［ｎｓ］前には有効（ロジック０）になり、ＭＳＧ＿ＣＬＫの最後の立下りエッジから少なくとも１０［ｎｓ］後まで有効（ロジック０）であり続ける。どちらの場合も、時間間隔は例えば１クロック・サイクルの半分である。その後、ＭＳＢ＿ＣＥＢ信号は、少なくとも３０［ｎｓ］の間は無効（ロジック１）となり、ＲＦ処理部４５−２０２がデータをラッチする時間を提供する。
【０１５５】
もしＭＳＧ＿ＣＥＢ信号がメッセージ・ブロックのすべてのデータが送信される前にロジック・ハイに遷移すれば、そのデータは破棄されてＲＦ処理部４５−２０２のレジスタには適用されない。メッセージ・ブロック内の未使用のビットはゼロにセットされている。しかしながら、短縮された１バイト・メッセージを許容するために、高速書込みモードが提供されている。８ビットを超えるビットが受信されるまでは、高速書込みモードが実行される。８ビットを超えるビットが受信されると、ＲＦ処理部４５−２０２は有効なメッセージとなる３２ビット全てを受信しようとする。
【０１５６】
ＲＦ処理部４５−２０２は、ベースバンド処理部４５−２０４からデータを要求するメッセージを受信すると、ベースバンド処理部４５−２０４へ（ＭＳＧ＿ＤＯ上に）データを出力する。そして、ベースバンド処理部４５−２０４は、次のメッセージを送信し、ＲＦ処理部４５−２０２のシフト・レジスタ内にある要求されたデータを、そのシフト・レジスタ内からシフト・アウトさせる。上記した次のメッセージは、独立した動作に関するメッセージであってもよいし、その要望されたデータをシフト・アウトさせるためだけのダミー・メッセージであってもよい。
【０１５７】
図４７は、スレーブ選択信号（ＭＳＧ＿ＣＥＢ）４７−４０２、メッセージ・クロック信号（ＭＳＧ＿ＣＬＫ）４７−４０４、およびメッセージ・データ・ビット信号（ＭＳＧ＿ＤＯおよびＭＳＧ＿ＤＩ）４７−４０６の間の関連性を表すタイミング図４７−４００を示す。データ送信はスレーブ選択信号４７−４０２の立下りの時点から開始する。送信されたデータは、スレーブ選択信号４７−４０２の立上りの時点でラッチされる。
【０１５８】
図４７に示すように、メッセージ出力信号線（ＭＳＧ＿ＤＩ／ＭＯ）とメッセージ入力信号線（ＭＳＧ＿ＤＯ／ＭＩ）は、それぞれシリアル・ビット・ストリームを伝送する。メッセージ出力信号線上のシリアル・ビット・ストリームは、ベースバンド処理部４５−２０４からＲＦ処理部４５−２０２へ送信される、予め定められたＲＦ処理部のメッセージ群から選択されたメッセージを表現している。同様に、メッセージ入力信号線上のシリアル・ビット・ストリームは、ＲＦ処理部４５−２０２からベースバンド処理部４５−２０４へ送信される、予め定められたベースバンド処理部のメッセージ群から選択されたメッセージを表現している。
【０１５９】
上記したメッセージは、特定の目的やフォーマットに限定されるものではない。以下に詳述するように、上記したメッセージはＲＦ処理部の電力制御メッセージ、ＲＦ処理部のテスト・メッセージ、クロック状態メッセージ、アナログ測定メッセージ、チャネル変換回数メッセージ等を含むが、これに限定されるものではない。
【０１６０】
一実施例では、４つの形式のメッセージ・ブロックが定義されている。（３２ビットまたは８ビットの列における）データ［１：０］は、表２に示すように、４つのメッセージを定義するアドレス・ビットである。それぞれのメッセージ形式は、高速書込みモードと完全書込みモードの両方をサポート可能であって、両方のモードに対し余剰能力が定められる。
【０１６１】
各メッセージの典型的な内容は、表３〜表８に詳細に示されている。表３はＡＧＣと合成器の制御メッセージを示し、表４Ａおよび表４Ｂは電力制御と合成器の制御メッセージを示し、表５は選択されたメッセージ形式に対する出力要求形式を示す。表６は出力メッセージ形式を示し、表７と表８は入力メッセージ形式を示す。縦の列は以下のように内容を定義する。１番目の縦列はビットと表記されており、メッセージ・データ・ビットを意味する。ここで、ビット“０”は最後に送信されたビットを指す。２番目の縦列はフィールド名称と表記されており、そのメッセージのフィールドの名称を示している。３番目の縦列は長さと表記されており、そのフィールドの長さを意味する。４番目の縦列はデフォルトと表記されており、電源が最初に投入された時点におけるＲＦ処理部４５−２０２のデフォルトのパラメータを示す。５番目の縦列は内容と表記され、そのフィールドが許容する内容を記述する。６番目の縦列は機能と表記され、そのフィールドが果たす機能を示す。そして、７番目の縦列は＿Ｐｗｒと表記され、表４Ａおよび表４Ｂに示されるどの電力領域制御ビット（もし存在すれば）を用いて、ＲＦ処理部４５−２０２のインターフェース上でこれらのフィールドの出力を０とするのかを示す。
【０１６２】
メッセージ形式２は、最大３２種類の出力要求を特定するフィールドを用いて、出力要求を実施できるようにしている。メッセージ形式３は、入力メッセージ形式（あるいはアドレス）を、４から３６まで拡張できるようにしている。以下の「合成器」についての説明は、ＲＦ処理部４５−２０２におけるＰＬＬ合成器のクロック生成回路についての説明である。ＰＬＬ合成器は、例えば、クロック分周値を設定することによって、入力される多種多様な基準周波数からＰＬＬＣＬＫを生成するように構成される。
【０１６３】
出力メッセージ形式は表６に示されている。拡張や、ＲＦ処理部のテストに利用するために、予備のメッセージが定義されている。このデータはＲＦ処理部４５−２０２からメッセージ・インターフェースへの入力であるから、これらのフィールドには、例えばｓｐａｒｅＩｎＡのように、入力を意味する名称が付けられている。データがシフト・アウトされると、そのデータは与えられたインデックス値を用いて出力データ・ストリームに位置付けられる。例えばｓｐａｒｅＩｎＡ［２３：０］は、３２ビットの出力フィールドにおいてシフト・アウトされる最後の２４ビットに位置する。これによって、最上位ビットからシフト・アウトするという仕様に従い、最初に８つの“０”があり、その後にｓｐａｒｅＩｎＡ［２３］からｓｐａｒｅＩｎＡ［０］が続くであろう。
【０１６４】
Ｏｕｔ＿Ｄａｔ［４：０］＝４−８は、ＲＦ処理部４５−２０２のデュアル・スロープＡ／Ｄ変換器によって測定される２０ビットの測定値を示す。上述のように、Ａ／Ｄ変換器は一つまたはそれ以上のアナログ測定装置に接続された複数のチャネルを備えてもよい。以下の通り、Ｏｕｔ＿Ｄａｔ［４：０］＝９は、ＲＴＣ  ＯＳＣ部４５−２１２によって維持されている有効なクロック・ビットを示す。
【０１６５】
（テストや拡張の目的に有用な）予備のメッセージが表８に示されている。これらのデータは、メッセージ・インターフェースによるＲＦ処理部４５−２０２への制御ビット出力を表現するから、そのデータ・フィールドには、例えばＳｐａｒｅＯｕｔＡのように、出力を意味する名称が付けられている。
【０１６６】
ＳＧＮＭＡＧ出力信号線についてのテスト・メッセージも定義されている。ＴｅｓｔＳｉｇｎＭａｇ［８］＝１のとき、テスト・モードに入る。ＴｅｓｔＳｉｇｎＭａｇ［８］＝０のとき、テスト・モードは終了する。テスト・モードにおいては、ＡＣＱＣＬＫがロジック・ハイであるときのＴｅｓｔＳｉｇｎＭａｇ［７］を発端に、ＡＣＱＣＬＫが動作している限り、ＴｅｓｔＳｉｇｎＭａｇ［７］において指定されるパターンが出力される。
【０１６７】
Ａｄｄｒｅｓｓ［６：２］＝５−８は、ＲＦ処理部４５−２０２におけるデュアル・スロープＡ／Ｄ変換器のパラメータを示す。ＤＳ＿ＡＤＣ＿ＰＥＲメッセージは、２０ビットの変換時間、Ａ／Ｄ変換サイクルの全体の継続時間（ＰＥＲＩＯＤ）をセットし、Ａ／Ｄ変換器に供給される入力クロックの一つ（例えば、ＯＳＣＣＬＫやＰＬＬＣＬＫ）を選択し（ＣＬＫ＿ＳＥＬ）、そのクロックを有効あるいは無効にする（ＣＬＫ＿ＥＮＢ）。ＤＳ＿ＡＤＣ＿ＳＨメッセージは、任意の時刻基準に関連してＡ／Ｄ変換サイクルの位相を変化させるために、Ａ／Ｄ変換器の制御回路が変換を開始する前のカウント・ダウン値として使用する、２０ビットのシフト時間（ＳＨＩＦＴ）を提供する。ＤＳ＿ＡＤＣ＿ＰＨは、デュアル・スロープＡ／Ｄ変換器に対する、２０ビットの位相の１変換時間（例えば、積分時間の継続時間）を指定する。
【０１６８】
ＤＳ＿ＡＤＣ＿ＳＥＱメッセージは、Ａ／Ｄ変換器が四つの入力チャネルそれぞれに対して変換を行う際の、順序を制御する２４ビットを指定する。より具体的には、その２４ビットは２ビットの１２の対に分割される；それぞれの対は、Ａ／Ｄ変換器より前方のアナログ・マルチプレクサに対し、次の入力チャネルを指示する。従って、そのビット対は、どのチャネルがＡ／Ｄ変換器によって次にデジタル化されるかを制御しており、それ故、四つの入力チャネルは異なるレートでサンプリングされ得る。
【０１６９】
表８の説明を続けると、Ａｄｄｒｅｓｓ［６：２］＝９は、ＲＴＣ  ＯＳＣ部４５−２１２におけるクロック状態ビットが、良好なクロックを意味するようにセットされることを示す。あるいは（もしビット８が“１”なら）、ベースバンド処理部４５−２０４が、ＲＦ処理部４５−２０２によるクロック状態ビットの出力を要求していることを示す。Ａｄｄｒｅｓｓ［６：２］＝１０は、ＲＦ処理部４５−２０２がＳＧＮＭＡＧ信号線上に提供する信号を（例えば、マルチプレクサを介して）制御する。デフォルト設定は符号ビットおよび振幅ビットの情報となっているか、あるいはその代わりにＯＳＣＣＬＫ信号となっている。
【０１７０】
表４に示されるメッセージ形式におけるビット２〜７は、電力制御ビットである。電力制御ビットは、ＲＦ処理部４５−２０２中の特定のハードウェア要素を始動させるか、あるいは停止させるかを制御する。電力制御ビットは、ＲＦ処理部４５−２０２内のシフト・レジスタから転送されて、特定のハードウェア要素に電力を与えたり電力を除去したりする電力制御回路に適用される。例えば、ビット４、すなわちＰＬＬ＿Ｐｗｒビットは、ＲＦ処理部４５−２０２中の位相ロック・ループ（ＰＬＬ）回路と分周器用の電力を制御する。ＲＦ処理部４５−２０２がビット４をクリアされているメッセージを受信すると、ＲＦ処理部４５−２０２は、電流が流れるスイッチを開放したり、電力調整器の制御ピンを駆動したり、あるいは、他の機構を通じて、ＰＬＬと分周器の回路から電力を除去するであろう。同様に、ＲＦ処理部４５−２０２がビット４をセットされているメッセージを受信すると、ＲＦ処理部４５−２０２は、そのスイッチを閉じるか、その電力調整器を有効にするなどして、ＰＬＬと分周器の回路に電力を与えるであろう。
【０１７１】
上記のメッセージ形式は（２、３、４、５、７）の５つの電力制御ビットを提供しているが、その実施形態に応じて、さらに多い、またはさらに少ない電力制御ビットが提供されることもある。それぞれのビットは、ＲＦ処理部４５−２０２中のあらかじめ選択された回路の１つまたは複数の部分についての電力制御状態（例えば、始動または停止）を指定する。さらに、他の実施例では、複数のビットを使用して、複数の電力制御レベルを含む電力状態を指定することもある。したがって、例えば、ＲＦ処理部４５−２０２中の特定の１セットの回路について、異なる４つの電力状態の１つを指定するために、２ビットが使用される。
【０１７２】
表２〜８は、メッセージ形式の一例を挙げているが、他の多くの実施例も可能である。表９〜１１に示されているものは、２ビット・メッセージ・ブロックの定義を使用せずに、５４ビット・メッセージを使用する他の典型的な形式である。
【０１７３】
表９〜表１１は、メッセージの最後の８ビットが電力制御ビットである一実施例を示している。したがって、電力制御は先に記述された高速メッセージを通じて通信されるであろう。上述のように、電力制御ビットは、ＲＦ処理部４５−２０２中の特定のハードウェア要素を始動させるか、あるいは停止させるかを特定する。電力制御ビットは、表１０（または表４）に示されているハードウェア・ブロックの制御には限定されない。その代りに、その実施形態に応じて、電力制御ビットは、ＲＦ処理部４５−２０２に組み込まれる任意の所望のハードウェア回路への電力を制御するために、メッセージ中に設定されることがある。
【０１７４】
これによって、ベースバンド処理部４５−２０４は、ＲＦ処理部４５−２０２で消費される電力のきめ細かい制御を確立するであろう。言い換えれば、ベースバンド処理部４５−２０４は、常に、ＲＦ処理部４５−２０２中のハードウェア・ブロックのうちで動作するものと、停止するものを決定するであろう。その結果、ＲＦ処理部４５−２０２は、すべてのハードウェア・ブロックが絶え間なく動作しているＲＦ処理部よりも少ない平均電力を消費することになる。このような電力制御は、バッテリで動作する装置において、あるいは電力の供給が限られている他の如何なるＳＰＳが使用可能な装置においても、極めて有用である。
【０１７５】
図４８を参照すると、ＲＦ処理部４５−２０２とベースバンド処理部４５−２０４をインターフェースする方法を説明するフローチャート４８−５００が示されている。具体的には、ベースバンド処理部４５−２０４へのＳＰＳ信号サンプルのシリアル伝送に関し、ＲＦ処理部４５−２０２はＳＧＮＭＡＧ信号線に符号ビット４６−３０６をセットし（ステップ４８−５０２）、そしてＡＣＱＣＬＫ線上に立下りエッジ４６−３１０を提供する（ステップ４８−５０４）。その後、ＲＦ処理部４５−２０２は、ＳＧＮＭＡＧ信号線上に振幅ビット４６−３０８をセットし（ステップ４８−５０６）、そしてＡＣＱＣＬＫ信号線上に立上りエッジ４６−３１２を提供する（ステップ４８−５０８）。この手順は、ベースバンド処理部４５−２０４に送信される、符号ビットと振幅ビットのサンプルの対それぞれについて繰り返される。それによって、ＳＰＳ信号データはベースバンド処理部４５−２０４にシリアルに転送される。
【０１７６】
ＲＦ処理部４５−２０２とベースバンド処理部４５−２０４の間のメッセージ送信に関し、マスタ・デバイス（たいていベースバンド処理部４５−２０４）が、メッセージ・シリアル・インターフェース４５−２０８上で、データを送信、あるいは受信する必要があるかを決定する（ステップ４８−５１０）。もし必要であれば、ベースバンド処理部４５−２０４は、そのメッセージが高速書込みメッセージかどうかを判断する（ステップ４８−５１２）。もしそのメッセージが高速書込みメッセージであれば、ベースバンド処理部４５−２０４（それがデータを送信する場合）、もしくはＲＦ部４５−２０２（それがデータを送信する場合）が、適切なシリアル・メッセージ・データ線上に８つのデータ・ビットをシリアルにセットする。それぞれのデータ・ビットは、各データ・ビットに対応したメッセージ・クロック４７−４０４の遷移によって、シフト・インされる（ステップ４８−５１４）。そうでない場合には、ベースバンド処理部４５−２０４、もしくはＲＦ処理部４５−２０２は、あらゆるデータ・ビット（例えば３２のデータ・ビットまたは５６のデータ・ビット）を適切なシリアル・メッセージ線上にシリアルにセットし、しかも、それぞれのデータ・ビットにはメッセージ・クロック４７−４０４の遷移を伴わせる（ステップ４８−５１６）。
【０１７７】
スレーブ選択信号線は、ベースバンド処理部４５−２０４とＲＦ処理部４５−２０２の間で、タイミングを転送するために利用することができる。具体的には、ＣＯＵＮＴ［１９：０］出力は（表６のＯｕｔ＿Ｄａｔ＝８参照）、ＲＦ処理部４５−２０２に存在するカウンタの値を表しており、その値はＲＦ処理部４５−２０２のデュアル・スロープＡ／Ｄ変換器のサンプリングの位相を示す。スレーブ選択信号線は、ＲＦ処理部４５−２０２におけるＤＳＰタイミングをラッチする回路に接続されている。従って、ＣＯＵＮＴ値は、スレーブ選択信号線がＣＯＵＮＴの出力を要求するメッセージを生起して、ＣＯＵＮＴ値を送信のためにシフト・レジスタにラッチする時点でのカウンタの値である。ベースバンド処理部４５−２０４においては、スレーブ選択信号は、スレーブ選択信号が非アサートされている場合（それは、ＲＦ処理部４５−２０２がＣＯＵＮＴをラッチしている場合でもある）に、カウンタ（あるいは他の時刻を示すもの）をラッチする。
【０１７８】
従って、Ａ／Ｄサンプル・タイミングは、ベースバンド処理部４５−２０４のタイミングに関連している。ＳＨＩＦＴ［１９：０］の入力（表８のＡｄｄｒｅｓｓ＝６参照）は、Ａ／Ｄタイミングを、ベースバンド処理部４５−２０４のタイミングから所望のオフセットだけシフトさせるために使用される。その結果、ベースバンド処理部４５−２０４は、余分なインターフェース線を使用せずに、ＲＦ処理部４５−２０２のタイミングを変えることができる。
【０１７９】
したがって、本発明のシステムおよび方法は、ＲＦ処理部４５−２０２とベースバンド処理部４５−２０４の間の電力制御メッセージ通信（および、インターフェースを動作させるか、あるいは提供する方法）を提供する。このようなメッセージ通信は、多種多様な目的で使用されることがある。また、このメッセージ通信は、平均電力消費を少なくして、電源寿命を延ばすための、ＳＰＳ装置における全体的な電力制御の一部として特に有用である。
【０１８０】
一般に、ＳＰＳ信号サンプルを取得するときを除いて、ＲＦ処理部４５−２０２をできるだけ多く停止させることは、平均電力消費を減らすのに役立つ。これらのサンプルの取得は、ときには、屋外での強力信号環境において１０〜２０ｍｓ、あるいは、屋外でのより不利な条件において４８〜１００ｍｓ程度のタイム・スパンを占めることもある。屋内では、ＲＦ処理部４５−２０２はＳＰＳ信号サンプルを取得するのに、特に信号が微弱な場合に、数秒程度のタイム・スパンの間動作することがある。さらに、ベースバンド処理部４５−２０４がそれ自体の停止モードに入るときにＲＦ発振器４５−２１２を停止させることによっても、電力消費を減らせることに留意されたい。
【０１８１】
さらに具体的に言えば、電力制御を含む典型的な動作手順は、表１２に示されるように進行することがある。
【実施例３】
【０１８２】
本明細書においては、電子システム、例えばＧＰＳシステムの構成要素間でメモリを共有するために、そのシステムの構成要素間で１つまたは複数のメモリ領域を動的に再割当てする、透過的なメモリの共有が提供される。メモリ領域のあらかじめ指定されたメモリ・ブロックは、それらの構成要素のメモリ要求の変化に応じて、１つまたは複数の再割当て方法を利用して、システムの構成要素間において動的に再割当てされる。メモリの再割当て／共有は、ホスト・システムのソフトウェアに対して透過的である。例えば、メモリ・ブロックとも称するメモリの位置すなわちアドレスのグループは、第１のプロセッサおよび第２のプロセッサによって共有することができる。第１のプロセッサは、たとえば第１のメモリ領域にアクセスするように構成された中央処理装置またはマイクロプロセッサを含んでいる。一方、第２のプロセッサは、第２のメモリ領域にアクセスするように構成されたデジタル信号処理装置（ＤＳＰ）を含んでいてもよい。メモリの共有は、以下に説明するように、第２のメモリ領域へのプロセッサの直接的なアクセス、間接的なアクセス、および直接的／間接的なアクセスの組み合わせを提供する。
【０１８３】
図４９は、一実施例における、電子システム４９−１００の構成要素間での共有のためのコア・メモリの再割当てを示すブロック図である。一般に、電子システム４９−１００は、例として第１のバス４９−１０２に接続された第１のプロセッサ４９−１１２および第１のメモリ領域４９−１１４を有している。動作中、第１のプロセッサ４９−１１２は、第１のメモリ領域４９−１１４にプロセッサ・データを書き込み、第１のメモリ領域４９−１１４から読み出しするために、第１のバス４９−１０２を介して第１のメモリ領域４９−１１４にアクセスする。
【０１８４】
第２のプロセッサ４９−１２２は、第２のバス４９−１０４およびブリッジ・ユニット４９−１３２の組み合わせを介して第１のバス４９−１０２に接続されている。第２のプロセッサ４９−１２２は、第２のメモリ領域４９−１２４にも接続されている。動作中、第２のプロセッサ４９−１２２は、第２のメモリ領域４９−１２４に第２のプロセッサのデータを書き込み、第２のメモリ領域４９−１２４から読み出しするために、第２のメモリ領域４９−１２４に直接的にアクセスする。
【０１８５】
ここに記載するコア・メモリの共有は、複数のメモリ再割当て方法のうちのいずれかを利用して、第１のプロセッサ４９−１１２のデータを記憶する際に利用するために、第１のプロセッサ４９−１１２が第２のメモリ領域４９−１２４のいくつかのブロックを動的に再割当てすることを可能にする。本明細書でマッピング再割当てと称する１つのメモリ再割当て方法は、第２のバス４９−１０４および第２のプロセッサ４９−１２２を介した第１のプロセッサ４９−１１２によるアクセスのために、ブリッジ・ユニット４９−１３２を通して第２のメモリ領域４９−１２４のあらかじめ指定されたメモリ位置４９−１２４ａをマッピングする。本明細書でスイッチング再割当てと称するメモリ再割当ての別の方法は、第１のプロセッサ４９−１１２に、第１のバス４９−１０２を介して第２のメモリ領域４９−１２４のあらかじめ指定されたメモリ位置４９−１２４ａへ直接的にアクセスさせる。メモリ再割当ての追加的な方法は、第２のメモリ領域４９−１２４のメモリ位置のマッピング再割当てとスイッチング再割当てを同時にサポートする。これらのメモリ再割当て方法およびこれらの対応するシステム構成は、後にさらに説明する。
【０１８６】
プロセッサ４９−１１２および４９−１２２は、当該技術分野において周知のように、協同して動作する演算構成要素および演算デバイスの集合体を有している。プロセッサ４９−１１２および４９−１２２は、より大きなコンピュータ・システムまたはネットワークの内部の構成要素またはサブシステムであってもよい。プロセッサ４９−１１２および４９−１２２は、たとえば他のバス、コントローラ、メモリ・デバイスおよびデータ入力／出力（Ｉ／Ｏ）デバイス等の、当該の技術分野において周知のいかなる構成要素（図示しない）と、いかなる組み合わせによって接続されていてもよい。
【０１８７】
同様に、第１のメモリ領域４９−１１４および第２のメモリ領域４９−１２４は、当該の技術分野において周知のように、順に配置および／または分配された態様で協同して動作するメモリ・デバイスまたはメモリ・デバイスの一部の集合体を有している。メモリ領域４９−１１４および４９−１２４は、より大きなコンピュータ・システムまたはネットワークの内部の構成要素またはサブシステムであってもよい。メモリ領域４９−１１４および４９−１２４は、たとえば他のバス、コントローラ、メモリ・デバイスおよびデータ入力／出力（Ｉ／Ｏ）デバイス等の、当該の技術分野において周知のいかなる構成要素（図示しない）と、いかなる組み合わせによって接続されていてもよい。
【０１８８】
バス４９−１０２および４９−１０４は、処理システムや処理システムの構成要素の間でファイルを通信しまたは転送する、いかなる媒体を含んでいてもよい。従って、バス４９−１０２および４９−１０４によって表わされる経路は、無線接続、有線接続および／または配線接続、および無線／有線の複合接続を含んでいる。それらの経路は、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、占有ネットワークおよびオフィス間またはバックエンド・ネットワーク等の、別のシステムへの結合または接続も含んでいる。
【０１８９】
また、電子システム４９−１００は、第１のプロセッサ４９−１１２が中央処理装置（ＣＰＵ）または同様なプロセッサ（たとえばＡＲＭマイクロプロセッサ（本明細書ではＡＲＭあるいはマイクロプロセッサと称する））を含むシステム構成である。さらに、第２のプロセッサ４９−１２２は、デジタル信号処理装置（ＤＳＰ）を有している。ただし、このように限定されているわけではない。この例の第１のメモリ領域４９−１１４および第２のメモリ領域４９−１２４は、ランダム・アクセス・メモリ（ＲＡＭ）の領域またはメモリ位置を含んでいるが、当該の技術分野において周知である他の多くのタイプのメモリ／メモリ・デバイスの領域を含んでいてもよい。第１および第２のメモリ領域は、本実施例では２つの分離した領域または２つの分離したデバイスとして示されているが、ここで説明したものと異なるメモリの共有の実施例は、あらゆる数／組み合わせのメモリ・デバイスの間で分配されたあらゆる数のメモリ位置を含んでいてもよい。このシステム構成のプロセッサおよびＤＳＰの間におけるコア・メモリの共有について、以下で説明する。
【０１９０】
図５０は、図４９の実施例における、プロセッサ５０−２１２およびＤＳＰ５０−２２２のそれぞれに専用のメモリ領域５０−２１４および５０−２２４をそれぞれ有する電子システム５０−２００のブロック図である。一実施例のプロセッサは、ＡＲＭプロセッサ５０−２１２であるが、本実施例は、これに限定されているわけではなく、本システム５０−２００においてあらゆるタイプのプロセッサ５０−２１２を利用することができる。第１のデータ・バス５０−２０２は、メモリ・コントローラであるオンＲＡＭ５０−２５０を介してメモリ領域５０−２１４にプロセッサ５０−２１２を接続する。メモリ領域５０−２１４は、本実施例では、プロセッサ・メモリ５０−２１４またはそれに代えてＡＲＭランダム・アクセス・メモリ（ＲＡＭ）５０−２１４と称する。本実施例でプロセッサ・バス５０−２０２とも称する第１のデータ・バス５０−２０２は、単一のクロック・サイクルでプロセッサ・バス５０−２０２によって接続されたデバイスの間での情報またはデータの転送をサポートするが、このように限定されているわけではない。
【０１９１】
さらにプロセッサ・バス５０−２０２は、ブリッジ・ユニットであるＳＢＵ２モジュール５０−２３２および第２のデータ・バス５０−２０４を介してプロセッサ５０−２１２をＤＳＰ５０−２２２に接続する。ブリッジ・ユニットであるＳＢＵ２モジュール５０−２３２は、本実施例ではＤＳＰブリッジ５０−２３２とも称する。第２のデータ・バス５０−２０４は、本実施例ではＤＳＰバス５０−２０４とも称する。ＤＳＰ５０−２２２はメモリ領域５０−２２４に接続されている。本実施例では、メモリ領域５０−２２４はＤＳＰメモリ５０−２２４と称する。一実施例のプロセッサ・メモリ５０−２１４およびＤＳＰメモリ５０−２２４は、ＲＡＭデバイスであるが、このように限定されているわけではない。他の実施例は、あらゆるタイプのメモリ・デバイスおよび／またはあらゆる組み合わせのメモリ・デバイス／タイプを含むことができる。
【０１９２】
ＤＳＰ５０−２２２およびＤＳＰメモリ５０−２２４は、プロセッサ５０−２１２およびプロセッサ・バス５０−２０２に接続されたデバイスの速度（プロセッサ・クロック・ドメインの速度）とは異なる速度（ＤＳＰクロック・ドメインの速度）でクロック制御される。一実施例においてＤＳＰ５０−２２２およびＤＳＰメモリ５０−２２４のクロック速度／ドメインは、プロセッサ５０−２１２より低速であるが、このように限定されているわけではない。従って、ＤＳＰバス５０−２０４を介してのＤＳＰブリッジ５０−２３２からのデータの転送は、プロセッサ・バス５０−２０２を介してのデータの転送に比べて低速である。さらに、プロセッサ・バス５０−２０２に接続された構成要素とＤＳＰバス５０−２０４に接続された構成要素との間におけるクロック速度の相違のため、一実施例のＤＳＰブリッジ５０−２３２は非同期ブリッジであるが、このように限定されているわけではない。
【０１９３】
他のさまざまな実施例では、あらゆるクロック速度／あらゆる組み合わせのクロック速度を利用してシステム５０−２００の構成要素をクロック制御することができ、たとえば１つの実施例としては、プロセッサ５０−２１２、ＤＳＰ５０−２２２およびＤＳＰメモリ５０−２２４をほぼ等しいクロック速度でクロック制御してもよい。一方、別の実施例としては、プロセッサ５０−２１２をＤＳＰ５０−２２２および／またはＤＳＰメモリ５０−２２４よりも低い速度でクロック制御してもよい。
【０１９４】
さらにシステム５０−２００は、プロセッサ・バス５０−２０２に接続された少なくとも１つのメモリ・コンフィグレーション・レジスタであるＲＡＭ共有５０−２５２を含んでいる。本実施例においてコンフィグレーション・レジスタ５０−２５２とも称するメモリ・コンフィグレーション・レジスタ５０−２５２は、第２のブリッジ・ユニットであるＳＢＵモジュール５０−２３４を介してプロセッサ・バス５０−２０２に接続されており、後に説明するように、ＤＳＰメモリ５０−２２４の構成を制御または管理する際に、プロセッサ５０−２１２、デコーダ５０−２４２およびＤＳＰブリッジ５０−２３２のうちの少なくとも１つによって利用される情報を記憶している。
【０１９５】
デコーダ５０−２４２は、プロセッサ・バス５０−２０２、ＤＳＰブリッジ５０−２３２およびメモリ・コントローラ５０−２５０の間に接続されているが、このように限定されているわけではない。デコーダ５０−２４２は、プロセッサ・バス５０−２０２上のデータに関するアドレスを受信し、それに応じて、適切なメモリ領域へのデータの書き込み及びそこからのデータの読み出しを、メモリ・コンフィグレーション・レジスタ５０−２５２の情報にしたがって制御または管理する。デコーダ５０−２４２は、デコーダ５０−２４２とメモリ・コントローラ５０−２５０との間に接続された制御線５０−２４３を介して、プロセッサ・メモリ５０−２１４へのデータの読み出し／書き込みを制御する。デコーダ５０−２４２は、必要に応じて、デコーダ５０−２４２とＤＳＰブリッジ５０−２３２との間に接続された制御線５０−２４４および制御線５０−２４５を介して、ＤＳＰメモリ５０−２２４へのデータの読み出し／書き込みを制御する。
【０１９６】
一般に、このシステム５０−２００のＤＳＰメモリの共有は、プロセッサ・バス５０−２０２上でのＤＳＰメモリ５０−２２４への（プロセッサ・クロック・ドメインによる）直接的なアクセス及び／または、ＤＳＰバス５０−２０４上での（ＤＳＰクロック・ドメインによる）ＤＳＰメモリ５０−２２４への間接的なアクセスのいずれかを、プロセッサ５０−２１２が実行できるようにする。直接的なアクセスは、ＤＳＰメモリ５０−２２４の上側の３２ｋバイトを、ＤＳＰクロック・ドメインからプロセッサ・クロック・ドメインへスイッチングすることによって達成される。間接的なアクセスは、ＤＳＰブリッジ５０−２３２を介してＤＳＰメモリ５０−２２４の上側の部分からブロックをマッピングすることによって達成される。
【０１９７】
ＤＳＰブリッジ５０−２３２は、ＤＳＰメモリへのプロセッサ・ソフト・マッピング・アクセスとＤＳＰコア・アクセスとのアービトレーション（調停）を行なう。さらにＤＳＰブリッジ５０−２３２は、アドレス０ｘＣ０００＿００００（プロセッサ・アドレスのソフト・マッピングなし）でプロセッサによるＤＳＰメモリへの間接的なアクセスをサポートする。ＤＳＰブリッジ５０−２３２は、ソフト・マッピングを介した０ｘ６００１＿００００から０ｘ６００１＿ＦＦＦＦまでのアドレスの範囲におけるＤＳＰメモリの上側の６４ｋバイトのプロセッサによる間接的なアクセスもサポートする。加えて、ＤＳＰブリッジ５０−２３２は、ＤＳＰメモリ共有制御ビットに基づいて、ＤＳＰメモリの読み出しまたは書き込みアクセス違反を検出し、必要に応じて違反状態ビットを生成し、読み出しまたは書き込みアクセス違反の間に、可能であれば、プロセッサ異常終了サイクルを生成する。
【０１９８】
メモリ・コンフィグレーション・レジスタ５０−２５２の構成情報は、あらかじめ指定されたメモリ共有の構成の情報を有しているが、このように限定されているわけではない。ソフトウェアの制御によって動作しているプロセッサ５０−２１２は、システム５０−２００の状態に対して適切なメモリの構成を選択し、選択されたメモリの構成にしたがって、メモリ・コンフィグレーション・レジスタ５０−２５２の少なくとも１つのレジスタのビットをセットする。一実施例においては、その構成情報はホスト電子システムの状態情報に対応しており、そのホスト・システムの異なった動作状態が異なったメモリ要求を有するときに、メモリがそのホスト・システムの異なった動作状態にしたがって再割当てされ、共有されるようにする。従って、ホスト・システムの構成要素の間におけるメモリ領域の再割当ては、ホスト・システムの動作状態の変化に応じて起こる。
【０１９９】
上述のメモリの共有を利用する装置および／またはシステムの例としては、ホスト・システムが効率的なメモリ管理を必要とする１つまたは複数のプロセッサを含むシステムであってもよい。このような装置／システムの例としては、携帯可能な通信デバイス、携帯可能な位置追跡（トラッキング）デバイス、セルラー電話、位置追跡デバイスに接続され、かつ／または統合されたセルラー電話、モバイル電子デバイス、モバイル通信デバイス、携帯情報端末およびその他のプロセッサ・ベースのデバイスがあるが、これらに限定されているわけではない。
【０２００】
具体的な例として、全地球的測位システム（ＧＰＳ）受信機のような測位システムを含むセルラー電話のようなモバイル通信デバイスを考慮されたい。このタイプのシステムにおいては、上記のプロセッサ５０−２１２は、その通信デバイスの中央処理装置（ＣＰＵ）に相当し、一方ＤＳＰ５０−２２２は、ＧＰＳ信号および受信機情報を処理する専用の信号プロセッサに相当する。ＧＰＳ受信機は、複数の動作モード（たとえばコールド・スタート、ウォーム・スタート、ホット・スタート等）を有し、これらのモードのすべては、非常に異なったメモリへの要求を有することがある。一実施例のメモリ再割当ておよび共有は、ホスト・デバイスの動作状態に応じて適切に、デバイス・メモリの少なくとも１つの領域を、ＣＰＵとＤＳＰとの間での再割当てを可能にすることによって、このような携帯可能なデバイスの限られたメモリの効率的な利用を可能にする。このメモリ再割当てはホスト・デバイスのオペレーティング・システム・ソフトウェアに対して透過的であって、オペレーティング・システム・ソフトウェアはＣＰＵメモリ・マップおよびＤＳＰメモリ・マップを、ホスト・デバイスの状態に応じてメモリ・コンフィグレーション・レジスタ５０−２５２によって構成されたものとして認識する。
【０２０１】
図５１は、図５０の実施例における、電子システム５０−２００のスタート／ブートアップ後のメモリの構成のブロック図５１−３００である。ブートアップとも称するシステムのスタートの際には、プロセッサ・メモリ５０−２１４は６４キロバイト（ｋバイト）のメモリを（プロセッサ・メモリ・マップによって構成されたものとして）有しており、他方、ＤＳＰメモリ５０−２２４は１２８ｋバイトのメモリを（ＤＳＰメモリ・マップによって構成されたものとして）有している。プロセッサ５０−２１２は、０ｘ６０００＿００００のベース・アドレスにおいてプロセッサ・メモリ５０−２１４を認識する。しかし、他の実施例では、メモリ・タイプに対して適切であれば、プロセッサ・メモリ５０−２１４にどのようなベース・アドレスを割当ててもよい。同様にＤＳＰ５０−２２２は、０ｘＣ０２０＿００００のベース・アドレスにおいてＤＳＰメモリ５０−２２４を認識する。しかし、その代わりの実施例は、メモリ・タイプに対して適切であれば、ＤＳＰメモリ５０−２２４にどのようなベース・アドレスを割当ててもよい。
【０２０２】
ここで説明するように、一実施例のメモリの共有は、プロセッサ５０−２１２のＤＳＰメモリ５０−２２４からの読み出しおよびＤＳＰメモリ５０−２２４への書き込みをサポートする。その結果、プロセッサ５０−２１２は、システムのブートアップの際に、ＤＳＰブリッジ５０−２３２を介してＤＳＰメモリ５０−２２４を認識することができる。プロセッサは、たとえば０ｘＣ０２０＿００００のベース・アドレスにおいてＤＳＰメモリ５０−２２４を認識する。しかし、他の実施例としては、ＤＳＰメモリ５０−２２４に対してあらゆるベース・アドレスを利用することができる。
【０２０３】
一実施例のメモリは、プロセッサ５０−２１２および／またはＤＳＰ５０−２２２が、特定のメモリの構成に応じたアドレスの境界を越えて各メモリのメモリ位置へのアクセスを試みたときに、ホスト・システムに警告を発するメモリ保護機能を有している。メモリ保護機能には、割り込みアドレス境界Ｉｎｔ５１−３６０を利用した割り込みの発生と、異常終了アドレス境界Ａ５１−３６２を利用した異常終了の発生があるが、これに限定されているわけではない。メモリ保護機能は、メモリ再割当ての例を参照しながら後に説明する。
【０２０４】
動作時において、プロセッサ５０−２１２がプロセッサ・データを記憶するために追加的なメモリを要求したとき、プロセッサ５０−２１２は、プロセッサ・データを記憶する際に利用するために、ＤＳＰメモリ５０−２２４のメモリ位置の少なくとも１つの領域またはセットを再割当てすることができる。一般に、ＤＳＰメモリ５０−２２４を再割当てする２つの方法を利用することができる。第１の再割当て方法は、少なくとも１つのメモリ・マップを利用して、ＤＳＰブリッジ５０−２３２を介して、ＤＳＰメモリ・アドレス空間からプロセッサ・メモリ・アドレス空間にあらかじめ指定されたアドレスをマッピングする。この第１の再割当て方法は、本実施例においてはマッピング再割当て方法と称する。ＤＳＰブリッジ５０−２３２を介したメモリのマッピングは、各ブロックが最大で約８ｋバイトを有する８ブロック程度のメモリの付加的な再割当てをサポートする。しかし、実施例は、このように限定されているわけではない。プロセッサ５０−２１２による再割当てされたメモリへのアクセスは、ＤＳＰブリッジ５０−２３２、ＤＳＰバス５０−２０４およびＤＳＰ５０−２２２の構成要素（図示せず）を介して行われる。
【０２０５】
第２の再割当て方法では、ＤＳＰバス５０−２０４のＤＳＰメモリ・アドレス空間からプロセッサ・バス５０−２０２へ、あらかじめ指定されたメモリ・アドレスをスイッチングする。この第２の再割当て方法は、本実施例においてはスイッチング再割当て方法と称する。スイッチング再割当て方法は、メモリ・マッピングを利用して、連続するプロセッサ・メモリ・アドレス空間内への再割当てしたメモリの配置も行う。しかしながら、後に説明するように、このマッピングは、プロセッサ・バス５０−２０２に直接接続されたメモリ・インターフェース（図５６および図５８を参照しながら後に説明する）を介して行われ、それによりマッピング再割当て方法よりも相対的に速い再割当てしたメモリへのアクセスをサポートする。スイッチング再割当て方法は、最大で約３２ｋバイトを有するメモリのブロックの再割当てをサポートする。しかし、実施例は、このように限定されているわけではない。
【０２０６】
さらなる再割当て方法および構成は、ここでの説明を利用したマッピング再割当て方法およびスイッチング再割当て方法の組み合わせによって実現することができる。例として、マッピング再割当て方法およびスイッチング再割当て方法の両方を利用したシステム構成について後に説明されているが、その代わりの実施例はこの構成に限定されるわけではない。
【０２０７】
上述のように、一実施例のコア・メモリの共有は、マッピング再割当てを利用して、プロセッサ５０−２１２のデータを記憶する際に利用するために、プロセッサ５０−２１２がＤＳＰメモリ５０−２２４の一部を動的に再割当てし、または再構成することを可能にする。マッピング再割当ては、ＤＳＰバス５０−２０４およびＤＳＰ５０−２２２を介したプロセッサ５０−２１２によるアクセスのために、ＤＳＰメモリ５０−２２４のあらかじめ指定されたメモリ位置がＤＳＰブリッジ５０−２３２を通してマッピングされるシステムの構成を有している。図５２は、図５０の実施例において、ＤＳＰブリッジ５０−２３２およびＤＳＰバス５０−２０４を介したプロセッサ５０−２１２による利用のために、ＤＳＰメモリ５２−４２４ｂのいくつかの部分を再割当てする電子システムの構成５２−４００のブロック図である。
【０２０８】
一般に、システム５２−４００は、ＤＳＰブリッジ５０−２３２を通してＤＳＰメモリ・アドレス空間５２−４２４からプロセッサ・メモリ・アドレス空間５２−４１４にあらかじめ指定されたアドレスまたはブロック５２−４２４ｂをマッピングするために、少なくとも１つのメモリ・マップを利用する。ＤＳＰメモリ５２−４２４ｂの再割当ては、後に説明するように、コンフィグレーション・レジスタ５０−２５２の情報に応じて行なわれる。一実施例の再割当ては、各ブロックが最大で約８ｋバイトのメモリを有する８ブロック程度のメモリの付加的な再割当てをサポートする。しかし、実施例は、このように限定されているわけではない。図５３Ａは、図５２の実施例において、ブリッジ・ユニットを介してＤＳＰアドレス空間５２−４２４からプロセッサ・アドレス空間５２−４１４にＤＳＰメモリ５２−４２４ｂのブロックを再割当てするメモリ再割当てのブロック図５３−５００である。図５４Ａは、図５２の実施例において、ブリッジ・ユニットを介してＤＳＰアドレス空間５２−４２４からプロセッサ・アドレス空間５２−４１４に、ブロック数ｎ（この例においてはｎは８である）のメモリを有するＤＳＰメモリ５２−４２４ｂのブロックを再割当てするメモリ再割当てのブロック図５４−６００である。
【０２０９】
図５３Ａに関していうと、このマッピングの例は、ＤＳＰメモリ５２−４２４からプロセッサ・メモリ５２−４１４への８ｋバイトのメモリ・ブロック５２−４２４ｂの再割当てを示している。図５１によれば、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ５２−４２４および６４ｋバイトのプロセッサ・メモリ５２−４１４を含んでいるが、どのような構成のメモリも、ここに説明するように再割当てすることができる。再割当ての際に、メモリ・ブロック５２−４２４ｂ（８ｋバイト）がＤＳＰメモリ５２−４２４の最上部から取り出されるので、ＤＳＰはほぼ１２０ｋバイト（１２８ｋバイト−８ｋバイト＝１２０ｋバイト）のサイズの連続するメモリのブロック５２−４２４ａを認識する。再割当てされたメモリ・ブロック５２−４２４ｂはコア・プロセッサ・メモリ５２−４１４に加えられ、プロセッサはほぼ７２ｋバイト（６４ｋバイト＋８ｋバイト＝７２ｋバイト）のサイズの連続するメモリのブロック５３−５１４を認識する。図５３Ｂは、図５３Ａの実施例において、ＤＳＰアドレス空間５２−４２４からプロセッサ・アドレス空間５２−４１４にＤＳＰメモリの８ｋバイトのブロックを再割当てした後におけるメモリの構成（メモリ・マップ）を示している。説明した実施例は、８ｋバイトのメモリ・ブロックを再割当てしているが、他の実施例では、異なるサイズのメモリ・ブロック、または異なるサイズを有するメモリ・ブロックの組み合わせを再割当てすることができる。
【０２１０】
一実施例のメモリは、プロセッサおよび／またはＤＳＰが特定のメモリの構成に応じたアドレスの境界を越えて各メモリのメモリ位置にアクセスしようとしたときに、ホスト・システムに警告を発するメモリ保護機能を有している。メモリ保護機能は、異常終了および割り込みのフラグを有しているが、このように限定されているわけではない。従って、メモリ保護機能のためのアドレスの境界は、メモリ再割当てをする間に調節される。
【０２１１】
例として一実施例のシステムは、現在のメモリの構成に応じてあらかじめ指定された割り込みアドレス境界または限界を越えたメモリ位置にＤＳＰがアクセスした場合に、割り込みフラグを発生させる。このようにしてシステムは、メモリ再割当てをする間に適切に、割り込みアドレス境界を調節する。図５３Ａと図５３Ｂを参照しながらすでに説明した例に戻れば、ＤＳＰメモリ５２−４２４からのメモリ・ブロック５２−４２４ｂの取り出しを反映して、割り込みアドレス境界Ｉｎｔ５３−５６０はＤＳＰメモリ５２−４２４内で徐々に低いアドレスに調節される。他の実施例では、ＤＳＰメモリ５２−４２４内のより高いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に割り込みアドレス境界を調節することができる。
【０２１２】
他の例として、一実施例のシステムは、現在のメモリの構成に応じてあらかじめ指定された異常終了アドレス境界を越えて、プロセッサがメモリ位置にアクセスした場合、異常終了を発生させる。このようにしてシステムは、メモリ再割当てをする間に、適切に異常終了アドレス境界を調節する。図５３Ａと図５３Ｂを参照しながらすでに説明した例に戻れば、コア・プロセッサ・メモリ５２−４１４へのメモリ・ブロック５２−４２４ｂへの追加を反映して、異常終了アドレス境界Ａ５３−５６２はプロセッサ・メモリ５３−５１４内で徐々に高いアドレスに調節される。他の実施例では、メモリ内のより低いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に異常終了アドレス境界を調節することができる。
【０２１３】
図５４Ａを参照しながら、メモリ再割当ての例を続ければ、メモリ再割当ての他の一つの実施例は、８個の８ｋバイトのメモリ・ブロック５４−６０１〜５４−６０８（６４ｋバイト）を有するメモリ・ブロック５２−４２４ｂを再割当てする。図５１によれば、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ５２−４２４と６４ｋバイトのプロセッサ・メモリ５２−４１４を有するが、説明したように、あらゆる構成のメモリを再割当てすることができる。メモリ・ブロック５２−４２４ｂが、ＤＳＰメモリ５２−４２４の最上部から取り出され、コア・プロセッサ・メモリ５２−４１４に再割当てされるので、ＤＳＰは約６４ｋバイトのサイズ（１２８ｋバイト−６４ｋバイト＝６４ｋバイト）の連続するメモリのブロック５２−４２４ａを認識する。再割当てされたメモリ・ブロック５２−４２４ｂはコア・プロセッサ・メモリ５２−４１４に加えられ、プロセッサは約１２８ｋバイトのサイズ（６４ｋバイト＋６４ｋバイト＝１２８ｋバイト）の連続するメモリのブロック５４−６１４を認識する。割り込みおよび異常終了アドレスの境界は、上述したように、メモリをアドレスする方式に対して適切に調節される。図５４Ｂは、図５４Ａの実施例において、ＤＳＰアドレス空間５２−４２４からプロセッサ・アドレス空間５２−４１４へ、ＤＳＰメモリの６４ｋバイトのブロックを再割当てした後のメモリの構成（メモリ・マップ）を示している。上述の実施例は、合計で８個の８ｋバイトのメモリ・ブロックを再割当てするが、他の実施例では、異なった個数のメモリ・ブロックを再割当てしてもよく、メモリ・ブロックは、同じおよび／または異なったサイズであってもよい。
【０２１４】
一実施例のメモリ・ブロックは、ＤＳＰメモリ５２−４２４の最上部から取り出されたメモリがコア・プロセッサ・メモリ５２−４１４の最上部に加えられるように、順番にマッピングされている。従って、ＤＳＰメモリ・アドレス空間は、上から下に向かって減少し、他方、プロセッサ・メモリのアドレス空間は、下から上に向かって増加する。しかし、他の実施例では、当該の技術分野において周知の他のマッピング方式を利用することができる。
【０２１５】
メモリの再割当ては、ＤＳＰブリッジ５０−２３２、ＤＳＰバス５０−２０４およびＤＳＰ５０−２２２を介したプロセッサ５０−２１２によるＤＳＰメモリ５２−４２４ｂの再割当てされた部分へのアクセスをサポートする。プロセッサ５０−２１２の情報は、デコーダ５０−２４２の制御を受けて、再割当てされたＤＳＰメモリ５２−４２４ｂに送られる。再び図５２を参照すると、デコーダ５０−２４２は、プロセッサ・バス５０−２０２を介してプロセッサから情報を受信する。受信された情報は、たとえば関連するメモリのアドレスにともなう命令および／またはデータを含んでいる。デコーダは、プロセッサ・バス５０−２０２上の関連する情報がＧＰＳデータであるかプロセッサ・データであるかを判定するために、アドレスの最初の４ビットを利用する。
【０２１６】
バス５０−２０２上の情報（データ）がＧＰＳデータであるとデコーダ５０−２４２が判定すると、デコーダ５０−２４２は、（制御線５０−２４４を利用して）ＤＳＰブリッジ５０−２３２がＧＰＳデータを読み出し／受信するように選択する。制御線５０−２４４を介してデコーダ５０−２４２によって選択される際には、ＤＳＰブリッジ５０−２３２およびＤＳＰ５０−２２２のいくつかの構成要素の組み合わせ（図示せず）によって、プロセッサ・バス５０−２０２からＤＳＰメモリの適切なメモリ位置にＧＰＳデータが送られる。図５５は、図５２の実施例において、関連するメモリをロードする順序５５−７０２および５５−７０４にともなうメモリを再割当てされたＤＳＰメモリのブロック図である。一実施例のＧＰＳデータは、ＧＰＳデータのロード順序５５−７０２にしたがってＤＳＰメモリ５２−４２４ａに書き込まれる。
【０２１７】
受信した情報（データ）がプロセッサ・データであるとデコーダ５０−２４２が判定した場合、デコーダ５０−２４２は、メモリ・コントローラ５０−２５０とＤＳＰブリッジ５０−２３２のいずれかが、下記のアドレス・デコード方式にしたがって、それぞれ制御線５０−２４３または制御線５０−２４５を介して、プロセッサ・データを読み出し／受信するように選択する。アドレスが、６０００＿００００と６００１＿００００との間にあった場合、デコーダ５０−２４２は、プロセッサ・メモリ５２−４１４を（制御線５０−２４３を利用して）選択し、プロセッサ・バス５０−２０２およびメモリ・コントローラ５０−２５０を介して関連する情報を受信させる。アドレスが、６００１＿００００と６００２＿００００との間にあった場合、デコーダ５０−２４２は、ＤＳＰメモリの再割当てされたブロック５２−４２４ｂを（制御線５０−２４５を利用して）選択し、ＤＳＰバス５０−２０４、ＤＳＰブリッジ５０−２３２とＤＳＰ５０−２２２の構成要素の組み合わせ（図示せず）を介して関連する情報を受信させる。他のさまざまな実施例では、制御線５０−２４４および５０−２４５の代わりに、あらゆる信号伝達線／信号伝達技術を利用して、ＤＳＰブリッジ５０−２３２および／またはメモリ・コントローラ５０−２５０を選択することができる。
【０２１８】
デコーダ５０−２４２が、ＤＳＰメモリの再割当てされたブロック５２−４２４ｂがプロセッサ・バス５０−２０２上の関連する情報（プロセッサ・データ）を受信することを選択すると、デコーダ５０−２４２は、制御線５０−２４５を利用してＤＳＰブリッジ５０−２３２を選択し、プロセッサ・データを読み出し／受信させる。デコーダ５０−２４２によって選択される際には、ＤＳＰブリッジ５０−２３２は、プロセッサ・バス５０−２０２から再割当てされたＤＳＰメモリ５２−４２４ｂの適切なメモリ位置にプロセッサ・データを処理して送る。ＤＳＰブリッジ５０−２３２によるデータの処理は、たとえばデータのアドレスの反転を含むが、実施例は、このように限定されているわけではない。再び図５５を参照して、一実施例のプロセッサ・データは、ＳＷアクセス・ロード順序５５−７０４にしたがって、再割当てされたＧＰＳメモリ５２−４２４ｂに書き込まれる。
【０２１９】
上述したように、一実施例のコア・メモリの共有は、スイッチング再割当ても含んでいる。スイッチング再割当ては、ＤＳＰバス５０−２０４のＤＳＰメモリ・アドレス空間からプロセッサ・バス５０−２０２へ、あらかじめ指定されたメモリ・アドレスをスイッチングする。この再割当て方法は、再割当てされたメモリを連続するプロセッサ・メモリ・アドレス空間に配置するために、メモリ・マッピングも使用する。しかしながらこのマッピングは、上述のＤＳＰブリッジ５０−２３２を介したマッピングよりも高速な、再割当てされたメモリへのアクセスを提供するメモリ・インターフェースを介したものである。
【０２２０】
図５６は、図５０の実施例において、メモリ・インターフェース５６−８０２およびプロセッサ・バス５０−２０２を介した、スイッチング再割当てを利用する、プロセッサ５０−２１２による利用のために、ＤＳＰメモリ５６−８２４の一部を再割当てする電子システムの構成５６−８００のブロック図である。システムの構成５６−８００は、プロセッサ・バス５０−２０２に接続されたメモリ・インターフェース５６−８０２を有している。メモリ・インターフェース５６−８０２は、少なくとも１つのメモリ・マップ（図示せず）をホストするが、このように限定されているわけではない。メモリ・インターフェース５６−８０２の構成要素は、メモリ・マップを利用して、ＤＳＰメモリ・アドレス空間５６−８２４からプロセッサ・メモリ・アドレス空間５６−８１４にあらかじめ指定されたアドレスまたはブロック５６−８２４ｂをスイッチングする。ＤＳＰメモリ５６−８２４ｂの再割当ては、後に説明するように、コンフィグレーション・レジスタ５０−２５２の情報に応じて実行される。再割当てされたメモリ５６−８２４ｂは、ＤＳＰバス５０−２０４およびＤＳＰ５０−２２２を介したアクセスと比べて比較的小さいクロック・サイクルで、プロセッサ・バス５０−２０２およびメモリ・インターフェース５６−８０２を介してプロセッサによって直接的にアクセスされる。
【０２２１】
一実施例の再割当ては、最大で約３２ｋバイトのメモリを有するＤＳＰメモリのブロック５６−８２４ｂの再割当てをサポートする。しかし、実施例は、このように限定されているわけではない。他の実施例では、あらゆる数／組み合わせのメモリ位置を有するあらゆる数のブロックを再割当てすることができる。図５７Ａは、図５６の実施例において、メモリ・インターフェースを介してＤＳＰアドレス空間５６−８２４からプロセッサ・アドレス空間５６−８１４に、ＤＳＰメモリのブロック５６−８２４ｂが再割当てされたメモリの構成のブロック図５７−９００である。
【０２２２】
図５７Ａを参照すると、以下のマッピングの例は、３２ｋバイトのメモリ・ブロック５６−８２４ｂの再割当てを示している。図５１によれば、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ５６−８２４および６４ｋバイトのプロセッサ・メモリ５６−８１４を含んでいるが、すでに説明したように、あらゆる構成のメモリを再割当てすることができる。再割当ての際に、メモリ・ブロック５６−８２４ｂはＤＳＰメモリ５６−８２４の最上部から取り出されるから、ＤＳＰは約９６ｋバイトのサイズ（１２８ｋバイト−３２ｋバイト＝９６ｋバイト）の連続するメモリのブロック５６−８２４ａを認識する。再割当てされたメモリ・ブロック５６−８２４ｂは、コア・プロセッサ・メモリ５６−８１４に加えられ、プロセッサは約９６ｋバイトのサイズ（６４ｋバイト＋３２ｋバイト＝９６ｋバイト）の連続するメモリのブロック５７−９１４を認識する。図５７Ｂは、図５７Ａの実施例において、ＤＳＰメモリ・アドレス空間５６−８２４からプロセッサ・アドレス空間５６−８１４へ、ＤＳＰメモリの３２ｋバイトのブロックの再割当てをした後のメモリの構成（メモリ・マップ）を示している。上述の実施例では、３２ｋバイトのメモリ・ブロックを再割当てしているが、他の実施例では、１または複数の異なるサイズのメモリ・ブロック及び／または異なるサイズを有するメモリ・ブロックの組み合わせを再割当てしてもよい。
【０２２３】
一実施例のメモリは、プロセッサおよび／またはＤＳＰが特定のメモリの構成に応じたアドレス境界を越えて各メモリのメモリ位置へのアクセスを試みた場合に、ホスト・システムに警告を発するメモリ保護機能を有している。メモリ保護機能は、異常終了および割り込みフラグを有しているが、このように限定されているわけではない。したがって、メモリ保護機能のためのアドレス境界は、メモリ再割当て時に調節される。図５３Ａ、図５３Ｂ、図５４Ａおよび図５４Ｂを参照しながらすでに説明したように、ＤＳＰメモリ５６−８２４からのメモリ・ブロック５６−８２４ｂの取り出しを反映して、割り込みアドレス境界Ｉｎｔ５７−９６０はＤＳＰメモリ５６−８２４内において徐々に低いアドレスに調節される。他の実施例では、メモリ内のより高いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に割り込みアドレス境界５７−９６０を調節することができる。同様に、コア・プロセッサ・メモリ５６−８１４へのメモリ・ブロック５６−８２４ｂの追加を反映して、異常終了アドレス境界Ａ５７−９６２はプロセッサ・メモリ５７−９１４内で徐々に高いアドレスに調節される。他の実施例では、メモリ内のより低いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に異常終了アドレス境界５７−９６２を調節することができる。
【０２２４】
上述したスイッチングおよび／またはマッピング再割当て方法の組み合わせによって、多数の追加的な再割当て方法および構成を実現することができる。たとえば、いくつかのシステム構成は、スイッチングおよびマッピング再割当ての両方を組み合わせることによって、メモリを再割当てすることができる。図５８は、図５０，５２および５６の実施例において、スイッチング再割当てを利用して１グループのＤＳＰメモリ・アドレス５８−１０２４ｃを再割当てし、マッピング再割当てを利用して他のグループのＤＳＰメモリ・アドレス５８−１０２４ｂを再割当てするシステムの構成５８−１０００の例のブロック図を示している。システム５８−１０００の構成要素は、メモリ・インターフェース５８−１００２およびプロセッサ・バス５０−２０２を介したプロセッサ５０−２１２による利用のためにＤＳＰメモリの第１の部分５８−１０２４ｃを再割当てし、ＤＳＰブリッジ５０−２３２およびＤＳＰバス５０−２０４を介したプロセッサ５０−２１２による利用のためにＤＳＰメモリの第２の部分５８−１０２４ｂを再割当てする。しかし、このように限定されているわけではない。
【０２２５】
まず、ＤＳＰメモリの第１のブロック５８−１０２４ｃのスイッチング再割当てに関していえば、システムの構成５８−１０００は、プロセッサ・バス５０−２０２に接続されたメモリ・インターフェース５８−１００２を含んでいる。メモリ・インターフェース５８−１００２は、少なくとも１つのメモリ・マップ（図示せず）をホストするが、このように限定されているわけではない。メモリ・インターフェース５８−１００２の構成要素は、メモリ・マップを利用して、ＤＳＰメモリ５８−１０２４からコア・プロセッサ・メモリ５８−１０１４に、あらかじめ指定されたアドレスまたはブロック５８−１０２４ｃをスイッチングする。ＤＳＰメモリの第１のブロック５８−１０２４ｃの再割当ては、各ブロックが最大で約８ｋバイトのメモリを有する４ブロック程度のメモリの再割当てをサポートする。しかし、実施例がこのように限定されているわけではない。ＤＳＰメモリ５８−１０２４ｃのスイッチング再割当ては、後に説明するように、コンフィグレーション・レジスタ５０−２５２の情報に応じて実行される。再割当てされたメモリ５８−１０２４ｃは、プロセッサ・バス５０−２０２およびメモリ・インターフェース５８−１００２を介してプロセッサ５０−２１２によって直接的にアクセスされる。
【０２２６】
次にＤＳＰメモリの第２のブロック５８−１０２４ｂのマッピング再割当てでは、システム構成５８−１０００は、少なくとも１つのメモリ・マップを利用して、ＤＳＰブリッジ５０−２３２を介してＤＳＰメモリ５８−１０２４からコア・プロセッサ・メモリ５８−１０１４にあらかじめ指定されたアドレスまたはブロック５８−１０２４ｂをマッピングする。ＤＳＰメモリ５８−１０２４ｂの再割当ては、後に説明するように、コンフィグレーション・レジスタ５０−２５２の情報に応じて実行される。ＤＳＰメモリの第２のブロック５８−１０２４ｂの再割当ては、第１のブロック５８−１０２４ｃのスイッチング再割当てと組み合わせて行なわれたときに、各ブロックが最大で約８ｋバイトのメモリを有する４ブロック程度のメモリの付加的な再割当てをサポートする。しかし、実施例が、このように限定されているわけではない。
【０２２７】
図５９Ａは、図５８の実施例において、メモリ・インターフェース５８−１００２およびＤＳＰブリッジ５０−２３２を介してＤＳＰアドレス空間５８−１０２４からコア・プロセッサ・アドレス空間５８−１０１４に、ＤＳＰメモリのブロック５８−１０２４ｃおよび５８−１０２４ｂがそれぞれ再割当てされたメモリの構成のブロック図５９−１１００である。図５１のように、この例のスタート時のメモリの構成は、１２８ｋバイトのＤＳＰメモリ５８−１０２４および６４ｋバイトのプロセッサ・メモリ５８−１０１４を有しているが、すでに説明したように、あらゆる構成のメモリを再割当てすることができる。
【０２２８】
メモリ・インターフェース５８−１００２およびプロセッサ・バス５０−２０２を介したプロセッサ５０−２１２による利用のためのＤＳＰメモリの第１の部分５８−１０２４ｃの再割当ては、３２ｋバイトのメモリ・ブロック５８−１０２４ｃの再割当てを含んでいる。再割当ての際には、メモリ・ブロック５８−１０２４ｃは、上述のように、メモリ・インターフェースの構成要素を介してメモリ・マッピングを利用することによって、ＤＳＰメモリ５８−１０２４の最上部から取り出される。
【０２２９】
同様に、ＤＳＰブリッジ５０−２３２を介したプロセッサ５０−２１２による利用のためのＤＳＰメモリの第２のブロック５８−１０２４ｂの再割当ては、４つの８ｋバイトのメモリ・ブロック５９−１１０１〜５９−１１０４（まとめて５８−１０２４ｂ）の再割当てを含んでいる。再割当ての際には、メモリ・ブロック５８−１０２４ｂは、上述のように、ＤＳＰブリッジ５０−２３２およびＤＳＰ５０−２２２の構成要素を介してメモリ・マッピングを利用することによって、ＤＳＰメモリ５８−１０２４から取り出される。
【０２３０】
ＤＳＰメモリの第１のブロック５８−１０２４ｃおよび第２のブロック５８−１０２４ｂの再割当ての際には、まず、メモリ・ブロック５８−１０２４ｃ（３２ｋバイト）が、コアＤＳＰメモリ５８−１０２４の最上部から取り出され、コア・プロセッサ・メモリ５８−１０１４の最上部に加えられる。次に、メモリ・ブロック５８−１０２４ｂ（８ｋバイト×４ブロック＝３２ｋバイト）が、残っているコアＤＳＰメモリ５８−１０２４の最上部から取り出され、メモリ・ブロック５８−１０２４ｃの最上部に加えられる。これらの２つの再割当て処理の後に、ＤＳＰ５０−２２２は、約６４ｋバイト（１２８ｋバイト−３２ｋバイト−３２ｋバイト＝６４ｋバイト）のサイズの連続するメモリのブロック５８−１０２４ａを認識する。再割当てされたメモリ・ブロック５８−１０２４ｃおよび５８−１０２４ｂをコア・プロセッサ・メモリ５８−１０１４へ加えた結果として、プロセッサは、約１２８ｋバイト（６４ｋバイト＋３２ｋバイト＋３２ｋバイト＝１２８ｋバイト）のサイズの連続するメモリのブロック５９−１１１４を認識する。図５９Ｂは、図５９Ａの実施例において、ＤＳＰアドレス空間５８−１０２４からプロセッサ・アドレス空間５８−１０１４にＤＳＰメモリの第１および第２のブロックを再割当てした後のメモリの構成（メモリ・マップ）を示している。他の実施例では、異なったサイズの複数のメモリ・ブロックまたは異なったサイズを有する複数のメモリ・ブロックの組み合わせを再割当てしても良い。
【０２３１】
ここで留意すべきは、ＤＳＰメモリを再割当てするときに、ＤＳＰメモリの第１の部分５８−１０２４ｃのスイッチングが、ＤＳＰメモリの第２の部分５８−１０２４ｂのマッピングより優先するということであるが、実施例がこのように限定されるわけではない。したがって、スイッチングおよびマッピング方法を組み合わせて利用するときには、プロセッサ５０−２１２がメモリ・ブロック５９−１１０１〜５９−１１０４のうち１つまたは複数をマッピングし、次にメモリ・ブロック５９−１１０１〜５９−１１０４のうち１つまたは複数をスイッチングする場合と、プロセッサ５０−２１２がメモリ・ブロック５９−１１０１〜１１０４のうち１つまたは複数をスイッチングし、次にメモリ・ブロック５９−１１０１〜５９−１１０４のうち１つまたは複数をマッピングする場合の２つの状況が発生し得る。これら２つの状況のどちらであっても、既存のそれまでのデータの順序は、マッピングおよびスイッチング再割当て方法の間で処理されるときも保持されるに保存される。また、プロセッサが、ＤＳＰブリッジ５０−２３２を介して、コア・プロセッサ・メモリ５８−１０１４に、ＤＳＰメモリの第１の部分５８−１０２４ｃのブロック５９−１１０１〜５９−１１０４のうちの１つまたは複数を以前にマッピングしていた場合には、後にメモリ・インターフェースを介してコア・プロセッサ・メモリ５８−１０１４にブロックをマッピングするときに、これらのブロック５９−１１０１〜５９−１１０４内に記憶されたあらゆるデータがそのまま同じアドレスに残っている。
【０２３２】
図５３Ａ，図５３Ｂ，図５４Ａ、図５４Ｂ、図５７Ａおよび図５７Ｂを参照しながら既に説明したように、ＤＳＰメモリ５８−１０２４からのメモリ・ブロック５８−１０２４ｃおよび５８−１０２４ｂの取り出しを反映して、割り込みアドレス境界Ｉｎｔ５９−１１６０はＤＳＰメモリ５８−１０２４内で徐々に低いアドレスとなるよう調節される。他の実施例では、メモリ内のより高いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に割り込みアドレス境界５９−１１６０を調節することができる。同様に、コア・プロセッサ・メモリ５８−１０１４へのメモリ・ブロック５８−１０２４ｃおよび５８−１０２４ｂの追加を反映して、異常終了アドレス境界Ａ５９−１１６２はメモリ内で徐々に高いアドレスとなるよう調節される。他の実施例では、メモリ内のより低いアドレスに、またはメモリをアドレスする方式に対して適切に、徐々に異常終了アドレス境界５９−１１６２を調節することができる。
【０２３３】
メモリ・スイッチングおよびマッピング再割当てを組み合わせたシステムの構成５８−１０００は、プロセッサ５０−２１２によるプロセッサ・バス５０−２０２およびメモリ・インターフェース５８−１００２を介したＤＳＰメモリのスイッチングされた部分５８−１０２４ｃへのアクセスをサポートし、さらにＤＳＰブリッジ５０−２３２、ＤＳＰバス５０−２０４およびＤＳＰ５０−２２２を介したＤＳＰメモリのマッピングされた部分５８−１０２４ｂへのアクセスをサポートする。プロセッサ５０−２１２の情報（データ）は、デコーダ５０−２４２の制御によって適切なメモリ位置へ送られる。再度、図５８を参照すると、デコーダ５０−２４２は、プロセッサ・バス５０−２０２を介してプロセッサ５０−２１２から情報（データ）を受信する。受信された情報は、たとえば関連するメモリ・アドレスにともなうデータおよび／または命令を含んでいる。デコーダ５０−２４２は、関連する情報がＧＰＳデータであるかプロセッサ・データであるかを判定するために、アドレスの最初の４ビットを利用する。
【０２３４】
情報（データ）がＧＰＳデータであるとデコーダ５０−２４２が判定すると、デコーダ５０−２４２は、（制御線５０−２４４を利用して）ＤＳＰブリッジ５０−２３２が、ＧＰＳデータを読み出し／受信するように選択する。制御線５０−２４４を介してデコーダ５０−２４２によって選択される際には、ＤＳＰブリッジ５０−２３２およびＤＳＰ５０−２２２のいくつかの構成要素の組み合わせ（図示せず）によって、プロセッサ・バス５０−２０２からＤＳＰメモリの適切なメモリ位置５８−１０２４ａにＧＰＳデータを送る。図６０は、図５８の実施例において、関連するメモリをロードする順序６０−１２０２および６０−１２０４にともなうメモリを再割当てされたＤＳＰメモリのブロック図である。一実施例のＧＰＳデータは、ＧＰＳデータ・ロード順序６０−１２０２にしたがって、ＧＰＳメモリ５８−１０２４ａに書き込まれる。
【０２３５】
受信した情報（データ）がプロセッサ・データであるとデコーダ５０−２４２が判定すると、デコーダ５０−２４２は、メモリ・コントローラ５０−２５０、ＤＳＰブリッジ５０−２３２、メモリ・インターフェース５８−１００２のうちの１つが、下記のようなアドレス・デコード方式にしたがって、それぞれ制御線５０−２４３または制御線５０−２４５または制御線５０−２４４を介して、プロセッサ・データを読み出し／受信するように選択する。アドレスが６０００＿００００と６００１＿８０００との間であり、メモリの構成がスイッチングされたメモリ５８−１０２４ｃを有するときは、デコーダは、（制御線５０−２４４を利用して）スイッチングされたメモリ５８−１０２４ｃを選択し、プロセッサ・バス５０−２０２およびメモリ・インターフェース５８−１００２を介して関連する情報を受信させる。アドレスが６００１＿８０００と６００２＿００００との間であり、メモリの構成がスイッチングされたメモリ５８−１０２４ｃを有するときは、デコーダは、（制御線５０−２４５を利用して）ＤＳＰメモリ５８−１０２４のマッピングされたブロック５８−１０２４ｂを選択し、ＤＳＰバス５０−２０４およびＤＳＰブリッジ５０−２３２とＤＳＰ５０−２２２のいくつかの構成要素の組み合わせ（図示せず）を介して関連する情報を受信させる。他のさまざまな実施例では、制御線５０−２４３〜２４５の代わりに、プロセッサ・データを読み出し／受信するデバイスを選択するために、あらゆる数／タイプ／組み合わせの信号伝達方式を利用することができる。
【０２３６】
デコーダ５０−２４２がＤＳＰメモリのマッピングされたブロック５８−１０２４ｂを選択して、プロセッサ・バス５０−２０２上の関連する情報を受信させたときには、デコーダ５０−２４２は制御線５０−２４５を利用してＤＳＰブリッジ５０−２３２を選択して、プロセッサ・データを読み出し／受信させる。デコーダ５０−２４２によって選択された際には、ＤＳＰブリッジ５０−２３２はプロセッサ・データを処理し、プロセッサ・バス５０−２０２から再割当てされたＤＳＰメモリ５８−１０２４ｂの適切なメモリ位置に送る。ＤＳＰブリッジ５０−２３２によるデータの処理は、たとえばデータのアドレスの反転を含むが、実施例がこのように限定されているわけではない。再度、図６０を参照すると、一実施例のプロセッサ・データは、ＳＷアクセス・ロード順序６０−１２０４にしたがって、再割当てされたＧＰＳメモリ５８−１０２４ｂに書き込まれる。
【０２３７】
上述したように、一実施例のメモリは、プロセッサ５０−２１２および／またはＤＳＰ５０−２２２が、特定のメモリの構成に応じたアドレスの境界を越えて各メモリのメモリ位置へのアクセスを試みたときに、ホスト・システムに警告を発するメモリ保護機能を有している。これらのメモリ保護機能は、たとえば異常終了および割り込みのフラグを有している。図６１は、図５８の実施例において、１グループのメモリ・アドレスをスイッチング再割当てを利用して再割当てし、他のグループのメモリ・アドレスをマッピング再割当てを利用して再割当てするシステムの構成６１−１３００のブロック図である。さらにこのシステム６１−１３００は、ＤＳＰブリッジ５０−２３２と接続されたＳＷモニタ６１−１３０２を含んでいるが、このように限定されているわけではない。ＳＷモニタ６１−１３０２は、プロセッサ５０−２１２が、上述したようにメモリの構成に関連するあらかじめ指定された異常終了アドレス境界を越えたメモリ位置にアクセスした場合に、異常終了６１−１３０４を発生させる。システム６１−１３００は、メモリの構成に対して適切に、少なくとも１つの異常終了アドレス境界を調節する。
【０２３８】
システム６１−１３００は、ＤＳＰ５０−２２２およびＤＳＰメモリ５８−１０２４のうちの少なくとも一方に接続されたＤＳＰモニタ６１−１３０４を有している。実施例のＤＳＰモニタ６１−１３０４は、ＤＳＰ５０−２２２が、上述したようにメモリの構成に関連するあらかじめ指定された割り込みアドレス境界または限界を越えたメモリ位置にアクセスした場合に、割り込み６１−１３１４を発生させる。システム６１−１３００は、メモリの構成に対して適切に、少なくとも１つの割り込みアドレス境界を調節する。
【０２３９】
図５０，５２，５６および５８を参照しながら既に説明したシステムの構成は、ＤＳＰメモリにアクセスする際に利用するためのマルチプレクサを有することもできる。例えば、図６２は、図５０，５２，５６および５８の実施例のいずれかにおいて、再割当てされたメモリＸ２４およびマルチプレクサ６２−１４０２を有する電子システム６２−１４００のブロック図である。マルチプレクサ６２−１４０２は、メモリＸ２４（“Ｘ”は対応する図／システムの番号を表わしており、図５０では“メモリ５０−２２４”、図４では“メモリ５２−４２４”、図５６では“メモリ５６−８２４”、図５８では“メモリ５８−１０２４”を表す）およびＤＳＰ５０−２２２に接続されているが、このように限定されているわけではない。メモリＸ２４は、ＤＳＰメモリＸ２４ａおよび再割当てされたメモリ・ブロックＸ２４ｂを有している。上述したように、再割当てされたメモリ・ブロックＸ２４ｂは、プロセッサ５０−２１２によって利用するために再割当てされている（図５０，５２，５６および５８参照）。
【０２４０】
メモリＸ２４への書き込み処理の間に、ＤＳＰ５０−２２２は、アドレスおよびメモリ・チップの選択情報（０，１，２または３）を含む情報をマルチプレクサ６２−１４０２に転送する。他の実施例では、マルチプレクサ６２−１４０２に追加的な情報を送ることができる。アドレスおよびチップの選択情報を利用して、マルチプレクサ６２−１４０２は、書き込み処理のために、メモリ・ブロックＸ２４ａまたはＸ２４ｂのうちの１つのメモリ位置を選択する。
【０２４１】
メモリ読み出し処理の間に、ＤＳＰ５０−２２２は、すくなくともアドレス情報を含む情報をマルチプレクサ６２−１４０２に送る。それに応答して、マルチプレクサ６２−１４０２は、アドレス情報に応じた各メモリ・ブロックＸ２４ａ、Ｘ２４ｂのメモリ位置からデータを受信する。マルチプレクサは、アドレス情報を利用してメモリ・ブロックＸ２４ａから読み出された情報とメモリ・ブロックＸ２４ｂから読み出された情報のいずれかを選択し、ＤＳＰ５０−２２２に選択された情報を送る。
【０２４２】
上述したすべてのプロセッサ・メモリおよびＤＳＰメモリへのアクセスは、バイト・ライン書き込み制御によって、バイト、ハーフ・ワードおよびワードでのアクセスを可能にする。この特徴属性は、スイッチングされたメモリについても、およびブリッジ・ユニットを介してマッピングされたメモリについてもあてはまるの両方に対して持続する。ＤＳＰメモリへのバイトの順序は、ＤＳＰのベース・アドレスへの順序、またはプロセッサのベース・アドレスを利用するマッピングされたまたはスイッチングされたブロックへの順序のいずれかと同じである。
【０２４３】
前記のメモリの共有／再割当ては、ホスト電子システムの複数の構成要素またはモジュールを含むことができる。図５０〜図６２を参照しながら既に説明したシステムは、プロセッサ・バス５０−２０２に接続された少なくとも１つのメモリ・コンフィグレーション・レジスタ５０−２５２を有している。メモリ・コンフィグレーション・レジスタ５０−２５２は、ブリッジ・ユニット５０−２３４を介してプロセッサ・バス５０−２０２に接続されており、メモリの構成を制御または管理する際に、プロセッサ５０−２１２、デコーダ５０−２４２、メモリ・インターフェース（図５６では５６−８０２、図５８では５８−１００２）、ＤＳＰブリッジ５０−２３２、マルチプレクサ（図６２の６２−１４０２）のうちの少なくとも１つによって利用される情報を記憶するレジスタを含んでいる。単独でおよび／またはホスト電子システムの別の構成要素との組み合わせにおいて、メモリ・コンフィグレーション・レジスタ５０−２５２は、一般に、１つまたは複数の後に説明するレジスタ／レジスタ・フィールドを含んでいる。
【０２４４】
一実施例のコンフィグレーション・レジスタ５０−２５２は、上述したように、マッピング再割当てをサポートするための第１のレジスタ・フィールドの第１のセットを有している。このレジスタ・フィールドのセットは、ＤＳＰアドレス空間からプロセッサ・アドレス空間にメモリ・ブロックをマッピングする。このメモリ・ブロックは、最大８つの８ｋバイトのブロックを有しているが、他の実施例では、あらゆるサイズを組み合わせたあらゆる数のブロックを有していてもよい。それらのブロックは、ＤＳＰメモリの最上部から順にマッピングされる。一実施例の第１のレジスタ・フィールドの第１のセットは、１つまたは複数のレジスタ・フィールドを有している。
【０２４５】
一実施例のコンフィグレーション・レジスタ５０−２５２は、上述したように、スイッチング再割当てをサポートするための第２のレジスタ・フィールドの第２のセットを有している。この第２のレジスタ・フィールドの第２のセットは、ＤＳＰバスからプロセッサ・バスへのＤＳＰメモリの最上部の３２ｋバイトのスイッチングをサポートする。その３２ｋバイトのブロックは、４つの８ｋバイトのブロックを有している。メモリの対応する４つの８ｋバイトのブロックのうち１つまたは複数が、マッピング再割当てによって、既に再割当てされているか、または後に再割当てされる場合、スイッチ制御が優先される。最初の４つのマッピングされた８ｋバイトのブロックおよび単独でスイッチングされた３２ｋバイトのブロックのデータの内容は、どちらかの再割当て方法であってもと、同一のオフセットおよびバイト順序になる。一実施例の第２のレジスタ・フィールドの第２のセットは、１つまたは複数のレジスタ・フィールドを有している。
【０２４６】
一実施例のコンフィグレーション・レジスタ５０−２５２は、ＤＳＰメモリの読み出しおよび／または書き込みアクセス違反に対して、異常終了の発生を有効または無効にすることをサポートする第３のレジスタ・フィールドの第３のセットを有している。これらの異常終了の発生は、読み出しおよび書き込みのアクセスに対して、独立して、有効または無効にすることができる。割り込みに関しては、一実施例のシステムは、最初のＤＳＰメモリ違反およびその後の割り込みを引き起こしたアドレスの保存をサポートする第４のレジスタ・フィールドの第４のセットを有している。一実施例の第３および第４のレジスタ・フィールドの第３のセットおよび第４のセットのそれぞれは、１つまたは複数のレジスタ・フィールドを有している。
【０２４７】
図６３は、一実施例における、メモリの共有のための制御レジスタ６３−１５００のブロック図である。コンフィグレーション・レジスタ５０−２５２は、制御レジスタ６３−１５００を有するが、他の実施例では、ホスト・システムの別の構成要素および／または構成要素の組み合わせ内に制御レジスタ６３−１５００を有していても良い。このレジスタのビット０−１５の機能の説明は、次のとおりである。
【０２４８】
ビット１５〜７：予備である。
ビット６：ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ：ロジック１＝プロセッサ・バスを介したＤＳＰメモリの上側の３２ｋバイトへのプロセッサによる直接的なアクセスを有効にする。
ビット５〜３：ＭＡＰ＿ＢＬＫ［２：０］：０００−１１１は、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝１のときに、プロセッサ・ソフト・マッピング・アクセスのためにＤＳＰメモリの上側の６４ｋバイトの１個目から８個目までの８ｋバイトのブロックを選択する。これらのビットは、次のようにプロセッサ・ソフトＭＡＰアドレスの境界を設定する。
０００：≧０ｘ６００１＿００００＜０ｘ６００１＿２０００または≧０ｘＣ０２１＿Ｅ０００＜０ｘＣ０２２＿００００
００１：≧０ｘ６００１＿００００＜０ｘ６００１＿４０００または≧０ｘＣ０２１＿Ｃ０００＜０ｘＣ０２２＿００００
０１０：≧０ｘ６００１＿００００＜０ｘ６００１＿６０００または≧０ｘＣ０２１＿Ａ０００＜０ｘＣ０２２＿００００
０１１：≧０ｘ６００１＿００００＜０ｘ６００１＿８０００または≧０ｘＣ０２１＿８０００＜０ｘＣ０２２＿００００
４９−１００：≧０ｘ６００１＿００００＜０ｘ６００１＿Ａ０００または≧０ｘＣ０２１＿６０００＜０ｘＣ０２２＿００００
１０１：≧０ｘ６００１＿００００＜０ｘ６００１＿Ｃ０００または≧０ｘＣ０２１＿４０００＜０ｘＣ０２２＿００００
１１０：≧０ｘ６００１＿００００＜０ｘ６００１＿Ｅ０００または≧０ｘＣ０２１＿２０００＜０ｘＣ０２２＿００００
１１１：≧０ｘ６００１＿００００＜０ｘ６００２＿００００または≧０ｘＣ０２１＿００００＜０ｘＣ０２２＿００００
ビット２：ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ：ロジック１＝ＤＳＰバス・ブリッジを介して０ｘ６００１＿００００以上でかつ０ｘ６００２＿００００より小さいアドレスにおいて、ＤＳＰメモリの上側の６４ｋバイトの１個目から８個目までの８ｋバイトのブロックのプロセッサ・ソフト・マッピングを可能にする。
ビット１：ＥＮ＿ＣＰＵ＿ＷＡＢ：ロジック１＝プロセッサ書き込み違反における異常終了を有効にする。
ビット０：ＥＮ＿ＣＰＵ＿ＲＡＢ：ロジック１＝プロセッサ読み出し違反における異常終了を有効にする。
【０２４９】
制御レジスタ６３−１５００の制御ビットのさらに詳細な説明は次のとおりである。ＥＮ＿ＣＰＵ＿ＲＡＢビットは、プロセッサで利用するためにマッピングされているか、またはアクセスしたバス上に物理的に存在しないために、許可されていないアドレス範囲内でＤＳＰメモリから読み出ししようとした場合に、プロセッサ５０−２１２にアクセスを異常終了させる。たとえばＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、プロセッサ５０−２１２が０ｘ６００１＿Ｃ０００から０ｘ６００１＿ＦＦＦＦのアドレス範囲から読み出そうとした場合、異常終了が発生する。同様にＳＷＩ＿ＥＮＢ＝１であって、プロセッサ５０−２１２が０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの範囲から読み出そうとした場合、異常終了が発生する。しかし、ここで留意すべきは、ＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、ＭＡＰ＿ＢＬＫが０００以上である場合には、０ｘ６００１＿００００から０ｘ６００１＿１ＦＦＦと０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの両方のアドレス範囲において、プロセッサ５０−２１２はＤＳＰブリッジ５０−２３２を介してブロック０から読み出してもよいということである。
【０２５０】
ＥＮ＿ＣＰＵ＿ＷＡＢビットは、プロセッサで利用するために特定のアドレス範囲がマッピングされているか、またはアクセスしたバス上に物理的に存在しないために、許可されていないアドレス範囲内でＤＳＰメモリに書き込みをしようとした場合に、プロセッサ５０−２１２にアクセスを異常終了させる。たとえばＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、プロセッサ５０−２１２が０ｘ６００１＿Ｃ０００から０ｘ６００１＿ＦＦＦＦのアドレス範囲に書き込もうとした場合、異常終了が発生する。同様にＳＷＩ＿ＥＮＢ＝１であって、プロセッサ５０−２１２が０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの範囲のアドレスに書き込もうとした場合、そのブロックはＤＳＰバス上に存在しないので、異常終了が発生する。しかし、ここで留意すべきは、ＳＷＩ＿ＥＮＢ＝０でありＭＡＰ＿ＥＮＢ＝１であって、ＭＡＰ＿ＢＬＫが０００以上である場合には、０ｘ６００１＿００００から０ｘ６００１＿１ＦＦＦおよび０ｘＣ０２１＿Ｅ０００から０ｘＣ０２１＿ＦＦＦＦの両方のアドレス範囲において、プロセッサ５０−２１２はＤＳＰブリッジ５０−２３２を介してブロック０に書き込んでもよいということである。
【０２５１】
ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢビットは、ＭＡＰ＿ＢＬＫ［２：０］に、ＤＳＰアドレス範囲からオンチップ・プロセッサ・メモリのすぐ上のアドレス範囲への８個の８ｋバイトのブロックのアドレス・マッピングを制御可能とさせる。このビットが無効とされている（ロジック“０”にセットされている）場合、マッピング・ビットであるＭＡＰ＿ＢＬＫ［２：０］は何の影響も及ぼさない。
【０２５２】
ＭＡＰ＿ＢＬＫ［２：０］ビットは、ＤＳＰアドレス範囲からオンチップ・プロセッサ・メモリのすぐ上のアドレス範囲への８個の８ｋバイトのブロックのマッピングを制御する。それらのバイトは、ブロック０から始まりＭＡＰ＿ＢＬＫ［２：０］によって指定されたブロックで終了するようにマッピングされるが、このように限定されているわけではない。ブロック０は、ＤＳＰアドレス範囲の最上部であって、プロセッサ・メモリの上のマッピングされた範囲の最下部にマッピングされる。この逆の積み重ねは、上側のブロックが取り出されるときに、残りのＤＳＰメモリが連続するアドレス範囲となるように行われ、加えられたプロセッサ・メモリは、連続するアドレス範囲となるように、加えられたブロックそれぞれとともに上方に重ねられる。
【０２５３】
ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢビットは、メモリ・ブロック０〜３をＤＳＰバスからプロセッサ・バスにスイッチングする。４つのブロックは、プロセッサ・アドレス範囲に、逆の順序で積み重ねられ、開始部であるブロック０が、ちょうどオンチップ・プロセッサ・メモリのすぐ上にマッピングされる。これと同じマッピングが、ＭＡＰ＿ＢＬＫ［２：０］がＤＳＰブリッジ５０−２３２を介してブロックをマッピングするときに利用される。
【０２５４】
図６４は、一実施例における、メモリの共有のための状態レジスタ６４−１６００のブロック図である。コンフィグレーション・レジスタ５０−２５２は、状態レジスタ６４−１６００を有しているが、他の実施例では、ホスト・システムの別の構成要素および／または構成要素の組み合せが状態レジスタ６４−１６００を有していてもよい。このレジスタのビット０−１５の機能の説明は次のとおりである。
ビット１５〜２：予備
ビット１：ＣＰＵＷ＿ＶＩＯ：読み出し処理の間は、ロジック１＝プロセッサの書き込み違反。書き込み処理の間は、ロジック１の書き込みによってビットがクリアされる。
ビット０：ＣＰＵＲ＿ＶＩＯ：読み出し処理の間は、ロジック１＝プロセッサの読み出し違反。書き込み処理の間は、ロジック１の書き込みはによってビットがクリアされる。
【０２５５】
状態レジスタ６４−１６００の各制御ビットのより詳細な説明は次のとおりである。ＣＰＵＲ＿ＶＩＯビットは、プロセッサの読み出し違反が起こったときにセットされる。このビットは、ＥＮ＿ＣＰＵ＿ＲＡＢの状態に関係なくセットされる。ＣＰＵＲ＿ＶＩＯビットは、プロセッサがロジック“１”を書き直したときにクリアされる。
【０２５６】
ＣＰＵＷ＿ＶＩＯビットは、プロセッサの書き込み違反が起こったときにセットされる。このビットは、ＥＮ＿ＣＰＵ＿ＷＡＢの状態に関係なくセットされる。ＣＰＵＷ＿ＶＩＯビットは、プロセッサがロジック“１”を書き直したときにクリアされる。
【０２５７】
図６５は、一実施例における、メモリの共有のための書き込み／読み出し違反アドレス・レジスタ６５−１７００のブロック図である。コンフィグレーション・レジスタ５０−２５２は、違反アドレス・レジスタ６５−１７００を有しているが、他の実施例では、ホスト・システムの別の構成要素および／または構成要素の組み合せが違反アドレス・レジスタ６５−１７００を有していてもよい。このレジスタのビット０−１５の機能の説明は次のとおりである：
ビット１５〜０：ＤＳＰＷ＿ＩＮＴまたはＤＳＰＲ＿ＩＮＴパルスを初めに発生させたＤＳＰアドレス。
【０２５８】
図６６Ａおよび６６Ｂは、一実施例における、メモリの共有のためのアドレス・マップ６６−１８００を示している。コンフィグレーション・レジスタ５０−２５２は、アドレス・マップ６６−１８００を有しているが、他の実施例では、ホスト・システムの別の構成要素および／または構成要素の組み合せがアドレス・マップ６６−１８００を含んでいてもよい。メモリの共有のためのアドレス・マッピングの例を下記にいくつか提示するが、実施例がこれらの例に限定されるわけではない。
【０２５９】
第１の例においては、ブロック＝７、ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ＝Ｘ、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝０、ＭＡＰ＿ＢＬＫ［２：０］＝ＸＸＸである。ＤＳＰ５０−２２２は、０ｘ０００１＿００００から０ｘ０００１＿ＦＦＦＦのＤＳＰアドレス範囲においてブロックにアクセスする。プロセッサ５０−２１２は、０ｘＣ０２１＿００００から０ｘＣ０２１＿１ＦＦＦのＤＳＰ・ブリッジ・アドレスにおいてブロックにアクセスする。プロセッサ５０−２１２は、プロセッサ・バス５０−２０２においてこのブロックにアクセスすることはできない。
【０２６０】
第２の例においては、ブロック＝７、ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ＝Ｘ、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝１、ＭＡＰ＿ＢＬＫ［２：０］＝１１０である。ＤＳＰ５０−２２２は、０ｘ０００１＿００００から０ｘ０００１＿ＦＦＦＦのＤＳＰアドレス範囲においてブロックにアクセスする。プロセッサ５０−２１２は、０ｘＣ０２１＿００００から０ｘＣ０２１＿ＦＦＦＦのＤＳＰブリッジ・アドレスまたは０ｘ６００１＿００００から０ｘ６００１＿５ＦＦＦのソフト・マップ・アドレスにおいてブロックにアクセスする。プロセッサ５０−２１２は、プロセッサ・バス５０−２０２においてこのブロックにアクセスすることはできない。
【０２６１】
第３の例においては、ブロック＝７、ＤＳＰ３２Ｋ＿ＳＷＩ＿ＥＮＢ＝Ｘ、ＤＳＰ６４Ｋ＿ＭＡＰ＿ＥＮＢ＝１、ＭＡＰ＿ＢＬＫ［２：０］＝１１１である。ＤＳＰ５０−２２２は、一般的なＤＳＰアドレス範囲である０ｘ０００１＿００００から０ｘ０００１＿ＦＦＦＦの範囲においてブロックにアクセスする。プロセッサ５０−２１２は、０ｘ６００１＿００００から０ｘ６００１＿７ＦＦＦのマッピングされたＤＳＰブリッジ・アドレスにおいてブロックにアクセスする。プロセッサ５０−２１２は、プロセッサ・バス５０−２０２においてこのブロックにアクセスしない。ＤＳＰ５０−２２２がその一般的なＤＳＰバス・アドレス範囲においてこのブロックにアクセスしようとすると、適切なＤＳＰ読み出しまたは書き込み割り込みが発生する。
【実施例４】
【０２６２】
一実施形態のＧＰＳシステムは、動的なメモリの割当てと共有のためのシステムおよび方法を含むが、これに限定はされない。実施態様は、サイズが変化し、特定のサブシステムによりアクセスされ、特定のタイプのデータを保存する複数の様々な領域に、ランダム・アクセス・メモリ（ＲＡＭ）を割当てる工程を含む。上記ＲＡＭの割当ては、信号処理システムなどのデータ処理システムの動作モードと共に変化する。一旦利用可能なメモリが割当てられると、上記の様々な領域は、種々のモードで同時に動作できる様々なサブシステムにより共有される。
【０２６３】
様々な実施態様が、信号処理システム、特には全地球測位システム（ＧＰＳ）において例示される。実施態様はこのようなシステムに限定されるものではなく、メモリが運用中に多数のサブシステムへ割当てられ、そして再度割当てられねばならない、制限されたリソースであるような、あらゆる電子システムにおいて有用である。実施態様の具体例は、衛星ビークル（ＳＶ）から個別のチャネルで受信された無線周波数（ＲＦ）信号を処理する信号処理コアを含む。信号処理コアは、ＧＰＳシステムが目視可能な衛星に関し、最初にどれだけの量の情報を有するかなど、多数の要因に依存して、いくつかの異なるモードで動作する。利用可能なメモリは、特定の動作モードにおいて最も効率的な利用のため効果的に割当てられる。さらに、利用可能なメモリは、チャネルごとに効果的に割当てられる。チャネルという用語は、ハードウェア・リソースの特定の使用を示すために使用される。チャネルは、１つまたは複数の特定の衛星からの、１つまたは複数の受信信号に対応することができる。様々なチャネルは、種々のモードで同時に使用するため、利用可能なメモリに割当てられる。本明細書で使用されるチャネルという用語は、信号処理システムによって処理される任意の離散的信号または離散的信号を提供するデータ・ストリームを示すこともある。
【０２６４】
説明される実施態様は、連続的に複数のチャネルを受信し、時分割ベースで信号処理部において複数のチャネルを処理し、そして複数の動作モードの１つに対し信号処理部を構成する工程（様々なタイプのデータを保存するため、メモリを複数の領域に割当てる工程を含む）を含む複数のチャネルの信号処理方法を含む。特定のメモリ領域は、特定の信号処理サブシステムにより特定の様式でアクセスされ、信号処理部は様々なチャネルに対し、種々のモードで同時に動作するように構成される。信号処理部は、信号処理部の出力の評価に基づき連続的に再構成される。メモリは、データ・ワードがソフトウェアにより保存されるチャネル領域を含むようにさらに割当てられる。ソフトウェアは、制御プロセッサにより実行される。制御プロセッサとソフトウェアはどこにでも存在することができる。データ・ワードは、メモリを含む信号処理サブシステムを構成するのに必要な情報のすべてを含む。データ・ワードは、例えば、特定のサブシステムがメモリ領域のどこにアクセスしたかを示すアドレス・ポインタを保存し、ステータス情報を保存することにより、様々なサブシステムにより読み出され、様々なサブシステムにより更新される。
【０２６５】
このようにして、メモリの交換とメモリの共有が生じるであろう。メモリの交換が、メモリのひとかたまりのブロックを用いるコア・プロセスと、そのブロックの様々なバッファ・サイズへの分割を有効化する。その様々なブロックは、動作モードに基づいてメモリの内部で再配置することもできる。コア・プロセスの外部で、メモリへのアクセスの仕方を制御する規則が設定されるであろう。プロセッサあるいはコントローラは、メモリへアクセスし、メモリを構成するために、高い優先順位を有するであろう。メモリ・ブロックは分離することができ、メモリ管理処理は別のブロックを制限することができる。
【０２６６】
図６７は、信号処理システム６７−１０２を含むシステム６７−１００の一実施態様のブロック線図である。信号処理システム６７−１０２は、無線周波数（ＲＦ）部とデジタル信号処理部を含む。一実施態様では、ＲＦ部６７−１０３はＧＰＳ衛星または衛星ビークル（ＳＶ）からのＲＦ信号を受信する。ＲＦ信号はデジタル化され、デジタル信号処理部６７−１０１に伝送される。一実施態様では、ＲＦ部６７−１０３とデジタル信号処理部６７−１０１は、シリアル周辺インターフェース（ＳＰＩ）を介して通信する。デジタル信号処理部６７−１０１は、以下にさらに説明するようにＲＦ信号を処理し、処理されたデータを、ＯＥＭバス６７−１０４を介し外部ＯＥＭプロセッサ６７−１０５に伝送する。デジタル信号処理部６７−１０１は、ＯＥＭメモリ６７−１０７とも通信する。以下にさらに説明するように、デジタル信号処理部６７−１０１は、信号処理機能用のメモリを含む。本発明の実施態様は、デジタル信号処理部６７−１０１上のメモリとＯＥＭメモリ６７−１０７を含む、限られた量のメモリを有するシステムにおいて特に好適である。通常、メモリはシステムにおいて限られているが、このことは携帯型または移動可能型デバイス内のシステムに特にあてはまる。
【０２６７】
場合によっては、ＯＥＭメモリ６７−１０７はデジタル信号処理部６７−１０１によりアクセスされる必要はない。他の可能な配置としては、信号処理機能を実行するために必要なメモリと処理能力のすべてを含む１つの部品、またはチップ上にＲＦ部６７−１０３機能とデジタル信号処理部６７−１０１機能のすべてが配置されたものを含む。システム６７−１００は、ＧＰＳ支援情報無しで有効に動作する能力をもつか、あるいは、多種多様なソースからのＧＰＳ支援情報により動作することができる。
【０２６８】
図６８はデジタル信号処理部６７−１０１の一実施態様のサブシステムを示すブロック線図であり、入力サンプル・サブシステム（ＳＳ１）６８−２１１、信号処理サブシステム（ＳＳ２）６８−２１３、高速フーリエ変換（ＦＦＴ）サブシステム（ＳＳ３）６８−２１５を含む。デジタル信号処理部６７−１０１はメモリ・サブシステム６８−２０１をさらに含み、以下にさらに説明されるように、一実施態様では様々なサブシステム間で動的に割当てられ、共有されるランダム・アクセス・メモリ（ＲＡＭ）を含む。メモリ・サブシステム６８−２０１は、単独のメモリ部品または装置でもよく、または複数のメモリ部品でもよい。メモリ・サブシステム６８−２０１は、入力サンプルＲＡＭ６８−２０３、コヒーレント・データＲＡＭ６８−２０５、バックエンド保存ＲＡＭ６８−２０９、およびチャネルＲＡＭ６８−２０７を含む。メモリ・サブシステム６８−２０１は、入力サンプルＲＡＭ６８−２０３、コヒーレントＲＡＭ６８−２０５、チャネルＲＡＭ６８−２０７、およびバックエンド保存ＲＡＭ６８−２０９のそれぞれが様々な動作モードでサイズが変化するように、動的に割当てられる。さらに、入力サンプルＲＡＭ６８−２０３、コヒーレントＲＡＭ６８−２０５、およびバックエンド保存ＲＡＭ６８−２０９はそれぞれ、様々なモードで様々なチャネルによりアクセスされ、様々なサブシステム間で同時に共有される。
【０２６９】
入力サンプルＲＡＭ６８−２０３は、ＦＩＦＯ１制御構造またはＦＩＦＯ１  ６８−２２１と呼ばれる制御構造６８−２２１により制御される。コヒーレントＲＡＭ６８−２０５は、同様に、ＦＩＦＯ２制御構造またはＦＩＦＯ２  ６８−２２３と呼ばれる制御構造６８−２２３により制御される。以下にさらに説明されるように、ＦＩＦＯ１  ６８−２２１は、入力サンプルＲＡＭ６８−２０３へのアクセスを制御し、ＦＩＦＯ２  ６８−２２３はコヒーレントＲＡＭ６８−２０５へのアクセスを制御する。本明細書に用いられるように、用語「ＦＩＦＯ」は、ある実施態様においては、入力サンプルＲＡＭ６８−２０３およびコヒーレントＲＡＭ６８−２０５へのアクセスのファーストイン・ファーストアウトの性質を意味する。他の実施態様では、上記制御構造および入力サンプルＲＡＭへのアクセスは、例えば、ラストイン・ファーストアウトを含む他の特徴を有することができる。図６８では、ＦＩＦＯ１  ６８−２２１は入力サンプルＲＡＭ６８−２０３に連結して示され、ＦＩＦＯ２  ６８−２２３はコヒーレントＲＡＭ６８−２０５に連結して示される。通常は、ＦＩＦＯ１  ６８−２２１およびＦＩＦＯ２  ６８−２２３はそれぞれのＲＡＭ領域に連結されないが、図６８では例示のためにそのように示される。
【０２７０】
デジタル信号処理部６７−１０１は、デジタル信号処理部６７−１０１における信号処理動作の順序付けを制御するシーケンサ６８−２１７をさらに含む。シーケンサ６８−２１７は個別部品として示されるが、他の部品に連結させることができる。例えば、以下に説明する実施態様では、シーケンサ６８−２１７の機能の一部は信号処理サブシステム６８−２１３上に、一部はＦＦＴサブシステム６８−２１５上に存在する。以下ＳＷ６８−２１９と呼ばれるソフトウェア部６８−２１９は、シーケンサ６８−２１７を制御し、したがって、ワードをチャネルＲＡＭ６８−２０７に保存することによりデジタル信号処理部６７−１０１において信号処理動作を制御する。一実施態様では、ＳＷ６８−２１９は、外部ＯＥＭプロセッサ６７−１０５および／またはＯＥＭメモリ６７−１０７上にあるが、これは要件ではない。
【０２７１】
デジタル信号処理部６７−１０１は、デジタル化されたＲＦデータ・サンプルをＲＦ部６７−１０３から受信する。データ・サンプルは、ＳＶからのデータ・ストリームのサンプルであり、それぞれは固有の擬似ランダム・ノイズ（ＰＲＮ）符号を既知の様式で伝送する。概して言えば、デジタル信号処理部６７−１０１はデータ・サンプルを処理し、どの衛星がそれを伝送したかを判断し、また上記サンプルからエフェメリスおよびアルマナックなどの情報を抽出する。当該技術分野で周知のように、４つのＳＶの絶対位置と、それらの受信機からの相対的な距離が受信機により認識されると、受信機の位置を知ることができる。デジタル信号処理部６７−１０１は、現在の位置情報がどれだけ認識されているかによって、４つのモードの１つでデータ・サンプルを処理する。
【０２７２】
入力サンプル・サブシステム６８−２１１は、送信側によって決定される速度で入力ＲＦデータ・サンプルを受信する。入力サンプル・サブシステム６８−２１１は、ＦＩＦＯ１の制御下で、デジタル信号処理部６７−１０１の動作モードに応じた様式でデータ・サンプルを入力サンプルＲＡＭ６８−２０３内に保存する。入力サンプルＲＡＭ６８−２０３のサイズもデジタル信号処理部６７−１０１の動作モードにより決定される。信号処理サブシステム６８−２１３は、ＦＩＦＯ１の制御下で、ＲＡＭ６８−２０３から演算すべきＲＦ入力サンプルを取り込む。ＲＦ信号サンプルに行われる演算は、信号処理モードに応じて変更することができる。例えば、信号処理サブシステム６８−２１３は、信号サンプルにデシメーション演算を行ってもよいし、行わなくてもよい。信号処理サブシステム６８−２１３は、一実施態様では、整合フィルタを使用することにより、コヒーレントＲＡＭ６８−２０５内にあるデータ・サンプルをコヒーレントに累算する。コヒーレントな累算は、指定の期間の間、Ｉ（同位相）およびＱ（直交位相）のデータを有効に累算する。コヒーレントに累算されたデータ・サンプルは、ＦＦＴ処理のためにＦＦＴサブシステム６８−２１５によりコヒーレントＲＡＭ６８−２０５から取り込まれる。コヒーレントＲＡＭ６８−２０５のサイズもデジタル信号処理部６７−１０１の動作モードにより決定される。
【０２７３】
１つの状況では、受信機の位置についての情報はほとんど知られていないか、全く知られていない。この状況では、どのＳＶが受信機にとって目視可能かについての情報はほとんどないか全く無く、利用できる時間情報は不正確である。この状況では、デジタル信号処理部６７−１０１は、「コールド・スタート」モードでデータ・サンプルを処理する。コールド・スタート・モードでは、できるだけ多くのデータができるだけ速く低感度または低分解能で処理される。これはＳＶ信号の探索空間が非常に大きく、最初の捕捉段階に焦点を合わせる現行データが存在しないからである。コールド・スタート・モードでは、コヒーレントな累算は発生せず、データ・サンプルは、信号処理サブシステム６８−２１３から経路６８−２２２を介してＦＦＴサブシステム６８−２１５へ直接に送信される。
【０２７４】
コールド・スタート・モード以外のモードでは、ＦＦＴサブシステム６８−２１５はコヒーレントＲＡＭから一定数のデータ・サンプルを取り込み、ＦＦＴ演算を行う。コールド・スタート・モードでは、ＦＦＴサブシステム６８−２１５は、ＳＳ２  ６８−２１３から直接来るコヒーレント・データ・サンプルに演算を行う。ＳＳ３  ６８−２１５は、個々の処理モードによって規定される数の周波数を作成する。例として、８サンプル、１６ポイントＦＦＴでは、ＦＦＴは１６の周波数を作成する。１６の周波数すべてが対象であるわけではない。例えば、外側の周波数は有用ではないかもしれない。周波数の数はプログラム可能である。所望の周波数が選択され、よりコンパクトな形式で詰め込まれ、非コヒーレント・データ、すなわちＩとＱのデータから導き出される振幅を累算するバックエンド保存ＲＡＭ６８−２０９の非コヒーレント加算（ＮＣＳ）領域内に保存される。以下にさらに説明するように、バックエンド保存ＲＡＭ６８−２０９は、ピーク値またはピークを保存するためにも使用される。一実施態様では、８つの最大の値だけでなく、それらがデータ・ストリーム内のどこで発生したかに関する情報（例えば、どんな符号オフセットで、そしてどんな周波数オフセットで）も保存される。トラック履歴（ＴＨ）情報は選択されたコヒーレント・データであり、ＳＷ６８−２１９による検査のために保存される。一実施態様では、ＴＨ情報はギャザー（ｇａｔｈｅｒ）モジュール（図示せず）の出力である。ギャザー・モジュールはＦＦＴサブシステム６８−２１５の周波数出力の中から選択して、不要な周波数を廃棄する。ギャザー・モジュールはデータをコヒーレント形式で維持する。ＳＷ６８−２１９は、ＴＨ情報を検査することにより信号処理部６７−１０１の構成に関する決定を行うことができる。バックエンド保存ＲＡＭ６８−２０９のサイズも、信号処理部６７−１０１の動作モードにより決定される。
【０２７５】
ここでは、Ｔ１、ＰＤＩ、およびコンテキストを含む様々な用語を、処理エポックを説明するために使用する。Ｔ１は、チャネル用のコヒーレント累算器におけるコヒーレント累算に対し規定されたミリ秒単位の時間間隔である。Ｔ１の長さはプログラム可能であり、動作モードにより変化する。例えば、いくつかのモードでは、より微弱な信号を探すために、比較的長い期間の間、累算することが望ましい。したがって、信号処理サブシステム６８−２１３はＴ１を基準としてコヒーレントに累算する。
【０２７６】
ＰＤＩはプログラム可能なＴ１の数である。ＦＦＴサブシステム６８−２１５内に一度に供給されるＴ１の数がＰＤＩである。ＰＤＩにおけるＴ１の数は、ＦＦＴサブシステム６８−２１５が、特定のモードにおいてデータを処理するために、どのように構成されるかにより決定される。上述のように、信号処理サブシステム６８−２１３は、Ｔ１を基準としてコヒーレントに累算する。しかしながら、ＦＦＴサブシステム６８−２１５は、ＰＤＩを基準としてデータに演算を行う。したがって、ＦＦＴサブシステム６８−２１５は完全なＰＤＩが利用可能になると、コヒーレントＲＡＭ６８−２０５からデータを取り出せばよい。例えば、ＦＦＴサブシステム６８−２１５が５サンプル、１６ポイント、ゼロ詰めのＦＦＴとして構成される場合、ＦＦＴサブシステム６８−２１５は、コヒーレントＲＡＭ６８−２０５からデータを取り出し始める前に、５つのサンプル、または５つのＴ１が完了してコヒーレントＲＡＭ６８−２０５内に保存されるのを待つ。
【０２７７】
様々なサブシステムの使用は、様々なチャネル間で時分割される。ここでコンテキストという用語は、特定のチャネルを処理する特定のサブシステムの使用を表現するのに用いられる。例えば、特定のチャネルに関し、チャネルが信号処理サブシステム６８−２１３に入るとコンテキストは始まり、そのチャネルが信号処理サブシステム６８−２１３を出ると当該コンテキストは終了する。これは、信号処理サブシステム６８−２１３がプログラムされたミリ秒数の間動作し、入力サンプルＲＡＭ６８−２０３からのデータを使用し、そしてその後停止してコンテキストが終了することを意味する。チャネルは、ＦＦＴサブシステム６８−２１５に関しても同様なコンテキストを有する。
【０２７８】
上述のように、ＳＷ６８−２１９は、信号処理部６７−１０１の演算を制御するチャネルＲＡＭ６８−２０７にワードを保存する。保存されたワードがチャネル・レコードを構成する。一実施態様では、チャネル・レコードは、様々なタイプのデータを含む１２８本のラインのそれぞれであるが、基本的には信号処理部が使用するチャネル固有のデータのすべてを含む。チャネル・レコードは、当該特定チャネルに関するＳＷ６８−２１９からのプログラミング情報、ロード形式の情報、サイズ・パラメータと、入力サンプルＲＡＭ６８−２０３、コヒーレントＲＡＭ６８−２０５、バックエンド保存ＲＡＭ６８−２０９ならびにＲＡＭ６８−２０１のその他の領域のサイズ割当てを含む。チャネル・レコードは、単一チャネルに関する符号位相、搬送波位相、搬送周波数、加速度、および他の処理パラメータすべてを含む。チャネルＲＡＭ６８−２０７はまた、チャネルについての「スクラッチ・パッド」情報を記憶するスクラッチ・パッド領域を含む。スクラッチ・バッド・データはスクラッチ・バッド領域の任意の利用可能な部分に１つのチャネルによって書き込まれ、その後に別のチャネル（同一チャネルのこともある）がそのスクラッチ・パッド領域へ書き込むときに上書きされる。スクラッチ・パッド情報は、一つのコンテキストから次のコンテキストへのチャネルのカウンタを含む。信号処理サブシステム６８−２１３およびＦＦＴサブシステム６８−２１５の使用は、異なるチャネル間で時分割されるので、それぞれのチャネルはその状態を保存しなければならない。
【０２７９】
チャネルＲＡＭ６８−２０７は、ＳＷ６８−２１９により初期化されるが、その後、信号処理サブシステム６８−２１３、ＦＦＴサブシステム６８−２１５、そして時にはＳＷ６８−２１９により更新される。例えば、チャネルＲＡＭ６８−２０７内には、信号処理サブシステム６８−２１３、ＦＦＴサブシステム６８−２１５、ＳＷ６８−２１９間の通信のために用いられるセマフォ・ワードが存在する。セマフォ・ワードは、信号処理サブシステム６８−２１３、ＦＦＴサブシステム６８−２１５、ＳＷ６８−２１９間の通信を同期させるためのメカニズムであって、準非同期で動作する。
【０２８０】
チャネル・レコードは、本質的には、入力サンプルＲＡＭ６８−２０３、コヒーレントＲＡＭ６８−２０５、およびバックエンド保存ＲＡＭ６８−２０９を含む様々なＲＡＭ内の場所に対するポインタを含むリンクされたリストである。したがって、チャネル・レコードは、コンテキストに対して動的に割当てられたＲＡＭ６８−２０１の構成を保存する。チャネル・レコードの最初のエントリは、次のチャネル・レコードに対するポインタである。コンテキストが始まると、動作モードとコンテキストに対するＲＡＭ割当てを決定するために、チャネルＲＡＭがアクセスされる。コンテキストが間もなく終了する際に、更新されたチャネル情報がチャネル・レコード内に保存され、そして現在のチャネル・レコードのエントリにより指示される、次のチャネル・レコードのコンテンツの処理を続ける。チャネル・レコードには、入力データ・サンプルに関する現在のカウントと状態、符号位相情報、および時間調整についても含まれる。
【０２８１】
チャネルが初期化されると、信号処理サブシステム６８−２１３のシーケンサ６９−３１３ａ（図６９に示され、以下に説明される）は、チャネルＲＡＭ６８−２０７にアクセスし、当該特定チャネルを処理する信号処理サブシステム６８−２１３に必要なチャネル・パラメータを引き出す。シーケンサ６９−３１３ａもまた、当該チャネルを処理するために必要とされるパラメータにより、整合フィルタやコヒーレント累算器のような信号処理サブシステム６８−２１３の様々な信号処理要素（図示せず）をプログラムする。上記パラメータは、例えば、整合フィルタが処理を行う間のミリ秒数を決定する。整合フィルタが処理を終了すると、整合フィルタはシーケンサ６９−３１３ａに処理が終了したことを信号伝達し、そしてシーケンサ６９−３１３ａは次のチャネルに移る。
【０２８２】
チャネルＲＡＭ６８−２０７は、次のチャネルに対するチャネルＲＡＭの場所などを保存するリンクされたリストを含む。
【０２８３】
ＦＦＴサブシステム６８−２１５もまた、チャネルＲＡＭにアクセスし、データの処理方法を決定するシーケンサ６９−３１５ａ（図６９に示され、以下に説明される）を含む。ＦＩＦＯ２  ６８−２２３は、ＦＦＴサブシステム６８−２１５と信号処理サブシステム６８−２１３の両方に対し、コヒーレントＲＡＭ６８−２０５へのアクセスを制御する。例えば、ＦＩＦＯ２  ６８−２２３は、ＦＦＴサブシステム６８−２１５に、演算するデータがコヒーレントＲＡＭ６８−２０５内に存在する際に、そのことを知らせる。ＦＩＦＯ２  ６８−２２３はまた、信号処理サブシステム６８−２１３に、ＦＦＴサブシステム６８−２１５がまだ使用していないデータが上書きされようとしている際に、そのことを知らせる。
【０２８４】
図６９は、アービトレーション・ユニット６９−３２７を含む付加的な要素を示す信号処理部６７−１０１の一実施態様のブロック線図である。入力サンプル・サブシステム６９−３１１と信号処理システム６９−３１３は、ＦＩＦＯ１  ６９−３２１の制御下でメモリ・サブシステムまたはＲＡＭ６９−３０１にアクセスする。一実施態様では、信号処理サブシステム６９−３１３のシーケンサ機能は、ＳＳ２シーケンサ６９−３１３ａとして信号処理サブシステム６９−３１３と連結される。シーケンサ６９−３１３ａの１つの機能は、ＲＡＭ６９−３０１のチャネルＲＡＭ領域にアクセスし、チャネル・パラメータを読み出すとともに、更新されたチャネル・パラメータを、ＲＡＭ６９−３０１のチャネルＲＡＭ領域へ書き込むことである。
【０２８５】
信号処理サブシステム６９−３１３とＦＦＴサブシステム６９−３１５は、ＦＩＦＯ２  ６９−３２３の制御下でＲＡＭ６９−３０１にアクセスする。一実施態様では、ＦＦＴサブシステム６９−３１５のシーケンサ機能は、ＳＳ３シーケンサ６９−３１５ａとしてＦＦＴサブシステム６９−３１５と連結される。ＦＩＦＯ１  ６９−３２１、ＳＳ２シーケンサ６９−３１３ａ、ＦＩＦＯ２  ６９−３２３、およびＳＳ３シーケンサ６９−３１５ａは、ＲＡＭ６９−３０１にアクセスするためにアービトレーション・ユニット６９−３２７と通信する。
【０２８６】
ＳＷ６９−３１９のＲＡＭ６９−３０１へのアクセスのために、アービトレーション・ユニット６９−３２７は、中央処理装置（ＣＰＵ）ブリッジ６９−３２５を介してＳＷ６９−３１９とさらに通信する。
【０２８７】
入力サンプル・サブシステム６９−３１１は、ＲＡＭ６９−３０１へのアクセス要求をＦＩＦＯ１  ６９−３２１を介して送信し、そしてアービトレーション・ユニット６９−３２７から許可信号を受信する。許可信号が入力サンプル・サブシステム６９−３１１により受信された後、入力サンプル・サブシステムは、入力サンプル・データをどこに保存するかを示すアドレスをＦＩＦＯ１  ６９−３２１へ送信し、入力サンプル・データをＲＡＭ６９−３０１内に保存する。
【０２８８】
信号処理サブシステム６９−３１３が、入力データ・サンプルを処理することを求める場合、ＲＡＭ６９−３０１の入力サンプル領域へのアクセス要求をＦＩＦＯ１  ６９−３２１を介し送信し、アービトレーション・ユニット６９−３２７から許可信号を受信する。許可信号が信号処理サブシステム６９−３１３により受信された後、信号処理サブシステム６９−３１３は、ＲＡＭ６９−３０１からデータ・サンプルを受信する。信号処理サブシステム６９−３１３が、処理済みのコヒーレント・データをＲＡＭ６９−３０１のコヒーレントＲＡＭ領域に保存することを求める場合、要求信号をＦＩＦＯ２  ６９−３２３を介しアービトレーション・ユニット６９−３２７へ送信する。チャネル・レコードから、シーケンサ６９−３１３ａは、コヒーレント・データを保存すべき適切なアドレスを決定する。信号処理サブシステム６９−３１３は、アービトレーション・ユニット６９−３２７から許可信号を受信し、そして保存アドレスが、信号処理システムによりＲＡＭ６９−３０１へ送信される。保存されるコヒーレント・データも同様である。
【０２８９】
ＦＦＴサブシステム６９−３１５が、コヒーレント・データを処理することを求める場合、ＲＡＭ６９−３０１のコヒーレント・データ領域へのアクセス要求を、アービトレーション・ユニット６９−３２７へＦＩＦＯ２  ６９−３２３を介して送信する。要求が許可されると、アドレス（これもチャネル・レコードから分かる）はＲＡＭ６９−３０１のコヒーレント・データ領域へ送信され、コヒーレント・データはＦＦＴサブシステム６９−３１５へ読み出される。
【０２９０】
チャネルＲＡＭ領域内に信号処理部６７−１０１の演算を指令するレコードを書くために、ＳＷ６９−３１９はアービトレーション・ユニット６９−３２７を介しＲＡＭ６９−３０１へのアクセスを要求する。サブシステムの状態を示すとともに、チャネルＲＡＭ内のチャネル・レコードを介して信号処理部６７−１０１で進行中のプログラミングに対する基準情報を提供するＴＨデータ、レポート・データ、エラー・データのようなデータを読み出すため、ＳＷ６９−３１９は、アービトレーション・ユニット６９−３２７を介しＲＡＭ６９−３０１へのアクセスをさらに要求する。
【０２９１】
図７０は、一実施態様におけるアービトレーション・ユニット７０−４２７を示すとともに、ＲＡＭ７０−４０１にアクセスする、様々なエンティティへの優先順位割当てを例示するブロック線図である。ＣＰＵブリッジ７０−４２５を介し、ＲＡＭ７０−４０１へアクセスするＯＥＭプロセッサ７０−４０５は、最も高い優先順位、すなわち優先順位０を有する。これら優先順位は、より小さい数がより高い優先順位を示すように任意に指定されているが、他の指定も可能である。入力サンプル・サブシステム７０−４１１は、次に高い優先順位１を有する。入力サンプル・サブシステム７０−４１１は、ＲＦデータ・ストリームをそれ自身の制御下にない速度で受信するので、入力サンプル・サブシステム７０−４１１は、自身の処理速度を制御する他のサブシステムに比し低い能力を有し、したがってＲＡＭ７０−４０１へのアクセスに対する高い優先順位を割当てられる。
【０２９２】
信号処理サブシステム７０−４１３は、シーケンサからのアクセス要求に対し優先順位２を、ＲＡＭ７０−４０１の入力サンプル領域からＦＩＦＯＩ  ７０−４２１を介し入力データ・サンプルを読み出すためのアクセス要求に対し優先順位５を、ＦＩＦＯ２  ７０−４２３を介しＲＡＭ７０−４０１のコヒーレント・データ領域へコヒーレント・データを書き込むためのアクセス要求に対し優先順位６を割当てる。
【０２９３】
ＦＦＴサブシステム７０−４１５は、シーケンサからのアクセス要求に対して優先順位３を、ＲＡＭ７０−４０１のコヒーレント・データ領域からＦＩＦＯ２  ７０−４２３を介しコヒーレント・データを読み出すためのアクセス要求に対して優先順位４を、ＲＡＭ７０−４０１のＮＣＳ領域へＮＣＳ、ＴＨ、レポート・データを書き込むことに対して優先順位７を割当てる。
【０２９４】
図７１は、入力サンプルＲＡＭ６８−２０３へのアクセスを制御する際に発生するシグナリングのいくつかを示すＦＩＦＯ１  ７１−５２１のブロック線図である。図７１の左側を参照し、また図６８を参照すると、入力サンプル・サブシステム６８−２１１は、入力データ・サンプルを保存するために、ＲＡＭ６８−２０１の入力サンプルＲＡＭ領域６８−２０３へのアクセスを要求する。信号処理サブシステム６８−２１３は、入力データ・サンプルを読み出すために、ＲＡＭ６８−２０１の入力サンプルＲＡＭ領域６８−２０３へのアクセスを要求する。
【０２９５】
入力サンプル・サブシステム６８−２１１は、ＦＩＦＯ１  ７１−５２１へＳＳ１入力サンプル要求信号を送信し、入力データ・サンプルを書き込むことを要求する。ＦＩＦＯ１  ７１−５２１は、上記要求の受信を確認応答信号により承認する。入力サンプル・サブシステム６８−２１１は、ＦＩＦＯ１  ７１−５２１へラップ・カウント７１−５０１と開始ブロック番号７１−５０３を送信する。循環バッファ・モード（信号処理部のコールド・スタート・モードを除く動作モードにおいて適用できる）では、入力サンプルＲＡＭ６８−２０３は一杯になるまで書き込まれ、その後上書きされる。一実施態様では、入力サンプルＲＡＭ６８−２０３は最下部から最上部まで埋められる。入力サンプルＲＡＭ６８−２０３が一杯になると、上書きが最下部で始まる。入力サンプルＲＡＭ６８−２０３が一杯になって上書きが始まるごとに、ラップ・カウント７１−５０１はインクリメントする。開始ブロック番号７１−５０３は、入力データ・サンプルのブロックの開始点を示す。開始ブロック番号７１−５０３は入力サンプル・サブシステム６８−２１１からのロード信号（ＳＳ１  Ｌｏａｄ）により変更される。ロード信号は書き込み動作を開始させる。ブロックが書き込まれると、ＦＩＦＯ１はインクリメント信号によりブロック・カウント７１−５０３をインクリメントする。入力サンプル・サブシステム６８−２１１からの書き込みラインは、ブロック内では７ビット・ラインであり、ＦＩＦＯ１への書き込み中はＦＩＦＯ１へ書き込まれる。
【０２９６】
図７１の右側を参照し、また図６８を参照すると、信号処理サブシステム６８−２１３は、ＳＳ２信号処理要求信号により入力サンプルＲＡＭ６８−２０３内のデータ・サンプルへのアクセスを要求する。ＦＩＦＯ１  ７１−５２１は、確認応答信号により上記要求を承認する。信号処理サブシステム６８−２１３は、ＦＩＦＯＩ  ７１−５２１へラップ・カウント７１−５０５、開始ブロック・カウント７１−５０６、ライン番号７１−５０７を送信する。
【０２９７】
循環バッファ・モード（信号処理部のコールド・スタート・モードを除く動作モードにおいて適用できる）では、入力サンプルＲＡＭ６８−２０３は一杯になるまで書き込まれ、その後上書きされる。入力サンプルＲＡＭ６８−２０３が一杯になり、上書きが始まるごとに、ラップ・カウント７１−５０５はインクリメントする。開始ブロック番号７１−５０６は、入力データ・サンプルのブロックの開始点を示す。開始ブロック番号７１−５０６は信号処理サブシステム６８−２１３からのロード信号（ＳＳ２  Ｌｏａｄ）により修正される。ＳＳ２ロード信号は読み出し動作を開始させる。
【０２９８】
ＦＩＦＯ１  ７１−５２１はまた、オーバーフロー信号とアンダーフロー信号をシーケンサ６８−２１７へ送信する。信号処理サブシステム６８−２１３が、まだ書き込まれていない場所からデータを読み出そうとすると、アンダーフローが発生する。アンダーフローが発生すると、信号処理サブシステム６８−２１３は待つかまたは休止しなければならない。循環書き込みモードの場合は、書き込みポインタが入力サンプルＲＡＭ６８−２０３の最上部に達し、最下部へ戻り上書きを始めるが、信号処理サブシステム６８−２１３がまもなく上書きされるかまたは既に上書きされたデータをまだ読み出していない場合に、オーバーフローが発生する。入力サンプル・サブシステム６８−２１１により受信されるデータのストリーミング的性質のため、オーバーフロー状態は検知できるが回避できない。一実施態様では、オーバーフローがチャネルの処理中に発生すると、「有効な」データが再び利用可能になるまで「ごみ」すなわち無効データが処理される。チャネルが初期化中であって、しかもオーバーフローが発生すると、エラー信号がＳＷ６８−２１９へ送信され、チャネルはシャットダウンされ、そしてＳＷ６８−２１９が続行方法を決定する。
【０２９９】
ＦＩＦＯ１  ７１−５２１の最上部を参照すると、ＦＩＦＯ１は要求信号７１−５４０、アドレス（Addr）信号７１−５４２、および確認応答信号７１−５４４を用いることによりＲＡＭ６８−２０１と通信する。
【０３００】
図７２、７３、７４および７５は、実施態様の様々な動作モードに対するメモリ割当てを含む信号処理部６７−１０１の構成を例示するブロック線図である。例示された動作モードはコールド・スタート・モード、粗捕捉モード、ホット・スタート・モード及びトラッキング・モードを含む。
【０３０１】
コールド・スタート・モードは、自身の位置に関し、信号処理部６７−１０１が利用可能な情報がほとんど無いか全く無い場合に、適用可能である。例えば、ＧＰＳ衛星を最後に捕捉した位置から、はるか離れたところまで運ばれた携帯用装置内に信号処理部６７−１０１が組み付けられていると、信号処理部６７−１０１はどの衛星が目視可能か分からなくなるであろう。したがって、衛星に対し、非常に広範な低感度の探索が実行されるので大量のデータの処理が必要となる。
【０３０２】
粗捕捉モードは、信号処理部６７−１０１の位置に関しいくらかの情報が知られている場合に適切である。通常は、目視可能な衛星の少なくともいくつかについての識別情報が知られている。
【０３０３】
ホット・スタート・モードは、信号処理部６７−１０１がその位置に関し、非常に有効ないくらかの情報を有する場合、適切である。例えば、当該の信号処理部が前日にナビゲートしていた場合、半径約１００マイル内に位置決めされることがある。あるいは外部ソースがエフェメリス・データと衛星時刻を提供することもある。
【０３０４】
トラッキング・モードは、信号処理部６７−１０１がその位置について優れた情報を有し、既に捕捉した衛星を追跡（track）している場合、トラッキング・モードが適切である。トラッキング・モードでは、信号処理部６７−１０１機能の大半を停止することができるので、より少ない電力を消費する。
【０３０５】
図７２を参照すると、コールド・スタート・モードにおけるメモリ割当てを含む信号処理部６７−１０１の構成が例示されている。コールド・スタート・モードでは、コヒーレントＲＡＭ領域はない。利用可能なＲＡＭ領域は、スナップショットとして用いられる比較的大きな入力サンプル・バッファ７２−６０３、すなわちワン・ショット（one-shot）入力サンプルＲＡＭを含む。一実施態様では、入力サンプルＲＡＭ７２−６０３のサイズはおよそ１００Ｋバイトである。上述のように、入力サンプルＲＡＭ７２−６０３はワン・ショット様式で用いられる。以下に説明するように、入力サンプルＲＡＭ７２−６０３が一杯になった後、ＲＦ入力はもはや受信されず、様々なサブシステムが、入力サンプルＲＡＭ７２−６０３内のデータの演算を複数回行う。これにより、入力サンプルＲＡＭ７２−６０３が一杯になった後はＲＦ受信機を停止することができ、消費電力が低減される。
【０３０６】
入力サンプル・サブシステム７２−６１１は、ＦＩＦＯ１  ７２−６２１の制御下で入力サンプルＲＡＭ７２−６０３へ入力データ・サンプルを書き込む。信号処理サブシステム７２−６１３は、ＦＩＦＯ１  ７２−６２１の制御下で入力サンプルＲＡＭ７２−６０３から入力データ・サンプルを読み出す。信号処理サブシステム７２−６１３は入力データ・サンプルを処理し、それらをコヒーレント・データとしてＦＦＴサブシステム７２−６１５へ直接、伝送する。
【０３０７】
ＳＶ１と呼ぶ特定の衛星に対し、入力サンプルＲＡＭ７２−６０３内に保存されたデータは、可能な全発振器範囲とドップラー範囲だけでなく、ＳＶ１が有するであろうあらゆる周波数に対して再処理または再生される。入力サンプルＲＡＭ７２−６０３内の入力サンプル・データは、各衛星に対し２０回ほどは再生することができる。その後、データは、非コヒーレントな加算データを保存したバックエンド保存ＲＡＭ７２−６０９に渡される。バックエンド保存ＲＡＭ７２−６０９は、ＮＣＳデータ「スクラッチ」領域とピーク領域とを含む。スクラッチ領域は非コヒーレント・データを循環的に保存しており、コールド・スタート・モードではない他のモードで動作するチャネルと共有できる。各衛星の最大の８ピークがピーク領域内に保存される。一実施態様のバックエンド保存ＲＡＭ７２−６０９は、スクラッチＮＣＳ領域用のおよそ８Ｋバイトと、約５０のピークを保存するピーク領域用のおよそ２．４Ｋバイトとを含む。チャネルが完了すると、ＳＷ６８−２１９はピーク・リストをくまなく調べ、どのピークが信号を表す可能性があるかを判断し、これらのみを検証するために選択する。拒絶されたピークにより解放されたピーク空間は、新しいピークで埋められる。
【０３０８】
一例として、コールド・スタート・モードに対する信号処理部６７−１０１の構成はおおよそ以下の値のパラメータ、すなわち１ミリ秒のＰＤＩ、実行処理当たり４ｋＨｚの周波数有効範囲、および２８ｄｂＨｚの感度（すなわち分解能）を含んでいる。
【０３０９】
図７３は、粗捕捉モードにおける、メモリ割当てを含む信号処理部６７−１０１の構成のブロック線図である。粗捕捉モードでは、バックエンド保存ＲＡＭ７３−７０９にメモリの最大部分が割当てられており、入力サンプルＲＡＭ７３−７０３は比較的小さい。例えば、一実施態様では、入力サンプルＲＡＭ７３−７０３のサイズはおよそ１０Ｋである。入力サンプルＲＡＭ７３−７０３は短い循環バッファとして用いられる。コヒーレント・データ・サンプルを保存するコヒーレント・サンプルＲＡＭ７３−７０５はスクラッチ・バッファして用いられる。
【０３１０】
入力サンプル・サブシステム７３−７１１は、入力データ・サンプルを受信し、それらを入力サンプルＲＡＭ７３−７０３に保存する。粗捕捉モードでは、１つまたは２つの目視可能な衛星が通常は認識されている。したがって、これら既知の衛星を同時に探索することができる。信号処理サブシステム７３−７１３は、入力サンプル・データを処理し、そしてコヒーレント・サンプルＲＡＭ７３−７０５を１周波数／衛星の組合せを表わす７ミリ秒のデータで埋める。ＦＦＴサブシステム７３−７１５は、コヒーレント・サンプルＲＡＭ７３−７０５内に保存されたコヒーレント・データに演算を行い、結果として生じたＮＣＳデータをバックエンド保存ＲＡＭ７３−７０９に保存する。ＮＣＳデータに関連するピークもバックエンド保存ＲＡＭ７３−７０９に保存される。このモードでは、バックエンド保存ＲＡＭ７３−７０９はチャネル間で共有されるが、様々な領域内の「専用ＮＣＳ」メモリは、様々なチャネルからのＮＣＳデータ専用となる。ＮＣＳ１データはチャネル１用であり、ＮＣＳ２データはチャネル２用であり、以下同様である。
【０３１１】
粗捕捉モードでは、ＯＥＭプロセッサが演算されるＮＣＳデータをより多く有すると、性能が改善されるので、できるだけ多くのメモリがバックエンド保存ＲＡＭ７３−７０９に充てられる。一例として、コールド・スタート・モードに対する信号処理部６７−１０１の構成は、おおよそ以下の値のパラメータ、すなわち７ミリ秒のＰＤＩ、実行処理当たり７５０Ｈｚの周波数有効範囲、および２０ｄｂＨｚの感度を含んでいる。粗捕捉モードでは、入力サンプルＲＡＭ７３−７０３はＰＤＩより大きく、コヒーレントＲＡＭ７３−７０５はＰＤＩより大きい。本明細書では、ＰＤＩより大きいこと、または小さいことは、割当てられたメモリ空間が、ＰＤＩの期間内に処理できるデータ量を越えて保存すること、またはそれ未満で保存することを意味する。
【０３１２】
図７４は、ホット・スタート・モードにおけるメモリ割当てを含む信号処理部６７−１０１の構成のブロック線図である。ホット・スタート・モードでは、完全な符号位相探索は必要とされない。位置は、コールド・スタート・モードや粗捕捉モードの場合よりはるかに認識されている。例えば、時刻の不確実性はおよそ１マイクロ秒である。位置の不確実性はセルラー・ネットワークにおけるセル・サイトの半径であろう。ある支援情報が、初期の位置不確実性を狭めるために利用できることもある。
【０３１３】
ホット・スタート・モードでは、入力サンプルＲＡＭ７４−８０３は比較的短い循環バッファである。例えば、入力サンプルＲＡＭ７４−８０３は５Ｋ〜２０Ｋのメモリである。ホット・スタート・モードでは、入力サンプル・サブシステム７４−８１１は入力データ・サンプルを受信し、それらを循環バッファ様式で入力サンプルＲＡＭに保存する。信号処理サブシステム７４−８１３は入力サンプル・データを処理し、それをコヒーレントＲＡＭ７４−８０５に保存する。このモードでは、コヒーレントＲＡＭ７４−８０５は個々の衛星用の小さな専用領域を多数含む。さらに、コヒーレントＲＡＭ７４−８０５は、ホット・スタート・モード以外のモードでは、様々なチャネルにより同時に用いることができるスクラッチ・パッド、すなわちスクラッチ部分を含む。既に説明したように、スクラッチ・パッド・データは、スクラッチ・パッド領域の使用可能な任意の部分に１チャネル毎に書き込まれ、その後、別のチャネル（同じチャネルでもよい）が上記スクラッチ・パッド領域に書き込む際に上書きされる。その一方、専用領域は１つのＳＶに関連するデータだけを書き込むか、または上書きすることができる。
【０３１４】
個々の衛星に対し、コヒーレントＲＡＭ７４−８０５内の領域を専用化することにより、より小さな入力サンプル・バッファ７４−８０３を可能にするとともに、比較的大きなＰＤＩをさらに実行する能力を可能にする。このモードでは、入力サンプルＲＡＭ７４−８０３はＰＤＩより小さくてもよい。ＦＦＴサブシステム７４−８１５は、コヒーレントＲＡＭ７４−８０５からのコヒーレント・データを処理し、専用の様式でバックエンド保存ＲＡＭ７４−８０９に保存されたＮＣＳデータを出力する。すなわち、バックエンド保存ＲＡＭ７４−８０９は、個々の衛星に対する専用領域であるＮＣＳ１、ＮＣＳ２などに分割される。バックエンド保存ＲＡＭ７４−８０９はまた、専用ではなく、他のモードの他のチャネルにより同時に使用することができるスクラッチ部を含む。バックエンド保存ＲＡＭ７４−８０９はまた、ＳＶごとにピークを保存する専用ピーク部を含む。一例として、コールド・スタート・モードに対する信号処理部６７−１０１の構成は、おおよそ以下の値のパラメータ、すなわち１０ミリまたは２０ミリ秒のＰＤＩ、実行処理当たりの７５０Ｈｚの周波数有効範囲、および１５〜１２ｄｂＨｚの感度を含んでいる。
【０３１５】
図７５は、トラッキング・モードにおけるメモリ割当てを含む信号処理部６７−１０１の構成のブロック線図である。トラッキング・モードでは、信号処理部６７−１０１は、それ自身の位置に関し優れた情報を有しており、既に捕捉している衛星を追跡する。トラッキング・モードでは、信号処理部６７−１０１機能の大半は停止することができ、従ってより少ない電力を消費する。
【０３１６】
トラッキング・モードでは、入力サンプルＲＡＭ７５−９０３は比較的小さい。例えば、一実施態様では、入力サンプルＲＡＭ７５−９０３はおよそ２０Ｋのメモリである。入力サンプルＲＡＭ７５−９０３はＰＤＩより小さく、例えば約５ミリ秒である。入力サンプル・サブシステム７５−９１１は、入力データ・サンプルを入力サンプルＲＡＭ７５−９０３に循環バッファ様式で保存する。信号処理サブシステム７５−９１３は、入力サンプルＲＡＭ７５−９０３からの入力データ・サンプルを処理し、それらをＰＤＩより大きなコヒーレントＲＡＭ７５−９０５に保存する。コヒーレントＲＡＭ７５−９０５は、様々なモードの様々なチャネル間で同時に共有できるスクラッチ領域と、衛星ごとにコヒーレント・データを保存するための専用領域とを含む。ＦＦＴサブシステム７５−９１５は、コヒーレントＲＡＭ７５−９０５からのコヒーレント・データを処理し、バックエンド保存ＲＡＭ７５−９０９にＮＣＳデータを保存する。ＦＦＴサブシステム７５−９１５はさらに、必要に応じて追跡の調整の基準として評価し、使用されるデータ（信号上のデータ境界など）を信号処理サブシステム７５−９１３へフィード・バックする。
【０３１７】
バックエンド保存ＲＡＭ７５−９０９は、様々なモードの様々なチャネル間で同時に共有できるスクラッチ領域と、専用のピーク領域と、以下にさらに説明する様々なデータを保存するトラック履歴（ＴＨ）領域とを含む。専用のＮＣＳ領域は専用の領域に各衛星用のＮＣＳデータを保存し、専用のピーク領域は専用の領域に各衛星用のピークを保存する。
【０３１８】
トラッキング・モードは、他のモードでは保存されない追加ＴＨ出力データを保存する。このＴＨデータは様々に利用される。例えば、ＴＨは、ハードウェア・トラッキング装置（図示せず）により使用されるコヒーレント・データを含む。ハードウェア・トラッキング装置は、正しい信号が追跡されていることを確認するためにコヒーレント・データを調べる。調整は、必要に応じＳＷ６８−２１９とチャネルＲＡＭを介して行うことができる。トラッキング・モードにおいても、小さな探索窓は、追加のデータをバックエンド保存ＲＡＭ７５−９０９に選択的に保存することにより開いたままにされる。探索窓は、信号処理サブシステムに間違った信号を追跡させるかもしれない偽物の大きな信号を探すために使用される。探索窓はまた、目視可能な衛星が変化するに従って、新しい目視可能な衛星を見つけるために使用される。
【０３１９】
一例として、トラッキング・モードに対する信号処理部６７−１０１の構成は、おおよそ以下の値のパラメータ、すなわち４ミリ、５ミリ、１０ミリ、または２０ミリ秒のＰＤＩ、１００Ｈｚ〜７５０Ｈｚの実行処理当たりの周波数有効範囲、および１２〜５０ｄｂＨｚの感度を含んでいる。
【０３２０】
図７６は、どのようにしてデータが入力サンプルＲＡＭ７６−１００３内に保存されるかのいくつかの態様を示すブロック線図である。この線図は、動的に構成可能でかつ割当て可能なＲＡＭ６８−２０１の領域が、入力サンプルＲＡＭ６８−２０３にどのように割当てられるかを示す。書き込みポインタ７６−１０２０は、入力サンプルＲＡＭ７６−１００３の左側に示され、読み出しポインタ７６−１０２２は、入力サンプルＲＡＭ７６−１００３の右側に示される。透明な（クロスハッチされていない）領域として表わされる入力サンプルＲＡＭ７６−１００３の各ブロックは、入力サンプルＲＡＭ６８−２０３に対して使用される実アドレス空間である。参照符号７６−１００５で表された領域は、潜在的に有効なデータと、ハッチングで示される無効データの部分領域７６−１００７とを含む。図７６では、現在の有効データの領域は参照符号７６−１０５０で示される。領域７６−１０５０は、図示のように書き込みポインタ７６−１０２０と読み出しポインタ７６−１０２２が現在指す領域でもある。オーバーフロー状態とアンダーフロー状態は、読み出しポインタ７６−１０２２の値と、書き込みポインタ７６−１０２０の値とを比較することにより検知される。
【０３２１】
各ブロック領域７６−１００５は、無効なブロック７６−１００７を有する全アドレス空間を表す。各ブロック領域７６−１００５は同じアドレスを含む。例えば、ラップ・ポインタがアドレスの最上部に結合されると、それが該線図を上へ進むにつれアドレスは増加し続ける。１つが物理的に最下部ブロック領域７６−１００５からそのすぐ上のブロック領域７６−１００５まで進むと、１つがアドレス空間の最下部へ行く。すなわち、同じアドレス空間が繰り返し積み重ねられる。クロスハッチされた無効ブロック領域７６−１００７は、完全なバイナリ範囲のうちの、バイナリ・アドレス指定のために使用できない部分である。無効なブロック領域７６−１００７はスキップされる。
【０３２２】
入力サンプルＲＡＭ７６−１００３の右側に、有効なデータ領域７６−１０５０と、所与の書き込みポインタ７６−１０２０に対しアンダーフロー状態とオーバーフロー状態が発生するであろう領域とを含む様々な領域が示される。
【０３２３】
図７７は、コヒーレントＲＡＭ７７−１１０５に対するオーバーフロー及びアンダーフローの状態を例示する線図である。図６８を参照すると、ＦＦＴサブシステム６８−２１５は、コヒーレントＲＡＭ６８−２０５のアドレスの全範囲に一度にアクセスする。アドレス範囲が利用できない場合、ＦＦＴサブシステム６８−２１５はアンダーフロー状態で停止する。図７７の線図は、アドレス範囲へのアクセスを要求されたコヒーレントＲＡＭ７７−１１０５におけるアンダーフロー及びオーバーフローの状態を示す。図７７の左側にはオーバーフローが例示される。長方形７７−１１０７は、ｗｒａｐ＝ｎとラベルを付けられた領域で現在使用されるＦＦＴサブシステム６８−２１５のアドレス範囲を定義する。コヒーレントＲＡＭ７７−１１０５に対する全アドレス範囲は、以前に図７６と入力サンプルＲＡＭ７６−１００３を参照して説明したように、積み重ねられて、繰り返される。これは図７７のラップ（wrap）番号により表わされる。左側に示されるＳＳ２＿ｔｏｐＴ１ポインタが、ＦＦＴサブシステム６８−２１５（ＳＳ３）がそこからデータを読み出そうとしている領域に書き込もうとするとオーバーフローに達する。ＦＦＴサブシステム６８−２１５（ＳＳ３）が読み出そうとする領域にＳＳ２＿ｔｏｐ１ポインタが達すると、ＦＦＴサブシステム６８−２１５は停止される。オーバーフローは、（ＳＳ２の最上部アドレス）＝（ＳＳ３の最下部アドレス）の時発生する。コヒーレントＲＡＭへのアクセスはＦＩＦＯ２  ６８−２２３を介して制御可能なので、ＦＦＴサブシステム６８−２１５を停止することができる。実際のＲＦ入力は制御できないので、入力サンプルＲＡＭ６８−２０３に対する制御はほとんどできない。
【０３２４】
図７７の右側はアンダーフロー状態を示す。長方形１１０９は、ｗｒａｐ＝ｎとラベルを付けられた領域で現在使用されるＦＦＴサブシステム６８−２１５のアドレス範囲を定義する。ｓｓ２＿ｂｏｔｔｏｍは、ＦＦＴサブシステム（ＳＳ３）６８−２１５が必要とするアドレス範囲の最上部に達していない。必要な範囲はまだ「一杯」となっていない。アンダーフローは、（ｓｓ２最下部アドレス）＜（ｓｓ３最上部アドレス）の時発生する。
【０３２５】
図７８は、トラッキング・モードのような２経路−高分解能モードにおけるコヒーレントＲＡＭ１６８−２０５に対するオーバーフロー及びアンダーフローの状態を例示する線図である。２経路モードでは、データはｓｓ２＿ｂｏｔｔｏｍからｓｓ２＿ｔｏｐまで書き込まれる。その後、該全範囲におけるデータは、最下部に戻り、該範囲の最下部から最上部までデータを再処理することにより再使用される。ＦＦＴサブシステム６８−２１５はいくつものブロックのデータを使用し、したがって、全ブロックが使用可能になるのを待ってからデータを読み出して処理することを説明した。２経路モードでは、このことはまた、信号処理サブシステム６８−２１３について当てはまる。２経路モードでは、信号処理システム６８−２１３は、全ブロックまたは全アドレス範囲へのアクセスを、一度に必要とするものとして扱われる。従って、次に、このモードでは、信号処理サブシステム６８−２１３がアクセスしようとする領域の最上部が、ＦＦＴサブシステム６８−２１５がデータを読み出そうとする領域の最下部に達するとオーバーフローが発生する。信号処理サブシステム６８−２１３は長方形領域７８−１２１１全体へ書き込む。この書き込み動作は、実質的には蓄積であり、第１のパスで最下位ビット（ＬＳＢ）が該範囲の最下部から最上部まで書き込まれ、第２のパスで最上位ビット（ＭＳＢ）が該範囲の最下部から最上部まで加えられる。
【０３２６】
図７８の右側は、２経路−高分解能モードにおけるアンダーフロー状態を示す。長方形７８−１２０９は、ｗｒａｐ＝ｎとラベルを付けられた領域で現在使用されるＦＦＴサブシステム６８−２１５のアドレス範囲を定義する。長方形７８−１２１３は、ｗｒａｐ＝ｎとラベルを付けられた領域で現在使用される信号処理サブシステム６８−２１３のアドレス範囲を定義する。ＳＳ３ｔｏｐ＿Ｔ１がＳＳ２＿ｂｏｔｔｏｍＴ１を追い越すと、アンダーフローが発生する。すなわち、ＦＦＴサブシステム６８−２１５が、信号処理サブシステム６８−２１３が書き込んでいる場所より上の場所を読み出そうとするとアンダーフローが発生する。
【０３２７】
アンダーフローまたはオーバーフローの決定は、信号処理サブシステム６８−２１３とＦＦＴサブシステム６８−２１５のアドレス・ポインタを比較することを含む。信号処理サブシステム６８−２１３とＦＦＴサブシステム６８−２１５へのアクセスは、異なるチャネル間で時分割される。アドレス・ポインタが比較される際は、信号処理サブシステム６８−２１３とＦＦＴサブシステム６８−２１５において単一のチャネルが動作しているかどうかを知る必要がある。信号処理サブシステム６８−２１３とＦＦＴサブシステム６８−２１５の両方が同じチャネルにおいて同時に動作していれば、「ライブ」アドレス・ポインタが比較される。信号処理サブシステム６８−２１３とＦＦＴサブシステム６８−２１５の両方が、同じチャネルにおいて同時に動作していない場合は、（チャネルＲＡＭ６８−２０７からの）保存されたポインタが比較される。例えば、図７７を参照すると、信号処理サブシステム６８−２１３とＦＦＴサブシステム６８−２１５の両方が同じコヒーレント・バッファ領域でアクティブであれば、保存されたアドレス・ポインタの代わりにライブ・アドレス・ポインタが使用される。
【０３２８】
いくつかの実例では、コヒーレントＲＡＭ６８−２０５および／またはバックエンド保存ＲＡＭ６８−２０９が複数のチャネル間で共有される。このことは、複数のコヒーレントＲＡＭと複数のバックエンド保存ＲＡＭを効果的に有するものと見なすことができる。これにより、複数のチャネルが、同じメモリ領域内で連続してコヒーレントに累算できる。すなわち、メモリを共有する様々なモードがあり、例えば１つのモードではコヒーレントＲＡＭは、コンテキストの継続期間の間はチャネル専用であり、一方別のモードでは、コヒーレントＲＡＭは様々なチャネル間で共有される（チャネルはコンテキストの期間中、特定のサブシステムを使用する）。しかしながら、信号処理サブシステム６８−２１３とＦＦＴサブシステム６８−２１５が同一の共有コヒーレントＲＡＭにアクセスしようとする場合は、ライブ・アドレス・ポインタが使用される。信号処理サブシステム６８−２１３は、コヒーレントＲＡＭに関するベース・アドレス・ポインタを調べることにより、同じコヒーレントＲＡＭ領域が使用されているかどうかを知る。
【０３２９】
図７９は、複数のチャネル間で共有される単一のコヒーレントＲＡＭの例を例示するブロック線図である。これは、比較的大きなメモリ領域がコヒーレントＲＡＭに割当てられているが、信号処理システムは特にメモリを制限されている場合の、メモリ利用の好適なモードである。図７９の例は、円で囲まれた番号１〜３を示すラベルを付けられた３つの異なる時点におけるコヒーレントＲＡＭ７９−１３０５を示す。時点１をまず参照すると、コヒーレントＲＡＭ７９−１３０５ａは最下部から最上部まで書き込まれる。チャネル１用領域とチャネル２用の部分的な領域が示される。信号処理サブシステム６８−２１３（ＳＳ２）は、「ｓｓ２  書き込む」の矢印により示されるように、チャネル１データをチャネル１領域に書き込む。信号処理サブシステム６８−２１３がそれを書き込んだ後、ＦＦＴサブシステム６８−２１５（ＳＳ３）はチャネル１の領域からデータを読み出す。信号処理サブシステム６８−２１３がチャネル１データの書き込みを終了すると、チャネル２領域へ移動し、チャネル２データを書き込み始める。参照符号７９−１３０５ａにより示される、物理的なコヒーレントＲＡＭ領域が一杯になると、信号処理サブシステムは、コヒーレントＲＡＭ領域の最下部に移り上書きを始める。これは矢印７９−１３００により示される。この矢印７９−１３００は、時点２においてコヒーレントＲＡＭ７９−１３０５ｂの最下部にチャネル２データを書き込み続ける際の信号処理サブシステム６８−２１３の経路を示す。
【０３３０】
時点２では、チャネル２データが書き込まれ、信号処理サブシステムは「チャネル３」を示すラベルを付けられた領域内にチャネル３データを書き込み始める。チャネル３データは残りのコヒーレントＲＡＭ領域には適合しないので、時点３において信号処理サブシステム６８−２１３はコヒーレントＲＡＭ領域の最下部に移り、矢印７９−１３０１により示されるように、以前のチャネル２データに上書きを始める。すでに説明したように、ＦＦＴサブシステム６８−２１５が、信号処理サブシステム６８−２１３がまだ書き込んでいないデータを読み出そうとすることにより信号処理サブシステム６８−２１３に追いつくと、ＦＦＴサブシステム６８−２１５は停止されるか、またはアンダフローエラー状態が発生する。
【０３３１】
一実施態様では、図７９に例示されるように共有コヒーレントＲＡＭモードを使用するためには、いくつかの条件が満たされなければならない。例えば、コヒーレントＲＡＭを共有するチャネルは、異なる大きさのＰＤＩを有してもよいが、同じ大きさのＴ１を有さなければならない。信号処理サブシステム６８−２１３は、コンテキストを出る前に、１つのコンテキストのＰＤＩを完全に書き込まなければならない。共有コヒーレントＲＡＭを使用する各サブシステムは、それ自身の保存されたポインタで開始しなければならない。一実施態様では、ポインタはコヒーレントＲＡＭ自身の指定された領域内に保存される。共有コヒーレントＲＡＭを出ると各チャネルはそれ自身の保存されたポインタを更新する。
【０３３２】
他の実施態様では、コヒーレントＲＡＭ領域はまた、指定の物理メモリ領域をコールド・スタート・モードのバックエンド保存ＲＡＭと共有してもよい。これは可能である。というのは、コールド・スタート・モードではバックエンド保存ＲＡＭが一杯になってピークがそのデータから決定され、当該データはもう不要になるという意味でバックエンド保存ＲＡＭは「使い捨て」ＲＡＭであるからである。この場合、コヒーレント・データが使用された後、もしくは処理された後は、指定されたメモリ領域はＮＣＳデータ用に使用されなければならない。この場合、ＮＣＳデータはコヒーレントＲＡＭ領域に書き込まれるが、コヒーレント・データ・ポインタはＮＣＳの使用により更新されない。ＦＦＴサブシステムがそのメモリ領域外のデータを処理する可能性を回避するために、コヒーレント・データとＮＣＳデータ用に指定された共有領域は、２ＰＤＩ分のデータ未満でなければならない。
【０３３３】
図８０は、割当てられたコヒーレント・データ・メモリ領域、すなわちコヒーレントＲＡＭ内にデータを保存する、様々なモードを例示するブロック線図である。図８０の左側で、第１のコヒーレントＲＡＭ保存モード０では、コヒーレントＲＡＭ８０−１４０５ａは、信号処理サブシステム６８−２１３により最下部から最上部まで１度に１つのＰＤＩずつ書き込まれる。コンテキストは任意の時点で完了できる。
【０３３４】
コヒーレント保存モード１では、信号処理サブシステム６８−２１３は、コヒーレントＲＡＭ８０−１４０５ｂに、ＰＤＩの偶数ハーフチップ（ｅｖｅｎ  ｈａｌｆ−ｃｈｉｐ）を書き込み、次にＰＤＩの奇数ハーフチップ（ｏｄｄ  ｈａｌｆ−ｃｈｉｐ）を書き込む。当該コンテキストが終了すると、別のコンテキストからのデータの保存が、偶数ハーフチップとその後の奇数ハーフチップを用いて続けられる。コヒーレントＲＡＭ８０−１４０５ｂの書き込みは最下部から始まり最上部まで続く。
【０３３５】
コヒーレント保存モード２では、信号処理サブシステム６８−２１３は、コヒーレントＲＡＭ８０−１４０５ｃ内に、１つのコンテキストに対して、複数のＰＤＩの偶数ハーフチップと複数のＰＤＩの奇数ハーフチップとを交互に保存する。次に、信号処理サブシステムは「コンテキスト」ラインから、別のコンテキスト内にデータを保存し続ける。特定のチャネルが信号処理サブシステム６８−２１３を所有するコンテキスト中に、当該コンテキストラインは、データが信号処理サブシステム６８−２１３によりどこに保存されるかを示す。
【０３３６】
コヒーレント保存モード３では、信号処理サブシステム６８−２１３は、コヒーレントＲＡＭ８０−１４０５ｄ内に、第１の周波数（ｆｒｅｑ  ０）に対する複数のＰＤＩの偶数ハーフチップを、次にｆｒｅｑ  ０に対する複数のＰＤＩの奇数ハーフチップを保存する。次に、信号処理サブシステム６８−２１３は、次の周波数（ｆｒｅｑ  １）に対する複数のＰＤＩの偶数ハーフチップを保存し、次にｆｒｅｑ  １に対する複数のＰＤＩの奇数ハーフチップを保存し、以下同様である。
【０３３７】
コヒーレント保存モード４では、信号処理サブシステム６８−２１３はコヒーレントＲＡＭ８０−１４０５ｅ内に、Ｔ１  ０に対するすべてのコヒーレント・データを、次にＴ１  １に対するすべてのコヒーレント・データを保存する。最後のＴ１に対するデータが保存されるまで、保存はこのようにして継続される。保存されるＴ１の数は、ソフトウェアにより予め定義される。コヒーレント保存モード４は、衛星のデータ・ストリームのデータ・ビット端の検出を容易にするために様々な符号オフセットが保存されるビット同期モードで有用である。コンテキストの保存はどこで終了してもよい。
【０３３８】
図８１は、バックエンド保存ＲＡＭの割当てられた領域内にデータを保存する様々なモードを例示するブロック線図である。図示のように、ＮＣＳモード０では、ＦＦＴサブシステム６８−２１５（ＳＳ３）は、非コヒーレント・データをＮＣＳ領域内に保存し、特定のチャネルに対するピーク・データをピーク・エリア内に保存する。図示のように、ＰＤＩの終わりに、ピーク・データの保存は新しいピーク領域に移る。一実施態様では、バックエンド保存ＲＡＭ８１−１５０５ａはピーク・エリア内に２つのピーク位置を有するが、他の実施態様では２つ以上を有することができる。
【０３３９】
ＮＣＳモード１では、図示のようにＦＦＴサブシステム６８−２１５（ＳＳ３）は、非コヒーレント・データを、バックエンド保存ＲＡＭ８１−１５０５ｂのＮＣＳ領域内に保存し、関連するピーク・データをバックエンド保存ＲＡＭ８１−１５０５ｂのピーク・エリア内に保存する。上記ピークは、ＮＣＳデータが更新されると更新される。
【０３４０】
ＮＣＳモード２では、バックエンド保存ＲＡＭ８１−１５０５ｃは、スクラッチ・バッファ領域として使用される。図示のように、ＦＦＴサブシステム６８−２１５（ＳＳ３）は、非コヒーレント・データをバックエンド保存ＲＡＭ８１−１５０５ｃのＮＣＳ領域内に保存し、ピーク・データをバックエンド保存ＲＡＭ８１−１５０５ｃのピーク・エリア内に保存する。ピーク・データはそれぞれのＰＤＩの終わりに更新されるが、書き込みポインタはＮＣＳデータの終わりに進められる。ＮＣＳ保存モード２はスクラッチ・モードであるので、ＮＣＳデータは、例えばハーフチップを基準として、周波数を基準として、等で上書きされる。
【０３４１】
ＮＣＳモード３では、図示のように、ＦＦＴサブシステム６８−２１５（ＳＳ３）は、Ｔ１を基準にして非コヒーレント・データをバックエンド保存ＲＡＭ８１−１５０５ｄのＮＣＳ領域内に保存し、ピーク・データをバックエンド保存ＲＡＭ８１−１５０５ｄのピーク・エリア内に保存する。ピーク・アドレス位置を含むピーク・データは、それぞれのＰＤＩの終わりに更新される。矢印は、領域の最上部に達した際に書き込みポインタが移動する方向を示す。ＮＣＳモード３は、衛星のデータ・ストリームのデータ・ビット端の検出を容易にするために様々な符号オフセットが保存されるビット同期モードにおいて有用である。
【０３４２】
ＮＣＳモード４では、図示のように、ＦＦＴサブシステム６８−２１５（ＳＳ３）は、非コヒーレント・データの奇数および偶数ハーフチップをバックエンド保存ＲＡＭ８１−１５０５ｅのＮＣＳ領域内に保存し、ピーク・データをバックエンド保存ＲＡＭ８１−１５０５ｅのピーク・エリア内に保存する。１つの奇数ＰＤＩと１つの偶数ＰＤＩとがコンテキストごとに保存される。偶数および奇数ＰＤＩデータが保存された後、ピーク値は更新される。ピーク・アドレス位置は各ＰＤＩの終わりに更新される。矢印は、領域の最上部に達した際に書き込みポインタが移動する方向を示す。
【０３４３】
例えば図６８に示すように、トラック履歴（ＴＨ）データはバックエンド保存ＲＡＭ６８−２０９のＴＨ領域内に保存される。図８１のＲＡＭ８１−１５０５ｆは、トラック履歴保存の１つのモードを示す。図示のように、トラック履歴（ＴＨ）はＴＨ領域内に保存され、レポート情報（ＩＮＦＯ）はＩＮＦＯ領域内に保存される。ＴＨデータは実際のコヒーレント・データである。ＩＮＦＯデータはレポート情報を含む。レポート情報は、コヒーレントなトラック履歴データを識別するとともに、処理されたＰＤＩの数、時間タグ等を示すＴＨレポートのような様々なレポートを含む。バイアス合計は、すべてのＰＤＩに対するバイアスの積分和である。ノイズ合計は、すべてのＰＤＩに対するノイズ振幅の積分和である。別のレポートは、コンテキスト切り替え時に保存されるコンテキスト・レポートである。コンテキスト・レポートは時刻タグ、処理済みＰＤＩの数、バイアス合計、ノイズ合計などを含む。
【０３４４】
図８１のＲＡＭ８１−１５０５ｇは、トラック履歴保存の別のモードを示す。図示のように、トラック履歴（ＴＨ）はＴＨ領域内に保存され、レポート情報（ＩＮＦＯ）は、ＩＮＦＯ領域内にＴ１を基準に保存される。ＴＨデータは、個別のＴ１に対する実際のコヒーレント・データである。ＩＮＦＯデータはレポート情報を含む。レポート情報は、（例えば位相オフセットと符号オフセットにより）コヒーレント・トラック履歴データを識別するとともに、処理済みＰＤＩの数、時刻タグなどを示すＴＨレポートを含む様々なレポートを含む。バイアス合計は、すべてのＰＤＩに対するバイアスの積分和である。ノイズ合計は、すべてのＰＤＩに対するノイズ振幅の積分和である。別のレポートは、コンテキスト切り替え時に保存されるコンテキスト・レポートである。コンテキスト・レポートは時刻タグ、処理済ＰＤＩの数、バイアス合計、ノイズ合計などを含む。バックエンド保存ＲＡＭ８１−１５０５ｇのトラック履歴保存モードは、衛星のデータ・ストリームのデータ・ビット端の検出を容易にするために様々な符号オフセットが保存されるビット同期モードにおいて有用である。
【０３４５】
図８０と図８１の保存モードは、シーケンサ６８−２１７によってチャネルＲＡＭ６８−２０７内に保存されたチャネル・パラメータにより指示される。
【０３４６】
図８２は、様々な動作モードにおけるＲＡＭ保存の様々なモードを例示する線図である。同線図の左側で、入力サンプルＲＡＭ８２−１６０３は、入力サンプル・サブシステム（ＳＳ１）により入力データ・サンプルで埋められる。前に説明したように、入力サンプルＲＡＭは循環モード、またはワン・ショット・モードで埋めることができる。信号処理サブシステム（ＳＳ２）８２−１６１３は、入力サンプルＲＡＭ８２−１６０３からデータを読み出し、そのデータを処理する。信号処理サブシステム８２−１６１３は、信号処理システムの動作モードと構成に従い、いくつかの可能なデータ経路８２−１６０４、８２−１６０８、８２−１６１０の１つへコヒーレント・データを出力する。
【０３４７】
信号処理サブシステム８２−１６１３の出力経路を再び参照すると、出力経路８２−１６０４は、コヒーレントＲＡＭ８２−１６０５の共有スクラッチ領域８２−１６３０への経路を表す。スクラッチ領域８２−１６３０は、ＳＶごとに１回埋められる。チャネルは、それ自身のコヒーレントＲＡＭを維持しない。このことはチャネルが以前の位置にかかわらず、毎回スクラッチ領域に書き込み（以前のチャネル・データに上書きし）、そして終了することを意味する。スクラッチ領域８２−１６３０用に指定されたＲＡＭの物理的領域も、バックエンド保存ＲＡＭ（コールド・スタート・モード用）とコヒーレント・スクラッチＲＡＭ（他のすべてのモード用）との間で交互に切り替えることができる。
【０３４８】
出力経路８２−１６０８は、コヒーレントＲＡＭ８２−１６０５のＳＶ専用コヒーレント・データ領域への経路を表す。コヒーレント・データは、各ＳＶに対し、８２−１６３０ａ領域の最下部ＳＶ１データから始まり、８２−１６３０ｎ領域のＳＶｎデータで終わる循環的な様式で保存される。これは、例えば各チャネルがそれ自身のコヒーレントＲＡＭを維持し、以前抜け出たのと同じ場所でコヒーレントＲＡＭに入る場合に適用可能であろう。ＳＶ専用領域８２−１６３０もまた、時にはスクラッチ領域として使用することができる。
【０３４９】
出力経路８２−１６１０は、コヒーレントＲＡＭ８２−１６０５をバイパスするＦＦＴサブシステム８２−１６１５（ＳＳ３）への直接経路を表わす。これはコールド・スタート・モードに適用可能である。コールド・スタート・モードでは、ＦＦＴサブシステム８２−１６１５は、コヒーレント・データを処理し、経路８２−１６１２を介しバックエンド保存ＲＡＭ８２−１６０９へＮＣＳデータを送信する。
【０３５０】
ここで、ＦＦＴサブシステム８２−１６１５の右の領域を参照すると、バックエンド保存ＲＡＭ８２−１６０９の様々な構成が表されている。同線図の最も右側の円で囲まれた数字は、様々なタイプまたはモードのＮＣＳの保存を示す。同線図の最下部の保存モード１は、各チャネルがそれ自身の専用のＴＨおよび非コヒーレント・データ保存領域を含む。ＦＦＴサブシステム８２−１６１５は、経路８２−１６１６ａ〜８２−１６１６ｎを介し、バックエンド保存ＲＡＭ８２−１６０９の個々のチャネル領域へデータを送信する。チャネル専用のバックエンド保存ＲＡＭ領域８２−１６１８ａ〜８２−１６１８ｎは、ピーク、ピーク情報、ビット同期データを含むＮＣＳデータ、およびトラック履歴データを含む。
【０３５１】
保存モード２を参照すると、各ＮＣＳ領域８２−１６２０ａ〜８２−１６２０ｎは、それ自身の対応するピーク領域を有する。ＦＦＴサブシステム８２−１６１５は、共有スクラッチ・コヒーレントＲＡＭ８２−１６３０からＮＣＳ領域８２−１６２０へ、経路８２−１６１４ａを介しデータを送信する。また、経路８２−１６１４に対しても適切な代替ＮＣＳ保存モードは、保存モード３である。保存モード３において、チャネル間で共有される単一のスクラッチ領域８２−１６２２と、経路８２−１６１４ｂを介したいくつかの専用ピーク領域８２−１６２４ａ〜８２−１６２４ｎとが存在する。
【０３５２】
保存モード４は、複数のＮＣＳ領域８２−１６２６ａ〜８２−１６２６ｎを含み、各々がそれ自身の対応するピーク領域を備えるという点で保存モード２に類似している。ＦＦＴサブシステム８２−１６１５は、経路８２−１６１２ａを介しバックエンド保存ＲＡＭ領域８２−１６２６内に、ビット同期データ、ピーク、およびピーク情報を含むＮＣＳデータを保存する。経路８２−１６１２に対しても適切である代替ＮＣＳ保存モードは保存モード５である。保存モード５においては、チャネル間で共有される単一のスクラッチ領域８２−１６２８と、経路８２−１６１２ｂを介したいくつかの専用ピーク領域８２−１６３０ａ〜８２−１６３０ｎとが存在する。
【０３５３】
デジタル信号処理部６７−１０１の制御方法と装置のさらに詳細な説明を以下にする。デジタル信号処理部における信号処理動作の順序付けを制御するシーケンサについて、図６８のシーケンサ６８−２１７とデジタル信号処理部６７−１０１とを参照して説明した。別の実施態様では、信号処理サブシステム用のシーケンサは、信号処理サブシステムに連結されており、ＦＦＴサブシステム用のシーケンサ機能は、ＦＦＴサブシステム連結されている。そのような実施態様を図６９に示す。図８３〜図９３とそれらに関する説明は、上記のようなタイプの実施態様のいずれか、または図示されない代替実施態様に適用できる。前に説明したように、シーケンサは、ソフトウェアによりプログラムされたチャネルＲＡＭからデータを読み出す。チャネルＲＡＭは、デジタル信号処理部６７−１０１のようなデジタル信号処理部の現在の状態に関する情報を保存する。チャネルＲＡＭはまた、様々なハードウェア要素の構成がどのようにすべきかを含む、信号処理のどんな態様が次に発生しようとしているかについての情報を保存する。
【０３５４】
図８３は、一実施態様におけるチャネルＲＡＭ、およびそれと通信する要素を例示するブロック線図である。同線図の右側と左側の破線は、チャネルＲＡＭとシーケンサとの間（同線図の左側）、およびチャネルＲＡＭとデジタル信号処理部６７−１０１のようなデジタル信号処理部の他の様々な要素との間（同線図の右側）の通信を概念的に示す。同線図における諸要素の相対位置、および破線に特別な意味はない。例えば、実際には、シーケンサは、図示のサブシステム群のいずれかと一緒に配置できるか、または、一部が１つのサブシステム２（ＳＳ２）と一緒に配置され、かつ一部がサブシステム３（ＳＳ３）と一緒に配置できるであろう。異なる要素の他の任意の相対配置も可能である。前に説明したように、ＳＳ２は信号処理サブシステムを示し、ＳＳ３はＦＦＴサブシステムを示す。
【０３５５】
チャネルＲＡＭは、シーケンサ、信号処理サブシステム、ＦＦＴサブシステム、コヒーレント・データに割当てられたＲＡＭの一部分、ＮＣＳデータに割当てられたＲＡＭの一部分、およびトラック履歴（ＴＨ）やピーク等のデータに対し割当てられたＲＡＭの他の部分へデータを送信し、かつ、それらからデータを受信する。
【０３５６】
チャネルＲＡＭは、レコード０からレコードＮまでラベルを付けられた複数のチャネル・レコードを保存する。チャネル・レコードのそれぞれは、ワード０からワードＮまでラベルを付けられた複数のデータ・ワードを含む。一実施態様では、各チャネル・レコードはおよそ６８〜２５６バイトのデータを含む。各チャネル・レコードのワード０は、読み出すべき、または、書き込むべき次のチャネル・レコードへのポインタを含む。ポインタは、あるチャネル・レコードから別のチャネル・レコードへ移動するために使用される。また、チャネル・レコードは、可能なすべての動作モード、実行中の様々なタイプの信号処理、現在のカウントと状態、入力サンプルに関する符号位相と時刻調整を含む。この情報は、図示の様々な要素へ信号として送信され、処理を制御したり、あるいはエラー状況を伝えたりする。
【０３５７】
シーケンサは、チャネル・レコードのワード０から開始し、コンテンツを「実行する」。チャネル・レコードのコンテンツ（ワード０からワードＮまで）は、どこからデータを得るべきか、そしてどこへデータを書き込むべきかを示す、全ての関連するメモリ領域内のアドレスへのポインタを含む。シーケンサは、信号処理サブシステムとＦＦＴサブシステムのどちらがチャネルＲＡＭにアクセスするかを指示する。信号処理サブシステムとＦＦＴサブシステムは、個別の実行スレッドとして走るが、完全に独立しているわけではない。例えば、信号処理サブシステムは、ＦＦＴサブシステムを使用するためのデータを生成する。以下にさらに説明するように、サブシステムの１つが他方のはるか先まで実行してはならない、または他方のはるか後を実行してはならない。
【０３５８】
チャネル・レコードの最終ワード（ワードＮ）の読み出しは、コンテキストの完了に対応する。コンテキストが完了すると、完了したコンテキストにより更新された情報が、現在のチャネル・レコード内に保存され、シーケンサは、現在のチャネル・レコードのワード０において指示されるレコードへ移動する。
【０３５９】
コヒーレント・データに割当てられたＲＡＭ領域は、コヒーレント・データ以外に、状態情報とさらなるポインタなどのパラメータを含むバッファ・ヘッダを保存する。信号処理サブシステムとＦＦＴサブシステムは、ヘッダからそれぞれのチャネル特有の状態を読み出す。例えば、サブシステムは、最後にどこで信号処理を出たか、またはどれだけの量のサンプルを処理することになっているかを判断することができる。パラメータは１つのチャネルから次のチャネルへ渡されるので、これらのパラメータをコヒーレントＲＡＭ領域のヘッダに保存することが便利である。例えば、信号処理サブシステムが、次のチャネルのための複数のデータ・ブロックを配置して終了した場合、ＦＦＴサブシステムは、該複数のブロックをどこで読み出すべきかを認識していなければならない。一実施態様では、既知数のブロック（例えば７個）が常にチャネル用に保存される。当該データ・ブロックの対象となるサブシステムが入って来ると、サブシステムは７個のデータ・ブロックを確保し、そして出て行く際にさらに７つのデータ・ブロックが準備できていることをコヒーレントＲＡＭ領域のヘッダに書き込む。
【０３６０】
図８３のシーケンサによる、例えばデジタル信号処理部６７−１０１といった信号処理部の制御は、構成要素間の通信と、セマフォ・ワードと割り込み信号を使用するソフトウェアを含む。信号処理部の制御の態様の１つは、信号処理サブシステム（ＳＳ２）、ＦＦＴサブシステム（ＳＳ３）、およびメモリまたはＲＡＭを含む、ハードウェア・リソースを使用しなければならない様々なチャネルの順序付けである。図８５は、左側にＳＳ２処理、右側にＳＳ３処理、そして２つのサブシステムの間に「制御区域」を示す。「時刻」から「１」までのラベルを付けられたバブルは、サブシステムのそれぞれに対する処理エポックの段階を表現する。処理エポックの間、チャネルはサブシステムを所有する。処理エポックの終わりで、かつ次の処理エポックの開始前に、シーケンサはいくつかの決定を行う。この決定はとりわけ、どのチャネルが処理用サブシステムを所有するか、どのサブシステムが様々に割当てられたＲＡＭ領域へのアクセス、およびＲＡＭアクセスのためのアドレス位置を有するかを含む。
【０３６１】
制御区域内には、ＳＳ２とＳＳ３用のチャネルＲＡＭポインタが示されている。チャネルＲＡＭポインタとは、ＳＳ２とＳＳ３のそれぞれに対するバッファ・ベース・ポインタと、チャネル・ポインタとを含む。バッファ・ベース・ポインタは、コヒーレントＲＡＭにおける実際の位置を表わす。チャネル・ポインタは、チャネルＲＡＭ内に保存されたポインタである。図８５に示すように、ＳＳ２ベース・ポインタは、ＳＳ３ベース・ポインタと比較され、ＳＳ２チャネル・ポインタは、ＳＳ３チャネル・ポインタと比較される。例えば、ＳＳ２内の「チャネル１」がＳＳ２に入る際、そのチャネル・ポインタと「チャネル２」のチャネル・ポインタとを比較する。これは、ラッピング規則を参照し、以下に説明されるように、１つのサブシステムが別のサブシステムに重なることを回避するためである。
【０３６２】
また制御区域内には、ＳＳ２とＳＳ３それぞれのためのハードウェア・レジスタが示されている。各サブシステムに対し「アクティブ」レジスタと「休止」レジスタがある。これらのレジスタは、サブシステムがアクティブであること、サブシステムが処理を休止しなければならないことを示す信号ビットをそれぞれ保存する。
【０３６３】
シーケンサは、信号処理サブシステムがＦＦＴサブシステムに重なること、またはその逆を回避するラッピング規則を実行する。シーケンサはまた、アンダーフローとオーバーフロー状態を回避および／または検知する。アンダーフロー、オーバーフロー、およびラッピング規則は、前述されており、以下でより詳細に説明される、順序付けと制御の態様である。
【０３６４】
ＦＦＴサブシステム（ＳＳ３）は、以下のように様々な状況下でアンダーフロー検知を実行する。ＳＳ３が入る際、信号処理サブシステム（ＳＳ２）がメモリ領域内に存在する場合は、ＳＳ３はライブＳＳ２ポインタを使用する。ＳＳ２がこのメモリ領域内にまだ存在する限り、ＳＳ２は、ＳＳ２  Ｔ１メモリ空間（ＳＳ２ＢｏｔｔｏｍＴｌＲＥＧ）の最下部である場所にライブ・ポインタを連続的にロードする。ＳＳ２が上記メモリ領域を出ると、ＳＳ３は、その場所ＳＳ２ＢｏｔｔｏｍＴ１Ｒｅｇにおいて最後に保存されたポインタを使用するよう切り替わる。
【０３６５】
ＳＳ２は、ＳＳ３が出るまでチャネルに再び入ることはできない。
【０３６６】
ＳＳ３が入る際にＳＳ２がバッファ内に存在しない場合、ＳＳ３は保存されたＳＳ２ポインタを読み出し、それをＳＳ２ＢｏｔｔｏｍＴ１Ｒｅｇへロードする。次に、ＳＳ３は保存されたＳＳ２ＢｏｔｔｏｍＲｅｇまで処理し、そして出る。
【０３６７】
信号処理サブシステム（ＳＳ２）は、以下の様々な状況下でオーバーフロー検知を実行する。ＳＳ２が入る際にＳＳ３がメモリ領域内に存在しなければ、ＳＳ２は保存されたＳＳ３バッファ・ポインタを読み出し、それをＳＳ３ＢｏｔｔｏｍＴ１Ｒｅｇ内へロードする。ＳＳ２は命じられる限りの数のＴ１を処理し、メモリ空間がなくなるとオーバーフローのために停止する。ＳＳ３が上記メモリ領域に入ると、ライブＳＳ３ポインタが使用される。ＳＳ３が上記メモリ領域を出ると、ＳＳ３が別のチャネルを有する同じメモリ領域に戻るまでは最後に保存されたＳＳ３ＢｏｔｔｏｍＴ１Ｒｅｇポインタが使用される。
【０３６８】
ＳＳ２が入る際にＳＳ３がバッファ内に存在する場合、ＳＳ２は、ＳＳ３が出るポイントまでライブＳＳ３ポインタを使用し、そして最後に保存されたＳＳ３ＢｏｔｔｏｍＴ１Ｒｅｇポインタへ切り替わる。ＳＳ２は、命じられる限りの数のＴ１を処理し、メモリ空間がなくなるとオーバーフローのために停止する。ＳＳ３が上記メモリ領域に入ると、ライブＳＳ３ポインタが使用される。ＳＳ３が上記メモリ領域を出ると、最後に保存されたＳＳ３ＢｏｔｔｏｍＴ１Ｒｅｇポインタは、ＳＳ３が別のチャネルを有する同じメモリ領域に戻るまで使用される。
【０３６９】
図８４は、ＳＳ２とＳＳ３との相互作用におけるラッピング規則を例示する線図である。同図の一番上の円で囲まれた数は、期間の順序を示す。それぞれの水平方向の破線間には、その特定の期間におけるチャネルが存在する。
【０３７０】
期間１を参照すると、ＳＳ２はチャネルに入るが、このことは、信号処理サブシステムがチャネルを所有し、チャネルに対するデータを処理するために使用されていることを意味する。ＳＳ２は、オーバーフロー状態が存在するかどうかを判断するために、コヒーレントＲＡＭ領域内に保存されたＳＳ３ポインタを使用する。
【０３７１】
ラッピング規則によれば、まずＳＳ３がチャネル内に存在すれば、ＳＳ２は、ＳＳ３がチャネルを出るまで入ることができない。ＳＳ３がチャネル内に存在し、かつＳＳ２がチャネル内に存在しないと、ＳＳ３は、当該チャネルに対するコヒーレントＲＡＭ内のすべてのデータ（ＳＳ２が当該チャネルのデータを処理した最後の時からＳＳ２により保存されたデータ）を処理し、そして当該チャネルのすべてのデータが処理されると出る。
【０３７２】
期間２に示すように、ＳＳ２がチャネル内に存在すると、ＳＳ３（ＦＦＴサブシステム）が、当該チャネル用の演算を行うべきコヒーレント・データを有する場合は、ＳＳ３はチャネルに入ることができる。ラッピング規則によると、ＳＳ３は、ＳＳ２がチャネルを出るまでチャネルを出てはならない。ＳＳ２とＳＳ３が両方ともチャネル内に存在するので、ＳＳ２はオーバーフロー状態が存在するどうかを判断するために、ライブＳＳ３ポインタを使用する。
【０３７３】
前に説明したように、ＳＳ２チャネルＲＡＭベース・ポインタは、シーケンサにより読み出され、レジスタ内にロードされ、そしてラッピングを回避するために対応するＳＳ３ポインタと比較される。ＳＳ２がチャネル内にあり、かつＳＳ３が同じチャネル内にあれば、ＳＳ３側のシーケンサは（ＳＳ２が同じチャネル内に存在するので）ＳＳ３が出ることができないことを認識する。一方、コヒーレントＲＡＭのベース・ポインタは、データ処理のファーストイン・ファーストアウトを実施する。ＳＳ３は、ＳＳ３がチャネルに入るか、または出ることができるかというよりむしろ、ＳＳ３が処理するに十分なデータをＳＳ２が作成したかどうかに関心を持つ。ＳＳ２は、ＳＳ２が未処理データに上書きしないように、ＳＳ３が十分なデータを処理したかどうかに関心を持つ（これはオーバーフローおよびアンダーフロー状態の回避および／または検知である）。
【０３７４】
図８４を再び参照すると、期間３では、ＳＳ２はチャネルに対するデータを処理し終えて、チャネルを出る。ＳＳ３はＳＳ２がチャネルを出たポイントまでチャネルに対するデータを処理する。期間４において、ＳＳ２は再びチャネルに入る準備ができているが、ＳＳ３が出るまでそうしてはならない。
【０３７５】
期間５では、ＳＳ３が出たので、ＳＳ２は再びチャネルに入る。期間６では、ＳＳ２は処理を終了したのでチャネルを出る。ＳＳ３がチャネルからの処理すべきデータをもはや有さない場合は、ＳＳ３がチャネルに入る必要はない。したがって図８４は、１つ以上の特定のチャネルからのデータが、サブシステムにより相互に織り込まれた方式か、または時分割方式でどのように処理されるかを例示する。
【０３７６】
シーケンサにより実行されるラッピング規則は、信号処理部の全体制御の一部を規定する。制御のその他の部分は（例えば、図６９に示すように）ＦＩＦＯ２により規定される。一実施態様では、ＦＩＦＯ２は、ＳＳ３により読み出されたデータをＳＳ２が保存する循環バッファである。ＳＳ２はＴ１からＴ２へとＦＩＦＯ２を埋める。ＳＳ３は、読み出しとデータ処理を始める前に、完全なＰＤＩ（プログラムされたＴ１の数）が使用可能となることを要求する。ＰＤＩにおけるＴ１の数は、ＦＦＴサブシステムのＦＦＴ要素（図示せず）が要求するものにより決定される。ＦＦＴは、様々な数のＴ１について演算を行うように構成可能である。例として、ＦＦＴが５サンプル、１６ポイントのＦＦＴで構成された場合、データを読み出し始める前に、ＦＦＴは５つのサンプルすなわち完全な５つのＴ１を必要とする。ＦＩＦＯ２とラッピング規則の組合せが、信号処理サブシステムとＦＦＴサブシステム間のフローを制御する。
【０３７７】
信号処理サブシステム（ＳＳ２）は作成されるデータ量、すなわちどれだけの量のデータを作成すべきかを制御する。ＳＳ２は、各コンテキストに関し、一定のデータ量を作成するようにプログラムされる。ここでコンテキストは、チャネルがＳＳ２に入ったことを意味し、当該コンテキストはＳＳ２を出ると終了する。したがって、特定のコンテキストでは、ＳＳ２は数ミリ秒間実行するようにプログラムされ、処理するためにプログラムされたミリ秒間が終了するまで、ＦＩＦＯ１からデータを読み出す。
【０３７８】
ラッピング規則
【０３７９】
図８４に例示されたシーケンサのラッピング規則は、次のように記述することができる。
【０３８０】
１．ＳＳ２が処理したチャネルは相互に重なってはならない。
【０３８１】
２．ＳＳ３が現在当該チャネルに関しアクティブな場合、ＳＳ２はチャネルに入って（アクティブになって）はならない（さもないとＳＳ２はＳＳ３状態に「重なる」）。
【０３８２】
３．ＳＳ２が、現在当該チャネルに関しアクティブな場合、ＳＳ３は、チャネルを出てはならない（例えば、ＳＳ３の処理は、ＳＳ２の状態に従う必要があるかもしれず、ＳＳ２がアクティブな場合、データが利用可能になるとＳＳ３はそれを処理する）。
【０３８３】
４．ＳＳ２は、処理するようにプログラムされたミリ秒の間処理し（ＳＷ修正部分を含む）、そしてＳＳ２の処理が完了するまで当該チャネルに留まる。
【０３８４】
５．ＳＳ３は、そのバッファ（コヒーレントＲＡＭ領域）内で利用可能なだけのＴ１を処理する。ＳＳ３は、ＳＳ２がアクティブでなければ、保存されたＳＳ２バッファ・ポインタまで、ＳＳ２がアクティブであれば、ＳＳ２が完了するポイントまで処理を行う。
【０３８５】
６．待機セマフォまたは待機フラグにより、ＳＳ２とＳＳ３が処理を続けることを回避できる。例えば、ＳＳ２は、「ＳＳ３コンテキスト完了」または「ＳＳ３  ＰＤＩ完了」により停止することができ、ＳＳ３は「ＳＳ３  ＰＤＩ完了」により停止することができる。
【０３８６】
ラッピング規則を適用する際、チャネルが等しいかどうかを判断するためにチャネルＲＡＭポインタが使用される。ＳＳ２とＳＳ３が同一のコヒーレントＲＡＭ領域内に存在するかどうかを判断するためにコヒーレントＲＡＭポインタと「アクティブ」フラグが使用される。共有コヒーレントＲＡＭ領域を使用することは、２つの異なるチャネルが同一のコヒーレントＲＡＭ領域でアクティブであることを意味し、共有コヒーレントＲＡＭ領域はあたかも１つのチャネルだけがそれにアクセスしようとしているかのように扱われる。
【０３８７】
セマフォ・ワードと割り込み、そして信号処理部の動作を制御する際のそれらの役割について、ここではさらに詳細に説明する。図８６は一実施態様のセマフォ・ワード構造の線図である。セマフォ・ワードの構造は、信号処理サブシステム（ＳＳ２）により制御された１６ビットと、ＦＦＴサブシステム（ＳＳ３）により制御された１６ビットを含む。セマフォ・ワード構造はさらに、図６９のＳＷ６９−３１９のようなソフトウェア（ＳＷ）により制御される３２ビットを含む。ＳＷにより制御される３２ビットは、以下にさらに説明されるように、ＳＳ２とＳＳ３により制御されるビットに位置合わせされる。セマフォ・ワード構造は、ＳＷにより制御される３２ビット、およびＳＳ２とＳＳ３により制御されるビットの両方に位置合わせされる３２のマスク・ビットをさらに含む。セマフォ・ワード構造は、他のワードのビットと位置合わせされない有効／休止ビットをさらに含む。
【０３８８】
上述のように、セマフォ・ワードは、フラグのやり取りを有効にすることにより、相互には同期していないＳＳ２、ＳＳ３、およびＳＷ間の通信を容易にする。シーケンサ（例えばＳＳ２シーケンサ）が初期化されると、シーケンサは、ＳＳ３またはＳＷフラグの何れかに対するセマフォ・ワードを読み出す。セマフォ・ワードは、シーケンサによりどの処置が行われるべきか、あるいは行われるべきでないかを判断する情報を提供する。図８７は一実施態様におけるセマフォ・ワードの構成を示す。個々のビットの意味はビット・ラベルにより示される。「セマフォ前半」、「セマフォ後半」とラベルを付けられた３２ビットは、図８６のＳＳ２ビット、ＳＳ３ビット、ＳＷビットから構成される６４ビットに対応する。３２個の割り込み有効化ビットは図８６の「マスク」ビットに対応する。各チャネルに対し、図８７に示すようなセマフォ・ワードがある。
【０３８９】
図示のように、セマフォ・ビットは、大部分は重複する。すなわち、特定の意味を有するＳＳ２ビットは、対応するＳＳ３ビットと、対応するＳＷビットとを有する。ＳＳ２、ＳＳ３、ＳＷ間のメッセージ通信は、対応する意味を有するハードウェア（ＨＷ）ビットとＳＷビットとのＸＯＲ及び／又はＡＮＤの実行を含む。ＨＷは信号処理サブシステム（ＳＳ２）とＦＦＴサブシステム（ＳＳ３）を含む。メッセージ通信は２方向に存在する。１方向では、ＨＷはＨＷイベントが発生したことをＳＷに知らせる。命令のもう一方の方向では、ＳＷはＨＷに行為を実行させる命令を送る。ビットはセマフォ「フラグ」として機能する。例として状態セマフォを用いると、ＨＷがイベントについてＳＷに通知したい場合、ＨＷは適切なビットの現在の状態を変化させる。２つの対応するビットの初期開始状態は同じであって、０または１のいずれかである。ビットの状態がＨＷにより変化されると、２つのビットのＸＯＲは１になる。こうしてＳＷがセマフォ・ワードを調べる際に、ＳＷはＸＯＲ結果が１であるのでＨＷがフラグを設定したということが分かる。ＳＷは、対応するビットの状態を、その制御下で変化させることにより応答する。当然ながら、これにより２つのビットの状態を再び同じにし、こうして２つのビットに対するＸＯＲ結果を０にし、フラグをクリアする。ＨＷフラグ情報に対するＳＷの応答は、フラグの意味によって、確認応答、命令、リセットまたは初期化として解釈することができる。
【０３９０】
もう一方の方向では、ＳＷは、特定の意味のビット対に対するＸＯＲ結果を０にすることにより命令を作成する。一例は１００ＭＵＴレポートを作成する命令である。上記命令を受信すると、ＨＷはＸＯＲ結果をもう一度１にするためその制御下でビットを変化させることにより確認応答する。
【０３９１】
図８７を参照し、命令と確認応答の例として１組のビットを用いると、セマフォ前半のワードは、ソフトウェア制御されたｓｓ２ＡｄｊＥｎｄＭｓＳＷビット（円で囲む）を含む。セマフォ後半のワードは、ＨＷ制御された対応部分のｓｓ２ＡｄｊＥｎｄＭｓＨＷ（同じく、円で囲む）を含む。ｓｓ２ＡｄｊＥｎｄＭｓＳＷビットは、ＨＷに「通常のミリ秒数を処理する代わりに、追加のミリ秒を処理する」ように伝える。この特別の場合、ＳＷは、その制御下で上記ビットの状態を変化させ、２つの対応ビットのＸＯＲを０にすることによりＨＷへの命令を作成する。ＨＷが上記命令を完了した後、ＨＷは、そのｓｓ２ＡｄｊＥｎｄＭｓＨＷビットの状態を変化させ、再びＸＯＲを１にすることにより確認応答を送信する。
【０３９２】
状態フラグの例として、セマフォ前半ワードは、ｆｉｆｏｌＯｖｒｆｌｗＳＷ（円で囲む）を含む。セマフォ後半ワードは、ＨＷ制御の対応部分であるｆｉｆｏｌＯｖｒｆｌｗＨＷ（同じく円で囲む）を含む。ＦＩＦＯ１のオーバーフロー状態が発生すると（ＳＳ２がデータを読み出す前に、ＳＳ１がそのデータの一部分に上書きしたことを意味する）、それは、ＨＷ制御下でビットの状態を変化させ、そして適用可能ならば、対応する割り込みを生成することにより、セマフォ・ワードを用いて通信する。
【０３９３】
図８７の第３行のビットは、特定チャネルに対する割り込み用の割り込み有効化マスク・ビットを含む。割り込みはこのセマフォ・ワードに関連する。ＨＷが状態セマフォ・ビットの設定を望むイベントを有する場合、ＨＷもまた割り込みを生成することができる。その割り込みはＳＳ２から出るラインであるから、ＳＷはどのチャネルが割り込みを生成したかを判断する。上記ラインは、割り込みが生成された時に、どのチャネルがサブシステム内に存在したかを示さない。ＳＷは設定ビットを検知するために、全てのチャネルのセマフォ・ワードを読み出すことにより、これを行う。割り込みについては、以下にさらに詳細に説明する。
【０３９４】
先ほど説明したＸＯＲメッセージ通信に従って動作しない特定ビットがいくつかある。その代り、これらのビットは３つのビットのＡＮＤとして動作する。ＳＳ２に対しこのような３ビット、ＳＳ３に対しこのような３ビットが存在する。これらビットは「オン」ビットと呼ばれ、当該チャネルが処理されるか否かを示す。例えば、ＳＳ３は３つの「オン」ビットを有し、その１つはＳＳ２により制御され、その１つはＳＳ３により制御され、その１つはＳＷにより制御される。それらのソースのいずれの１つも、その制御下でビットの状態を変化させることにより、「オン」ビットに「オフ」の意味を持たせること、すなわち、「オン」ビットをオフにすることができるであろう。サブシステムが初期化すると、まずサブシステムは休止すべきかどうかをセマフォ・ワードに基づいて判断する。次に、サブシステムは、サブシステムが処理を始めてよいかどうかを「オン」ビットに基づいて判断する。「オン」ビットがオフになると、サブシステムは出て行き、次のチャネルに対するポインタをロードする。
【０３９５】
「オン」ビットをオフにする１つの状態は終了状態である。例えば、ＳＳ３が処理すべき数のＰＤＩを処理すると、ＳＳ３はそれ自身の「オン」ビットと、制御するＳＳ２の「オン」ビットとをオフにする。次いでＳＳ２はそれ自身の「オン」ビットをオフにして、ＳＳ２が次にそのチャネルに来ると、それは「スキップ」される。
【０３９６】
図８８は、ＨＷ制御のセマフォ、ＳＷ制御のセマフォおよび「休止」セマフォ（これは図８６の「有効／休止」ブロックに対応する）を含む、ＳＳ２、ＳＳ３、およびＦＩＦＯ１のセマフォのリストである。
【０３９７】
休止セマフォはエラーを含む多くの状況により有効にされ得る。チャネルを完了するＳＳ２又はＳＳ３によりチャネルを完了することにより、あるいはＰＤＩの完了により、休止セマフォが有効にされると、ＳＳ２はその休止まで処理して、停止（stall）する。
【０３９８】
休止セマフォに対する反応として、ＳＷは必要とされるすべての処理を実行し、そして適切なパラメータを更新する。ＳＷは完了したセマフォをクリアするために、チャネル・セマフォ・ワードのＳＷ部を更新する。ＳＳ２の休止が有効になると、ＳＷはＨＷ休止レジスタをクリアする。ＳＷは休止を促進する際にベース・チャネル・ポインタを読み出す。ＳＷは休止レジスタもクリアする。
【０３９９】
セマフォ・ワードが更新されて、もとのチャネル・バッファに保存されると、割り込みが生成される。一実施態様では、割り込みは、アービトレーション・ユニットによるセマフォの確認応答が書き込まれると有効になる。チャネル完了セマフォとＰＤＩセマフォは、チャネルが完了するか、またはＰＤＩが完了する度に切換えられる。チャネル完了セマフォは、セマフォ・ワード内のチャネル・アクティブ・ビットがクリアされると書き直される。
【０４００】
図示のように、様々な割り込みは様々な要素の制御下におかれる。タイマ割り込みはＳＳ１により制御される。これらは、順序付けよりもむしろタイミングにより関連する。特に、タイマ割り込みは、ＦＩＦＯ１に書き込まれた入力データのタイミングに関連する。
【０４０１】
前述のように、オーバーフロー状態は、１つのサブシステムが、別のサブシステムがまだ処理する機会のないデータに上書きを始めることを含む。オーバーフローは割り込みを生じさせるエラー状態である。ＳＳ２の制御下にある割り込みの１つは「ＦＩＦＯ１オーバーフロー」である。ＦＩＦＯ１オーバーフローがＳＳ２の開始時に発生する場合、割り込みはチャネルをシャットダウンする効果を有する。チャネルはセマフォ・ワードを更新し、そして出る時に割り込みフラグを設定する（有効の場合）。
【０４０２】
ＦＩＦＯ１オーバーフローがＳＳ２処理中に発生する場合、チャネルはローカルのオーバーフロー・フラグを設定するとともに処理を継続し、そして結果として生ずるデータは「ごみデータ」として認識される。チャネルの処理が終了すると、チャネルはセマフォ・ワードを更新し、そして出る時に割り込みフラグを設定する（有効の場合）。チャネルはローカルのオーバーフロー・フラグをクリアする。
【０４０３】
サブシステムがチャネル用のデータを処理し終えるときも、割り込みが生成される。例えば、ＳＳ２がチャネルに対するデータを処理し終えると、チャネルはセマフォ・ワードを更新し、そして出る時にＳＳ２チャネル完了割り込みを設定する。ＳＳ３がチャネルに対するデータを処理し終えると、チャネルはセマフォ・ワードを更新し、そして出る時にＳＳ３チャネル完了割り込みを設定する。
【０４０４】
ＳＳ３がＰＤＩ分のデータの処理を終了し、チャネルもまた完了すると、Ｓ３３はチャネルを出る時にＳＳ３チャネル完了割り込みとＰＤＩ完了割り込み（有効の場合）の両方を設定する。ＳＳ３がＰＤＩの処理を終了したが、チャネルは完了していない場合、ＰＤＩ完了割り込みのみが設定され、セマフォ・ワードはもとのチャネル・バッファに書き込まれ、そしてＳＳ３は停止する（有効の場合）。
【０４０５】
シーケンサ機能の別の役目は、終了状態を決定することである。例えば、シーケンサは、ＳＳ２とＳＳ３が必要な量の処理を完了したかどうかを判断する。図８９は、ＳＳ２とＳＳ３用の終了状態のリストである。ＳＳ２から見た終了状態は、ＦＩＦＯ１のオーバーフローである。これは、まだＳＳ２によって処理されていないデータへの上書きをＳＳ１が行ったときに発生する。この場合、ＳＳ２はそれ自身の「オン」ビットと、それが制御するＳＳ３の「オン」ビットもシャットオフする。そして、ＳＳ２はまた、何が発生したかをＳＷに知らせる割り込みを送信する。それ以降は、上記順序付けがオーバーフローが発生したチャネルに達するごとに、それはスキップされる。これにより、ＳＷが「オン」ビットを再プログラムする前に、中に入ってチャネルＲＡＭを再プログラムする時間をＳＷに与える。
【０４０６】
ＳＳ３の側から見ると、ＳＳ３がＰＤＩカウントに達すると、または処理経路にオーバーフローが存在すると、または「早期終了イベント」が発生すると終了状態が発生する。ＳＳ３がＰＤＩカウントに達すると、それにとって利用可能なデータの処理が終了する。ＳＳ３はＰＤＩが利用可能である場合にそれを基にデータを処理することを思い出してほしい。ＳＳ３は特定の数のＰＤＩに対し動作するようにプログラムすることができる。適用可能な数のＰＤＩが処理され、ＳＳ３により非コヒーレントに累算されると、ＳＳ３は終了状態を知らせるためにセマフォ・ワード内のビットを設定する。
【０４０７】
あるパラメータを越えることにより早期の終了を引き起こすことができる。例えば、コヒーレントＲＡＭおよび非コヒーレント累算に関連するオート・スケール値が存在する（オート・スケール値は、非コヒーレント加算に関連する指数である）。その値がある範囲を越えると、またはそれが非常に急速に増大すると（大きな指数値に達するのにどれだけ多くの加算が必要となるかということは、これがどのように決定されるかということである。比較的大きな指数値に達するのに比較的少ない加算しか必要でなければ、その信号は非常に強力と言える）、それは強力信号を示すので１００個のＰＤＩすべてを数える必要はない。停止してＳＷを入れることができる。
【０４０８】
ＳＷはまた、チャネルを明確にシャットダウンするために、終了の命令を送ることができる。終了状態を作り出すことは、チャネル間でのＲＡＭの共有を考慮するので、ＳＷがチャネルを部分的にシャットダウンするための明確な方法である。ＦＩＦＯ２から当該データを取り出す前に、チャネルをシャットダウンすることは望ましくないであろう。ＦＩＦＯ２からのデータを実際に処理する必要はない。次のチャネルがこの共有ポインタを調べるので、当該領域を越えてそのポインタを進めるということが重要である。これにより、処理するはずであった場所を越えて、ＳＷがそのポインタを進めた後に限り、ＳＷはＳＳ３にシャットダウンするよう命令を送ることができる。ＳＳ３は、ＳＳ２がＳＳ３用バッファにどんなデータを入れたとしても処理するはずであり、このデータは、当該コンテキストを出る前にＳＳ３によって取り出されなければならない。
【０４０９】
終了と早期終了は、偶数および奇数の各半分の周波数を考慮する。例えば、１０ミリ秒のＳＳ２処理は、１０ミリ秒の奇数ハーフチップ、次に１０ミリ秒の偶数ハーフチップ、次に複数周波数ステップに対し、それぞれ１０ミリ秒を意味するものとする。したがって、ＳＳ３は、ＳＳ２がどんなデータをメモリに入れたとしてもメモリから取り出さなければならない。ＳＳ３は、データが奇数か偶数か、どれだけのデータ量が存在するかを認識している。従って、ＳＳ３は、期待すべきデータの全てを取り出し、そして終了する。したがって、終了状態の具体的な特徴は、その時発生している処理のタイプにいくぶん依存している。
【０４１０】
これまで、信号処理部６７−１０１のような信号処理部における動作の順序付け、構成要素間のセマフォ・ワード・メッセージ通信の説明、割り込み、および終了状態を説明した。以下はシーケンサ要素とそれらの機能の実施態様の説明である。
【０４１１】
図９０は、信号処理サブシステムについての、図６９のシーケンサ６９−３１３ａのような、シーケンサ（ＳＳ２シーケンサと表記される）の実施態様のブロック線図である。信号処理サブシステム・シーケンサは、それを介してチャネルＲＡＭからデータを読み出す入力レジスタ、または入力ポートを含む。信号処理サブシステム・シーケンサはまた、出力レジスタまたは出力ポートを介しもとのチャネルＲＡＭにデータを書き込む。一実施態様のマスタ・コントローラは、信号処理サブシステム・シーケンサを制御する状態機械である。データは、あるアドレス・ベースによりアドレス指定される。例えば、チャネルＲＡＭに対するチャネル・ベース・アドレスがあり、そして割当てられた他の様々なＲＡＭ領域（コヒーレントＲＡＭ、ＮＣＳ  ＲＡＭ等）に対するベース・アドレスがある。ベース・アドレスは処理中のチャネル・レコードと、そのベース・アドレスに関連するチャネル・レコードへのアクセスを示す。マスタ・コントローラは信号処理サブシステム・シーケンサの動作を制御する。入力ポートは各種パラメータを引き出し、そして必要に応じ、それらをマスタ・コントローラに保存する。処理の終わりに、シーケンサは更新されたパラメータを出力ポートを介しもとのチャネルＲＡＭへ書き込む。
【０４１２】
同線図の一番上に、信号処理サブシステムを制御するために用いられるデータが示される。前に説明したように、例えば図８３を参照すると、チャネルＲＡＭは、特定モードで動作するサブシステムを構成するために必要とされるパラメータを含む。セマフォ・ワードはまた、信号処理サブシステムを制御するために使用される。セマフォ・ワードは命令と状態情報を含む。セマフォ・ワードは、信号処理サブシステム、ＦＦＴサブシステム、ソフトウェア間の通信に使用され、アクセスを必要とするすべての要素によりアクセス可能な任意のメモリ領域に保存することができる。一実施態様では、セマフォ・ワードはチャネルＲＡＭに保存される。
【０４１３】
一実施態様によるＲＡＭアドレスの生成が図９１に例示され、バッファ（すなわちＲＡＭ領域）ベース・アドレスとチャネル・ベース・アドレスのうち１つがオフセット・アドレスと組み合わせられて、信号処理サブシステム・アクセス用の実際のＲＡＭアドレス（ｓｓ２ＣｎｔｒｌＲＡＭＡｄｄｒ）をもたらすことを示す。バッファ・ベース・アドレスまたはチャネル・ベース・アドレスの選択は、マスタ・コントローラからマルチプレクサへの選択信号により行われる。
【０４１４】
図９２は図９０のシーケンサの動作を図解するフローチャートである。「初期スタート」とラベルを付された点において、ＳＳ２はリセットされる。セマフォ・ワードがＳＷにより読み取られる。判断ブロック９０−２８０２に示されるように、チャネルが休止されたら休止フラグがクリアされる。チャネルがオフでもなく休止もされないなら、チャネルは作動される。次いでＳＷは９０−２８０４においてターン・オン時間を見て、処理すべきチャネルに対して入力ＦＩＦＯ（ＦＩＦＯ１）に十分なデータがあるかどうかを判断する。もしなければ、ＳＷは次のチャネルに移行する。もしあれば、ＳＳ２は、チャネルＲＡＭ及び他のメモリ領域からデータを引き入れることを含めて初期化される。ＦＩＦＯ１及びＦＩＦＯ２もまたそのチャネルに対して初期化される。ＳＳ２は調節可能なミリ秒数間、実行される。相互相関（xcorr）処理が生じるようにプログラムされていたら、９０−２８０８に示されるように、それは偶数ハーフチップの最初の実行後に一度行われる。相互相関処理が生じるようにプログラムされていなかったら、９０−２８１０に示されるように、処理すべき周波数が更にあるか判断される。もしあれば、ＳＳ２の「位置」は入ってくるデータに対して調節され、ＳＳ２、ＦＩＦＯ１、及びＦＩＦＯ２は図示のようにそのチャネルに対して再び初期化される。
【０４１５】
処理すべき周波数がもうなければ、即ち、所望数の偶数及び奇数ハーフチップ及び周波数状態が処理されると、停止状態が保存され、シーケンサはメモリに移行してセマフォ・ワードを更新し、割り込みを有効化する。チャネルは停止され、チャネル作動に対して設定されたフラッグがリセットされる。チャネルＲＡＭベース・ポインタが更新され、９２−２８１２において図９０のマスタ・コントローラがまだオン、即ちＳＳ２がリセットされる前に行うべき処理がまだあるかどうかが判断される。マスタ・コントローラがオンでなければ、ＳＳ２はリセットされる。
【０４１６】
マスタ・コントローラがオンなら、９２−２８１４においてチャネルがラッピングのために停止されるかどうかが判断される。もしそうなら、シーケンサはその状態に留まり、ラッピング状態がもはや存在しなくなるまで、ラッピング状態をチェックする。ラッピング状態がクリアされたら、シーケンスは再びセマフォ・ワードの読み出しに戻る。
【０４１７】
判断ブロック９２−２８０２を再び参照すると、チャネルがオフなら、原則的にＳＳ２はチャネルＲＡＭポインタを更新して処理を進めることにより次のチャネルに移行する。
【０４１８】
判断ブロック９２−２８０４を再び参照すると、ターン・オン時間のチェックが、十分なデータがないことを示すと、９２−２８０６においてオーバーフロー状態が存在するかどうかが判断される。そうでない場合、チャネルは停止される。オーバーフロー状態が存在する場合、それを示すためにセマフォ・ワードは更新され、そのチャネルが停止される。
【０４１９】
判断ブロック９２−２８０８を再び参照すると、相互相関を実行すべき場合には、ＳＳ２及びＦＩＦＯ２は相互相関に対して初期化される。相互相関器が稼動して、相互相関するＳＶが更にあるかどうかが判断される。もしあれば、ＳＳ２及びＦＩＦＯ２は相互相関に対して再び初期化される。もしなければ、セマフォ・ワードが更新されて、処理は判断ブロック９２−２８１０に戻る。
【０４２０】
いくつかのパラメータがＳＳ２の「実行」を開始するときに初期化される。それらは以下のパラメータを含んでもよい。
【０４２１】
処理すべきミリ秒数
【０４２２】
搬送波加速度
【０４２３】
搬送周波数
【０４２４】
搬送波位相
【０４２５】
符号位相
【０４２６】
Ｔ１内のミリ秒カウント
【０４２７】
アドレス空間内及びラップ（wrap）内のＴ１カウント
【０４２８】
現在のＴ１のベース・アドレス
【０４２９】
現在のコヒーレント・バッファのベース・アドレス
【０４３０】
オート・スケール及び飽和フラグ、及び
【０４３１】
ＦＩＦＯ１のライン・ブロック及びラップ
【０４３２】
図９３は図６９のシーケンサ６９−３１５ａのようなＳＳ３についてのシーケンサの動作を例示するフローチャートである。概して言えば、ＰＤＩベースのデータ処理は破線の右側の動作／機能で表される。「初期スタート」とラベルを付された点において、ＳＳ３がリセットされる。
【０４３３】
セマフォ・ワードはＳＷにより読み取られる。判断ブロック９３−２９０２に示されるように、チャネルが休止されていると、休止フラグがクリアされる。チャネルがオフでもなく、休止もされていなかったら、そのチャネルは作動される。ＳＳ３及びＦＩＦＯ２がそのチャネルに対して初期化される。判断ブロック９３−２９０４において、利用可能なＦＩＦＯ２データがあるかどうかが判断される。上述したように、この判断はラッピング規則の実行の一部である。利用可能なＦＩＦＯ２データがあれば、判断ブロック９３−２９２６において、相互相関を実行すべきかどうかが判断される。そうすべきでないなら、１つのＴ１又はＰＤＩに対してＦＦＴが有効化される。ＦＦＴ処理は９３−２９０８に示されるようにＴ１が終了するまで続く。Ｔ１に対するＦＦＴ処理が終了したら、９３−２９１２に示されるように、ＰＤＩに対するＦＦＴ処理が終了したかどうかが判断される。ＰＤＩに対するＦＦＴ処理が終了したら、ＰＤＩの数、奇数及び偶数ハーフチップの数、及び周波数カウンタが更新される。ハードウェア・トラッキング・ループ（HWTL）が、図示された多数のパラメータを更新する。次いで９３−２９１４において、ＰＤＩ休止が有効化されるかどうかが判断される。もしそうでなければ、９３−２９１６において、終了状態があるかどうかが判断される。終了状態があれば、ＳＳ２及びＳＳ３に対するターン・オフ・フラグが設定される。次いで、処理は９３−２９０４に戻る。終了状態がなければ、処理は９３−２９０４に戻る。
【０４３４】
ＰＤＩ休止が有効化されると、あるいは休止フラグが設定されると、休止フラグはクリアされ、９３−２９１６において終了が検出される。
【０４３５】
９３−２９２６を再び参照して、相互相関を実行すべきなら、９３−２９１８において相互相関データが利用可能であるかどうかが判断される。もしそうでないなら、あたかも相互相関を実行すべきでないのと同じ結果となる。即ち、ＦＦＴの処理が有効化される。利用可能なデータがあれば、相互相関器とＦＦＴが有効化され、次の相互相関ポインタが読み取られる。次いで処理は９３−２９０８に戻る。
【０４３６】
９３−２９１０を再び参照すると、ＰＤＩが終了していなければ、９３−２９２０において終了状態がチェックされる。終了状態が存在すれば、処理は９３−２９０４に戻る。終了状態が存在しなければ、ＳＳ２及びＳＳ３に対するターン・オフ・フラグが設定され、次いで処理は９３−２９０４に戻る。
【０４３７】
９３−２９０４におけるＦＩＦＯ２データの利用可能性の判断を再び参照すると、もし利用可能な十分なデータがなければ、９３−２９０６においてチャネルがＳＳ２にあるかどうか、またそれが停止されているかどうかが判定される。これはラッピング規則の更なる実行である。チャネルがＳＳ２にありかつ停止されていない場合、処理は９３−２９０４に戻る。チャネルがＳＳ２になかったり、あるいはチャネルが停止されていない場合、コンテキスト・レポート、および（有効化されていれば）１００ＭＵＴ（１００ミリ秒）レポートを含む、一連のレポートが生成される。図の右側の小さな破線内にラベルを付されて示されるハードウェア・トラッキング・ループ（ＨＷＴＬ）は、反復される。停止状態が保存される。セマフォ・ワードが更新され、割り込みが有効化される。チャネルが停止され、チャネルＲＡＭベース・ポインタが更新される。
【０４３８】
ＳＳ３シーケンサのマスタ・コントローラがオンなら、９３−２９２２に示されるように、セマフォ・ワードが読み取られ、９３−２９０２において処理が続く。マスタ・コントローラがオンでなければ、ＳＳ３がリセットされる。
【０４３９】
９３−２９０２を再び参照すると、チャネルがオンでなければ、９３−２９２４においてチャネルがＳＳ３にあるかどうか、また停止されていないかどうかが判断される。チャネルがＳＳ３にない場合、あるいは停止されていない場合、チャネルがＳＳ３にあるか、停止されるまで、処理は９３−２９２４に留まる。そして、原則的には、ＳＳ３はチャネルＲＡＭベース・ポインタを更新して、次のチャネルに移行する。
【０４４０】
休止が有効化される場合、ＳＷはサブシステムが何らかの分岐点で停止して、ＳＷが入ってプログラミング又はデータ収集を変更することができることを望んでいることを知らせている。これは例えばＰＤＩに基づいてもよいし、チャネルがサブシステムに入る際でもよい。
【実施例５】
【０４４１】
一実施例のＧＰＳシステムはＳＰＳ衛星の捕捉及びトラッキングに使用する制御モジュールを含む。以下では典型的なモジュールについて説明する。ここでは次のような略語が使用される。即ち、Ｒｘは受信機であり、ＮＶＭは不揮発性メモリ（non-volatile memory）であり、ＴＴＦＦは初期測位時間（time to first fix）であり、ＡＴＸは捕捉トラッキング相互相関（acquisition track cross-correlation）である。
【０４４２】
以下では強力な信号及び中程度の信号での動作のためのアーキテクチャについてのトラッキング・システムを詳述する。以下では次のような略語が使用されるであろう。即ち、Ａｌｐｈａ、Ｂｅｔａは様々な事例において様々な値を取る包括的なフィルタ係数であり、ＳＰＳは衛星測位システムであり、ＨＷＴＬはハードウェア・トラッキング・ループであり、ＮＣＯは数値制御された発振器（Numerically Controlled Oscillator）であり、ＰＤＩは予備検出積分（Pre Detection Integration）であり、ＲＡＭはランダム・アクセス・メモリであり、Ｓ＿Ｇａｉｎはトラッキング・ループを正規化するために採用されるフィルタリングされた信号振幅推定値であり、ＳＷＴＬはソフトウェア・トラッキング・ループであり、Ｔ１はサブシステム２に対する基本時刻エポック（Basic Time epoch）であり、しきい値、しきい値１、しきい値２は、様々な時刻において様々な値を取る包括的なしきい値である。
【０４４３】
図９４は遅延回路９４−２００２及び９４−２００４、Ａｌｐｈａ乗算回路９４−２００６及び９４−２００８、及びＢｅｔａ乗算回路９４−２０１０及び９４−２０１２を含むトラッキング・ループ９４−２０００示す。定数乗算部９４−２０１４、比較回路９４−２０１６、及び加算部９４−２０１８及び９４−２０２０も示されている。
【０４４４】
トラッキング・ループ９４−２０００は符号状態への変更の正規化された進み（Early）−遅れ（late）のトリガに対する近似を記述する。Ｎは変更すべき符号状態における最下位ビット（ＬＳＢ）の数である。
【０４４５】
ＡＧＣ正規化／オート・スケールは以下により与えられる。即ち、
Ｓ＿Ｇａｉｎ（ｔ＋１）＝Ａｌｐｈａ＊Ｓ＿Ｇａｉｎ＋Ｂｅｔａ＊（｜Ｉｐ｜＋｜Ｑｐ｜）
ただし、Ｓ＿Ｇａｉｎはループ係数を正規化するために用いられており、「ｔ」は時刻インデックスである。Ｓ＿Ｇａｉｎはまた、（進み−遅れ）の出力を正規化して、ハードウェアにおける符号状態の更新を決定するために用いられてもよい。
【０４４６】
ソフトウェア・トラッキング・ループ：ＳＷＴＬは、成功した捕捉プロセスの終わりにソフトウェア制御によりＨＷＴＬと同時に作動してもよい。ＳＷＴＬは例えば、１００ｍｓの速度で動作される。一つの実施例において、ＳＷＴＬはＰＤＩ速度でのバッファされたレポートとＮＣＯ状態についてのレポートを含む。およそ１００ｍｓごとに補正を行ってＨＷＴＬを調節するために、ソフトウェアはナビゲーション処理及び付加的に外部ソースからの支援情報を用いて、より正確な誤差推定値を計算してもよい。ある場合には、ＨＷＴＬが無効化され、ＳＷＴＬが自律的に動作して、１００ｍｓとは異なる速度でハードウェアのＮＣＯに対する補正値を生成してもよい。そして、ハードウェアはより高速で割り込みを供給してもよく、そのような場合、ＳＷＴＬは１００ｍｓより速い速度で動作する。ＨＷＴＬは各チャネルに対して独立に制御ビットを用いて無効化される。
【０４４７】
ハードウェア入力：ハードウェアは例えば１００ｍｓの速度でＮＣＳバッファ及びトラック履歴（ＴＨ）バッファに入力を供給する。入力は種々のオフセットに対する各ＰＤＩでのＩとＱの相関出力、ＰＤＩに対するノイズ合計、オート・スケール値、ＰＤＩごとにサンプリングされたＮＣＯ状態、測定レポートの時刻を表す時刻マーク、等々を含んでもよい。
【０４４８】
状態初期化：以下の状態が捕捉段階からの情報を用いて初期化されてもよい。即ち、ａ）符号位相、ｂ）搬送周波数、ｃ）搬送波位相、ｄ）Ｓ＿Ｇａｉｎ（例えば振幅推定値が利用可能な場合）である。
【０４４９】
符号弁別器は、以下の式で与えられる。
Ｄ＝｜Ｅ｜−｜Ｌ｜
｜Ｅ｜＝Ａｌｐｈａ＊｜Ｅｅ｜＋Ｂｅｔａ＊｜Ｅｅ＋｜
｜Ｌ｜＝Ａｌｐｈａ＊｜Ｌｅ｜＋Ｂｅｔａ＊｜Ｌｅ＋｜
ここで、Ｅｅ及びＬｅはプロンプトからタップ１つ離れた進み及び遅れのＩ値及びＱ値であり、Ｅｅ＋とＬｅ＋はプロンプトからタップ２つ離れた進み及び遅れのＩ値及びＱ値であり、以下が成り立つ。
フィルタリングされた符号誤差＝Ａｌｐｈａ＊フィルタリングされた符号誤差＋Ｂｅｔａ＊Ｄ
【０４５０】
搬送波位相弁別器は以下の式で与えられる。
φ＝ａｒｃｔａｎ（Ｑｐ，Ｉｐ）
ここで、φは各ＰＤＩに対して計算され、ｄφはソフトウェア内に維持される。
搬送周波数弁別器は以下の式で与えられてもよい。
δｆ＝Ａｌｐｈａ＊（ｆ＋−ｆ−）＋Ｂｅｔａ＊（Ｉｐ（ｔ＋１）＊Ｑｐ（ｔ）−Ｉｐ（ｔ）＊Ｑｐ（ｔ＋１））
ここで、ｔは時刻インデックスである。
【０４５１】
上記のアーキテクチャは、例えば１００ｍｓごとにハードウェに補正値を戻して、所定の速度、例えばＰＤＩ速度でトラッキング方程式を反復してもよい。
【０４５２】
位相トラッキング・ループ方程式は以下により与えられる。
搬送波位相＋＝搬送周波数＋Ｋ１＊ｄφ＋Ａｉｄ１
搬送周波数＋＝搬送周波数速度＋Ｋ３＊ｄφ＋＋Ａｉｄ２
搬送周波数速度＋＝Ｋ５＊φ＋Ａｉｄ３
【０４５３】
周波数トラッキング・ループ方程式は以下により与えられる。
搬送周波数＋＝搬送周波数速度＋Ｋ４＊δｆ＋Ａｉｄ２
搬送周波数速度＋＝Ｋ６＊δｆ＋Ａｉｄ３
【０４５４】
符号ループ方程式は以下により与えられる。
符号位相＋＝スケール＊（搬送波位相（ｔ）−搬送波位相（ｔ−１））Ｋ７＊Ｄ＋Ａｉｄ４
【０４５５】
Ｋ７はＫｍａｘ（高帯域幅値）に初期化され、以下のように更新される。
Ｋ７（ｔ＋１）＝Ａｌｐｈａ＊Ｋ７＋Ｂｅｔａ＊符号誤差推定値
Ｋ７＞Ｋｍａｘなら、Ｋ７＝Ｋｍａｘ
Ｋ７＜Ｋｍｉｎなら、Ｋ７＝Ｋｍｉｎ
【０４５６】
トラッキング・ループ・モードの移行は、ゲインＫ１からＫ７を設定することにより制御されてもよい。ＡＧＣ正規化に対して、以下が適用されてもよい。
Ｓ＿Ｇａｉｎ（ｔ＋１）＝Ｓ＿Ｇａｉｎ＿Ｒａｔｅ＊Ｇａｍｍａ＋Ａｌｐｈａ＊Ｓ＿Ｇａｉｎ＋Ｂｅｔａ＊（｜Ｉｐ｜＋｜Ｑｐ｜）
Ｓ＿Ｇａｉｎ＿Ｒａｔｅ（ｔ＋１）＝Ａｌｐｈａ＊Ｓ＿Ｇａｉｎ＿Ｒａｔｅ＋Ｂｅｔａ＊［（｜Ｉｐ（ｔ）｜＋｜Ｑｐ（ｔ）｜）−（｜Ｉｐ（ｔ−１）｜＋（｜Ｑｐ（ｔ−１）｜）］
ここで、Ｓ＿Ｇａｉｎ及びＳ＿Ｇａｉｎ＿Ｒａｔｅは、その信号の振幅とその信号の振幅の変化率の推定値を表す。Ｓ＿Ｇａｉｎパラメータは、トラッキング・ループ方程式のゲインを正規化するために利用されてもよい。
【０４５７】
一つの実施例において、アーキテクチャはロック検出器の喪失を採用してもよい。例えば、符号ロックに対し、アーキテクチャは以下に従うレートで信号対ノイズ比（Signal to Noise Ratio）を決定してもよい。
ノイズ電力＝Ｓｕｍ（Ｉｎ＊Ｉｎ＋Ｑｎ＊Ｑｎ）
ここで、上記の合計（Ｓｕｍ）は例えば１００ｍｓの期間にわたり行われ、Ｉｎ及びＱｎはＰＤＩ速度でのハードウェア・レポートにおけるノイズ合計からのＩ及びＱ出力である。また、
信号電力＝Ｓｕｍ（Ｉｐ＊Ｉｐ＋Ｑｐ＊Ｑｐ）
ここで、上記の合計（Ｓｕｍ）は例えば１００ｍｓの期間にわたり行われ、また
信号対ノイズ比＝信号電力／ノイズ電力
フィルタリングされたＳＮＲ＝Ａｌｐｈａ＊フィルタリングされたＳＮＲ＋Ｂｅｔａ＊信号対ノイズ比＋Ｇａｍｍａ＊ＳＮＲ＿Ｒａｔｅ
ＳＮＲ＿Ｒａｔｅ＝Ａｌｐｈａ＊ＳＮＲ＿Ｒａｔｅ＋Ｂｅｔａ＊［信号対ノイズ比（ｔ）−信号対ノイズ比（ｔ−１）］
こうして、フィルタリングされたＳＮＲがしきい値より小さければ、ロックの喪失が生じたことになる。
【０４５８】
搬送波位相ロックに対し、上記のアーキテクチャはＰＤＩごとに計算された２象限アーク・タンジェント関数を用いて、フィルタリングされた位相誤差を推定してもよい。例えば、
φ＝ａｒｃｔａｎ（Ｑｐ，Ｉｐ）
フィルタリングされたφ＝Ａｌｐｈａ＊フィルタリングされたφ＋Ｂｅｔａ＊φ
こうして、フィルタリングされたφがしきい値より大きければ、ロックの喪失を宣言する。
【０４５９】
搬送周波数ロックに対し、上記のアーキテクチャはフィルタリングされた周波数誤差を推定してもよい。
δｆ＝Ａｌｐｈａ＊（ｆ＋−ｆ−）＋Ｂｅｔａ＊（Ｉｐ（ｔ＋１）＊Ｑｐ（ｔ）−Ｉｐ（ｔ）＊Ｑｐ（ｔ＋１））
ここで、δｆはＰＤＩ速度で計算される。また、
フィルタリングされたδｆ＝Ａｌｐｈａ＊フィルタリングされたδｆ＋Ｂｅｔａ＊δｆ
こうして、フィルタリングされたδｆ＜しきい値であれば、ロックの喪失を宣言する。
【０４６０】
ハードウェアに対する更新は、例えば１００ｍｓごとのソフトウェアからの入力である、ＨＷＴＬ方程式に対する支援（Ａｉｄ）の形式であってもよい。上記のアーキテクチャは以下に従ってＡｉｄを決定してよい。
ソフトウェアからハードウェアへのＡｉｄ＝ソフトウェア推定値−ハードウェア推定値
ＨＷＴＬが無効化されるときは、位相、周波数及び速度に対して、ハードウェア推定値＝０である。ハードウェアは、例えばソフトウェアが所定のハードウェア・レジスタに書き込むときに、支援を実装する。
【０４６１】
一つの実施例において、ビット同期は例えば２０〜１００ｍｓの速度で動作する。そのビット同期は、ソフトウェアにおいて実施されてもよい。
【０４６２】
上記のビット同期プロセスへの入力は、ハードウェアからの、（プログラム可能な）２０個のオフセットに対する２０ｍｓの累算（ＰＤＩ）を含んでもよい。
そのとき、入力配列ヒストグラム［２０］は２０ｍｓのＰＤＩ電力累算を含んでもよい。
【０４６３】
上記のヒストグラムは各衛星（ＳＶ）に対して以下の方程式を用いて累算されてもよい。
ＡｃｃｕｍＨｉｓｔｏｇｒａｍ［２０］＋＝Ｈｉｓｔｏｇｒａｍ［２０］
オフセット情報が利用可能であるときは、以下の方程式を用いて多数の衛星からのヒストグラムを累算する。
ＡｃｃｕｍＨｉｓｔｏｇｒａｍＭｕｌｔｉｐｌｅＳＶ［２０］＋＝ＡｃｃｕｍＨｉｓｔｏｇｒａｍ［２０＋ＳＶオフセット］
【０４６４】
次いで、上記のアーキテクチャは図９５に示される同期技術９５−２１００を用いて、同期に対するビット位置を出力する。先ず、ヒストグラムのピーク及び２番目のピークが検出される（ステップ９５−２１０２）。次いで、（（ヒストグラムのピーク＞しきい値）かつ（ヒストグラムのピーク−ヒストグラムの２番目のピーク＞しきい値））なら（ステップ９５−２１０４）、ビット同期が完了し、ビット位置が出力される（ステップ９５−２１０６）。そうでない場合、累算が続行される（ステップ９５−２１０８）。
【０４６５】
代わりのやり方として、図９６に示される同期技術９６−２２００を用いて、同期に対するビット位置を出力してもよい。先ず、アーキテクチャは例えば２０ｍｓ幅の三角形と累算されたヒストグラムの相関をとることにより、コスト関数を決定する（ステップ９６−２２０２）。次いで、コスト関数（オフセット）＝Ｓｕｍ（三角形（ｍｓ）＊累算ヒストグラム（ｍｓ−オフセット））が、２０個の値におよぶ合計を用いて決定される（ステップ９６−２２０４）。そしてコスト関数（オフセット）に対する最大値がビット同期のオフセットを提供する。［｛ｍａｘ（コスト関数（オフセット）＞しきい値｝かつ｛ｍａｘ（コスト関数（オフセット））−２番目のｍａｘ（コスト関数（オフセット））＞しきい値｝］なら（ステップ９６−２２０６）、ビット同期の成功を宣言する（ステップ９６−２２０８）。
【０４６６】
データ復調は、ソフトウェアでの実施により、例えば２０〜１００ｍｓの速度で動作してもよい。その復調はビット同期の成功の後に、入力として、ビット境界に位置合わせされた２０ｍｓの間のＩｐ及びＱｐを受け入れてもよい。その実施は以下に従って進行してもよい。即ち、搬送波位相ロックの場合、データ・ビット＝ｓｉｇｎ（Ｉｐ）。そうでない場合、データ・ビット＝ｓｉｇｎ［（Ｉｐ＋ｊ＊Ｑｐ）＊ｅｘｐ（ｊ＊搬送波位相の誤差推定値）］。ここで、ｊは複素係数である。このやり方は、搬送波位相の推定誤差が以前のビットから生成される場合において、ディファレンシャルに復号する、より一般的なケースである。
【０４６７】
フレーム同期も、ソフトウェアでの実施により、例えば２０〜１００ｍｓの速度で動作してもよい。そのフレーム同期は、ＳＶごとにバイナリ値の配列として供給される、データ復調後のビット・ストリーム上で、動作してもよい。
【０４６８】
フレーム同期は以下に従って進行してもよい。即ち、コールド・スタート−プリアンブルの同期。ビットパターンにおいてプリアンブルを識別する。所定のハンド・オーバ・ワード（ＨＯＷ）を復号する。６秒後に第２のプリアンブルを識別し、１だけずれた第２のＨＯＷを識別する。
おおよその時刻が利用可能なときは、フレーム同期は以下に従って進行してもよい。即ち、１）プリアンブルを識別する。ＨＯＷを復号する。ＨＯＷが時刻の不確実性の範囲内にある場合、フレーム同期の完了を宣言する。２）フレーム同期を検査する−上記の識別処理を繰り返して、６秒のオフセットで１だけずれたＨＯＷの変化を確認する。
【０４６９】
支援情報が利用可能であり、１つのＳＶのフレーム同期を完了したら：最初のＳＶのフレーム同期からの時刻を用いて、フレーム同期を必要とするＳＶに対する予備測位を特定し；ローカル時刻に対する問題のＳＶに対するフレーム開始を特定し；フレーム同期情報を設定する。支援ビットが利用可能なときは、その利用可能な支援ビットを用いてコスト関数を決定する。即ち、コスト関数（オフセット）＝Ｓｕｍ（支援ビット（ビット数）＊ビット・ストリーム（ビット数＋オフセット））であり、上記の合計（Ｓｕｍ）は例えば全ての利用可能な支援ビットにわたって行われる。そして、ＳＶのオフセット情報が利用可能なら、以下の方程式を用いて多数のＳＶに対してコスト関数を組み合わせる。
組み合わされたコスト関数（オフセット）＋＝コスト関数（オフセット＋ＳＶオフセット）
［｛ｍａｘ（組み合わされたコスト関数（オフセット））＞しきい値｝かつ｛ｍａｘ（組み合わされたコスト関数（オフセット））−２番目のｍａｘ（組み合わされたコスト関数（オフセット））＞しきい値｝］なら、フレーム同期完了を宣言する。
【実施例６】
【０４７０】
多くの通信システムは一つ以上の無線周波数（ＲＦ）信号に頼っている。利用可能な周波数帯域が混雑してくるにつれ、異なる通信システムにより使用される多数の無線周波数が互いに干渉し始める。異なる通信システムにおいて直面する干渉の一つのタイプは搬送波（ＣＷ）干渉であり、より一般的にはＣＷジャミングと呼ばれる。
【０４７１】
ＣＷジャミングはＣＤＭＡ携帯電話システム及び衛星測位システムのようなスペクトル拡散システムにおける干渉の原因である。スペクトル拡散通信システムは周波数スペクトルにわたって拡散する低電力信号を使用し、他の通信システムで使用される搬送波からの干渉にさらされる。ＣＷジャミングの問題は更にスペクトル拡散によりカバーされる地理的領域が全地球、例えば合衆国の全地球測位システム（ＧＰＳ）を含み得るので更に複雑である。
【０４７２】
周波数使用を規制し、無線受信機に専用回路を付加することによりＣＷジャミング信号を除去する試みが成されてきた。付加的な回路が無線受信機に含まれることにより更なる電力消費と費用をもたらすことが多い。
【０４７３】
従って、上記の欠点、及び以前に体験した他の欠点を克服するＣＷジャミング信号を識別及び除去する方法及びシステムが必要とされる。
【０４７４】
本発明によるシステムは微弱信号と共にＣＷジャミング信号を含むスペクトル拡散信号を受信できる受信機を提供する。信号はＣＷジャミング信号を識別、トラッキング及び再生させる相互相関器を用いて処理される。複製されたジャミング信号は復調後の受信信号から減算されて微弱信号が処理されるようにする。
【０４７５】
本発明の他のシステム、方法、特徴及び利点は図面及び以下の詳細な説明を調べれば当業者には明らかであり、また明らかとなるであろう。全てのそのような更なるシステム、方法、特徴及び利点はこの説明中に含まれ、また発明の範囲内にあり、また添付の特許請求の範囲により保護されるべきものと考える。
【０４７６】
先ず図９７に目を転ずれば、相互相関を使用する微弱なスペクトル拡散信号における強力信号の消去を描いたフローチャート９７−４６００が示される。ＣＤＭＡスペクトル拡散システムで使用されるようなスペクトル拡散擬似ランダム・ノイズ（ＰＲＮ）符号系列により与えられる強／弱又は近／遠の信号分離はその系列の種々の符号メンバ間の相互相関に依存する。ＧＰＳ等の衛星測位システムの場合、同じ周波数（又は符号反復速度の倍数、この場合１ＫＨｚ）の二つの信号の分離は約２１乃至２３ｄＢである。二つの信号の相対強度がこの限界以上に異なれば、微弱な方の信号は拡散符号のみを用いては区別できない。微弱な方の信号をトラッキングすべき場合、強力な方の信号の効果を除去する方法が適用されてもよい。
【０４７７】
ＧＰＳ信号における粗捕捉符号（Ｃ／Ａ）の場合、相対的に強弱のある信号間の相対的ドップラー周波数オフセットが１ＫＨｚの整数倍であるときに、相互相関効果はその最大となる。強いスペクトル拡散信号の存在の下での微弱信号のスペクトル拡散信号をトラッキングする問題に対する一般解は、微弱な方の信号からそれを除去するために強力信号干渉の全ての態様を測定あるいは計算できるという前提に基づいている。解決策はチャネルの周波数及び位相を制御する能力をもち、また所望の拡散符号を選択し、その符号の位相位置を設定する何れのマルチ・チャネル受信機においても実施できる。受信機は典型的には二つのチャネル、一つは微弱信号をトラッキングするためのチャネル、一つは干渉する強力信号をトラッキングするためのチャネルを採用する。しかしながら、強力信号の電力、符号位相及び周波数等の特性が代わりの手段により取得又は正確に推定でれば、強力信号をトラッキングするために使用されるチャネルは必要ない。
【０４７８】
図９７に一般的に示されるように、手順は９７−４６０２で開始され、強力信号が、受信機の第１のチャネル内の強力信号をトラッキングすること等により捕捉される（９７−４６０４）。チャネルは搬送波信号の位相や拡散符号と共に強力信号の信号強度の測定値を提供する。更なる強力信号（図９７には図示せず）をトラッキングするために更なるチャネルを使用してもよい。
【０４７９】
微弱な方の信号の拡散符号の符号位相はその受信された周波数及び信号位相と共に発明の属する技術において知られた方法により５０Ｈｚのナビゲーション・データ符号データ（Ｄ）に基づいて予測される（９７−４６０６）。受信機の第２のチャネルは混成の搬送波信号の受信、及び予測された微弱信号成分のトラッキング（９７−４６０８）専用である。
【０４８０】
第２の受信機チャネルは入ってくる信号と、予測された周波数と信号位相の第２の符号との相関を取る。得られた同位相及び直交位相（Ｉ，Ｑ）測定値は、微弱信号と強力信号の両方を含み、それぞれはそれらの独自の符号により拡散される。第２の信号、Ｃｏｄｅ２Ｒに対する複製符号の乗算による入ってくる信号との相関は以下の積を生じる。
【０４８１】
Ｃｏｄｅ２Ｒ＊（ｗｅａｋ２＊Ｃｏｄｅ２＋ＳｔｒｏｎｇＸ＊ＣｏｄｅＸ＋．．．）
【０４８２】
ただし、ｗｅａｋ２は微弱信号２の電力であり、Ｃｏｄｅ２は微弱信号２を発する衛星２に対する実際の符号であり、ＳｔｒｏｎｇＸ（Ｘ＝１，３，４，．．．）は強力信号Ｘの電力であり、ＣｏｄｅＸは信号に含まれる衛星Ｘに対する実際の符号である。積Ｃｏｄｅ２Ｒ＊Ｃｏｄｅ２は受信された符号２及び複製符号２の自己相関関数である。複製符号が受信された符号と整合すれば自己相関関数は１の値を有する。複製符号２と符号Ｘのこの相互相関（Ｃｏｄｅ２Ｒ＊ＣｏｄｅＸ）は混成信号から除去するために次に計算される（９７−４６１０）。
【０４８３】
符号１及び符号２は共にＰＲＮ符号系列のメンバであり、それらの自己相関及び相互相関の特性は既知である。従って、符号１の各ビットと符号２の（時間的に）対応するビットを単純に掛け算してそれらの相互相関値を作り出すことによりそれらの個々の位相の二つの符号の相互相関を計算することが可能である。二つの符号の間に相対的なドップラー周波数オフセットがあるので、符号の位相は時間経過により互いに通り過ぎて処理し、新しい相互相関関数を生成することになる。ＧＰＳシステムに対し、典型的に直面する最大のデルタ符号ドップラーは約±９ＫＨｚであり、これは秒当り６符号チップと等価であり（符号チップ当り１５４０搬送波サイクル）、従って相互相関値の最大再計算速度は大まかには秒当り６回である。
【０４８４】
最大の相互相関はゼロ周波数オフセットにおいて生じ、ピークは１０００Ｈｚの間隔で生じる。周波数オフセットがゼロから離れるにつれて相互相関の減衰がある。この減衰は周知のｓｉｎ（ｘ）／ｘ曲線に従う。１０ｍｓ測定値がトラッキング又は捕捉に使用されるなら、減衰係数はｓｉｎ（Δｆｒｅｑ＊π／１００  Ｈｚ）／（Δｆｒｅｑ＊π／１００  Ｈｚ）に等しくなる。これは約７５Ｈｚのデルタ周波数において−１０ｄＢの減衰を生じる。ｓｉｎ（ｘ）／ｘ曲線における他の局部ピーク（即ち、極小値減衰）は１５０Ｈｚ及び２５０Ｈｚにおいて生じ、減衰は−１３．５ｄＢ及び−１８ｄＢである。これは、１０ｄＢの所望の強力信号抑制に対して、ｓｉｎ（ｘ）／ｘ関数の最初のこぶ（lobe）を考慮するだけでよいことを意味する。しかしながら、更なる抑制が望まれるなら、曲線全体が考慮されてもよい。
【０４８５】
次のステップは強力信号のそれぞれに対して強力信号振幅と計算された周波数の積と時間領域（符号位相）相互相関を計算すること（９７−４６１２）を必要とする。微弱信号は最終的には混成信号からこの積を減算する（９７−４６１４）ことにより抽出され、処理は完了する（９７−４６１６）。こうして抽出された微弱信号は発明の属する技術において知られるように受信機回路において逐次処理される。
【０４８６】
各強力信号の同位相（Ｉ）及び直交位相振幅（Ｑ）はそれぞれの強力信号自身の個々の受信機チャネルにおける測定により、あるいは独立な手段による推定により得られる。強力信号は受信機の位相ロック・ループにより能動的にトラッキングされているので、強力信号の位相は０ラジアンに近いと見なされ、従ってほとんど全ての信号電力は同位相部分にある。
【０４８７】
第２の符号Ｃｏｄｅ２で変調された微弱信号ｗ２と合計された第１の符号１で変調された強力信号Ｓ１を含む信号は（Ｓ１＊ｃｏｄｅ１＋ｗ２＊Ｃｏｄｅ２）を生じる。二つの信号の合計は第２の符号の複製Ｃｏｄｅ２Ｒとの相関を取られてΣ｛Ｃｏｄｅ２Ｒ＊（Ｓ１＊Ｃｏｄｅ１＋ｗ２＊Ｃｏｄｅ２）｝を生じる。ただし、合計Σは微弱信号ｗ２を変調するために使用されるＰＲＮ符号の全てのチップを含む。符号のそれ自身との自己相関は１であり、従って、前の式はΣ｛Ｓ１＊Ｃｏｄｅ１＊Ｃｏｄｅ２＋ｗ２｝と書くことができる。ｗ２を得るためにＳ１＊Ｃｏｄｅ１＊Ｃｏｄｅ２が除去されたことが分かる。我々はＣｏｄｅ１及びＣｏｄｅ２を知っているからそれらの相互相関を容易に計算できる。これにより我々はＳ１の値を推定できるが、これは別個のチャネルで強力信号を独立にトラッキングすることにより、あるいは他の何れかの都合のよい手段により行うことができる。このＳ１＊Ｃｏｄｅ１＊Ｃｏｄｅ２の計算値は強力信号Ｓ１と微弱信号ｗ２が同じ周波数であるなら十分であろう。しかしながら、ドップラー効果や前に列挙した他の要因により二つの信号は異なる周波数で受信される。
【０４８８】
相互相関の強さがこれらの周波数間の差によりｓｉｎ（ｘ）／ｘの関係で変化することを我々は知っている。従って、我々は強力／微弱信号間の周波数差に基づいて減衰係数を計算し、それを計算された相互相関に適用してもよい。更に、強力信号が２つ以上存在する場合、減衰係数はそれぞれの強力信号に対して計算される。
【０４８９】
相互相関係数の符号依存部はＰＲＮ符号生成器の既知の相対状態から計算されて単位電力とゼロ周波数オフセットの強力信号と微弱信号の間の相互相関を予測する。この係数は、復号信号から減算される前に、対応する強力信号の振幅が掛けられ、周波数減衰に対して調節される。
【０４９０】
ＰＲＮ信号を変調するために使用される種々のＧｏｌｄ符号が全て二つの符号シーケンスＧ１及びＧ２から導き出され、この場合、二つの符号系列のビットは、選択されたＧｏｌｄ符号によってＧ１に対して数ビットずらされた後にＸＯＲ演算により組み合わされる。二値数を用いたＸＯＲ演算が数学的には±１の掛け算と等価であることは知られている。これは±１の積に関して以下の方程式で表現することを可能にするが、現実には、実施は二値数を用いたＸＯＲについてであってもよい。
【０４９１】
二つのＣ／Ａ符号間の相関は一般的に以下のように表される。即ち、
ΣＳａｔ１Ｇ１（Ｉ）＊Ｓａｔ１Ｇ２（Ｉ）＊Ｓａｔ２Ｇ１（Ｉ−ｏｆｆｓｅｔ）＊Ｓａｔ２Ｇ２（Ｉ−ｏｆｆｓｅｔ）＊ｅ−ｊΔθＩ
ここで、
Ｉ＝０乃至１０２２の範囲の加算インデックス
Ｓａｔ１Ｇ１（Ｉ）＝状態Ｉの衛星１のＧ１符号化チップの値。取り得る値は±１
Ｓａｔ１Ｇ２（Ｉ）＝状態Ｉの衛星１のＧ２符号化チップの値。取り得る値は±１
Ｓａｔ２Ｇ１（Ｉ）＝状態Ｉの衛星２のＧ１符号化チップの値。取り得る値は±１
Ｓａｔ２Ｇ２（Ｉ）＝状態Ｉの衛星２のＧ２符号化チップの値。取り得る値は±１
ｏｆｆｓｅｔ＝衛星１と２のチップ単位の時刻差
Δθ＊  衛星１と２のラジアン単位のチップ当りの位相変化
【０４９２】
差（Ｉ−ｏｆｆｓｅｔ）が０未満の場合、１０２３がその差に加算されてその値を０乃至１０２２の範囲に維持することに注意されたい。言い換えれば、符号化チップ状態を戻す関数の領域は０乃至１０２２の範囲に限定される。
【０４９３】
１０２３のビットごとの相関を計算するのに必要な計算時間は単一の制御部命令により８、１６又は３２ビット方式のＸＯＲを実行する標準の制御部命令を使用することにより加速することができる。以下は並列に８チップを計算する方法を示す。制御部のＸＯＲ演算に関し、他の都合の良いビット数に合うようにこの方式が容易に変形できることを当業者は直ちに認識するであろう。
【０４９４】
Ｇ１及びＧ２の１０２３の状態は固定記憶装置に直線的に記憶されてもよい。こうして、所望のチップのアドレスとそれに整合するのに必要なズレを計算することにより単一の制御部ロード命令を用いて８、１６、３２又は何らかの他の都合の良いビット数を迅速に収集することができる。１０２３は３１で割り切れるので３２ビットは特に便利な数である。本実施例は従って、一度に３２ビットを読み取り、Ｃ／Ａ符号の１０２３チップにわたる３３の間隔のそれぞれに対して一度にそれらの内の３１個を使用する。３１ビットの合計は８，８、８、及び７の４つの部分に分解され、７又は８ビットの合計にｅ−ｊΔθＩが掛けられる（ただし、Ｉは各部に対して７．７５チップだけ変化する）。合計の形式は以下の通り。即ち、
Σ（ｅ−ＪΔθＩ＊３１＊Σ（Ｓａｔ１Ｇ１（Ｉ＊３１＋Ｊ）＊Ｓａｔ１Ｇ２（Ｉ＊３１＋Ｊ）＊Ｓａｔ２Ｇ１（Ｉ＊３１＋Ｊｏｆｆｓｅｔ）＊Ｓａｔ２Ｇ２（Ｉ＊３１＊Ｊ−ｏｆｆｓｅｔ））＋ｅ−ＪΔθ（Ｉ＊３１＋７．７５）＊Σ（Ｓａｔ１Ｇ１（Ｉ＊３１＋Ｊ＋８）＊Ｓａｔ１Ｇ２（Ｉ＊３１＋Ｊ＋８）＊Ｓａｔ２Ｇ１（Ｉ＊３１＋Ｊ＋８−ｏｆｆｓｅｔ）＊Ｓａｔ２Ｇ２（Ｉ＊３１＋Ｊ＋８−ｏｆｆｓｅｔ））＋ｅ−ｊΔθ（Ｉ＊３１＋１５．５）＊Σ（Ｓａｔ１Ｇ１（Ｉ＊３１＋Ｊ＋１６）＊Ｓａｔ１Ｇ２（Ｉ＊３１＋Ｊ＋１６）＊Ｓａｔ２Ｇ１（Ｉ＊３１＋Ｊ＋１６−ｏｆｆｓｅｔ）＊Ｓａｔ２Ｇ２（Ｉ＊３１＋Ｊ＋１６−ｏｆｆｓｅｔ））＋ｅ−ｊΔθ（Ｉ＊３１＋２３．２５）＊Σ（Ｓａｔ１Ｇ１（Ｉ＊３１＋Ｊ＋２４）＊Ｓａｔ１Ｇ２（Ｉ＊３１＋Ｊ＋２４）＊Ｓａｔ２Ｇ１（Ｉ＊３１＋Ｊ＋２４−ｏｆｆｓｅｔ）＊Ｓａｔ２Ｇ２（Ｉ＊３１＋Ｊ＋２４−ｏｆｆｓｅｔ）））
ここで、
Ｉ＝０乃至３２の範囲の外部インデックス
Ｊ＝最初の三つの合計に対し０乃至７、最後の合計に対しては０乃至６の範囲の内部インデックス
内部合計は３１ビット全てを含む３２ビット・ワードを用い、ビット方式のＸＯＲを用いて掛け算を実行し、１ビット積を合計するためにずらして加算することにより並列に計算される。
【０４９５】
上記の方程式におけるＧ１及びＧ２符号の掛け算の全てはビット方式ＸＯＲ命令により実施されることに注意されたい。上記のアルゴリズムは正確な計算から多くとも−１７ｄＢだけ誤差があり、完成するには６０００回の制御部動作を必要とする。
【０４９６】
必要に応じて、周期的に、符号依存の相互相関係数が、小さい周波数差、即ち強弱の相互相関干渉を生じ得る周波数差を有する強力／微弱信号対の全てに対して計算される。本実施例では、強力信号はＣ／Ｎ０＞４０ｄＢのものであり、微弱信号はＣ／Ｎ０＞３０ｄＢのものである。Ｉ及びＱ測定値の１０ｍｓの積分は符号及び位相トラッキング・ループにより使用されるので、最大の「有意な」周波数差（モジュロ１０００Ｈｚ）は９０Ｈｚである。好ましい実施例において、干渉するかも知れない信号対のそれぞれに対する符号依存の相互相関係数はトラッキング及び信号処理アルゴリズムが潜在的に使用し得る測定値のそれぞれに対して計算される。例えば、トラッキング・ループにより、進んだ測定値、定時の測定値、及び遅れた測定値が使用されるならば、これらの符号整合のそれぞれに対する相関係数が計算され、表に記憶される。
【０４９７】
これらの表は、最大ドップラー差が９ＫＨｚ未満、即ち秒当り６チップ未満であるので、１０Ｈｚの速度で更新するだけでよい。相互相関表を維持する以外に、周波数差による相互相関の周波数減衰が１０Ｈｚの速度で計算される。減衰は以下のように表される。即ち、
周波数減衰＝ｓｉｎ（ΔＦ  ｍｏｄ  １０００＊π／１００）／（ΔＦ  ｍｏｄ  １０００＊π／１００）
ここで、
ΔＦ＝強力信号と微弱信号の周波数差（Ｈｚ）、また
Ｍｏｄ＝−５００Ｈｚ乃至＋５００Ｈｚの範囲を与えるモジュロ・オフセット
減衰は周波数差が５Ｈｚを超えて変化する場合に計算し直すだけでよい。
【０４９８】
強力信号の位相と振幅の推定値は相互相関を除去するために必要である。好ましい実施例において使用される方法はそれ自身の専用チャネルで強力信号をトラッキングし、微弱信号のＩ、Ｑサンプルが取得されるのと正確に同じ間隔にわたって出力されたＩ、Ｑ測定値を収集することである。強力信号をトラッキングするために使用される複製信号の既知の位相と周波数は強力信号の実際の位相と周波数の優れた近似である。更に、強力信号は位相ロックされているので、Ｉ測定値の大きさは強力信号の振幅の良好な近似を与える。最後に、強力信号データ・ビットＤの２位相変調は、データ・ビットが１から０に、あるいは０から１に移行するときは常に、強力信号の位相を１８０度回転させる。本実施例において、強力信号に対するＩ測定値の符号が負のときは常に強力信号の位相は複製信号の位相に１８０度を加えることにより補正される。
【０４９９】
微弱信号をトラッキングするために割当てられたチャネルから１０ｍｓごとにＩ，Ｑ相関データの新しい組が利用可能である。干渉する強力信号の存在を予測するために相互相関係数の表がチェックされる。強力信号が予測されたら、以下の減算が実行されて強力信号を除去する。
相互相関：
ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔ＝ＷｅａｋＣｏｄｅＳｔａｔｅ−ＳｔｒｏｎｇＣｏｄｅＳｔａｔｅ−ＳｔｒｏｎｇＤｏｐｐｌｅｒ＊△Ｔ−ＴａｂｌｅＥｎｔｒｙ０ＣｏｄｅＳｔａｔｅ；
ＤｅｌｔａＰｈａｓｅ＝ＷｅａｋＣａｒｒｉｅｒＰｈａｓｅ−ＳｔｒｏｎｇＣａｒｒｉｅｒＰｈａｓｅ−ＳｔｒｏｎｇＤｏｐｐｌｅｒ＊△Ｔ＋ＤｅｌｔａＫＨｚ＊ＳｔｒｏｎｇＣｏｄｅＳｔａｔｅ；
ＦｉｒｓｔＰｈａｓｅ＝ＦｉｒｓｔＣｏｒｒｅｌａｔｉｏｎＰｈａｓｅ＋ＤｅｌｔａＰｈａｓｅ；
ＳｅｃｏｎｄＰｈａｓｅ＝ＳｅｃｏｎｄＣｏｒｒｅｌａｔｉｏｎＰｈａｓｅ＋ＤｅｌｔａＰｈａｓｅ；
ＦｉｒｓｔＭａｇ＝ＦｉｒｓｔＣｏｒｒｅｌａｔｉｏｎＭａｇ＋ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔＦｒａｃｔｉｏｎ＊ＳｔｒｏｎｇＩ＊ＦｒｅｑｕｅｎｃｙＡｔｔｅｎｔｕａｔｉｏｎ；
ＳｅｃｏｎｄＭａｇ＝ＳｅｃｏｎｄＣｏｒｒｅｌａｔｉｏｎＭａｇ＊（１−ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔＦｒａｃｔｉｏｎ）＊ＳｔｒｏｎｇＩ＊ＦｒｅｑｕｅｎｃｙＡｔｔｅｎｕａｔｉｏｎ；及び
ＣｏｒｒｅｃｔｅｄＷｅａｋＩＱ＝ＷｅａｋＩＱ−ＦｉｒｓｔＭａｇ＊ｅ−ｊＦｉｓｔＰｈａｓｅ−ＳｅｃｏｎｄＭａｇ＊ｅ−ｊＳｅｃｏｎｄＰｈａｓｅ
ここで、
ＷｅａｋＣｏｄｅＳｔａｔｅ＝微弱信号チャネルへの最新の出力の符号状態；
ＳｔｒｏｎｇＣｏｄｅＳｔａｔｅ＝強力信号チャネルへの最新の出力の符号状態；
ＳｔｒｏｎｇＤｏｐｐｌｅｒ＝強力信号チャネルへの最新の出力のドップラー；
ΔＴ＝微弱信号チャネルへの出力と強力信号チャネルへの出力間の時刻差；
ＴａｂｌｅＥｎｔｒｙ０ＣｏｄｅＳｔａｔｅ＝相互相関表の第１の要素の符号状態差；
ＷｅａｋＣａｒｒｉｅｒＰｈａｓｅ＝微弱信号チャネルへの最新の出力の搬送波位相角；
ＳｔｒｏｎｇＣａｒｒｉｅｒＰｈａｓｅ＝強力信号チャネルへの最新の出力の搬送波位相角；
ＤｅｌｔａＫＨｚ＝微弱信号チャネルおよび強力信号チャネルのドップラーの差の最も近い１ＫＨｚの整数倍（ＫＨｚ単位）；
ＦｉｒｓｔＣｏｒｒｅｌａｔｉｏｎＰｈａｓｅ＝ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔで表示されるチップに対する相互相関表における位相入力；
ＳｅｃｏｎｄＣｏｒｒｅｌａｔｉｏｎＰｈａｓｅ＝ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔ＋１チップで表示されるチップに対する相互相関表における位相入力；
ＦｉｒｓｔＣｏｒｒｅｌａｔｉｏｎＭａｇ＝ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔで表示されるチップに対する相互相関表における振幅入力；
ＳｅｃｏｎｄＣｏｒｒｅｌａｔｉｏｎＭａｇ＝ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔ＋１チップで表示されるチップに対する相互相関表における振幅入力；
ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔＦｒａｃｔｉｏｎ＝ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔにおけるチップの端数；
ＳｔｒｏｎｇＩ＝強力信号チャネルからのＩ相関の絶対値；
ＦｒｅｑｕｅｎｃｙＡｔｔｅｎｕａｔｉｏｎ＝周波数オフセットによる減衰；
ＷｅａｋＩＱ＝微弱信号のチャネルからのＩＱ相関；及び
ＣｏｒｒｅｃｔｅｄＷｅａｋＩＱ＝強力信号からの相互相関に対して補正されたＩＱ相関。
ＣｏｒｒｅｃｔｅｄＷｅａｋＩＱは、ＦｉｒｓｔＣｏｄｅＯｆｆｓｅｔを適当に（例えばそれぞれチップの半分だけ）ずらすことにより進んだ相関器、定時の相関器および遅れた相関器に対して計算される。次いでこれらの修正された相関は通常は微弱信号に対して搬送波及び符号トラッキング・ソフトウェアで使用される。このアルゴリズムは微弱信号を減衰することなく少なくとも１０ｄＢだけ相互相関を減衰し、微弱信号と干渉しているかもしれないそれぞれの強力信号に対して繰り返される。
【０５００】
図９７では異なるＰＲＮを有する微弱信号からＰＲＮを有する強力信号を消去するための相互相関を説明したが、ＣＷジャミング信号を消去し、ＰＲＮを有する微弱信号を強調するように手順を修正してもよい。図９８において、ＣＷジャミング信号を識別及び除去する信号処理図が示され、この場合、図９７の消去された信号はＣＷジャミング信号でもよい。受信機９８−４７００はアンテナ９８−４７０２においてスペクトル拡散信号を受信する。相互相関器９８−４７０４がＣＷジャミング信号を識別するようなモードに置かれる。そのモードにおいて、相互相関器はＰＲＮ符号に対して全て１を採用する。相互相関器９８−４７０４は信号処理装置（ＳＰ）９８−４７０６と、スペクトル拡散された信号を逆拡散する整合フィルタ（ＭＦ）９８−４７０８とを有する。得られた信号はＣＷジャミング信号（強力信号）であり、トラッキング部９８−４７１０においてトラッキングされる。本実施例のトラッキング部９８−４７１０の例は位相ロック・ループ回路でもよい。
【０５０１】
次いで、識別されたＣＷジャミング信号は複製ＣＷジャミング信号９８−４７１２を生成するために使用される。複製ＣＷジャミング信号は信号処理装置９８−４７１４と整合フィルタ９８−４７１６を用いて作り出されてもよい。他の実施例において、所望の信号を生成する他のやり方が採用されてもよい。他のやり方の例には電圧制御発振器、デジタル信号処理、アナログ信号処理を含むが、これらには限定されない。
【０５０２】
次いで、受信機９８−４７００により受信されたスペクトル拡散信号は、全て１ではない逆拡散符号を用いて相互相関器９８−４７１４により処理される。スペクトル拡散信号内の受信された微弱信号は相互相関器９８−４７１８内の信号処理装置により復調される。生成されたＣＷジャミング信号は消去部９８−４７２０により微弱信号から消去される。次いで、得られた信号はトラッキング部９８−４７２２によりトラッキングされる。トラッキング部９８−４３１０によりトラッキングされているＣＷジャミング信号は、信号組合せ部９８−４７２４によりトラッキングされたＣＷジャミング信号から所望の微弱信号を除去するように更に処理される。
【０５０３】
ＣＷジャミング信号の識別は三つの相互相関器９８−４７０４、９８−４７１８及び９８−４７１２について生じるものとして説明された。しかし実際には、相互相関器を一つだけ使用して、その相互相関器にＰＲＮ符号を区別させ、ＣＷジャミング信号を識別及び除去させてもよい。従って、所望でない信号（ＣＷジャミング信号）の複製の生成は所望の信号の復調の間に生じる。
【０５０４】
図９９に目を転ずれば、図９８の電気部品のブロック図が示される。微弱信号とＣＷジャミング信号を含むスペクトル拡散信号はアンテナ９８−４７０２を介して受信機９８−４７００において受信される。スペクトル拡散信号は復調され、ＣＷジャマ信号がジャマ・フィルタ９９−４８０２によりフィルタリングされる。得られたＣＷジャミング信号はジャマ・トラッキング部９９−４８０４によりトラッキングされる。次いで、トラッキングされたジャミング信号はジャマ複製波生成部９８−４８０６により複製ＣＷジャミング信号として複製される。ＣＷ信号は一定の位相の特性を有し、従って、複製されたＣＷジャミング信号はスケーリングされ、適当な位相まで回転されて（９９−４８０８）、復調された微弱信号から減算される。微弱信号は復調部９９−４８１０により復調される。次いで、位相及び振幅が複製されたＣＷジャミング信号は信号消去部９９−４８１２により復調部９９−４８０２からの微弱信号から減算される。次いで、得られた微弱信号はトラッキング制御回路９９−４８１４によりトラッキングされる。トラッキング制御回路９９−４８１４は復調部９９−４８１０と二つの信号組合せ部９９−４８１６及び９９−４８１８に微弱信号を出力する。微弱信号は信号組合せ部９９−４８１６によりＣＷジャマ信号から減算され、得られた信号は複製されたＣＷジャミング信号をスケーリング及び回転するために使用される。同様に、微弱信号は、より正確なＣＷジャミング信号がジャマ複製波生成部９９−４８０６によって複製されるように、信号組合せ部９９−４８１８によりＣＷジャミング信号から減算される。
【０５０５】
本実施例は概ねＣＷジャミング信号について説明されたが、ＩＳ−９５パイロット信号、ガリレオ（Galileo）信号、又は他の既知の搬送波等の個々の既知の信号が復調された所望の信号から識別、トラッキング及び除去されてもよいことは当業者には言うまでもない。信号処理の前、あるいは受信機のフロントエンドでＣＷジャミング信号を識別及び除去する他の既知の方法と違って、このやり方はＣＷジャミング信号をバックエンドにおいて識別及び除去する。これは、所望の信号がＣＤＭＡ又は衛星測位システムのような低信号強度で受信されるときに有利である。そのような信号強度は所望の微弱信号を維持しながら信号の処理を支援するには十分でない。
【０５０６】
図１００に目を転ずれば、ＣＷジャミング信号を識別及び除去するフローチャート１００−４９００が示される。手順が開始すると（１００−４９０２）、受信機はスペクトル拡散信号を受信する（１００−４９０４）。信号はフィルタリングされてもよく、相互相関器を用いてＣＷジャミング信号が識別される（１００−４９０６）。ＣＷジャミング信号が識別されると（１００−４９０６）、それはトラッキングされる（１００−４９０８）。次いで、トラッキングされたＣＷジャミング信号はジャマ複製波生成部により複製される（１００−４９１０）。次いで、複製されたＣＷジャマ信号は受信された信号から減算される（１００−４９１２）。ＣＷジャミング信号は受信された信号から除去され、処理が完了する（１００−４９１４）。
【実施例７】
【０５０７】
図１０１において、強力信号と中程度の信号の動作のためのトラッキング・システムの典型的で高レベルな実施例が示される。ハードウェア・トラッキング・ループ（「ＨＷＴＬ」）は予備検出積分（「ＰＤＩ」）速度で動作する。この実施例はサブシステム３において行われる。実施の詳細はＨＷＴＬ  ＡＳＩＣ設計仕様書で利用可能である。ハードウェア（「ＨＷ」）は捕捉モードからトラッキング・モードに自分で移行して、自律的にＨＷＴＬを作動することはできない。ＨＷＴＬを作動するモード遷移はソフトウェア（「ＳＷ」）制御の下にあり、捕捉処理の完了が成功したときに生じる。典型的には、ハードウェアからの入力は以下の通りである。
進んだタップと遅れたタップに対するＩｅ、Ｑｅ及びＩｌ、Ｑｌ、ｆ＋ｅ及びｆ−ｅ、ｆ＋ｌ及びｆ−ｌ；
Ｉｅ＝進んだタップに対する同位相相関；
Ｑｅ＝進んだタップに対する直交位相相関；
Ｉｌ＝遅れたタップに対する同位相相関；
Ｑｌ＝遅れたタップに対する直交位相相関；
ｆ＋ｅ＝進んだタップに対する＋１周波数ビン・オフセットに対する相関の大きさ；
ｆ−ｅ＝進んだタップに対する−１周波数ビン・オフセットに対する相関の大きさ；
ｆ＋ｌ＝遅れたタップに対する＋１周波数ビン・オフセットに対する相関の大きさ；
ｆ−ｌ＝遅れたタップに対する−１周波数ビン・オフセットに対する相関の大きさ；及び
正規化を目的とするＨＷからのオート・スケール値
【０５０８】
一例として、捕捉からの情報を利用して以下の状態が初期化されてもよい。即ち、１．符号位相、２．搬送周波数、３．搬送波位相、及び４．トラッキング・ループを正規化するために使用されるフィルタリングされた信号振幅推定値（「Ｓ＿Ｇａｉｎ」）（振幅推定値が利用可能な場合）。この例では、符号弁別器は以下により与えられてもよい。
Ｄ＝｜ｅ｜−｜ｌ｜
｜ｅ｜＝ｓｑｒｔ（Ｉｅ＊Ｉｅ＋Ｑｅ＊Ｑｅ）
｜ｌ｜＝ｓｑｒｔ（Ｉｌ＊Ｉｌ＋Ｑｌ＊Ｑｌ）
搬送波位相弁別器は以下により与えられてもよい。
φ＝ｓｉｇｎ（Ｉｐ）＊Ｑｐ
Ｉｐ＝Ｉｅ＋Ｉｌ
Ｑｐ＝Ｑｅ＋Ｑｌ
搬送波位相弁別器は以下により与えられてもよい。
δｆ＝ｆ＋−ｆ−
ｆ＋＝ｆ＋ｅ＋ｆ＋ｌ
ｆ−＝ｆ−ｅ＋ｆ−ｌ
ここで、全ての計算は大きさあるいは大きさの近似値を用いて行われる。
【０５０９】
サブシステム２の処理は
搬送波位相＋＝搬送周波数
搬送周波数＋＝搬送周波数速度
符号位相＋＝デルタ搬送波位相
により記述されてもよい。
【０５１０】
一例として、トラッキング・ループ方程式は
搬送波位相＋＝Ｋ１＊φ＋Ｋ２＊δｆ＋Ａｉｄ１
搬送周波数＋＝Ｋ３＊φ＋Ｋ４＊δｆ＋Ａｉｄ２
搬送周波数速度＋＝Ｋ５＊φ＋Ｋ６＊δｆ＋Ａｉｄ３
符号位相＋＝Ｋ７＊Ｄ＋Ａｉｄ４
により記述されてもよい。
【０５１１】
ゲインＫ１乃至Ｋ７は１００ｍｓの速度でＳＷから入力されてもよい。ＨＷＴＬモード遷移はこれらのゲインの値を通じて制御されてもよい。
【０５１２】
一般的な例として、トラッキング・モード及びモード遷移は以下の説明により記述されてもよい。
【０５１３】
ゲインＫ１〜Ｋ７の設定を通じて１００ｍｓの速度でＳＷによる制御
【０５１４】
初期モードにおいて、トラッキング・ループは広帯域幅（好ましくはＰＤＩの反復速度のおよそ１／１０で）周波数ループで初期化される。符号ループは、フィルタリングされた周波数誤差推定値＜しきい値１であれば狭帯域幅周波数ループへの広帯域幅（好ましくは５Ｈｚ＊捕捉誤差推定値で）遷移で初期化される。フィルタリングされた周波数誤差推定値＜しきい値２であれば、広い搬送波位相ループへ遷移する。推奨されるＰＤＩは４ｍｓである。好ましくは、ＦＦＴモードは８ポイントである。
【０５１５】
初期モードから入った後の狭い周波数ループ。トラッキング・ループは狭帯域幅ループ（好ましくはＰＤＩ速度のおよそ１／２０）に設定されてもよい。推定符号誤差＜０．１チップなら、狭い符号ループ（好ましくは、およそ１／３Ｈｚの帯域幅の）である。フィルタリングされた周波数誤差推定値＜しきい値１なら、搬送波位相ループに遷移する。フィルタリングされた周波数誤差推定値＞しきい値２なら、初期モードに遷移する。好ましくは、ＰＤＩは４ｍｓであり、ＦＦＴモードは８ポイントである。
【０５１６】
初期モードから入った後の広い搬送波位相ループ。トラッキング・ループはＫ１〜Ｋ７を用いて広い搬送波（好ましくはＰＤＩ速度のおよそ１／４の帯域幅の）と狭い周波数の組合せループに設定されてもよい。推定符号誤差＜０．１チップなら、狭い符号ループ（好ましくは、およそ１／３Ｈｚの帯域幅の）である。（搬送波位相ロックが失われ、かつ、フィルタリングされた周波数誤差＜しきい値１）なら、狭い周波数ループに遷移する。（搬送波位相ロックが失われ、かつ、フィルタリングされた周波数誤差＜しきい値２）なら、初期モードに遷移する。フィルタリングされた位相誤差＜しきい値なら、狭い搬送波ループに遷移する。好ましくはビット同期がなければおよそＰＤＩは４ｍｓであり、ビット同期があれば２０ｍｓであり、ＦＦＴモードは２０ポイントである。
【０５１７】
広い搬送波位相ループから入った後の狭い搬送波位相ループ。トラッキング・ループはＫ１〜Ｋ７を用いて狭い搬送波（好ましくは、ＰＤＩ速度のおよそ１／１０の帯域幅の）と狭い周波数の組合せループに設定される。推定符号誤差＜０．１チップなら、狭い符号ループ（好ましくは、およそ１／３Ｈｚの帯域幅の）である。（搬送波位相ロックが失われ、かつ、フィルタリングされた周波数誤差推定値＜しきい値１）なら、狭い周波数ループに遷移する。（搬送波位相ロックが失われ、かつ、フィルタリングされた周波数誤差推定値＜しきい値２）なら、初期モードに遷移する。好ましくは、ビット同期がなければおよそＰＤＩは４ｍｓであり、ビット同期があれば２０ｍｓであり、ＦＦＴモードは２０ポイントである。
【０５１８】
表１３および表１４に示すモード遷移表において、列は出発元のモードであり、行は行き先となるモードである。表中の記載は遷移条件を記述している。
【０５１９】
符号と周波数ロックが失われた場合、全てのモードはトラッキング・システム外に遷移し、捕捉を開始してもよい。
【０５２０】
図１０２はハードウェア更新を示す。サブシステム３に対する処理の終わりに、搬送波位相、搬送周波数、搬送周波数速度及び符号位相がサブシステム２状態において更新される。
【０５２１】
符号状態は粗い分解能を有し、符号位相方程式は全ての小さな符号位相更新を累算し、符号ｌｓｂに達したら、サブシステム２の符号状態は更新される。これは以下の仕組みを用いて達成されるであろう。この仕組みは符号状態に対する変更の正規化された進んだ／遅れたトリガについての近似を記述する。Ｎは変更すべき符号状態におけるＬＳＢの数である。
ＡＧＣ正規化／オート・スケール
Ｓ＿Ｇａｉｎ（ｔ＋１）＝Ａｌｐｈａ  ＊  Ｓ＿Ｇａｉｎ＋Ｂｅｔａ＊（｜Ｉｐ｜＋｜Ｑｐ｜）
【０５２２】
Ｓ＿Ｇａｉｎはループ係数を正規化するために使用される。「ｔ」は時間インデックスである。Ｓ＿Ｇａｉｎはまた（進んだ出力−遅れた出力）を正規化してＨＷにおける符号状態に対する更新を決定するために使用されてもよい。
【０５２３】
ＳＷＴＬは成功した捕捉プロセスの終わりにＳＷ制御によりＨＷＴＬと同時に作動される。ＳＷＴＬは１００ｍｓの速度で動作される。入力はＰＤＩ速度のバッファされたレポートとＮＣＯ状態についてのレポートから成る。ＳＷはナビゲーション（ＮＡＶ）及び／又は外部ソースからの支援を使用してより正確な誤差推定値を計算し、１００ｍｓごとに一つの補正を行ってＨＷＴＬを調節することが期待される。特殊な場合、ＨＷＴＬはまた無効化されてもよく、ＳＷＴＬは自律的に動作して、１００ｍｓとは異なる速度でＨＷ・ＮＣＯに対する補正値を生成してもよい。ＨＷはより高速で割込みを提供し、ＳＷＴＬはそのような場合１００ｍｓより速い速度で動作する。ＨＷＴＬは各チャネルに対して一つの制御ビットを用いて無効化できる。
【０５２４】
ＨＷからの入力
【０５２５】
１００ｍｓの速度のＮＣＳバッファ及びトラック履歴バッファ。内容：種々のオフセット、ＰＤＩに対するノイズ合計、オート・スケール値、ＰＤＩごとにサンプリングされたＮＣＯ状態、測定レポートの時刻を表す時刻マークに対する各ＰＤＩにおけるＩとＱの相関出力
【０５２６】
状態初期化：
【０５２７】
以下の状態が捕捉からの情報を用いて初期化される。
１．符号位相；
２．搬送周波数；
３．搬送波位相；及び
４．Ｓ＿Ｇａｉｎ（振幅推定値が利用可能な場合）
【０５２８】
符号弁別器：
【０５２９】
符号弁別器は以下の方程式で与えられる。
Ｄ＝｜Ｅ｜−｜Ｌ｜
｜Ｅ｜＝Ａｌｐｈａ＊｜Ｅｅ｜＋Ｂｅｔａ＊｜Ｅｅ＋｜
｜Ｌ｜＝Ａｌｐｈａ＊｜Ｌｅ｜＋Ｂｅｔａ＊｜Ｌｅ＋｜
ここで、ＥｅとＬｅはプロンプトからタップ１つ離れた進みのＩ及びＱ値と遅れのＩ及びＱ値であり、Ｅｅ＋及びＬｅ＋はプロンプトからタップ２つ離れた進みのＩ及びＱ値と遅れのＩ及びＱ値である。
【０５３０】
フィルタリングされた符号誤差＝Ａｌｐｈａ＊フィルタリングされた符号誤差＋Ｂｅｔａ＊Ｄ
【０５３１】
搬送波位相弁別器：
φ＝ａｒｃｔａｎ（Ｑｐ，Ｉｐ）
φは各ＰＤＩに対して計算され、ｄφはソフトウェアにおいて維持される。
【０５３２】
搬送周波数弁別器：
δｆ＝Ａｌｐｈａ＊（ｆ＋−ｆ−）＋Ｂｅｔａ＊（Ｉｐ（ｔ＋１）＊Ｑｐ（ｔ）−Ｉｐ（ｔ）＊Ｑｐ（ｔ＋１））
ここで、ｔは時刻インデックスである。
【０５３３】
トラッキング方程式：
トラッキング方程式はＰＤＩ速度で反復される。ＨＷに戻される相関値は１００ｍｓで生成される。
【０５３４】
位相トラッキング・ループ：
搬送波位相＋＝搬送周波数＋Ｋ１＊ｄφ＋Ａｉｄ１
搬送周波数＋＝搬送周波数速度＋Ｋ３＊ｄφ＋Ａｉｄ２
搬送周波数速度＋＝Ｋ５＊φ＋Ａｉｄ３
周波数トラッキング・ループ：
搬送周波数＋＝搬送周波数速度＋Ｋ４＊δｆ＋Ａｉｄ２
搬送周波数速度＋＝Ｋ６＊δｆ＋Ａｉｄ３
【０５３５】
符号ループ：
符号位相＋＝Ｓｃａｌｅ＊（搬送波位相（ｔ）−搬送波位相（ｔ−１））Ｋ７＊Ｄ＋Ａｉｄ４
Ｋ７はＫｍａｘ（高帯域幅値）に初期化されて、以下の通り更新される。
Ｋ７（ｔ＋１）＝Ａｌｐｈａ＊Ｋ７＋Ｂｅｔａ＊符号誤差推定値
Ｋ７＞Ｋｍａｘなら、Ｋ７＝Ｋｍａｘ
Ｋ７＜Ｋｍｉｎなら、Ｋ７＝Ｋｍｉｎ
トラッキング・ループ・モード遷移はゲインＫ１乃至Ｋ７を介して制御される。
【０５３６】
ＡＧＣ正規化：
Ｓ＿Ｇａｉｎ（ｔ＋１）＝Ｓ＿Ｇａｉｎ＿Ｒａｔｅ＊Ｇａｍｍａ＋Ａｌｐｈａ＊Ｓ＿Ｇａｉｎ＋Ｂｅｔａ＊（｜Ｉｐ｜＋｜Ｑｐ｜）
Ｓ＿Ｇａｉｎ＿Ｒａｔｅ（ｔ＋１）＝Ａｌｐｈａ＊Ｓ＿Ｇａｉｎ＿Ｒａｔｅ＋Ｂｅｔａ＊［（｜Ｉｐ（ｔ）｜＋｜Ｑｐ（ｔ）｜）−（｜Ｉｐ（ｔ−１）｜＋｜Ｑｐ（ｔ−１）｜）］
Ｓ＿Ｇａｉｎ及びＳ＿Ｇａｉｎ＿Ｒａｔｅは信号の大きさと信号の大きさ変化の速度の推定値を表す。Ｓ＿Ｇａｉｎはトラッキング・ループ方程式のゲインを正規化するために使用される。
【０５３７】
ロック検出器の喪失
【０５３８】
符号ロック
【０５３９】
１００ｍｓの信号対ノイズ比を計算する。計算は以下のように行われてもよい。
ノイズ電力＝Ｓｕｍ（Ｉｎ＊Ｉｎ＋Ｑｎ＊Ｑｎ），
ここで、合計は１００ｍｓの期間にわたって行われる。Ｉｎ及びＱｎはＰＤＩ速度でのＨＷレポートにおけるノイズ合計からのＩ及びＱ出力である。
信号電力＝Ｓｕｍ（Ｉｐ＊Ｉｐ＋Ｑｐ＊Ｑｐ），
ここで、合計は１００ｍｓの期間にわたって行われる。
信号対ノイズ比＝信号電力／ノイズ電力
フィルタリングされたＳＮＲ＝Ａｌｐｈａ＊フィルタリングされたＳＮＲ＋Ｂｅｔａ＊信号対ノイズ比＋Ｇａｍｍａ＊ＳＮＲ＿Ｒａｔｅ
ＳＮＲ＿Ｒａｔｅ＝Ａｌｐｈａ＊ＳＮＲ＿Ｒａｔｅ＋Ｂｅｔａ＊［信号対ノイズ比（ｔ）−信号対ノイズ比（ｔ−１）］
フィルタリングされたＳＮＲ＜しきい値なら、ロックの喪失を宣言
【０５４０】
搬送波位相ロック：
２象限アーク・タンジェント関数を用いたフィルタリングされた位相誤差の推定
φ＝ａｒｃｔａｎ（Ｑｐ，Ｉｐ）
ＰＤＩごとに計算
フィルタリングされたφ＝Ａｌｐｈａ＊フィルタリングされたφ＋Ｂｅｔａ＊φ
フィルタリングされたφ＞しきい値なら、ロックの喪失を宣言
【０５４１】
搬送周波数ロック：
【０５４２】
フィルタリングされた周波数誤差の推定
δｆ＝Ａｌｐｈａ＊（ｆ＋−ｆ−）＋Ｂｅｔａ＊（Ｉｐ（ｔ＋１）＊Ｑｐ（ｔ）−Ｉｐ（ｔ）＊Ｑｐ（ｔ＋１））
ここで、δｆはＰＤＩ速度で計算される。
フィルタリングされたδｆ＝Ａｌｐｈａ＊フィルタリングされたδｆ＋Ｂｅｔａ＊δｆ
フィルタリングされたδｆ＜しきい値なら、ロックの喪失を宣言
【０５４３】
ＨＷに対する更新はＨＷトラッキング・ループ方程式への支援の形を取ってもよい。これはソフトウェアからの入力として１００ｍｓごとに実施されてもよい。支援は以下の一般的な方程式を用いて計算されてもよい。
ＳＷからＨＷへの支援＝ソフトウェア推定値−ＨＷ推定値
ＨＷＴＬが無効なら、ＨＷ推定値＝０
位相、周波数及び速度に対してＨＷはＳＷが該当するレジスタに書き込むときのみ一度支援を実施する。
【０５４４】
測定レポート処理
【０５４５】
擬似距離及び変化率の測定値はＨＷからＳＷへのインターフェースにおける記述のように構成されてもよい。
【０５４６】
ビット同期は２０〜１００ｍｓの速度で動作してもよく、ＳＷにおいて実施されてもよい。
【０５４７】
入力：
【０５４８】
ＨＷは２０個（プログラム可能）のオフセットに対して２０ｍｓの累算（ＰＤＩ）を提供する。入力配列ヒストグラム［２０］は２０ｍｓＰＤＩ電力累算から成っていてもよい。ヒストグラムは各ＳＶに対して以下の方程式を用いて累算されてもよい。
ＡｃｃｕｍＨｉｓｔｏｇｒａｍ［２０］＋＝Ｈｉｓｔｏｇｒａｍ［２０］
オフセット情報が利用可能なら、多数のＳＶからのａｃｃｕｍＨｉｓｔｏｇｒａｍが以下の方程式を用いて累算されてもよい。
ＡｃｃｕｍＨｉｓｔｏｇｒａｍＭｕｌｔｉｐｌｅＳＶ［２０］＋＝ＡｃｃｕｍＨｉｓｔｏｇｒａｍ［２０＋ＳＶオフセット］
【０５４９】
やり方の第１の例：
ヒストグラムのピーク及び２番目のピークが検出される。
（（ヒストグラムのピーク＞しきい値）かつ（ヒストグラムのピーク−ヒストグラムの２番目のピーク）＞しきい値）なら、ビット同期が完了し、ビット位置を出力
他の場合は累算を続行
【０５５０】
やり方の第２の例：
２０ｍｓ幅の三角形と累算されたヒストグラムの相関を取ることによりコスト関数を計算する。
コスト関数（オフセット）＝Ｓｕｍ（ｔｒｉａｎｇｌｅ（ｍｓ）＊ＡｃｃｕｍＨｉｓｔｏｇｒａｍ（ｍｓ−オフセット））
合計（Ｓｕｍ）は２０個のミリ秒値にわたって行われる。コスト関数（オフセット）の最大値はビット同期オフセットを与える。
［｛ｍａｘ（コスト関数（オフセット））＞しきい値｝かつ｛ｍａｘ（コスト関数（オフセット））−２番目のｍａｘ（コスト関数（オフセット））＞しきい値｝］なら、ビット同期成功を宣言
【０５５１】
データ復調：
【０５５２】
データ復調は２０〜１０ｍｓの速度で動作してもよい。実施はＳＷにおいて行われる。
ビット同期成功後、２０ｍｓ間のＩｐ及びＱｐがビット境界に整合される。
搬送波位相ロックの場合、
データ・ビット＝ｓｉｇｎ（Ｉｐ）
そうでない場合、
データ・ビット＝ｓｉｇｎ［（Ｉｐ＋ｊ＊Ｑｐ）＊ｅｘｐ（ｊ＊搬送波位相の誤差推定値）］
ここで、ｊは複素係数である。このアルゴリズムは搬送波位相の推定誤差が以前のビットから生成される場合において、ディファレンシャルに復号する、より一般的なケースである。
【０５５３】
フレーム同期：
【０５５４】
フレーム同期は２０〜１０ｍｓの速度で動作し、ＳＷにおいて実施されてもよい。
【０５５５】
ＳＶごとのバイナリ値の配列として与えられる、データ復調後のビット・ストリーム
【０５５６】
やり方の例：
コールド・スタート（利用可能な情報なし）
プリアンブル同期。ビットパターンにおけるプリアンブルの識別。
ＨＯＷを復号。６秒ずれた第２のプリアンブルを識別し、１だけずれた第２のＨＯＷを識別。
おおよその時刻が利用可能。
プリアンブルの識別。ＨＯＷを復号。ＨＯＷが時刻の不確定性の範囲内なら、フレーム同期完了を宣言。
フレーム同期確認。処理を繰り返し、ＨＯＷが６秒ずれて１だけ変化することを確認。
支援情報が利用可能で１ＳＶがフレーム同期を完了。
【０５５７】
以下のステップが実行されてもよい：
最初のＳＶフレーム同期からの時間を用いてフレーム同期を必要とするＳＶに対して予備測位を計算
ローカル時刻に対して問題のＳＶに対するフレーム開始を計算
フレーム同期情報を設定
支援ビットが利用可能
利用可能な支援ビットを用いてコスト関数を計算
コスト関数（オフセット）＝Ｓｕｍ（支援ビット（ビット数）＊ビット・ストリーム（ビット数＋オフセット））
合計は利用可能なビットの全てにわたって行われる。
ＳＶのオフセット情報が利用可能なら、以下の方程式を用いて多数のＳＶに対するコスト関数を組み合わせる。
組み合されたコスト関数（オフセット）＋＝コスト関数（オフセット＋ＳＶオフセット）
［｛ｍａｘ（組み合わされたコスト関数（オフセット））＞しきい値｝かつ｛ｍａｘ（組み合わされたコスト関数（オフセット））−２番目のｍａｘ（組み合わされたコスト関数（オフセット））＞しきい値｝］なら、フレーム同期完了を宣言。
【実施例８】
【０５５８】
一実施例のＧＰＳシステムはクロック制御のためのシステム又は装置及びそれに関連する方法を含む。低電力リアルタイム・クロック（ＲＴＣ）が全地球測位システム（ＧＰＳ）受信機ユニットにおいて連続的に動作する。ＧＰＳ受信機ユニットがＧＰＳ受信機ユニットの位置を計算するために使用される衛星情報を能動的に捕捉していない期間に、選択された構成要素を停止することによりＧＰＳ受信機ユニットが節電される。選択された構成要素が休止されるときは低電力時刻保持回路にあるＫ３２（典型的には公称３２，７６８Ｈｚ）発振器はＧＰＳ時刻を正確に保存する。Ｋ３２発振器はＲＴＣ又は低電力クロックを生成する。低電力クロックとＲＴＣという用語は本願では互換性をもたせて使用される。
【０５５９】
ＲＴＣが起動時に使用されるほど十分に正確であるかどうかを決定する方法及び装置が開示される。一つの実施例において、例えばブラウンアウトが生じた場合のＲＴＣクロック・サイクルの実際の喪失が検出される。一つの実施例において、ＲＴＣクロック発振器の出力は半波整流され、計算されたＲＣ時定数を有する抵抗−コンデンサ（ＲＣ）回路への入力とされる。ＲＣ回路の出力は電圧比較器の一方の入力とされる。基準電圧が電圧比較器の他方の入力とされる。ＲＴＣ発振器が所定数のサイクルを逸したら、電圧比較器に対するＲＣ回路の出力電圧が崩壊し、比較器はクロック・サイクルの喪失を検出し、これが電圧比較器の出力に反映される。
【０５６０】
図１０３は一つの実施例によるＧＰＳ受信機ユニット１０３−１００のブロック図である。ＧＰＳ受信機１０３−１００は無線周波数（ＲＦ）機能を含み、本願ではこれはＲＦチップ１０３−１０３に存在するように示される。ＧＰＳ受信機ユニット１０３−１００は更にベースバンド機能を含み、本願ではこれはベースバンド・チップ１０３−１０５に存在するように示される。種々の機能を実行する種々の構成要素が本願ではある一定の配置で説明されるが、開示された発明は代わりの配置も予測している。例えば、ベースバンド・チップ１０３−１０５は図示のようにナビゲーション・プロセッサ１０４−２１０及びメモリ・デバイス１０４−２２０を含んでもよい。他の実施例において、ナビゲーション・プロセッサ及びメモリ・デバイスはベースバンド・チップ１０３−１０５になく、例えば周辺インターフェースを介してベースバンド・チップ１０３−１０５と通信してもよい。もっと他の実施例において、図示される構成要素と説明された機能の全てはワンチップ上にある。
【０５６１】
ＲＦチップ１０３−１０３はＧＰＳ発振器１０４−２０４を含み、これはＧＰＳ時刻を保持するために使用される高精度発振器である。以下は一つの実施例によるＧＰＳ受信機ユニット１０３−１００の一般的動作の概要である。以下の概要において挙げられた構成要素が以下に示され説明される。ＧＰＳ受信機ユニットがＧＰＳ受信機ユニットの位置を計算するために使用される衛星情報を能動的に捕捉していない期間中にＧＰＳ発振器１０４−２０４を含む選択された構成要素を停止することによりＧＰＳ受信機ユニット１０３−１００が節電される。選択された構成要素が休止されるときは低電力時刻保持回路にあるＫ３２（典型的には公称３２．７６８Ｈｚ）発振器はＧＰＳ時刻を正確に保存する。
【０５６２】
ＧＰＳ発振器１０４−２０４は、複数の衛星から検出された信号に基づいてＧＰＳ時刻を正確に決定するために使用されるＭ１１クロック信号と呼ばれるクロック信号を生成する。エッジ整列比率カウンタが、フリーラン・カウンタを用いてＫ３２及びＭ１１クロック信号を連続的にモニタし、Ｋ３２クロック信号のエッジが所定の小さな許容値内でＭ１１クロック信号と整合したときは、Ｋ３２とＭ１１のカウンタ値はラッチされる。Ｔ２０エポックを生じるＧＰＳタイミング生成器はＭ１１クロックにより駆動されるので、フリーランのＭ１１カウンタはまたＴ２０エポックにおいてラッチされてそのカウンタとＴ２０エポックの関係を確立する。こうして、ＧＰＳ受信機ユニット１０３−１００はＫ３２クロック信号及びＧＰＳ  Ｍ１１クロック信号のタイミング及び速度とＴ２０のタイミング・エポックとの相関を取ることができる。Ｋ３２クロック信号、ＧＰＳ  Ｍ１１クロック信号及びＴ２０エポックの相関を取られたタイミングと速度はナビゲーション・プロセッサ１０４−２１０に供給され、それによりＴ２０エポックにおけるＧＰＳ時刻の十分正確な推定値が計算されて捕捉された衛星ＰＮ符号信号の信号構造におけるＰＮ符号期間の決定を可能にする。
【０５６３】
ＧＰＳ受信機ユニットの動作中に、ローカルＧＰＳ発振器とＫ３２発振器の周波数が種々の動作温度で検出され、それにより、温度／周波数が両発振器に対して定められる。両方の温度／周波数表はメモリに記憶される。
【０５６４】
次いで、ＧＰＳ発振器を含むＧＰＳ受信機ユニットにある選択された構成要素は節電のために停止（作動停止）される。低電力時刻保持回路はオンのままである。周期的に、所定の期間の後に、アラーム・ユニットにより生成されたウェークアップ命令に応じてシステムが起動される。低電力時刻保持回路からのＫ３２クロック信号はＫ３２発振器の実際の動作温度とＫ３２温度／周波数表からのデータに基づいて較正し直される。こうして、Ｋ３２クロック速度は周期的に更新され、より正確にＧＰＳ時刻をトラッキングする。
【０５６５】
特定の時点において、ナビゲーションの更新は特定のシステム応用の要求に従って実行される。周期的に較正し直されたＫ３２クロック信号とＧＰＳクロック温度／周波数表からのデータはＭ１１クロック信号速度とＧＰＳ時刻を設定するために使用される。次いで、ＧＰＳ衛星の位置が推定され、それにより受信された衛星信号から実際のＧＰＳ時刻が迅速に決定される。検出された衛星信号から正確なＧＰＳ時刻が決定されたら、Ｍ１１及びＫ３２信号は共にラッチされ、上記のようにＴ２０エポックにおいて実際のＧＰＳ時刻と相関を取られて、更にそれらの温度較正表を改良及び更新する。次いで、選択された構成要素は節電するためにもう一度休止される。
【０５６６】
上記のプロセスは必要なだけ繰り返され、それにより正確なＧＰＳ時刻が低電力時刻保持回路により維持される。ＧＰＳ受信機ユニットのユーザが位置情報を要求するときは、ＧＰＳ衛星位置及び距離がより正確な時刻保持に基づいて高精度で推定されるので、ＧＰＳ受信機ユニットはＧＰＳ衛星から位置をより迅速に決定する。即ち、従来のプロセスを用いてＧＰＳ衛星に対する距離を推定するのに十分正確にＧＰＳ時刻を設定するためにサブフレーム・データを検出しかつサブフレーム・タイミングを決定するという、電力を浪費しかつ時間を浪費するプロセスが回避される。
【０５６７】
再び図１０３に言及すれば、ＲＦチップ１０３−１０３及びベースバンド・チップ１０３−１０５はシステム・インターフェースを介して通信する。一つの実施例において、システム・インターフェースはシリアル周辺（ＳＰＩ）インターフェースであるが、他の実施例においては、システム・インターフェースは適当なメッセージング方式なら何でもよい。ＲＦチップ１０３−１０３はアンテナ１０３−１０７を介して視野内の衛星から信号を受信する。衛星信号はサンプリングされ、ＳＩＧＮ／ＭＡＧラインによりシリアル・ストリームとしてナビゲーション・プロセッサに送られる。ベースバンド・チップ１０３−１０５とその構成要素は、ＧＰＳ水晶振動子から生成されかつ典型的にはＦ０の倍数の周波数を有するＡＣＱＣＬＫ信号により動作する。種々の他の信号が図示のようなシステム・インターフェースを介して交換される。電力上昇（ＰＷＲＵＰ）信号がＲＦチップ１０３−１０３に送られて、捕捉及びナビゲーションの前にＲＦチップ１０３−１０３の電力低下された構成要素の電力を上昇する。ＳＰＩ＿ＣＬＫ信号が同期のためにベースバンド・チップ１０３−１０５からＲＦチップ１０３−１０３に送られる。データラインＳＰＩ＿ＤＩ及びＳＰＩ＿ＤＯがデータをやり取りする。チップ有効化信号（ＲＦＲＳＴ）がＲＦＲＳＴラインによりＲＦチップ１０３−１０３に送られ、リセット信号（ＳＲＥＳＥＴ＿Ｎ）がＲＦＲＳＴラインによりベースバンド・チップ１０３−１０５に送られる。他の実施例において、ＲＦチップ１０３−１０３とベースバンド・チップ１０３−１０５間の情報を交換するために種々の異なるプロトコルが使用される。
【０５６８】
図１０４は低電力時刻保持回路１０４−２００を含むＧＰＳ受信機ユニット１０３−１００の選択された構成要素を図解するブロック図である。ＧＰＳ受信機ユニット１０３−１００は少なくとも無線１０４−２０２、ローカルＧＰＳ発振器１０４−２０４、温度センサ１０４−２０６、複数のＧＰＳ信号プロセッサ・チャネル１０４−２０８（１乃至Ｎ）、ナビゲーション・プロセッサ１０４−２１０、整合フィルタ１０４−２１２、Ａ／Ｄ変換器１０４−２１４、ローカルＧＰＳクロック生成器１０４−２１６、エッジ整列比率カウンタ１０４−２１８、メモリ１０４−２２０及び低電力時刻保持回路１０４−２００を含む。メモリ１０４−２２０は更にウェークアップ・アラーム論理１０４−２２２及びＧＰＳクロック低電力時刻保持（ＬＰＴＫ）回路誤差の温度／周波数誤差表１０４−２２４のための割当て部を含む。図１０４は発明の動作と機能に関係する構成要素を図解することに限定される。図示されない他の構成要素にはＧＰＳ受信機ユニット１０３−１００が含まれる。これらの構成要素は、この開示には動作及び機能の議論が不要であるので、省略される。
【０５６９】
無線１０４−２０２は複数の衛星から複数のＧＰＳ信号を検出する。一つの実施例において、無線１０４−２０２はＧＰＳ  Ｌ１周波数帯（１５７５．４２ＭＨｚ）を選択する。しかしながら、他の実施例は他の適当な信号を選択してもよい。無線１０４−２０２はまたローカルＧＰＳ発振器１０４−２０４から結線１０４−２２６を介してタイミング信号を受信する。タイミング信号は、一つの実施例において、実質的に１０．９４９メガヘルツ（ＭＨｚ）で発振する、Ｍ１１クロック信号と呼ばれるローカルＧＰＳ発振器１０４−２０４にある水晶（図示せず）により生成される。他の実施例は発明の動作と機能から実質的に逸脱することなく異なる周波数のクロック信号で動作するローカルＧＰＳ発振器を採用してもよい。
【０５７０】
受信されたＧＰＳ信号とＭ１１タイミング信号は複数のＧＰＳ信号プロセッサ１０４−２０８と整合フィルタ１０４−２１２に送られる。複数のＧＰＳ信号プロセッサ１０４−２０８のそれぞれは特定の信号チャネルに対応する。図１０４はＮ個のＧＰＳ信号プロセッサがあることを示す。例えば、ＧＰＳ受信機ユニット１０３−１００のある実施例は１２の信号チャネルを並列に処理するように較正された１２個のＧＰＳ信号プロセッサ（Ｎ＝１２）を採用してもよい。
【０５７１】
信号プロセッサ１０４−２０８及び整合フィルタ１０４−２１２はナビゲーション・プロセッサ１０４−２１０から結線１０４−２３０を介して、各信号プロセッサが探索すべき個々のＧＰＳ  ＰＮ符号を指示する一連の予備測位命令を受信する。ナビゲーション・プロセッサ１０４−２１０により提供された情報は、ドップラー補正値、ＧＰＳ発振器誤差補正値、ＰＮ符号位相情報及び／又は入ってくる衛星信号に関する他の関係情報を含んでもよい。
【０５７２】
一つの実施例において、整合フィルタ１０４−２１２は検出信号の現在のＰＮ符号位相を決定し、その情報を信号プロセッサ１０４−２０８に提供して信号プロセッサ・チャネルがその信号をより迅速に捕捉できるようにする。信号プロセッサ１０４−２０８の一つが、ＰＮ符号、符号位相および周波数補正が入ってくるＧＰＳ信号の一つのそれと整合するような信号をチャネルにより検出したら、ＧＰＳ信号プロセッサは入ってくる衛星信号と同期し、それをトラッキングする。別の実施例は位置を決定するために整合フィルタ１０４−２１２のみを採用する（整合フィルタ１０４−２１２はある時点の信号の現在の符号位相を決定し、連続的にそれをトラッキングしないので精度が低いけれども）。この整合フィルタの実施例はまた、捕捉された衛星信号の全ての連続的で正確なトラッキングを可能にする整合フィルタの高速多重化を可能にする。
【０５７３】
整合フィルタ１０４−２１２及び／又はＧＰＳ信号プロセッサ１０４−２０８は捕捉信号に関する符号位相情報をそれぞれ結線１０４−２３４及び／又は１０４−２３２を介してナビゲーション・プロセッサ１０４−２１０に提供する。次いで、ナビゲーション・プロセッサ１０４−２１０は少なくとも４つのＧＰＳ衛星信号から十分な情報が整合フィルタ１０４−２１２及び／又はＧＰＳ信号プロセッサ１０４−２０８により提供された後にＧＰＳ受信機ユニット１０３−１００の位置を計算する。次いで、位置情報はインターフェース・システム（図示せず）に出力されて、ユーザはＧＰＳ受信機ユニット１０３−１００の位置を知ることができる。
【０５７４】
ローカルＧＰＳ発振器１０４−２０４は所定の発振周波数を有する信号を供給する。例えば、しかしこれに限定しないが、ローカルＧＰＳ発振器１０４−２０４の一つの実施例にある水晶（図示せず）の発振周波数は１０．９４９２９６．８７５メガヘルツ（ＭＨｚ）に等しくなるように構成される。ここで、発振周波数の正確な公称値は１３７Ｆ０／１２８に等しい。Ｆ０は１０．２３ＭＨｚに等しいＧＰＳシステムの基本パラメータである。受信されたＧＰＳ信号のＧＰＳ  Ｌ１周波数は１５４Ｆ０である。商用システムに使用されるクリア／捕捉（Ｃ／Ａ）ＧＰＳ  ＰＮ符号のチップ速度はＦ０／１０である。ＧＰＳ発振器１０４−２０４の一つの実施例はＭ１１クロック信号を出力するものとして言及されるが、この場合、用語「Ｍ１１」は１０．９４９２９６．８７５ＭＨｚの１３７Ｆ０／１２８周波数に対応する。軍事用受信機により使用される周波数及び符号を含むＧＰＳシステムの他の信号もＦ０に関係する。
【０５７５】
ローカルＧＰＳ発振器１０４−２０４は結線１０４−２３４を介してＭ１１クロック信号をローカルＧＰＳクロック生成器１０４−２１６に供給する。ローカルＧＰＳクロック生成器１０４−２１６はＭ１１クロック信号から複数のクロック信号を導き出す。これらのクロックはローカルＧＰＳ時刻基準に対応する。特に興味深いことに、複数のクロックの一つがローカル・タイミング・エポック、Ｔ２０クロックとして知られている。Ｔ２０クロックはそのクロック刻み幅が２０ｍｓであることからその名前が由来する。ＧＰＳ信号プロセッサ１０４−２０８と整合フィルタ１０４−２１２で測定された符号位相の多くは共通のＴ２０エポックと参照される。ローカルＧＰＳクロック生成器１０４−２１６により生成された選択されたクロック信号は結線１０４−２３６を通じてＧＰＳ信号プロセッサ１０４−２０８と整合フィルタ１０４−２１２に供給される。
【０５７６】
以下に詳細に述べられる低電力時刻保持回路１０４−２００はクロック信号を結線１０４−２５２を介してエッジ整列比率カウンタ１０４−２１８に供給する。クロック信号速度は一つの実施例において、実質的に３２．７６８キロヘルツ（ＫＨｚ）での水晶発振により供給され、Ｋ３２クロック信号と呼ばれる。また、低電力時刻保持回路１０４−２００はナビゲーション・プロセッサ１０４−２１０に情報を提供する（結線は図示せず）。典型的には、低電力時刻保持回路１０４−２００によりナビゲーション・プロセッサ１０４−２１０に供給される情報はＴ２０エポックでのＧＰＳ時刻の推定値である。他の実施例は発明の動作及び機能から実質的に逸脱することなく異なるクロック周波数を採用してもよい。
【０５７７】
図１０５及び１０６に関連して以下により詳細に図示及び記述されるブラウンアウト検知回路１０４−２３５がＲＴＣクロック・サイクルの喪失を検出する。以下により詳細に述べられるように、ブラウンアウト検知回路１０４−２３５はＲＴＣクロック・サイクルの喪失がＲＴＣを非常に不正確にし、それによりナビゲーション・プロセッサを起動及び通知できなくする状況を検出する。
【０５７８】
エッジ整列比率カウンタ１０４−２１８は、（結線１０４−２４４を介して）ローカルＧＰＳクロック生成器１０４−２１６に、（結線１０４−２４６を介して）整合フィルタ１０４−２１２に、及び（結線１０４−２４８を介して）低電力時刻保持回路１０４−２００に入力を供給する。図解の都合により、結線１０４−２４４、１０４−２４６及び１０４−２４８は別個の結線として図解される。しかしながら、これらの結線の一つ以上を単一の結線として実施することもできる。エッジ整列比率カウンタ１０４−２１８はまた結線１０４−２５０を介して情報をナビゲーション・プロセッサ１０４−２１０に提供する。エッジ整列比率カウンタ１０４−２１８はＫ３２及びＭ１１クロック信号を連続的にカウント及びモニタし、Ｋ３２クロック信号のエッジが所定の小さな許容値内でＭ１１信号のエッジに整合したときに、Ｋ３２及びＭ１１カウンタ値がラッチされる。ラッチの時点において、エッジ整列比率カウンタ１０４−２１８は信号をローカルＧＰＳクロック生成器１０４−２１６に供給し、それにより、現在のＴ２０クロック・カウントが、Ｋ３２及びＭ１１カウントをＴ２０エポックに関連付けるようにラッチされる。同様に、エッジ整列比率カウンタ１０４−２１８は結線１０４−２４８を介して信号を低電力時刻保持回路１０４−２００に供給するが、これによりＧＰＳ時刻についての現在の低電力時刻保持回路１０４−２００の推定値がラッチされる。こうしてＧＰＳ受信機ユニット１０３−１００はＫ３２クロック信号及びＧＰＳ  Ｍ１１クロック信号のタイミング及び速度とＴ２０エポック及び現在の低電力時刻保持回路１０４−２００のＧＰＳ時刻との相関を取ることができる。Ｋ３２クロック信号、ＧＰＳ  Ｍ１１クロック信号、低電力時刻保持回路１０４−２００のＧＰＳ時刻及びＴ２０エポック・カウントの相関を取られたタイミング及び速度がナビゲーション・プロセッサ１０４−２１０に供給されるときに、Ｔ２０エポックにおけるＧＰＳ時刻についての低電力時刻保持回路１０４−２００の推定値を計算でき、これら二つのクロックの相対速度をエッジ整列比率カウンタ１０４−２１８における二つのクロックのカウンタ比から推定できる。相対クロック周波数を推定するために、連続するエッジ整合イベントからの二組のカウンタ値の差分が取られ、差分の比が取られる。
【０５７９】
全てのクロックの速度とタイミング位相が正確に関連付けられることに注意されたい。ＥＡＲＣフリーランＭ１１カウンタ及びＴ２０エポック生成器は共にＭ１１クロックにより駆動される。従って、Ｔ２０エポックでのＭ１１のラッチはカウンタ値とＴ２０エポック時刻を関連付ける。ＲＴＣ時刻及びＥＡＲＣフリーランＫ３２カウンタは共にＫ３２クロックにより駆動される。従って、ＲＴＣアラーム・イベントでのＫ３２カウンタのラッチはカウンタ値とＲＴＣ時刻を関連付ける。ＲＴＣは所望のＲＴＣ時刻にラッチ信号として有用なパルスを生じるアラーム回路を有する。エッジ整合イベントにおいてフリーランのＫ３２及びＭ１１カウンタをラッチするためにＥＡＲＣを使用することはＫ３２及びＭ１１カウンタ値を関連付ける。二つの整合イベントからの個々のＫ３２及びＭ１１カウンタ値の差分をとることにより、Ｋ３２及びＭ１１クロック速度が関連付けることができる。最後に、ＧＰＳ信号がトラッキングされているときは、ＧＰＳ解の計算はＧＰＳ時刻に対する正確なＴ２０エポックでのＧＰＳ時刻とＴ２０エポックでの速度を提供する。従って、Ｋ３２及びＭ１１クロック速度はＧＰＳクロック速度に関連付けられ、ＲＴＣ及びＴ２０エポック時刻はＧＰＳ時刻に関連付けられる。
【０５８０】
当業者は、ＧＰＳ受信機ユニット１０３−１００の上記の動作がＧＰＳ受信機ユニットの実施例により使用される一つのシステムの一般的な説明として意図されたものであることを認識するであろう。ＧＰＳ受信機ユニット構成要素の全てが述べられ、あるいは図解されたわけではない。それはそれらの構成要素は必ずしも発明に関係しないからである。従って、ＧＰＳ受信機ユニット１０３−１００にある上記の構成要素は概ね発明の理解に必要な程度にこれらの構成要素の動作及び機能を説明することに限定される。更に、本発明を採用するＧＰＳ受信機ユニット又は他の処理システムは図１０４に示されるものとは異なった順序及び方式で接続された図１０４に示される構成要素を有してもよく、あるいは図１０４に示される構成要素の全てを含まなくてもよく、あるいは図１０４に示される構成要素に何らかの方式で接続された更なる構成要素を含んでもよい。本発明を利用するＧＰＳ受信機ユニット又は処理システムにおけるそのような如何なる変形もこの開示の範囲内にあり、また添付の特許請求の範囲により保護されると考える。
【０５８１】
温度センサ１０４−２０６は結線１４−２３８を介してローカルＧＰＳ発振器１０４−２０４の動作温度を検出する。次いで、感知された温度情報は結線１０４−２４０を通じてＡ／Ｄ変換器１０４−２１４に提供される。Ａ／Ｄ変換器１０４−２１４は感知された動作温度情報を適当な形式に変換し、結線１０４−２４２を介してその情報をナビゲーション・プロセッサ１０４−２１０に提供する。温度センサ１０４−２０６とＡ／Ｄ変換器１０４−２１４は温度検出の技術において採用される周知の構成要素と技術を用いて実施してもよい。温度センサ１０４−２０６及び／又はＡ／Ｄ変換器１０４−２１４により行われる温度感知機能は温度感知の技術において広く採用される如何なるタイプの電子部品、半導体及び／又はファームウェア型「不良」の温度センサ又は手段で実行してもよい。本発明に採用されるそのような温度センサは温度感知の技術において広く採用される構成要素及び技術を用いたソフトウェア及びファームウェアの組合せにより実施される。温度センサ１０４−２０６とＡ／Ｄ変換器１０４−２１４の、それらの個々の構成要素を含む詳細な動作は発明の動作及び機能を理解するのに必要な程度以上に詳細には説明しない。当業者は、温度センサ１０４−２０６とＡ／Ｄ変換器１０４−２１４が発明の機能及び動作から実質的に逸脱することなく種々の周知の装置を用いて実施してもよいことを認識するであろう。
【０５８２】
ナビゲーション・プロセッサ１０４−２１０は、受信した温度情報を処理して、ローカルＧＰＳ発振器１０４−２０４の動作温度によるＧＰＳ発振器信号の周波数誤差を決定する。この周波数誤差を決定するための典型的なプロセスは、ある範囲の動作温度についての温度および周波数誤差情報を有する表を使用する。一実施形態において、ＧＰＳクロック温度／周波数誤差表１０４−２２４は、不揮発性メモリ１０４−２２０に存在する。初めに、典型的な水晶発振器の温度の関数としての周波数誤差の多項式表現といった周波数／温度誤差アルゴリズムが使用されて、温度に関連した周波数誤差を概算する。ＧＰＳ受信機ユニット１０３−１００は経時的に運用されるので、温度／周波数誤差表１０４−２２４のＧＰＳクロック・データのための部分は、種々の動作温度でのＧＰＳ衛星の距離（レンジ）およびレンジ・レート測定値に基づく周波数誤差の測定値に基づきローカルＧＰＳ発振器１０４−２０４について特定の動作温度での周波数誤差のより正確な情報が書き込まれている。ＧＰＳナビゲーション方程式の解法は、受信機の空間的な速度およびローカル発振器の周波数誤差（ＧＰＳ時刻誤差の変化率）とともに、空間的な位置およびＧＰＳ時刻誤差の決定を可能にする。そうして決定された発振器の周波数誤差は、温度／周波数誤差表１０４−２２４における新しい更新点として現在の発振器温度と対にされる。
【０５８３】
ナビゲーション・モードに入る前に、受信機は温度／周波数誤差表１０４−２２４を使用して衛星捕捉プロセスを支援する。現在の動作温度を受け取ると、ナビゲーション・プロセッサ１０４−２１０は、温度／周波数誤差表１０４−２２４に存在するＧＰＳクロックの表情報を検索する。ローカルＧＰＳ発振器１０４−２０４の実際の動作温度は、ローカルＧＰＳ発振器１０４−２０４によって生成される信号の周波数誤差を推定するために温度／周波数誤差表１０４−２２４のデータと相関づけられる。このＧＰＳクロック周波数誤差情報は、結線１０４−２３０を通じてＧＰＳ信号プロセッサ１０４−２０８および整合フィルタ１０４−２１２に供給される。その代わりに、温度／周波数誤差表１０４−２２４が部分的に記入されているだけで正確な現在の動作温度の十分なデータを含んでいない場合、周波数／温度誤差の外挿または補間アルゴリズムが、ローカルＧＰＳ発振器１０４−２０４の動作温度によるＧＰＳ発振器信号の誤差を推定するために使用されるかもしれない。このアルゴリズムは、使用しているタイプのＧＰＳクロック水晶発振器の公称温度対周波数曲線の形状とともに現在の動作温度に最も近い温度での表の点を利用する。
【０５８４】
図１０５は、ＧＰＳ受信機ユニット１０３−１００の付加的な詳細を例示しているブロック図である。低電力時刻保持回路１０４−２００は、少なくともＫ３２発振器１０５−３０２、信号ラッチ１０５−３０４、温度センサ１０５−３０８および、低電力クロックすなわちリアルタイム・クロック（ＲＴＣ）１０５−３０６をさらに含む。
【０５８５】
Ｋ３２発振器１０５−３０２は、３２．７６８ｋＨｚにほぼ等しい周波数を有するＫ３２クロック信号とも称するＲＴＣクロック信号を結線１０５−３１０を通じて出力する。Ｋ３２発振器１０５−３０２は約３０マイクロ秒に等しい３２７６８Ｈｚの時間分解能を有するＫ３２クロック信号を供給するので、Ｋ３２発振器１０５−３０２は、単一のＰＮ符号周期の±０．５ミリ秒分解能の範囲内に十分に収まる周波数を有するクロッキング信号を供給する。
【０５８６】
ＲＴＣクロック信号は結線１０５−３１０でブラウンアウト検知回路１０４−２３５に送られる。ブラウンアウト検知回路１０４−２３５については以下でさらに詳細に説明する。
【０５８７】
Ｋ３２発振器１０５−３０２は、その出力Ｋ３２クロック信号を低電力クロック１０５−３０６内のカウンタおよびエッジ整列比率カウンタ１０４−２１６に供給する。Ｋ３２クロック信号のエッジが所定の小さな許容範囲内でＭ１１信号のエッジと整列したとエッジ整列比率カウンタ１０４−２１６が判定した時に、ラッチ信号が結線１０４−２４８を通じて信号ラッチ１０５−３０４に供給される。低電力クロック・カウンタ１０５−３０６の現在値は、エッジ整列信号が結線１０４−２４８を通じて受信された時に信号ラッチ１０５−３０４にラッチされる。信号ラッチ１０５−３０４にラッチされた値は、結線１０５−３１６を通じてナビゲーション・プロセッサ１０４−２５４に供給される。こうして結線１０５−３１６の信号は、低電力クロック信号またはＲＴＣクロック信号である。エッジ整列比率カウンタ１０４−２１６は、エッジ整列比率カウンタのＭ１１およびＫ３２カウンタのラッチされた値を整列イベント・エポックにおいてナビゲーション・プロセッサ１０４−２１０に供給する。Ｔ２０エポックはＧＰＳ発振器Ｍ１１クロック（図示せず）に直接関連づけられるので、エッジ整列比率カウンタ１０４−２１６のＭ１１カウンタ値は、所定の整数のＭ１１クロック刻みのオフセットとして低電力クロック１０５−３０６におけるＫ３２カウンタ値に関連づけられる。Ｋ３２およびＭ１１クロック・エッジが誤差の小さい（無視できる）窓範囲内で整列した時にカウンタ値はすべて取得されるので、クロック刻みの数は整数である（いかなる分数のクロック刻み成分も持たない）。低電力クロック１０５−３０６がＧＰＳシステム時刻のタイミングおよびレートに厳密に較正されたので、低電力クロック１０５−３０６の値およびローカルＧＰＳ時刻線における特定のＴ２０エポックのオフセットを知ることにより、低電力時刻保持回路１０４−２００のＧＰＳ時刻はＴ２０エポックに正確に転写され得る。全てのＧＰＳ測定信号処理はＴ２０エポックと関連しているので、この場合、測定を正確なローカルＧＰＳ時刻推定に関して行うことができる。
【０５８８】
Ｋ３２発振器１０５−３０２および低電力クロック１０５−３０６は、それぞれ、特に以下で説明するようにして停止されるＧＰＳ受信機ユニット１０３−１００に存在する所定の構成要素と比較した場合、相対的に極めて電力消費の低い装置である。さらに、Ｋ３２発振器１０５−３０２および低電力クロック１０５−３０６は、市販されており比較的安価である。代替として、そして好ましくは、Ｋ３２発振器１０５−３０２および低電力クロック１０５−３０６は、よりいっそうの低コスト、小型化およびより正確な時刻伝達性能を提供するためにＧＰＳ装置１０３−１００に組み込むことができる。
【０５８９】
図１０５に例示されたように、温度センサ１０５−３０８が結線１０５−３１８を通じてＫ３２発振器１０５−３０２の動作温度を検出する。検知された温度情報はその後、結線１０５−３２０を通じてＡ／Ｄ変換器１０４−２１４に供給される。Ａ／Ｄ変換器１０４−２１４は、検知された温度情報を適当な形式に変換し、Ｋ３２動作温度情報を結線１０４−２４２を通じてナビゲーション・プロセッサ１０４−２１０に供給する。温度センサ１０５−３０８は、温度を検出する技術において使用される周知の構成要素および技法を用いて具体化され得る。温度センサ１０５−３０８によって実行される温度検知機能は、温度を検知する技術において一般に使用される如何なるタイプの電子部品、半導体またはファームウェア型の温度センサまたは手段により具体化され得る。本発明において使用されるそうした温度センサ１０５−３０８は、温度を検知する技術において一般に使用される構成要素および技法を用いてソフトウェアおよびファームウェアの組合せによって具体化されている。温度センサ１０５−３０８の詳細な動作は、本発明の動作および機能を理解するために必要な程度を超えては詳述しない。当業者は、温度センサ１０５−３０８が本発明の機能および動作を著しく逸脱することなく多様な周知の装置を用いて具体化され得ることを理解するであろう。本発明の一部として使用されている温度センサ１０５−３０８のあらゆるそうした実施形態は、この開示の範囲内であり添付する特許請求の範囲によって保護されることを意図する。
【０５９０】
メモリ１０４−２２０に含まれた温度／周波数誤差表１０４−２２４の一部は、Ｋ３２発振器１０５−３０２についての温度／周波数データを記憶するために使用される。ナビゲーション・プロセッサ１０４−２１０は、上述したローカルＧＰＳ発振器１０４−２０４の周波数誤差とほぼ同様に、Ｋ３２発振器１０５−３０２の現在の動作温度に基づきＫ３２発振器１０５−３０２からの信号に関係する周波数誤差を計算する。ＧＰＳ受信機ユニット１０３−１００が経時的に運用されるので、温度／周波数誤差表１０４−２２４には、種々の動作温度での周波数誤差の測定値に基づきＫ３２発振器１０５−３０２について特定の動作温度での周波数誤差のより正確な情報が書き込まれる。Ｍ１１  ＧＰＳ発振器の場合と異なり、ナビゲーション・プロセッサ１０４−２１０は、Ｋ３２発振器での誤差を測定する直接的な手段を持たない。しかし、ナビゲーションの間に、ナビゲーション・プロセッサ１０４−２１０はＧＰＳ発振器１０５−３０２からのＭ１１信号の誤差を正確に推定することができ、その後、エッジ整列比率カウンタ１０４−２１６を使用してＧＰＳ時刻をＴ２０エポックから、Ｔ２０エポックからのほぼ整数のＭ１１刻み幅の既知のオフセットを有するＫ３２刻み幅での低電力クロック値に転写することができる。ＧＰＳ距離測定がＴ２０エポックに関して行われるので、Ｔ２０エポックは、ナビゲーション解がＧＰＳ測定値から利用可能である時に正確に知ることができるＧＰＳ時刻誤差を有する。ナビゲーションの間にＴ２０エポックのＧＰＳ時刻の精度を低電力クロック１０５−３０６に転写することは、現在のＫ３２発振器１０５−３０２温度でのＫ３２クロック信号を較正する。
【０５９１】
代替として、温度／周波数誤差表１０４−２２４におけるＫ３２発振器１０５−３０２のデータが部分的に書き込まれているだけの場合、本発明の実施形態は、典型的なＫ３２水晶発振器１０５−３０２の温度の関数としての周波数誤差の多項式表現といった周波数／温度誤差アルゴリズムを使用して、有効な表の値を有する最も近い温度の値（単数または複数）からの外挿または補間に基づきＫ３２クロック信号の温度に関連した周波数誤差を概算する。そのようなアルゴリズムは周波数誤差と動作温度とを数学的に相関づける。
【０５９２】
電力を節約するために、ＧＰＳ受信機ユニット１０３−１００の構成要素のうちの多く、およびＧＰＳ装置の他の構成要素は、電源が切断される。スリープ期間またはスリープ・モードと呼ばれる構成要素が電力を節約するために電源を切断されている期間の間、本発明は後述の通りＧＰＳ時刻を正確に把握し続ける。従って、ＧＰＳ受信機ユニット１０３−１００が、「ウェークアップ・イベント」に応答して、または位置を決定すべきことを指示する別の信号に応答して、スリープ・モードを出る時に、ＧＰＳ時刻は正確に維持されており、それによりＧＰＳ衛星をトラッキングしてＧＰＳ受信機ユニット１０３−１００の場所を決定するために必要とされる時間を最小限にすることができる。
【０５９３】
例えば、以下に限らないが、ローカルＧＰＳ発振器１０４−２０４、無線１０４−２０２、ローカルＧＰＳクロック生成器１０４−２１６および／またはＧＰＳ信号プロセッサ１０４−２０８は、電力を節約するためにナビゲーション・プロセッサ１０４−２１０によって停止され得る。構成要素が入ってくるＧＰＳ衛星信号を能動的に処理することを要求されない時に所定の構成要素を停止することにより、ＧＰＳ受信機ユニット１０３−１００による全体の電力消費を低減し、それによって携帯型のＧＰＳ受信機ユニット１０３−１００における限られた電源寿命を延長する。一般に、動作中に相対的に大きな電力量を消費する構成要素が停止に選定される。ＧＰＳ受信機ユニット１０３−１００の設計者が停止プロセスの間に電源を切断するべき構成要素を選定することが理解される。ＧＰＳ受信機ユニット１０３−１００には停止され得る極めて多数の構成要素が存在するので（それらの多くはまだ説明していない）、当業者は、停止され得る構成要素の詳細な説明および一覧が、都合よく列挙し詳述するにはあまりに数が多すぎることを理解するであろう。本発明に従って停止される構成要素のあらゆるそうした組合せは、この開示の範囲内であり、添付の特許請求の範囲によって保護されるように意図されている。
【０５９４】
従来のＧＰＳ受信機において所定の構成要素を停止することは、ＧＰＳ衛星信号のトラッキングの喪失をもたらす。そうした従来のＧＰＳ受信機がＧＰＳ衛星信号を失った後に始動する場合、ＧＰＳ衛星信号の再捕捉および／またはそれらの信号を用いたナビゲーションのために十分な精度のＧＰＳ時刻の確立のために数秒は必要とされる。従来のＧＰＳ受信機における衛星信号および時刻の再捕捉に要求される時間は、それに応じた電力の使用をもたらす。従って、スリープ期間中にＧＰＳ時刻を正確に維持する低電力時刻保持回路１０４−２００は、ＧＰＳ受信機ユニット１０３−１００がＧＰＳ衛星信号をより迅速に再捕捉することを可能にし、それによって電力リソースを節約する。
【０５９５】
ウェークアップ・コマンドは、定期的にＧＰＳ受信機ユニット１０３−１００に供給される。定期的なウェークアップ・コマンドの時間間隔は、低電力時刻保持回路１０４−２００が具体化されるＧＰＳ受信機ユニット１０３−１００の特定のアーキテクチャまたは用途に基づいて決定される。ウェークアップ・コマンドの時間間隔は、停止後にナビゲーション・プロセッサ１０４−２１０により推定されたローカル複製ＰＮ符号位相と入ってくるＰＮ符号との間の累計時刻誤差が、入ってくるＧＰＳ衛星信号の実際のＰＮ符号位相の±０．５ミリ秒以下であるように選定される。ナビゲーション・プロセッサ１０４−２１０によって推定されたＰＮ符号が±０．５ミリ秒の判定基準を超えた場合、ナビゲーション・プロセッサ１０４−２１０は、ＧＰＳ衛星情報を獲得するために従来のプロセスを開始する。一般に、受信機１０３−１００は、考えられる誤差累計を推定し、それに応じて正しいアルゴリズムを選択しなければならない。選択されたアルゴリズムが（従来の捕捉ではなく高速捕捉を用いるには）楽観的すぎるかもしれないので、ナビゲーション・プロセッサ１０４−２１０は、結果として得られた位置および時刻誤差の解を推測的な仮定値と比較することによって時刻精度の仮説を確認しなければならない。組合わされた時刻および時刻と等価な位置誤差が実際に±０．５ミリ秒を超えている場合、結果として得られた解は一般に見分けがつくほど大きな誤差で推測値と異なっているであろう。誤差が±０．５ミリ秒より大きくなければ、ＧＰＳ時刻は低電力時刻保持回路１０４−２００によって十分な精度で維持されていたことになる。
【０５９６】
アラーム・ユニット１０５−３２４は、定期的なナビゲーション更新とも称する定期的なウェークアップ・コマンドを具体化する機能を実行する。アラーム・ユニット１０５−３２４は、少なくともアラーム・レジスタ１０５−３２６および比較器１０５−３２８を含む。一実施形態において、シャットダウンの前に、ナビゲーション・プロセッサ１０４−２１０は、アラーム・ユニット１０５−３２４がＧＰＳ受信機ユニット１０３−１００をウェークアップする定期的な時間を規定するためにウェークアップ・アラーム論理１０４−２２２を実行する。別の実施形態では、時間は事前に規定されている。
【０５９７】
ウェークアップ・コマンドが発行される時を規定するこれらの期間は、結線１０５−３３０を通じてアラーム・レジスタ１０５−３２６に供給される。一実施形態において、期間はＧＰＳ時刻単位（ＴＯＷおよび週数）で規定される。別の実施形態では、実時間といった別の適切な時間が期間を規定するために使用される。
【０５９８】
ＧＰＳ受信機ユニット１０３−１００がスリープ・モードに入ると、アラーム・ユニット１０５−３２４は、現在のスリープ・モード時間を決定するために低電力クロック１０５−３０６（スリープ・モード中もシャットダウンされない）から供給されるＫ３２クロック信号を監視する。比較器１０５−３２８は、現在のスリープ・モード時間を、アラーム・ユニット１０５−３２４がＧＰＳ受信機ユニット１０３−１００をウェークアップするべき定期的な時間と比較する。現在のスリープ・モード時間と定期的な時間が一致した時に、アラーム・ユニット１０５−３２４は定期的なウェークアップ・コマンドを生成する。この定期的なウェークアップ・コマンドは、スリープ期間中に停止されていた構成要素の始動を開始する。
【０５９９】
一実施形態において、定期的なウェークアップ・コマンドは、特殊目的の専用ハードウェアを用いて始動を開始する。例えば、ウェークアップ・コマンドは、スリープ期間中に停止されていた構成要素が電力を供給されるように１つ以上の電力スイッチを作動させる。別の実施形態では、ウェークアップ・コマンドは、スリープ期間中に停止されていた構成要素をウェークアップするためにウェークアップ・アラーム論理が実行されるように、ナビゲーション・プロセッサ１０４−２１０に供給される。
【０６００】
アラーム・ユニット１０５−３２４およびその関係する構成要素は、ウェークアップ・コマンドを生成する技術において使用される周知の構成要素および技法を用いて具体化され得る。アラーム・ユニット１０５−３２４およびその関係する構成要素の詳細な動作は、本発明の動作および機能を理解するために必要な程度以外に詳述しない。当業者は、アラーム・ユニット１０５−３２４およびその関係する構成要素が、本発明の機能および動作を著しく逸脱することなく多様な周知の装置を用いて具体化され得ることを理解するであろう。本発明の一部として使用されているアラーム・ユニット１０５−３２４およびその関係する構成要素のあらゆるそうした実施形態は、この開示の範囲内であり添付する特許請求の範囲によって保護されるように意図されている。
【０６０１】
代替実施形態は、停止および始動機能を実行する他の適切なプロセッサ（図示せず）を使用するかもしれない。そのようなプロセッサおよびその関連する構成要素は、スリープ期間中に停止されないであろう。そのような代替プロセッサは、定期的なウェークアップ・コマンドを生成するように機器構成されるであろう。プロセッサは、ＧＰＳ受信機ユニット１０３−１００に存在する（図１０３および１０４には図示されていない）別のシステムの構成要素であるかもしれないし、またはＧＰＳ受信機ユニット１０３−１００に存在するスタンドアロンの専用プロセッサであるかもしれない。定期的なウェークアップ・コマンドを生成する機能を実行するためにＧＰＳ受信機ユニット１０３−１００で実行されるあらゆるそうした代替実施形態は、この開示の範囲内であり添付する特許請求の範囲によって保護されるように意図されている。
【０６０２】
また、ユーザは、位置照会に対応する手動で開始されたウェークアップ・コマンドを受け取った時点で構成要素を始動するように、ＧＰＳ受信機ユニット１０３−１００に命令することができる。例えば、ＧＰＳ受信機ユニット１０３−１００のユーザがＧＰＳ受信機ユニット１０３−１００の現在位置を知りたい場合、ユーザは手動ウェークアップ・コマンドを開始する。ユーザがＧＰＳ受信機ユニット１０３−１００に照会するための適切な手段が設けられる。ウェークアップ・コマンドを手動で開始する手段は、装置を作動させる技術において使用される周知の構成要素および技法を用いて具体化され得る。ウェークアップ・コマンドを手動で開始する手段の詳細な動作は、本発明の動作および機能を理解するために必要な程度を超えては詳述しない。当業者は、ウェークアップ・コマンドを手動で開始する手段が、本発明の機能および動作を著しく逸脱することなく多様な周知の装置を用いて具体化され得ることを理解するであろう。本発明の一部として使用されているウェークアップ・コマンドを手動で開始する手段のあらゆるそうした実施形態は、この開示の範囲内であり添付する特許請求の範囲によって保護されるように意図されている。
【０６０３】
ウェークアップ・コマンドが起動を開始すると、ローカルＧＰＳクロック生成器１０４−２１６によって供給されるクロッキング信号（例えばＴ２０エポック）は、まず衛星信号を再捕捉し、次いでＧＰＳ衛星の距離測定のための共通ローカルＧＰＳ時刻フレームを再確立するために６秒のデータ・サブフレームを収集しなければ、ＧＰＳ受信機ユニット１０３−１００が位置更新を実行できるようにするために必要とされる精度の範囲内にはないはずである。しかし、低電力時刻保持回路１０４−２００によって維持された時刻、および入ってくるＰＮ符号に基づき、停止期間の終了後にナビゲーション・プロセッサ１０４−２１０によって推定されたＰＮ符号が、入ってくるＧＰＳ衛星信号の実際のＰＮ符号時刻の±０．５ミリ秒以下であるように維持できた場合、ＧＰＳ衛星信号は迅速に再捕捉され、共通ローカルＧＰＳ時刻フレームに対する測定値が、ＧＰＳ衛星信号を捕捉し共通時刻フレームを確立する従来プロセスを実行することなく得られ、ナビゲーションにおいて使用され得る。
【０６０４】
停止される前に、Ｋ３２、Ｍ１１およびＧＰＳクロック信号の間の時刻およびレートの関係がわかっていた。Ｋ３２クロック信号の精度を維持することによって、Ｋ３２クロック信号は、Ｋ３２クロック信号およびＭ１１信号をラッチするためにエッジ整列比率カウンタ１０４−２１８によって使用され、それによってＭ１１信号および、それから導出されるＴ２０エポックを再較正する。このように、ＧＰＳ発振器１０４−２０４は再較正される。ナビゲーション・プロセッサ１０４−２１０はその後、可視であると計算された衛星のＰＮ符号位相を獲得するために整合フィルタまたは信号プロセッサ・チャネルを調整する。調整された整合フィルタまたは信号プロセッサ・チャネルは、ＧＰＳ発振器における周波数誤差を補償するために以前に記憶されたＧＰＳ発振器対温度データを利用する。符号位相測定値が得られると、これらの値は、ＰＮ符号周期におけるいずれのチップが現在受信されているかの知識から、全体のＧＰＳ信号構造におけるいずれのチップが受信されているかの知識に変換される。この変換は、全体の信号構造のいずれのＰＮチップが受信機に到達していなければならないかを計算するために仮定の現在のＧＰＳ時刻および受信機位置を用いて、また実際に到着しているチップが到着していなければならないものに最も近いＰＮ符号周期におけるそのチップの例であると仮定して行われる。組合わされたローカルＧＰＳ時刻推定および時間と等価な受信機位置誤差が正しいという仮説であれば、全体のＧＰＳ信号構造への変換は正しいはずであり、ＧＰＳ距離測定値の矛盾のない集合が決定されるであろう。言い換えれば、停止期間の終了後に（スリープ・モードを出た後に）ナビゲーション・プロセッサ１０４−２１０によって推定されたＰＮ符号と入ってくるＰＮ符号との誤差が入ってくるＧＰＳ衛星信号の実際のＰＮ符号時刻の±０．５ミリ秒以下であれば、位置情報は正しく更新される。計算された位置および時刻は、誤差が実際に０．５ミリ秒より小さいことを確認するために事前の推定値と比較されなければならない。確認が失敗した場合、測定のために共通時刻フレームを確立するために６秒のサブフレームが収集されなければならない。
【０６０５】
ＧＰＳ受信機ユニット１０３−１００によって獲得された位置および時刻誤差情報はその後、Ｍ１１およびＫ３２クロック誤差を更新するために使用される。ＧＰＳ発振器１０４−２０４およびＫ３２発振器１０５−３０２の両者は周波数誤差について更新される。Ｋ３２低電力クロック１０５−３０６は正しいＧＰＳ時刻について更新される。ＧＰＳ受信機ユニット１０３−１００はその後、電力を節約するためにスリープ・モードに戻される。上述プロセスはその後、次のウェークアップ・コマンドを受け取った時に繰り返される。従って、この定期的な更新は、クロック信号の精度を維持しながら電力を節約し、それによりＧＰＳユニットは従来プロセスを用いて衛星位置を再捕捉しなくてすむ。
【０６０６】
ウェークアップ・コマンドが受信された時は常に、Ｋ３２クロック信号はＭ１１クロッキング信号を更新するために使用される。しかし、Ｋ３２発振器１０５−３０２から導出されるＫ３２クロック信号は、Ｋ３２発振器１０５−３０２の周波数に温度依存性があるので多少の誤差を受ける。すなわち、様々な動作温度について、Ｋ３２発振器１０５−３０２の周波数は様々である。一実施形態において、温度センサ１０５−３０８はＫ３２発振器１０５−３０２の動作温度を検知する。ナビゲーション・プロセッサ１０４−２１０は、Ｋ３２発振器１０５−３０２の検出された動作温度をＬＰクロック温度／周波数誤差表１０５−３２２に存在する情報と比較する。定期的なウェークアップ・コマンドの時間間隔およびＫ３２発振器１０５−３０２の検知された動作温度に基づき、誤差補正係数が決定されて、それによりＫ３２のタイミングおよびレートはＫ３２発振器１０５−３０２の動作温度を明らかにするために補正される。すなわち、Ｋ３２クロック信号の時刻は、Ｋ３２発振器１０５−３０２の実際の動作温度を明らかにするために誤差係数により補正される。上述の通り、一実施形態において、ＬＰクロック温度／周波数誤差表１０５−３２２のデータは、実際の動作中に収集された履歴データに基づいており、従って極めて正確である。
【０６０７】
Ｋ３２クロック信号が再較正されると、Ｍ１１信号に関係する時刻が再較正される。一実施形態において、温度センサ１０４−２０６はＧＰＳ発振器１０４−２０６の温度を検知する。ナビゲーション・プロセッサ１０４−２１０は、ＧＰＳ発振器１０４−２０６の検出された動作温度をＧＰＳクロック温度／周波数誤差表１０４−２２４に存在する情報と比較する。ソフトウェアはその後、このレート補正を時間の経過とともに、各エポックで正しいＧＰＳ時刻推定を維持するためにＭ１１クロックに基づきＴ２０エポックの時間間隔をスケール変更するために使用する。さらに、ウェークアップ直後のＴ２０エポックのＧＰＳ時刻の初期値は、前述の通りエッジ整列比率カウンタ１０４−２１６を用いてＫ３２低電力クロック１０５−３０６からのＧＰＳ時刻をＭ１１に基づくＴ２０エポックへ転写することによって決定される。Ｍ１１発振器はスリープ期間中オフであったので、その経過時間は、Ｋ３２低電力クロック１０５−３０４の経過時間と同じ様にスケール変更されることはできない。上述の通り、一実施形態において、温度／周波数誤差表１０４−２２４のデータは実際の動作中に収集された履歴データに基づいており、従って極めて正確である。その場合、（現時点で温度補正された）Ｋ３２クロック信号が（同じく温度補正された）Ｍ１１クロック信号を更新するために使用される時、停止期間後にナビゲーション・プロセッサ１０４−２１０によって推定されるＰＮ符号は、入ってくるＧＰＳ衛星信号の実際のＰＮ符号時刻の±０．５ミリ秒以下である。
【０６０８】
代替実施形態において、ウェークアップ・イベントは、ナビゲーション更新に要求されるよりもいっそう頻回に生起するようにプログラムされ得る。そのようなウェークアップ・イベントは、Ｋ３２発振器の現在温度をサンプリングする目的に役立つだけであろう。現在および以前のウェークアップ・イベントの温度の平均に基づき、２つのウェークアップ・イベント間の経過時間は、温度の変化を補正するためにスケール変更される。結果として得られた補正は、低電力クロック１０５−３０６に適用されるか、または以後の計算が補正の使用を必要とするまで単に不揮発性メモリに記憶されるかのどちらかが可能である。さらに、この選択肢は動的なウェークアップ期間を付与するために改良されるかもしれない。すなわち、ウェークアップ・コマンドの時間間隔は、遭遇する特定の動作状態に応じて変化し得る。停止期間中のＫ３２発振器１０５−３０２の合計の温度変化が既定のしきい値を超えた場合、ウェークアップ・コマンドの時間間隔は適切な長さだけ低減される。他方、合計の温度変化が既定の温度しきい値未満であれば、ウェークアップ・コマンドの時間間隔はいずれかの適切な長さだけ増大される。このようにして、正確な温度を維持するために消費される電力は、現在の熱力学的な環境の要件に対して最小限にされる。
【０６０９】
前述の選択肢の増強として、ナビゲーション・プロセッサ１０４−２１０は、最後の定期的なウェークアップ・コマンドおよび現在の定期的なウェークアップ・コマンド以来のＫ３２発振器の動作温度の全体の変化を考慮することができる。温度変化が既定のしきい値を超えた場合、ナビゲーション・プロセッサ１０４−２１０はただちにＧＰＳ衛星信号を再捕捉するためにナビゲーション更新プロセスを開始して、低電力クロック１０５−３０６の保全性が許容限度内に維持されることを保証する。
【０６１０】
図１０６は、一実施形態に従ったブラウンアウト検知回路１０４−２３５の一実施形態のブロック図である。ブラウンアウト検知回路１０４−２３５は、検出回路１０４−２３７およびステータス回路１０４−２３９を含む。ＲＴＣクロック信号は線１０５−３１０で検出回路１０４−２３７に入力される。ＲＴＣクロック信号は、図示されたダイオードによって半波整流される。半波整流されたＲＴＣクロック信号は、構成要素Ｒ１，Ｒ２および図示のコンデンサを含む抵抗−コンデンサ（ＲＣ）回路に入力される。ここで減衰電圧とも称する線１０４−２４１でのＲＣ回路の出力は、電圧比較器１０４−２８１への１入力である。
【０６１１】
ＲＴＣ発振器が動作している限り、検出器１０４−２３７は比較器入力に何らかの平均的な直流電圧を維持する。電圧比較器１０４−２８１への他方の入力は基準電圧１０４−２４３であり、これはＶＤＤおよび抵抗器Ｒ３によって形成された分圧器の出力である。基準電圧は、寿命の終わり近くのバッテリ電圧の下方範囲の大きさに設定される。これはまた、クロックが相当のサイクル数の間オフでない限り、ろ波され整流されたクロック電圧がこのしきい値より上に上昇するはずであることを保証する。これを達成するために、ＲＣ時定数は比較的長くされる。これは検出回路１０４−２３７を正確なバッテリ電圧に対して感応しないようにする。長い時定数はまた、発振器から検出回路１０４−２３７まで比較的に少ないエネルギーしか必要としないので、回路１０４−２３７の電力消費を低減する。
【０６１２】
ステータス回路１０４−２３９はフリップ・フロップ１０４−２８３を含む。フリップ・フロップ１０４−２８３は、その出力１０４−２５９でローまたはハイの論理値を示す。以下に述べるように、検出回路の出力は、ＲＴＣが良好でない時にフリップ・フロップ１０４−２８３をクリアする。フリップ・フロップ１０４−２８３は、セット入力１０４−２５７の信号によってＲＴＣが「良好」であることを示すように設定される。
【０６１３】
電力が最初に供給された時に、検出回路１０４−２３７およびフリップ・フロップ１０４−２３８は、発振器が始動するのに要するよりも少ない時間で応答するはずであり、従って比較器１０４−２８１の入力における検出電圧はしきい値を超えるはずである。それゆえ、ステータス回路は、バッテリが取り外され交換された時に、「不良」にリセットされる。
【０６１４】
ＲＴＣ発振器クロックが十分に長時間停止した場合、比較器の入力電圧はしきい値以下に低下し、フリップ・フロップをクリアしてＲＴＣクロックが「不良」であることを示す。
【０６１５】
ステータス・フリップ・フロップ１０４−２３８は、ＲＴＣ時刻を使用することなく、まずＧＰＳ衛星を捕捉し、次いで時刻および位置の解を生成する責任を有する、ナビゲーション・プロセッサまたは他のプロセッサによって、ＲＴＣクロックが「良好」であることを示すように設定される。プロセッサが時刻および位置の解を生成すると、プロセッサはＲＴＣを設定し、ＲＴＣが時刻を正しく伝播していることを確認し、最後にフリップ・フロップ１０４−２３８をＲＴＣクロックが「良好」であることを示すように設定する。ＲＴＣ発振器が動作しＲＴＣクロックを生成し続ける限り、電圧はしきい値を超えたままとなり、ＲＴＣステータスは「良好」のままであろう。
【０６１６】
ＲＴＣ発振器がいずれかの期間にわたり故障した場合、比較器入力の電圧は徐々に減衰するであろう。相当数の失われたクロックの後、フリップ・フロップ１０４−２３８は、ＲＴＣクロックが「不良」であることを示すように設定される。プロセッサが再び時刻を確立するまで、フリップ・フロップ１０４−２３８はこの状態のままである。検出回路１０４−２３５の主要な目的の１つは、バッテリ寿命の終了および／または温度変動による発振器の停止から保護することである。問題が寿命の終了の場合、予備バッテリは発振に必要なしきい値未満のままになりがちである。問題が温度である場合、温度に関係する時定数は比較的遅い。さらに、バッテリが低温にさらされていたために発振器が停止した場合、その発振器は再始動するために、おそらく、それが停止した時に供給されていた電圧（および電流）よりも高い電圧を必要とするであろう。それゆえ、数千サイクルをも要求する時定数が許容される。
【０６１７】
検出回路１０４−２３５は、種々の実施形態において各種方式で読み書きされ得る。例えば、一部の実施形態において、検出回路１０４−２３５はＲＦチップ１０３−１０３上に存在し、他の実施形態ではベースバンド・チップ１０３−１０５上に存在する。ステータス回路１０４−２３９の出力１０４−２５９は、バスまたはインタフェース・プロトコルに従ってコマンドを用いて読み取られるかもしれないし、または直接監視されるかもしれない。同様に、ステータス回路１０４−２３９のセット入力１０４−２５７は、一実施形態の特定のアーキテクチャによれば、いずれかのソフトウェアまたはハードウェア機構によって切換えられてもよい。
【０６１８】
例えば、マイクロプロセッサ・バス・インターフェースがフリップ・フロップ１０４−２８３を読み書きすることができる。この状況では、フリップ・フロップ１０４−２８３の読出しは、周辺バス・ストローブを有効にし、書き込み線を無効にし、周辺選択デコードに適切な選択信号を有効にさせ、ローカルＲＴＣブロック・デコードに「ＲＴＣ＿ＧＯＯＤ」信号をアサートさせる必要があるかもしれない。バス・プロトコルに従ったフリップ・フロップ１０４−２８３の読み書きは、例えば、ブラウンアウト検知回路がベースバンド・チップ上に存在する場合に考えられる。
【０６１９】
別の実施形態では、ＲＴＣ発振器およびブラウンアウト検知回路１０４−２３５は、ＲＦチップ上に存在する。これは発振器にとってより静かな環境を可能にし、ＲＴＣ発振器を正確に較正する能力を増強し、この発振器を較正のために温度センサのより近くに配置できる。この場合、フリップ・フロップ１０４−２８３とのインターフェースは異なるであろう。例えば、シリアル入出力ポートからのメッセージ・デコードが、フリップ・フロップ１０４−２８３を読出しに選定し、そのビットをメッセージにラッチし、その後ポートによってベースバンド・チップ上のプロセッサにクロック・アウトされるであろう。
【０６２０】
開示したブラウンアウト検知回路の範囲内に、多数の回路の変形形態がある。図示された特定の回路構成要素は、所要の機能を実行するための一実施形態にすぎない。多くの他の回路が具体的な環境にとって可能かつ実際的である。例えば、検出回路におけるコンデンサは、混成信号の統合のために極めて小さくなければならない。従って、単純なＲＣ時定数は、実効キャパシタンスを増幅するためにいずれかの付加的なエレクトロニクスと代替されるかもしれない。同様に、フリップ・フロップ１０４−２８３との非同期設定インターフェースは実際上、プロセッサ・バスからの同期設定インターフェースであってもよい。これらは、回路サイズまたは電力消費を低減することによって概念を増強する既知の回路技法である。
【０６２１】
図１０７は、実施形態に従ったブラウンアウト検知回路１０４−２３５の動作を示すフローチャートである。図示の通り、ＧＰＳ受信機１０３−１００の起動時に、ナビゲーション・プロセッサ１０４−２１０はＲＴＣを読取る（１０７−６０２）。このＲＴＣ時刻はＥＡＲＣに転写される（１０７−６０４）。ＲＴＣのステータスが検出器１０４−２３５の出力１０４−２５９を読取ることによって検査される（１０７−６０６）。ＲＴＣが「良好」であれば、ナビゲーション・プロセッサは捕捉を開始するために転写されたＲＴＣ時刻を使用し始める（１０７−６１０）。ＲＴＣが「不良」の場合、動作の１つの行程では、ナビゲーション・プロセッサ１０４−２１０がコールド・スタートに進む（１０７−６１２）。ナビゲーション・プロセッサ１０４−２１０は時刻および位置の解を生成する（１０７−６１４）。時刻の解より、ナビゲーション・プロセッサ１０４−２１０はＲＴＣを設定する（１０７−６１６）。ナビゲーション・プロセッサ１０４−２１０は、動作しているＲＴＣクロックを検証する（１０７−６１８）。ＲＴＣクロックが検証された場合、ナビゲーション・プロセッサ１０４−２１０は、ステータス回路１０４−２３９に信号を送ることによってＲＴＣステータスを「良好」に設定する（１０７−６２０）。ＲＴＣクロックが検証されない場合、ナビゲーション・プロセッサ１０４−２１０は動作しているＲＴＣクロックを再び検証しようとする（１０７−６１８）。
【０６２２】
図１０７に例示されたブラウンアウト検知プロセスは、ここに記載された他のプロセスとともに実行されるプロセスの一実施形態である。例えば、図１０８Ａ、１０８Ｂおよび１０８Ｃは、図１０７のプロセスとともに実行されると考えられるプロセスの実施形態を例示している。ここで図１０８Ａ、１０８Ｂおよび１０８Ｃを参照すれば、フローチャート１０８−４００は、Ｍ１１クロック信号を更新するためにＫ３２クロック信号を使用することを含むプロセスの実施形態を例示している。フローチャート１０８−４００のプロセスは、推定されたＧＰＳ時刻がＧＰＳ受信機ユニット１０３−１００の位置を捕捉するために十分に正確かどうかを決定することをさらに含む。停止期間中にナビゲーション・プロセッサ１０４−２１０によって推定されたＰＮ符号と入ってくるＰＮ符号との間の時刻誤差が入ってくるＧＰＳ衛星信号の実際のＰＮ符号時刻の±０．５ミリ秒以下であれば、Ｋ３２クロック信号およびＭ１１クロック信号は更新される。フローチャート１０８−４００のプロセスは、ＧＰＳ発振器１０４−２０４と関係するＭ１１クロック信号およびＫ３２発振器１０５−３０２と関係するＫ３２クロック信号を検出されたＧＰＳ衛星情報で更新することをさらに含む。そして更新後、ＧＰＳ受信機ユニット１０３−１００は、スリープ・モードまたは停止モードに戻る。
【０６２３】
フローチャート１０８−４００は、ウェークアップ・アラーム論理１０４−２２２の実施形態をさらに例示している。一部の別の具体化において、記載された機能はフローチャート１０８−４００に述べた順序通りではなく生起するか、記載された機能は同時に生起するか、記載された機能の一部が削除されるか、または付加的な機能が含まれるかもしれない。
【０６２４】
プロセスは、ウェークアップ・コマンドがアラーム・ユニット１０５−３２４によって生成された時に、ブロック１０８−４０２において開始する。代替として、プロセスはまた、位置情報（「ナビゲーション更新」）の提供をユーザがＧＰＳ受信機ユニット１０３−１００に照会した時にも開始するかもしれない。
【０６２５】
ブロック１０８−４０４で、始動の理由がウェークアップ・コマンドかまたはユーザからの位置照会であったかの決定がなされる。始動の理由が、低電力時刻保持回路１０４−２００によって維持されたＫ３２基準の時刻をＧＰＳ受信機ユニット１０３−１００が更新するための、アラーム・ユニット１０５−３２４によるウェークアップ・コマンドの生成であった場合、プロセスはブロック１０８−４０６を続行する。しかし、始動の理由がユーザからの位置照会に応答して場所情報を提供することである場合、ＧＰＳ受信機ユニット１０３−１００はブロック１０８−４２２を続行することによってナビゲーション更新を開始する。
【０６２６】
ブロック１０８−４０６で、後述の通りＫ３２クロッキング信号の再較正において使用される所定の構成要素が始動される。ＧＰＳ受信機ユニット１０３−１００の他の構成要素は、電力を節約するためにブロック１０８−４０６では始動されない。例えば、ＧＰＳ受信機ユニット１０３−１００は、少なくとも決定した位置情報をユーザに示すディスプレイ（図示せず）を含むかもしれない。ＧＰＳ受信機ユニット１０３−１００が定期的なナビゲーション更新を実行している場合、ユーザは装置がナビゲーション更新を実行していることを知ることも、または位置情報を知ることも関心がないかもしれない。従って、ディスプレイ（図示せず）はブロック１０８−４０６では始動されず、それによって電力を節約する。
【０６２７】
ブロック１０８−４０８で、温度センサ１０５−３０８がＫ３２発振器１０５−３０２の温度を測定する。ブロック１０８−４１０で、ＧＰＳ受信機ユニット１０３−１００がスリープ・モードであった期間におけるＫ３２発振器１０５−３０２の平均温度が決定される。ブロック１０８−４１２で、低電力時刻保持回路１０４−２００によって維持されたＫ３２基準の時刻がアクセスされる。ブロック１０８−４１４で時刻誤差に基づき、温度／周波数誤差表１０４−２２４の情報に基づいて、上述の補正係数が決定されたＫ３２基準の時刻に適用される。この補正係数はその後ブロック１０８−４１６で、低電力時刻保持回路１０４−２００によって維持されたＫ３２基準の時刻を補正するために使用される。
【０６２８】
一実施形態では、次のウェークアップ・コマンドの時間がブロック１０８−４１８で決定される。従って、ウェークアップ時間はアラーム・レジスタ１０５−３２６において更新される。代替として、他の実施形態は、定期的なウェークアップ・コマンド間の既定の時間間隔を使用し、かつ／または他の構成要素から定期的なウェークアップ・コマンドを供給する。
【０６２９】
ブロック１０８−４２０で、（ブロック１０８−４０６で）始動された所定の構成要素は、停止される。低電力時刻保持回路１０４−２００によって維持されたＫ３２基準の時刻が更新されたので、これらの所定の構成要素は電力リソースを節約するために停止される。プロセスはブロック１０８−４０２に戻り、次のウェークアップ・コマンドまたはユーザからの位置照会を待つ。
【０６３０】
位置照会をブロック１０８−４０４で受け取った場合、ＧＰＳ受信機ユニット１０３−１００は、ＧＰＳ受信機ユニット１０３−１００の場所を正確に決定しその場所をユーザに示さなければならないことを理解し、プロセスはブロック１０８−４２２を続行する。すなわち、ユーザはナビゲーション更新を要求する。
【０６３１】
従って、後述するＧＰＳ受信機ユニット１０３−１００の構成要素は、ブロック１０８−４２２で始動される。Ｍ１１基準の時刻の更新に関係する構成要素は、ブロック１０８−４２２で始動される。例えば、無線１０４−２０２、ＧＰＳ発振器１０４−２０４、温度センサ１０４−２０６、ナビゲーション・プロセッサ１０４−２１０、整合フィルタ１０４−２１２、Ａ／Ｄ変換器１０４−２１４、ローカルＧＰＳクロック生成器１０４−２１６、エッジ整列比率カウンタ１０４−２１８および／またはメモリ１０４−２２０が始動される。
【０６３２】
さらに、ＧＰＳ受信機ユニット１０３−１００は、Ｍ１１基準の時刻の更新とは関係しないがブロック１０８−４２２で始動される付加的な構成要素を含むかもしれない。例えば、ディスプレイ（図示せず）および関係する回路が、決定した位置情報をユーザに示すために使用されるかもしれない。従って、ディスプレイは始動されなければならない。対照的に、ディスプレイは、位置情報が上述の通り（ブロック１０８−４０６〜１０８−４１６）Ｋ３２基準の時刻の更新の間は表示されなかったので、ブロック１０８−４０６で始動される必要はなかった。一実施形態において、これらの付加的な構成要素は、ブロック１０８−４０６で上述の構成要素と同時に始動される。
【０６３３】
別の実施形態では、これらの付加的な構成要素の始動は、ナビゲーション更新が完了するまで遅延される。従って、ブロック１０８−４２２は２つの別個のブロックとして示され、付加的な構成要素の始動はフローチャート１０８−４００における以後の箇所に新しいブロックが挿入されて示されるであろう。ＧＰＳ受信機ユニット１０３−１００が更新位置を決定した後、これらの付加的な所定の構成要素は、更新された位置がユーザに示されるように始動される。例えば、ＧＰＳ受信機ユニット１０３−１００は、少なくとも決定した位置情報をユーザに示すディスプレイ（図示せず）および関係する回路を含むかもしれない。位置更新が要求された場合にのみこれらの付加的な所定の構成要素の再給電を遅延させるそうした代替実施形態は、電力を節約するために特に有利である。すなわち、所定の付加的な構成要素がクロックの再較正および関係するナビゲーション更新に必要とされない場合、ウェークアップ・コマンドを受け取る時まで所定の構成要素をスリープ・モードに維持することは、電力をさらに節約する。
【０６３４】
ブロック１０８−４２４で、温度センサ１０５−３０８が、Ｋ３２発振器１０５−３０２の温度を測定し、低電力時刻保持回路１０４−２００によって維持されたＫ３２基準の時刻を、ブロック１０８−４０８〜１０８−４１６で上述のプロセスを用いて温度／周波数誤差表１０４−２２４から決定される補正係数を用いてその時刻を補正することによって補正する。すなわち、Ｋ３２基準の時刻は、スリープ期間中に生起するあらゆる温度／周波数のずれについて補正される。
【０６３５】
ブロック１０８−４２６で、更新されたＫ３２基準の時刻は、エッジ整列比率カウンタ１０４−２１６によってＭ１１基準の時刻に移される。このようにして、ＧＰＳ受信機ユニット１０３−１００は、その構成要素を始動し、ＧＰＳ発振器１０４−２０４によって供給されたＭ１１クロッキング信号からのＧＰＳ時刻を正確に更新するために低電力時刻保持回路１０４−２００からの補正されたＫ３２基準の時刻を使用した。しかし一実施形態において、Ｍ１１クロッキング信号における誤差はＧＰＳ発振器１０４−２０４の温度変化のために生じたのかもしれない。従って、ブロック１０８−４２８で、温度センサ１０４−２０６はＧＰＳ発振器１０４−２０４の温度を測定する。ブロック１０８−４３０で、現在のＧＰＳ発振器１０４−２０４の温度が決定される。ブロック１０８−４３２で、Ｍ１１周波数誤差が温度／周波数表から決定される。
【０６３６】
ブロック１０８−４３６で、更新されたＴ２０エポックは、可視ＧＰＳ衛星１０３−１０２，１０３−１０４，１０３−１０６および／または１０３−１０８の位置およびドップラーを推定するために使用される。可視衛星１０３−１０２，１０３−１０４，１０３−１０６および／または１０３−１０８の推定された位置に基づき、ＧＰＳ受信機ユニット１０３−１００は、ブロック１０８−４３８で整合フィルタ１０４−２１２またはＧＰＳ信号プロセッサ１０４−２０８を使用して可視衛星１０３−１０２，１０３−１０４，１０３−１０６および／または１０３−１０８のＰＮ符号位相（モジュロ１ミリ秒）を測定する。その後、ブロック１０８−４４０で、推定されたＴ２０エポックは、衛星１０３−１０２，１０３−１０４，１０３−１０６および／または１０３−１０８の各々について、予測される現在の全ＰＮ符号位相を週の時刻（ＴＯＷ）として計算するために使用される。すなわち、ＧＰＳ受信機ユニット１０３−１００は、予測される完全なＰＮ符号位相を週の時刻として計算するためにモジュロ１ミリ秒のＰＮ符号位相を正確に推定するためにＧＰＳ発振器１０４−２０４からの更新されたＭ１１クロッキング信号を使用する。
【０６３７】
ブロック１０８−４４３で、完全な符号位相は、測定されたＰＮ符号位相（モジュロ１ミリ秒）に一致するように補正される。ブロック１０８−４４４で、ナビゲーション解は、推定され補正された全ＰＮ符号位相に基づいて計算される。次にブロック１０８−４４６で、計算されたナビゲーション解は時間の単位で以前のナビゲーション解と比較される。
【０６３８】
ブロック１０８−４４８で、ＧＰＳ受信機ユニット１０３−１００の計算された位置が以前のナビゲーション解の時刻から±０．５ミリ秒未満（１ＰＮ符号未満）だけ変化したかどうかが決定される。決定した変化が±０．５ミリ秒より大きければ（ＮＯ状態）、プロセスはブロック１０８−４５０を続行し、それによりＧＰＳ受信機ユニット１０３−１００はＧＰＳ時刻を確立するためにＧＰＳ衛星１０３−１０２，１０３−１０４，１０３−１０６および／または１０３−１０８の各々から６秒サブフレーム全体を収集する。ブロック１０８−４５２で、ＧＰＳ受信機ユニット１０３−１００は従来方法を使用してナビゲーション解を更新し、それによってＧＰＳ受信機ユニット１０３−１００の位置を正確に決定する。
【０６３９】
しかし、ブロック１０８−４４８で位置の変化が±０．５ミリ秒以下であると決定された場合（ＹＥＳ状態）、ＧＰＳ受信機ユニット１０３−１００は低電力時刻保持回路１０４−２００によりＧＰＳ時刻を正確に維持していたことになる。従って、プロセスはブロック１０８−４５４を続行し、それにより補正されたＴ２０エポックが使用されて上述のようにしてエッジ整列比率カウンタ１０４−２１８を用いて低電力時刻保持回路１０４−２００のＭ１１時刻を更新する。このようにして、Ｋ３２クロッキング信号は、次の停止期間に備えて正確に決定されたＧＰＳ  Ｔ２０時刻と相関づけられる。
【０６４０】
一実施形態において、温度／周波数誤差表１０４−２２４に存在するデータは、上で収集された温度および周波数情報で更新される。すなわち、この実施形態は、獲得した温度および周波数データを使用して温度／周波数誤差表１０４−２２４のデータを継続的に更新し、それによって温度／周波数誤差表１０４−２２４から決定される以降の補正係数の精度を向上させる。
【０６４１】
ブロック１０８−４５８で、ＧＰＳ受信機ユニット１０３−１００がオンのままでいるべきか否かの決定がなされる。ＧＰＳ受信機ユニット１０３−１００がオンのままでいるべきであれば（ＹＥＳ状態）、プロセスはブロック１０８−４６０を続行し、それによりＧＰＳ受信機ユニット１０３−１００は他の機能を実行する。そうした他の機能については、そのような機能が停止期間中に時刻を正確に維持することと必ずしも関連するわけではないので、ここでは詳述しない。これらの他の機能が実行された後、プロセスはブロック１０８−４１８へ戻り、上述の通りウェークアップ・コマンドの次の時間が決定される。
【０６４２】
ブロック１０８−４５８でＧＰＳ受信機ユニット１０３−１００がオンのままでいるべきいかなる理由も存在しないと決定された場合（ＮＯ状態）、プロセスは直接ブロック１０８−４１８に進む。すなわち、プロセスはブロック１０８−４１８を続行し、それによりＧＰＳ受信機ユニット１０３−１００はエネルギーを節約するために停止されるが、低電力時刻保持回路１０４−２００がＧＰＳ時刻を正確に維持する。
【０６４３】
ＧＰＳ受信機ユニット１０３−１００の上述の実施形態は一般に、ＧＰＳ発振器１０４−２０４が停止されている期間中に正確なＧＰＳ時刻が維持されるように、Ｋ３２発振器１０５−３０２から導出されるＫ３２クロック信号およびＧＰＳ発振器１０４−２０４から導出されるＭ１１クロッキング信号を更新することとして説明される。他の実施形態は、ＧＰＳ衛星からの場所の決定に関係する多様な他のクロッキング信号を更新する。さらに、ＧＰＳ発振器１０４−２０４は、１１ＭＨｚにほぼ等しい振動周波数を有する信号を供給するものとして説明した。同様に、Ｋ３２発振器１０５−３０２は、３２ｋＨｚにほぼ等しい振動の周波数を有する信号を生成するものとして説明した。ＧＰＳ受信機ユニットの他の実施形態は、ＧＰＳ発振器１０４−２０４およびＫ３２発振器１０５−３０２の振動周波数と異なる振動の周波数を有する低電力時刻保持回路に存在するＧＰＳ発振器および／または発振器により具体化することができる。さらに、低電力時刻保持回路は、構成要素が電源を切断されている期間の間にＧＰＳ時刻精度を維持するために使用されるほぼ３２ｋＨｚのクロッキング信号を供給するものとして説明した。他の実施形態において、低電力時刻保持回路１０４−２００から供給されるクロッキング信号は、ＧＰＳ受信機ユニットに存在する他の構成要素にクロッキング信号を供給するために使用される。しかし、そうした構成要素は、本発明の動作および機能を理解するために必要な程度を超えては詳述しない。
【０６４４】
代替実施形態において、温度センサ１０４−２０６および１０５−３０８は、ＧＰＳ発振器１０４−２０４およびＫ３２発振器１０５−３０２の動作温度が検出されるように、適切に配置された単一の温度センサによって代替されるか、または組み込まれる。そのような温度センサはさらに、ナビゲーション・プロセッサ１０４−２１０に信号を直接供給するように機器構成してもよい。この実施形態は、構成要素の数を減らし、対応するコスト、サイズおよび電力消費の低減を提供するかもしれない。
【０６４５】
図１０３および１０４における例示の便宜上、また本発明の動作および機能性を解説する便宜上、検知された温度を処理し、Ｋ３２発振器１０５−３０２およびＧＰＳ発振器１０４−２０４からの信号における合計の周波数誤差を計算することは、ウェークアップ・アラーム論理１０４−２２２の一部として存在するロジックのような、ナビゲーション・プロセッサ１０４−２１０によるロジックの実行によって具体化されるものとして図示説明した。代替として、処理は異なるプロセッサによって具体化されることもできよう。さらに、検知された温度を処理するためのロジックおよびＫ３２発振器１０５−３０２からの信号の合計の周波数誤差を計算するためのロジックは、メモリ１０４−２２０または別の適切なメモリに存在する専用論理モジュール（図示せず）に存在することもできよう。その上、ＬＰクロック温度／周波数誤差表１０５−３２２および／またはＧＰＳクロック温度／周波数誤差表１０４−２２４は、便宜上メモリ１０４−２２０に存在するものとして示した。検知温度表は、代替的な場所に、かつ／または適切な代替記憶媒体に存在することもできよう。あらゆるそうした代替的な具体化は、この開示の範囲内であり添付する特許請求の範囲によって保護されることを意図されている。
【実施例９】
【０６４６】
上記の説明に関して、一実施形態のＧＰＳシステムは、後述の通りエッジ整列比率カウンタ（ＥＡＲＣ）を含む。ここで使用されるいくつかの用語についての定義は以下の通りである。これらの定義は、代表的な例として提示されており、以下で実現される実施形態を限定するものとはみなされない。「サンプリング・エッジ」は、「サンプリング・ポイント」として指定された、「基準クロック」のエッジであって、立ち上がりエッジまたは立ち下がりエッジである。「サンプリング・ポイント」は、「サンプル・クロック」の値をサンプルするために使用される「基準クロック」のエッジである。「サンプル値」は、「サンプリング・ポイント」で得られた「サンプル・クロック」の論理値（０または１）である。「ターゲット・エッジ」は、「サンプリング・ポイント」が整列しようと試みる、「サンプル・クロック」のエッジであって、立ち上がりエッジまたは立ち下がりエッジである。「進み」は、以前の「サンプリング・ポイント」よりも「サンプル・クロック」のサイクルにおいて後に生起する「サンプリング・ポイント」である。
【０６４７】
定義を続けて、「スルー」（slew）は、「基準クロックのサンプリング・エッジ」と「サンプル・クロックのターゲット・エッジ」との間のオフセットにおける変化である。スリップは、「スルー」の代替用語である。「コアース・スルー」は、Ｒ０およびＲ１によって生じた２つの「スルー」値のうちの小さいほうの「スルー」である。「ファイン・スルー」は、Ｒ０およびＲ１によって生じた２つの「スルー」値のうちの大きいほうの「スルー」である。「遅れ」は、以前の「サンプリング・ポイント」よりも「サンプル・クロック」のサイクルにおいて早期に「サンプリング・ポイント」が生起するものの後のスルーである。
【０６４８】
さらに、「ロード・パルス」は、「ターゲット・エッジ」が「ファイン・スルー」の間に検出された時に「基準クロック」カウンタおよび「サンプル・クロック」カウンタの値を各自のレジスタに転送する。「マジック・ゲート」は「ロード・パルス」の別名である。
【０６４９】
図１０９は、一実施形態のもとでのエッジ整列比率カウンタ（ＥＡＲＣ）１０９−１００のブロック図である。一般に、エッジ整列比率カウンタの目的は、第２のクロックに対する第１のクロックの周波数を測定することである。これは、第２のクロックの特定の数のサイクルＣ２の間、第１のクロックのサイクルＣ１をカウントすることによって行われ得る。その際、クロック周波数Ｆ１とクロック周波数Ｆ２との比は、Ｒ＝Ｆ１／Ｆ２≒Ｃ２／Ｃ１である。この公式における近似は、２つのクロックが同期していなければ、指定された数のＣ２サイクルの間にカウントされたクロックＣ１の最大２サイクル分の曖昧さが常に存在するはずであるという事実から生じる。Ｃ１の最後の部分サイクルがどの程度経過したかが正確にはわからないので、不等式Ｃ２／（Ｃ１＋２）≦Ｒ≦Ｃ２／Ｃ１は、測定の不確実性を表す。測定の精度を改善するために、測定間隔は増やすことができる。これは、測定時間および回路における電力消費を犠牲にして改善を提供する。
【０６５０】
一実施形態のＥＡＲＣは、２つのクロックのエッジが整列している時点の間で測定を行うように構成することによって、著しく短縮した測定時間とともに、測定精度を改善する。そうすることによって、クロック・サイクルの比は整数値の比となり、曖昧なサイクルが除去される。後述の通り、エッジはこの方法によって完全に整列されることはできないが、それらは一般にナノ秒未満の精度で整列され得る。しかし、実施形態はそのように限定されるものではない。達成され得る正確な整列精度は、クロック周波数のおおよその比および、ジッターや周波数の変動の範囲といったクロックの特性の関数である。
【０６５１】
図１０９のＥＡＲＣ１０９−１００に言及すれば、測定される２つのクロック信号は、基準クロック１０９−１０２およびサンプル・クロック１０９−１０４である。基準クロック１０９−１０２は、基準クロック・カウンタ１０９−１０６と称する第１のフリーラン連続カウンタを駆動する。サンプル・クロック１０９−１０４は、サンプル・クロック・カウンタ１０９−１０８と称する第２のフリーラン連続カウンタを駆動する。基準クロック・カウンタ１０９−１０６は関係する基準カウント・レジスタ１０９−１１６と結合し、サンプル・クロック・カウンタ１０９−１０８は関係するサンプル・カウント・レジスタ１０９−１１８と結合している。測定を行うために、基準カウント・レジスタ１０９−１１６およびサンプル・カウント・レジスタ１０９−１１８は、２つのクロック１０９−１０２および１０９−１０４のクロック・エッジが緊密に整列した瞬間にカウンタ値をロードされる。
【０６５２】
基準カウント・レジスタ１０９−１１６およびサンプル・カウント・レジスタ１０９−１１８のロードの後、マイクロプロセッサ（図示せず）が基準カウント・レジスタ１０９−１１６およびサンプル・カウント・レジスタ１０９−１１８の値を読出す。周波数比を計算するために、２組のカウンタ値が読取られ、この場合カウンタ値の各組はエッジ整列の時点で得られる。その後、読取られた２つのカウンタ値の差異は、以下の公式を用いて周波数比を計算するために使用される。
Ｒ＝（Ｃ２Ｒｅｆ−Ｃ１Ｒｅｆ）／（Ｃ２Ｓｍｐ−Ｃ１Ｓｍｐ）
ここで、
Ｃ１Ｒｅｆ＝整列時刻１での基準クロック・カウント値
Ｃ２Ｒｅｆ＝整列時刻２での基準クロック・カウント値
Ｃ１Ｓｍｐ＝整列時刻１でのサンプル・クロック・カウント値
Ｃ２Ｓｍｐ＝整列時刻２でのサンプル・クロック・カウント値
【０６５３】
カウンタ値Ｃ２Ｒｅｆ，Ｃ１Ｒｅｆ，Ｃ２Ｓｍｐ，Ｃ１Ｓｍｐは、２つのクロック・エッジが緊密に整列した時点で獲得されるので、サイクル・カウントの差異は整数値であり、結果は高精度である。
【０６５４】
エッジが整列した時にカウンタ値Ｃ２Ｒｅｆ，Ｃ１Ｒｅｆ，Ｃ２Ｓｍｐ，Ｃ１Ｓｍｐを獲得するために、ダウン・カウンタが基準クロック１０９−１０２を用いて特定の間隔を測定するために使用されるが、実施形態はそのように限定されるものではない。このダウン・カウンタは、ここでサンプリング・カウンタ１０９−１２０と呼ばれる。サンプリング・カウンタ１０９−１２０は、少なくとも１つのマルチプレクサ１０９−１４４を通じてＲ０レジスタ１０９−１３０およびＲ１レジスタ１０９−１３２の内容を受け取るために結合される。サンプリング・カウンタ１０９−１２０は、基準クロック１０９−１０２からの信号によりクロックされる。
【０６５５】
動作中、サンプリング・カウンタ１０９−１２０は、それぞれ、Ｒ０レジスタ１０９−１３０またはＲ１レジスタ１０９−１３２からの２つのカウント値Ｒ０またはＲ１のうちの一方を用いてロードされる。サンプリング・カウンタ１０９−１２０のカウンタ値がゼロに達するごとに、サンプリング・カウンタ１０９−１２０は、サンプラ＆エッジ検出器１０９−１２２に有効化信号Ｅｎｂを供給し、それによって基準クロック１０９−１０２のエッジがサンプル・クロック１０９−１０４の値をサンプルするのを可能にする。サンプルは、後述の通りサンプル・クロック１０９−１０４のエッジを検出するために使用される。
【０６５６】
図１１０は、図１０９の実施形態のもとでＥＡＲＣを用いたサンプリングおよびエッジ検出１１０−２００を示している。一番上の線１１０−２０２は、ダウン・カウンタが０値に当たった時に生起するサンプリング・イベントを示す。サンプリング・エッジ１１０−２０４で、サンプル・クロック１０９−１０４の値が基準クロック１０９−１０２のエッジによって獲得される。このサンプリング・プロセスの最初の例は、サンプル１のイベントで示されている。基準クロック１０９−１０２のサンプリング・エッジ１１０−２０４は、獲得されるサンプル・クロック１０９−１０４の値を指示して示されている。サンプル１のイベントにおいて、獲得された値は１である。
【０６５７】
ダウン・カウントがゼロに達すると、サンプリング・カウンタ１０９−１２０は、サンプラ＆エッジ検出器１０９−１２２の制御のもとでＲ０レジスタ１０９−１３０またはＲ１レジスタ１０９−１３２のどちらか一方からの値を再ロードされる。これが最初のサンプルであるので、いずれのエッジも検出されていない。この場合、最初のダウン・カウントは、ここでＲ０値と呼ぶＲ０レジスタ１０９−１３０からの値を使用すると仮定する。いずれのエッジも検出されなかったので、Ｒ０値が再びロードされるであろう。Ｒ０サイクルに等しい基準クロック１０９−１０２の多数のサイクルの後、サンプリング・カウンタ値は再びゼロになり、サンプル・クロック１０９−１０４はサンプル２のイベントに図示の通り１１０−２０４で再びサンプルされる。サンプル値は依然として１であるが、基準クロック１０９−１０２のサンプリング・ポイントがサンプル・クロック１０９−１０４に対してわずかに「進め」られていることに留意されたい。サンプル１およびサンプル２は両方とも同じ値（１）を有するので、いかなるエッジも検出されず、Ｒ０値が再びサンプリング・カウンタ１０９−１２０にロードされる。サンプル３およびサンプル４のイベントで、１の値が再び１１０−２０４でサンプルされ、Ｒ０値が再びサンプリング・カウンタ１０９−１２０にロードされる。
【０６５８】
続いてサンプル５のイベントで、サンプル値はこの時にゼロである。立ち下がりエッジが検出されるべきターゲット・エッジであり、サンプル・フェーズが進みであるということがわかっていれば、１から０へのサンプル値の移行は立ち下がりエッジ１１０−２１０が検出されたことを意味する。立ち下がりエッジ１１０−２１０が検出されると、サンプリング・カウンタ１０９−１２０にロードされる値は切換えられる。Ｒ０値がそれまで使用中の値であったので、値は、ターゲット・エッジが検出された時に、Ｒ１値と呼ばれるＲ１レジスタ１０９−１３２からの値に切換えられる。
【０６５９】
Ｒ１値は、ここで述べるようにサンプリング・カウンタ１０９−１２０へのロードのために選択されて、基準クロック１０９−１０２のサンプリング・フェーズを、サンプル・クロック１０９−１０４に対して反対方向１１０−２２０（ここでは「遅れ」方向１１０−２２０と称する方向）でスルーを生じさせる。このようにして、サンプル６のイベントで、サンプリング・フェーズは早くなる（すなわち、遅れる）。いかなるエッジも検出されなかった（このエッジは先行エッジと同じ値（０）である）ので、Ｒ１値が再びサンプリング・カウンタ１０９−１２０にロードされる。その後、サンプル７のイベントで、サンプル値は１に移行する。サンプル値の０から１への移行は、「遅れ」スルー値（Ｒ１値）が使用されているという事実と結びつき、「立ち下がり」エッジが検出されたことを指示する。従って、Ｒ０値が、カウント・ダウン値としての使用のためにサンプリング・カウンタ１０９−１２０にロードされる。
【０６６０】
上記の例は、Ｒ０およびＲ１値の正しい選択を前提として、サンプリングの瞬間がサンプル・クロック１０９−１０４の所望のエッジにわたって前後にスルーできることを示している。従って、この例は、サンプリング・カウンタ１０９−１２０にロードされる値の関数としてサンプリングの瞬間を進める、遅らせるという概念を示している。また、Ｒ０およびＲ１値の各々のスルー増分が異なり得るという概念も実証されている。例示した例において、Ｒ０値はコアース・スルーでありＲ１値はファイン・スルーであり、この場合、コアース・スルーは、サンプリング・ポイントをファイン・スルーよりもサンプル・クロック期間に沿ってより遠くに移動させるが、実施形態はそのように限定されるものではない。
【０６６１】
実施形態のＥＡＲＣ１０９−１００において、基準クロック・カウンタ１０９−１０６およびサンプル・クロック・カウンタ１０９−１０８は、所望のエッジが検出された時にレジスタに格納される。実際上、ファイン・スルーを使用している間に生起するエッジ検出は、これらの値をラッチするために使用されるが、そのように限定されるものではない。この選択がなされるのは、ファイン・スルーがエッジ整列においてより小さい誤差をもたらし、サンプル・クロック測定期間において対応したより小さい誤差をもたらすからである。
【０６６２】
ＥＡＲＣの例として、図１１１は本発明に従ったエッジ整列比率カウンタ装備を備えるパーソナル通信装置１１１−１００のブロック図である。クロック分配カウンタ１１１−１１０は、レジスタ１１１−１０およびレジスタ１１１−１１を含む。また、レジスタ１１１−１０およびレジスタ１１１−１１からの入力値だけでなく検査中のクロックからのクロック信号ＣＬＫ１の入力も交互に選択し受信する、制御信号発生器１１１−１５も設けられている。これは例えば、電気通信受信機のクロック信号源（クロック）からのクロック信号としてよい。第２のクロック信号ＣＬＫ２は、評価中の第２のクロック源から受信される。ＣＬＫ２は例えば、全地球測位システム（ＧＰＳ）受信機のクロック源からのクロック信号としてよい。レジスタ１１１−１０および１１１−１１に格納される値は事前に選定されている。これらの値の選定は以下でさらに詳細に検討する。制御信号発生器１１１−１５は、カウント獲得部１１１−１６に供給される制御信号Ｓ２を生成することによってこれらの入力に応答する。
【０６６３】
図１１２は、本発明に従った分配カウンタ１１２−１１０の実施形態のより詳細な説明を示している。制御信号発生器１１１−１５は、マルチプレクサ１１２−２６、減分カウンタ１１２−１７、フリップ・フロップ１１２−１９およびパルス発生器１１２−２０を含むことがわかる。マルチプレクサ１１２−２６は、フリップ・フロップ１１２−１９からのエッジ移行信号Ｓ１に従ってレジスタ１１１−１０またはレジスタ１１１−１１のどちらか一方からの入力間で選択するために使用される。どちらのレジスタ（１１１−１０または１１１−１１）がマルチプレクサ１１２−２６によって選択されるかに応じて、選択されたレジスタ１１１−１０または１１１−１１の内容が減分カウンタ１１２−１７に入力される。減分カウンタ１１２−１７にロードされた値はその後、クロック信号ＣＬＫ１の各パルスについて１ずつ減分される。減分カウンタ１１２−１７の内容がゼロ（０）値に達すると、減分カウンタ１１２−１７はフリップ・フロップ１１２−１９に有効化信号１１２−２２を送信する。フリップ・フロップ１１２−１９はその後、クロック信号ＣＬＫ１およびＣＬＫ２の入力に従って、エッジ移行信号Ｓ１を出力する。フリップ・フロップ１１２−１９からのエッジ移行信号Ｓ１はまた、パルス発生器１１２−２０にも供給される。エッジ移行出力Ｓ１に応答して、パルス発生器１１２−２０は制御信号Ｓ２を生成する。制御信号Ｓ２はその後、それぞれ、増分カウンタ１１２−７および１１２−５の内容を受け取るために分子ラッチ１１２−１および分母ラッチ１１２−４を有効化するために使用される。分子ラッチ１１２−１および分母ラッチ１１２−４の内容は、読出され、クロック信号ＣＬＫ１の周波数とクロック信号ＣＬＫ２の周波数との間の分配を特定するために使用され得る。
【０６６４】
図１１３は、クロック信号ＣＬＫ１、クロック信号ＣＬＫ２およびエッジ移行信号Ｓ１の関係を例示している。ＣＬＫ１およびＣＬＫ２は両方とも、立ち上がりエッジ１１３−７０および立ち下がりエッジ１１３−７１を有する。検討の目的で、立ち上がりエッジ１１３−７０および立ち下がりエッジ１１３−７１は移行エッジであることが理解されるであろう。図１１３から、クロック信号ＣＬＫ１およびクロック信号ＣＬＫ２が、一致して互いに同期している移行エッジを有する瞬間が、常にではないが、再発するシナリオであることがわかる。図１１３は、点Ａにおいて、クロック信号ＣＬＫ２の立ち上がりエッジ１１３−７０がローからハイへ移行し始めるのと同時に、クロック信号ＣＬＫ１の立ち上がりエッジ１１３−７０がローからハイへ移行し始めることを示している。それに応じて、フリップ・フロップ１１２−１９からのエッジ移行信号Ｓ１はローからハイへ変わり、制御信号Ｓ２が生成される。同様に、点Ｂにおいて、クロック信号ＣＬＫ２の立ち下がりエッジ１１３−７１がハイからローへ移行し始めるのと同時に、クロック信号ＣＬＫ１の立ち下がりエッジ１１３−７１がハイからローへ移行し始める。それに応じて、フリップ・フロップ１１２−１９からのエッジ移行信号Ｓ１はハイからローへ変わり、制御信号Ｓ２がやはり生成される。
【０６６５】
図１１４に関して、携帯型の通信装置１１１−１００の別の実施形態が例示されている。ここでは、本発明の比率カウンタ１１１−１１０が携帯型の通信装置１１１−１００のベースバンド部１１４−１５０の一部として組み込まれていることがわかる。クロック信号ＣＬＫ１をベースバンド部１１４−１５０の比率カウンタ１１１−１１０に供給する符号分割多元接続（ＣＤＭＡ）無線周波数（ＲＦ）部１１４−１２５が設けられている。さらに、第２のクロック信号ＣＬＫ２をベースバンド部１１４−１５０の比率カウンタ１１１−１１０に供給する全地球測位システム（ＧＰＳ）無線周波数部１１４−１３０が設けられている。比率カウンタの出力は、回路動作を最適化し電力消費の低減を可能にするために、携帯型の通信装置１１１−１００の回路によって利用される。
【０６６６】
パーソナル通信装置１１１−１００において、２つのクロック信号ＣＬＫ１およびＣＬＫ２の周波数間の比を示す情報が生成され、装置回路による使用のために出力される。レジスタ１１１−１０またはレジスタ１１１−１１のうちのいずれか一方は基準クロック周波数を表現する値を格納するために使用され、レジスタ１１１−１０またはレジスタ１１１−１１の他方は第２のクロックの周波数の厳密な近似を表現する値を格納するために使用される。これらの値はその後、減分カウンタ１１２−５および１１２−７のカウント値が獲得され、必要に応じて読出されるようにするための制御信号Ｓ２を生成するために交互に使用される。一般に、図１１４の携帯型の通信装置１１１−１００において、ＣＤＭＡ  ＲＦ部１５８−１２５を駆動するクロック信号ＣＬＫ１は、相対的に安定しており、既知の周波数のものである。一方、ＧＰＳ  ＲＦ部１１４−１３０を駆動するＧＰＳクロック信号ＣＬＫ２は、たいてい水晶発振器によって生成され、あまり安定していないので、従っていずれかの任意の時点でのＣＬＫ２の周波数の精度は変化しがちである。これは、水晶発振器の振動数が温度の変化とともに変動する傾向があるという事実に起因する。この場合、レジスタ１１１−１１はある値がロードされる。すなわち、ＧＰＳクロック信号ＣＬＫ２の周波数の厳密な近似値が第２の値としてレジスタ１１１−１１にロードされる。
【０６６７】
本発明の好ましい実施形態において、レジスタ１１１−１０およびレジスタ１１１−１１にロードされる値は、連分数の収束の原理に基づく計算に従って選択される。より詳細には、連分数の収束が、実際の分配の有理数の近似値の系列を生成するために使用される。それらの分配はその後、それぞれ、レジスタ１１１−１０およびレジスタ１１１−１１に入力される値として使用される。
【０６６８】
実数ｘの連分数展開は、次のような方程式によって表現される。
ａ０＋［１／（ａ１＋［１／（ａ２＋．．．）］）］
【０６６９】
ここで、整数ａ１，ａ２，ａ３．．．は部分商である。有理数は有限個の部分商を有し、有理数は無限の連分数展開を有する。数ｘが部分商ａ０，ａ１，．．．を有するならば、初めのｎ個の部分商ａ０，ａ１，．．．，ａｎを考慮することによって形成される有理数ｐｎ／ｑｎは、ｘの第ｎ次の収束と呼ばれる。その数の収束は、任意の実数に対し小さな分母を備える有理数の近似値を与える。連続的な収束は、正および負に振動する誤差を有しており、その誤差は例えばクロック信号ＣＬＫ１の周波数とクロック信号ＣＬＫ２の周波数との間の正確な比に順次収束していく。この観点から、連分数展開は、ＥＡＲＣ１１１−１００のレジスタ１１１−１０およびレジスタ１１１−１１にロードされるべき値（除数）を選定するために有用である。
【０６７０】
図１１５は、本発明の２つのクロック周波数間の比を決定する方法を例示しているフローチャートである。第１のクロック信号の連続するクロック・パルスが所定の継続時間にわたりカウントされ（１１５−３００）、第２のクロック信号の連続するクロック・パルスが継続時間にわたりカウントされる（１１５−３０２）。その後、第１のクロック信号の移行エッジが第２のクロック信号１１５−３０５の移行エッジと一致して同期しているかどうかが判定される。そうであれば、継続時間の経過を信号で知らせる制御信号が生成される。継続時間の経過時に第１のクロック信号１１５−３１０および第２のクロック信号１１５−３１２のクロック・パルスのカウントを読出す。
【０６７１】
本発明の比率カウンタ１１１−１１０は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで具体化することができる。好ましい実施形態（単数または複数）において、本発明１１１−１００は、メモリに記憶され、適切な命令実行システムによって実行されるソフトウェアまたはファームウェアにおいて具体化されている。代替実施形態におけるように、ハードウェアにおいて具体化される場合、本発明１１１−１００は、すべて当該技術分野において周知である以下の技術のいずれか、または組合せにより具体化することができる。すなわち、データ信号に関して論理機能を具体化するための論理ゲートを有する個別論理回路（単数または複数）、適切な論理ゲートを有する特定用途向け集積回路、プログラマブル・ゲート・アレイ（ＰＧＡ）（単数または複数）、完全にプログラム可能なゲート・アレイ（ＦＰＧＡ）、等々。
【０６７２】
図１１５のフローチャートは、ソフトウェアにおける本発明の比率カウント方法の可能な具体化のアーキテクチャ、機能および動作を示している。これに関して、各ブロックは、特定の論理的機能（単数または複数）を具体化するための１つ以上の実行可能命令を含む、符号のモジュール、セグメントまたは部分を表している。また、一部の代替的な具体化において、ブロックに記載された機能が図１１５に記載された順序から外れて生起し得ることも留意しなければならない。例えば、図１１５において連続して示された２つのブロックが実際はほぼ同時に実行されるかもしれず、またはブロックが時には、以下でさらに明らかにされる通り、関与する機能に応じて、逆順で実行されるかもしれない。
【実施例１０】
【０６７３】
ＣＤＭＡ信号環境では、補正する必要がある相互相関および／または自己相関の問題が生じる。一実施形態のＧＰＳシステムは、検出された信号の信号強度が、受信機によって予想されたよりも微弱な場合に、ロックするために、信号強度を検査するシステムを含む。予測され特定された（ロッキング）信号が強力であるか、または少なくとも微弱ではない場合、検査はまったく必要ではない。しかし、信号対ノイズ比測定または他の方法によって、決定した信号が所定の信号強度を下回っているとわかった場合、受信機は不適切なロッキング信号を受信しているかもしれず、それゆえ受信機がロックしている信号が自己相関または相互相関のゴースト信号であるかもしれない。本発明は、そのような自己相関および／または相互相関の問題を低減または排除する方法を検討する。
【０６７４】
図１１６は、典型的な符号分割多元接続（ＣＤＭＡ）信号のフローを例示している。例えばＧＰＳ受信機システム、セルラー電話システムなどの多くのシステム１１６−１００において、ＣＤＭＡ入力信号１１６−１０２は、ベースバンド信号への変換のためにＲＦダウンコンバータ１１６−１０４に入る。これらのベースバンド信号はその後、ＣＤＭＡ入力信号１１６−１０２のデジタル・サンプルを得るためにサンプラ１０６においてサンプリングされる。一般に、特にＧＰＳ受信機システム１１６−１００では、これらのサンプルはその後、相関器エンジン１１６−１０８に、それから中央処理装置（ＣＰＵ）１１６−１１０に送られる。
【０６７５】
本発明は、信号１１６−１１２がＣＰＵ１１６−１１０に到達するための別個の経路を可能にする。相関器エンジン１１６−１０８で使用されるものと同じサンプルである信号１１６−１１２は、ＣＰＵ１１６−１１２に直接、または随意選択でバッファ１１６−１１４を介して送られる。信号１１６−１１２は処理のために同じＣＰＵ１１６−１１２（そのＣＰＵは一般にＡＲＭ７である）に直接送ることができるが、信号１１６−１１２は別個のデジタル信号プロセッサ（ＤＳＰ）に、または代替として、単一の集積回路（ＩＣ）チップ上にＤＳＰおよびＡＲＭ７を組み込んでいるＣＰＵ１１６−１１２に送られ得る。さらに、相関器エンジン１１６−１０８、ＣＰＵ１１６−１１０および随意選択のバッファ１１６−１１４は、システム１１６−１００のより少ない電力消費、より小型のパッケージング等を可能にするために、単一のＩＣチップ上に置くことができる。ＲＦダウンコンバータ１１６−１０４もまた、必要に応じて単一のＩＣチップシステム１１６−１００を提供するために、相関器エンジン１１６−１０８、ＣＰＵ１１６−１１０、サンプラ１１６−１０６および随意選択のバッファ１１６−１１４と統合されることができる。さらに、統合の容易さのために、ＣＰＵ１１６−１１０は信号１１６−１１６および１１６−１１８を異なるポートで受け入れることができるし、または信号１１６−１１６および１１６−１１８が別個のＣＰＵ１１６−１１０に送られる、例えば信号１１６−１１６がＤＳＰに送られ、信号１１６−１１８がＡＲＭ７に送られることができる。単一または複数のＣＰＵ１１６−１１０が存在する他の機器構成が、本発明により実現され得る。図１１６は、本発明の範囲内の信号のフローの可能性を網羅的ではないが、例証している。
【０６７６】
一般に、通信システムにおいて、ＧＰＳ受信機システム１１６−１００は、セルラー電話システム１１６−１２０といった伝送を可能にする別のシステムと同じ場所に配置される。一般にセルラー電話機に配置されるセルラー電話送受信機１１６−１２２は、無線またはハード・ワイヤード・リンクで信号１１６−１２４を送受信することができる。そのようなシステム１１６−１２０は、セルラー電話網、パーソナル通信システム（ＰＣＳ）ネットワークにおいて具体化されるか、または、携帯情報端末（ＰＤＡ）、ラップトップ・コンピュータまたは、無線またはハード・ワイヤード通信リンクによってデータを送信および／または受信できるいずれかの他の装置として具体化することもできる。
【０６７７】
そのような通信システム１１６−１２０は、ＧＰＳ受信機システム１１６−１００と同じ場所に配置された時に、ＧＰＳ受信機システム１１６−１００を使用して場所を決定し、決定した場所を種々の目的（例えば、無線送受信機１１６−１２２の場所を決定または計算し、所定または所望の場所への方向を決定し、非常事態および／または法執行職員のために無線送受信機１１６−１２２の場所を正確に特定する、位置決めサービスなど）に使用する。
【０６７８】
そうしたものとして、本発明は位置決めサービス・システムにおいて有用であり、その際、ユーザはおそらくセルラー電話の内部に配置されたそれぞれの移動ＧＰＳ受信機システム１１６−１００を使用して、方向を取得したり、何らかの種類のマッピング支援手段がなければ見つけることが難しいであろう近くの目的地、レストランまたは他の物理的な場所を見つけるための支援を取得したりする。セルラー電話または他のモバイル装置は、視覚的にまたは別の態様で、ユーザの位置、地図上のユーザの位置、ユーザの位置と所望の目的地との間の順路または順路の一部、または位置決めサービスに使用され得る任意の数の事柄を表示することができる。
【０６７９】
さらに、本発明はまた、推測航法システムにおいても有用であり、その場合、ジャイロスコープ、走行距離計または他のセンサといった少なくとも１つのセンサがＧＰＳ受信機システム１１６−１００への入力を供給してＧＰＳ受信機システム１１６−１００の位置を計算するうえで選択的に支援する。そのようなシステムは一般に、トンネルや他の自然および人工構造物がＧＰＳ信号の受信を妨げる場所を走行する自動車において使用されるが、セルラー電話、無線送受信機または他の装置において、またはそれらとともに使用することもできる。
【０６８０】
さらに、無線送受信機１１６−１２２およびＧＰＳ受信機システム１１６−１００は両方とも一般に集積回路であることから、パッケージングの容易さ、電力消費の低減または他の理由で、ＧＰＳ受信機システム１１６−１００および無線送受信機１１６−１２２は、単一の集積回路に配置され得るか、または無線送受信機とＧＰＳ受信機システム１１６−１００との間で回路を共用することができる。例えば、ＧＰＳ受信機システム１１６−１００は、ＣＰＵ１１６−１１０の代わりに、またはそれと並行でのどちらかで、無線送受信機１１６−１２２の中央処理装置（ＣＰＵ）１１６−１２６を使用して無線送受信機１１６−１２２の位置を測定するために必要とされる数理計算を実行することができる。さらに、無線送受信機１１６−１２２は、ＧＰＳ受信機システム１１６−１００に基準周波数１１６−１２８を供給するためにローカル発振器１１６−１２８といった回路の他の部分を共用することができ、基準周波数１１６−１２８は無線送受信機１１６−１２２によって使用される基準周波数と同じでも異なってもどちらでもよい。
【０６８１】
無線送受信機１１６−１２２は、ＧＰＳ受信機システム１１６−１００からデータ１１６−１３０を受け入れるだけでなく、ＧＰＳ受信機システム１１６−１００にデータ１１６−１３０を供給することができる。無線送受信機によって受け入れられるデータ１１６−１３０は、生のＧＰＳデータ、疑似距離または決定した位置を含む。無線送受信機によって供給されるデータ１１６−１３０は、エフェメリス情報、時刻情報および粗い位置情報を含む。
【０６８２】
図１１７は、本発明に従った自己相関および相互相関の検査を例示している。
【０６８３】
システム１１７−２００は、システム１１７−２００に入るＲＦ信号１１７−２０２を図示しており、それはブロック１１７−２０４でデシメートされる。デシメート・ブロック１１７−２０４の結果は、ブロック１１７−２０６として図示されたＲＦ信号１１７−２０２からの帯域幅が縮小されたサンプルである。これらのサンプル１１７−２０８は一般に、図１６０に示された相関器エンジン１１６−１０８に渡される。ローカル符号１１７−２１２はその後、ブロック１１７−２１０で到来サンプル１１７−２０８に対して相関づけられ、それはその後、システム１１７−２００がＲＦ入力信号１１７−２０２をトラッキングできるようにトラッカ１１７−２１４に渡される。
【０６８４】
関連技術の設計では、トラッカ１１７−２１４が所望の信号の搬送波をトラッキングしているか、またはトラッカ１１７−２１４が相互相関スプールまたは自己相関スプールとしてよい偽信号をトラッキングしているかどうかを判断しない。本発明では、信号がナビゲーションでの使用のために検査される前に、トラッカ１１７−２１４が正しいまたは所望の信号をトラッキングしているかどうかを確認するための方法および装置を提供する。
【０６８５】
トラッキングされている信号の信号強度はブロック１１７−２１６において検査される。信号強度が所定の強度より大きい、例えば３５ｄＢ・Ｈｚより大きければ、システム１１７−２００は、その信号が偽信号ではない程度に十分に強力であることがわかり、そして信号はブロック１１７−２１８で確認されて、ブロック１１７−２２０でナビゲーション・システムに渡される。しかし、信号が十分な強度ではない場合、自己相関検査ブロック１１７−２２２に入れられる。ブロック１１７−２２２は相互相関検査のための同じブロックとすることができるし、またはコンピュータ符号、ハードウェア回路の異なるブロック、もしくはハードウェア、ソフトウェア、ファームウェアの統合、ここに説明したものに類似の機能を実行するための他の装置および方法とすることができる。さらに、ブロック１１７−２２２は、自己／相互相関状態が存在するかどうかを決定するためのしきい値による信号対ノイズ比（ＳＮＲ）の検査または他のそうした検査とすることができる。そのような検査ブロックは、設計またはユーザの希望に応じて、検査される信号の１特性を有し得るか、検査するべき複数の特性を有し得るか、または自動または手動で選定された検査されるべき１つ以上の特性のうちから選ぶことができる。
【０６８６】
サンプル１１７−２０６は、経路１１７−２２４およびブロック１１７−２２６によって示すようにメモリに記憶される。サンプルが十分なデータを含まない場合、例えば所定量のデータより少ないデータしかない場合、ブロック１１７−２２８はシステムに十分なデータが存在するまでループする。図１６１に示す通り、システム１１７−２００は、処理すべき十分なデータが存在するまで、サンプル・データを記憶し続ける。例えば、ＧＰＳシステムでは、信号が適正な信号であるかどうかを判定するための処理を実行するために２ミリ秒のデータが望ましい。
【０６８７】
ブロック１１７−２３０は、ブロック１１７−２１４でトラッキングされた（またはロックされた）信号が信号窓内の適正な信号であるかどうかを判定するために、記憶されたデータを処理することを示している。相互相関状況において、適正な信号は、所望の（または現在の）衛星符号との相関よりも強い、異なる衛星符号との相関によって決定され得る。自己相関状況では、適正な信号は、ローカルで生成された符号の遅延との相関よりも強い、同じ衛星符号の異なる遅延との相関によって決定され得る。判断ブロック１１７−２３２は、システム１１７−２００が、再びＳＮＲ検査または他の方法によって信号が適正な信号であるか否かを検査することを示している。
【０６８８】
到来信号に関連して第２の経路上にある検査信号に使用される相関方法は、サンプル・データと、同じＰＲＮ符号およびトラッキングされた信号（ロックされた信号）のローカル基準周波数の間の相関を計算することと、サンプル・データと、トラッキングされた信号と同じローカル基準周波数であるが異なるＰＲＮ符号との間の相関を計算することと、サンプル・データと、同じＰＲＮ符号およびトラッキングされた信号のＰＲＮ繰り返し周波数の倍数であるローカル基準周波数の間の相関を計算することと、サンプル・データと、異なるＰＲＮ符号およびロックされた信号のＰＲＮ繰り返し周波数の倍数である異なるローカル基準周波数の間の相関を計算することと、他の相関および方法を含む。信号が適正な信号であれば、信号は経路１１７−２３１によって検査され確認される。信号が適正な信号でなければ、トラッカ１１７−２１４は適正な信号（その適正な信号はブロック１１７−２３０で決定される）にリダイレクトされるか、または別の態様で制御される。
【０６８９】
図１１８Ａおよび図１１８Ｂは本発明の実施形態を例示している。
【０６９０】
システム１１８−３００は、ＣＤＭＡ信号を処理のためにベースバンドにダウンコンバートするダウンコンバータ１１６−１０４に入るＧＰＳ  Ｃｌｅａｒ／Ａｃｑｕｉｓｉｔｉｏｎ（Ｃｏａｒｓｅ／Ａｃｑｕｉｓｉｔｉｏｎとしても知られる）（Ｃ／Ａ）（ＣＤＭＡ形式のＲＦ信号）データ１１６−１０２を示している。ダウンコンバータは、サンプル・ブロック１１６−１０６の一部であるデシメータ１１７−２０４に信号を渡す。それらはシリアル・シフト・レジスタ１１８−３０２に渡されてから、各々、２つの付加的なレジスタ、パラレル・レジスタ１１８−３０４およびシフト・レジスタ１１８−３０６に並列に入れられる。シフト・レジスタ１１８−３０６はロードされた後レジスタ１１８−３０６からシフト・アウトされるのに対し、パラレル・レジスタ１１８−３０４はロードされた後ＣＰＵ１１６−１１０によって直接読出される。パラレル・レジスタ１１８−３０４はＣＰＵ（マイクロプロセッサ）１１６−１１６に直接送信される信号１１６−１１６を供給するのに対し、シフト・レジスタ１１８−３０６は相関器エンジン１１６−１０８に信号を供給する。ドップラー・ローテータ１１８−３０８が、相関器１１６−１０８に供給される信号を周波数に関して正しく整列させるために使用される。
【０６９１】
符号器１１７−２１２から発するローカル符号は、サンプラ１１６−１０６からのサンプル信号の範囲内にロックするべき適正な信号を決定する際に到来サンプルに対して相関づけるために使用される。信号は累算器１１８−３１０に累算され、ピーク検出器１１８−３１２が、トラッカに渡される信号（それは図１１６に示された信号１１６−１１８である）を決定する。符号器１１７−２１２は、相関を支援するために時間および／または位相に関してシフトされる。このシフトは一般に、別個の回路によって行われ、そして本発明では、到来信号が自己相関または相互相関している信号であると決定された時にデータ経路実行によって行われ得る。
【０６９２】
図１１９は、本発明のサンプル・ブロックの詳細を例示している。
【０６９３】
システム１１９−４００は、データをシリアル・シフト・レジスタ１１８−３０４および１１８−３０６に並列で格納するシリアル・シフト・レジスタ１１８−３０２に供給するデシメータ１１７−２０４を図示している。明確さのために、パラレル・レジスタ１１８−３０４およびシフト・レジスタ１１８−３０６は、レジスタがＩデータまたはＱデータを含むかを指示するために、それぞれ、パラレル・レジスタ１１８−３０４Ｉおよび１１８−３０４Ｑ、ならびにシフト・レジスタ１１８−３０６Ｉおよび１１８−３０６Ｑとして図示されている。シフト・レジスタ１１８−３０６はそのデータをドップラー・ローテータ１１８−３０８に渡すのに対して、パラレル・レジスタ１１８−３０４はそのパラレル・データを、すなわち信号１１６−１１６を直接ＣＰＵ１１６−１１０に渡す。やはりＣＰＵ１１６−１１０は、ドップラー・ローテートされ相関した信号を処理する同じＣＰＵ、または別個のＣＰＵとすることができる。さらに、たとえＣＰＵが別個であるとしても、それらは必要に応じて単一のＩＣチップ上に同じ場所で配置され得る。
【０６９４】
付加的な制御線がＣＰＵ１１６−１１０をキャプチャ・クロック１０６（サンプラ）に結合している。線１１９−４０２Ｉおよび１１９−４０２Ｑは、それぞれ、ＣＰＵ１１６−１１０が関係するシフト・レジスタ１１８−３０６Ｉおよび１１８−３０６Ｑからデータを読出した時を指示する。さらに、データ利用可能ステータス線１１９−４０４Ｉおよび１１９−４０４Ｑは、ハイまたはローどちらかの既知の値に設定されて、パラレル・レジスタ１１８−３０４Ｉおよび／または１１８−３０４Ｑが読出しに利用可能であることをＣＰＵ１１６−１１０に知らせる。パラレル・レジスタ１１８−３０４Ｉおよび／または１１８−３０４Ｑが読出されると、データ利用可能ステータスレジスタ１１９−４０４Ｉおよび／または１１９−４０４Ｑはクリアされる。
【０６９５】
図１２０は、本発明を実施するために使用されるステップを例示しているフローチャートである。
【０６９６】
ブロック１２０−５００は、スキャンされた信号窓内に位置する到来ＣＤＭＡ信号を、第１のデータ経路上のローカルに生成された信号と相関づけることを例示している。
【０６９７】
ブロック１２０−５０２は、スキャンされた信号窓内に位置する、第２のデータ経路上の到来ＣＤＭＡ信号を、第１のデータ経路上のロック信号に照らして確かめることを例示している。
【０６９８】
ブロック１２０−５０４は、第２のデータ経路を用いて、到来ＣＤＭＡ信号が、ロック信号またはローカルに生成された信号を自己相関または相互相関している信号と区別する少なくとも１つの特性を有するかどうかを決定することを例示している。
【０６９９】
ブロック１２０−５０６は、ロック信号がその少なくとも１つの特性を欠いている場合に、第２の到来ＣＤＭＡ信号を求めてスキャンされた信号窓を探索し続けることを例示している。
【０７００】
要約すれば、本発明に従った推測航法システムは、ＧＰＳ受信機および少なくとも１つのセンサを備える。ＧＰＳ受信機は第１のデータ経路および第２のデータ経路を備える。第１のデータ経路は、スキャンされた信号窓内に位置する到来ＧＰＳ信号を、ローカルに生成された信号と相関づける。第２のデータ経路は、スキャンされた信号窓内に位置する到来ＧＰＳ信号をロック信号に照らして確かめて、到来ＧＰＳ信号を自己相関している信号と区別する少なくとも１つの特性を到来ＧＰＳ信号が有するかどうかを判定する。ＧＰＳ受信機は、到来ＧＰＳ信号がその少なくとも１つの特性を欠いている場合に第２の到来ＧＰＳ信号を求めてスキャンされた信号窓を探索し続けるために、ローカルで生成された信号を変更することができる。センサは、ＧＰＳ受信機の位置を計算する際に使用するためにＧＰＳ受信機への推測航法入力を選択的に供給する。
【実施例１１】
【０７０１】
ＧＰＳシステムの構成要素を無線通信システム（上述の通り、セルラー、ページング、双方向ページング、携帯情報端末、ブルートゥース、およびＰＣＳシステムを含む）と統合する場合、ＧＰＳシステムは、典型的な無線通信システムのユーザが遭遇するはずである条件下でＧＰＳ衛星を捕捉しトラッキングする能力を有していなければならない。それらの条件の一部、例えば屋内での使用、衛星の観察を妨げる高層建築物を有する繁華街地域におけるような限られた天空視野を有する密集した市街化区域での使用などは、地上波ベースの無線通信システムについては管理可能であるが、ＧＰＳシステムにとっては難しい状況である。例えば、ＧＰＳ受信機がＧＰＳ衛星からの信号を捕捉し、衛星をトラッキングし、必要に応じて、いずれの外部情報もＧＰＳシステムに送達されることなくナビゲーションを実行する、例えば従来のスタンドアロン・モードＧＰＳは、長い初期測位時間（ＴＴＦＦ：Ｔｉｍｅ  Ｔｏ  Ｆｉｒｓｔ  Ｆｉｘ）に伴う問題を抱えており、さらに、屋内または限られた天空視野条件下でのＧＰＳ衛星信号を捕捉する限られた能力を有する。何らかの付加的な情報があっても、エフェメリス・データがＧＰＳシステム自体から獲得されなければならず、さらにそのような情報を確実に獲得するためには強力信号を必要とするので、ＴＴＦＦ時間は３０秒を超えることもあり得る。ＧＰＳシステムのこれらの要件は、携帯型無線通信システム装置における電力消費と同様に位置解の可用性の信頼度に影響を及ぼす。
【０７０２】
これらの問題を克服するために、本発明は、種々の要因に応じて複数の動作モードを可能にする。本発明のＧＰＳシステムは、例えばＧＰＳ受信機が強力信号を受信している、最近のエフェメリスまたはアルマナック・データを有する、または正確な位置が要求されない場合、スタンドアロン・モードで使用することができる。しかし、本発明のＧＰＳシステムが十分に強力なＧＰＳ信号を受信していない、例えば携帯型無線通信装置が屋内で使用されている場合、本発明のＧＰＳシステムは、異なる動作モード、例えば無線通信システムがＧＰＳ受信機によって受信されたＧＰＳ信号および無線通信システムによって供給される付加的な情報を用いてＧＰＳシステムが捕捉、トラッキングおよび／またはナビゲートするのを助けるまたは「支援する」動作モードに切換わることができる。この動作モードは「ネットワーク支援」モードと呼ばれる。さらに、本発明のＧＰＳシステムは、いっそう粗雑な信号受信環境において使用されている時でも、ＧＰＳ受信機または携帯電話機に位置情報を供給するために完全に無線通信システムに依存することができ、そして本発明のＧＰＳシステムはその際、提供された無線通信ネットワークにおいて、または「ネットワークベースの」動作モードで動作するであろう。本発明のＧＰＳシステムは、ユーザ選択の嗜好または要請とともに、いくつかの変数に基づきこれらの動作モード間で切換わることができ、ローカルまたは遠隔制御によって、またはＧＰＳシステムに付与される自動または手動コマンドのどちらかによって切換わることができる。
【０７０３】
実施形態のＧＰＳシステムの態様は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、プログラマブル・アレイ論理（ＰＡＬ）装置、電気的にプログラム可能な論理記憶装置および標準的なセルベースの装置といったプログラム可能論理装置（ＰＬＤ）だけでなく、特定用途向け集積回路（ＡＳＩＣ）を含む、多様な回路のいずれかにプログラムされた機能として具体化され得る。実施形態のＧＰＳシステムの態様を具体化するための一部の他の可能性は以下を含む。（電子的に消去可能なプログラム可能な読出し専用メモリ（ＥＥＰＲＯＭ）といった）メモリを備えるマイクロコントローラ、埋込み型マイクロプロセッサ、ファームウェア、ソフトウェア等々。さらに、実施形態のＧＰＳシステムの態様は、ソフトウェア・ベースの回路エミュレーション、個別論理回路（順序型および組合せ型）、カスタム・デバイス、ファジー（ニューラル）論理、量子デバイス、および上記の装置形式のいずれかの混成物を有するマイクロプロセッサにおいて実施され得る。当然、基礎となる装置技術は、例えば、相補形金属酸化膜半導体（ＣＭＯＳ）のような金属酸化膜半導体電界効果トランジスタ（ＭＯＳＦＥＴ）技術、エミッタ結合論理（ＥＣＬ）のようなバイポーラ技術、ポリマー技術（例えばシリコン共役ポリマーおよび金属共役ポリマー−金属構造物）、アナログおよびデジタル混成などの多様な構成要素形式において提供され得る。
【０７０４】
説明およびクレーム全体を通じて、文脈が明らかに別様に要求しない限り、「を備える」、「よりなる」などの語は、排他的または網羅的な意味ではなく包含的な意味において、すなわち「を含むが、限定されない」という意味において解釈しなければならない。また、単数または複数を使用している語は、それぞれ複数または単数も含む。さらに、単語「ここで」、「以下に」、「前に」、「後に」、および類似の趣旨の語は、ここで使用された場合、全体としてこの特許を指しており、この特許のいずれかの特定の部分を指しているのではない。単語「または」が２つ以上の項目の列挙に関して使用された場合、その語は単語の以下の解釈の全部を包括する。すなわち、列挙における項目のいずれか、列挙における項目の全部、および列挙における項目のいずれかの組合せ。
【０７０５】
ＧＰＳシステムの例示した実施形態の上記の説明は、網羅的であるか、または本発明を開示した厳密な形態に限定するように意図されていない。ＧＰＳシステムの具体的な実施形態および実例を例証のためにここに記載したが、種々の等価な修正が、当業者には認識されるはずである通り、ＧＰＳシステムの範囲内で可能である。ここに提示されたＧＰＳシステムの教示は、上述の電子システムのためだけでなく、他の電子システムにも適用することができる。
【０７０６】
上述の種々の実施形態の要素および行為は、さらなる実施形態を提供するために組み合わせることができる。これらおよび他の変更が上記の詳細な説明に照らして実施形態のＧＰＳシステムに行うことができる。
【０７０７】
上記の引用文献、米国特許および特許出願の全部は参照によってここに採り入れられる。ここに記載された実施形態の態様は、必要に応じて、ＧＰＳシステムのさらに別な実施形態を提供するために上述の種々の特許および出願のシステム、機能および概念を使用するために修正することができる。
【０７０８】
一般に、添付の特許請求の範囲において使用される用語は、ＧＰＳシステムをこの明細書および特許請求の範囲において開示された特定の実施形態に限定するように解釈してはならず、特許請求の範囲のもとで動作する全部の電子システムを包含するように解釈しなければならない。従って、ＧＰＳシステムは開示によって限定されるのではなく、むしろＧＰＳシステムの範囲は、特許請求の範囲によって完全に決定されるべきである。
【０７０９】
ＧＰＳシステムの特定の態様が特定の請求項形式で添付する特許請求の範囲に提示されるが、発明者らはあらゆる数の請求項形式におけるＧＰＳシステムの種々の態様を想定している。従って、発明者らは、ＧＰＳシステムの他の態様に関するそうした付加的な請求項形式を追求するために本願を作成した後に付加的な請求項を追加する権利を留保している。
【０７１０】
【表１】
2007504771.tif 000002
【０７１１】
【表２】
2007504771.tif 000003
【０７１２】
【表３】
2007504771.tif 000004
【０７１３】
【表４Ａ】
2007504771.tif 000005
【０７１４】
【表４Ｂ】
2007504771.tif 000006
【０７１５】
【表５】
2007504771.tif 000007
【０７１６】
【表６】
2007504771.tif 000008
【０７１７】
【表７】
2007504771.tif 000009
【０７１８】
【表８】
2007504771.tif 000010
【０７１９】
【表９】
2007504771.tif 000011
【０７２０】
【表１０】
2007504771.tif 000012
【０７２１】
【表１１】
2007504771.tif 000013
【０７２２】
【表１２】
2007504771.tif 000014
【０７２３】
【表１３】
2007504771.tif 000015
【０７２４】
【表１４】
2007504771.tif 000016
【図面の簡単な説明】
【０７２５】
本発明の実施形態は、以下の図面を用いて説明されているが、これらに限定するものではない。これらの図面において、同じ参照番号は、同じ要素または働きを示す。
【０７２６】
【図１】ＧＰＳシステムの一実施形態のブロック図である。
【図１Ａ】ベースバンド・チップ・システムの一実施形態のブロック図である。
【図２】ベースバンド・チップの一実施形態の有意なサブシステムを示すブロック図である。
【図３】一実施形態における、ＧＰＳシステムの全体データフローの概略を示すブロック図である。
【図４】ＧＰＳシステムの全体データフローをさらに詳しく示すブロック図である。
【図５】一実施形態における、サブシステム１の機能ブロックを示すブロック図である。
【図６】一実施形態における、サブシステム１の分割をさらに詳しく示すブロック図である。
【図７】サブシステム１の入力サンプルのフローの一実施形態を示すブロック図である。
【図８】一実施形態における、サブシステム２の機能ブロックを示すブロック図である。
【図９】サブシステム２のフローの他の実施形態を示すブロック図である。
【図１０】サブシステム２のデータフロー制御の一実施形態を示すブロック図である。
【図１１】サブシステム２のデータフロー制御の他の実施形態を示すブロック図である。
【図１２】サブシステム２の制御フローの一実施形態を示すブロック図である。
【図１３】サブシステム２の制御モジュール・インターフェースの一実施形態を示すブロック図である。
【図１４】一実施形態における、サブシステム２のマスタ・コントローラのフローのブロック図である。
【図１５】一実施形態における、サブシステム３のモジュールのブロック図である。
【図１６】一実施形態における、サブシステム３の機能フローのブロック図である。
【図１７】一実施形態における、サブシステム３の機能フローの他のブロック図である。
【図１８】一実施形態における、サブシステム３の制御フローのブロック図である。
【図１９】一実施形態における、サブシステム３のＦＦＴコントローラのフローのブロック図である。
【図２０】一実施形態における、サブシステム３のＦＦＴのフローのブロック図である。
【図２１】一実施形態における、サブシステム３のＦＦＴコントローラのフローのブロック図である。
【図２２】一実施形態における、サブシステム３のマスタ・コントローラのフローのブロック図である。
【図２３】一実施形態における、サブシステム２／ＦＩＦＯ２／サブシステム３のフローのブロック図である。
【図２４】一実施形態における、サブシステム２／ＦＩＦＯ２／サブシステム３／サブシステム５の配置構成のブロック図である。
【図２５】一実施形態における、サブシステム３に実装されるシーケンサ・サブシステムの要素を示す。
【図２６】一実施形態における、様々なサブシステム４のモジュールを示すブロック図である。
【図２７】一実施形態における、サブシステム４のシーケンサ・モジュール・インターフェースの種々の面を示すブロック図である。
【図２８】一実施形態により、サブシステム４のシーケンサのフローを示すブロック図である。
【図２９】一実施形態により、サブシステム４のシーケンサ状態機械のフローを示すブロック図である。
【図３０】一実施形態における、様々なサブシステム５のモジュールを示すブロック図である。
【図３１】一実施形態における、ＦＩＦＯ１構造の種々の面を示すブロック図である。
【図３２】一実施形態による、サブシステム５のメモリ・データ・パスのフローを示すブロック図である。
【図３３】一実施形態による、サブシステム５のアービトレーション優先方式を示すブロック図である。
【図３４】一実施形態による、トラッキング・モード（モード３）のプロセス・フローの種々の面を示すブロック図である。
【図３５】一実施形態による、コールド・スタート・モード（モード１）のプロセス・フローの種々の面を示すブロック図である。
【図３６】一実施形態による、相関器のデータ・パスを示すブロック図である。
【図３７】一実施形態による、コヒーレントＲＡＭのデータ・ストレージの種々の面を示すブロック図である。
【図３８】一実施形態による、コヒーレントＲＡＭのＦＦＴアクセスの種々の面を示すブロック図である。
【図３９】一実施形態による、ＦＦＴで必要となるデータの順序を示すブロック図である。
【図４０】一実施形態による、コヒーレントＲＡＭの入力回転（twiddle）選択アルゴリズムを示すブロック図である。
【図４１】一実施形態による、回転生成のブロック図である。
【図４２】一実施形態による、回転マルチプレクサの実施例を示すブロック図である。
【図４３】一実施形態による、ＦＩＦＯ２出力アドレス生成を示すブロック図である。
【図４４】一実施形態による、ＦＦＴアドレスの回転（twiddling）の種々の面を示すブロック図である。
【図４５】メッセージ・シリアル・インターフェースとデータ・シリアル・インターフェースとを含むインターフェースによる、ベースバンド処理部に結合されるＲＦ処理部を含む衛星測位システム受信機を示す。
【図４６】データ・シリアル・インターフェースを形成するデータ・クロック信号線とデータ・ビット信号線でそれぞれ運ばれるデータ・クロックとデータ信号との間の関係を表わすタイミング図を示す。
【図４７】このメッセージ・シリアル・インターフェースの一部を形成するメッセージ・クロック信号線とメッセージ・データ・ビット信号線でそれぞれ運ばれるメッセージ・クロックとメッセージ・データ・ビットとの間の関係を表わすタイミング図を示す。
【図４８】ＲＦ処理部とベースバンド処理部とをインターフェースする方法を示す。
【図４９】一実施形態のもとでの、複数のプロセッサを含む構成要素の間で分割および共用するコア・メモリをサポートする電子システムのブロック図である。
【図５０】一実施形態のもとでの、中央演算処理装置とデジタル信号処理装置（ＤＳＰ）のそれぞれに専用のメモリ領域を持つ電子システム構成のブロック図である。
【図５１】一実施形態のもとでの、ホスト電子システムの始動／起動後のコア・メモリ構成のブロック図である。
【図５２】一実施形態のもとでの、分割されて、中央演算処理装置とＤＳＰとの間で共用するメモリを含む電子システムのブロック図である。
【図５３Ａ】一実施形態のもとでの、マッピング再割当てを用いて、ＤＳＰメモリの第１のブロックを、ＤＳＰアドレス空間からプロセッサ・アドレス空間に再割当てするメモリ構成のブロック図である。
【図５３Ｂ】一実施形態のもとでの、ＤＳＰメモリの８キロバイト・ブロックを、ＤＳＰアドレス空間からプロセッサ・アドレス空間に再割当てした後のメモリ構成（メモリ・マップ）を示す。
【図５４Ａ】一実施形態のもとでの、マッピング再割当てを用いて、ＤＳＰメモリのｎ個のメモリ・ブロックを、ＤＳＰアドレス空間からプロセッサ・アドレス空間に再割当てするメモリ構成のブロック図である。
【図５４Ｂ】一実施形態のもとでの、ＤＳＰメモリの６４キロバイト・ブロックを、ＤＳＰアドレス空間からプロセッサ・アドレス空間に再割当てした後のメモリ構成（メモリ・マップ）を示す。
【図５５】一実施形態のもとでの、関連するメモリ読込み順序とともに、分割および再割当ての後のメモリ領域のブロック図である。
【図５６】一実施形態のもとでの、スイッチング再割当てを用いて、プロセッサで用いられるＤＳＰに関連するメモリの或る部分を再割当てする電子システム構成のブロック図である。
【図５７Ａ】一実施形態のもとでの、ＤＳＰメモリの１ブロックを、ＤＳＰアドレス空間から、メモリ・インターフェースを通じて、プロセッサ・アドレス空間に再割当てするメモリ構成のブロック図である。
【図５７Ｂ】一実施形態のもとでの、ＤＳＰメモリの３２キロバイトのブロックを、ＤＳＰアドレス空間からプロセッサ・アドレス空間に再割当てした後のメモリ構成（メモリ・マップ）を示す。
【図５８】一実施形態のもとでの、スイッチング再割当てを用いてメモリ・アドレスの１グループまたは１ブロックを再割当てし、また、マッピング再割当てを用いてメモリ・アドレスの他のグループを再割当てするシステム構成のブロック図である。
【図５９Ａ】一実施形態のもとでの、スイッチング再割当てとマッピング再割当てを両方とも使用して、ＤＳＰメモリのブロックを、ＤＳＰアドレス空間からプロセッサ・アドレス空間に再割当てするメモリ構成のブロック図である。
【図５９Ｂ】一実施形態のもとでの、ＤＳＰメモリの第１のブロックと第２のブロックを、ＤＳＰアドレス空間からプロセッサ・アドレス空間に再割当てした後のメモリ構成（メモリ・マップ）を示す。
【図６０】一実施形態のもとでの、関連するメモリ読込み順序とともに、分割および再割当ての後のメモリ領域のブロック図である。
【図６１】代替実施形態のもとでの、スイッチング再割当てを用いてメモリ・アドレスの１グループを再割当てし、また、マッピング再割当てを用いてメモリ・アドレスの他のグループを再割当てするシステム構成のブロック図である。
【図６２】一実施形態のもとでの、再割当てされたメモリとマルチプレクサを含む電子システムのブロック図である。
【図６３】一実施形態のもとでの、メモリ共用をサポートする制御レジスタのブロック図である。
【図６４】一実施形態のもとでの、メモリ共用をサポートする状態レジスタのブロック図である。
【図６５】一実施形態のもとでの、メモリ共用をサポートする読出し／書込み違反のアドレス・レジスタのブロック図である。
【図６６Ａ】一実施形態のもとでの、メモリ共用をサポートするアドレス・マップを示す。
【図６６Ｂ】一実施形態のもとでの、メモリ共用をサポートするアドレス・マップを示す。
【図６７】信号処理システムを含むシステムの一実施形態のブロック図である。
【図６８】信号処理部の一実施形態のサブシステムを示すブロック図である。
【図６９】アービトレーション・ユニットを含む信号処理部の一実施形態のブロック図である。
【図７０】ＲＡＭにアクセスするために、異なるエンティティに優先順位が割当てられる一実施形態を図示し、かつアービトレーション・ユニットを示すブロック図である。
【図７１】入力サンプルＲＡＭへのアクセスを制御する際に行われるシグナリングの一部を示す制御構造（ＦＩＦＯ１）のブロック図である。
【図７２】コールド・スタート・モードの場合に、メモリ割当てを含む信号処理部の１構成を示すブロック図である。
【図７３】粗捕捉モードの場合に、メモリ割当てを含む信号処理部の１構成を示すブロック図である。
【図７４】ホット・スタート・モードの場合に、メモリ割当てを含む信号処理部の１構成を示すブロック図である。
【図７５】トラッキング・モードの場合に、メモリ割当てを含む信号処理部の１構成を示すブロック図である。
【図７６】入力サンプルＲＡＭにデータを格納する方法のいくつかの面を示すブロック図である。
【図７７】コヒーレントＲＡＭ用のオーバーフロー状態とアンダーフロー状態を示す図である。
【図７８】トラッキング・モードなどの２経路−高分解能モードで、コヒーレントＲＡＭ７８−１２０５用のオーバーフロー状態とアンダーフロー状態を示す図である。
【図７９】複数のチャネル間で共用されている単一コヒーレントＲＡＭの一例を示すブロック図である。
【図８０】割当てられたコヒーレント・データ・メモリ領域、またはコヒーレントＲＡＭにデータを格納する様々なモードを示すブロック図である。
【図８１】割当てられたＮＣＳデータ・メモリ領域、またはバックエンド保存ＲＡＭにデータを格納する様々なモードを示すブロック図である。
【図８２】異なる動作モードで、ＲＡＭストレージの様々なモードの概念を示す図である。
【図８３】一実施形態における、チャネルＲＡＭと、チャネルＲＡＭがやり取りする要素とを示すブロック図である。
【図８４】信号処理サブシステム・シーケンサの一実施形態のブロック図である。
【図８５】一実施形態における、信号処理サブシステム・シーケンサの機能を示すフローチャートである。
【図８６】一実施形態のセマフォ・ワード構造の図である。
【図８７】一実施形態における、セマフォ・ワードの構成を示す。
【図８８】一実施形態における、ＨＷ制御されるセマフォ、ＳＷ制御されるセマフォ、「ｐａｕｓｅ（ポーズ）」セマフォを含むＳＳ２、ＳＳ３、ＦＩＦＯ１のセマフォのリストである。
【図８９】一実施形態による、ＳＳ２およびＳＳ３用の終了状態のリストである。
【図９０】シーケンサの一実施形態のブロック図である。
【図９１】一実施形態による、ＲＡＭアドレスを生成する要素のブロック図である。
【図９２】シーケンサの動作を示すフローチャートである。
【図９３】ＳＳ３用のシーケンサの動作を示すフローチャートである。
【図９４】トラッキング・ループのブロック図を示す。
【図９５】同期手法を示す。
【図９６】同期手法を示す。
【図９７】相互相関を用いての弱スペクトラム拡散信号における強力信号相殺を示すフローチャートである。
【図９８】相殺された信号がＣＷジャミング信号であるかもしれない場合に、そのＣＷジャミング信号を特定して、除去する信号処理図を示す。
【図９９】電気部品のブロック図を示す。
【図１００】ＣＷジャミング信号を特定して、除去するフローチャートを示す。
【図１０１】強力信号と中程度の信号で動作するトラッキング・システムの典型的で高レベルな実施例である。
【図１０２】ハードウェア更新のブロック図である。
【図１０３】ＧＰＳ受信機の一実施形態のブロック図である。
【図１０４】このＧＰＳ受信機の実施形態の他のブロック図である。
【図１０５】このＧＰＳ受信機の実施形態の他のブロック図である。
【図１０６】ブラウンアウト検知回路の一実施形態のブロック図である。
【図１０７】一実施形態のブラウンアウト検知プロセスを示すフローチャートである。
【図１０８Ａ】ＲＴＣクロック信号を使用してＧＰＳクロック信号を更新することと、推定ＧＰＳ時刻が、ＧＰＳ受信機の位置を捕捉するのに充分正確であるかどうか判定することを含むプロセスの一実施形態を示すフローチャートである。
【図１０８Ｂ】ＲＴＣクロック信号を使用してＧＰＳクロック信号を更新することと、推定ＧＰＳ時刻が、ＧＰＳ受信機の位置を捕捉するのに充分正確であるかどうか判定することを含むプロセスの一実施形態を示すフローチャートである。
【図１０８Ｃ】ＲＴＣクロック信号を使用してＧＰＳクロック信号を更新することと、推定ＧＰＳ時刻が、ＧＰＳ受信機の位置を捕捉するのに充分正確であるかどうか判定することを含むプロセスの一実施形態を示すフローチャートである。
【図１０９】一実施形態のもとでの、ＥＡＲＣ（エッジ整列比率カウンタ）のブロック図である。
【図１１０】一実施形態のもとでの、サンプリングとエッジ検出を示す。
【図１１１】一実施形態のもとでの、通信装置のブロック図である。
【図１１２】一実施形態のもとでの、通信装置のブロック図である。
【図１１３】様々なクロック信号と、制御信号出力との間の関係を示すタイミング図である。
【図１１４】一実施形態のもとでの、通信装置のブロック図である。
【図１１５】一実施形態のもとでの、２つ以上のクロックの周波数間の関係を決定する方法のフローチャートである。
【図１１６】代表的なＣＤＭＡ信号フローである。
【図１１７】一実施形態のもとでの、自己／相互相関チェックである。
【図１１８Ａ】一実施形態のもとでの、このシステムのブロック図である。
【図１１８Ｂ】一実施形態のもとでの、このシステムのブロック図である。
【図１１９】一実施形態のもとでの、このシステムの他のブロック図である。
【図１２０】一実施形態のもとでの、微弱な信号システムにおける、自己／相互相関を低減する／排除するフローチャートである。
【図１】
2007504771.tif 000017
【図１Ａ】
2007504771.tif 000018
【図２】
2007504771.tif 000019
【図３】
2007504771.tif 000020
【図４】
2007504771.tif 000021
【図５】
2007504771.tif 000022
【図６】
2007504771.tif 000023
【図７】
2007504771.tif 000024
【図８】
2007504771.tif 000025
【図９】
2007504771.tif 000026
2007504771.tif 000027
【図１１】
2007504771.tif 000028
【図１２】
2007504771.tif 000029
【図１３】
2007504771.tif 000030
【図１４】
2007504771.tif 000031
【図１５】
2007504771.tif 000032
【図１６】
2007504771.tif 000033
【図１７】
2007504771.tif 000034
【図１８】
2007504771.tif 000035
【図１９】
2007504771.tif 000036
【図２０】
2007504771.tif 000037
【図２１】
2007504771.tif 000038
【図２２】
2007504771.tif 000039
【図２３】
2007504771.tif 000040
【図２４】
2007504771.tif 000041
【図２５】
2007504771.tif 000042
【図２６】
2007504771.tif 000043
【図２７】
2007504771.tif 000044
【図２８】
2007504771.tif 000045
【図２９】
2007504771.tif 000046
【図３０】
2007504771.tif 000047
【図３１】
2007504771.tif 000048
【図３２】
2007504771.tif 000049
【図３３】
2007504771.tif 000050
【図３４】
2007504771.tif 000051
【図３５】
2007504771.tif 000052
【図３６】
2007504771.tif 000053
【図３７】
2007504771.tif 000054
【図３８】
2007504771.tif 000055
【図３９】
2007504771.tif 000056
【図４０】
2007504771.tif 000057
【図４１】
2007504771.tif 000058
【図４２】
2007504771.tif 000059
【図４３】
2007504771.tif 000060
【図４４】
2007504771.tif 000061
【図４５】
2007504771.tif 000062
【図４６】
2007504771.tif 000063
【図４７】
2007504771.tif 000064
【図４８】
2007504771.tif 000065
【図４９】
2007504771.tif 000066
【図５０】
2007504771.tif 000067
【図５１】
2007504771.tif 000068
【図５２】
2007504771.tif 000069
【図５３Ａ】
2007504771.tif 000070
【図５３Ｂ】
2007504771.tif 000071
【図５４Ａ】
2007504771.tif 000072
【図５４Ｂ】
2007504771.tif 000073
【図５５】
2007504771.tif 000074
【図５６】
2007504771.tif 000075
【図５７Ａ】
2007504771.tif 000076
【図５７Ｂ】
2007504771.tif 000077
【図５８】
2007504771.tif 000078
【図５９Ａ】
2007504771.tif 000079
【図５９Ｂ】
2007504771.tif 000080
【図６０】
2007504771.tif 000081
【図６１】
2007504771.tif 000082
【図６２】
2007504771.tif 000083
【図６３】
2007504771.tif 000084
【図６４】
2007504771.tif 000085
【図６５】
2007504771.tif 000086
【図６６Ａ】
2007504771.tif 000087
【図６６Ｂ】
2007504771.tif 000088
【図６７】
2007504771.tif 000089
【図６８】
2007504771.tif 000090
【図６９】
2007504771.tif 000091
【図７０】
2007504771.tif 000092
【図７１】
2007504771.tif 000093
【図７２】
2007504771.tif 000094
【図７３】
2007504771.tif 000095
【図７４】
2007504771.tif 000096
【図７５】
2007504771.tif 000097
【図７６】
2007504771.tif 000098
【図７７】
2007504771.tif 000099
【図７８】
2007504771.tif 000100
【図７９】
2007504771.tif 000101
【図８０】
2007504771.tif 000102
【図８１】
2007504771.tif 000103
【図８２】
2007504771.tif 000104
【図８３】
2007504771.tif 000105
【図８４】
2007504771.tif 000106
【図８５】
2007504771.tif 000107
【図８６】
2007504771.tif 000108
【図８７】
2007504771.tif 000109
【図８８】
2007504771.tif 000110
【図８９】
2007504771.tif 000111
【図９０】
2007504771.tif 000112
【図９１】
2007504771.tif 000113
【図９２】
2007504771.tif 000114
【図９３】
2007504771.tif 000115
【図９４】
2007504771.tif 000116
【図９５】
2007504771.tif 000117
【図９６】
2007504771.tif 000118
【図９７】
2007504771.tif 000119
【図９８】
2007504771.tif 000120
【図９９】
2007504771.tif 000121
【図１００】
2007504771.tif 000122
【図１０１】
2007504771.tif 000123
【図１０２】
2007504771.tif 000124
【図１０３】
2007504771.tif 000125
【図１０４】
2007504771.tif 000126
【図１０５】
2007504771.tif 000127
【図１０６】
2007504771.tif 000128
【図１０７】
2007504771.tif 000129
【図１０８Ａ】
2007504771.tif 000130
【図１０８Ｂ】
2007504771.tif 000131
【図１０８Ｃ】
2007504771.tif 000132
【図１０９】
2007504771.tif 000133
【図１１０】
2007504771.tif 000134
【図１１１】
2007504771.tif 000135
【図１１２】
2007504771.tif 000136
【図１１３】
2007504771.tif 000137
【図１１４】
2007504771.tif 000138
【図１１５】
2007504771.tif 000139
【図１１６】
2007504771.tif 000140
【図１１７】
2007504771.tif 000141
【図１１８Ａ】
2007504771.tif 000142
【図１１８Ｂ】
2007504771.tif 000143
【図１１９】
2007504771.tif 000144
【図１２０】
2007504771.tif 000145