(57)【要約】【課題】  ネットワークインターフェースモジュールを備えた携帯型コンピューティングデバイス内の電力消費を管理するための方法とシステムを提供する。【解決手段】  パワーマネジメントモジュールは、他のモジュールからの入力を受け取り、ネットワークインターフェースモジュール内の電力消費の浪費を防ぐために、ネットワークインターフェースモジュールを所定の数のビーコン間隔の間ドーズ状態に置くかどうか判定する。ネットワークと関連付けられているデバイスのネットワークインターフェースモジュールは、走査が実行されたときを含むイベントが発生した後、遅延スリープタイマーがタイムアウトになった後、およびビーコンの送信が完了した後であって、そのデバイスに対してトラフィックがバッファされていないときにドーズ状態に置かれる。遅延スリープ時間は、パケットの推定ランドトリップ時間に基づいて設定される。【選択図】  図４
2004234667.tif 000002
【特許請求の範囲】
【請求項１】
モバイルデバイス内のネットワークインターフェースモジュールの電力を管理するための方法であって、
前記モバイルデバイスがエネルギーの制限されている電源から電力を供給されているかどうか判定するステップと、
前記モバイルデバイスが前記エネルギーの制限されている電源から電力を供給されている場合に、
前記モバイルデバイスがアクセスポイントに関連付けられているかどうか判定するステップと、
前記モバイルデバイスがアクセスポイントに関連付けられている場合に、前記ネットワークインターフェースモジュールを高速パワーセーブモードおよび最大パワーセーブモードの一方で動作させるステップと、
前記モバイルデバイスがアクセスポイントに関連付けられていない場合に、
前記ネットワークインターフェースモジュールは走査中であるかどうか判定するステップと、
前記ネットワークインターフェースモジュールが走査中の場合に、前記ネットワークインターフェースモジュールを常時起動モードで動作させるステップと、
前記ネットワークインターフェースモジュールが走査中でない場合に、前記ネットワークインターフェースモジュールをドーズモードに設定するステップと
を含むことを特徴とする方法。
【請求項２】
前記モバイルデバイスが電線から電力を供給されている場合に、前記ネットワークインターフェースモジュールを常時起動モードに設定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項３】
ユーザの選択に基づいて前記ネットワークインターフェースモジュールを常時起動モード、高速パワーセーブモード、および最大パワーセーブモードに設定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記モバイルデバイスの１つが関連付けられ、走査が要求された場合、前記ネットワークインターフェースモジュールを常時起動モードに設定するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項５】
パケットが高優先度を有するか、アプリケーション側がパケットにタグ付けして早い応答が要求されていることを示している場合、前記ネットワークインターフェースモジュールを高速パワーセーブモードで動作させるステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記モバイルデバイスがネットワークに関連付けられている場合に前記ネットワークインターフェースモジュールを高速パワーセーブモードおよび最大パワーセーブモードの一方で動作させる前記ステップは、前記ネットワークインターフェースモジュールを高速パワーセーブモードで動作させることを含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記ネットワークインターフェースモジュールを高速パワーセーブモードで動作させる前記ステップは、
ａ）前記ネットワークインターフェースモジュールがドーズ状態にいつ入れるかを判定するステップと、
ｂ）前記ネットワークインターフェースモジュールが前記ドーズ状態に設定される旨の通知をアクセスポイントに送信するステップと、
ｃ）前記通知が送信された後に、前記ネットワークインターフェースモジュールを前記ドーズ状態に設定するステップと、
ｄ）ビーコン間隔毎に、前記ネットワークインターフェースモジュールをオン状態に設定してビーコンを受信するステップと、
ｅ）前記モバイルデバイスについてパケットがキュー内にないことをビーコンが示している場合に、ステップｂ〜ｆを繰り返すステップと、
ｆ）前記モバイルデバイスについて少なくとも１つのパケットがキュー内にあることをビーコンが示している場合に、ステップａ〜ｆを繰り返すステップと
を含むことを特徴とする請求項６に記載の方法。
【請求項８】
前記モバイルデバイスの１つと前記アクセスポイントとの関連付けが解除されるか、または前記ネットワークインターフェースモジュールの動作が前記常時起動モードおよび前記最大パワーセーブモードの一方に変更されるまで、ステップａ〜ｆを繰り返すステップをさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ネットワークインターフェースモジュールがドーズ状態にいつ入れるかを決定する前記ステップは、遅延スリープタイマーのタイムアウトを判定することを含むことを特徴とする請求項７に記載の方法。
【請求項１０】
前記ネットワークインターフェースモジュールがドーズ状態にいつ入ることができるかを決定する前記ステップは、遅延スリープタイマーがタイムアウトになったこと、走査が完了したこと、前記モバイルデバイスに対してトラフィックがキューに入っていないことをビーコンが示していること、および電源がエネルギーの制限されている電源から電線に切り換えられたことの１つを判定することを含むことを特徴とする請求項７に記載の方法。
【請求項１１】
前記ネットワークインターフェースモジュールが前記ドーズ状態に設定されることを示す通知を前記アクセスポイントに送信する前記ステップは、すべての保留パケットが送信された後に前記通知を送信するステップを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記通知が送信された後に前記ネットワークインターフェースモジュールを前記ドーズ状態に設定する前記ステップは、前記ネットワークインターフェースモジュールの送信経路をドーズ状態に設定すること、および前記ネットワークインターフェースモジュールの受信経路の給電を維持することを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記モバイルデバイスがネットワークに関連付けられている場合に前記ネットワークインターフェースモジュールを高速パワーセーブモードおよび最大パワーセーブモードの一方で動作させるステップは、前記ネットワークインターフェースモジュールを最大パワーセーブモードで動作させることを含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記ネットワークインターフェースモジュールを最大パワーセーブモードで動作させる前記ステップは、
ａ）前記ネットワークインターフェースモジュールがドーズ状態にいつ入れるかを判定するステップと、
ｂ）前記ネットワークインターフェースモジュールがドーズ状態に設定される旨の通知をアクセスポイントに送信するステップと、
ｃ）前記通知が送信された後に、前記ネットワークインターフェースモジュールを前記ドーズ状態に設定するステップと、
ｄ）ビーコン受信間隔が経過した後に、前記ネットワークインターフェースモジュールをオン状態に設定してビーコンを受信するステップと、
ｅ）前記モバイルデバイスについてパケットがキュー内にないことをビーコンが示している場合に、ステップｂ〜ｆを繰り返すステップと、
ｆ）前記モバイルデバイスについて少なくとも１つのパケットがキュー内にあることをビーコンが示している場合に、ステップａ〜ｆを繰り返すステップと
を含むことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記モバイルデバイスの１つと前記アクセスポイントとの関連付けが解除されるか、または前記ネットワークインターフェースモジュールの動作が前記常時起動モードおよび前記高速パワーセーブモードの一方に変更されるまで、前記ステップａ〜ｆを繰り返すステップをさらに含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ネットワークインターフェースモジュールがドーズ状態にいつ入れるかを決定する前記ステップは、遅延スリープタイマーのタイムアウトを判定することを含むことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記ネットワークインターフェースモジュールがドーズ状態にいつ入ることができるかを決定する前記ステップは、遅延スリープタイマーがタイムアウトになったこと、走査が完了したこと、前記モバイルデバイスに対してトラフィックがキューに入っていないことをビーコンが示していること、および電源がエネルギーの制限されている電源から電線に切り換えられたことの１つを判定することを含むことを特徴とする請求項１４に記載の方法。
【請求項１８】
ネットワークインターフェースモジュールを備えるモバイルデバイス内で使用するパワーマネジメントシステムは、
常時起動モード、最大パワーセーブモード、および高速パワーセーブモードのうちの１つで動作するように前記ネットワークインターフェースモジュールの電力状態を制御するためのパワーマネジメントモジュールを備え、該パワーマネジメントモジュールが、
前記ネットワークインターフェースモジュールがオン状態およびドーズ状態のうちの１つにいつ設定されるかを判定するパワーマネジメントバックエンドモジュールと、
前記パワーマネジメントバックエンドモジュールと通信し、システム状態情報を該パワーマネジメントバックエンドモジュールに供給するシステム状態モジュールと、
前記パワーマネジメントバックエンドモジュールと通信し、前記ネットワークインターフェースモジュールのインターフェース状態情報を前記パワーマネジメントバックエンドモジュールに供給するインターフェースリストモジュールと
を備えることを特徴とするパワーマネジメントシステム。
【請求項１９】
前記パワーマネジメントモジュールと通信し、前記モバイルデバイスがトラフィックを送信していないときを判定するパケットアナライザをさらに備えることを特徴とする請求項１８に記載のシステム。
【請求項２０】
前記パワーマネジメントモジュールと通信し、前記モバイルデバイスがエネルギーの制限されている電源を使用せずに動作しているかどうかの指示を前記パワーマネジメントモジュールに送る電源インジケータをさらに備えることを特徴とする請求項１８に記載のシステム。
【請求項２１】
前記パワーマネジメントモジュールと通信し、パケットが速い応答を必要とすること、およびパケットが高優先度を有することの１つを示すためのインターフェースをアプリケーションに提供するアプリケーションプログラミングインターフェースをさらに備えることを特徴とする請求項１８に記載のシステム。
【請求項２２】
前記パワーマネジメントモジュールと通信し、ユーザが選択した前記電力状態の指示を与える電力設定モジュールを備えることを特徴とする請求項１８に記載のシステム。
【請求項２３】
前記パワーマネジメントモジュールと通信し、前記ネットワークインターフェースモジュールを走査のためにいつオン状態に置かなければならないかの指示を前記プログラム管理モジュールに提供する走査エンジンをさらに備えることを特徴とする請求項１８に記載のシステム。
【請求項２４】
前記パワーマネジメントバックエンドモジュールは、ステートマシンを使用して、ネットワークインターフェースモジュールがオン状態およびドーズ状態のうちの１つにいつ設定されるかを判定することを特徴とする請求項１８に記載のシステム。
【請求項２５】
前記パワーマネジメントモジュールは、遅延スリープタイマーのタイムアウト、走査の完了、およびビーコンが前記モバイルデバイスに対するトラフィックがキューに入っていないことを示すことのいずれか１つの後に、前記ネットワークインターフェースモジュールをドーズ状態に設定すると判定することを特徴とする請求項２４に記載のシステム。
【請求項２６】
遅延スリープタイマーのタイムアウト、走査の完了、ビーコンが前記モバイルデバイスに対するトラフィックがキューに入っていないことを示したことの１つは、遅延スリープタイマーのタイムアウト、走査の完了、ビーコンが前記モバイルデバイスのトラフィックがキューに入っていないことを示すこと、および電源がエネルギーの制限されている電源から電線に切り換わることの１つを含むことを特徴とする請求項２５に記載のシステム。
【請求項２７】
前記パワーマネジメントモジュールは、前記モバイルデバイスが送信すべきパケットを有する旨の通知、前記ネットワークインターフェースモジュールが利用可能なネットワークを走査する必要がある旨の通知、前記ネットワークインターフェースモジュールがビーコンを受信する必要がある旨を指示するタイマーのタイムアウト、および前記モバイルデバイスがエネルギーの制限されている電源から電線に切り換えるという通知のうちの１つが受信された後に、前記ネットワークインターフェースモジュールがオン状態に設定されると判定することを特徴とする請求項２４に記載のシステム。
【請求項２８】
前記パワーマネジメントモジュールは、オブジェクト識別子を使用して前記ネットワークインターフェースモジュールと通信し、該オブジェクト識別子は、
前記ネットワークインターフェースモジュールの前記電力状態を設定すること、および前記ネットワークインターフェースモジュールにクエリを実行して前記ネットワークインターフェースモジュールの前記電力状態を決定することのうちの１つを実行するための電力状態オブジェクト識別子と、
遅延スリープ時間を設定すること、および、前記ネットワークインターフェースモジュールにクエリを実行して現在の遅延スリープ時間を決定することのうちの１つを実行する遅延スリープオブジェクト識別子を含むことを特徴とするシステム。
【請求項２９】
前記電力状態オブジェクト識別子は、前記ネットワークインターフェースモジュールをオン状態に切り換えるオン設定、前記ネットワークインターフェースモジュールをドーズ状態に切り換えるドーズ設定、および前記ネットワークインターフェースモジュールをオフ状態に切り換えるオフ設定を含む複数の設定を持つことを特徴とする請求項２８に記載のシステム。
【請求項３０】
前記遅延スリープ時間オブジェクト識別子は、前記遅延スリープ時間をミリ秒単位で設定するパラメータ設定を持つことを特徴とする請求項２８に記載のシステム。
【請求項３１】
請求項１に記載のステップを実行するためのコンピュータ実行可能命令を含むことを特徴とするコンピュータ可読媒体。
【請求項３２】
前記モバイルデバイスが電線から電力を供給されている場合に前記ネットワークインターフェースモジュールを常時起動モードに設定するステップを実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３３】
ユーザの選択に従って前記ネットワークインターフェースモジュールを常時起動モード、高速パワーセーブモード、および最大パワーセーブモードの１つに設定するステップを実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３４】
前記モバイルデバイスの１つが関連付けられているか、前記走査が要求されているかいずれかの場合に、前記ネットワークインターフェースモジュールを常時起動モードに設定するステップを実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３５】
アプリケーションがパケットにタグを付けて速い応答が必要なことを示す場合に、前記ネットワークインターフェースモジュールを高速パワーセーブモードで動作させるステップを実行するコンピュータ実行可能命令をさらに有することを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３６】
前記ネットワークインターフェースモジュールが前記ドーズ状態に設定されることを示す通知を前記アクセスポイントに送信する前記ステップは、すべての保留パケットが送信された後に前記通知を送信するステップを含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３７】
前記通知が送信された後に前記ネットワークインターフェースモジュールを前記ドーズ状態に設定する前記ステップは、前記ネットワークインターフェースモジュールの送信経路をドーズ状態に設定すること、および前記ネットワークインターフェースモジュールの受信経路の給電を維持することを含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３８】
前記モバイルデバイスがネットワークに関連付けられている場合に前記ネットワークインターフェースモジュールを高速パワーセーブモードおよび最大パワーセーブモードの一方で動作させる前記ステップが、前記ネットワークインターフェースモジュールを高速パワーセーブモードで動作させることを含み、前記ネットワークインターフェースモジュールを高速パワーセーブモードで動作させる前記ステップは、
ａ）前記ネットワークインターフェースモジュールがドーズ状態にいつ入れるかを判定するステップと、
ｂ）遅延スリープ時間を決定するステップと、
ｃ）前記ネットワークインターフェースモジュールが前記ドーズ状態に設定される旨の通知を前記アクセスポイントに送信するステップと、
ｄ）前記通知が送信された後に、前記ネットワークインターフェースモジュールを前記ドーズ状態に設定するステップと、
ｅ）ビーコン間隔毎に前記ネットワークインターフェースモジュールをオン状態に設定してビーコンを受信するステップと、
ｆ）前記モバイルデバイスに対するパケットがキュー内にないことをビーコンが示している場合にステップｃ〜ｇを繰り返すステップと、
ｇ）前記モバイルデバイスに対する少なくとも１つのパケットがキュー内にあることをビーコンが示している場合にステップａ〜ｇを繰り返すステップと
を含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項３９】
前記モバイルデバイスの１つと前記アクセスポイントとの関連付けが解除されるか、または前記ネットワークインターフェースモジュールの動作が前記常時起動モードおよび前記最大パワーセーブモードの一方に変更されるまで、前記ステップａ〜ｇを繰り返すステップを実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項３８に記載のコンピュータ可読媒体。
【請求項４０】
前記ネットワークインターフェースモジュールがドーズ状態にいつ入れるかを決定する前記ステップは、遅延スリープタイマーのタイムアウトを判定することを含むことを特徴とする請求項３８に記載のコンピュータ可読媒体。
【請求項４１】
前記ネットワークインターフェースモジュールがドーズ状態にいつ入ることができるかを決定する前記ステップは、遅延スリープタイマーがタイムアウトになったこと、走査が完了したこと、前記モバイルデバイスに対してトラフィックがキューに入っていないことをビーコンが示していること、および電源がエネルギーの制限されている電源から電線に切り換えられたことの１つを判定することを含むことを特徴とする請求項３８に記載のコンピュータ可読媒体。
【請求項４２】
前記モバイルデバイスがネットワークに関連付けられている場合に前記ネットワークインターフェースモジュールを高速パワーセーブモードおよび最大パワーセーブモードの一方で動作させる前記ステップが、前記ネットワークインターフェースモジュールを最大パワーセーブモードで動作させることを含み、前記ネットワークインターフェースモジュールを最大パワーセーブモードで動作させる前記ステップは、
ａ）前記ネットワークインターフェースモジュールがドーズ状態にいつ入れるかを判定するステップと、
ｂ）遅延スリープ時間を決定するステップと、
ｃ）前記ネットワークインターフェースモジュールが前記ドーズ状態に設定される旨の通知を前記アクセスポイントに送信するステップと、
ｄ）前記通知が送信された後に、前記ネットワークインターフェースモジュールを前記ドーズ状態に設定するステップと、
ｅ）ビーコン受信間隔が経過した後に、前記ネットワークインターフェースモジュールをオン状態に設定してビーコンを受信するステップと、
ｆ）前記モバイルデバイスに対するパケットがキュー内にないことをビーコンが示している場合にステップｃ〜ｇを繰り返すステップと、
ｇ）前記モバイルデバイスに対する少なくとも１つのパケットがキュー内にあることをビーコンが示している場合にステップａ〜ｇを繰り返すステップと
を含むことを特徴とする請求項３１に記載のコンピュータ可読媒体。
【請求項４３】
前記モバイルデバイスの１つと前記アクセスポイントとの関連付けが解除されるか、または前記ネットワークインターフェースモジュールの動作が前記常時起動モードおよび前記高速パワーセーブモードの一方に変更されるまで、前記ステップａ〜ｇを繰り返す前記ステップを実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項４２に記載のコンピュータ可読媒体。
【請求項４４】
前記ネットワークインターフェースモジュールがドーズ状態にいつ入ることができるかを決定する前記ステップは、遅延スリープタイマーがタイムアウトになったこと、走査が完了したこと、前記モバイルデバイスに対してトラフィックがキューに入っていないことをビーコンが示していること、および電源がエネルギーの制限されている電源から電線に切り換えられたことの１つを判定することを含むことを特徴とする請求項４２に記載のコンピュータ可読媒体。
【請求項４５】
ネットワークインターフェースモジュールをパワーセーブモードで動作させるデバイスでパケットを送信する方法であって、
分配のためにパケットをアクセスポイントに送信するステップと、
遅延スリープ時間後にタイムアウトになるように遅延スリープタイマーを設定するステップと、
遅延スリープタイマーがタイムアウトになった後に、前記ネットワークインターフェースモジュールがドーズ状態に入る旨を示すメッセージを前記アクセスポイントに送信するステップと、
前記ネットワークインターフェースモジュールを前記ドーズ状態に設定するステップと
を含むことを特徴とする方法。
【請求項４６】
前記遅延スリープタイマーのカウントが続いている間に少なくとも１つの別のパケットが前記アクセスポイントに送信される場合に、前記遅延スリープタイマーをリセットするステップをさらに含むことを特徴とする請求項４５に記載の方法。
【請求項４７】
前記パケットおよび前記少なくとも１つの別のパケットの各々について遅延スリープ時間を決定するステップをさらに含むことを特徴とする請求項４５に記載の方法。
【請求項４８】
前記パケットについて前記遅延スリープ時間を決定するステップをさらに含むことを特徴とする請求項４５に記載の方法。
【請求項４９】
前記遅延スリープ時間を決定する前記ステップは、推定ランドトリップ時間を判定することを含むことを特徴とする請求項４８に記載の方法。
【請求項５０】
前記遅延スリープ時間を決定する前記ステップは、前記推定ランドトリップ時間がビーコン間隔時間よりも短い場合に、前記遅延スリープ時間を前記推定ランドトリップ時間に設定することを含むことを特徴とする請求項４９に記載の方法。
【請求項５１】
前記遅延スリープ時間を決定する前記ステップは、前記推定ランドトリップ時間が少なくとも１ビーコン間隔時間である場合に前記遅延スリープ時間をビーコン間隔時間よりも短い時間に設定することを含むことを特徴とする請求項４８に記載の方法。
【請求項５２】
前記ネットワークインターフェースモジュールは、複数のセッションからパケットを送信しており、前記方法は、
前記複数のセッションについての最大ランドトリップ時間を測定するステップと、
前記遅延スリープ時間を前記最大ランドトリップ時間に設定するステップと
をさらに含むことを特徴とする請求項４５に記載の方法。
【請求項５３】
前記遅延スリープ時間を最大ランドトリップ時間に設定する前記ステップは、
前記推定ランドトリップ時間がビーコン間隔時間よりも短い場合に、前記遅延スリープ時間を前記最大ランドトリップ時間に設定するステップと、
前記最大ランドトリップ時間が少なくとも１ビーコン間隔時間の場合に、前記遅延スリープ時間をビーコン間隔時間よりも短い時間に設定するステップと
を含むことを特徴とする請求項５２に記載の方法。
【請求項５４】
電力設定コマンドをモバイルデバイス内の複数のネットワークインターフェースモジュールに提供するためのパワーマネジメント変換装置であって、
電力設定コンポーネント構成要素から電力設定を受け取るためのシステム状態モジュールと、
前記電力設定を各ネットワークインターフェースモジュールへ通信するためのインターフェースモジュールと
を備えることを特徴とするパワーマネジメント変換装置。
【請求項５５】
前記電力設定コンポーネントは、電源インジケータコンポーネント、アプリケーションプログラミングインターフェースコンポーネント、ユーザ電力設定コンポーネント、基本電力設定コンポーネント、およびローミングコンポーネントのうちの少なくとも１つを備えることを特徴とする請求項５４に記載のパワーマネジメント変換装置。
【請求項５６】
前記インターフェースモジュールは、高電力設定、中電力設定、および低電力設定の１つを各ネットワークインターフェースモジュールに提供することを特徴とする請求項５４に記載のパワーマネジメント変換装置。
【請求項５７】
前記パワーマネジメント変換装置は、前記モバイルデバイスがＡＣ電源から電力を供給されている場合に、ユーザ電力設定を無視することを特徴とする請求項５４に記載のパワーマネジメント変換装置。
【請求項５８】
前記パワーマネジメント変換装置は、リアルタイムアプリケーションが呼び出されて動作している場合に、ユーザ電力設定を優先することを特徴とする請求項５４に記載のパワーマネジメント変換装置。
【請求項５９】
前記パワーマネジメント変換装置は、前記電力設定コンポーネントからの電力設定を各ネットワークインターフェースモジュールに対する単一の電力設定に変換することを特徴とする請求項５４に記載のパワーマネジメント変換装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、携帯型コンピューティングデバイスに関するものであり、より詳細には、携帯型コンピューティングデバイス内の電力管理に関するものである。
【背景技術】
【０００２】
ラップトップコンピュータ、携帯情報端末装置（personal digital assistant devices）などの無線ネットワーキングデバイス（wireless networking devices）およびインフラストラクチャの開発および展開が進み、消費者および企業はますます、本当のモバイルコンピューティング（mobile computing）、モバイル共同作業（mobile collaboration）、およびモバイル情報交換（mobile information exchange）の恩恵を受けられる状況になってきている。もはや、出張者が、ただ単にネットワークに接続して電子メールメッセージを取り出したり、ファイルをダウンロードしたり、情報交換するために、各種のケーブルを携えて利用可能なデータポートを求めて際限なく探し回る必要はなくなった。もはや、企業および家庭の消費者は、壁のＥｔｈｅｒｎｅｔ（登録商標）ジャックの場所によって、ネットワークにアクセスできる場所を制限されることはない。会議参加者および友人グループは、自分たちの間にケーブルを配線することなく、既存のネットワークにログインすることなく、自分たちの特別なネットワークを形成できる。バッテリの電力が続く間は、無線プロトコルを使用してネットワークにログオンできるため、なおいっそう機動性が高まる。
【０００３】
しかし、無線ネットワーク（wireless networks）でのモバイルコンピューティングという概念は十分に受け入れられているが、この概念の実施にはさまざまな形態のものがある。すなわち、市場で競合しているいくつかの異なる無線プロトコル標準規格が存在している。これらの標準規格としては、８０２．１１ｂ（Ｗｉ−Ｆｉとも呼ばれる）、８０２．１１ａ（Ｗｉ−Ｆｉ５とも呼ばれる）、８０２．１１ｇ、ＨｏｍｅＲＦ、Ｂｌｕｅｔｏｏｔｈ、Ｗｉｒｅｌｅｓｓ  １３９４、ＨｉｐｅｒＬＡＮ２、ＵＷＢ（Ultrawideband）、ＺｉｇＢｅｅなどがある。これらの異なる標準規格にはそれぞれ、特有の利点があり、特定の用途およびユーザを想定して開発されている。これらの標準規格には共通な点が１つあるが、それは、ネットワークインターフェースカード（ＮＩＣ）として通常実装される、ネットワークインターフェースモジュールを使用していることである。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
モバイルワーカ（mobile worker）は大きな機動性を必要とするので、組織内でも、出先でも、モバイルワーカは無線デバイスに電力を供給するバッテリの寿命の制限を受ける。バッテリの寿命は、機動性に対する主要な制約となっている。無線ＮＩＣのバッテリ消費電力は、ラップトップ内で３番目に大きい。スモールフォームファクタデバイス（small form factor devices）では、無線ＮＩＣのバッテリ電力消費の割合はラップトップよりもさらに大きい。このエネルギーの大半は無線データ伝送に使われ、ＮＩＣがデータ伝送に関わっていないときでも無線ＮＩＣを電源オン（power on）にしている。バッテリが供給できる電力量は限られているため、電力消費を最小限に抑えバッテリ駆動式のデバイスの動作時間を延ばすことがこれらのデバイスにとって重要な課題となっている。
【０００５】
無線ＮＩＣが実行する機能の消費電力を低減するために行われている１つの方法は、どのデバイスが無線ネットワーキングデバイスの範囲内にあるかを判定するための走査（ｓｃａｎ）を実行する期間を調整することである。例えば、２００２年１２月１８日に出願され本出願の出願人に譲渡された米国特許出願番号第１０／３２３，０４３号には、走査履歴および最新走査の走査結果に基づき指数関数を使用して走査から次の走査までの時間を設定することが教示されている。しかし、走査から次の走査までの間の時間を長くすると電力が節約されるが、バッテリの電力を節約するさらなる方法が必要とされている。
【課題を解決するための手段】
【０００６】
本発明は、コンピューティングデバイス内のネットワークインターフェースモジュールの電力を管理するための方法および装置を提供する。
【０００７】
パワーマネジメントモジュールは、コンピューティングデバイス内の他のモジュールから受け取ったパラメータに基づきネットワークインターフェースモジュールの電力状態を制御する。バッテリまたは燃料電池などのエネルギーが制限されている電源からコンピューティングデバイスに電力が供給され、コンピューティングデバイスがアクセスポイントに関連付けられている場合、ネットワークインターフェースモジュールは、パワーセーブモードで動作し、エネルギーが制限されている電源から引き出される電力が節約される。一実施形態では、パワーセーブモードは高速パワーセーブモード（fast power save Mode）または最大パワーセーブモード（maximum power save mode）のいずれかである。コンピューティングデバイスがアクセスポイントに関連付けられておらず、ネットワークインターフェースモジュールが走査中であるか、または走査が要求された場合、ネットワークインターフェースモジュールはパワーアップ状態（powered up state）で動作し、ネットワークインターフェースモジュールへ完全に電力が供給される。一実施形態では、ネットワークインターフェースモジュールはアクセスポイントに関連付けられておらず、走査を実行中でないか、または走査を完了している場合、ネットワークインターフェースモジュールは低電力状態（つまり、ドーズ状態（doze state））に置かれる。コンピューティングデバイスがアクセスポイントに関連付けられておらず、ネットワークインターフェースモジュールが走査中であるか、または走査が要求されている場合、ネットワークインターフェースモジュールがドーズ状態にあり、ネットワークインターフェースモジュールが動作するための最低量の電力が使用されていれば、ネットワークインターフェースモジュールはパワーアップ状態に設定される。コンピューティングデバイスへの電力供給源が電線（例えば、ＡＣ電源、バッテリ充電器など）の場合、ネットワークインターフェースモジュールは、パワーアップ状態のままであり、ネットワークインターフェースモジュールは完全に電力供給される。
【０００８】
ユーザは、ユーザが電力の節約を望まないか（つまり、常時起動モード（ＣＡＭ：Constant Awake Mode））、中程度の電力の節約を望むか（つまり、高速パワーセーブモード）、または最大の電力の節約モードを望むか（つまり、最大パワーセーブモード）を指定するためのインターフェースを介して、選択を設定することができる。ユーザ設定可能な選択に加えて、アプリケーションは、パケットにタグを付けて、早い応答が要求されていること、およびパワーマネジメントモジュールがネットワークインターフェースモジュールの動作を常時起動モードまたは高速パワーセーブモードで動作するように調整することを示すことができる。
【０００９】
高速パワーセーブモードでは、パワーマネジメントモジュールは、ネットワークインターフェースモジュールがドーズ状態に入ることが可能な時を決定し、ネットワークインターフェースモジュールがこれからドーズ状態に設定されるという通知をアクセスポイントに送信する。パワーマネジメントモジュールは、通知が送信された後、ネットワークインターフェースモジュールをドーズ状態に設定する。ビーコン間隔の終了前に、ネットワークインターフェースモジュールがパワーアップ状態（つまり、オン状態）に設定され、ビーコン間隔毎にビーコンを受け取るようにされる。アクセスポイントまたはピアコンピューティングデバイスでは、コンピューティングデバイスに対するパケットがキューに入っていないことをビーコンが示している場合、ネットワークインターフェースモジュールはドーズ状態に戻される。コンピューティングデバイスに対して少なくとも１つのパケットがバッファされていることをビーコンが示している場合、ネットワークインターフェースモジュールは、バッファされているパケットを受け取ってから、ドーズ状態に入る。
【００１０】
ネットワークインターフェースモジュールがいつドーズ状態に入ることができるかを決定するステップは、遅延スリープタイマーがタイムアウトになったことを判定するステップ、走査が完了したかどうか判定するステップ、コンピューティングデバイスに対するトラフィックがキューに入っていないことをビーコンが示しているかどうか判定するステップ、および電源がエネルギーの制限されている電源から電線の電源に切り換えられるかどうか判定するステップを含む。
【００１１】
最大パワーセーブモードでは、パワーマネジメントモジュールは、複数のビーコン間隔（つまり、ビーコン受信間隔（listening interval））でネットワークインターフェースモジュールをドーズ状態にする。パワーマネジメントモジュールは、ネットワークインターフェースモジュールがいつドーズ状態に入ることができるかを決定し、ネットワークインターフェースモジュールがこれからドーズ状態に設定されるという通知をアクセスポイントに送信する。パワーマネジメントモジュールは、通知が送信された後、ネットワークインターフェースモジュールをドーズ状態が設定する。ビーコン受信間隔の終了前に、ネットワークインターフェースモジュールは、オン状態に設定され、ビーコンを受信できるようにする。コンピューティングデバイスに対してパケットがキューに入っていないことをビーコンが示している場合、ネットワークインターフェースモジュールはビーコン受信間隔の期間ドーズ状態に戻される。コンピューティングデバイスに対して少なくとも１つのパケットがバッファされていることをビーコンが示している場合、ネットワークインターフェースモジュールは、バッファされているパケットを受け取ってから、ビーコン受信間隔の残りの期間ドーズ状態に入る。
【００１２】
パワーマネジメントモジュールは、ネットワークインターフェースモジュールがオン状態およびドーズ状態のうちの一方にいつ設定されるかを判定するパワーマネジメントバックエンドモジュール、パワーマネジメントバックエンドモジュールと通信し、デバイスがエネルギーの限られている電源から電力供給されているかどうかを含むシステム状態情報をパワーマネジメントバックエンドモジュールに供給するシステム状態モジュール、パワーマネジメントバックエンドモジュールと通信し、ネットワークインターフェースモジュールのインターフェース状態情報をパワーマネジメントバックエンドモジュールに供給するインターフェースリストモジュールを備える。パワーマネジメントバックエンドモジュールは、ステートマシン（state machine）を使用して、ネットワークインターフェースモジュールがオン状態、ドーズ状態、およびオフ状態に設定される時を決定する。パワーマネジメントモジュールは、ネットワークインターフェースモジュールがパワーセーブモードで動作しているときに、遅延スリープタイマーがタイムアウトになった後、走査が完了した後、またはコンピューティングデバイスに対してトラフィックがキューに入っていないことをビーコンが示した後に、ネットワークインターフェースモジュールがドーズ状態に設定されることを決定する。
【００１３】
遅延スリープ時間は、パケットを送信してからネットワークインターフェースモジュールをドーズ状態に設定するまでに指定された時間だけ待機することで、パワーセーブモードで動作しているデバイスのネットワークスループットを向上するために使用される。こうすることにより、受信者が遅延スリープ時間以内に応答を送信すれば、アプリケーションは次のビーコン間隔またはビーコン受信間隔を待たずに応答を受け取ることができる。遅延スリープタイマーを使用してタイミング機能を提供する。遅延スリープタイマーは、パケットが分配のためアクセスポイントに送信された後に設定され、ネットワークインターフェースモジュールは、遅延スリープタイマーがタイムアウトになった後、ドーズ状態に設定される。遅延スリープタイマーがカウントを行っている間に別のパケットがアクセスポイントに送信されると、遅延スリープタイマーはリセットされる。遅延スリープ時間はパケット毎に決定され、送信されるパケットの推定ランドトリップ時間に基づく。
【００１４】
本発明の他の特徴および利点は、添付する図を参照して進められている説明目的の実施形態の以下の詳細な説明から明白になるであろう。
【発明を実施するための最良の形態】
【００１５】
特許請求の範囲は、特殊性を有する本発明の特徴を述べているが、本発明は、その目的および利点とともに、添付する図面に関する以下の詳細な説明から最もよく理解できると思われる。
【００１６】
本発明は、ネットワークにアクセスするためのネットワークインターフェースモジュールおよび蓄積されるエネルギーの量が限られている、バッテリパックなどのエネルギーの制限されている電源を備えるコンピューティングデバイスで動作する。現在のネットワークインターフェースモジュールは、ネットワークトラフィックを送信しないときに必要以上に長い間、高電力状態（送信、受信、または受信待機）に留まる。この時間には無駄に電力が消費され、バッテリパックの持続時間が短くなる。このため、バッテリパックの交換または充電を頻繁に行う必要がある。トラフィックを送信中または走査中でないときにネットワークインターフェースモジュールが高電力状態にある時間を短縮することが望ましい。本発明は、ユーザの選択に基づきバッテリの電力を節約する方法を提示するものである。本発明を詳細に説明する前に、本発明を実装できるコンピューティングデバイス例について最初に、図１を参照して説明する。
【００１７】
本発明は、プロセッサによって実行されるプログラムモジュールなどの命令を使用して、携帯電話、ハンドヘルドデバイス、無線監視装置、マイクロプロセッサベースのプログラム可能な家電製品などをはじめとする各種の装置を採用するシステムに実装することができる。一般に、プログラムモジュールには、特定のタスクを実行する、あるいは特定の抽象データ型を実装するルーチン、オブジェクト、コンポーネント、データ構造などが含まれる。「プログラム」という用語は、１つまたは複数のプログラムモジュールを含む。
【００１８】
図面では類似の参照番号は類似の要素を指しており、本発明は好適なコンピューティング環境で実施されるものとして説明されている。必須ではないが、パーソナルコンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令の一般的文脈において本発明を説明する。一般に、プログラムモジュールは、特定のタスクを実行するか、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。さらに、当業者には、本発明が、携帯型（ハンドヘルド）デバイス、マルチプロセッサシステム、マイクロプロセッサベースのまたはプログラム可能な家電製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステム構成でも実施できることは明白であろう。また、本発明は、通信ネットワークを通じてリンクされているリモート処理デバイスによりタスクが実行される分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールをローカルとリモートの両方のメモリ記憶デバイスに配置できる。
【００１９】
図１は、本発明の一実施形態を実装するためのコンピューティングデバイス１００の例を示している。最も基本的な構成では、コンピューティングデバイス１００は少なくとも処理ユニット１０２およびメモリ１０４を備える。コンピューティングデバイスの正確な構成と種類に応じて、メモリ１０４は揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、またはこれら２つの何らかの組み合わせとすることができる。図１においてこの最も基本的な構成は、点線１０６で示されている。さらに、コンピューティングデバイス１００には、追加的な特徴／機能も備えることができる。例えば、コンピューティングデバイス１００は、磁気ディスクまたは光ディスクあるいはテープを含み、これらに限定されない追加記憶装置（取り外し可能および／または取り外し不可能）を備えることもできる。このような追加記憶装置は、図１では、取り外し可能記憶装置１０８および取り外し不可能記憶装置１１０により示されている。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造体、プログラムモジュール、またはその他のデータなどの情報を格納する方法または技術で実装される揮発性および不揮発性、取り外し可能および取り外し不可能の媒体を含む。メモリ１０４、取り外し可能記憶装置１０８および取り外し不可能記憶装置１１０は、すべてコンピュータ記憶媒体の例である。コンピュータ記憶媒体としては、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）、フラッシュメモリまたはその他のメモリ技術、ＣＤＲＯＭ（Compact Disk ROM）、デジタル多用途ディスク（ＤＶＤ：Digital Versatile Disc）またはその他の光ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置またはその他の磁気記憶デバイス、または所望の情報を格納するために使用することができ、コンピューティングデバイス１００によりアクセスできるその他の媒体がある。このような任意のコンピュータ記憶媒体をコンピューティングデバイス１００の一部とすることができる。
【００２０】
また、コンピューティングデバイス１００には、このデバイスが他のデバイスと通信するために使用する１つまたは複数の通信接続１１２を含めることもできる。通信接続１１２は、通信媒体の一例である。通信媒体は、典型的に、コンピュータ可読命令、データ構造、プログラムモジュールまたはその他のデータを搬送波またはその他のトランスポートメカニズムなどの変調データ信号により具現化し、情報配信媒体を含む。「変調データ信号」という用語は、信号内の情報をエンコードする方法でその特性のうち１つまたは複数を設定または変更した信号を意味する。限定ではなくたとえば、通信媒体としては、有線ネットワークまたは直接配線接続などの有線媒体、および、ＲＦ（radio frequency）、赤外線、およびその他の無線媒体などの無線媒体がある。上述のように、本明細書で使用しているコンピュータ可読媒体という用語は、記憶媒体と通信媒体の両方を含む。
【００２１】
さらにコンピューティングデバイス１００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの１つまたは複数の入力デバイス１１４を備えることもできる。表示装置、スピーカー、プリンタなどの１つまたは複数の出力デバイス１１６を備えることもできる。これらのデバイスはすべて、本技術分野ではよく知られているため、本明細書でさらに詳しい説明をする必要はない。
【００２２】
本発明の所期の適用をふまえて、コンピューティングデバイス１００をモバイルデバイス（mobile device）として構成する。その目的のために、コンピューティングデバイス１００に、バッテリパック、燃料電池などのエネルギーが制限されている携帯型の電源１２０を装備する。エネルギーが制限されている電源１２０は、コンピューティングデバイス１００による計算およびデータ送信用の電力を供給する。図２に示されているように、コンピューティングデバイス１００は、異なる種類の無線ネットワークと無線通信するためのネットワークインターフェースモジュール２０１をさらに備える。この実装のネットワークインターフェースモジュール２０１は、適切な周波数チャネル上で、無線でデータを送信するためのアンテナ２０６に結合されている、送信機１２２を備える。受信機１２６も、デバイスが通信しているネットワークから無線で送信される通信パケットを受信するためアンテナ２０６に結合されている。ネットワークインターフェースモジュール２０１およびアンテナ２０６は、図１の通信接続１１２の一部である。一実施形態では、ネットワークインターフェースモジュール２０１は、ＩＥＥＥ８０２．１１無線接続上で無線構成（ｗｉｒｅｌｅｓｓ  ｃｏｎｆｉｇｕｒａｔｉｏｎ）サービスを利用して、インフラストラクチャ・モードネットワークおよびアドホック・モードネットワークを含む、ネットワーク構成を簡単に行えるようにしている。ネットワークインターフェースモジュールの例として、ＰＣＭＣＩＡ無線カードがある。ネットワークインターフェースモジュールのインターフェースタイプおよび物理構成は本発明にとっては重要でないことは理解されるであろう。例えば、インターフェースタイプは、ＰＣＩ（Peripheral Component Interconnect）でも他のタイプでもよく、ネットワークインターフェースモジュールは、個別のカードに設ける必要もない。コンピュータのマザーボードに搭載される、あるいはさらに将来、プロセッサに組み込まれる可能性さえある。
【００２３】
コンピューティングデバイス１００は、ネットワークインターフェースモジュールを通じて、異なる種類の無線ネットワークと通信することができる。例えば、図２で説明されている環境では、コンピューティングデバイス１００は、アクセスポイント２３１を介して無線でインフラストラクチャ・モードネットワーク２３０に接続されている局とすることが可能である。コンピューティングデバイス１００は、さらに、アドホック・モードネットワークとも呼ばれるピアツーピアネットワーク２２０の一部であってもよい。アドホック・モードネットワークは、コンピューティングデバイス２２１、２２２、および２２３などの他のコンピューティングデバイスを含む。インフラストラクチャ・モードネットワークのアクセスポイント２３１またはアドホック・モードネットワーク２２０のいずれかに接続する前に、コンピューティングデバイス１００は、プローブ要求を送信し、アクセスポイントまたはその他のデバイスにより送信されたプローブ応答信号を走査することにより、定期的に能動的な走査を行うことでネットワークに属しているデバイスを探索する状態に置くことができる。あるいはまた、コンピューティングデバイス１００は、アクセスポイントによって送信されたビーコンの走査を行うことにより受動的な探索を行うことができる。
【００２４】
ネットワークドライバ２０３は、ネットワークインターフェースモジュール２０１の動作を制御する。ネットワークドライバ２０３は、コンピューティングデバイス１００のオペレーティングシステムの一部であるか、またはコンピューティングデバイス１００上で実行される個別の実行可能プログラムのいずれかである。ネットワークドライバの一例として、ネットワークドライバインターフェース標準仕様（ＮＤＩＳ：Network Driver Interface Specification）がある。ネットワークドライバ２０３は、パワーマネジメントモジュール２０２と通信し、本明細書で説明しているように電力状態を変化させるようネットワークインターフェースモジュール２０１に動的に指令を出す。パワーマネジメントモジュール２０２は、いくつかのコンポーネントと通信し、ネットワークインターフェースモジュール２０１がどの電力状態に入るべきかを判定するために使用するデータを取得する。これらのコンポーネントは、走査エンジン２０４、アプリケーション透過性ＡＰＩ（アプリケーションプログラミングインターフェース）２１６、電源インジケータ２０８、電力設定２１０、パケットアナライザ２１２、および統計アナライザ２１４を含むことができる。
【００２５】
走査エンジン２０４では、パワーマネジメントモジュール２０２とのインターフェースを使用して、走査を実行する必要が生じたときにネットワークインターフェースモジュール２０１を高電力状態に置くよう要求する。これは、走査が完了したことを示すメッセージを送信し、ネットワークインターフェースモジュール２０１を高電力状態のままにしておく必要はもはやないことを示す。走査エンジン２０４は、走査履歴および走査結果に基づいて指数関数を使用して走査から次の走査までの時間を調整する。走査エンジン２０４の詳細は、参照により全体が本明細書に組み込まれている、２００２年１２月１８日に出願した前述の米国特許出願で説明されている。アプリケーションは、ＡＰＩ２１６を使用して、送信するデータが小または高電力状態で送信しなければならないことを要求する。アプリケーションに選択がない場合、アプリケーションはＡＰＩ２１６を呼び出さない。
【００２６】
コンピューティングデバイス１００のオペレーティングシステムまたは他のモジュール（図に示されていない）は、エネルギーが制限されている電源１２０またはＡＣ電源から電力供給されているかどうか判定する。これは、コンピューティングデバイス１００がＡＣ電源により電力供給されているかあるいはエネルギーの制限されている電源１２０から電力供給されているかを、パワーマネジメントモジュール２０２に通知する電源インジケータ２０８を使用する。ユーザは、電力設定２１０を通じて所望の電力設定を指定することができる。電力設定には、高、中、および低がある。高電力設定は、常時起動モードに対応し、低電力設定は、最大パワーセーブモードに対応し、中電力設定は、高速パワーセーブモードに対応しており、これらの電力設定について説明する。パケットアナライザ２１２は、ネットワークインターフェースモジュール２０２をドーズ状態することができる時を決定する。パケットアナライザ２１２は、ネットワークインターフェースモジュール２０２を通じて送信されるパケットを観測し、クライアントがいつトラフィックを送信していないかを判定する。データを送信して十分な時間が経過した場合、パケットアナライザ２１２は、ネットワークインターフェースモジュール２０２をドーズ状態に設定できることをパワーマネジメントモジュールに通知する。統計アナライザ２１４は、このアナライザをサポートしているネットワークドライバのためにしか動作しない。パケットアナライザ２１２は、統計アナライザ２１４に問い合わせし、接続に関する統計を調べ、電力レベルを調整すべきかどうか判断する。統計には、受信した信号強度、送信されたフラグメント数、失敗回数、リトライ回数、複数リトライ回数、フレーム重複数、ＲＴＳ（Request to send、送信要求）成功回数、ＲＴＳ失敗回数、ＡＣＫ（Acknowledgment）失敗回数、ＦＣＳ（Frame Check Sequence）エラー発生回数、および送信されたフレーム数がある。
【００２７】
パワーマネジメントモジュール２０２およびコンポーネント２０４〜２１６は、図１のシステムメモリ１０４、取り外し可能記憶装置１０８、または取り外し不可能記憶装置１１０に格納することができる。パワーマネジメントモジュール２０２およびコンポーネントは、分かりやすくするため、別々に示されているが、パワーマネジメントモジュール２０２およびコンポーネントの一部または全部を、オペレーティングシステムの一部またはコンピューティングデバイス１００内の他のモジュールの一部とすることができる。
【００２８】
以下の説明では、特に断りのない限り、１つまたは複数のコンピューティングデバイスにより実行される活動（acts）および動作（operations）の象徴的な表象を参照しながら本発明を説明する。そのような活動および動作は、それ自体、ときにはコンピュータによって実行されるものとして言及されるが、構造化された形式でデータを表現する電気的信号デバイスの処理ユニットによって実行されることを含むことは理解されるであろう。この実行により、データを変換するか、またはコンピュータのメモリシステム内のロケーションに保持し、当業者であればよく理解している方法でコンピュータの動作を再構成または変更する。データが保持されているデータ構造は、データの形式によって定義された特定のプロパティを有するメモリの物理的なロケーションである。しかし、本発明は前記の文脈で説明されているが、当業者が理解するように、これ以降で説明する各種の活動および動作はハードウェアでも実装できることを制限する意図はない。さらに、本発明の動作を説明するためにアクセスポイントを用いる。本発明がピアによるアドホックモードで、またアクセスポイントおよびピアのように振る舞うコンポーネントを含む他のシステムで動作することは、理解されるであろう。以下の説明における、ネットワークインターフェースモジュールとアクセスポイントの間の相互作用（例えば、メッセージと通知）は、ピアなどの間にも実装することができる。
【００２９】
本発明では、ネットワークインターフェースモジュール２０１に供給する電力を主要な３レベルで制御する。これらのレベルは、オン状態、ドーズ状態、およびオフ状態である。３つのレベルについて説明するが、オペレーティングシステム、ネットワークインターフェースモジュールの能力およびドライバに応じて、レベルはいくつでも使用することができる。ドーズ状態では、システムはアイドル状態にあり、ネットワークインターフェースモジュール２０１への供給電力は、トラフィックを送信せずそれ自体を維持するのに必要な最小限度の電力レベルに抑えられている。本発明は、ネットワークインターフェースモジュール２０１がトラフィックの送信または受信、または走査を行っていない場合に、多くの時間をドーズ状態でいるようにする方法を提示する。
【００３０】
オン状態では、３つの電力レベルがある。つまり、常時起動モード（ＣＡＭ：constant awake mode）、最大パワーセーブモード（Ｍａｘ  ＰＳＰ：maximum power saving mode）、および高速パワーセーブモード（Ｆａｓｔ  ＰＳＰ：fast PSP）の３つのレベルである。ＣＡＭモードでは、ネットワークインターフェースモジュール２０１は完全に電力が供給され、節電は行われない。最大パワーセーブモードおよび高速パワーセーブモードを定義する前に、ビーコン間隔とビーコン受信間隔との関係について説明することにする。図３を参照すると、多くの無線システムでは、アクセスポイントが定期的に、ＴＩＭ（traffic indication map：パワーセーブ中のステーションに着信を通知するための情報要素）を含むビーコンフレームを定期的にブロードキャストするようになっている。ビーコンフレームを受信するステーションでは、受信時刻が局所有のタイマーよりも遅れている場合に受信ビーコン内のアクセスポイントのタイマー値を使用する。ブロードキャストからブロードキャストまでの期間はビーコン間隔と呼ばれる。典型的なビーコン間隔は１００ｍｓである。
【００３１】
図３は、ビーコン間隔３００、３０２、３０４、３０６、３０８を示している。ビーコン受信間隔は、ビーコン間隔の倍数として定義される。図３では、ビーコン受信間隔３１０は４ビーコン間隔である。ビーコン受信間隔にはビーコン数をいくつでも使用できる。ビーコン間隔およびビーコン受信間隔について説明したので、次に、最大パワーセーブモードおよび高速パワーセーブモードについて説明する。最大パワーセーブモードでは、ネットワークインターフェースモジュール２０１は、トラフィックの受信または送信が行われていないときにドーズ状態に置かれ、ビーコン受信間隔毎に起動する。高速パワーセーブモードでは、ネットワークインターフェースモジュール２０１は、トラフィックの受信または送信が行われていないときにドーズ状態に置かれ、ビーコン間隔毎に起動する。アクセスポイントは、定期的に、ビーコン内にＴＩＭを送信し、パワーセーブモードを使用するどのデバイスが、アクセスポイントのバッファ内にそのデバイスためにデータフレームを待機させるかを識別する。ＴＩＭは、関連付け処理でアクセスポイントがコンピューティングデバイス１００に割り当てたアソシエーションＩＤによりステーションを識別する。オフ状態では、ネットワークインターフェースモジュール２０１はオフになる。
【００３２】
状態の説明をしたので、次に、パワーマネジメントモジュール２０２の動作全体について説明する。図４を参照すると、パワーマネジメントモジュール２０２では、コンピューティングデバイス１００がエネルギーの限られている電源１２０から供給される電力を使用しているのか、それとも電線から供給される電力を使用しているのかを判定する（ステップ４００）。コンピューティングデバイス１００が電線の電力を使用している場合、パワーマネジメントモジュール２０２はネットワークインターフェースモジュール２０１を常時起動モードで動作するように設定する（ステップ４０２）。コンピューティングデバイス１００がＥｎｅｒｇｙ  Ｓｔａｒ対応デバイス（など）であれば、パワーマネジメントモジュール２０２は、デバイスがエネルギーの制限されている電源１２０を節約するかのように動作することに注意されたい。ユーザは、電力設定２１０を通じてコンピューティングデバイス１００を強制的に常時起動モードにすることができる。
【００３３】
コンピューティングデバイス１００がエネルギーの制限されている電源の電力を使用している場合、パワーマネジメントモジュール２０２は、コンピューティングデバイス１００がアクセスポイントに関連付けられているかどうか判定する（ステップ４０４）。パワーマネジメントモジュール２０２は、コンピューティングデバイス１００がアクセスポイントに関連付けられている場合にパワーセーブモードのうちの１つ（つまり、Ｍａｘ  ＰＳＰまたはＦａｓｔ  ＰＳＰ）でネットワークインターフェースモジュール２０１を動作させる（ステップ４０６）。コンピューティングデバイス１００が関連付けられていない場合、パワーマネジメントモジュール２０２は、コンピューティングデバイス１００が走査モードに入っているかどうか判定する（ステップ４０８）。走査エンジン２０４は、この情報をパワーマネジメントモジュール２０２に送る。パワーマネジメントモジュール２０２は、コンピューティングデバイス１００が走査中であれば常時起動モードでネットワークインターフェースモジュール２０１を動作させる（ステップ４１０）。コンピューティングデバイス１００が走査モードでなければ、パワーマネジメントモジュール２０２は、ネットワークインターフェースモジュール２０１をドーズモードにする（ステップ４１２）。
【００３４】
パワーセーブモードのうちの１つに入っている場合、パワーマネジメントモジュール２０２は、モジュール２０４〜２１６から情報を受け取り、その情報を使用してネットワークインターフェースモジュール２０１の電力レベルを設定する。パケットアナライザ２１２のパケットアナライザ設定は、走査エンジン２０４の走査設定またはＡＰＩ２１６から受け取ったアプリケーション設定に優先する。パケットアナライザはサポートされているデータ転送速度に適した電力レベルを判定し、カードがそのデータ転送速度を達成するためにフル電力を必要としない場合に、電力は節約されるということが根拠となっている。例外は、走査エンジン２０４もアプリケーションも大電力を要求せず、そのうちの一方が低電力を要求する場合であるが、その場合、ネットワークインターフェースモジュール２０１は、高電力状態にするクライアント側要件がないため低電力状態のままにできる。コンポーネントがどれも、パワーマネジメントモジュール２０２への入力を提供しない場合、電力設定は既存の状態のままである。
【００３５】
送信するデータがある場合、ネットワークインターフェースモジュール２０２は、アプリケーションからデータを送信するために連続的に起動モードに設定される。パケットアナライザ２１２は、最後の送信からトラフィックを戻るまでに要する予想ランドトリップ時間を決定する。この時間は、遅延スリープ時間と呼ばれ、コンピューティングデバイス１００により送信される各パケットに関連付けられている。パケットが送信されると、パワーマネジメントモジュール２０２は、タイマーを遅延スリープ時間に設定する。タイマーがタイムアウトになった後、トラフィックが受信されなかった場合、ネットワークインターフェースモジュール２０２は、ドーズ状態に設定され、節電が行われる。送信するトラフィックがさらにあれば、タイマーがリセットされる。遅延スリープ時間は、ランドトリップ時間に基づいているため、動的である。ネットワークインターフェースモジュールが複数のセッションからパケットを送信している可能性がある。異なるセッションによるパケット伝送では、ランドトリップ伝送（ＲＴＴ）遅延が異なる。遅延スリープ時間は、すべてのセッションからのパケット伝送に対するＲＴＴの最大に基づく動的な値である。例えば、あるセッションのパケット送信中のＲＴＴは１０ミリ秒未満であるが、他のセッションではＲＴＴは５０ミリ秒の場合があり、この場合、遅延スリープ時間は２つのケースの間の最大（例えば、５０ミリ秒）に基づく。さらに、あるセッションのＲＴＴは、パケットが複数の場所に送信される状況では異なることがある。例えば、米国から日本へ向けての伝送は、米国から米国国内の他の場所への伝送に比べて遅延スリープ時間が長くなる。ランドトリップ時間はビーコン間隔よりも長い場合、パワーマネジメントモジュールは、リターンパケットが喪失する危険性、ランドトリップ時間などの要素に基づいて、ネットワークインターフェースモジュールが、ビーコン間隔よりも長い間ドーズ状態にとどまることが可能か判定する。ネットワークインターフェースモジュールがビーコン間隔よりも長い間ドーズ状態にとどまることができないとパワーマネジメントモジュールが判断した場合、パワーマネジメントモジュールは、ネットワークインターフェースモジュールをパワーアップ状態に設定しビーコンを受信する。そうでない場合には、ネットワークインターフェースモジュールは、遅延スリープタイマーがタイムアウトになるまでドーズ状態にとどまる。
【００３６】
遅延スリープ時間を使用すると、受信側が遅延スリープ時間以内に応答を送信すれば、アプリケーションは、与えられた次のビーコン間隔またはビーコン受信間隔を待たずに応答を受け取ることができるため、パワーセーブモードで動作しているデバイスのネットワークスループットが向上する。さらに、アクセスポイントは、応答をバッファしなくて済むため、資源の節約にもなる。この動作モードを充足するアプリケーションは、ＡＰＩ２１６を呼び出す必要がなく、選択した電力設定への影響はない。
【００３７】
特に速い応答を必要とするアプリケーションでは、ＡＰＩ２１６を使用し、それに応じてパケットにタグを付ける。パワーマネジメントモジュール２０２は、ネットワークインターフェースモジュール２０１の電力消費量を下げる際にそれほど積極的ではなく、アプリケーションがＡＰＩ２１６を呼び出しているときには、リターントラフィックのための十分な時間をとる。例えば、ネットワークインターフェースモジュール２０１を、数ビーコン間隔の間、常時起動モードに置くことができ、および／または遅延スリープ時間を長くすることができる。本発明は、アプリケーションが継続的にパケットをタグ付けしてエネルギーの制限されている電源１２０を意図的に低下させることから、タイマー機能を用いてコンピューティングデバイス１００を保護する。アプリケーションがＡＰＩ２１６を呼び出す場合、パワーマネジメントモジュール２０２はタイマーを起動する。アプリケーション（または他の何れかのアプリケーション）がさらにパケットを送信しなくなった場合、トラフィックのランドトリップ時間の複数分の時間が経過した後にタイマーのタイムアウトが発生し、パワーマネジメントモジュール２０２はネットワークインターフェースモジュール２０１をドーズ状態に設定することができる。
【００３８】
パワーマネジメントモジュール２０２は、オブジェクト識別子（例えば、ＯＩＤ）を使用してネットワークインターフェースモジュールと通信する。ＯＩＤは、ネットワークインターフェースモジュール２０１の電力状態を設定または問い合わせ、ならびに送信されたトラフィックの遅延スリープ時間を設定またはその遅延スリープ時間を問い合わせる。電力状態ＯＩＤは、ＯＩＤ＿８０２＿１１＿Ｐｏｗｅｒ＿Ｓｔａｔｅであり、遅延スリープＯＩＤは、ＯＩＤ＿８０２＿１１＿Ｄｅｌａｙｅｄ＿Ｓｌｅｅｐである。ＯＩＤ＿８０２＿１１＿Ｐｏｗｅｒ＿Ｓｔａｔｅのパラメータは、ネットワークインターフェースモジュールをオン状態に切り換える設定、ネットワークインターフェースモジュールをドーズ状態に切り換える設定、およびネットワークインターフェースモジュールをオフ状態に切り換える設定である。ＯＩＤ＿８０２＿１１＿Ｄｅｌａｙｅｄ＿Ｓｌｅｅｐのパラメータは、ミリ秒単位の遅延スリープ設定である。
【００３９】
これで動作全体の説明が終わったので、パワーマネジメントモジュール２０２内のモジュールについて説明する。図５を参照すると、パワーマネジメントモジュール２０２はパワーマネジメントバックエンド５００、システム状態モジュール５０２、およびインターフェースリストモジュール５０４を備えている。パワーマネジメントバックエンド５００は、ステートマシンを使用して、コンピューティングデバイス１００の現在状態に基づきネットワークインターフェースモジュール２０１の電力状態を管理する。状態情報は、システム状態モジュール５０２からのグローバルシステム状態情報とインターフェースリストモジュール５０４からのインターフェース別状態情報を含む。グローバルシステム状態情報は、コンピューティングデバイス１００の動作に、エネルギーが制限されている電源１２０を使用しているか、またはＡＣ電源を使用しているかが含まれる。インターフェース別状態情報には、コンピューティングデバイス１００がインターフェース上で関連付けされているかどうか、走査が要求されているかどうか、およびプラグ・アンド・プレイイベントであるかどうかが含まれる。電力設定２１０は、パワーマネジメントバックエンド５００の入力でもある。
【００４０】
ステートマシンが図６に示されている。パワーマネジメントモジュール２０１は、いくつかの条件についてネットワークインターフェースモジュール２０１をオン状態６００からドーズ状態６０２に設定する。これらの条件には、最後にパケットが送信された以降に遅延スリープタイマーがタイムアウトになったときという条件が含まれる（線６０４）。遅延スリープ時間がビーコン間隔よりも長い場合、ネットワークインターフェースモジュール２０１は、ドーズ状態６０２に設定される。他の条件としては、走査が完了したとき（線６０６）、ネットワークインターフェースモジュール２０１が起動してビーコンを受信してコンピューティングデバイス１００への送信を待っているトラフィックがないとき（線６０８）、およびコンピューティングデバイス１００が電線からエネルギーが制限されている電源１２０に切り換わって流れているトラフィックがないとき（線６１０）というのがある。
【００４１】
パワーマネジメントモジュール２０１は、いくつかの条件によってネットワークインターフェースモジュール２０１をドーズ状態６０２からオン状態６００に設定する。条件には、送信すべきパケットがコンピューティングデバイス１００にあるとき（線６１２）、ネットワークインターフェースモジュール２０１が使用可能なネットワークの走査を行う必要があるとき（線６１４）、ネットワークインターフェースモジュール２０１を起動してビーコンを受信する必要があるとき（線６１６）、およびコンピューティングデバイス１００がエネルギーの制限されている電源１２０からＡＣに切り換わるとき（線６１８）がある。コンピューティングデバイス１００がＥｎｅｒｇｙ  Ｓｔａｒ対応デバイスなどである場合、ネットワークインターフェースモジュール２０１は、コンピューティングデバイス１００がエネルギーの制限されている電源１２０からＡＣ電源に切り換わるときもドーズ状態のままである。パワーマネジメントモジュール２０１は、アイドルタイマーがタイムアウトになった場合に、ネットワークインターフェースモジュール２０１をドーズ状態６０２からオフ状態６２０に設定する（線６２２）。パワーマネジメントモジュール２０１は、送信すべきパケットがコンピューティングデバイス１００にあり、ネットワークインターフェースモジュール２０１がオフ状態に入っていた場合、ネットワークインターフェースモジュール２０１をオフ状態６２０からオン状態６００に設定する（線６２４）。
【００４２】
ネットワークインターフェースモジュール２０１が最大パワーセーブモードまたは高速パワーセーブモードで動作しているときの代表的な動作シナリオを図７に示す。コンピューティングデバイス１００がパケットを送受信していないときに、遅延スリープ時間が経過した後ドーズ状態に入る。ドーズ状態に入る前に、パケットがアクセスポイント２３１に送信され、コンピューティングデバイス１００内のネットワークインターフェースモジュール２０１がドーズ状態に入ることを通知する（線７００）。アクセスポイント２３１は、ネットワークインターフェースモジュール２０１がドーズ状態に入っている間、コンピューティングデバイス１００宛のパケット（線７０２で表されている）をバッファする。アクセスポイント２３１は、定期的にビーコンを送信する。すでに述べたように、ビーコンは、パワーセーブモードを使用しているデバイスの何れが、アクセスポイントのバッファ内にそのデバイス宛のデータフレームを待機させているかを示すＴＭＩを含む。ネットワークインターフェースモジュール２０１が高速パワーセーブモードで動作している場合はビーコン間隔が経過した後（または、最大パワーセーブモードの場合は、ビーコン受信間隔が経過した後）に、ネットワークインターフェースモジュール２０１はビーコンを受信するためにオン状態に設定され、ビーコンパケットを受信し（線７０４）、コンピューティングデバイス１００宛の少なくとも１つのパケットがアクセスポイント２３１でバッファされているかどうかについてＴＩＭを介して知る。
【００４３】
コンピューティングデバイス１００宛のパケットがバッファされていることをＴＩＭが示す場合には、ネットワークインターフェースモジュール２０１は、起動していることを示すメッセージをアクセスポイントに送信する（線７０６）。メッセージを受信した後、アクセスポイント２３１は、バッファリングしたパケットをコンピューティングデバイス１００に送信する（線７０８）。バッファ内にまだパケットが残っている場合、アクセスポイント２３１は送信される第１のパケット内に指示を添えて、すべてのパケットを送信する。送信される最後のパケットに、コンピューティングデバイス１００に関してアクセスポイントのバッファ内にデータはもう残っていないことの指示が含まれる。すべてのパケットを受信した後、パケットがアクセスポイント２３１に送信され、ネットワークインターフェースモジュール２０１がドーズ状態に入っていることを示す（線７１０）。ネットワークインターフェースモジュール２０１は、送信すべき保留パケットがない場合にのみ再びドーズ状態に入る。送信するパケットがある場合、ネットワークインターフェースモジュール２０１はまず、すべての保留パケットを送信し、送信キューが尽きた後にはじめてドーズ状態に入るという通知をアクセスポイントに送信する。これは、ドーズ状態の間に、ネットワークインターフェースモジュール２０１がアクセスポイントまたはピアに送信するパケットをキューイングしていた場合について対処する。この処理は、コンピューティングデバイス１００がアクセスポイント２３１に関連付けられている限り繰り返される。パケットを送信する場合、ネットワークインターフェースモジュール２０１は、パケットの宛先へルーティングするためにパケットをアクセスポイント２３１へ送信し、遅延スリープ時間のタイムアウトになるのを待つ。遅延スリープ時間が経過した後、ネットワークインターフェースモジュール２０１は、モジュール２０１がドーズ状態に入るというメッセージをアクセスポイント２３１へ送信し、その後モジュール２０１はドーズ状態に入る。
【００４４】
すべての種類のネットワーク媒体は、パワーマネジメント機能を実装しているか、または実装を要求されるかもしれない。図８を参照すると、本発明のパワーマネジメントメカニズムの他の実施形態が動作環境８００内に示されている。この実施形態では、パワーマネジメントモジュール８０２は、パワーマネジメントモジュール８０２に入力を供給し、特定のネットワークに特化されていないコンポーネントから、コマンドを受け取る。説明のため、これらのコンポーネントを電力設定コンポーネントと呼ぶことにする。パワーマネジメントモジュール８０２は、そのコマンドを変換し、電力設定をネットワークアダプタ／インターフェースへ供給する。これにより、電源インジケータ、アプリケーションプログラミングインターフェース、ユーザ電力設定などの電力設定コンポーネントは、特定のネットワークアダプタに対する要求条件を指定することなく、パワーマネジメント変換装置（ｐｏｗｅｒ  ｍａｎａｇｅｍｅｎｔ  ｔｒａｎｓｌａｔｏｒ）８０２にパワーマネジメント要求条件を指定することができる。また各電力設定コンポーネントは、適用可能な場合に、その設定を提供するデバイスを指定することもできる。走査エンジン２０４、パケットアナライザ２１２、および統計アナライザ２１４などの、ネットワークに特有のコンポーネントは、８０２．１１ＷＬＡＮのパワーマネジメントモジュール２０２のようなネットワーク特有のパワーマネジメント内に置かれる。ＧＰＲＳ（General Packet Radio Service）に特有のコンポーネントは、ＷＷＡＮパワーマネジメントモジュール８１４内にあり、ＧＰＲＳネットワークインターフェースモジュール８１６内の電力レベルを制御する。同様にして、ＬＡＮに特有のコンポーネントは、Ｅｔｈｅｒｎｅｔ（登録商標）パワーマネジメントモジュール８１８内にあり、ＬＡＮアダプタ８２０の電力レベルを制御する。
【００４５】
コンピューティングデバイス１００または他のモジュール（図に示されていない）のオペレーティングシステムは、エネルギーが制限されている電源１２０またはＡＣ電源から電力の供給を受けるかどうか判定する。これは、電源インジケータ８０４を使用して、コンピューティングデバイス１００がＡＣ電源から電力を供給されているか、またはエネルギーが制限されている電源から電力を供給されているかをパワーマネジメント変換装置８０２に通信する。アプリケーションではＡＰＩ８０６を使用して、データを小または高電力状態で送信しなければならないことを要求する。アプリケーションに選択がない場合、アプリケーションはＡＰＩ８０６を呼び出さない。ユーザは、ユーザ電力設定８０８を通じて使用したい電力設定を指定することができる。これらの電力設定は、高、中、低、またはパワーマネジメント機能なしである。これらの電力設定は、さらに多くの電力設定を備えるインターフェースモジュールの追加設定に拡張することができる。一実施形態では、コンピューティングデバイス１００がＡＣ電源から電力を供給されている場合、ユーザ設定は無視される。さらに、リアルタイムアプリケーションが呼び出されて動作していて、ユーザが高パワーマネジメントを指定している場合には、パワーマネジメント変換装置８０２は、一時的に、ユーザ設定を変更（override）する。
【００４６】
基本電力設定８１０は、熱条件を超えた場合、またはユーザがグローバル電力設定を指定している場合に、ネットワークインターフェースモジュールをシャットダウンするようにパワーマネジメントモジュールに指令するのに使用される。ローミングコンポーネント８１２も、パワーマネジメントに影響を及ぼす。８０２．１１ネットワークインターフェースモジュール２０１がアクティブなネットワーク接続である場合、パワーマネジメント変換装置８０２では、他のパワーマネジメントモジュール８１４、８１８、８２２に、ネットワークインターフェースモジュールの電源をオフにすべきことを明示する。２つのネットワークインターフェースモジュールは同時にアクティブになった場合（例えば、ＬＡＮおよびＷＬＡＮ）、パワーマネジメント変換装置８０２は、その両方に対して関連する電力設定を特定し、他のネットワークインターフェースモジュールをオフにしなければならないことを明示する。それぞれのパワーマネジメントコンポーネントは、パワーマネジメント変換装置８０２によって与えられた電力レベル設定を使用して、パワーマネジメントモジュールが制御している特定のネットワークインターフェースモジュールに必要なパワーマネジメントのレベルを決定する。
【００４７】
パワーマネジメント変換装置８０２は、システム状態モジュールおよびインターフェースモジュールを備える。システム状態モジュールは、電源インジケータ８０４、ＡＰＩ８０６、ユーザ電力設定８０８、基本電力設定８１０、およびローミングコンポーネント８１２と通信を行う。インターフェースモジュールは、上述のように、パワーマネジメントモジュール２０２、８１４、８１８、８２２と通信し、電源インジケータ８０４、ＡＰＩ８０６、ユーザ電力設定８０８、基本電力設定８１０、およびローミングコンポーネント８１２からの入力に基づいて、使用したい電力設定をパワーマネジメントモジュール２０２、８１４、８１８、８２２に対し提供する。８０２．１１パワーマネジメントモジュール８０２を例とすると、パワーマネジメント変換装置８０２は、８０２．１１パワーマネジメントモジュール２０２にＨ／Ｍ／Ｌ／Ｉｄｌｅ／Ｏｆｆ（高電力設定、中電力設定、低電力設定、パワーマネジメント機能なし、あるいはオフ）の設定を送信する。８０２．１１パワーマネジメントモジュール２０２は、この設定を、ネットワークインターフェースモジュール２０２の正しい電力状態（オン／ドーズ／オフ）に変換し、８０２．１１ネットワークインターフェースモジュール２０１に特有の動作パラメータに基づきネットワークインターフェースモジュールを制御する。例えば、低電力設定がパワーマネジメント変換装置からパワーマネジメントモジュール２０２に対して指定されている場合、パワーマネジメントモジュール２０２は、前述のビーコン受信間隔の間ネットワークインターフェースモジュールをドーズ状態に設定する（例えば、走査が実行されていない、遅延スリープタイマーがタイムアウトになったなど）。同様に、パワーマネジメント変換装置８０２が中電力設定をパワーマネジメントモジュール２０２に供給した場合、パワーマネジメントモジュール２０２は、上述のように、ネットワークインターフェースモジュールを、ビーコン間隔の間ドーズ状態に設定する。
【００４８】
他の種類の媒体のパワーマネジメントモジュールは、パワーマネジメント変換装置８０２によって供給される電力設定を使用して、それらのネットワークインターフェースモジュールの適切なパワーマネジメント設定を行う。例えば、無線ＷＡＮでサポートしている電力設定は３つよりも多い場合も少ない場合もあり、したがって、ＷＷＡＮパワーマネジメントモジュール８１４は、パワーマネジメント変換装置８０２によって提供された電力設定を使用して、ＧＰＲＳネットワークインターフェースモジュール８１６の正しいパワーマネジメント設定を決定する。例えば、ＧＰＲＳネットワーク内のデバイスの電力設定は、設定されていない（idle）か、または完全に電力供給されている。デバイスが通話（call）トラフィックを送信または受信している場合には、デバイスは完全に電力を供給される。デバイスが通話中でないか、または通話中であっても送受信を行っていない場合、デバイスは低電力設定になる。
【００４９】
パワーマネジメント変換装置８０２は、新しい種類の媒体を継ぎ目なく追加する能力を提供する。新しい種類の媒体をパワーマネジメント変換装置８０２に登録するには、ＡＰＩを呼び出して、グローバルに一意な識別子（ＧＵＩＤ：Global Unique Identifier）とわかりやすい名前を指定する。パワーマネジメント変換装置８０２はこれらを使用して、一般的な設定をその種類の媒体のネットワークインターフェースモジュールのパワーマネジメントモジュール８２２に与える。パワーマネジメント変換装置８０２は、特定のパワーマネジメントモジュール８２２の機能の知識を有している必要はない。同様に、個々のパワーマネジメントモジュール８２２は、これらが単一の設定に変換されるため、上位層のコンポーネント８０４から８１２の電力管理要件を認識している必要はない。
【００５０】
コンピューティングデバイスのネットワークインターフェースモジュールの消費電力を最適化することによる電力を節約する方法が、開示されたことがわかる。８０２．１１無線ネットワークで使用されている時間間隔のことばで本発明の方法を説明したが、この方法は、ビーコン間隔などを用いるＢｌｕｅｔｏｏｔｈ、ＧＰＲＳ、Ｈｉｐｅｒｌａｎ、および別の種類の無線ＬＡＮネットワークを含む無線ネットワーク、およびＥｔｈｅｒｎｅｔ（登録商標）ＬＡＮのようなネットワークに利用することができる。
【００５１】
本発明の原理を適用し得る多くの実施形態に鑑みて、図面に関して本明細書で説明した実施形態は説明のみを目的としており、本発明の範囲を制限するものとしてみなすべきではないことは理解されるべきである。例えば、パワーマネジメントモジュールは、無線ネットワークインターフェースモジュールにオフ機能があればそのモジュール内の送信機をオフにすることもできる。この場合、ネットワークインターフェースモジュール（またはパワーマネジメントモジュール）は、受信経路の給電をオンのままにし、その一方で送信経路を低電力状態にしておくという設定を選択することができる。このメカニズムは、ネットワークインターフェースモジュールが受動的な走査を実行する間に使用することができる。すなわち、（ＩＥＥＥ  ８０２．１１などに基づいて）プローブ要求を能動的に送信せず、むしろネットワークインターフェースモジュールの範囲内にあるノードからビーコンおよびブロードキャストプローブ応答を受信することにより、周囲のネットワークに関する情報を受動的に収集する場合に自動的走査を実行している間に使用することが可能である。当業者であれば、説明した実施形態のソフトウェアの要素は、ハードウェアで実装することができ、その逆も可能であること、あるいは説明した実施形態は、本発明の要旨から逸脱することなくその配置および詳細を修正することができることを理解するであろう。したがって、本明細書で説明した発明は、特許請求の範囲およびそれと均等の範囲内に属するすべての実施形態を対象としている。
【図面の簡単な説明】
【００５２】
【図１】本発明の一実施形態を実装することができる例示的コンピュータデバイスのアーキテクチャの概要を説明するブロック図である。
【図２】本発明の節電メカニズムの一実施形態を実装するコンピューティングデバイスの例示的動作環境を説明する概略図である。
【図３】ビーコン受信間隔がビーコン間隔にどのように関係しているかを説明している図である。
【図４】本発明の技術にしたがってネットワークインターフェースモジュールがどのような電力モードの動作に設定されるかを決定するステップを示すフローチャートである。
【図５】本発明のパワーマネジメントモジュールを説明するブロック図である。
【図６】本発明で使用されるステートマシンの図である。
【図７】本発明の技術による無線ネットワーク内におけるネットワークインターフェースモジュールの典型的な動作を説明する図である。
【図８】本発明のパワーマネジメントモジュールの他の実施形態を説明する図である。
【符号の説明】
【００５３】
１００  コンピューティングデバイス
１０２  処理ユニット
１０４  メモリ
１０８  取り外し可能記憶装置
１１０  取り外し不可能記憶装置
１１２  通信接続
１１４  入力デバイス
１１６  出力デバイス
１２０  電源
１２２  送信機
１２６  受信機
２０１  ネットワークインターフェースモジュール
２０２  パワーマネジメントモジュール
２０３  ネットワークドライバ
２０４  走査エンジン
２０６  アンテナ
２０８  電源インジケータ
２１０  電力設定
２１２  パケットアナライザ
２１４  統計アナライザ
２１６  ＡＰＩ
２２０  ピアツーピアネットワーク
２２１、２２２、および２２３  コンピューティングデバイス
２３０  分散ネットワーク
２３１  アクセスポイント
３００、３０２、３０４、３０６、３０８  ビーコン間隔
３１０  ビーコン受信間隔
５００  パワーマネジメントバックエンド
５０２  システム状態モジュール
５０４  インターフェースリストモジュール
６００  オン状態
６０２  ドーズ状態
８００  動作環境
８０２  パワーマネジメント変換装置
８０４  電源インジケータ
８０６  ＡＰＩ
８０８  ユーザ電力設定
８１０  基本電力設定
８１２  ローミングコンポーネント
２０２、８１４、８１８、８２２  パワーマネジメントモジュール
【図１】
2004234667.tif 000003
【図２】
2004234667.tif 000004
【図３】
2004234667.tif 000005
【図４】
2004234667.tif 000006
【図５】
2004234667.tif 000007
【図６】
2004234667.tif 000008
【図７】
2004234667.tif 000009
【図８】
2004234667.tif 000010