(57)【要約】      （修正有）【課題】家庭用娯楽ネットワークに渡るデータパケットの伝送をスケジューリングするための、より効率的な方法および装置を提供する。【解決手段】ネットワーク上の複数のノード間で予約要求をスケジューリングするためのプロセスは、第１のノードのネットワーク通信動作のレベルを調査して、第１のノードがアクティブであるか否かを判定するステップ２３６と、第１のノードがアクティブであると判定される場合にのみ、予約要求を第１のノードに割り当てるステップ２３８と、ネットワーク上の１つ以上の次のノードに対して調査および割り当てのプロセスを反復するステップ２４２とを含む。プロセスは、閾値を利用して、ネットワークデバイスがアクティブであるか否かを判定し、閾値は、評価されているノードに対する最近のネットワーク動作に基づく。【選択図】図４
2015057886.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク上の複数のノード間で予約要求をスケジューリングするための方法であって、
ネットワークデバイスが、第１のノードのネットワーク通信動作のレベルを調査し、一つ以上前のサイクルに渡る前記第１のノードの通信動作のレベルを判定すると共に、前記第１のノードに予約要求が割り当てられてからのサイクル数を判定するステップと、
前記ネットワークデバイスが、予約要求の最後の割り当てからの前記判定されたサイクル数に応じた、前記判定された前記第１のノードの通信動作のレベルに基づいて、前記第１のノードに予約要求を割り当てるか否かを判定するステップと、
を含む、方法。
【請求項２】
前記ネットワークデバイスが、前記ネットワーク内の第２のノードのネットワーク通信動作のレベルを調査し、一つ以上前のサイクルに渡る前記第２のノードの通信動作のレベルを判定すると共に、前記第２のノードに予約要求が割り当てられてからのサイクル数を判定するステップと、
前記ネットワークデバイスが、予約要求の最後の割り当てからの前記サイクル数の関数としての前記判定された前記第２のノードの通信動作のレベルに基づいて、前記第２のノードに予約要求を割り当てるか否かを判定するステップと、
をさらに含む、請求項１に記載の方法。
【請求項３】
前記第１のノードのネットワーク通信動作の前記レベルを判定するステップは、前記第１のノードによる以前のネットワーク伝送から経過した時間を判定するステップを含む、請求項１に記載の方法。
【請求項４】
前記第１のノードに予約要求を割り当てるか否かを判定するステップは、前記第１のノードが、前記第１のノードに対するクワイエットタイムに応じて計算される閾値を超過したか否かを判定するステップを含む、請求項１に記載の方法。
【請求項５】
前記第１のノードに予約要求を割り当てるか否かを判定するステップは、前記第１のノードが、前記第１のノードに割り当てられた最後の予約要求に応じて計算される閾値を超過したか否かを判定するステップを含む、請求項１に記載の方法。
【請求項６】
前記ネットワーク上の前記複数のノードの一つ以上に対して、当該ノードがアクティブであるか否かに関係なく、予約要求を割り当てるステップをさらに含む、請求項１に記載の方法。
【請求項７】
前記第１のノードのネットワーク通信動作の前記レベルを調査するステップ、および前記第１のノードに予約要求を割り当てるか否かを判定するステップは、前記ネットワーク上の前記複数のノードそれぞれに対して反復される、請求項１に記載の方法。
【請求項８】
前記ネットワークデバイスの前記判定に基づいて、前記第１のノードに予約要求を割り当てるステップと、
前記第１のノードに予約要求を割り当てた後に、ネットワーク動作の次のレベルを判定するステップと、
ネットワーク動作の前記次のレベルに基づいて、追加の予約要求割り当てを行うステップと、
をさらに含む、請求項１に記載の方法。
【請求項９】
ネットワークデバイスであって、
コントローラと、
デバイスモジュールと、
前記コントローラに結合されるメモリと、
コンピュータ読み取り可能媒体上のコンピュータ実行可能プログラムコードであって、前記コントローラに、
第１のノードのネットワーク通信動作のレベルを調査して、前記第１のノードがアクティブであるか否かを判定すると共に、前記第１のノードに予約要求が割り当てられてからのサイクル数を判定し、
前記第１のノードの予約要求の最後の割り当てからの前記判定されたサイクル数の関数としての前記第１のノードがアクティブであるか否かの前記判定に基づいて、前記第１のノードに予約要求を割り当てるか否かを判定し、
第２のノードのネットワーク通信動作のレベルを調査し、前記第２のノードがアクティブであるか否かを判定すると共に、前記第２のノードに予約要求が割り当てられてからのサイクル数を判定し、
第２のノードがアクティブであるか否かの前記判定に基づいて、前記第２のノードに予約要求を割り当てるか否かを判定する、
機能を実行させるように構成されたコンピュータ実行可能プログラムコードと、
を備える、ネットワークデバイス。
【請求項１０】
前記第１のノードのネットワーク通信動作の前記レベルを判定する前記機能は、前記第１のノードによる以前のネットワーク伝送から経過した時間または前記サイクル数を判定する機能を含む、請求項９に記載のネットワークデバイス。
【請求項１１】
前記第１のノードに予約要求を割り当てるか否かを判定する前記機能は、前記第１のノードが、前記第１のノードに対するクワイエットタイムに応じて計算される閾値を超過したか否かを判定する機能を含む、請求項９に記載のネットワークデバイス。
【請求項１２】
前記第１のノードに予約要求を割り当てるか否かを判定する前記機能は、前記第１のノードが、前記第１のノードに割り当てられた最後の予約要求に応じて計算される閾値を超過したか否かを判定する機能を含む、請求項９に記載のネットワークデバイス。
【請求項１３】
前記コンピュータ実行可能プログラムコードは前記コントローラに、前記ネットワーク上のノードに対して、当該ノードがアクティブであるか否かに関係なく、予約要求を割り当てさせるようにさらに構成される、請求項９に記載のネットワークデバイス。
【請求項１４】
前記第１のノードのネットワーク通信動作の前記レベルを調査する前記機能、および前記第１のノードに予約要求を割り当てるか否かを判定する前記機能が、前記ネットワーク上の各ノードに対して反復される、請求項９に記載のネットワークデバイス。
【請求項１５】
前記コンピュータ実行可能プログラムコードは、前記ネットワークデバイスの前記判定に基づいて、前記第１のノードおよび前記第２のノードに予約要求を割り当てるようにさらに構成され、
前記コンピュータ実行可能プログラムコードは前記コントローラに、前記第１のノードおよび前記第２のノードに予約要求が割り当てられた後に、ネットワーク動作の次のレベルを判定させるようにさらに構成され、
前記コンピュータ実行可能プログラムコードは前記コントローラに、前記次のネットワーク動作に基づいて、追加の予約要求の割り当ての判定を行うようにさらに構成される、
請求項９に記載のネットワークデバイス。
【請求項１６】
通信ネットワーク内でリソースの割り当てを行うためのコンピュータプログラムであって、デバイスに、
第１のノードのネットワーク通信動作のレベルを調査して、前記第１のノードがアクティブであるか否かを判定すると共に、前記第１のノードに予約要求が割り当てられてからのサイクル数を判定するステップと、
前記第１のノードの予約要求の最後の割り当てからの前記判定されたサイクル数の関数としての前記第１のノードがアクティブであるか否かの前記判定に基づいて、前記第１のノードに予約要求を割り当てるか否かを判定するステップと、
第２のノードのネットワーク通信動作のレベルを調査し、前記第２のノードがアクティブであるか否かを判定すると共に、前記第２のノードに予約要求が割り当てられてからのサイクル数を判定するステップと、
前記第２のノードの予約要求の最後の割り当てからの前記判定されたサイクル数の関数としての前記第２のノードがアクティブであるか否かの前記判定に基づいて、前記第２のノードに予約要求を割り当てるか否かを判定するステップと、
を実行させるように構成されるコンピュータプログラム。
【請求項１７】
前記第１のノードのネットワーク通信動作の前記レベルを判定するステップは、前記第１のノードによる以前のネットワーク伝送から経過した時間または前記サイクル数を判定するステップを含む、請求項１６に記載のコンピュータプログラム。
【請求項１８】
前記第１のノードに予約要求を割り当てるか否かを判定するステップは、前記第１のノードが、前記第１のノードに対するクワイエットタイムに応じて計算される閾値を超過したか否かを判定するステップを含む、請求項１６に記載のコンピュータプログラム。
【請求項１９】
前記第１のノードに予約要求を割り当てるか否かを判定するステップは、前記第１のノードが、前記第１のノードに割り当てられた最後の予約要求に応じて計算される閾値を超過したか否かを判定するステップを含む、請求項１６に記載のコンピュータプログラム。
【請求項２０】
前記デバイスに、前記ネットワーク上のノードに、当該ノードがアクティブであるか否かに関係なく、予約要求を割り当てさせるようにさらに構成される、請求項１６に記載のコンピュータプログラム。
【請求項２１】
前記第１のノードのネットワーク通信動作の前記レベルを調査するステップ、および前記第１のノードに予約要求を割り当てるか否かを判定するステップが、前記ネットワーク内の各ノードに対して反復される、請求項１６に記載のコンピュータプログラム。
【請求項２２】
前記デバイスの前記判定に基づいて、前記第１のノードおよび前記第２のノードに予約要求を割り当てるようにさらに構成され、
前記デバイスに、前記第１のノードおよび前記第２のノードに予約要求が割り当てられた後に、ネットワーク動作の次のレベルを判定させるようにさらに構成され、
ネットワーク動作に基づいて、追加の予約要求の割り当てを行うようにさらに構成される、
請求項１６に記載のコンピュータプログラム。
【請求項２３】
ネットワークインターフェースモジュールであって、
コントローラと、
前記コントローラに結合されるメモリと、
コンピュータ読み取り可能媒体上のコンピュータ実行可能プログラムコードであって、前記コントローラに、
第１のノードのネットワーク通信動作のレベルを調査して、前記第１のノードがアクティブであるか否かを判定すると共に、前記第１のノードに予約要求が割り当てられてからのサイクル数を判定し、
前記第１のノードの予約要求の最後の割り当てからの前記判定されたサイクル数の関数としての前記第１のノードがアクティブであるか否かの前記判定に基づいて、前記第１のノードに予約要求を割り当てるか否かを判定し、
前記ネットワーク上の第２のノードのネットワーク通信動作のレベルを調査し、前記第２のノードがアクティブであるか否かを判定すると共に、前記第２のノードに予約要求が割り当てられてからのサイクル数を判定し、
前記第２のノードの予約要求の最後の割り当てからの前記判定されたサイクル数の関数としての前記第２のノードがアクティブであるか否かの前記判定に基づいて、前記第２のノードに予約要求を割り当てるか否かを判定する、
機能を実行させるように構成されたコンピュータ実行可能プログラムコードと、
を備える、ネットワークインターフェースモジュール。
【請求項２４】
前記第１のノードに予約要求を割り当てるか否かを判定する前記機能は、前記第１のノードによる以前のネットワーク伝送から経過した時間または前記サイクル数を判定する機能を含む、請求項２３に記載のネットワークインターフェースモジュール。
【請求項２５】
前記第１のノードに予約要求を割り当てるか否かを判定する前記機能は、前記第１のノードが、前記第１のノードに対するクワイエットタイムに応じて計算される閾値を超過したか否かを判定する機能を含む、請求項２３に記載のネットワークインターフェースモジュール。
【請求項２６】
前記第１のノードに予約要求を割り当てるか否かを判定する前記機能は、前記第１のノードが、前記第１のノードに対して割り当てられた最後の予約要求に応じて計算される閾値を超過したか否かを判定する機能を含む、請求項２３に記載のネットワークインターフェースモジュール。
【請求項２７】
前記コンピュータ実行可能プログラムコードは前記コントローラに、前記ネットワーク上のノードに、当該ノードがアクティブであるか否かに関係なく、予約要求を割り当てさせるようにさらに構成される、請求項２３に記載のネットワークインターフェースモジュール。
【請求項２８】
前記第１のノードのネットワーク通信動作の前記レベルを調査する前記機能、および前記第１のノードに予約要求を割り当てるか否かを判定する前記機能が、前記ネットワーク上の各ノードに対して反復される、請求項２３に記載のネットワークインターフェースモジュール。
【請求項２９】
前記コンピュータ実行可能プログラムコードは前記コントローラに、前記ネットワークインターフェースモジュールの前記判定に基づいて、前記第１のノードおよび前記第２のノードに予約要求を割り当てるようにさらに構成され、
前記コンピュータ実行可能プログラムコードは前記コントローラに、前記第１のノードおよび前記第２のノードが調査され、前記第１のノードおよび前記第２のノードに予約要求が割り当てられた後に、ネットワーク動作の次のレベルを判定させるようにさらに構成され、
前記コンピュータ実行可能プログラムコードは前記コントローラに、前記次のネットワーク動作に基づいて、追加の予約要求の割り当てを行うようにさらに構成される、
請求項２３に記載のネットワークインターフェースモジュール。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、２００８年４月３日に出願された米国仮特許出願整理番号第６１／０４２，２０３号からの優先権を主張し、参照することによってその全体は本明細書に組み込まれる。
【技術分野】
【０００２】
本特許の開示は、通信ネットワークに関し、およびより具体的には、一部の実施形態は、通信ネットワークにおける予約要求の発見的スケジューリングに関する。
【関連出願の説明】
【０００３】
通信およびデータ転送技術における多くの持続的な進歩に伴い、より多くのデバイスが、進化した高帯域幅通信能力とともに、消費者および商業セクターの両方に導入されている。さらに、処理能力および低電力消費技術の進歩は、広範な基盤上の様々な製品における通信能力の急増を広くもたらした。
【０００４】
例えば、通信ネットワークは、現在多くの家庭およびオフィス環境において一般的である。そのようなネットワークは、様々な既に独立しているデバイスが、データおよび他の情報を共有して、生産性の強化、または単にユーザに対する便宜性の向上を可能にする。この背景に対して、ホームネットワークは、進化しているホーム「インフォテインメント」市場の中心となった。実際に、コンテンツデバイス（例えば、テレビ、ＤＶＤプレーヤおよびレコーダ、デジタルカメラ、スピーカ、ビデオカメラ等）、コンピュータデバイス、Ｉ／Ｏデバイス、家電製品およびモデムを接続する能力に対する需要が高まっている。
【０００５】
家庭用娯楽機器ネットワークは、通常、２つのトポロジーのうちの１つにおいて提供される。１つ目は、ツリー構造に最適に類推され得るアクセストポロジーであり、ベースノードは、そのブランチにおいてノードと通信するが、ブランチノードは、通常、他のブランチと通信しない。２つ目は、任意のノードがネットワーク内の任意の他のノードと通信することができる、メッシュトポロジーである。アクセストポロジーは、通常、集合住宅またはオフィス設定で見出され、「ソース」でのマスターノードを使用して、データを複数の下流ノード（例えば、集合住宅ビル内の様々な居室）にデータを分配し、下流ノード（例えば、居室）は、互いにコンテンツを共有する必要がない。一方メッシュトポロジーは、より一般的に家庭環境において見出され得、ブロードバンドデータ（例えば、家庭への主ケーブル供給）の共通ソースであり得るが、住宅所有者は、彼らの家の一室にあるデバイスに由来するコンテンツを他の部屋にある他のデバイスと共有することを希望する場合がある。
【０００６】
デジタルホームネットワーク市場に対する高まる需要に対応するために、業界のリーダー企業の団体は、Ｍｕｌｔｉｍｅｄｉａ  ｏｖｅｒ  Ｃｏａｘ  Ａｌｌｉａｎｃｅ（ＭｏＣＡ（商標））を形成した。ＭｏＣＡは、ケーブルまたは衛星テレビサービス用に、家庭で既にインストールされている同軸ケーブル上の使用可能な帯域幅に渡って、デジタルエンタテインメントを分配するためのプロトコルを定義する、技術標準（「ＭｏＣＡ１．０」と称される）を提供した。初期ＭｏＣＡ標準は、２００６年２月に承認され、その直後に、内蔵ＭｏＣＡ能力（すなわち、ＭｏＣＡ１．０標準に準拠するもの）を備えるルータ、ＭｏＣＡセットトップボックスおよびＭｏＣＡアダプタが承認された。したがって、あるメッシュトポロジーは、ＭｏＣＡ１．０標準によって定義される。
【０００７】
これらおよび他のネットワークの設計者および実際の通信チャネルは、一般に、限られたチャネルに渡る、様々なデバイスから複数の通信を管理するという課題に長年取り組んでいる。したがって、ネットワーク設計者は、様々な問題を解決するための策を考え出すか、またはそうでない場合は、ネットワーク上の様々な通信デバイス、またはクライアント間で帯域幅を割り当てた。トークンリング、イーサネット、および他の構成等のよく知られるネットワーク構成で使用されるスキームは、使用可能な帯域幅の共有を可能にするように開発された。
【０００８】
図１は、ホームケーブルネットワークの一実施例を説明する図である。図１で説明される住居環境の実施例は、装置および他の電子デバイス、またはＭｏＣＡ１．０によって定義されるネットワーク等の典型的なホームネットワーキング環境において見られ得るノードの実施例も含む。図１のネットワークは、主寝室１１５、寝室１１４、およびファミリールーム１１３において見られるセットトップボックス１１１およびテレビ（ＴＶ）１１０を含む。また、典型的なホームネットワークは、書斎１１３に示されるようなデスクトップコンピュータシステム１１７および周辺機器、ならびにキッチン１１２に示されるようなラップトップコンピュータ１１８等のコンピュータシステムを含む。他のコンテンツデバイスまたはネットワークデバイスも提供され得る。
【０００９】
ＭｏＣＡネットワークは、ＴＶ１１０、セットトップボックス１１１、およびコンピュータ１１７、１１８等の複数のクライアントノードを含む。ＴＶ１１０、セットトップボックス１１１、およびコンピュータ１１７、１１８は、これらのデバイスをＭｏＣＡネットワーク上のクライアントノードとして動作できるようにする、通信デバイスとともに構成されることに留意されたい。最初に、ＭｏＣＡネットワークをセットアップする際に、クライアントノードのうちの１つが自動的に選択され、ネットワークコーディネータ（ＮＣ）となる。システムを確立してネットワーク帯域幅を割り当てる目的で、ＮＣは、ネットワークに渡って通信が生じる時間をスケジュールする。ＮＣは、スケジュールを「メディアアクセスパケット」（ＭＡＰ）内の各クライアントノードに通信する。各ＭＡＰは、情報のパケットである。１つのＭＡＰが、各「ＭＡＰサイクル」中に、ＮＣによって送信される。
【００１０】
図２は、マップ２０１、２０２とマップサイクル２０３、２０５との間のタイミング関係を説明するタイミング図である。ＭＡＰサイクル２０５は、以前に送信されたＭＡＰ２０１の制御下で、チャンネル上の通信動作として画定される。したがって、ＭＡＰ２０１は、次のＭＡＰサイクル２０５の通信動作のすべてをスケジュールする（そのような「次のＭＡＰサイクル」２０５の１つのみが、図２に示される）。前のＭＡＰ２０１のスケジューリング制御下で、次のＭＡＰ２０２は、次のＭＡＰサイクル２０５中に送信されることに留意されたい。したがって、ＭＡＰ２０１、２０２は、次のマップサイクル２０５において送信される、各パケットの以下の情報：ｉ）パケット開始時間、ｉｉ）パケット長、ｉｉｉ）ソースノード、およびｉｖ）宛先ノードを判定する。
【００１１】
ＭＡＰ２０１、２０２がスケジューリングを担当する、ある特定タイプのパケットは、ＲＲ２０７、２０９、２１１である。６つのそのようなＲＲが、図２の第１のＭＡＰサイクル２０３内に示され、最初のＲＲ２０７から始まり、最後のＲＲ２０９で終わる。１つのＲＲ２１１が、第２のＭＡＰサイクル２０５内に示される。ＲＲ２０７、２０９、２１１は、クライアントノードによって送信され、クライアントノードが送信し、よって後次のＭＡＰサイクル中に、クライアントノードがそれらのパケットを送信できる時間を、ＮＣがスケジュールするように要求するパケットを有することを示す。したがって、クライアントノードが伝送する情報を有する場合、クライアントノードは、まずＮＣが、クライアントノードがＲＲ２０７、２０９、２１１を送信できる時間を割り当てるまで待機しなければならない。クライアントノードがＲＲ２０７、２０９、２１１を送信できる時間をＮＣが割り当てると、クライアントノードは、割り当てられた時間に（すなわち、ＭＡＰ２０１、２０２によって示されるパケット開始時間およびパケット長さで）、ＲＲ２０７、２０９、２１１をＮＣに通信する。
【００１２】
ＲＲ２０７、２０９、２１１は、クライアントノードが送信を希望するデータパケットを有するＮＣに、クライアントノードが通信できるようにする。さらに、ＲＲ２０７、２０９、２１１は、それらのデータパケットの、１つまたは複数の関連付けられた宛先ノード、パケット長さ、パケット優先順位等を示す。ＮＣは、この情報を使用して、クライアントノードが、送信を希望する追加のデータパケットを伝送できる追加の時間をスケジュールする。次いで、ＮＣは、次のＭＡＰサイクル２０５のためのＭＡＰ２０１を生成および伝送することによって、当該スケジュールを通信する。
【００１３】
従来のＭｏＣＡ方法に従って、指定されたＮＣは、ノードが実際に当該予約を使用したか否かに関係なく、当該ノードが最後に予約を付与されてから経過した時間に基づいて、ノードのＲＲをスケジュールする。ＲＲパケットは比較的小さいが（データパケットのフルサイズの約６０％である）、ＲＲはネットワーク帯域幅の約５％を消費する。
【００１４】
（Ａ）および（Ｂ）を含む図３は、上述の例示的環境による、従来のＲＲ割り当てを説明する図である。本従来の適用では、ＲＲは、様々な技術を使用して、各ノードにラウンドロビンで割り当てられる。このアルゴリズムは、ラウンドロビンスケジューリングの基礎として、マイクロサイクルおよびマクロサイクルの概念を使用する。マクロサイクル１５０は、通常、すべてのノードにＲＲの機会が考慮されることを保証する必要がある、複数のＭＡＰサイクル１６５を参照する。通常、マイクロサイクルは、マクロサイクル１５０内の個別のＭＡＰサイクル１６５を参照する。したがって、同一の参照番号「１６５」は、図３における個別のＭＡＰサイクルおよびマイクロサイクルの両方を参照する場合に使用される。図３は、８つのノード（ＮＣノードおよびノードＡ〜Ｇ）のネットワークの実施例を説明し、ここでＮＣは、マイクロサイクル１６５毎に５つのＲＲを割り当てる。
【００１５】
これらの実施例では、各マクロサイクル１５０は、２つのマイクロサイクル１６５で形成される。これらの実施例では、ＲＲが割り当てられる順序は、１つのマクロサイクルから次の試みに変わり、参加しているノード全体で均等にＲＲを分配する。特に、図３の（Ａ）に示される実施例では、マクロサイクル１５０ｂにおいてＲＲが割り当てられる第１のノードは、以前のマイクロサイクル１６５ｂにおいてＲＲが割り当てられる第２のノード（すなわち、以前のマクロサイクル１５０ａの最後のマイクロサイクル１６５ｂ）である。図３の（Ａ）に示されるように、第１のマクロサイクル１５０ａでは、ノードＡから始まり、ノードＢ、Ｃ、Ｄ、Ｅ、ＦおよびＧと続いてＲＲが割り当てられる。マクロサイクル１５０毎に１０のＲＲがあり、最初に図示されるマクロサイクル１５０ａでは、ＲＲを要するノードは７つしかないため、ノードＡ、Ｂ、およびＣはそれぞれ第２のＲＲを受信する。次のマイクロサイクル１５０ｂでは、ノードＧは、前のマイクロサイクル１６５ｂにおいてＲＲを受信する第２のノードであったため、ノードＧは第１のＲＲを受信する。ＲＲの割り当ては、この第２のマクロサイクル１５０ｂ全体で順に継続する。第３の図示されるマクロサイクル１５０ｃでは、割り当てはノードＦ（先行するマイクロサイクル１６５ｂにおけるＲＲ割り当てを受信するための第２のノード）から始まり、割り当ては同様に継続する。
【００１６】
図３の（Ｂ）で説明される実施例では、マクロサイクル１５０の開始時における第１のノードは、前のマクロサイクル１５０の最後の最終ノードから続く順序で選択される。したがって、説明される実施例では、Ｃは第１のマクロサイクル１５０ｄにおいてＲＲが割り当てられる最後のノードであったため、Ｄは、次のマイクロサイクル１５０ｅにおいて要求を受信する最初のノードである。再度、本実施例では、各ノードには、マクロサイクル１５０において少なくとも１つのＲＲが割り当てられる。
【００１７】
これらの実施例のそれぞれでは、マクロサイクル１５０において少なくとも１つのＲＲが各ノードに割り当てられる。結果として、帯域幅は、ノードが予約を要求する必要があるか否かに関係なく、ノードのそれぞれと関連付けられるＲＲによって消費される。
【００１８】
データパケットのＲＲがＮＣノードによって受信されると、それらはサブキューに配置される。一実施形態では、４つのデータ優先順位がある（例えば、低、中、高、ｐＱｏＳ）。４つのデータ優先順位のそれぞれは、３つのサブキューを有するが、他の数のサブキューを使用することができる。したがって、本実施形態では、３つのサブキューおよび４つの優先順位があり、合計１２のキューをもたらす。各優先順位のサブキューは、同一優先順位の他の２つのサブキューに対して最大「値」を有する第１のサブキューで順序付けられる。各サブキューは、サブキュー内で蓄積するＲＲの総数に関する制限を有し得る。さらに、特定ノードからのＲＲ数に対する制限があり得る。一実施例では、ＶｏＩＰ（ボイスオーバーインターネットプロトコル）を伝送するデータパケットは、「高」データ優先順位を割り当てられ、ノード毎に１つのＲＲは、高データ優先順位と関連付けられる第１のサブキューにおいて許容される。さらに、本実施例におけるサブキューは、記憶要素が充填されると、より低い値のサブキューによって使用されるそれらの記憶要素が再要求され得るように、組織化される。例えば、「高」データ優先順位の第２のサブキューは、「高」データ優先順位の第３のサブキューから、またはより低い優先順位（すなわち、本実施例における「低」または「中」優先順位）のサブキューのいずれかから記憶を再要求することができる。
【００１９】
追加として、制約を実装することができる。そのような制約の実施例は、（１）所定のサブキューの最後からパケットが再要求される要件、（２）次のサブキューに移動する前に、最低優先順位のサブキューが使い尽くされていなければならないという要件、および（３）最低優先順位の最後のサブキューから、最高優先順位の最初のサブキュー等の所定の順序（例えば、「低」優先順位の第３のサブキューから「低」優先順位の第２のサブキュー、「低」優先順位の第１のサブキュー、次いで、「中」優先順位の第３のサブキュー等）で、サブキューが再要求されなければならないという要件を含む。これらの実施例が説明するように、他のプロトコルを同様に実装することができる。
【００２０】
併せて、各優先順位のサブキューは、所望に応じて、最大数のＲＲに限定することができ、これは起動時に構成可能であり得る。例えば、通常、数は当該優先順位のサブキューの能力に制約され得る。リンク制御パケットの伝送のための時間を予約する要求等の、特定型のＲＲは、例えば、本特定の実施例におけるリンク制御パケットのみのためのキュー等の特定のキューに入る。所定のサブキューに対する所定のノードからのＲＲの数も、例えば、起動時に構成可能であり得る。一実施形態では、第１のサブキューへ入るＲＲは、ノードにつき１つまたは２つのＲＲに限定することができ、それによって、１つのノードが大量の通信を送信しているとしても、すべてのノードに対する双方向性のレベルを保証する。
【００２１】
ＮＣは、未来のＲＲをサブキューに蓄積し、次のＭＡＰにおける蓄積されたＲＲの一部またはすべてをスケジュールし、すべてでない場合は、次に未来のＭＡＰにおける残りの蓄積ＲＲの一部またはすべてをスケジュールするように構成することができる。一実施形態では、所定ノードからスケジュールされないＲＲは、未来のＲＲが当該同一のノードから受信されるまで、サブキューに留まる。ＮＣは、リソース（データ構造能力）の制約、他のノードからのより高い優先順位のパケットによる侵害、または使用可能なスケジューリング時間の欠如に起因して、ＲＲの一部を無視またはドロップするように構成されてもよい。さらに、ＮＣは、当該ノードに対して新たなＲＲをスケジューリングすることによって、所定のノードからそのパケットの一覧を置換または補充してもよい。
【００２２】
予約処理中に、ＮＣは、現在のサイクルにおけるすべてのＲＲを通過し、所定の優先順位に対して各ノードにより送信されるＲＲは、当該優先順位の第１のサブキューに配置される。一実施形態では、サブキューが一杯になるか、または当該キューに対するノード毎のパケット制限（例えば、１または２ＲＲという制限）に到達するまで、これらが追加される。追加のＲＲが受信されると、当該優先順位の後次のサブキューに対してプロセスが反復する。一実施形態に従って、すべてのサブキューが考慮された後に、依然としてＲＲが満たされていない場合、これらの残りのＲＲを破棄することができる。アクティブＲＲの総数に関する上限がある場合に、この上限を超過すると、次いで、一実施形態では、より高い優先順位のサブキューは、エントリを含む、より低い優先順位のサブキューからエントリを再請求することができる。
【００２３】
１６または３２ノードネットワークの場合、ＲＲは、通常いくつかのＭＡＰサイクルに渡って拡散される。しかし、複数のＭＡＰサイクルに渡ってＲＲを拡散しても、帯域幅の観点では、ＲＲにより消費される限界費用は依然として高い。実施例として、第１のＲＲの費用が、１０００マイクロ秒サイクル中５０マイクロ秒である場合（５０／１０００＝５％）、第６のＲＲの真の費用は、（５０／７５０＝６．６６％）となる。単にサイクル毎のＲＲ数に上限を設けて、帯域幅をデータに対して予約した状態で維持することにより、マクロサイクルを延長し、よってレイテンシーを増大させる。したがって、現在、家庭用娯楽ネットワークに渡るデータパケットの伝送をスケジューリングするための、より効率的な方法および装置の必要性がある。
【発明の概要】
【００２４】
本開示される方法および装置は、家庭用娯楽ネットワークに渡るデータパケットの伝送をスケジューリングするためのシステムおよび方法に関し、より具体的には、家庭用娯楽ネットワークの複数のネットワークデバイスに対するネットワークアクセス要求をスケジューリングすることに関する。開示される方法および装置の様々な実施形態に従って、動的スケジューリングプロセスは、実際または認識されるネットワーク要求に基づいて、ネットワーク内のノードに対する予約要求（ＲＲ）をスケジュールする。具体的に、一実施形態では、ノード動作を見て、ノード動作に基づいてスケジューリング判定を行う、スケジューリングモジュールが提供される。ＲＲにより消費されるネットワーク帯域幅の量に起因して、非生産的なＲＲの数を制限することで、ネットワークの有効なスループットおよびレイテンシーの特徴を強化することができる。
【００２５】
例えば、一実施形態では、スケジュールされている様々なノードに対して、スケジューリングモジュールは、所定ノードに対する最近のネットワーク動作を見て、その動作に基づいて、当該ノードに対するＲＲをスケジュールするか否かを判定する。さらなる実施例として、ネットワークコーディネータ（ＮＣ）は、ノードの最後の動作以降に経過した時間、またはＭＡＰサイクルの数を、当該ノードに対してＲＲをスケジュールするか否かを決定するためのメトリックとして判定するように構成することができる。
【００２６】
例えば、ＮＣは、ノードが最近の通信動作を有し、より寛大でない場合（すなわち、頻繁にＲＲがスケジュールされない場合）、ノードが長期間非アクティブであった場合、ＲＲを割り当てる際により寛大となるように（すなわち、より頻繁にＲＲをスケジュールするように）構成することができる。別の実施例として、ＮＣは、ノードの動作レベルを判定し、その動作レベルに基づいて、ＲＲをノードに割り当てるか否かを判定するように構成することができる。
【００２７】
ネットワーク上の複数のノード間でＲＲをスケジューリングするための開示される方法の一実施形態にしたがって、第１のノードのネットワーク通信動作のレベルが判定される。第１のノードがアクティブであると判定されると、次にＲＲを第１のノードに割り当てる。次いで、プロセスを反復し、次のノードがアクティブであるか否かを判定し、次に調査されるノードがアクティブである場合にのみＲＲを割り当てる。
【００２８】
別の開示される実施形態に従って、ネットワークインターフェースまたはネットワークデバイスは、コントローラ、デバイスモジュール、コントローラに結合されるメモリ、およびコントローラに以下の機能を実行させるように構成されるコンピュータで読み取り可能な媒体上のコンピュータで実行可能なプログラムコードを含む。第１のノードのネットワーク通信動作のレベルを決定する。第１のノードがアクティブであると判定されると、次にＲＲを第１のノードに割り当てる。次いで、ネットワーク内の別のノードに対してプロセスを反復し、次のノードがアクティブであるか否かを判定する。次のノードがアクティブである場合、次にＲＲが割り当てられる。
【００２９】
別の開示される実施形態に従って、システム、方法、およびコンピュータプログラム製品は、ノードによる以前のネットワーク伝送以降に経過した時間またはサイクル数を判定することによって、ノードのネットワーク通信動作のレベルを調査するように構成することができる。代替として、ノードのネットワーク通信動作のレベルは、ノードが閾値を超えたか否かに基づいて判定される。一実施形態では、閾値は、ノードに対するクワイエットタイム、および最後のＲＲがノードに割り当てられてから経過した時間の関数として計算される。
【００３０】
さらに別の開示される実施形態に従って、システム、方法、およびコンピュータプログラム製品は、当該ノードがアクティブであるか否かに関係なく、ネットワーク内のノードにＲＲを割り当てる。さらに、別の実施形態では、システム、方法、およびコンピュータプログラム製品は、ノードが調査および割り当てられた後に、ネットワーク動作のレベルを判定する。追加のＲＲ割り当ては、その後ネットワーク動作に基づく。
【００３１】
さらに別の実施形態では、システム、方法、およびコンピュータプログラム製品は、ネットワークの各ノードのネットワーク通信動作のレベルを調査するプロセスを反復し、ノードがアクティブである場合にのみ、ＲＲを割り当てる。一実施形態では、システムとともに登録したノード、またはそうでない場合は、取得しようとしていると認識される、パラメータ化されたサービスの質（ｐＱｏＳ）は、適切な数の予約を取得して、当該ノードに割り当てられるサービスの質が達成されることを保証する。
【００３２】
開示される方法および装置の他の特徴および観点は、開示される方法および装置の実施形態による特徴を実施例によって説明する、添付の図面と併せて、以下の詳細な説明から明らかとなるであろう。発明の概要は、本発明の範囲を制限することを意図せず、本明細書に添付される請求項によってのみ定義される。
【００３３】
本明細書では、予約要求（ＲＲ）をスケジューリングするためのシステムおよび方法の１つ以上の様々な実施形態が開示され、以下の図面を参照して詳細に説明される。図面は、説明の目的のみで提供され、単に本明細書で開示される概念の典型的または例示的実施形態を表わす。これらの図面は、開示される概念に関する読者の理解を容易にするように提供され、本発明の幅、範囲、または適用性の限定として考慮されるべきものではない。明確にするために、および説明を容易にするために、これらの図面は、必ずしも原寸に比例していないことに留意されたい。
【図面の簡単な説明】
【００３４】
【図１】本発明の環境の一実施例による、ホームケーブルネットワークの例示的実装を説明する図である。
【図２】ＭａｐとＭａｐサイクルとの間のタイミング関係を説明するタイミング図である。
【図３】（Ａ）および（Ｂ）を含み、環境の一実施例における従来のＲＲ割り当てを説明する図である。
【図４】開示される方法および装置の一実施形態による、動的ノードスケジューリングのための例示的プロセスを説明する図である。
【図５】開示される方法および装置の一実施形態による、ＲＲをスケジューリングするために使用することができる、閾値曲線の実施例を示す図である。
【図６】開示される方法および装置の一実施形態による、動的ＲＲスケジューリングのための例示的プロセスを説明する図である。
【図７】開示される方法および装置の一実施形態による、ＲＲ割り当ての別の実施例を説明する図である。
【図８】開示される方法および装置の一実施形態による、ネットワークデバイスの一般化されたアーキテクチャの実施例を説明する図である。
【発明を実施するための形態】
【００３５】
図面は、包括的であること、または概念の範囲を開示される正確な形態に限定することを意図しない。開示される概念は、修正および代替とともに実行できることを理解されたい。さらに、本発明は、請求項およびその均等物によってのみ限定される一方、本明細書で提供される開示によって支持され、特定の開示される実施形態に限定されないものとする。
【００３６】
本明細書では、複数のネットワークデバイスに対するネットワークアクセス要求（すなわち、以下ＲＲと称される予約要求）をスケジューリングするためのシステムおよび方法が開示される。様々な開示される実施形態に従って、動的スケジューリングプロセスは、実際または認識されるネットワーク要求に基づいて、ネットワーク内のノードに対するＲＲをスケジュールする。具体的に、一実施形態では、ノード動作を見て、ノードの動作に基づいて、スケジューリング判定を行う、スケジューリングモジュールが提供される。
【００３７】
時々、開示される方法および装置は、上で開示される例示的環境に関して、本明細書で説明される。これらの環境に関する説明は、開示される方法および装置の様々な特徴および実施形態が、特定の環境の文脈において描かれるように提供される。本説明を読んだ後に、開示される方法および装置が、異なるネットワークトポロジーおよび標準を含む、異なるおよび代替環境においてどのように実装され得るかが、当業者には明らかとなるであろう。
【００３８】
複数のネットワークデバイス間で予約の割り当てを提供するためのシステムおよび方法について、ここで詳細に説明する。
【００３９】
開示される方法および装置の一実施形態に従って、より多くのＲＲはよりトラフィックが多いノードに割り当てられ、より少ないＲＲはサイレントなまたはよりトラフィックが少ないノードに割り当てられる。少数のノードのみが伝送されている場合、開示される方法および装置の一実施形態は、ＲＲの総数を低減し、それによって、そうでなければＲＲにより消費されるデータパケット、ネットワーク帯域幅を自由にする。
【００４０】
開示される方法および装置の一実施形態は、データをあまり頻繁に伝送していないか、または他のノードほど最近伝送していないノードを消費して、アプリケーションデータをアクティブに伝送しているノードを容認して、ＲＲの割り当てをバイアスすることによって動作する。一実施形態では、マクロサイクルの概念が依然として使用される。しかしながら、すべてのノードにＲＲを割り当てることを要求するのではなく、図３に関して説明されたように、全ノードより少ないノードは、所定のマクロサイクルにおいてＲＲを割り当てられ得る。好ましくは、すべてのノードは、ＲＲをスケジューリングする可能性を考えて、予約処理中に調査されるが、一部のノードは、サイレントであるか、または低頻度のトランスミッタであり得るため、これらのノードは、所定のマクロサイクルにおいて、または複数のマクロサイクルに対して、ＲＲを割り当てられない。これらの実施例が説明するように、実際の、期待される、または予測される必要性に基づいて、より賢明にそれらを割り当てる方法で、ノード間でＲＲを割り当てるために可能な様々なアルゴリズムがある。
【００４１】
図４は、開示される方法および装置の一実施形態による、動的ノード割り当てのための例示的プロセスを説明する図である。ここで図４を参照すると、ステップ２３４では、対象ノードが所定のマイクロサイクルで調査される。図示される実施例では、ノードを調査して、ノードによって実施される動作のレベルを判定する。例えば、一実施形態では、システムは、所定のノードが、ネットワーク全体に渡ってデータをアクティブに伝送していたか否か、ノードの最後の伝送以降にどれだけの時間（またはいくつのサイクル）が経過したか、またはどのような頻度でそのような伝送が生じていたかをチェックして判定することができる。例えば、多くのアプリケーションでは、ノードが送信するためのデータを有する場合、通常、ネットワーク全体に渡って送信するための複数の連続するパケットを有する。同様に、クワイエットノードは、ノードが送信するためのパケットを有する前に、比較的長期間クワイエット状態に留まる傾向がある。説明される実施形態では、ノードのアクティビティのレベルを使用して、少なくとも部分的に、当該ノードに対するＲＲをスケジュールするか否かを判定する。一実施形態では、当該ノードは、その動作レベルが、ＲＲのスケジューリングを保証するために十分に高い場合に、アクティブであると称される。
【００４２】
調査されているノードがアクティブであると判定される場合、ＲＲは当該ノードに対してスケジュールされる。これは、ステップ２３６および２３８によって説明される。一方、調査されているノードがアクティブでない場合、ＲＲは当該ノードに対してスケジュールされない。多様な技法を使用して、ＲＲをスケジューリングする目的で、ノードがアクティブであるか否かを判定することができる。例えば、以下でさらに詳細に説明されるように、閾値レベルを確立して使用し、ノードがアクティブであるか否かを判定することができる。例えば、ノードの動作レベルが、確立された閾値を超えて上昇する場合、当該ノードはアクティブであると言われ得る。閾値は、例えば、ネットワーク条件、ネットワーク動作等に応じて、固定されるか、または異なり得る。
【００４３】
一実施形態では、ノードがアクティブであるか否かを判定するための閾値は、所定のネットワークまたはネットワーク構成に対して既定であり得る。そのような閾値は、調整可能でもあり得る。代替実施形態では、既定または確立された閾値期間を有するのではなく、ネットワークの動作を見るか、またはネットワーク内のノード間の相対動作を見る、動的閾値技法を構成することができる。例えば、ＮＣは、継続的または定期的に、ネットワークの動作を調査し、ネットワーク内の動作のレベル、伝送およびサイレントノードの数、および他のローディング要素を判定することができる。ＮＣは、ネットワーク内で生じる動作のレベルに基づいて、アクティブな閾値を動的に設定することができる。例えば、ネットワーク内の多数のノードが、アクティブにデータを伝送している場合、閾値は、システムが、調査される第１のノードにＲＲを「過剰に割り当て」ないように、高く設定され得る。
【００４４】
依然として図４を参照すると、ステップ２４０では、プロセスは、最大数のＲＲが割り当てられたか否かをチェックして判定する。割り当てられた場合、プロセスは、このサイクルを完了する。そうでない場合、一実施形態では、マイクロサイクル内の各ノードを調査して、その動作レベルを判定するステップ、および動作のレベルに基づいて、ＲＲを各ノードに割り当てるステップは、最大数のＲＲに到達するまで（ステップ２４０）またはすべてのノードが調査されるまで（ステップ２４２）継続する。
【００４５】
上述されるとおり、調査されるノードがアクティブであるか否かを判定する際に使用するために、１つ以上の閾値を確立することができる。別の実施形態では、ノードがアクティブであるか否かではなく、ノードが非アクティブであるか否かに関して判定が行われる。その場合、非アクティブなノードは、ＲＲを割り当てられない。さらに別の実施形態では、ノードがアクティブであるか否かを示す第１の閾値、およびノードが非アクティブであるか否かを示す第２の閾値とともに、２つ以上の閾値を使用する。ノードが明らかにアクティブでも明らかに非アクティブでもない場合は、他の基準に基づいて、ＲＲを割り当てるか否かに関する判定を行う。
【００４６】
図５は、開示される方法および装置の一実施形態に従って、ＲＲを割り当てるか否かを判定するために使用することができる、レイテンシーの許容曲線の一実施例を説明する図である。図５は、１つはアクセストポロジーの場合、もう１つはメッシュトポロジーの場合の２つ許容曲線２６０の実施例を説明する。説明される実施例では、Ｘ軸はクワイエットタイム２６１であり、一実施形態では、ノードが任意のデータパケットを伝送した後のＭＡＰサイクル数として定義され、Ｙ軸は、最後のＲＲがノード２６２に割り当てられた後のＭＡＰサイクル数である。これらの曲線は、ＮＣが別のＲＲをノードに割り当てるまで、考えられる期間（例えば、いくつのＭＡＰサイクルが生じるか）の指標として使用することができる。
【００４７】
一実施形態では、ノードの状態が、図５で説明されるレイテンシーの許容曲線を超過する場合、次のスケジューリングパスにおいて割り当てられるＲＲの取得が許容される。代替として、ノードの状態が図５で説明されるレイテンシーの許容曲線以下である場合、ＲＲは、当該ノードに対してスケジュールされない。つまり、本実施形態では、閾値は、最後の伝送後の時間の長さおよび最後の割り当て後のＭＡＰ数によって判定される。説明される実施例は、低頻度のコミュニケータであるデバイス（または低頻度通信期間にあるもの）が、より頻繁に伝送するデバイス（または頻繁な通信期間にあるもの）よりも高度のレイテンシーを許容することができると仮定する。
【００４８】
一実施形態では、開示される方法および装置を、ルックアップテーブルを使用するように構成することができる。表１は、ノードの動作のレベルと、一定期間に渡って当該ノードに割り当てられているＲＲの数との間の、アクセストポロジーにおける関係の一実施例を表わす、ルックアップテーブルの一実施例を提供する。表１の実施例では、行番号（Ｎ）は、例えば、０〜１５までの整数にスケーリングされる配列指数を提供する。クワイエットサイクルの数を３２で割ることによって、適切な行番号を見つけることができる。ＭＡＰサイクルは、例示的環境では約１ミリ秒である。近似のクワイエットタイム（Ｔ）は秒である。Ｎ＝１５と対応する表の行は、約０．５秒間クワイエットであったノードのそれを示す。表１の行１５は、通常、そのようなノードは、約３２サイクルのＲＲを付与されないことをさらに示す。実際のサイクル数は、例えば、以下で説明される「フリーパス」ノード等の要素に起因して異なり得ることに留意されたい。一実施形態では、サイクル数を変化させ得る別の要素は、ノードには、マクロサイクル毎に１回のみ、予約が考慮されることである。したがって、３２ノードを有するトポロジーの場合、例えば、これは、最大５つの超過サイクル（または１６ノードを有するトポロジーでは２つの超過サイクル）の考慮を遅延させ得る。本特定の実施例の表の場合、極めて待ち時間が長いノードのレイテンシーペナルティは、約７％だけ増加することに留意されたい（５１２に対して３２）。
【００４９】
アクセストポロジーは、最大３１のクライアントノードに対応するため、本例示的表は、メッシュトポロジー等の１５クライアントトポロジーに対して所望されるよりもはるかにアグレッシブに予約を抑制する。本実施例が説明するように、構成を変更して、例えば、ノードの数およびネットワークデバイスの型等のネットワーク構成の特徴に対応することができる。ルックアップテーブルを使用することによって、アルゴリズムパラメータが構成可能なオプションを有するように調節する柔軟性がある。これを読んだ後で当業者には明らかとなるように、ルックアップテーブル以外の構成を使用して、アルゴリズムを制御し、パラメータの調節性を提供することができる。
【表１】
2015057886.tif 000003
【００５０】
説明される実施例では、ネットワーク上の最後の伝送以降に経過した時間が長いほど、ＲＲが割り当てられる前に、デバイスが待機を求められるサイクルが増えることに留意されたい。実際に、そのような実装では、低頻度のコミュニケータは、割り当ての間により長時間待機するよう求められる。また、説明される実施例では、ノードにＲＲが付与され、続いて、当該ＲＲに応答してデータ伝送を要求する場合、考慮される次のサイクルにおいて、別のＲＲがノードに付与されることに留意されたい。したがって、例示的許容曲線を別の見方をすると、ノードの履歴的動作に基づいて、増分レイテンシーを定義するためにそれらを使用することができる。
【００５１】
図６は、開示される方法および装置の一実施形態による、動的ＲＲスケジューリングの例示的プロセスを説明する図である。具体的に、図６に示される実施例は、ＲＲをスケジュールすることを決定するときに、ノードを調査して、許容曲線（例えば、許容曲線２６０等）の上または下であるか否かを判定する。さらに、図６に示される実施形態は、各マイクロサイクルにおいて、常にＲＲを少なくとも１つのノード（すなわち、「フリーパス」ノード）に割り当てるプロセスに従い、少なくとも１つのＲＲがマイクロサイクル毎にスケジュールされることを保証する。そのような実装は、例えば、ＲＲの受信がスレッドを起動してパケットを処理する場合に適切であり得、次のＭＡＰは、最後のＲＲが処理されると、同一のスレッドにおいて生成される。代替実施形態は、マイクロサイクル毎に１つのＲＲを必要としない。例えば、タイマー割り込みまたは他の機構を実装して、ＭＡＰ生成スレッドを起動することができる。
【００５２】
ここで図６を参照すると、プロセスは、図４を参照して上述されるように、マクロサイクルにおける第１のノードを調査することによって開始する。しかしながら、本説明される実施例では、少なくとも１つのＲＲがマイクロサイクル毎にスケジュールされることを保証するために、各マイクロサイクル内の所定ノードは、その動作のレベルに関係なく、当該ノードに割り当てられたＲＲを有することによって、「フリーパス」を取得するものと指定される。したがって、ステップ３２４では、ノードが「フリーパス」ノードであるか否かが判定され、そうであれば、その動作のレベルに関係なく、または指定された許容曲線との関連で下落する場所に関係なく、ステップ３３２において、当該ノードにＲＲが割り当てられる。一実施形態では、各マイクロサイクルにおける第１のノードは、フリーパスノードとして指定されるが、第１のノードとは異なるノード、または複数のノードがフリーパスノードとして指定される場合、他の実施形態を実装することができる。
【００５３】
「フリーパス」は、各マイクロサイクルにおいて少なくとも１つのＲＲを保証するための一方法である。各マクロサイクル内の所定のノードがフリーパス（例えば、第１のノード）を取得する場合、ノードは、図３が示唆するよりもさらに頻繁にＲＲを割り当て得る。後続のマイクロサイクルがマクロサイクルを完了する必要がある場合、別のノードが「フリーパス」を取得してもよい。アクティブなノードに続くノードは、したがって、そのような実施形態ではスケジュールされる可能性が高い場合がある。フリーパスを提供するための一代替案は、ノードの通常走査を実行することであり、アクティブなノードが見出されない場合は、最適な（例えば、最もアクティブな）ノード、第１のノード、または他の識別されるノードのいずれかをスケジューリングする。
【００５４】
ステップ３２６では、次のノードを調査して、確立された許容曲線の上にあるか否かを判定する。前述されるように、ノードが確立された許容曲線（または閾値）の上にある場合、ＲＲが当該ノードに割り当てられる。許容曲線の上にない場合、ＲＲは割り当てられない。これは、ステップ３２８、３３２および３３４によって説明される。ステップ３３５では、プロセスは、最大数のＲＲが割り当てられたか否かをチェックして判定する。そうである場合、プロセスはこのサイクルを完了する。そうでない場合、ステップ３３７および３３９によって説明されるように、プロセスは、マクロサイクル内の別のノードに対して反復され、ＲＲを割り当てるべきか否かを判定する。
【００５５】
ＭｏＣＡネットワークの例示的環境では、すべてのノードがチェックされて、マクロサイクルが終了する前に、１つ以上のマイクロサイクルを取り得る。好ましくは、本環境では、１つ〜５つの間のＲＲが、マイクロサイクル毎にスケジュールされるべきである。しかしながら、ＮＣが、ネットワーク上の動作に応じて、異なる数のＲＲを調整するように構成されるように、システムを実装することができる。一実施例として、システムは、所定のマクロサイクルにおいてスケジュールされたノードの数をカウントするように構成することができ、この値は、システムの怠惰性の指標として見ることができる。少数のアクティブノードのみを有するシステムの場合、より少数のＲＲをサイクル毎に送信し、より長いデータタイムをネットワーク上で使用可能にすることができ、アクティブノードのレイテンシーを低減する。例えば、（そうでなければＲＲに使用される）他のタイムスロットをデータパケットに再割り当てすることが望ましい場合があり、それによって、ネットワークのスループットを増大させる。
【００５６】
一実施形態では、以下のように、マイクロサイクル毎に最大数のＲＲが設定される。
マイクロサイクル毎の最大数のＲＲ=４+(マクロサイクル毎の前の実際のＲＲ/８)
したがって、本実施形態では、システムはマイクロサイクル毎に４〜７個のＲＲを有することができる。当然のことながら、ネットワークパラメータおよび望ましい操作上の効果に基づいて、他のパラメータを使用することができる。アクセスネットワークに対する実際の使用シナリオでは、マイクロサイクル毎のＲＲ数は４に向かう傾向があり、マクロサイクルは、１つか、または２つの実際のマイクロサイクルのみであることに留意されたい。そのため、実際には、各アクティブノードは、ほぼ１つおきのマイクロサイクルでスケジュールされる。さらに、本方法を、マイクロサイクル毎に３〜５の典型的なＲＲを有する、１６ノードのメッシュネットワークに対して使用する場合、その効果は、アクティブノードに対するＲＲ間のより多くのネットワーク帯域幅および／またはより短時間で、クワイエットノードの予約と相殺される。
【００５７】
アクセスネットワークでは、ネットワーク内に多数のノードが存在し、マクロサイクルの概念が利用されると仮定されることが多い。ある意味で、マクロサイクルは、図３の（Ａ）の例示的モデルに示されるノードを含んでもよく、つまり、マクロサイクル内のノードの順序付けは、経時的に変化し得る。アクセスネットワークは、例えば、代替サイクルをスケジュールして、複数のマクロサイクルに渡って、すべてのノードをカバーするように配置する。マクロサイクルにおける最終マイクロサイクルは、ノードが使い尽くされるため、比較的短くなる傾向があり得る。メッシュネットワークでは、ノードがより少数であるため、マクロサイクルの概念は強調されない可能性が高い場合がある。
【００５８】
図７は、開示される方法および装置の一実施形態に従う、ＲＲ割り当ての別の実施例を説明する図である。具体的に、図７は、ネットワーク動作に基づいて、追加のＲＲを割り当てることができる一実施例を説明する。ここで図７を参照すると、本例示的シナリオにおけるプロセスは、それらの動作に基づく、ネットワークノードへのＲＲの割り当てから始まる。これは、ステップ４１５、４１８、４２２、および４２５によって説明される。例えば、一実施形態では、そのような割り当ては、記載および上述される技法を使用して達成することができる。本文書で論じられるように、一実施形態では、すべてのＲＲより少ないか、そうでない場合は使用可能なＲＲが割り当てられ、使用可能なタイムスロットが、データ通信動作に再度割り当てられ得る。しかしながら、代替実施形態では、残りのスロットがネットワーク内の他のノードに割り当てられ得るか、または割り当てと再割り当ての組み合わせが提供され得る。
【００５９】
図７で説明される実施形態は、ネットワークの動作を調査および評価して、ネットワークが追加のＲＲに適切に対応できるようなネットワーク動作であるか否かを判定する。したがって、ステップ４２８では、すべてのノードが調査され、割り当てが行われた後に、ＮＣは、ネットワークの通信動作を調査して、現在のローディングを判定する。ネットワーク上の動作が、追加の伝送スロットが対応され得るために十分軽い場合、１つ以上の追加のＲＲが、ネットワーク内の１つ以上の他のノードに割り当てられる。これは、ステップ４３２によって説明される。
【００６０】
例えば、一実施形態では、ネットワーク動作が軽い場合、許容曲線または他の確立された閾値は低減され得、割り当てられていないノードは、これらの新しいメトリクスを念頭に置いて再調査され得る。以前に割り当てられていないノードが、ここで新しい閾値の上にある場合、当該ノードにＲRを割り当てることができる。このプロセスは、ネットワーク内で既に残存するノードのそれぞれに対して実行することができる。別の実施例として、ＮＣは、割り当てられていないノードが、ステップ４１５および４１８の間に許容曲線上にあることを見て、割り当てのための許容曲線に最も近いノード（単数または複数）を選択するように構成され得る。
【００６１】
ネットワーク動作が追加の割り当てを許容するか否かを判定するための閾値は、様々な異なるパラメータを使用して確立することができる。例えば、ＮＣは、現在のタイムスロットに対するネットワークローディングを見てもよく、帯域幅が使用可能である場合は、判定のための閾値を低下させる。別の実施例として、ＮＣは、次のＭＡＰサイクルに対して、ノードから既に受信されているＲＲを見て、予測されるローディングに基づいて、閾値を調整してもよい。さらに別の実施例として、異なるサービス分類のノードは、異なるレイテンシー許容曲線を有し得る。分類は、例えば、購入されたサービスレベル、現在のトラフィックパターンに関する知識等の要素に依存し得る。別の実施例として、一実施形態では、システムとともに登録した、またはそうでない場合は取得するパラメータ化されたサービスの質（ｐＱｏＳ）として識別されるノードは、既定数または最小数の予約を取得するように計画されてもよい。
【００６２】
すべてのノードがデータを調達しており、いずれもクワイエットでない場合、すべてのノードからのラウンドロビントラフィックに対しては、スケジューリングアルゴリズムは、図３で見られるように、ラウンドロビン様式で、すべてのノードに対してＲＲをスケジュールするように構成され得る（８ノードの場合）。１６ノードの場合、マクロサイクルは、３マイクロサイクルまで増加し、すべてのマクロサイクルにおけるすべてのノードに対してＲＲをスケジュールすることができる。当然のことながら、すべてのノードがデータを調達しており、すべてがそれらの閾値を超過する場合、図４を参照して上述されるようなアルゴリズムは、例えば、ラウンドロビン型のスケジュール動作をもたらす。
【００６３】
開示される概念の様々な実施形態が上述されたが、それらは、例示の手段としてのみ提示されており、限定ではないことを理解されたい。同様に、様々な図は、開示される概念の例示的アーキテクチャまたは他の構成を表わし得、概念に含まれ得る特徴および機能性の理解を支援するように行われる。したがって、請求される発明は、説明される例示的アーキテクチャまたは構成に制限されないが、望ましい特徴は、様々な代替的なアーキテクチャおよび構成を使用して実装することができる。実際に、代替の機能的、論理的、または物理的区分および構成をどのように実装して、望ましい特徴を実行することができるかが、当業者には明らかとなるであろう。また、本明細書で表わされるもの以外の複数の異なる構成モジュール名を、様々な区分に適用することもできる。さらに、フロー図に関して、操作上の説明および方法請求項、本明細書においてステップが提示される順序は、様々な実施形態を実装して、文脈上特に明記されない限り、同一順序で引用される機能を実行することを義務付けるものではない。
【００６４】
ＭｏＣＡおよび他のネットワーク環境では、通常、ネットワークノードは、プロセッサ、コントローラ、またはデバイス機能を実行するように構成される他の処理モジュールを有する、ネットワークデバイスを含む。上述されるスケジューリングおよび他のネットワーク管理特徴は、デバイス処理モジュールによって実行されてもよいか、またはネットワークノードとして機能することを可能にするデバイスとともに、専用ネットワークモジュールが提供されてもよい。ＭｏＣＡネットワーク等の通信ネットワークとともに使用することができる、ネットワークデバイスの一例示的構成は、図８において説明される。ここで図８を参照すると、例示的ネットワークデバイス５２０は、コントローラ５２２、メモリ５２５、およびシステムバス５４０を含む。
【００６５】
コントローラ５２２は、例えば、マイクロプロセッサ、コントローラ、または他の制御論理等の汎用または専用処理エンジンを使用して、実装されてもよい。一実施形態では、デバイス５２０機能性の一部またはすべては、プロセッサコアおよびメモリブロックを含む、ＡＳＩＣ、ＰＬＤ、または他の回路デバイスを使用して実装することができる。したがって、コントローラ５２２は、例えば、ＲＩＳＣマイクロプロセッサコア等の処理コアを使用して実装されてもよい。ＲＩＳＣプロセッサコアの実施例は、英国のケンブリッジにあるＡｄｖａｎｃｅｄ  ＲＩＳＣ  Ｍａｃｈｉｎｅｓ  Ｌｔｄから入手可能なＡＲＭコア、および米国カリフォルニア州マウンテンビューのＭＩＰＳ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．から入手可能なＭＩＰＳ  ＲＩＳＣコアを含むが、他のコアも同様に使用可能である。図８で説明される実施例では、コントローラ５２２は、バス５４０または他の通信媒体に接続され、デバイスの他の構成要素との相互作用を容易にする。中心バス構造が描かれているが、他の通信媒体およびアーキテクチャがアクセス可能である。
【００６６】
コントローラ５２２は、通常、例えば、ＲＯＭ５２４に記憶されるプログラムコードを実行するように動作し、一般に、ネットワークデバイスの機能性を制御する。ＲＡＭ５２６は、コントローラ動作および他の記憶のためのワーキングメモリとして機能するように含むこともできる。ネットワークデバイス５２０は、ハードドライブ、フロッピードライブ、ＣＤおよびＤＶＤ  ＲＯＭおよびＲＷＭドライブ、リムーバブルメモリまたは記憶デバイス等の二次記憶デバイス５３８をさらに含み得るが、それらに限定されない。
【００６７】
外部通信の場合、ネットワークデバイスは、通信能力を含むこともできる。例えば、図８で説明される実施例は、ネットワークトランシーバ５３６および外部インターフェース５３２を含む。実際の実施例として、例示的環境の場合、ネットワークトランシーバ５３６は、デバイスが他のＭｏＣＡノードとデータを共有できるようにする、ＭｏＣＡトランシーバであり得る。
【００６８】
通信インターフェースを使用して、ソフトウェアおよびデータが、ネットワークデバイス５２０と他のデバイスまたはノードとの間で伝送されるようにすることもでき得る。通信インターフェースの実施例は、モデムまたはソフトモデム、ネットワークインターフェース（例えば、イーサネット、ネットワークインターフェースカード、ＷｉＭｅｄｉａ８０２．１１、ＭｏＣＡ、または他のインターフェース等）、通信ポート（例えば、ＵＳＢポート、ＩＲポート、ＲＳ２３２ポートＢｌｕｅｔｏｏｔｈインターフェース、または他のポート等）、または他の通信インターフェースを含み得る。通信インターフェースを経由して伝送されるソフトウェアおよびデータは、通常、電子的シグナル、電磁的シグナル、光学的シグナル、または所与の通信インターフェースによって交換され得る他のシグナル上で運搬され得る。これらのシグナルは、準拠したチャネルを経由して、インターフェースを通信するように提供されてもよく、チャネルは、シグナルを運搬し得、有線または無線媒体を使用して実装され得る。チャネルの一部の実施例は、電話線、セルラリンク、ＲＦリンク、光学リンク、ネットワークインターフェース、ローカルエリアネットワークまたは広域ネットワーク、および他の有線または無線通信チャネルを含み得る。
【００６９】
本文書では、「コンピュータプログラム媒体」および「コンピュータで使用可能な媒体」という用語は、一般に、例えば、メモリまたは記憶ユニット、記憶媒体、およびチャネル上のシグナルを示すために使用される。これらおよび他の様々な形態のコンピュータ媒体は、実施するための処理デバイスに１つ以上の指示の１つ以上のシーケンスを運搬する際に関与し得る。媒体上で具体化されるそのような指示は、一般に、「コンピュータプログラムコード」と称される（コンピュータプログラムまたは他のグループの形態でグループ化され得る）。実施されると、そのような指示は、デバイスが、本明細書で論じられるような特徴または機能を実行できるようにすることができる。
【００７０】
デバイスモジュール５６２は、ネットワークデバイス５２０によって実行することができ、実際のデバイスの性質に応じて異なり得る、機能表示のブラックボックスである。例えば、本実施例におけるネットワークデバイス５２０は、デジタルビデオカメラであると仮定する。本実装では、デバイスモジュール５６２は、結像光学系、画像センサ、画像バッファ、および他の同様の機能を含み得る。デバイスモジュール５６２は、処理能力およびメモリ能力をさらに含むことができるか、またはコントローラ５２２およびメモリ５２５を、その操作力の一部またはすべてに使用することができる。本実施例が説明するように、ネットワークデバイス５２０は、他の構成要素、構成、または機能性を有する他のデバイスとして実装されてもよい。
【００７１】
本明細書で使用される場合、モジュールという用語は、所与の実行可能な機能ユニットを説明し得る。本明細書で使用される場合、モジュールは、ハードウェア、ソフトウェア、またはそれらの組み合わせという任意の形態を利用して実装され得る。例えば、１つ以上のプロセッサ、コントローラ、ＡＳＩＣ、ＰＬＡ、論理構成要素、ソフトウェアルーチン、または他の機構が実装されて、モジュールを形成し得る。実装では、本明細書で説明される様々なモジュールは、個別のモジュールとして実装され得るか、または説明される機能および特徴が、１つ以上のモジュール間で部分的または全体的に共有され得る。つまり、本説明を読んだ後で当業者には明らかとなるように、本明細書で説明される様々な特徴および機能性は、任意の所定のアプリケーションにおいて実装されてもよく、様々な組み合わせおよび順列で、１つ以上の個別または共有されるモジュールで実装することができる。機能性の様々な特徴または要素は、個別に説明され得るか、または個別のモジュールとして請求され得るが、当業者であれば、これらの特徴および機能性を、１つ以上の共通ソフトウェアおよびハードウェア要素間で共有できること、またそのような説明は、個別のハードウェアまたはソフトウェア構成要素を使用して、そのような特徴または機能性を実装することを要求または暗示するものでないことを理解するであろう。
【００７２】
概念は、様々な実施形態および実装に関して上述されるが、個別の実施形態のうちの１つ以上において説明される様々な特徴、態様、および機能性は、それらが説明される特定の実施形態に対するそれらの適用性において制限されないが、代わりに、そのような実施形態が説明されるか否か、およびそのような特徴が説明される実施形態の一部として提示されるか否かに関係なく、単独または様々な組み合わせで、開示される概念に一致する他の実施形態のうちの１つ以上に適用することができることを理解されたい。したがって、請求される発明の幅および範囲は、上述される実施形態のいずれによっても制限されるものではなく、むしろ、開示される実施形態によって例証される概念の全体までの支持を開示から得るものである。
【００７３】
本文書で使用される用語およびフレーズ、ならびにそれらの変型例は、特に明記されない限り、限定とは対象的に、無制限と見なされるものである。前述の例として、「含む」という用語は、「制限なく含む」等の意味として読み取られるべきであり、「実施例」という用語を使用して、議論されているアイテムの選択される例、包括的または限定的でないそのリストを提供し、「ひとつの（ａまたはａｎ）」という用語は、「少なくとも１つの」、「１つ以上の」等の意味として読み取られるべきであり、「従来の」、「伝統的な」、「通常の」、「標準の」、「既知の」等の形容詞、および同様の意味の用語は、説明されるアイテムを所定の期間または所定の時間に使用可能なアイテムに限定するものと見なされるべきではないが、代わりに、現在または未来の任意の時点で、使用可能であり得るか、または知られ得る、従来の、伝統的な、通常の、または標準の技術を包含するように読み取られるものである。同様に、本文書が、当業者に明らかであるか、または知られる技術について言及する場合、そのような技術は、現在または未来の任意の時点で、熟練者に明らかであるか、または知られるものを包含する。
【００７４】
接続詞「および」で連結される一群のアイテムは、それらのアイテムのそれぞれおよびすべてが当該グループに存在することを求めるものとして読み取られるべきではなく、特に明記しない限り、むしろ「および／または」として読み取られるべきである。同様に、接続詞「または」で連結される一群のアイテムは、当該グループ内の相互排他性を求めるものとして読み取られるべきではなく、特に明記しない限り、むしろ「および／または」としても読み取られるべきである。さらに、開示されるアイテム、要素、または構成要素は、単数形で説明または請求され得るが、単数に限定することが明記されない限り、複数もその範囲内となることが意図される。
【００７５】
一部の例における「１つ以上の」、「少なくとも」、「に限定されない」または他の同様のフレーズ等の拡大する語およびフレーズの存在は、そのような拡大するフレーズが不在であり得る場合に、狭義のケースが意図されるか、または必要とされることを意味すると読み取られるものではない。「モジュール」という用語の使用は、モジュールの一部として説明されるか、または請求される構成要素または機能性が、共通パッケージにおいてすべて構成されることを暗示しない。実際に、モジュールの様々な構成要素のいずれかまたはすべては、制御論理であるか、他の構成要素であるかに関係なく、単一のパッケージにおいて組み合わされ得るか、または個別に維持され、複数のグループもしくはパッケージで、または複数の位置に渡ってさらに分配することができる。
【００７６】
追加として、本明細書で説明される様々な実施形態は、ブロック図、フローチャート、および他の図示の例として説明される。本文書を読んだ後で当業者には明らかとなるように、図示される実施形態、およびそれらの様々な代替は、図示される実施例に制限されることなく実装することができる。例えば、ブロック図およびそれらに付随する説明は、特定のアーキテクチャまたは構成を義務付けるものと見なされるべきではない。
【図３】
2015057886.tif 000004
【図４】
2015057886.tif 000005
【図６】
2015057886.tif 000006
【図７】
2015057886.tif 000007
【図１】
2015057886.tif 000008
【図２】
2015057886.tif 000009
【図５】
2015057886.tif 000010
【図８】
2015057886.tif 000011
【外国語明細書】
2015057886000001.pdf