説明

ネットワークインターフェースモジュール内の電力を管理するための方法および装置

【課題】ネットワークインターフェースモジュールを備えた携帯型コンピューティングデバイス内の電力消費を管理するための方法とシステムを提供する。
【解決手段】パワーマネジメントモジュールは、他のモジュールからの入力を受け取り、ネットワークインターフェースモジュール内の電力消費の浪費を防ぐために、ネットワークインターフェースモジュールを所定の数のビーコン間隔の間ドーズ状態に置くかどうか判定する。ネットワークと関連付けられているデバイスのネットワークインターフェースモジュールは、走査が実行されたときを含むイベントが発生した後、遅延スリープタイマーがタイムアウトになった後、およびビーコンの送信が完了した後であって、そのデバイスに対してトラフィックがバッファされていないときにドーズ状態に置かれる。遅延スリープ時間は、パケットの推定ランドトリップ時間に基づいて設定される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的には、携帯型コンピューティングデバイスに関するものであり、より詳細には、携帯型コンピューティングデバイス内の電力管理に関するものである。
【背景技術】
【0002】
ラップトップコンピュータ、携帯情報端末装置(personal digital assistant devices)などの無線ネットワーキングデバイス(wireless networking devices)およびインフラストラクチャの開発および展開が進み、消費者および企業はますます、本当のモバイルコンピューティング(mobile computing)、モバイル共同作業(mobile collaboration)、およびモバイル情報交換(mobile information exchange)の恩恵を受けられる状況になってきている。もはや、出張者が、ただ単にネットワークに接続して電子メールメッセージを取り出したり、ファイルをダウンロードしたり、情報交換するために、各種のケーブルを携えて利用可能なデータポートを求めて際限なく探し回る必要はなくなった。もはや、企業および家庭の消費者は、壁のEthernet(登録商標)ジャックの場所によって、ネットワークにアクセスできる場所を制限されることはない。会議参加者および友人グループは、自分たちの間にケーブルを配線することなく、既存のネットワークにログインすることなく、自分たちの特別なネットワークを形成できる。バッテリの電力が続く間は、無線プロトコルを使用してネットワークにログオンできるため、なおいっそう機動性が高まる。
【0003】
しかし、無線ネットワーク(wireless networks)でのモバイルコンピューティングという概念は十分に受け入れられているが、この概念の実施にはさまざまな形態のものがある。すなわち、市場で競合しているいくつかの異なる無線プロトコル標準規格が存在している。これらの標準規格としては、802.11b(Wi−Fiとも呼ばれる)、802.11a(Wi−Fi5とも呼ばれる)、802.11g、HomeRF、Bluetooth、Wireless 1394、HiperLAN2、UWB(Ultrawideband)、ZigBeeなどがある。これらの異なる標準規格にはそれぞれ、特有の利点があり、特定の用途およびユーザを想定して開発されている。これらの標準規格には共通な点が1つあるが、それは、ネットワークインターフェースカード(NIC)として通常実装される、ネットワークインターフェースモジュールを使用していることである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
モバイルワーカ(mobile worker)は大きな機動性を必要とするので、組織内でも、出先でも、モバイルワーカは無線デバイスに電力を供給するバッテリの寿命の制限を受ける。バッテリの寿命は、機動性に対する主要な制約となっている。無線NICのバッテリ消費電力は、ラップトップ内で3番目に大きい。スモールフォームファクタデバイス(small form factor devices)では、無線NICのバッテリ電力消費の割合はラップトップよりもさらに大きい。このエネルギーの大半は無線データ伝送に使われ、NICがデータ伝送に関わっていないときでも無線NICを電源オン(power on)にしている。バッテリが供給できる電力量は限られているため、電力消費を最小限に抑えバッテリ駆動式のデバイスの動作時間を延ばすことがこれらのデバイスにとって重要な課題となっている。
【0005】
無線NICが実行する機能の消費電力を低減するために行われている1つの方法は、どのデバイスが無線ネットワーキングデバイスの範囲内にあるかを判定するための走査(scan)を実行する期間を調整することである。例えば、2002年12月18日に出願され本出願の出願人に譲渡された米国特許出願番号第10/323,043号には、走査履歴および最新走査の走査結果に基づき指数関数を使用して走査から次の走査までの時間を設定することが教示されている。しかし、走査から次の走査までの間の時間を長くすると電力が節約されるが、バッテリの電力を節約するさらなる方法が必要とされている。
【課題を解決するための手段】
【0006】
本発明は、コンピューティングデバイス内のネットワークインターフェースモジュールの電力を管理するための方法および装置を提供する。
【0007】
パワーマネジメントモジュールは、コンピューティングデバイス内の他のモジュールから受け取ったパラメータに基づきネットワークインターフェースモジュールの電力状態を制御する。バッテリまたは燃料電池などのエネルギーが制限されている電源からコンピューティングデバイスに電力が供給され、コンピューティングデバイスがアクセスポイントに関連付けられている場合、ネットワークインターフェースモジュールは、パワーセーブモードで動作し、エネルギーが制限されている電源から引き出される電力が節約される。一実施形態では、パワーセーブモードは高速パワーセーブモード(fast power save Mode)または最大パワーセーブモード(maximum power save mode)のいずれかである。コンピューティングデバイスがアクセスポイントに関連付けられておらず、ネットワークインターフェースモジュールが走査中であるか、または走査が要求された場合、ネットワークインターフェースモジュールはパワーアップ状態(powered up state)で動作し、ネットワークインターフェースモジュールへ完全に電力が供給される。一実施形態では、ネットワークインターフェースモジュールはアクセスポイントに関連付けられておらず、走査を実行中でないか、または走査を完了している場合、ネットワークインターフェースモジュールは低電力状態(つまり、ドーズ状態(doze state))に置かれる。コンピューティングデバイスがアクセスポイントに関連付けられておらず、ネットワークインターフェースモジュールが走査中であるか、または走査が要求されている場合、ネットワークインターフェースモジュールがドーズ状態にあり、ネットワークインターフェースモジュールが動作するための最低量の電力が使用されていれば、ネットワークインターフェースモジュールはパワーアップ状態に設定される。コンピューティングデバイスへの電力供給源が電線(例えば、AC電源、バッテリ充電器など)の場合、ネットワークインターフェースモジュールは、パワーアップ状態のままであり、ネットワークインターフェースモジュールは完全に電力供給される。
【0008】
ユーザは、ユーザが電力の節約を望まないか(つまり、常時起動モード(CAM:Constant Awake Mode))、中程度の電力の節約を望むか(つまり、高速パワーセーブモード)、または最大の電力の節約モードを望むか(つまり、最大パワーセーブモード)を指定するためのインターフェースを介して、選択を設定することができる。ユーザ設定可能な選択に加えて、アプリケーションは、パケットにタグを付けて、早い応答が要求されていること、およびパワーマネジメントモジュールがネットワークインターフェースモジュールの動作を常時起動モードまたは高速パワーセーブモードで動作するように調整することを示すことができる。
【0009】
高速パワーセーブモードでは、パワーマネジメントモジュールは、ネットワークインターフェースモジュールがドーズ状態に入ることが可能な時を決定し、ネットワークインターフェースモジュールがこれからドーズ状態に設定されるという通知をアクセスポイントに送信する。パワーマネジメントモジュールは、通知が送信された後、ネットワークインターフェースモジュールをドーズ状態に設定する。ビーコン間隔の終了前に、ネットワークインターフェースモジュールがパワーアップ状態(つまり、オン状態)に設定され、ビーコン間隔毎にビーコンを受け取るようにされる。アクセスポイントまたはピアコンピューティングデバイスでは、コンピューティングデバイスに対するパケットがキューに入っていないことをビーコンが示している場合、ネットワークインターフェースモジュールはドーズ状態に戻される。コンピューティングデバイスに対して少なくとも1つのパケットがバッファされていることをビーコンが示している場合、ネットワークインターフェースモジュールは、バッファされているパケットを受け取ってから、ドーズ状態に入る。
【0010】
ネットワークインターフェースモジュールがいつドーズ状態に入ることができるかを決定するステップは、遅延スリープタイマーがタイムアウトになったことを判定するステップ、走査が完了したかどうか判定するステップ、コンピューティングデバイスに対するトラフィックがキューに入っていないことをビーコンが示しているかどうか判定するステップ、および電源がエネルギーの制限されている電源から電線の電源に切り換えられるかどうか判定するステップを含む。
【0011】
最大パワーセーブモードでは、パワーマネジメントモジュールは、複数のビーコン間隔(つまり、ビーコン受信間隔(listening interval))でネットワークインターフェースモジュールをドーズ状態にする。パワーマネジメントモジュールは、ネットワークインターフェースモジュールがいつドーズ状態に入ることができるかを決定し、ネットワークインターフェースモジュールがこれからドーズ状態に設定されるという通知をアクセスポイントに送信する。パワーマネジメントモジュールは、通知が送信された後、ネットワークインターフェースモジュールをドーズ状態が設定する。ビーコン受信間隔の終了前に、ネットワークインターフェースモジュールは、オン状態に設定され、ビーコンを受信できるようにする。コンピューティングデバイスに対してパケットがキューに入っていないことをビーコンが示している場合、ネットワークインターフェースモジュールはビーコン受信間隔の期間ドーズ状態に戻される。コンピューティングデバイスに対して少なくとも1つのパケットがバッファされていることをビーコンが示している場合、ネットワークインターフェースモジュールは、バッファされているパケットを受け取ってから、ビーコン受信間隔の残りの期間ドーズ状態に入る。
【0012】
パワーマネジメントモジュールは、ネットワークインターフェースモジュールがオン状態およびドーズ状態のうちの一方にいつ設定されるかを判定するパワーマネジメントバックエンドモジュール、パワーマネジメントバックエンドモジュールと通信し、デバイスがエネルギーの限られている電源から電力供給されているかどうかを含むシステム状態情報をパワーマネジメントバックエンドモジュールに供給するシステム状態モジュール、パワーマネジメントバックエンドモジュールと通信し、ネットワークインターフェースモジュールのインターフェース状態情報をパワーマネジメントバックエンドモジュールに供給するインターフェースリストモジュールを備える。パワーマネジメントバックエンドモジュールは、ステートマシン(state machine)を使用して、ネットワークインターフェースモジュールがオン状態、ドーズ状態、およびオフ状態に設定される時を決定する。パワーマネジメントモジュールは、ネットワークインターフェースモジュールがパワーセーブモードで動作しているときに、遅延スリープタイマーがタイムアウトになった後、走査が完了した後、またはコンピューティングデバイスに対してトラフィックがキューに入っていないことをビーコンが示した後に、ネットワークインターフェースモジュールがドーズ状態に設定されることを決定する。
【0013】
遅延スリープ時間は、パケットを送信してからネットワークインターフェースモジュールをドーズ状態に設定するまでに指定された時間だけ待機することで、パワーセーブモードで動作しているデバイスのネットワークスループットを向上するために使用される。こうすることにより、受信者が遅延スリープ時間以内に応答を送信すれば、アプリケーションは次のビーコン間隔またはビーコン受信間隔を待たずに応答を受け取ることができる。遅延スリープタイマーを使用してタイミング機能を提供する。遅延スリープタイマーは、パケットが分配のためアクセスポイントに送信された後に設定され、ネットワークインターフェースモジュールは、遅延スリープタイマーがタイムアウトになった後、ドーズ状態に設定される。遅延スリープタイマーがカウントを行っている間に別のパケットがアクセスポイントに送信されると、遅延スリープタイマーはリセットされる。遅延スリープ時間はパケット毎に決定され、送信されるパケットの推定ランドトリップ時間に基づく。
【0014】
本発明の他の特徴および利点は、添付する図を参照して進められている説明目的の実施形態の以下の詳細な説明から明白になるであろう。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施形態を実装することができる例示的コンピュータデバイスのアーキテクチャの概要を説明するブロック図である。
【図2】本発明の節電メカニズムの一実施形態を実装するコンピューティングデバイスの例示的動作環境を説明する概略図である。
【図3】ビーコン受信間隔がビーコン間隔にどのように関係しているかを説明している図である。
【図4】本発明の技術にしたがってネットワークインターフェースモジュールがどのような電力モードの動作に設定されるかを決定するステップを示すフローチャートである。
【図5】本発明のパワーマネジメントモジュールを説明するブロック図である。
【図6】本発明で使用されるステートマシンの図である。
【図7】本発明の技術による無線ネットワーク内におけるネットワークインターフェースモジュールの典型的な動作を説明する図である。
【図8】本発明のパワーマネジメントモジュールの他の実施形態を説明する図である。
【発明を実施するための形態】
【0016】
特許請求の範囲は、特殊性を有する本発明の特徴を述べているが、本発明は、その目的および利点とともに、添付する図面に関する以下の詳細な説明から最もよく理解できると思われる。
【0017】
本発明は、ネットワークにアクセスするためのネットワークインターフェースモジュールおよび蓄積されるエネルギーの量が限られている、バッテリパックなどのエネルギーの制限されている電源を備えるコンピューティングデバイスで動作する。現在のネットワークインターフェースモジュールは、ネットワークトラフィックを送信しないときに必要以上に長い間、高電力状態(送信、受信、または受信待機)に留まる。この時間には無駄に電力が消費され、バッテリパックの持続時間が短くなる。このため、バッテリパックの交換または充電を頻繁に行う必要がある。トラフィックを送信中または走査中でないときにネットワークインターフェースモジュールが高電力状態にある時間を短縮することが望ましい。本発明は、ユーザの選択に基づきバッテリの電力を節約する方法を提示するものである。本発明を詳細に説明する前に、本発明を実装できるコンピューティングデバイス例について最初に、図1を参照して説明する。
【0018】
本発明は、プロセッサによって実行されるプログラムモジュールなどの命令を使用して、携帯電話、ハンドヘルドデバイス、無線監視装置、マイクロプロセッサベースのプログラム可能な家電製品などをはじめとする各種の装置を採用するシステムに実装することができる。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、オブジェクト、コンポーネント、データ構造などが含まれる。「プログラム」という用語は、1つまたは複数のプログラムモジュールを含む。
【0019】
図面では類似の参照番号は類似の要素を指しており、本発明は好適なコンピューティング環境で実施されるものとして説明されている。必須ではないが、パーソナルコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において本発明を説明する。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、当業者には、本発明が、携帯型(ハンドヘルド)デバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成でも実施できることは明白であろう。また、本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをローカルとリモートの両方のメモリ記憶デバイスに配置できる。
【0020】
図1は、本発明の一実施形態を実装するためのコンピューティングデバイス100の例を示している。最も基本的な構成では、コンピューティングデバイス100は少なくとも処理ユニット102およびメモリ104を備える。コンピューティングデバイスの正確な構成と種類に応じて、メモリ104は揮発性(RAMなど)、不揮発性(ROM、フラッシュメモリなど)、またはこれら2つの何らかの組み合わせとすることができる。図1においてこの最も基本的な構成は、点線106で示されている。さらに、コンピューティングデバイス100には、追加的な特徴/機能も備えることができる。例えば、コンピューティングデバイス100は、磁気ディスクまたは光ディスクあるいはテープを含み、これらに限定されない追加記憶装置(取り外し可能および/または取り外し不可能)を備えることもできる。このような追加記憶装置は、図1では、取り外し可能記憶装置108および取り外し不可能記憶装置110により示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能の媒体を含む。メモリ104、取り外し可能記憶装置108および取り外し不可能記憶装置110は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体としては、RAM(Random Access Memory)、ROM(Read Only Memory)、EEPROM(Electronically Erasable and Programmable Read Only Memory)、フラッシュメモリまたはその他のメモリ技術、CDROM(Compact Disk ROM)、デジタル多用途ディスク(DVD:Digital Versatile Disc)またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、コンピューティングデバイス100によりアクセスできるその他の媒体がある。このような任意のコンピュータ記憶媒体をコンピューティングデバイス100の一部とすることができる。
【0021】
また、コンピューティングデバイス100には、このデバイスが他のデバイスと通信するために使用する1つまたは複数の通信接続112を含めることもできる。通信接続112は、通信媒体の一例である。通信媒体は、典型的に、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを搬送波またはその他のトランスポートメカニズムなどの変調データ信号により具現化し、情報配信媒体を含む。「変調データ信号」という用語は、信号内の情報をエンコードする方法でその特性のうち1つまたは複数を設定または変更した信号を意味する。限定ではなくたとえば、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、および、RF(radio frequency)、赤外線、およびその他の無線媒体などの無線媒体がある。上述のように、本明細書で使用しているコンピュータ可読媒体という用語は、記憶媒体と通信媒体の両方を含む。
【0022】
さらにコンピューティングデバイス100は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの1つまたは複数の入力デバイス114を備えることもできる。表示装置、スピーカー、プリンタなどの1つまたは複数の出力デバイス116を備えることもできる。これらのデバイスはすべて、本技術分野ではよく知られているため、本明細書でさらに詳しい説明をする必要はない。
【0023】
本発明の所期の適用をふまえて、コンピューティングデバイス100をモバイルデバイス(mobile device)として構成する。その目的のために、コンピューティングデバイス100に、バッテリパック、燃料電池などのエネルギーが制限されている携帯型の電源120を装備する。エネルギーが制限されている電源120は、コンピューティングデバイス100による計算およびデータ送信用の電力を供給する。図2に示されているように、コンピューティングデバイス100は、異なる種類の無線ネットワークと無線通信するためのネットワークインターフェースモジュール201をさらに備える。この実装のネットワークインターフェースモジュール201は、適切な周波数チャネル上で、無線でデータを送信するためのアンテナ206に結合されている、送信機122を備える。受信機126も、デバイスが通信しているネットワークから無線で送信される通信パケットを受信するためアンテナ206に結合されている。ネットワークインターフェースモジュール201およびアンテナ206は、図1の通信接続112の一部である。一実施形態では、ネットワークインターフェースモジュール201は、IEEE802.11無線接続上で無線構成(wireless configuration)サービスを利用して、インフラストラクチャ・モードネットワークおよびアドホック・モードネットワークを含む、ネットワーク構成を簡単に行えるようにしている。ネットワークインターフェースモジュールの例として、PCMCIA無線カードがある。ネットワークインターフェースモジュールのインターフェースタイプおよび物理構成は本発明にとっては重要でないことは理解されるであろう。例えば、インターフェースタイプは、PCI(Peripheral Component Interconnect)でも他のタイプでもよく、ネットワークインターフェースモジュールは、個別のカードに設ける必要もない。コンピュータのマザーボードに搭載される、あるいはさらに将来、プロセッサに組み込まれる可能性さえある。
【0024】
コンピューティングデバイス100は、ネットワークインターフェースモジュールを通じて、異なる種類の無線ネットワークと通信することができる。例えば、図2で説明されている環境では、コンピューティングデバイス100は、アクセスポイント231を介して無線でインフラストラクチャ・モードネットワーク230に接続されている局とすることが可能である。コンピューティングデバイス100は、さらに、アドホック・モードネットワークとも呼ばれるピアツーピアネットワーク220の一部であってもよい。アドホック・モードネットワークは、コンピューティングデバイス221、222、および223などの他のコンピューティングデバイスを含む。インフラストラクチャ・モードネットワークのアクセスポイント231またはアドホック・モードネットワーク220のいずれかに接続する前に、コンピューティングデバイス100は、プローブ要求を送信し、アクセスポイントまたはその他のデバイスにより送信されたプローブ応答信号を走査することにより、定期的に能動的な走査を行うことでネットワークに属しているデバイスを探索する状態に置くことができる。あるいはまた、コンピューティングデバイス100は、アクセスポイントによって送信されたビーコンの走査を行うことにより受動的な探索を行うことができる。
【0025】
ネットワークドライバ203は、ネットワークインターフェースモジュール201の動作を制御する。ネットワークドライバ203は、コンピューティングデバイス100のオペレーティングシステムの一部であるか、またはコンピューティングデバイス100上で実行される個別の実行可能プログラムのいずれかである。ネットワークドライバの一例として、ネットワークドライバインターフェース標準仕様(NDIS:Network Driver Interface Specification)がある。ネットワークドライバ203は、パワーマネジメントモジュール202と通信し、本明細書で説明しているように電力状態を変化させるようネットワークインターフェースモジュール201に動的に指令を出す。パワーマネジメントモジュール202は、いくつかのコンポーネントと通信し、ネットワークインターフェースモジュール201がどの電力状態に入るべきかを判定するために使用するデータを取得する。これらのコンポーネントは、走査エンジン204、アプリケーション透過性API(アプリケーションプログラミングインターフェース)216、電源インジケータ208、電力設定210、パケットアナライザ212、および統計アナライザ214を含むことができる。
【0026】
走査エンジン204では、パワーマネジメントモジュール202とのインターフェースを使用して、走査を実行する必要が生じたときにネットワークインターフェースモジュール201を高電力状態に置くよう要求する。これは、走査が完了したことを示すメッセージを送信し、ネットワークインターフェースモジュール201を高電力状態のままにしておく必要はもはやないことを示す。走査エンジン204は、走査履歴および走査結果に基づいて指数関数を使用して走査から次の走査までの時間を調整する。走査エンジン204の詳細は、参照により全体が本明細書に組み込まれている、2002年12月18日に出願した前述の米国特許出願で説明されている。アプリケーションは、API216を使用して、送信するデータが小または高電力状態で送信しなければならないことを要求する。アプリケーションに選択がない場合、アプリケーションはAPI216を呼び出さない。
【0027】
コンピューティングデバイス100のオペレーティングシステムまたは他のモジュール(図に示されていない)は、エネルギーが制限されている電源120またはAC電源から電力供給されているかどうか判定する。これは、コンピューティングデバイス100がAC電源により電力供給されているかあるいはエネルギーの制限されている電源120から電力供給されているかを、パワーマネジメントモジュール202に通知する電源インジケータ208を使用する。ユーザは、電力設定210を通じて所望の電力設定を指定することができる。電力設定には、高、中、および低がある。高電力設定は、常時起動モードに対応し、低電力設定は、最大パワーセーブモードに対応し、中電力設定は、高速パワーセーブモードに対応しており、これらの電力設定について説明する。パケットアナライザ212は、ネットワークインターフェースモジュール202をドーズ状態することができる時を決定する。パケットアナライザ212は、ネットワークインターフェースモジュール202を通じて送信されるパケットを観測し、クライアントがいつトラフィックを送信していないかを判定する。データを送信して十分な時間が経過した場合、パケットアナライザ212は、ネットワークインターフェースモジュール202をドーズ状態に設定できることをパワーマネジメントモジュールに通知する。統計アナライザ214は、このアナライザをサポートしているネットワークドライバのためにしか動作しない。パケットアナライザ212は、統計アナライザ214に問い合わせし、接続に関する統計を調べ、電力レベルを調整すべきかどうか判断する。統計には、受信した信号強度、送信されたフラグメント数、失敗回数、リトライ回数、複数リトライ回数、フレーム重複数、RTS(Request to send、送信要求)成功回数、RTS失敗回数、ACK(Acknowledgment)失敗回数、FCS(Frame Check Sequence)エラー発生回数、および送信されたフレーム数がある。
【0028】
パワーマネジメントモジュール202およびコンポーネント204〜216は、図1のシステムメモリ104、取り外し可能記憶装置108、または取り外し不可能記憶装置110に格納することができる。パワーマネジメントモジュール202およびコンポーネントは、分かりやすくするため、別々に示されているが、パワーマネジメントモジュール202およびコンポーネントの一部または全部を、オペレーティングシステムの一部またはコンピューティングデバイス100内の他のモジュールの一部とすることができる。
【0029】
以下の説明では、特に断りのない限り、1つまたは複数のコンピューティングデバイスにより実行される活動(acts)および動作(operations)の象徴的な表象を参照しながら本発明を説明する。そのような活動および動作は、それ自体、ときにはコンピュータによって実行されるものとして言及されるが、構造化された形式でデータを表現する電気的信号デバイスの処理ユニットによって実行されることを含むことは理解されるであろう。この実行により、データを変換するか、またはコンピュータのメモリシステム内のロケーションに保持し、当業者であればよく理解している方法でコンピュータの動作を再構成または変更する。データが保持されているデータ構造は、データの形式によって定義された特定のプロパティを有するメモリの物理的なロケーションである。しかし、本発明は前記の文脈で説明されているが、当業者が理解するように、これ以降で説明する各種の活動および動作はハードウェアでも実装できることを制限する意図はない。さらに、本発明の動作を説明するためにアクセスポイントを用いる。本発明がピアによるアドホックモードで、またアクセスポイントおよびピアのように振る舞うコンポーネントを含む他のシステムで動作することは、理解されるであろう。以下の説明における、ネットワークインターフェースモジュールとアクセスポイントの間の相互作用(例えば、メッセージと通知)は、ピアなどの間にも実装することができる。
【0030】
本発明では、ネットワークインターフェースモジュール201に供給する電力を主要な3レベルで制御する。これらのレベルは、オン状態、ドーズ状態、およびオフ状態である。3つのレベルについて説明するが、オペレーティングシステム、ネットワークインターフェースモジュールの能力およびドライバに応じて、レベルはいくつでも使用することができる。ドーズ状態では、システムはアイドル状態にあり、ネットワークインターフェースモジュール201への供給電力は、トラフィックを送信せずそれ自体を維持するのに必要な最小限度の電力レベルに抑えられている。本発明は、ネットワークインターフェースモジュール201がトラフィックの送信または受信、または走査を行っていない場合に、多くの時間をドーズ状態でいるようにする方法を提示する。
【0031】
オン状態では、3つの電力レベルがある。つまり、常時起動モード(CAM:constant awake mode)、最大パワーセーブモード(Max PSP:maximum power saving mode)、および高速パワーセーブモード(Fast PSP:fast PSP)の3つのレベルである。CAMモードでは、ネットワークインターフェースモジュール201は完全に電力が供給され、節電は行われない。最大パワーセーブモードおよび高速パワーセーブモードを定義する前に、ビーコン間隔とビーコン受信間隔との関係について説明することにする。図3を参照すると、多くの無線システムでは、アクセスポイントが定期的に、TIM(traffic indication map:パワーセーブ中のステーションに着信を通知するための情報要素)を含むビーコンフレームを定期的にブロードキャストするようになっている。ビーコンフレームを受信するステーションでは、受信時刻が局所有のタイマーよりも遅れている場合に受信ビーコン内のアクセスポイントのタイマー値を使用する。ブロードキャストからブロードキャストまでの期間はビーコン間隔と呼ばれる。典型的なビーコン間隔は100msである。
【0032】
図3は、ビーコン間隔300、302、304、306、308を示している。ビーコン受信間隔は、ビーコン間隔の倍数として定義される。図3では、ビーコン受信間隔310は4ビーコン間隔である。ビーコン受信間隔にはビーコン数をいくつでも使用できる。ビーコン間隔およびビーコン受信間隔について説明したので、次に、最大パワーセーブモードおよび高速パワーセーブモードについて説明する。最大パワーセーブモードでは、ネットワークインターフェースモジュール201は、トラフィックの受信または送信が行われていないときにドーズ状態に置かれ、ビーコン受信間隔毎に起動する。高速パワーセーブモードでは、ネットワークインターフェースモジュール201は、トラフィックの受信または送信が行われていないときにドーズ状態に置かれ、ビーコン間隔毎に起動する。アクセスポイントは、定期的に、ビーコン内にTIMを送信し、パワーセーブモードを使用するどのデバイスが、アクセスポイントのバッファ内にそのデバイスためにデータフレームを待機させるかを識別する。TIMは、関連付け処理でアクセスポイントがコンピューティングデバイス100に割り当てたアソシエーションIDによりステーションを識別する。オフ状態では、ネットワークインターフェースモジュール201はオフになる。
【0033】
状態の説明をしたので、次に、パワーマネジメントモジュール202の動作全体について説明する。図4を参照すると、パワーマネジメントモジュール202では、コンピューティングデバイス100がエネルギーの限られている電源120から供給される電力を使用しているのか、それとも電線から供給される電力を使用しているのかを判定する(ステップ400)。コンピューティングデバイス100が電線の電力を使用している場合、パワーマネジメントモジュール202はネットワークインターフェースモジュール201を常時起動モードで動作するように設定する(ステップ402)。コンピューティングデバイス100がEnergy Star対応デバイス(など)であれば、パワーマネジメントモジュール202は、デバイスがエネルギーの制限されている電源120を節約するかのように動作することに注意されたい。ユーザは、電力設定210を通じてコンピューティングデバイス100を強制的に常時起動モードにすることができる。
【0034】
コンピューティングデバイス100がエネルギーの制限されている電源の電力を使用している場合、パワーマネジメントモジュール202は、コンピューティングデバイス100がアクセスポイントに関連付けられているかどうか判定する(ステップ404)。パワーマネジメントモジュール202は、コンピューティングデバイス100がアクセスポイントに関連付けられている場合にパワーセーブモードのうちの1つ(つまり、Max PSPまたはFast PSP)でネットワークインターフェースモジュール201を動作させる(ステップ406)。コンピューティングデバイス100が関連付けられていない場合、パワーマネジメントモジュール202は、コンピューティングデバイス100が走査モードに入っているかどうか判定する(ステップ408)。走査エンジン204は、この情報をパワーマネジメントモジュール202に送る。パワーマネジメントモジュール202は、コンピューティングデバイス100が走査中であれば常時起動モードでネットワークインターフェースモジュール201を動作させる(ステップ410)。コンピューティングデバイス100が走査モードでなければ、パワーマネジメントモジュール202は、ネットワークインターフェースモジュール201をドーズモードにする(ステップ412)。
【0035】
パワーセーブモードのうちの1つに入っている場合、パワーマネジメントモジュール202は、モジュール204〜216から情報を受け取り、その情報を使用してネットワークインターフェースモジュール201の電力レベルを設定する。パケットアナライザ212のパケットアナライザ設定は、走査エンジン204の走査設定またはAPI216から受け取ったアプリケーション設定に優先する。パケットアナライザはサポートされているデータ転送速度に適した電力レベルを判定し、カードがそのデータ転送速度を達成するためにフル電力を必要としない場合に、電力は節約されるということが根拠となっている。例外は、走査エンジン204もアプリケーションも大電力を要求せず、そのうちの一方が低電力を要求する場合であるが、その場合、ネットワークインターフェースモジュール201は、高電力状態にするクライアント側要件がないため低電力状態のままにできる。コンポーネントがどれも、パワーマネジメントモジュール202への入力を提供しない場合、電力設定は既存の状態のままである。
【0036】
送信するデータがある場合、ネットワークインターフェースモジュール202は、アプリケーションからデータを送信するために連続的に起動モードに設定される。パケットアナライザ212は、最後の送信からトラフィックを戻るまでに要する予想ランドトリップ時間を決定する。この時間は、遅延スリープ時間と呼ばれ、コンピューティングデバイス100により送信される各パケットに関連付けられている。パケットが送信されると、パワーマネジメントモジュール202は、タイマーを遅延スリープ時間に設定する。タイマーがタイムアウトになった後、トラフィックが受信されなかった場合、ネットワークインターフェースモジュール202は、ドーズ状態に設定され、節電が行われる。送信するトラフィックがさらにあれば、タイマーがリセットされる。遅延スリープ時間は、ランドトリップ時間に基づいているため、動的である。ネットワークインターフェースモジュールが複数のセッションからパケットを送信している可能性がある。異なるセッションによるパケット伝送では、ランドトリップ伝送(RTT)遅延が異なる。遅延スリープ時間は、すべてのセッションからのパケット伝送に対するRTTの最大に基づく動的な値である。例えば、あるセッションのパケット送信中のRTTは10ミリ秒未満であるが、他のセッションではRTTは50ミリ秒の場合があり、この場合、遅延スリープ時間は2つのケースの間の最大(例えば、50ミリ秒)に基づく。さらに、あるセッションのRTTは、パケットが複数の場所に送信される状況では異なることがある。例えば、米国から日本へ向けての伝送は、米国から米国国内の他の場所への伝送に比べて遅延スリープ時間が長くなる。ランドトリップ時間はビーコン間隔よりも長い場合、パワーマネジメントモジュールは、リターンパケットが喪失する危険性、ランドトリップ時間などの要素に基づいて、ネットワークインターフェースモジュールが、ビーコン間隔よりも長い間ドーズ状態にとどまることが可能か判定する。ネットワークインターフェースモジュールがビーコン間隔よりも長い間ドーズ状態にとどまることができないとパワーマネジメントモジュールが判断した場合、パワーマネジメントモジュールは、ネットワークインターフェースモジュールをパワーアップ状態に設定しビーコンを受信する。そうでない場合には、ネットワークインターフェースモジュールは、遅延スリープタイマーがタイムアウトになるまでドーズ状態にとどまる。
【0037】
遅延スリープ時間を使用すると、受信側が遅延スリープ時間以内に応答を送信すれば、アプリケーションは、与えられた次のビーコン間隔またはビーコン受信間隔を待たずに応答を受け取ることができるため、パワーセーブモードで動作しているデバイスのネットワークスループットが向上する。さらに、アクセスポイントは、応答をバッファしなくて済むため、資源の節約にもなる。この動作モードを充足するアプリケーションは、API216を呼び出す必要がなく、選択した電力設定への影響はない。
【0038】
特に速い応答を必要とするアプリケーションでは、API216を使用し、それに応じてパケットにタグを付ける。パワーマネジメントモジュール202は、ネットワークインターフェースモジュール201の電力消費量を下げる際にそれほど積極的ではなく、アプリケーションがAPI216を呼び出しているときには、リターントラフィックのための十分な時間をとる。例えば、ネットワークインターフェースモジュール201を、数ビーコン間隔の間、常時起動モードに置くことができ、および/または遅延スリープ時間を長くすることができる。本発明は、アプリケーションが継続的にパケットをタグ付けしてエネルギーの制限されている電源120を意図的に低下させることから、タイマー機能を用いてコンピューティングデバイス100を保護する。アプリケーションがAPI216を呼び出す場合、パワーマネジメントモジュール202はタイマーを起動する。アプリケーション(または他の何れかのアプリケーション)がさらにパケットを送信しなくなった場合、トラフィックのランドトリップ時間の複数分の時間が経過した後にタイマーのタイムアウトが発生し、パワーマネジメントモジュール202はネットワークインターフェースモジュール201をドーズ状態に設定することができる。
【0039】
パワーマネジメントモジュール202は、オブジェクト識別子(例えば、OID)を使用してネットワークインターフェースモジュールと通信する。OIDは、ネットワークインターフェースモジュール201の電力状態を設定または問い合わせ、ならびに送信されたトラフィックの遅延スリープ時間を設定またはその遅延スリープ時間を問い合わせる。電力状態OIDは、OID_802_11_Power_Stateであり、遅延スリープOIDは、OID_802_11_Delayed_Sleepである。OID_802_11_Power_Stateのパラメータは、ネットワークインターフェースモジュールをオン状態に切り換える設定、ネットワークインターフェースモジュールをドーズ状態に切り換える設定、およびネットワークインターフェースモジュールをオフ状態に切り換える設定である。OID_802_11_Delayed_Sleepのパラメータは、ミリ秒単位の遅延スリープ設定である。
【0040】
これで動作全体の説明が終わったので、パワーマネジメントモジュール202内のモジュールについて説明する。図5を参照すると、パワーマネジメントモジュール202はパワーマネジメントバックエンド500、システム状態モジュール502、およびインターフェースリストモジュール504を備えている。パワーマネジメントバックエンド500は、ステートマシンを使用して、コンピューティングデバイス100の現在状態に基づきネットワークインターフェースモジュール201の電力状態を管理する。状態情報は、システム状態モジュール502からのグローバルシステム状態情報とインターフェースリストモジュール504からのインターフェース別状態情報を含む。グローバルシステム状態情報は、コンピューティングデバイス100の動作に、エネルギーが制限されている電源120を使用しているか、またはAC電源を使用しているかが含まれる。インターフェース別状態情報には、コンピューティングデバイス100がインターフェース上で関連付けされているかどうか、走査が要求されているかどうか、およびプラグ・アンド・プレイイベントであるかどうかが含まれる。電力設定210は、パワーマネジメントバックエンド500の入力でもある。
【0041】
ステートマシンが図6に示されている。パワーマネジメントモジュール201は、いくつかの条件についてネットワークインターフェースモジュール201をオン状態600からドーズ状態602に設定する。これらの条件には、最後にパケットが送信された以降に遅延スリープタイマーがタイムアウトになったときという条件が含まれる(線604)。遅延スリープ時間がビーコン間隔よりも長い場合、ネットワークインターフェースモジュール201は、ドーズ状態602に設定される。他の条件としては、走査が完了したとき(線606)、ネットワークインターフェースモジュール201が起動してビーコンを受信してコンピューティングデバイス100への送信を待っているトラフィックがないとき(線608)、およびコンピューティングデバイス100が電線からエネルギーが制限されている電源120に切り換わって流れているトラフィックがないとき(線610)というのがある。
【0042】
パワーマネジメントモジュール201は、いくつかの条件によってネットワークインターフェースモジュール201をドーズ状態602からオン状態600に設定する。条件には、送信すべきパケットがコンピューティングデバイス100にあるとき(線612)、ネットワークインターフェースモジュール201が使用可能なネットワークの走査を行う必要があるとき(線614)、ネットワークインターフェースモジュール201を起動してビーコンを受信する必要があるとき(線616)、およびコンピューティングデバイス100がエネルギーの制限されている電源120からACに切り換わるとき(線618)がある。コンピューティングデバイス100がEnergy Star対応デバイスなどである場合、ネットワークインターフェースモジュール201は、コンピューティングデバイス100がエネルギーの制限されている電源120からAC電源に切り換わるときもドーズ状態のままである。パワーマネジメントモジュール201は、アイドルタイマーがタイムアウトになった場合に、ネットワークインターフェースモジュール201をドーズ状態602からオフ状態620に設定する(線622)。パワーマネジメントモジュール201は、送信すべきパケットがコンピューティングデバイス100にあり、ネットワークインターフェースモジュール201がオフ状態に入っていた場合、ネットワークインターフェースモジュール201をオフ状態620からオン状態600に設定する(線624)。
【0043】
ネットワークインターフェースモジュール201が最大パワーセーブモードまたは高速パワーセーブモードで動作しているときの代表的な動作シナリオを図7に示す。コンピューティングデバイス100がパケットを送受信していないときに、遅延スリープ時間が経過した後ドーズ状態に入る。ドーズ状態に入る前に、パケットがアクセスポイント231に送信され、コンピューティングデバイス100内のネットワークインターフェースモジュール201がドーズ状態に入ることを通知する(線700)。アクセスポイント231は、ネットワークインターフェースモジュール201がドーズ状態に入っている間、コンピューティングデバイス100宛のパケット(線702で表されている)をバッファする。アクセスポイント231は、定期的にビーコンを送信する。すでに述べたように、ビーコンは、パワーセーブモードを使用しているデバイスの何れが、アクセスポイントのバッファ内にそのデバイス宛のデータフレームを待機させているかを示すTMIを含む。ネットワークインターフェースモジュール201が高速パワーセーブモードで動作している場合はビーコン間隔が経過した後(または、最大パワーセーブモードの場合は、ビーコン受信間隔が経過した後)に、ネットワークインターフェースモジュール201はビーコンを受信するためにオン状態に設定され、ビーコンパケットを受信し(線704)、コンピューティングデバイス100宛の少なくとも1つのパケットがアクセスポイント231でバッファされているかどうかについてTIMを介して知る。
【0044】
コンピューティングデバイス100宛のパケットがバッファされていることをTIMが示す場合には、ネットワークインターフェースモジュール201は、起動していることを示すメッセージをアクセスポイントに送信する(線706)。メッセージを受信した後、アクセスポイント231は、バッファリングしたパケットをコンピューティングデバイス100に送信する(線708)。バッファ内にまだパケットが残っている場合、アクセスポイント231は送信される第1のパケット内に指示を添えて、すべてのパケットを送信する。送信される最後のパケットに、コンピューティングデバイス100に関してアクセスポイントのバッファ内にデータはもう残っていないことの指示が含まれる。すべてのパケットを受信した後、パケットがアクセスポイント231に送信され、ネットワークインターフェースモジュール201がドーズ状態に入っていることを示す(線710)。ネットワークインターフェースモジュール201は、送信すべき保留パケットがない場合にのみ再びドーズ状態に入る。送信するパケットがある場合、ネットワークインターフェースモジュール201はまず、すべての保留パケットを送信し、送信キューが尽きた後にはじめてドーズ状態に入るという通知をアクセスポイントに送信する。これは、ドーズ状態の間に、ネットワークインターフェースモジュール201がアクセスポイントまたはピアに送信するパケットをキューイングしていた場合について対処する。この処理は、コンピューティングデバイス100がアクセスポイント231に関連付けられている限り繰り返される。パケットを送信する場合、ネットワークインターフェースモジュール201は、パケットの宛先へルーティングするためにパケットをアクセスポイント231へ送信し、遅延スリープ時間のタイムアウトになるのを待つ。遅延スリープ時間が経過した後、ネットワークインターフェースモジュール201は、モジュール201がドーズ状態に入るというメッセージをアクセスポイント231へ送信し、その後モジュール201はドーズ状態に入る。
【0045】
すべての種類のネットワーク媒体は、パワーマネジメント機能を実装しているか、または実装を要求されるかもしれない。図8を参照すると、本発明のパワーマネジメントメカニズムの他の実施形態が動作環境800内に示されている。この実施形態では、パワーマネジメントモジュール802は、パワーマネジメントモジュール802に入力を供給し、特定のネットワークに特化されていないコンポーネントから、コマンドを受け取る。説明のため、これらのコンポーネントを電力設定コンポーネントと呼ぶことにする。パワーマネジメントモジュール802は、そのコマンドを変換し、電力設定をネットワークアダプタ/インターフェースへ供給する。これにより、電源インジケータ、アプリケーションプログラミングインターフェース、ユーザ電力設定などの電力設定コンポーネントは、特定のネットワークアダプタに対する要求条件を指定することなく、パワーマネジメント変換装置(power management translator)802にパワーマネジメント要求条件を指定することができる。また各電力設定コンポーネントは、適用可能な場合に、その設定を提供するデバイスを指定することもできる。走査エンジン204、パケットアナライザ212、および統計アナライザ214などの、ネットワークに特有のコンポーネントは、802.11WLANのパワーマネジメントモジュール202のようなネットワーク特有のパワーマネジメント内に置かれる。GPRS(General Packet Radio Service)に特有のコンポーネントは、WWANパワーマネジメントモジュール814内にあり、GPRSネットワークインターフェースモジュール816内の電力レベルを制御する。同様にして、LANに特有のコンポーネントは、Ethernet(登録商標)パワーマネジメントモジュール818内にあり、LANアダプタ820の電力レベルを制御する。
【0046】
コンピューティングデバイス100または他のモジュール(図に示されていない)のオペレーティングシステムは、エネルギーが制限されている電源120またはAC電源から電力の供給を受けるかどうか判定する。これは、電源インジケータ804を使用して、コンピューティングデバイス100がAC電源から電力を供給されているか、またはエネルギーが制限されている電源から電力を供給されているかをパワーマネジメント変換装置802に通信する。アプリケーションではAPI806を使用して、データを小または高電力状態で送信しなければならないことを要求する。アプリケーションに選択がない場合、アプリケーションはAPI806を呼び出さない。ユーザは、ユーザ電力設定808を通じて使用したい電力設定を指定することができる。これらの電力設定は、高、中、低、またはパワーマネジメント機能なしである。これらの電力設定は、さらに多くの電力設定を備えるインターフェースモジュールの追加設定に拡張することができる。一実施形態では、コンピューティングデバイス100がAC電源から電力を供給されている場合、ユーザ設定は無視される。さらに、リアルタイムアプリケーションが呼び出されて動作していて、ユーザが高パワーマネジメントを指定している場合には、パワーマネジメント変換装置802は、一時的に、ユーザ設定を変更(override)する。
【0047】
基本電力設定810は、熱条件を超えた場合、またはユーザがグローバル電力設定を指定している場合に、ネットワークインターフェースモジュールをシャットダウンするようにパワーマネジメントモジュールに指令するのに使用される。ローミングコンポーネント812も、パワーマネジメントに影響を及ぼす。802.11ネットワークインターフェースモジュール201がアクティブなネットワーク接続である場合、パワーマネジメント変換装置802では、他のパワーマネジメントモジュール814、818、822に、ネットワークインターフェースモジュールの電源をオフにすべきことを明示する。2つのネットワークインターフェースモジュールは同時にアクティブになった場合(例えば、LANおよびWLAN)、パワーマネジメント変換装置802は、その両方に対して関連する電力設定を特定し、他のネットワークインターフェースモジュールをオフにしなければならないことを明示する。それぞれのパワーマネジメントコンポーネントは、パワーマネジメント変換装置802によって与えられた電力レベル設定を使用して、パワーマネジメントモジュールが制御している特定のネットワークインターフェースモジュールに必要なパワーマネジメントのレベルを決定する。
【0048】
パワーマネジメント変換装置802は、システム状態モジュールおよびインターフェースモジュールを備える。システム状態モジュールは、電源インジケータ804、API806、ユーザ電力設定808、基本電力設定810、およびローミングコンポーネント812と通信を行う。インターフェースモジュールは、上述のように、パワーマネジメントモジュール202、814、818、822と通信し、電源インジケータ804、API806、ユーザ電力設定808、基本電力設定810、およびローミングコンポーネント812からの入力に基づいて、使用したい電力設定をパワーマネジメントモジュール202、814、818、822に対し提供する。802.11パワーマネジメントモジュール802を例とすると、パワーマネジメント変換装置802は、802.11パワーマネジメントモジュール202にH/M/L/Idle/Off(高電力設定、中電力設定、低電力設定、パワーマネジメント機能なし、あるいはオフ)の設定を送信する。802.11パワーマネジメントモジュール202は、この設定を、ネットワークインターフェースモジュール202の正しい電力状態(オン/ドーズ/オフ)に変換し、802.11ネットワークインターフェースモジュール201に特有の動作パラメータに基づきネットワークインターフェースモジュールを制御する。例えば、低電力設定がパワーマネジメント変換装置からパワーマネジメントモジュール202に対して指定されている場合、パワーマネジメントモジュール202は、前述のビーコン受信間隔の間ネットワークインターフェースモジュールをドーズ状態に設定する(例えば、走査が実行されていない、遅延スリープタイマーがタイムアウトになったなど)。同様に、パワーマネジメント変換装置802が中電力設定をパワーマネジメントモジュール202に供給した場合、パワーマネジメントモジュール202は、上述のように、ネットワークインターフェースモジュールを、ビーコン間隔の間ドーズ状態に設定する。
【0049】
他の種類の媒体のパワーマネジメントモジュールは、パワーマネジメント変換装置802によって供給される電力設定を使用して、それらのネットワークインターフェースモジュールの適切なパワーマネジメント設定を行う。例えば、無線WANでサポートしている電力設定は3つよりも多い場合も少ない場合もあり、したがって、WWANパワーマネジメントモジュール814は、パワーマネジメント変換装置802によって提供された電力設定を使用して、GPRSネットワークインターフェースモジュール816の正しいパワーマネジメント設定を決定する。例えば、GPRSネットワーク内のデバイスの電力設定は、設定されていない(idle)か、または完全に電力供給されている。デバイスが通話(call)トラフィックを送信または受信している場合には、デバイスは完全に電力を供給される。デバイスが通話中でないか、または通話中であっても送受信を行っていない場合、デバイスは低電力設定になる。
【0050】
パワーマネジメント変換装置802は、新しい種類の媒体を継ぎ目なく追加する能力を提供する。新しい種類の媒体をパワーマネジメント変換装置802に登録するには、APIを呼び出して、グローバルに一意な識別子(GUID:Global Unique Identifier)とわかりやすい名前を指定する。パワーマネジメント変換装置802はこれらを使用して、一般的な設定をその種類の媒体のネットワークインターフェースモジュールのパワーマネジメントモジュール822に与える。パワーマネジメント変換装置802は、特定のパワーマネジメントモジュール822の機能の知識を有している必要はない。同様に、個々のパワーマネジメントモジュール822は、これらが単一の設定に変換されるため、上位層のコンポーネント804から812の電力管理要件を認識している必要はない。
【0051】
コンピューティングデバイスのネットワークインターフェースモジュールの消費電力を最適化することによる電力を節約する方法が、開示されたことがわかる。802.11無線ネットワークで使用されている時間間隔のことばで本発明の方法を説明したが、この方法は、ビーコン間隔などを用いるBluetooth、GPRS、Hiperlan、および別の種類の無線LANネットワークを含む無線ネットワーク、およびEthernet(登録商標)LANのようなネットワークに利用することができる。
【0052】
本発明の原理を適用し得る多くの実施形態に鑑みて、図面に関して本明細書で説明した実施形態は説明のみを目的としており、本発明の範囲を制限するものとしてみなすべきではないことは理解されるべきである。例えば、パワーマネジメントモジュールは、無線ネットワークインターフェースモジュールにオフ機能があればそのモジュール内の送信機をオフにすることもできる。この場合、ネットワークインターフェースモジュール(またはパワーマネジメントモジュール)は、受信経路の給電をオンのままにし、その一方で送信経路を低電力状態にしておくという設定を選択することができる。このメカニズムは、ネットワークインターフェースモジュールが受動的な走査を実行する間に使用することができる。すなわち、(IEEE 802.11などに基づいて)プローブ要求を能動的に送信せず、むしろネットワークインターフェースモジュールの範囲内にあるノードからビーコンおよびブロードキャストプローブ応答を受信することにより、周囲のネットワークに関する情報を受動的に収集する場合に自動的走査を実行している間に使用することが可能である。当業者であれば、説明した実施形態のソフトウェアの要素は、ハードウェアで実装することができ、その逆も可能であること、あるいは説明した実施形態は、本発明の要旨から逸脱することなくその配置および詳細を修正することができることを理解するであろう。したがって、本明細書で説明した発明は、特許請求の範囲およびそれと均等の範囲内に属するすべての実施形態を対象としている。
【符号の説明】
【0053】
100 コンピューティングデバイス
102 処理ユニット
104 メモリ
108 取り外し可能記憶装置
110 取り外し不可能記憶装置
112 通信接続
114 入力デバイス
116 出力デバイス
120 電源
122 送信機
126 受信機
201 ネットワークインターフェースモジュール
202 パワーマネジメントモジュール
203 ネットワークドライバ
204 走査エンジン
206 アンテナ
208 電源インジケータ
210 電力設定
212 パケットアナライザ
214 統計アナライザ
216 API
220 ピアツーピアネットワーク
221、222、および223 コンピューティングデバイス
230 分散ネットワーク
231 アクセスポイント
300、302、304、306、308 ビーコン間隔
310 ビーコン受信間隔
500 パワーマネジメントバックエンド
502 システム状態モジュール
504 インターフェースリストモジュール
600 オン状態
602 ドーズ状態
800 動作環境
802 パワーマネジメント変換装置
804 電源インジケータ
806 API
808 ユーザ電力設定
810 基本電力設定
812 ローミングコンポーネント
202、814、818、822 パワーマネジメントモジュール

【特許請求の範囲】
【請求項1】
複数のネットワークインターフェースモジュールとプロセッサとを備えたコンピュータシステムであって、
前記プロセッサは、
各々が1つのネットワークインターフェースモジュールに関連づけられた、複数のネットワーク特有のパワーマネジメントモジュールと、
パワーマネジメント変換装置と、
前記パワーマネジメント変換装置へ、特定のネットワークに特有ではないコマンドを提供する複数の電力設定コンポーネントと
して機能するように構成され、
前記パワーマネジメント変換装置は、
前記複数の電力設定コンポーネントからコマンドを受信するシステム状態モジュールと、
ネットワーク特有のパワーマネジメントモジュールの各々へ、前記受信したコマンドに基づいて汎用電力設定を提供するインターフェースモジュールと
を有し、
ネットワーク特有のパワーマネジメントモジュールの各々は、提供された汎用パワー設定を、関連づけられたネットワークインターフェースモジュールのための適した電力設定に変換して、当該適した電力設定にしたがって前記関連づけられたネットワークインターフェースモジュールを制御する、ことを特徴とするコンピュータシステム。
【請求項2】
前記電力設定コンポーネントは、電源インジケータコンポーネント、アプリケーションプログラミングインターフェースコンポーネント、ユーザ電力設定コンポーネント、基本電力設定コンポーネント、およびローミングコンポーネントのうちの少なくとも1つを備えることを特徴とする請求項1に記載のコンピュータシステム。
【請求項3】
前記インターフェースモジュールは、高電力設定、中電力設定、および低電力設定の1つをネットワーク特有のパワーマネジメントモジュールの各々に提供することを特徴とする請求項1に記載のコンピュータシステム。
【請求項4】
前記パワーマネジメント変換装置は、前記コンピュータシステムが移動体でありAC電源から電力を供給されている場合に、ユーザ電力設定を無視することを特徴とする請求項1に記載のコンピュータシステム。
【請求項5】
前記パワーマネジメント変換装置は、リアルタイムアプリケーションが呼び出されて動作している場合に、ユーザ電力設定を優先することを特徴とする請求項1に記載のコンピュータシステム。
【請求項6】
前記パワーマネジメント変換装置は、前記電力設定コンポーネントからの電力設定を各ネットワークインターフェースモジュールに対する単一の電力設定に変換することを特徴とする請求項1に記載のコンピュータシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2013−84288(P2013−84288A)
【公開日】平成25年5月9日(2013.5.9)
【国際特許分類】
【出願番号】特願2012−269181(P2012−269181)
【出願日】平成24年12月10日(2012.12.10)
【分割の表示】特願2010−25583(P2010−25583)の分割
【原出願日】平成16年2月2日(2004.2.2)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ZIGBEE
【出願人】(500046438)マイクロソフト コーポレーション (3,165)
【Fターム(参考)】