(57)【要約】  本明細書に開示するシステム及び方法は、ネットワーキングアウェアホストアプリケーション（１０７）により発行されるネットワークアプリケーションプロキシ（ＮＡＰ）拡張ＡＰＩ機能コール（２１０）を受け取る。ＮＡＰ拡張ＡＰＩ機能コール（２１０）は、ホストオフロード可能なパケット交換シーケンスに関連付けられているパラメータ値を提供する。このパラメータ値を用いて、ＮＡＰモジュール（１１６）が、ホストプロセッサがスリープモード状態であるか又はスリープモード状態間で遷移する一方で、ホストオフロード可能なパケット交換シーケンスに関連付けられている１つ又は複数の入来ネットワークパケット（２２２、２３５）をインターセプトし、それに応答する。
2015510334.tif 000002
【特許請求の範囲】
【請求項１】
ワイヤレスモバイルデバイスにおけるネットワークアプリケーションプロキシ（ＮＡＰ）システムであって、
ホストオフロード可能なパケット交換シーケンスに関連付けられているＮＡＰ拡張ネットワークアプリケーションプログラミングインタフェース（ＡＰＩ）機能コールを発行するためのネットワークアプリケーションモジュール、
前記ＮＡＰ拡張ＡＰＩ機能コールを受信するため、及び応答してＮＡＰラッパー機能コールを発行するために、前記アプリケーションモジュールに通信可能に結合されるＮＡＰ  ＡＰＩラッパーモジュール、及び
ホストプロセッサがスリープモード状態にあるか又は前記ホストプロセッサがスリープモード状態間で遷移する一方で、前記ホストオフロード可能なパケット交換シーケンスに関連付けられている入来ネットワークパケットをインターセプトしそれに応答するために、前記ＮＡＰ  ＡＰＩラッパーモジュールに通信可能に結合されるＮＡＰモジュール、
を含む、システム。
【請求項２】
請求項１に記載のシステムであって、前記ＮＡＰモジュールが、
受信フィルタを構成するため、送信フィルタをイネーブルにするため、前記ホストオフロード可能なパケット交換シーケンスに関連付けられている少なくとも１つの入来パケットを受信するため、前記ホストオフロード可能なパケット交換シーケンスに適用可能な送信テンプレートを選択するため、前記送信テンプレートに従って及び前記入来パケットに応答して生成される、少なくとも１つの送信パケットフィールドをポピュレートするため、及び前記ホストオフロード可能なパケット交換シーケンスの終わりに関連付けられているホスト復帰命令を発行するための、交換シーケンス生成器、
を更に含む、システム。
【請求項３】
請求項２に記載のシステムであって、前記交換シーケンス生成器が、
前記ホストオフロード可能なパケット交換シーケンスの完了時にホストネットワークスタックに転送するために、前記入来パケットに関連付けられているデータフィールドをストアするための受信データバッファ、及び
いつ各送信パケットを送信するか及びいつホスト復帰命令を発行するかを判定するためのシーケンスタイマー、
を更に含む、システム。
【請求項４】
請求項２に記載のシステムであって、前記ＮＡＰモジュールが、
前記入来パケットを前記ホストオフロード可能なパケット交換シーケンスに関連付けられているとして識別するため、前記入来パケットを前記交換シーケンス生成器に渡すため、及び前記ホストオフロード可能なパケット交換シーケンスに関連付けられていないパケットを前記ＮＡＰモジュールを介してホストネットワークスタックに渡すために、前記交換シーケンス生成器に通信可能に結合される受信フィルタモジュール、
を更に含む、システム。
【請求項５】
請求項２に記載のシステムであって、前記ＮＡＰモジュールが、
前記交換シーケンス生成器により選択され得る送信テンプレートのセットをストアするため、前記交換シーケンス生成器により供給されるフィールドデータを用いて前記送信パケットをアセンブルするため、及びアウトバウンド送信のため前記送信パケットを物理的リンクに送信するために、前記交換シーケンス生成器に通信可能に結合される送信テンプレートモジュール、
を更に含む、システム。
【請求項６】
請求項２に記載のシステムであって、前記ＮＡＰモジュールが、
ＮＡＰ機能性が呼び出されないときアウトバウンド送信のため前記交換シーケンス生成器を物理的リンクに渡すため、及び前記ＮＡＰ機能性が呼び出されるときアウトバウンドパケットを阻止するために、前記交換シーケンス生成器に通信可能に結合される送信フィルタモジュール、
を更に含む、システム。
【請求項７】
請求項２に記載のシステムであって、前記ＮＡＰモジュールが、
交換シーケンス生成器パラメータをロードするため、ＮＡＰ初期化において送信テンプレートのセットをロードするため、及びＮＡＰ初期化において受信フィルタをロードするために、前記交換シーケンス生成器に通信可能に結合されるＮＡＰ構成レジスタ、
を更に含む、システム。
【請求項８】
請求項１に記載のシステムであって、
前記ホストプロセッサに通信可能に結合されるオペレーティングシステム、及び
前記アプリケーションからの前記ＮＡＰ拡張ネットワークＡＰＩ機能コールをインターセプトするため、前記ＮＡＰ拡張ネットワークＡＰＩ機能コールを前記ＮＡＰ  ＡＰＩラッパーモジュールに渡すため、及び非ＮＡＰ拡張ネットワークＡＰＩ機能コールをインターセプトするための、前記オペレーティングシステムのＡＰＩ処理構成要素、
を更に含む、システム。
【請求項９】
請求項８に記載のシステムであって、前記非ＮＡＰ拡張ネットワークＡＰＩ機能コールを受信するため前記ＡＰＩ処理構成要素に通信可能に結合されるホストネットワークスタックを更に含む、システム。
【請求項１０】
請求項８に記載のシステムであって、
ネットワークパケットアッセンブリ及びディスアッセンブリを扱うためのネットワーキングデバイス、
前記ホストプロセッサに関連付けられている処理サイクルに依存せずに処理サイクルを前記ネットワーキングデバイスに提供するための、前記ネットワーキングデバイスのネットワーキングデバイスプロセッサ構成要素、及び
前記ワイヤレスモバイルデバイスにおいてインバウンドパケットを受信するため及び前記ワイヤレスモバイルデバイスからアウトバウンドのパケットを送信するための、物理的リンクモジュール、
を更に含む、システム。
【請求項１１】
ワイヤレスモバイルデバイスにおけるスリープ状態を延長する方法であって、
ネットワークアプリケーションプロキシ（ＮＡＰ）アプリケーションプログラミングインタフェース（ＡＰＩ）ラッパーモジュールにおいて、ネットワーキングアウェアホストアプリケーションにより発行されるＮＡＰ拡張ＡＰＩ機能コールを受け取ることであって、前記ＮＡＰ拡張ＡＰＩ機能コールが、ホストオフロード可能なパケット交換シーケンスに関連付けられているパラメータ値を含むこと、及び
ＮＡＰモジュールにおいて、前記ホストプロセッサがスリープモード状態にあるか又は前記ホストプロセッサがスリープモード状態間で遷移する一方で、前記ホストオフロード可能なパケット交換シーケンスに関連付けられている少なくとも１つの入来ネットワークパケットをインターセプトすること及びそれに応答すること、
を含む、方法。
【請求項１２】
請求項１１に記載の方法であって、
前記ＮＡＰ拡張ＡＰＩ機能コールに応答してＮＡＰラッパー機能コールを発行すること、及び
前記ＮＡＰラッパー機能コールに関連付けられているパラメータに従って受信フィルタを構成すること、
を更に含む、方法。
【請求項１３】
請求項１１に記載の方法であって、
前記ホストオフロード可能なパケット交換シーケンスに関連付けられている前記入来パケットを受け取ること、
前記ホストオフロード可能なパケット交換シーケンスに適用可能な送信テンプレートセットを選択すること、及び
前記送信テンプレートに従って及び前記入来パケットに応答して生成される、少なくとも１つの送信パケットのフィールドをポピュレートすること、
を更に含む、方法。
【請求項１４】
請求項１１に記載の方法であって、
前記入来パケットが、前記ホストオフロード可能なパケット交換シーケンスに関連付けられているか否か判定すること、
前記入来パケットを交換シーケンス生成器に渡すこと、及び
前記ホストオフロード可能なパケット交換シーケンスに関連付けられていないパケットを前記ＮＡＰモジュールを介してホストネットワークスタックに渡すこと、
を更に含む、方法。
【請求項１５】
請求項１４に記載の方法であって、
前記交換シーケンス生成器により供給されるフィールドデータを用いて前記送信パケットをアセンブルすること、及び
アウトバウンド送信のため前記送信パケットを物理的リンクに送ること、
を更に含む、方法。
【請求項１６】
請求項１１に記載の方法であって、ＮＡＰ受信フィルタを構成することを更に含む、方法。
【請求項１７】
請求項１１に記載の方法であって、ＮＡＰ送信フィルタにおけるアクティビティが、
ＮＡＰ機能性が呼び出されないとき送信のためアウトバウンドパケットを物理的リンクに渡すこと、及び
前記ＮＡＰ機能性が呼び出されるときアウトバウンドパケットを阻止すること、
を更に含む、方法。
【請求項１８】
請求項１１に記載の方法であって、
前記ホストオフロード可能な交換シーケンスの終わりに関連付けられているホスト復帰命令を発行すること、及び
前記ホストオフロード可能なパケット交換シーケンスの完了に続いて、前記入来パケットに関連付けられているストアされたデータフィールドをホストネットワークスタックに転送すること、
を更に含む、方法。
【請求項１９】
請求項１１に記載の方法であって、ＮＡＰ初期化アクティビティが、
交換シーケンス生成器パラメータをロードすること、
前記交換シーケンス生成器により選択され得る送信テンプレートのセットをロードすること、及び
受信フィルタをロードすること、
を更に含む、方法。
【請求項２０】
ワイヤレスモバイルデバイスにおけるネットワークアプリケーションプロキシ（ＮＡＰ）システムであって、
ネットワークアウェアアプリケーションからのホストオフロード可能なパケット交換シーケンスに関連付けられているＮＡＰ拡張ネットワークアプリケーションプログラミングインタフェース（ＡＰＩ）機能コールを受信するため、及び応答してＮＡＰラッパー機能コールを発行するための、ＮＡＰ  ＡＰＩラッパーモジュール、
受信フィルタを構成するため、送信フィルタをイネーブルにするため、前記ホストオフロード可能なパケット交換シーケンスに関連付けられている少なくとも１つの入来パケットを受信するため、前記ホストオフロード可能なパケット交換シーケンスに適用可能な送信テンプレートを選択するため、前記送信テンプレートに従って及び前記入来パケットに応答して生成される、少なくとも１つの送信パケットフィールドをポピュレートするため、及び前記ホストオフロード可能なパケット交換シーケンスの終わりに関連付けられているホスト復帰命令を発行するための、交換シーケンス生成器、
前記入来パケットを前記ホストオフロード可能なパケット交換シーケンスに関連付けられているとして識別するため、前記入来パケットを前記交換シーケンス生成器に渡すため、及び前記ホストオフロード可能なパケット交換シーケンスに関連付けられていないパケットをホストネットワークスタックに渡すために、前記交換シーケンス生成器に通信可能に結合される受信フィルタモジュール、及び
前記交換シーケンス生成器により選択され得る送信テンプレートのセットをストアするため、前記交換シーケンス生成器により選択されたテンプレートと前記交換シーケンス生成器により供給されるフィールドデータとを用いて前記送信パケットをアセンブルするため、及びアウトバウンド送信のため前記送信パケットを物理的リンクに送信するために、前記交換シーケンス生成器に通信可能に結合される送信テンプレートモジュール、
を含む、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載の実施例は、一層深く及び／又は一層長いホストプロセッサスリープモード期間を可能にするためネットワーク通信機能をオフロードすることに関連付けられるシステム及び方法を含んで、ワイヤレスモバイルデバイスに関連する。
【背景技術】
【０００２】
ワイヤレスモバイルデバイスが普及していること、また、ネットワーク利用可能性が増大していることにより、「常に利用可能な」ネットワークアプリケーションの需要がますます高まっている。このようなアプリケーションは、これらに限定されないが、ボイスオーバーインターネットプロトコル（ＶＯＩＰ）、インスタントメッセージ、サービスディスカバリ、及びサーバーアプリケーションを含み、リモートで起動され得る。つまり、ワイヤレスモバイルデバイスで動作する「常に利用可能な」アプリケーションは、入来ＶＯＩＰコールなどからの起動メッセージを待機しつつ、無期限に実行し続けることが要求され得る。
【０００３】
本明細書において用いられるように「ワイヤレスモバイルデバイス」という用語は、例えば、バッテリー、ソーラーセル等のポータブル電源を用い、ワイヤレスデータ通信のための無線を含む、ポータブル通信及び／又はコンピューティングデバイスを意味する。このようなデバイスは、データ処理可能携帯電話、ワイヤレスラップトップコンピュータ、タブレットコンピュータ、ポータブルワイヤレスゲームなどを含む。
【０００４】
今日のワイヤレスモバイルデバイスは、典型的に、１つ又は複数のメイン（ホスト）プロセッサを用いてユーザーアプリケーションを実行する。ホストプロセッサは、典型的に、大量の電力を消費し、そのため、ホストプロセッサアクティブティが、ワイヤレスモバイルデバイスバッテリー実行時間に対する制限因子となる。低電力半導体デバイスの進展を含み、バッテリー実行時間を延長するために種々の方式が進展してきている。最も著しくバッテリー省電力化する手法の一つは、「スリープモードオペレーション」の手法である。ワイヤレスモバイルデバイスは、ディセーブルされるプロセッササイクルをアプリケーションが必要としない一部の時間の間、ホストプロセッサ機能性の全て又は一部をディセーブルにすることによって、スリープモードに入る。ホストプロセッサは、そのホストプロセッサへの電力が一層ディセーブルされるにつれて、スリープモードオペレーションのますます「より深い」レベルに入ると言われる。
【０００５】
プロセッサがスリープする一方で、アクティブアプリケーションは、一層遅いサイクルに割り当てられ得、或いはどのサイクルにも割り当てられなくてもよい。また、スリープモードオペレーションは、プロセッサをディセーブルにする前に、ポインタ、レジスタ値などを節約するため、及びプロセッサを再開させる際にそれらの値をリトリーブするために、オーバーヘッドサイクルを必要とすることがある。そのため、スリープモードオペレーションの結果、増大されたアプリケーションスタートアップレイテンシー、及び／又はスリープモードに入るときに実行するアプリケーションのための実行レイテンシーとなり得る。ユーザー観点から、バッテリー実行時間は、緩慢なワイヤレスモバイルデバイスでは長く感知され得、敏速なデバイスでは短く感知され得る。注意深いプログラミングトレードオフによって、実行時間に対する性能の最適化を助けることが可能である。
【０００６】
上述したようなものなど、リモートで起動されるネットワークアプリケーションは、レイテンシーセンシティブとなりがちである。例えば、入来ＶＯＩＰコールに関連付けられているリング信号が遅延され得る一方で、スリーピングプロセッサが、起動され、コンテキストをリトリーブし、ネットワークスタックの処理を再開する。ネットワークアプリケーションプログラマーは、幾つかの場合において、複数ワイヤレスモバイルデバイスプラットフォームにわたるアプリケーションの許容可能な性能を確実にするために、スリープモードオペレーションの深いレベルを不認可とし得る。その結果、バッテリードレインが過剰となり得る一方で、このようなアプリケーションは、入来ＶＯＩＰコール、インスタントメッセージなどを待機しつつ、数分、数時間、又はそれ以上継続し得る期間の間、単に待機状態を実行する。他の場合において、ワイヤレスネットワーキングデバイスは、任意のパケットの受信時にホストプロセッサを復帰させるように構成され得、場合によっては、その結果、頻繁な中断スリープ状態となる。
【発明の概要】
【０００７】
本明細書に記載のシステム及び方法は、ホストプロセッサネットワーク通信シーケンスをネットワーキングデバイスプロセッサにオフロードする。入来ネットワークアプリケーションパケットが、フィルタリングされ、応答される一方で、ホストプロセッサを復帰させる。こうすることは、入来ネットワークアプリケーション起動パケットの受信時にホストプロセッサを復帰させる時間を提供する一方で、許容可能なネットワークレイテンシーを提供する。その結果、一層深い及び／又は一層長いホストプロセッサスリープ状態となり得る。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明の種々の例示の実施例に従ったワイヤレスモバイルデバイス１００におけるネットワークアプリケーションプロキシシステムのブロック図である。
【０００９】
【図２】図２は、種々の例示の実施例に従ったネットワークアプリケーションプロキシシステムに関連付けられる典型的なプロセス間通信シーケンスを図示するシーケンス図である。
【００１０】
【図３Ａ】図３Ａは、種々の例示のシーケンスに従ってワイヤレスモバイルデバイスにおけるスリープ状態を延長する方法に関連付けられるフローチャートである。
【図３Ｂ】図３Ｂは、種々の例示のシーケンスに従ってワイヤレスモバイルデバイスにおけるスリープ状態を延長する方法に関連付けられるフローチャートである。
【発明を実施するための形態】
【００１１】
図１は、本発明の種々の例示の実施例に従ったワイヤレスモバイルデバイス１００におけるネットワークアプリケーションプロキシ（ＮＡＰ）システム５０のブロック図である。ＮＡＰシステム５０は、１つ又は複数のネットワークアプリケーションモジュール１０７を実行するホストプロセッサ１０５を含む。ＮＡＰシステム５０は更に、ホストプロセッサ１０５に通信可能に結合されるオペレーティングシステム（ＯＳ）１１０を含む。ＮＡＰシステム５０は更に、ホストプロセッサ１０５に通信可能に結合されるネットワーキングデバイス１１２を含む。幾つかの実施例において、ネットワーキングデバイス１１２は、ワイヤレスネットワーキングモジュールとして実装され得る。幾つかの実施例において、ネットワーキングデバイス１１２は、ホストプロセッサ１０５のサブ要素として含まれ得る。ネットワーキングデバイス１１２は、ネットワークパケットアッセンブリ、送信、受信、及びディスアッセンブリを扱う。
【００１２】
ネットワーキングデバイス１１２は、ネットワーキングデバイスプロセッサ１１５を含む。ネットワーキングデバイスプロセッサ１１５は、ホストプロセッサ１０５に関連付けられる処理サイクルに依存せずに処理サイクルをネットワーキングデバイス１１２に提供する。ＮＡＰモジュール１１６が、下記で更に詳細に説明するように、ホストオフロード可能なパケット交換シーケンスに関連付けられている入来ネットワークパケットをインターセプトしそれに応答する。ＮＡＰモジュール１１６がそのように介入する一方で、ホストプロセッサ１０５は、スリープモード状態であるか又はスリープモード状態間で遷移する。
【００１３】
ＮＡＰシステム５０は、上述のように、１つ又は複数のネットワークアプリケーションモジュール１０７を含む。本開示の文脈において、「ネットワークアプリケーション」は、ワイヤレス通信パケットを介して伝達されるデータを受け取ること及び／又はワイヤレス通信パケットを介して伝達されるべきデータを提供することを含むためにプロセッサにより実行可能なアクティビティのセットを意味する。ネットワークアプリケーションの例には、インスタントメッセージングアプリケーション１２０及びＶＯＩＰアプリケーション１２２が含まれる。
【００１４】
ＮＡＰシステム５０内で動作するコンテキストでは、ネットワークアプリケーションモジュール１０７が、１つ又は複数のＮＡＰ拡張ネットワークＡＰＩ機能コールを発行する。このようなＮＡＰネットワークＡＰＩコールは、以下のようにホストオフロード可能なパケット交換シーケンスを扱うようにＮＡＰシステム５０を構成する。ＯＳ１１０に関連付けられているＡＰＩ処理モジュール１２５が、アプリケーション１０７により発行されるＮＡＰ拡張ネットワークＡＰＩコールを含む、種々のタイプのＡＰＩコールをインターセプトする。
【００１５】
ホストネットワークスタック１２８が、非ＮＡＰ拡張ネットワークＡＰＩ機能コールを介してネットワークアプリケーションモジュール１０７と通信するためにＡＰＩ処理モジュール１２５に通信可能に結合される。ＮＡＰシステム５０は更に、ホストネットワークスタック１２８に通信可能に結合される物理的リンクモジュール１３２を含む。物理的リンクモジュール１３２は、ワイヤレスモバイルデバイス１００においてインバウンドパケットを受け取り、ワイヤレスモバイルデバイス１００からアウトバウンドのパケットを送信する。
【００１６】
ＮＡＰシステム５０は更に、ＡＰＩ処理モジュール１２５に通信可能に結合されるＮＡＰ  ＡＰＩラッパー（wrapper）モジュール１３５を含む。ＡＰＩ処理モジュール１２５は、ＮＡＰ拡張ネットワークＡＰＩコールをＮＡＰ  ＡＰＩラッパーモジュール１３５に渡す。ＮＡＰ  ＡＰＩラッパーモジュール１３５は、ＮＡＰ拡張ＡＰＩ機能コールを受け取り、応答してＮＡＰラッパー機能コールをＮＡＰモジュール１１６に発行する。
【００１７】
ＮＡＰモジュール１１６は、上述のように、ネットワーキングデバイス１１２の構成要素である。ＮＡＰモジュール１１６の交換シーケンス生成器１４２構成要素が、受信フィルタを構成し、送信フィルタをイネーブルにし、ホストオフロード可能なパケット交換シーケンスに関連付けられている１つ又は複数の入来パケットを受け取り、ホストオフロード可能なパケット交換シーケンスに適用可能な送信テンプレートを選択し、送信テンプレートに従い且つ入来パケットに応答して生成される、１つ又は複数の送信パケットのフィールドをポピュレートし、ホストオフロード可能なパケット交換シーケンスの終わりに関連付けられているホスト復帰命令を発行する。
【００１８】
交換シーケンス生成器１４２は受信データバッファ１４６を含む。受信データバッファ１４６は、ホストオフロード可能なパケット交換シーケンスの完了時にホストネットワークスタック１２８に転送するため、入来パケットに関連付けられているデータフィールドをストアする。交換シーケンス生成器１４２は更にシーケンスタイマー１５２を含む。シーケンスタイマー１５２は、いつ各送信パケットを送信するか及びいつホスト復帰命令を発行するかを判定する。
【００１９】
ＮＡＰモジュール１１６は更に、交換シーケンス生成器１４２に通信可能に結合される受信フィルタモジュール１４５を含む。受信フィルタモジュール１４５は、入来パケットが、ホストオフロード可能なパケット交換シーケンスに関連付けられているか否かを判定する。関連付けられている場合、受信フィルタモジュール１４５は、入来パケットを交換シーケンス生成器１４２に渡す。受信フィルタモジュール１４５は、ホストオフロード可能なパケット交換シーケンスに関連付けられていないパケットをＮＡＰモジュール１１６を介してホストネットワークスタック１２８に渡す。
【００２０】
ＮＡＰシステム５０は更に、交換シーケンス生成器１４２に通信可能に結合される送信テンプレートモジュール１４８を含む。送信テンプレートモジュール１４８は、交換シーケンス生成器１４２により選択され得る送信テンプレートのセットをストアする。送信テンプレートモジュール１４８は、交換シーケンス生成器１４２により供給されるフィールドデータを用いて送信パケットをアセンブルする。送信テンプレートモジュール１４８はその後、アウトバウンド送信のため送信パケットを物理的リンクモジュール１３２に送る。
【００２１】
ＮＡＰシステム５０は更に、交換シーケンス生成器１４２に通信可能に結合される送信フィルタモジュール１５５を含む。送信フィルタモジュール１５５は、ＮＡＰ機能性が呼び出されないときアウトバウンド送信のためアウトバウンドパケットを物理的リンク１３２に渡す。送信フィルタモジュール１５５は、ＮＡＰ機能性が呼び出されるとき、アウトバウンドパケットをブロックする。
【００２２】
ＮＡＰシステム５０は更に、交換シーケンス生成器１４２に通信可能に結合されるＮＡＰ構成レジスタ１６０を含む。ＮＡＰ構成レジスタ１６０は、ＮＡＰ初期化において交換シーケンス生成器パラメータをロードする。幾つかの実施例において、ＮＡＰ構成レジスタ１６０は、ＮＡＰ初期化において送信テンプレートのセットをロードするために送信テンプレートモジュール１４８に通信可能に結合される。幾つかの実施例において、ＮＡＰ構成レジスタ１６０は、ＮＡＰ初期化において受信フィルタをロードするために受信フィルタモジュール１４５に通信可能に結合される。
【００２３】
図２は、種々の例示の実施例に従った図１のＮＡＰシステム５０に関連付けられる典型的なプロセス間通信シーケンス２００を図示するシーケンス図である。通信ポイントは、上述したように、アプリケーションモジュール１０７、ＮＡＰ  ＡＰＩラッパーモジュール１３５、ホストネットワークスタック１２８、ＮＡＰモジュール１１６、及び物理的リンクモジュール１３２を含む。例示の目的のためメッセージシンタックスがシーケンス２００に示され、メッセージシンタックスは、種々の実施例の特定の実装に従って変わり得る。
【００２４】
ネットワークアプリケーションモジュール１０７は、ＮＡＰアウェア（aware）であり得、入来ネットワークパケットの受信まで、ホストプロセッサをスリープ状態に入らせることを所望し得る。ネットワークアプリケーションモジュール１０７は、ＮＡＰ拡張ネットワークＡＰＩ機能コール２１０をＮＡＰ  ＡＰＩラッパーモジュール１３５に送ることによってシーケンスを開始する。ＮＡＰモジュール１３５は、類似の、非ＮＡＰ拡張ＡＰＩ機能コール２１５を送ることによってホストネットワークスタック１２８にアクティビティについて通知する。ＮＡＰモジュール１３５は更に、ＮＡＰ  ＡＰＩラッパー機能コール２１８をＮＡＰモジュール１１６に送る。
【００２５】
ＮＡＰ  ＡＰＩラッパー機能コール２１８は、アプリケーションモジュール１０７により発行されるＡＰＩ機能コール２１０に適切なようにＮＡＰモジュール１１６における待機状態を確立する。特に、ＮＡＰラッパー機能コール２１８は、ＮＡＰモジュール１１６における１つ又は複数の受信フィルタ（例えば、受信フィルタ２２５及び２４０）を呼び出す。受信フィルタは、ネットワークアプリケーションモジュール１０７に関連付けられている入来パケットを識別する。受信フィルタは、例えば、プロトコルタイプ、ポート数などのパラメータに基づいて入来パケットを識別し得る。
【００２６】
この例の目的のため、アプリケーションモジュール１０７により発行されるＡＰＩ機能コール２１０は、一般のＴＣＰ  ＳＹＮ−ＳＹＮ／ＡＣＫ−ＡＣＫホストオフロード可能なパケット交換シーケンスを特定すると仮定する。物理的リンクモジュール１３２からＮＡＰモジュール１１６において受信されるパケット２２２が、受信フィルタ２２５によって評価される。パケット２２２が、ＴＣＰプロトコルに対応し、且つ、ＡＰＩ機能コール２１０により及びＮＡＰ  ＡＰＩラッパー機能コール２１８により特定されるポート数にマッチングする、ＳＹＮパケットとして受信フィルタ２２５により識別されると仮定する。ＮＡＰモジュール１１６はその後、アウトバウンドのポートマッチングされたＳＹＮ／ＡＣＫパケット２３０で応答し得、それにより、現在スリープしているホストネットワークスタック１２８の挙動をエミュレートする。ポートマッチングされたＴＣＰ  ＡＣＫパケット２３５がその後、受信フィルタ２４０により受信及び評価され得る
【００２７】
ホストオフロード可能なパケット交換シーケンスの間の適切な時間に、ＮＡＰモジュール１１６はホスト復帰メッセージ２４５を発行する。幾つかの実施例において、ホスト復帰メッセージ２４５は、ＮＡＰラッパーモジュール１３５を横断し得る。ＮＡＰラッパーモジュール１３５はその後、ホストプロセッサを復帰させ得、ｔｒｉｇｇｅｒ＿ｈｏｓｔメッセージ２５０で図示するようにホストネットワークスタック１２８を再びアクティブにし得る。
【００２８】
図３Ａ及び図３Ｂは、種々の例示のシーケンスに従ってワイヤレスモバイルデバイスにおいてスリープ状態を延長する方法３００に関連付けられるフローチャートである。方法３００は、ホストプロセッサがスリープモード状態にあるか又はスリープモード状態間で遷移する一方で、ホストオフロード可能なパケット交換シーケンスに関連付けられている１つ又は複数の入来ネットワークパケットをインターセプトしそれに応答することを含む。
【００２９】
方法３００は、任意選択で、ＮＡＰ構成レジスタのセット（例えば、図１の構成レジスタ１６０）を更新するブロック３０５で開始し得る。方法３００は、ＮＡＰ初期化アクティビティのシーケンスを実行するブロック３０８で継続し、これは、交換シーケンス生成器パラメータをロードすること、送信テンプレートのセットをロードすること、及び受信フィルタをロードすることを含む。
【００３０】
方法３００は、ブロック３１２において、ＮＡＰ  ＡＰＩラッパーモジュールにおいてＮＡＰ拡張ＡＰＩ機能コールを受け取ることを含む。ＮＡＰ拡張ＡＰＩ機能コールは、ネットワーキングアウェアホストアプリケーションにより発行され、ホストオフロード可能なパケット交換シーケンスに関連付けられる。方法３００は更に、ブロック３１５で、ＮＡＰ拡張ＡＰＩ機能コールに応答してＮＡＰ  ＡＰＩラッパーモジュールにおいてＮＡＰラッパー機能コールを発行することを含む。ＮＡＰ拡張ＡＰＩ機能コール及びＮＡＰラッパー機能コールはいずれも、上述したように、受信フィルタパラメータ値を中に含む。受信フィルタパラメータ値は、ホストネットワークアプリケーションにより予期されるホストオフロード可能な交換シーケンスに関連付けられている入来パケットを認識するために、１つ又は複数の受信フィルタを構成するために用いられる。
【００３１】
方法３００は更に、ブロック３１８で、ＮＡＰラッパー機能コールに関連付けられているパラメータに従って、１つ又は複数の受信フィルタを構成すること及び送信テンプレートフィルタセットを選択することを含む。方法３００は更に、ブロック３２２で、未処理のＮＡＰ拡張ＡＰＩコールに関連付けられているアウトバウンドパケットを阻止することを含む。方法３００は更に、ブロック３２４で、ＮＡＰ機能性が呼び出されないときアウトバウンド送信のため送信フィルタから物理的リンクにアウトバウンドパケットを渡すことを含む。
【００３２】
方法３００は、受信フィルタにおいて入来パケットを受け取るブロック３２８で継続する。方法３００は、ブロック３３５で、ホストオフロード可能なパケット交換シーケンスにパケットが関連付けられているか否か判定することを含む。関連付けられていない場合、方法３００は、ブロック３３８で、パケットをホストネットワークスタックに転送することを含む。
【００３３】
受信フィルタがパターンマッチと判定する場合、方法３００は、入来パケットを交換シーケンス生成器に渡すブロック３４０に進む。交換生成器は、入来パケットへの応答を調整することを担う。適切な場合、方法３００は、ブロック３４１で、ホストオフロード可能なパケット交換シーケンスの完了に続いて入来パケットからホストネットワークスタックに転送するためにパケットデータをストアすることを含む。
【００３４】
方法３００は更に、ブロック３４２で、ホストオフロード可能なパケット交換シーケンスに適用可能な送信テンプレートを選択することを含む。方法３００は更に、ブロック３４４で、送信テンプレートに従って１つ又は複数の送信パケットのフィールドをポピュレートすることを含む。送信パケットは、交換シーケンス生成器により供給されるフィールドデータを用いてアセンブルされる。
【００３５】
幾つかの実施例において、方法３００は更に、ブロック３４８で、シーケンスタイマー満了期間を待機すること、その後、ブロック３５２で、アウトバウンド送信のため送信パケットを物理的リンクに送ることを含み得る。こうすることにより、ホストプロセッサ復帰に関与するレイテンシーに関連するシーケンスタイミングにわたる一層良好な制御が可能となり得る。
【００３６】
方法３００は、交換シーケンス生成器に既知の適用可能な交換シーケンスパターン毎に、交換シーケンスが完了したか否かを判定するブロック３５５で継続する。完了していない場合、方法３００は、ブロック３２８で、受信フィルタにおいて付加的なインバウンドパケットを待機すること及びそれを受け取ることを含む。交換シーケンスが完了している場合、方法３００は、ブロック３５８で、ホスト復帰命令を発行することを含む。方法３００の幾つかの実装は、ホスト復帰プロセスに関連付けられるレイテンシーを考慮するため交換シーケンスの完了前にホスト復帰を開始し得ることに留意されたい。
【００３７】
方法３００は、ブロック３６０で、ホストオフロード可能なパケット交換シーケンスの完了に続いて、入来パケットに関連付けられている任意のストアされたデータフィールドをホストネットワークスタックに転送することで終了し得る。方法３００は、図３Ａのブロック３１２で、ネットワークアプリケーションから別のＮＡＰ拡張ＡＰＩコールを受け取ることにより再開し得る。
【００３８】
本明細書に記載されるモジュール及び構成要素は、ハードウェア回路要素、光学的構成要素、単一又はマルチプロセッサ回路、及び／又はメモリ回路を含み得る。開示されるモジュール及び構成要素は更に、その中にストアされたファームウェアを備えた不揮発性メモリを含み、プロセッサにより実行され得るその中／その上に符号化されるコンピュータ命令を備えたコンピュータ可読媒体を含み得るが、非機能性記述内容は除外する。本開示の主題は、ＮＡＰシステム５０及び方法３００の構築により所望とされるような、及び種々の実施例の特定の実装に適切となるような、説明されるモジュール及び構成要素の組み合わせも含み得る。
【００３９】
本明細書に記載されるシステム及び方法は、ワイヤレスモバイルデバイスにおいてスリープモードオペレーションを拡張すること以外の用途に有用であり得る。ＮＡＰシステム５０及び方法３００の例は、種々の実施例の構造及び種々のシーケンスの流れの一般的な理解を提供することが意図されている。これらの種々の実施例は、特に、多層、マルチチップモジュールを含む、コンピュータ、通信及び信号処理回路要素、単一プロセッサ又はマルチプロセッサモジュール、単一又は複数の埋め込みプロセッサ、マルチコアプロセッサ、データスイッチ、及び特定用途向けモジュールにおいて用いられる電子回路要素に統合され得る。このような装置及びシステムは更に、例えば、テレビ、携帯電話、パーソナルコンピュータ（例えば、ラップトップコンピュータ、デスクトップコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータなど）、ワークステーション、ラジオ、ビデオプレーヤ、オーディオプレーヤ（例えば、ＭＰ３（Motion Picture Experts Group、Audio Layer 3）プレーヤ）、車両、医療デバイス（例えば、心拍計、血圧計など）、セットトップボックス、及びその他のものなど、種々の電子的システム内のサブ構成要素として含まれ得る。
【００４０】
本明細書に記載されるシステム及び方法は、ホストプロセッサネットワーク通信シーケンスをネットワーキングデバイスプロセッサにオフロードする。こうすることで、入来アプリケーション起動パケットの受信時にホストプロセッサを復帰させるため時間を提供する一方で、許容可能なネットワークレイテンシーが提供される。その結果、一層深い及び／又は一層長いホストプロセッサスリープ状態となり得る。
【００４１】
当業者であれば、本発明の特許請求の範囲内で、説明した例示の実施例に変形が成され得ること、及び多くの他の実施例が可能であることが分かるであろう。
【図１】
2015510334.tif 000003
【図２】
2015510334.tif 000004
【図３Ａ】
2015510334.tif 000005
【図３Ｂ】
2015510334.tif 000006
【国際調査報告】
2015510334.tif 000007
2015510334.tif 000008