(57)【要約】提案したデータ処理デバイス（１００）は少なくとも２つのプロセッサユニット（１４１、１４２、１４３）を含み、各々のプロセッサユニットは、デジタル化されたプリコリレーションの航行衛星信号データ（ｄＦ）を処理するのみならず、衛星信号データ（ｄＦ）と無相関である少なくとも１つの関数に関する代替データ及び／又は信号（ＤＡ）を処理するようになっている。デバイス（１００）は、データセット（［ｄＦ］）を記憶するようになっている少なくとも１つのデータバッファ（１３１、１３２）を含み、各セットは衛星信号データ（ｄＦ）の多くのインスタンスを含む。デバイス（１００）内の制御モジュール（１５０）は、各プロセッサユニット（１４１、１４２、１４３）の現在の処理負荷に基づいて少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに個々の処理タスクを割り当てることによって記憶されたデータセット（［ｄＦ］）に対する処理ジョブの実行を制御する。
2009545194.tif 000002
【特許請求の範囲】
【請求項１】
デジタル化されたプリコリレーションの航行衛星信号データ（ｄＦ）を処理し、かつ、前記衛星信号データ（ｄＦ）と無相関である、少なくとも１つの関数に関する代替データ及び／又は信号（ＤＡ）を処理するようになっているデータ処理デバイス（１００）であって、
各々が前記衛星信号データ（ｄＦ）を処理し、かつ、前記代替データ及び／又は信号（ＤＡ）を処理するようになっている、少なくとも２つのプロセッサユニット（１４１、１４２、１４３）と、
各セットが、前記衛星信号データ（ｄＦ）の多くのインスタンスを含んでいるデータセット（［ｄＦ］）を記憶するようになっている、少なくとも１つのデータバッファ（１３１、１３２）と、
各プロセッサユニット（１４１、１４２、１４３）の現在の処理負荷に基づいて前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに個々の処理タスクを割り当てることによって、前記少なくとも１つのデータバッファ（１３１、１３２）の少なくとも１つに記憶されたデータセット（［ｄＦ］）に基づいて目標データ（Ｄ１、Ｄ２、Ｄ３）の生成を伴う処理ジョブの実行を制御するようになっている制御モジュール（１５０）と、
を含むことを特徴とするデータ処理デバイス（１００）。
【請求項２】
前記制御モジュール（１５０）が、前記各プロセッサユニットのパフォーマンス・プロファイルに対して実行される処理形式にさらに基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに前記個々の処理タスクを割り当てるようになっていることを特徴とする請求項１に記載のデバイス（１００）。
【請求項３】
前記制御モジュール（１５０）が、前記データセット（［ｄＦ］）に対して実行される処理量にさらに基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに、前記個々の処理タスクを割り当てるようになっていることを特徴とする請求項１又は請求項２のいずれか１項に記載のデバイス（１００）。
【請求項４】
前記制御モジュール（１５０）が、前記処理ジョブが完了するタイムフレームにさらに基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに前記個々の処理タスクを割り当てるようになっていることを特徴とする請求項１〜請求項３のいずれか１項に記載のデバイス（１００）。
【請求項５】
前記制御モジュール（１５０）が、衛星信号処理に潜在的に利用可能なリソース量を特定する、前記各プロセッサユニットの許容利用に基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の前記少なくとも１つに、前記個々の処理タスクを割り当てるようになっていることを特徴とする請求項１〜請求項４のいずれか１項に記載のデバイス（１００）。
【請求項６】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々が、前記ユニットによって完了した各処理タスクから得られた一連の目標データ（Ｄ１、Ｄ２、Ｄ３）を生成するようになっていることを特徴とする請求項１〜請求項５のいずれか１項に記載のデバイス（１００）。
【請求項７】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々が、前記プロセッサユニット（１４１、１４２、１４３）のそれぞれの負荷状況を反映するステータス信号（ｓ１、ｓ２、ｓ３）を前記制御モジュール（１５０）に送信するようになっており、前記制御モジュール（１５０）が、ステータス信号（ｓ１、ｓ２、ｓ３）に基づいて前記処理タスクを割り当てるようになっていることを特徴とする請求項１〜請求項６のいずれか１項に記載のデバイス（１００）。
【請求項８】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々が、前記ユニットによって実行される各処理タスクを画定するタスク仕様を受信するようになっていることを特徴とする請求項１〜請求項７のいずれか１項に記載のデバイス（１００）。
【請求項９】
前記タスク仕様が、前記データセット（［ｄＦ］）に対して全て実行される多くの繰返し処理、少なくとも１つの信号源アイデンティティ、実行される処理形式、及び前記処理タスクの時間要件の少なくとも１つを特定する少なくとも１つの入力を含むことを特徴とする請求項８に記載のデバイス（１００）。
【請求項１０】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々が、前記タスク仕様を記憶するようになっているプログラマブルモジュール（ｃ１、ｃ２、ｃ３）と関連付けられていることを特徴とする請求項８又は請求項９のいずれか１項に記載のデバイス（１００）。
【請求項１１】
前記処理ジョブが、第一のタイプの演算に従って作業を行うことを含み、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つが、第二のタイプの演算に基づいて計算を行うようになっており、かつ、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）と関連付けられている前記プログラマブルモジュール（ｃ１、ｃ２、ｃ３）の各々が、前記第一のタイプの演算で画定した第一のタイプのタスクからの処理タスクを前記第二のタイプの演算で画定した同等のタスクに変換するようになっている命令セットを記憶するようになっていることを特徴とする請求項１０に記載のデバイス（１００）。
【請求項１２】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つが、中央処理ユニットによって表されることを特徴とする請求項１〜請求項１１のいずれか１項に記載のデバイス（１００）。
【請求項１３】
前記制御モジュール（１５０）がソフトウェアに実装されることを特徴とする請求項１２に記載のデバイス（１００）。
【請求項１４】
前記制御モジュール（１５０）が、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の１つに含まれることを特徴とする請求項１２又は請求項１３のいずれか１項に記載のデバイス（１００）。
【請求項１５】
前記制御モジュール（１５０）が中央処理ユニットに含まれることを特徴とする請求項１４に記載のデバイス（１００）。
【請求項１６】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つが、デジタル信号処理ユニット、グラフィック処理ユニット、ベクトル処理ユニット、メディア処理ユニット、音声処理ユニット、浮動小数点処理ユニット、及びアクセラレータユニットの少なくとも１つによって表されることを特徴とする請求項１〜請求項１５のいずれか１項に記載のデバイス（１００）。
【請求項１７】
デジタル化されたプリコリレーションの航行衛星信号データ（ｄＦ）、及び前記衛星信号データ（ｄＦ）と無相関である少なくとも１つの関数に関する代替データ及び／又は信号（ＤＡ）を処理する方法であって、
前記代替データ及び／又は信号（ＤＡ）の少なくとも１つが存在するかどうか調査し、存在する場合、前記代替データ及び／又は信号（ＤＡ）を処理するステップと、
位置決め関連の処理を行うかどうか調査するステップと、処理を行う場合、
前記衛星信号データ（ｄＦ）を受信するステップと、
前記衛星信号データ（ｄＦ）の多くのインスタンスを含むデータセット（［ｄＦ］）の形態で、少なくとも１つのデータバッファ（１３１、１３２）に前記衛星信号データ（ｄＦ）を記憶するステップと、を含み、
少なくとも２つのプロセッサユニット（１４１、１４２、１４３）を用いて前記少なくとも１つのデータバッファ（１３１、１３２）の少なくとも１つに記憶されたデータセット（［ｄＦ］）に基づいて目標データ（Ｄ１、Ｄ２、Ｄ３）を生成することを含み、各プロセッサユニット（１４１、１４２、１４３）の現在の処理負荷に基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに処理ジョブの個々の処理タスクを割り当てることを含むことを特徴とする方法。
【請求項１８】
前記各プロセッサユニットのパフォーマンス・プロファイルに対して実行される処理形式にさらに基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに処理ジョブの個々の処理タスクを割り当てることを特徴とする請求項１７に記載の方法。
【請求項１９】
前記データセット（［ｄＦ］）に対して実行される処理量にさらに基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに、処理ジョブの個々の処理タスクを割り当てることを特徴とする請求項１７又は請求項１８のいずれか１項に記載の方法。
【請求項２０】
前記処理ジョブが完了するタイムフレームにさらに基づいて前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つに、処理ジョブの個々の処理タスクを割り当てることを特徴とする請求項１７〜請求項１９のいずれか１項に記載の方法。
【請求項２１】
前記データセット（［ｄＦ］）のサイズ、実行される処理形式、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）によって使用されるクロック周波数、及び前記衛星信号データ（ｄＦ）を導き出す受信衛星信号（ＳＢＬ）のスペクトル特性の少なくとも１つによって決定される繰返し率で、前記タスク割り当てステップを繰返すことを特徴とする請求項１７〜請求項２０のいずれか１項に記載の方法。
【請求項２２】
衛星信号処理に潜在的に利用可能なリソース量を特定する、前記各プロセッサユニットの許容利用に基づいて、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の前記少なくとも１つに、前記個々の処理タスクを割り当てることを特徴とする請求項１７〜請求項２１のいずれか１項に記載の方法
【請求項２３】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々において、前記ユニットによって完了した各処理タスクから得られた一連の目標データ（Ｄ１、Ｄ２、Ｄ３）を生成することを特徴とする請求項１７〜請求項２２のいずれか１項に記載の方法
【請求項２４】
前記ステータス信号（ｓ１、ｓ２、ｓ３）に基づいて前記処理タスクを割り当てるようになっている制御モジュール（１５０）に、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々に対する、それぞれの負荷状況を反映しているステータス信号（ｓ１、ｓ２、ｓ３）を提供することを特徴とする請求項１７〜請求項２３のいずれか１項に記載の方法。
【請求項２５】
前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々に、前記ユニットによって実行される各処理タスクを画定するタスク仕様を転送することを特徴とする請求項１７〜請求項２４のいずれか１項に記載の方法。
【請求項２６】
プログラマブルモジュール（ｃ１、ｃ２、ｃ３）が、前記少なくとも２つのプロセッサユニット（１４１、１４２、１４３）の各々と関連付けられており、前記プログラマブルモジュール（ｃ１、ｃ２、ｃ３）の少なくとも１つで各タスク仕様を記憶することを含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記処理ジョブが、第一のタイプの演算に従って作業を行うことを含み、前記少なくとも１つのプロセッサユニット（１４１、１４２、１４３）の少なくとも１つが、第二のタイプの演算に基づいて計算を行うようになっており、かつ、各々の前記プログラマブルモジュール（ｃ１、ｃ２、ｃ３）が、前記第一のタイプの演算で画定した第一のタイプのタスクからの処理タスクを前記第二のタイプの演算で画定した同等のタスクに変換するようになっている命令セットを記憶する、前記少なくとも１つのプロセッサユニット（１４１、１４２、１４３）と関連付けられていることを特徴とする請求項２６に記載の方法。
【請求項２８】
前記プログラムがコンピュータで起動する際に請求項１７〜請求項２７のいずれかのステップを制御するソフトウェアを含む、前記コンピュータのメモリに直接ロード可能なコンピュータプログラム製品。
【請求項２９】
請求項１７〜請求項２７のいずれかのステップをコンピュータに制御させるプログラムを記録したコンピュータ可読媒体（１５５）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広義にはスペクトル拡散信号及びその他の種類のデータの処理に関する。特に詳細には、本発明は、請求項１の前提部分に記載のデータ処理デバイス、及び請求項１７の前提部分に記載のデジタル化されたプリコリレーションの航行衛星信号データを処理する方法に関する。また、本発明は、請求項２８に記載のコンピュータプログラム製品、及び請求項２９に記載のコンピュータ可読媒体にも関する。
【背景技術】
【０００２】
スペクトル拡散伝送ソリューションは、例えば全地球的航法衛星システム（ＧＮＳＳ）においてますます重要になりつつある。現時点では、全地球測位システム（ＧＰＳ；アメリカ合衆国政府）が優勢なシステムである。しかしながら、将来においては代替システムの重要性が増すと考えられる。現段階では、地球軌道衛星航法システム（ＧＬＯＮＡＳＳ；ロシア連邦防衛省）及びガリレオ・システム（欧州全地球航法サービスプログラム）が主要な代替ＧＮＳＳを構成している。特定領域において少なくとも１つのＧＮＳＳの網羅、可用性、及び／又は品質を高めるためのさまざまなシステムも存在している。準天頂衛星システム（ＱＺＳＳ；新衛星ビジネス株式会社、日本）、広域補強システム（ＷＡＡＳ；米国運輸省連邦航空局）、及び欧州静止衛星航法補強サービス（ＥＧＮＯＳ；欧州宇宙機関、欧州委員会、及び欧州航空管制局すなわち欧州航空航法安全機構の共同事業）は、ＧＰＳ、後者の場合には、ＧＰＳ及びＧＬＯＮＡＳＳに対するかかる補強システムの例を表している。
【０００３】
プログラマブルソフトウェア受信機ソリューションは、１つのプロセッサ、例えば、ＣＰＵ（中央処理ユニット）又はＤＳＰ（デジタルシグナルプロセッサ）で多くの信号形式を処理できるので一般に望ましい。この場合、複数の信号形式に信号処理原則を適用することは簡単明瞭である。ソフトウェアベースのＧＮＳＳ受信機は、この種の受信機が、例えば、ラップトップコンピュータ、携帯電話、又はＰＤＡ（携帯情報端末）内に、その他の種類の信号受信機、信号処理デバイス、及び／又はソフトウェアアプリケーションと効率的に共存できるという点でも有利である。さらに、ソフトウェア受信機は、一般に、費用効率が高く、電力効率の良い実装を提供する。
【０００４】
米国特許第６，００２，３６３号では、例えば携帯電話に代表される、ＧＰＳ受信機と統合通信受信機とを含む複合装置を開示している。ここで、単一デジタルプロセッサは、ＧＰＳ信号の処理に関する関数と、通信信号の処理に関する関数との間で共有される。共有回路の使用を容易にするため、ＧＰＳ動作と通信受信／送信動作は別々の時間で行うことが提案される。しかしながら、単一プロセッサの同時使用に対する効率的なソリューションは開示されていない。
【０００５】
いくつかの最近の通信デバイスはマルチ・プロセッサを含む。これらのデバイスでは、タスクの特性に対して最適な方法で各処理タスクを処理することで、さらに効率的なデータ及び信号処理を達成することができる。これにより、利用可能な電力の効率的な使用、次に比較的低い消費電力につながる。この特性は、例えば、ラップトップコンピュータ、携帯電話、及びＰＤＡなど、電池源が限られている携帯型デバイスでは重要である。そのため、ソフトウェアベースのＧＮＳＳ受信機をマルチ・プロセッサ設計に一体化することは、処理リソースをその他の種類のソフトウェア機能と共有化するという点で有利である。
【０００６】
しかしながら、そのような統合を達成することは、（ａ）ＧＮＳＳ信号処理で要求されるリアルタイム要件、及び（ｂ）この処理に関連付けられている本質的に予測不能なロードにより困難である。代替関数も処理負荷を生み、これは予測不能であり、尚且つ、一般に時間とともに大きく変化するため、統合の課題はさらに複雑になる。設計が、パフォーマンス・プロファイルが異なる種類の処理タスクに別々に適している多重処理コアを含む場合には、この問題は特に際立つようになる。
【０００７】
一般に、多重処理要素を含むプラットフォーム上でソフトウェア動作を行うことの問題は、「ロード・バランシング」と呼ばれる。この領域における従来技術としては、２つ以上のコンピュータ間のロードをバランシングするいくつかの解決策が挙げられる。米国特許第６，２９８，３７０号及び米国特許出願公開第２００５／００８１１８１号には、このカテゴリにおける設計例が示されている。単一デバイス実装の領域において、米国特許第６，７２５，３５４号には、実行される処理タスクが固定小数点命令若しくは浮動小数点命令の実行を含むかどうかに基づいて十分な処理ブロックを選択するという解決策が示されている。しかしながら、従来の手法は全て、ＧＮＳＳ処理の厳密なリアルタイム要件を扱っていないので、これらのいずれも、ソフトウェアを実装したＧＮＳＳ受信機をマルチ・プロセッサ環境で無相関である少なくとも１つの関数と共存させることができない。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従って、本発明の目的は、上述した問題を解決し、ソフトウェアベースの信号処理が、一般的に、スペクトル拡散信号から抽出した任意の衛星信号データと無相関である関数を実行するようになっている携帯型デバイスで実装することができるリソース効率の高い解決策を提供することである。
【０００９】
本発明によれば、本目的は、冒頭に述べたように処理デバイスによって達成され、デバイスは、少なくとも２つのプロセッサユニットと、少なくとも１つのデータバッファと、制御モジュールとを含む。少なくとも２つのプロセッサユニットの各々は、衛星信号データを処理し、かつ、代替データ及び／又は信号を処理するようになっている。少なくとも１つのデータバッファはデータセットを記憶するようになっており、各セットは衛星信号データの多くのインスタンスを含む。制御モジュールは、処理ジョブの実行を制御するようになっている。ジョブは、少なくとも１つのデータバッファの少なくとも１つに記憶されているソースデータセットに基づいて目標データを生成することを含む。即ち、制御モジュールは、各プロセッサユニットの現在の処理負荷に基づいて少なくとも２つのプロセッサユニットの少なくとも１つに個々の処理タスクを割り当てるようになっている。
【００１０】
この設計の１つの重要な利点は、利用可能なプロセッサリソース、動作必要時間、及びエネルギー消費に対してデジタル航行衛星信号を非常に効率的に処理できることである。
【００１１】
本発明の好適な実施形態によれば、制御モジュールは、各プロセッサユニットのパフォーマンス・プロファイルに対して実行される処理形式；データセットに対して実行される処理量；及び処理ジョブが完了するタイムフレームの１つ以上に基づいてプロセッサユニットに個々の処理タスクをさらに割り当てるようになっている。従って、リソース及び電力効率のさらに良い実装が達成される。
【００１２】
本発明の別の好適な実施形態によれば、制御モジュールは、各プロセッサユニットの許容利用に基づいてプロセッサユニットに個々の処理タスクを割り当てるようになっている。ここで、許容利用は、衛星信号処理に潜在的に利用可能なリソース量を特定する。そのため、衛星信号処理を扱うためのプロセッサユニットの異なる容量を考慮することができる。
【００１３】
本発明のさらに別の好適な実施形態によれば、各々のプロセッサユニットは、ユニットによって完了した各処理タスクから得られた一連の目標データを生成するようになっている。目標データは、要求された処理ジョブを有する親モジュール、或いは、デバイス内の１つ以上の代替ユニット、モジュール、若しくは関数のいずれかに送ることができる。
【００１４】
本発明の別の好適な実施形態によれば、各々のプロセッサユニットは、制御モジュールにステータス信号を送信するようになっている。ステータス信号は、プロセッサユニットのそれぞれの負荷状況を反映する。そのため、制御モジュールは、新しい処理タスクを割り当てる際に関連するフィードバック情報を受信する。制御モジュールは、次には、ステータス信号に基づいて前記処理タスクを割り当てるようになっている。
【００１５】
本発明のさらに別の好適な実施形態によれば、各々のプロセッサユニットは、ユニットによって実行される各処理タスクを画定するタスク仕様を受信するようになっている。タスク仕様は、データセットに対して全て実行する多くの繰返し処理、少なくとも１つ信号源アイデンティティ（データが抽出される）、実行される処理形式、及び／又は処理タスクに対する時間要件を特定する少なくとも１つの入力を含む。従って、タスク仕様により、制御ユニットはプロセッサユニットに処理命令を送ることができる。少なくとも２つのプロセッサユニットの各々は、タスク仕様を記憶するようになっているプログラマブルモジュールとも関連付けられているのが好ましい。これにより、タスク仕様は、処理タスクを実行しながら、各プロセッサユニットによるアクセス用に保つことができる。
【００１６】
本発明の別の好適な実施形態によれば、処理ジョブは第一のタイプの演算に従って作業を行うことを含むと推認される。さらに、プロセッサユニットの少なくとも１つは、第二のタイプの演算に基づいて計算を行うようになっている。プロセッサユニットの少なくとも１つと関連付けられている各プログラマブルモジュールは、第一のタイプの演算で画定した第一のタイプのタスクからの処理タスクを第二のタイプの演算で画定した同等のタスクに変換するようになっている命令セットを記憶するようになっている。そのため、浮動小数点処理タスクは、固定小数点処理タスクに変換することができ、その逆も可能である。
【００１７】
本発明のさらに別の好適な実施形態によれば、プロセッサユニットの少なくとも１つは、例えば、デュアルコアタイプの中央処理ユニット（ＣＰＵ）によって表される。制御モジュールはソフトウェアに実装され、モジュールは少なくとも２つのプロセッサユニットの１つ、例えば、ＣＰＵに含まれるのが好ましい。制御モジュールは、検証及び更新用に容易にアクセス可能になるので、これは有利である。さらに、ＣＰＵは、一般に、その他のタスクに対するコプロセスユニット用のマスターユニットである。
【００１８】
本発明の別の好適な実施形態によれば、プロセッサユニットの少なくとも１つは、デジタル信号処理ユニット（ＤＳＰ）、グラフィック処理ユニット（ＧＰＵ）、ベクトル処理ユニット（ＶＰＵ）、メディア処理ユニット（ＭＰＵ）、音声処理ユニット（ＡＰＵ）、浮動小数点処理ユニット、又はアクセラレータユニット（例：ＧＮＳＳタイプ）によって表される。従って、これらのユニットの１つ以上でリソースが利用可能になるたびに、航行衛星信号処理の一部をここで行うことができる。
【００１９】
本発明の別の態様によれば、本目的は、冒頭に説明した方法によって達成され、該方法は、少なくとも１つのデータバッファの少なくとも１つに記憶されたデータセットに基づいて目標データを生成することを含む。少なくとも２つのプロセッサユニットを用いて、各プロセッサユニットの現在の処理負荷に基づいてプロセッサユニットの少なくとも１つに処理ジョブの個々の処理タスクを割り当てる。
【００２０】
この方法のみならず、その好適な実施形態の利点は、提案した受信機を参照して上記で説明したことから明らかである。
【００２１】
本発明の別の態様によれば、本目的は、コンピュータのメモリに直接ロード可能であり、かつ、プログラムがコンピュータ上で起動する際に上記で提案した方法を制御するソフトウェアを含む、コンピュータプログラム製品によって達成される。
【００２２】
本発明の別の態様によれば、本目的は、プログラムを記録したコンピュータ可読媒体によって達成され、プログラムは、上記で提案した方法を行うためコンピュータを制御することである。
【発明を実施するための最良の形態】
【００２３】
本発明のさらなる利点、有益な特徴、及び用途は、以下の説明及び従属請求項から明らかになるであろう。
【００２４】
次に、実施例として開示する好適な実施形態により、添付図面を参照しながら、本発明をさらに詳しく説明する。
【００２５】
本発明の一実施形態によるデータ処理デバイス１００のブロック図を示す図１を最初に参照する。デバイス１００は、少なくとも２つのプロセッサユニットを備えている。この例では、３つのユニット１４１、１４２、及び１４３を示す。デバイス１００は、少なくとも１つのデータバッファ１３１及び１３２、並びに制御モジュール１５０も備えている。
【００２６】
デバイス１００は無線フロントエンドユニット１１０からデータｄＦを受信するようになっているのが好ましい。無線フロントエンドユニット１１０は、アンテナ手段１０５を介して受信した航行衛星信号ＳＨＦの帯域制限及びデジタル化された表現ＳＢＬを生成する。データｄＦは、例えば、無線信号ＳＨＦの直接サンプリングした帯域バージョン又はそのＩ／Ｑ帯域をサンプリングしたバージョンを組み込むことなど多くの異なるフォーマットを有することができる。
【００２７】
各々のプロセッサユニット１４１、１４２、及び１４３は、航行衛星信号ＳＢＬから導出されたデータｄＦを処理することのみならず、衛星信号ＳＢＬと無相関である少なくとも１つの関数に関する代替データ及び／又は信号を処理するようになっている。ここで、代替データ及び／又は信号は両矢印ＤＡにより象徴的に示され、対応する用途／機能は１８０で示された一般的な箱によって表される。
【００２８】
各々のデータバッファ１３１及び１３２はデータセット［ｄＦ］を記憶するようになっており、各セットは衛星信号ＳＢＬの多くのサンプルを含む。例えば、あるデータセット［ｄＦ］は通常の衛星信号ＳＢＬのあるコード周期を表すことができる。デバイス１００はデータ管理モジュール１２０を備えるか又はそれと関連付けられているのが好ましく、データ管理モジュール１２０は、データｄＦが第１のバッファ１３１又は第２のバッファ１３２のいずれかに入るように、データｄＦをデータバッファ１３１及び１３２に交互に（即ち、いわゆるピンポン方式で）記憶することを達成するようになっている。従って、例えば、別のセット［ｄＦ］のデータｄＦを第２のバッファ１３２から読み込みながら、ある特定セットのデータｄＦを第１のバッファ１３１に記憶することができる。
【００２９】
本発明によれば、データ管理モジュール１２０は、データバッファ１３１及び１３２における記憶制御に加えて、プリコリレーションの関連タスクを行うようになっていてもよいのは当然である。しかしながら、これら追加タスクの詳細な性質については説明しない。
【００３０】
制御モジュール１５０は、記憶したデータセット［ｄＦ］に基づいて目標データＤ１、Ｄ２、及びＤ３をそれぞれ生成することを含む処理ジョブの実行を制御するようになっている。この制御は、プロセッサユニット１４１、１４２、及び１４３の少なくとも１つに個々の処理タスクを割り当てることを含む。即ち、制御モジュール１５０は、各プロセッサユニット１４１、１４２、及び１４３の現在の処理負荷に基づいて処理タスクを割り当てる。制御モジュール１５０は、各プロセッサユニットのパフォーマンス・プロファイルに対して実行される処理形式；データセット［ｄＦ］に対して実行される処理量；及び／又は処理ジョブが完了するタイムフレームにさらに基づいて処理タスクを割り当てるのが好ましい。ここで、処理形式／パフォーマンス・プロファイルの関係は、処理ジョブが多くの固定小数点演算の実行を含み、かつ、プロセッサユニットが浮動小数点数学の計算を主に行うようになっているという事実を表していてもよい。そのような場合、制御モジュール１５０は、タスクタイプと処理プロファイルとが完全に一致している場合よりも、ジョブタスクを該当プロセッサに割り当てるためにあまり傾斜していない。
【００３１】
目標データＤ１、Ｄ２、及びＤ３は、処理ジョブの実行を要求している親モジュール１７０、及び／又は、デバイス１６０の１つ以上の代替ユニット、モジュール、若しくは関数、例えば、プロセッサユニット１４１、１４２、及び１４３からの結果データをデータ処理デバイス１００上で起動している任意のより高いレベルのモジュールに転送するようになっているプロセッサゲートウェイ１６０のいずれかに直接送ることができる。
【００３２】
本発明の好適な一実施形態によれば、制御モジュール１５０は、各プロセッサユニットの許容利用に基づいて１つ以上のプロセッサユニット１４１、１４２、及び１４３に個々の処理タスクをさらに割り当てるようになっている。許容利用とは、衛星信号処理に潜在的に利用可能なリソース量の度合いを特定することである。すなわち、どの処理リソースが所与のプロセッサで実際に利用可能であるかに関係なく、これらのリソースのある量／割合は、他の目的（即ち、衛星信号ＳＢＬと無相関である関数ＤＡに関する）のために確保されるのが望ましい場合がある。許容利用パラメータはこの種の制限を反映するために使用することができる。
【００３３】
適切なリソース・プラニングを容易にするために、各プロセッサユニット１４１、１４２、及び１４３は、制御モジュール１５０にステータス信号ｓ１、ｓ２、及びｓ３をそれぞれ送信するようになっているのが好ましい。ステータス信号ｓ１、ｓ２、及びｓ３は、プロセッサユニット１４１、１４２、及び１４３に対するそれぞれの負荷状況を指定する。これにより、信号ｓ１、ｓ２、及びｓ３に基づいて、制御モジュール１５０は上述の処理タスクを割り当てることができる。
【００３４】
さらに、各々のプロセッサユニット１４１、１４２、及び１４３は、ユニットによって実行される各処理タスクを画定するタスク仕様を受信するようになっているのが好ましい。ここで、タスク仕様とは、データセット［ｄＦ］に対して全て実行する多くの繰返し処理を特定する少なくとも１つの入力、判別される少なくとも１つ信号源アイデンティティ、実行される処理形式、及び／又は、処理タスクのための時間要件を含むことを考えている。ここでは、ある繰返し処理とは、特定のチャネル（又は、論理構成体、信号源など）を見つけること、そのようなチャネルをトラッキングすること、或いはこのチャネルと関連付けられているデータを抽出することを含む場合がある。例えば、処理ジョブが取得を意味する場合、３つの信号源によって発せられた信号を取得するために、特定のプロセッサユニット、例えば、１４１がデータセット［ｄＦ］に対して３回繰返し処理を行うことをタスク仕様は特定することができる。
【００３５】
本発明の好適な一実施形態によれば、各々のプロセッサユニット１４１、１４２、及び１４３は、タスク仕様を記憶するようになっているプログラマブルモジュールｃ１、ｃ２、及びｃ３とそれぞれ関連付けられている。プログラマブルモジュールｃ１、ｃ２、及びｃ３は、各プロセッサユニット１４１、１４２、及び１４３の一体部分であっても、或いは、プロセッサユニット１４１、１４２、及び１４３によってアクセス可能な別々のリソースであってもよい。別々のリソースは、次には、１つ以上のプロセッサユニット用の共有リソースであっても、或いは各プロセッサユニット用の特定リソースであってもよい。従って、必要がある場合はいつでも、制御モジュール１５０は、影響を受けたプロセッサユニット１４１、１４２、及び／又は１４３を制御し、関連のプログラマブルモジュールｃ１、ｃ２、及びｃ３のコンテンツを更新することで新しい処理タスクを行うことができる。
【００３６】
本発明の別の好適な実施形態によれば、処理ジョブは第一のタイプの演算、例えば固定タイプに従って作業を行うことを含むと想定される。さらに、少なくとも１つのプロセッサユニット、例えば１４２は、第二のタイプの演算に基づいて、例えば浮動小数点数学に基づいて計算を行うようになっていると想定している。第二のタイプの演算に基づいて計算を行うようになっているプロセッサユニットと関連付けられている各プログラマブルモジュールは、第一のタイプの演算で画定した第一のタイプのタスクからの処理タスクを第二のタイプの演算で画定した同等のタスクに変換する命令セットを記憶するようになっている。即ち、この例では、プログラマブルモジュールｃ２はそのような命令セットを含む。そのため、プロセッサユニット１４２が３Ｄグラフィック・アクセラレータ・モジュールとして動作するよう設計されている場合、このユニットはデジタル化された航行衛星信号に関する処理タスクの処理リソースとしても機能することができる。当然のことながら、必要に応じて、処理タスクを逆方向に変換する１つ以上の命令セットは同様にまた画定され、適用可能なプログラマブルモジュールｃ１、ｃ２、及び／又はｃ３に記憶することができる。
【００３７】
一般に、純粋にリソース関連の理由に加えて、タスク変換は、アーキテクチャ及び／又は調節関連の理由に対して適用することができる。例えば、携帯型デバイスのメインＣＰＵは、通常、非リアルタイムオペレーティング・システムを起動し、携帯電話のＤＳＰは、通常、通信スタック（即ち、音声コーデック、通信プロトコルなどとの対話）を処理するリアルタイムオペレーティング・システムを起動する。さらに、音声電話通話中などのある時間／動作モード中に、ＤＳＰ上ですでに起動しているコードとインタフェースを取ることを禁止することができる。従って、携帯電話のＤＳＰが、航行衛星信号に対する処理タスクに技術的に利用可能なリソースを有する場合があっても、このタスクをＣＰＵによる処理に適するタスクに変換することが必要な場合がある。
【００３８】
要約すれば、図２の流れ図を参照しながら本発明によるデジタル化されたプリコリレーションの航行衛星信号データを処理する一般的な方法についてこれから説明する。
【００３９】
最初のステップ２１０は、任意の代替データ及び／又は信号が存在するかどうかを調査し、これは、衛星信号と無相関である少なくとも１つの関数に関する。同様に、ステップ２２０は、ステップ２１０と並行するのが好ましく、任意の位置関連の処理を行うかどうかを調査する。ステップ２１０において、代替データ及び／又は信号が存在することが分かると、ステップ２３０に続く。そうでなければ、プロシージャは再びステップ２１０にループバックする。ステップ２２０において、位置関連の処理が行われることが分かると、この処理が基づく衛星信号データはいつでも処理できると推認され、ステップ２４０に続く。そうでなければ、プロシージャは再びステップ２２０にループバックする。
【００４０】
ステップ２３０は、１つ以上のプロセッサユニット、例えば上述の１４１、１４２、及び１４３で代替データ及び／又は信号を処理する。ステップ２４０は衛星信号データを受信し、１つ以上のデータセットの形態でデータを記憶する。
【００４１】
続いて、ステップ２５０は、記憶データに対する処理ジョブの個々の処理タスクをプロセッサユニット１４１、１４２、及び１４３の少なくとも１つに割り当てる。タスク割り当ては、各プロセッサユニットの現在の処理負荷に基づいている。ここで、「現在の処理負荷」とは、最新の受信負荷レポートに基づく（例えば、ステータス信号ｓ１、ｓ２、及びｓ３によって反映される）負荷推定を意味し、これは、次回の負荷推定／レポート、例えば、後の多くのクロックサイクルまで有効であると考えられる。ステップ２５０では、各プロセッサユニットのパフォーマンス・プロファイルに対して実行される処理形式；データセットに対して実行される処理量に基づいて処理タスクをさらに割り当てるのが好ましく；及び／又は、これらのタスクを割り当てる場合には、処理ジョブが完了するタイムフレームも考えられる。
【００４２】
ステップ２５０の後、プロシージャは再びステップ２１０及び２２０にループバックする。本発明の好適な一実施形態によれば、タスク割り当てステップは、データセットのサイズ、実行される処理形式、１つ以上のプロセッサユニットによって用いられるクロック周波数、及び／又は衛星信号のスペクトル特性（帯域幅、サンプリング周波数など）によって決定される繰返し率で繰返される。
【００４３】
図２を参照して説明した上記の全てのステップのみならず、任意のサブシーケンスのステップは、予めプログラミングしているコンピュータ装置により制御することができる。さらに、図面を参照しながら上述した本発明の実施形態では、コンピュータ装置とコンピュータ装置で行われた処理とを含んでいるが、そのため、本発明は、コンピュータプログラム、とりわけ、本発明を実用化するようになっている、キャリア上又はキャリア内のコンピュータプログラムにも及んでいる。プログラムは、ソースコード、オブジェクトコード、中間ソースコード、及び部分的にコンパイルされた形態のオブジェクトコードの形態であってもよく、或いは、本発明によるプロシージャの実装における使用に適する任意のその他の形態であってもよい。プログラムは、オペレーティング・システムの一部であってもよく、或いは別のアプリケーションであってもよい。キャリアは、プログラムを持ち運ぶことができる任意のエンティティ若しくはデバイスであってもよい。例えば、キャリアは、フラッシュメモリ、ＲＯＭ（読取り専用メモリ）、例えばＤＶＤ（デジタルビデオ／多目的ディスク）、ＣＤ（コンパクトディスク）、ＥＰＲＯＭ（消去可能プログラム可能読取り専用メモリ）、ＥＥＰＲＯＭ（電気的消去可能プログラム可能読取り専用メモリ）、又は、磁気記録媒体、例えばフロッピー（登録商標）ディスク若しくはハードディスクなどの記憶媒体を含むことができる。さらに、キャリアは、電気又は光ケーブルを介して、或いは、無線若しくはその他の手段によって伝送することができる電気又は光信号などの伝播性のキャリアであってもよい。ケーブル又はその他のデバイス若しくは手段によって直接伝送することができる信号でプログラムを具現化する場合、キャリアは、そのようなケーブル又はデバイス若しくは手段によって構成されていてもよい。あるいは、キャリアは、プログラムが埋め込まれている集積回路であってもよく、集積回路は、関連プロシージャを行うか或いは関連プロシージャの実施において使用するようになっている。
【００４４】
「含む／含んでいる」という用語は、本明細書で使用される場合、記載されている特徴、整数、ステップ、又は部品が存在していることを示すものである。しかしながら、用語は、１つ以上の追加の特徴、整数、ステップ又は部品若しくはそれらの集合の存在や追加を妨げるものではない。
【００４５】
本明細書におけるいずれの従来技術の引用は、引用した従来技術がオーストラリアにおける一般常識の一部を形成するという承認又はいずれの示唆として解釈せず、かつ、解釈されるべきではない。
【００４６】
本発明は、図中で説明した実施形態に限定されるものではなく、請求の範囲内で自由に変更することができる。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施形態による処理デバイスのブロック図を示す。
【図２】本発明によるデジタル航行衛星信号を処理する一般的な方法を流れ図により示す。
【図１】
2009545194.tif 000003
【図２】
2009545194.tif 000004
【国際調査報告】
2009545194.tif 000005
2009545194.tif 000006
2009545194.tif 000007
2009545194.tif 000008
2009545194.tif 000009