JP3614132B2 - データをトランスポートするシステムおよび方法 - Google Patents
データをトランスポートするシステムおよび方法 Download PDFInfo
- Publication number
- JP3614132B2 JP3614132B2 JP2001395933A JP2001395933A JP3614132B2 JP 3614132 B2 JP3614132 B2 JP 3614132B2 JP 2001395933 A JP2001395933 A JP 2001395933A JP 2001395933 A JP2001395933 A JP 2001395933A JP 3614132 B2 JP3614132 B2 JP 3614132B2
- Authority
- JP
- Japan
- Prior art keywords
- output
- cell
- conforming
- queue
- time slot
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L12/5602—Bandwidth control in ATM Networks, e.g. leaky bucket
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5638—Services, e.g. multimedia, GOS, QOS
- H04L2012/5646—Cell characteristics, e.g. loss, delay, jitter, sequence integrity
- H04L2012/5651—Priority, marking, classes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5678—Traffic aspects, e.g. arbitration, load balancing, smoothing, buffer management
- H04L2012/5679—Arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
【発明の属する技術分野】
本発明は、スーパーセルを形成することにより入力ポートと出力ポートの間のトラフィックをスケジューリングする方法およびシステムに係り、特に、クロスバ交換機およびクレジットシステムを仮想出力キューイング(VOQ:virtual−output queuing)とともに用いた方法およびシステムに関する。
【0002】
【従来の技術】
従来技術のdiffservトラフィックスケジューリングシステムでは、データグラムヘッダ内の固定フィールドがそのデータグラムのクラスを示し、これが、各diffservルータで受信されるデータグラムPHB(ホップごとの動作:per−hop−behavior)を決定する。トラフィックの各クラスは、個々のトラフィックフローの集合であり、フローをクラスにまとめることは、ネットワークのバウンダリ(境界)ノードでのみ起こる。同様に、フローを条件付けること(すなわち、シェーピングおよびポリシング)は、バウンダリノードでのみ起こる。
【0003】
従来技術のdiffservルータは、トラフィックの相異なるクラスごとに帯域を予約することによってサービス品質(QoS)を提供する。一般に、高QoSのクラスが上位の扱いを受けることを保証するように、与えられたクラスのトラフィックに対して十分な帯域を予約することが必要である。上記の従来のdiffserv技術はスケーラブルである。その理由は、内部ノードは、少数の集合フローに帯域保証を提供することのみに留意し、トラフィックのシェーピングやポリシングはしないからである。さらに、従来のdiffserv技術は、キューイングについて、ナイーブなアルゴリズムを使用している。
【0004】
【発明が解決しようとする課題】
しかし、上記の従来技術のスケジューリングの方法およびシステムは、さまざまな問題点および欠点を有する。例えば、以下の例には限定されないが、従来技術の内部ルータは、コンプライアンスチェックを行わない。さらに、従来技術のシステムは、非適合セル(すなわち、全サイズがセルトランスポートのために利用可能な容量より大きいセルの列)を処理することができず、その代わりに、単にそれらのセルを廃棄する結果、従来技術のスケジューラによれば、あるセルはトランスポートされないことが起こる。
【0005】
さらに、従来技術のスケジューラは、各タイムスロットにおいて、完全なステータス情報を送信する結果、システム資源が浪費され、処理時間が増大する。キューイングに用いられるナイーブなアルゴリズムの結果として、キュー内のセル数がそれらのセルを処理するためのしきい値より少ないときにセルが無制限の時間キューイングされたままとなることがあり、その結果、処理遅延が大きくなる。さらに、従来技術のシステムおよび方法は、従来技術のラウンドロビンアルゴリズムの使用中を含めて、入力ポート1a〜1Nにおけるセルの不公平な扱いにより、不公平である。従来技術のラウンドロビンアルゴリズムでは、入力ポートにおけるすべての非空キューによるスケジューラへのアクセスの均一のまたは規定の重み付けによって、従来技術のフェアネス(公平性)問題を克服することはできない。
【0006】
本発明の目的は、従来技術の方法およびシステムの問題点および欠点を克服することである。
【0007】
本発明のもう1つの目的は、速度を改善した、スケーラブルな、完全稼働(work−conserving)のパイプラインスケジューリングシステムを提供することである。
【0008】
本発明のさらにもう1つの目的は、各クラスが固有のサービス品質(QoS)を有し、伝送単位として固定サイズのスーパーセルを有するような、トラフィックの複数のクラスをサポートすることである。
【0009】
本発明のさらにもう1つの目的は、保証レートより大きいトラフィックに対して、非適合トラフィックをサポートする手段を提供することである。
【0010】
本発明のもう1つの目的は、スケジューリングおよび予約プロセス中に公平に入力および出力ポートを扱うことである。
【0011】
【課題を解決するための手段】
以上およびその他の目的を達成するため、データをトランスポートするシステムが提供される。このシステムは、(a)少なくとも1つの入力ラインからデータを受信し、規定の複数のATMセルからなる少なくとも1つのスーパーセルを生成する入力装置と、(b)前記規定の複数のATMセルが前記入力装置に到着したときに前記入力装置から要求を受信し、前記入力装置に前記少なくとも1つのスーパーセルを生成するよう命令する承諾を生成するスケジューリング装置と、(c)クロスバ交換機を介して前記承諾に従って前記少なくとも1つのスーパーセルを受信する出力装置とを有し、前記スーパーセルは、2つだけのクラスのうちの一方からなり、前記出力装置に対応し、前記2つのクラスのうちの第1のクラスは、前記複数のATMセルのうち最小セルレート(MCR:minimum cell rate)に適合する選択されたATMセルからなり、前記2つのクラスのうちの第2のクラスは、前記複数のATMセルのうち前記MCRに適合しない選択されたATMセルからなる。
【0012】
さらに、データをトランスポートする方法が提供される。この方法は、(a)入力ポートで受信されたセルが適合ステータスまたは非適合ステータスのいずれを有するかを判定するステップと、(b)前記入力ポートの前記キューにおいて、所定数の前記受信されたセルが前記キューにおいて予約されるまで、適合セルのためにキュー位置を予約し、続いて、非適合セルのためにキュー位置を予約するステップと、(c)前記入力ポートが、前記予約するステップの結果に従って、スケジューラへの要求を生成し送信するステップと、(d)前記スケジューラから前記入力ポートによって受信された承諾に従って、前記適合セルおよび前記非適合セルの一方からなるスーパーセルを生成しトランスポートするステップと、(e)出力装置において、前記スーパーセルを受信し分解するステップとを有する。
【0013】
さらに、データをトランスポートするシステムが提供される。このシステムは、各キューが第1のタイプおよび第2のタイプの複数のセルを受信し、複数の出力ポートに対する複数のサービス品質レベルに対応する複数のキューを有する入力ポートと、前記入力ポートにおいて、前記入力ポートの前記複数のキューからセルを受信し、前記キューのそれぞれに対する予約ベクトルに従ってスーパーセルを形成するスケジューリングモジュールとを有し、前記複数のキューのうちの非空キューは前記スケジューリングモジュールへの公平なアクセスを有し、前記スーパーセルは、前記入力ポートからの要求に基づいて生成される承諾に従って前記出力ポートへトランスポートされる。
【0014】
さらに、データをトランスポートするもう1つの方法が提供される。この方法は、(a)入力装置でデータを受信してセルを生成するステップと、(b)最小セルレート(MCR)条件に適合するセルからなる適合クラスと、非適合クラスの一方に、前記セルを分類するステップと、(c)前記入力装置からスケジューラへ要求を送信するステップとを有する。この方法はさらに、(d)前記スケジューラからの承諾に従って、前記入力装置において前記セルを含む複数のキューに公平なアクセスを提供するように、前記入力装置から出力装置への前記セルのトランスポートを制御するスケジューリングモジュールを動作させるステップと、(e)前記出力装置で前記セルを分解し、IPデータグラムを出力するステップとを有する。
【0015】
【発明の実施の形態】
以下、本発明の好ましい実施の形態について詳細に説明する。実施例は、添付図面に示されている。本発明において、用語は、明細書で与えられた定義を有することを意図しており、それ以外の点では明細書によって限定されない。
【0016】
[I.システム全体の説明]
[A.システムアーキテクチャ]
このセクションでは、図1および図2に示されているような、本発明の好ましい実施の形態の全体のアーキテクチャについて説明する。図1は、本発明の好ましい実施の形態のシステムアーキテクチャを示す。N個の入力ポート1a〜1NおよびN個の出力ポート2a〜2Nを有するスイッチングシステムが設けられている。入力ポート1a〜1Nおよび出力ポート2a〜2Nはそれぞれ、R個の入力または出力ライン3a〜3Rを収容する。したがって、図1に示したスイッチングシステムは、全部でL=NR個のライン(1〜L)を収容する。あるいは、各ラインは、そのポート番号と、各ポートにおけるオフセット番号とによって識別することもできる。例えば、以下の例には限定されないが、入力ライン数がR=8である場合、入力ポート9の5番目のオフセットは、ライン番号(9×8+5=77)によって表される。
【0017】
図1に示すように、入力ポートと出力ポート2a〜2Nとは、IPまたはATMのトラフィックを収容するN×Nクロスバ交換機5を通じて通信する。本発明の好ましい実施の形態では、このトラフィックは、データグラムを含むが、これには限定されない。集中スケジューラ4は、入力ポートと出力ポート2a〜2Nに対する通信パターンを決定する。入力ポート1a〜1Nにおいて、同じ出力宛先を有する入ATMセル(例えば、53バイトのデータグラム)は、より大きい固定サイズのスーパーセル(すなわち、Cセル)にまとめられる。その後、スーパーセルは、クロスバ交換機5によってルーティングされ、出力ポート2a〜2Nで標準セルに再び分解された後、データグラムへと再結合される。スケジューラ4は、以下でさらに詳細に説明するように、クロスバ交換機5にも接続される。
【0018】
さらに、スケジューラは、ソフトウェアプログラムを蓄積可能なコンピュータ可読媒体を有するスケジューリングモジュールからなることも可能である。ソフトウェアプログラムは、グローバルラウンドロビン、動的ラウンドロビンおよびグローバル動的ラウンドロビンプロセスを実行することが可能である。これらのすべてについては、本明細書で説明するその他の方法、アルゴリズムおよび処理とともに、以下でさらに詳細に説明する。別法として、上記の方法を実行するために、スケジューリングモジュールにおいてハードウェアを使用することも可能である。
【0019】
図2に、本発明の好ましい実施の形態によるシステムパラメータおよび代表的な値のリストを示す。前述したシステムパラメータN、LおよびRに加えて、Kはトラフィックのクラスの総数を表し、Mはスケジューリングモジュールの総数を表し、Sはスケジューリングモジュールあたりのパイプライン段の数を表し、Cはスーパーセルあたりのセルの総数を表す。本発明の好ましい実施の形態では、システムパラメータの例示的な値としては、N=64、L=512、R=8、K=8、M=16、S=1およびC=8があるが、これには限定されない。
【0020】
[B.キューイング構造]
このセクションでは、図3および図4に示されているような、入力バッファモジュールにおけるキューイング構造について説明する。前述のように、本発明の好ましい実施の形態は、スーパーセルを出力ポート2a〜2Nへ送信する。スーパーセルを図3に示す。各スーパーセルは、セル7a〜7Cを含む。ここで、C個のセルがスーパーセルに含まれ、各スーパーセルのラベリング情報8a〜8Cに対応する。出力ポートにおける出力ラインは、各セルの入力ポート、入力オフセット、出力オフセット、およびクラスを知らなければならない。本発明の好ましい実施の形態では、1個のスーパーセル内のすべてのセルは入力ポートが同一である一方、1個のスーパーセル内の各セルはその固有の入力オフセット、出力オフセットおよびクラスを有することが可能である。しかし、以下でさらに説明するように、ヘッダ情報8a〜8Cは、スケジューラ4がシステムを制御するためには必要とされず、単に、出力ポートの出力ラインのために付加されている。
【0021】
サービス品質(QoS)を考慮したキューイング構造に関して、本発明の好ましい実施の形態によるスイッチングシステムは、トラフィックのK個のクラスをサポートし、その各クラスが1つのQoS(例えば、相異なるサービスレート)をサポートする。各入力ポートモジュールはKN個のキュー(すなわち、それぞれの<クラス,出力ポート>のペアごとに1個のキュー)を有する。以下でさらに詳細に説明するように、スケジューラの複雑さを低減するために、KN2個の入力キューは、その後、2個の仮想キューにまとめられる。
【0022】
スケジューラ4は、それぞれの<入力ポート,出力ポート>のペアごとにK個の物理キューを2個の仮想キューにまとめることにより、2N2個の入力キューをスケジューリングするだけである。入力ポート1a〜1Nのそれぞれは、その仮想キューのそれぞれについて、クラスKとは独立のステータスをスケジューラ4へ送り、スケジューラ4は、各タイムスロットにおいてルーティングされるべき部分置換(すなわち、入出力接続の選択の部分的セット)を選択する。タイムスロットごとにただ1つのスーパーセルが各入力ポートスケジューリングモジュールからクロスバ交換機5へ送信され、1タイムステップにただ1つのスーパーセルが各出力ポートへ送信されるように、スケジューラ4は、各タイムスロットにおいてサービスする仮想キューを選択する。スケジューラ4がクロスバ交換機5を制御することも可能であり、あるいは、出力ポートアドレスを、選択されるスーパーセルのヘッダに付加すること(すなわち、自己ルーティングを行うこと)も可能である。
【0023】
図4に、本発明の好ましい実施の形態による入力ポートiのモジュールのキュー構造を示す。各入力ポートiおよび出力ポートjについて、トラフィックの各クラス(すなわち、QoS)を表すK個のキューがあることになる。データグラムが入力ルータに到着すると、次ホップおよびクラスが判定され、データグラムはセルに分割された後、セルは適当なキューに送られる。ポートセレクタ6は、入データ伝送で受信された情報に従って、入力ポートiにおけるキューに対する出力ポートを選択する。
【0024】
同じく図4に示されているように、ATMセルが入力ポート1a〜1Nに到着すると、同じクラスおよび出力ポートのセルは、1個のキューにおいて1個の完全な将来のスーパーセルを作成するのに十分なセルが入るまで、個別のキューにバッファリングされる。次に、スケジューラ4には、将来のスーパーセルの入力ポート、出力ポート、および適合/非適合ステータスに関する情報を含めて、スーパーセルの到着が通知される。将来のスーパーセルは、そのすべてのセルが適合であるときに適合であり、そのすべてのセルが非適合であるときに非適合である。スケジューラ4は、受信したが未サービスの要求の数を保持する変数を管理する。その結果、全部で2N2個の変数、すなわち、適合トラフィックについてN2個、および、非適合トラフィックについてN2個の変数が必要とされる。
【0025】
[C.入力バッファモジュールのプロセス]
[1.方法の説明]
図5(a)および図5(b)に、本発明の好ましい実施の形態によるセルのキューイングおよび入力バッファの動作の方法を示す。図5(a)に示すように、最初のステップS1で、セルが入力ポートのうちの1つに到着する。次に、ステップS2で、ルックアップテーブルにアクセスして、ステップS1で到着したセルのクラスおよび出力ポート宛先を判定し、セルがキューイングされる。以下でさらに詳細に説明するように、ステップS28で、キューに対するクレジットカウンタが更新される。
【0026】
ステップS3で、クレジットが利用可能であるかどうかを判定する。クレジットが利用可能である場合、セルは適合であるとみなされ、クレジットが利用可能でない場合、セルは非適合であるとみなされる。クレジットが利用可能である場合、ステップS4で、適合セルカウンタをインクリメントし、ステップS5で、適合セルカウンタをチェックすることによって、完全な適合スーパーセルのために十分なセルが蓄積したかどうかを判定する。ステップS5でスーパーセルのために十分なセルがないと判定された場合、プロセスは終了する。これに対して、スーパーセルのために十分なセルがあると判定された場合、ステップS6で、適合スーパーセルを求める要求をスケジューラに送り、ステップS7で、適合セルカウンタをCだけデクリメントする。このCは、1個のスーパーセル内のセルの数である。これで、入力バッファにおける適合セルの到着に対するプロセスは完了する。
【0027】
ステップS3で、クレジットが利用可能でないと判定された場合、セルは非適合であるとみなされる。その場合、ステップS8で、非適合セルカウンタをインクリメントする。ステップS9で、非適合セルカウンタをチェックすることによって、完全な非適合スーパーセルのために十分なセルが蓄積したかどうかを判定する。十分なセルが蓄積されていない場合、プロセスは終了する。これに対して、十分なセルが蓄積された場合、ステップS10で、非適合スーパーセルを求める要求をスケジューラに送る。ステップS11で、非適合セルカウンタをCだけデクリメントし、これで、入力バッファにおける非適合セルの到着に対するプロセスは完了する。
【0028】
図5(b)は、入力バッファモジュールにおける本発明の好ましい実施の形態による、スーパーセルの形成のためのプロセスを示す。前述のように、いったん適合または非適合のいずれかのスーパーセルのために十分なセルがあると判定されると、要求がスケジューラへ送られる。ステップS12で、入力バッファモジュールは、承諾を受信したかどうかを判定する。承諾を受信していない場合、プロセスは終了する。これに対して、承諾を受信した場合、ステップS13で、スーパーセルがオンザフライで形成され、ステップS14で、そのスーパーセルがクロスバ交換機へ送られる。
【0029】
図5(b)に示した、本発明の好ましい実施の形態によりオンザフライでスーパーセルの形成を実行する例示的な方法について以下で説明する。固定優先度方式を有する、入力ポートiから出力ポートjへのK個のクラスキューを考える。スキャン装置がすべてのキューのステータスを検査し、スロット時間をCで除したものに等しいセル時間内に追加すべき1個のセルを選択する。その結果、Cセル時間内に、C個のセルを選択することが可能であり、スーパーセルは、Cセル時間後にルーティングの準備が整うことになる。スキャン装置は、いったん伝送承諾がスケジューラ4から到着した後、スーパーセルを形成するために1スロット時間のレイテンシを被るが、スーパーセルを形成する十分なフレキシビリティを提供する。
【0030】
各タイムスロットにおける対応するキューに割り当てられるクレジットの数(セル数の単位で)をzijkで表す。一般に、zijkは小数値である。例えば、以下の例には限定されないが、入力ポートiから出力ポートjへのクラスkのフローが入力ポートの最大帯域幅の約20%を利用している場合、zijkは約0.2×Cportに設定される。ここで、Cportは、1個の出力ポートの全容量を表す。公式cijk=cijk+zijkを用いて各タイムスロットにおけるクレジットを増加させることが理論的には有効となるが、このような高い頻度で必要な変数を更新することは困難である。更新コストを低減するため、本発明は、新たなセルがキューに到着したときにのみ、クレジットを更新する。その結果、各キューは、そのキューに対するクレジット値の最終更新時を示す追加変数を管理する。新たなセルが到着すると、最終クレジット更新以来のタイムスロットの数が計算され、クレジット変数が更新される。
【0031】
本発明の好ましい実施の形態において、クレジットの無制限の増大を防ぐため、各cijkに対して最大値を強制することが必要である。さらに、キュー到着の間の時間が拡大したことによるラップアラウンド問題が生じる可能性があるため、最終到着以来のタイムスロットの数を表現することが不可能となりうる。ラップアラウンド問題を克服するため、本発明の好ましい実施の形態は、低オーバーヘッドのバックグラウンド更新メカニズムを含む。
【0032】
将来のスーパーセルの存在が通知される時刻を決定するため、C個の適合セルまたはC個の非適合セルのいずれかがキューに蓄積したときに、入力ポート1a〜1Nのうちの1つがスケジューラ4に通知する。
【0033】
これで、入力バッファモジュールと、関連する入力キューイング構造とに関するスーパーセル形成のプロセスは完了する。
【0034】
[2.例示的な擬似コード]
図5(a)および図5(b)に示した本発明の好ましい実施の形態による、入力ポートに対する例示的な擬似コードは以下の通りである。
【0035】
【0036】
上記の擬似コードを実装するため、前述と同様に、送信がスケジューラ4によって承諾されると、ラウンドロビン型のアルゴリズムがスーパーセルをオンザフライで形成する。別法として、先入れ先出し(FIFO)キューを用いてスーパーセルを形成することも可能である。FIFOキュー法では、セルが到着すると必ず、セルのキュー番号がFIFOキューにキューイングされる。適合トラフィックはその固有のFIFOキューを有し、非適合トラフィックもまたその固有のFIFOキューを有する。入力バッファがスケジューラ4から承諾を受け取ると、クラスキューはFIFOの順序で空にされる。
【0037】
このオプションのFIFO法を実装するには、次の擬似コードを実装することが可能である。ここで、FVijは、入力ポートiから出力ポートjへの適合セルのキュー番号を保持するFIFOであり、FWijは、入力ポートiから出力ポートjへの非適合セルのキュー番号を保持するFIFOである。
【0038】
【0039】
[D.スケジューラの仮想キューイング構造]
このセクションでは、複数のチップを有するスケジューラの仮想キューイング構造について説明する。具体的には、入力バッファモジュールに関してスケジューラで行われるアクティビティについて説明する。
【0040】
図6に、本発明の好ましい実施の形態によるスケジューラの構造を示す。以下でさらに詳細に説明するように、複数のチップ100、101が設けられ(例えば、1〜M)、チップ100、101のそれぞれは、複数の入力ポート1a〜1nを処理することが可能である。ただし、n=N/Mである。入力ポートごとに、各出力について、適合および非適合スーパーセルに対するカウンタがある。図6は、本発明のスケジューリングモジュールの例示的記述であるが、本発明はこれに限定されない。図6に示すように、第1のスケジュールモジュールは時刻(t)に動作し、第2のスケジュールモジュールは時刻(t+1)に動作し、第3のスケジュールモジュールは時刻(t+2)に動作し、第4のスケジュールモジュールは時刻(t+3)に動作する。さらに、チップ100と101の間には接続があり、以下でさらに詳細に説明するように、フェアネスを確保し最小帯域幅を保証するためにメッセージを送信することができるようになっている。
【0041】
スケジューラは、どの入力ポートも複数のスーパーセルを送信せず、どの出力ポートも複数のスーパーセルを受信しないという制約の下で、各スロットごとに入出力接続のセットを選択する。スケジューラをN(入力または出力ポートの数)とともにスケーラブルにするためには、パイプラインアーキテクチャを有する分散スケジューラが必要である。このパイプラインスケジューラアーキテクチャでは、N×Nシステムのスケジューリングタスクが、モジュールあたりN/M個の入力ポートの、複数(例えば、M個)のスケジューラモジュール(SM:Scheduler Module)に分散される。これらのSMは、ラウンドロビンリング方式で接続される。与えられたタイムスロットにおいて、各SMは、その上流の隣接SMからスケジューリングメッセージを受け取り、スケジューリング決定を行い、おそらくは変更されたスケジューリングメッセージをその下流の隣接SMに渡す。各SMはすべて互いに独立のスケジューリング決定を行うため、あるタイムスロットに対して、他の決定とは異なるスケジューリング決定を行うことが必要とされる。したがって、この分散スケジューラがN個のポートに対するM個のスケジューリングスロットを完了するには、M個のタイムスロットからなるフレームが必要となる。
【0042】
図11に、4個のSMを有する4×4システムを示す。各SMがその入力ポートについて相異なるタイムスロットでスケジューリングを行うことを示すために、スケジューリングウィンドウも用いられている。このウィンドウの各ボックス内の数字は、対応するSM(縦軸)がその入力のために対応するタイムスロット(横軸)でスケジューリングを行うタイムスロットを示す。例えば、以下の例には限定されないが、タイムスロット1において、SM1は入力ポート1のためにタイムスロット5および出力ポート2の決定を行い、SM2は入力ポート2のためにタイムスロット6および出力ポート2の決定を行い、SM3は入力ポート3のためにタイムスロット7および出力ポート2の決定を行い、SM4は入力ポート4のためにタイムスロット8および出力ポート3の決定を行う。1タイムスロット後で、各SMは、その入力ポートのために、その上流のSMから受け取ったタイムスロットについて、スケジューリングをしようと試みる。4タイムスロットからなるフレームの後、すべてのSMは、4タイムスロットすべてについて、すべての入力ポートのためにスケジューリングを試みていることになる。
【0043】
[E.パイプラインスケジューラの遅延]
[1.遅延の概念]
パイプライン実装についてさらに説明するために、S個のパイプライン段からなるスケジューリングモジュールを有する単純なハードウェアモデルを提供する。ここで、Sの値は実装に依存するが、1≦S≦N/Mの範囲内の整数となる。一般に、各パイプライン段は、N/M/S個の入力ポートからなるブロックを処理する。パイプライン段は、互いに予約ベクトルを受け渡す。予約ベクトルは、将来のある時点でルーティングされるべき部分置換を表す。これは単に、どの出力ポートがそのスロットのためにすでに予約されているかを示し、したがって、必要とされるのはNビットだけである。
【0044】
あるタイムスロットにおいて、各パイプライン段は、そのN/M/S個の入力ポートのそれぞれについて(可能であれば)予約を行い、その隣のパイプライン段に予約ベクトルを渡すことができる。このアプローチでは、すべての入力ポートは、SMタイムスロットのレイテンシで、予約ベクトルにおける予約をしようとすることが許される。システムのスループットを増大させるには、各予約モジュールが予約ベクトルから開始するようにすることによって、スケジューリングウィンドウが開始される。このようにして、SM個の予約ベクトルをSMスロット時間で計算することができる。
【0045】
このように、各入力ポートが各予約ベクトルを見る2回の機会を有するという事実を考慮することによって、スケジューラの複雑さは増大する。1回目に予約ベクトルを見るときには、適合トラフィックのみを予約しようとする。2回目にその予約ベクトルを見るときには、非適合トラフィックも予約しようとすることができる。2つのスケジューリング段階を有するため、スケジューラのレイテンシは2SMタイムスロットへと倍になる。すなわち、SMタイムスロットごとに出力をスケジューリングするために2SMタイムスロットを必要とする。われわれは、タイムスロットごとに1セットの出力ポート予約をスケジューリングする必要があるため、これは不十分である。この問題点を克服するために、各スケジューリングモジュールにおける資源を倍にする。各スケジューリングモジュールは、各スロット時間において2個の予約ベクトルを処理しなければならない。
【0046】
時刻t=1において、SM個のパイプライン段にわたって分散されたSM個の予約ベクトルから開始する。時刻t=SMにおいて、それらのベクトルは適合トラフィックのための予約を有する。時刻t=SM+1において、SM個の予約ベクトルの新たなバッチを開始する一方、もとのバッチについて、パイプラインを通るその2回目のパスを開始させる。このように、各スロット時間において、各パイプライン段は、1つのベクトルについて適合予約を、もう1つのベクトルについて非適合予約を処理している。1個のベクトルをスケジューリングするための全レイテンシは2SMであるが、システムはSMスロットごとにSM個のベクトル(このスケジューリングウィンドウで計算されるが次のスケジューリングウィンドウで用いるための)を出力する結果、要求されるスループットが得られる。
【0047】
現在のハードウェアの制約をより正確にモデル化するため、ここで、モジュール間で予約ベクトルを転送するためには1タイムスロットかかると仮定する。1個だけのベクトルを考えると、レイテンシは2(SM+M)へと増大している。前の段落に記載した技術を用いることは実行不能となる。その理由は、SM+MタイムスロットごとにSM個の部分置換しか計算しないことになるからである。与えられた時刻において、2(SM+M)個の予約ベクトルを処理している必要がある。この目標を達成するには、転送時間は、処理が行われないパイプライン段と等価である。予約ベクトルのバッチの最初に、転送段もまた予約ベクトルから開始する。実効的に、各バッチは、SMの代わりにSM+M個の予約ベクトルから開始する。繰り返していえば、レイテンシは2(SM+M)となっており、システムは、SM+MタイムスロットごとにSM+M個の予約ベクトルを出力する。
【0048】
[2.例示的な説明]
N=4、M=2、およびS=2の場合の小さいスケジューリングアルゴリズムの例を図7に示す。これは、1つの予約ベクトルの操作を強調している。行列xおよびyはそれぞれ、適合および非適合トラフィックの転送を待機するスーパーセルの数を表すxijおよびyijを保持する。この例では、これらの値は、予約ベクトルがスケジューラを通るときに変化しないが、一般にこの通りである必要はない。この例はまた、モジュール間の通信が余分の遅延を被らないことも仮定している。パイプラインを通る1回目のパスで、入力ポート1は出力ポート1を予約し、入力ポート4は出力ポート4を予約する。2回目のパスで、入力ポート3は出力ポート2を予約する。なお、与えられた入力ポートは、与えられたタイムスロットにおいて1個の予約のみをすることができる。1個のベクトルをスケジューリングするためのレイテンシは2SM=8タイムスロットである。
【0049】
図8に、スケジューリングウィンドウ内の予約ベクトルの動きを強調する、より大きい例(N=32、M=4、およびS=2)を示す。モジュール間の遅延が存在するため、スケジューラは、12スロットごとにSM+M=12個の予約ベクトルを出力する。図示したウィンドウにおいて、タイムスロット1〜12に対する予約ベクトルは、適当または非適合のいずれかのトラフィックのために予約をすることができる。その理由は、前の処理動作において、適合のみの予約がこれらのタイムスロットに対してなされていたからである。これらは破線のボックスとして示されている。タイムスロット13〜24に対する予約ベクトルは、新たな適合トラフィックのみに対する予約をすることができる。これらは実線のボックスとして示されている。
【0050】
[F.スケジューラの方法]
図9に、本発明の好ましい実施の形態による、スケジューラが入力バッファモジュールからの情報を処理する方法を示す。最初のステップS15で、入力バッファモジュールから要求を受け取る。前述のように、クレジットが利用可能であるかどうかに依存して、この要求は、適合または非適合のいずれかのスーパーセルに対するものとなる。ステップS16で、要求のタイプに基づいて、適合または非適合のいずれかのキューのキュー長をインクリメントする。その後、スケジューラは、タイムスロットtにおけるセルを出力のためにスケジューリングする(これは、相異なる入力のそれぞれに対して相異なるタイムスロットにおいてなされる)ことによって、必要な予約を行う。その後、各入力に対して、スーパーセルが入力のためにスケジューリングされ、入力バッファモジュールへ承諾が送られる。
【0051】
入力バッファモジュールが承諾を受け取ると、プロセスは、図5(b)に示しすでに詳細に説明したように、実行される。
【0052】
図10に、本発明の好ましい実施の形態によって、スケジューラがトランスポートのためにスーパーセルをスケジューリングする方法を示す。最初のステップS17で、スーパーセルが、将来のタイムスロットtにおけるトランスポートのために、接続された入力に対してスケジューリングされる。次に、ステップS18で、接続された入力のうちの1つに承諾が送られる。ステップS19で、スケジューラ内の次のチップ(すなわち、スケジューリングモジュール)に予約ステータスが送信される。ステップS20で、フレームが完了したかどうかを判定するチェックが実行される。フレームが完了した場合、プロセスは終了する。フレームが完了していない場合、ステップS20でフレームが完了したと判定されるまで、ステップS17〜S20が繰り返される。
【0053】
[II.フェアネス問題とパイプラインスケジューラ]
従来技術のパイプラインスケジューラの動作については、上記のセクションIで詳細に説明した。従来技術のパイプラインスケジューラには、フェアネス問題として知られる問題が存在する。フェアネス問題の基礎は、すべての入力ポートあるいは出力ポートが、利用可能なタイムスロットを等しく共有するとは限らないということである。
【0054】
そこで、フェアネスは、全利用可能容量のシェアに対するスケジューリングモジュールの公平なアクセスによって定義することができる。フェアネスは、さらに、均一重み型であるかそれとも不均一重み型であるかに基づいて分けることができる。例えば、以下の例には限定されないが、トラフィックを有するすべてのスケジューリングモジュールが全容量に関して均一なアクセスを保証されている場合、均一フェアネスが保証されている。例えば、均一フェアネスは、それぞれトラフィックを運んでいるアクティブなスケジューリングモジュール(SM)が、以下でさらに詳細に説明する入力および出力のボトルネック状況であっても、全容量への均一なアクセスを有するとき、均一フェアネスが存在する。
【0055】
別法として、フェアネスは重み付けすることも可能である。特定のスケジューリングモジュールが、重いトラフィックにより、またはその他の何らかの理由のために、優先権を与えられる場合、そのスケジューリングモジュールは、より大きい重みが与えられることになる。例えば、第1のSMが第2のSMより高く重み付けされる場合(例えば、75/25)、全容量に対するアクセスのうち第1のSMが受けるシェア(例えば、75%)は、第2のSM(例えば、25%)よりも比例的に大きい。
【0056】
さらに、重み付けの概念は、上記の例における2つのスケジューリングモジュールの間の比較には限定されず、トラフィックを運んでいるすべてのアクティブなスケジューリングモジュールの間で重み付けを分配するためにも使用可能である。
【0057】
[A.出力ポートにおけるボトルネック]
フェアネス問題は、入力ポートあるいは出力ポートにおけるボトルネックにより起こりうる。特定の入力ポートが多くの相異なる出力ポートに対するキューを有する場合、キューどうしの間の伝送容量の割当ての問題がある。割当てが適切でない場合、出力ポート選択の順序がフェア(公平)でなければ出力間にコリジョン(衝突)があり得る。さらに、出力フェアネスを維持しないと、ビジーな出力ポートにおける輻輳が生じうる。以下でさらに詳細に説明するように、本発明の好ましい実施の形態は、出力ポートにおける従来技術のボトルネック問題を克服する。
【0058】
出力ボトルネック問題の一例は次の通りである。まず、タイムフレームに関して、特定のタイムスロットに対する従来技術のスケジューリングのシーケンスは常に固定され、分散アーキテクチャにおけるSMの接続のトポロジーにより、スケジューラモジュール(SM)間でアンフェア(不公平)であると仮定される。図11(以下でさらに詳細に説明する)に示すように、タイムスロット5、9、13など(すなわち、各タイムフレームの最初のタイムスロット)に対して、スケジューリング順序は常に、SM1→SM2→SM3→SM4である。
【0059】
例えば、以下の例には限定されないが、SM1およびSM2にはトラフィックがなく、SM3およびSM4はいずれも出力ポート1のみへ行くトラフィックを有する。従来技術のスケジューラでは、SM3がタイムフレーム2の3個のタイムスロット5、6、および7をすべて消費し、SM4はタイムスロット8のみを得る。このため、SM3は全容量の3/4を得る一方、SM4は全容量の1/4しか得られない。このパターンは、残りのタイムフレームの動作中も続くことになる。上記の状況では、理想的には、第1および第2のSMはそれぞれ全容量の50%を得るべきである。結果として、SM4は、SM3に関して、フェアなアクセスを有しない。上記の問題を、出力ポートボトルネック問題という。
【0060】
[B.入力ポートにおけるボトルネック]
さらに、ボトルネック問題は入力ポートでも起こりうる。例えば、以下の例には限定されないが、入力ポートが出力ポートに関してアンフェアに扱われる(すなわち、全容量が、相異なる入力ポートと同一の出力ポートを有する複数の複数のスケジューラモジュール間でフェアに割り当てられない)とき、入力ポートのうちのいくつかで輻輳が起こりうる。以下でさらに詳細に説明するように、本発明の好ましい実施の形態は、入力ポートにおける従来技術のボトルネック問題を克服する。
【0061】
[III.均一フェアネスの達成(グローバル動的ラウンドロビン)]
前述のように、パイプラインスケジューラにおけるフェアネス問題は、均一フェアネスまたは重み付きフェアネスのいずれかを有することによって克服される。均一フェアネスを達成するには、グローバル動的ラウンドロビン(GDRR:global dynamic round robin)が適用される。このセクションは、前述の従来技術の出力ポートおよび入力ポートのボトルネック問題を克服することについて個別に説明した後、ボトルネック問題に対する、均一フェアネスを達成する組み合わされた全体的な解決法について説明する。1つの例も提供される。
【0062】
[A.出力ボトルネック問題の克服(グローバルラウンドロビン)]
前のセクションで説明したように、複数の入力ポートが同一の出力ポートへ出力を送るときに出力ボトルネック問題が起こる。この問題を克服するため、グローバルラウンドロビン(GRR:Global Round Robin)が適用される。このセクションでは、GRRの適用について説明する。
【0063】
従来技術では、出力における速度ボトルネック問題を克服するため、ラウンドロビン方式を用いて上記の例を実現する。図11に示すように、ラウンドロビン(RR:round robin)方式では、各スケジューラモジュールSM1〜SM4は、与えられたタイムスロットに対して、予約ステータスベクトルを生成するために、現フレームの1フレーム前にスケジューリングを行う。与えられたタイムフレームにおいて、各SMにより4個のスーパーセルが送信されることが可能である。したがって、TS1では、SM1はTS5を予約し、SM2はTS6を予約し、などとなる。TS2では、SM2はフレーム2に対するTS5を(それがまだSM1によって予約されていなければ)予約する機会を有し、SM3はTS6について同じ機会を有し、SM4はTS7について同じ機会を有し、SM1はTS8について同じ機会を有する。こうして、前述のように、この基本的な従来技術のパイプラインスケジューラから、フェアネス問題が生じる。
【0064】
出力ポートボトルネックに関係するフェアネス問題を克服するため、本発明の好ましい実施の形態のGRRアルゴリズムを図12(a)および図12(b)に示す。最初のステップS21で、現タイムスロットについて優先度が保持されているかどうかを判定する。判定がYESである場合、ステップS22で、現タイムスロットが最小セルレート(MCR)トラフィックによって予約されているかどうかを判定する。MCRトラフィックの概念については以下で詳細に説明する。
【0065】
ステップS22の判定がNOである場合、ステップS23で、出力は保持されている優先度で予約され、ステップS24で、次フレームに対する保持優先度を解放する。これに対して、ステップS22の判定がYESである場合、ステップS25で、保持優先度を解放する。
【0066】
ステップS25の後、あるいは、ステップS21の判定がNOである場合、ステップS26で、出力キューが空であるかどうかを判定する。出力キューが空である場合、ステップS27で、ラウンドロビンリスト内の別のキューを試み、空でない出力キューが見つかるまでステップS26およびS27を繰り返す。
【0067】
S26の判定がNOである場合、ステップS29で、(a)出力ポートが利用可能であり、かつ、(b)出力ポートが別の入力ポートによって保持されていないかどうかを判定する。ステップS29の判定がNOである場合、すでに詳細に説明したようにステップS27が実行される。ステップS29の判定がYESである場合、ステップS30で、出力ポートが予約される。
【0068】
図12(b)に示すように、ステップS30、あるいは、ステップS24が完了した後、ステップS31で、次フレームについて出力キューが空であるかどうかを判定する。ステップS31の判定がYESである場合、ステップS32で、ラウンドロビンリスト内の次のキューを試み、次フレームに対する空でない出力キューが見つかるまでステップS31およびS32を繰り返す。
【0069】
ステップS31の判定がNOである場合、ステップS33で、次フレームについて、利用可能な出力ポートがあり、かつ、それが別の入力ポートによって保持されていないかどうかを判定する。ステップS33の判定がNOである場合、すでに詳細に説明したようにステップS32が実行される。これに対して、ステップS33の判定がYESである場合、ステップS34で、次フレームにある出力(すなわち、J)に対して予約が保持される。
【0070】
本発明の代替実施形態では、最小セルレート(MCR)予約をすることができる。これは、保持優先度での入力ポートによる出力ポートの予約に対する許可をブロックすることができる。このような実施の形態については、すでにステップS22およびS25に関して記載されているが、以下でも詳細に説明する。上記の代替実施形態は、特定の入力ポートが多くの相異なる出力ポート2a〜2Nに対するキューを有し、その特定の入力ポートがそのキューの間で伝送容量を均一に分けて出力フェアネスを維持しなければならないような場合に実行される。
【0071】
[B.入力ボトルネック問題の克服(動的ラウンドロビン)]
前のセクションでも説明したように、相異なる出力ポートが共通の入力ポートを共有するときに入力ボトルネック問題が起こる。この問題を克服するため、動的ラウンドロビン(DRR:Dynamic Round Robin)が適用される。このセクションでは、DRRの適用について説明する。
【0072】
個々の入力におけるボトルネック速度問題を克服するため、DDRアルゴリズムを適用する。本発明による好ましい実施の形態では、SMは、出力ポート2a〜2Nが入力ポートによって選択される順序を管理する動的に調整されたラウンドロビンリストを使用する。動的ラウンドロビン(DRR)リストの選択および順序づけのプロセスは、リスト内の選択/サービスされる要素がリストの末尾へ移動され、サービスされない場合にはリストの先頭にとどまるという点で、従来技術のラウンドロビンリストとは異なる。
【0073】
例えば、以下の例には限定されないが、図11において、入力ポート1が出力ポート1、2、および3に対するキューを有する場合、動的ラウンドロビンリストの初期選択順序は(1,2,3)である。出力ポート1がサービスされると、リストは(2,3,1)となる。これに対して、ポート1がブロックされ(すなわち、他の入力によって予約され)ているために最初に出力ポート2がサービスされる場合、リストは(1,3,2)となり、出力ポート1は次のタイムフレームでも優先的に選択される。
【0074】
[C.出力および入力ボトルネック問題の克服(グローバル動的ラウンドロビン)]
上記のセクションIII.AおよびIII.Bで説明したように、出力および入力ボトルネックはそれぞれ、GRRおよびDRRを適用することによって個別に克服することができる。しかし、入力ボトルネック問題を出力ボトルネック問題とともに実質的に同時に克服するため、以下でさらに詳細に説明するように、グローバル動的ラウンドロビン(GDRR)解決法が提供される。
【0075】
図13(a)および図13(b)に、本発明の好ましい実施の形態によるGDRRのステップを示す。指示するところでは、DRRおよびGRR法がすでに説明したように実行される。最初のステップS35で、現タイムスロットについて優先度が保持されているかどうかを判定する。判定がYESである場合、ステップS36で、現タイムスロットが最小セルレート(MCR)トラフィックによって予約されているかどうかを判定する。これについては、すでに図12(a)および図12(b)に関して説明したが、以下でもさらに説明する。
【0076】
ステップS36の判定がNOである場合、ステップS38で、出力は保持されている優先度で予約され、ステップS39で、次フレームに対する保持優先度を解放する。これに対して、ステップS36の判定がYESである場合、ステップS37で、保持優先度を解放する。
【0077】
ステップS37の後、あるいは、ステップS35の判定がNOである場合、ステップS40で、プロセスは、上記のDRRプロセスによって決定されるDRRリストの先頭から開始される。そこで、ステップS41で、出力キューが空であるかどうかを判定する。出力キューが空である場合、ステップS42で、DRRリスト内の別のキューを試み、現フレームにおける現タイムスロットに対して空でない出力キューが見つかるまでステップS40〜S42を繰り返す。
【0078】
S41の判定がNOである場合、ステップS43で、現フレームにおける現タイムスロットに対して、(a)出力ポートが利用可能であり、かつ、(b)出力ポートが別の入力ポートによって保持されていないかどうかを判定する。ステップS43の判定がNOである場合、すでに詳細に説明したようにステップS42が実行される。ステップS43の判定がYESである場合、ステップS44で、出力ポートが予約される。次に、ステップS45で、DRRアルゴリズムに関してすでに説明した方法によって、現タイムスロットおよび現フレームに対する出力が、DRRリストの末尾に移動される。
【0079】
図13(b)に示すように、ステップS45、あるいは、ステップS39が完了した後、ステップS46で、プロセスは、次フレームのDRRリストの先頭から開始される。そこで、ステップS47で、次フレームについて出力キューが空であるかどうかを判定する。ステップS47の判定がYESである場合、ステップS48で、DRRリスト内の次のキューを試み、次フレームに対する空でない出力キューが見つかるまでステップS46およびS47を繰り返す。
【0080】
ステップS47の判定がNOである場合、ステップS49で、次フレームについて、利用可能な出力ポートがあり、かつ、それが別の入力ポートによって保持されていないかどうかを判定する。ステップS49の判定がNOである場合、すでに詳細に説明したようにステップS48が実行される。これに対して、ステップS49の判定がYESである場合、ステップS50で、次フレームにある出力(すなわち、J)に対して予約が保持される。次に、次フレームに対する出力が、DRRリストの末尾に移動される。
【0081】
すでに説明したように、本発明の代替実施形態では、最小セルレート(MCR)予約をすることができる。これは、保持優先度での入力ポートによる出力ポートの予約に対する許可をブロックすることができる。
【0082】
このように、GDRRアルゴリズムは、前述のGRRおよびDRRアルゴリズムの特徴を組み合わせて、単一のアルゴリズム(すなわち、GDRR)において上記の入力ボトルネックおよび出力ボトルネックの問題を克服することにより、均一フェアネスを提供する。
【0083】
[D.例示的な説明]
図14(a)および図14(b)に、本発明の好ましい実施の形態の第1の例を示す。図14(a)において、4×4システムの簡単な例を用いて、スケジューリングアルゴリズムの詳細を例示する。この例では、ポート1/SM1は出力ポート2へのトラフィックを有し、ポート2/SM2は出力ポート2へのトラフィックを有し、ポート3/SM3は出力ポート2および4へのトラフィックを有し、ポート4/SM4は出力ポート3および4へのトラフィックを有する。
【0084】
図14(a)において、SM1は、ポート2が保持されておらず利用可能であるため、タイムスロット5について出力ポート2に対する予約を行う。<OR,P>ベクトルは、タイムスロット5における予約により<0000,0000>から<0100,0000>に変化する。<PI,PO>ベクトルは、ポート2がラウンドロビン順序の先頭にあるため、<0,2>となる。更新された<PI,PO>ベクトルは、現タイムフレームの最初のタイムスロットにおいてSM1とともにとどまり、次タイムフレームの最初のタイムスロットにおいてSM1によって継承されることになる。
【0085】
また、SM2は、ポート2がタイムスロット5において予約されたが、保持のためには開かれているため、タイムスロット9について出力ポート2に対する予約許可を保持する。<OR,P>ベクトルは、タイムスロット9における保持により<0100,0000>から<0100,0100>に変化する。<PI,PO>ベクトルは、ポート2がラウンドロビン順序の先頭にあり、入力ポート2が今度はタイムスロット9において出力ポート2について予約権を保持しているため、<2,2>となる。第3のエントリは、SM3が、タイムスロット6において出力ポート4を予約するのみならず、タイムスロット10において出力ポート2に対する許可を保持することも示す。
【0086】
次に、SM3は、ポート2がタイムスロット5において予約されており、その保持権はタイムスロット9において保持されたため、タイムスロット5について出力ポート4に対する予約を行う。<OR,P>ベクトルは、出力ポート4に対するタイムスロット5における予約により<0101,0100>から<0101,0100>に変化する。<PI,PO>ベクトルは、<0,2>となる。ポート4が最初にサービスされたが、ポート2は、ラウンドロビン順序の先頭としてとどまる。この方式は、ポート2がサービスされる機会を失わないように、スケジューリングプロセスの次のラウンドについてポート2に優先権を与えることになる。
【0087】
図14(a)および図14(b)は、SM1およびSM2の両方が、予約も保持も、スケジューリングを行うことから完全にブロックされることを示している。したがって、<OR,P>ベクトルは同一にとどまる。<PI,PO>ベクトルは、<0,2>となる。ポート2は、ラウンドロビン順序の先頭である。
【0088】
タイムスロット4の終了、すなわち、タイムフレーム1の終了時に、タイムスロット5、6、7、および8はスケジューリングされている。スケジューラは、スケジューリングのためにタイムフレーム2にスライドする。
【0089】
なお、SM1、SM2、SM3、およびSM4のORベクトルは、タイムフレーム2の最初に0に設定されるが、Pベクトルは、タイムフレーム1の終了時のSM4、SM1、SM2、およびSM3からそれぞれ継承される。SM1およびSM2は、スケジューリングからブロックされる。その理由は、いくつかの他の入力ポートが、このタイムフレームにおいてタイムスロット5および6に対して予約権を保持しているからである。
【0090】
SM2は、SM2/入力ポート2がタイムスロット9に対して予約権を保持したため、出力ポート2に対する予約を行う。SM2は、いったんこの権利を執行したら、他のSMがこの権利を使うことができるように、ベクトルPを0100から0000に変化させることによって、この権利を返さなければならない。さらに、PIは0にリセットされなければならない。
【0091】
図14(a)および図14(b)に示す残りのスケジューリングステップについてはこれ以上説明しない。それらのステップは、すでに詳細に説明したのと同じ方法に従うからである。
【0092】
[IV.最小帯域幅の保証]
[A.2段階スケジューリングシステム]
適合トラフィックに優先権を与えるため、2段階スケジューリングアプローチを使用する。第1段階では、適合トラフィックのみが予約をする一方、第2段階では、非適合トラフィックのみが予約をする。セルは、入力バッファモジュールに到着すると、その関連するクレジットプールに未使用のクレジットを見つけた場合には、適合型として分類される。そうでない場合、セルは非適合型として分類される。したがって、集合フローにおけるトラフィックは、その割り当てられた帯域幅しか利用しない場合、適合型である。スケジューラ4は、非適合トラフィックを(従来技術のシステムのようには)廃棄しないが、その代わりに、適合トラフィックと衝突しないように、非適合トラフィックをルーティングする。
【0093】
別法として、第2段階において、適合もしくは非適合またはその両方の予約をすることも可能である。適合トラフィックは、最小セルレート(MCR)トラフィックとも呼ばれる。その理由は、それぞれの仮想出力キュー(VOQ)が、指定された最小セルレートで長時間にわたり伝送クレジットを蓄積するからである。キューのうちの1つに、スーパーセルを形成するのに十分な(同一の入力ポートおよび出力ポートの、またおそらくは(必ずしも必要ではないが)相異なるクラスの)セルが到着すると、入力ポートはスケジューラ4に、スーパーセルが適合型であるか否かを含めて、スーパーセルの新たな到着を通知する。
【0094】
到着通知がスケジューラ4によって受信されると、スケジューラ4は、スーパーセルの入力ポート、出力ポート、および確認ステータスに関連する変数をインクリメントする。変数は、xij(適合スーパーセルについて)およびyij(非適合スーパーセルについて)である。なお、xijは実際には、Vij/Cの整数商であり、yijは、Wij/Cの整数商である。全体で、スケジューラ4は2N2個の変数を必要とする。スケジューラ4がスーパーセルをルーティングするように選択すると、変数はデクリメントされる。
【0095】
本発明の好ましい実施の形態は、クラス別キューイング(CBQ:class−based queuing)を使用する。これは、従来技術のIEFTで規定されたdiffserv(differentiated service)技術をサポートする。さらに、各フローが1個のスーパーセルの伝送帯域幅の一部をタイムスロットごとに蓄積するようにするクレジットシステムを使用することにより全伝送容量をフローにわたって分配することによって、帯域保証が達成される。フローが少なくとも1つのクレジットを生じると、このフローにおける1個のスーパーセルが伝送され、スーパーセルはその伝送クレジットを消費する。
【0096】
スケジューラ4は、トラフィックのK個のクラスどうしの間を区別する必要はなく、各入力ポートから各出力ポートへの適合および非適合スーパーセルの数を記憶するだけでよい。それが可能であるのは、スケジューラ4は、入力を、各入力ポートiからそのそれぞれの出力ポートjへの2つの仮想キューとみなしているからである。ここで、仮想キューの一方は適合トラフィックを保持し、他方の仮想キューは非適合トラフィックを保持する。スケジューラ4は、仮想キューのサイズに関する情報(例えば、将来のスーパーセルの単位数)を管理し、これに基づいて、トランスポートのための部分置換を選択する。
【0097】
本発明の好ましい実施の形態では、入力ポート1a〜1Nのそれぞれが、スケジューラ4と通信する専用ライン9a、9bを有し、各キューにおける適合および非適合スーパーセルの数を常にモニタする。図4に示すように、同一の入力ポート、出力ポート、およびクラスを有するすべてのセルは、それらが適合型であるか非適合型であるかにかかわらず、入力ポートにおける同一のキューで管理される。しかし、スーパーセルは、相異なるクラスからのセルを含むことがある。スーパーセルは、スケジューラ4からの伝送承諾を受けた後に、あらかじめ規定されたポリシーに基づいて形成されるだけであるからである。
【0098】
承諾段階と要求段階は互いに独立である。さらに、入力ポートスケジューラモジュールは、Cセルをどのようにして形成するかを決定する。例えば、以下の例には限定されないが、Cセルは、出力ポートに送られる順序で形成されることが可能である。また、キュー内での各セルの位置は、与えられたキュー内の適合セルの数ほど重要ではない。
【0099】
クレジットは入力ポートキューでのみ管理され、スケジューラ4はクレジットの情報を有しない。さらに、各入力ポートにおける各キュー内のセルは、適合または非適合とラベリングされる必要はない。図4において、qijkは、入力ポートiから出力ポートjへのクラスkのトラフィックに対するキューを表し、cijkは、qijkに関連するクレジットの数(例えば、セルの単位数)を表し、vijkおよびwijkはそれぞれ、キューqijk内の適合セルおよび非適合セルの数に対する整数を表す。セルがキューに到着すると、そのキューにクレジットが残っているかどうかが判定される。cijk≧1である場合、vijkがインクリメントされ、セルはキューqijkに入れられる。そうでない場合、wijkがインクリメントされ、セルはqijkに入れられる。こうして、セルは、出力ポートに基づいて入力ポートに送られ、クラスに基づいて入力ポート内のキューに送られる。
【0100】
VijおよびWijはそれぞれ、クラスとは独立に、スケジューラ4がまだ通知されていない、入力ポートiから出力ポートjへの適合セルおよび非適合セルの数に対する整数を表す。新たなセルが、入力ポートiにおけるiからjへのキューのいずれかに到着すると、VijまたはWijのいずれかがインクリメントされる。Vij=C(ただし、Cは1個のスーパーセル内のセルの数を表す)である場合(例えば、C=8)、承諾がスケジューラ4によって与えられると、新たな適合スーパーセルが形成される。適合要求がスケジューラ4に送られ、CがVijから差し引かれる。次に、WijおよびCに基づいて、スケジューラ4には、新たな将来の非適合スーパーセルの存在が通知される。蓄積したC個の適合セルまたはC個の非適合セルのいずれかに基づいて、承諾を求める要求が、スケジューラ4に対してなされる。
【0101】
入力ポートがスケジューラ4から承諾を受け取ると、スーパーセルが「オンザフライ」で形成され、スケジューラ4とクロスバ交換機5へ送信され、到着信号がスケジューラ4へ送られる。入力バッファは各サービスキュー内の適合および非適合セルの数を知っているため、非適合セルが考慮される前に適合セルがスーパーセルに付加される。さらに、セルがスーパーセルに付加されるとき、付加されるセルは、そのセルがもともと適合と分類されていたかどうかにかかわらず、サービスキューの先頭から来る。
【0102】
例えば、以下の例には限定されないが、キューが3個の非適合セルを保持し、そのとき1個の適合セルがそのキューに到着した後、スケジューラ4からの伝送承諾が到着した(すなわち、スーパーセルを形成することができる)場合、入力ポートにおけるスーパーセルコンストラクタは、キューが適合セルを有することを知っている。その適合セルを含めるため、コンストラクタは、後から到着した適合セルではなく、キューの先頭にあるセルをとることになる。
【0103】
本発明のもう1つの好ましい実施の形態では、スーパーセルは、適合セルおよび非適合セルの混合を含むことも可能である。
【0104】
本発明の好ましい実施の形態は通常、クラスとは独立に、非適合セルの前に適合セルを選択する。しかし、入力ポート1a〜1Nにおけるスーパーセルコンストラクタがトラフィックのクラスに基づく優先権を有することができる場合がある。例えば、以下の例には限定されないが、入力ポート1a〜1Nのスーパーセルコンストラクタにおいて非適合セルの前に適合セルを選択する代わりに、固定優先度方式(例えば、小さい番号のクラスが優先権を有する)を実装することも可能である。あるいは、いくつかの「低レイテンシ」クラスを優先度とみなすことも可能である。前述のように、クラスに基づくセルの区別は、スケジューラ4ではなく入力ポート1a〜1Nで起こる。
【0105】
[B.例示的な説明]
図15に示すように、2段階MCRスケジューリングは、2フレームのスケジューリングウィンドウに適している。各SMが、一時に2個の相異なるタイムスロット(一方はMCRのために、他方はフェアネスのために)をスケジューリングする必要があるからである。各SMがその要求を処理する順序は次の通りである。(a)スケジューリングウィンドウのF1部分では、動的ラウンドロビン順序で、前に保持された許可に対する予約をするか、または、非適合トラフィックに対する予約をする。(b)適合トラフィック(MCRトラフィック)に対する予約をする。(c)前に保持された許可がMCRトラフィックによって再びブロックされている場合にはそれを解放し、あるいは、動的ラウンドロビンリストの先頭にある出力ポートに対する予約権を保持する。
【0106】
こうして、将来のタイムフレームにおける与えられた位置のタイムスロットkに対してどの出力ポート2a〜2Nがすでに予約されているかを示すために、1<j<Nおよび1<k<Mに対する新たなベクトルORMkj(「1」は予約されていることを示し、「0」は予約されていないことを示す)が必要となる。これは、各タイムフレームの最初にオール0で初期化される。また、ORkjは、今度は、各タイムフレームの最初に、0に初期化される代わりに、ORMkjの情報を継承する。
【0107】
図15に示すように、タイムフレーム1の期間中、各SMは、スケジューリングウィンドウ11のF1部分(フレーム2)に対するフェアネストラフィックと、F2部分(フレーム3)に対するMCRトラフィックをスケジューリングする。その後、スケジューラがウィンドウ11を1フレーム前方(フレーム2)へスライドすると、SMは、フレーム3に対するフェアネストラフィックと(OR2jはORM2jを継承する)、フレーム4に対するMCRトラフィックをスケジューリングすることになる。ウィンドウ11内の各ボックスは、1つのSMが2個の相異なるタイムフレームで2個の相異なるタイムスロットを処理していることを表す。例えば、タイムスロット1において、SM1はフレーム2におけるタイムスロット5に対するフェアネストラフィックと、フレーム3におけるタイムスロット9に対するMCRトラフィックをスケジューリングしている。新たなタイムフレームは常にMCRトラフィックに対して最初にスケジューリングされるため、MCR保証を達成することができる。もちろん、SM間でこの情報を伝えるためには追加の予約ORMが必要となる。スケジューラのスループットは同一のままであるが、スケジューラのレイテンシは倍になる。
【0108】
図16に、適合セルに対するMCRおよび保証トラフィックのある、図14(a)および図14(b)に類似した例を示す。この2段階アプローチでは、スケジューラは、フレーム1においては適合セルについてのみ予約の実行および保持をし、その後、フレーム2において、適合セルとともに非適合セルについて予約の実行および保持をする。TS1において、SM3(出力2)はMCR要求を満たすため、適合セルを有する。その結果、SM3はもはやTS11(出力2)に対する予約を保持しない。適合セルに対してもはや予約の必要がないため、予約は放棄される。そこで、TS3においてSM1によって行われているように、非適合セルが出力2、TS11を予約することがある。
【0109】
図16では、入力ポート3から出力ポート2へのトラフィックがMCR保証されることを除いては、図14(a)および図14(b)で示したのと同じ例が用いられている。もう1つのベクトルORMkjが、SM間で受け渡しされたセットに追加される。MCRトラフィックが優先権を与えられるように、タイムフレームの終了時のORMベクトルのステータスは、次タイムフレームの最初にORベクトルを初期化することになる。さらに、それらの「予約の保持されている許可」ポートは、同一のタイムフレームにおいてMCR予約により先取りされた場合には、解放されなければならない。
【0110】
さらに、タイムスロット2において、ポート2がブロックされたため、SM3はタイムスロット6における出力4に対する予約を行う。しかし、SM3は、タイムスロット10におけるポート2に対する予約権を保持することはできない。そのスロットはMCRトラフィックによって使用されたからである。さらに、タイムスロット3において、SM1は、タイムスロット11について出力ポート2に対する予約権を(このスロットはすでに他のSMによって予約されたが)ともかく保持する。その理由は、SM1は、予約権を保持しようとする一方で、ORMのステータスをチェックしないからである。このため、保持された予約権は、タイムスロット11において、SM1がその権利を執行しようとするとき、入力ポート1によって解放される。また、ポート2の予約権はタイムスロット2においてSM2によって保持されたが、SM3はタイムスロット9について出力ポート2に対してMCR予約を行う。これにより、SM2は、後でその権利を執行しようとするときに、その保持する権利を解放することを強制される。
【0111】
図1に模式的に示すように、各出力ポートは、スケジューラ4に通知するための2本のラインを有することになる。一方のラインは、「非適合トラフィックのみ停止」を通知する。他方のラインは、「適合および非適合の両方のトラフィックの停止」を通知する。出力ポートは、接近するオーバーフローを検知すると、いずれかのラインをアサートすることができる。この場合も、CACは、出力ポート(および出力ライン)がすべての適合トラフィックをサポートすることができることを保証することになり、非適合トラフィックのみに停止を要求すれば通常は十分である。出力ポートへのすべてのトラフィックを停止することを求める頻繁な要求は、CACの調整が必要であることをおそらく示している。
【0112】
フェアネスと帯域保証スケジューリングの組合せによるさらに別の実施の形態では、MCRスケジューリングによる先取りされた予約の許可を前に保持した入力ポートが、再び同じ出力ポートの予約の許可を保持する優先度を有し続ける。この代替例は、MCRスケジューリングの有無にかかわらず、与えられた出力ポートの入力フェアネスを保証する。
【0113】
[V.マルチキャスティングとバックプレッシャ]
本発明の好ましい実施の形態は、それぞれの所望されるユニキャストキューに、マルチキャストデータグラムのコピーを入れる。データグラムのコピーは、絶対的に必要になるまでは作成されない。例えば、以下の例には限定されないが、マルチキャストデータグラムが2つの異なる出力ポート宛である場合、データグラムは、入力ポートにおける対応する関連キューにコピーされる。しかし、マルチキャストデータグラムが、同じ出力ポートに接続された2本の出力ライン宛である場合、データグラムのただ1つのコピーが出力ポートに送られ、出力ポートにおいて、そのデータグラムがコピーされ、対応する出力ラインキューに入れられる。ATMやMPLSの場合、同じ出力ラインを通じてマルチキャストデータグラムの複数のコピーを送信することが好ましいことがある。前述の方式は、出力ポートにおいて同様に扱われることになる。
【0114】
例えば、以下の例には限定されないが、マルチキャストセルが、入力iに、j、k、およびlを宛先として到着した場合、3個のすべての関連するキューにコピーが入れられる。このアプローチでは、入力ポート1a〜1Nにおけるマルチキャストセルの複数のコピーの維持を含む余分なコストがかかるが、このアプローチは、単純なユニキャストスケジューラを使用することができるという利点を有する。このアプローチは、ユニキャスト帯域保証の単純な拡張であり、前述の「最大付加」保証帯域アプローチに従い、したがって、CACが扱うのは容易である。例えば、以下の例には限定されないが、上記のフローは、iからjへ、iからkへ、およびiからlへの関連するクラスに対する予約された帯域を要求することになる。
【0115】
交換機インタフェースに関連するいくつかの問題点に対するコア交換機サポートとしては、(i)出力におけるデータグラムの再構成と、(ii)出力ポートからスケジューラへのバックプレッシャ信号がある。
【0116】
基本的な交換機モデルでは、IPデータグラムはクロスバ交換機5の入力においてセルに分割され、出力において、セルは連結されてデータグラムに戻される。本発明の好ましい実施の形態では、各入力ポートに対応して8本の入力ラインがあり、各出力ポートに対応して8本の出力ラインがある。1個のポートに接続されたラインの容量の和は、そのポートの全容量にほぼ等しい。具体的にするため、入力(出力)ラインは2.4Gbsをサポートすることが可能であり、入力(出力)ポートは20Gbsをサポートすることが可能であると仮定する。
【0117】
図17に示すように、相異なるデータグラムが、相異なるラインから同時に1個の入力ポートに入る可能性がある。データグラムが到着すると、そのクラスが判定され、次ホップが判定される。必要であれば、マルチキャストコピーが上記のように作成され、個々のコピーがそれぞれ個々の出力ポートごとに作られ、データグラムはセルに分割される。その後、セルは単一のフローへと多重化される。特定の入力ラインに到着するデータグラムは、順にルーティングされる(すなわち、同じラインに到着するデータグラムからのセルどうしのインタリーブはない)。
【0118】
図18に、出力ラインインタフェースの設計を示す。まず、複数の出力ラインがマルチキャスト経路上にある場合、マルチキャストコピーが作成される。これは、データグラムがまだ組み立てられていないことにより、やや複雑である。次に、各データグラムを適当な出力ラインへルーティングするために、分離化が必要とされる。各出力ラインは、最悪の場合に8NK個のデータグラムを同時に形成している可能性があるため、データグラムを再構成するためには8NK個のキューが必要である。ATMおよびMPLS環境を扱うために、マルチキャストコピーが再び行われる。その後、データグラムは、出力ライン上に送出される前に、クラスに従って再びキューイングされる。
【0119】
交換機5は、出力ポート2a〜2Nが正しくデータグラムを再構成することができるために、十分な情報を提供しなければならない。出力ポートは、各セルの入力ライン(すなわち、入力ポートおよび入力オフセット)、出力オフセット、およびクラス(これは、交換機5を通る各セルに付随するヘッダで送信されるオーバーヘッド情報である)を知る必要がある。図3に、オーバーヘッドラベリング情報を含めて、スーパーセルを示す。
【0120】
各スーパーセル内のC個のセルは相異なる入力オフセット、出力オフセット、およびクラスを有する可能性があるため、各セルは3個のラベルを必要とする。ポートあたりR個のオフセットと、K個のクラスがあるため、これは全部でスーパーセルあたりC×(2logR+logK)ビットとなる。さらに、入力ポートは既知でなければならないが、スーパーセル内のすべてのセルは同一の入力ポートを有する。したがって、その共通の入力ポートをラベルするためのビット数はlogNであり、スーパーセルあたりのオーバーヘッドビットの総数はC×(2logR+logK)+logNビットとなる。
【0121】
出力ラインは出力ポートよりも容量が小さいため、出力ポートにおけるキューイングが必要である。CACは、出力ラインの容量より大きい適合トラフィックをどの出力ラインもサポートしないことを保証する。しかし、非適合トラフィックは、単一の入力ラインの容量を超える可能性がある。例えば、以下の例には限定されないが、出力ポートは、20Gbsのレートで非適合トラフィックを受信し、それがすべて、2.4Gbsしか処理することができない同一の出力ライン宛である場合がある。
【0122】
クロスバ交換機5は、長期間にわたるこのような負荷に対して安定であることはできないが、バースト性トラフィックはサポートされる。いくつかの過剰バッファが各出力ポートに配置される。さらに、出力ポートは、スケジューラに通知することによって、トラフィックの低速化あるいは停止さえ要求することができる。このバックプレッシャ技術を使用することにより、入力ポート1a〜1Nおよび出力ポート2a〜2Nの両方におけるバッファは、このようなトラフィックバーストをサポートすることができる。
【0123】
バックプレッシャ要求をサポートするようにスケジューラの設計を変更することは論理的には簡単である。しかし、提案した方式のナイーブな従来技術による実装は、スケーラビリティの問題を有する。その理由は、M個のスケジューリングモジュールはそれぞれ、バックプレッシャを要求するすべての出力ポート2a〜2Nを知る必要があるためである。確かに、各スケジューリングモジュールに2N個の追加ピンを収容することはできない。さらに、バックプレッシャ情報をスケジューリングモジュール間でパイプライン転送するものから、バックプレッシャステータスの変化のみをブロードキャストするものまで、いくつかの実装方式が可能である。
【0124】
【発明の効果】
[V.効果]
本発明は、従来技術に比べてさまざまな利点を有する。例えば、以下の例には限定されないが、本発明の好ましい実施の形態によるスケジューリングおよび予約の方法では、速度が改善される。前述のように、本発明の好ましい実施の形態は、各段における動作の単純なパイプライン技術を使用し、タイムスロットあたりの入出力接続の選択の1部分セットのスループットが改善される。さらに、本発明の好ましい実施の形態による2段階スケジューリングシステムを用いて、最小帯域幅が保証される。
【0125】
さらに、本発明の好ましい実施の形態は、各クラスがその固有のQoSを有する、トラフィックの複数のクラスをサポートするということは利点である。各クラスにはクレジットが付与され、クラスに対する保証帯域幅に等しいレートで新たなクレジットが生成される。クレジットを有するセルは高い優先度を有し、スケジューリングアルゴリズムの第1段階で予約をすることができる。前述のように、CACは、各クラスに保証可能な帯域幅を決定する。帯域割当てを制御することによって、相異なるクラスには相異なるQoSが提供される。
【0126】
もう1つの利点として、本発明の好ましい実施の形態は、非適合(すなわち、ベストエフォート型)トラフィックもサポートする。保証されたレートより高いトラフィックを送信するクラスは、それに属するすべてのセルのために十分なクレジットを有さず、クレジットのないセルは、スケジューリングアルゴリズムの第2段階でのみ予約をすることができる。
【0127】
さらに、本発明のもう1つの利点として、入力および出力ポートは公平に扱われる。また、本発明は、スケジューラが完全稼働であるという点で利点を有する。各タイムスロットにおいて、キューの最大セットがサービスされる。また、ポート間のフェアネスが保証される(例えば、ある一定のポートに対する均一フェアネスまたは重み付きフェアネス)。フェアネス問題は、さらに、予約優先度を保持することによって緩和される。
【0128】
本発明はまた、スケーラブルな設計を提供する。サポートされるクラスの数を増大させることは、入力ポート1a〜1N(これはより多くのキューを管理しなければならない)において少ない余分のコストがかかることを除いては、スケジューラの設計には影響しない。
【0129】
さらに、本発明の好ましい実施の形態は、少なくとも2つの理由で、高度のスケーラビリティを有する。第1に、サポートされるクラスの数を増大させることは、スケジューラの複雑さを増大させない。その理由は、スケジューラは、適合トラフィックと非適合トラフィックとを区別するだけでよいからである。したがって、CACおよび入力ポート1a〜1Nのみが、相異なるクラスに対する相異なるサービスの提供を処理する。第2に、入力または出力ポート2a〜2Nの数を増大させることは、スケジューラ4のスループットに悪影響を与えない。
【0130】
本発明はまた、効率的でもある。例えば、以下の例には限定されないが、本発明に従って、スケジューラ4に将来のスーパーセルの到着を通知する好ましい方法は、タイムスロットごとに完全なステータス情報をスケジューラ4に送信する従来技術の方法よりも効率的である。本発明の好ましい実施の形態によるスケジューラ4が入力ポートiから出力ポートjへの適合および非適合スーパーセルの存在について知る必要がある場合、「完全ステータス」の従来技術のアプローチは、各スロットごとに、各入力ポートモジュールとスケジューラとの間で少なくとも2Nビットの通信を必要とし、これは全部で2N2ビットとなる。これに対して、本発明の好ましい実施の形態の「到着信号」法を使用する場合、各入力ポートビットごとに(log2N+1)個の通信ビット(すなわち、出力ポート番号および適合情報を示すため)しか必要でなく、全部でN(log2N+1)ビットとなる。
【0131】
当業者には明らかなように、本発明の技術思想および技術的範囲を離れることなく、上記の本発明の好ましい実施の形態に対してさまざまな変更や変形が可能である。したがって、本発明は、特許請求の範囲およびその均等物と矛盾しない、本発明のすべての変更および変形を含むことが意図される。
【図面の簡単な説明】
【図1】本発明の好ましい実施の形態によるスイッチングシステムの図である。
【図2】本発明の好ましい実施の形態に対するシステムパラメータを示す図である。
【図3】本発明の好ましい実施の形態によるスーパーセルフォーマットの図である。
【図4】本発明の好ましい実施の形態による入力ポートモジュールのキュー構造を示す図である。
【図5】本発明の好ましい実施の形態によるセルのキューイングおよび入力バッファの動作の方法を示す図である。
【図6】本発明の好ましい実施の形態によるパイプラインスケジューラアーキテクチャを示す図である。
【図7】本発明の好ましい実施の形態による予約ベクトルの適用例を示す図である。
【図8】本発明の好ましい実施の形態による予約ベクトルの適用例を示す図である。
【図9】本発明の好ましい実施の形態による、スケジューラが入力バッファモジュールからの情報を処理する方法を示す図である。
【図10】本発明の好ましい実施の形態によって、トランスポートのためにスーパーセルをスケジューリングする方法を示す図である。
【図11】本発明の好ましい実施の形態による分散スケジューラアーキテクチャのラウンドロビン接続を示す図である。
【図12】本発明の好ましい実施の形態に対するグローバルラウンドロビンアーキテクチャを示す図である。
【図13】本発明の好ましい実施の形態に対するグローバル動的ラウンドロビンアーキテクチャを示す図である。
【図14】本発明の好ましい実施の形態によるフェアネス解決法の例を示す図である。
【図15】本発明の好ましい実施の形態による2段階MCR解決法の適用例を示す図である。
【図16】本発明の好ましい実施の形態による2段階MCR解決法の適用例を示す図である。
【図17】本発明の好ましい実施の形態による、入力ポートにおけるマルチキャスティングの処理を示す図である。
【図18】本発明の好ましい実施の形態による、出力ポートにおけるマルチキャスティングの処理を示す図である。
【符号の説明】
1a〜1N 入力ポート
2a〜2N 出力ポート
3a〜3R 入力または出力ライン
4 集中スケジューラ
5 N×Nクロスバ交換機
6 ポートセレクタ
7a〜7C セル
8a〜8C ラベリング情報(ヘッダ情報)
9a,9b 専用ライン
100,101 チップ
Claims (40)
- データをトランスポートするシステムにおいて、
少なくとも1つの入力ラインからデータを受信し、規定の複数のATMセルからなる少なくとも1つのスーパーセルを生成する入力手段と、
前記規定の複数のATMセルが前記入力手段に到着したときに前記入力手段から要求を受信し、前記入力手段に前記少なくとも1つのスーパーセルを生成するように指示する承諾を生成するスケジューリング手段と、
クロスバ交換機を介して、前記承諾に従って、前記少なくとも1つのスーパーセルを受信する出力手段と、
を有し、
前記スーパーセルは2つだけのクラスのうちの一方からなり、前記出力手段に対応しており、
前記2つのクラスのうちの第1のクラスは、前記複数のATMセルのうち最小セルレート(MCR)に適合する選択されたATMセルからなり、前記2つのクラスのうちの第2のクラスは、前記複数のATMセルのうち前記MCRに適合しない選択されたATMセルからなる、
ことを特徴とするデータトランスポートシステム。 - 前記入力手段は、非適合セルからなるスーパーセルを生成する前に、適合セルからなる前記少なくとも1つのスーパーセルを生成することを特徴とする請求項1記載のシステム。
- 前記入力手段に複数のキューをさらに有し、
前記複数のキューのそれぞれは、前記出力手段に対応する1つのサービス品質クラスを処理することを特徴とする請求項1記載のシステム。 - 前記スケジューリング手段に対する送信のための前記要求を選択し、前記承諾を受信し、該承諾に従って前記スーパーセルを生成するポートセレクタをさらに有することを特徴とする請求項3記載のシステム。
- 前記システムはマルチキャスティングをサポートするように構成されることを特徴とする請求項1記載のシステム。
- 前記出力手段から前記スケジューリング装置へ生成されるバックプレッシャ信号をさらに有し、
前記スケジューリング手段は、前記バックプレッシャ信号に従って前記承諾を生成することを特徴とする請求項1記載のシステム。 - 前記スケジューリング手段は、前記複数のATMセルのそれぞれに対するヘッダ情報を必要としないことを特徴とする請求項1記載のシステム。
- 前記出力手段は、前記スーパーセルを分解して出力を生成することを特徴とする請求項1記載のシステム。
- 前記入力手段は、最小セルレートに適合する前記規定の複数のATMセルが前記入力手段によって受信された場合に前記2つのクラスのうちの第1のクラスに対する前記要求を送信し、最小セルレートに適合しない前記規定の複数のATMセルが前記入力手段によって受信された場合に前記2つのクラスのうちの第2のクラスに対する前記要求を送信することを特徴とする請求項1記載のシステム。
- 前記スーパーセルを生成するために使用される前記規定の複数のATMセルの優先度を決定する先入れ先出し(FIFO)キューをさらに有することを特徴とする請求項9記載のシステム。
- 前記入力手段は、
前記入力ラインから前記データを受信する分類手段と、
前記分類手段から前記データのマルチキャストコピーを生成するマルチキャスティング手段へ前記データをルーティングするルーティング手段と、
前記データを分割する分割手段と、
前記分割されたデータを前記規定の複数のATMセルのうちの1つへと多重化するマルチプレクサと、
を有することを特徴とする請求項1記載のシステム。 - 前記出力手段は、
前記規定の複数のATMセルのそれぞれを受信しそのマルチキャストコピーを作成する第1マルチキャストコピー手段と、
前記ATMセルを分解し、該分解されたATMセルを、複数のキューのうち前記出力手段の出力オフセットに対応するキューへトランスポートするデマルチプレクサと、
前記複数のキューのそれぞれにおいて、前記分解されトランスポートされたATMセルのマルチキャストコピーを作成する第2マルチキャストコピー手段と、
複数のサービス品質クラスに対応し、対応する出力ラインへのIPデータグラムを生成する複数のキューと、
を有することを特徴とする請求項1記載のシステム。 - データをトランスポートする方法において、
入力ポートで受信された複数のセルが適合ステータスまたは非適合ステータスのいずれを有するかを判定するステップと、
前記入力ポートの前記キューにおいて、所定数の前記受信されたセルが前記キューにおいて予約されるまで、適合セルのためにキュー位置を予約し、続いて、非適合セルのためにキュー位置を予約するステップと、
前記入力ポートが、前記予約するステップの結果に従って、スケジューラへの要求を生成し送信するステップと、
前記スケジューラから前記入力ポートによって受信された承諾に従って、前記適合セルおよび前記非適合セルの一方からなるスーパーセルを生成しトランスポートするステップと、
出力装置において、前記スーパーセルを受信し分解するステップと、
を有することを特徴とするデータをトランスポートする方法。 - 適合セルが前記入力ポートで受信されるごとに適合セルカウンタをインクリメントし、前記適合セルのキュー番号を適合セルのための先入れ先出し(FIFO)キューイングリストに付加するステップと、
非適合セルが前記入力ポートで受信されるごとに非適合セルカウンタをインクリメントし、前記非適合セルのキュー番号を非適合セルのための先入れ先出し(FIFO)キューイングリストに付加するステップと、
前記適合セルおよび前記非適合セルの一方からなるキューを生成するステップと、
対応して、前記所定数のセルが前記キューに対して予約された後、適合セル要求および非適合セル要求の一方を前記スケジューラへ送るステップと、
前記スケジューラが前記送るステップに従って前記承諾を生成するステップと、
前記承諾に従って、適合スーパーセルおよび非適合スーパーセルの一方を形成するステップと、
を有することを特徴とする請求項13記載の方法。 - 前記適合セルは、前記複数のATMセルのうち最小セルレート(MCR)に適合する選択されたATMセルからなり、前記非適合セルは、前記複数のATMセルのうち前記MCRに適合しない選択されたATMセルからなることを特徴とする請求項13記載の方法。
- 前記スーパーセルを生成しトランスポートするステップは、非適合セルからなるスーパーセルを生成する前に、適合セルからなる少なくとも1つのスーパーセルを生成することを特徴とする請求項13記載の方法。
- 前記入力ポートにおける複数のキューで複数のサービス品質クラスを処理するステップをさらに有し、
前記入力ポートは1つの出力ポートに対応することを特徴とする請求項13記載の方法。 - 前記入力ポートにおけるポートセレクタで前記スケジューラに対する送信のための前記要求を選択し、前記承諾を受信し、該承諾に従って前記スーパーセルを生成するステップをさらに有することを特徴とする請求項17記載の方法。
- 前記方法はマルチキャスティングをサポートするように構成されることを特徴とする請求項13記載の方法。
- 前記出力装置において前記スケジューラへのバックプレッシャ信号を生成し、該バックプレッシャ信号に従って前記承諾を生成するステップをさらに有することを特徴とする請求項13記載の方法。
- 前記承諾を生成することは前記複数のセルのそれぞれに対するヘッダ情報を必要としないことを特徴とする請求項13記載の方法。
- 前記入力ポートは、最小セルレートに適合する規定の複数のATMセルが前記入力ポートによって受信された場合に2つのクラスのうちの第1のクラスに対する前記要求を送信し、最小セルレートに適合しない前記規定の複数のATMセルが前記入力ポートによって受信された場合に前記2つのクラスのうちの第2のクラスに対する前記要求を送信することを特徴とする請求項13記載の方法。
- 前記入力ポートにおける前記セルの受信は、
入力ラインから前記データを分類装置で受信し分類するステップと、
前記分類装置から前記データのマルチキャストコピーを生成するマルチキャスティング装置へ前記データをルーティングするステップと、
前記データを分割装置で分割するステップと、
前記分割されたデータを規定の複数のATMセルのうちの1つへと多重化するステップと、
を有することを特徴とする請求項13記載の方法。 - 規定の複数のATMセルのそれぞれを受信し、そのマルチキャストコピーを作成するステップと、
前記ATMセルを分解し、該分解されたATMセルを、複数のキューのうち前記出力装置の出力オフセットに対応するキューへトランスポートするステップと、
前記複数のキューのそれぞれにおいて、前記分解されトランスポートされたATMセルの第2のマルチキャストコピーを作成するステップと、
前記複数のキューにおいて、複数のサービス品質クラスに対応し、対応する出力ラインごとにIPデータグラムを生成するステップと、
を有することを特徴とする請求項13記載の方法。 - データをトランスポートするシステムにおいて、
各キューが第1のタイプおよび第2のタイプの複数のセルを受信し、複数の出力ポートに対する複数のサービス品質レベルに対応する複数のキューを有する入力ポートと、
前記入力ポートにおいて、前記入力ポートの前記複数のキューからセルを受信し、前記キューのそれぞれについて将来のタイムスロットのための予約を示す予約ベクトルに従ってスーパーセルを形成するスケジューリングモジュールと、
を有し、
前記複数のキューのうちの非空キューは、前記スケジューリングモジュールへの公平なアクセスを有し、前記スーパーセルは、前記入力ポートからの要求に基づいて生成される承諾に従って前記出力ポートへトランスポートされる、
ことを特徴とするデータをトランスポートするシステム。 - 前記予約ベクトルは、前記スケジューリングモジュールおよび前記複数の出力のうちの対応する出力に対して、後続フレームにおける対応するタイムスロットを予約することを特徴とする請求項25記載のシステム。
- 前記予約ベクトルは、前記後続フレームの前記対応するタイムスロットが前記スケジューリングモジュールに対して予約されることができない場合、前記後続フレームの次のフレームにおける対応するタイムスロットに対する予約を保持することを特徴とする請求項26記載のシステム。
- 前記スケジューリングモジュールは、
(a)現タイムスロットに対して優先度が保持されているかどうかを判定するステップと、
(b)前記現タイムスロットに対して前記優先度が保持されている場合、前記タイムスロットがMCRに適合するトラフィックによって予約されているかどうかを判定するステップと、
(c)前記タイムスロットが前記MCRに適合するトラフィックによって予約されている場合、または、前記現タイムスロットに対して前記優先度が保持されていない場合、
(i)現出力キューが空であるかどうかを判定するステップと、
(ii)前記現出力キューが空でない場合、前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていないかどうかを判定するステップと、
(iii)前記現出力キューが空であるか、または、前記出力ポートが利用可能でないかもしくは別の入力ポートによって保持されている場合、ラウンドロビンリストから後続キューを選択するステップと、
(iv)前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていない場合、前記現タイムスロットに対する出力を予約するステップと、を実行するステップと、
(d)前記タイムスロットが前記MCRに適合するトラフィックによって予約されていない場合、保持されている優先度で出力を予約し、次フレームに対する保持優先度を解放するステップと、
(e)ステップ(d)およびステップ(iv)の一方の完了後、
(v)前記次フレームに対する出力キューが空であるかどうかを判定するステップと、
(vi)前記次フレームに対する出力キューが空でない場合、前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていないかどうかを判定するステップと、
(vii)前記次フレームに対する出力キューが空であるか、または、前記出力ポートが利用可能でないかもしくは別の入力ポートによって保持されている場合、ラウンドロビンリストから前記後続キューを選択するステップと、
(viii)前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていない場合、前記次フレームにおける前記タイムスロットに対する出力を予約するステップと、
を実行するステップと、
を実行するように設定されたソフトウェアを有するコンピュータ可読媒体を有することを特徴とする請求項25記載のシステム。 - 前記ソフトウェアはさらに、
ステップ(i)およびステップ(v)の少なくとも一方を実行する前に、動的ラウンドロビンリストの先頭から開始するステップと、
ステップ(iv)および(viii)の少なくとも一方を実行した後に、前記動的ラウンドロビンリストの末尾へ、予約された出力を移動するステップとを実行し、
前記動的ラウンドロビンは、ステップ(iii)および(vii)の少なくとも一方において、前記後続キューを選択するために適用されることを特徴とする請求項28記載のシステム。 - 前記第1のタイプのセルは最小セルトランスポートレートに適合し、前記第2のタイプのセルは前記最小セルトランスポートレートに適合しないことを特徴とする請求項25記載のシステム。
- 前記第1のタイプのセルは、前記第2のタイプのセルの前に、スーパーセルへと構成されることを特徴とする請求項30記載のシステム。
- 前記公平なアクセスは、前記非空キューのそれぞれに対する均一タイムスロットアクセスからなることを特徴とする請求項25記載のシステム。
- データをトランスポートする方法において、
入力装置でデータを受信してセルを生成するステップと、
最小セルレート(MCR)条件に適合するセルからなる適合クラスと、非適合クラスの一方に、前記セルを分類するステップと、
前記入力装置からスケジューラへ要求を送信するステップと、
前記スケジューラからの承諾に従って、前記入力装置において前記セルを含む複数のキューに公平なアクセスを提供するように、前記入力装置から出力装置への前記セルのトランスポートを制御するスケジューリングモジュールを動作させるステップと、
前記出力装置で前記セルを分解し、IPデータグラムを出力するステップと、
を有し、
前記動作させるステップは、2つの異なるタイムフレームの2つの異なるタイムスロットについて前記スケジューリングモジュールを動作させることを特徴とするデータをトランスポートする方法。 - データをトランスポートする方法において、
入力装置でデータを受信してセルを生成するステップと、
最小セルレート(MCR)条件に適合するセルからなる適合クラスと、非適合クラスの一方に、前記セルを分類するステップと、
前記入力装置からスケジューラへ要求を送信するステップと、
前記スケジューラからの承諾に従って、前記入力装置において前記セルを含む複数のキューに公平なアクセスを提供するように、前記入力装置から出力装置への前記セルのトランスポートを制御するスケジューリングモジュールを動作させるステップと、
前記出力装置で前記セルを分解し、IPデータグラムを出力するステップと、
を有し、
前記動作させるステップは、現タイムフレームと同一のタイムスロットである後続フレームのタイムスロットに対して規定のキューについて前記スケジューリングモジュールを予約することを含むことを特徴とするデータをトランスポートする方法。 - 前記後続フレームの前記タイムスロットが前記規定のキューについて利用可能でないとき、前記後続フレームの後のフレームの、現フレームと同一のタイムスロットにおけるタイムスロットに対して、予約が保持されることを特徴とする請求項34記載の方法。
- 前記方法のセルトランスポートレートを制御するために、前記出力装置から前記スケジューラへのバックプレッシャ信号を生成するステップをさらに有することを特徴とする請求項33記載の方法。
- 前記スケジューリングモジュールを動作させるステップは、
(a)現タイムスロットに対して優先度が保持されているかどうかを判定するステップと、
(b)前記現タイムスロットに対して前記優先度が保持されている場合、前記タイムスロットが前記MCRに適合するトラフィックによって予約されているかどうかを判定するステップと、
(c)前記タイムスロットが前記MCRに適合するトラフィックによって予約されている場合、または、前記現タイムスロットに対して前記優先度が保持されていない場合、
(i)現出力キューが空であるかどうかを判定するステップと、
(ii)前記現出力キューが空でない場合、前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていないかどうかを判定するステップと、
(iii)前記現出力キューが空であるか、または、前記出力ポートが利用可能でないかもしくは別の入力ポートによって保持されている場合、ラウンドロビンリストから後続キューを選択するステップと、
(iv)前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていない場合、前記現タイムスロットに対する出力を予約するステップとを実行するステップと、
(d)前記タイムスロットが前記MCRに適合するトラフィックによって予約されていない場合、保持されている優先度で出力を予約し、次フレームに対する保持優先度を解放するステップと、
(e)ステップ(d)およびステップ(iv)の一方の完了後、
(v)前記次フレームに対する出力キューが空であるかどうかを判定するステップと、
(vi)前記次フレームに対する出力キューが空でない場合、前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていないかどうかを判定するステップと、
(vii)前記次フレームに対する出力キューが空であるか、または、前記出力ポートが利用可能でないかもしくは別の入力ポートによって保持されている場合、ラウンドロビンリストから前記後続キューを選択するステップと、
(viii)前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていない場合、前記次フレームにおける前記タイムスロットに対する出力を予約するステップと、
を実行するステップとを有することを特徴とする請求項33記載の方法。 - ステップ(i)およびステップ(v)の少なくとも一方を実行する前に、動的ラウンドロビンリストの先頭から開始するステップと、
ステップ(iv)および(viii)の少なくとも一方を実行した後に、前記動的ラウンドロビンリストの末尾へ、予約された出力を移動するステップとをさらに有し、
前記動的ラウンドロビンは、ステップ(iii)および(vii)の少なくとも一方において、前記後続キューを選択するために適用されることを特徴とする請求項37記載の方法。 - 請求項25記載のシステムにおける前記スケジューリングモジュールを実現するためにコンピュータを動作させるスケジューリングプログラムにおいて、
(a)現タイムスロットに対して優先度が保持されているかどうかを判定するステップと、
(b)前記現タイムスロットに対して前記優先度が保持されている場合、前記タイムスロットがMCRに適合するトラフィックによって予約されているかどうかを判定するステップと、
(c)前記タイムスロットが前記MCRに適合するトラフィックによって予約されている場合、または、前記現タイムスロットに対して前記優先度が保持されていない場合、
(i)現出力キューが空であるかどうかを判定するステップと、
(ii)前記現出力キューが空でない場合、前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていないかどうかを判定するステップと、
(iii)前記現出力キューが空であるか、または、前記出力ポートが利用可能でないかもしくは別の入力ポートによって保持されている場合、ラウンドロビンリストから後続キューを選択するステップと、
(iv)前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていない場合、前記現タイムスロットに対する出力を予約するステップと、を実行するステップと、
(d)前記タイムスロットが前記MCRに適合するトラフィックによって予約されていない場合、保持されている優先度で出力を予約し、次フレームに対する保持優先度を解放するステップと、
(e)ステップ(d)およびステップ(iv)の一方の完了後、
(v)前記次フレームに対する出力キューが空であるかどうかを判定するステップと、
(vi)前記次フレームに対する出力キューが空でない場合、前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていないかどうかを判定するステップと、
(vii)前記次フレームに対する出力キューが空であるか、または、前記出力ポートが利用可能でないかもしくは別の入力ポートによって保持されている場合、ラウンドロビンリストから前記後続キューを選択するステップと、
(viii)前記出力ポートが利用可能でありかつ別の入力ポートによって保持されていない場合、前記次フレームにおける前記タイムスロットに対する出力を予約するステップと、
を実行するステップと、
を有することを特徴とするスケジューリングプログラム。 - 前記スケジューリングプログラムは、さらに、
ステップ(i)およびステップ(v)の少なくとも一方を実行する前に、動的ラウンドロビンリストの先頭から開始するステップと、
ステップ(iv)および(viii)の少なくとも一方を実行した後に、前記動的ラウンドロビンリストの末尾へ、予約された出力を移動するステップと、
を有し、
前記動的ラウンドロビンは、ステップ(iii)および(vii)の少なくとも一方において、前記後続キューを選択するために適用されることを特徴とする請求項39記載のスケジューリングプログラム。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US25917801P | 2001-01-03 | 2001-01-03 | |
US09/977227 | 2001-10-16 | ||
US60/259178 | 2001-10-16 | ||
US09/977,227 US7042883B2 (en) | 2001-01-03 | 2001-10-16 | Pipeline scheduler with fairness and minimum bandwidth guarantee |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002208951A JP2002208951A (ja) | 2002-07-26 |
JP3614132B2 true JP3614132B2 (ja) | 2005-01-26 |
Family
ID=26947134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001395933A Expired - Fee Related JP3614132B2 (ja) | 2001-01-03 | 2001-12-27 | データをトランスポートするシステムおよび方法 |
Country Status (2)
Country | Link |
---|---|
US (5) | US7042883B2 (ja) |
JP (1) | JP3614132B2 (ja) |
Families Citing this family (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7006514B2 (en) * | 2001-05-31 | 2006-02-28 | Polytechnic University | Pipelined maximal-sized matching cell dispatch scheduling |
USRE42600E1 (en) | 2000-11-20 | 2011-08-09 | Polytechnic University | Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined arbitration scheme |
US7042883B2 (en) * | 2001-01-03 | 2006-05-09 | Juniper Networks, Inc. | Pipeline scheduler with fairness and minimum bandwidth guarantee |
US7068602B2 (en) * | 2001-01-31 | 2006-06-27 | Pmc-Sierra Ltd. | Feedback priority modulation rate controller |
US7911980B1 (en) * | 2001-07-17 | 2011-03-22 | At&T Intellectual Property Ii, L.P. | Flexible multicasting in high-capacity switches |
US7177314B2 (en) * | 2001-08-30 | 2007-02-13 | Pmc-Sierra, Inc. | Transmit virtual concatenation processor |
US7376811B2 (en) * | 2001-11-06 | 2008-05-20 | Netxen, Inc. | Method and apparatus for performing computations and operations on data using data steering |
US7382792B2 (en) * | 2001-11-23 | 2008-06-03 | International Business Machines Corporation | Queue scheduling mechanism in a data packet transmission system |
US7352694B1 (en) * | 2001-12-14 | 2008-04-01 | Applied Micro Circuits Corporation | System and method for tolerating data link faults in a packet communications switch fabric |
US7424013B1 (en) * | 2001-12-20 | 2008-09-09 | Applied Micro Circuits Corporation | System and method for granting arbitrated bids in the switching of information |
US7020131B1 (en) * | 2001-12-24 | 2006-03-28 | Applied Micro Circuits Corp. | System and method for hierarchical switching |
US8418129B1 (en) | 2001-12-14 | 2013-04-09 | Qualcomm Incorporated | Method for automatically generating code to define a system of hardware elements |
US7385993B2 (en) * | 2001-12-21 | 2008-06-10 | International Business Machines Corporation | Queue scheduling mechanism in a data packet transmission system |
US7082132B1 (en) * | 2001-12-26 | 2006-07-25 | Nortel Networks Limited | Universal edge node |
US20030147349A1 (en) * | 2002-02-01 | 2003-08-07 | Burns Daniel J. | Communications systems and methods utilizing a device that performs per-service queuing |
FR2838591B1 (fr) * | 2002-04-15 | 2004-09-24 | Cit Alcatel | Procede de partage de la largeur de bande disponible pour des flux monodestination et multidestination dans un noeud de commutation asynchrone |
US7272309B1 (en) * | 2002-05-08 | 2007-09-18 | Yotta Networks, Llc | System and method of routing data at a photonic core |
US7251416B1 (en) * | 2002-05-08 | 2007-07-31 | Yotta Networks, Llc | Container based crossconnect |
US7023843B2 (en) * | 2002-06-26 | 2006-04-04 | Nokia Corporation | Programmable scheduling for IP routers |
US7177275B2 (en) * | 2002-07-26 | 2007-02-13 | Kenneth Stanwood | Scheduling method and system for communication systems that offer multiple classes of service |
US7397768B1 (en) | 2002-09-11 | 2008-07-08 | Qlogic, Corporation | Zone management in a multi-module fibre channel switch |
US20040081108A1 (en) * | 2002-10-02 | 2004-04-29 | Andiamo Systems | Arbitration system |
US20110164616A1 (en) * | 2002-10-02 | 2011-07-07 | Andiamo Systems | Methods and apparatus for processing superframes |
TWI337470B (en) * | 2002-12-20 | 2011-02-11 | Interdigital Tech Corp | Method for selecting/obtaining a transport format combination |
US6996785B1 (en) | 2003-04-25 | 2006-02-07 | Universal Network Machines, Inc . | On-chip packet-based interconnections using repeaters/routers |
US7420982B2 (en) | 2003-07-21 | 2008-09-02 | Qlogic, Corporation | Method and system for keeping a fibre channel arbitrated loop open during frame gaps |
US7646767B2 (en) | 2003-07-21 | 2010-01-12 | Qlogic, Corporation | Method and system for programmable data dependant network routing |
US7684401B2 (en) | 2003-07-21 | 2010-03-23 | Qlogic, Corporation | Method and system for using extended fabric features with fibre channel switch elements |
US7894348B2 (en) | 2003-07-21 | 2011-02-22 | Qlogic, Corporation | Method and system for congestion control in a fibre channel switch |
US7430175B2 (en) | 2003-07-21 | 2008-09-30 | Qlogic, Corporation | Method and system for managing traffic in fibre channel systems |
US7522529B2 (en) * | 2003-07-21 | 2009-04-21 | Qlogic, Corporation | Method and system for detecting congestion and over subscription in a fibre channel network |
US7406092B2 (en) | 2003-07-21 | 2008-07-29 | Qlogic, Corporation | Programmable pseudo virtual lanes for fibre channel systems |
US7792115B2 (en) | 2003-07-21 | 2010-09-07 | Qlogic, Corporation | Method and system for routing and filtering network data packets in fibre channel systems |
US7706394B2 (en) * | 2003-07-23 | 2010-04-27 | International Business Machines Corporation | System and method for collapsing VOQ's of a packet switch fabric |
US20050036502A1 (en) * | 2003-07-23 | 2005-02-17 | International Business Machines Corporation | System and method for handling multicast traffic in a shared buffer switch core collapsing ingress VOQ's |
CA2544224A1 (en) * | 2003-10-30 | 2005-05-26 | Teak Technologies, Inc. | Nonblocking and deterministic multicast packet scheduling |
CA2544411A1 (en) * | 2003-10-30 | 2005-05-26 | Venkat Konda | Nonblocking and deterministic multirate multicast packet scheduling |
US20050152373A1 (en) * | 2004-01-08 | 2005-07-14 | Interdigital Technology Corporation | Packet scheduling in a wireless local area network |
US7340167B2 (en) * | 2004-04-23 | 2008-03-04 | Qlogic, Corporation | Fibre channel transparent switch for mixed switch fabrics |
US7930377B2 (en) | 2004-04-23 | 2011-04-19 | Qlogic, Corporation | Method and system for using boot servers in networks |
US7352697B1 (en) * | 2004-06-23 | 2008-04-01 | Dinochip, Inc. | Network processing using fractional time stamp values |
CN1294728C (zh) * | 2004-08-05 | 2007-01-10 | 华为技术有限公司 | 边缘路由器提供服务质量保证的方法及系统 |
US7817643B2 (en) * | 2004-09-14 | 2010-10-19 | Maksim Azarov | System and method for varying the scheduling of real time protocol (RTP) packets |
JP2006094304A (ja) * | 2004-09-27 | 2006-04-06 | Nec Commun Syst Ltd | 伝送帯域制御方法及び伝送帯域制御システム |
US8295299B2 (en) | 2004-10-01 | 2012-10-23 | Qlogic, Corporation | High speed fibre channel switch element |
US7813348B1 (en) | 2004-11-03 | 2010-10-12 | Extreme Networks, Inc. | Methods, systems, and computer program products for killing prioritized packets using time-to-live values to prevent head-of-line blocking |
US7542473B2 (en) * | 2004-12-02 | 2009-06-02 | Nortel Networks Limited | High-speed scheduling apparatus for a switching node |
US7475177B2 (en) * | 2005-01-27 | 2009-01-06 | International Business Machines Corporation | Time and frequency distribution for bufferless crossbar switch systems |
US8072887B1 (en) * | 2005-02-07 | 2011-12-06 | Extreme Networks, Inc. | Methods, systems, and computer program products for controlling enqueuing of packets in an aggregated queue including a plurality of virtual queues using backpressure messages from downstream queues |
US7525971B2 (en) * | 2005-03-16 | 2009-04-28 | Alcatel-Lucent Usa Inc. | Software-hardware partitioning of a scheduled medium-access protocol |
JP4503470B2 (ja) * | 2005-03-17 | 2010-07-14 | 富士通株式会社 | サーバ管理装置及び計算機サーバ |
US8804751B1 (en) | 2005-10-04 | 2014-08-12 | Force10 Networks, Inc. | FIFO buffer with multiple stream packet segmentation |
DE602006019558D1 (de) * | 2006-05-26 | 2011-02-24 | M T C Macchine Trasformazione Carta S R L | Vorrichtung zur Umhüllung von Bögenstapeln |
CN101127686B (zh) * | 2006-08-18 | 2012-04-04 | 华为技术有限公司 | 一种网络数据处理方法及设备 |
US7990989B2 (en) * | 2006-09-16 | 2011-08-02 | Mips Technologies, Inc. | Transaction selector employing transaction queue group priorities in multi-port switch |
US7760748B2 (en) * | 2006-09-16 | 2010-07-20 | Mips Technologies, Inc. | Transaction selector employing barrel-incrementer-based round-robin apparatus supporting dynamic priorities in multi-port switch |
US7961745B2 (en) * | 2006-09-16 | 2011-06-14 | Mips Technologies, Inc. | Bifurcated transaction selector supporting dynamic priorities in multi-port switch |
US7773621B2 (en) * | 2006-09-16 | 2010-08-10 | Mips Technologies, Inc. | Transaction selector employing round-robin apparatus supporting dynamic priorities in multi-port switch |
US8264957B1 (en) * | 2006-09-29 | 2012-09-11 | Cisco Technology, Inc. | Control of preemption-based beat-down effect |
US9294401B2 (en) * | 2007-06-28 | 2016-03-22 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for data transfer in a peer-to-peer network |
US8824897B2 (en) * | 2008-06-04 | 2014-09-02 | Accipiter Systems, Inc. | Optical network systems and methods for operating same |
CN101621460B (zh) * | 2008-06-30 | 2011-11-30 | 中兴通讯股份有限公司 | 一种分组调度方法和装置 |
WO2010045732A1 (en) | 2008-10-20 | 2010-04-29 | Tadeusz Szymanski | Crossbar switch and recursive scheduling |
WO2010103610A1 (ja) * | 2009-03-09 | 2010-09-16 | 富士通株式会社 | 情報処理装置 |
US9729946B2 (en) * | 2009-04-03 | 2017-08-08 | Infinera Corporation | High-capacity switch |
US8665722B2 (en) * | 2010-03-29 | 2014-03-04 | Ted Szymanski | Method to achieve bounded buffer sizes and quality of service guarantees in the internet network |
US8630173B2 (en) | 2010-11-19 | 2014-01-14 | Cisco Technology, Inc. | Dynamic queuing and pinning to improve quality of service on uplinks in a virtualized environment |
US20120198267A1 (en) | 2011-01-31 | 2012-08-02 | Srinjoy Das | System and Method for Facilitating Data Transfer Between a First Clock Domain and a Second Clock Domain |
JP5763961B2 (ja) * | 2011-04-14 | 2015-08-12 | キヤノン株式会社 | 通信装置、通信システム、通信装置の制御方法およびプログラム |
US20130266315A1 (en) * | 2012-04-04 | 2013-10-10 | Accipiter Systems, Inc. | Systems and methods for implementing optical media access control |
US8902488B2 (en) | 2012-06-28 | 2014-12-02 | Accipiter Systems, Inc. | System architecture for an optical switch using wavelength, fiber and polarizaton addressing |
US20140133483A1 (en) * | 2012-11-14 | 2014-05-15 | Broadcom Corporation | Distributed Switch Architecture Using Permutation Switching |
US9866489B2 (en) * | 2014-07-11 | 2018-01-09 | F5 Networks, Inc. | Delayed proxy action |
US9369397B1 (en) | 2014-07-16 | 2016-06-14 | Juniper Networks, Inc. | Apparatus to achieve quality of service (QoS) without requiring fabric speedup |
US10264334B2 (en) * | 2015-04-24 | 2019-04-16 | The Regents Of The University Of California | End-to-end scheduling for all-optical data centers |
CN110710172A (zh) | 2017-03-29 | 2020-01-17 | 芬基波尔有限责任公司 | 在接入节点组内多路复用分组喷射的无阻塞的任意到任意数据中心网络 |
WO2018183542A1 (en) | 2017-03-29 | 2018-10-04 | Fungible, Inc. | Non-blocking any-to-any data center network with packet spraying over multiple alternate data paths |
US10425707B2 (en) * | 2017-03-29 | 2019-09-24 | Fungible, Inc. | Non-blocking, full-mesh data center network having optical permutors |
CN117971715A (zh) | 2017-04-10 | 2024-05-03 | 微软技术许可有限责任公司 | 多处理器系统中的中继一致存储器管理 |
US10659254B2 (en) | 2017-07-10 | 2020-05-19 | Fungible, Inc. | Access node integrated circuit for data centers which includes a networking unit, a plurality of host units, processing clusters, a data network fabric, and a control network fabric |
CN117348976A (zh) | 2017-07-10 | 2024-01-05 | 微软技术许可有限责任公司 | 用于流处理的数据处理单元 |
WO2019068017A1 (en) | 2017-09-29 | 2019-04-04 | Fungible, Inc. | RESILIENT NETWORK COMMUNICATION USING SELECTIVE PULVER FLOW SPRAY BY MULTIPATH PATH |
US11178262B2 (en) | 2017-09-29 | 2021-11-16 | Fungible, Inc. | Fabric control protocol for data center networks with packet spraying over multiple alternate data paths |
US10841245B2 (en) | 2017-11-21 | 2020-11-17 | Fungible, Inc. | Work unit stack data structures in multiple core processor system for stream data processing |
WO2019152063A1 (en) | 2018-02-02 | 2019-08-08 | Fungible, Inc. | Efficient work unit processing in a multicore system |
US10929175B2 (en) | 2018-11-21 | 2021-02-23 | Fungible, Inc. | Service chaining hardware accelerators within a data stream processing integrated circuit |
US11290516B1 (en) * | 2020-12-21 | 2022-03-29 | Cisco Technology, Inc. | Prioritized MSRP transmissions to reduce traffic interruptions |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5666353A (en) * | 1995-03-21 | 1997-09-09 | Cisco Systems, Inc. | Frame based traffic policing for a digital switch |
US5909427A (en) * | 1995-07-19 | 1999-06-01 | Fujitsu Network Communications, Inc. | Redundant switch system and method of operation |
US6108303A (en) * | 1995-12-06 | 2000-08-22 | Pmc-Sierra Ltd. | Method and apparatus for traffic control in a cell-based network |
JP3409966B2 (ja) * | 1996-06-21 | 2003-05-26 | 株式会社日立製作所 | パケット交換機およびパケット転送制御方法 |
US5831971A (en) * | 1996-08-22 | 1998-11-03 | Lucent Technologies, Inc. | Method for leaky bucket traffic shaping using fair queueing collision arbitration |
JPH10229404A (ja) | 1997-02-14 | 1998-08-25 | Nippon Telegr & Teleph Corp <Ntt> | セルスイッチ |
US6104700A (en) * | 1997-08-29 | 2000-08-15 | Extreme Networks | Policy based quality of service |
US6563837B2 (en) * | 1998-02-10 | 2003-05-13 | Enterasys Networks, Inc. | Method and apparatus for providing work-conserving properties in a non-blocking switch with limited speedup independent of switch size |
JP3507688B2 (ja) | 1998-02-24 | 2004-03-15 | 日本電気株式会社 | ラウンドロビン制御装置および方法 |
US6266327B1 (en) * | 1998-03-20 | 2001-07-24 | Lucent Technologies Inc. | Non-conformance indicator for the guaranteed frame rate service |
US6480467B1 (en) * | 1998-03-20 | 2002-11-12 | Lucent Technologies Inc. | Conformance definitions for guaranteed frame rate service |
JP2000059370A (ja) * | 1998-08-04 | 2000-02-25 | Fujitsu Ltd | トラヒック制御装置およびその方法 |
US6618379B1 (en) | 1998-12-08 | 2003-09-09 | Nec Corporation | RRGS-round-robin greedy scheduling for input/output terabit switches |
EP1011226A1 (en) * | 1998-12-17 | 2000-06-21 | Alcatel | Data traffic policing method and device and a telecommunication network including such a device |
US6539024B1 (en) * | 1999-03-26 | 2003-03-25 | Alcatel Canada Inc. | Method and apparatus for data buffer management in a communications switch |
JP3439373B2 (ja) | 1999-05-12 | 2003-08-25 | 日本電気通信システム株式会社 | 競合優先制御回路 |
JP3339463B2 (ja) * | 1999-05-13 | 2002-10-28 | 日本電気株式会社 | スイッチ及びその入力ポート |
JP3593921B2 (ja) | 1999-06-01 | 2004-11-24 | 日本電気株式会社 | パケット転送方法および装置 |
JP3397173B2 (ja) | 1999-06-07 | 2003-04-14 | 日本電気株式会社 | パケット交換装置及びそのスイッチ制御方法ならびにスイッチ制御プログラムを格納した記憶媒体 |
US6633540B1 (en) * | 1999-07-02 | 2003-10-14 | Nokia Internet Communications, Inc. | Real-time traffic shaper with keep-alive property for best-effort traffic |
US6570883B1 (en) * | 1999-08-28 | 2003-05-27 | Hsiao-Tung Wong | Packet scheduling using dual weight single priority queue |
US7027457B1 (en) * | 1999-12-03 | 2006-04-11 | Agere Systems Inc. | Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches |
JP3565121B2 (ja) * | 1999-12-15 | 2004-09-15 | 日本電気株式会社 | パケットスイッチ及びパケットスイッチング方法 |
CA2292828A1 (en) * | 1999-12-22 | 2001-06-22 | Nortel Networks Corporation | Method and apparatus for traffic flow control in data switches |
US6982991B1 (en) * | 2000-03-10 | 2006-01-03 | International Business Machines Corporation | Cell or fram assembly method and apparatus optimizing the moving of data |
JP4879382B2 (ja) | 2000-03-22 | 2012-02-22 | 富士通株式会社 | パケットスイッチ、スケジューリング装置、廃棄制御回路、マルチキャスト制御回路、およびQoS制御装置 |
US6904015B1 (en) * | 2000-09-01 | 2005-06-07 | Force10 Networks, Inc. | Congestion avoidance profiles in a packet switching system |
US6665495B1 (en) * | 2000-10-27 | 2003-12-16 | Yotta Networks, Inc. | Non-blocking, scalable optical router architecture and method for routing optical traffic |
US6987732B2 (en) * | 2000-12-15 | 2006-01-17 | Tellabs San Jose, Inc. | Apparatus and methods for scheduling packets in a broadband data stream |
US20020110086A1 (en) * | 2000-12-18 | 2002-08-15 | Shlomo Reches | Multiport switch and a method for forwarding variable length packets across a multiport switch |
US7042883B2 (en) * | 2001-01-03 | 2006-05-09 | Juniper Networks, Inc. | Pipeline scheduler with fairness and minimum bandwidth guarantee |
US20040064582A1 (en) * | 2002-09-30 | 2004-04-01 | Arun Raghunath | Apparatus and method for enabling intserv quality of service using diffserv building blocks |
-
2001
- 2001-10-16 US US09/977,227 patent/US7042883B2/en not_active Expired - Lifetime
- 2001-12-27 JP JP2001395933A patent/JP3614132B2/ja not_active Expired - Fee Related
-
2006
- 2006-01-23 US US11/336,890 patent/US7499454B2/en not_active Expired - Fee Related
-
2009
- 2009-01-28 US US12/361,173 patent/US7796610B2/en not_active Expired - Fee Related
-
2010
- 2010-08-05 US US12/851,317 patent/US8189597B2/en not_active Expired - Fee Related
-
2012
- 2012-04-30 US US13/460,723 patent/US8576867B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US8576867B2 (en) | 2013-11-05 |
US20090135832A1 (en) | 2009-05-28 |
US20020122428A1 (en) | 2002-09-05 |
US20100296513A1 (en) | 2010-11-25 |
JP2002208951A (ja) | 2002-07-26 |
US7042883B2 (en) | 2006-05-09 |
US20120213230A1 (en) | 2012-08-23 |
US8189597B2 (en) | 2012-05-29 |
US20060120286A1 (en) | 2006-06-08 |
US7796610B2 (en) | 2010-09-14 |
US7499454B2 (en) | 2009-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3614132B2 (ja) | データをトランスポートするシステムおよび方法 | |
US7596086B2 (en) | Method of and apparatus for variable length data packet transmission with configurable adaptive output scheduling enabling transmission on the same transmission link(s) of differentiated services for various traffic types | |
JP4354711B2 (ja) | リアルタイムトラヒックに対する保証された帯域幅配達を備える遅延最小化システム | |
AU752403B2 (en) | Method and apparatus for fair and efficient scheduling of variable size data packets in input buffered switch | |
US7027457B1 (en) | Method and apparatus for providing differentiated Quality-of-Service guarantees in scalable packet switches | |
US8638664B2 (en) | Shared weighted fair queuing (WFQ) shaper | |
US5831971A (en) | Method for leaky bucket traffic shaping using fair queueing collision arbitration | |
US8023521B2 (en) | Methods and apparatus for differentiated services over a packet-based network | |
AU736406B2 (en) | Method for providing bandwidth and delay guarantees in a crossbar switch with speedup | |
US6438135B1 (en) | Dynamic weighted round robin queuing | |
US7304944B2 (en) | Unified scheduling and queueing architecture for a multiservice switch | |
US7616567B2 (en) | Shaping apparatus, communication node and flow control method for controlling bandwidth of variable length frames | |
US20040151197A1 (en) | Priority queue architecture for supporting per flow queuing and multiple ports | |
JPH0846590A (ja) | データ伝送システム | |
JPH1188374A (ja) | 大容量マルチクラスコアatmスイッチアーキテクチャ | |
EP0914016A2 (en) | Method and apparatus for virtual link management | |
Homg et al. | An adaptive approach to weighted fair queue with QoS enhanced on IP network | |
US6947380B1 (en) | Guaranteed bandwidth mechanism for a terabit multiservice switch | |
JP2002198993A (ja) | パケットスイッチ | |
US7623456B1 (en) | Apparatus and method for implementing comprehensive QoS independent of the fabric system | |
Mowbray et al. | Capacity reservation for multimedia traffic | |
EP1521411A2 (en) | Method and apparatus for request/grant priority scheduling | |
Zhu et al. | A new scheduling scheme for resilient packet ring networks with single transit buffer | |
Fan et al. | Global and dynamic round-robin scheduler for terabit routers | |
KR20100096599A (ko) | 패킷 스케줄링 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040609 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040713 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040913 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20041012 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041025 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071112 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081112 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091112 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101112 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111112 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121112 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131112 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |