(57)【要約】  詳細な説明において開示される態様は、通信デバイスにおけるヘッドオブラインブロッキング(HOLB)軽減を含む。データを送信するために通信デバイスによって利用される出力キューはHOLBの影響を受けやすい。この点に関して、一態様において、キュー監視ロジックが、出力キューの深さを測定し、キューオーバーフローしきい値と比較することによって、HOLBを検出するように構成される。出力キューの深さがキューオーバーフローしきい値を超える場合には、対応する入力キューのキュー重みを減少させて、出力キューへのデータフローを削減し、それにより、出力キュー内のHOLBを軽減する。別の態様において、キュー監視ロジックは、出力キューの深さをキュー枯渇しきい値と比較することによって、キュー枯渇を検出するように構成される。出力キュー内のHOLBおよびデータスターベーションを軽減することによって、より低い消費電力で、より高いスループットおよびデータ完全性を達成するために、出力キューを最適化することができる。
2018522322.tif 000002
【特許請求の範囲】
【請求項１】
通信デバイスにおけるヘッドオブラインブロッキング(HOLB)を軽減するための送信制御ロジックであって、
通信デバイス内の1つまたは複数の出力キューに通信可能に結合されるキュー監視ロジックと、
1つまたは複数の出力データストリームを前記1つまたは複数の出力キューにそれぞれ提供するように構成される1つまたは複数の入力キューに通信可能に結合されるキュー重み決定ロジックと
を備え、
前記1つまたは複数の出力キューの各々ごとに、
前記キュー監視ロジックは、
前記出力キューのそれぞれのキュー深さを測定し、
前記出力キューの状態を判断するために、前記それぞれのキュー深さをしきい値と比較する
ように構成され、
前記キュー重み決定ロジックは、前記出力キューの前記状態の前記判断に応答して、前記出力キューに結合されるそれぞれの出力データストリームを調整するように構成される、
送信制御ロジック。
【請求項２】
前記1つまたは複数の出力キューの各々ごとに、
前記キュー監視ロジックは、
前記それぞれのキュー深さをキューオーバーフローしきい値と比較し、
前記それぞれのキュー深さが前記キューオーバーフローしきい値より大きい場合には、前記キュー重み決定ロジックにそれぞれのキューオーバーフロー指示を提供する
ように構成され、
前記キュー重み決定ロジックは、前記それぞれのキューオーバーフロー指示を受信するのに応答して、前記出力キューに結合される前記それぞれの出力データストリームを減少させるように構成される、
請求項1に記載の送信制御ロジック。
【請求項３】
前記1つまたは複数の出力キューの各々ごとに、
前記キュー監視ロジックは、
前記それぞれのキュー深さをキュー枯渇しきい値と比較し、
前記それぞれのキュー深さが前記キュー枯渇しきい値より小さい場合には、前記キュー重み決定ロジックにそれぞれのキュー枯渇指示を提供する
ように構成され、
前記キュー重み決定ロジックは、前記それぞれのキュー枯渇指示を受信するのに応答して、前記出力キューに結合される前記それぞれの出力データストリームを増加させるように構成される、
請求項2に記載の送信制御ロジック。
【請求項４】
前記1つまたは複数の出力キューは先入れ先出し(FIFO)キューである、請求項1に記載の送信制御ロジック。
【請求項５】
前記出力キューの前記それぞれのキュー深さは、前記キュー監視ロジックによって定期的に測定される複数のそれぞれのキュー深さを含む、請求項3に記載の送信制御ロジック。
【請求項６】
前記キュー監視ロジックは、
前記複数のそれぞれのキュー深さの各々ごとに、
前記それぞれのキュー深さが前記キューオーバーフローしきい値より大きい場合には、キューオーバーフローカウンタを増加させ、
前記それぞれのキュー深さが前記キュー枯渇しきい値より小さい場合には、キュー枯渇カウンタを増加させ、
前記キューオーバーフローカウンタまたは前記キュー枯渇カウンタが所定のヒステリシス値以上である場合には、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより大きい場合には、前記それぞれのキューオーバーフロー指示を生成し、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより小さい場合には、前記それぞれのキュー枯渇指示を生成する
ようにさらに構成される、請求項5に記載の送信制御ロジック。
【請求項７】
前記キュー監視ロジックは、前記それぞれのキューオーバーフロー指示または前記それぞれのキュー枯渇指示を生成した後に、前記キューオーバーフローカウンタおよび前記キュー枯渇カウンタをリセットするようにさらに構成される、請求項6に記載の送信制御ロジック。
【請求項８】
前記1つまたは複数の入力キューは、重み付けラウンドロビン(WRR)スケジューリング方式に基づいて、前記1つまたは複数の出力データストリームを提供するように構成される、請求項3に記載の送信制御ロジック。
【請求項９】
前記1つまたは複数の入力キューはそれぞれ1つまたは複数のキュー重みを割り当てられる、請求項8に記載の送信制御ロジック。
【請求項１０】
前記キュー重み決定ロジックは、
前記1つまたは複数の入力キューの中のそれぞれの入力キューに関連付けられるそれぞれのキュー重みを減少させることによって、前記出力キューに結合される前記それぞれの出力データストリームを減少させることであって、前記それぞれの入力キューは前記それぞれの出力データストリームを提供するように構成される、減少させることと、
前記それぞれの出力データストリームを提供するように構成される前記それぞれの入力キューに関連付けられる前記それぞれのキュー重みを増加させることによって、前記出力キューに結合される前記それぞれの出力データストリームを増加させることと
を行うようにさらに構成される、請求項9に記載の送信制御ロジック。
【請求項１１】
前記キュー重み決定ロジックは、
前記それぞれのキュー枯渇指示を受信するのに応答して、第1のキュー重みレジスタを増加させるように構成される第1のマルチプレクサ(MUX)と、
前記それぞれのキューオーバーフロー指示を受信するのに応答して、第2のキュー重みレジスタを減少させるように構成される第2のMUXと、
前記第1のキュー重みレジスタおよび前記第2のキュー重みレジスタに結合されるキュー重みMUXであって、
前記第1のMUXから第1の制御信号を受信するのに応答して、前記第1のキュー重みレジスタに従って前記それぞれのキュー重みを決定し、
前記第2のMUXから第2の制御信号を受信するのに応答して、前記第2のキュー重みレジスタに従って前記それぞれのキュー重みを決定する
ように構成されるキュー重みMUXと
を備える、請求項10に記載の送信制御ロジック。
【請求項１２】
前記第1のMUXは、前記それぞれのキュー枯渇指示の第1のしきい値数を受信するのに応答して、前記第1の制御信号を生成するように構成され、
前記第2のMUXは、前記それぞれのキューオーバーフロー指示の第2のしきい値数を受信するのに応答して、前記第2の制御信号を生成するように構成される、
請求項11に記載の送信制御ロジック。
【請求項１３】
集積回路に組み込まれる、請求項1に記載の送信制御ロジック。
【請求項１４】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなるグループから選択されるデバイスに組み込まれる、請求項1に記載の送信制御ロジック。
【請求項１５】
通信デバイスにおけるヘッドオブラインブロッキング(HOLB)を軽減するための手段であって、
通信デバイス内の1つまたは複数の出力キューを監視するための手段と、
1つまたは複数の出力データストリームを前記1つまたは複数の出力キューにそれぞれ提供するように構成される1つまたは複数の入力キューを制御するための手段と
を備え、
前記1つまたは複数の出力キューの各々ごとに、
通信デバイス内の1つまたは複数の出力キューを前記監視するための手段は、
前記出力キューのそれぞれのキュー深さを測定し、
前記出力キューの状態を判断するために、前記それぞれのキュー深さをしきい値と比較する
ように構成され、
1つまたは複数の入力キューを前記制御するための手段は、前記出力キューの前記状態の前記判断に応答して、前記出力キューに結合されるそれぞれの出力データストリームを調整するように構成される、
手段。
【請求項１６】
通信デバイスにおけるヘッドオブラインブロッキング(HOLB)を軽減するための方法であって、
通信デバイス内に含まれる1つまたは複数の出力キューの中の出力キューのそれぞれのキュー深さを測定するステップと、
前記出力キューの状態を判断するために、前記それぞれのキュー深さをしきい値と比較するステップと、
前記出力キューの前記状態の前記判断に応答して、前記出力キューに結合される1つまたは複数の出力データストリームの中のそれぞれの出力データストリームを調整するステップと
を含む、方法。
【請求項１７】
前記それぞれのキュー深さをキューオーバーフローしきい値と比較するステップと、
前記それぞれのキュー深さが前記キューオーバーフローしきい値より大きい場合には、前記出力キューに結合される前記それぞれの出力データストリームを減少させるステップと
をさらに含む、請求項16に記載の方法。
【請求項１８】
前記それぞれのキュー深さをキュー枯渇しきい値と比較するステップと、
前記それぞれのキュー深さが前記キュー枯渇しきい値より小さい場合には、前記出力キューに結合される前記それぞれの出力データストリームを増加させるステップと
をさらに含む、請求項17に記載の方法。
【請求項１９】
前記それぞれのキュー深さを定期的に測定し、かつ前記出力キューのための複数のそれぞれのキュー深さを生成するステップをさらに含む、請求項18に記載の方法。
【請求項２０】
前記複数のそれぞれのキュー深さの各々ごとに、
前記それぞれのキュー深さが前記キューオーバーフローしきい値より大きい場合には、キューオーバーフローカウンタを増加させるステップと、
前記それぞれのキュー深さが前記キュー枯渇しきい値より小さい場合には、キュー枯渇カウンタを増加させるステップと、
前記キューオーバーフローカウンタまたは前記キュー枯渇カウンタが所定のヒステリシス値以上である場合には、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより大きい場合には、それぞれのキューオーバーフロー指示を生成するステップと、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより小さい場合には、それぞれのキュー枯渇指示を生成するステップと
をさらに含む、請求項19に記載の方法。
【請求項２１】
前記それぞれのキューオーバーフロー指示または前記それぞれのキュー枯渇指示を生成した後に、前記キューオーバーフローカウンタおよび前記キュー枯渇カウンタをリセットするステップをさらに含む、請求項20に記載の方法。
【請求項２２】
重み付けラウンドロビン(WRR)スケジューリング方式に基づいて、1つまたは複数の入力キューから前記1つまたは複数の出力データストリームをそれぞれ提供するステップをさらに含む、請求項18に記載の方法。
【請求項２３】
前記1つまたは複数の入力キューに1つまたは複数のキュー重みをそれぞれ割り当てるステップをさらに含む、請求項22に記載の方法。
【請求項２４】
前記1つまたは複数の入力キューの中のそれぞれの入力キューに関連付けられるそれぞれのキュー重みを減少させることによって、前記出力キューに結合される前記それぞれの出力データストリームを減少させるステップであって、前記それぞれの入力キューは前記それぞれの出力データストリームを提供するように構成される、ステップと、
前記それぞれの出力データストリームを提供するように構成される前記それぞれの入力キューに関連付けられる前記それぞれのキュー重みを増加させることによって、前記出力キューに結合される前記それぞれの出力データストリームを増加させるステップと
をさらに含む、請求項23に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権出願
本出願は、全体が参照により本明細書に組み込まれる、2015年5月15日に出願された"HEAD-OF-LINE BLOCKING (HOLB) MITIGATION IN COMMUNICATION DEVICES"という名称の米国特許出願第14/713,028号の優先権を主張する。
【０００２】
本開示の技術は包括的には通信デバイス内のデータ送信に関する。
【背景技術】
【０００３】
モバイル通信デバイスは、現代社会においてますます一般的になってきた。これらのモバイル通信デバイスの普及は、1つには、そのようなデバイス上で現在可能にされる数多くの機能によって後押しされる。そのような機能に対する需要が、モバイル通信デバイスに関する処理能力要件を高める。結果として、モバイル通信デバイスは、様々なデータストリーム(たとえば、音声、オーディオ、ビデオ、画像、テキストなど)を同時に処理することができる高度なモバイルエンターテインメントセンターになってきた。
【０００４】
モバイル通信デバイスは様々なデータストリームを同時に処理することができるが、様々なデータストリームを1つまたは複数のクライアントデバイスにリアルタイムに出力するタスクは、より困難である。第一に、様々なデータストリームによって共有されなければならない利用可能な通信媒体(たとえば、ワイヤレススペクトル)の帯域幅が限られている。さらに、様々なデータストリームに関連付けられるトラフィックパターン(たとえば、定ビットレート対可変ビットレート、バースト性対散発性など)は予測不可能であり、大部分の高度なトラフィックスケジューラであっても、効率的に機能するのを難しくする。さらに、モバイル通信デバイスが一般にサポートする数多くの特徴は、厳しさが増している消費電力バジェット下で扱われなければならない。
【０００５】
1つまたは複数のクライアントデバイスにデータを送信する前に、発信元、着信先およびサービス品質(QoS)優先順位のような要因に基づいて、様々なデータストリームを編成し、スケジューリングして、出力キューに入れるのを助けるために、データキューイングが、モバイル通信デバイスにおいて一般に利用される機構である。この点に関して、より低い消費電力で、より高い効率、スループットおよびデータ完全性を達成するために、出力キューを最適化することが望ましい。
【発明の概要】
【課題を解決するための手段】
【０００６】
詳細な説明において開示される態様は、通信デバイスにおけるヘッドオブラインブロッキング(HOLB)軽減を含む。データを送信するために通信デバイスによって利用される出力キューはHOLBの影響を受けやすい。この点に関して、一態様において、キュー監視ロジックが、出力キューの深さを測定し、キューオーバーフローしきい値と比較することによって、HOLBを検出するように構成される。出力キューの深さがキューオーバーフローしきい値を超える場合には、対応する入力キューのキュー重みを減少させて、出力キューへのデータフローを削減し、それにより、出力キュー内のHOLBを軽減する。別の態様において、キュー監視ロジックはまた、出力キューの深さをキュー枯渇しきい値と比較することによって、キュー枯渇を検出するように構成される。出力キューの深さがキュー枯渇しきい値未満に降下する場合には、対応する入力キューのキュー重みを増加させて、出力キューへのデータフローを増加させ、それにより、出力キュー内のデータスターベーションを防ぐ。出力キュー内のHOLBおよびデータスターベーションを軽減することによって、より低い消費電力で、より高いスループットおよびデータ完全性を達成するために、出力キューを最適化することができる。
【０００７】
この点に関して、一態様において、通信デバイス内のHOLBを軽減するための送信制御ロジックが提供される。送信制御ロジックは、通信デバイス内の1つまたは複数の出力キューに通信可能に結合されるキュー監視ロジックを備える。送信制御ロジックはまた、1つまたは複数の出力データストリームを1つまたは複数の出力キューにそれぞれ提供するように構成される1つまたは複数の入力キューに通信可能に結合されるキュー重み決定ロジックを備える。1つまたは複数の出力キューの各々ごとに、キュー監視ロジックは、出力キューのそれぞれのキュー深さを測定するように構成される。1つまたは複数の出力キューの各々ごとに、キュー監視ロジックはまた、出力キューの状態を判断するために、それぞれのキュー深さをしきい値と比較するように構成される。1つまたは複数の出力キューの各々ごとに、キュー重み決定ロジックは、出力キューの状態の判断に応答して、出力キューに結合されるそれぞれの出力データストリームを調整するように構成される。
【０００８】
別の態様において、通信デバイス内のHOLBを軽減するための手段が提供される。通信デバイス内のHOLBを軽減するための手段は、通信デバイス内の1つまたは複数の出力キューを監視するための手段を備える。通信デバイス内のHOLBを軽減するための手段はまた、1つまたは複数の出力データストリームを1つまたは複数の出力キューにそれぞれ提供するように構成される1つまたは複数の入力キューを制御するための手段を備える。1つまたは複数の出力キューの各々ごとに、通信デバイス内の1つまたは複数の出力キューを監視するための手段は、出力キューのそれぞれのキュー深さを測定するように構成される。1つまたは複数の出力キューの各々ごとに、通信デバイス内の1つまたは複数の出力キューを監視するための手段はまた、出力キューの状態を判断するために、それぞれのキュー深さをしきい値と比較するように構成される。1つまたは複数の出力キューの各々ごとに、1つまたは複数の入力キューを制御するための手段は、出力キューの状態の判断に応答して、出力キューに結合されるそれぞれの出力データストリームを調整するように構成される。
【０００９】
別の態様において、通信デバイス内のHOLBを軽減するための方法が提供される。本方法は、通信デバイス内に含まれる1つまたは複数の出力キューの中の出力キューのそれぞれのキュー深さを測定することを含む。本方法はまた、出力キューの状態を判断するために、それぞれのキュー深さをしきい値と比較することを含む。本方法はまた、出力キューの状態の判断に応答して、出力キューに結合される1つまたは複数の出力データストリームの中のそれぞれの出力データストリームを調整することを含む。
【図面の簡単な説明】
【００１０】
【図１】1つまたは複数のクライアントデバイスとの通信のために1つまたは複数の出力キューを利用する例示的な通信デバイスの概略図である。
【図２】図1の1つまたは複数の出力キュー内のヘッドオブラインブロッキング(HOLB)およびデータスターベーションを検出し、軽減するための送信制御ロジックを利用する例示的な通信デバイスの概略図である。
【図３】図1の1つまたは複数の出力キュー内のHOLBおよびデータスターベーションの信頼性のある検出のために、図2の送信制御ロジック内のキュー監視ロジックによって利用される例示的なキュー深さ監視プロセスを示す流れ図である。
【図４】1つまたは複数の入力キューの中のそれぞれの入力キューのためのそれぞれのキュー重みを増加または減少させるように構成される例示的なキュー重み決定ロジックの概略図である。
【図５】図2の送信制御ロジックによる対応する入力キューのキュー重みの調整に応答する経時的な出力キュー深さ変動を示す、例示的な出力キュー深さ対時間(QD-Time)プロットである。
【図６】HOLB軽減のために図2の送信制御ロジックをサポートすることができるプロセッサベースシステムの一例を示す図である。
【発明を実施するための形態】
【００１１】
ここで図面を参照しながら、本開示のいくつかの例示的な態様が説明される。「例示的な」という用語は、本明細書において、「例、実例、または例証として機能する」を意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきでない。
【００１２】
詳細な説明において開示される態様は、通信デバイスにおけるヘッドオブラインブロッキング(HOLB)軽減を含む。データを送信するために通信デバイスによって利用される出力キューはHOLBの影響を受けやすい。この点に関して、一態様において、キュー監視ロジックが、出力キューの深さを測定し、キューオーバーフローしきい値と比較することによって、HOLBを検出するように構成される。出力キューの深さがキューオーバーフローしきい値を超える場合には、対応する入力キューのキュー重みを減少させて、出力キューへのデータフローを削減し、それにより、出力キュー内のHOLBを軽減する。別の態様において、キュー監視ロジックはまた、出力キューの深さをキュー枯渇しきい値と比較することによって、キュー枯渇を検出するように構成される。出力キューの深さがキュー枯渇しきい値未満に降下する場合には、対応する入力キューのキュー重みを増加させて、出力キューへのデータフローを増加させ、それにより、出力キュー内のデータスターベーションを防ぐ。出力キュー内のHOLBおよびデータスターベーションを軽減することによって、より低い消費電力で、より高いスループットおよびデータ完全性を達成するために、出力キューを最適化することができる。
【００１３】
本開示の具体的な態様を含む、通信デバイスにおけるHOLB軽減の態様を論じる前に、図1において、従来の出力キュー動作の手短な概説が与えられる。通信デバイスにおけるHOLB軽減の具体的で、例示的な態様の検討は、以下に図2を参照しながら開始される。
【００１４】
この点に関して、図1は、1つまたは複数のクライアントデバイス104(1)〜104(X)とそれぞれ通信するために1つまたは複数の出力キュー102(1)〜102(X)を利用する例示的な通信デバイス100の概略図である。非限定的な例において、1つまたは複数のクライアントデバイス104(1)〜104(X)は、外部デバイス(たとえば、モバイル通信デバイス)または集積回路(IC)のような内部デバイスであってもよい。
【００１５】
図1を参照すると、1つまたは複数の出力キュー102(1)〜102(X)は、出力キュー102(1)〜102(X)のそれぞれが記憶することができるデータユニット（たとえば、パケット、バイト、シンボルなど）の最大数を決定するそれぞれの容量C1〜CXを有する。検討および図示の便宜上、容量C1〜CXはこれ以降、データパケットの単位において参照される。1つまたは複数の出力キュー102(1)〜102(X)は、1つまたは複数のヘッドオブライン(HOL)パケット106(1)〜106(X)と、1つまたは複数のエンドオブライン(EOL)パケット108(1)〜108(X)とをそれぞれ含む。非限定的な例において、1つまたは複数の出力キュー102(1)〜102(X)は先入れ先出し(FIFO)キューであり、1つまたは複数のHOLパケット106(1)〜106(X)が1つまたは複数のEOLパケット108(1)〜108(X)の前にそれぞれ送信される。1つまたは複数のEOLパケット108(1)〜108(X)と1つまたは複数のHOLパケット106(1)〜106(X)との間のそれぞれの距離が、1つまたは複数の出力キュー102(1)〜102(X)の1つまたは複数のキュー深さQD1〜QDXを決定する。たとえば、出力キュー102(1)において、キュー深さQD1は、EOLパケット108(1)とHOLパケット106(1)との間の距離によって決定され、出力キュー102(2)において、キュー深さQD2は、EOLパケット108(2)とHOLパケット106(2)との間の距離によって決定され、他も同様である。
【００１６】
引き続き図1を参照すると、1つまたは複数の入力キュー110(1)〜110(X)のそれぞれが1つまたは複数の入力データストリーム112(1)〜112(P1-X)を受信し、ただし、P1-Xは、Pが1つまたは複数の入力キュー110(1)〜110(X)の中の異なる有限の正の整数であってもよいことを示す。非限定的な例では、1つまたは複数の入力キュー110(1)〜110(X)は、それぞれが1つまたは複数の入力データストリーム112(1)〜112(P1-X)を含む1つまたは複数の論理キューであってもよい。1つまたは複数の入力キュー110(1)〜110(X)は、1つまたは複数のクライアントデバイス104(1)〜104(X)にそれぞれ送信するために、1つまたは複数の出力データストリーム114(1)〜114(X)を1つまたは複数の出力キュー102(1)〜102(X)に送り込むようにさらに構成される。
【００１７】
1つの非限定的な例では、クライアントデバイス104(2)は、定期的にスリープ期間(図示せず)に入り、消費電力を削減するように構成してもよい。したがって、クライアントデバイス104(2)は、スリープ期間中に出力キュー102(2)からいかなるデータも受信することはできない。その場合に、HOLパケット106(2)は出力キュー102(2)内に保持されなければならず、出力キュー102(2)においてHOLBを引き起こす。しかしながら、入力キュー110(2)は、出力キュー102(2)内のHOLBに気がつかない場合があり、出力データストリーム114(2)を出力キュー102(2)に送り込み続ける場合がある。結果として、キュー深さQD2が容量C2に達したときに、出力キュー102(2)内でオーバーフローが生じることになり、出力データストリーム114(2)内の後続のデータパケットが失われ、それにより、出力キュー102(2)内のデータ完全性が損なわれる。
【００１８】
別の非限定的な例では、HOLパケット106(X)は、出力キュー102(X)内のEOLパケット108(X)と同じパケットである。結果として、出力キュー102(X)は、クライアントデバイス104(X)にHOLパケット106(X)を送信した後に空になる。入力キュー110(X)が時間内に出力キュー102(X)を補充しない場合には、データスターベーションが生じることになり、出力キュー102(X)のデータスループットが低下する。したがって、より高いデータ完全性およびデータスループットを確保するために、1つまたは複数の出力キュー102(1)〜102(X)内のHOLBおよびデータスターベーションを検出し、軽減することが望ましい。
【００１９】
この点に関して、図2は、図1の1つまたは複数の出力キュー102(1)〜102(X)内のHOLBおよびデータスターベーションを検出し、軽減するための送信制御ロジック202を利用する例示的な通信デバイス200の概略図である。図1と図2との間の共通の要素は図1と図2において共通の要素番号で示されており、ここでは再び説明されない。
【００２０】
図2を参照すると、通信デバイス200内のキュースケジューラ(図示せず)が、重み付けラウンドロビン(WRR)スケジューリング方式に基づいて、1つまたは複数の出力データストリーム204(1)〜204(X)を1つまたは複数の出力キュー102(1)〜102(X)にそれぞれ提供するように1つまたは複数の入力キュー110(1)〜110(X)をスケジューリングする。WRRスケジューリング方式下で、1つまたは複数の入力キュー110(1)〜110(X)は、キュー重みW1〜WXを割り当てられ、重みは、それに比例して、1つまたは複数の入力キュー110(1)〜110(X)のための送信機会をそれぞれ決定する。たとえば、入力キュー110(1)の送信機会は、それぞれのキュー重みW1をキュー重みW1〜WXの和で割った値に等しい。言い換えると、入力キュー110(1)のそれぞれの送信機会は、
【数１】
2018522322.tif 000003
に等しい。同様に、入力キュー110(2)のそれぞれの送信機会は、
【数２】
2018522322.tif 000004
に等しく、他も同様である。キュー重みW1〜WXがすべて等しい場合には、1つまたは複数の入力キュー110(1)〜110(X)はすべて同じX分の1(1/X)の送信機会を受けることになる。この点に関して、1つまたは複数の入力キュー110(1)〜110(X)のキュー重みW1〜WXを増加または減少させることによって、1つまたは複数の出力データストリーム204(1)〜204(X)をそれぞれ増加または減少させることができる。
【００２１】
参照の便宜上、これ以降、1つまたは複数の出力キュー102(1)〜102(X)の中の任意の出力キューを指している出力キュー102(Y)が非限定的な例として論じられる。出力キュー102(Y)に関連して、本明細書において、対応するキュー深さQDY、出力データストリーム204(Y)、入力キュー110(Y)およびキュー重みWYも参照される。
【００２２】
引き続き図2を参照すると、送信制御ロジック202が、キュー重み決定ロジック206を備え、キュー重み決定ロジック206は、1つまたは複数の入力キュー110(1)〜110(X)およびキュー監視ロジック208に通信可能に結合される。キュー監視ロジック208は、1つまたは複数の出力キュー102(1)〜102(X)に通信可能に結合され、1つまたは複数の出力キュー102(1)〜102(X)内のHOLBおよび/またはデータスターベーションを検出するように構成される。1つまたは複数の出力キュー102(1)〜102(X)の各々ごとに、キュー監視ロジック208は、キュー深さQD1〜QDXの中のそれぞれのキュー深さを測定し、1つまたは複数の出力キュー102(1)〜102(X)の中の出力キュー102(Y)の状態を判断するために、それぞれのキュー深さをしきい値(図示せず)と比較する。出力キュー102(Y)の状態の判断に応答して、キュー重み決定ロジック206は、出力キュー102(Y)に結合される1つまたは複数の出力データストリーム204(1)〜204(X)の中のそれぞれの出力データストリーム204(Y)を調整するように構成される。しきい値は、キューオーバーフローしきい値210およびキュー枯渇しきい値212を含む。非限定的な例において、キューオーバーフローしきい値210およびキュー枯渇しきい値212は、1つまたは複数の出力キュー102(1)〜102(X)の中で同じか、または異なる場合がある。
【００２３】
それぞれのキュー深さQDYがキューオーバーフローしきい値210より大きい場合には、これは、出力キュー102(Y)内のHOLBの警告サインとしてもよい。したがって、キュー深さQDYがキューオーバーフローしきい値210より大きい場合には、キュー監視ロジック208は、キュー重み決定ロジック206にそれぞれのキューオーバーフロー指示214を提供する。たとえば、出力キュー102(2)のそれぞれのキュー深さQD2がそれぞれのキューオーバーフローしきい値210より大きい。したがって、キュー監視ロジック208は、出力キュー102(2)のためのそれぞれのキューオーバーフロー指示214を生成する。それぞれのキューオーバーフロー指示214を受信するのに応答して、キュー重み決定ロジック206は、出力キュー102(2)内のHOLBを軽減するために、出力キュー102(2)に結合されるそれぞれの出力データストリーム204(2)を減少させる。先に論じられたように、キュー重み決定ロジック206は、それぞれの入力キュー110(2)のそれぞれのキュー重みW2を減少させることによって、それぞれの出力データストリーム204(2)を減少させる場合がある。
【００２４】
それぞれのキュー深さQDYがキュー枯渇しきい値212より小さい場合には、これは、それぞれの出力キュー102(Y)内のデータスターベーションの警告サインとしてもよい。したがって、キュー深さQDYがキュー枯渇しきい値212より小さい場合には、キュー監視ロジック208は、キュー重み決定ロジック206にそれぞれのキュー枯渇指示216を提供する。たとえば、出力キュー102(X)のそれぞれのキュー深さQDXがそれぞれのキュー枯渇しきい値212より小さい。結果として、キュー監視ロジック208は、出力キュー102(X)のためのそれぞれのキュー枯渇指示216を生成する。それぞれのキュー枯渇指示216を受信するのに応答して、キュー重み決定ロジック206は、出力キュー102(X)内のデータスターベーションを防ぐために、出力キュー102(X)に結合されるそれぞれの出力データストリーム204(X)を増加させる。先に論じられたように、キュー重み決定ロジック206は、それぞれの入力キュー110(X)のそれぞれのキュー重みWXを増加させることによって、それぞれの出力データストリーム204(X)を増加させる場合がある。
【００２５】
しかしながら、それぞれのキュー深さQDXがキューオーバーフローしきい値210以下である場合には、キュー監視ロジック208は、出力キュー102(X)のためのそれぞれのキューオーバーフロー指示214を生成しない。同様に、それぞれのキュー深さQDXがキュー枯渇しきい値212以上である場合には、キュー監視ロジック208は、出力キュー102(X)のためのそれぞれのキュー枯渇指示216を生成しない。たとえば、それぞれのキュー深さQD1が、キューオーバーフローしきい値210より大きくなく、キュー枯渇しきい値212より小さくもないので、キュー監視ロジック208は、出力キュー102(1)のためのそれぞれのキューオーバーフロー指示214およびそれぞれのキュー枯渇指示216を生成しない。それぞれのキュー深さQD3がキューオーバーフローしきい値210に等しいとして示される場合であっても、同じことが出力キュー102(3)の場合にも当てはまる。したがって、キューオーバーフローしきい値210およびキュー枯渇しきい値212に基づいて、1つまたは複数の出力キュー102(1)〜102(X)内のHOLBおよびデータスターベーションを検出することによって、出力キュー102(1)〜102(X)内のHOLBおよびデータスターベーションを軽減するために、1つまたは複数の出力データストリーム204(1)〜204(X)を適時に調整することができる。
【００２６】
引き続き図2を参照すると、1つまたは複数の出力データストリーム204(1)〜204(X)のトラフィックパターンはバースト的である場合があるか、または可変データレートにおいて生じる場合がある。出力キュー102(X)を例にとると、キュー監視ロジック208がそれぞれのキュー枯渇指示216を生成した後に、そして、キュー監視ロジック208がそれぞれのキュー深さQDXの次の測定を行う前に、バースト受信された大きなデータによって、出力キュー102(X)が瞬時にフルになる可能性がある。キュー重み決定ロジック206が直ちにそれぞれのキュー枯渇指示216を実行し、それぞれの出力データストリーム204(X)を増加させる場合には、結果として、出力キュー102(X)においてオーバーフローが起こる場合がある。また、キュー監視ロジック208がそれぞれのキューオーバーフロー指示214を生成した後に、クライアントデバイス104(2)がスリープ期間を終了し、出力キュー102(2)をフラッシュアウトすることも起こり得る。この場合、キュー重み決定ロジック206は直ちにそれぞれのキューオーバーフロー指示214を実行し、それぞれの出力データストリーム204(2)を減少させる場合には、結果として、出力キュー102(2)においてデータスターベーションが起こる場合がある。上記のような出力データストリーム204(1)〜204(X)における早過ぎる変化を防ぐために、キュー監視ロジック208内にキューオーバーフローカウンタ218およびキュー枯渇カウンタ220が設けられ、所定のヒステリシス値を用いて、それぞれのキューオーバーフロー指示214およびそれぞれのキュー枯渇指示216の信頼性を改善する。
【００２７】
この点に関して、図3は、1つまたは複数の出力キュー102(1)〜102(X)内のHOLBおよびデータスターベーションの信頼性のある検出のためにキュー監視ロジック208によって利用される例示的なキュー深さ監視プロセス300を示す流れ図である。図1、および図2の要素は、図3に関連して参照され、これらの要素はここでは再び説明されない。
【００２８】
1つまたは複数の出力キュー102(1)〜102(X)の各々ごとに、キュー監視ロジック208は最初に、1つまたは複数の出力キュー102(1)〜102(X)の中の出力キュー102(Y)の1つまたは複数のキュー深さQD1〜QDXの中のそれぞれのキュー深さQDYを測定する(ブロック302)。その後、キュー監視ロジック208は、それぞれのキュー深さQDYをキューオーバーフローしきい値210およびキュー枯渇しきい値212と比較する(ブロック304)。キュー監視ロジック208は最初に、それぞれのキュー深さQDYがキューオーバーフローしきい値210より大きいかどうかを判断する(ブロック306)。それぞれのキュー深さQDYがキューオーバーフローしきい値210より大きい場合には、キュー監視ロジック208は、キューオーバーフローカウンタ218を増加させる(ブロック308)。それぞれのキュー深さQDYがキューオーバーフローしきい値210以下である場合には、キュー監視ロジック208は、その後、それぞれのキュー深さQDYがキュー枯渇しきい値212より小さいかどうかを判断する(ブロック310)。それぞれのキュー深さがキュー枯渇しきい値212より小さい場合には、キュー監視ロジック208は、キュー枯渇カウンタ220を増加させる(ブロック312)。その後、キュー監視ロジック208は、所定のヒステリシス値に達したかどうかをチェックする(ブロック314)。非限定的な例において、所定のヒステリシス値はヒステリシスタイマとして設定してもよく、それにより、キュー監視ロジック208は、ヒステリシスタイマの満了時に、それぞれのキューオーバーフロー指示214またはそれぞれのキュー枯渇指示216を生成する。別の非限定的な例では、所定のヒステリシス値はヒステリシスカウンタとして設定してもよく、それにより、キュー監視ロジック208は、キューオーバーフローカウンタ218またはキュー枯渇カウンタ220がヒステリシスカウンタと同じ値を有するときに、それぞれのキューオーバーフロー指示214またはそれぞれのキュー枯渇指示216を生成する。所定のヒステリシス値を実現することによって、それぞれのキューオーバーフロー指示214およびそれぞれのキュー枯渇指示216の信頼性を改善する場合がある。
【００２９】
引き続き図3を参照すると、所定のヒステリシス値に達した場合には、キュー監視ロジック208は、キューオーバーフローカウンタ218の値およびキュー枯渇カウンタ220の値を比較する(ブロック316)。キューオーバーフローカウンタ218の値がキュー枯渇カウンタ220の値より大きい場合には、キュー監視ロジック208は、それぞれのキューオーバーフロー指示214をキュー重み決定ロジック206に提供する(ブロック318)。キューオーバーフローカウンタ218の値がキュー枯渇カウンタ220の値より小さい場合には、キュー監視ロジック208は、それぞれのキュー枯渇指示216をキュー重み決定ロジック206に提供する(ブロック320)。キュー監視ロジック208が、それぞれのキューオーバーフロー指示214またはそれぞれのキュー枯渇指示216を生成した後に、キューオーバーフローカウンタ218およびキュー枯渇カウンタ220は0にリセットされる(ブロック322)。その後、キュー監視ロジック208は、1つまたは複数の出力キュー102(1)〜102(X)の中の別の出力キュー102(Y)に移動し、キュー深さ監視プロセス300を繰り返す(ブロック324)。ブロック314において、所定のヒステリシス値に達していない場合には、キュー監視ロジック208は同様に、1つまたは複数の出力キュー102(1)〜102(X)の中の別の出力キュー102(Y)に移動し、キュー深さ監視プロセス300を繰り返す(ブロック324)。
【００３０】
キュー監視ロジック208において所定のヒステリシス値を利用することに加えて、キュー重み決定ロジック206において第2のヒステリシスレベルを導入することもできる。この点に関して、図4は、1つまたは複数の入力キュー110(1)〜110(X)の中のそれぞれの入力キューの1つまたは複数のキュー重みW1〜WXの中のそれぞれのキュー重みを増加または減少させるように構成される例示的なキュー重み決定ロジック400の概略図である。図4に関して、図2の要素が参照されるが、ここでは再び説明されない。非限定的な例として、本明細書において、1つまたは複数の入力キュー110(1)〜110(X)のいずれかを指している入力キュー110(Y)が論じられる。
【００３１】
キュー重み決定ロジック400は、第1のマルチプレクサ(MUX)402、第2のMUX404およびキュー重みMUX406を備える。キュー重み決定ロジック400はまた、第1のキュー重みレジスタ408および第2のキュー重みレジスタ410を備える。非限定的な例において、1つまたは複数の入力キュー110(1)〜110(X)は最初に、等しいキュー重みW1〜WXをそれぞれ割り当てられる場合がある。この点に関して、1つまたは複数の入力キュー110(1)〜110(X)はそれぞれ、X分の1(1/X)に等しいそれぞれのキュー重みWYを有する。したがって、第1のキュー重みレジスタ408および第2のキュー重みレジスタ410はいずれも1/Xの初期値を有する。
【００３２】
引き続き図4を参照すると、第1のMUX402は、それぞれのキュー枯渇指示216を受信するのに応答して、第1のキュー重みレジスタ408を増加させるように構成される。同様に、第2のMUX404は、それぞれのキューオーバーフロー指示214を受信するのに応答して、第2のキュー重みレジスタ410を減少させるように構成される。第1のキュー重みレジスタ408および第2のキュー重みレジスタ410の値はそれぞれ、第1のキュー重み入力信号412および第2のキュー重み入力信号414として、キュー重みMUX406に提供される。キュー重みMUX406が第1のMUX402から第1の制御信号416を受信する場合には、キュー重みMUX406は、第1のキュー重みレジスタ408に従ってそれぞれのキュー重みWYを決定する。対照的に、キュー重みMUX406が第2のMUX404から第2の制御信号418を受信する場合には、キュー重みMUX406は、第2のキュー重みレジスタ410に従ってそれぞれのキュー重みWYを決定する。非限定的な例において、第1のMUX402は、それぞれのキュー枯渇指示216の第1のしきい値数を受信した後に、第1の制御信号416を提供するように構成してもよい。同様に、第2のMUX404は、それぞれのキューオーバーフロー指示214の第2のしきい値数を受信した後に、第2の制御信号418を提供するように構成してもよい。第1のしきい値数および第2のしきい値数は、キュー重み決定ロジック400において第2のヒステリシスレベルとしての役割を果たし、それにより、送信制御ロジック202の信頼性をさらに高める。
【００３３】
1つまたは複数の出力キュー102(1)〜102(X)内のHOLBおよびデータスターベーションを検出し、軽減するための図2の送信制御ロジック202の有効性を示すために、図5が提供される。この点に関して、図5は、送信制御ロジック202(図示せず)による入力キュー110(Y)(図示せず)のキュー重みWY(図示せず)の調整に応答する経時的なキュー深さQDY変動を示す、例示的な出力キュー深さ対時間(QD-Time)プロット500である。図2の要素が図5に関して参照されるが、ここでは再び説明されない。
【００３４】
図5を参照すると、QD-Timeプロット500はQD変動曲線502を含む。QD変動曲線502によって示されるように、キュー監視ロジック208(図示せず)は、キュー深さQDYが時刻T1においてキューオーバーフローしきい値210を超えることを検出する。応答して、キュー重み決定ロジック206(図示せず)は、入力キュー110(Y)のキュー重みWYを小さくし、出力データストリーム204(Y)(図示せず)を削減する。結果として、キュー深さQDYは、時刻T2において正常(たとえば、キュー枯渇しきい値212より高く、キューオーバーフローしきい値210より小さい)値に戻る。時刻T3において、キュー監視ロジック208は、キュー深さQDYがキュー枯渇しきい値212未満に降下したことを検出する。したがって、キュー重み決定ロジック206は、入力キュー110(Y)のキュー重みWYを増加させる。結果として、出力データストリーム204(Y)が増加し、キュー深さQDYが時刻T4において正常値に戻る。この点に関して、送信制御ロジック202は、1つまたは複数の出力キュー102(1)〜102(X)におけるHOLBおよびデータスターベーションを検出し、軽減する際に有効である。
【００３５】
本明細書において開示される態様による、通信デバイスにおけるHOLB軽減は、任意のプロセッサベースデバイス内で提供されるか、またはその中に組み込まれる場合がある。例としては、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
【００３６】
この点に関して、図6は、HOLBおよびデータスターベーション検出および軽減のための図2に示される送信制御ロジック202をサポートすることができるプロセッサベースシステム600の一例を示す。この例では、プロセッサベースシステム600は、それぞれが1つまたは複数のプロセッサ604を含む、1つまたは複数の中央処理装置(CPU)602を含む。CPU602は、一時的に記憶されたデータに迅速にアクセスするために、プロセッサ604に結合されるキャッシュメモリ606を有する場合がある。CPU602は、システムバス608に結合される。よく知られているように、CPU602は、システムバス608を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。図6には示されていないが、複数のシステムバス608を設けることができ、各システムバス608が異なるファブリックを構成する。
【００３７】
他のマスタデバイスおよびスレーブデバイスをシステムバス608に接続することができる。図6に示されるように、これらのデバイスは、例として、メモリシステム610、1つまたは複数の入力デバイス612、1つまたは複数の出力デバイス614、1つまたは複数のネットワークインターフェースデバイス616、および1つまたは複数のディスプレイコントローラ618を含むことができる。入力デバイス612は、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む、任意のタイプの入力デバイスを含むことができる。出力デバイス614は、限定はしないが、オーディオ、ビデオ、他の視覚インジケータなどを含む任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス616は、ネットワーク620との間のデータの交換を可能にするように構成される任意のデバイスとすることができる。ネットワーク620は、限定はしないが、有線ネットワークもしくはワイヤレスネットワーク、プライベートネットワークもしくは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、ワイドエリアネットワーク(WAN)、BLUETOOTH(登録商標)ネットワーク、またはインターネットを含む、任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス616は、望まれる任意のタイプの通信プロトコルをサポートするように構成することができる。メモリシステム610は、1つまたは複数のメモリユニット622(0〜N)およびメモリコントローラ624を含むことができる。
【００３８】
CPU602はまた、1つまたは複数のディスプレイ626に送信される情報を制御するために、システムバス608を介してディスプレイコントローラ618にアクセスするように構成される場合もある。ディスプレイコントローラ618は、1つまたは複数のビデオプロセッサ628を介して表示されるべき情報をディスプレイ626に送信し、1つまたは複数のビデオプロセッサ628は、表示されるべき情報をディスプレイ626に適したフォーマットになるように処理する。ディスプレイ626は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、発光ダイオード(LED)ディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
【００３９】
本明細書において開示される態様に関連して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、またはその両方の組合せとして実現される場合があることは、当業者はさらに理解されよう。本明細書において説明されるマスタデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、IC、またはICチップにおいて利用される場合がある。本明細書において開示するメモリは、任意のタイプおよびサイズのメモリであってもよく、所望の任意のタイプの情報を記憶するように構成されてもよい。この互換性を明確に説明するために、上記では、種々の例示的な構成要素、ブロック、モジュール、回路、およびステップは、概してそれらの機能性に関して説明されてきた。そのような機能性がどのように実現されるかは、特定の適用例、設計選択、および/またはシステム全体に課される設計制約によって決まる。当業者は、説明された機能性を特定の適用例ごとに様々な方法において実現してもよいが、そのような実施態様の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４０】
本明細書において開示される態様に関連して説明される種々の例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタロジック、個別ハードウェア構成要素、または本明細書において説明される機能を実行するように設計されるそれらの任意の組合せを用いて実現または実行してもよい。プロセッサは、マイクロプロセッサであってもよいが、代替形態において、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであってもよい。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実現される場合もある。
【００４１】
本明細書において開示される態様は、ハードウェアにおいて具現され、また、ハードウェアに記憶された命令において具現される場合があり、命令は、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体内に存在する場合がある。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替形態において、記憶媒体はプロセッサと一体としてもよい。プロセッサおよび記憶媒体はASIC内に存在してもよい。ASICは、遠隔局内に存在してもよい。代替形態において、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバ内に個別構成要素として存在してもよい。
【００４２】
本明細書の例示的な態様のいずれかにおいて説明される動作ステップは、例および考察を提供するために説明されることにも留意されたい。説明された動作は、図示したシーケンス以外の多数の異なるシーケンスにおいて実行される場合がある。さらに、単一の動作ステップにおいて説明された動作は、実際にはいくつかの異なるステップにおいて実行される場合がある。さらに、例示的な態様において論じられた1つまたは複数の動作ステップが組み合わされる場合がある。流れ図に示される動作ステップは、当業者には容易に明らかであるように、多数の異なる変更を受けることがあることを理解されたい。当業者はまた、情報および信号が様々な異なる技術および技法のいずれかを使用して表される場合があることを理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表される場合がある。
【００４３】
本開示の上記の説明は、任意の当業者が本開示を作製または使用できるようにするために提供される。本開示に対する種々の変更は、当業者には容易に明らかになり、本明細書において規定される一般原理は、本開示の趣旨または範囲から逸脱することなく他の変形形態に適用してもよい。したがって、本開示は、本明細書において説明された例および設計に限定されるものではなく、本明細書において開示された原理および新規の特徴と一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００４４】
100  通信デバイス
102(1)  出力キュー
102(2)  出力キュー
102(X)  出力キュー
102(Y)  出力キュー
104(1)  クライアントデバイス
104(2)  クライアントデバイス
104(X)  クライアントデバイス
106(1)  HOLパケット
106(2)  HOLパケット
106(X)  HOLパケット
108(1)  EOLパケット
108(2)  EOLパケット
108(X)  EOLパケット
110(1)  入力キュー
110(2)  入力キュー
110(X)  入力キュー
110(Y)  入力キュー
112(1)  入力データストリーム
112(P1-X)  入力データストリーム
114(1)  出力データストリーム
114(2)  出力データストリーム
114(X)  出力データストリーム
200  通信デバイス
202  送信制御ロジック
204(1)  出力データストリーム
204(2)  出力データストリーム
204(X)  出力データストリーム
204(Y)  出力データストリーム
206  キュー重み決定ロジック
208  キュー監視ロジック
210  キューオーバーフローしきい値
212  キュー枯渇しきい値
214  キューオーバーフロー指示
216  キュー枯渇指示
218  キューオーバーフローカウンタ
220  キュー枯渇カウンタ
300  キュー深さ監視プロセス
400  キュー重み決定ロジック
402  第1のマルチプレクサ(MUX)
404  第2のMUX
406  キュー重みMUX
408  第1のキュー重みレジスタ
410  第2のキュー重みレジスタ
412  第1のキュー重み入力信号
414  第2のキュー重み入力信号
416  第1の制御信号
418  第2の制御信号
500  出力キュー深さ対時間(QD-Time)プロット
502  QD変動曲線
600  プロセッサベースシステム
602  中央処理装置(CPU)
604  プロセッサ
606  キャッシュメモリ
608  システムバス
610  メモリシステム
612  入力デバイス
614  出力デバイス
616  ネットワークインターフェースデバイス
618  ディスプレイコントローラ
620  ネットワーク
622(0〜N)  メモリユニット
624  メモリコントローラ
626  ディスプレイ
628  ビデオプロセッサ
【図１】
2018522322.tif 000005
【図２】
2018522322.tif 000006
【図３】
2018522322.tif 000007
【図４】
2018522322.tif 000008
【図５】
2018522322.tif 000009
【図６】
2018522322.tif 000010
【手続補正書】
【提出日】平成29年11月16日(2017.11.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
通信デバイスにおけるヘッドオブラインブロッキング(HOLB)を軽減するための送信制御ロジックであって、
通信デバイス内の1つまたは複数の出力キューに通信可能に結合されるキュー監視ロジックと、
1つまたは複数の出力データストリームを前記1つまたは複数の出力キューにそれぞれ提供するように構成される1つまたは複数の入力キューに通信可能に結合されるキュー重み決定ロジックと
を備え、
前記1つまたは複数の出力キューの各々ごとに、
前記キュー監視ロジックは、
前記出力キューの複数のそれぞれのキュー深さを測定し、
前記複数のそれぞれのキュー深さの各々ごとに、
前記それぞれのキュー深さがキューオーバーフローしきい値より大きい場合には、キューオーバーフローカウンタを増加させ、
前記それぞれのキュー深さがキュー枯渇しきい値より小さい場合には、キュー枯渇カウンタを増加させ、
前記キューオーバーフローカウンタまたは前記キュー枯渇カウンタが所定のヒステリシス値以上である場合には、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより大きい場合には、前記出力キューのオーバーフロー状態を指示するそれぞれのキューオーバーフロー指示を生成し、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより小さい場合には、前記出力キューの枯渇状態を指示するそれぞれのキュー枯渇指示を生成する
ように構成され、
前記キュー重み決定ロジックは、
前記出力キューが前記オーバーフロー状態にあるのに応答して、前記出力キューに結合されるそれぞれの出力データストリームを減少させ、
前記出力キューが前記枯渇状態にあるのに応答して、前記出力キューに結合される前記それぞれの出力データストリームを増加させる
ように構成される、送信制御ロジック。
【請求項２】
前記1つまたは複数の出力キューは先入れ先出し(FIFO)キューである、請求項1に記載の送信制御ロジック。
【請求項３】
前記キュー監視ロジックは、前記それぞれのキューオーバーフロー指示または前記それぞれのキュー枯渇指示を生成した後に、前記キューオーバーフローカウンタおよび前記キュー枯渇カウンタをリセットするようにさらに構成される、請求項1に記載の送信制御ロジック。
【請求項４】
前記1つまたは複数の入力キューは、重み付けラウンドロビン(WRR)スケジューリング方式に基づいて、前記1つまたは複数の出力データストリームを提供するように構成される、請求項1に記載の送信制御ロジック。
【請求項５】
前記1つまたは複数の入力キューはそれぞれ1つまたは複数のキュー重みを割り当てられる、請求項4に記載の送信制御ロジック。
【請求項６】
前記キュー重み決定ロジックは、
前記1つまたは複数の入力キューの中のそれぞれの入力キューに関連付けられるそれぞれのキュー重みを減少させることによって、前記出力キューに結合される前記それぞれの出力データストリームを減少させることであって、前記それぞれの入力キューは前記それぞれの出力データストリームを提供するように構成される、減少させることと、
前記それぞれの出力データストリームを提供するように構成される前記それぞれの入力キューに関連付けられる前記それぞれのキュー重みを増加させることによって、前記出力キューに結合される前記それぞれの出力データストリームを増加させることと
を行うようにさらに構成される、請求項5に記載の送信制御ロジック。
【請求項７】
前記キュー重み決定ロジックは、
前記それぞれのキュー枯渇指示を受信するのに応答して、第1のキュー重みレジスタを増加させるように構成される第1のマルチプレクサ(MUX)と、
前記それぞれのキューオーバーフロー指示を受信するのに応答して、第2のキュー重みレジスタを減少させるように構成される第2のMUXと、
前記第1のキュー重みレジスタおよび前記第2のキュー重みレジスタに結合されるキュー重みMUXであって、
前記第1のMUXから第1の制御信号を受信するのに応答して、前記第1のキュー重みレジスタに従って前記それぞれのキュー重みを決定し、
前記第2のMUXから第2の制御信号を受信するのに応答して、前記第2のキュー重みレジスタに従って前記それぞれのキュー重みを決定する
ように構成されるキュー重みMUXと
を備える、請求項6に記載の送信制御ロジック。
【請求項８】
前記第1のMUXは、前記それぞれのキュー枯渇指示の第1のしきい値数を受信するのに応答して、前記第1の制御信号を生成するように構成され、
前記第2のMUXは、前記それぞれのキューオーバーフロー指示の第2のしきい値数を受信するのに応答して、前記第2の制御信号を生成するように構成される、
請求項7に記載の送信制御ロジック。
【請求項９】
集積回路に組み込まれる、請求項1に記載の送信制御ロジック。
【請求項１０】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなるグループから選択されるデバイスに組み込まれる、請求項1に記載の送信制御ロジック。
【請求項１１】
通信デバイスにおけるヘッドオブラインブロッキング(HOLB)を軽減するための手段であって、
通信デバイス内の1つまたは複数の出力キューを監視するための手段と、
1つまたは複数の出力データストリームを前記1つまたは複数の出力キューにそれぞれ提供するように構成される1つまたは複数の入力キューを制御するための手段と
を備え、
前記1つまたは複数の出力キューの各々ごとに、
通信デバイス内の1つまたは複数の出力キューを前記監視するための手段は、
前記出力キューの複数のそれぞれのキュー深さを測定し、
前記複数のそれぞれのキュー深さの各々ごとに、
前記それぞれのキュー深さがキューオーバーフローしきい値より大きい場合には、キューオーバーフローカウンタを増加させ、
前記それぞれのキュー深さがキュー枯渇しきい値より小さい場合には、キュー枯渇カウンタを増加させ、
前記キューオーバーフローカウンタまたは前記キュー枯渇カウンタが所定のヒステリシス値以上である場合には、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより大きい場合には、前記出力キューのオーバーフロー状態を指示するそれぞれのキューオーバーフロー指示を生成し、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより小さい場合には、前記出力キューの枯渇状態を指示するそれぞれのキュー枯渇指示を生成する
ように構成され、
1つまたは複数の入力キューを前記制御するための手段は、
前記出力キューが前記オーバーフロー状態にあるのに応答して、前記出力キューに結合されるそれぞれの出力データストリームを減少させ、
前記出力キューが前記枯渇状態にあるのに応答して、前記出力キューに結合される前記それぞれの出力データストリームを増加させる
ように構成される、
手段。
【請求項１２】
通信デバイスにおけるヘッドオブラインブロッキング(HOLB)を軽減するための方法であって、
通信デバイス内に含まれる1つまたは複数の出力キューの中の出力キューの複数のそれぞれのキュー深さを測定するステップと、
前記複数のそれぞれのキュー深さの各々ごとに、
前記それぞれのキュー深さがキューオーバーフローしきい値より大きい場合には、キューオーバーフローカウンタを増加させるステップと、
前記それぞれのキュー深さがキュー枯渇しきい値より小さい場合には、キュー枯渇カウンタを増加させるステップと、
前記キューオーバーフローカウンタまたは前記キュー枯渇カウンタが所定のヒステリシス値以上である場合には、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより大きい場合には、前記出力キューのオーバーフロー状態を指示するそれぞれのキューオーバーフロー指示を生成するステップと、
前記キューオーバーフローカウンタが前記キュー枯渇カウンタより小さい場合には、前記出力キューの枯渇状態を指示するそれぞれのキュー枯渇指示を生成するステップと、
前記出力キューが前記オーバーフロー状態にあるのに応答して、前記出力キューに結合される1つまたは複数の出力データストリームの中のそれぞれの出力データストリームを減少させるステップと、
前記出力キューが前記枯渇状態にあるのに応答して、前記出力キューに結合される前記それぞれの出力データストリームを増加させるステップと
を含む、方法。
【請求項１３】
前記それぞれのキュー深さを定期的に測定し、かつ前記出力キューのための前記複数のそれぞれのキュー深さを生成するステップをさらに含む、請求項12に記載の方法。
【請求項１４】
前記それぞれのキューオーバーフロー指示または前記それぞれのキュー枯渇指示を生成した後に、前記キューオーバーフローカウンタおよび前記キュー枯渇カウンタをリセットするステップをさらに含む、請求項12に記載の方法。
【請求項１５】
重み付けラウンドロビン(WRR)スケジューリング方式に基づいて、1つまたは複数の入力キューから前記1つまたは複数の出力データストリームをそれぞれ提供するステップをさらに含む、請求項12に記載の方法。
【請求項１６】
前記1つまたは複数の入力キューに1つまたは複数のキュー重みをそれぞれ割り当てるステップをさらに含む、請求項15に記載の方法。
【請求項１７】
前記1つまたは複数の入力キューの中のそれぞれの入力キューに関連付けられるそれぞれのキュー重みを減少させることによって、前記出力キューに結合される前記それぞれの出力データストリームを減少させるステップであって、前記それぞれの入力キューは前記それぞれの出力データストリームを提供するように構成される、ステップと、
前記それぞれの出力データストリームを提供するように構成される前記それぞれの入力キューに関連付けられる前記それぞれのキュー重みを増加させることによって、前記出力キューに結合される前記それぞれの出力データストリームを増加させるステップと
をさらに含む、請求項16に記載の方法。
【国際調査報告】
2018522322.tif 000011
2018522322.tif 000012
2018522322.tif 000013