(57)【要約】【課題】ネットワークインターフェイスデバイス（ＮＩＤ）の電力管理のためのコンピュータ実装方法を提供する。【解決手段】本方法は、ある期間を複数のタイムスロットに分割し、第１のタイムスロットでＮＩＤが受け取ったデータの量を判定し、受け取ったデータの量が、所定の閾値を超えるかどうか判定する。受け取ったデータの量が、閾値を超えている場合、ＮＩＤは、後続のタイムスロットの間起こされる。受け取ったデータの量が、予め定義された閾値を超えない限り、ネットワークインターフェイスデバイスは、後続のタイムスロットの間スリープさせられる。１つまたは複数のパケットがＮＩＤによって受け取られた期間のタイムスロットの数と、その期間の起動タイムスロット（ネットワークインターフェイスデバイスが起きているタイムスロット）の数との比較に基づいて、後続の期間について、起動タイムスロットの数を調節する。【選択図】図３
2006279952.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実行される、ネットワークインターフェイスデバイスの電力管理のための方法であって、
ある期間を複数のタイムスロットに分割するステップと、
前記複数のタイムスロットの第１のタイムスロットの間に前記ネットワークインターフェイスデバイスによって受け取ったデータの量を判定するステップと、
前記受け取ったデータ量が、予め定義された閾値を超えているかどうか判定するステップと、
前記受け取ったデータ量が予め定義された閾値を超えている場合、後続のタイムスロットの間、前記ネットワークインターフェイスデバイスを起こすステップとを含むことを特徴とする方法。
【請求項２】
前記受け取ったデータ量が、前記予め定義された閾値を超えない限り、前記後続のタイムスロットの間、前記ネットワークインターフェイスデバイスをスリープさせるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記期間は、ビーコンリッスン間隔に対応することを特徴とする請求項２に記載の方法。
【請求項４】
前記ビーコンリッスン間隔中の少なくとも１つのタイムスロットの間、前記ネットワークインターフェイスデバイスを起こすステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
後続のビーコンリッスン間隔中の少なくとも１つのタイムスロットの間、前記ネットワークインターフェイスデバイスを起こすステップをさらに含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記ネットワークインターフェイスデバイスは、ネットワークインターフェイスカードであることを特徴とする請求項１に記載の方法。
【請求項７】
前記ネットワークインターフェイスデバイスは、ネットワークインターフェイスモデムであることを特徴とする請求項１に記載の方法。
【請求項８】
前記ネットワークインターフェイスデバイスは、ＩＥＥＥ標準８０２．１１に準拠することを特徴とする請求項１に記載の方法。
【請求項９】
コンピュータで実行される、ネットワークインターフェイスデバイスの電力管理のための方法であって、
ある期間を複数のタイムスロットに分割するステップであって、前記タイムスロットの数は、前記ネットワークインターフェイスデバイスが起きている起動タイムスロットであるステップと、
１つまたは複数のパケットが前記ネットワークインターフェイスデバイスによって受け取られた前記期間中のタイムスロットの数を判定するステップと、
１つまたは複数のパケットが前記ネットワークインターフェイスデバイスによって受け取られた前記期間中の前記タイムスロットの前記数を、前記期間中の起動タイムスロットの前記数と比較するステップと、
前記比較に基づいて、後続の期間について、前記ネットワークインターフェイスデバイスによってデータが受け取られる前記タイムスロットの前記数を調節するかどうか判断するステップとを含むことを特徴とする方法。
【請求項１０】
１つまたは複数のパケットが前記ネットワークインターフェイスデバイスによって受け取られた前記期間中の前記タイムスロットの前記数の、前記期間中の起動タイムスロットの前記数に対する比を計算するステップと、
第１の閾値に対する前記比の比較に基づいて、後続の期間について、前記ネットワークインターフェイスデバイスによってデータが受け取られる前記タイムスロットの前記数を、調節するかどうか判断するステップとをさらに含むことを特徴とする請求項９に記載の方法。
【請求項１１】
前記タイムスロットの前記数を調節するステップは、前記比が第１の閾値以上の場合、前記後続の期間について、前記ネットワークインターフェイスデバイスによってデータが受け取られる前記タイムスロットの前記数を増加させるステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
前記タイムスロットの前記数を調節するステップは、前記比が第１の閾値より小さい場合、前記後続の期間について、前記ネットワークインターフェイスデバイスによってデータが受け取られる前記タイムスロットの前記数を減少させるステップを含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
前記タイムスロットの前記数を調節するステップは、前記比が第２の閾値より小さい場合、前記後続の期間について、前記ネットワークインターフェイスデバイスによってデータが受け取られる前記タイムスロットの前記数を減少させるステップを含むことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記ネットワークインターフェイスデバイスは、ネットワークインターフェイスカードであることを特徴とする請求項９に記載の方法。
【請求項１５】
前記ネットワークインターフェイスデバイスは、ネットワークインターフェイスモデムであることを特徴とする請求項９に記載の方法。
【請求項１６】
前記ネットワークインターフェイスデバイスは、ＩＥＥＥ標準８０２．１１に準拠することを特徴とする請求項９に記載の方法。
【請求項１７】
コンピュータで実施される、ネットワークインターフェイスデバイスの電力管理のための方法であって、
ある期間を複数のタイムスロットに分割し、前記ネットワークインターフェイスデバイスは、前記複数のタイムスロットの第１の数の間スリープさせられるステップと、
データが前記ネットワークインターフェイスデバイスによって受け取られた前記期間中のタイムスロットの第２の数を判定するステップと、
前記第２の数が第１の閾値より小さい場合、後続の期間について、前記タイムスロットの前記第１の数をタイムスロットの増加数だけ増加させるステップと、
前記第２の数が第２の閾値を超えている場合、前記後続の期間について、前記タイムスロットの前記第１の数をタイムスロット減少数だけ減少させ、前記タイムスロットの前記減少数が前記タイムスロットの前記増加数と異なるステップとを含むことを特徴とする方法。
【請求項１８】
前記期間中の前記タイムスロットの前記数と前記ネットワークインターフェイスデバイスがスリープしている前記期間中のタイムスロットの数との整数型関数に基づいて、前記増加数および前記減少数の少なくとも一方を計算するステップをさらに含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記関数は、前記増加数および前記減少数の少なくとも一方の、次に近い整数への四捨五入を含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記関数は、計算した起動タイムスロット数の、次に近い整数への切上げを含むことを特徴とする請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＩＥＥＥ８０２．１１ワイヤレスローカルエリアネットワーク（「ＷＬＡＮ」）のネットワークインターフェイスデバイス（ＮＩＤ）、たとえばネットワークインターフェイスカード（ＮＩＣ）およびネットワークインターフェイスモデム（ＮＩＭ）用の電力管理アルゴリズムに関する。
【背景技術】
【０００２】
一般的なＩＥＥＥ８０２．１１ベースのＷＬＡＮ  ＮＩＤは、２つの電力モード、すなわちデバイスが常に「起きている（ａｗａｋｅ）」状態である「定常的アクティブモード」（ＣＡＭ）と、デバイスがほとんどの時間「スリープ」しており、周期的、たとえば１００ｍｓごとに起きる、標準によって定義されている「省電力モード」（ＰＳＭ）とを有する。
【０００３】
ＣＡＭにおいて、アプリケーション性能は、たとえばパケットのスループットおよび待ち時間の点では、非常に優れている場合がある。ただし、ＮＩＤが常に起きているので、ＣＡＭにおける消費電力は非常に高くなる傾向にある。ＰＳＭにおいて、消費電力ははるかに低いが、ＮＩＤがスリープしている間に到着するデータが遅れがちなので、性能を犠牲にする。ＮＩＤは単に周期的に起きるので、概して、ＮＩＤが起きている時間と、ＮＩＤ経由でデータが渡される時間との間に相関関係はない。したがって、ＰＳＭは、省電力を実現することができるが、この種類の動作は、ダウンリンクアプリケーションの性能に大幅に影響し、サービス品質（ＱｏＳ）を低下させる傾向にあることがよく知られている。しかし、受容可能な性能を維持しながら、できるだけ多く節電できること、すなわち、電力と性能の間のトレードオフを最適化できることが望ましい。
【０００４】
スマート電力管理では、データがいつ受け取られるべきかについての何らかのインテリジェンスに基づいて、オペレーティングシステムがＮＩＤを起こすが、この管理は、各パケットに関してラウンドトリップ時間（ＲＴＴ）情報が既知である場合があるので、典型的なアップリンクアプリケーションにとって比較的容易である。したがって、オペレーティングシステムは、パケット到着時間を知っており、それに応じて、データを受け取るためにＮＩＤをいつ起こすかを知っている。
【０００５】
しかし、典型的なＩＥＥＥ８０２．１１ベースのＷｉＦｉシステムでは、たとえばウェブブラウジング、ＦＴＰ、およびビデオストリーミングなどのダウンリンクアプリケーションが支配的である。残念ながら、一般的なダウンリンクアプリケーションにとっては、ＲＴＴが分からない場合があり、アップリンクアプリケーション用に働くスマート電力管理システムは、ダウンリンクアプリケーション用にはうまく作用しない可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、ダウンリンクアプリケーション用に、省電力と性能の間で望ましい釣合いをとる、スマート電力管理に利用可能なシステムおよび方法があれば有利である。
【課題を解決するための手段】
【０００７】
本発明は、大幅な省電力および優れたアプリケーション性能を伴うスマート電力管理方式を提供する。より詳細には、本発明による方法は、ＮＩＤが、適応可能に「起きて」かつ「スリープする」能力を提供することができる。本方法は、アプリケーション性能が影響を受けないようにトラフィック到着パターンを取り込むことができるとともに、その削減電力は現在のＰＳＭに匹敵する。
【０００８】
８０２．１１システムにおいて、「ビーコン」は、「ビーコン期間」ごとに一度発生する。ＮＩＤは、整数×ビーコン期間でよい「ビーコンリッスン間隔」（ＢＬＩ）ごとに少なくとも一度起きることができる。各ＢＬＩは、複数のタイムスロットに分割することができる。各タイムスロット中、ＮＩＤは、スリープし、または起きるようにというコマンドを受けることができる。ＮＩＤが起きているスロットは、「起動スロット」と呼ぶことができる。
【０００９】
最初の時点で、ＮＩＤは、アクティブモードであることが予想される。したがって、どのタイムスロットも起動スロットでよい。ＢＬＩの間、各起動スロットの間に受け取ったデータの量が判定される。システムが、受け取ったデータの量が一定の閾値を超えていると判定した場合、ＮＩＤは、後続のタイムスロットの間、起きたままに保たれる。それ以外の場合、ＮＩＤは、後続のタイムスロットの間、スリープさせられる。
【００１０】
各ＢＬＩの後、起動スロットの数は、直前のＢＬＩの間に習得された情報に基づいて、次のＢＬＩ向けに適応される。１つまたは複数のパケットが受け取られた直前のＢＬＩ中のタイムスロットの数の、直前のＢＬＩ中の起動スロットの総数に対する比を計算することができる。比が第１の閾値より小さいとシステムが判定した場合、起動スロットの数を、次のＢＬＩ用に減少することができる。比が第２の閾値を超えているとシステムが判定した場合、起動スロットの数を、次のＢＬＩ用に増加することができる。それ以外の場合、起動スロットの数は、次のＢＬＩに対して同じ起動スロットの数を維持する。
【００１１】
このような方法は、コマンドに応じてＮＩＤをスリープさせるＳＬＥＥＰコマンド、および起こすＷＡＫＥコマンドをＮＩＤに渡すＡＰＩを用いて、ワイヤレスＬＡＮカードまたはモデムと通信するオペレーティングシステムドライバのカーネル側で実装することができる。
【発明を実施するための最良の形態】
【００１２】
＜コンピューティング環境例＞
図１および以下の説明は、本発明の例示的実施形態を実装することができる適切なコンピューティング環境の、簡単かつ概略的な説明を提供することを意図している。ただし、本発明に関連して使用するために、ハンドヘルド、ポータブル、およびあらゆる種類の他のコンピューティングデバイスが企図されることを理解されたい。以降では汎用コンピュータが説明されるが、これは一例に過ぎない。本発明は、ネットワークサーバの相互運用性および相互作用性を備える小型軽量クライアント上でも動作可能とすることができる。したがって、本発明の例示的実施形態は、ごくわずかまたは最低限のクライアントリソースが関与する、ネットワーク接続されたホストサービスという環境、たとえば、クライアントデバイスがブラウザ、すなわちワールドワイドウェブへのインターフェイスとしてのみ働く、ネットワーク接続された環境において実装することができる。
【００１３】
そうすることが必要なわけではないが、本発明は、開発者または試験者が使うためのＡＰＩ（アプリケーションプログラミングインターフェイス）を介して実装することができ、かつ／または、１つまたは複数のコンピュータ（たとえばクライアントワークステーション、サーバ、あるいは他のデバイス）によって実行される、プログラムモジュールなどのコンピュータ実行可能命令という一般的な状況において説明されるネットワーク閲覧ソフトウェアに含めることができる。概して、プログラムモジュールは、特定のタスクを実施しまたは特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。典型的に、プログラムモジュールの機能は、様々な実施形態における要望に応じて組み合わせることも分散することもできる。さらに、本発明は他のコンピュータシステム構成を用いて実施できることが、当業者には理解されよう。本発明とともに使用するのに適切であり得る他の公知のコンピューティングシステム、環境、および／または構成は、パーソナルコンピュータ（ＰＣ）、自動預払機、サーバコンピュータ、ハンドヘルドまたはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、プログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなどを含むが、それに限定されるものではない。本発明の例示的実施形態は、通信ネットワークまたは他の伝送媒体を介してリンクされるリモート処理ユニットによってタスクが実施される分散型コンピューティング環境でも実施することができる。分散型コンピューティング環境では、プログラムモジュールは、メモリ記憶デバイスなど、ローカルおよびリモートコンピュータ記憶媒体両方に置くことができる。
【００１４】
したがって、図１は、本発明を実装することができる適切なコンピューティングシステム環境１００の一例を示すが、上で明示したように、コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲に関するどのような限定を示唆することも意図していない。また、コンピューティング環境１００は、例示的な動作環境１００に示されるコンポーネントのどの１つまたはその組合せに関するどのような依存も要件も有していると解釈されるべきではない。
【００１５】
図１を参照すると、本発明を実装するシステム例は、汎用コンピューティングデバイスを、コンピュータ１１０の形で含む。コンピュータ１１０のコンポーネントは、処理ユニット１２０と、システムメモリ１３０と、システムメモリなど様々なシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１とを含み得るが、これに限定されない。システムバス１２１は、様々なバスアーキテクチャのどれを使用してもよいメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスなどいくつかのタイプのバス構造のいずれでもよい。限定ではなく例として、このようなアーキテクチャは、ＩＳＡ（業界標準アーキテクチャ）バス、ＭＣＡ（マイクロチャネルアーキテクチャ）バス、ＥＩＳＡ（拡張ＩＳＡ）バス、ＶＥＳＡ（米国ビデオ電子装置規格化協会）ローカルバス、およびＰＣＩ（周辺装置相互接続）バス（メザニン（Mezzanine）バスとしても知られる）を含む。
【００１６】
コンピュータ１１０は通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によってアクセス可能であるとともに揮発性および不揮発性、取外し可能および固定式媒体の両方を含む、市販されているどの媒体でもよい。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含み得る。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報の格納のためのどの方法でも技術でも実装される揮発性および不揮発性、取外し可能媒体および固定式媒体の両方を含む。コンピュータ記憶媒体は、ＲＡＭ（ランダムアクセスメモリ）、ＲＯＭ（読取り専用メモリ）、ＥＥＰＲＯＭ（電気的消去可能なプログラム可能読取り専用メモリ）、フラッシュメモリまたは他のメモリ技術、ＣＤ  ＲＯＭ（コンパクトディスク読取り専用メモリ）、ＤＶＤ（デジタル多用途ディスク）または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは、所望の情報を格納するのに使うことができるとともにコンピュータ１１０によってアクセスすることができる他のどの媒体も含むが、それに限定されない。通信媒体は一般に、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他の移送機構などの変調データ信号として具現化し、どの情報配信媒体も含む。「変調データ信号」という用語は、信号中の情報を符号化するように設定されまたは変更される信号特性の１つまたは複数を有する信号を意味する。限定ではなく例として、通信媒体は、有線ネットワークや直接有線接続などの有線媒体、ならびに音響、ＲＦ（高周波）、赤外線、および他の無線媒体などの無線媒体を含む。上記のどの組合せも、やはりコンピュータ可読媒体の範囲に含まれるべきである。
【００１７】
システムメモリ１３０は、コンピュータ記憶媒体を、ＲＯＭ１３１およびＲＡＭ１３２など、揮発性および／または不揮発性メモリの形で含む。基本入出力システム（ＢＩＯＳ）１３３は、たとえば起動中にコンピュータ１１０内部の要素間の情報の転送を助ける基本ルーチンを含み、通常はＲＯＭ１３１に格納される。ＲＡＭ１３２は一般に、処理ユニット１２０に対してただちにアクセス可能な、かつ／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールを含む。限定ではなく例として、図１では、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。ＲＡＭ１３２は、他のデータおよび／またはプログラムモジュールを含み得る。
【００１８】
コンピュータ１１０は、他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体も含み得る。単なる例として、図１は、固定式の不揮発性磁気媒体からの読出しまたはそこへの書込みをするハードディスクドライブ１４１、取外し可能な不揮発性磁気ディスク１５２からの読出しまたはそこへの書込みをする磁気ディスクドライブ１５１、および、ＣＤ  ＲＯＭや他の光学媒体など、取外し可能な不揮発性光ディスク１５６からの読出しまたはそこへの書込みを行う光ディスクドライブ１５５を示している。この動作環境例で用いることができる、他の取外し可能／固定式、揮発性／不揮発性コンピュータ記憶媒体は、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭなどを含むが、それに限定されない。ハードディスクドライブ１４１は通常、インターフェイス１４０などの固定式メモリインターフェイスによって、システムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インターフェイス１５０などの取外し可能メモリインターフェイスによって、システムバス１２１に接続される。
【００１９】
上述し、かつ図１に示したディスクドライブおよびそれに関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、およびコンピュータ１１０のための他のデータの格納を実現する。図１では、たとえば、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するものとして示してある。こうしたコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも、異なってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくとも、異なるものであることを示すために、ここでは異なる番号が与えられている。ユーザは、キーボード１６２および一般にはマウス、トラックボール、またはタッチパッドと呼ばれるポインティングデバイス１６１などの入力デバイスを介して、コマンドおよび情報をコンピュータ１１０に入力することができる。他の入力デバイス（図示せず）には、マイクロホン、ジョイスティック、ゲーム用パッド、衛星パラボラアンテナ、スキャナなどがあり得る。こうしたおよび他の入力デバイスはしばしば、システムバス１２１に結合されるユーザ入力インターフェイス１６０を介して処理ユニット１２０に接続されるが、他のインターフェイスおよびバス構造、たとえばパラレルポート、ゲームポート、ＵＳＢ（ユニバーサルシリアルバス）によって接続されることもできる。
【００２０】
モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインターフェイス１９０などのインターフェイスを介してシステムバス１２１に接続される。モニタ１９１に加え、コンピュータは、出力周辺インターフェイス１９５を介して接続することができるスピーカ１９７およびプリンタ１９６など、他の周辺出力デバイスも含み得る。
【００２１】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク接続された環境において動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の共通ネットワークノードでよく、通常、コンピュータ１１０に関連して上述した要素の多くまたはすべてを含むが、メモリ記憶デバイス１８１のみが図１に示されている。図１に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含んでもよい。このようなネットワーク環境は、会社、企業規模のコンピュータネットワーク、イントラネットおよびインターネットにおいてよく見られる。
【００２２】
ＬＡＮネットワーク環境において使われる場合、コンピュータ１１０は、ネットワークインターフェイスまたはアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーク環境において使われる場合、コンピュータ１１０は通常、モデム１７２、または、たとえばインターネットなどのＷＡＮ１７３を介して通信を確立する他の手段を含む。モデム１７２は、内部にあっても外部にあってもよく、ユーザ入力インターフェイス１６０または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク接続された環境では、コンピュータ１１０に関連して図示したプログラムモジュールまたはその一部は、リモートメモリ記憶デバイスに格納することができる。限定ではなく例として、図１は、リモートアプリケーションプログラム１８５を、メモリデバイス１８１に常駐するものとして示している。図示したネットワーク接続は例示的なものであり、コンピュータ間の通信リンクを確立する他の手段も使うことができることが理解されよう。
【００２３】
コンピュータ１１０または他のクライアントデバイスは、コンピュータネットワークの一部として展開できることが当業者には理解できよう。この点に関して、本発明は、任意の数のメモリまたは記憶ユニット、および任意の数の記憶ユニットまたはボリュームに渡って出現する任意の数のアプリケーションおよび処理を有するどのコンピュータシステムにも関係する。本発明の実施形態は、リモートまたはローカル記憶装置を有する、ネットワーク環境において展開されるサーバコンピュータおよびクライアントコンピュータを備える環境に適用し得る。本発明は、プログラミング言語の機能、プログラミング言語解釈および実行性能を有するスタンドアロンコンピューティングデバイスにも適用し得る。
【００２４】
＜ＷＬＡＮ  ＮＩＤにおけるスマート電力管理＞
本発明者は、ダウンリンクの伝送制御プロトコル（ＴＣＰ）およびユーザデータグラムプロトコル（ＵＤＰ）トラフィックベースのアプリケーションにおけるトラフィックパターンにおいて、特定の振舞いを観察した。図２Ａおよび２Ｂは、それぞれファイル転送プロトコル（ＦＴＰ）およびビデオストリーミング用の、定常状態のＴＣＰトラフィックパターンを示す。トラフィックはかなりバースト性があり（すなわち、データが集中的に到着する）、バースト到着間隔（すなわち、データバーストの連続的な到着の間の時間）は、数秒の間、比較的一定していることが分かる。本発明者は、この振舞いはトラフィック到着パターンの取込みを試みるのに使用することができ、そうすることによって、パケット転送において大幅な遅延を起こすことなく、ＮＩＤのスリープパターン（すなわち、ＮＩＤがスリープしているとき、およびＮＩＤが起きているとき）をスマートなやり方で制御することができることを発見した。
【００２５】
図３は、ＷＬＡＮ  ＮＩＤにおけるスマート電力管理を提供する、本発明による方法３００の例示的実施形態を示すフローチャートである。このような方法は、オペレーティングシステム機能として実施することができ、ハードウェアでもソフトウェアでも実装することができる。このような実装は、コンピュータ可読媒体に格納されたコンピュータ実行可能命令を含み得る。具体的には、このような方法は、ワイヤレスＬＡＮカードまたはモデムと通信するオペレーティングシステムドライバのカーネル側で実装することができる。現在のカードはＡＰＩを有し、ＡＰＩがアイドル時間を受け付けて、次いで、各アイドル時間で起きるようにカードにコマンドを送る。本発明による方法は、ＮＩＤにＳＬＥＥＰおよびＷＡＫＥコマンドを渡し、それに応じてＮＩＤをスリープさせ、起こすＡＰＩを使って実装することができる。
【００２６】
８０２．１１システムにおいて、ビーコンはビーコン期間（たとえば１００ｍｓ）ごとに一度発生することを理解されたい。ＮＩＤは、整数×ビーコン期間でよいビーコンリッスン間隔（「ＢＬＩ」）ごとに起きることができる。本発明の例示的実施形態において、時間は、複数のタイムスロットに分割することができる。各タイムスロットの持続期間は、たとえば、約１０ｍｓと約１５ｍｓの間である。各タイムスロット中に、ＮＩＤは、スリープし、または起きるようにというコマンドを受けることができる。所与のタイムスロット中にＮＩＤがスリープするか、それとも起きるかは、以下のアルゴリズムによって判断される。ＢＬＩを処理期間として扱うことができ、ＢＬＩ中の第１および最終スロットは、常に「起動」スロットでよい。
【００２７】
Ｔを、スリープ間隔（すなわち、ＮＩＤがスリープするべきスロットの数）と定義する。したがって、Ｔ＋１スロットごとにＮＩＤを起こしてよい。最初の時点（たとえば、電源オン時）で、ＮＩＤは、アクティブモードであると予想される。したがって、ステップ３０２で、スリープ間隔Ｔを、ゼロにセットすることができる（こうすることによって、ＮＩＤは、どのスロットの間も起きている）。
【００２８】
ＢＬＩの間、ＮＩＤは、必要な場合、ステップ３０４で、Ｔに従って起こされる。ステップ３０６で、各起動スロットの間に受け取ったパケットの数（すなわち長さ）Ｎが判定される。ステップ３０８で、Ｎ＞Ｎt（Ｎtは、予め定義された閾値）であるとシステムが判定した場合、ステップ３１０で、ＮＩＤは、後続の（すなわち、次の）タイムスロットの間、起きたままに保たれる。それ以外の場合、ステップ３１２で、ＮＩＤは、後続のタイムスロットの間、スリープさせられる。
【００２９】
各ＢＬＩの後、Ｔの値は、直前のＢＬＩの間に習得された情報に基づいて適応される。最初に、ステップ３１４で、１つまたは複数のパケットが受け取られた直前のＢＬＩ中のタイムスロットの数の、直前のＢＬＩ中の起動スロットの総数に対する比ｐを計算することができる。ステップ３１６で、比ｐが第１の閾値δ１より小さいとシステムが判定した場合、ステップ３１８で、次のＢＬＩ用に、ＴをΔ１の量だけ増加することができる。ステップ２１０で、比ｐが第２の閾値δ２より大きいとシステムが判定した場合、ステップ３２２で、次のＢＬＩ用に、ＴをΔ２の量だけ減少することができる。それ以外の場合、Ｔは、次のＢＬＩに対して同じままである。Ｔの値は、ゼロ（すなわち、ＮＩＤが常に起きている）と、ＢＬＩ中のタイムスロットの数より１だけ小さい数との間に制限することができる（すなわち、そうすることによって、ＮＩＤは、ＢＬＩごとに少なくとも１つのタイムスロットでは起きている）。プロセス３００は次いで、後続のＢＬＩに対して無限に繰り返す。
【００３０】
Ｔに対する調整は非線形でよいことに留意されたい。たとえば、次のＢＬＩ中の正常な起動回数が１だけ調整される（すなわち、増加または減少される）ように、閾値δ１およびδ２が選ばれると仮定する。さらに、ＢＬＩは、３０タイムスロット長であり、Ｔは、現時点で５に等しいと仮定する。ＢＬＩ中の起動タイムスロットの数は、ｃｅｉｌ（ＢＬＩ／（Ｔ＋１））として計算することができ、関数ｃｅｉｌ（ｘ）は、ｘを次に近い整数に切り上げる。したがって、ＢＬＩ＝３０かつＴ＝５の場合、ＢＬＩ中の起動タイムスロットの数は、ｃｅｉｌ（３０／（５＋１））＝５である。
【００３１】
起動タイムスロットの数を４に減少させるためには、ｃｅｉｌ（３０／（７＋１））＝４かつｃｅｉｌ（３０／（８＋１））＝４なので、Ｔを７または８に増加させるべきである。一方、起動タイムスロットの数を６に増加させるためには、ｃｅｉｌ（３０／（４＋１））＝６なので、Ｔを４に減少させるべきである。したがって、この例に示すように、ＢＬＩ中の起動タイムスロットの数を１だけ増加させるためには、Ｔの値を１だけ減少すればよい。一方、ＢＬＩ中の起動タイムスロットの数を１だけ減少させるためには、Ｔの値を１より多い数だけ増加すればよい。概して、Ｔが増加される場合の、増加されるべき量は、Ｔが減少される場合の、減少されるべき量と同じである必要はない。
【００３２】
以上、ＷＬＡＮネットワークインターフェイスデバイスにおいて電力を管理するシステムおよび方法が記載された。本明細書では、いくつかの例示的実施形態を参照して本発明を説明したが、本発明の他の実施形態も、添付の請求項の範囲内であり得ることを理解されたい。
【図面の簡単な説明】
【００３３】
【図１】本発明の態様を実装することができる、例示的なコンピューティング環境を示すブロック図である。
【図２Ａ】ＦＴＰ用の、定常状態のＴＣＰトラフィックパターンを示す図である。
【図２Ｂ】ビデオストリーミング用の、定常状態のＴＣＰトラフィックパターンを示す図である。
【図３】ＷＬＡＮ  ＮＩＤにおけるスマート電力管理を提供する、本発明による方法の例示的実施形態を示すフローチャートである。
【図１】
2006279952.tif 000003
【図２Ａ】
2006279952.tif 000004
【図２Ｂ】
2006279952.tif 000005
【図３】
2006279952.tif 000006