(57)【要約】  システム、方法、および装置の実現は、ＵＳＢ標準規格によって意図されたよりも長い持続時間にわたってリソースの制限をこうむるＵＳＢ規格対応デバイスにとって有用であり得るリソース節約の手法の態様を含む。ここに開示されたシステム、方法、および装置の実現は、ＵＳＢ規格対応デバイスに、ホストとデバイスとの間のＵＳＢ通信からもたらされるインタラプトおよび／または他のオーバーヘッドを選択的に処理することを可能にさせる。現在のリソース利用レベルに部分的に基づいて、いくつかのインタラプトおよび／またはオーバーヘッドを処理しないことにより、デバイスは、ホストから相対的に高いデータ転送速度で入ってくるトラヒックを処理するために必要とされるリソースを解放することができる。 いくつかの実現では、局所的に実現された手法が非効率的であることが判明すると、デバイスは、ホストに対し、下りリンクのデータ転送速度を減じるようオプションで要求することができる。
2013510375.tif 000002
【特許請求の範囲】
【請求項１】
第１のデバイスと第２のデバイスとの間の通信をサポートするために、前記第１のデバイスに位置する対応するリソースの測定値を表す、少なくとも１つの信号を検知することと；
前記少なくとも１つの信号に基づいてリソース利用値を決定することと；
前記リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節することと、なお、前記動作パラメータは前記第１のデバイスによる通信の処理に影響を及ぼす；
を含む方法。
【請求項２】
通信をサポートするために前記第１のデバイスに位置する１つ以上のリソースに基づいて、離散的なリソース利用のレベルを提供すること、および決定すること、のうちの少なくとも１つと、
前記離散的なリソース利用のレベルの各々に関するそれぞれの動作パラメータ値を提供すること、および決定すること、のうちの少なくとも１つと、
をさらに含み、前記動作パラメータを調節することは、前記リソース利用値に少なくとも部分的に基づいて前記動作パラメータに関する前記動作パラメータ値のうちの１つを選択することを含む、
請求項１に記載の方法。
【請求項３】
各々の離散的なリソース利用のレベルは、少なくとも部分的に、下限値および上限値のうちの少なくとも１つによって定められる、請求項２に記載の方法。
【請求項４】
前記少なくとも１つの動作パラメータは、最小インタラプト間隔時間値を含み、連続するインタラプト間の時間の持続時間は、少なくとも、前記選択された最小インタラプト間隔時間値である、請求項２に記載の方法。
【請求項５】
前記選択された最小インタラプト間隔時間値を用いて、データリンクインターフェースによって生成されたインタラプトをゲート制御することをさらに含む、請求項４に記載の方法。
【請求項６】
前記データリンクインターフェースによって生成されたインタラプトは、ソフトウェアインタラプトおよびハードウェアインタラプトのうちの少なくとも１つを含む、請求項５に記載の方法。
【請求項７】
ゲート制御することは、ソフトウェアゲート制御すること、およびハードウェアゲート制御すること、のうちの少なくとも１つを含む、請求項５に記載の方法。
【請求項８】
前記データリンクインターフェースは、ユニバーサルシリアルバス標準規格のリリースのうちの少なくとも１つによって定められたバスインターフェースを含む、請求項５に記載の方法。
【請求項９】
前記少なくとも１つの動作パラメータは、受信されたイベント信号に応じた処理の確率値を含む、請求項２に記載の方法。
【請求項１０】
イベント信号は、データリンクインターフェースによって生成されたインタラプトと、バッファにおけるデータ量がしきい値を超えたとのインジケータと、のうちの少なくとも１つである、請求項９に記載の方法。
【請求項１１】
前記データリンクインターフェースからインタラプトを受信することと、
前記選択された確率値、および前の決定、のうちの１つに少なくとも部分的に基づいて、前記受信されたインタラプトに応じて処理すべきかどうかを決定することと、
をさらに含む、
請求項１０に記載の方法。
【請求項１２】
前記受信されたインタラプトに応じて処理すべきかどうかを決定することは、
前記選択された確率値と、ランダムに発生させられた数と、を比較することと、
前記比較に基づいて前記受信されたインタラプトに応じて処理することと、
をさらに含む、
請求項１１に記載の方法。
【請求項１３】
前記選択された確率値は、受信されたインタラプトに応じて処理しない確率と、受信されたインタラプトに応じて処理する確率と、のうちの１つを含む、請求項１２に記載の方法。
【請求項１４】
前記受信されたインタラプトに応じて処理すべきかどうかを決定することは、
前に受信されたインタラプトの組み合わせに応じて、処理が行われていた場合に、処理しないことを選択することと、
前に受信されたインタラプトの組み合わせに応じて、処理が行われていなかった場合に、処理することを選択することと、
をさらに含む、
請求項１１に記載の方法。
【請求項１５】
前記受信されたインタラプト、および前記バッファにおけるデータ量のしきい値、のうちの１つに応じて処理することは、前記インタラプト、および前記バッファにおけるデータ、のうちの少なくとも１つを処理することを含む、
請求項１１に記載の方法。
【請求項１６】
前記動作パラメータになされた前記調節に応じて、動作性能の変更を評価することと、
前記動作性能の変更の評価に基づいて、前記第１のデバイスおよび第２のデバイス間のデータリンクに関する伝送設定を調節すべきかどうかを決定することと、
前記第２のデバイスに前記伝送設定を変更するための要求を表す信号を送信することと、
をさらに含む、請求項１に記載の方法。
【請求項１７】
デバイスであって、
前記デバイスと第２のデバイスとの間の通信をサポートするために、前記デバイスに位置する対応するリソースの測定値を表す少なくとも１つの信号を検知するように構成された、モニタリングエンティティと；
前記少なくとも１つの信号に基づいてリソース利用値を決定し、
前記リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節する、
ように構成されたコントローラと、なお、前記動作パラメータは前記デバイスによる通信の処理に影響を及ぼす；
を備えるデバイス。
【請求項１８】
前記コントローラは、
通信をサポートするために前記デバイスに位置する１つ以上のリソースに基づいて離散的なリソース利用のレベルを提供すること、および決定すること、のうちの少なくとも１つと；
前記離散的なリソース利用のレベルの各々に関するそれぞれの動作パラメータ値を提供すること、および決定すること、のうちの少なくとも１つと；
を行うようにさらに構成され、
前記動作パラメータを調節することは、前記リソース利用値に少なくとも部分的に基づいて前記動作パラメータに関する前記動作パラメータ値のうちの１つを選択することを備える、
請求項１７に記載のデバイス。
【請求項１９】
各々の離散的なリソース利用のレベルは、少なくとも部分的に、下限値および上限値のうちの少なくとも１つによって定められる、請求項１８に記載のデバイス。
【請求項２０】
前記少なくとも１つの動作パラメータは、最小インタラプト間隔時間値を備え、連続するインタラプト間の時間の持続時間は、少なくとも、前記選択された最小インタラプト間隔時間値である、
請求項１８に記載のデバイス。
【請求項２１】
前記コントローラは、前記選択された最小インタラプト間隔時間値を用いて、データリンクインターフェースによって生成されたインタラプトをゲート制御するようにさらに構成されている、請求項２０に記載のデバイス。
【請求項２２】
前記データリンクインターフェースによって生成されたインタラプトは、ソフトウェアインタラプト、およびハードウェアインタラプト、のうちの少なくとも１つを備える、請求項２１に記載のデバイス。
【請求項２３】
ゲート制御することは、ソフトウェアゲート制御すること、およびハードウェアゲート制御すること、のうちの少なくとも１つを備える、請求項２１に記載の装置。
【請求項２４】
前記データリンクインターフェースは、ユニバーサルシリアルバス標準規格のリリースのうちの少なくとも１つによって定められたバスインターフェースを備える、請求項２１に記載のデバイス。
【請求項２５】
前記少なくとも１つの動作パラメータは、受信されたイベント信号に応じた処理の確率値を備える、請求項１８に記載のデバイス。
【請求項２６】
イベント信号は、データリンクインターフェースによって生成されたインタラプトである、請求項２５に記載のデバイス。
【請求項２７】
前記コントローラは、
前記データリンクインターフェースからインタラプトを受信し、
前記選択された確率値、および前の決定、のうちの１つに少なくとも部分的に基づいて、前記受信されたインタラプトに応じて処理すべきかどうかを決定する、
ようにさらに構成されている、
請求項２６に記載のデバイス。
【請求項２８】
前記受信されたインタラプトに応じて処理すべきかどうかを決定するために、前記コントローラは、
前記選択された確率値と、ランダムに発生させられた数と、を比較し、
前記比較に基づいて前記受信されたインタラプトに応じて処理する、
ようにさらに構成されている、
請求項２７に記載のデバイス。
【請求項２９】
前記選択された確率値は、受信されたインタラプトに応じて処理しない確率と、受信されたインタラプトに応じて処理する確率と、のうちの１つを備える、請求項２８に記載のデバイス。
【請求項３０】
前記受信されたインタラプトに応じて処理すべきかどうかを決定するために、前記コントローラは、
前に受信されたインタラプトの組み合わせに応じて処理が行われていたときに、処理しないことを選択し、
前に受信されたインタラプトの組み合わせに応じて処理が行われていなかったときに、処理することを選択する、
ようにさらに構成されている、
請求項２７に記載のデバイス。
【請求項３１】
前記受信されたインタラプトに応じて処理することは、前記インタラプトおよびデータのうちの少なくとも１つを処理することを備える、請求項２７に記載のデバイス。
【請求項３２】
前記コントローラは、
前記動作パラメータになされた前記調節に応じて、動作性能の変更を評価し、
前記動作性能の変更の評価に基づいて、前記第１のデバイスおよび第２のデバイス間のデータリンクに関する伝送設定を調節すべきかどうかを決定し、
前記第２のデバイスに前記伝送設定を変更するための要求を表す信号を送信する、
ようにさらに構成されている、
請求項１に記載のデバイス。
【請求項３３】
デバイスであって、
前記デバイスと第２のデバイスとの間の通信をサポートするために、前記デバイスに位置する対応するリソースの測定値を表す少なくとも１つの信号を検知するための手段と；
前記少なくとも１つの信号に基づいてリソース利用値を決定するための手段と；
前記リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節するための手段と、なお、前記動作パラメータは前記デバイスによる通信の処理に影響を及ぼす；
を備えるデバイス。
【請求項３４】
通信をサポートするために前記デバイスに位置する１つ以上のリソースに基づいて離散的なリソース利用のレベルを提供するための手段、および決定するための手段、のうちの少なくとも１つと、
前記離散的なリソース利用のレベルの各々に関するそれぞれの動作パラメータ値を提供するための手段、および決定するための手段、のうちの少なくとも１つと
をさらに備え、前記調節するための手段は、前記リソース利用値に少なくとも部分的に基づいて前記動作パラメータに関する前記動作パラメータ値のうちの１つを選択することにより前記動作パラメータを調節するようにさらに構成されている、
請求項３３に記載のデバイス。
【請求項３５】
各々の離散的なリソース利用のレベルは、少なくとも部分的に、下限値および上限値のうちの少なくとも１つによって定められる、請求項３４に記載のデバイス。
【請求項３６】
前記少なくとも１つの動作パラメータは、最小インタラプト間隔時間値を備え、連続するインタラプト間の時間の持続時間は、少なくとも、前記選択された最小インタラプト間隔時間値である、請求項３４に記載のデバイス。
【請求項３７】
前記選択された最小インタラプト間隔時間値を用いて、データリンクインターフェースによって生成されたインタラプトをゲート制御するための手段をさらに備える、請求項３６に記載のデバイス。
【請求項３８】
前記データリンクインターフェースによって生成されたインタラプトは、ソフトウェアインタラプトおよびハードウェアインタラプトのうちの少なくとも１つを備える、請求項３６に記載のデバイス。
【請求項３９】
前記ゲート制御するための手段は、ソフトウェアゲート制御すること、およびハードウェアゲート制御すること、のうちの少なくとも１つを備える、請求項３７に記載のデバイス。
【請求項４０】
前記データリンクインターフェースは、ユニバーサルシリアルバス標準規格のリリースのうちの少なくとも１つによって定められたバスインターフェースを備える、請求項３７に記載のデバイス。
【請求項４１】
前記少なくとも１つの動作パラメータは、受信されたイベント信号に応じた処理の確率値を備える、請求項３４に記載のデバイス。
【請求項４２】
イベント信号は、データリンクインターフェースによって生成されたインタラプトである、請求項４１に記載のデバイス。
【請求項４３】
前記データリンクインターフェースからインタラプトを受信するための手段と、
前記選択された確率値、および前の決定、のうちの１つに少なくとも部分的に基づいて、前記受信されたインタラプトに応じて処理すべきかどうかを決定するための手段と、
をさらに備える、請求項４２に記載のデバイス。
【請求項４４】
前記受信されたインタラプトに応じて処理すべきかどうかを決定するために、前記決定するための手段は、
前記選択された確率値と、ランダムに発生させられた数と、を比較し、
前記比較に基づいて前記受信されたインタラプトに応じて処理する、
ようにさらに構成されている、
請求項４３に記載のデバイス。
【請求項４５】
前記選択された確率値は、受信されたインタラプトに応じて処理しない確率と、受信されたインタラプトに応じて処理する確率と、のうちの１つを備える、請求項４４に記載のデバイス。
【請求項４６】
前記受信されたインタラプトに応じて処理すべきかどうかを決定するために、前記決定するための手段は、
前に受信されたインタラプトの組み合わせに応じて、処理が行われていた場合に、処理しないことを選択し、
前に受信されたインタラプトの組み合わせに応じて、処理が行われていなかった場合に、処理することを選択する、
ようにさらに構成されている、
請求項４３に記載のデバイス。
【請求項４７】
前記受信されたインタラプトに応じて処理することは、前記インタラプト、およびバッファにおけるデータ、のうちの少なくとも１つを処理することを備える、請求項４３に記載のデバイス。
【請求項４８】
前記動作パラメータになされた前記調節に応じて、動作性能の変更を評価するための手段と、
前記動作性能の変更の評価に基づいて、前記第１のデバイスおよび第２のデバイス間のデータリンクに関する伝送設定を調節すべきかどうかを決定するための手段と、
前記第２のデバイスに前記伝送設定を変更するための要求を表す信号を送信するための手段と、
をさらに備える、請求項３３に記載のデバイス。
【請求項４９】
非一時的なメモリに記憶された命令を備えたコンピュータ可読媒体を備えるコンピュータプログラム製品であって、前記命令は、実行されるとき、装置に、
第１のデバイスと第２のデバイスとの間の通信をサポートするために、前記第１のデバイスに位置する対応するリソースの測定値を表す少なくとも１つの信号を検知させ、
前記少なくとも１つの信号に基づいてリソース利用値を決定させ、
前記リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節させ、なお、前記動作パラメータは前記第１のデバイスによる通信の処理に影響を及ぼす、
コンピュータプログラム製品。
【請求項５０】
実行されるとき、前記装置に、
通信をサポートするために前記第１のデバイスに位置する１つ以上のリソースに基づいて離散的なリソース利用のレベルを提供すること、および決定すること、のうちの少なくとも１つを行なわせ、
前記離散的なリソース利用のレベルの各々に関するそれぞれの動作パラメータ値を提供すること、および決定すること、のうちの少なくとも１つを行なわせる、
前記非一時的なメモリに記憶された命令をさらに備え、
前記動作パラメータを調節することは、前記リソース利用値に少なくとも部分的に基づいて前記動作パラメータに関する前記動作パラメータ値のうちの１つを選択することを備える、
請求項４９に記載のコンピュータプログラム製品。
【請求項５１】
各々の離散的なリソース利用のレベルは、少なくとも部分的に、下限値および上限値のうちの少なくとも１つによって定められる、請求項５０に記載のコンピュータプログラム製品。
【請求項５２】
前記少なくとも１つの動作パラメータは、最小インタラプト間隔時間値を備え、連続するインタラプト間の時間の持続時間は、少なくとも、前記選択された最小インタラプト間隔時間値である、請求項５０に記載のコンピュータプログラム製品。
【請求項５３】
実行されるとき、装置に、
前記選択された最小インタラプト間隔時間値を用いて、データリンクインターフェースによって生成されたインタラプトをゲート制御させる、
非一時的なメモリに記憶された命令をさらに備える、
請求項５２に記載のコンピュータプログラム製品。
【請求項５４】
前記データリンクインターフェースによって生成されたインタラプトは、ソフトウェアインタラプトおよびハードウェアインタラプトのうちの少なくとも１つを備える、請求項５３に記載のコンピュータプログラム製品。
【請求項５５】
ゲート制御することは、ソフトウェアゲート制御すること、およびハードウェアゲート制御すること、のうちの少なくとも１つを備える、請求項５３に記載のコンピュータプログラム製品。
【請求項５６】
前記データリンクインターフェースは、ユニバーサルシリアルバス標準規格のリリースのうちの少なくとも１つによって定められたバスインターフェースを備える、請求項５３に記載のコンピュータプログラム製品。
【請求項５７】
前記少なくとも１つの動作パラメータは、受信されたイベント信号に応じた処理の確率値を備える、請求項５０に記載のコンピュータプログラム製品。
【請求項５８】
イベント信号は、データリンクインターフェースによって生成されたインタラプトである、請求項５７に記載のコンピュータプログラム製品。
【請求項５９】
実行されるとき、前記装置に、
前記データリンクインターフェースからインタラプトを受信させ、
前記選択された確率値、および前の決定、のうちの１つに少なくとも部分的に基づいて、前記受信されたインタラプトに応じて処理すべきかどうかを決定させる、
前記非一時的なメモリに記憶された命令、
をさらに備える、請求項５８に記載のコンピュータプログラム製品。
【請求項６０】
前記受信されたインタラプトに応じて処理すべきかどうかを決定するために、前記非一時的なメモリに記憶された命令は、実行されるとき、前記装置に、
前記選択された確率値と、ランダムに発生させられた数と、を比較させ、
前記比較に基づいて前記受信されたインタラプトに応じて処理させる、
命令、
をさらに備える、
請求項５９に記載のコンピュータプログラム製品。
【請求項６１】
前記選択された確率値は、受信されたインタラプトに応じて処理しない確率と、受信されたインタラプトに応じて処理する確率と、のうちの１つを備える、請求項６０に記載のコンピュータプログラム製品。
【請求項６２】
前記受信されたインタラプトに応じて処理すべきかどうかを決定するために、前記非一時的なメモリに記憶された命令は、実行されるとき、前記装置に、
前に受信されたインタラプトの組み合わせに応じて、処理が行われていたときに、処理しないことを選択させ、
前に受信されたインタラプトの組み合わせに応じて、処理が行われていなかったときに、処理することを選択させる、
命令、
をさらに備える、
請求項５９に記載のコンピュータプログラム製品。
【請求項６３】
前記受信されたインタラプトに応じて処理することは、前記インタラプト、およびバッファにおけるデータ、のうちの少なくとも１つを処理することを備える、請求項５９に記載のコンピュータプログラム製品。
【請求項６４】
実行されるとき、前記装置に、
前記動作パラメータに対し行なわれた前記調節に応じて、動作性能の変更を評価させ、
前記動作性能の変更の評価に基づいて、前記第１のデバイスおよび第２のデバイス間のデータリンクに関する伝送設定を調節すべきかどうかを決定させ、
前記第２のデバイスに前記伝送設定を変更するための要求を表す信号を送信させる、
前記非一時的なメモリに記憶された命令、
をさらに備える、
請求項４９に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【優先権の主張】
【０００１】
本特許出願は、２００９年１１月６日に出願された「ＵＳＢ規格対応デバイスのためのリソース節約の手法(“RESOURCE CONSERVATION STRATEGIES FOR USB COMPLIANT DEVICES”)」と題する米国仮特許出願第６１／２５９，０５４号、および２００９年１１月９日に出願された「ＵＳＢ規格対応デバイス(“RESOURCE CONSERVATION STRATEGIES FOR USB COMPLIANT DEVICES”)のためのリソース節約の手法」と題する米国仮特許出願第６１／２５９，３２３号の両方の優先権を主張し、これらの両方は、ここにおいて参照により、明示的にここに組み込まれる。
【背景】
【０００２】
（分野）
本願は、デバイス間の通信を調整すること(regulating)に関し、特に、データ通信プロトコル規格対応デバイス(data communication protocol compliant devices)のためのリソースの節約(resource conservation)に関する。
【０００３】
（背景）
ユニバーサルシリアルバス（ＵＳＢ）標準規格(The Universal Serial Bus (USB) standard)は、電子周辺デバイスをホストデバイスに接続するためのデータ通信プロトコルを定めている(defines)。ＵＳＢ標準規格(USB standard)には、これまでに３つのリリース（ＵＳＢ１．０、ＵＳＢ２．０、およびＵＳＢ３．０）がある。ＵＳＢ標準規格は当初、コンピュータにおける標準的ではないシリアルデータポートおよびパラレルデータポートに取って代わるものと考えられていたが、それは、さまざまなデバイスドライバの開発と維持を要求した。しかしながら、その後のＵＳＢ標準規格の普及により、ＵＳＢポートは、テレビゲーム機器、ＤＶＤプレイヤー、スマートフォン、および広くさまざまな他の家庭用電化製品で標準的な特徴となった。
【０００４】
周辺機器は、しばしば機能と呼ばれ、他のコンピュータ、およびキーボード、スキャナ、デジタルカメラ、プリンタ、外部記憶装置、等といったデバイスを含むことができる。ＵＳＢ標準規格は、ホストの電源を落としたりホストを再起動したりせずに、周辺デバイスをホストに接続し、ホストから取り外せるようにする、プラグ・アンド・プレイ能力を可能にする。まして、ホストは、デバイスが初めて接続された場合、エニュメレーション（enumeration）を行って、それを認識し、そのデバイスに必要なデバイスドライバをロードする。そして、ホストおよび接続された周辺機器は、互いにデータを通信することができる。
【発明の概要】
【０００５】
付属の特許請求の範囲に含まれるシステム、方法、デバイスのさまざまな実施形態の各々は、いくつかの態様を有するが、そのうちのどれ一つとして、ここに説明された所望の特徴に単独で寄与するものはない。いくつかの顕著な特徴が、付属の特許請求の範囲を限定することなく、ここに説明される。この説明を考慮した上で、特に、「詳細な説明」と題するセクションを読むと、ページチャネル等のモニタリングを管理するために、さまざまな実施形態の特徴がどのように使用されるかが理解されるだろう。
【０００６】
本開示の一態様は、方法の実現(implementation)であり、その方法は、第１のデバイスと第２のデバイスとの間の通信をサポートするために、第１のデバイスに位置する対応するリソースの測定値を表す少なくとも１つの信号を検知することと、少なくとも１つの信号に基づいてリソース利用値(a resource utilization value)を決定することと、リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節することとを含み、動作パラメータは第１のデバイスによる通信の処理に影響を及ぼす。
【０００７】
本開示の別の態様は、デバイスの実現(implementation)であり、そのデバイスは、そのデバイスと第２のデバイスとの間の通信をサポートするために、そのデバイスに位置する対応するリソースの測定値を表す少なくとも１つの信号を検知するように構成されたモニタリングエンティティを含む。上記デバイスはまた、上記少なくとも１つの信号に基づいてリソース利用値を決定し、リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節するように構成されたコントローラを含み、動作パラメータは上記デバイスによる通信の処理に影響を及ぼす。
【０００８】
本開示のさらに別の態様は、デバイスの実現(implementation)であり、そのデバイスは、そのデバイスと第２のデバイスとの間の通信をサポートするために、そのデバイスに位置する対応するリソースの測定値を表す少なくとも１つの信号を検知するための手段と、少なくとも１つの信号に基づいてリソース利用値を決定するための手段と、リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節するための手段とを含み、動作パラメータは上記デバイスによる通信の処理に影響を及ぼす。
【０００９】
本開示のさらに別の態様は、コンピュータプログラム製品の実現(implementation)であり、そのコンピュータプログラム製品は、非一時的なメモリに記憶された命令を備えたコンピュータ可読媒体を含み、その命令は、実行されると、装置に、第１のデバイスと第２のデバイスとの間の通信をサポートするために、第１のデバイスに位置する対応するリソースの測定値を表す少なくとも１つの信号を検知させ、少なくとも１つの信号に基づいてリソース利用値を決定させ、リソース利用値に少なくとも部分的に基づいて動作パラメータ値を選択することにより動作パラメータを調節させ、動作パラメータは第１のデバイスによる通信の処理に影響を及ぼす。
【図面の簡単な説明】
【００１０】
本開示の特徴を詳しく理解することができるように、上で簡潔にまとめられた説明が、態様を参照してより詳細に行われ、それらの態様のうちのいくつかは付属の図面に示される。しかしながら、その説明は、他の等しく有効な態様にも許容されうるので、本開示のある特定の典型的な態様のみを示す添付の図面は、その範囲を限定するものとして考慮されるべきではないということに留意すべきである。
【図１】図１は、ＵＳＢシステムの簡略化されたブロック図である。
【図２】図２は、周辺デバイスの実現(implementation)の簡略化されたブロック図である。
【図３】図３は、周辺デバイスの実現の簡略化されたブロック図である。
【図４】図４は、周辺デバイスの実現の簡略化されたブロック図である。
【図５】図５は、周辺デバイスの実現の簡略化されたブロック図である。
【図６】図６は、方法の実現のフローチャートである。
【図７】図７は、方法の実現のフローチャートである。
【図８】図８は、方法の実現の信号図である。
【００１１】
慣例にならって、図に示したさまざまな特徴は、一定の比例に縮小されて描かれていない。したがって、さまざまな特徴の大きさは、わかりやすくするために、任意に拡大または縮小されうる。さらに、図のいくつかは、所与のシステム、方法、またはデバイスのコンポーネントのすべてを示していない場合もある。最後に、同様の参照番号は、明細書および図面を通して同様の特徴を表すために使用されることができる。
【詳細な説明】
【００１２】
付属の特許請求の範囲に含まれる実施形態のさまざまな態様が、下記に説明される。ここに説明される態様が、広くさまざまな形で具現化されうること、ここに説明される任意の特定の構造および／または機能が、単に代表例であるということが理解されるべきである。本教示に基づいて、当業者は、ここに説明された態様が、任意の他の態様から独立して実現され得る(may be implemented)こと、これらの態様のうちの２つ以上が、さまざまな手法で組み合わせられ得ることを理解すべきである。たとえば、ここで説明される任意の数の態様を使用して、装置が実現される(implemented)ことができ、および／または、方法が実施される(practiced)ことができる。 さらに、ここに説明された態様のうちの１つ以上に追加された、または、ここに説明された態様のうちの１つ以上とは異なる、他の構造および／または機能を用いて、そのような装置が実現され、および／または、そのような方法が実施されうる。
【００１３】
特定の態様がここに説明されるが、これらの態様の多くの変形および置き換えが、本開示の範囲に含まれる。好ましい態様のいくつかの利点および長所が説明されるが、本開示の範囲は、特定の利点、使用、および目的に限定されることを意図しない。むしろ、本開示の態様は、異なる無線技術、システム構成、ネットワーク、および伝送プロトコルに広く適用可能であることが意図され、そのうちのいくつかは、図面と以下の好ましい態様の説明において例として説明される。詳細な説明および図面は、限定的なものではなく、単に本開示を例示したものであり、本開示の範囲は、付属の特許請求の範囲およびその同等物によって定義される。
【００１４】
上述したように、ＵＳＢポートは、デバイスがホストコントローラにインターフェース接続することを可能にするために、および／または、デバイスどうしが互いにインターフェース接続することを可能にするために、今や、広くさまざまな電子デバイスに標準的な特徴として含まれている。ホストは、典型的には、コンピュータであるが、多くの適用例において、ホストは、テレビゲーム機器、スマートフォン、カメラ、タブレットコンピュータ、または任意の他の電子デバイスであることもできる。ホストとインターフェース接続することができるデバイスにも、さまざまなタイプのものがある。たとえば、周辺デバイスは、ハブ、他のコンピュータ、マウスデバイス、キーボード、スキャナ、デジタルカメラ、プリンタ、外部記憶装置、等を含む。
【００１５】
当業者は、ホストデバイスとみなされうるデバイスのタイプの多くが周辺デバイスともみなされうること、その逆も言えるということを、本開示から理解するであろう。つまり、ホストと周辺デバイスは、同一のタイプのデバイスであることができる。ＵＳＢ標準規格は、ＵＳＢ標準規格によって２つのデバイス間に確立されたデータリンクに対し、２つのデバイスのうちのどちらが、相対的により主要な制御を有するかを識別する便宜上の手法として、「ホスト」と「周辺デバイス」という名称を規定している。ホストがＵＳＢデータリンクの主たるコントローラ（primary controller）として機能する一方で、周辺デバイスは、仮に有するとしても従属的な制御（secondary control）を有する。
【００１６】
さらに、ＵＳＢシステムにおけるデバイスは、しばしば層状のスター型トポロジーで、ＵＳＢホストに接続されている。そのような構成において、ＵＳＢシステムは、ポーリング方式のバスを含み、ホストコントローラは、そのバスで全通信を管理し、かつ、デバイスの接続および／または取り外しによる変化がないか、そのバス型トポロジーをモニタリングする、１つのＵＳＢコントローラを含む。
【００１７】
ＵＳＢシステムは、バスに接続された複数の周辺機器をサポートするが、ＵＳＢプロトコルは、ポイントツーポイントプロトコルである。すなわち、１つのホストが一度にデータを送ることができるのは、一意的にアドレス指定された１つのデバイスである。したがって、さまざまなデバイスのためのデータは、各デバイスがその時間スロットの間にデータを送受信することができるように、時間多重される。
【００１８】
ＵＳＢシステムは、一般的に、１ミリ秒長のフレームを定めている。そのフレーム内で、ＵＳＢシステムは、バス上のデバイスの多くに、または、すべてに、異なる時間スロットを割り当てることができる。各デバイスが一意的なアドレスを有するため、デバイスは、送信されたデータがそれに宛てられたものであることがわかり、または、各デバイスが送信データとともにその一意的なアドレスを供給するので、ホストは、どのデバイスからデータが受信されたかがわかる。
【００１９】
図１は、単一のホスト１１０および単一のデバイス１２０を示した簡易なＵＳＢシステム１００の簡略化されたブロック図である。上述したように、当業者は、１つ以上のデバイスがホストに接続されうること、また、ここに開示される実現のより適切な態様を単に示すために、図１に１つのデバイスが示されていることを、理解するだろう。
【００２０】
ホスト１１０およびデバイス１２０は、上りリンク１２４ａおよび下りリンク１２４ｂを共有する。上りリンクは、デバイス１２０からホスト１１０へのデータ通信に使用される。下りリンクは、ホスト１１０からデバイスへのデータ通信に使用される。上りリンク１２４ａおよび下りリンク１２４ｂは、別個の接続のように示されているが、当業者は、上りリンク１２４ａおよび下りリンク１２４ｂが、ホスト１１０とデバイス１２０との間の同一の物理的な接続上に存在しうることを理解するだろう。上りリンク１２４ａおよび下りリンク１２４ｂは、典型的には、ホスト１１０によって管理されるＵＳＢバスに含まれる。デバイス１２０は、また、バッファ１２１を含み、バッファ１２１は、少なくとも、下りリンク１２４ａを介して受信されたデータを一時的に記憶するために使用される。
【００２１】
多くのＵＳＢバス・トランザクションは、３つのパケットを含む。ホスト１１０は、トランザクションのタイプと方向、デバイスのアドレス、およびエンドポイント番号を記述したトークンパケットを送る。アドレス指定されたデバイス１２０は、トークンパケットからそのアドレスを認識する。データは、トークンパケットにおいて指定された方向に基づき、ホスト１１０からアドレス指定されたデバイス１２０へ、または、アドレス指定されたデバイス１２０からホスト１１０へ、転送される。多くの場合、データの宛先は、転送されたデータの受信ステータスを表すハンドシェイクパケットを用いて応答し、それは、下記においてさらに詳細に説明される。
【００２２】
動作において、デバイス１２０が初めてホスト１１０に接続された場合、デバイス１２０は、ホスト１１０による使用のためにデバイス１２０をセットアップするための、および、いくつかの実現ではそのクライアントソフトウェアをセットアップするための、初期設定、エニュメレーション、およびコンフィギュレーションの処理を受ける。
【００２３】
ＵＳＢ標準規格は、ＵＳＢリンクで約４８０Ｍｂｐｓ（生データ転送速度（raw data-rates））のデータ転送速度をサポートする便利な規格化インターフェース(convenient standardized interface)を提供するが、相対的に高いデータ転送速度は、限られたリソースを有するデバイスに特有の課題を提起する。ＵＳＢ２．０標準規格は、周辺デバイスに対し、ホストから入ってくるデータフローの速度を制御するための限られたセットのメカニズムのみ(only a limited set of mechanisms)を提供する。しかしながら、このフロー制御メカニズムがもたらす効果は限られており、周辺デバイスによって利用可能なリソースが相対的に長い持続時間にわたっておよび／または恒久的に限られている場合、リソースの制約によってもたらされる制限は悪化する。たとえば、いくつかのデバイスは、限られたリソースを有するハンドヘルドデバイスおよび／またはポータブルデバイスでありうる。これらのリソースは、利用可能な動作電力、相対的に少ないメモリの割り当て、処理能力を含みうるが、これらに限定されない。
【００２４】
より具体的には、現在利用可能なＵＳＢフロー制御メカニズムは、デバイスによって利用可能なリソースにおける一時的な制約によってもたらされる、短期間の高い要求を緩和するように設計されたものである。すなわち、現在利用可能なＵＳＢ２．０標準規格は、フロー制御メカニズムをトリガするリソースの制約が短時間にわたり持続するという仮定に基づいて設計された基本的なフロー制御メカニズムを提供する。利用可能なフロー制御メカニズムは、周辺デバイスが、利用可能なバッテリー電力といった限られたリソースを有する、という状況に適した解決策を提供しない。
【００２５】
さらに図１を参照すると、ＵＳＢ標準規格によれば、そのような１つのフロー制御メカニズムは、ホスト１１０からデバイス１２０へのリンクで送られた、どのデータ／制御トラヒックのセグメントも、３つの考えられる手法のうちの１つで確認応答されなくてはならないと規定している。第一に、デバイス１２０は、データがエラーなく受信された場合、肯定応答（ＡＣＫ）を送る。第二に、デバイス１２０は、ホスト１１０に対し、ＵＳＢリンクで、巡回冗長検査（ＣＲＣ）の失敗、データのエラー受信および／または破損を表すために、否定応答（ＥＲＲ）を送る。第三に、デバイス１２０は、ホスト１１０をフロー制御するために、ホスト１１０にＮＡＫ信号を送ることができる。
【００２６】
デバイス１２０からホスト１１０へのＮＡＫ信号は、デバイス１２０が、一時的なリソースの制約により、入ってくるデータを処理できないことを、ホスト１１０に示すものである。ホストは、この処理において、次のマイクロフレームでデバイス１２０からさらなるＮＡＫがトリガされるのと同じくらい早く、再送を試みうる。
【００２７】
各ＮＡＫ送信は、バッテリー電力とＵＳＢリンクの帯域幅を消耗することになるので、このシステムは、電源内蔵型で少なくとも利用可能なバッテリー電力による制約があるポータブルデバイスにとって非効率である。その代わりに、ＵＳＢ標準規格で定められているＰＩＮＧプロトコルが、バスでの過度なＮＡＫトラヒックの生成を減じるのに有用だが、このメカニズムでさえ、フロー制御メカニズムをトリガしたリソースの制約が短期間にわたって生じるという仮定に基づいている。したがって、デバイスのリソースが長期にわたる時間期間のあいだ制約されている場合には、ＰＩＮＧプロトコルでさえ極めて非効率である。しかし、ポータブルデバイスの初期構成からすると、利用可能なバッテリー電力、メモリ、処理能力といったリソースは、ポータブルデバイスにおいて、しばしば、長い持続時間にわたっておよび／または恒久的に限られている。
【００２８】
システム、方法、および装置の実現は、ＵＳＢ標準規格(USB standards)によって意図された持続時間よりも長い持続時間にわたりリソースの制限をこうむるＵＳＢ規格対応デバイス(a USB compliant device)にとって有用でありうる、リソース節約の手法の態様を含む。ここに開示されたシステム、方法、および装置の実現により、ＵＳＢ規格対応デバイスは、ホストとデバイスとの間のＵＳＢ通信からもたらされるインタラプト(interrupts)および／または他のオーバーヘッド(other overhead)を選択的に処理することが可能になる。現在のリソース利用レベルに部分的に基づいて、いくつかのインタラプトおよび／または他のオーバーヘッドを処理しないことにより、デバイスは、ホストから相対的に高いデータ転送速度で入ってくるトラヒックを処理するために必要とされるリソースを解放することができる。いくつかの実現では、局所的に実現された手法が非効率的であることが判明すると、デバイスは、ホストに対し、下りリンクのデータ転送速度を減じるようオプションで要求することができる。
【００２９】
図２は、周辺デバイス１２０の実現の簡略化されたブロック図である。図２に示されたデバイス１２０は、図１に示されたデバイス１２０に似ており、図１に示されたデバイス１２０から適応されている。したがって、簡略のため、両デバイスに共通のエレメントは、共通の参照番号を共有し、両デバイス間の相違のみが、ここで説明される。図２を参照すると、デバイス１２０は、上記バッファ１２１と、上述した上りリンク／下りリンク接続１２４ａ，ｂに加え、ＵＳＢバスインターフェース１２３、ＵＳＢ論理デバイス１２５、および機能エレメント１２７を含む。当業者は、ＵＳＢ規格対応デバイスが他のコンポーネントを含みうることを理解するだろうが、図２に示したデバイス１２０は、より付属の特許請求の範囲内での実現の態様に関連のある、それらのコンポーネントを含んでいる。
【００３０】
ＵＳＢバスインターフェース１２３、ＵＳＢ論理デバイス１２５、および機能エレメント１２７は、デバイス１２０のＵＳＢスタックを含む。動作において、バスインターフェース１２３は、物理的なデータ伝送（すなわち、ホストとのリンクを介したパケットの送信／受信）の役割を担い、ＵＳＢ論理デバイス１２５は、バスインターフェース１２３とデバイス１２０の個々のエンドポイントとの間でパケットをルーティングする役割を担う。機能エレメント１２７は、デバイス１２０（たとえば、デジタルカメラ）によって提供される実際の機能を表す。
【００３１】
機能エレメント１２７は、リソース１２８を含む。リソース１２８は、非限定的に、メモリ１３１、プロセッサ１３３（またはコントローラ）、およびデバイス１２０の電源の役割を果たすバッテリー１３５を含む。当業者は、リソース１２８が、バスインターフェース１２３や論理デバイス１２５といった、デバイスに含まれた他のコンポーネントによって共有されうること、リソース１２８は、単に考えられる１つの実現として機能エレメント１２７内に示されているだけであることを、本開示から理解するだろう。
【００３２】
動作において、バスインターフェース１２３は、データの転送が首尾よく(successfully)完了すると、上位層にインタラプトを送る。インタラプトの頻度は、しばしば実現ごとに固有(implementation specific)である。たとえば、ＵＳＢ２．０は、マイクロフレーム境界（micro-frame boundaries）で動作し、ここで、各マイクロフレームは、１２５マイクロ秒長である。マイクロフレーム境界でのインタラプトは、普通、大きい処理オーバーヘッドという結果を招く。したがって、多くのＵＳＢデバイスは、ミリ秒（ｍｓｅｃ）の境界、またはＵＳＢによって定められたフレーム境界(the USB defined frame boundaries)といった、より少ないインタラプト頻度で動作する。連続するインタラプト間の最小間隔(minimum interval)はしばしば、最小インタラプト間隔時間(minimum interrupt interval time)と呼ばれる。バスコントローラからのインタラプトに応じて、データフェーズ中に、論理デバイス１２５は、ホストから受信されていたかもしれない、バッファ１２１における利用可能な任意のデータを処理する。この処理は、デバイス１２０の処理能力、メモリ、等を含むがこれらに限定されないリソースを消費する。上述したように、現在利用可能なＵＳＢ標準規格は、デバイス１２０のリソース１２８が、相対的に長い持続時間にわたって制約されている、および／または限られている、という状況に適した解決策を提供するフロー制御メカニズムを提供しない。
【００３３】
図３は、周辺デバイス１２０の実現の簡略化されたブロック図である。図２に示されたデバイス１２０は、図１に示されたデバイス１２０に似ており、図１に示されたデバイス１２０から適応されたものである。したがって、簡略のため、両デバイスに共通のエレメントは、共通の参照番号を共有し、両デバイス間の相違のみが、ここで説明される。図３を参照すると、デバイス１２０は、モニタリングエンティティ(a monitoring entity)１５０とインタラプトプロセッサ(an interrupt processor)とをさらに含む。
【００３４】
インタラプトモニタリングエンティティ(interrupt monitoring entity)１５０は、リソース１２８のうちの１つ以上に対応する測定値を表す信号を検知する。下記においてさらに詳細に説明されるように、この信号のうちの１つ以上は、リソース利用値に変換される。このリソース利用値は、次いで、インタラプトプロセッサ１４０に供給される。インタラプトプロセッサ１４０は、バスインターフェース１２３によって生成されたインタラプトに応じてどのように処理を行うかを調節する。いくつかの実現において、インタラプトプロセッサ１４０はまた、しきい値レベルを超えたバッファ内のデータの処理をどのように行うかを調節する。
【００３５】
１つの実現において、総リソース利用可能度(the total resource availability)は、Ｎ段階のレベルまたはビンに量子化される。これらのレベルは、インデックスｎ（ここで、１≦ｎ≦Ｎ）によって指定されうる。すなわち、ｒが、問題となっているリソースの利用パーセンテージを表すとすると、レベルｎは、ｒがＴｈＭＡＸ＿ｎ−１＜ｒ≦ＴｈＭＡＸ＿ｎの範囲にあるケースに対応し、ここで、ＴｈＭＡＸ＿ｎは、インデックスｎによって表される特定のビンのためのリソース利用の上限値(the upper threshold of resource utilization)を表す。
【００３６】
１つの実現において、このレベルは、漸進的に増加するリソース利用のレベル(progressively increasing levels of resource utilization)を表す。すなわち、ＴｈＭＡＸ＿ｎ−１＜ＴｈＭＡＸ＿ｎである。しかしながら、当業者は、本開示から、このレベルが、漸進的に減少するリソース利用のレベルを示すことを含んだ、レベル間で多くの他の関係が定められうること、を理解するだろう。
【００３７】
１つの実現において、各レベルには、バスインターフェース１２３によって生成されたインタラプトをゲート制御する(gate)ために使用されうる最小インタラプト間隔時間値が割り当てられる。たとえば、動作において、リソースの利用が特定のしきい値を超えた場合、デバイス１２０は、リソースの消費を少なくする必要があり得る。このしきい値を超えると、デバイスは、自立的に、バスコントローラ１２３からのインタラプト頻度をより少ないインタラプト頻度に適応的に切り替えることにより、リソースを節約することを選び得る。これは、現在のリソース利用レベルに基づいて選ばれたビンｎに対応する最小インタラプト間隔時間値を動的に変更することによって、達成されることができる。この処理は、図６を参照してさらに説明される。
【００３８】
インタラプト頻度が変わるにつれ、リソースの利用が増えるので、デバイス１２０は、待ち時間(latencies)を犠牲にしてアグリゲーション(aggregation)から利益を達成する(As the interrupt frequency changes, the device 120 achieves gains from aggregation at the cost of latencies as the resource utilization increases.)。一方、リソース利用レベルが減少すると、デバイス１２０は、インタラプト頻度をノーマルなレベルまで引き上げ戻す。これは、ノーマルな動作状況下でのデバイス１２０の待ち時間を減じることを可能にする。
【００３９】
入ってくるデータ転送速度が与えられたリソース利用の所定のレベルで、バッファ１２１がオーバーフローしないように、各レベルのための最小インタラプト間隔の値は、さらに選ばれることができる。デバイス１２０は広くさまざまな機能を有しうるので、それぞれのレベルのための最小インタラプト間隔値は、特定の実現に依存する。
【００４０】
別の実現においては、各レベルは、受信されたイベント信号(a received event-signal)、例えば、インタラプト、および／または、しきい値を突破するバッファにおけるデータ量(the amount of data in a buffer breaching a threshold)、に応じた処理の確率値(a probability value of processing)が割り当てられる。言い換えると、インタラプトサービスルーチンは、Ｐの確率で、データ転送をシグナリングするインタラプトを処理することができる。すなわち、データ転送の終了を表すインタラプトは、（１−Ｐ）の確率で、データの損失なしにデバイス１２０によって自立的にドロップされうる。この処理のより詳細な例は、図７を参照し、下記において説明される。
【００４１】
ここでも、デバイス１２０は多種多様の機能を有しうるので、各レベルでのＰの値は、バッファのオーバーフローに起因する任意の考えられるデータの損失を避けるために利用可能なハードウェアバッファのサイズを含み、特定の実現に依存する。さらに、いくつかの実現において、Ｐの値はまた、デバイスで使用されている、現在のリソース利用レベルおよび最小インタラプト間隔時間値を考慮に入れる。
【００４２】
さらに、別の実現では、インタラプトは、前に受信されたＭ個の連続するインタラプトが実行（service）されていなかった場合、バッファのオーバーフローに起因するデータの損失を少なくするため、および／または防ぐために、自動的に実行（service）される。すなわち、実行されていないＭ個の連続するインタラプトの後には、デバイスのバッファがオーバーフローするリスクがある。このリスクを減じるために、次のインタラプトは、自動的に実行される。実行されていないＭ個の連続するインタラプトにヒットする確率は、所与のレベルのための確率値Ｐに依存する。
【００４３】
ここに開示されるさまざまな手法は、ソフトウェア、ハードウェア、ファームウェア、またはそれらの組み合わせのいずれかで実現されうる。図４は、図３に示したデバイス１２０におけるソフトウェアの実現の簡略化されたブロック図である。図２に示されたデバイス１２０は、図１に示されたデバイス１２０に似ており、図１に示されたデバイス１２０から適応されている。 したがって、簡略のために、両デバイスに共通のエレメントは、共通の参照番号を共有し、両デバイス間の相違のみが、ここで説明される。
【００４４】
図４を参照すると、デバイス１２０は、ハードウェアインタラプトを生成するハードウェアコンポーネント１６０を含む。１つの実現において、ハードウェアコンポーネント１６０は、少なくとも（図３に示した）バスインターフェース１２３の一部を含む。デバイス１２０はまた、２つのソフトウェアモジュールを含む。１つは、インタラプトマネジャモジュール１４１であり、もう１つは、インタラプトを処理するソフトウェアモジュール１４２である。
【００４５】
動作において、インタラプトマネジャ１４１は、モニタリングエンティティからリソース利用値を受信する。それに応じて、インタラプトマネジャ１４１は、上述した実現のうちの１つに基づいて、最小インタラプト間隔時間値と確率値のうちの１つを選択し、その値をインタラプトを処理するソフトウェア１４２に供給する。それに応じて、インタラプト処理ソフトウェア(interrupt processing software)１４１は、新たな最小インタラプト間隔時間値を用いてハードウェアインタラプトをゲート制御するか、または、確率値を使用してハードウェアインタラプトをドロップすべきかどうかを決定する。
【００４６】
図５は、図３に示したデバイス１２０の別の代替の実現の簡略化された部分ブロック図である。図２に示されたデバイス１２０は、図１に示されたデバイス１２０と似ており、図１に示されたデバイス１２０から適応されている。したがって、簡略のため、両デバイスに共通のエレメントは、共通の参照番号を共有し、両デバイス間の相違のみが、ここで説明される。
【００４７】
図５を参照すると、デバイス１２０は、ハードウェアインタラプトを生成するハードウェアコンポーネント１６０を含む。１つの実現において、ハードウェアコンポーネント１６０は、少なくとも（図３に示した）バスインターフェース１２３の一部を含む。デバイス１２０はまた、ハードウェアで実現されたインタラプトマネジャ１４１を含む。
【００４８】
動作において、インタラプトマネジャ１４１は、モニタリングエンティティ(monitoring entity)からリソース利用値を受信する。それに応じて、インタラプトマネジャ１４１は、上述した実現のうちの１つに基づいて、最小インタラプト間隔時間値と確率値のうちの１つを選択し、その値をハードウェアモジュール１６０に供給する。それに応じて、ハードウェアモジュール１６０は、新たな最小インタラプト間隔時間値を用いてハードウェアインタラプトをゲート制御するか、または、確率値を使用してハードウェアインタラプトをドロップすべきかどうかを決定する。
【００４９】
図６は、方法の実現のフローチャートである。ブロック６−１に示すように、この方法は、デバイス内での総リソース利用可能度に基づいて、２つ以上の離散的なリソース利用のレベル(two more discrete levels)（またはビン）を決定することを含む。ブロック６−２に示すように、この方法は、離散的なリソース利用のレベルの各々に関し、それぞれの最小インタラプト間隔時間値を決定すること、および設定することのうちの１つを含む。ブロック６−３に示すように、この方法は、デバイスに含まれた１つ以上のリソースに関するリソース測定値を受信することを含む。ブロック６−４に示すように、この方法は、リソース測定値に基づいてリソース利用値を決定することを含む。ブロック６−５に示すように、この方法は、リソース利用値を所定のリソース利用レベルのうちの１つにマッピングすることにより、リソース利用値に基づいて最小インタラプト間隔時間値を選択することを含む。ブロック６−６に示すように、この方法は、選択された最小インタラプト間隔時間値を使用してインタラプトをゲート制御するためにタイマーを設定することを含む。
【００５０】
図７は、方法の実現のフローチャートである。ブロック７−１に示すように、この方法は、デバイス内での総リソース利用可能度に基づいて、２つ以上の離散的なリソース利用のレベル（またはビン）を決定することを含む。ブロック７−２に示すように、この方法は、離散的なリソース利用のレベルの各々に関し、それぞれの確率値を決定すること、および設定することのうちの１つを含む。ブロック７−３に示すように、この方法は、たとえば、バスインターフェースのようなデータリンクインターフェース(a data link interface)からインタラプトを受信することを含む。ブロック７−４に示すように、この方法は、デバイスに含まれた１つ以上のリソースに関するリソース測定値を受信することを含む。ブロック７−５に示すように、この方法は、リソース測定値に基づいてリソース利用値を決定することを含む。ブロック７−６に示すように、この方法は、リソース利用値を所定のリソース利用レベルのうちの１つにマッピングすることにより、リソース利用値に基づいて確率値を選択することを含む。
【００５１】
ブロック７−７に示すように、この方法は、確率値に基づいて、受信されたインタラプトに関連づけられた処理をスキップすべきかどうかを決定することを含む。１つの例示的な実現において、数がランダムに発生させられ、確率値と比較される。ランダムに発生させられた数が確率値よりも大きい場合、関連づけられた処理は、受信されたインタラプトに応じて行われる。一方、ランダムに発生させられた数が確率値未満である場合、関連づけられた処理は、スキップされる。さらにブロック７−７を参照すると、確率値に基づいて、関連づけられた処理がスキップされるべきでないと決定された場合（７−７の「いいえ」）、この方法は、ブロック７−１０に示した方法の一部に進むことを含む。一方、確率値に基づいて、関連づけられた処理がスキップされるべきであると決定された場合（７−７の「はい」）、この方法は、ブロック７−８に示した方法の一部に進むことを含む。
【００５２】
ブロック７−８を参照すると、この方法は、受信された前のＭ個のインタラプトがスキップされたかどうかを決定することを含む。前のＭ個のインタラプトがスキップされていた場合（７−８の「はい」）、ブロック７−１０に示すように、この方法は、ブロック７−３に示した方法の一部に戻る前に、受信されたインタラプトに関連づけられた処理を実行することを含む。一方、前のＭ個のインタラプトがスキップされていなかった場合（７−８の「いいえ」）、ブロック７−９に示すように、この方法は、受信されたインタラプトに関連づけられた処理をスキップし、ブロック７−３に示した方法の一部に戻ることを含む。
【００５３】
図３をさらに参照すると、上記方法が、ホスト１１０からのフローの制御に十分に影響を及ぼさない状況があり得る。そのような状況において、デバイス１２０は、オプションで、ホスト１１０に対し伝送データ転送速度を低くするよう要求を送ることができる。図８は、そのような方法の実現の信号図である。
【００５４】
上述した例の１つによると、ブロック８０１に示すように、デバイス１２０は、現在のリソース利用レベルに基づいて動作パラメータを変更すべきかどうかを決定する。上述した例の１つによると、ブロック８０２に示すように、デバイス１２０は、局所的に補償を試みる。ブロック８０３に示すように、デバイスは、局所的な補償の取り組みが成功したかどうかを決定する。局所的な補償の取り組みが成功した場合（８０３で「はい」の場合）、ブロック８０４に示すように、デバイス１２０は、さらなる動作を行う必要はない。一方、局所的な補償の取り組みが成功しなかった場合（８０３で「いいえ」の場合）、ブロック８０５に示すように、デバイス１２０は、データリンクに影響を及ぼす１つ以上の動作設定を変更する。信号８０６で示すように、デバイス１２０は、ホスト１１０に新たな設定を送信する。ブロック８０７に示すように、ホスト１１０は、データリンクをコンフィギュレーションし直す。信号８０８で示すように、ホストは、新たな設定のもと、デバイス１２０にデータを送信する。
【００５５】
ＵＳＢ規格対応デバイスは、初期設定時に、サポートされたコンフィギュレーションの各々のための、複数の代わりの設定のエニュメレーションを行うことができる。代わりの設定の各々は、各エンドポイントのためのサポートされたデータ転送速度といったパラメータを含むことができる。
【００５６】
そのようなものとして、１つの実現では、ＵＳＢ規格対応デバイスは、複数の代わりの設定をサポートし、その各々は、個々のデータ転送速度のためのサポートされた最大データ転送速度の異なるセットを有する。さらに、デバイスのリソースが制約されている場合、デバイスは、所定の、実現に固有の信号をホストに送ることができる。たとえば、これは、特定の機能のための関連づけられた制御パイプでの複数のストールトークン、複数の連続したタイムアウト（back-to-back time-outs）、または、ホストソフトウェアによってインタラプトされうる、実現に固有の、カスタマイズされた制御トークンでさえであることができる。そして、この信号は、ホストソフトウェアのレイヤによるデータ転送速度の再評価をトリガするために使用されることができる。１つの実現において、デバイスが、フロー制御をトリガするために所定の信号をホストに送ると、それに応じて、ホストソフトウェアは、デバイスによるリソースの節約を支援するために、より低いデータ転送速度を含む代わりの設定への移行をトリガする。さらに、および／または、その代わりに、デバイスが、新たに再調整された代わりの設定に対応するデータ転送速度もまた高すぎると最終的に決定すると、デバイスは、ホストへのフロー制御信号を繰り返すことができ、ホストは、より節約的な代わりの設定に切り替えることができる。
【００５７】
このアプローチは、長期にわたる時間期間のあいだ、ＮＡＫトークンの生成を減じるために実現されることができる。また、デバイスおよびホストは、利用可能なリソースに基づいたデータ転送速度の調節メカニズムを確立することができるので、データ転送速度は、直近のデバイスのステータスに基づいて調節されることができ、それにより、デバイスは、確実に、ホストをフロー制御するためにさらなる電力を消費させられずに済む。すなわち、フロー制御が、ＵＳＢの仕様での規定のごとくマイクロフレームごとに実行されるのではなく、はるかにより少ない頻度で実行されるので、ホストをフロー制御するコストは少なくなる。
【００５８】
ＵＳＢ２．０標準規格は、上記ＰＩＮＧプロトコルを使用したＮＡＫ制限機能の導入により、特定の機能／エンドポイントのためのフロー制御に起因するリンク帯域幅／リソースの過度な消耗という課題に部分的に対処している。デバイスが、ＯＵＴトークンに対しＮＡＫを用いて応答することによりホストをフロー制御する場合、ホストは、ＰＩＮＧパケットを用いてデバイスのステータスをポーリングすることができる。そして、デバイスは、現在のデバイスのステータスに基づいて、これらの特別なＰＩＮＧトークンに対し、ＡＣＫ／ＮＡＫを用いて応答することができる。ＰＩＮＧに対するＮＡＫ応答に対し、ＰＩＮＧに対するＡＣＫ応答は、デバイスがさらなるデータを受け入れ可能であることを表している。
【００５９】
ＰＩＮＧトークンは、ＯＵＴトークンのためのＮＡＫ帯域幅とリソースの消耗を少なくするために有用なメカニズムを提供するが、このメカニズムに固有の問題は、ＵＳＢ標準規格がＰＩＮＧトークンの頻度に何の制限も設けていないことである。たとえば、ホストは、ほぼどの頻度でも(at almost any frequency)ＰＩＮＧトークンを発行できるが、デバイスは、連続するマイクロフレームにおけるような頻度でＰＩＮＧトークンを処理できなくてはならない、とＵＳＢ２．０標準規格は規定している。
【００６０】
この問題を解決するために、１つの実現では、ホストは、繰り返されるＰＩＮＧ送信の間、指数関数バックオフメカニズムにしたがう。ホストが第１のＰＩＮＧトークンを発行すると、ホストは初期値でタイマーを開始する。デバイスがＮＡＫを用いて応答する場合、ホストは、次のＰＩＮＧトークンを発行する前に、タイマーが満了するまで待機する。連続するＰＩＮＧトランザクションごとに、タイマーの値は、ＰＩＮＧバックオフにについて、ある特定の最大値に到達するまで、増加ファクター(a multiplicative factor)によって増やされる。最大値は、個々の機能およびデバイスの特徴に基づいて決定されることができるので、実現によって固有である。
【００６１】
「第１」、「第２」等の名称を使用した、ここでのエレメントへのいずれの言及も、一般的に、それらのエレメントの数または順序を限定するものではないということが理解されるべきである。むしろ、これらの名称は、２つ以上のエレメントどうし、またはエレメントの実例どうしを区別する便宜上の方法として、ここでは使用され得る。したがって、第１および第２のエレメントへの言及は、２つだけのエレメントがそこで用いられ得るという意味でも、第１のエレメントが何らかの手法で第２のエレメントより前に起こらなくてはならないという意味でもない。また、そうでないとの記載がない限り、エレメントのセットは、１つ以上のエレメントを含むことができる。
【００６２】
当業者は、情報および信号が、さまざまな異なる技術および手法のうちのいずれかを使用して表され得ることを理解するだろう。たとえば、上記説明を通して言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場または磁性粒子、光場または光粒子、またはそれらの任意の組み合わせによって表されることができる。
【００６３】
当業者は、ここに開示された態様に関連して説明されたさまざまな例示的な論理ブロック、モジュール、プロセッサ、手段、回路、およびアルゴリズムのステップが、いずれも、電子ハードウェア（たとえば、ソースの符号化または何らかの他の手法を用いて設計されうる、デジタル実現、アナログ実現、またはその２つの組み合わせ）、（便宜上、ここでは「ソフトウェア」または「ソフトウェアモジュール」と呼ばれ得る）命令を組み込んだ、さまざまな形態のプログラムまたは設計コード、またはその２つの組み合わせとして実現され得ることを、さらに理解するだろう。ハードウェアとソフトウェアのこの互換性を明確に説明するために、さまざまな例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、それらの機能の観点で一般的に上述されている。そのような機能がハードウェアとして実現されるかソフトウェアとして実現されるかは、システム全体に課せられた特定の用途および設計上の制約に依存する。当業者は、特定の用途ごとにさまざまな手法で、説明された機能を実現することができるが、そのような実現の決定は、本開示の範囲から逸脱するものと解釈されるべきではない。
【００６４】
ここに開示された態様に関連して説明されたさまざまな例示的な論理ブロック、モジュール、および回路は、集積回路（ＩＣ）、アクセス端末、またはアクセスポイント内で実現されることができ、またはそれらによって実行されることができる。ＩＣは、ここに説明された機能を実行するように設計され、ＩＣ内に、ＩＣ外に、またはその両方に存在するコードまたは命令を実行することができる、汎用プロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）または他のプログラマブル論理デバイス、離散ゲートまたはトランジスタ論理、離散ハードウェアコンポーネント、電気コンポーネント、光コンポーネント、機械コンポーネント、またはそれらの任意の組み合わせを含むことができる。汎用プロセッサは、マイクロプロセッサであることができるが、その代わりに、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであることができる。プロセッサは、また、コンピューティングデバイスの組み合わせ、たとえば、ＤＳＰと、１つのマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアに連結された１つ以上のマイクロプロセッサの組み合わせ、または任意の他のそのような構成としても実現されることができる。
【００６５】
開示された任意の処理におけるステップのいずれの具体的な順序も階層も、例示的なアプローチの一例であるということが理解されるべきである。処理におけるステップの具体的な順序または階層は、設計の優先性に基づいて並べ替えられることができると同時に、本開示の範囲内のままである、ということが理解されるべきである。付属の方法の請求項は、例示的な順序で、さまざまなステップのエレメントを提示しているが、提示された具体的な順序または階層に限定されることを意図しない。
【００６６】
説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組み合わせにおいて実現されることができる。ソフトウェアで実現される場合、機能は、コンピュータ可読媒体で、１つ以上の命令またはコードとして記憶または伝送されることができる。コンピュータ可読媒体は、コンピュータ記憶媒体、および、１つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされることができる、任意の入手可能な媒体であることができる。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、または他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、または命令またはデータ構造の形態で所望のプログラムコードを搬送または記憶するために使用されることができ、かつ、コンピュータによってアクセスされることができる任意の他の媒体を含むことができる。また、任意の接続も当然、コンピュータ可読媒体と呼ばれる。たとえば、ソフトウェアが、ウェブサイト、サーバー、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波のような無線技術を使用して伝送される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波のような無線技術は、媒体の定義に含まれる。ディスク（disk）およびディスク（disc）は、ここで使用される場合、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）、およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は通常、データを磁気的に再生するが、ディスク（disc）は、レーザーを用いて光学的にデータを再生する。上述したものの組み合わせも、コンピュータ可読媒体の範囲内に含まれるべきである。要するに、コンピュータ可読媒体は、任意の適切なコンピュータプログラム製品において実現され得るということが理解されるべきである。
【００６７】
上記説明は、いずれの当業者にも付属の特許請求の範囲内の実施例を製造または使用させることができるように提供されている。これらの態様に対するさまざまな変更は、当業者には容易に理解でき、ここで定義された一般的な原理は、この開示の範囲から逸脱せずに、他の態様に適用されることができる。したがって、本開示は、ここに示した態様に限定されることを意図せず、ここに開示された原理および新規な特徴と整合する最も広い範囲が与えられるものとする。
【図１】
2013510375.tif 000003
【図２】
2013510375.tif 000004
【図３】
2013510375.tif 000005
【図４】
2013510375.tif 000006
【図５】
2013510375.tif 000007
【図６】
2013510375.tif 000008
【図７】
2013510375.tif 000009
【図８】
2013510375.tif 000010
【国際調査報告】
2013510375.tif 000011
2013510375.tif 000012
2013510375.tif 000013