(57)【要約】  デュアルプロセッサにおけるメモリへのアクセスを制御するための方法および装置が開示される。詳細には、アクセス要求間の競合を低減するために、これらのプロセッサおよびデータ記憶装置に関する命令に対して単一のメモリが共有される場合に使用するための方法および装置が開示される。
2017537392.tif 000002
【特許請求の範囲】
【請求項１】
第1および第2のプロセッサを含むシステムによるメモリへのアクセスを制御するための方法であって、
記憶のために前記第2のプロセッサにおいてデータを生成するか、または受け取るステップと、
前記第2のプロセッサによって前記第1のプロセッサの動作を無効化するステップと、
前記第2のプロセッサの割込みを無効化するステップと、
前記第2のプロセッサによって前記メモリに前記データを記憶するステップと、
前記第2のプロセッサの割込みを有効化するステップと、
前記第1のプロセッサを有効化するステップと
を含む、方法。
【請求項２】
前記第1のプロセッサが無効化された期間を確認するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記期間がしきい値よりも長い場合、前記第1のプロセッサのリセットを実行するステップをさらに含む、請求項2に記載の方法。
【請求項４】
前記第2のプロセッサを使用して前記第1のプロセッサの状態を監視するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記第1のプロセッサの前記状態がしきい値時間よりも長い間変化しない場合、前記第1のプロセッサのリセットを実行するステップをさらに含む、請求項4に記載の方法。
【請求項６】
前記システムがGNSSレシーバであり、前記第1のプロセッサが追跡動作を実行している、請求項1に記載の方法。
【請求項７】
前記しきい値が50msである、請求項3に記載の方法。
【請求項８】
前記しきい値時間が2秒である、請求項5に記載の方法。
【請求項９】
前記第1および第2のプロセッサが、単一の集積回路パッケージ内にある、請求項1に記載の方法。
【請求項１０】
前記第1のプロセッサを無効化する前に前記プロセッサの安定性を判定するステップと、前記プロセッサが安定である場合、前記プロセッサを単に無効化するステップとをさらに含む、請求項1に記載の方法。
【請求項１１】
前記第1のプロセッサの前記安定性を判定するステップが、連続する位置計算の数をしきい値と比較するステップであって、前記連続する計算の数が前記しきい値を超える場合、前記第1のプロセッサが安定であると判定される、ステップを含む、請求項10に記載の方法。
【請求項１２】
前記第1のプロセッサの前記安定性を判定するステップが、前記プロセッサが最後に無効化されて以来の時間をしきい値と比較するステップであって、前記時間が前記しきい値よりも長い場合、前記第1のプロセッサが安定であると判定される、ステップを含む、請求項10に記載の方法。
【請求項１３】
前記第1のプロセッサの前記安定性を判定するステップが、前記データを記憶することを完了するために次にスケジュールされたイベントの前に十分な時間が存在することを検証するステップを含む、請求項10に記載の方法。
【請求項１４】
記憶されるデータに優先度を割り当てるステップと、前記優先度によって少なくとも部分的に定義された順序でデータを記憶するステップとをさらに含む、請求項1に記載の方法。
【請求項１５】
第1および第2のプロセッサと、メモリとの通信用のポートとを含むデュアルプロセッサデバイスであって、請求項1に記載の方法を実行するように構成される、デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータシステムに関し、より詳細には、デュアルプロセッサシステムによるメモリアクセスのための方法および装置に関する。
【背景技術】
【０００２】
プロセッサシステムは、命令およびデータのための一般的なメモリ記憶装置(たとえば、フラッシュメモリ)を利用する場合がある。したがって、命令読取りプロセスと、データ読取りおよび書込みプロセスとの間の競合を避けるために、そのメモリへのアクセスを制御する必要がある場合がある。
【０００３】
単一プロセッサシステムでは、データが書き込まれるか、または消去される間、プロセッサの割込みを停止することができるので、相互作用を管理することは、比較的簡単である。しかしながら、両方のプロセッサが同じメモリからそれらの命令をフェッチしているデュアルプロセッサシステムでは、このことは著しく複雑である。
【０００４】
全地球航法衛星システム(GNSS)は、位置を計算するために衛星からの信号を利用する航法システム用の標準的な総称である。衛星信号のロックオンを維持することは、特に厳しい都市環境では、極めて困難である。データ記憶を可能にするためにプロセッサアクセスを遮断することは、そのような困難を悪化させ、ロックの喪失、大きい位置誤差、または同期の喪失は、入念なシステム設計がなければ、容易に起こる可能性がある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、特にGNSSデバイス用のデュアルプロセッサシステムのメモリアクセスを管理するための手段と、メモリアクセス後にプロセッサ動作を回復するための手段とが必要である。
【課題を解決するための手段】
【０００６】
この概要は、以下の、発明を実施するための形態、の中でさらに説明される概念の選択を単純な形態で紹介するために提供されたものである。この概要には、特許請求される主題の重要な特徴または本質的な特徴を識別することは意図されておらず、また、特許請求される主題の範囲を決定することの補助として使用されることも意図されていない。
【０００７】
第1および第2のプロセッサを含むシステムによるメモリへのアクセスを制御するための方法であって、記憶のために第2のプロセッサにおいてデータを生成するか、または受け取るステップと、第2のプロセッサによって第1のプロセッサの動作を無効化するステップと、第2のプロセッサの割込みを無効化するステップと、第2のプロセッサによってメモリにデータを記憶するステップと、第2のプロセッサの割込みを有効化するステップと、第1のプロセッサを有効化するステップとを含む方法が提供される。
【０００８】
本方法は、第1のプロセッサが無効化された期間を確認するステップをさらに含む場合がある。本プロセッサは、前記期間がしきい値よりも長い場合、リセットされる場合がある。
【０００９】
本方法は、第2のプロセッサを使用して第1のプロセッサの状態を監視するステップをさらに含む場合がある。
【００１０】
本方法は、第1のプロセッサの状態がしきい値時間よりも長い間、変化しない場合、第1のプロセッサのリセットを実行するステップをさらに含む場合がある。
【００１１】
本システムはGNSSレシーバである場合があり、第1のプロセッサは追跡動作を実行している。
【００１２】
しきい値は、50msであってもよい。
【００１３】
しきい値時間は、2秒であってもよい。
【００１４】
第1および第2のプロセッサは、単一の集積回路パッケージ内にあってもよい。
【００１５】
本方法は、第1のプロセッサを無効化する前に前記プロセッサの安定性を判定するステップと、前記プロセッサが安定である場合、前記プロセッサを単に無効化するステップとをさらに含む場合がある。第1のプロセッサの安定性を判定するステップは、連続する位置計算の数をしきい値と比較するステップであって、連続する計算の数がしきい値を超える場合、第1のプロセッサが安定であると判定される、ステップを含む。第1のプロセッサの安定性を判定するステップは、プロセッサが最後に無効化されて以来の時間をしきい値と比較するステップであって、前記時間がしきい値よりも大きい場合、第1のプロセッサが安定であると判定される、ステップを含む。第1のプロセッサの安定性を判定するステップは、データを記憶することを完了するために次にスケジュールされたイベントの前に十分な時間が存在することを検証するステップを含む。
【００１６】
本方法は、記憶されるデータに優先度を割り当てるステップと、その優先度によって少なくとも部分的に定義された順序でデータを記憶するステップとをさらに含む場合がある。
【００１７】
また、第1および第2のプロセッサと、メモリとの通信用のポートとを含むデュアルプロセッサデバイスが開示され、前記デバイスは本明細書で説明する方法を実行するように構成される。
【００１８】
当業者には明らかなように、好ましい特徴は、適宜、組み合わされてもよく、本発明の態様のうちのいずれかと組み合わされてもよい。
【００１９】
本発明の実施形態は、以下の図面を参照して、例として説明する。
【図面の簡単な説明】
【００２０】
【図１】デュアルプロセッサシステムの概略図である。
【図２】メモリへのアクセスを制御する方法のフローチャートである。
【発明を実施するための形態】
【００２１】
図を通して、同様の機構を示すために、共通の参照番号が使用される。
【００２２】
本発明の実施形態は、単に例として以下で説明する。これらの例は、現在出願人が知っている、本発明を実施する最良の方法を表すが、本発明を達成することができる唯一の方法ではない。発明を実施するための形態には、例示の機能と、この例を構成し動作させるためのステップのシーケンスとを記載する。しかしながら、同じまたは均等な機能およびシーケンスは、異なる例によって達成されてもよい。
【００２３】
図1は、デュアルプロセッサGNSSレシーバ10の簡略図を示す。レシーバは、第1のプロセッサ11および第2のプロセッサ12を含み、適切なポートを介してフラッシュメモリ13と通信している。フラッシュメモリは、シリアルまたはパラレルのメモリであってもよい。各プロセッサは、信号処理、位置計算、および他のサポートタスクの態様を実施する。第1および第2のプロセッサは、データを交換し、2つのプロセッサの相互作用を可能にするために接続される。例示的なシステムでは、第1のプロセッサは、追跡タスクおよび信号処理タスクを実行するDSPプロセッサであり、第2のプロセッサは、一般的な制御タスクを実行する、RISCプロセッサなどの汎用プロセッサである。第1および第2のプロセッサは、一般に、単一の集積回路パッケージ内に統合される。
【００２４】
GNSSレシーバは、受信した信号を処理するのと同時に、拡張エフェメリス、アルマナック、RTC、クリスタルラーニング(Crystal Learning)テーブル、およびUTCデータなどのデータを記憶する必要がある。図1のレシーバでは、このデータは、両方のプロセッサがそれらの命令をフェッチしているのと同じ外部フラッシュメモリに記憶される。
【００２５】
各プロセッサによる命令の非同期のフェッチを制御するための方法は知られているが、GNSSレシーバ性能を劣化させることなく、またはスケジュールされたタスクをオーバーランすることなく、データ記憶動作を行う命令フェッチの協調が、問題を起こす。
【００２６】
特に図2を参照しながら以下でより詳細に説明するように、フラッシュメモリの書込みは、2つのプロセッサのうちの一方によって制御される。非制御プロセッサにおいて記憶用のデータが生成される場合、そのデータは、記憶のために制御用プロセッサに転送される。非制御プロセッサは無効化され、制御用プロセッサは、割り込むことができないプロセスを使用してフラッシュメモリにデータを書き込む。書込みが完了すると、非制御プロセッサは、制御用プロセッサによって再び有効化され、処理は続く。非制御プロセッサを無効化することにより、そのプロセッサは、同じ点において動作を再開するように停止する。
【００２７】
第1のプロセッサの割込みが一定の期間よりも長い間、無効化された場合、特定の動作が必要とされる場合があるとき、第2のプロセッサは、第1のプロセッサの割込みが無効化された時間を監視し、しきい値を超えた場合は、第1のプロセッサを再初期化するために、適切な動作がトリガされる場合がある。たとえば、GNSSレシーバでは、追跡性能は、一定の期間後に失われる場合がある。
【００２８】
図2は、デュアルプロセッサGNSSデバイス内のメモリへのアクセスを制御するための特定の方法のフローチャートを示す。本デバイスは、一般にDSPプロセッサであり、受信した信号を処理するために利用される追跡用プロセッサと、位置計算プロセスおよび一般的な制御プロセスを提供する汎用プロセッサとを含む。
【００２９】
デバイスの動作中に、フラッシュメモリに記憶しなければならないデータが、追跡用プロセッサおよび汎用プロセッサによって生成される。追跡用プロセッサによって生成されたデータは、最初に汎用プロセッサに転送される。記憶のためにデータが準備される(ステップ20)と、ステップ21において、レシーバが安定であるかどうかが検証される。レシーバは、連続する有効な位置出力をカウントすることによって安定であると判定される場合がある。一例では、レシーバは、10個の有効な連続する出力の後に安定であると判定される。以下でより詳細に提示されるように、過度の中断なくデータを確実に記憶することができるように、さらなるチェックが行われる場合もある。
【００３０】
ステップ22では、追跡用プロセッサは無効化される。追跡用プロセッサを無効化することは、停止コマンドを発すること、プロセッサをオフにすること、すべての割込みを無効化すること、またはフラッシュメモリからのいかなる読込みも防ぐことを含んでもよい。プロセッサを無効化する目的は、追跡用プロセッサによるフラッシュメモリへのアクセスを防ぐことであり、したがって、メモリへの競合を避ける。ステップ23では、ステートマシンは、追跡用プロセッサの状態を監視するために汎用プロセッサ上で開始される。このステートマシンは、追跡用プロセッサが正しく再有効化されることを確実にするために使用される。
【００３１】
ステップ24において、単一の動作においてフラッシュメモリにデータを記憶することができるように、データが汎用プロセッサによってパッケージングされ、ステップ25において、汎用プロセッサがフラッシュメモリにデータを書き込む。これは、確実にプロセスに割り込まれないようにするためにコードのクリティカルセクションを使用して行われる。たとえば、書込み動作を開始する前に汎用プロセッサにおけるすべての割込みを無効化し、次いで完了後に割込みを再有効化することによってプロセスが間断なく完了することを確実にするために、他の技法を利用することもできる。
【００３２】
書込みプロセスが完了する(および、必要な場合、汎用プロセッサの割込みが再有効化される)と、汎用プロセッサは、次いで、ステップ26において、追跡用プロセッサを有効化する。
【００３３】
汎用プロセッサは、追跡用プロセッサの割込みが無効化された時間を監視し(ステップ27)、追跡動作が正しく再開されることを確実にするための適切なステップをとる。ステップ27において適用されるしきい値は、データを書き込むのに必要な時間の具体的な特性と、無効化されている期間を扱うためのレシーバの能力とに応じて判定される。これらの値のどちらも、極めて著しく変化することができ、各構成において特定の値が選択される場合がある。一例では、追跡用プロセッサは、パラレルフラッシュでは50msよりも長い間、SQIFでは400msよりも長い間、無効化された場合、リセットされる場合がある。リセットの後、追跡されている衛星信号は、汎用プロセッサと再同期することができる。この値のタイミングは、書込みプロセス中にフラッシュメモリのセクタを消去することが必要であるとき、遭遇される可能性が最も高い。本プロセスは、次いで、ステップ29において完了する。
【００３４】
追跡用プロセッサがしきい値よりも短い間、無効化された場合、プロセスは、任意のさらなるステップを必要とすることなく、ステップ29において完了する。
【００３５】
上述のように、追跡用プロセッサが無効化されたとき、ステートマシンは、追跡用プロセッサの状態を監視するために汎用プロセッサ内で開始される(ステップ23)。汎用プロセッサから追跡用プロセッサへの起動信号(ステップ26)が追跡用プロセッサによって見逃され、追跡用プロセッサが全動作を再開しないことが考えられる。ステートマシンは、追跡用プロセッサの状態を監視し(ステップ30)、そのステートマシンがしきい値時間よりも長い間、動かなかった場合、動作を再開するためにステップ31において追跡用プロセッサのリセットが実行される。このしきい値は、たとえば、2秒に設定されてもよい。
【００３６】
ステートマシンは、すべてのデータ記憶動作が完了されると、非活動状態にされる場合があり、追跡用プロセッサは、動作状態になる。
【００３７】
上記で説明したように、データ記憶動作は、レシーバシステムが安定であることが検出されると、開始される場合がある。時間的制約のある機能(たとえば、GNSSレシーバ内の1PPS信号の生成)が影響を受けないことを確実にするために、データ記憶動作が適切な時間に動作されることを確実にすることが重要である場合もある。上記の例では、少なくとも10個の連続する位置が確実に計算されることによって、安定性が判定されるが、それに加えて、またはその代わりに、他の手段を使用する場合もある。たとえば、追跡用プロセッサからのすべての測定値が、汎用プロセッサによって受け取られ処理されることが要件である場合もある。汎用プロセッサは、次にスケジュールされたタスクの前にデータ記憶動作を可能にする十分な時間があることを検証する場合もある。さらに、安定性チェックは、最後のフラッシュ書込みプロセスまたは消去プロセスの完了以来の時間を利用することができる。それは、追跡用プロセッサが最後に無効化されてから、有効化されるまでの時間である。
【００３８】
記憶用のデータは、最も重要なデータを最初に記憶するためにデータ記憶装置を適切にスケジュールすることができるように優先度の表示でタグを付けられる場合がある。記憶用のすべての異なるデータタイプが、優先度を付けられる。加えて、通信ポートを介して、ホストプロセッサから、記憶用のデータを受け取ることができる。ホストプロセッサから受け取ったこのタイプのデータは、できる限り早く、記憶のために最も高い優先度を割り当てられる。外部で生成されたデータの一例は、サーバ生成拡張エフェメリス(SGEE:Server Generated Extended Ephemeris)データである。
【００３９】
高優先度データでは、記憶は、レシーバ安定性を維持することよりも高い優先度である場合がある。これらの環境では、レシーバ安定性チェックは実行されない場合があり、記憶方法は、データを記憶する前に直接、追跡用プロセッサを無効化することに進む。したがって、安定性を確保することと、データの記憶を遅延させることとの間のバランスが定義される。複数の優先度レベルの使用により、このバランスを、効率的かつフレキシブルに管理することが可能になる。優先度は、汎用プロセッサによって、またはデータの発信元によって割り当てられる場合がある(たとえば、追跡用プロセッサは、優先度でデータにタグを付ける場合がある)。
【００４０】
いくつかのフラッシュメモリは、本明細書で説明するように動作するデュアルプロセッサシステムに適さない場合がある。たとえば、フラッシュメモリの消去中断モードを利用することは、動作に必要な時間の著しい増加につながり、汎用プロセッサがメモリ動作を行う間、追跡用プロセッサのより大きい中断につながる可能性がある。代わりに、データ書込み動作および消去動作が上記で説明したように管理され、その結果、追跡用プロセッサは、計算されたスケジュールに応じて無効化され、できる限り迅速に動作を再開することができる。
【００４１】
上記の説明は、デュアルプロセッサGNSSレシーバを参照して与えられてきた。しかしながら、了解されるように、本明細書で説明した原理および方法は、他のアプリケーションにおけるデュアルプロセッサシステムに等しく適用できる。
【００４２】
上記の説明では、一般に、フラッシュメモリにデータを書き込むことに言及されてきたが、了解されるように、同じ方法は、消去などの他のメモリ動作に適用される。
【００４３】
本説明は、フラッシュメモリに関して与えられてきたが、これらの方法および技法は、任意のメモリ技術に適用されてもよい。
【００４４】
本明細書で与えられた任意の範囲またはデバイス値は、当業者には明らかなように、求められる効果を失うことなく、拡張または変更される場合がある。
【００４５】
上記で説明した利益および利点は、一実施形態に関する場合があるか、またはいくつかの実施形態に関する場合があることが理解されよう。これらの実施形態は、述べられた問題のいずれかもしくはすべてを解決する実施形態、または述べられた利益および利点のいずれかもしくはすべてを有する実施形態に限定されない。
【００４６】
「1つの(an)」項目へのいずれの言及も、これらの項目のうちの1つまたは複数を指す。本明細書では、「含む(comprising)」という用語は、特定された方法ブロックまたは要素を含むが、そのようなブロックまたは要素が排他的なリストを含まず、方法または装置が追加のブロックまたは要素を含む場合があることを意味するために使用される。
【００４７】
本明細書で説明する方法のステップは、必要に応じて、任意の適切な順序で、または同時に実行されてもよい。加えて、個々のブロックは、本明細書で説明する主題の趣旨および範囲から逸脱することなく、これらの方法のいずれかから削除されてもよい。上記で説明した例のうちのいずれかの態様は、求められる効果を失うことなく、さらなる例を形成するために説明する他の例のうちのいずれかの態様と組み合わされてもよい。
【００４８】
好ましい実施形態の上記の詳細な説明が単に例として与えられ、当業者によって様々な変更が行われてもよいことが理解されよう。様々な実施形態について、ある程度の詳細とともに、または1つもしくは複数の個々の実施形態を参照して上記で説明してきたが、当業者は、本発明の趣旨または範囲から逸脱することなく、開示した実施形態にいくつかの改変を行うことができる。
【符号の説明】
【００４９】
10  デュアルプロセッサGNSSレシーバ
11  第1のプロセッサ
12  第2のプロセッサ
13  フラッシュメモリ
2017537392.tif 000003
【図２】
2017537392.tif 000004
【国際調査報告】
2017537392.tif 000005
2017537392.tif 000006
2017537392.tif 000007