(57)【要約】【課題】無線周波数の干渉低減のための方法および装置。【解決手段】ワイヤレスデバイス中におけるプロセッサを制御するプロセッサ周波数に起因した無線周波数上の干渉を低減させるための技法が、開示される。無線周波数上の干渉を低減させるための方法は、ワイヤレスデバイスにおいて使用される少なくとも１つの無線周波数を決定することと、ワイヤレスデバイスにおいて使用される少なくとも１つの無線周波数に対応する潜在的プロセッサ周波数に干渉ファクタを割り当てることと、のステップを含んでいる。本方法は、少なくとも１つの無線周波数との干渉を回避するために潜在的プロセッサ周波数以外の第１のプロセッサ周波数を選択することのステップを、さらに含んでいる。【選択図】      図２
2009500965.tif 000002
【特許請求の範囲】
【請求項１】
ワイヤレスデバイスにおける干渉を制御する方法であって、
前記ワイヤレスデバイスにおいて使用される少なくとも１つの無線周波数を動的に決定することと、
前記ワイヤレスデバイスにおいて使用される少なくとも１つの無線周波数に対応する潜在的プロセッサ周波数に干渉ファクタを割り当てることと、
前記少なくとも１つの無線周波数との干渉を回避するために、前記干渉ファクタが割り当てられた前記潜在的プロセッサ周波数以外の第１のプロセッサ周波数を選択することと、
を備える方法。
【請求項２】
前記潜在的プロセッサ周波数は、許容テーブル中に配置される、請求項１に記載の方法。
【請求項３】
前記干渉ファクタは、２進値を含む、請求項１に記載の方法。
【請求項４】
前記割り当てるステップは、
前記潜在的プロセッサ周波数の少なくとも１つの高調波周波数の干渉ファクタを割り当てること、
をさらに備える、
請求項１に記載の方法。
【請求項５】
使用される前記少なくとも１つの無線周波数は、１つの周波数から別の周波数へとホップする、請求項１に記載の方法。
【請求項６】
前記決定するステップは、
全地球測位システムを用いて前記ワイヤレスデバイスのロケーションを識別すること、
を備える、
請求項１に記載の方法。
【請求項７】
前記干渉ファクタは、重み付けされた値であり、この重み付けされた値は、しきい値よりも大きい、請求項１に記載の方法。
【請求項８】
第２のプロセッサ周波数を選択するために、前記の決定すること、割り当てること、および選択すること、のステップを反復すること、
をさらに備え、前記第２のプロセッサ周波数は前記第１のプロセッサ周波数に等しくない、
請求項１に記載の方法。
【請求項９】
前記ワイヤレスデバイスは、周波数スケーリングプロセッサを含み、前記方法は、
前記周波数スケーリングプロセッサを、前記第１のプロセッサ周波数で動作することから、複数の潜在的プロセッサ周波数から中間のプロセッサ周波数を選択することによって、前記第２のプロセッサ周波数で動作するように、スルーすること、
をさらに備える、
請求項８に記載の方法。
【請求項１０】
前記選択されるプロセッサ周波数は、デバイスのクロックを制御し、前記デバイスは、前記ワイヤレスデバイスのプロセッサまたはペリフェラルである、請求項１に記載の方法。
【請求項１１】
ワイヤレスデバイスによって使用される少なくとも１つの無線周波数を決定するための無線周波数コントローラと、
前記少なくとも１つの使用される無線周波数を受信するプロセッサクロックコントローラであって、複数の潜在的プロセッサ周波数から第１のプロセッサ周波数を選択する前記プロセッサクロックコントローラと、
を備え、前記複数の潜在的プロセッサ周波数中における少なくとも１つの潜在的プロセッサ周波数は、無線周波数帯域中にあり、前記第１のプロセッサ周波数は、無線周波数帯域中にあって、前記少なくとも１つの使用される無線周波数と干渉しない、
ワイヤレスデバイス。
【請求項１２】
許容テーブルを含むメモリをさらに備え、
前記許容テーブルは、前記複数の潜在的プロセッサ周波数を含み、前記プロセッサクロックコントローラは、前記少なくとも１つの使用される無線周波数に対応する前記許容テーブル中におけるエントリに干渉ファクタを割り当て、前記プロセッサクロックコントローラは、その対応するエントリが割り当てられていない前記許容テーブルから前記第１のプロセッサ周波数を選択する、
請求項１１に記載のワイヤレスデバイス。
【請求項１３】
前記プロセッサクロックコントローラは、前記少なくとも１つの使用無線周波数の高調波の干渉を回避するために、前記少なくとも１つの使用される無線周波数に対応するものの少なくとも１つの高調波周波数に対応するエントリを割り当てる、請求項１２に記載のワイヤレスデバイス。
【請求項１４】
前記少なくとも１つの使用される無線周波数は、１つの周波数から別の周波数へとホップする、請求項１１に記載のワイヤレスデバイス。
【請求項１５】
前記無線周波数コントローラは、全地球測位システム（ＧＰＳ）から前記ワイヤレスデバイスのロケーションを入力として受信し、前記ワイヤレスデバイスの前記ロケーションから前記少なくとも１つの使用される無線周波数を決定する、請求項１１に記載のワイヤレスデバイス。
【請求項１６】
周波数スケーリングプロセッサをさらに備え、
前記プロセッサクロックコントローラは、前記少なくとも１つの使用される無線周波数を避けて、前記複数の潜在的プロセッサ周波数から第２のプロセッサ周波数を選択し、前記周波数スケーリングプロセッサは、前記第２のプロセッサ周波数の前記選択に応じて、前記第２のプロセッサ周波数にその動作速度をスルーする、
請求項１１に記載のワイヤレスデバイス。
【請求項１７】
前記第１のプロセッサ周波数は、デバイスを制御し、前記デバイスは、前記ワイヤレスデバイスの周波数スケーリングプロセッサまたはペリフェラルである、請求項１１に記載のワイヤレスデバイス。
【請求項１８】
コンピュータ読取り可能媒体であって、その内容は、ワイヤレスデバイスに、１つまたは複数の使用される無線周波数と干渉しない無線周波数帯域中における少なくとも１つのプロセッサ周波数を決定させ、
前記ワイヤレスデバイス中において使用される少なくとも１つの無線周波数を決定することと、
前記ワイヤレスデバイス中において使用される少なくとも１つの無線周波数に対応する潜在的プロセッサ周波数に干渉ファクタを割り当てることと、
前記少なくとも１つの無線周波数との干渉を回避するために前記干渉ファクタが割り当てられた前記潜在的プロセッサ周波数以外の第１のプロセッサ周波数を選択することと、
のステップを実行するプログラムを有する、
コンピュータ読取り可能媒体。
【請求項１９】
前記潜在的プロセッサ周波数は、許容テーブル中に配置される、請求項１８に記載のコンピュータ読取り可能媒体。
【請求項２０】
前記干渉ファクタは、２進値を含む、請求項１９に記載のコンピュータ読取り可能媒体。
【発明の詳細な説明】
【発明の背景】
【０００１】
（発明の分野）
本発明は、一般に、ワイヤレスデバイスにおいて使用される無線周波数とのプロセッサにより生成される干渉を、低減させることに関連し、より詳細には、ワイヤレスデバイスによって現在利用されている、あるいは使用されるように計画されている無線周波数に基づいて、プロセッサまたは他のペリフェラルを動作させるためのプロセッサ周波数を選択するための有利な技法に関する。
【０００２】
（関連する背景）
今日のワイヤレス通信システムについての一般的な無線周波数帯域は、約４００ＭＨｚから２．４ＧＨｚを超えるところまで及んでいる。この範囲内で、無線通信用に周波数サブバンド(frequency sub-bands)、例えば、セルラ帯域、全地球測位システム(global positioning system)（ＧＰＳ）帯域、パーソナル通信サービス(personal communication service)（ＰＣＳ）帯域、国際移動体通信(international mobile telecommunication)（ＩＭＴ）帯域、および、Ｂｌｕｅｔｏｏｔｈ（登録商標）(Bluetooth(R))通信プロトコルを含む汎用周波数帯域など、が定義される。ワイヤレスデバイスは、一般的に１つまたは複数のこれらの無線周波数帯域中において通信する無線回路を有する。
【０００３】
マイクロプロセッサがワイヤレスデバイス中において動作する速度は、増大し続けている。プロセッサ速度を増大させるこの傾向は、テレビジョンアプリケーション、高輝度ビデオゲームアプリケーション(high intensity video gaming application)などのワイヤレスデバイス上で更なる機能についての要求を満たすために継続していくことが予想される。
【０００４】
マイクロプロセッサの速度が増大するにつれて、ワイヤレスデバイス上の電力消費も同様に増大する。電力消費の課題に対処するために、プロセッサがそのクロックレートをより高くあるいはより低く調整することができることを意味する動的周波数スケーリング(dynamic frequency scaling)を使用した、いくつかの従来のプロセッサが開発されてきている。この調整は、一般的にプロセッサの作業負荷(work load)の変化に応じて実行される。高い作業負荷では、プロセッサは、高い作業負荷の必要性を満たすために、より高いクロックレートで動作する。しかしながら、より高いクロックレートで動作するプロセッサの電力消費は、プロセッサが、より高い作業負荷を処理するためにより低いクロックレートで動作しているときの電力消費よりも高い。
【０００５】
古典的干渉低減技法、例えば、フィルタリング、静的プロセッサクロックの選択、および、物理的シールディング(physical shielding)などは、一般的に、デバイスによる無線周波数とのプロセッサ干渉を低減させるために使用される。しかしながら、これらの技法は、それらが、無線周波数でプロセッサを動作させる使用をできないようにするために設計時または準備する時に注意深い周波数計画を必要とするので、本質的に静的である。したがって、無線周波数の必要以上の干渉(undue interference)なしに広範囲のプロセッサ周波数が利用されることを依然として可能にしながら、適応エネルギー消費(adaptive energy consumption)を可能にする柔軟な技法が、当技術分野において必要である。
【発明の開示】
【０００６】
［概要］
マイクロプロセッサの速度が増大し、これらの増大した速度が、無線周波数帯域の周波数範囲に入るとき、無線周波数帯域内の速度で動作するマイクロプロセッサは、ワイヤレスデバイスの無線回路(radio circuits)と干渉を引き起こす可能性がある。さらに、無線周波数帯域内の速度で動作するマイクロプロセッサからもたらされる高調波周波数(harmonic frequency)もまた、無線回路と干渉を引き起こす可能性がある。
【０００７】
さらに、本発明の実施形態は、ワイヤレスデバイスによって使用される無線周波数上の干渉を低減させるために、ワイヤレスデバイス中においてプロセッサまたは他のペリフェラルデバイスを動作させるプロセッサ周波数を動的に決定するための方法、装置、およびコンピュータ読取り可能媒体に対する必要性を認識している。低減させられるべき干渉は、プロセッサの動作速度と、ペリフェラルデバイスを駆動するクロック信号と、プロセッサ周波数で生成される信号から生成される高調波周波数とによって引き起こされる干渉信号(interference signals)を含む可能性がある。使用中の無線周波数、あるいはプロセッサまたは他のペリフェラルについてのプロセッサ周波数を動的に決定する際に使用されるかもしれないそれらの周波数、についての知識を利用することによって、本発明の一実施形態は、プロセッサオペレーション(processor operation)を制御するので、それは、それらの対応する無線周波数がワイヤレスデバイス中において無線によって使用されていない時間の間、無線周波数範囲内の周波数で動作し、無線周波数範囲内の高調波を生成する。この実行時干渉回避技法(runtime interference avoidance technique)は、周波数スケーリングプロセッサ(frequency scaling processors)に、動作周波数の選択におけるより多くの自由を提供し、それによって、スループット対エネルギー消費(throughput versus energy consumption)のよりよい最適化を可能にする。
【０００８】
そのような目的のために、本発明の一実施形態は、ワイヤレスデバイスにおいて使用される少なくとも１つの無線周波数を決定することと、ワイヤレスデバイスにおいて使用される少なくとも１つの無線周波数に対応する潜在的プロセッサ周波数(potential processor frequency)に干渉ファクタを割り当てることと、のステップ(steps)を有する方法を含んでいる。本方法は、少なくとも１つの無線周波数との干渉を回避するために潜在的プロセッサ周波数以外の第１のプロセッサ周波数を選択することのステップを、さらに含んでいる。
【０００９】
本発明のさらなる特徴および利点と同様に本発明のより完全な理解は、以下の詳細な説明および添付図面から明らかであろう。
【００１０】
［詳細な説明］
本発明が、いまから、本発明のいくつかの実施形態が示されている添付図面を参照して、もっと十分に説明される。しかしながら、本発明は、様々な形態で実施されることができ、ここにおいて述べられる実施形態に限定されるものとして解釈されるべきではない。むしろ、これらの実施形態は、本開示が十分で完全であり、本発明の範囲を当業者に対して十分に伝えるように、提供されている。
【００１１】
本発明は、方法、システム、またはコンピュータプログラムプロダクト(computer program product)として実施されることができることが認識されるであろう。それに応じて、本発明は、ハードウェア実施形態、ソフトウェア実施形態、あるいはソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができる。さらに、本発明は、媒体(medium)中に具現化されたコンピュータ使用可能プログラムコードを有するコンピュータ使用可能ストレージ媒体上のコンピュータプログラムプロダクトの形態を取ることもできる。ハードディスク、ＣＤ−ＲＯＭ、光ストレージデバイス、フラッシュメモリ、あるいは磁気ストレージデバイスを含む、任意の適切なコンピュータ読取り可能媒体が利用されることができる。
【００１２】
本発明の教示に従ってコンパイルされ、アセンブルされ、あるいはコンパイルまたはアセンブリの後にあらかじめ復号化されるなどができるコンピュータプログラムコードは、最初にＣ、Ｃ＋＋、ネイティブアセンブラ(native Assembler)、ジャバ（登録商標）(JAVA(登録商標))、スモールトーク(Smalltalk)、ジャバスクリプト（登録商標）(JavaScript(R))、ビジュアルベーシック（登録商標）(Visual Basic(R))、ＴＳＱＬ、パール(Perl)などのプログラミング言語で、あるいは様々な他のプログラミング言語で書かれることができる。プログラムコードまたはコンピュータ読取り可能媒体は、そのフォーマットがプロセッサによって理解可能であるオブジェクトコードなどのマシン言語コードを意味する。本発明のソフトウェア実施形態は、特定のプログラミング言語を用いるそれらのインプリメンテーションに依存しない。プログラムコードが実行されるとき、プログラムコードについての動作環境を定義する新しいタスクが作成される。
【００１３】
図１は、本発明の一実施形態が使用されることができる例示のワイヤレス通信システム１００を示している。例証の目的のために、図１は、３つのリモートユニット１２０、１３０、および１５０と２つの基地局１４０とを示している。典型的なワイヤレス通信システムは、より多数のリモートユニットと基地局とを有することができることが認識されるであろう。リモートユニット１２０、１３０、および１５０は、それぞれコンポーネント１２５Ａ、１２５Ｂ、および１２５Ｃによって表されるように、ハードウェアコンポーネント、ソフトウェアコンポーネント、あるいはその両方を含んでおり、これらのコンポーネントは、以下でさらに詳細に論じられるような本発明の実施形態である。図１は、基地局１４０からリモートユニット１２、１３、および１５への順方向リンク信号１８０と、リモートユニット１２、１３、および１５から基地局１４０への逆方向リンク信号１９０とを示している。
【００１４】
図１において、リモートユニット１２０は、モバイル電話として示され、リモートユニット１３０は、ポータブルコンピュータとして示され、そしてリモートユニット１５０は、ワイヤレスローカルループシステム(wireless local loop system)中における固定ロケーションリモートユニット(fixed location remote unit)として示される。例えば、リモートユニットは、セル電話、ハンドヘルドパーソナルコミュニケーションシステム(personal communication system)（ＰＣＳ）ユニット、携帯型個人情報端末(personal data assistant)などのポータブルデータユニット、あるいはメータ読取り装置などの固定ロケーションデータユニット(fixed location data unit)であってよい。図１は、本発明の教示によるリモートユニットを示しているが、本発明は、これらの例示の示されるユニットだけには限定されない。本発明は、無線回路と機能ベースバンド処理コンポーネントの両方を含む任意のデバイス中において適切に使用されることができる。
【００１５】
図２は、本発明の一実施形態によるワイヤレスデバイス２００のブロック図である。ワイヤレスデバイス２００は、図１のコンポーネント１２５Ａ、１２５Ｂ、１２５Ｃなど、多種多様なコンポーネント内において使用されることができる。ワイヤレスデバイス２００は、無線部(radio)２０５とベースバンド処理コンポーネント(baseband processing component)２５０とを備える。要するに、無線部２０５は、様々な無線周波数上で情報を受信し送信する。これらの無線周波数は、ときどき(from time to tome)、ホップし(hop)、変化することができる。無線部２０５は、ハードウェア送信回路(hardware transmission circuit)２１５と、ハードウェアレシーバ回路(hardware receiver circuit)２２５と、ソフトウェアレシーバモジュール(software receiver module)２３５と、発振器回路２２０と、結合器(combiner)２１０と、無線周波数コントローラ(radio frequency controller)２３０と、無線部２０５が通信することができる準備された周波数のデータベースを含むメモリ２４０と、を含む。メモリ２４０はまた、現在使用されている又は将来使用される周波数を示す無線周波数テーブル(radio frequency table)を含むこともできる。
【００１６】
無線周波数テーブルは、以下の図３の説明に関連してさらに詳細に論じられる。無線周波数コントローラ２３０は、ベースバンド処理コンポーネント２５０、発振器回路２２０、ソフトウェアレシーバモジュール２３５、およびメモリ２４０に結合する。発振器回路２２０は、さらに、ハードウェア送信回路２１５およびハードウェアレシーバ回路２２５に結合する。ハードウェア送信回路２１５は、さらに、結合器２１０に結合する。ハードウェアレシーバ回路２２５は、さらに、結合器２１０と、ソフトウェアレシーバモジュール２３５とに結合する。
【００１７】
オペレーションの間、無線周波数コントローラ２３０は、メモリ２４０から送信周波数と受信周波数とを取り出す。メモリ２４０はまた、ワイヤレスデバイス２００が動作する領域に対して利用可能な周波数に基づいて動的に決定されている許容周波数(allowable frequencies)、を含むこともできる。例えば、全地球測位システム(global position system)を有するワイヤレスデバイスは、オペレーションのその領域を感知し(sense)、オペレーションの感知された領域に対応するメモリ２４０から送受信周波数(transmitting frequency and a receiving frequency)を取り出すことができる。無線周波数コントローラ２３０は、送信周波数と受信周波数の両方を発振器回路２２０に伝える。無線周波数コントローラ２３０は、マイクロプロセッサを実行する本発明の教示に従って、適切なコードで適切にインプリメントされることができる。
【００１８】
発振器回路２２０は、その取り出された送信周波数および受信周波数にそれぞれ対応する第１のクロック信号および第２のクロック信号を生成する。発振器回路２２０は、第１のクロック信号をハードウェア送信回路２１５に対して送り、そして第２のクロック信号をハードウェアレシーバ回路２２５に対して送る。概して、クロック信号は、一般的に方形波である。その結果として、第１および第２のクロック信号は、同じ周波数を有する他の信号との、また、それらの奇数高調波に等しい周波数を有する他の信号との、干渉を受けやすい。
【００１９】
ハードウェア送信回路２１５は適切に、知られている無線周波数送信回路であってもよく、それは、第１のクロック信号によって定義される周波数でキャリア信号の強度を強化する。キャリア信号は、発信する無線周波数信号を定義するための、ワイヤレスデバイス２００によって生成されるベースバンド情報を搬送する。説明を容易にするために、ハードウェア送信回路２１５へのベースバンド接続は示されていない。結合器２１０は、発信無線周波数信号をハードウェア送信回路２１５から受け入れ、その信号をアンテナ２０７に結合する。
【００２０】
アンテナ２０７を介して信号を受信するとき、結合器２１０は、その受信信号をハードウェア受信回路２２５に結合する。ハードウェア受信回路２２５は、ベースバンド信号をソフトウェアレシーバモジュール２３５へと出力するためにその受信信号からキャリア信号を取り除く。ハードウェア受信回路２２５は適切に、低パワーの着信信号を受信しベースバンド信号の強度を強化するための高利得回路であってよい。ソフトウェアレシーバモジュール２３５は、その後の消費(subsequent consumption)のために無線周波数コントローラ２３０に情報内容を提供するためにベースバンド信号を復号化する。さらに、ソフトウェアレシーバモジュール２３５は、送信または受信のキャリア周波数が基地局などの外部デバイスと通信する結果として近い将来に変化するかどうか、を決定するために、復号化された情報をオプションとして解析することができる。例えば、基地局は、ワイヤレスデバイスが通信するために選択することができる１つまたは複数のサポートされる周波数を伝えることができる。ソフトウェアレシーバモジュール２３５は、この例においてはこれらの提案される周波数(suggested frequencies)を決定し、これらの提案される周波数を無線周波数コントローラ２３０に対して伝える。無線周波数コントローラ２３０は、これらの提案される周波数をメモリ２４０中における無線周波数テーブルに書き込むことができ、それらを無線発振器回路２２０に対して伝えることによりこれらの提案される周波数を利用することができ、あるいはそれらの両方を行うことができる。ワイヤレスデバイスによって使用される無線周波数は、規則正しく、１つの周波数から別の周波数へとホップすることができることに注意すべきである。
【００２１】
ベースバンド処理コンポーネント２５０は、プロセッサクロックコントローラ２５５と、クロックジェネレータ２７５と、メモリ２７０に記憶される許容テーブル(allowance table)２６０と、プロセッサ２６５と、ソフトウェアタスク２８０が実行されることができるプラットフォーム(platform)を提供するオペレーティングシステム２６８とを含む。ここにおいて使用されるような用語「オペレーティングシステム(operating system)」は、知られているオペレーティングシステムと、カーネル(kernels)と、簡単なスケジューラなどを含むことができる。プロセッサクロックコントローラ２５５は、無線周波数コントローラ２３０と、許容テーブル２６０と、クロックジェネレータ２７５と、プロセッサ２６５とに結合する。クロックジェネレータ２７５は、さらに、プロセッサ２６５に結合する。ソフトウェアタスク２８０は、オペレーティングシステム２６８に結合する。
【００２２】
プロセッサクロックコントローラ２５５は、一般的に無線周波数コントローラ２３０からのステータス情報(status information)を受け入れるソフトウェアコンポーネントである。ステータス情報は、無線部２０５によって利用されている現在の周波数と、無線部２０５によって利用されることができる候補周波数(candidate frequencies)と、これらの候補周波数についての無線部２０５による特定の使用と、これらの報告される周波数のおのおのに関連する帯域幅と、を含むことができる。ステータス情報は、オプションとして、現在の信号強度、それらの候補周波数の信号対雑音比(signal-to-noise ratio)（ＳＮＲ）など、他の情報を含むこともできる。プロセッサクロックコントローラ２５５は、どの周波数でプロセッサ２６５が動作することになるかを決定するためにステータス情報と許容テーブル２６０とを利用する。許容テーブル２６０は、プロセッサ２６５または他のペリフェラルデバイスが動作することができる、潜在的プロセッサ周波数またはクロック速度を含んでいる。プロセッサクロックコントローラ２５５は、もしステータス情報における周波数が許容テーブル２６０の中の周波数に対応する場合は、潜在的プロセッサ周波数を修正する。プロセッサクロックコントローラ２５５はまた、もしステータス情報における周波数の高調波が許容テーブル２６０の中の周波数に対応する場合は、潜在的プロセッサ周波数をさらに修正することもできる。許容テーブル２６０とこれらの修正のより詳細な説明が、図４の説明に関連して提供される。
【００２３】
プロセッサクロックコントローラ２５５は、バッテリ消費を最小にしながら、提供される作業負荷(offered work load)の必要性を満たすようにプロセッサ２６５を動作させるプロセッサ周波数を決定するために、ソフトウェアタスク２８０によって提供される作業負荷を時々評価する。例えば、この評価は、５０ミリ秒間隔で行うことができる。プロセッサ２６５上の作業負荷は、ソフトウェアタスク２８０中におけるタスクの数と、各タスク中において実行する準備が整っている命令の量に依存する。ソフトウェアタスクは、例えば画面上でビデオを表示すること、ビデオゲームグラフィックスをレンダリングする(render)ことなどを含むことができる。プロセッサ２６５の動作速度を増大させることは、より高い電力消費を犠牲にしてソフトウェアタスク２８０の実行の速度を増大させる。
【００２４】
この評価はまた、選択される周波数においてプロセッサ２６５を動作させることにより潜在的に引き起こされる干渉効果(interference effects)を低減させるために、許容テーブル２６０からプロセッサ周波数を選択することも含んでいる。このようにして、干渉を低減させるために使用される無線周波数と、電力消費のバランスをとるために提供される負荷情報との、両方に基づいてプロセッサ２６５が動作する周波数を、プロセッサクロックコントローラ２５５は、選択する。プロセッサクロックコントローラ２５５は、この選択された周波数をクロックジェネレータ２７５に対して伝える。クロックジェネレータ２７５は、選択される周波数に基づいてクロック信号を生成し、その生成されたクロック信号でプロセッサ２６５または他のデバイスペリフェラルを駆動する。各ペリフェラルは、それ自体の周波数スケーリングプロセッサを有していても、あるいは有していなくてもよい、ということに注意すべきである。さらに、各ペリフェラルは、異なる周波数を有するクロック信号によって駆動されることもできる。
【００２５】
あるいは、プロセッサクロックコントローラ２５５は、作業負荷のみに基づいて周波数を選択する、知られている動的周波数選択技法に対する入力として、許容テーブル２６０のエントリ(entries)を提供することもできる。この代替案においては、プロセッサクロックコントローラ２５５は、選択を行う必要なしに、すでに除外された使用される無線周波数を有する潜在的プロセッサ周波数を提供する。
【００２６】
プロセッサ周波数選択が動的であり、時々行われるので、プロセッサ２６５は、１つの動作周波数から新しく選択される第２の動作周波数へと変化しなければならないかもしれない。１つの動作周波数から別の周波数へと移動するための１つのアプローチは、現在のクロックレート(clock rate)をオフにすること、そしてその後に選択されるクロックレートをオンにすることを含む。第２のアプローチは、第１のクロックレートから選択されるクロックレートへと増分的なステップ(incremental steps)でクロックレートをスルーすること(slewing)を含む。使用される無線周波数との干渉を低減させるためにクロックレートをスルーすることのより詳細な説明が、図６の説明に関連して提供される。
【００２７】
無線周波数コントローラ２３０およびプロセッサクロックコントローラ２５５は、コードで(in code)具現化されることができ、同じプロセッサ２６５または異なるプロセッサ上で実行することができる、ということに注意すべきである。そのようなソフトウェア実施形態においては、無線周波数コントローラ２３０とプロセッサクロックコントロール部２５５との間の通信は、リモートプロシージャコール(remote procedure call)（ＲＰＣ）、タスク間メッセージパッシング(inter-task message passing)、共通可変アクセスなどの、多くの知られているソフトウェア技法を含むことができる。あるいは、無線周波数コントローラ２３０およびプロセッサクロックコントローラ２５５は、ハードウェア回路またはファームウェアにおいて具現化されることができる。この代替実施形態においては、無線周波数コントローラ２３０とプロセッサクロックコントロール部２５５との間の通信は、１つまたは複数のステータスレジスタを設定することおよび読み取ること、シリアル情報のストリームを伝えること(passing)、あるいは同様なこと、を含んでいる多くの知られているハードウェア技法またはファームウェア技法を含むことができる。
【００２８】
図３は、本発明の一実施形態による例示の無線周波数テーブル３００を示している。無線周波数テーブル３００は、データベース２４０、または、無線周波数コントローラ２３０によってアクセス可能な任意の他のメモリデバイスに記憶されることができる。図に示されるように、無線周波数テーブル３００は、列３１０Ａおよび３１０Ｂを含んでいる。列３１０Ａは、無線部２０５などの無線部が通信することができる無線周波数または無線周波数の範囲を含んでいる。列３１０は、対応する周波数についての特定の使用を示している。例えば、行３１５を参照すると、Ｆ１は、音声信号のセルラ受信について現在使用されている又は近い時期に使用される。もしエントリが、例えば、行３２５におけるように「無し(None)」とラベル表示される場合は、対応する周波数は、無線部２０５によって使用されていない。異なる無線周波数が異なる目的のために使用されるので、無線周波数コントローラ２３０は、無線周波数テーブル３００を修正し、修正された無線周波数テーブル３００を記憶し、その使用される周波数とそれらの特定の使用を、ステータス情報メッセージを介してプロセッサクロックコントローラ２５５へ伝える。図３は、図４に関連して下記にさらに詳細に説明される。
【００２９】
図４は、本発明の一実施形態に従う、例示の許容テーブル２６０を示している。許容テーブル２６０は、列４１０および４１０Ｂを含んでいる。列４１０は、プロセッサ２６５または他のペリフェラルデバイスと共に使用されることができる潜在的プロセッサ周波数を含んでいる。列４１０Ｂは、０と１０との間の重み付けされた値(weighted value)とすることができる干渉ファクタ(interference factor)を含んでいる。０の値は、対応するプロセッサ周波数が、使用するために使用可能であることを意味する。０の値はまた、使用される無線周波数に対応しない潜在的無線周波数を示すことができ、したがって、潜在的無線周波数が割り当てられていないことを示すことができる。１０の値は、対応するプロセッサ周波数が、使用するために使用可能ではないことを意味する。１と９との間の任意の値は、対応するプロセッサ周波数が、使用可能な使用であってもよく、あるいはそうでなくてもよいことを示す。干渉ファクタが１と９との間である、説明される実施形態においては、その干渉ファクタは、システム許容レベル(system tolerance level)と比較される。システム許容レベルを考慮しながらプロセッサ周波数を選択することの一例が、以下に説明される。
【００３０】
オペレーションの２つの主要なフェーズ、メンテナンスフェーズと選択フェーズは、許容テーブル２６０を必要とする。メンテナンスフェーズ中において、プロセッサクロックコントローラ２５５は、無線周波数テーブル３００に対応する情報を受け取る。全体のテーブルに相当する情報を受け取る代わりに、プロセッサクロックコントローラ２５５は、使用される周波数(used frequencies)と、それらに関連する使用(their associated uses)のみを受け取ることができる。プロセッサクロックコントローラ２５５は、許容テーブル２６０の列４１０Ａにおける対応するプロセッサ周波数を決定するために、帯域幅情報と高調波乗数(harmonic multiplier)とを使用して、使用される周波数を変換する。帯域幅情報は、無線周波数コントローラ２３０からのステータス情報メッセージにおいて別々のパラメータ(separate parameters)として渡されることができる。高調波乗数は、無線周波数の特定の使用によって決定されてもよいし、あるいはあらかじめ定義されて(pre-defined)もよい。次いでプロセッサクロックコントローラ２５５は、対応する使用される無線周波数の特定の使用に基づいて、決定される周波数に関連する干渉ファクタを割り当てる。
【００３１】
例えば、無線周波数テーブル３００の行３１５を参照すると、周波数Ｆ１は、音声信号のセルラ受信について現在使用されている。プロセッサクロックコントローラ２５５がＦ１およびその対応する使用を解析するとき、プロセッサクロックコントローラ２５５は、例えば、Ｆ１の第５高調波および第７高調波が考慮されるべきであることを決定する。プロセッサクロックコントローラ２５５は、許容テーブル２６０中に示されるようにＦ１、Ｆ５、およびＦ７に対して７の重み付けされた干渉ファクタを割り当てる。この重みファクタは、下記に説明される選択フェーズの間に利用される。プロセッサクロックコントローラ２５５は、Ｆ１に割り当てられる重みとは異なる重みを高調波周波数Ｆ５およびＦ７に割り当てることができることに注意すべきである。そのような変化する重みの割当ては、高調波に対する干渉の影響が、高調波の次数に応じてレベルが変化するときに特に有用である。
【００３２】
別の例として、無線周波数テーブル３００の行３３５を参照すると、周波数Ｆ４は、音声信号のセルラ伝送のために現在使用されている。プロセッサクロックコントローラ２５５が、Ｆ４とその対応する使用を解析するときに、プロセッサクロックコントローラ２５５は、許容テーブル中に示されるようにＦ４に対して２の重みファクタを割り当てる。より低い重みは、伝送信号の強度に応じて、ある干渉が許容されることができることを示す。例えば、ワイヤレスデバイスのバッテリレベルが高く、強いセルラ伝送信号が現在生成されている場合には、その伝送信号との干渉の可能性が低減させられる。したがって、より低い重みファクタが、割り当てられる。
【００３３】
プロセッサ周波数に対する重み付けされた干渉ファクタの割当ては、対応する無線周波数が、特定のハードウェア設計によって十分にシールドされるかどうか、対応する無線周波数の高調波が、特定のハードウェア設計によって十分にシールドされるかどうか、信号の強度、信号の雑音についての許容度、デジタル信号が関与するかどうか、ワイヤレスデバイスについてのサービス品質要件など、を含んでいる多くの考慮すべき事項(considerations)を含むことができる。例えば、信号の強度が考慮される場合、使用される無線周波数の強度が強くなればなるほど、低い干渉ファクタが、対応するプロセッサ周波数に対して割り当てられることになる。例えば、デジタル信号が通信されていることが考慮される場合には、デジタル信号のエラー訂正符号化の有効性が、重み付けされた干渉ファクタを割り当てるときに解析されることができる。
【００３４】
無線周波数を干渉から十分に保護する、ワイヤレスデバイス中における他のメカニズムが存在する場合には、本発明の説明される実施形態により、無線周波数に対応するプロセッサ周波数の選択が可能になる。他の技法のそのような活用により、本発明の実施形態は、不必要に周波数を除外しないように有利に柔軟となることが可能になる。
【００３５】
選択フェーズ中に、プロセッサクロックコントローラ２５５は、新しいプロセッサ周波数が選択される必要があることを決定する。この決定は、時々、あるいは、定期的なベースで、例えば５０ミリ秒ごとなどで、行われることができる。選択を行う際に、プロセッサクロックコントローラ２５５は、現在の提供される作業負荷を考慮し、その提供される作業負荷の必要性を満たすためにプロセッサ２６５を動作させるためのバッテリ消費のバランスをとる。そうする際に、プロセッサクロックコントローラ２５５は、システム許容レベルにアクセスする。システム許容レベルは適切に、バッテリ、作業負荷、およびその類の、現在のレベルのような、ワイヤレスデバイスの動作特性を集約する(aggregates)レジスタあるいはソフトウェアの変数であってもよい。周波数を選択すべきかどうかを決定する際に、プロセッサクロックコントローラ２５５は、許容テーブル２６０の中のプロセッサ周波数に関連する干渉ファクタをシステム許容レベルと比較する。干渉ファクタがシステム許容レベルより大きい場合、対応するプロセッサ周波数は、回避されるべきである。そうでない場合には、対応する周波数は、選択されることができる。
【００３６】
例えば、プロセッサ２６５が、周波数Ｆ８で動作していて、望ましい作業負荷が満たされているので、プロセッサクロックコントローラ２５５が、プロセッサ２６５のクロックレートが低減させられることができることを決定する場合、プロセッサクロックコントローラ２５５は、次のより低い周波数、例えばＦ７の干渉ファクタを評価することになる。Ｆ７を選択すべきかどうかを評価する際に、プロセッサクロックコントローラ２５５は、干渉ファクタ７を現在のシステム許容レベルと比較する。干渉ファクタが現在のシステム許容レベルより大きい場合、Ｆ７は、選択されないことになる。現在のシステム許容レベルが６であることを仮定すると、次いでプロセッサクロックコントローラ２５５は、Ｆ６を考慮し、Ｆ６に関連する干渉レベルが現在のシステム許容レベルよりも小さいことを見出すことになる。このようにして、プロセッサクロックコントローラ２５５は、Ｆ６を選択することになる。
【００３７】
この技法を使用して、その極限状況において、システム許容レベルが０に設定されるとき、０の干渉ファクタを有する無線周波数だけが選択されることになる。この設定は、バッテリレベルが高レベルであるが、その無線部の受信信号強度が低レベルであるときに起こり得る。他の極限状態において、システム許容レベルが１０に設定されるときには、任意の周波数が、選択されることができる。この設定は、バッテリエネルギー節約を優先するために、バッテリレベルが低レベルであり、無線部によって使用されるすべての信号が、高電力レベルで実行しているときに、起こり得る。
【００３８】
本発明の別の実施形態は、２進値(binary value)を含む干渉ファクタを含むことができることが認識されるべきである。干渉ファクタが一方の値を有する場合、プロセッサクロックコントローラ２５５は、対応するプロセッサ周波数を選択することができる。干渉ファクタが他方の値を有する場合には、プロセッサクロックコントローラ２５５は、対応するプロセッサ周波数を選択してはならない。干渉ファクタが２進値を含むときには、上記に説明されたシステム許容レベルは、利用されない。
【００３９】
この説明は、周波数の観点からのものであるが、本発明の教示は、特定の周波数を回避することに限定されず、同様に特定の無線周波数に関連する周波数帯域を回避するプロセッサ周波数を選択することもできる、ということが認識されるべきである。
【００４０】
図５は、本発明の実施形態に従って、必要以上の干渉を低減させながら、どのようにしてプロセッサクロック周波数をより柔軟に割り付けるべきかについての図式的説明図５００を示している。説明図５００は、３つの周波数スペクトル５１０Ａ〜５１０Ｃを含んでいる。周波数スペクトル５１０Ａは、第１の時点において本発明の教示に従って修正されるワイヤレスデバイスによって使用される無線周波数の帯域を示す。この時に、ワイヤレスデバイス２００などのワイヤレスデバイスは、汎用周波数帯域５２５Ａ、ＧＰＳ帯域５２５Ｂ、ならびにセルラ帯域中における送信周波数帯域および受信周波数帯域５２５Ｃ上で通信している。周波数または周波数帯域５２５Ａ〜５２５Ｃとそれらの特定の使用は、無線周波数コントローラ２３０からのステータス情報の形で伝えられる。
【００４１】
周波数スペクトル５１０Ｂは、プロセッサ２６５または他のペリフェラルデバイスが動作することができる潜在的プロセッサ周波数５３５を示す。潜在的プロセッサ周波数５３５は、許容テーブル２６０などの許容テーブル中において指定される。潜在的周波数の範囲は、周波数スケーリングプロセッサの技術が進歩するにつれて拡大する可能性があることに注意すべきである。さらに、電力消費を節約するために、プロセッサ２６５は、低周波数クロックレートにおいてより低い電圧レベルで、そしてより高い周波数クロックレートにおいてより高い電圧レベルでそのプロセッサを動作させることを意味する電圧スケーリング(voltage scaling)を使用することができる。使用可能な潜在的動作周波数が多くなればなるほど、プロセッサクロックコントロール部２５５は、電力を低減させ、かつ、使用される無線周波数との干渉を低減させながら、プロセッサスループット要件(processor throughput requirement)を満たす動作周波数を選択する際に、より多くの柔軟性を有する。
【００４２】
周波数スペクトル５１０Ｃは、ワイヤレスデバイス２００によって使用される無線周波数５４５Ａと、プロセッサ２６５を動作させるための選択される周波数５４５Ｂとを示す。選択される周波数５４５Ｂの第１の高調波周波数５５５Ａおよび第２の高調波周波数５５５Ｂも示されている。選択される周波数７００ＭＨｚおよびその高調波、１４００ＭＨｚおよび２１００ＭＨｚなどは、使用される無線周波数５４５Ａと干渉しない、ということに注意すべきである。
【００４３】
図６は、本発明の一実施形態に従って、ｔ０における図２のプロセッサの動作周波数からｔ４における選択される動作周波数へとスルーすることを示す、スペクトル密度のグラフ６００である。図に示される例では、プロセッサ２６５についての現在の動作周波数のスペクトル密度６１０は、時刻ｔ０において１ＧＨｚであり、本発明の教示に従って修正されるワイヤレスデバイスによって選択される選択周波数のスペクトル密度６５０は、４００ＭＨｚである。プロセッサ２６５についての動作周波数をスルーするために、現在の動作周波数と選択される周波数との間で中間の動作周波数(interim operating frequencies)が、許容テーブル２６０のような許容テーブルから、これらの中間の動作周波数でプロセッサ２６５を一次的に実行させるために、選択される。動作周波数をスルーすることは、現在の動作周波数で実行するときにプロセッサ２６５をオフにすること、そしてつぎに、ステップのような関数の形の選択される周波数においてプロセッサ２６５をオンにすることにより、電力消費と、引き起こされる電力過渡状態(power transients)とを低減させる。
【００４４】
２つの動作周波数の間でステップするのではなく、動作周波数は、使用される無線周波数の干渉を低減させる選択される中間の周波数へとスルーされる。図６の示される例においては、動作周波数は、時刻ｔ１、ｔ２、およびｔ３においてスルーされる。１つまたは複数のスルー位置は、使用される無線周波数と干渉するかもしれないことがあり得る。この干渉を低減させるために、プロセッサクロックコントローラ２５５は、それらの対応する干渉ファクタに従って許容テーブル２６０中における周波数を選択することにより、使用される無線周波数との干渉を回避するようにスルー位置の数を計算することができる。あるいは、プロセッサクロックコントローラ２５５が、スルー位置が無線周波数と干渉することになることを決定する場合には、プロセッサクロックコントローラ２５５は、許容可能なビットエラーレート(bit error rate)（ＢＥＲ）を達成するために、干渉するスルー位置において費やされる時間量を短くすることによってその干渉を低減させることもできる。
【００４５】
図７は、本発明の一実施形態に従ってプロセッサ周波数を変化させることにより、使用される無線周波数との干渉を低減させるための方法７００を示すフローチャートである。ステップ７１０において、本方法７００は、ワイヤレスデバイスによって使用されている少なくとも１つの無線周波数を決定する。このステップにおいて、本方法は、ワイヤレスデバイスによって近い将来に使用される可能性のある１つまたは複数の追加の無線周波数を決定することもできる。ステップ７２０において、本方法７００は、使用されている少なくとも１つの無線周波数に対応する許容テーブル中における少なくとも１つのプロセッサ周波数に干渉ファクタを割り当て、ここでその許容テーブルは、潜在的プロセッサ周波数を含んでいる。オプショナルなステップ７３０へと進んで、本方法７００は、少なくとも１つのプロセッサ周波数の高調波周波数に干渉ファクタを割り当てることができる。ステップ７３０は、少なくとも１つのプロセッサ周波数に応じて、偶数高調波、奇数高調波、あるいはその両方を識別することができる。
【００４６】
ステップ７４０において、本方法７００は、システム許容レベルを満たす許容テーブルからプロセッサ周波数を選択し、それによって、選択される周波数においてプロセッサを動作させること、またはクロック信号を生成することが、使用中、または近い将来に使用される可能性のある無線周波数と許容できないほど干渉することにならないことを保証する。ステップ７４０はまた、プロセッサに対する提供される作業負荷に基づいて動作速度を選択する従来の技法と統合することもできる。この目的のために、ステップ７４０は、０の干渉ファクタを有する許容テーブルから、従来の技法がプロセッサを実行するように選択する従来の作業負荷技法に対して、抽出される周波数のリストを提供することができる。代わりに、ステップ７４０は、従来の作業負荷技法がプロセッサを実行させるように選択する、従来の作業負荷技法に対するシステム許容レベルを満たす周波数のリストを提供することもできる。本発明の教示に従って使用されることができる周波数のリストを従来の技法に対して提供するステップ７４０により、従来の技法は、プロセッサの作業負荷と最もよくマッチし、さらに使用される無線周波数との必要以上の干渉を回避するプロセッサ周波数を選択するように強化される。
【００４７】
本発明は、実施形態との関連で開示されているが、上記の説明と添付の特許請求の範囲に整合する多種多様なインプリメンテーションが、当業者によって使用されることができることが、認識されるであろう。
【図面の簡単な説明】
【００４８】
【図１】本発明の一実施形態が使用されることができる例示のワイヤレス通信システムの図式的説明図である。
【図２】本発明の一実施形態に従うワイヤレスデバイスのブロック図である。
【図３】本発明の実施形態に従う例示の無線周波数テーブルの図式的説明図である。
【図４】本発明の実施形態に従う、図２の例示の許容テーブルの図式的説明図である。
【図５】本発明の実施形態に従って、使用される無線周波数との干渉を低減させるプロセッサ速度を選択することの例示の使用ケースの図式的説明図である。
【図６】本発明の実施形態に従って、現在の動作周波数から選択された動作周波数へと図２のプロセッサの動作周波数をスルーすることを示すスペクトル密度のグラフである。
【図７】本発明の実施形態に従って、使用される無線周波数を回避するプロセッサ速度またはクロック信号を選択することにより、使用される無線周波数との干渉を低減させるための一方法を示すフローチャートである。
【図１】
2009500965.tif 000003
【図２】
2009500965.tif 000004
【図３】
2009500965.tif 000005
【図４】
2009500965.tif 000006
【図５】
2009500965.tif 000007
【図６】
2009500965.tif 000008
【図７】
2009500965.tif 000009
【国際調査報告】
2009500965.tif 000010
2009500965.tif 000011
2009500965.tif 000012