JP2012505572A - 重み付けされた公平な待ち行列管理のための方法およびシステム - Google Patents

重み付けされた公平な待ち行列管理のための方法およびシステム Download PDF

Info

Publication number
JP2012505572A
JP2012505572A JP2011530340A JP2011530340A JP2012505572A JP 2012505572 A JP2012505572 A JP 2012505572A JP 2011530340 A JP2011530340 A JP 2011530340A JP 2011530340 A JP2011530340 A JP 2011530340A JP 2012505572 A JP2012505572 A JP 2012505572A
Authority
JP
Japan
Prior art keywords
credit
queue
child
transmission
children
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011530340A
Other languages
English (en)
Inventor
ディー ヴェナブレス,ブラッドリー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nortel Networks Ltd
Original Assignee
Nortel Networks Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nortel Networks Ltd filed Critical Nortel Networks Ltd
Publication of JP2012505572A publication Critical patent/JP2012505572A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/629Ensuring fair share of resources, e.g. weighted fair queuing [WFQ]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • H04L47/527Quantum based scheduling, e.g. credit or deficit based scheduling or token bank
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/623Weighted service order

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer And Data Communications (AREA)

Abstract

通信ネットワークにおいて送信のためのデータをスケジューリングするシステムがクレジット分配器および送信選択器を含む。通信ネットワークは複数の子を含む。送信選択器はクレジット分配器に通信上結合される。クレジット分配器は、適格な子および負のクレジット・カウントももつ子のうちの少なくとも一つにクレジットを付与するよう動作する。各クレジットはデータ送信のために使用可能である。クレジット分配器はさらに、付与されるクレジットの割合に関して子の間での公平性を実現し、利用可能な未分配のクレジットの総量を表すクレジット残高を維持し、付与されたクレジットをクレジット残高から控除するよう動作する。送信選択器は、少なくとも一つの適格でありかつイネーブルされた子を、待ち行列から出すために選択し、適格でありかつイネーブルされた子の選択を、正のクレジットをもつ適格でありかつイネーブルされた子に偏らせ、待ち行列から出すために選択されたデータの量に対応するクレジットをクレジット残高に追加するよう動作する。

Description

本発明は概括的にはレート整形された(rate-shaped)トラフィックの存在における重み付けされた公平な待ち行列管理〔キューイング〕(weighted fair queuing)のための方法およびシステムに関し、より詳細には、重み付けされた公平な待ち行列スケジューラ内で競合し合う子に対するレート制限およびレート保証を統合することを許容する、フレーム・ベースのトラフィックについての重み付けされた公平な待ち行列管理を提供する方法およびシステムに関する。
データ・パケットを転送するどのコンピュータおよび通信ネットワークも、データ・トラフィックが特定のレートでネットワークを通って進行することを保証するために何らかの形のスケジューリングを実装する必要がある。どの所与の時点でも、ネットワークは、該ネットワークを通じた転送を待っているデータ待ち行列を含む数十万またさらには数百万もの接続を有することがありうる。ネットワーク要素がこれらのデータ待ち行列を公平かつ適時な仕方で処理できるようにするために、何らかの形のスケジューリングが必要とされる。
典型的には、スケジューラは、ネットワークを通じたデータの伝送をスケジュールするためにデータ待ち行列と相互作用する。スケジューラは、選択された子もスケジューラであることがあり、そのスケジューラがその子から選ばなければならないという意味で、階層的であることができる。スケジューラは、利用可能な(available)データをもつ適格な(eligible)データ待ち行列または他の適格な子スケジューラから、データ送信の順序を決定する。一般に、データを待ち行列に入れるのは別個のプロセスであるが、該別個のプロセスは、データの利用可能性または子の適格性を宣言する仕方においてスケジューリングに結合されている。スケジューラは定期的に、あるいは要求があったときに、データを送信する元となるべき、利用可能なデータをもつ子を選択する。階層的なスケジューラは選択された待ち行列からのデータの送信を確立する。
図1は、スケジューリング・プロセス12を含む従来技術のデータ・システム10を示している。ここで、データ経路は一連のデータ待ち行列14a、14b、14c、14dおよび14e(まとめてデータ待ち行列14として参照される)ならびにマルチプレクサ16a、16b(まとめてマルチプレクサ16として参照される)を含む。図1には物理的なユニットとして示されているが、典型的なスケーラブルな実装では、マルチプレクサは物理的に存在するわけではなく、スケジューラによる、送信すべきデータ待ち行列14の選択によって含意される。スケジューリング・プロセス12は、利用可能なデータ(DA: data available)をもつデータ待ち行列14のどれから選択してもよいが、実装の階層的な性質のため、スケジューリング・プロセス12は子スケジューラ18にデータ待ち行列14dおよびデータ待ち行列14eから選択をするよう要求しなければならない。すると子スケジューラ18は適切なデータ待ち行列14d、14eを選択する。この例では、スケジューリング・プロセス12はデータ待ち行列14a、14bおよび14cは直接選択してもよい。
一つの従来技術の重み付けされた公平な待ち行列管理プロセスが、Lyonに対して発行された米国特許第7,373,420号(以下「’420特許」)に開示されており、その内容全体はここに参照によって組み込まれる。図2は、’420特許の重み付けされた公平な待ち行列管理プロセスを示している。これは、どの待ち行列にクレジットを与えるかを決定するために、各データ待ち行列についての割り当てられた重みを使う逆クレジット管理システムを含む。基本的には、逆クレジット管理のある重み付けされた公平な待ち行列管理(WFQ-ICM: weighted fair queuing with inverse credit management)スケジューラ20は二つの相補的なプロセスを含む:WFQクレジット分配器22および送信選択器24である。送信選択器24は典型的にはラウンドロビン式に動作し、利用可能なデータおよび正のクレジットをもつ各子が順次データを送信する。
クレジット・プロセス22は、子に対して、現在のクレジットが該子についての利用可能データ量(ADA: amount of data available)より少ない場合、クレジットを付与する。任意の所与の時点において各子が集めたクレジット量が子クレジット状態データベース26において追跡される。子当たりのクレジット量は決してその子のADAを超えることはない。何らかの時点において子がもつクレジットがそのADAより少ない場合、その子はクレジット分配器22に含められ、そこでより多くのクレジットを求めて競合する。
送信選択器24は、正のクレジット・カウントをもつ子を、データを送信するよう選択する。子がデータを送信すると、子クレジット状態データベース26においてクレジットがその現在クレジット量から差し引かれ、クレジット数より大きなADAをもつ他の子への再分配のためにクレジット分配器22に返される。クレジット分配器22は、子がクレジットを費やすのと同じレートでクレジットを付与する(すなわち残り残高はない)。よって、WFQ-ICMスケジューラ20のキーとなる要件は、システムが、あらゆる時点において、各子から送信のために利用可能なデータがどのくらいあるかを厳密に知る必要があるということである。この要件は、子がまだ利用可能なデータがあるときに自らを不適格と見なすことを妨げ、レートに基づいて適格性を決定するオーバーレイ・プロセスを実装することを事実上不可能にする。基本的に、レート制限はデータをもつ子に、送信を止めるまたは親スケジューラに対して利用可能なデータをもたないことを強制することができる。この制限は、階層が何レベルあってもADAがすべての子孫待ち行列を含む階層的スケジューラに対しても重荷となる――複数のスケジューリング・レベルの間で事実上スケジューリング・プロセスを結合するのである。
したがって、必要とされているのは、レート整形されたトラフィックの存在において使用されうる逆クレジット管理のある重み付けされた公平な待ち行列管理のための方法、システムおよび装置である。
本発明は、有利には、子の適格性およびクレジット分配に基づいて通信ネットワークにおける送信のためのデータをスケジューリングするための方法およびシステムを提供する。概括的に言って、逆クレジット管理のある重み付けされた公平な待ち行列管理のためのスケジューラがレート整形されたトラフィックの存在において使用されうる。それにより、重み付けされた公平な待ち行列スケジューラの中で競合する複数の子に対するレート制限およびレート保証の統合が可能になる。
本発明のある側面によれば、通信ネットワークにおいて送信のためのデータをスケジューリングするシステムがクレジット分配器および送信選択器を含む。通信ネットワークは複数の子を含む。送信選択器はクレジット分配器に通信上結合される。クレジット分配器は、適格な子および負のクレジット・カウントももつ子のうちの少なくとも一つにクレジットを付与するよう動作する。各クレジットはデータ送信のために使用可能である。クレジット分配器はさらに、利用可能な未分配のクレジットの総量を表すクレジット残高を維持し、付与されたクレジットの比に関して、子の間での公平性に影響し、付与されたクレジットをクレジット残高から控除するよう動作する。送信選択器は、少なくとも一つの適格であり(eligible)かつイネーブル〔有効化〕された(enabled)子を、待ち行列から出すために選択し、適格でありかつイネーブルされた子の選択を、正のクレジットをもつ適格でありかつイネーブルされた子に偏らせ、待ち行列から出すために選択されたデータの量に対応するクレジットをクレジット残高に追加するよう動作する。
本発明のもう一つの側面によれば、通信ネットワークにおいて子にクレジットを分配する方法が提供される。各クレジットは、ある量のデータ送信のために使用可能である。クレジットは、適格なイネーブルされた子および負のクレジット・カウントももつ子のうちの少なくとも一つに対して付与される。利用可能な未分配のクレジットの総量を表すクレジット残高が維持され、付与されたクレジットがクレジット残高から控除される。
本発明のさらにもう一つの側面によれば、通信ネットワークにおける送信のためにデータをスケジューリングする方法が提供される。通信ネットワークは複数の子を含む。複数の送信制御待ち行列が確立され、待ち行列から出していく。各送信制御待ち行列は、対応する適格な子の少なくとも一つの識別子を含むことができ、対応するクレジット・カウント要件に従って定義される優先度レベルを有する。各適格な子は、前記複数の送信制御待ち行列の一つに割り当てられる。各適格な子は、その割り当てられた送信制御待ち行列のためのクレジット・カウント要件を満たすクレジット状態をもつ。少なくとも一つの適格な子が、該適格な子に対応する送信制御待ち行列の優先度レベルに従って、待ち行列から出すために選択される。待ち行列から出されるデータの量に対応するクレジットがクレジット残高に加えられる。各適格でありかつイネーブルされた子は、前記送信制御待ち行列の一つにおいて表現される。
本発明のより完全な理解ならびにその付随する利点および特徴は、以下の詳細な記述を参照し、付属の図面との関連で考慮することによってより容易に理解されるであろう。
例示的な従来技術のデータ・スケジューリング・プロセスのブロック図である。 例示的な従来技術の、逆クレジット管理のある重み付けされた公平な待ち行列管理によるデータ・スケジューリング・プロセスのブロック図である。 本発明の原理に基づいて構築される、例示的な、逆クレジット管理のある重み付けされた公平な待ち行列管理によるデータ・スケジューリング・プロセスのブロック図である。 本発明に原理に基づいて構築される、例示的なクレジット分配器のブロック図である。 本発明の原理に基づく、例示的なクレジット分配器プロセスのフローチャートである。 本発明の原理に基づく、適格性の変化に応答しての例示的なクレジット・プロセスのフローチャートである。 高い重みの子に対する、例示的な従来技術の、一次元重み付けされたインターリーブ式ラウンドロビンによるスケジューリング・プロセスのブロック図である。 本発明の原理に基づいて構築される、高い重みの子に対する、例示的な、二次元重み付けされたインターリーブ式ラウンドロビンによるスケジューリング・プロセスのブロック図である。 本発明の原理に基づいて構築される、四つの優先度レベルをもつ、例示的な、二次元重み付けされたインターリーブ式ラウンドロビンによるスケジューリング・プロセスのブロック図である。 本発明の原理に基づいて構築される、例示的な基本的な送信選択器のブロック図である。 本発明の原理に基づいて構築される、例示的な進んだ送信選択器のブロック図である。 本発明の原理に基づく、重み付けされた公平な待ち行列をなす子についての例示的な送信選択プロセスのフローチャートである。 本発明の原理に基づく、増加したクレジットおよび適格性の変化に応答しての、例示的な送信選択プロセスのフローチャートである。
本発明に基づく例示的な実施形態を詳細に説明する前に、それらの実施形態が主として、重み付けされた公平な待ち行列スケジューラ内で競合し合う子に対するレート制限およびレート保証を統合することを許容する、フレーム・ベースのトラフィックについての重み付けされた公平な待ち行列管理を提供するシステムおよび方法の実装に関係した装置コンポーネントおよび処理ステップの組み合わせにあることを注意しておく。よって、システムおよび方法の構成要素は、適切な場合には、図面において通常のシンボルによって表現され、本発明の実施形態を理解するのに重要な個別的詳細のみを示している。本項の記載の恩恵に接する当業者には容易に明白となるであろう詳細をもって本開示をかすませることがないようにするためである。
本項での用法では、「第一」および「第二」、「上」および「下」などといった関係の言辞は、あるエンティティまたは要素を別のエンティティまたは要素から区別するために使っているだけのことがあり、必ずしもそのようなエンティティまたは要素の間の何らかの物理的または論理的な関係や順序を必要とするまたは含意するものではない。「ルート」ノードは、重み付けされた公平な待ち行列管理木における最高レベルのノードまたは階層的な重み付けされた公平な待ち行列管理木のある分枝における最高ノードをいう。特定のノードの「子孫(descendant)」とは、当該ノードより下位のレベルにある任意のノードであって、遡るとその系統が当該ノードまでたどれるものである。同様に、特定のノードの「祖先(ancestor)」とは、当該ノードより上位のレベルにある任意のノードであって、その系統が当該ノードまでたどれるものである。用語「子」〔チャイルド〕または「子ノード」〔チャイルド・ノード〕は、スケジューリング木におけるあるノードの任意の直接的な子孫をいう。一般に、特定のノードとの関係を論じるときには、用語「子」は、当該ノードより1レベル下のノード(スケジューラ・ノードまたは待ち行列)をいう。追加的に、より上位のレベルをもつノードに由来する任意のノードを「子ノード」または「子」と称することがある。
本発明のある実施形態は、有利には、レート整形されたトラフィックの存在において使用されうる逆クレジット管理のある重み付けされた公平な待ち行列管理のためのシステム、方法および装置を提供する。システムおよび方法は、重み付けされた公平な待ち行列スケジューラ内で競合する子に対するレート制限とレート保証の統合を許容する。クレジット残高機構が、子が未使用のクレジットを返すときに、クレジットの保存(conservation)を可能にする。前は、未使用のクレジットは、子がどのくらい長くそのレート制限内に留まり、送信すべきデータを持ち続けるかを知ることなく、未使用のクレジットがクレジット分配システムによって付与されていた。
さらに、従来技術とは異なり、本発明の実施形態では、子がトグル的に適格な状態を出入りすることが許容される。これにより、子の、レート制限との簡単な統合が許容される。
ここで図3を参照するに、本発明の原理に基づいて構築される、改善された逆クレジット管理をもつ例示的な重み付けされた公平な待ち行列管理スケジューラ28(WFQ-ICM-Plus)が送信選択器30と、クレジット分配器32と、子クレジット状態データベース34とを含む。送信選択器30は、データを送信するために、適格なすべての子のうちから子を選択する。別個の適格性プロセス36が、子が送信のための選択について適格であるかどうかを判定する。適格性プロセス36の動作の詳細は、本発明の範囲外である;重要な考察は、単に、適格性プロセス36が、どの子が選択される資格があるかを判定するということである。最も単純な形では、適格性プロセスは単に、その子における利用可能なデータである。より複雑な形では、利用可能なデータは、階層構造のさまざまなレベルにおけるレート制限を含んでいてもよい。これは、負のクレジットをもつ子が送信選択器30によって送信のために選択される潜在的可能性を有するという点において、従来技術とは異なる振る舞いに影響する。さらに、本発明の諸実施形態は、前に適格であった子を別のプロセスがすぐにディセーブル〔無効化〕する(disabling)可能性を許容する。これも従来技術では不可能であった。
クレジット分配器32は、システムについてのすべての余剰クレジットを含んでいるクレジット残高(CB: credit balance)38を含む。クレジット分配器32は、クレジット残高38からのクレジットを、あらゆる適格な子および負のクレジットをもつあらゆる子に付与する重み付けされた公平なプロセスである。クレジット分配器32は、子クレジット状態データベース34において、任意の所与の時点までに各子が集めたクレジットの量を追跡する。
従来技術のWFQ-ICMスケジューラとは異なり、本発明の諸実施形態は有利には、どのくらいのデータが利用可能であるかをシステムが精確に知ることは要求しない。その代わり、クレジット分配器32が知る必要があるのは、子が「適格」であるということだけである。クレジット分配器32は、クレジットを、いかなる適格な子にも分配しうる。よって、レート整形器(rate shaper)のような干渉するプロセスは、本発明の諸実施形態との関連で容易に動作しうる。理論的には、子は、該子が現在利用可能な形で有している、あるいは該子が近々送るために適格となるであろうデータの量よりずっと多くのクレジットを受け取ることができる。しかしながら、子が「適格」から「不適格」に遷移するとすぐ、その子がそれまでに獲得したすべてのクレジットは剥奪され、クレジット残高38に返される。
送信選択器30は適格な子を、データを送信するよう選択する。一般に、子の選択は、より大きなクレジット・カウントをもつ子を優先する〔バイアスを与える〕。よって、小さな正のクレジット・カウントまたさらには負のクレジット・カウントをもつ子よりも、大きな正のクレジット・カウントをもつ子が送信のために選択される可能性が高い。子がデータを送信すると、子クレジット状態データベース34において、その現在のクレジット量からクレジットが差し引かれ、他の適格な子および負残高の子への再分配のためにクレジット残高38に返される。
従来のWFQ-ICMスケジューラは、正のクレジット・カウントのもとで開始されたフレームの送信を完了させるため以外には、負のクレジット・カウントをもつ子からの送信は許容しなかった。しかしながら、この従来技術は、クレジットを獲得したのちに子がディセーブルされるあるいは送信するために不適格であることを許容しなかったので、この機能を必要としていなかった。
図4を参照するに、例示的なクレジット分配器32の簡略化された実装が示されている。一般に、ラウンドロビン式クレジット分配器40は、適格な子および負のクレジットをもつ子に対するクレジットの分配を、スケジューラ28からデータ送信で出ていくのと同じレートで行う。換言すれば、送信選択器30からの送信機会が、クレジット分配器32のためのクレジット分配機会をトリガーする。
あるクレジット分配ラウンドの間、適格な子および負のクレジットをもつ子のそれぞれは、その重み値に対応する数のエントリーをそのラウンドにおいて割り当てられる。各子は、そのラウンドにおいて、ラウンドロビン(RR: round robin)分配待ち行列42の先頭に達したときに一つのクレジットを得る。換言すれば、一つのRRラウンドは、各子に一つの「クレジット」を付与する。こうして、一クレジット・ラウンド全体については、各子「i」(子iと表される)はwi個のクレジットを付与される。ここで、「wi」は子iについての重み値である。各子iにwi個のクレジットを分配するために必要とされるRRラウンドの数はwiである。クレジット・ラウンドは、すべての子iがwi個のクレジットを付与されたときに終了する。よって、クレジット・ラウンドの長さは、最大のwiをもつ子によって指定される。子がそのラウンドについてのめいっぱいの〔フルの〕重みを受け取ってしまった場合は、その子は一時的に重み超過待ち行列(weight exceeded queue)44に入れられ、次のクレジット・ラウンドまでその子にはさらなるクレジット分配はなされない。
以前のWFQ-ICMスケジューラでは、クレジット分配は厳密に送信と同じレートで進行するため、クレジット残高38が残っていることはなかった。分配のために利用可能なクレジットは、送信選択器30から返されたクレジットである。
これに対し、本発明の諸実施形態は、クレジット分配器32が、必要であれば正のクレジット残高32を担持することを許容する。クレジット残高32は、前に適格だった子が正のクレジットを保持したまま不適格になるため、非常に大きくなることがある。この潜在的に大きなクレジット残高を補償するため、クレジット分配器32は、送信選択器30からはいってくる厳密なクレジット・バイト数(「N」として表される)を、子に対して付与されるクレジット・バイト数(「M」として表される)として付与することは要求されない。よって、クレジット残高38が過剰クレジットを含む(すなわち、CB>0)とき、クレジット分配器32は、単にRR分配待ち行列42のフルのラウンド・ロビン・ラウンドについて付与されるクレジット数を増してM>Nにすることによって、クレジット分配を加速する。換言すれば、あるRRラウンドについて、クレジット分配器32はMバイトのクレジットを各子に、その番において分配する。過剰なクレジットがあればそれは次のRRラウンドに持ち越し〔キャリーオーバー〕されてもよい。他方、Mが高められている間にクレジット残高38が0まで落ちる場合には、分配の頻度(F: frequency)はM×F=Nとなるよう減らされてもよい。それにより、当該RRラウンドの終わりまで各子にMバイトのクレジットを付与することを続けることが許容される。RRラウンド全体について付与されるクレジット数を上げることは、子どうしの間の公平さが維持されることを保証する。上げられたMバイトのクレジットの分配におけるいくつかの例外を注意しておく価値がある:Mバイトのクレジットを付与されることによってその重みを超えるであろう子は、その重みの残り分しか付与されないし、送信するために適格でないが0クレジットに戻るためにクレジットを集めている子は、0クレジットに戻るために必要とされるクレジット数より多くを付与されることは決してない。制御待ち行列ベースであれ、ベクトル・ベースであれ、他の何らかの方法であれ、クレジット分配器の他の実施形態も、ここに述べた方法の概念と同様の、クレジット分配の「通常」レートを上げることによって、クレジットの分配を加速することができる。
図5を参照するに、クレジットを分配する機会に応答してクレジット分配器32によって実行されるステップを記述する例示的な動作フローチャートが与えられる。図5では、クレジット分配器32は送信選択器30によって、送信されるデータNバイトについて1回トリガーされる(ステップS100)が、代替的な実装は同じことを達成するために定期的なトリガーをもつことができる。本発明の代替的な諸実施形態では、クレジット分配器32は全送信バイト・カウントの実際の知識を持っていてもよく、それによりクレジットはNバイトの倍数またはNバイトの一部分(fractions)で分配されてもよいことを注意しておくことが重要である。以下のプロセスはまだ適格性の変化に対応するものではなく、適格性の考察は図5に関係してのちに考慮に入れられることも注意しておくべきである。
クレジット分配器32がRRラウンドの始まりにない場合(ステップS102)、すなわち、すでに現在のRR待ち行列中のいくつかの子にクレジットが分配されている場合、プロセスはクレジット分配先として、現在のRR待ち行列の先頭にある子iを選択する(ステップS104)。この場合、クレジット付与値Mの、前の状態が使われることになる。しかしながら、クレジット分配器32が新たなRRラウンドを開始する準備ができている場合(ステップS102)、すなわち前のRRラウンドが完了している場合には、クレジット分配器は、クレジット分配ラウンドが継続されるべきか、あるいは完全に新しいクレジット・ラウンドが必要とされているかを判断する(ステップS106)。これがクレジット・ラウンドの始まりであれば、RR待ち行列がスケジューリングのために選択される(ステップS108)。この時点まで、単一のRR待ち行列をサポートするスケジューリング・プロセスのみを論じてきたので、ステップS108は単にスケジューリング・パラメータをリセットして、再びそのRR待ち行列の子のすべての処理を開始することになる。しかしながら、図8との関連で後述するように、本発明のある例示的な実施形態は、子の複数の優先度を区別する複数のRR待ち行列を許容し、その場合、ステップS108は異なるRR待ち行列を処理のために選択することができる。これがクレジット・ラウンドの始まりでない場合、新しいRR待ち行列は必要とされない。
判断ブロックS106に戻ると、クレジット・ラウンドがちょうど始まるところである場合には、クレジット分配器32は過剰なクレジット残高が存在するか否かを判定する(ステップS110)。この場合、単一の送信イベントが生成できる(N)よりも多くのクレジットである。過剰なクレジット残高がある場合、クレジット分配器32は加速されたクレジット分配サイクルにはいる(ステップS112)。ここでは、このクレジット分配イベントおよび現在のRRラウンドにおける残りの諸クレジット分配イベントの間のクレジット分配量(M)が、クレジット分配イベントから次のクレジット分配イベントまでの間に送信されるクレジット(N)を超える。すなわちM>Nである。そうでなく、残っているクレジット残高がない場合(ステップS114)には、このクレジット分配イベントおよびこのRRラウンドの残りの間に分配されるクレジットの量は、クレジット分配イベント間に典型的に送信されるクレジットの量に等しいように設定される。すなわちM=Nである(ステップS114)。本発明の他の実施形態は、判断S110においてNについて異なる閾値を使ってもよい。たとえば、クレジット分配を加速する決断にヒステリシスを注入するために使われる静的または動的な数をxとして、CB>xバイトである。
クレジット分配は、現在のRR待ち行列の先頭にある子iを選択することによって始まる(ステップS104)。クレジット残高が現在のRRラウンドの間に各子に付与されるべきクレジット数以上である(ステップS116)、すなわちCB≧Mである場合には、子iは、そのクレジット・ラウンドにおけるその残りの重みと、そのクレジット・ラウンドの間に付与されるべきクレジット数Mのうちの少ないほうを付与される(ステップS118)。子iに付与されるクレジットの量は、クレジット残高から控除され(ステップS120)、そのRRラウンドはRR待ち行列における次の子に進められる(ステップS122)。
判断ブロックS116に戻ると、クレジット残高が子iについての残りの重みを超えている限り(ステップS124)、子iはその残りのクレジット重みを付与される(ステップS126)。子iに付与されるクレジットの量は、クレジット残高から控除され(ステップS120)、そのRRラウンドはRR待ち行列における次の子に進められる(ステップS122)。しかしながら、子iについての残りの重みがクレジット残高を超える場合(ステップS124)には、クレジットは分配されず、現在のクレジット分配イベントは終了し、子iは次のクレジット分配イベントについてRR待ち行列の先頭に留まる。
ここで図6を参照すると、子の適格性状態の変化に応答してクレジット分配器32によって実行されるステップを記述する例示的な動作フローチャートが与えられる。クレジット分配器32は子iについての適格性状態における遷移を検出する(ステップS128)。適格性の遷移は、(スケジューラ内部または外部の)別個のプロセスによって、たとえば遷移する子についてのフラグをセットするまたはクリアする、イベントを送る、またはメッセージを送ることによって、宣告されてもよい。子iが不適格から適格に遷移しており(ステップS130のYES分枝)、子iがすでにクレジット・システム内にある(ステップS132のYES分枝)場合、クレジット分配器32は単に、子iについてのペンディングの除去フラグをクリアする(ステップS134)。ステップS150を記述する際に後述するように、このペンディングの除去フラグは、正しい状態に戻ったときに子がクレジット分配器32から除去されることを要求するためにセットされたものである。子iは、その重みおよびRR待ち行列における順位によって決定されるクレジットを受け取ることができるままである。しかしながら、子iが現在、クレジット・システム内になく(ステップS132のNO分枝)、そのクレジット・ラウンドにおいてその重みiを超過するクレジットを受け取っているのでない(ステップS136のNO分枝)場合には、子iは、RR待ち行列の末尾で待ち行列に入れられ(ステップS138)、今のクレジット・ラウンドにおける次の自分の順番においてクレジットを受け取ることになる。子iが今のクレジット・ラウンドにおいてその重みiをすでに超過している場合には(ステップS136のYES分枝)、子iは重み超過待ち行列の末尾で待ち行列に入れられ(ステップS140)、次のクレジット・ラウンドになるまで再びクレジットを受け取ることはない。
判断ブロックS130に戻ると、遷移する子が新たに適格になった子でない場合、子は不適格な状態に遷移していることになる。新たに不適格になった子iが現在、正のクレジットをもつまたはクレジットをもたない(ステップS142)、すなわちクレジットi≧0の場合、過剰なクレジットはもしあればクレジット残高に返され(ステップS144)、子iについてのクレジット・カウントは0に設定される(ステップS146)。次いで子iはクレジット・システムから除去される(ステップS148)。クレジット・システムからの除去は、その子がRR待ち行列の先頭まで進んでいくのを待って、そのRR順番の際に、その子にクレジットを付与する代わりにその子を除去することによって、最も容易に達成されることを注意しておくべきである。この方法は、除去フラグの一つの潜在的な用途である。しかしながら、代替的な諸実施形態は、新たに不適格になった子iが、そのクレジットをクレジット残高に返納した際にすぐシステムから除去されることを許容してもよい。
再び判断ブロックS142に戻ると、新たに不適格になった子が負のクレジットをもつ、すなわちクレジットi<0である場合、それが除去準備ができていることを示すために、単にその除去フラグがセットされる。しかしながら、負のクレジット残高をもつ新たに不適格になった子は、クレジット残高からその赤字分のクレジットを改めて獲得するまで、クレジット・システムから除去されないことを注意しておくべきである。すなわち、子iはクレジットi=0となるまで除去されない。
ここで図7に目を転じると、ブロック図が、重みが高い子についての、例示的な従来技術の、一次元の重み付けされたインターリーブ式ラウンドロビン(WIRR: weighted interleaved round robin)によるスケジューリング・プロセス46を示している。WIRRスケジューリング・プロセス46は二つの待ち行列を利用する:ラウンドロビン(「RR」)待ち行列48と、重み超過待ち行列50である。そのクレジット・ラウンドにおいてクレジットを受け取るすべての子は最初はRR待ち行列48内で始まる。図7に示されるような開始条件を想定する。ここで、RR待ち行列には四つの子(たとえばA、B、CおよびD)があり、Aは重み10、Bは重み4、CおよびDはそれぞれ重み2をもつ。一つのクレジット・ラウンドにおけるRRラウンドの数は最高の重みをもつ子によって決まるので、子Aが重み10をもつので、一クレジット・ラウンドに10のRRラウンドがあることができる。
最初のRRラウンドにおいては、クレジットはD、つまりRR待ち行列48の先頭にある子に与えられ、次いでDはRR待ち行列48の末尾に移される。同様に、C、BおよびAにクレジットが与えられ、各子はRR待ち行列48の末尾に移され、Dが待ち行列の先頭に戻る。RRラウンド2においては、Dにクレジットが与えられ、このクレジット・ラウンドの間にDに分配されたクレジットの合計がその重み以上になる。すなわち、クレジットD≧現在のRRとなる。こうして、Dは重み超過待ち行列50に移され、このクレジット・ラウンドの終わりまで待つ。同様に、Cにクレジットが与えられ、次いでCは重み超過待ち行列50に移される。最後に、BおよびAにクレジットが与えられ、BおよびAはそれぞれRR待ち行列48の末尾に移される。ラウンド3の間には、Bには1クレジットが与えられ、Aには1クレジットが与えられる。ラウンド4の間には、やはりBには1クレジットが与えられ、Aに1クレジットが与えられる。しかしながら、子Bは、そのクレジット・ラウンドについてのクレジットのおける重みを受け取ってしまったので、重み超過待ち行列50の末尾に移され、RR待ち行列48にはAだけが残る。残りのRRラウンド、たとえばラウンド5〜10の間には、ラウンド毎に1クレジットが子Aに付与される。
この一次元WIRRについての有効クレジット分配シーケンスは:
DCBA、DCBA、BA、BA、A、A、A、A、A、A
となる。
こうして、クレジット分配シーケンスの1セグメントの間、子Aへの7回の連続した分配のバーストがある。この積み重なったシーケンスは、子Aがクレジットを非常に急速に蓄積することができるので、子Aがデータ切れになる場合、システムに潜在的な安定性の問題を呈する。
本発明のある実施形態は、高い重みをもつ子についてクレジット分配のなめらかなスケジューリングを容易にするために、新たな二次元のWIRRスケジューラを導入することによって、WIRRスケジューリング・プロセスを改善する。図8は、本発明の原理に基づいて構築された、例示的な二次元WIRRスケジューラ52のブロック図を与えている。二次元WIRRスケジューラ52は、単一のRR待ち行列に代わって、帯域幅または重みカテゴリーを表す複数のRR待ち行列を実装する。スケジューリングの第一の次元は帯域幅カテゴリー内の次元であり、この次元では、WIRRクレジット・ラウンドは、同じ帯域幅カテゴリー内の子どうしの間の公平さを与える。スケジューリングの第二の次元は帯域幅カテゴリーどうしの間であり、この次元では、第一の次元のスケジューラでサービスするRR待ち行列の間での重み付けされたインターリーブにより、帯域幅カテゴリーに関連付けられた帯域幅乗数(bandwidth multiplier)を達成する。
二次元WIRRスケジューラ52は、関連付けられた重み超過待ち行列をもつRR待ち行列の組を、少なくとも二つ含んでいてもよい。ここで、各待ち行列「i」は、帯域幅乗数「ni」をもつ帯域幅カテゴリーとして構成設定される。子らは、RR待ち行列内では、WIRRラウンドで調整された重み(後述)に基づいてインターリーブされ、RR待ち行列間ではフルWIRRラウンドどうしの間で待ち行列にサービスする順序によってインターリーブされる。第二の次元のスケジューラでは、乗数niをもつRR待ち行列iは、かける1(x1として図示される)待ち行列と同数のフルWIRRラウンドでni回実行される。たとえば、図8の二次元WIRRスケジューラ52において、乗数4をもつ高優先度(HP: high priority)RR待ち行列54、HP重み超過待ち行列56、乗数1をもつ低優先度(LP: low priority)RR待ち行列58およびLP重み超過待ち行列60がある。HP待ち行列54WIRRクレジット・ラウンドは、LP待ち行列のWIRRクレジット・ラウンド実行毎に4回実行される。
RR待ち行列を実行するための固定パターンは、そのパターンが作業保存的(work conserving)である限り受け容れ可能である。作業保存的とは、RR待ち行列のいくつかが適格な子を含んでいない場合でも有用なスケジューリング決定ができることを意味する。たとえば、x4乗数をもつHP待ち行列54およびx1乗数をもつLP待ち行列58を有する二次元WIRRスケジューラ52について、クレジット分配パターンはHP、HP、HP、HP、LP、以下繰り返し、である。WIRRクレジット・ラウンドについて使用される重みは、第二の次元の乗数によってスケーリングされる。ここで、調整された重みはフルの重みをniで割ったものである。
たとえば、図7に関係する議論において上で使ったのと同じ重みおよび子を使って、図8の二次元WIRRスケジューラ52において、子はAおよびBがHP待ち行列54内にあり、CおよびDがLP待ち行列58内にあるよう、配列されうる。子Aは、調整された重み2.5をもち、それによりそのフルの重みは10のままである(たとえば、調整重み×乗数=フルの重み;2.5×4=10)。同様に、Bはそのフルの重み4を反映する調整された重み1をもつ(たとえば、1×4=4)。LP待ち行列58についての乗数は1なので、CおよびDはそのもとの重み2を保持する。
二次元WIRRの最初のWIRRクレジット・ラウンドの間は、HP待ち行列54だけがサービスされる。こうして、WIRRラウンド1の間のクレジット分配器はBに1クレジットを付与し、Aに2クレジットを付与し、子Aについての残り重み0.5を保持する。WIRRラウンド1の間クレジット・ラウンド2の間には、今一度、HP待ち行列54だけがサービスされるが、今回はBは1クレジット付与され、Aは3クレジット付与される(たとえば、このラウンドについての2.5重み+0.5の重み残余=3クレジット)。第三のWIRRラウンドはWIRRラウンド1の反復であり、Bは1クレジットを受け取り、Aは2クレジットを受け取り0.5余る。第四のWIRRラウンドはラウンド2の繰り返しであり、Bは1クレジット付与され、Aは3クレジット付与される。第五および最終WIRRラウンドはLP待ち行列58にサービスし、子CおよびDはそれぞれ2クレジットを受け取る。こうして、二次元WIRRスケジューラ52についてのフル・クレジット・ラウンド当たりの有効クレジット付与順序は:
H H H H L
(BA,A)、(BA,A,A)、(BA,A)、(BA,A,A)、(DC,DC)
となる。最大の連続分配バーストがAへの3の分配まで減らされていることを注意しておくべきである。これは、従来技術の一次元WIRR46の最大バーストの半分未満である。また、この手順は、同時には一つのRR待ち行列しか使われないので、単一の重み超過待ち行列をもって実装されてもよいことも注意しておくべきである。
非O(1)アルゴリズム、すなわち一般に知られた「ラージO」記法("big-O" notation)を使ってO(1)以外の計算量をもつ階層的スケジューラは、第二の次元については、スケーラビリティが必要とされないので、満足いくものでありうる。上に示したように、強いインターリーブは、最高の重みを付けられた子からのバーストの長さを制限する。上ではクレジット分配器のコンテキストにおいて論じているが、本発明の二次元WIRRスケジューラ52は、送信選択器30によって送信待ち行列から出すのをスケジューリングするためのプロセスとして使われることができる。
二次元WIRRの概念は、2より多くの優先度レベルをもつシステムを実装するよう拡張されてもよい。図9は、四つの優先度RR待ち行列によって表される四つの優先度レベルをもつWIRRスケジューラ62のブロック図を与えている。四つの優先度RR待ち行列とは:高優先度(HP)待ち行列64、中優先度(MP: medium priority)待ち行列66、低優先度(LP)待ち行列68および超低優先度(VLP: very low priority)待ち行列70である。待ち行列間の固定乗数は、スケジューリングの大きなダイナミックレンジを与えるよう選択される。たとえば、任意のRR待ち行列における任意の子についての最高の調整された重み値が8であり、最小の調整された重みが1であるとすると、任意の子についての最大総重みは4096(84)である。待ち行列選択は、重みに基づいて計算され、よって、すべての待ち行列が子を含むとき、585スケジューリング・イベント毎に、HP待ち行列64は512回選択され、MP待ち行列66は64回選択され、LP待ち行列68は8回選択され、VL待ち行列70は1回選択される。WIRRスケジューラ62は作業保存的であり、よって子を含まない待ち行列は選択されない。計算されたまたは構成設定されたクレジット分配パターンは、より大きな重みの待ち行列のスケジューリング機会を最大限分散させようとするべきである。さらに、フルの標準的なWIRRラウンドが、待ち行列が選択されるたびに実行されるべきである。図9に描かれている待ち行列重みは例示的なものであり、RR待ち行列を重み付けするための唯一の戦略を表すものではない。たとえば、異なる重み付け戦略は、示されている指数的な戦略の代わりに、待ち行列重みを一様に段階変化させる(uniformly step)ことを選んでもよい。もう一つの戦略は、システムにおいてアクティブであるこの重みに依存して修正される、動的な待ち行列重み(乗数)を実装することができる。
クレジット分配器32は、0でないクレジット残高に反応して、クレジット分配のレートを上げる。換言すれば、クレジット分配加速(CDA: credit distribution acceleration)である。これは図5ではM>Nとして描かれている。CDA法は、同じクレジット・ラウンド内の複数のRRラウンドを、RR待ち行列を通す単一の処理パスに組み合わせる。これは、任意の単一の帯域幅カテゴリーのクレジット・ラウンド内で達成され、よって、スケジューリングの第二の次元は明示的には関わってこない。この方法は、RRラウンドの最初と最後の知識を必要とし、各RRラウンドの始まりにおいてCDAまたはMの大きさを評価する。CDAラウンドにおいて組み合わされるRRラウンドの数は典型的には2である(M=2)。クレジット残高38が特に大きい場合にはM=4に上げることも価値があると思われる。クレジット残高38に対して比較するための閾値として潜在的に構成設定される。
ある代替的な実施形態は、RRラウンドの最大数を単一のパスに組み合わせることを、現在のクレジット・ラウンドにおける各子のフルの残りの重みを割り当て、それによりWIRRクレジット・ラウンドを終わらせることによって行う。さらにもう一つの実装は、RRラウンドに関与する子の数を計算し、加速を、1+CB/「子の数」に設定し、事実上、現在のRR待ち行列を通す単一のパスにおいてクレジット残高38をなくす。
CDA法は、クレジットを分配する機会をスキップすることによって、加速されたRRラウンドの途中でクレジット分配レートの通常への復帰を許容する。換言すれば、Mが2であり、クレジット残高38が0に戻されている場合、1回おきの機会にのみクレジットを分配する。たとえば、M×N×0.5=Nである。継続される加速のための試験は簡単である――クレジット残高がMと残り重みiとのうちの最小よりも大きければ、RR待ち行列の先頭にある子iがクレジットをサービスされることができる。
クレジット分配加速(「CDA」)は、任意の優先度レベルにおいてRRラウンド毎に実行されてもよい。CDAはRRラウンドの始まりにおいてトリガーする。RRラウンドの始まりにおいて選ばれる加速因子Mは、RRラウンド全体に適用される。子に、1以下の調整された重みを割り当てることは避けるべきである。というのも、調整された重み>1をもつ子だけがこの形の加速に参加できるからである。クレジット・ラウンドにおける残り重みがCDAによって指定されるクレジットより少ない子は、その残り重みを受け取るだけである(すなわち、加速する機会は失われるまたは部分的に失われる)。
ここでクレジット分配器32から、本発明の原理に基づいて構築された対応する送信選択器30に注意を移す。従来の逆クレジット管理(ICM: inverse credit management)スケジューラは、正のクレジットをもつ子だけにサービスする一つだけの送信待ち行列を含んでいた。子は、たとえば、ラウンドロビン順に従って送信のために選択され、送信待ち行列の末尾において待ち行列に入れられた。次いで、待ち行列の先頭にある子が送信のために選択された。
図10は、本発明の原理に基づいて構築された、例示的な基本的な送信制御構造72を示している。本発明のある実施形態によれば、基本的な送信制御構造72は三つの別個の送信制御待ち行列を含む;正の待ち行列74、負の待ち行列76および極負の待ち行列78である。送信するために適格、たとえば利用可能なデータを有し、かつイネーブルされているすべての子は、これらの送信制御待ち行列の一つに存在する。優先度選択器80は、厳密な優先度システムに基づいて、三つの送信制御待ち行列のうちどれかを、送信元となるよう選択する。換言すれば、子を含んでいる最高の優先度の送信制御待ち行列が常に、より低い優先度の送信制御待ち行列より先に選択される。各送信制御待ち行列内では、子は単純なラウンドロビン方式で選択される。すなわち、重みなしである。送信機会は対応するクレジット分配機会をトリガーする。
子らは、有しているクレジット数に基づいて、送信制御待ち行列中に分類〔ソート〕される。子は、そのクレジット残高が変わるにつれて、送信制御待ち行列間で動的に移される。0より大きなクレジット・カウントをもつ子は、正の待ち行列74に入れられる。子が不適格になるときに本システムの「クレジット・ダンピング(credit dumping)」側面がなければ、予期される振る舞いは、正のクレジット待ち行列74からの子だけが送信するというものであろう。本発明はクレジット・ダンピングを許容するので(ここで、クレジット残高がNより大きい)、すべてのアクティブな子によって保持される全クレジットの和が負になることがありうる。負のクレジット・カウントをもつ子は負の待ち行列76に入れられる。
標準的な正の送信待ち行列74および負の送信待ち行列76は、正常なクレジット・カウントをもつ子を含む。正の送信待ち行列74内の子は、送信するよりやや多くのクレジットを受け取ったものである。一方、負の送信待ち行列76内の子は、送信するよりやや少ないクレジットを受け取ったものである。標準的な正の送信待ち行列74からの送信は、不適格性がクレジット残高38に対する摂動をトリガーしない場合には、正常動作モードである。しかしながら、送信後は、子のクレジット・カウントがクレジット分配器32によって復元されることができるまで、子の多くは負の送信待ち行列76内に保持されることになる。
すべてのアクティブな子によって現在保持されているクレジットの和が負になりうることが予見できる。よって、負のクレジット・カウントをもついくつかの子は時折送信しなければならないことがあり、さらにそのクレジット・カウントを減らす。しかしながら、負の間に多数の送信をもつ子は、瞬間的な不公平さを軽減するために別個に取り出してもよい。こうして、閾値、たとえば送信媒体についての最大送信単位に負号を付けたものが設定され、そのような閾値より下の負のクレジット残高をもつ子は極負の待ち行列(extreme negative queue)78に入れられる。極負の待ち行列78からの送信は、クレジット分配器32において非常に大きな余剰クレジット残高38を示唆し、これは特別な注意を要求することがある。極負の待ち行列78は、すべての子がスパイラル式に落ちているのでない限り、子が非常に低いクレジット残高にスパイラル式に落ちていくことを妨げる。極負の待ち行列78からの送信は、システムが不安定となる不健全なクレジット残高38の指標である。クレジット残高38がさらなる増大をしないよう保護するために取ることのできる非常措置は、送信クレジット費消レートを下げることである(たとえば、送信のためにNクレジットの代わりにN/4クレジットを費やす)。一部のデータはNのコストで送信され、他のデータはN/4のコストで送信されるので、データ送信のコストにおけるこの不連続は、重み公平さアルゴリズムに誤差を導入する。しかしながら、これはクレジット残高38の無際限の増大に対して保護する単純な実装である。
さらなる実施形態は、図11に示されるような、より進んだ送信制御構造82を用いる。この進んだ送信制御構造82は、上で論じた三つの送信制御待ち行列を、任意的に利用可能でありうる追加的な待ち行列と組み合わせる。より柔軟なスケジューリングの変更と完全に新しい機能のためである。たとえば、送信制御構造82は、最高優先度バイパス制御待ち行列84を通じて、音声データのパケットを含む子のような厳密な優先度の子を、重み付けされた公平な待ち行列の子と、マージしてもよい。進んだ送信制御構造82および上で論じた方法論は、優先度スケジューリングと重み付けされた公平な待ち行列管理とのこの統合を、最小限のコストで許容する。
他の任意的な送信制御待ち行列は、極正の待ち行列(extreme positive queue)86および未知の子の待ち行列88を含んでいてもよい。極正の待ち行列86は、送信システムにおけるブロッキングに起因するクレジット・カウントのスパイクを防止し、それによりクレジット残高の安定性を改善する。極正の待ち行列86は任意的であるが、優先性のない、重みが高い子が迅速にクレジットを積み増すことができるので、これは非常に望ましい機能を果たす。大きなクレジットの蓄積は、その子が不適格になった場合に突然、クレジットがクレジット残高38にダンプして戻されるので、システム安定性に対して危険である。何らかの子が大きなクレジット・カウントをもつ場合、送信選択器30はその子に対してポーリングを行って、その子が上限クレジット閾値に到達する危険があるかどうかを判定するべきである。上限クレジット閾値は、現在のトラフィック・フローのようなパラメータを含む送信媒体の仕様に応じて、システム設計者によって設定されてもよい。その子が上限クレジット閾値を超える場合には、その子は、優先サービスを受けるよう、極正待ち行列86に移されるべきである。未知の子の待ち行列88は、子が、現在のスケジューラにまだ吸収されていない(知られていない)親スケジューラに知られている可能性を許容する。現在のスケジューラがスケジューリングのために選択されており、適格な他の子を持たない場合、必要とされる子を、未知の子の待ち行列88が与える。
図12を参照するに、重み付けされた公平な待ち行列の子の選択の間に送信選択器30によって実行されるステップを記述する例示的な動作フローチャートが与えられている。送信選択器30は、その子が新しい選択であるかどうかを判定する(ステップS152)。そうでなければ、送信選択器30は前の選択と同じ待ち行列および/または子からフレームを送信することを続ける(ステップS154)。選択が新しいものであれば(ステップS152)、送信選択器30は、待ち行列から出すための子が存在している、最高の優先度の送信待ち行列を選び(ステップS156)、その送信待ち行列の先頭から、送信のために子iを選択する(ステップS158)。子が送信のために選択されたのち、送信選択器30は、その子iについての全利用可能クレジット(クレジットi)から送信されるバイトの量(「N」)を控除する(ステップS160)。送信選択器30が送信の終わりに到達すると(ステップS162)、子iがもはや適格でなければ(ステップS164)、子iは送信システムから除去される(ステップS166)。すなわち、子iはもはや送信選択器30には見えなくなる。しかしながら、子iが適格のままであれば(ステップS164)、子iは、その子の残りクレジットiの数について適切な送信待ち行列の末尾で再び待ち行列に入れられる。
ここで図13を参照すると、増加したクレジットおよび適格性の変化に応答して送信選択器30によって実行されるステップを記述する例示的な動作フローチャートが与えられている。送信選択器30は、子iが新しい子であるかどうかを判定する(ステップS170)。新しい子であるとは、その子が送信選択器待ち行列システムに現在はいっていないということを意味する。その子iが新しくなく、送信選択器30が、その子iもはや適格ではないと判定する場合には(ステップS172)、子iが現在データを送信していない場合には(ステップS174)、子iは送信システムから除去される(ステップS176)。そうでなく子iは現在送信している場合には(ステップS174)、送信選択器30は今は反応しない。反応は、図12の待ち行列から出す処理の一環として行われることになる。
判断ブロックS172に戻ると、子iが適格であり、クレジットiがその子が優先度レベルを変えるのに十分な新しいクレジットを受け取っていることを示す場合(ステップS178)、その子iが現在送信していない限り(ステップS180)、その子iは現在の送信待ち行列から除去され(ステップS182)、クレジットiの数によって示される送信待ち行列、すなわちより高い優先度の送信待ち行列の末尾に入れられる(ステップS184)。
さらに、判断ブロックS170に戻って参照すると、子iが新しい子である場合、送信選択器30は単に子iを、クレジットiの数によって示される送信待ち行列の末尾に入れる。
本発明は、ハードウェア、ソフトウェアまたはハードウェアとソフトウェアの組み合わせにおいて実現できる。本稿に記載される方法を実行するよう適応されたいかなる種類のコンピューティング・システムまたは装置も本稿に記載された機能を実行するのに好適である。
ハードウェアおよびソフトウェアの典型的な組み合わせは、一つまたは複数の処理要素および記憶媒体に記憶されたコンピュータ・プログラムを有する特化したまたは汎用のコンピュータ・システムであって、該コンピュータ・プログラムは、ロードおよび実行されたときに、前記コンピュータ・システムを本稿に記載された方法を実行するよう制御する、コンピュータ・システムであることができる。本発明はまた、本稿に記載される方法の実装を可能にするすべての機能を有し、コンピューティング・システムにロードされたときにそれらの方法を実行できる、コンピュータ・プログラム・プロダクトに埋め込まれることもできる。記憶媒体は、任意の揮発性または不揮発性記憶デバイスを指す。
本願のコンテキストにおけるコンピュータ・プログラムまたはアプリケーションは、情報処理機能を有するシステムに特定の機能を実行させるよう意図された命令の組の、任意の言語、コードまたは記法における任意の表現を意味する。そのような命令の組が前記システムに機能を実行させるのは、直接的に、あるいはa)別の言語、コードまたは記法への変換;b)異なる物質形態での再現の一方または両方のあとであってもよい。
さらに、上記において特に断りのない限り、付属の図面のすべては縮尺通りではない。特に、本発明は、その精神または本質的な属性から外れることなく、他の個別的な形態において具現されることができる。よって、本発明の範囲を示すものとしては、以上の明細書ではなく、付属の請求項を参照すべきである。

Claims (20)

  1. 複数の子を有する通信ネットワークにおいて送信のためのデータをスケジューリングするシステムであって、クレジット分配器および該クレジット分配器に通信上結合された送信選択器を有しており、
    前記クレジット分配器は:
    適格な子および負のクレジット・カウントももつ子のうちの少なくとも一つにクレジットを付与し、ここで、各クレジットはある量のデータ送信のために使用可能であり;
    付与されるクレジットの比に関して、子の間での公平性を実施し;
    利用可能な未分配のクレジットの総量を表すクレジット残高を維持し;
    付与されたクレジットをクレジット残高から控除するよう動作し、
    前記送信選択器は:
    少なくとも一つの適格でありかつイネーブルされた子を、待ち行列から出すために選択し;
    前記少なくとも一つの適格でありかつイネーブルされた子の選択において、正のクレジットをもつ適格でありかつイネーブルされた子を優先し;
    待ち行列から出すために選択されたデータの量に対応するクレジットをクレジット残高に追加するよう動作する、
    システム。
  2. 請求項1記載のシステムであって、各子について適格性状態を判別するよう動作する適格性更新器をさらに有し、ここで、適格性状態は、子がデータを送信するのに適格であるかどうかを、前記クレジット分配器によって実施される重み付けされた公平性とは別個の基準に基づいて示し、該基準はレート制限、バースト制限およびデータ利用可能性のうちの少なくとも一つを含む、システム。
  3. 請求項1記載のシステムであって、前記クレジット分配器はさらに:
    以前に適格でありかつイネーブルされていた子から、該子がディセーブルまたは不適格の少なくとも一方になった際に、すべての正のクレジットを剥奪し;
    剥奪されたクレジットを再分配のために前記クレジット残高に加える、
    よう動作可能である、システム。
  4. 請求項1記載のシステムであって、前記クレジット分配器は、適格な子および負のクレジット・カウントをもつ子のうちの少なくとも一つの子の、少なくとも一つの識別子を含む、少なくとも一つのラウンドロビン制御待ち行列を有しており、前記クレジット分配器はさらに:
    第一のラウンドロビン制御待ち行列内で、子へのクレジットの付与をインターリーブし;
    ラウンド・ロビン・ラウンドにおいて、前記第一のラウンドロビン制御待ち行列内の各子に1クレジットを付与し;
    各子が該子の重みに対応する量のクレジットを付与されるまでラウンド・ロビン・ラウンドを反復し;
    前記第一のラウンドロビン制御待ち行列内から各子を、該子が該子の重みに対応する量のクレジットを付与されたときに除去し;
    各子に該子の重みに対応する量のクレジットを付与したのに応答して、子を前記第一のラウンドロビン制御待ち行列に戻す、
    よう動作する、システム。
  5. 請求項4記載のシステムであって、前記クレジット分配器は、複数のラウンドロビン制御待ち行列を許容するよう第二の次元の重み付けされたインターリーブ式スケジューラを有しており、各ラウンドロビン制御待ち行列は、適格な子および負のクレジット・カウントをもつ子のうちの少なくとも一つの子の、少なくとも一つの識別子を含み、各ラウンドロビン制御待ち行列は帯域幅カテゴリーおよび重みカテゴリーのうちの少なくとも一つを表し、各ラウンドロビン制御待ち行列は乗数を受け取り、前記クレジット分配器はさらに:
    クレジット分配のためのラウンドロビン制御待ち行列の選択をインターリーブし、ここで、各ラウンドロビン制御待ち行列は、その乗数に対応する回数の番だけ選択され;
    クレジット分配のための第一のラウンドロビン制御待ち行列を選択し;
    前記第一のラウンドロビン制御待ち行列内の子にクレジットを付与し、ここで、各子は、各ラウンドロビン制御待ち行列の番について該子に割り当てられた重みに対応する量のクレジットを付与され、子らの間ではクレジットはラウンドロビン式に付与され;
    すべての番が尽くされるまで、インターリーブされた順序で残っている番をもつラウンドロビン制御待ち行列を選択し;
    選択されたラウンドロビン制御待ち行列内で同定される子に順にクレジットを付与する、
    よう動作する、システム。
  6. 請求項1記載のシステムであって、前記クレジット分配器はさらに:
    クレジット付与とデータ送信の間でバランス(a balance)を維持し;
    通常のデータ送信レートにほぼ等しいレートでクレジットを付与し;
    残っているクレジット残高があることに応答して、クレジットを付与するレートを上げる、
    よう動作する、システム。
  7. 請求項6記載のシステムであって、前記クレジット残高がラウンド・ロビン・ラウンドの開始前に過剰であり、前記クレジット分配器がさらに、各子に対して単一のパスで複数のクレジットを付与することにより複数のラウンド・ロビン・ラウンドを一つのラウンドに組み合わせることによって、適格な子にクレジットを付与するレートを上げるよう動作し、
    過剰とは、設定可能な閾値を超える、1送信イベントによって消費されるクレジットの量よりも大きなあるクレジットの量を超える、および0より大きいのうちの一つを含む、
    システム。
  8. 請求項1記載のシステムであって、前記送信選択器は待ち行列から出すための複数の送信制御待ち行列を有しており、各送信制御待ち行列は、適格な子の少なくとも一つの識別子を含み、クレジット・カウント要件に従って定義される優先度レベルをもち、
    前記送信選択器はさらに、各適格な子を、前記複数の送信管理待ち行列の一つに割り当て、各適格な子は、その割り当てられた送信制御待ち行列についてのクレジット・カウント要件を満たすクレジット状態を有する、
    システム。
  9. 請求項8記載のシステムであって、前記送信制御待ち行列が正の送信待ち行列、負の送信待ち行列および極負の送信待ち行列を含み、
    前記正の送信待ち行列と前記負の送信待ち行列との間の第一のクレジット・カウント閾値が0であり、
    前記負の送信待ち行列と前記極負の送信待ち行列との間の第二のクレジット・カウント閾値が、前記通信ネットワークについての最小の送信単位に負号を付けたものに等しく、
    前記正の送信待ち行列は前記負の送信待ち行列よりも高い選択優先度をもち、
    前記負の送信待ち行列は前記極負の送信待ち行列よりも高い選択優先度をもつ、
    システム。
  10. 請求項9記載のシステムであって、前記送信制御待ち行列がさらに、極正の送信待ち行列、バイパス待ち行列および未知の子の待ち行列のうちの少なくとも一つを含み、
    前記バイパス待ち行列は最高の優先度レベルをもち、前記バイパス待ち行列は前記クレジット残高にクレジットを返さず、
    前記極正の送信待ち行列は前記正の送信待ち行列、前記負の送信待ち行列および前記極負の送信待ち行列より高い優先度レベルをもち、
    前記未知の子の待ち行列は、未知のクレジット状態をもつ適格でありかつイネーブルされた子を含み、最低の優先度レベルを有する、
    システム。
  11. 請求項9記載のシステムであって、前記送信選択器はさらに、待ち行列から出すために選択されたデータの量のある割合に対応するクレジットを前記クレジット残高に加えることによって、前記極負の待ち行列からのデータの送信において費消されたクレジットを減らすよう動作可能である、システム。
  12. 通信ネットワークにおいて子にクレジットを分配する方法であって、各クレジットは、ある量のデータ送信のために使用可能であり、当該方法は:
    適格なイネーブルされた子および負のクレジット・カウントももつ子のうちの少なくとも一つに対してクレジットを付与する段階と;
    利用可能な未分配のクレジットの総量を表すクレジット残高を維持する段階と;
    付与されたクレジットをクレジット残高から控除する段階とを含む、
    方法。
  13. 請求項12記載の方法であって、さらに:
    以前に適格でありかつイネーブルされていた子から、該子がディセーブルまたは不適格の少なくとも一方になった際に、すべてのクレジットを剥奪する段階と;
    剥奪されたクレジットを再分配のために前記クレジット残高に加える段階とを含む、
    方法。
  14. 請求項12記載の方法であって、さらに:
    複数のラウンドロビン制御待ち行列を有する二次元の重み付けされたインターリーブ式ラウンドロビン・スケジューラを実装する段階であって、各ラウンドロビン制御待ち行列は、適格な子および負のクレジット・カウントをもつ子のうちの少なくとも一つの子の、少なくとも一つの識別子を含み、各ラウンドロビン制御待ち行列は帯域幅カテゴリーおよび重みカテゴリーのうちの少なくとも一つを表し、各ラウンドロビン制御待ち行列は乗数を受け取る、段階と;
    クレジット分配のためにラウンドロビン制御待ち行列の選択をインターリーブする段階であって、各ラウンドロビン制御待ち行列は、その乗数に対応する回数の番だけ選択される、段階と;
    クレジット分配のために第一のラウンドロビン制御待ち行列を選択する段階と;
    前記第一のラウンドロビン制御待ち行列内で同定される子にクレジットを付与する段階と;
    すべての番が尽くされるまで、順に、残っている乗数重みをもつラウンドロビン制御待ち行列を選択する段階と;
    残っているラウンドロビン制御待ち行列内で同定される子に順にクレジットを付与する段階とを含む、
    方法。
  15. 請求項14記載の方法であって、選択されたラウンドロビン待ち行列内で同定された子にクレジットが付与されるのが、各子についての調整された重み値に従ってであり、
    各子についてのすべての番の集合にわたる合計重み値は、その子の調整された重み値かけるそのラウンドロビン待ち行列についての前記乗数に等しい、方法。
  16. 請求項12記載の方法であって、前記クレジット残高がクレジット分配イベントどうしの間に待ち行列から出すために選択されるデータの量よりも大きく、当該方法がさらに:
    適格でありかつイネーブルされた子および負のクレジット残高をもつ子のうちの一つの間でクレジット付与をインターリーブする際に使うための一つまたは複数の子を含む一つまたは複数のラウンドロビン制御待ち行列を実装する段階と;
    ラウンドロビン制御待ち行列を通じたフルのラウンドロビン・パスについて各子に対して複数のクレジットを付与することにより複数のラウンド・ロビン・ラウンドを一つのラウンドに組み合わせることによって、ラウンドロビン制御待ち行列中の子に追加的なクレジットを付与する段階とを含む、
    方法。
  17. 複数の子を有する通信ネットワークにおける送信のためにデータをスケジューリングする方法であって、当該方法は:
    待ち行列から出していくための複数の送信制御待ち行列を確立する段階であって、各送信制御待ち行列は、対応する適格な子の少なくとも一つの識別子を含むことができ、対応するクレジット・カウント要件に従って定義される優先度レベルを有する、段階と;
    各適格な子を、前記複数の送信制御待ち行列の一つに割り当てる段階であって、各適格な子は、その割り当てられた送信制御待ち行列のためのクレジット・カウント要件を満たすクレジット状態をもつ、段階と;
    少なくとも一つの適格な子を、該適格な子に対応する送信制御待ち行列の優先度レベルに従って、待ち行列から出すために選択する段階と;
    待ち行列から出されるデータの量に対応するクレジットをクレジット残高に加える段階とを含み;
    各適格でありかつイネーブルされた子は、前記送信制御待ち行列の一つにおいて表現される、
    方法。
  18. 請求項17記載の方法であって、前記送信制御待ち行列が正の送信待ち行列、負の送信待ち行列および極負の送信待ち行列を含み、
    前記正の送信待ち行列と前記負の送信待ち行列との間の第一のクレジット・カウント閾値が0であり、
    前記負の送信待ち行列と前記極負の送信待ち行列との間の第二のクレジット・カウント閾値が、前記通信ネットワークについての最大の送信単位に負号を付けたものに等しく、
    前記正の送信待ち行列は前記負の送信待ち行列よりも高い選択優先度をもち、
    前記負の送信待ち行列は前記極負の送信待ち行列よりも高い選択優先度をもつ、
    方法。
  19. 請求項18記載の方法であって、前記送信制御待ち行列がさらに、極正の送信待ち行列およびバイパス待ち行列を含み、
    前記極正の送信待ち行列は前記正の送信待ち行列、前記負の送信待ち行列および前記極負の送信待ち行列より高い優先度レベルをもち、
    前記バイパス待ち行列は最高の優先度レベルをもち、前記バイパス待ち行列からの送信は前記クレジット残高にクレジットを返さない、
    方法。
  20. 請求項18記載の方法であって、前記送信制御待ち行列がさらに未知の子の待ち行列を含み、前記未知の子の待ち行列は、現在のスケジューラのクレジット状態中への吸収の前に親スケジューラによってアクティブ化された適格な子を含む、方法。
JP2011530340A 2008-10-14 2009-10-13 重み付けされた公平な待ち行列管理のための方法およびシステム Pending JP2012505572A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/250,681 2008-10-14
US12/250,681 US7995597B2 (en) 2008-10-14 2008-10-14 Method and system for weighted fair queuing
PCT/CA2009/001450 WO2010043031A1 (en) 2008-10-14 2009-10-13 Method and system for weighted fair queuing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015000333A Division JP2015109672A (ja) 2008-10-14 2015-01-05 重み付けされた公平な待ち行列管理のための方法およびシステム

Publications (1)

Publication Number Publication Date
JP2012505572A true JP2012505572A (ja) 2012-03-01

Family

ID=42098796

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011530340A Pending JP2012505572A (ja) 2008-10-14 2009-10-13 重み付けされた公平な待ち行列管理のための方法およびシステム
JP2015000333A Pending JP2015109672A (ja) 2008-10-14 2015-01-05 重み付けされた公平な待ち行列管理のための方法およびシステム

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015000333A Pending JP2015109672A (ja) 2008-10-14 2015-01-05 重み付けされた公平な待ち行列管理のための方法およびシステム

Country Status (9)

Country Link
US (3) US7995597B2 (ja)
EP (1) EP2345207A4 (ja)
JP (2) JP2012505572A (ja)
KR (1) KR20110091652A (ja)
CN (2) CN103916269A (ja)
BR (1) BRPI0920260A8 (ja)
CA (1) CA2743944A1 (ja)
RU (1) RU2495533C2 (ja)
WO (1) WO2010043031A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8208406B1 (en) * 2008-03-25 2012-06-26 Juniper Networks, Inc. Packet forwarding using feedback controlled weighted queues dynamically adjusted based on processor utilization
US8965966B2 (en) * 2010-12-15 2015-02-24 Sap Se System and method for logging a scheduler
US20120188981A1 (en) * 2010-12-24 2012-07-26 Electronics And Telecommunications Research Institute Signalling method for direct communication between terminals
US8457142B1 (en) * 2011-02-18 2013-06-04 Juniper Networks, Inc. Applying backpressure to a subset of nodes in a deficit weighted round robin scheduler
EP2525534B1 (en) * 2011-05-18 2018-04-18 Xelerated NewCo AB Network traffic scheduler and associated method, computer program and computer program product
CN102333035B (zh) * 2011-09-28 2017-11-07 中兴通讯股份有限公司 路由器及其rsvp预留资源调度方法和装置
TWI458315B (zh) * 2012-09-12 2014-10-21 Wistron Corp 於網路環境中提供數位內容之方法及系統
US9276867B2 (en) * 2013-06-28 2016-03-01 Cisco Technology, Inc. Hierarchical scheduling system with layer bypass including updating scheduling information of a scheduling layer for each item whether or not it bypasses the scheduling layer
US10291540B2 (en) * 2014-11-14 2019-05-14 Cavium, Llc Method and apparatus for performing a weighted queue scheduling using a set of fairness factors
CN105700940B (zh) * 2014-11-25 2019-05-31 深圳市中兴微电子技术有限公司 一种调度器及调度器的动态复用方法
CN114331453A (zh) * 2015-03-02 2022-04-12 创新先进技术有限公司 数据传输的方法及系统
CN106603433B (zh) * 2015-10-14 2019-10-25 瑞昱半导体股份有限公司 数据输出调度装置与方法
US10243866B2 (en) * 2016-07-01 2019-03-26 International Business Machines Corporation Controlling packet data transmissions via data transmission media
JP6786996B2 (ja) 2016-09-23 2020-11-18 富士通株式会社 伝送装置及び伝送処理方法
US11875839B2 (en) * 2017-05-08 2024-01-16 Intel Corporation Flow based rate limit
CN113647070A (zh) * 2019-03-12 2021-11-12 弗劳恩霍夫应用研究促进协会 发送器和接收器、串行器和解串器以及用于发送和接收、串行化和解串化的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05210523A (ja) * 1991-10-17 1993-08-20 Internatl Business Mach Corp <Ibm> 適応スケジューリング方法及び装置
JP2007110515A (ja) * 2005-10-14 2007-04-26 Nippon Telegr & Teleph Corp <Ntt> パケット通信品質制御装置およびパケット通信品質制御方法
US7373420B1 (en) * 2003-08-01 2008-05-13 Nortel Networks Limited Method and apparatus for weighted fair queuing
JP2010506479A (ja) * 2006-10-04 2010-02-25 シーメンス アクチエンゲゼルシヤフト パケットスケジューリング

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561663A (en) * 1994-12-30 1996-10-01 Stratacom, Inc. Method and apparatus for performing communication rate control using geometric weighted groups
EP0843499A3 (en) * 1996-11-19 1999-01-20 Italtel s.p.a. Method and device for the management of resources in ATM technique for weighted fair queuing (WFQ) applications
CN101043458B (zh) * 1998-02-13 2012-04-25 艾利森电话股份有限公司 分组数据通信系统中用上行线路状态标志指示可变块调度的方法
US6636833B1 (en) * 1998-03-25 2003-10-21 Obis Patents Ltd. Credit card system and method
US6359884B1 (en) * 1998-06-26 2002-03-19 Nortel Networks Limited Modular scalable packet scheduler with rate based shaping and virtual port scheduler
ATE290743T1 (de) * 1998-07-31 2005-03-15 Cit Alcatel Verfahren, ablauffolgesteuerung, intelligenter pufferspeicher, prozessor und telekommunikationssystem zum verteilen verfügbahrer bandbreite
CA2245367A1 (en) * 1998-08-19 2000-02-19 Newbridge Networks Corporation Two-component bandwidth scheduler having application in multi-class digital communication systems
US6256315B1 (en) * 1998-10-27 2001-07-03 Fujitsu Network Communications, Inc. Network to network priority frame dequeuing
US6470016B1 (en) * 1999-02-09 2002-10-22 Nortel Networks Limited Servicing output queues dynamically according to bandwidth allocation in a frame environment
US6775231B1 (en) * 1999-09-24 2004-08-10 Cisco Technology Dynamic weighted resource sharing
US6532501B1 (en) * 1999-09-30 2003-03-11 Silicon Graphics, Inc. System and method for distributing output queue space
US6646986B1 (en) * 1999-10-14 2003-11-11 Nortel Networks Limited Scheduling of variable sized packet data under transfer rate control
AU2001241654A1 (en) * 2000-02-23 2001-09-03 Microsoft Corporation Quality of service over paths having a wireless-link
US6735174B1 (en) * 2000-03-29 2004-05-11 Intel Corporation Method and systems for flow control of transmissions over channel-based switched fabric connections
US6683884B1 (en) * 2000-03-31 2004-01-27 Intel Corporation Shared credit round robin queuing
US6862265B1 (en) 2000-04-13 2005-03-01 Advanced Micro Devices, Inc. Weighted fair queuing approximation in a network switch using weighted round robin and token bucket filter
US7236491B2 (en) * 2000-11-30 2007-06-26 Industrial Technology Research Institute Method and apparatus for scheduling for packet-switched networks
JP4403348B2 (ja) * 2000-12-14 2010-01-27 ソニー株式会社 通信装置及び通信方法
AU2002242067A1 (en) 2001-01-30 2002-08-12 Nomadix, Inc. Methods and systems providing fair queuing and priority scheduling to enhance quality of service in a network
US20030081582A1 (en) * 2001-10-25 2003-05-01 Nikhil Jain Aggregating multiple wireless communication channels for high data rate transfers
US7187684B2 (en) 2001-11-01 2007-03-06 International Business Machines Corporation Weighted fair queue having extended effective range
US7453801B2 (en) * 2001-11-08 2008-11-18 Qualcomm Incorporated Admission control and resource allocation in a communication system supporting application flows having quality of service requirements
US20030099199A1 (en) * 2001-11-27 2003-05-29 Amplify.Net, Inc., Bandwidth allocation credit updating on a variable time basis
AUPR918001A0 (en) * 2001-11-30 2001-12-20 Foursticks Pty Ltd Credit based algorithm for traffic shaping
KR100431191B1 (ko) * 2001-12-03 2004-05-12 주식회사 케이티 크레딧 기반 라운드 로빈을 이용한 패킷 스케쥴링장치 및방법
US7110411B2 (en) * 2002-03-25 2006-09-19 Erlang Technology, Inc. Method and apparatus for WFQ scheduling using a plurality of scheduling queues to provide fairness, high scalability, and low computation complexity
US7177275B2 (en) * 2002-07-26 2007-02-13 Kenneth Stanwood Scheduling method and system for communication systems that offer multiple classes of service
US7539199B2 (en) * 2003-02-21 2009-05-26 Gireesh Shrimali Switch fabric scheduling with fairness and priority consideration
US7792118B2 (en) * 2003-06-19 2010-09-07 Polytechnic University Switch module memory structure and per-destination queue flow control for use in a switch
US7916638B2 (en) * 2003-12-24 2011-03-29 Alcatel Lucent Time-independent deficit round robin method and system
WO2006017753A2 (en) * 2004-08-05 2006-02-16 Cisco Technology, Inc. Propagation of minimum guaranteed scheduling rates
US7706386B2 (en) * 2005-10-26 2010-04-27 Cisco Technology, Inc. Fast 2-key scheduler
US7975027B2 (en) * 2007-08-06 2011-07-05 International Business Machines Corporation Credit depletion notification for transmitting frames between a port pair
US8045563B2 (en) * 2007-12-27 2011-10-25 Cellco Partnership Dynamically adjusted credit based round robin scheduler

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05210523A (ja) * 1991-10-17 1993-08-20 Internatl Business Mach Corp <Ibm> 適応スケジューリング方法及び装置
US7373420B1 (en) * 2003-08-01 2008-05-13 Nortel Networks Limited Method and apparatus for weighted fair queuing
JP2007110515A (ja) * 2005-10-14 2007-04-26 Nippon Telegr & Teleph Corp <Ntt> パケット通信品質制御装置およびパケット通信品質制御方法
JP2010506479A (ja) * 2006-10-04 2010-02-25 シーメンス アクチエンゲゼルシヤフト パケットスケジューリング

Also Published As

Publication number Publication date
BRPI0920260A2 (pt) 2016-01-05
US8711871B2 (en) 2014-04-29
CN102246462A (zh) 2011-11-16
US20110255551A1 (en) 2011-10-20
EP2345207A4 (en) 2013-01-16
EP2345207A1 (en) 2011-07-20
US20140086259A1 (en) 2014-03-27
KR20110091652A (ko) 2011-08-12
CN102246462B (zh) 2014-04-30
CA2743944A1 (en) 2010-04-22
CN103916269A (zh) 2014-07-09
WO2010043031A1 (en) 2010-04-22
BRPI0920260A8 (pt) 2016-09-27
JP2015109672A (ja) 2015-06-11
RU2011119226A (ru) 2012-11-27
RU2495533C2 (ru) 2013-10-10
US20100091783A1 (en) 2010-04-15
US9042224B2 (en) 2015-05-26
US7995597B2 (en) 2011-08-09

Similar Documents

Publication Publication Date Title
JP2012505572A (ja) 重み付けされた公平な待ち行列管理のための方法およびシステム
US8451854B1 (en) Method and apparatus for priority-provisioned arbitration scheduling for a switch fabric
JP4750955B2 (ja) 限定優先度キュースケジューラ
US8000247B2 (en) Bandwidth management apparatus
US6757246B2 (en) Method and apparatus for weighted arbitration scheduling separately at the input ports and the output ports of a switch fabric
CN107483363B (zh) 一种分层的加权轮询调度装置及方法
US20030072326A1 (en) Method and apparatus for parallel, weighted arbitration scheduling for a switch fabric
US20120327948A1 (en) Adjustment of negative weights in weighted round robin scheduling
US6990072B2 (en) Method and apparatus for arbitration scheduling with a penalty for a switch fabric
JP2005510957A (ja) トラフィックシェイピングのための階層的クレジットキューイング
JP2007013462A (ja) パケットスケジューラおよびパケットスケジューリング方法
US20050243847A1 (en) Systems and methods for smooth and efficient round-robin scheduling
CN102752202B (zh) 一种队列调度方法及系统
US6944171B2 (en) Scheduler method and device in a switch
US8027346B1 (en) Method and system for scheduler dominated merge of state changes
JP2003110599A (ja) パケットスイッチ装置のポート制御システムとスイッチカードとの間におけるウェイティングの分配
JP3601592B2 (ja) パケットスケジューリング方法
AU2002342431B2 (en) Hierarchical credit queuing for traffic shaping
US20170272495A1 (en) Hierarchal Maximum Information Rate Enforcement
Muhammad et al. Optimization of priority based CPU scheduling algorithms to minimize starvation of processes using an efficiency factor

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120419

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131001

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131225

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140108

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140228

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140307

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140401

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140902