(57)【特許請求の範囲】
【請求項１】
着信したパケットの配送を遅延させるためのコンピューティング装置であって、
プロセッサと、
プログラムを記憶するメモリと、
を有し、
前記プログラムは、
ネットワークを介しリモート・コンピューティング装置からパケットを受信し、
前記リモート・コンピューティング装置から前記パケットを前記受信したことに応じて、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作を開始し、
前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作の実行期間中に、基準となる時間において前記パケットの配送を遅延させ、前記基準となる時間は、前記リモート・コンピューティング装置の送信タイムアウト未満の時間量を含み、
前記基準となる時間の経過後に前記パケットをリリースする、
ことを前記プロセッサに実行させるコンピューティング装置。
【請求項２】
前記基準となる時間は、前記リモート・コンピューティング装置の送信タイムアウト時間よりも短い時間を具備する、請求項１に記載されたコンピューティング装置。
【請求項３】
前記プログラムは更に、前記パケットが、基準となるタイプ、基準となる宛先ポート、または基準となるパターンの一つに一致するか否かを判定するために、前記リモート・コンピューティング装置から前記受信したパケットに対して一つ以上のフィルターを適用することを前記プロセッサにさらに実行させ、
前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作を開始することは、前記パケットが、基準となるタイプ、基準となる宛先ポート、または基準となるパターンの一つに一致するという判定に基づき、前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作を開始することを含む、請求項１に記載されたコンピューティング装置。
【請求項４】
ネットワークを介しリモート・コンピューティング装置からパケットを受信し、
前記リモート・コンピューティング装置から前記パケットを前記受信したことに応じて、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作を開始し、
前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作の実行期間中に、基準となる時間において前記パケットの配送を遅延させ、前記基準となる時間は、前記リモート・コンピューティング装置の送信タイムアウト未満の時間量を含み、
前記基準となる時間の経過後に前記パケットをリリースする、
ことをプロセッサに実行させるためのプログラム。
【請求項５】
前記基準となる時間は、前記リモート・コンピューティング装置の送信タイムアウト時間よりも短い時間を具備する、請求項４に記載されたプログラム。
【請求項６】
前記パケットが、基準となるタイプ、基準となる宛先ポート、または基準となるパターンの一つに一致するか否かを判定するために、前記リモート・コンピューティング装置から前記受信したパケットに対して一つ以上のフィルターを適用することを前記プロセッサにさらに実行させ、
前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作を開始することは、前記パケットが、基準となるタイプ、基準となる宛先ポート、または基準となるパターンの一つに一致するという判定に基づき、前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作を開始することを含む、請求項４に記載されたプログラム。
【請求項７】
前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作を開始することは、前記コンピューティング装置の１つ以上のコンポーネントが前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行する動作を、前記コンピューティング装置の他のコンポーネントが前記低電力レベルで電力管理された状態から前記通常動作レベルで電力管理された状態へと移行することを開始する前に開始することを含む、請求項１に記載されたコンピューティング装置。
【請求項８】
請求項４乃至６の何れか一項に記載されたプログラムを記憶するコンピュータ可読記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
機能拡張されたユーザ体験を提供するために、現代のコンピューティング装置はネットワークに基づいたコンテンツ情報およびサービス機能にますます依存するようになってきた。
その結果、ネットワーク上で受信された要求に答えるために、ネットワークに基づいたコンテンツ情報およびサービス機能を提供する、ホスト側コンピューティング装置が利用可能となる必要がある。上記のような利用可能性を提供するために、ホスト側コンピューティング装置は時として、常時オン状態でありかつ常に接続状態となっているような動作態様で動作するように構成される。
しかしながら、エネルギー価格の上昇とますます多くの「環境保護推進活動」の盛り上がりに起因して、多くのネットワークに基づいたコンテンツ情報およびサービス機能の提供元（プロバイダー）は、典型的には、ホスト側コンピューティング装置内に省エネルギーでかつ電力管理された多種多様な状態（例えば、低出力のスリープ状態やハイバネート（休眠）状態など）を組み込む工夫を利用している。
【０００２】
ネットワークに基づいたコンテンツ情報およびサービス機能の利用可能性を増すために、上述したプロバイダは、一つ以上の具体的に識別されたパケットを受信した際にリモート制御によりウェイクアップ状態となるホスト側コンピューティング装置を構成することが可能であり、そのような受信パケットは、本明細書中の以下の記述において、ウェイクアップ・パケットと呼ばれ、要求元の装置からネットワークを介して受信される。典型的には、要求下の装置は、ネットワーク接続を開始するためにパケットを送信した直後に、ホスト側コンピューティング装置との間において信頼できるネットワーク接続から形成されることを期待する。残念ながら、ウェイクアップ動作を引き起こす最初のパケットを受信した後に動作状態に達するまでの間に、ホスト側コンピューティング装置を構成する一つ以上のコンポーネントのためにしばしば相当の長さの時間がかかるかかる場合がある。これは、相互に依存しあう数多くのコンポーネントから構成される複雑なホスト側コンピューティング装置において特にそうである。その結果、最初のパケットはしばしば失われ、典型的には、要求元のコンピューティング装置は送信時間間隔を増加させながらパケットを繰り返し再送信することが必要となり、それにより、ネットワーク接続を確立するために必要とされる所要時間が増加する。
【０００３】
本明細書中に記述された発明は、添付図面中において本発明の技術的範囲を制限する趣旨ではなく、本発明に係る実施例を単に例示する趣旨で説明される。本発明の例示的説明を簡単かつ明瞭にするために、添付図面中で説明される構成要素は、必ずしも実物の寸法に合うように図示されているとは限らない。例えば、図中において幾つかかの構成要素の寸法は明瞭さのためのその他の構成要素と比較して誇張された寸法で描かれている場合がある。さらに適切であると考えられる場合には、対応する構成要素または類似する構成要素を示すために、同様の参照ラベルが図中において反復的に使用される。
【図面の簡単な説明】
【０００４】
【図１】コンピューティング装置に対するネットワーク駆動されたウェイクアップ操作の実行期間中において着信パケットを遅延させるためのシステムの少なくとも一つの実施例を図示する単純化されたブロック図。
【図２】図１に示したシステムにおけるホスト側コンピューティング装置の動作環境の少なくとも一つの実施例を図示する単純化されたブロック図。
【図３】ネットワーク駆動されたウェイクアップ操作の実行期間中において図１および図２に示すホスト側コンピューティング装置によって実行可能な方法であって、着信パケットを遅延させ、リリースする方法の少なくとも一つの実施例を示す単純化されたフローチャート。
【図４】着信パケットを遅延させ、リリースするための図３に示した方法の少なくとも一つの実施例を示す単純化された処理動作フローチャート。
【図５】ネットワーク駆動されたウェイクアップ操作の実行期間中において、図１および図２に図示したホスト側コンピューティング装置によって実行可能なパケット遅延の挿入のために、着信パケットをバッファリングし、注入する又はリプレイするための方法の少なくとも一つの実施例を示す単純化されたフローチャート。
【図６】着信パケットをバッファリングし、注入する又はリプレイするための方法の少なくとも一つの実施例を示す単純化された活動フローチャート。
【図７】図１に示すシステムによって着信パケットの遅延させる動作を実行可能にしたり実行不可能にしたりするための方法の少なくとも一つの実施例を示す単純化されたフローチャート。
【発明を実施するための形態】
【０００５】
本明細書中で開示された発明概念は、様々な変形実施態様および代替的実施形式により修正された形で実施可能である一方で、、特定の例示的実施例は、添付図面中において具体的実施形態として図示されており、本明細書中の以下の記述において詳細に説明される。しかしながら、本明細書中に開示された発明概念を、本明細書中に開示された特定の実施形式に制限することは意図されていない反面、本明細書中の開示内容および本明細書に添付された請求項と一致する修正実施形態、均等物および選択的実施形態を全て技術的範囲内に包含するカバーすることを意図していることが理解されよう。
【０００６】
本明細書中の以下の記述においては、ロジック実装、オペコード、オペランド指定手段、リソースの分割／共有／複製の実装、タイプおよびシステム・コンポーネント同士の間における相互関係およびロジックの分割／統合／選択などのような多数の具体的詳細内容は、本明細書中の開示内容についてのより完全な理解を提供するために後述される。本明細書中で開示された実施例はそのような特定の詳細内容なしで実施することが可能であることは、当該技術分野における当業者であれば理解可能であろう。その他の実例においては、本発明の説明を不明瞭にしないようにするために、制御構造、ゲート・レベル回路および完全なソフトウェア命令シーケンスの内容は詳細には図示されていない。本明細書の開示内容に接した当業者であれば、格別の試行錯誤や創意工夫なしに本発明に係る適切な機能性を実装することが可能であろう。
【０００７】
本明細中における「一つの実施例」、「一実施例」、「例示的な実施例」などの表記は、本明細書に記述された実施例が特定の特徴、構造あるいは特性を含むことが可能であるが、必ずしも全ての実施例がそのような特定の特徴、構造あるいは特性を含んでいるとは限らないことを表す。さらに、そのような言い回しは必ずしも同じ実施例を指して言っているとは限らない。さらに特定の特徴、構造あるいは特性がある実施例に関して記述される場合、本明細書中において明示的に記述されているか否かに関わらず、その他の実施例に関して、そのような特徴、構造あるいは特性を実現することは、当業者が有する通常の知識の範囲内にあることが了解される。
【０００８】
本発明に係る実施例はハードウェア、ファームウェア、ソフトウェアあるいはそれらの任意の組み合わせとして実装されることが可能である。コンピュータ・システム中において実装される本発明の実施例は、バス・アーキテクチャに基づいた一つ以上のコンポーネント間相互接続および／またはポイント・ツー・ポイント型の一つ以上のコンポーネント間相互接続を含むことが可能である。本発明に係る実施例はさらに、命令コードとして実装されることが可能であり、当該命令コードは、一時的または非一時的な機械可読媒体の上に記録され、１台以上のプロセッサーによって読み込まれ実行されることが可能である。機械（例えばコンピューティング装置）によって判読可能な形式で情報を格納し、送信するために、機械可読媒体は任意の装置、メカニズムあるいは物理的な構造として具体化されることが可能である。例えば、機械可読媒体は読み出し専用メモリ（ROM）、ランダム・アクセス・メモリー（RAM）、磁気ディスク記憶装置メディア、光学記憶装置メディア、フラッシュ・メモリー・デバイス、ミニＳＤカードやマイクロＳＤカード、メモリー・スティック、電気的信号およびその他のものとして具体化されることが可能である。
【０００９】
添付図面中において、例えば、装置、モジュール、命令ブロックおよびデータ要素等を表す特定のシステム構成や図式的構成要素の特定の表示順序は、本明細書中での説明の便宜上のために図示されることが可能である。しかしながら、図面中における特定の表示順序あるいは図式的構成要素の配置は、一連の処理動作のシーケンスに関する特定の実行順序あるいは実行プロセスの分離が必要であることを意味する趣旨ではない点が当業者によって理解されるべきである。さらに、添付図面中において図式的構成要素が含まれていることは、そのような構成要素が全ての実施例中で必須とされるとか、そのような構成要素によって表わされる特徴が含まれ得ないとか、そのような構成要素を幾つかの実施例中の他の構成要素と組み合わせることが出来ないなどということを意味する趣旨ではない。
【００１０】
一般に、命令ブロックを表すために使用される図式的構成要素は、機械可読な命令コードの適切な任意の形式（例えば、ソフトウェアまたはファームウェアのアプリケーション、プログラム、関数、モジュール、ルーチン、プロセス、プロシージャ、プラグ・イン、アプレット、ウィジェット、コード・フラグメントなど）を使用して実装することが可能であり、そのような命令コードの各々は、適切な任意のプログラミング言語、ライブラリ、ＡＰＩ（アプリケーション・プログラミング・インターフェイス）および／またはその他のソフトウェア開発支援ツールを使用して実装されることが可能である。例えば、幾つかの実施例は、Java（登録商標）、Ｃ＋＋および／またはその他のプログラミング言語を使用して実装されることが可能である。同様に、データや情報を表わすために使用される図式的構成要素は、適切な任意の電子的構成や電子的構造（例えば、レジスタ回路、データ記憶部、テーブル、レコード、配列、インデックス、ハッシュ、マップ、木構造、リスト、グラフ、（任意のファイル・タイプの）ファイル、フォルダー、ディレクトリ、データベースなど）を使用して実装されることが可能である。
【００１１】
さらに図面中において、実線や点線あるいは矢印で表される箇所のように構成要素間を接続する箇所は、２つ以上のその他の図式的構成要素同士間における接続や関連性を図示するために使用され、そのような構成要素間の接続要素が全く図示されていない場合であっても、それは如何なる接続や関係性も存在し得ないことを意味する趣旨ではない。言いかえれば、構成要素間の接続や関係性の一部は、本明細書の開示内容を不明瞭にしないようにするために図面中で省略される場合もある。加えて、本発明の説明を簡単にするために、単一の接続要素が、構成要素間の並列的な接続や関係性を表わすためも使用されることがさらに可能である。例えば、接続要素が信号、データあるいは命令コードの通信を表わす図面中の箇所においては、そのような要素は、上記通信を達成するために必要に応じて設けられる一つ以上の信号伝搬経路（例えば、バス）を表すことが可能である点が当業者であれば理解できよう。
【００１２】
今、図１を参照すると、低電力状態のコンピューティング装置のネットワーク駆動されたウェイクアップ操作の実行期間中において着信パケットを遅延させるためのシステム100は、ホスト側コンピューティング装置102、リモート・コンピューティング装置130および通信網140を含んでいる。ホスト側コンピューティング装置102は、ネットワーク接続を開始しおよび／または維持する通信網140を介してリモート・コンピューティング装置130によって送信されたパケットを受信することが可能である。幾つかの実施例においては、受信されるパケットは、ホスト側コンピューティング装置102あるいはホスト側コンピューティング装置102を構成する一つ以上のコンポーネントを低電力状態から通常動作電力状態に移行させるためにウェイクアップ動作プロセスの開始を引き起こすことが可能である。そのような実施例においては、受信されるパケットは、ウェイクアップ指示パケットおよび接続を開始しおよび／または維持するパケットの両方を表わしている。ウェイクアップ動作プロセスの実行中において、ホスト側コンピューティング装置102は、ホスト側コンピューティング装置102が通常動作電力状態を完全に達成するまでの間、送信先となるコンポーネントへのパケットの配送を遅延させることが可能である。例えば、幾つかの実施例においては、ホスト側コンピューティング装置102は、ホスト側コンピューティング装置102又はホスト・コンピューティング装置102を構成する一つ以上のコンポーネントが、完全に通常動作電力状態を達成するまでの間、受信されるパケットを一つ以上のコンポーネント（例えば、ファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーションなど）へと配送することを遅延させることが可能である。ホスト側コンピューティング装置および／またはホスト側コンピューティング装置の一つ以上のコンポーネント（例えばファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーション、サービスなど）が通常動作電力状態に一旦到達したならば、ホスト側コンピューティング装置102は、後続の処理を行うために、遅延させられていたパケットをリリースし注入し、あるいはリプレイすることが可能である。このようにして、失われてしまった最初のパケットを再送信するためのリモート・コンピューティング装置130のネットワーク・スタック動作をホスト側コンピューティング装置102が待つ必要性をなくすことが可能となるので、ネットワーク接続に要する全体の所要時間を縮小させおよび／または最小化することが可能となる。その結果、接続エラーの発生を減少させることができ、ネットワーク駆動されたウェイクアップ操作の後に着信した接続の信頼度および／または安定性を改善することが可能となる。
【００１３】
以下においてより詳細に検討されるように、ホスト側コンピューティング装置102は、後続の処理のためにパケットをリリースするのに先立って、基準となる遅延時間にわたってパケットを保持しおよび／またはバッファリングすることが可能である。追加的に又は代替的に、幾つかの実施例においては、ホスト側コンピューティング装置102は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが通常動作電力状態に完全に到達した旨を通知されるまで、パケットをバッファリングおよび／または保存することが可能であるので、ホスト側コンピューティング装置102は、パケットをさらに処理するために利用可能となる。そのような通知を受信した際に、ホスト側コンピューティング装置102は、一つ以上の利用可能なコンポーネントによる後続の処理のためにパケットをリプレイしおよび／または注入することが可能である。幾つかの実施例においては、リモート・コンピューティング装置130から受信された最初のパケットは、ホスト側コンピューティング装置および／またはホスト側コンピューティング装置102を構成する一つ以上のコンポーネント（例えば、ファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーション、サービスなど）との間で新しいネットワーク接続を開始するおよび／または既存のネットワーク接続を維持するためのパケットを含むことが可能である点が理解されよう。しかしながら、受信されるパケットは、追加的に又は代替的に、一つ以上のコンポーネントを低電力状態から通常動作電力状態さもなければレディー状態へと移行させるために、ホスト側コンピューティング装置102上のウェイクアップ動作プロセスの実行を引き起こすことが可能である。
【００１４】
ホスト側コンピューティング装置102は、データを処理し、リモート装置と通信するための任意のタイプの計算装置として具現化されることが可能である。例えば、ホスト側コンピューティング装置102は、タブレット型コンピュータ／リーダ、ラップトップ、モバイル・インターネット装置（ＭＩＤ）、ハンドヘルド型コンピューター、スマートフォン、携帯情報端末、電子ブックリーダーあるいはデータを記憶し処理したり、データを通信し格納し維持したり、ネットワーク上で転送するしたりするためのその他のコンピューティング装置として具体化されることが可能である。図１に示した例示的実施例においては、ホスト側コンピューティング装置102は、プロセッサー104、Ｉ／Ｏサブシステム110、メモリ108、データ記憶部116、通信回路類114および一つ以上の周辺機器118を含んでいる。幾つかの実施例においては、上述したコンポーネントの幾つかのものは、ホスト側コンピューティング装置102のマザーボード上に組込まれることが可能である一方で、その他のコンポーネントは、例えば周辺機器接続ポートを経由してマザーボードに通信可能な態様で接続されることが可能である。更に、ホスト側コンピューティング装置102は、その他のコンポーネント、サブ・コンポーネントおよびコンピューティング装置で一般的に見られる装デバイス類を含むことが可能であるが、それらは、本発明の説明の明瞭さのために図１では省略されている点が理解されよう。
【００１５】
ホスト側コンピューティング装置102またはホスト側コンピューティング装置102を構成する一つ以上のコンポーネントは、数多くの異なる電力管理された状態において作動することが可能である。例えば、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントは、スリープ状態（例えば低電力状態）において作動している可能性がある。そのような実施例においては、リモート・コンピューティング装置130からのデータまたはホスト側コンピューティング装置102内における他のコンポーネントからのデータを処理するために、低電力状態で作動中のコンポーネントにアクセスすることは典型的には不可能（例えば、利用不可能）である。追加的に又は代替的に、その他の実施例においては、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントは、「電源オンされた状態」すなわち「完全に通常動作電力レベルで動作している状態」において作動することが可能である。このような電力状態で作動中のコンポーネントは、リモート・コンピューティング装置130からのデータまたはホスト側コンピューティング装置102内における他のコンポーネントからのデータを処理するために典型的にはアクセス可能（例えば、利用可能）となっている。
例示的実施例においては、ホスト側コンピューティング装置102は、低電力状態と通常動作電力状態を含んでいるとして記述されているが、ホスト側コンピューティング装置102はその他の電力管理された状態を含むこともまた可能である点が理解されよう。例えば、ホスト・コンピューティング装置102は、追加的に又は代替的に、任意の個数の他の電力管理された状態（例えばスタンバイ状態、ハイバネート（休眠）状態、電源オフ状態など）を含むことが可能である。さらに幾つかの実施例においては、ホスト側コンピューティング装置102および／またはホスト側コンピューティング装置102を構成する一つ以上のコンポーネントは、任意の個数のレディー状態（例えば、利用可能状態、利用不可能状態、機能制限された利用可能状態）において作動することが可能である。
【００１６】
ホスト側コンピューティング装置102内のプロセッサー104は、マイクロプロセッサー、デジタル信号プロセッサ、マイクロ・コントローラなどのようにソフトウェア／ファームウェアを実行する機能を有する任意のタイプのプロセッサーとして具現化されることが可能である。プロセッサー104は、プロセッサー・コア106を有する単一コア・プロセッサーとして例示的に具現化されている。しかしながら、他の実施例においては、プロセッサー104は、多数のプロセッサー・コア106を有するマルチコア・プロセッサーとして具現化されることも可能である。さらに、ホスト側コンピューティング装置102は、一つ以上のプロセッサー・コア106を有する追加のプロセッサー104を含むようにすることも可能である。
【００１７】
ホスト・コンピューティング装置102内のＩ／Ｏサブシステム110は、プロセッサー104および／またはホスト側コンピューティング装置102内におけるその他のコンポーネントを具備した入出力処理動作を実現するための回路類および／またはコンポーネントとして具現化されることが可能である。幾つかの実施例においては、Ｉ／Ｏサブシステム110は、メモリ・コントローラ・ハブ（ＭＣＨあるいは「ノースブリッジ」）、入出力コントローラー・ハブ（ＩＣＨあるいは「サウスブリッジ」）およびファームウェア装置として具現化されることが可能である。そのような実施例においては、Ｉ／Ｏサブシステム110のファームウェア装置は、ＢＩＯＳシステム（Basic Input／Output
System）のデータや命令コードおよび／またはその他の情報（例えば、ホスト側コンピューティング装置102をブートする間に使用されるＢＩＯＳドライバなど）を格納するためのメモリ・デバイスとして具現化されることが可能である。しかしながら、その他の実施例においては、その他の構成を有するＩ／Ｏサブシステムが使用されてもよい。例えば、幾つかの実施例では、Ｉ／Ｏサブシステム110は、プラットフォーム・コントローラー・ハブ（ＰＣＨ）として具現化されることが可能である。そのような実施例においては、メモリ・コントローラ・ハブ（ＭＣＨ）はプロセッサー104内に組み込まれるか、さもなければ、プロセッサー104と関係付けられることが可能であり、プロセッサー104は、（図１において破線で示されたように）メモリ108と直接通信することが可能である。さらに他の実施例においては、Ｉ／Ｏサブシステム110は、システム・オン・チップ（ＳｏＣ）の一部を形成することが可能であり、プロセッサー104およびホスト側コンピューティング装置102の他のコンポーネントと共に単一の集積回路チップ上に組込まれることが可能である。
【００１８】
幾つかの実施例においては、Ｉ／Ｏサブシステム110は，信頼済み実行環境（ＴＥＥ）エンジン112を含むことが可能であり、プロセッサー104あるいはホスト側コンピューティング装置102を構成する他のコンポーネントによってアクセスすることができない安全で分離された環境を提供するために、ＴＥＥエンジン112は、プロセッサー104と無関係に作動するセキュリティ・コプロセッサのような埋め込み型のマイクロ・プロセッサーとして具現化されることが可能である。幾つかの実施例においては、プロセッサー104およびホスト側コンピューティング装置102を構成する他のコンポーネントが低電力状態（例えば、スリープ状態やハイバネート（休眠）状態など）にある一方で、ＴＥＥエンジン112は、通常動作電力状態において機能することが可能である。そのような実施例においては、ＴＥＥエンジン112は、着信パケットを受信し、一つ以上の着信パケットを受信したことに応じて、プロセッサー104あるいはホスト側コンピューティング装置102を構成する他のコンポーネントのためにウェイクアップ動作手順の開始を引き起こすおよび／またはホスト側コンピューティング装置102又はその一つ以上のコンポーネントが低電力状態からウェイクアップして通常動作電力状態へと移行する動作を実行中の間に、当該パケットを遅延させ、続いて、リリースするまたはリプレイする仕組みを実現することが可能である。そのような動作の実行中においては、リモート・コンピューティング装置130から見ると、たとえ、ホスト側コンピューティング装置102が低電力状態で作動していたとしても、ホスト・コンピューティング装置102又はホスト側コンピューティング装置102を構成する一つ以上のコンポーネントやサービスが完全に利用可能かつ作動可能であるように見える。
【００１９】
プロセッサー104は、数多くの信号伝送経路を介してＩ／Ｏサブシステム110と通信可能な態様で結合されている。これらの信号伝送経路（および図１に示されたその他の信号伝送経路）は、ホスト側コンピューティング装置102を構成するコンポーネント同士の間における通信機能を実現する可能な任意のタイプの信号伝送経路として具現化されることが可能である。例えば、当該信号伝送経路は、バス、介在するデバイス、ポイント・ツー・ポイント相互接続などを介する任意の本数の配線、ケーブル、光導波路またはプリント回路基板トレース等として具体化されることが可能である。
【００２０】
ホスト側コンピューティング装置102のメモリ108は一つ以上のメモリ素子あるいはデータ記憶位置として具現化されるか、さもなければこれらを含むことが可能であり、当該メモリ素子またはデータ記憶位置は、例えば、ダイナミックRAMデバイス（DRAM）、同期型DRAMデバイス（SDRAM）、ダブル・データ・レート同期型DRAM装置（DDR
SDRAM）、マスク読み出し専用メモリ（ROM）デバイス、消去可能なプログラマブルROM（EPROM）、電気的に消去可能なプログラマブルROM（EEPROM）デバイス、フラッシュ・メモリー・デバイスおよび／またはその他の揮発性および／または不揮発性のメモリ素子等を含んでいる。メモリ108は、数多くの信号伝送経路を介してＩ／Ｏサブシステム110と通信可能な態様で結合される。図１には単一のメモリ素子108だけが図示されているが、その他の実施例においては、ホスト側コンピューティング装置102は、増設のメモリ・デバイスを含むことが可能である。様々なデータおよびソフトウェアはメモリ素子108内に保存されることが可能である。例えば、プロセッサー104によって実行され、ソフトウェア・スタックを構成している一つ以上のオペレーティング・システム（ＯＳ）、アプリケーション、プログラム、ライブラリおよびデバイス・ドライバは、それらの実行期間中においてはメモリ108上に常駐していても良い。
【００２１】
データ記憶部116は、データの短期間または長期間にわたる記憶のために構成された任意のタイプのデバイス（例えば、メモリ・デバイスやメモリ回路、メモリー・カード、ハードディスク・ドライブ、ソリッド・ステート・ドライブあるいはその他のデータ記憶装置など）として具現化されることが可能である。幾つかの実施例において、データ記憶部116は、ホスト側コンピューティング装置102またはその一つ以上のコンポーネントがネットワーク駆動されたウェイクアップ操作の後に、低電力状態から通常動作電力状態へと移行するまでの間に、一時的に一つ以上の着信パケットおよび／または一つ以上の着信パケットと関連した情報を格納するために使用されることが可能である。追加的に又は代替的に、データ記憶部116は、一時的にホスト側コンピューティング装置102の一つ以上のコンポーネントのために現在の電力状態を示す情報を記憶するために使用されてもよい。
【００２２】
ホスト側コンピューティング装置102内の通信回路類114は、ネットワーク140上のホスト側コンピューティング装置102とリモート・コンピューティング装置130との間における通信を可能にするための任意の個数の装置と回路類として具体化されることが可能である。例えば、幾つかの実施例においては、通信回路類114は、ネットワーク・インターフェイス・コントローラー（ＮＩＣ）として具現化されることが可能である。ネットワーク140は、任意の個数の多種多様な有線網または無線通信ネットワークとして具現化されることが可能である。例えば、ネットワーク140は、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）あるいはインターネットのような公衆アクセス可能なグローバル・ネットワークとして具現化され、さもなければ、これらを含むことが可能である。さらに、ネットワーク140は、ホスト側コンピューティング装置102とリモート・コンピューティング装置130との間における通信を実現するための任意の個数の追加的なデバイスを含むことが可能である。ホスト側コンピューティング装置102およびリモート・コンピューティング装置130は、ネットワーク140を介して互いに相手と通信するために（例えば、ネットワーク140の特定のタイプに依存した）任意の適切な通信プロトコルを使用することが可能である。
【００２３】
ホスト側コンピューティング装置102内の周辺機器118は、任意の個数の追加的な入出力装置、インターフェース機器および／またはその他の周辺機器を含むことが可能である。例えば、周辺機器118は、ユーザに対してコンテンツを画面表示するためのディスプレイ、キーボード、マウスあるいはその他の入出力用周辺機器を含むことが可能である。周辺機器118は、数多くの信号伝送経路を介してＩ／Ｏサブシステム110と通信可能な態様で結合されるので、Ｉ／Ｏサブシステム110および／またはプロセッサー104が周辺機器118から入力を受信するまたは周辺機器118に対して出力を送信することを可能にする。
【００２４】
リモート・コンピューティング装置130は、本明細書中に記述された機能を実行することが可能な任意のタイプの計算装置として具現化されることが可能である。そのため、リモート・コンピューティング装置130は、様々なハードウェアおよびソフトウェアのコンポーネント（例えば、プロセッサー、メモリおよび通信回路類）を含むことが可能であり、これらのコンポーネントは、典型的には、ネットワーク上のデータを通信し、記憶し、維持管理し、転送するためにコンピューティング装置内に見出される。例示的なリモート・コンピューティング装置130は、ホスト側コンピューティング装置を構成する一つ以上のコンポーネントによってウェイクアップ動作手順が実行開始される契機となるトリガーをリモート操作によって与えるために、ネットワーク140を介してホスト側コンピューティング装置102に向けてパケットを送信する。幾つかの実施例において、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントの電源オン動作またはウェイクアップ動作（例えば低電力状態から通常動作電力状態への移行）を引き起こすために、上述したパケットは、特別にフォーマットされた上でホスト側コンピューティング装置102に送信されるネットワーク・メッセージ・パケット（例えば「マジック・パケット」）を含んでいる。追加的に又は代替的に、リモート・コンピューティング装置130は、一つ以上のコンポーネントの上記ウェイクアップ動作を引き起こすために、ホスト側コンピューティング装置102に特定のタイプ（例えばＴＣＰ  ＳＹＮパケット）のウェイクアップ指示パケットを送信することが可能である。リモート・コンピューティング装置130は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントをウェイクアップさせることが可能なその他のタイプのパケットを送信することが可能である点が当業者であれば理解できよう。例えば、リモート・コンピューティング装置130は、低電力状態から通常動作電力状態への移行を指示するために、ホスト側コンピューティング装置102によってモニタリングされている特定の通信ポートまたは特定の通信ポート範囲内を宛先としてウェイクアップ指示パケットおよび／またはその他のパケットやホスト側コンピューティング装置102に対するトリガー動作のための使用に適しているメッセージを送信し、当該パケットやメッセージは、ホスト側コンピューティング装置102によって識別可能な特定のパターンを含んでいる。
【００２５】
図２を参照すると、ホスト側コンピューティング装置102の動作環境200に関する一つの実施例は、通信モジュール202、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204、電力状態判定モジュール208、パケット遅延モジュール220、タイマー・モジュール222、パケット捕捉／パケット・バッファリング動作モジュール230およびパケット注入／パケット・リプレイ動作モジュール232を含んでいる。例示的な環境200は、必ずしも図２で示されたモジュールの全てを含んでいるとは限らない点が理解されよう。むしろ、幾つかの実施例においては、例示的な環境200は、図２に示されたモジュールの一部または図２に示された複数のモジュールを組み合わせたものを代わりに含むことが可能である。例えば一つの実施例においては、例示的な環境200は、通信モジュール202、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204、電力状態判定モジュール208、パケット遅延モジュール220、タイマー・モジュール222を含むことが可能である。その他の実施例では、例示的な環境200は、通信モジュール202、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204、電力状態判定モジュール208、パケット捕捉／パケット・バッファリング動作モジュール230およびパケット注入／パケット・リプレイ動作モジュール232を代りに含むことが可能である。さらに、環境200または環境200内に含まれている複数のモジュールのうちの何れかは、ハードウェア、ファームウェア、ソフトウェアあるいはそれらの任意の組み合わせの形で実装され得る点が当業者であれば理解できよう。
【００２６】
上述したように、幾つかの実施例においては、ホスト側コンピューティング装置102は、ネットワーク140を介してリモート・コンピューティング装置130からパケットを受信することが可能である。もちろん、以下において後述する例示的実施例においては、一つの着信パケットだけが述べられているが、任意の個数の着信パケットがリモート・コンピューティング装置130によって送信され、ホスト側コンピューティング装置102によって受信され得る点が当業者であれば理解できよう。着信パケットを受信した際に、一つ以上のコンポーネントを低電力状態から通常動作電力状態へと移行させるウェイクアップ動作プロセスが、ホスト側コンピューティング装置102上で引き起こされることが可能である。そのような実施例においては、ホスト側コンピューティング装置102は、通常動作電力状態を完全に達成するまでの間、ホスト側コンピューティング装置102の一つ以上のコンポーネント（例えば、ファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーション、サービスなど）へのパケットの配送を遅延させることが可能である。そのようにするために、通信モジュール202は、ネットワーク140を経由したリモート・コンピューティング装置130との間の通信機能を実現することが可能である。さらに、ホスト側コンピューティング装置102およびリモート・コンピューティング装置130上の通信モジュール202は、ネットワーク140を介して互いに相手と通信するために、（例えば、ネットワーク140の特定のタイプに依存した）任意の適切な通信プロトコルを使用することが可能である。
【００２７】
ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントのウェイクアップ動作をトリガーし、低電力動作状態から通常動作電力状態（例えば「電源オンされた状態」機能している状態、利用可能状態、レディ状態など）へと移行させる仕組みを実現するために、通信モジュール202は、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204と通信可能な態様で結合されることが可能である。使用中において、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204は、通信モジュール202から着信パケットを受信することが可能である。当該パケットを受信した際に、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントのためにウェイクアップ動作手順の実行開始を引き起こすべきか否かを判断するために、当該パケットのコンテンツを解析し、さもなければ調査することが可能である。そのようにするために、幾つかの実施例においては、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204は、着信したパケットが、モニタリング対象とされている特定のタイプのパケット（例えばＴＣＰ  ＳＹＮパケット）であるか又はホスト側コンピューティング装置102上の特定の通信ポート（例えば、ＴＣＰポート5900、3389など）を宛先とするパケットであるか否かを判定する。追加的に又は代替的に、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204はさらに、着信したパケットまたはそのコンテンツが一つ以上のフィルタと一致するか否かを判断することが可能である。そのような実施例では、フィルタは一つ以上の設定可能な規則を含んでおり、当該規則は、一つ以上のパターン、ビット・マスク、オフセット、宛先となる通信ポート、パケット・タイプまたはウェイクアップ動作をトリガーするパケットであることを表すその他の情報を定義している。着信したパケットが一つ以上のフィルタと一致し、したがって、当該パケットがウェイクアップ指示パケットを具現化するパケットであると判定した際には、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204は、ホスト側コンピューティング装置102上においてウェイクアップ動作プロセスを引き起こしおよび／または開始させることが可能である。
【００２８】
上述したように、幾つかの実施例においては、ホスト側コンピューティング装置102は、後続の処理のために当該パケットをリリースする前の基準となる遅延時間にわたって、ウェイクアップ動作プロセスを引き起こした受信パケットを保持したままとすることが可能である。上記のようにパケットを遅延させる機能を実現するために、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204は、パケット遅延モジュール220と通信可能な態様で結合されることが可能である。パケット遅延モジュール220は、ホスト側コンピューティング装置102を構成する他のコンポーネントに対して着信したパケットの配送を基準となる遅延時間にわたって遅延させることが可能である。そのような実施例においては、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204から着信パケットを受信した後に、パケット遅延モジュール220は、基準となる時間長にわたってパケットを保持し続けおよび／またはバッファリングすることが可能である。例えば、パケット遅延モジュール220は、リモート・コンピューティング装置130にとっての送信タイムアウト時間より短くなるように設定された時間長にわたってパケットを保持することが可能である。上記のように設定された時間長だけパケットを遅延させることに応じて、パケット遅延モジュール220は、ホスト側コンピューティング装置102を構成する一つ以上の他のコンポーネントによる後続の処理のためにパケットをリリースすることが可能である。
【００２９】
パケット遅延モジュール220は、基準となる時間長にわたって着信したパケットを保持し、および／またはバッファリングする機能を実現するために、タイマー・モジュール222と通信可能な態様で結合されることが可能である。タイマー・モジュール222は、通信モジュール202がリモート・コンピューティング装置130から着信パケットを受信した時点から通過した時間量を監視し続けることが可能である。そのようにするために、タイマー・モジュール222は、任意の個数のタイマー、クロック信号、カウンター、アルゴリズムあるいは時間の経過を判別するのに適したホスト側コンピューティング装置102内のその他のコンポーネントなどを利用することが可能である。幾つかの実施例においては、タイマー・モジュール222は、（例えば、リモート・コンピューティング装置130からのパケット受信のような）特定の事象が発生した時点から通過した時間量を決定する（例えば、カウンタ回路により計時する）ことが可能である。その他の実施例においては、タイマー・モジュール222は、（例えば、基準となる遅延タイマーが満了する等の）事象が発生するまでの残り時間の量を決定する（例えば、カウンタ回路により計時する）ことが可能である。
【００３０】
幾つかの実施例においては、パケット遅延モジュール220はさらに、上記のようにパケットを遅延させリリースする機能を実現するために、電力状態判定モジュール208と通信可能な態様で結合されることが可能である。そのような実施例においては、パケット遅延モジュール220は、電力状態判定モジュール208から所定の通知が受信されるまでの間、ホスト側コンピューティング装置102を構成する他のコンポーネントに対して着信したパケットの配送を遅延させることが可能である。使用中においては、電力状態判定モジュール208は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントの電力状態をモニタリングする。そのようにする際に、電力状態判定モジュール208は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが低電力状態（例えば、スリープ状態）から通常動作電力状態（例えば、ネットワークからの処理要求に応じてコンポーネントが利用可能となった状態）へと成功裡に移行した旨を判定することが可能である。もちろん、電力状態判定モジュール208はさらに、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが通常動作電力状態から低電力状態へと移行した旨を判定することも可能である点が当業者であれば理解できよう。そのようにするために、電力状態判定モジュール208は、電力状態の遷移に関して、ホスト側コンピューティング装置102を構成する一つ以上のシステム・ファームウェア、システム・ハードウェアおよび／またはソフトウェア・コンポーネントをモニタリングすることが可能である。例えば、電力状態判定モジュール208は、ＢＩＯＳ（Basic Input／Output System）情報、ＡＣＰＩ（Advanced Configuration and Power Interface）情報あるいはホスト側コンピューティング装置102の電力状態を判定するのに適した任意のコンポーネントの中の一つ以上をモニタリングすることが可能である。一つ以上のコンポーネントが電力状態を（例えば、低電力状態から通常動作電力状態へと）成功裡に移行させた旨を判定したことに応じて、電力状態判定モジュール208は、そのような電力状態遷移を示すメッセージを生成することが可能である。例えば、電力状態判定モジュール208は、メッセージ、信号またはその他のものを送信することによって、パケット遅延モジュール220に対して、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが通常動作電力状態に成功裡に移行した結果、遅延させられたパケットを処理することが可能となった旨を通知することが可能である。しかしながら、幾つかの実施例においては、電力状態判定モジュール208はさらに、ホスト側コンピューティング装置102および／またはホスト側コンピューティング装置102を構成する一つ以上のコンポーネント（例えば、ファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーション、サービスなど）における任意の個数のレディー状態（例えば、利用可能状態、利用不可能状態、機能制限された利用可能状態など）をモニタリングすることも可能である点が当業者であれば理解できよう。
【００３１】
ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが利用可能である旨の通知が電力状態判定モジュール208から受信される実施例においては、その通知を受信した際に、パケット遅延モジュール220は、上記のように遅延させられたパケットをリリースすることが可能である。追加的に又は代替的に、その他の実施例においては、基準となる時間量が経過するまでに電力状態判定モジュール208から通知が受信されていない場合には、パケット遅延モジュール220は遅延させられたパケットを自動的にリリースすることが可能である点が当業者であれば理解できよう。そのような実施例においては、リモート・コンピューティング装置130にとっても送信タイムアウト時間よりも短くなるように設定された時間長が経過するまでに、電力状態判定モジュール208から通知が受信されていない場合には、パケット遅延モジュール220は、遅延させられたパケットを自動的にリリースすることが可能である。例えば、リモート・コンピューティング装置130のオペレーティング・システム（ＯＳ）と関連した送信タイムアウト時間が21秒間となるようにするために、パケット遅延モジュール220は、電力状態判定モジュール208からの通知が18秒以内に受信されていない場合に、遅延させられたパケットを自動的にリリースすることが可能である。もちろん、例えば、ホスト側コンピューティング装置102および／またはリモート・コンピューティング装置130の構成に基づいて、基準となる遅延時間あるいは送信タイムアウト時間を定めるの任意の適切な時間長が代りに使用され得る点が当業者であれば理解できよう。
【００３２】
追加的に又は代替的に、幾つかの実施例におけるホスト側コンピューティング装置102は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが通常動作電力状態に移行した結果、ネットワークからの処理要求に利用可能となるまでの間だけ処理を遅延させるために、着信したパケットをバッファリングすることが可能である。以下の例示的な実施例においては、一つの着信パケットだけが述べられているが、任意の個数の着信パケットがバッファリングされることが可能である点が当業者であれば理解できよう。ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントがネットワークからの処理要求に応じるために一旦利用可能となったならば、ホスト側コンピューティング装置102は、利用可能となったコンポーネントに対して上記のようにバッファリングされたパケットを注入しおよび／またはリプレイすることが可能である。そのような実施例においては、ウェイクアップ動作プロセスの実行期間中に失われていた可能性のあるパケットをリモート・コンピューティング装置130が再送信するのをホスト側コンピューティング装置102は待つ必要がないので、ネットワーク接続するのに要する時間は縮小されおよび／または最小化されることが可能である点が当業者であれば理解できよう。
【００３３】
ホスト側コンピューティング装置102が受信したパケット（例えば、着信パケット）をバッファリングし、続いて、リプレイしおよび／または注入する実施例においては、通信モジュール202およびパケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204は、上述した方法と同様の方法に従って機能することが可能である。しかしながら、受信したパケットをバッファリングする機能を実現するために、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204は、追加的に又は代替的に、パケット捕捉／パケット・バッファリング動作モジュール230と通信可能な態様で結合することが可能である。そのような実施例においては、パケット捕捉／パケット・バッファリング動作モジュール230は、パケット・フィルタリング／ウェイクアップ動作トリガー・モジュール204から着信パケットを受信し、続いて、そのようなパケットをバッファリングするか、さもなければ格納することが可能である。そのようにするために、パケット捕捉／パケット・バッファリング動作モジュール230は、ホスト側コンピューティング装置102のデータ記憶部116あるいはメモリー108の中に着信パケットをバッファリングし、さもなければ格納することが可能である。もちろん、パケット捕捉／パケット・バッファリング動作モジュール230は、ホスト側コンピューティング装置102を構成するデータ記憶手段および／またはその他のコンポーネント内に埋め込まれたメモリ素子を含むホスト側コンピューティング装置102内の任意の適切なデータ記憶手段および／またはメモリ素子（例えば、揮発性および／または不揮発性のメモリ素子）内に着信パケットをバッファリングしおよび／または格納することが可能である点が当業者であれば理解できよう。例えば、パケット捕捉／パケット・バッファリング動作モジュール230は、通信回路類114あるいは信頼済みの実行環境エンジン112内に埋め込まれているデータ記憶手段および／またはメモリ素子内に着信パケットをバッファリングしおよび／または格納することが可能である。
【００３４】
バッファリングされ又は格納された受信パケットを注入しおよび／またはリプレイする機能を実現するために、パケット注入／パケット・リプレイ動作モジュール232は、パケット捕捉／パケット・バッファリング動作モジュール230および電力状態判定モジュール208と通信可能な態様で結合することが可能である。パケット遅延モジュール220と同様に、パケット注入／パケット・リプレイ動作モジュール232は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが低電力状態（例えば、スリープ状態）から通常動作電力状態（例えば、ネットワークからの処理要求に応じて利用可能となった状態）へと成功裡に移行した旨の通知（例えば、メッセージや信号など)）を電力状態判定モジュール208から受信することが可能である。ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが利用可能となった旨の通知を電力状態判定モジュール208から受信した際に、パケット注入／パケット・リプレイ動作モジュール232は、パケット捕捉／パケット・バッファリング動作モジュール230からバッファリングされたパケットおよび／または格納されたパケットを受信したり取得したりすることが可能である。続いて、パケット注入／パケット・リプレイ動作モジュール232は、後続の処理のためにホスト側コンピューティング装置102を構成する一つ以上の利用可能なコンポーネントに向けて、当該パケットを注入しおよび／またはリプレイすることが可能である。
【００３５】
ここで、図３を参照すると、ネットワーク駆動されたウェイクアップ動作の実行期間中に着信パケットを遅延させた後にリリースするために、ホスト側コンピューティング装置102によって実行されることが可能な方法300は、ブロック302から一連の処理動作を開始する。ブロック302において、ホスト側コンピューティング装置102は、ネットワーク140を介してリモート・コンピューティング装置130から新しいパケットが受信されたか否かを判断する。上述したように、ホスト側コンピューティング装置102は、通信回路類114および／または通信モジュール202によって受信される通信に基づいて、新しいパケットがネットワーク140を介してリモート・コンピューティング装置130から受信された旨を決定することが可能である。上述したように、リモート・コンピューティング装置130から受信された新しいパケットは、新しいネットワーク接続を開始するためのパケットおよび／またはホスト側コンピューティング装置102との間の既存のネットワーク接続を維持するためのパケットに相当し得る。ホスト側コンピューティング装置102が新しいパケットは、ネットワーク140を介してリモート・コンピューティング装置130から受信されたと判定した場合には、方法300の動作はブロック304に進む。
【００３６】
ブロック304において、ホスト側コンピューティング装置102は、リモート・コンピューティング装置130からの新たに受信したパケットがウェイクアップ指示パケットに相当するか否かを判断する。新たに受信されたパケットがウェイクアップ指示パケットに相当するか否かを判断するために、ホスト側コンピューティング装置102は、パケットが識別可能なタイプである旨、ホスト側コンピューティング装置102上の特定の通信ポートあるいはポート範囲を宛先としている旨、および／またはパケットの情報内容が特定のパターンと一致する旨を判別することが可能である。上述したように、新たに受信したパケットあるいはその情報内容がウェイクアップ指示パケットを示しているか否かを判定する機能を実現するために、ホスト・コンピューティング装置102は、一つ以上の規則に基づいたフィルターを利用することが可能である。そのような実施例では、新しく受信したパケットは、ウェイクアップ指示パケットおよびネットワーク接続を開始しおよび／または維持するためのパケットの両者を表していてもよい。そのような判定の結果に応じて、新しく受信したパケットが識別可能なウェイクアップ指示パケットに相当すると判定されたことに応じて、方法300の動作はブロック306に進む。しかしながら、ホスト側コンピューティング装置102は、新しく受信したパケットが識別可能なウェイクアップ指示パケットに相当しないとを判定した場合には、方法300は、処理ループに沿ってブロック302に戻り、新たなパケットが受信されるのを待つ。
【００３７】
ブロック306では、ホスト側コンピューティング装置102は、ウェイクアップ動作プロセスの実行を開始する。上述したように、ウェイクアップ動作プロセスの実行期間中においては、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントは、低電力状態（例えば、スリープ電力状態、ハイバネート（休眠）電力状態など）から通常動作電力状態（例えば、「電源オンされた状態」、「レディ状態」および／または「完全に機能している電力状態」など）へと移行することが可能である。ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントに関してウェイクアップ動作プロセスの実行が開始される際に、方法300の動作はブロック308に進む。
【００３８】
ブロック308においては、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが完全に通常動作電力状態あるいはレディー状態を完全に達成するまでの間、パケットの配送を遅延させる。そのようするために、ホスト側コンピューティング装置102は、設定可能な基準となる遅延時間と等しい時間にわたってパケットを保持することが可能である。設定可能な基準となる遅延時間にわたってパケットの配送を遅延させた後に、方法300の動作はブロック314に進み、ブロック314では、ホスト側コンピューティング装置102は、後続の処理のために一つ以上のコンポーネントに向けて遅延させられたパケットをリリースする。
【００３９】
追加的に又は代替的に、ブロック308においてパケットの配送を遅延させる機能を実現するために、幾つかの実施例におけるホスト側コンピューティング装置102は、任意の個数のタイマー、クロック信号、カウンター変数、アルゴリズムあるいは時間の経過を判別するのに適したホスト・コンピューティング装置102内のその他のコンポーネントを利用することが可能である。そのような実施例では、方法300の動作は、ブロック310に進み、ブロック310においては、ホスト側コンピューティング装置102は、リモート・コンピューティング装置130からパケットを受信した際に、タイマーの計時動作を開始する。そのようにする際に、ホスト側コンピューティング装置102は、パケットが受信された時点からどれだけの時間が通過したかを判別し、方法300の動作は、ブロック312に進む。
【００４０】
ブロック312において、ホスト側コンピューティング装置102は、経過した時間の長さが設定可能な基準となる遅延時間と等しいか否かを判定することが可能である。当該経過した時間の長さが、当該基準となる遅延時間として設定された時間の長さと一致すると判定したことに応じて、方法300の動作はブロック314に進み、ブロック314においては、ホスト側コンピューティング装置102は、後続の処理のために、遅延させられたパケットをリリースする。そのような実施例では、失われてしまっている可能性がある最初のパケットをリモート・コンピューティング装置130が再送信するのをホスト側コンピューティング装置102は待つ必要が無いので、ネットワーク接続に要する所要時間は縮小されおよび／または最小化されることが可能である。
【００４１】
図４を参照すると、着信したパケットを遅延させ、リリースするために、ネットワーク駆動されたウェイクアップ動作の実行期間中にわたってホスト側コンピューティング装置102によって実行可能な方法400の少なくとも一つの実施例を示す単純化されたフローチャートが図示されている。動作実行中において、ホスト側コンピューティング装置102内のネットワーク・インターフェイス・コントローラー（ＮＩＣ）402は、リモート・コンピューティング装置130から着信パケット430を受信することが可能である。幾つかの実施例においては、ＮＩＣ402はさらに、着信パケット432および434を受信することが可能であり、当該着信パケットは、リモート・コンピューティング装置130がウェイクアップ指示パケット送信を再度試みた結果の再試行パケットに相当する場合がある。例示的な実施例においては、着信パケット430、432、434は、新しいネットワーク接続を開始し、および／または既存のネットワーク接続を維持するための特定のタイプのパケット（例えば、ＴＣＰ  ＳＹＮパケット）に相当し得る。
【００４２】
幾つかの実施例においては、最初の着信パケットの受信は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントのために開始されるウェイクアップ動作プロセスを引き起こすことが可能である。その後、ＮＩＣ402は、図４においてデータ伝送436として示すように、パケット430をパケット遅延モジュール220に向けて転送することが可能である。続いて、パケット遅延モジュール220は、基準となる時間長438にわたってパケットを保持しおよび／またはバッファリングすることが可能である。例えば、幾つかの実施例においては、パケット遅延モジュール220は、リモート・コンピューティング装置130にとっての送信タイムアウト時間よりも短くなるように設定された時間の長さにわたってパケットを保持することが可能である。追加的に又は代替的に、パケット遅延モジュール220は、ホスト側コンピューティング装置を構成する一つ以上のコンポーネントがパケットをさらに処理する準備ができている旨を示す通知を受信するまでの間、パケットを保持することが可能である。
【００４３】
パケットが基準となる時間の長さにわたって保持される実施例においては、パケット遅延モジュール220は、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントによる後続の処理のために当該遅延させられたパケットをデータ伝送440内においてリリースする。例えば、幾つかの実施例においては、パケット遅延モジュール220は、ホストぐぁコンピューティング装置102上で実行中のネットワーク・アプリケーション404に対して遅延させられたパケットをデータ・フロー440内においてリリースすることが可能である。しかしながら、パケット遅延モジュール220は、他の送信先および／またはホスト側コンピューティング装置102上で実行中の他のコンポーネントに向けて遅延させられたパケットをリリースすることも可能である点が当業者であれば理解できよう。例えば、幾つかの実施例においては、パケット遅延モジュール220はＯＳ、デバイス・ドライバおよび／またはホスト側コンピューティング装置102上で実行中の任意の適切なコンポーネントあるいはアプリケーションに対して当該遅延させられたパケットをリリースすることが可能である。
【００４４】
ここで、図５を参照すると、ネットワーク駆動されたウェイクアップ動作の実行期間中にホスト側コンピューティング装置102によって実行可能な遅延挿入処理を実行するために、着信パケットをバッファーリングした後に注入する、および／またはリプレイするための方法500は、ブロック502から一連の処理動作を開始する。ブロック502では、ホスト側コンピューティング装置102は、新しいパケットがネットワーク140を介してリモート・コンピューティング装置130から受信されたか否かを判定する。上述したように、ホスト側コンピューティング装置102は、通信回路類114および／または通信モジュール202によって受信された通信に基づいて、ネットワーク140を介してリモート・コンピューティング装置130から新しいパケットが受信されたと断定することが可能である。ネットワーク140を介してリモート・コンピューティング装置130から新しいパケットが受信されたとホスト・コンピューティング装置102が判定した場合、方法500の動作はブロック504へと進む。
【００４５】
ブロック504では、ホスト側コンピューティング装置102は、リモート・コンピューティング装置130から新しく受信したパケットがウェイクアップ指示パケットに相当するか否かを判断する。新たに受信されたパケットがウェイクアップ指示パケットに相当するか否かを判断するために、ホスト側コンピューティング装置102は、パケットが識別可能なタイプである旨、ホスト側コンピューティング装置102上の特定の通信ポートあるいはポート範囲を宛先としている旨、および／またはパケットの情報内容が特定のパターンと一致する旨を判別することが可能である。 上述したように、新たに受信したパケットあるいはその情報内容がウェイクアップ指示パケットを示しているか否かを判定する機能を実現するために、ホスト・コンピューティング装置102は、一つ以上の規則に基づいたフィルターを利用することが可能である。 新たに受信したパケットが識別可能なウェイクアップ指示パケットに相当すると判断されたことに応じて、方法500の動作はブロック506に進む。そのような実施例では、新しく受信したパケットは、ウェイクアップ指示パケットおよびネットワーク接続を開始しおよび／または維持するためのパケットの両者を表していてもよい。しかしながら、ホスト側コンピューティング装置102は、新しく受信したパケットが識別可能なウェイクアップ指示パケットに相当しないとを判定した場合には、方法500は、処理ループに沿ってブロック502に戻り、新たなパケットが受信されるのを待つ。
【００４６】
ブロック506では、ホスト側コンピューティング装置102は、ウェイクアップ動作プロセスの実行を開始する。上述したように、ウェイクアップ動作プロセスの実行期間中においては、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントは、低電力状態（例えば、スリープ電力状態、ハイバネート（休眠）電力状態など）から通常動作電力状態（例えば、「電源オンされた状態」、「レディ状態」および／または「完全に機能している電力状態」など）へと移行することが可能である。 ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントに関してウェイクアップ動作プロセスの実行が開始される際に、方法500の動作はブロック508に進む。
【００４７】
ブロック508においては、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが完全に機能している電力状態に達成するまでの間、パケットの配送を遅延させる。 そのようするために、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが遅延させられたパケットを処理するために利用可能となった旨の通知がされるまでの間、パケットを保持するか、さもなくば当該パケットの配送を遅延させることが可能である。そのようするために、ホスト側コンピューティング装置102は、ウェイクアップ動作プロセスの実行期間の全てあるいは一部にわたって、リモート・コンピューティング装置130との間のネットワーク接続の信頼度および即応性を改善することが可能である。パケットを保持したことに応じて、方法500の動作はブロック516に進む。
【００４８】
ブロック516では、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが低電力状態（例えば、スリープ状態）から通常動作電力状態（例えば、レディ状態および／またはネットワークからの処理要求に応じるために利用可能となった状態）へと成功裡に移行したか否かを判断する。上述したように、ホスト側コンピューティング装置102は、一つ以上のシステム・ファームウェア、システム・ハードウェアおよび／または電力状態の移行を検知するソフトウェア・コンポーネント（例えば、ＢＩＯＳやＡＣＰＩなど）をモニタリングすることが可能である。例えば、幾つかの実施例においては、ホスト側コンピューティング装置102は、電力状態の移行を検知するために、一つ以上のコンポーネントに関するＡＣＰＩ情報をモニタリングすることが可能である。ホスト側コンピューティング装置102は、スリープ状態および通常動作電力状態（例えば、「電源オンされた状態」）に加えてたの他の電力管理された状態をモニタリングすることが可能である点が当業者であれば理解できよう。例えば、ホスト側コンピューティング装置102は、追加的に又は代替的に、ハイバネート（休眠）電力状態、電源オフされた状態さもなければ電源が落とされた状態あるいはホスト側コンピューティング装置102によってモニタリングすることが可能なその他の電力状態との間の電力状態遷移に関してコンポーネントをモニタリングすることが可能である。しかしながら、幾つかの実施例においては、ホスト側コンピューティング装置102はさらに、一つ以上のコンポーネント（例えば、ファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーション、サービスなど）がとり得る任意の個数のレディー状態（例えば、利用可能な状態、利用不可能な状態、機能制限された利用可能状態など）をモニタリングすることが可能である。
【００４９】
ブロック516を再び参照すると、一つ以上のコンポーネントが低電力状態から通常動作電力状態へと移行したことをホスト側コンピューティング装置102が判定する実施例においては、ホスト・コンピューティング装置102は遅延させられたパケットをさらに処理するために何れのコンポーネントが利用可能となったかを示す通知（例えば、メッセージや信号など）を生成する。そのようにする際に、方法500の動作は、ブロック518へと進み、ブロック518においては、ホスト側コンピューティング装置102が一つ以上の利用可能なコンポーネントに向けて遅延させられたパケットを注入し、および／またはリプレイする。しかしながら、コンポーネントが遅延させられたパケットをさらに処理するために利用可能とはなっていないとホスト側コンピューティング装置102が判定した場合には、方法500の実行は処理ループに沿ってブロック516へと戻り、ブロック516では、一つ以上のコンポーネントが低電力状態から通常動作電力状態へと移行するのを待つ。
【００５０】
ブロック508を再び参照すると、一つ以上のコンポーネントへのパケットの配送を遅延させる機能を実現するために、ホスト側コンピューティング装置102は、着信したパケットをバッファリングし、および／または格納することが可能である。そのようするために、ホスト側コンピューティング装置102は、ウェイクアップ動作プロセスの実行期間の全てあるいは一部にわたって、リモート・コンピューティング装置130との間のネットワーク接続の信頼度および即応性を改善することが可能である。例えば、ブロック510では、ホスト・コンピューティング装置102は、ホスト側コンピューティング装置102のデータ記憶部116あるいはメモリー108の中に着信パケットをバッファリングし、さもなければ格納することが可能である。 上述したように、ホスト・コンピューティング装置102は、ホスト側コンピューティング装置102を構成するデータ記憶手段および／またはその他のコンポーネント内に埋め込まれたメモリ素子を含むホスト側コンピューティング装置102内の任意の適切なデータ記憶手段および／またはメモリ素子（例えば、揮発性および／または不揮発性のメモリ素子）内に着信パケットをバッファリングしおよび／または格納することが可能である点が当業者であれば理解できよう。 例えば、パケット捕捉／パケット・バッファリング動作モジュール230は、通信回路類114あるいは信頼済みの実行環境エンジン（ＴＥＥ）112内に埋め込まれているデータ記憶手段および／またはメモリ素子内に着信パケットをバッファリングしおよび／または格納することが可能である。データ記憶手段116あるいはメモリ108中に着信パケットをバッファリングし、および／または格納した際に、方法500の動作は、ブロック512に進む。
【００５１】
ブロック512では、ホスト側コンピューティング装置102は、ウェイクアップ動作プロセスの実行を開始した後に、通信回路類114をリセットするか、さもなければ再初期化することが可能である。幾つかの実施例においては、リセット動作は、通信回路類114のハード・リセット動作あるいはソフト・リセット動作を含むことが可能である。通信回路類114をリセットするか、さもなければ再初期化した後に、方法500の動作は、ブロック514に進む。
【００５２】
ブロック514では、ホスト側コンピューティング装置102は、データ記憶手段116あるいはメモリ108内にバッファリングされているか、さもなければ格納されているパケットを、通信回路類114に対して戻す。バッファリングされたパケットが通信回路類114に対して一旦戻されたならば、方法500の動作は、上述したブロック516およびブロック518の処理動作の実行に進む。
【００５３】
図６を参照すると、ネットワーク駆動されたウェイクアップ動作の実行期間中にホスト側コンピューティング装置102によって実行可能な遅延挿入動作をおこなうために、着信したパケットをバッファリングした後に注入し、および／またはリプレイする方法600の少なくとも一つの実施例を示す単純化されたフローチャートが図示されている。そのようにする際に、ホスト側コンピューティング装置102は、ウェイクアップ動作プロセスの実行期間の全てあるいは一部にわたって、リモート・コンピューティング装置130との間のネットワーク接続の信頼度および即応性を改善することが可能である。動作中において、ホスト側コンピューティング装置102のネットワーク・インターフェイス・コントローラー（ＮＩＣ）602は、リモート・コンピューティング装置130から着信パケット630を受信することが可能である。幾つかの実施例においては、ＮＩＣ602はさらに、追加の着信パケット636、644を受信することが可能であり、そのようなパケットは、リモート・コンピューティング装置130によりウェイクアップ指示パケット送信の試行を再度試みた結果に相当する場合がある。例示的な実施例においては、着信パケット630、636、644は、新しいネットワーク接続を開始し、および／または既存のネットワーク接続を維持するための特定タイプのパケット（例えば、ＳＹＮパケット）に相当することが可能である。
【００５４】
上述したように、最初のパケット630を受信したことは、図６のデータ・フロー632において示すように、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントのためにウェイクアップ動作プロセスを開始する契機を与えるトリガーとなり得る。その後に、図６のデータ・フロー634において示すように、ＮＩＣ602は、データ記憶手段116および／またはホスト側コンピューティング装置102のメモリ108内に最初のパケット630をバッファリングすることが可能である。上述したように、ＮＩＣ602は、最初のパケット630および／または再試行パケット636および644のうちのいずれか一つを、ホスト側コンピューティング装置102上の任意の適切なデータ記憶手段および／またはメモリ素子（例えば、揮発性および／または不揮発性のメモリ素子）内にバッファリングすることが可能であり、そのような記憶手段やメモリは、その他のコンポーネント内に埋め込まれた記憶手段やメモリを含む点が当業者であれば理解できよう。例えば、ＮＩＣ602は、一時的なデータ記憶手段および／または通信回路類114の内部に、あるいは信頼された実行環境エンジン112の内部に埋め込まれたメモリ素子の中に最初のパケット630をバッファリングすることが可能である。
【００５５】
データ記憶手段116および／またはメモリ108内に最初のパケット630をバッファリングした後に、ホスト側コンピューティング装置102上で実行中のオペレーティング・システム（ＯＳ）610は、図６のデータ伝送638において示すように、一つ以上のメッセージおよび／またはコマンドをＮＩＣ602と関連したＮＩＣドライバ604に向けて送信することが可能である。幾つかの実施例において、ＮＩＣドライバ604は、データ記憶手段116および／またはメモリ108内に一時的にバッファリングされたパケット630を格納し、さもでなければ保存することが可能である。最初のパケット630を一時的にバッファリングするために使用されるデータ記憶手段116および／またはメモリ108と同一のデータ記憶手段やメモリが、ＮＩＣドライバ604によって最初のパケット630を保存するために使用されてもよい点が当業者であれば理解できよう。
【００５６】
データ記憶手段116および／またはメモリ108内に最初のパケット630が保存されたことに応じて、ＮＩＣドライバ604は、図６のデータ通信642として示すように、ＮＩＣ602をリセットさせるか又は再初期化させるように、ＮＩＣ602に対してコマンドを送信するか、さもなければＮＩＣ602に対して指示することが可能である。上述したように、ＮＩＣ602はハード・リセットあるいはソフト・リセットのいずれか一方を実行することが可能である。リセットされるか、さもなければ再初期化された後に、ＮＩＣドライバ604は、データ記憶手段116および／またはメモリ108内に格納された最初のパケット630を元に戻すことが可能である。
【００５７】
データ記憶手段116および／またはメモリ108内から最初のパケット630を元に戻した後に、ＮＩＣドライバ604は、ＯＳ610はネットワーク通信トラフィックを受信する準備ができ、利用可能となった旨の通知を待つことが可能である。そのようにして、ＯＳ610が最初のパケット630をさらに処理するための準備が一旦できたならば、図６のデータ伝送648において示すように、ＯＳ610は、ネットワーク通信トラフィックを受信するための準備ができている旨をＮＩＣドライバ604に対して通知する。
【００５８】
幾つかの実施例において、ＯＳ610がネットワーク通信トラフィックを送受信するための準備ができる旨の通知を受信した際に、ＮＩＣドライバ604は、図６のデータ伝送650において示すように、最初のパケット630をさらに処理するために、当該パケットをネットワーク・フィルター608へと注入し、および／またはリプレイすることが可能である。ＮＩＣドライバ604はネットワーク・フィルター608に対して最初のパケット630を注入し、および／またはリプレイするけれども、ＮＩＣドライバ604は、その代りに、ＯＳ610および／またはホスト側コンピューティング装置102を構成するその他のコンポーネントに対して最初のパケット630を注入し、および／またはリプレイすることが可能である点が当業者であれば理解できよう。追加的に又は代替的に、例示的な実施例においては、ＮＩＣドライバ604は、最初のパケット630を注入し、および／またはリプレイするけれども、ホスト側コンピューティング装置102を構成する他の一つ以上のコンポーネント（例えば、ファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーション、サービスなど）が、最初のパケット630を注入し、および／またはリプレイするようにすることもまた可能である点が当業者であれば理解できよう。例えば、幾つかの実施例においては、ファームウェア、ＮＩＣ602のハードウェア・コンポーネント、ＯＳ階層を構成するネットワーク・フィルター、ＯＳを構成するコンポーネントおよび／またはネットワーク経路上における任意の適切なコンポーネントの中の一つ以上は、最初のパケット630を注入し、またはリプレイすることが可能である。
【００５９】
ＮＩＣドライバ604が最初のパケット630を注入し、および／またはリプレイした後に、ＮＩＣ602は、図６のデータ伝送652において示すとおり、リモート・コンピューティング装置130への肯定応答メッセージ（ＡＣＫ）を生成し、送信することが可能である。幾つかの実施例において、リモート・コンピューティング装置130に対して送信されたＡＣＫは、最初のパケット630を受信した旨を確認応答する旨のメッセージを具備している。そのような実施例においては、ウェイクアップ動作プロセスの実行期間中に失われていた可能性のあるパケットをリモート・コンピューティング装置130が再送信するのをホスト側コンピューティング装置102は待つ必要がないので、ネットワーク接続するのに要する全体の時間は縮小されおよび／または最小化されることが可能である点が当業者であれば理解できよう。
【００６０】
ここで、図７を参照すると、着信したパケットの遅延処理を実行可能にし、又は実行不能にするために、ホスト側コンピューティング装置102によって実行可能な方法700の一連の処理動作は、ブロック702から開始する。ブロック702では、ホスト側コンピューティング装置102は、一つ以上のコンポーネントの電力状態をモニタリングする。そのようにする際に、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが特定の電力状態から別の電力状態へと成功裡に移行した旨を判定することが可能である。例えば、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが低電力状態（例えば、スリープ状態、ハイバネート（休眠）状態、電源が切られた状態など）から通常動作電力状態（例えば、レディ状態および／またはネットワークからの処理要求に応じて利用可能となった状態）へと移行した旨を判定することが可能である。もちろん、ホスト側コンピューティング装置102はさらに、ホスト側コンピューティング装置102を構成する一つ以上のコンポーネントが通常動作電力状態から低電力状態またはホスト側コンピューティング装置102の用途に適しているその他の任意の電力管理された状態へと移行した旨を判定することも可能である点が当業者であれば理解できよう。そのようにするために、ホスト側コンピューティング装置102は、電力状態の遷移に関して、ホスト側コンピューティング装置102を構成する一つ以上のデバイス・ファームウェア、デバイス・ハードウェアおよび／またはソフトウェア・コンポーネントをモニタリングすることが可能である。 例えば、電力状態判定モジュール208は、ＢＩＯＳ（Basic Input／Output System）情報、ＡＣＰＩ（Advanced Configuration and Power Interface）情報あるいはホスト側コンピューティング装置102の電力状態を判定するのに適した任意のコンポーネントの中の一つ以上をモニタリングすることが可能である。追加的に又は代替的に、幾つかの実施例においては、ホスト側コンピューティング装置102はさらに、一つ以上のコンポーネント（例えば、ファームウェア、ハードウェア、ソフトウェア、オペレーティング・システム、アプリケーション、サービスなど）における任意の個数のレディー状態（例えば、利用可能状態、利用不可能状態、機能制限された利用可能状態など）をモニタリングすることも可能である。
【００６１】
一つ以上のコンポーネントの電力状態が移行したか否かを判断する機能を実現するために、ホスト側コンピューティング装置102は、幾つかの実施例において、データ記憶部116および／またはメモリ108内に位置つ以上のコンポーネントの各々についての以前の電力状態を示すデータを格納することが可能である。コンポーネントの各々についての以前の電力状態を示すデータは、データベース、テーブルあるいはホスト・コンピューティング装置102を構成する一つ以上のコンポーネントに関する電力状態を格納するのに適したその他のデータ構造内に保存されることが可能である点が当業者であれば理解できよう。そのような実施例においては、ホスト側コンピューティング装置102は、一つ以上のコンポーネントの各々に関して、以前の電力状態を現在の電力状態と比較することが可能である。一のコンポーネントに関して以前の電力状態が現在の電力状態とは異なる場合、ホスト側コンピューティング装置102は、そのコンポーネントの電力状態が状態遷移したと判定することが可能である。
【００６２】
幾つかの実施例において、ホスト側コンピューティング装置102は、連続的に電力状態および／または動作状態の状態遷移に関して、一つ以上のファームウェア、ハードウェアおよび／またはソフトウェア・コンポーネントをモニタリングすることが可能である。その他の実施例においては、ホスト側コンピューティング装置102は、電力状態および／または動作状態の状態遷移に関して、一つ以上のファームウェア、ハードウェアおよび／またはソフトウェア・コンポーネントを設定可能かつ予め定められた時間間隔でモニタリングすることが可能である。追加的に又は代替的に、ホスト側コンピューティング装置102は、電力状態および／または動作状態の状態遷移が生じた旨の通知を、ファームウェア、ハードウェアおよび／またはソフトウェア・コンポーネントの中の一つ以上から受信することが可能である。もちろん、しかしながら、ホスト側コンピューティング装置102は電力状態および／または動作状態中の状態遷移について、任意の適切な時間間隔でモニタリングすることが可能である点が理解されよう。
【００６３】
ブロック702を再び参照すると、一つ以上のコンポーネントにおいて電力状態および／または動作状態の状態遷移が生じた旨をホスト側コンピューティング装置102が判定した場合には、方法700の実行はブロック704に進む。しかしながら、ブロック702において、ホスト側コンピューティング装置102を構成するコンポーネントが電力状態および／または動作状態を移行させていないとホスト側コンピューティング装置102が判定した場合には、方法700の実行は、処理ループに沿ってブロック702に戻り、電力状態および／または動作状態の状態遷移についてモニタリングし続ける。幾つかの実施例においては、特定のコンポーネントの電力状態および／または動作状態は、ホスト側コンピューティング装置102によってモニタリングされることが可能である点が理解されよう。例えば、ホスト側コンピューティング装置102は、第１のコンポーネントの電力状態が低電力状態から通常動作電力状態へと移行したけれども、特定タイプの着信パケットの後続の処理に必要となり得る第２のコンポーネントの電力状態は、電力状態を移行させていないと判断することが可能である。その結果、ホスト側コンピューティング装置102は、第２のコンポーネントによる電力状態の状態遷移のモニタリング動作を継続することが可能である。
【００６４】
ブロック704において、一つ以上のコンポーネントが電力状態および／または動作状態を移行させたと判定した後に、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが低電力状態（例えば、スリープ状態、ハイバネート（休眠）状態、電源が切られた状態など）に移行したか否かを判断します。そのようにするために、ホスト側コンピューティング装置102は、ホスト側コンピューティング装置102を構成するファームウェア、ハードウェアおよび／またはソフトウェア・コンポーネントの中の一つ以上から、一つ以上のコンポーネントについて現在の電力状態および／または動作状態に関する情報を取得することが可能である。ブロック704において、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが低電力状態に移行していないと判断し、方法700の実行はブロック708に進む。
【００６５】
ブロック708において、ホスト側コンピューティング装置102は、一つ以上のコンポーネントが代わりに通常動作電力状態（例えば、ネットワークからの処理要求に応じて処理を行うために利用可能となった状態）に移行したか否かを判定する。上述したように、ホスト側コンピューティング装置102は、ホスト側コンピューティング装置102を構成するファームウェア、ハードウェアおよび(または)ソフトウェア・コンポーネントの中の一つ以上から、一つ以上のコンポーネントについて、現在の電力状態および／または動作状態に関する情報を取得することが可能である。ブロック708においては、ホスト側コンピューティング装置102は、代わりに、一つ以上のコンポーネントが通常動作電力状態に移行したと判定し、方法700の実行はブロック710に進む。しかしながら、一つ以上のコンポーネントが通常動作電力状態に移行していないとホスト側コンピューティング装置102が判定した場合には、方法700の実行は処理ループに沿ってブロック702に戻り、電力状態の状態遷移についてモニタリングし続ける。
【００６６】
ブロック710では、ホスト・コンピューティング装置102は、一つ以上のコンポーネントをリモート操作によりウェイクアップさせるためのトリガーを取り払う。幾つかの実施例においては、ホスト側コンピューティング装置102は、一つ以上のフィルターおよび／または着信パケットがウェイクアップ指示パケットを含むか否かを判断するために使用される規則を取り払うか、さもなければ無効化することが可能である。そのようにする際に、ホスト側コンピューティング装置102は、一つ以上のフィルタおよび／または上述した規則を使用して着信パケットを検査しなくても良い。
【００６７】
ブロック704を再び参照すると、一つ以上のコンポーネントが低電力状態に移行したと、ホスト側コンピューティング装置102が判定したならば、方法700の実行はブロック706に進み、ブロック706では、ホスト側コンピューティング装置102は、一つ以上のフィルターおよび／または着信パケットがウェイクアップ指示パケットを含むか否かを判断するのに使用される規則を準備するか、さもなければ有効化する。そのようにする際に、ホスト側コンピューティング装置102は一つ以上のフィルターおよび／または上述した規則を使用して、着信パケットを検査することが可能である。
【００６８】
図面および本明細書中の先の記述において、本明細書の開示内容が図示されて、詳細に述べられている一方で、そのような図解および記述は単に例示的なものであり、本発明の技術的特徴を限定するものではないことが了解され、本明細書には例示的な実施例だけが図示され記述されているけれども、本明細書の開示内容と本明細書に添付した請求項に記載された発明と整合するあらゆる変形実施例や修正実施例が本発明の権利保護範囲内に属するべきであることが了解される。
【００６９】
＜具体例＞
本発明に関し、本明細書中において開示される装置、システムおよび方法の例示的な具体例は、以下において後述される。本発明に係る装置、システムおよび方法の実施例は、以下において後述する複数の具体例のうちの任意の一つ以上および任意の組み合わせを含むことが可能である。
【００７０】
一例において、着信したパケットの配送を遅延させるためのコンピューティング装置が開示され、当該コンピューティング装置は、通信モジュール、ウェイクアップ動作トリガー・モジュールおよびパケット遅延モジュールを含むことが可能である。一例において、通信モジュールはネットワークを介してリモート・コンピューティング装置からパケットを受信することが可能である。一例において、ウェイクアップ動作トリガー・モジュールは、リモート・コンピューティング装置からパケットが受信されたことに応答して、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作を開始することが可能である。一例において、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作の実行期間にわたって、パケット遅延モジュールは、パケットの配送を遅延させることが可能である。
【００７１】
加えて、一例において、コンピューティング装置はタイマー・モジュールをさらに含むことが可能である。一例において、タイマー・モジュールは、パケットを受信した時点から経過した時間の長さを決定することが可能である。一例において、パケット遅延モジュールは、基準となる時間の長さにわたってパケットの配送を遅延させることが可能である。加えて、一例において、パケット遅延モジュールはさらに、当該基準となる時間の長さが経過した後に、パケットをリリースすることが可能である。一例において、当該基準となる時間の長さは、リモート・コンピューティング装置の送信タイムアウト時間よりも短い時間量を含むことが可能である。
【００７２】
さらに一例においては、コンピューティング装置はさらに、電力状態判定モジュールを含むことが可能である。一例において、電力状態判定モジュールはさらに、一つ以上の現時点における電力管理された状態を判別することが可能である。一例において、電力状態判定モジュールはさらに、低電力レベルで電力管理された状態から通常動作レベルの電力で管理された状態へと完全に移行した旨を示す通知を生成することが可能である。
【００７３】
さらに一例においては、パケット遅延モジュールは、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと完全に移行した旨を示す通知をさらに受信することが可能であり、低電力レベルで電力管理された状態から通常動作レベルの電力で管理された状態へと完全に移行した旨を示す通知を受信したことに応じて、パケットをリリースすることが可能である。
【００７４】
さらに一例においては、当該パケットは、マジック・パケット、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケットあるいは基準となるパターンから形成されたパケットのうちの一つを含むことが可能である。一例においては、ウェイクアップ動作トリガー・モジュールはさらに、リモート・コンピューティング装置から受信したパケットに対して一つ以上のフィルターを適用し、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、あるいは基準となるパターンから形成されたパケットのうちの一つと一致するか否かを判断することが可能である。さらに一例においては、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、あるいは基準となるパターンから形成されたパケットのうちの一つと一致するか否かに応じて、ウェイクアップ動作トリガー・モジュールは、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作を開始することが可能である。
【００７５】
さらに別の具体例においては、着信パケットの配送を遅延させるためのコンピューティング装置は、通信モジュールおよびパケット・バッファリング・モジュールを含むことが可能である。一例において、通信モジュールはネットワークを介してリモート・コンピューティング装置からパケットを受信することが可能である。一例において、ウェイクアップ動作トリガー・モジュールは、リモート・コンピューティング装置から当該パケットが受信されたことに応じて、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作を開始することが可能である。一例においては、パケット・バッファリング・モジュールは、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作の実行期間にわたって、当該パケットをバッファリングすることが可能である。
【００７６】
さらに一例においては、コンピューティング装置はさらに、電力状態判定モジュールを含むことが可能である。一例において、電力状態判定モジュールは、一つ以上の現時点における電力管理された状態を判別することが可能である。一例において、電力状態判定モジュールは、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を示す通知をさらに生成することが可能である。一例において、コンピューティング装置はさらに、パケット注入モジュールを含むことが可能である。一例において、パケット注入モジュールは、パケット・バッファリング・モジュールからパケットを取得し、電力状態判定モジュールは、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を示す通知を受信したことに応じて、パケットを注入することが可能である。一例において、コンピューティング装置はさらに、パケット・リプレイ動作モジュールを含むことが可能である。一例において、パケット・リプレイ動作モジュールは、パケット・バッファリング・モジュールからパケットを取得し、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を示す通知を受信したことに応じて、パケットをリプレイすることが可能である。
【００７７】
さらに一例においては、パケットは、マジック・パケット、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、または基準となるパターンから形成されたパケットのうちの一つを含むことが可能である。一例において、ウェイクアップ動作トリガー・モジュールはさらに、リモート・コンピューティング装置から受信されたパケットに対して一つ以上のフィルターを適用し、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、または基準となるパターンから形成されたパケットのうちの一つと一致するか否かを判断することが可能である。さらに一例においては、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、あるいは基準となるパターンから形成されたパケットのうちの一つと一致するか否かに応じて、ウェイクアップ動作トリガー・モジュールは、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作を開始することが可能である。
【００７８】
さらに別の具体例においては、着信パケットの配送を遅延させる方法は、リモート・コンピューティング装置からのパケットを、ネットワークを介して、ホスト側コンピューティング装置が受信する動作を含むことが可能である。一例においては、当該方法は、リモート・コンピューティング装置からのパケットの受信に応じて、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作をホスト側コンピューティング装置が開始することをさらに含み得る。一例においては、当該方法は、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作の実行期間にわたって、パケットの配送をホスト側コンピューティング装置が遅延させる動作をさらに含み得る。
【００７９】
加えて、一例において、当該方法は、ホスト側コンピューティング装置が、パケットを受信した時点から経過した時間の長さを決定する動作を含むことが可能である。一例において、パケットの配送を遅延させる動作は、基準となる時間の長さにわたってパケットの配送を遅延させる動作を含むことが可能である。加えて、一例において、当該方法は、当該基準となる時間の長さが経過した後に、ホスト側コンピューティング装置がパケットをリリースする動作を含むことが可能である。 
一例において、当該基準となる時間の長さは、リモート・コンピューティング装置の送信タイムアウト時間よりも短い時間量を含むことが可能である。
【００８０】
一例において、当該方法は、一つ以上の現時点における電力管理された状態をホスト側コンピューティング装置が判別する動作を含むことが可能である。加えて、一例において、当該方法は、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を示す通知をホスト側コンピューティング装置が生成する動作をさらに含むことが可能である。一例において、当該方法は、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を示す通知を受信したことに応じて、ホスト側コンピューティング装置が、当該パケットをリリースする動作を含むことが可能である。
【００８１】
さらに一例においては、当該パケットは、マジック・パケット、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、または基準となるパターンから形成されたパケットのうちの一つを含むことが可能である。一例において、当該方法は、リモート・コンピューティング装置から受信されたパケットに対して一つ以上のフィルターをホスト側コンピューティング装置が適用し、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、または基準となるパターンから形成されたパケットのうちの一つと一致するか否かをホスト側コンピューティング装置が判断する動作をさらに含むことが可能である。 さらに一例においては、当該方法は、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、あるいは基準となるパターンから形成されたパケットのうちの一つと一致するか否かに応じて、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作をホスト側コンピューティング装置が開始する動作を含むことが可能である。
【００８２】
さらに別の具体例においては、着信パケットの配送を遅延させる方法は、リモート・コンピューティング装置からのパケットを、ネットワークを介して、ホスト側コンピューティング装置が受信する動作を含むことが可能である。一例においては、当該方法は、リモート・コンピューティング装置からのパケットの受信に応じて、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作をホスト側コンピューティング装置が開始することをさらに含み得る。一例においては、当該方法は、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作の実行期間にわたって、パケットをホスト側コンピューティング装置がバッファリングする動作をさらに含み得る。
【００８３】
さらに一例においては、当該方法は、一つ以上の現時点における電力管理された状態をホスト側コンピューティング装置が判別する動作を含むことが可能である。一例において、当該方法は、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を表す通知をホスト側コンピューティング装置が生成する動作をさらに含むことが可能である。さらに一例において、当該方法は、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を表す通知を受信したことに応じて、ホスト側コンピューティング装置が当該パケットを注入する動作をさらに含むことが可能である。さらに一例において、当該方法は、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作が完了した旨を表す通知を受信したことに応じて、ホスト側コンピューティング装置が当該パケットをリプレイする動作をさらに含むことが可能である。
【００８４】
さらに一例においては、当該パケットは、マジック・パケット、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、または基準となるパターンから形成されたパケットのうちの一つを含むことが可能である。一例において、当該方法は、リモート・コンピューティング装置から受信されたパケットに対して一つ以上のフィルターをホスト側コンピューティング装置が適用し、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、または基準となるパターンから形成されたパケットのうちの一つと一致するか否かをホスト側コンピューティング装置が判断する動作をさらに含むことが可能である。さらに一例においては、当該方法は、当該パケットが、基準となるタイプのパケット、基準となる通信ポートを宛先とするパケット、あるいは基準となるパターンから形成されたパケットのうちの一つと一致するか否かに応じて、低電力レベルで電力管理された状態から通常動作レベルで電力管理された状態へと移行する動作をホスト側コンピューティング装置が開始する動作を含むことが可能である。
【図１】
0006305976.tif 000002
【図２】
0006305976.tif 000003
【図３】
0006305976.tif 000004
【図４】
0006305976.tif 000005
【図５】
0006305976.tif 000006
【図６】
0006305976.tif 000007
【図７】
0006305976.tif 000008